1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
get_search.php
См. документацию.
1<?php
2define("NO_KEEP_STATISTIC", true);
3define("NO_AGENT_STATISTIC", true);
4define("NOT_CHECK_PERMISSIONS", true);
5define("BX_SEARCH_ADMIN", true);
6require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
7require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_js.php");
8
9$start = microtime(true);
10
11$query = ltrim($_POST["q"] ?? '');
12if(
13 !empty($query)
14 && $_REQUEST["ajax_call"] === "y"
15 && CModule::IncludeModule("search")
16):
17
22$adminPage->Init();
23$adminMenu->Init($adminPage->aModules);
24
26 "CATEGORIES"=>array(
27 "global_menu_content"=>array("ITEMS"=>array(), "TITLE"=>GetMessage('admin_lib_menu_content')),
28 "global_menu_services"=>array("ITEMS"=>array(), "TITLE"=>GetMessage('admin_lib_menu_services')),
29 "global_menu_store"=>array("ITEMS"=>array(), "TITLE"=>GetMessage('admin_lib_menu_store')),
30 "global_menu_statistics"=>array("ITEMS"=>array(), "TITLE"=>GetMessage('admin_lib_menu_stat')),
31 "global_menu_settings"=>array("ITEMS"=>array(), "TITLE"=>GetMessage('admin_lib_menu_settings')),
32 )
33);
34
36
38
39$preg_template = "/(^|[^".$arStemFunc["pcre_letters"]."])(".str_replace("/", "\\/", implode("|", array_map('preg_quote', array_keys($arPhrase)))).")/iu";
40$bFound = false;
41
42function GetStrings(&$item, $key, $p)
43{
45
46 $category = $p[0];
47 $icon = $p[1];
48 $arRes = null;
49
50 if(!empty($item["url"]))
51 {
52 $searchstring = '';
53 if($item["text"])
54 {
55 if(preg_match_all($preg_template, mb_strtoupper($item["text"]), $arMatches, PREG_OFFSET_CAPTURE))
56 {
57 $c = count($arMatches[2]);
58 for($j = $c-1; $j >= 0; $j--)
59 {
60 $prefix = substr($item["text"], 0, $arMatches[2][$j][1]);
61 $instr = substr($item["text"], $arMatches[2][$j][1], strlen($arMatches[2][$j][0]));
62 $suffix = substr($item["text"], (int)$arMatches[2][$j][1] + strlen($arMatches[2][$j][0]), strlen($item["text"]));
63 $item["text"] = $prefix."<b>".$instr."</b>".$suffix;
64 }
65 }
66 $searchstring .= $item["text"];
67 }
68
69 if(!empty($item["title"]))
70 $searchstring .= " ".$item["title"];
71
72 if(!empty($item["keywords"]))
73 $searchstring .= " ".$item["keywords"];
74
75 if(empty($item["icon"]))
76 $item["icon"] = $icon;
77
78 if(preg_match_all($preg_template, mb_strtoupper($searchstring), $arMatches, PREG_OFFSET_CAPTURE))
79 {
80 $ar = Array();
81 foreach($arMatches[0] as $m)
82 $ar[] = trim($m[0], " ,;>");
83 if(count(array_unique($ar)) == count($arPhrase))
84 {
85 $arRes = array("NAME"=>$item["text"], "URL"=>$item["url"], "TITLE"=>$item["title"], "ICON"=>$item['icon']);
86 }
87 }
88 }
89
90 if(is_array($arRes))
91 {
92 if(empty($item['category']))
93 $item['category'] = $category;
94
95 if(!is_array($arResult["CATEGORIES"][$item['category']]))
96 {
97 $arResult["CATEGORIES"][$item['category']] = Array('TITLE'=>'', 'ITEMS'=>Array());
98 if($item['category_name']!='')
99 $arResult["CATEGORIES"][$item['category']]['TITLE'] = $item['category_name'];
100 }
101 $arResult["CATEGORIES"][$item['category']]["ITEMS"][] = $arRes;
102 $bFound = true;
103 }
104
105 if(isset($item["items"]) && is_array($item["items"]))
106 array_walk($item['items'], 'GetStrings', array($category, $item["icon"] ?? ''));
107}
108
109foreach($adminMenu->aGlobalMenu as $menu_id => $menu)
110 array_walk($menu['items'], 'GetStrings', array($menu_id, ''));
111
112
113if($bFound)
114{
115?>
116 <table class="adm-search-result">
117 <?foreach($arResult["CATEGORIES"] as $category_id => $arCategory):
118 if(empty($arCategory["ITEMS"]))
119 continue;
120 ?>
121 <?foreach($arCategory["ITEMS"] as $i => $arItem):
122 if($i>9)
123 break;
124 ?>
125 <tr onclick="window.location='<?=CUtil::JSEscape($arItem["URL"]);?>';">
126 <?if($i == 0):?>
127 <th>&nbsp;<?=$arCategory["TITLE"]?></th>
128 <?else:?>
129 <th>&nbsp;</th>
130 <?endif?>
131 <td class="adm-search-item" <?if($arItem["TITLE"]!='' && $arItem["TITLE"]!=$arItem["NAME"]):?>title="<?=$arItem["TITLE"]?>"<?endif?>>
132 <a href="<?=$arItem["URL"]?>"><?if($arItem["ICON"]!=''):?><span class="adm-submenu-item-link-icon <?=$arItem["ICON"]?>"></span><?endif?><span class="adm-submenu-item-name-link-text"><?=$arItem["NAME"]?></span></a>
133 </td>
134 </tr>
135 <?endforeach;?>
136 <?endforeach;?>
137 </table>
138<?
139}
140
141
143
144require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin_js.php");
$arResult
Определения generate_coupon.php:16
& nbsp
Определения epilog_main_admin.php:38
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$_REQUEST["admin_mnu_menu_id"]
Определения get_menu.php:8
$arStemFunc
Определения get_search.php:35
$start
Определения get_search.php:9
$arPhrase
Определения get_search.php:37
$preg_template
Определения get_search.php:39
GetStrings(&$item, $key, $p)
Определения get_search.php:42
$bFound
Определения get_search.php:40
$query
Определения get_search.php:11
$p
Определения group_list_element_edit.php:23
global $adminMenu
Определения init_admin.php:7
global $adminPage
Определения init_admin.php:7
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
endif
Определения csv_new_setup.php:990
GetMessage($name, $aReplace=null)
Определения tools.php:3397
global_menu_<?echo $menu["menu_id"]?> adm main menu item icon adm main menu item text text adm main menu hover adm submenu menucontainer menu_id menu_id items_id items_id desktop menu_id block none adm global submenu<?=($subMenuDisplay=="block" ? " adm-global-submenu-active" :"")?> global_submenu_<?echo $menu["menu_id"]?> text MAIN_PR_ADMIN_FAV items adm submenu items wrap adm submenu items stretch wrap BX adminMenu itemsStretchScroll()"> <table class if (!empty( $menu["items"])) elseif ( $menu[ 'menu_id']=='desktop') if ( $menu[ 'menu_id']=='desktop') endforeach
Определения prolog_main_admin.php:255
<? endif;?> window document title
Определения prolog_main_admin.php:76
$ar
Определения options.php:199
if(empty($signedUserToken)) $key
Определения quickway.php:257
$i
Определения factura.php:643
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
Определения waybill.php:936
$arRes
Определения options.php:104
stemming_split($sText, $sLang='ru')
Определения stemming.php:122
stemming_init($sLang='ru')
Определения stemming.php:3