%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/search.title/templates/.default/ |
Current File : //home/bitrix/www/bitrix/components/bitrix/search.title/templates/.default/result_modifier.php |
<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die(); //You may customize user card fields to display $arResult['USER_PROPERTY'] = array( "UF_DEPARTMENT", ); //Code below searches for appropriate icon for search index item. //All filenames should be lowercase. //1 //Check if index item is information block element with property DOC_TYPE set. //This property should be type list and we'll take it's values XML_ID as parameter //iblock_doc_type_<xml_id>.png //2 //When no such fle found we'll check for section attributes //iblock_section_<code>.png //iblock_section_<id>.png //iblock_section_<xml_id>.png //3 //Next we'll try to detect icon by "extention". //where extension is all a-z between dot and end of title //iblock_type_<iblock type id>_<extension>.png //4 //If we still failed. Try to match information block attributes. //iblock_iblock_<code>.png //iblock_iblock_<id>.png //iblock_iblock_<xml_id>.png //5 //If indexed item is section when checkj for //iblock_section.png //If it is an element when chek for //iblock_element.png //6 //If item belongs to main module (static file) //when check is done by it's extention //main_<extention>.png //7 //For blog module we'll check if icon for post or user exists //blog_post.png //blog_user.png //8, 9 and 10 //forum_message.png //intranet_user.png //socialnetwork_group.png //11 //In case we still failed to find an icon //<module_id>_default.png //12 //default.png $arIBlocks = array(); $image_path = $this->GetFolder()."/images/"; $abs_path = $_SERVER["DOCUMENT_ROOT"].$image_path; $arResult["SEARCH"] = array(); foreach($arResult["CATEGORIES"] as $category_id => $arCategory) { foreach($arCategory["ITEMS"] as $i => $arItem) { if(isset($arItem["ITEM_ID"])) $arResult["SEARCH"][] = &$arResult["CATEGORIES"][$category_id]["ITEMS"][$i]; } } foreach($arResult["SEARCH"] as $i=>$arItem) { $file = false; switch($arItem["MODULE_ID"]) { case "socialnetwork": case "iblock": if(substr($arItem["ITEM_ID"], 0, 1) === "G") { if(file_exists($abs_path."socialnetwork_group.png")) $file = "socialnetwork_group.png"; } elseif(CModule::IncludeModule('iblock')) { if(!array_key_exists($arItem["PARAM2"], $arIBlocks)) $arIBlocks[$arItem["PARAM2"]] = CIBlock::GetArrayByID($arItem["PARAM2"]); //section /element if(substr($arItem["ITEM_ID"], 0, 1) !== "S") { //Try to find gif by element proprety value xml id $rsElement = CIBlockElement::GetList(array(), array( "=ID" => $arItem["ITEM_ID"], "IBLOCK_ID" => $arItem["PARAM2"], ), false, false, array( "ID", "IBLOCK_ID", "CODE", "XML_ID", "PROPERTY_DOC_TYPE", ) ); $arElement = $rsElement->Fetch(); if($arElement && strlen($arElement["PROPERTY_DOC_TYPE_ENUM_ID"]) > 0) { $arEnum = CIBlockPropertyEnum::GetByID($arElement["PROPERTY_DOC_TYPE_ENUM_ID"]); if($arEnum && $arEnum["XML_ID"]) { if(file_exists($abs_path."iblock_doc_type_".strtolower($arEnum["XML_ID"]).".png")) $file = "iblock_doc_type_".strtolower($arEnum["XML_ID"]).".png"; } } //We failed. next try should be element section if(!$file) { $rsSection = CIBlockElement::GetElementGroups($arItem["ITEM_ID"], true); $arSection = $rsSection->Fetch(); if($arSection) $SECTION_ID = $arSection["ID"]; } else { $SECTION_ID = false; } } else { $SECTION_ID = $arItem["ITEM_ID"]; } //If no element icon was found. We'll take chances with section if(!$file && $SECTION_ID) { $rsSection = CIBlockSection::GetList(array(), array( "=ID" => $SECTION_ID, "IBLOCK_ID" => $arItem["PARAM2"], ) ); if($arSection = $rsSection->Fetch()) { if(strlen($arSection["CODE"]) && file_exists($abs_path."iblock_section_".strtolower($arSection["CODE"]).".png")) $file = "iblock_section_".strtolower($arSection["CODE"]).".png"; elseif(file_exists($abs_path."iblock_section_".strtolower($arSection["ID"]).".png")) $file = "iblock_section_".strtolower($arSection["ID"]).".png"; elseif(strlen($arSection["XML_ID"]) && file_exists($abs_path."iblock_section_".strtolower($arSection["XML_ID"]).".png")) $file = "iblock_section_".strtolower($arSection["XML_ID"]).".png"; } } //Try to detect by "extension" if(!$file && preg_match("/\\.([a-z]+?)$/i", $arItem["TITLE"], $match)) { if(file_exists($abs_path."iblock_type_".strtolower($arIBlocks[$arItem["PARAM2"]]["IBLOCK_TYPE_ID"])."_".$match[1].".png")) $file = "iblock_type_".strtolower($arIBlocks[$arItem["PARAM2"]]["IBLOCK_TYPE_ID"])."_".$match[1].".png"; } //We still failed to find icon? Try iblock itself if(!$file) { if(strlen($arIBlocks[$arItem["PARAM2"]]["CODE"]) && file_exists($abs_path."iblock_iblock_".strtolower($arIBlocks[$arItem["PARAM2"]]["CODE"]).".png")) $file = "iblock_iblock_".strtolower($arIBlocks[$arItem["PARAM2"]]["CODE"]).".png"; elseif(file_exists($abs_path."iblock_iblock_".strtolower($arIBlocks[$arItem["PARAM2"]]["ID"]).".png")) $file = "iblock_iblock_".strtolower($arIBlocks[$arItem["PARAM2"]]["ID"]).".png"; elseif(strlen($arIBlocks[$arItem["PARAM2"]]["XML_ID"]) && file_exists($abs_path."iblock_iblock_".strtolower($arIBlocks[$arItem["PARAM2"]]["XML_ID"]).".png")) $file = "iblock_iblock_".strtolower($arIBlocks[$arItem["PARAM2"]]["XML_ID"]).".png"; elseif(file_exists($abs_path."iblock_type_".strtolower($arIBlocks[$arItem["PARAM2"]]["IBLOCK_TYPE_ID"]).".png")) $file = "iblock_type_".strtolower($arIBlocks[$arItem["PARAM2"]]["IBLOCK_TYPE_ID"]).".png"; } if(!$file) { if(substr($arItem["ITEM_ID"], 0, 1) !== "S") { if(file_exists($abs_path."iblock_element.png")) $file = "iblock_element.png"; } else { if(file_exists($abs_path."iblock_section.png")) $file = "iblock_section.png"; } } } break; case "main": $ext = end(explode('.', $arItem["ITEM_ID"])); if(file_exists($abs_path."main_".strtolower($ext).".png")) $file = "main_".strtolower($ext).".png"; break; case "blog": if(substr($arItem["ITEM_ID"], 0, 1) === "P" && file_exists($abs_path."blog_post.png")) $file = "blog_post.png"; elseif(substr($arItem["ITEM_ID"], 0, 1) === "U" && file_exists($abs_path."blog_user.png")) $file = "blog_user.png"; break; case "forum": if(file_exists($abs_path."forum_message.png")) $file = "forum_message.png"; break; case "intranet": if(substr($arItem["ITEM_ID"], 0, 1) === "U" && file_exists($abs_path."intranet_user.png")) $file = "intranet_user.png"; break; } if(!$file) { if(file_exists($abs_path.$arItem["MODULE_ID"]."_default.png")) $file = $arItem["MODULE_ID"]."_default.png"; else $file = "default.png"; } $arResult["SEARCH"][$i]["ICON"] = $image_path.$file; } ?>