Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
ancien-site-2019
/
site
/
libraries
/
joomla
/
application
/
component
:
helper.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php /** * @package Joomla.Platform * @subpackage Application * * @copyright Copyright (C) 2005 - 2011 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ defined('JPATH_PLATFORM') or die; /** * Component helper class * * @package Joomla.Platform * @subpackage Application * @since 11.1 */ class JComponentHelper { /** * The component list cache * * @var array * @since 11.1 */ protected static $_components = array(); /** * Get the component information. * * @param string $option The component option. * @param boolean $strict If set and the component does not exist, the enabled attribue will be set to false. * * @return object An object with the information for the component. * @since 11.1 */ public static function getComponent($option, $strict = false) { if (!isset(self::$_components[$option])) { if (self::_load($option)){ $result = self::$_components[$option]; } else { $result = new stdClass; $result->enabled = $strict ? false : true; $result->params = new JRegistry; } } else { $result = self::$_components[$option]; } return $result; } /** * Checks if the component is enabled * * @param string $option The component option. * @param boolean $strict If set and the component does not exist, false will be returned. * * @return boolean * @since 11.1 */ public static function isEnabled($option, $strict = false) { $result = self::getComponent($option, $strict); return ($result->enabled | JFactory::getApplication()->isAdmin()); } /** * Gets the parameter object for the component * * @param string $option The option for the component. * @param boolean $strict If set and the component does not exist, false will be returned * * @return JRegistry A JRegistry object. * * @see JRegistry * @since 11.1 */ public static function getParams($option, $strict = false) { $component = self::getComponent($option, $strict); return $component->params; } /** * Render the component. * * @param string $option The component option. * @param array $params The component parameters * * @return void * @since 11.1 */ public static function renderComponent($option, $params = array()) { // Initialise variables. $app = JFactory::getApplication(); // Load template language files. $template = $app->getTemplate(true)->template; $lang = JFactory::getLanguage(); $lang->load('tpl_'.$template, JPATH_BASE, null, false, false) || $lang->load('tpl_'.$template, JPATH_THEMES."/$template", null, false, false) || $lang->load('tpl_'.$template, JPATH_BASE, $lang->getDefault(), false, false) || $lang->load('tpl_'.$template, JPATH_THEMES."/$template", $lang->getDefault(), false, false); if (empty($option)) { // Throw 404 if no component JError::raiseError(404, JText::_('JLIB_APPLICATION_ERROR_COMPONENT_NOT_FOUND')); return; } // Record the scope $scope = $app->scope; // Set scope to component name $app->scope = $option; // Build the component path. $option = preg_replace('/[^A-Z0-9_\.-]/i', '', $option); $file = substr($option, 4); // Define component path. define('JPATH_COMPONENT', JPATH_BASE . '/components/' . $option); define('JPATH_COMPONENT_SITE', JPATH_SITE . '/components/' . $option); define('JPATH_COMPONENT_ADMINISTRATOR', JPATH_ADMINISTRATOR . '/components/' . $option); // Get component path if ($app->isAdmin() && file_exists(JPATH_COMPONENT . '/admin.'.$file.'.php')) { $path = JPATH_COMPONENT . '/admin.'.$file.'.php'; } else { $path = JPATH_COMPONENT . '/' . $file.'.php'; } // If component is disabled throw error if (!self::isEnabled($option) || !file_exists($path)) { JError::raiseError(404, JText::_('JLIB_APPLICATION_ERROR_COMPONENT_NOT_FOUND')); } $task = JRequest::getString('task'); // Load common and local language files. $lang->load($option, JPATH_BASE, null, false, false) || $lang->load($option, JPATH_COMPONENT, null, false, false) || $lang->load($option, JPATH_BASE, $lang->getDefault(), false, false) || $lang->load($option, JPATH_COMPONENT, $lang->getDefault(), false, false); // Handle template preview outlining. $contents = null; // Execute the component. ob_start(); require_once $path; $contents = ob_get_contents(); ob_end_clean(); // Build the component toolbar jimport('joomla.application.helper'); if (($path = JApplicationHelper::getPath('toolbar')) && $app->isAdmin()) { // Get the task again, in case it has changed $task = JRequest::getString('task'); // Make the toolbar include_once $path; } // Revert the scope $app->scope = $scope; return $contents; } /** * Load the installed components into the _components property. * * @param string $option The element value for the extension * * @return boolean True on success * @since 11.1 */ protected static function _load($option) { $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select('extension_id AS "id", element AS "option", params, enabled'); $query->from('#__extensions'); $query->where($query->qn('type').' = '.$db->quote('component')); $query->where($query->qn('element').' = '.$db->quote($option)); $db->setQuery($query); $cache = JFactory::getCache('_system','callback'); self::$_components[$option] = $cache->get(array($db, 'loadObject'), null, $option, false); if ($error = $db->getErrorMsg() || empty(self::$_components[$option])) { // Fatal error. JError::raiseWarning(500, JText::sprintf('JLIB_APPLICATION_ERROR_COMPONENT_NOT_LOADING', $option, $error)); return false; } // Convert the params to an object. if (is_string(self::$_components[$option]->params)) { $temp = new JRegistry; $temp->loadString(self::$_components[$option]->params); self::$_components[$option]->params = $temp; } return true; } }