%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/catalog/lib/helpers/admin/ |
| Current File : /home/bitrix/www/bitrix/modules/catalog/lib/helpers/admin/tools.php |
<?php
namespace Bitrix\Catalog\Helpers\Admin;
use Bitrix\Main,
Bitrix\Main\Localization\Loc,
Bitrix\Catalog;
Loc::loadMessages(__FILE__);
/**
* Class Tools
* Provides various useful methods for admin pages.
*
* @package Bitrix\Catalog\Helpers\Admin
*/
class Tools
{
/**
* Return array with edit url for all price types.
*
* @return array
*/
public static function getPriceTypeLinkList()
{
global $USER, $adminPage, $adminSidePanelHelper;
$selfFolderUrl = $adminPage->getSelfFolderUrl();
$result = array();
/** @noinspection PhpMethodOrClassCallIsNotCaseSensitiveInspection */
if (!($USER->canDoOperation('catalog_read') || $USER->canDoOperation('catalog_group')))
return $result;
/** @noinspection PhpMethodOrClassCallIsNotCaseSensitiveInspection */
$priceTypeLinkTitle = Main\Text\HtmlFilter::encode(
$USER->canDoOperation('catalog_group')
? Loc::getMessage('CATALOG_HELPERS_ADMIN_TOOLS_MESS_PRICE_TYPE_EDIT_TITLE')
: Loc::getMessage('CATALOG_HELPERS_ADMIN_TOOLS_MESS_PRICE_TYPE_VIEW_TITLE')
);
//TODO: use d7 managed cache for price type list
/** @noinspection PhpMethodOrClassCallIsNotCaseSensitiveInspection */
$priceTypeList = \CCatalogGroup::getListArray();
if (empty($priceTypeList))
return $result;
foreach ($priceTypeList as $priceType)
{
$id = (int)$priceType['ID'];
$title = (string)$priceType['NAME_LANG'];
$fullTitle = '['.$id.'] ['.$priceType['NAME'].']'.($title != '' ? ' '.$title : '');
$editUrl = $selfFolderUrl.'cat_group_edit.php?ID='.$id.'&lang='.LANGUAGE_ID;
$editUrl = $adminSidePanelHelper->editUrlToPublicPage($editUrl);
$result[$id] = '<a href="'.$editUrl.'" title="'.$priceTypeLinkTitle.'">'.Main\Text\HtmlFilter::encode($fullTitle).'</a>';
unset($fullTitle, $title, $id);
}
unset($priceType, $priceTypeList, $priceTypeLinkTitle);
return $result;
}
/**
* Return price type list for dropdown selectors.
*
* @param bool $codeIndex Use price code for result index.
* @return array
*/
public static function getPriceTypeList($codeIndex = false)
{
$result = array();
$codeIndex = ($codeIndex === true);
//TODO: use d7 managed cache for price type list
/** @noinspection PhpMethodOrClassCallIsNotCaseSensitiveInspection */
foreach (\CCatalogGroup::getListArray() as $priceType)
{
$id = (int)$priceType['ID'];
$title = (string)$priceType['NAME_LANG'];
$index = ($codeIndex ? $priceType['NAME'] : $id);
$result[$index] = '['.$id.'] ['.$priceType['NAME'].']'.($title != '' ? ' '.$title : '');
unset($index, $title, $id);
}
unset($priceType);
return $result;
}
}