%PDF- %PDF-
Direktori : /proc/self/root/home/bitrix/www/bitrix/modules/sale/lib/delivery/ |
Current File : //proc/self/root/home/bitrix/www/bitrix/modules/sale/lib/delivery/menu.php |
<?php namespace Bitrix\Sale\Delivery; use Bitrix\Main\Localization\Loc; Loc::loadMessages(__FILE__); class Menu { protected $currentDeliveryId; public function __construct($currentDeliveryId = 0) { $this->currentDeliveryId = $currentDeliveryId; } public function getItems() { $result = array( "text" => Loc::getMessage("SALE_DELIVERY"), "title" => Loc::getMessage("SALE_DELIVERY_DESCR"), "url" => "sale_delivery_service_list.php?lang=".LANGUAGE_ID."&filter_group=0", "page_icon" => "sale_page_icon", //"icon" => "sale_section_icon", "items_id" => "sale_delivery_service_list", "more_url" => array( "sale_delivery_service_edit.php?lang=".LANGUAGE_ID."&PARENT_ID=0", "sale_delivery_service_edit.php?lang=".LANGUAGE_ID, "sale_delivery_service_list.php?lang=".LANGUAGE_ID, "sale_delivery_eservice_edit.php?lang=".LANGUAGE_ID, "sale_delivery_eservice_list.php?lang=".LANGUAGE_ID ), ); $children = $this->getChildren(); foreach($children as $key => $child) if(!$child["can_has_children"]) unset($children[$key]); if(!empty($children)) { $result["items"] = array_values($children); $result["dynamic"] = true; } return $result; } protected function getChildren(array $parentIds = array(0)) { if(empty($parentIds)) return array(); $result = array(); $dbRes = \Bitrix\Sale\Delivery\Services\Table::getList(array( "filter" => array( "=PARENT_ID" => $parentIds ), "select" => array( "ID", "NAME", "DESCRIPTION", "CLASS_NAME" ), "order" => array( "SORT" =>"ASC", "NAME" => "ASC" ) )); $services = array(); $parents = array(); while($service = $dbRes->fetch()) { $services[$service["ID"]] = $service; $result[$service["ID"]] = array(); if(is_callable($service["CLASS_NAME"].'::canHasChildren') && $service["CLASS_NAME"]::canHasChildren()) $parents[] = $service["ID"]; } if(!empty($parents)) $childrenList = $this->getChildren($parents); foreach($services as $serviceId => $service) { $canHasChildren = in_array($serviceId, $parents); if($canHasChildren && !empty($childrenList[$serviceId])) $children = $childrenList[$serviceId]; else $children =array(); foreach($children as $key => $child) if(!$child["can_has_children"]) unset($children[$key]); $item = array( "text" => htmlspecialcharsbx($service["NAME"]), "title" => htmlspecialcharsbx($service["DESCRIPTION"]), "url" => "sale_delivery_service_list.php?lang=".LANGUAGE_ID."&filter_group=".$serviceId."&PARENT_ID=".$serviceId."&apply_filter=y", "page_icon" => "sale_page_icon", //"icon" => $canHasChildren ? "sale_section_icon" : "", "can_has_children" => $canHasChildren, "more_url" => array( "sale_delivery_service_edit.php?lang=".LANGUAGE_ID."&PARENT_ID=".$serviceId ), "items_id" => "sale_delivery_service_list_".$serviceId, ); if($canHasChildren && !empty($children)) { $item["items"] = $children; $item["dynamic"] = true; $item["items_id"] = "menu_sale_delivery_".$serviceId; } $result[$serviceId] = $item; } return $result; } }