Создание отзывов на Битрикс

Для того, чтобы сделать отзывы на сайте под cms Битрикс не обязательно устанавливать какие то дополнительные модули. Все, что вам понадобится это включаемая область и компонент "список новостей".

Сначала в административной части вашего сайта создайте инфоблок и не забудьте в закладке доступ установить чтение для всех пользователей. Перейдите на страницу где вы хотите разместить отзывы. Создайте на этой странице включаемую область - она будет отвечать за добавление новых отзывов. В этой включаемой области сначала напишем html код, который будет выводить форму для заполнения.

<form action="" method="post" enctype="multipart/form-data" class="form-rew">
	<input type="text" placeholder="Введите ваше имя" name="NAME" class="text">
	<input type="text" placeholder="Введите ваш электронный адрес" name="EMAIL" class="text"><br><br>
	<input type="text" placeholder="Введите ваш телефон" name="PHONE" class="text">
	<textarea placeholder="Введите ваш отзыв" name="REVIEWS" class="text-mess"></textarea><br>
	<input type="submit" class="submit" value="Отправить" name="OK">
</form>

После чего напишем php код для добавления отзыва, обратите внимание на комментарии в коде.

	
<?
if($_POST["OK"]){
	if(CModule::IncludeModule("iblock")){	
		if($_POST["NAME"]!="" && $_POST["EMAIL"]!="" && $_POST["REVIEWS"]!="" && $_POST["PHONE"]!=""){
			echo "Спасибо, Ваше сообщение отправлено! В ближайшее время его проверят";
			$el = new CIBlockElement;
			$arLoadProductArray = Array(
			  "MODIFIED_BY"    => $USER->GetID(), // элемент изменен текущим пользователем
			  "IBLOCK_SECTION_ID" => false,          // элемент лежит в корне раздела
			  "IBLOCK_ID"      => 17, // id инфоблока, который вы создали
			  "NAME"           => $_POST["NAME"], // имя пользователя будет именем элемента
			  "ACTIVE"         => "N",            // убираем активность
			  "PREVIEW_TEXT"   => $_POST["REVIEWS"], // отзыв клиента
			  "DETAIL_TEXT"    => "E-Mail: " . $_POST["EMAIL"] . "\nТелефон: " . $_POST["PHONE"], // контактные данные клиента
			  "PREVIEW_PICTURE" => CFile::MakeFileArray($fileID)
			  );
			if($PRODUCT_ID = $el->Add($arLoadProductArray))
			  echo "";
			else
			  echo "";   
		}else{
			echo "Заполнены не все поля";
		}
	}
}
?>

Расскажу немного о том, что у нас получилось. Сначала идет проверка нажата ли кнопка "Отправить", проверка подключен ли модуль "iblock", проверка на заполнение всех полей, вывод сообщения об удачной отправки, после чего идет создание нового элемента в инфоблоке.

Обратите внимание, что при создание элемента мы указали "ACTIVE" => "N", т.е. по умолчанию этот элемент не активен и не будет выводится. Это сделано для проверки администратором этого сообщения. Администратор зайдет, в административную часть сайта увидит новый отзыв, проверит нет ли в нем например нецензурных слов, после чего активирует элемент. Если вам такая проверка не нужна и вы хотите, чтобы он сразу появлялся после отправки, то укажите "ACTIVE" => "Y".

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

Комменатрии
djamali 21.11.2018 21:17:20
коротко и без лишнего, можно взять для наработки.спасибо
Ответить
yurigum 07.03.2019 14:22:36
Для чего "PREVIEW_PICTURE" => CFile::MakeFileArray($fileID) если $fileID не определён?
Ответить
Админ 12.03.2019 09:34:36
yurigum, Это просто для примера, что ты можешь загружать еще и фото, в переменной $fileID у тебя будет путь к файлу. Пример: CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/upload/myimg.jpg") И еще, если вы дадите возможность загружать фото, то рекомендую поставить проверку на формат загружаемого файла, чтобы не грузили всякий бред
Ответить
test23 19.09.2021 03:06:44
Админ, sdsdsd
Ответить
Кирилл 14.03.2019 14:13:22
Что за "список новостей", можно как-то по понятней объяснить. Я к 1С, как нацист к еврею
Ответить
Васисулий 21.04.2019 02:07:04
Кирилл, список новостей - это компонент. Выводит списко новостей))) В данном текущем сулчае его надонастроитьна вывод в данном текущем случае отзывов. А лучше пройдите курсы Битрикс. Сэкономте многоденег!!))
Ответить
Иван 22.05.2019 06:57:44
Спасибо большое за статью, очень помогла
Ответить
Антон 05.12.2020 21:31:31
Иван, Хорошая статья!
Ответить
Никита Полищук 23.08.2019 11:49:02
прекрасная статья! безумно помогла! автор респект
Ответить
Евгений 16.07.2020 00:43:15
А подскажите, добавляю отзывы к товару(элемент инфоблока 1), в инфоблоке отзывов отзывы(элементы инфоблока 2) есть свойство привязка к элементам инфоблока, каждый отзыв должен привязываться к товару(элементу инфоблока 1) Как при создании отзыва прописать текущий элемент(элемент инфоблока 1) в свойства отзыва(элемент инфоблока 2) И как добавить капчу)
Ответить
Денис 28.10.2020 14:37:30
Спасибо, рабочий вариант и без заморочек
Ответить
Алексей 05.12.2020 18:52:31
Прикольно
Ответить
Андрей 04.04.2021 17:10:50
еще бы капчу добавить
Ответить
Добавить комментарий