} $isAdmin = $USER->canDoOperation('edit_php'); $ID = intval($ID); $abtest = Bitrix\ABTest\ABTestTable::getList(array('filter' => array('=ID' => $ID), 'select' => array('*', 'USER_NAME' => 'USER.NAME', 'USER_LAST_NAME' => 'USER.LAST_NAME', 'USER_SECOND_NAME' => 'USER.SECOND_NAME', 'USER_TITLE' => 'USER.TITLE', 'USER_LOGIN' => 'USER.LOGIN')))->fetch(); if (empty($abtest) || $abtest['ENABLED'] != 'Y') { $APPLICATION->setTitle(empty($abtest['NAME']) ? str_replace('#ID#', $ID, getMessage('ABTEST_REPORT_TITLE1')) : str_replace('#NAME#', $abtest['NAME'], getMessage('ABTEST_REPORT_TITLE2'))); $message = new CAdminMessage(array('MESSAGE' => getMessage('ABTEST_REPORT_NOTFOUND'), 'DETAILS' => getMessage('ABTEST_REPORT_DISABLED'))); require $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_admin_after.php'; echo $message->Show(); require $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/epilog_admin.php'; return; } if ($abtest['ACTIVE'] == 'Y') { $active_test = $abtest; } else { $active_test = Bitrix\ABTest\ABTestTable::getList(array('order' => array('SORT' => 'ASC'), 'filter' => array('SITE_ID' => $abtest['SITE_ID'], 'ACTIVE' => 'Y')))->fetch(); } $arGraphData = array(); if ($conversionAvailable) { $conversionRates = Bitrix\Conversion\RateManager::getTypes(array('ACTIVE' => true)); } if (!empty($conversionRates)) { reset($conversionRates); $baseRate = key($conversionRates); $allRates = array_keys($conversionRates); usort($allRates, function ($a, $b) use($conversionRates) { $a = $conversionRates[$a]; $b = $conversionRates[$b]; return $a['MODULE'] == $b['MODULE'] ? $b['SORT'] - $a['SORT'] : $a['SORT'] - $b['SORT']; }); $funnelRates = array('sale_cart', 'sale_order', 'sale_payment');
$arActiveTests[$abtest['SITE_ID']] = $abtest; } } } break; case 'stop': if (!Bitrix\ABTest\Helper::stopTest($ID)) { $lAdmin->addGroupError(getMessage('ABTEST_STOP_ERROR')); } break; } } } $arHeaders = array(array('id' => 'TITLE', 'content' => getMessage('ABTEST_TBL_HEADER_TITLE'), 'default' => true, 'sort' => 'name'), array('id' => 'ACTIVE', 'content' => getMessage('ABTEST_TBL_HEADER_STATE'), 'default' => true, 'sort' => 'active')); $lAdmin->addHeaders($arHeaders); $result = Bitrix\ABTest\ABTestTable::getList(array('order' => array(strtoupper($by) => $order), 'select' => array('*', 'USER_NAME' => 'USER.NAME', 'USER_LAST_NAME' => 'USER.LAST_NAME', 'USER_SECOND_NAME' => 'USER.SECOND_NAME', 'USER_TITLE' => 'USER.TITLE', 'USER_LOGIN' => 'USER.LOGIN'))); $result = new CAdminResult($result, $sTableID); $arRows = array(); $arActiveTests = array(); while ($abtest = $result->fetch()) { $arRows[] = $abtest; if ($abtest['ACTIVE'] == 'Y') { if (!isset($arActiveTests[$abtest['SITE_ID']])) { $arActiveTests[$abtest['SITE_ID']] = array(); } $arActiveTests[$abtest['SITE_ID']][] = $abtest['ID']; } } foreach ($arRows as &$abtest) { $row =& $lAdmin->addRow($abtest['ID'], $abtest); $row->addViewField('TITLE', sprintf('<div%s><b>%s</b><br>%s</div>', in_array($abtest['ENABLED'], array('T', 'Y')) ? '' : ' style="color: #808080; "', htmlspecialcharsbx($abtest['NAME']) ?: str_replace('#ID#', $abtest['ID'], getMessage('ABTEST_TEST_TITLE')), htmlspecialcharsbx($abtest['DESCR'])));