uawdijnntqw1x1x1
IP : 3.144.230.177
Hostname : axolotl
Kernel : Linux axolotl 4.9.0-13-amd64 #1 SMP Debian 4.9.228-1 (2020-07-05) x86_64
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,
OS : Linux
PATH:
/
var
/
www
/
axolotl
/
data
/
www
/
yar.axolotls.ru
/
bitrix
/
modules
/
translate
/
lib
/
filter.php
/
/
<?php namespace Bitrix\Translate; /** * Filter. * * @property string|string[] $langId Language code. * @property int $pathId Path index Id. * @property int $nextPathId Path index Id. * @property int $nextLangPathId Lang path Id. * @property int $fileId File Id. * @property int $nextFileId File Id. * @property string $path File stricture path. * @property int $tabId Storage Id. * */ class Filter implements \Iterator, \Countable, \Serializable, \ArrayAccess { const STORAGE_NAME = 'TRANSLATE_FILTER'; const STORAGE_TAB_CNT = 'TRANSLATE_FILTER_TAB'; /** @var array */ private $params = array(); /** @var array */ private $iterateCodes = array(); /** @var int */ private $iteratePosition; /** * Constructs filter object. * * @param array|int $param Init params. */ public function __construct($param = null) { if (is_array($param)) { $this->params = $param; } elseif (is_int($param) && (int)$param > 0) { $this->restore((int)$param); } } //region getter/setter /** * Checks existence of the parameter by its code. * * @param string $code Parameter code. * * @return boolean */ public function __isset($code) { return isset($this->params[$code]); } /** * Returns parameter by its code. * * @param string $code Parameter code. * * @return string|mixed|null */ public function __get($code) { return $this->params[$code] ?: null; } /** * Add parameter to collection. * * @param string $code Parameter code. * @param string|mixed $value Parameter value. * * @return void */ public function __set($code, $value) { $this->params[$code] = $value; $this->iterateCodes[] = $code; } /** * Unset parameter by its code. * * @param string $code Parameter code. * * @return void */ public function __unset($code) { if (isset($this->params[$code])) { unset($this->params[$code]); $this->iterateCodes = array_keys($this->params); } } //endregion //region Iterator /** * Return the current phrase element. * * @return string|null */ public function current() { $code = $this->iterateCodes[$this->iteratePosition]; return $this->params[$code] ?: null; } /** * Move forward to next phrase element. * * @return void */ public function next() { ++ $this->iteratePosition; } /** * Return the key of the current phrase element. * * @return int|null */ public function key() { return $this->iterateCodes[$this->iteratePosition] ?: null; } /** * Checks if current position is valid. * * @return boolean */ public function valid() { return isset($this->iterateCodes[$this->iteratePosition], $this->params[$this->iterateCodes[$this->iteratePosition]]); } /** * Rewind the Iterator to the first element. * * @return void */ public function rewind() { $this->iteratePosition = 0; $this->iterateCodes = array_keys($this->params); } //endregion // region Serializable /** * String representation of object. * @return string */ public function serialize() { return serialize($this->params); } /** * Constructs the object from a string representation. * @param string $data Data to deserialize. */ public function unserialize($data) { if (!empty($data)) { $deserialized = unserialize($data, [false]); if (is_array($deserialized)) { $this->params = $deserialized; } } } //endregion // region Storage /** * Returns storage tab Id. * @param bool $increment Generate new id. * @return int */ public static function getTabId($increment = true) { $tabId = 0; if (isset($_SESSION[self::STORAGE_TAB_CNT])) { $tabId = $_SESSION[self::STORAGE_TAB_CNT]; } if ($increment) { $tabId ++; $_SESSION[self::STORAGE_TAB_CNT] = $tabId; } return $tabId; } /** * Stories the object into storage. * @return void */ public function store() { if (!isset($_SESSION[self::STORAGE_NAME])) { $_SESSION[self::STORAGE_NAME] = array(); } if (!isset($this->tabId)) { $this->tabId = self::getTabId(); } $_SESSION[self::STORAGE_NAME][$this->tabId] = $this->serialize(); } /** * Reconstructs the object from storage. * @param int $id In of the saved date in storage. */ public function restore($id) { if (isset($_SESSION[self::STORAGE_NAME], $_SESSION[self::STORAGE_NAME][(int)$id])) { $this->unserialize($_SESSION[self::STORAGE_NAME][(int)$id]); } $this->tabId = (int)$id; } // endregion //region ArrayAccess /** * Checks existence of the param by its code. * * @param string $code Phrase code. * * @return boolean */ public function offsetExists($code) { return isset($this->params[$code]); } /** * Returns param by its code. * * @param string $code Param code. * * @return mixed|null */ public function offsetGet($code) { if (isset($this->params[$code])) { return $this->params[$code]; } return null; } /** * Offset to set. * * @param string $code Param code. * @param mixed $param Param value. * * @return void */ public function offsetSet($code, $param) { $this->params[$code] = $param; } /** * Unset param value by code. * * @param string $code Param code. * * @return void */ public function offsetUnset($code) { if (isset($this->params[$code])) { unset($this->params[$code]); } } // endregion //region Countable /** * Returns amount params in the filter now. * * @return int */ public function count() { return is_array($this->params) ? count($this->params) : 0; } //endregion }
/var/www/axolotl/data/www/yar.axolotls.ru/bitrix/modules/translate/lib/filter.php