getQuery(true); if ($clientId != '*') { $query->where('client_id=' . (int) $clientId); } $query->select('element as value, name as text, extension_id as e_id') ->from('#__extensions') ->where('type = ' . $db->quote('template')) ->where('enabled = 1') ->order('client_id') ->order('name'); $db->setQuery($query); $options = $db->loadObjectList(); return $options; } /** * TODO * * @param string $templateBaseDir TODO * @param string $templateDir TODO * * @return boolean|JObject */ 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; } /** * TODO * * @param integer $clientId TODO * @param string $templateDir TODO * * @return boolean|array * * @since 3.0 */ public static function getPositions($clientId, $templateDir) { $positions = array(); $templateBaseDir = $clientId ? JPATH_ADMINISTRATOR : JPATH_SITE; $filePath = JPath::clean($templateBaseDir . '/templates/' . $templateDir . '/templateDetails.xml'); if (is_file($filePath)) { // Read the file to see if it's a valid component XML file $xml = simplexml_load_file($filePath); if (!$xml) { return false; } // Check for a valid XML root tag. // Extensions use 'extension' as the root tag. Languages use 'metafile' instead if ($xml->getName() != 'extension' && $xml->getName() != 'metafile') { unset($xml); return false; } $positions = (array) $xml->positions; if (isset($positions['position'])) { $positions = (array) $positions['position']; } else { $positions = array(); } } return $positions; } }