Создание инфоблока «Вопрос-Ответ» с применением функции(метода) CIBlockElement::GetList

Логотип 1С-БитриксРассмотрим создание инфоблока на примере скрипта «Вопрос-Ответ» с применением функции(метода) CIBlockElement::GetList

Заметка из цикла «Продолжаем знакомство с Битриксом». В ней вы найдете описание простого скрипта «Вопрос-Ответ» для реализации обратной связи с посетителями.

Инструкция по созданию инфоблока

(неофициальная, на примере найденного скрипта):
1. Создать тип инфоблока, например, «Вопрос-Ответ».
2. Создать инфоблок этого типа (запромнить его ID). После чего необходимо добавить пару свойств (на вкладке «Свойства»), а именно две строки с «Вопрос»,»Ответ» в поле «Название», тип в обоих случаях «HTML/тeкcт», сортировки 400 и 500, коды vopros и otvet.
3. Во вкладке «Разработка» выбрать Создать::Раздел. И создать раздел и индексный файл в нем.
4. Поместить в код страницы (через меню «Изменить::Страницу как PHP») следующий код:

Код скрипта «Вопрос-Ответ»

Небольшие особенности скрипта:
1. Добавлена сортировка элементов инфоблока по убыванию значения поля ID (дефолтная Array(«SORT»=>«ASC») нелогична и похоже, что сортирует по ID по возрастанию). Исторически ID — поле автоинкрементное, поэтому в нормальных условиях элемент с максимальным ID и будет последним созданным.
2. Добавлен вывод даты смены статуса у записи в инфоблоке, так как sysdate задания вопроса мы вроде как нигде не фиксируем.

Примечание:
Любознательные безусловно заглянут в файл \bitrix\modules\iblock\classes\mysql\iblockelement.php (найдя его в ТС по подстроке «class CIBlockElement» с учетом регистра) для изучения класса CIBlockElement и его функции GetList.
Также нелишним будет заглянуть в официальную документацию http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblocksection/getlist.php.

Пользуясь случаем, немного рекламы: если вам необходимо создание сайта на 1С-Битрикс сходите по ссылке, рекомендую.

Комментариев: 13

  • 20.04.2010 Ира:

    спасибо, применила на своем сайте

    • 15.03.2012 Яна:

      Подскажите, пожалуйста, пошаговую инструкцию. Почему-то раздел у меня на сайте не отображается.

  • 17.08.2010 axl:

    «SORT»=>«ASC» — сортировка по полю «sort» — сортировка. Это нужно для задания порядка элементов руками. Битрикс ставит значение сортировки 500, обычно.

    • 21.11.2011 Роман:

      «SORT»=>»ASC» – сортировка по полю «sort» – сортировка. Это нужно для задания порядка элементов руками. Битрикс ставит значение сортировки 500, обычно.

      Да по умолчанию 500, все меняется потом руками

  • 17.08.2010 Кирилл:

    2axl: спасибо за инфу по «SORT»=>«ASC»

  • 19.01.2011 Андрей:

    В 9 версии Битрикса предложенный код не работает, пустая страница:( Если убрать кусок с начальными проверками if(isset($_POST['add_question'])) то и форма и сделанные в админке вопросы выводится, но в инфоблок конечно ничего не записать.

  • 18.04.2011 denlab:

    спасибо большое) очень красиво и понятно)

  • 27.04.2011 GTAlex:

    1. создаются не активные элементы, а выводятся активные — так и задумано ?

    2. пропущена закрывающая скобка if(!$USER->IsAuthorized()

    дошло – ответы видимо пишутся в админке и там же ставится активность

    прикольно – моя аватарка подтянулась через gravatar.com

    вообще – большое спасибо за хороший пример !

    для начинающих – то что нужно !

    • 27.04.2011 Кирилл:

      1. Уже точно не помню, но кажется да, ответы пишутся в админке, там же активируются.

      2. Поправил.

      Спасибо за добрые слова :) .

  • 27.02.2012 Евгений:

    А можно ли как-то приделать e-mail уведомление и форму ответа не из админки?

  • 16.09.2012 Адильбек:

    Доброго времени суток.

    Подскажите пожалуйста, как объявить все поля (text, textarea, select, multitext) элементов инфоблока обязательными для заполнения.

    Инфоблоки работабт с компонентом «Техподдержка с мастером». В данном компоненте присутствует форма заявки для клиентов. Необходимо чтобы не заполнив все поля клиент не мог перейти на следующий шаг создания обращения.

    Кто знает подскажите как это реализовать.

    Спасибо

  • 16.07.2013 Евгений:

    возможноли используя GetList, чтобы элементы выводились в компоненте news.list как минимум из 2х инфоблоков?

    п.с. постраничной навигации нет так как это блог популярные, выводятся популярные новости и статьи.

    Спасибо.

  • 29.01.2014 lin:

    27.02.2012 Евгений:

    А можно ли как-то приделать e-mail уведомление и форму ответа не из админки?

    Было бы очень даже не плохо


Добавление комментария:

 css.php