protected static function processSearchGetAdditional($result) { $result = parent::processSearchGetAdditional($result); // get common path of parent if(isset($_REQUEST['FILTER']['PARENT_ID'])) { $path = array(); $result['ETC']['PATH_NAMES'] = array(); if($pId = intval($_REQUEST['FILTER']['PARENT_ID'])) { $res = Location\LocationTable::getPathToNode($pId, array( 'select' => array( 'ID', 'CODE', 'TYPE_ID', 'LNAME' => 'NAME.NAME' ), 'filter' => array( 'NAME.LANGUAGE_ID' => static::processSearchRequestGetLang() ) )); $res->addReplacedAliases(array('LNAME' => 'NAME')); $node = array(); while($item = $res->fetch()) { $path[] = intval($item['ID']); $result['ETC']['PATH_NAMES'][$item['ID']] = $item['NAME']; $node = $item; } $node['PATH'] = array_reverse($path); $result['ETC']['PARENT_ITEM'] = $node; } } return $result; }
public function formatResult() { parent::formatResult(); if(is_array($this->arResult['PATH'])) { foreach($this->arResult['PATH'] as &$node) { unset($node['LEFT_MARGIN']); unset($node['RIGHT_MARGIN']); } } unset($this->arResult['LOCATION']['LEFT_MARGIN']); unset($this->arResult['LOCATION']['RIGHT_MARGIN']); }
protected function getCacheDependences() { return array_merge(parent::getCacheDependences(), array(self::getStrForVariable($this->useGroups))); }
<?php define("NO_KEEP_STATISTIC", true); define("NO_AGENT_STATISTIC", true); define("NO_AGENT_CHECK", true); //define("NOT_CHECK_PERMISSIONS", true); use Bitrix\Main; use Bitrix\Main\Loader; require_once $_SERVER["DOCUMENT_ROOT"] . '/bitrix/modules/main/include/prolog_before.php'; Loader::includeModule('sale'); require_once dirname(__FILE__) . '/class.php'; $result = true; $errors = array(); $data = array(); try { CUtil::JSPostUnescape(); $request = Main\Context::getCurrent()->getRequest()->getPostList(); if ($request['version'] == '2') { $data = CBitrixLocationSelectorSearchComponent::processSearchRequestV2($_REQUEST); } else { $data = CBitrixLocationSelectorSearchComponent::processSearchRequest(); } } catch (Main\SystemException $e) { $result = false; $errors[] = $e->getMessage(); } header('Content-Type: application/x-javascript; charset=' . LANG_CHARSET); print CUtil::PhpToJSObject(array('result' => $result, 'errors' => $errors, 'data' => $data), false, false, true);