if($obElement = $rsElement->GetNextElement()) { $arResult = $obElement->GetFields(); $arResult = array_merge($arResult, $arUrlTemplates); $arResult['ACTIVE_FROM'] = $arResult['DATE_ACTIVE_FROM']; $arResult['ACTIVE_TO'] = $arResult['DATE_ACTIVE_TO']; $arResult['CONVERT_CURRENCY'] = $arConvertParams; $arResult['MODULES'] = $arResultModules; $arResult["CAT_PRICES"] = $arResultPrices; $arResult['PRICES_ALLOW'] = $arResultPricesAllow; $ipropValues = new \Bitrix\Iblock\InheritedProperty\ElementValues($arResult["IBLOCK_ID"], $arResult["ID"]); $arResult["IPROPERTY_VALUES"] = $ipropValues->getValues(); $arResult["PREVIEW_PICTURE"] = (0 < $arResult["PREVIEW_PICTURE"] ? CFile::GetFileArray($arResult["PREVIEW_PICTURE"]) : false); if ($arResult["PREVIEW_PICTURE"]) { $arResult["PREVIEW_PICTURE"]["ALT"] = $arResult["IPROPERTY_VALUES"]["ELEMENT_PREVIEW_PICTURE_FILE_ALT"]; if ($arResult["PREVIEW_PICTURE"]["ALT"] == "") $arResult["PREVIEW_PICTURE"]["ALT"] = $arResult["NAME"]; $arResult["PREVIEW_PICTURE"]["TITLE"] = $arResult["IPROPERTY_VALUES"]["ELEMENT_PREVIEW_PICTURE_FILE_TITLE"]; if ($arResult["PREVIEW_PICTURE"]["TITLE"] == "") $arResult["PREVIEW_PICTURE"]["TITLE"] = $arResult["NAME"]; } $arResult["DETAIL_PICTURE"] = (0 < $arResult["DETAIL_PICTURE"] ? CFile::GetFileArray($arResult["DETAIL_PICTURE"]) : false); if ($arResult["DETAIL_PICTURE"]) { $arResult["DETAIL_PICTURE"]["ALT"] = $arResult["IPROPERTY_VALUES"]["ELEMENT_DETAIL_PICTURE_FILE_ALT"];
$arResult["ITEMS"] = array(); $arMeasureMap = array(); $arElementLink = array(); $intKey = 0; while ($arItem = $rsElements->GetNext()) { $arItem['ID'] = (int) $arItem['ID']; $arItem['ACTIVE_FROM'] = $arItem['DATE_ACTIVE_FROM']; $arItem['ACTIVE_TO'] = $arItem['DATE_ACTIVE_TO']; if ($arResult["ID"]) { $arItem["IBLOCK_SECTION_ID"] = $arResult["ID"]; } $arButtons = CIBlock::GetPanelButtons($arItem["IBLOCK_ID"], $arItem["ID"], $arResult["ID"], array("SECTION_BUTTONS" => false, "SESSID" => false, "CATALOG" => true)); $arItem["EDIT_LINK"] = $arButtons["edit"]["edit_element"]["ACTION_URL"]; $arItem["DELETE_LINK"] = $arButtons["edit"]["delete_element"]["ACTION_URL"]; $ipropValues = new \Bitrix\Iblock\InheritedProperty\ElementValues($arItem["IBLOCK_ID"], $arItem["ID"]); $arItem["IPROPERTY_VALUES"] = $ipropValues->getValues(); $arItem["PREVIEW_PICTURE"] = 0 < $arItem["PREVIEW_PICTURE"] ? CFile::GetFileArray($arItem["PREVIEW_PICTURE"]) : false; if ($arItem["PREVIEW_PICTURE"]) { $arItem["PREVIEW_PICTURE"]["ALT"] = $arItem["IPROPERTY_VALUES"]["ELEMENT_PREVIEW_PICTURE_FILE_ALT"]; if ($arItem["PREVIEW_PICTURE"]["ALT"] == "") { $arItem["PREVIEW_PICTURE"]["ALT"] = $arItem["NAME"]; } $arItem["PREVIEW_PICTURE"]["TITLE"] = $arItem["IPROPERTY_VALUES"]["ELEMENT_PREVIEW_PICTURE_FILE_TITLE"]; if ($arItem["PREVIEW_PICTURE"]["TITLE"] == "") { $arItem["PREVIEW_PICTURE"]["TITLE"] = $arItem["NAME"]; } } $arItem["DETAIL_PICTURE"] = 0 < $arItem["DETAIL_PICTURE"] ? CFile::GetFileArray($arItem["DETAIL_PICTURE"]) : false; if ($arItem["DETAIL_PICTURE"]) { $arItem["DETAIL_PICTURE"]["ALT"] = $arItem["IPROPERTY_VALUES"]["ELEMENT_DETAIL_PICTURE_FILE_ALT"]; if ($arItem["DETAIL_PICTURE"]["ALT"] == "") {
$arResult["NEXT"][] = $arElement; } else { array_unshift($arResult["PREV"], $arElement); } } $arResult["CURRENT"]["COUNT"] = CIBlockElement::GetList(array(), $arFilter, array()); foreach (array("NEXT", "PREV") as $type) { foreach($arResult[$type] as $key=>$value) { $ipropValues = new \Bitrix\Iblock\InheritedProperty\ElementValues($value["IBLOCK_ID"], $value["ID"]); $IPROPERTY_VALUES = $ipropValues->getValues(); $arResult[$type][$key]["PICTURE"] = CFile::GetFileArray($value["PREVIEW_PICTURE"]); if ($arResult[$type][$key]["PICTURE"]) { $arResult[$type][$key]["PICTURE"]["ALT"] = $IPROPERTY_VALUES["ELEMENT_PREVIEW_PICTURE_FILE_ALT"]; if ($arResult[$type][$key]["PICTURE"]["ALT"] == "") $arResult[$type][$key]["PICTURE"]["ALT"] = $value["NAME"]; $arResult[$type][$key]["PICTURE"]["TITLE"] = $IPROPERTY_VALUES["ELEMENT_PREVIEW_PICTURE_FILE_TITLE"]; if ($arResult[$type][$key]["PICTURE"]["TITLE"] == "") $arResult[$type][$key]["PICTURE"]["TITLE"] = $value["NAME"]; } } } $this->SetResultCacheKeys(array(
function category_cat_TITLE($category,$h1=0) { CModule::IncludeModule("iblock"); $arSelect = Array("ID", "IBLOCK_ID", "NAME", "DATE_ACTIVE_FROM","PREVIEW_TEXT");//IBLOCK_ID и ID обязательно должны быть указаны, см. описание arSelectFields выше $arFilter = Array("IBLOCK_ID"=>1, "ID"=>$category, "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y"); $res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect); while($ob = $res->GetNextElement()){ $arFields = $ob->GetFields(); $arProps = $ob->GetProperties(); $ipropValues = new \Bitrix\Iblock\InheritedProperty\ElementValues( $arFields["IBLOCK_ID"], $arFields["ID"] ); $arFields["IPROPERTY_VALUES"] = $ipropValues->getValues(); } if($arFields['NAME']!='') { if($h1 == 0) { //TITLE if($arFields['IPROPERTY_VALUES']['ELEMENT_META_TITLE'] != '') return iconv('windows-1251','utf-8',$arFields['IPROPERTY_VALUES']['ELEMENT_META_TITLE']); else return iconv('windows-1251','utf-8',$arFields['NAME']); } if($h1 == 1) { //h1 if($arFields['IPROPERTY_VALUES']['ELEMENT_PAGE_TITLE'] != '') return iconv('windows-1251','utf-8',$arFields['IPROPERTY_VALUES']['ELEMENT_PAGE_TITLE']); else return iconv('windows-1251','utf-8',$arFields['NAME']); } //DESCRIPTION if($h1 ==2) { return iconv('windows-1251','utf-8',$arFields['IPROPERTY_VALUES']['ELEMENT_META_DESCRIPTION']); } } else { $sect_sport = CIBlockSection::GetByID(1); if($ar_sect_sport = $sect_sport->GetNext()) { //Получаем СЕО текст раздела $ipropValues = new \Bitrix\Iblock\InheritedProperty\SectionValues( $ar_sect_sport["IBLOCK_ID"], $ar_sect_sport["ID"] ); $ar_sect_sport["IPROPERTY_VALUES"] = $ipropValues->getValues(); } //TITLE if($ar_sect_sport['IPROPERTY_VALUES']['SECTION_META_TITLE'] != '') return iconv('windows-1251','utf-8',$ar_sect_sport['IPROPERTY_VALUES']['SECTION_META_TITLE']); else return iconv('windows-1251','utf-8',$ar_sect_sport['NAME']); } }
/** * @return array */ public function getMeta() { $ipropValues = new \Bitrix\Iblock\InheritedProperty\ElementValues($this->infoblock()->id(), $this->id()); return $ipropValues->getValues(); }
{ $nav = CIBlockSection::GetNavChain(false, $section_id); $index = 100; while ($ar = $nav->GetNext()) { ?> <a href="<?php echo $ar["SECTION_PAGE_URL"]; ?> "><?php echo $ar["NAME"]; ?> </a><span class="chain">→</span><?php } } $ipropValues = new \Bitrix\Iblock\InheritedProperty\ElementValues($arParams["IBLOCK_ID"], IntVal($elementRes["ID"])); $values = $ipropValues->getValues(); $ishop_page_title = $values['ELEMENT_META_TITLE'] ? $values['ELEMENT_META_TITLE'] : $elementRes["NAME"]; $ishop_page_h1 = $values['ELEMENT_PAGE_TITLE'] ? $values['ELEMENT_PAGE_TITLE'] : $elementRes["NAME"]; $APPLICATION->SetTitle($ishop_page_title); ?> <h1 class="title"><?php echo $ishop_page_h1; ?> </h1> <div class="breadcrumb"> <?php $APPLICATION->IncludeComponent("bitrix:breadcrumb", "shop", array("START_FROM" => "0", "PATH" => "", "SITE_ID" => SITE_ID), false); ?> <?php get_section_path($sectionRes["ID"]); ?>
/** * Get items for view. * @return mixed[] array('ID' => array(), 'ID' => array(), ...) */ protected function getItems() { if (empty($this->productIdsMap) || empty($this->arParams['SHOW_PRODUCTS'])) { return array(); } $elementIterator = CIBlockElement::GetList(array(), $this->filter, false, false, $this->selectFields); $elementIterator->SetUrlTemplates($this->arParams["DETAIL_URL"]); $defaultMeasure = $this->data['DEFAULT_MEASURE']; $items = array(); while ($elementObj = $elementIterator->GetNextElement()) { $item = $elementObj->GetFields(); $item['ID'] = intval($item['ID']); $item['ACTIVE_FROM'] = $item['DATE_ACTIVE_FROM']; $item['ACTIVE_TO'] = $item['DATE_ACTIVE_TO']; // Inherited Properties $ipropValues = new \Bitrix\Iblock\InheritedProperty\ElementValues($item["IBLOCK_ID"], $item["ID"]); $item["IPROPERTY_VALUES"] = $ipropValues->getValues(); $item["PREVIEW_PICTURE"] = 0 < $item["PREVIEW_PICTURE"] ? CFile::GetFileArray($item["PREVIEW_PICTURE"]) : false; if ($item["PREVIEW_PICTURE"]) { $item["PREVIEW_PICTURE"]["ALT"] = $item["IPROPERTY_VALUES"]["ELEMENT_PREVIEW_PICTURE_FILE_ALT"]; if ($item["PREVIEW_PICTURE"]["ALT"] == "") { $item["PREVIEW_PICTURE"]["ALT"] = $item["NAME"]; } $item["PREVIEW_PICTURE"]["TITLE"] = $item["IPROPERTY_VALUES"]["ELEMENT_PREVIEW_PICTURE_FILE_TITLE"]; if ($item["PREVIEW_PICTURE"]["TITLE"] == "") { $item["PREVIEW_PICTURE"]["TITLE"] = $item["NAME"]; } } $item["DETAIL_PICTURE"] = 0 < $item["DETAIL_PICTURE"] ? CFile::GetFileArray($item["DETAIL_PICTURE"]) : false; if ($item["DETAIL_PICTURE"]) { $item["DETAIL_PICTURE"]["ALT"] = $item["IPROPERTY_VALUES"]["ELEMENT_DETAIL_PICTURE_FILE_ALT"]; if ($item["DETAIL_PICTURE"]["ALT"] == "") { $item["DETAIL_PICTURE"]["ALT"] = $item["NAME"]; } $item["DETAIL_PICTURE"]["TITLE"] = $item["IPROPERTY_VALUES"]["ELEMENT_DETAIL_PICTURE_FILE_TITLE"]; if ($item["DETAIL_PICTURE"]["TITLE"] == "") { $item["DETAIL_PICTURE"]["TITLE"] = $item["NAME"]; } } $itemIblockId = (int) $item['IBLOCK_ID']; $needItemProperties = isset($this->arParams['PROPERTY_CODE'][$itemIblockId]) && !empty($this->arParams['PROPERTY_CODE'][$itemIblockId]) || isset($this->arParams['ADDITIONAL_PICT_PROP'][$itemIblockId]) || isset($this->arParams['LABEL_PROP'][$itemIblockId]); $item["PROPERTIES"] = array(); $item["DISPLAY_PROPERTIES"] = array(); if ($needItemProperties) { $item["PROPERTIES"] = $elementObj->getProperties(); CCatalogDiscount::SetProductPropertiesCache($item['ID'], $item["PROPERTIES"]); } if (isset($this->arParams['PROPERTY_CODE'][$item['IBLOCK_ID']])) { $properties = $this->arParams['PROPERTY_CODE'][$item['IBLOCK_ID']]; foreach ($properties as $propertyName) { if (!isset($item["PROPERTIES"][$propertyName])) { continue; } $prop =& $item["PROPERTIES"][$propertyName]; $boolArr = is_array($prop["VALUE"]); if ($boolArr && !empty($prop["VALUE"]) || !$boolArr && strlen($prop["VALUE"]) > 0) { $item["DISPLAY_PROPERTIES"][$propertyName] = CIBlockFormatProperties::GetDisplayValue($item, $prop, "catalog_out"); } } } $item["PRODUCT_PROPERTIES"] = array(); $item['PRODUCT_PROPERTIES_FILL'] = array(); if ($this->arParams['ADD_PROPERTIES_TO_BASKET'] == 'Y' && !empty($this->arParams['CART_PROPERTIES'][$item['IBLOCK_ID']])) { $item["PRODUCT_PROPERTIES"] = CIBlockPriceTools::GetProductProperties($item['IBLOCK_ID'], $item["ID"], $this->arParams['CART_PROPERTIES'][$item['IBLOCK_ID']], $item["PROPERTIES"]); if (!empty($item["PRODUCT_PROPERTIES"])) { $item['PRODUCT_PROPERTIES_FILL'] = CIBlockPriceTools::getFillProductProperties($item['PRODUCT_PROPERTIES']); } } if (!isset($item["CATALOG_MEASURE_RATIO"])) { $item["CATALOG_MEASURE_RATIO"] = 1; } if (!isset($item['CATALOG_MEASURE'])) { $item['CATALOG_MEASURE'] = 0; } $item['CATALOG_MEASURE'] = intval($item['CATALOG_MEASURE']); if (0 > $item['CATALOG_MEASURE']) { $item['CATALOG_MEASURE'] = 0; } if (!isset($item['CATALOG_MEASURE_NAME'])) { $item['CATALOG_MEASURE_NAME'] = ''; } $item['CATALOG_MEASURE_NAME'] = $defaultMeasure['SYMBOL_RUS']; $item['~CATALOG_MEASURE_NAME'] = $defaultMeasure['~SYMBOL_RUS']; $items[$item['ID']] = $item; } return $items; }
/** * Get items for view. * @return mixed[] array('ID' => array(), 'ID' => array(), ...) */ protected function getItems() { if (empty($this->productIdsMap) || empty($this->arParams['SHOW_PRODUCTS'])) { return array(); } $this->separateItemsByIblock(); $defaultMeasure = $this->data['DEFAULT_MEASURE']; $items = array(); foreach (array_keys($this->arParams['SHOW_PRODUCTS']) as $iblock) { $this->linkItems = array(); if (empty($this->iblockItems[$iblock])) { continue; } $filter = $this->filter; $filter['IBLOCK_ID'] = $iblock; $filter['ID'] = $this->iblockItems[$iblock]; $elementIterator = CIBlockElement::GetList(array(), $filter, false, false, $this->selectFields); $elementIterator->SetUrlTemplates($this->arParams['DETAIL_URL']); while ($element = $elementIterator->GetNext()) { $element['ID'] = (int) $element['ID']; $element['ACTIVE_FROM'] = $element['DATE_ACTIVE_FROM']; $element['ACTIVE_TO'] = $element['DATE_ACTIVE_TO']; $buttons = CIBlock::GetPanelButtons($element['IBLOCK_ID'], $element['ID'], 0, array("SECTION_BUTTONS" => false, "SESSID" => false, "CATALOG" => true)); $element['EDIT_LINK'] = $buttons['edit']['edit_element']['ACTION_URL']; $element['DELETE_LINK'] = $buttons['edit']['delete_element']['ACTION_URL']; $ipropValues = new \Bitrix\Iblock\InheritedProperty\ElementValues($element["IBLOCK_ID"], $element["ID"]); $element["IPROPERTY_VALUES"] = $ipropValues->getValues(); $element["PREVIEW_PICTURE"] = $element["PREVIEW_PICTURE"] > 0 ? CFile::GetFileArray($element["PREVIEW_PICTURE"]) : false; if ($element["PREVIEW_PICTURE"]) { $element["PREVIEW_PICTURE"]["ALT"] = $element["IPROPERTY_VALUES"]["ELEMENT_PREVIEW_PICTURE_FILE_ALT"]; if ($element["PREVIEW_PICTURE"]["ALT"] == "") { $element["PREVIEW_PICTURE"]["ALT"] = $element["NAME"]; } $element["PREVIEW_PICTURE"]["TITLE"] = $element["IPROPERTY_VALUES"]["ELEMENT_PREVIEW_PICTURE_FILE_TITLE"]; if ($element["PREVIEW_PICTURE"]["TITLE"] == "") { $element["PREVIEW_PICTURE"]["TITLE"] = $element["NAME"]; } } $element["DETAIL_PICTURE"] = $element["DETAIL_PICTURE"] > 0 ? CFile::GetFileArray($element["DETAIL_PICTURE"]) : false; if ($element["DETAIL_PICTURE"]) { $element["DETAIL_PICTURE"]["ALT"] = $element["IPROPERTY_VALUES"]["ELEMENT_DETAIL_PICTURE_FILE_ALT"]; if ($element["DETAIL_PICTURE"]["ALT"] == "") { $element["DETAIL_PICTURE"]["ALT"] = $element["NAME"]; } $element["DETAIL_PICTURE"]["TITLE"] = $element["IPROPERTY_VALUES"]["ELEMENT_DETAIL_PICTURE_FILE_TITLE"]; if ($element["DETAIL_PICTURE"]["TITLE"] == "") { $element["DETAIL_PICTURE"]["TITLE"] = $element["NAME"]; } } $element["PROPERTIES"] = array(); $element["DISPLAY_PROPERTIES"] = array(); $element["PRODUCT_PROPERTIES"] = array(); $element['PRODUCT_PROPERTIES_FILL'] = array(); if (!isset($element["CATALOG_MEASURE_RATIO"])) { $element["CATALOG_MEASURE_RATIO"] = 1; } if (!isset($element['CATALOG_MEASURE'])) { $element['CATALOG_MEASURE'] = 0; } $element['CATALOG_MEASURE'] = (int) $element['CATALOG_MEASURE']; if ($element['CATALOG_MEASURE'] < 0) { $element['CATALOG_MEASURE'] = 0; } if (!isset($element['CATALOG_MEASURE_NAME'])) { $element['CATALOG_MEASURE_NAME'] = ''; } $element['CATALOG_MEASURE_NAME'] = $defaultMeasure['SYMBOL_RUS']; $element['~CATALOG_MEASURE_NAME'] = $defaultMeasure['~SYMBOL_RUS']; $items[$element['ID']] = $element; $this->linkItems[$element['ID']] =& $items[$element['ID']]; } unset($element, $elementIterator); $propFilter = array('ID' => $this->iblockItems[$iblock], 'IBLOCK_ID' => $iblock); CIBlockElement::GetPropertyValuesArray($this->linkItems, $iblock, $propFilter); unset($propFilter); foreach ($this->linkItems as &$element) { CCatalogDiscount::SetProductPropertiesCache($element['ID'], $element['PROPERTIES']); if (isset($this->arParams['PROPERTY_CODE'][$iblock])) { $properties = $this->arParams['PROPERTY_CODE'][$iblock]; foreach ($properties as $propertyName) { if (!isset($element['PROPERTIES'][$propertyName])) { continue; } $prop =& $element['PROPERTIES'][$propertyName]; $boolArr = is_array($prop["VALUE"]); if ($boolArr && !empty($prop["VALUE"]) || !$boolArr && strlen($prop["VALUE"]) > 0) { $element['DISPLAY_PROPERTIES'][$propertyName] = CIBlockFormatProperties::GetDisplayValue($element, $prop, 'catalog_out'); } unset($prop); } } if ($this->arParams['ADD_PROPERTIES_TO_BASKET'] == 'Y' && !empty($this->arParams['CART_PROPERTIES'][$iblock])) { $element["PRODUCT_PROPERTIES"] = CIBlockPriceTools::GetProductProperties($element['IBLOCK_ID'], $element["ID"], $this->arParams['CART_PROPERTIES'][$iblock], $element["PROPERTIES"]); if (!empty($element["PRODUCT_PROPERTIES"])) { $element['PRODUCT_PROPERTIES_FILL'] = CIBlockPriceTools::getFillProductProperties($element['PRODUCT_PROPERTIES']); } } } unset($element, $this->linkItems); } unset($iblock); unset($elementKey); return $items; }
foreach ($arResult['DISPLAY_PROPERTIES_ZAKREPI'] as $a=>$item) { $arResult['DISPLAY_PROPERTIES']['OPTIONS_ALL_ELEMENT'][$a]['DESCRIPTION'] = $item['NAME']; if( $item['MULTIPLE'] == 'Y'){ $arResult['DISPLAY_PROPERTIES']['OPTIONS_ALL_ELEMENT'][$a]['VALUE'] = ''; foreach($item['~VALUE'] as $k=>$prop) { $arResult['DISPLAY_PROPERTIES']['OPTIONS_ALL_ELEMENT'][$a]['VALUE'] .=$prop; if($k+1 < count($item['~VALUE'])) $arResult['DISPLAY_PROPERTIES']['OPTIONS_ALL_ELEMENT'][$a]['VALUE'] .=', '; } } else{ $arResult['DISPLAY_PROPERTIES']['OPTIONS_ALL_ELEMENT'][$a]['VALUE'] = $item['~VALUE']; } } /*foreach($arResult['DISPLAY_PROPERTIES']['CML2_ATTRIBUTES']['VALUE'] as $a=>$item) { if($a >= 5) break; //Выводим только 5 первых свойств $arResult['DISPLAY_PROPERTIES']['OPTIONS_5_ELEMENT'][$a]['DESCRIPTION'] = $arResult['DISPLAY_PROPERTIES']['CML2_ATTRIBUTES']['DESCRIPTION'][$a]; $arResult['DISPLAY_PROPERTIES']['OPTIONS_5_ELEMENT'][$a]['VALUE'] = $arResult['DISPLAY_PROPERTIES']['CML2_ATTRIBUTES']['VALUE'][$a]; }*/ /*description*/ $rsElement = CIBlockElement::GetList(array(), array("ID"=>$arResult['ID'], "ACTIVE"=>"Y"), false); if($arElement = $rsElement->GetNext()) { $ipropValues = new Bitrix\Iblock\InheritedProperty\ElementValues($arElement["IBLOCK_ID"], $arElement["ID"]); $arElement["IPROPERTY_VALUES"] = $ipropValues->getValues(); $arResult['PROPERTY_DESCRIPTION_VALUE'] = $arElement["IPROPERTY_VALUES"]; } /**/ ?>