⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.89
Server IP:
41.128.143.86
Server:
Linux host.raqmix.cloud 6.8.0-1025-azure #30~22.04.1-Ubuntu SMP Wed Mar 12 15:28:20 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
8.3.23
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
psa-pear
/
pear
/
php
/
Horde
/
Themes
/
View File Name :
Element.php
* @category Horde * @copyright 2010-2017 Horde LLC * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @package Core * * @property-read string $fs Filesystem location. * @property-read string $fulluri Full URI. * @property-read string $uri Relative URI. */ class Horde_Themes_Element { /** * Current application name. * * @var string */ public $app; /** * URI/filesystem path values. * * @var array */ protected $_data = array(); /** * The default directory name for this element type. * * @var string */ protected $_dirname = ''; /** * Element name. * * @var string */ protected $_name; /** * Options. * * @var array */ protected $_opts; /** * Constructor. * * @param string $name The element name. If null, will return the * element directory. * @param array $options Additional options: * - app: (string) Use this application instead of the current app. * - data: (array) Contains 2 elements: 'fs' - filesystem path, * 'uri' - the element URI. If set, use as the data * values instead of auto determining. * - nohorde: (boolean) If true, do not fallback to horde for element. * - noview: (boolean) If true, do not load images from view-specific * directories. (Since 2.4.0) * - theme: (string) Use this theme instead of the Horde default. * - uri: (string) Use this as the URI value. */ public function __construct($name = '', array $options = array()) { $this->app = empty($options['app']) ? $GLOBALS['registry']->getApp() : $options['app']; $this->_name = $name; $this->_opts = $options; if ($GLOBALS['registry']->get('status', $this->app) == 'heading') { $this->app = 'horde'; } if (isset($this->_opts['data'])) { $this->_data = $this->_opts['data']; unset($this->_opts['data']); } } /** * String representation of this object. * * @return string The relative URI. */ public function __toString() { try { return (string)$this->uri; } catch (Exception $e) { Horde::log($e, 'ERR'); return ''; } } /** */ public function __get($name) { global $prefs, $registry; if (empty($this->_data)) { $theme = array_key_exists('theme', $this->_opts) ? $this->_opts['theme'] : $prefs->getValue('theme'); if (is_null($this->_name)) { /* Return directory only. */ $this->_data = array( 'fs' => $registry->get('themesfs', $this->app) . '/' . $theme . '/' . $this->_dirname, 'uri' => $registry->get('themesuri', $this->app) . '/' . $theme . '/' . $this->_dirname ); } else { $cache = $GLOBALS['injector']->getInstance('Horde_Core_Factory_ThemesCache')->create($this->app, $theme); $mask = empty($this->_opts['nohorde']) ? 0 : Horde_Themes_Cache::APP_DEFAULT | Horde_Themes_Cache::APP_THEME; if (empty($this->_opts['noview'])) { $mask |= Horde_Themes_Cache::VIEW; } $this->_data = $cache->get((strlen($this->_dirname) ? $this->_dirname . '/' : '') . $this->_name, $mask); } } switch ($name) { case 'fs': case 'uri': return $this->_data[$name]; case 'fulluri': return Horde::url($this->_data['uri'], true); default: return null; } } /** * Convert a URI into a Horde_Themes_Element object. * * @param string $uri The URI to convert. * * @return Horde_Themes_Element A theme element object. */ public static function fromUri($uri) { global $registry; return new self('', array( 'data' => array( 'fs' => realpath($registry->get('fileroot', 'horde')) . preg_replace('/^' . preg_quote($registry->get('webroot', 'horde'), '/') . '/', '', $uri), 'uri' => $uri ) )); } }