Author: dasha. Date 2016-09-30 13:51:57, views: 227, Raw

Увеличить
//SEO
function getAdditionalSEO($url) {
    CModule::IncludeModule('highloadblock');
    $hlblock = Bitrix\Highloadblock\HighloadBlockTable::getById(1)->fetch();
    $entity = Bitrix\Highloadblock\HighloadBlockTable::compileEntity($hlblock);
    $entity_data_class = $entity->getDataClass();
    return $entity_data_class::getList(array('filter' => array('=UF_URL' => $url)))->fetch();
}
 
if (!empty($_REQUEST['brand']) || !empty($_REQUEST['model'])) {
    $arResult['DESCRIPTION'] = '';
    //установка метатегов
    global $APPLICATION;
    $url = $APPLICATION->GetCurDir();
    if ($arSeo = getAdditionalSEO($url)) {
        $arResult['SEO'] = $arSeo;
        if (!empty($arResult['SEO']['UF_TEXT'])) {
            $arResult['DESCRIPTION'] = $arResult['SEO']['UF_TEXT'];
        }
    } else {//если данных нет
        if (!empty($_REQUEST['brand']) && empty($_REQUEST['model'])) {
            //если страница бренда
            $brand = CIBlockSection::GetList(array("SORT" => "ASC"), array(
                'IBLOCK_ID' => 6,
                'CODE' => $_REQUEST['brand']
            ), false, array('NAME', 'UF_RUSNAME'))->GetNext();
            $arResult['SEO']['UF_H1'] = $arResult['NAME'] . ' для ' . $brand['NAME'];
            if (!!$brand['UF_RUSNAME']) {
                $arResult['SEO']['UF_H1'] .= ' (' . $brand['UF_RUSNAME'] . ')';
            }
            $arResult['UF_FIELD']['UF_ADNAME'] = $arResult['UF_FIELD']['UF_ADNAME'] ? $arResult['UF_FIELD']['UF_ADNAME'] : $arResult['NAME'];
            $brand['UF_RUSNAME'] = $brand['UF_RUSNAME'] ? $brand['UF_RUSNAME'] : $brand['NAME'];
            $arResult['SEO']['UF_TITLE'] = 'Купить ' . $arResult['NAME'] . ' для ' . $brand['NAME'] . ' по низким ценам. Продажа б/у ' . $arResult['UF_FIELD']['UF_ADNAME'] . ' для ' . $brand['UF_RUSNAME'] . ' в компании Рудетали';
            $arResult['SEO']['UF_DESCRIPTION'] = 'Продажа ' . $arResult['NAME'] . ' для автомобиля ' . $brand['NAME'] . ' с доставкой по России. Купить б/у ' . $arResult['UF_FIELD']['UF_ADNAME'] . ' по низким ценам для ' . $brand['UF_RUSNAME'] . ' в интернет-магазине Рудетали.';
        } else if (!empty($_REQUEST['brand']) && !empty($_REQUEST['model'])) {
            //если страница модели
            $brand = CIBlockSection::GetList(array(), array(
                'IBLOCK_ID' => 6,
                'CODE' => $_REQUEST['brand']
            ), false, array('NAME', 'UF_RUSNAME'))->GetNext();
            $model = CIBlockElement::GetList(array(), array(
                'IBLOCK_ID' => 6,
                'CODE' => $_REQUEST['model']
            ), false, false, array('NAME', 'PROPERTY_RUS_NAME'))->GetNext();
            $model_rus_name = $model['PROPERTY_RUS_NAME_VALUE'] ? $model['PROPERTY_RUS_NAME_VALUE'] : $model['NAME'];
            $arResult['UF_FIELD']['UF_ADNAME'] = $arResult['UF_FIELD']['UF_ADNAME'] ? $arResult['UF_FIELD']['UF_ADNAME'] : $arResult['NAME'];
            $brand['UF_RUSNAME'] = $brand['UF_RUSNAME'] ? $brand['UF_RUSNAME'] : $brand['NAME'];
            $arResult['SEO']['UF_H1'] = $arResult['NAME'] . ' для ' . $brand['NAME'] . ' ' . $model['NAME'];
            $arResult['SEO']['UF_TITLE'] = 'Купить ' . $arResult['NAME'] . ' для ' . $brand['NAME'] . ' ' . $model['NAME'] . ' по низким ценам. Продажа б/у ' . $arResult['UF_FIELD']['UF_ADNAME'] . ' для ' . $brand['UF_RUSNAME'] . ' ' . $model_rus_name . ' в компании Рудетали';
            $arResult['SEO']['UF_DESCRIPTION'] = 'Продажа ' . $arResult['NAME'] . ' для автомобиля ' . $brand['NAME'] . ' ' . $model['NAME'] . ' с доставкой по России. Купить б/у ' . $arResult['UF_FIELD']['UF_ADNAME'] . ' по низким ценам для ' . $brand['UF_RUSNAME'] . ' ' . $model_rus_name . ' в интернет-магазине Рудетали.';
        }
    }
    //хлебные крошки не зависимо от того, есть инфа в ИБ или нет
    if (!empty($_REQUEST['brand']) && empty($_REQUEST['model'])) {
        //если бренд
        $brand = CIBlockSection::GetList(array(), array(
            'IBLOCK_ID' => 6,
            'CODE' => $_REQUEST['brand']
        ), false, array('NAME', 'UF_RUSNAME'))->GetNext();
 
        $APPLICATION->AddChainItem($brand['NAME'], "");
 
    } else if (!empty($_REQUEST['brand']) && !empty($_REQUEST['model'])) {
        //если модель
        $brand = CIBlockSection::GetList(array(), array(
            'IBLOCK_ID' => 6,
            'CODE' => $_REQUEST['brand']
        ), false, array('NAME', 'UF_RUSNAME', 'CODE'))->GetNext();
        $model = CIBlockElement::GetList(array(), array(
            'IBLOCK_ID' => 6,
            'CODE' => $_REQUEST['model']
        ), false, false, array('NAME', 'PROPERTY_RUS_NAME'))->GetNext();
 
        $APPLICATION->AddChainItem($brand['NAME'], $arResult['SECTION_PAGE_URL'] . $brand['CODE'] . '/');
        $APPLICATION->AddChainItem($model['NAME'], "");
 
    }
} else {//если это просто раздел, а не модель и не бренд
    if (!empty($arResult['UF_FIELD']['UF_H1'])) {
        $arResult['SEO']['UF_H1'] = $arResult['UF_FIELD']['UF_H1'];
    } else if (!empty($arResult['IPROPERTY_VALUES']['SECTION_META_TITLE'])) {//если установлены заголовки в сеомодуле
        $arResult['SEO']['UF_H1'] = $arResult['IPROPERTY_VALUES']['SECTION_META_TITLE'];
    } else {//если вообще ничего не установлено, то берем имя папки
        $arResult['SEO']['UF_H1'] = $arResult['NAME'];
    }
    if (!empty($arResult['UF_FIELD']['UF_TITLE'])) {
        $arResult['SEO']['UF_TITLE'] = $arResult['UF_FIELD']['UF_TITLE'];
    } else if (!empty($arResult['IPROPERTY_VALUES']['SECTION_META_TITLE'])) {//если установлены заголовки в сеомодуле
        $arResult['SEO']['UF_TITLE'] = $arResult['IPROPERTY_VALUES']['ELEMENT_META_DESCRIPTION'];
    } else {//если вообще ничего не установлено, то берем имя папки
        $arResult['SEO']['UF_TITLE'] = $arResult['NAME'];
    }
}
$cp = $this->__component;
if (is_object($cp)) {
    $cp->SetResultCacheKeys(array('SEO'));
}