File manager - Edit - /home/verseaumee/ptitsanes/libraries/gantry5/src/classes/Gantry/Framework/Base/Platform.php
Back
<?php /** * @package Gantry5 * @author RocketTheme http://www.rockettheme.com * @copyright Copyright (C) 2007 - 2021 RocketTheme, LLC * @license Dual License: MIT or GNU/GPLv2 and later * * http://opensource.org/licenses/MIT * http://www.gnu.org/licenses/gpl-2.0.html * * Gantry Framework code that extends GPL code is considered GNU/GPLv2 and later */ namespace Gantry\Framework\Base; use Gantry\Component\Filesystem\Folder; use Gantry\Framework\Document; use RocketTheme\Toolbox\ArrayTraits\Export; use RocketTheme\Toolbox\ArrayTraits\NestedArrayAccess; use RocketTheme\Toolbox\DI\Container; /** * The Platform Configuration class contains configuration information. * * @author RocketTheme * @license MIT */ abstract class Platform { use NestedArrayAccess, Export; /** @var string */ protected $name; /** @var array */ protected $features = []; /** @var string */ protected $settings_key; /** @var array */ protected $items; /** @var Container */ protected $container; /** * Platform constructor. * @param Container $container */ public function __construct(Container $container) { $this->container = $container; //Make sure that cache folder exists, otherwise it will be removed from the lookup. $cachePath = $this->getCachePath(); Folder::create($cachePath); $this->items = [ 'streams' => [ // Cached files. 'gantry-cache' => [ 'type' => 'Stream', 'force' => true, 'prefixes' => ['' => [$cachePath]] ], // Container for all frontend themes. 'gantry-themes' => [ 'type' => 'ReadOnlyStream', 'prefixes' => $this->getThemesPaths() ], // Selected frontend theme. 'gantry-theme' => [ 'type' => 'ReadOnlyStream', 'prefixes' => $this->getThemePaths() ], // System defined media files. 'gantry-assets' => [ 'type' => 'ReadOnlyStream', 'prefixes' => $this->getAssetsPaths() ], // User defined media files. 'gantry-media' => [ 'type' => 'ReadOnlyStream', 'prefixes' => $this->getMediaPaths() ], // Container for all Gantry engines. 'gantry-engines' => [ 'type' => 'ReadOnlyStream', 'prefixes' => $this->getEnginesPaths() ], // Gantry engine used to render the selected theme. 'gantry-engine' => [ 'type' => 'ReadOnlyStream', 'prefixes' => $this->getEnginePaths() ], // Layout definitions for the blueprints. 'gantry-layouts' => [ 'type' => 'ReadOnlyStream', 'prefixes' => ['' => ['gantry-theme://layouts', 'gantry-engine://layouts']] ], // Gantry particles. 'gantry-particles' => [ 'type' => 'ReadOnlyStream', 'prefixes' => ['' => ['gantry-theme://particles', 'gantry-engine://particles']] ], // Gantry administration. 'gantry-admin' => [ 'type' => 'ReadOnlyStream', 'prefixes' => [] ], // Blueprints for the configuration. 'gantry-blueprints' => [ 'type' => 'ReadOnlyStream', 'prefixes' => [ '' => ['gantry-theme://blueprints', 'gantry-engine://blueprints'], 'particles' => ['gantry-particles://'] ] ], // Configuration from the selected theme. 'gantry-config' => [ 'type' => 'ReadOnlyStream', 'prefixes' => ['' => ['gantry-theme://config']] ] ] ]; } /** * Gets version of CMS. * * @return string */ abstract public function getVersion(); /** * Compares version of CMS against the given version. * * @param string $version Lower bound (>=) * @param string|null $version2 Upper bound (<) * @return bool True if version matches, false otherwise. */ public function checkVersion($version, $version2 = null) { $cmsVersion = $this->getVersion(); return version_compare($cmsVersion, $version, '>=') && (null === $version2 || version_compare($cmsVersion, $version2, '<')); } abstract public function getCachePath(); abstract public function getThemesPaths(); abstract public function getAssetsPaths(); abstract public function getMediaPaths(); /** * @return $this */ public function init() { return $this; } /** * @param string $feature * @return bool */ public function has($feature) { return !empty($this->features[$feature]); } /** * @return array */ public function getThemePaths() { return ['' => []]; } /** * @param string $name * @return array */ public function getEnginePaths($name = 'nucleus') { return ['' => ['gantry-theme://engine', "gantry-engines://{$name}"]]; } /** * @return array */ public function getEnginesPaths() { return ['' => []]; } /** * @return array */ public function errorHandlerPaths() { return []; } /** * Get preview url for individual theme. * * @param string $theme * @return string|null */ abstract public function getThemePreviewUrl($theme); /** * Get administrator url for individual theme. * * @param string $theme * @return string|null */ abstract public function getThemeAdminUrl($theme); /** * @return null */ public function settings() { return null; } /** * @return string */ public function settings_key() { return $this->settings_key; } /** * @return array|bool */ public function listModules() { return false; } /** * @return string */ public function getName() { return $this->name; } /** * @param string $name * @param string $content * @param string|int|null $width * @param string|int|null $height * @return mixed|null */ public function getEditor($name, $content = '', $width = null, $height = null) { return null; } /** * @param string $text * @return string */ public function filter($text) { return $text; } public function finalize() { $gantry = Gantry::instance(); /** @var Document $document */ $document = $gantry['document']; $document::registerAssets(); } /** * @return mixed|null */ public function call() { $args = func_get_args(); $callable = array_shift($args); return is_callable($callable) ? call_user_func_array($callable, $args) : null; } /** * @param string $action * @param int|string|null $id * @return bool */ public function authorize($action, $id = null) { return true; } /** * @param array|string $dependencies * @return bool * @since 5.4.3 */ public function checkDependencies($dependencies) { if (is_string($dependencies)) { return $dependencies === $this->name; } if (isset($dependencies['platform'])) { if (is_string($dependencies['platform']) && $dependencies['platform'] !== $this->name) { return false; } if (!isset($dependencies['platform'][$this->name])) { return false; } } return true; } }
| ver. 1.4 |
Github
|
.
| PHP 8.5.7 | Generation time: 0 |
proxy
|
phpinfo
|
Settings