/** * Load extension from specify folder. * * @param string $package filepath to folder with extension * @return mixed */ function loadExtension($package) { $db = JFactory::getDbo(); /* @var $db JDatabaseMySQL */ // try to load extension language $language = JFactory::getLanguage(); /* @var $language JLanguage */ $language->load(JFile::getName($package), JPATH_ADMINISTRATOR); if (($manifest =& AInstaller::getManifest($package)) !== false) { $root = $manifest->parser; $element = $root->files; if (is_object($element)) { $type = (string) $root->attributes()->type; foreach ($element->children() as $file) { if (isset($file->attributes()->{$type}) and $name = (string) $file->attributes()->{$type}) { if (class_exists($classname = 'AInstaller' . ucfirst($type))) { $model = new $classname(); $extension = $model->getTable(); $db->setQuery($model->getQuery($name, $root)); if ($id = (int) $db->loadResult()) { $extension->load($id); if (isset($extension->iscore) && (int) $extension->iscore != 0) { $extension->iscore = 0; $extension->store(); } } if (isset($root->setting)) { foreach ($root->setting->attributes() as $name => $value) { if (isset($extension->{$name})) { $extension->{$name} = (string) $value; } } } $model->extra($extension); $extension->extType = $type; return $extension; } } } } } return null; }