403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/cvetdv.ru/bitrix/components/bitrix/search.title/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/cvetdv.ru/bitrix/components/bitrix/search.title/component.php
<?php
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true)
{
	die();
}

$isSearchInstalled = CModule::IncludeModule('search');

if (!isset($arParams['PAGE']) || $arParams['PAGE'] == '')
{
	$arParams['PAGE'] = '#SITE_DIR#search/index.php';
}

$arResult['CATEGORIES'] = [];

$query = ltrim($_POST['q'] ?? '');
if (
	!empty($query)
	&& $_REQUEST['ajax_call'] === 'y'
	&& (
		!isset($_REQUEST['INPUT_ID'])
		|| $_REQUEST['INPUT_ID'] == $arParams['INPUT_ID']
	)
)
{
	if (!$isSearchInstalled)
	{
		require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/search/tools/language.php';
		require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/search/tools/stemming.php';
	}

	$arResult['alt_query'] = '';
	if ($arParams['USE_LANGUAGE_GUESS'] !== 'N')
	{
		$arLang = CSearchLanguage::GuessLanguage($query);
		if (is_array($arLang) && $arLang['from'] != $arLang['to'])
		{
			$arResult['alt_query'] = CSearchLanguage::ConvertKeyboardLayout($query, $arLang['from'], $arLang['to']);
		}
	}

	$arResult['query'] = $query;
	$arResult['phrase'] = stemming_split($query, LANGUAGE_ID);

	$arParams['NUM_CATEGORIES'] = intval($arParams['NUM_CATEGORIES']);
	if ($arParams['NUM_CATEGORIES'] <= 0)
	{
		$arParams['NUM_CATEGORIES'] = 1;
	}

	$arParams['TOP_COUNT'] = intval($arParams['TOP_COUNT']);
	if ($arParams['TOP_COUNT'] <= 0)
	{
		$arParams['TOP_COUNT'] = 5;
	}

	$arOthersFilter = ['LOGIC' => 'OR'];

	for ($i = 0; $i < $arParams['NUM_CATEGORIES']; $i++)
	{
		$bCustom = true;
		if (is_array($arParams['CATEGORY_' . $i]))
		{
			foreach ($arParams['CATEGORY_' . $i] as $categoryCode)
			{
				if ((mb_strpos($categoryCode, 'custom_') !== 0))
				{
					$bCustom = false;
					break;
				}
			}
		}
		else
		{
			$bCustom = (mb_strpos($arParams['CATEGORY_' . $i], 'custom_') === 0);
		}

		if ($bCustom)
		{
			continue;
		}

		$category_title = trim($arParams['CATEGORY_' . $i . '_TITLE']);
		if (empty($category_title))
		{
			if (is_array($arParams['CATEGORY_' . $i]))
			{
				$category_title = implode(', ', $arParams['CATEGORY_' . $i]);
			}
			else
			{
				$category_title = trim($arParams['CATEGORY_' . $i]);
			}
		}
		if (empty($category_title))
		{
			continue;
		}

		$arResult['CATEGORIES'][$i] = [
			'TITLE' => htmlspecialcharsbx($category_title),
			'ITEMS' => []
		];

		if ($isSearchInstalled)
		{
			$exFILTER = [
				0 => CSearchParameters::ConvertParamsToFilter($arParams, 'CATEGORY_' . $i),
			];
			$exFILTER[0]['LOGIC'] = 'OR';

			if ($arParams['CHECK_DATES'] === 'Y')
			{
				$exFILTER['CHECK_DATES'] = 'Y';
			}

			$arOthersFilter[] = $exFILTER;

			$j = 0;
			$obTitle = new CSearchTitle;
			$obTitle->setMinWordLength($_REQUEST['l']);
			if ($obTitle->Search(
				$arResult['alt_query'] ? $arResult['alt_query'] : $arResult['query']
				,$arParams['TOP_COUNT']
				,$exFILTER
				,false
				,$arParams['ORDER']
			))
			{
				while ($ar = $obTitle->Fetch())
				{
					$j++;
					if ($j > $arParams['TOP_COUNT'])
					{
						$params = ['q' => $arResult['alt_query'] ? $arResult['alt_query'] : $arResult['query']];

						$url = CHTTP::urlAddParams(
								str_replace('#SITE_DIR#', SITE_DIR, $arParams['PAGE'])
								,$params
								,['encode' => true]
							) . CSearchTitle::MakeFilterUrl('f', $exFILTER);

						$arResult['CATEGORIES'][$i]['ITEMS'][] = [
							'NAME' => GetMessage('CC_BST_MORE'),
							'URL' => htmlspecialcharsex($url),
							'TYPE' => 'all'
						];
						break;
					}
					else
					{
						$arResult['CATEGORIES'][$i]['ITEMS'][] = [
							'NAME' => $ar['NAME'],
							'URL' => htmlspecialcharsbx($ar['URL']),
							'MODULE_ID' => $ar['MODULE_ID'],
							'PARAM1' => $ar['PARAM1'],
							'PARAM2' => $ar['PARAM2'],
							'ITEM_ID' => $ar['ITEM_ID'],
						];
					}
				}
			}

			if (!$j)
			{
				unset($arResult['CATEGORIES'][$i]);
			}
		}

		/* This code adds not fixed keyboard link to the category
		if($arResult["alt_query"] != "")
		{
			$params = array(
				"q" => $arResult["query"],
				"spell" => 1,
			);

			$url = CHTTP::urlAddParams(
				str_replace("#SITE_DIR#", SITE_DIR, $arParams["PAGE"])
				,$params
				,array("encode"=>true)
			).CSearchTitle::MakeFilterUrl("f", $exFILTER);

			$arResult["CATEGORIES"][$i]["ITEMS"][] = array(
				"NAME" => GetMessage("CC_BST_QUERY_PROMPT", array("#query#"=>$arResult["query"])),
				"URL" => htmlspecialcharsex($url),
			);
		}
		*/
	}

	if ($arParams['SHOW_OTHERS'] === 'Y' && $isSearchInstalled)
	{
		$arResult['CATEGORIES']['others'] = [
			'TITLE' => htmlspecialcharsbx($arParams['CATEGORY_OTHERS_TITLE']),
			'ITEMS' => [],
		];

		$j = 0;
		$obTitle = new CSearchTitle;
		$obTitle->setMinWordLength($_REQUEST['l']);
		if ($obTitle->Search(
			$arResult['alt_query'] ? $arResult['alt_query'] : $arResult['query']
			,$arParams['TOP_COUNT']
			,$arOthersFilter
			,true
			,$arParams['ORDER']
		))
		{
			while ($ar = $obTitle->Fetch())
			{
				$j++;
				if ($j > $arParams['TOP_COUNT'])
				{
					//it's really hard to make it working
					break;
				}
				else
				{
					$arResult['CATEGORIES']['others']['ITEMS'][] = [
						'NAME' => $ar['NAME'],
						'URL' => htmlspecialcharsbx($ar['URL']),
						'MODULE_ID' => $ar['MODULE_ID'],
						'PARAM1' => $ar['PARAM1'],
						'PARAM2' => $ar['PARAM2'],
						'ITEM_ID' => $ar['ITEM_ID'],
					];
				}
			}
		}

		if (!$j)
		{
			unset($arResult['CATEGORIES']['others']);
		}
	}

	if (!empty($arResult['CATEGORIES']) && $isSearchInstalled)
	{
		$arResult['CATEGORIES']['all'] = [
			'TITLE' => '',
			'ITEMS' => []
		];

		$params = [
			'q' => $arResult['alt_query'] ? $arResult['alt_query'] : $arResult['query'],
		];
		$url = CHTTP::urlAddParams(
			str_replace('#SITE_DIR#', SITE_DIR, $arParams['PAGE'])
			,$params
			,['encode' => true]
		);
		$arResult['CATEGORIES']['all']['ITEMS'][] = [
			'NAME' => GetMessage('CC_BST_ALL_RESULTS'),
			'URL' => $url,
		];
		/*
		if($arResult["alt_query"] != "")
		{
			$params = array(
				"q" => $arResult["query"],
				"spell" => 1,
			);

			$url = CHTTP::urlAddParams(
				str_replace("#SITE_DIR#", SITE_DIR, $arParams["PAGE"])
				,$params
				,array("encode"=>true)
			);

			$arResult["CATEGORIES"]["all"]["ITEMS"][] = array(
				"NAME" => GetMessage("CC_BST_ALL_QUERY_PROMPT", array("#query#"=>$arResult["query"])),
				"URL" => htmlspecialcharsex($url),
			);
		}
		*/
	}

	$arResult['CATEGORIES_ITEMS_EXISTS'] = false;
	foreach ($arResult['CATEGORIES'] as $category)
	{
		if (!empty($category['ITEMS']) && is_array($category['ITEMS']))
		{
			$arResult['CATEGORIES_ITEMS_EXISTS'] = true;
			break;
		}
	}
}

$arResult['FORM_ACTION'] = htmlspecialcharsbx(str_replace('#SITE_DIR#', SITE_DIR, $arParams['PAGE']));

if (
	isset($_REQUEST['ajax_call'])
	&& $_REQUEST['ajax_call'] === 'y'
	&& (
		!isset($_REQUEST['INPUT_ID'])
		|| $_REQUEST['INPUT_ID'] == $arParams['INPUT_ID']
	)
)
{
	$APPLICATION->RestartBuffer();

	if (!empty($query))
	{
		$this->IncludeComponentTemplate('ajax');
	}
	CMain::FinalActions();
	die();
}
else
{
	$APPLICATION->AddHeadScript($this->GetPath() . '/script.js');
	CUtil::InitJSCore(['ajax']);
	$this->IncludeComponentTemplate();
}

Youez - 2016 - github.com/yon3zu
LinuXploit