К моему большому изумлению ни в одной редакции Битрикса не оказалось компонента «Гостевая книга». Некоторые разработчики предлагают купить у них готовый модуль. Но мы пойдем другим путем – создадим необходимый нам функционал сами.
Для этого нам понадобится создать соответствующий инфоблок. Для начала создадим тип инфоблока Гостевая книга (guestbook).
Также создадим и сам инфоблок с идентичным названием. Для того что бы посетители сайта (в том числе и незарегистрированные) могли оставлять новые записи следует на вкладке «Доступ» изменить значение для всех типов пользователей на «Изменение».
В результате наших действий в левой панели сайта появится такая картина:
Теперь в структуре сайта создадим раздел «Гостевая книга». Редактируем index.php этого раздела. Добавляем на страницу 2 компонента: список новостей( bitrix:news.list) и форму добавления / редактирования (
bitrix:iblock.element.add.form). У обоих компонентов в качестве инфоблока выбираем созданную нами «Гостевую книгу».
Компоненты размещаем в любом порядке и приводим их отображение в соответствии с дизайном сайта.
Гостевая книга почти готова. Для завершения осталось задать правильные подписи к полям.
Советую использовать CAPTCHA – этот предохранит сайт от спама. Также, советую не делать активными записи после добавления, а доверить эту работу администратору сайта.
А настроить ограниченное количество полей для ввода пользователей возможно? т.е. имя, майл, и текст сообщения?
Да, конечно. Для этого у нас есть параметр «Свойства, выводимые на редактирование». В нашем случае он будет служить для добавления. Но судя по интересующих Вас полям я бы советовал использовать форму обратной связи (bitrix:main.feedback).
Спасибо за отличный материал по этой теме! Всё прекрасно работает, единственное не могу нарыть нигде замену названия полей списка.
В форме добавления сообщения имена полям можно задать свои, а вот при выводе их через «список новостей» не могу найти где заменить название полей.
В результате получается:
Название: Василий
Детальное описание: Тестовая запись
подскажите пожалуйста где можно заменить название полей «Детальное описание» и «Название» на свои.
Donato, в данном случае Вам нужно либо изменить шаблон для этого компонента либо языковой файл в шаблоне.
Спасибо огромное! Поправил в шаблоне смотрится так как надо!
У вас замечательный блог!
Donato, приходите еще;) Если есть небольшие темы для постов в блоге на тему how to do — пишите. Постараюсь ответить в виде новых записей.
Вопрос: пользователь зашёл и оставил запись, админ зашёл и написал ответ/исправил её. Кэш обновил, но всё равно получается — под пользователем видна пользовательская версия записи, под админом — админовская…
Спасибо за информацию, ответьте, пожалуйста, еще на такой вопрос: как сделать так, чтобы после успешного заполнения формы администратору сайта отправлялось письмо на e-mail с информацией о заполнении формы? Реализуемо ли это штатными методами Битрикса (то есть без правки кода компонента, регистрации обработчиков событий и т.п.)?
Да.
Есть такое почтовое событие как «Создан новый элемент инфо-блока»