Битрикс — делаем самописное А\Б тестирование

При помощи данного кода можно сделать своё подобие А\Б тестирования главной страницы. Чтобы не грузить базу запросами будем проверять на «куки» браузера.

<? include($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); if (!isset($_COOKIE['PAGE_NEW'])) { CModule::IncludeModule('iblock'); $IBLOCK_ID = 1; $ELEMENT_ID = 123; $exp_date = time() + 2628000; $PROPERTY_VALUE = 0; $res = CIBlockElement::GetList ( Array("ID" => "ASC"),
		Array("IBLOCK_ID" => $IBLOCK_ID, "ACTIVE" => "Y", "ID" => $ELEMENT_ID),
		false,
		false,
		Array('ID', "PROPERTY_NEW_MAIN")
	);
	if ($arItem = $res->GetNext()) {
		$propMainPage = $arItem['PROPERTY_NEW_MAIN_VALUE'];
		if ($propMainPage != 'Y') {
			$PROPERTY_VALUE = 21;
		}
		setcookie('PAGE_NEW', $PROPERTY_VALUE, $exp_date, '/');
		CIBlockElement::SetPropertyValuesEx($ELEMENT_ID, $IBLOCK_ID, array('NEW_MAIN' => $PROPERTY_VALUE));
	}

}

if ($_COOKIE['PAGE_NEW'] == 21 || $PROPERTY_VALUE == 21) {
	header("Location: /new/", true, 302);
}
?>

Куки мы ставим на 1 месяц. Данный вариант работает через инфоблок, его конкретный элемент и его конкретное свойство. Можно придумать свои варианты — либо запись в файл, либо через модуль в админке. Кстати вариант с модулем Битрикса интересен еще и тем, что можно дописать статистику по каждой страницу и смотреть как 50 на 50 заполняются просмотры 🙂

Если у вас есть предложения по коду, прошу в комментарии 🙂

автор: Dmitriy

Занимаюсь веб-разработкой с 2011 года. Посмотреть некоторые из моих работ, а также узнать чуть больше обо мне, вы можете на forwww.ru.

Какие услуги предоставляю:
- Создание сайтов, шаблонов и компонентов на 1С-Битрикс;
- Разработка функционала с нуля и доработка кода на уже созданных проектах;
- Адаптивная вёрстка макетов и натяжка на Битрикс;
- Парсинг файлов и выгрузка на сайт (форматы - CSV, XML, XLSX, JSON)
- Интеграции со сторонними сервисами по API;
- Многоязычные версии и многое другое.

Если у вас остались вопросы, свяжитесь со мной любым удобным для вас способом или оставьте комментарий внизу.
E-mail: dmitriyribka@gmail.com
Skype: cinemacreaterus

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *