%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/bitrix/www/bitrix/modules/sale/lib/tradingplatform/
Upload File :
Create Path :
Current File : //home/bitrix/www/bitrix/modules/sale/lib/tradingplatform/catalogsectiontab.php

<?

namespace Bitrix\Sale\TradingPlatform;

use \Bitrix\Main\SystemException;
use Bitrix\Main\Localization\Loc;

Loc::loadMessages(__FILE__);

/**
 * Class CatalogSectionTab
 * Work with iblock section / catalog category.
 * @package Bitrix\Sale\TradingPlatform
 */
class CatalogSectionTab
{
	protected static $tabHandlers = array();

	function OnInit($args)
	{
		$result = array();

		$res = \Bitrix\Sale\TradingPlatformTable::getList(array(
			'select' => array("ID", "CODE", "CATALOG_SECTION_TAB_CLASS_NAME"),
			'filter' => array('=ACTIVE' => 'Y'),
		));

		while($arRes = $res->fetch())
		{
			if(strlen($arRes["CATALOG_SECTION_TAB_CLASS_NAME"]) > 0 && class_exists($arRes["CATALOG_SECTION_TAB_CLASS_NAME"]))
			{
				$tabHandler = new $arRes["CATALOG_SECTION_TAB_CLASS_NAME"];

				if(!($tabHandler instanceof TabHandler))
					throw new SystemException("TabHandler (".$arRes["CODE"].") has wrong instance. (".__CLASS__."::".__METHOD__.")");

				self::$tabHandlers[$arRes["CODE"]] = $tabHandler;
			}
		}

		if(!empty(self::$tabHandlers))
		{
			//todo: iblock filter
			$result =  array(
				"TABSET" => "SALE_TRADING_PLATFORM",
				"GetTabs" => array("\\Bitrix\\Sale\\TradingPlatform\\CatalogSectionTab", "GetTabs"),
				"ShowTab" => array("\\Bitrix\\Sale\\TradingPlatform\\CatalogSectionTab", "ShowTab"),
				"Action" => array("\\Bitrix\\Sale\\TradingPlatform\\CatalogSectionTab", "Action"),
				"Check" => array("\\Bitrix\\Sale\\TradingPlatform\\CatalogSectionTab", "Check"),
			);
		}

		return $result;
	}

	function Action($arArgs)
	{
		/** @var \CMain $APPLICATION*/
		global $APPLICATION;
		$result = true;

		foreach(self::$tabHandlers as $handler)
		{
			/** @var  TabHandler $handler*/
			try
			{
				$result = $handler->action($arArgs);
			}
			catch(SystemException $e)
			{
				$APPLICATION->ThrowException($e->getMessage());
				$result = false;
				break;
			}
		}

		return $result;
	}

	function Check($arArgs)
	{
		/** @var \CMain $APPLICATION*/
		global $APPLICATION;
		$result = true;

		foreach(self::$tabHandlers as $handler)
		{
			/** @var  TabHandler $handler*/
			try
			{
				$result = $handler->check($arArgs);
			}
			catch(SystemException $e)
			{
				$APPLICATION->ThrowException($e->getMessage());
				$result = false;
				break;
			}
		}

		return $result;
	}

	function GetTabs($arArgs)
	{
		$arTabs = array(
			array(
				"DIV" => "edit_trading_platforms",
				"TAB" => Loc::getMessage('SALE_TRADING_PLATFORMS_TAB'),
				"ICON" => "sale",
				"TITLE" => Loc::getMessage('SALE_TRADING_PLATFORMS_TAB_TITLE'),
			),
		);
		return $arTabs;
	}

	// arArgs = array("ID" => $ID, "IBLOCK"=>$arIBlock, "IBLOCK_TYPE"=>$arIBTYPE)
	function ShowTab($divName, $arArgs, $bVarsFromForm)
	{
		if ($divName == "edit_trading_platforms")
		{
			$result = "";

			foreach(self::$tabHandlers as $tradingPlatformCode => $handler)
			{
				/** @var  TabHandler $handler*/
				$header = '<tr class="heading" id="tr_'.$tradingPlatformCode.'"><td colspan="2">'.$handler->name.'</td></tr>';
				$body = $handler->showTabSection($divName, $arArgs, $bVarsFromForm);

				if(strlen($body) <= 0)
					$body = '<tr><td colspan="2">'.Loc::getMessage('SALE_TRADING_PLATFORMS_NOT_ACTIVE').' ('.$siteId = $arArgs["IBLOCK"]["LID"].')</td></tr>';

				$result .= $header.$body;
			}

			echo $result;
		}
	}
}

Zerion Mini Shell 1.0