Файловый менеджер - Редактировать - /home/wuectly/www/03cbe/joomla4.tar
Назад
html/bootstrap.php 0000604 00000004443 15245551616 0010251 0 ustar 00 <?php /** * @package Joomla.Libraries * @subpackage HTML * * @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ use Joomla\CMS\HTML\Helpers\Bootstrap as JBootstrap; defined('JPATH_PLATFORM') or die; /** * Utility class for JavaScript behaviors * * @since 1.5 */ abstract class T3HtmlBootstrap extends JBootstrap { /** * Method to render a Bootstrap modal * * @param string $selector The ID selector for the modal. * @param array $params An array of options for the modal. * Options for the modal can be: * - title string The modal title * - backdrop mixed A boolean select if a modal-backdrop element should be included (default = true) * The string 'static' includes a backdrop which doesn't close the modal on click. * - keyboard boolean Closes the modal when escape key is pressed (default = true) * - closeButton boolean Display modal close button (default = true) * - animation boolean Fade in from the top of the page (default = true) * - footer string Optional markup for the modal footer * - url string URL of a resource to be inserted as an `<iframe>` inside the modal body * - height string height of the `<iframe>` containing the remote resource * - width string width of the `<iframe>` containing the remote resource * @param string $body Markup for the modal body. Appended after the `<iframe>` if the URL option is set * * @return string HTML markup for a modal * * @since 3.0 */ public static function renderModal($selector = 'modal', $params = array(), $body = '') :string { $method = parent::class . '::' . __FUNCTION__; // Force to rerender in admin if (!empty(static::$loaded[$method][$selector])) { static::$loaded[$method][$selector] = false; } return parent::renderModal($selector, $params, $body); } } html/behavior.php 0000604 00000014666 15245551616 0010043 0 ustar 00 <?php /** * @package Joomla.Libraries * @subpackage HTML * * @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ use Joomla\CMS\HTML\Helpers\Behavior; defined('JPATH_PLATFORM') or die; /** * Utility class for JavaScript behaviors * * @since 1.5 */ abstract class T3HtmlBehavior extends Behavior { /** * Add unobtrusive JavaScript support for a hover tooltips. * * Add a title attribute to any element in the form * title="title::text" * * Uses the core Tips class in MooTools. * * @param string $selector The class selector for the tooltip. * @param array $params An array of options for the tooltip. * Options for the tooltip can be: * - maxTitleChars integer The maximum number of characters in the tooltip title (defaults to 50). * - offsets object The distance of your tooltip from the mouse (defaults to {'x': 16, 'y': 16}). * - showDelay integer The millisecond delay the show event is fired (defaults to 100). * - hideDelay integer The millisecond delay the hide hide is fired (defaults to 100). * - className string The className your tooltip container will get. * - fixed boolean If set to true, the toolTip will not follow the mouse. * - onShow function The default function for the show event, passes the tip element * and the currently hovered element. * - onHide function The default function for the hide event, passes the currently * hovered element. * * @return void * * @since 1.5 */ public static function tooltip($selector = '.hasTip', $params = array()) { $sig = md5(serialize(array($selector, $params))); if (isset(static::$loaded[__METHOD__][$sig])) { return; } // Include MooTools framework static::framework(true); // Setup options object $opt['maxTitleChars'] = isset($params['maxTitleChars']) && $params['maxTitleChars'] ? (int) $params['maxTitleChars'] : 50; // Offsets needs an array in the format: array('x'=>20, 'y'=>30) $opt['offset'] = isset($params['offset']) && is_array($params['offset']) ? $params['offset'] : null; $opt['showDelay'] = isset($params['showDelay']) ? (int) $params['showDelay'] : null; $opt['hideDelay'] = isset($params['hideDelay']) ? (int) $params['hideDelay'] : null; $opt['className'] = isset($params['className']) ? $params['className'] : null; $opt['fixed'] = isset($params['fixed']) && $params['fixed']; $opt['onShow'] = isset($params['onShow']) ? '\\' . $params['onShow'] : null; $opt['onHide'] = isset($params['onHide']) ? '\\' . $params['onHide'] : null; $options = json_encode($opt); // Include jQuery JHtml::_('jquery.framework'); // Attach tooltips to document JFactory::getDocument()->addScriptDeclaration( "jQuery(function($) { $('$selector').each(function() { var title = $(this).attr('title'); if (title) { var parts = title.split('::', 2); var mtelement = document.getElementById(this); if(mtelement){ mtelement.store('tip:title', parts[0]); mtelement.store('tip:text', parts[1]); } } }); // var JTooltips = new Tips($('$selector').get(), $options); });" ); // Set static array static::$loaded[__METHOD__][$sig] = true; return; } /** * Add unobtrusive JavaScript support for form validation. * * To enable form validation the form tag must have class="form-validate". * Each field that needs to be validated needs to have class="validate". * Additional handlers can be added to the handler for username, password, * numeric and email. To use these add class="validate-email" and so on. * * @return void * * @since 1.5 * * @Deprecated 3.4 Use formvalidator instead */ public static function formvalidation() { // Include MooTools framework static::framework(); // Load the new jQuery code static::formvalidator(); } /** * Method to load the MooTools framework into the document head * * If debugging mode is on an uncompressed version of MooTools is included for easier debugging. * * @param boolean $extras Flag to determine whether to load MooTools More in addition to Core * @param mixed $debug Is debugging mode on? [optional] * * @return void * * @since 1.6 * @deprecated 4.0 Update scripts to jquery */ public static function framework($extras = false, $debug = null) { $type = $extras ? 'more' : 'core'; // Only load once if (!empty(static::$loaded[__METHOD__][$type])) { return; } JLog::add('JHtmlBehavior::framework is deprecated. Update to jquery scripts.', JLog::WARNING, 'deprecated'); // If no debugging value is set, use the configuration setting if ($debug === null) { $debug = JDEBUG; } if ($type !== 'core' && empty(static::$loaded[__METHOD__]['core'])) { static::framework(false, $debug); } JHtml::_('script', 'system/mootools-' . $type . '.js', array('version' => 'auto', 'relative' => true, 'detectDebug' => $debug)); // Keep loading core.js for BC reasons static::core(); static::$loaded[__METHOD__][$type] = true; return; } /** * Add unobtrusive JavaScript support for image captions. * * @param string $selector The selector for which a caption behaviour is to be applied. * * @return void * * @since 1.5 * * @Deprecated 4.0 Use native HTML figure tags. */ public static function caption($selector = 'img.caption') { JLog::add('JHtmlBehavior::caption is deprecated. Use native HTML figure tags.', JLog::WARNING, 'deprecated'); // Only load once if (isset(static::$loaded[__METHOD__][$selector])) { return; } // Include jQuery JHtml::_('jquery.framework'); if (!is_file(JPATH_ROOT . 'media/system/js/caption.js')){ return; } JHtml::_('script', 'system/js/caption.js', array('version' => 'auto', 'relative' => true)); // Attach caption to document JFactory::getDocument()->addScriptDeclaration( "jQuery(window).on('load', function() { new JCaption('" . $selector . "'); });" ); // Set static array static::$loaded[__METHOD__][$selector] = true; } } ModuleHelper.php 0000604 00000021576 15245551616 0007663 0 ustar 00 <?php /** * Joomla! Content Management System * * @copyright Copyright (C) 2005 - 2017 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\CMS\Helper; defined('JPATH_PLATFORM') or die; use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Factory; use Joomla\CMS\Language\Text; use Joomla\CMS\Layout\LayoutHelper; use Joomla\CMS\Log\Log; use Joomla\CMS\Profiler\Profiler; use Joomla\Registry\Registry; // Make alias of original FileLayout \T3::makeAlias(JPATH_LIBRARIES . '/src/Helper/ModuleHelper.php', 'ModuleHelper', '_ModuleHelper'); /** * Module helper class * * @since 1.5 */ abstract class ModuleHelper extends _ModuleHelper { /** * Render the module. * * @param object $module A module object. * @param array $attribs An array of attributes for the module (probably from the XML). * * @return string The HTML content of the module output. * * @since 1.5 */ public static function renderModule($module, $attribs = array()) { $app = Factory::getApplication(); // Check that $module is a valid module object if (!\is_object($module) || !isset($module->module) || !isset($module->params)) { if (JDEBUG) { Log::addLogger(array('text_file' => 'jmodulehelper.log.php'), Log::ALL, array('modulehelper')); $app->getLogger()->debug( __METHOD__ . '() - The $module parameter should be a module object.', array('category' => 'modulehelper') ); } return ''; } // Get module parameters $params = new Registry($module->params); // Render the module content static::renderRawModule($module, $params, $attribs); // Return early if only the content is required if (!empty($attribs['contentOnly'])) { return $module->content; } if (JDEBUG) { Profiler::getInstance('Application')->mark('beforeRenderModule ' . $module->module . ' (' . $module->title . ')'); } // Record the scope. $scope = $app->scope; // Set scope to component name $app->scope = $module->module; // Get the template $template = $app->getTemplate(); // Check if the current module has a style param to override template module style $paramsChromeStyle = $params->get('style'); $basePath = ''; if ($paramsChromeStyle) { $paramsChromeStyle = explode('-', $paramsChromeStyle, 2); $ChromeStyleTemplate = strtolower($paramsChromeStyle[0]); $attribs['style'] = $paramsChromeStyle[1]; // Only set $basePath if the specified template isn't the current or system one. if ($ChromeStyleTemplate !== $template && $ChromeStyleTemplate !== 'system') { $basePath = JPATH_THEMES . '/' . $ChromeStyleTemplate . '/html/layouts'; } } if(version_compare(JVERSION, '4.0', 'lt')){ include_once JPATH_THEMES . '/system/html/modules.php'; } $chromePath = JPATH_THEMES . '/' . $template . '/html/modules.php'; if (!isset($chrome[$chromePath])) { if (file_exists($chromePath)) { // load module style on template include_once $chromePath; }else{ if($app->isClient('site')){ // load module style function for use on some module of JA $chromePath = \T3Path::getPath('html/modules.php'); include_once $chromePath; } } $chrome[$chromePath] = true; } // Make sure a style is set if (!isset($attribs['style'])) { $attribs['style'] = 'none'; } // Dynamically add outline style if ($app->input->getBool('tp') && ComponentHelper::getParams('com_templates')->get('template_positions_display')) { $attribs['style'] .= ' outline'; } $module->style = $attribs['style']; // If the $module is nulled it will return an empty content, otherwise it will render the module normally. $app->triggerEvent('onRenderModule', array(&$module, &$attribs)); if ($module === null || !isset($module->content)) { return ''; } $displayData = array( 'module' => $module, 'params' => $params, 'attribs' => $attribs, ); foreach (explode(' ', $attribs['style']) as $style) { if ($moduleContent = LayoutHelper::render('chromes.' . $style, $displayData, $basePath)) { $module->content = $moduleContent; } } foreach (explode(' ', $attribs['style']) as $style) { $chromeMethod = 'modChrome_' . $style; $chromeStylePath = \T3Path::getPath('html/layouts/chromes/'.$style.'.php'); // Apply chrome and render module if (function_exists($chromeMethod) && !file_exists($chromeStylePath)) { $module->style = $attribs['style']; ob_start(); $chromeMethod($module, $params, $attribs); $module->content = ob_get_contents(); ob_end_clean(); } } // Revert the scope $app->scope = $scope; $app->triggerEvent('onAfterRenderModule', array(&$module, &$attribs)); if (JDEBUG) { Profiler::getInstance('Application')->mark('afterRenderModule ' . $module->module . ' (' . $module->title . ')'); } return $module->content; } /** * Render the module content. * * @param object $module A module object * @param Registry $params A module parameters * @param array $attribs An array of attributes for the module (probably from the XML). * * @return string * * @since 4.0.0 */ public static function renderRawModule($module, Registry $params, $attribs = array()) { if (!empty($module->contentRendered)) { return $module->content; } if (JDEBUG) { Profiler::getInstance('Application')->mark('beforeRenderModule ' . $module->module . ' (' . $module->title . ')'); } $app = Factory::getApplication(); // Record the scope. $scope = $app->scope; // Set scope to component name $app->scope = $module->module; if(version_compare(JVERSION, '4.0', 'ge')){ $dispatcher = $app->bootModule($module->module, $app->getName())->getDispatcher($module, $app); // Check if we have a dispatcher if ($dispatcher) { ob_start(); $dispatcher->dispatch(); $module->content = ob_get_clean(); } }else{ // Get module path $module->module = preg_replace('/[^A-Z0-9_\.-]/i', '', $module->module); $path = JPATH_BASE . '/modules/' . $module->module . '/' . $module->module . '.php'; // Load the module if (file_exists($path)) { $lang = Factory::getLanguage(); $coreLanguageDirectory = JPATH_BASE; $extensionLanguageDirectory = dirname($path); $langPaths = $lang->getPaths(); // Only load the module's language file if it hasn't been already if (!$langPaths || (!isset($langPaths[$coreLanguageDirectory]) && !isset($langPaths[$extensionLanguageDirectory]))) { // 1.5 or Core then 1.6 3PD $lang->load($module->module, $coreLanguageDirectory, null, false, true) || $lang->load($module->module, $extensionLanguageDirectory, null, false, true); } $content = ''; ob_start(); include $path; $module->content = ob_get_contents() . $content; ob_end_clean(); } } // Add the flag that the module content has been rendered $module->contentRendered = true; // Revert the scope $app->scope = $scope; if (JDEBUG) { Profiler::getInstance('Application')->mark('afterRenderRawModule ' . $module->module . ' (' . $module->title . ')'); } return $module->content; } /** * Get the path to a layout for a module * * @param string $module The name of the module * @param string $layout The name of the module layout. If alternative layout, in the form template:filename. * * @return string The path to the module layout * * @since 1.5 */ public static function getLayoutPath($module, $layout = 'default') { $template = Factory::getApplication()->getTemplate(); $defaultLayout = $layout; if (strpos($layout, ':') !== false) { // Get the template and file name from the string $temp = explode(':', $layout); $template = $temp[0] === '_' ? $template : $temp[0]; $layout = $temp[1]; $defaultLayout = $temp[1] ?: 'default'; } // T3 // Do 3rd party stuff to detect layout path for the module // onGetLayoutPath should return the path to the $layout of $module or false // $results holds an array of results returned from plugins, 1 from each plugin. // if a path to the $layout is found and it is a file, return that path $app = Factory::getApplication(); $result = $app->triggerEvent( 'onGetLayoutPath', array( $module, $layout ) ); if (is_array($result)) { foreach ($result as $path) { if ($path !== false && is_file ($path)) { return $path; } } } // /T3 // Build the template and base path for the layout $tPath = JPATH_THEMES . '/' . $template . '/html/' . $module . '/' . $layout . '.php'; $bPath = JPATH_BASE . '/modules/' . $module . '/tmpl/' . $defaultLayout . '.php'; $dPath = JPATH_BASE . '/modules/' . $module . '/tmpl/default.php'; // If the template has a layout override use it if (file_exists($tPath)) { return $tPath; } if (file_exists($bPath)) { return $bPath; } return $dPath; } } Pagination.php 0000604 00000013615 15245551616 0007362 0 ustar 00 <?php /** * Joomla! Content Management System * * @copyright Copyright (C) 2005 - 2017 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\CMS\Pagination; defined('JPATH_PLATFORM') or die; // Make alias of original FileLayout \T3::makeAlias(JPATH_LIBRARIES . '/src/Pagination/Pagination.php', 'Pagination', '_Pagination'); /** * Pagination Class. Provides a common interface for content pagination for the Joomla! CMS. * * @since 1.5 */ class Pagination extends _Pagination { /** * Create and return the pagination page list string, ie. Previous, Next, 1 2 3 ... x. * * @return string Pagination page list string. * * @since 1.5 */ public function getPagesLinks() { // Build the page navigation list. $data = $this->_buildDataObject(); $list = array(); $list['prefix'] = $this->prefix; $itemOverride = false; $listOverride = false; // $chromePath = JPATH_THEMES . '/' . $this->app->getTemplate() . '/html/pagination.php'; // T3: detect if chrome pagination.php in template or in plugin $chromePath = \T3Path::getPath ('html/pagination.php'); if (file_exists($chromePath)) { include_once $chromePath; /* * @deprecated 4.0 Item rendering should use a layout */ if (function_exists('pagination_item_active') && function_exists('pagination_item_inactive')) { \JLog::add( 'pagination_item_active and pagination_item_inactive are deprecated. Use the layout joomla.pagination.link instead.', \JLog::WARNING, 'deprecated' ); $itemOverride = true; } /* * @deprecated 4.0 The list rendering is now a layout. * @see Pagination::_list_render() */ if (function_exists('pagination_list_render')) { \JLog::add('pagination_list_render is deprecated. Use the layout joomla.pagination.list instead.', \JLog::WARNING, 'deprecated'); $listOverride = true; } } // Build the select list if ($data->all->base !== null) { $list['all']['active'] = true; $list['all']['data'] = $itemOverride ? pagination_item_active($data->all) : $this->_item_active($data->all); } else { $list['all']['active'] = false; $list['all']['data'] = $itemOverride ? pagination_item_inactive($data->all) : $this->_item_inactive($data->all); } if ($data->start->base !== null) { $list['start']['active'] = true; $list['start']['data'] = $itemOverride ? pagination_item_active($data->start) : $this->_item_active($data->start); } else { $list['start']['active'] = false; $list['start']['data'] = $itemOverride ? pagination_item_inactive($data->start) : $this->_item_inactive($data->start); } if ($data->previous->base !== null) { $list['previous']['active'] = true; $list['previous']['data'] = $itemOverride ? pagination_item_active($data->previous) : $this->_item_active($data->previous); } else { $list['previous']['active'] = false; $list['previous']['data'] = $itemOverride ? pagination_item_inactive($data->previous) : $this->_item_inactive($data->previous); } // Make sure it exists $list['pages'] = array(); foreach ($data->pages as $i => $page) { if ($page->base !== null) { $list['pages'][$i]['active'] = true; $list['pages'][$i]['data'] = $itemOverride ? pagination_item_active($page) : $this->_item_active($page); } else { $list['pages'][$i]['active'] = false; $list['pages'][$i]['data'] = $itemOverride ? pagination_item_inactive($page) : $this->_item_inactive($page); } } if ($data->next->base !== null) { $list['next']['active'] = true; $list['next']['data'] = $itemOverride ? pagination_item_active($data->next) : $this->_item_active($data->next); } else { $list['next']['active'] = false; $list['next']['data'] = $itemOverride ? pagination_item_inactive($data->next) : $this->_item_inactive($data->next); } if ($data->end->base !== null) { $list['end']['active'] = true; $list['end']['data'] = $itemOverride ? pagination_item_active($data->end) : $this->_item_active($data->end); } else { $list['end']['active'] = false; $list['end']['data'] = $itemOverride ? pagination_item_inactive($data->end) : $this->_item_inactive($data->end); } if ($this->total > $this->limit) { return $listOverride ? pagination_list_render($list) : $this->_list_render($list); } else { return ''; } } /** * Return the pagination footer. * * @return string Pagination footer. * * @since 1.5 */ public function getListFooter() { // Keep B/C for overrides done with chromes // $chromePath = JPATH_THEMES . '/' . $this->app->getTemplate() . '/html/pagination.php'; // T3: detect if chrome pagination.php in template or in plugin $chromePath = \T3Path::getPath ('html/pagination.php'); if (file_exists($chromePath)) { include_once $chromePath; if (function_exists('pagination_list_footer')) { \JLog::add('pagination_list_footer is deprecated. Use the layout joomla.pagination.links instead.', \JLog::WARNING, 'deprecated'); $list = array( 'prefix' => $this->prefix, 'limit' => $this->limit, 'limitstart' => $this->limitstart, 'total' => $this->total, 'limitfield' => $this->getLimitBox(), 'pagescounter' => $this->getPagesCounter(), 'pageslinks' => $this->getPagesLinks(), ); return pagination_list_footer($list); } } return $this->getPaginationLinks(); } /** * Compatible with J3 */ public function get($property, $default = null) { \JLog::add('Pagination::get() is deprecated. Access the properties directly.', \JLog::WARNING, 'deprecated'); if (strpos($property, '.')) { $prop = explode('.', $property); $prop[1] = ucfirst($prop[1]); $property = implode($prop); } if (isset($this->$property)) { return $this->$property; } return $default; } } FileLayout.php 0000604 00000004722 15245551616 0007345 0 ustar 00 <?php /** * Joomla! Content Management System * * @copyright Copyright (C) 2005 - 2017 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\CMS\Layout; use Joomla\CMS\Factory; defined('JPATH_PLATFORM') or die; // Make alias of original FileLayout \T3::makeAlias(JPATH_LIBRARIES . '/src/Layout/FileLayout.php', 'FileLayout', '_FileLayout'); /** * Base class for rendering a display layout * loaded from from a layout file * * @link https://docs.joomla.org/Special:MyLanguage/Sharing_layouts_across_views_or_extensions_with_JLayout * @since 3.0 */ class FileLayout extends _FileLayout { /** * Get the default array of include paths * * @return array * * @since 3.5 */ public function getDefaultIncludePaths() { // Get the template $template = Factory::getApplication()->getTemplate(true); // Reset includePaths $paths = array(); // (1 - highest priority) Received a custom high priority path if ($this->basePath !== null) { $paths[] = rtrim($this->basePath, DIRECTORY_SEPARATOR); } // Component layouts & overrides if exist $component = $this->options->get('component', null); if (!empty($component)) { // (2) Component template overrides path $paths[] = JPATH_THEMES . '/' . $template->template . '/html/layouts/' . $component; if (!empty($template->parent)) { // (2.a) Component template overrides path for an inherited template using the parent $paths[] = JPATH_THEMES . '/' . $template->parent . '/html/layouts/' . $component; } // (3) Component path if ($this->options->get('client') == 0) { $paths[] = JPATH_SITE . '/components/' . $component . '/layouts'; } else { $paths[] = JPATH_ADMINISTRATOR . '/components/' . $component . '/layouts'; } } // T3 - (4.1) - user custom layout overridden if (!defined('T3_LOCAL_DISABLED')) $paths[] = T3_LOCAL_PATH . '/html/layouts'; // (4) Standard Joomla! layouts overridden $paths[] = JPATH_THEMES . '/' . $template->template . '/html/layouts'; if (!empty($template->parent)) { // (4.a) Component template overrides path for an inherited template using the parent $paths[] = JPATH_THEMES . '/' . $template->parent . '/html/layouts'; } // T3 - (5.1) - T3 base layout overridden $paths[] = T3_PATH . '/html/layouts'; // (5 - lower priority) Frontend base layouts $paths[] = JPATH_ROOT . '/layouts'; return $paths; } } HtmlView.php 0000604 00000004222 15245551616 0007022 0 ustar 00 <?php /** * Joomla! Content Management System * * @copyright Copyright (C) 2005 - 2017 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\CMS\MVC\View; use Joomla\CMS\Application\ApplicationHelper; use Joomla\CMS\Factory; use Joomla\CMS\Filesystem\Path; defined('JPATH_PLATFORM') or die; // Make alias of original FileLayout \T3::makeAlias(JPATH_LIBRARIES . '/src/MVC/View/HtmlView.php', 'HtmlView', '_JHtmlView'); /** * Base class for a Joomla View * * Class holding methods for displaying presentation data. * * @since 2.5.5 */ class HtmlView extends _JHtmlView { /** * Sets an entire array of search paths for templates or resources. * * @param string $type The type of path to set, typically 'template'. * @param mixed $path The new search path, or an array of search paths. If null or false, resets to the current directory only. * * @return void * * @since 3.0 */ protected function _setPath($type, $path) { $component = ApplicationHelper::getComponentName(); $app = Factory::getApplication(); // Clear out the prior search dirs $this->_path[$type] = array(); // Actually add the user-specified directories $this->_addPath($type, $path); // Always add the fallback directories as last resort switch (strtolower($type)) { case 'template': // Set the alternative template search dir if (isset($app)) { $component = preg_replace('/[^A-Z0-9_\.-]/i', '', $component); //if it is T3 template, update search path for template $this->_addPath('template', T3_PATH . '/html/' . $component . '/' . $this->getName()); if (\T3::isAdmin()) $this->_addPath('template', T3_ADMIN_PATH . '/admin/html/' . $component . '/' . $this->getName()); $fallback = JPATH_THEMES . '/' . $app->getTemplate() . '/html/' . $component . '/' . $this->getName(); $this->_addPath('template', $fallback); //search path for user custom folder if (!defined('T3_LOCAL_DISABLED')) $this->_addPath('template', T3_LOCAL_PATH . '/html/' . $component . '/' . $this->getName()); } break; } } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.34 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка