AAAAhome/academiac/www/administrator/components/com_templates/templates.php000064400000001230151372066400022617 0ustar00authorise('core.manage', 'com_templates')) { return JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR')); } // Register helper JLoader::register('TemplatesHelper', dirname(__FILE__) . '/helpers/templates.php'); $controller = JControllerLegacy::getInstance('Templates'); $controller->execute(JRequest::getCmd('task')); $controller->redirect(); home/academiac/www/administrator/components/com_templates/models/templates.php000064400000010027151372101370024102 0ustar00client_id); $item->xmldata = TemplatesHelper::parseXMLTemplateFile($client->path, $item->element); } return $items; } /** * Build an SQL query to load the list data. * * @return JDatabaseQuery * @since 1.6 */ protected function getListQuery() { // Create a new query object. $db = $this->getDbo(); $query = $db->getQuery(true); // Select the required fields from the table. $query->select( $this->getState( 'list.select', 'a.extension_id, a.name, a.element, a.client_id' ) ); $query->from($db->quoteName('#__extensions').' AS a'); // Filter by extension type. $query->where($db->quoteName('type').' = '.$db->quote('template')); // Filter by client. $clientId = $this->getState('filter.client_id'); if (is_numeric($clientId)) { $query->where('a.client_id = '.(int) $clientId); } // Filter by search in title $search = $this->getState('filter.search'); if (!empty($search)) { if (stripos($search, 'id:') === 0) { $query->where('a.id = '.(int) substr($search, 3)); } else { $search = $db->Quote('%'.$db->escape($search, true).'%'); $query->where('a.element LIKE '.$search.' OR a.name LIKE '.$search); } } // Add the list ordering clause. $query->order($db->escape($this->getState('list.ordering', 'a.folder')).' '.$db->escape($this->getState('list.direction', 'ASC'))); return $query; } /** * Method to get a store id based on model configuration state. * * This is necessary because the model is used by the component and * different modules that might need different sets of data or different * ordering requirements. * * @param string $id A prefix for the store id. * @return string A store id. * @since 1.6 */ protected function getStoreId($id = '') { // Compile the store id. $id .= ':'.$this->getState('filter.search'); $id .= ':'.$this->getState('filter.client_id'); return parent::getStoreId($id); } /** * Method to auto-populate the model state. * * Note. Calling getState in this method will result in recursion. * * @since 1.6 */ protected function populateState($ordering = null, $direction = null) { // Initialise variables. $app = JFactory::getApplication('administrator'); // Load the filter state. $search = $this->getUserStateFromRequest($this->context.'.filter.search', 'filter_search'); $this->setState('filter.search', $search); $clientId = $this->getUserStateFromRequest($this->context.'.filter.client_id', 'filter_client_id', null); $this->setState('filter.client_id', $clientId); // Load the parameters. $params = JComponentHelper::getParams('com_templates'); $this->setState('params', $params); // List state information. parent::populateState('a.element', 'asc'); } } home/academiac/www/administrator/components/com_templates/helpers/html/templates.php000064400000002410151372123060025222 0ustar00path.'/templates/'.$template; $baseUrl = ($clientId == 0) ? JUri::root(true) : JUri::root(true).'/administrator'; $thumb = $basePath.'/template_thumbnail.png'; $preview = $basePath.'/template_preview.png'; $html = ''; if (file_exists($thumb)) { $clientPath = ($clientId == 0) ? '' : 'administrator/'; $thumb = $clientPath.'templates/'.$template.'/template_thumbnail.png'; $html = JHtml::_('image', $thumb, JText::_('COM_TEMPLATES_PREVIEW')); if (file_exists($preview)) { $preview = $baseUrl.'/templates/'.$template.'/template_preview.png'; $html = ''.$html.''; } } return $html; } } home/academiac/www/administrator/components/com_templates/helpers/templates.php000064400000005256151373623630024302 0ustar00set($action->name, $user->authorise($action->name, 'com_templates')); } return $result; } /** * Get a list of filter options for the application clients. * * @return array An array of JHtmlOption elements. */ public static function getClientOptions() { // Build the filter options. $options = array(); $options[] = JHtml::_('select.option', '0', JText::_('JSITE')); $options[] = JHtml::_('select.option', '1', JText::_('JADMINISTRATOR')); return $options; } /** * Get a list of filter options for the templates with styles. * * @return array An array of JHtmlOption elements. */ public static function getTemplateOptions($clientId = '*') { // Build the filter options. $db = JFactory::getDbo(); $query = $db->getQuery(true); if ($clientId != '*') { $query->where('client_id='.(int) $clientId); } $query->select('element as value, name as text, extension_id as e_id'); $query->from('#__extensions'); $query->where('type='.$db->quote('template')); $query->where('enabled=1'); $query->order('client_id'); $query->order('name'); $db->setQuery($query); $options = $db->loadObjectList(); return $options; } public static function parseXMLTemplateFile($templateBaseDir, $templateDir) { $data = new JObject; // Check of the xml file exists $filePath = JPath::clean($templateBaseDir.'/templates/'.$templateDir.'/templateDetails.xml'); if (is_file($filePath)) { $xml = JInstaller::parseXMLInstallFile($filePath); if ($xml['type'] != 'template') { return false; } foreach ($xml as $key => $value) { $data->set($key, $value); } } return $data; } }