Поисковая форма:) поиск по free-lance.ru Топ/история/обновления фриланса, по разным параметрам (темы, сообщения, пользователи...) Автоматическое удаление постов от ненужных юзеров в топике (php скрипт) Досье(точный ник)
 

Ник (или часть ника):
?
Какой текст ищем:
?
Раздел блогов:
За срок
дней
Тип поиска: (по вхождению: по тексту гуг выдаст посты с "гуг", "гугл", "огугл"; "полнотекстовый": по тексту "гуг" выдаст посты только с "гуг")
По вхождению строки:  Полнотекстовый: 
(поиск не 100% актуальный, есть определённая задержка при обновлении данных для поиска. )
0 Всего найдено: 3
yogas Сообщение 10/07/2011 05:04 Копия темы
Включаемые области – Битрикс Всем привет!

При разработке проектов на Битриксе многие сталкивались с компонентом "Включаемая область".
Казалось бы включаемая область это просто вставка в определенное место (например в страницу или шаблон) дополнительного php файла, но он не так прост как кажется на первый взгляд. Я имею ввиду его полезность.

Рассмотрим 3 задачи:
 
1) Необходимо в шаблоне сайт реализовать редактируемый footer.

Здесь нас выручает включаемая область для файла:

// Включаемая область для файла
$APPLICATION->IncludeComponent(
"bitrix:main.include",
".default",
Array(
"AREA_FILE_SHOW" => "file", // указывается что подключаем файл
"PATH" => "/inc/footer.php", // путь к файлу включаемой область
"EDIT_TEMPLATE" => ""  // шаблон компонента (за все время работы с Битриксом так и не пользовался этим параметром)
)
); 

Все очень просто в параметре "PATH" – указывается путь к файлу в котором в нашем случае будет footer.
Теперь контент-менеджер сможет легко редактировать копирайты, телефоны и остальную информацию размещенную в футере.

2) Представим что у нас есть шаблон сайта в левой части которого должны выводятся новости компании. 
Еще представим что наш сайт состоит всего из 3х страниц (page1.php, page2.php, page3.php). 
На каждой из страниц описание одного из 3х филиалов компании.

Как реализовать вывод новостей в одном шаблоне для разных страниц?
Конечно нам на поможет включаемая область для страницы. 

// Включаемая область страницы
$APPLICATION->IncludeComponent(
"bitrix:main.include",
".default", 
Array(
"AREA_FILE_SHOW" => "page", // указываем, что подключаем файл для страницы
"AREA_FILE_SUFFIX" => "inc", // суффикс подключаемых файлов для страницы
"EDIT_TEMPLATE" => ""
),
false
);

Этот код мы поместим в шаблон сайта на то место где должны выводиться новости.

Тогда для страницы page1.php нужно создать файл inc_page1.php – в котором будет компонент вывода новостей для 1го филиала.
Для page2.php – inc_page2.php, а для page3.php – inc_page3.php

В самом начале изучения Битрикса, я грешил тем, что в шаблоне проверял на какой странице я нахожусь и в зависимости от этого подключал нужный компонент.  Как видим есть более простой способ, которым я и пользуюсь.

3) Задача аналогичная. Есть один шаблон. Но для разных разделов сайта нужно выводить разные компоненты.
Например для раздела Автомобили (avto) и его подразделов – нужно выводить статьи и новости связанные с автомобилями статьи,
для раздела  Недвижимость (realty) и его подразделов – нужно выводить новости недвижимости и объявления по недвижимости.

Конечно можно было сделать разные шаблоны для каждого раздела и успокоиться на этом. Но это не красивый выход из ситуации. 
Как всегда нас спасет включаемая область для раздела!

// Включаемая область для раздела
$APPLICATION->IncludeComponent(
"bitrix:main.include",
"",
Array(
"AREA_FILE_SHOW" => "sect", // указываем, что подключаем файл для раздела
"AREA_FILE_SUFFIX" => "inc", // суффикс подключаемых файлов для раздела
"AREA_FILE_RECURSIVE" => "Y",  // рекурсивное подключение областей для разделов
"EDIT_TEMPLATE" => ""
),
false
);

Подсказка Битрикса по параметру:
AREA_FILE_RECURSIVE – При установленном флаге включаемые области разделов будут подключаться рекурсивно, т.е. если в папке более низкого уровня есть своя включаемая область, то она будет показана. Если текущий раздел не имеет своей включаемой области, то рекурсивно до корня сайта будут проверяться все разделы до самого верхнего и будет выведена первая встретившаяся включаемая область.

