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

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

<? 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 року займаюся веб-розробкою. Зараз я – PHP Full Stack Developer.
Обговорити ваш проект, а також дізнатися більше про мене ви можете на цьому сайті:
dev.forwww.com

Email: dmitriyribka@gmail.com

Залишити відповідь