Current Path : /var/www/html/clients/amz.e-nk.ru/bitrix/templates/demo_copy/iblock/catalog/ |
Current File : /var/www/html/clients/amz.e-nk.ru/bitrix/templates/demo_copy/iblock/catalog/sections_top.php |
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?><? /************************************************************************** Компонент для отображения top элементов сгруппированных по разделам ***************************************************************************/ global $USER, $APPLICATION; if (CModule::IncludeModule("iblock")): IncludeTemplateLangFile(__FILE__); /************************************************************************* Инициализируем начальные параметры компонента *************************************************************************/ /* $IBLOCK_TYPE = $arParams["IBLOCK_TYPE"]; // тип инфо-блока $IBLOCK_ID = $arParams["IBLOCK_ID"]; // ID инфо-блока $PARENT_SECTION_ID = $arParams["PARENT_SECTION_ID"]; // родительский раздел $SECTION_SORT_FIELD = $arParams["SECTION_SORT_FIELD"]; // по какому полю сортируем разделы $SECTION_SORT_ORDER = $arParams["SECTION_SORT_ORDER"]; // порядок сортировки разделов $SECTION_COUNT = $arParams["SECTION_COUNT"]; // кол-во разделов $ELEMENT_SORT_FIELD = $arParams["ELEMENT_SORT_FIELD"]; // по какому полю сортируем элементы $ELEMENT_SORT_ORDER = $arParams["ELEMENT_SORT_ORDER"]; // порядок сортировки элементов $SECTION_URL = $arParams["SECTION_URL"]; // URL ведущий на страницу с содержимым раздела $ELEMENT_COUNT = $arParams["ELEMENT_COUNT"]; // кол-во элементов в группе $LINE_ELEMENT_COUNT = $arParams["LINE_ELEMENT_COUNT"]; // количество элементов в строке $CACHE_TIME = $arParams["CACHE_TIME"]; // время кэширования (сек.) $FILTER_NAME = $arParams["FILTER_NAME"]; // имя массива со значениями фильтра для фильтрации свойств $CACHE_FILTER = $arParams["CACHE_FILTER"]; // Y - кэшировать результат выборки при установленом фильтре $arrPROPERTY_CODE = $arParams["arrPROPERTY_CODE"]; // массив кодов свойств для вывода рядом с элементом $PRICE_CODE = $arParams["PRICE_CODE"]; // выводимый тип цены $BASKET_URL = $arParams["BASKET_URL"]; // страница с корзиной */ $arrPROPERTY_CODE = is_array($arrPROPERTY_CODE) ? $arrPROPERTY_CODE : array(); $LINE_ELEMENT_COUNT = intval($LINE_ELEMENT_COUNT); global $$FILTER_NAME; $arrFilter = ${$FILTER_NAME}; $filter_set = count($arrFilter)>0 ? "Y" : "N"; $CACHE_FILTER = ($CACHE_FILTER=="Y") ? "Y" : "N"; if ($CACHE_FILTER=="N" && count($arrFilter)>0) $CACHE_TIME = 0; CIBlock::ShowPanel($IBLOCK_ID, 0, 0, $IBLOCK_TYPE); if (!(CModule::IncludeModule("sale") && CModule::IncludeModule("catalog"))) $PRICE_CODE = ""; /************************************************************************* Работа с кэшем *************************************************************************/ $CACHE_ID = __FILE__.md5(serialize($arParams).serialize($arrFilter).$USER->GetGroups()); $obCache = new CPHPCache; if($obCache->StartDataCache($CACHE_TIME, $CACHE_ID, "/")): /************************************ Разделы ************************************/ $ID=$arParams["IBLOCK_ID"]; if(isset($_GET[Section])&&$_GET[Section]!='') { $SECT_ID=$_GET[Section]; $items = GetIBlockElementList($ID, $SECT_ID,$SORT, $NEWS_COUNT); $block=CIBlockSection::GetByID($SECT_ID); $block=$block->Fetch(); $APPLICATION->SetTitle($block["NAME"]); ?> <TABLE class=text cellSpacing=1 cellPadding=3 width="100%" border=0> <tr> <TD class=tablehead><?echo htmlspecialchars($block["NAME"])?></TD> <TD class=tablehead align=middle style = "width : 100px;"><B><FONT class=tableheadtext>Скачать</FONT></B></TD> <TR> <? $n=1; $cell = 0; while ($obElement = $items->GetNextElement()): $found="Y"; $cell++; $arElement = $obElement->GetFields(); $arProperty = $obElement->GetProperties(); ?> <TD class=tablebody><a href="<?=$arElement["DETAIL_PAGE_URL"]?>"><?=$arElement["NAME"]?></a> <? if (is_array($arrPROPERTY_CODE) && count($arrPROPERTY_CODE)>0): ?><br><img src="/bitrix/images/1.gif" width="1" height="6" border="0" title=""><br><? reset($arrPROPERTY_CODE); foreach($arrPROPERTY_CODE as $pid): if (is_array($arProperty[$pid]["VALUE"]) && count($arProperty[$pid]["VALUE"])>0 || !is_array($arProperty[$pid]["VALUE"]) && strlen($arProperty[$pid]["VALUE"])>0): ?> <table cellpadding="1" cellspacing="0" border="0"> <tr> <td valign="top" nowrap><font class="smalltext"><?=$arProperty[$pid]["NAME"]?>: </font></td> <td valign="top" nowrap><font class="smalltextblack"><?echo (is_array($arProperty[$pid]["VALUE"])) ? implode("<br>",$arProperty[$pid]["VALUE"]) : $arProperty[$pid]["VALUE"]?></font></td> </tr> </table> <? endif; endforeach; endif; ?> </TD> <TD class=tablebody vAlign=top align=middle> <? $path="../".CFile::GetPath($arProperty[FILE][VALUE]); $filesize=round(filesize($path)/1024,2); echo "<a href=".CFile::GetPath($arProperty[FILE][VALUE])." title=\"$filesize кб\"><img src=/images/icons/zip.jpg border=0></a>"; echo "</TD></TR><tr><td></td></tr>"; endwhile; // while ($obElement = $rsElements->GetNextElement()): ?> </TABLE> <? } else { $name=CIBlock::GetByID($IBLOCK_ID); $name=$name->Fetch(); $APPLICATION->SetTitle($name["NAME"]); $rsSections = GetIBlockSectionList($IBLOCK_ID, $PARENT_SECTION_ID, array($SECTION_SORT_FIELD => $SECTION_SORT_ORDER, "ID" => "ASC"), $SECTION_COUNT, array("ACTIVE"=>"Y")); $arrProp = ""; while ($arSection = $rsSections->Fetch()) : /************************************ Элементы ************************************/ // перечислим поля элемента которые нам нужны в выборке $arSelect = array( "ID", "IBLOCK_ID", "IBLOCK_SECTION_ID", "NAME", "PREVIEW_PICTURE", "DETAIL_PICTURE", "DETAIL_PAGE_URL" ); if (is_array($arrPrice) && count($arrPrice)>0) $arSelect[] = "CATALOG_GROUP_".$arrPrice[$PRICE_CODE]["ID"]; // дополним фильтр $arrFilter["ACTIVE"] = "Y"; $arrFilter["IBLOCK_ID"] = $IBLOCK_ID; $arrFilter["SECTION_ID"] = $arSection["ID"]; if ($rsElements = GetIBlockElementListEx($IBLOCK_TYPE, false, false, array($ELEMENT_SORT_FIELD => $ELEMENT_SORT_ORDER), $ELEMENT_COUNT, $arrFilter, $arSelect)): $rsElements->NavStart($ELEMENT_COUNT); $count = intval($rsElements->SelectedRowsCount()); if ($count>0): /**************************************************************** HTML форма ****************************************************************/ ?> <TABLE class=text cellSpacing=1 cellPadding=3 width="100%" border=0> <tr> <TD class=tablehead><a href=?Section=<?=$arSection[ID]?>><?echo htmlspecialchars($arSection["NAME"])?></a></TD> <TD class=tablehead align=middle style = "width : 100px;"><B><FONT class=tableheadtext>Скачать</FONT></B></TD> <? $n=1; $cell = 0; while ($obElement = $rsElements->GetNextElement()): $found="Y"; $cell++; $arElement = $obElement->GetFields(); $arProperty = $obElement->GetProperties(); ?> <TR> <TD class=tablebody><a href="<?=$arElement["DETAIL_PAGE_URL"]?>"><?=$arElement["NAME"]?></a> <? if (is_array($arrPROPERTY_CODE) && count($arrPROPERTY_CODE)>0): ?><br><img src="/bitrix/images/1.gif" width="1" height="6" border="0" title=""><br><? reset($arrPROPERTY_CODE); foreach($arrPROPERTY_CODE as $pid): if (is_array($arProperty[$pid]["VALUE"]) && count($arProperty[$pid]["VALUE"])>0 || !is_array($arProperty[$pid]["VALUE"]) && strlen($arProperty[$pid]["VALUE"])>0): ?> <table cellpadding="1" cellspacing="0" border="0"> <tr> <td valign="top" nowrap><font class="smalltext"><?=$arProperty[$pid]["NAME"]?>: </font></td> <td valign="top" nowrap><font class="smalltextblack"><?echo (is_array($arProperty[$pid]["VALUE"])) ? implode("<br>",$arProperty[$pid]["VALUE"]) : $arProperty[$pid]["VALUE"]?></font></td> </tr> </table> <? endif; endforeach; endif; ?> </TD> <TD class=tablebody vAlign=top align=middle> <? $path="../".CFile::GetPath($arProperty[FILE][VALUE]); $filesize=round(filesize($path)/1024,2); echo "<a href=".CFile::GetPath($arProperty[FILE][VALUE])." title=\"$filesize кб\"><img src=/images/icons/zip.jpg border=0></a>"; echo "</TD></TR><tr><td></td></tr>"; endwhile; // while ($obElement = $rsElements->GetNextElement()): ?> </TABLE> <br> <? endif; // if ($count>0): endif; // if ($rsElements = GetIBlockElementListEx endwhile; if ($found!="Y") echo ShowNote(GetMessage("CATALOG_ELEMENT_NOT_FOUND")); $obCache->EndDataCache(); } endif; endif; ?>