На этом все. Спасибо за внимание.
Надеюсь статья вам пригодится и вы не наступите на те же грабли что я в свое время)
yogas Сообщение 10/12/2010 13:06 Копия темы
Постраничная навигация в Битрикс – это просто Всем привет!
Думаю перед каждым веб-разработчиком вставала задача вывода контента на сайте с постраничной навигацией.
Когда я начал изучать Битрикс я еще не знал, что постраничная навигация делается очень просто.

У объекта CIBlockResult есть замечательная функция GetPageNavStringEx, которая выводит навигацию.

Приведу простой  код страницы ниже:
 
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Новая страница");
?>
<?
//Подключаем модуль инфоблоков
CModule::IncludeModule('iblock');

//Делаем выборку из инфоблока с ID равным 2
$r = CIBLockElement::GetList(
Array("ID"=>"ASC"),     //сортируем по ID
Array("IBLOCK_ID"=>2),  // выборка по блоку с ID равным 2
false, //нет групировки
Array("nPageSize"=>10), //количество записей на странице
Array("ID","NAME")      //выбираем ID и NAME
);

//Вывод результатов выборки
while($f = $r->Fetch()){
?><div><?=$f['ID'] ?>. <?=$f['NAME'] ?></div><?
}

//Получаем строку с постраницной навигацией
//$navComponentObject – объект компонента навигации
//Второй параметр (Страницы:) – заголовок навигации
//Третий параметр – шаблон компонента system.pagenavigation
$navStr = $r->GetPageNavStringEx($navComponentObject, "Страницы:", ".default");
echo $navStr;


?>
<? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php"); ?>


----------------------------------------------
Шаблон постраничной навигации находится здесь: /bitrix/components/system.pagenavigation/templates/
Для того, что бы изменить шаблон просто копируем например шаблон .default в папку с шаблоном сайта.

Если есть вопросы с удовольствием отвечу.
Благодарю за внимание :)
yogas Сообщение 16/11/2010 16:04 Копия темы
Программирование под Битрикс. Быстрый старт. Всем привет! 

Для начала, я бы рекомендовал скачать Битрикс под редакцией Стандарт: www.1c-bitrix.ru/download...
хотя можно и любую другую редакцию.
Ну и крайне желательно скачать документацию по Битриксу: dev.1c-bitrix.ru/docs/php...

Я думаю, что большинство начинающих разработчиков, да и я когда начинал изучать систему, задавали себе такой вопрос:
Как мне вывести нужную информацию из базы данных?
 
Предполагается, что мы уже знаем что такое информационные блоки и как их создавать и что с ними можно делать. 
Если вы еще этого не знаете, об инфоблоках буду писать в следующих постах.

Давайте по пунктам:

1) Создадим новую страницу и дадим ей имя db.php: clip2net.com/clip/m50980/...

2) В появившемся окне редактора переходим в режим кода (я выделил кнопку красным). Удаляем слова "Text here...." и пишем следующий код:
clip2net.com/clip/m50980/...
<?
CModule::IncludeModule('iblock'); //подключаем модуль для работы с инфоблоками

//далаем выборку имен (NAME) из инфоблока с ID равным 1
//CIBlockElement – это класс для работы с инфоблоками
//GetList – функция которая делает выборку из инфоблока
$r = CIBlockElement::GetList(
    Array("ORDER"=>"ASC"), //сортировка
    Array("IBLOCK_ID"=>1),  //условие выборки
    false,                                 //группировка  (как в SQL GROUP BY). false потому, что не использую группировку
    false,                                 //параметры для постраничной. (как в SQL LIMIT но немного по другому). Подробно рассмотрю в следующих постах
    Array("NAME")                  //поля которые выбираем из таблицы (как в SQL SELECT id, name, только передается массив полей которые выбираем)
);

//здесь уже вывод выборки 
//Помимо функции Fetch есть и другие для выборки данных из результатов запроса, здесь я её использую, для аналогии с mysql_fetch_array
while($f = $r->Fetch()){
    "<pre>";
    print_r($f);
    "</pre>";
}
?> 

В следующем посте рассмотрим как задавать свойства инфоблокам и как делать выборку по ним. 
Вкратце если у свойства имя SUM то для того что бы делать выборку по этому свойству перед ним нужно поставить префикс PROPERTY_
т.е PROPERTY_SUM 
Причем в результатах выборки свойство SUM будет именть имя PROPERY_SUM_VALUE

Благодарю за внимание :)
0

©2008 edogs egods
Выразить восторг, поругаться
или предложить что-нибудь можно на форуме
Для обсуждения этого сервиса так же есть темы на фрилансе по
поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал"