예제 #1
0
 function getExtension()
 {
     // Load the data
     if (empty($this->_extension)) {
         $query = $this->_db->getQuery(true);
         $query->select('*')->from('#__extensions')->where('state>=0')->where('enabled=1')->where('type=' . $this->_db->quote('sef_ext'))->where('element=' . $this->_db->quote($this->_id));
         $this->_db->setQuery($query);
         $row = $this->_db->loadObject();
         if (is_null($row)) {
             $row = new stdClass();
         }
         $option = str_replace('ext_joomsef4_', 'com_', $this->_id);
         // Try to load language file for this extension
         $langFile = str_replace('com_', 'sef_ext_', $option);
         $lang = JFactory::getLanguage();
         $lang->load($langFile, JPATH_ADMINISTRATOR);
         $row->id = $this->_id;
         $row->description = '';
         $row->name = '';
         $row->version = '';
         $row->params =& SEFTools::getExtParams($option);
         $row->form =& SEFTools::getExtParamsForm($option);
         $row->option = $option;
         $xml = SEFTools::getExtXML($option);
         if ($xml) {
             $version = (string) $xml['version'];
             if ($xml->getName() == 'extension' && version_compare($version, '1.6', '>=') && (string) $xml['type'] == 'sef_ext') {
                 $element = $xml->description;
                 $row->description = $element ? trim((string) $element) : '';
                 $element = $xml->name;
                 $row->name = $element ? trim((string) $element) : '';
                 $element = $xml->version;
                 $row->version = $element ? trim((string) $element) : '';
             }
         }
         // Get the component for this extension
         $model = SEFModel::getInstance('Extensions', 'SEFModel');
         $row->component = $model->_getComponent($option);
         $this->_extension = $row;
     }
     return $this->_extension;
 }