Здравствуйте!
В аддоне есть следующая функция (это реализация хука):
function fn_ab__seo_filters_ab__as_other_objects(&$objects) {
$seo_pages_fixed = Registry::ifGet('addons.ab__seo_filters.add_to_sitemap', 'none');
$seo_filters = ABSF::_get_names_for_sitemap($seo_pages_fixed);
if($seo_pages_fixed == 'none') {
return false;
}
if(fn_allowed_for('ULTIMATE') && !Registry::get('runtime.simple_ultimate') && fn_get_runtime_company_id() == 0) {
return false;
}
switch($seo_pages_fixed) {
case 'fixed': $cond = db_quote('AND n.fixed=?s', ABSFConfigs::PAGE_STATE_FIXED);
break;
case 'unfixed': $cond = db_quote('AND n.fixed=?s', ABSFConfigs::PAGE_STATE_UNFIXED);
break;
default: $cond = db_quote('AND n.fixed != ?s', ABSFConfigs::PAGE_STATE_HIDDEN);
}
if(fn_allowed_for('ULTIMATE')) {
$cond .= fn_get_company_condition('c.company_id');
}
$seo_filters = db_get_hash_array('SELECT DISTINCT n.sf_id,n.category_id,n.features_hash,n.fixed
FROM ?:ab__sf_names n
INNER JOIN ?:ab__sf_name_descriptions nd ON (n.sf_id=nd.sf_id)
INNER JOIN ?:categories c ON (c.category_id=n.category_id)
WHERE 1 AND c.status=\'A\' ?p ?p
ORDER BY n.category_id asc', 'sf_id', $cond, fn_get_company_condition('n.company_id'));
if(!empty($seo_filters)) {
$seo_filters = fn_ab__sf_filter_seo_pages_without_prods($seo_filters);
$objects['ab__seo_filter'] = $seo_filters;
}
}
У меня крайне серьезное подозрение, что вот этот вызов не нужен:
$seo_filters = ABSF::_get_names_for_sitemap($seo_pages_fixed);
После этого вызова переменная $seo_filters нигде не используется. Ей только присваивается новое значение.
И класс ABSF тоже нигде не используется.
--------------------------------
Этот вопрос для меня крайне важен, ибо вот эта строчка отжирает 10 секунд времени, а у моего клиента 78 витрин и каждая секунда при обновлении карты сайта на счету.
Спасибо