getKnownLanguages(); foreach ($languages as $language) { echo $this->uninstallLanguage($language['tag'], $language['name']); } } public function preflight($type, $parent) { $lang = JFactory::getLanguage(); $lang->load('pkg_projectfork_languages', dirname(__FILE__) . '/installer', 'en-GB', true); $lang->load('pkg_projectfork_languages', dirname(__FILE__) . '/installer', $lang->getTag(), true); if (!in_array($type, array('install', 'update'))) return true; $app = JFactory::getApplication(); // Do not install if Projectfork 4 doesn't exist. $table = JTable::getInstance('extension'); $id = $table->find(array('type'=>'component', 'element'=>'com_projectfork')); if(!$id) { $app->enqueueMessage(sprintf(JText::_('PKG_PROJECTFORK_LANGUAGES_PFNOTINSTALLED'), '4.x'), 'error'); return false; } // Get list of languages to be installed. Only installs languages that are found in your system. $source = $parent->getParent()->getPath('source').'/languages'; $languages = JFactory::getLanguage()->getKnownLanguages(); $files = $parent->manifest->files; $installed_langs_html = ''; if (empty($files)) { // No packages to install $app->enqueueMessage(sprintf(JText::_('PKG_PROJECTFORK_LANGUAGES_ENGLISH_ONLY')), 'notice'); return false; } else { // Package was installation successfull with detected languages echo JText::_('PKG_PROJECTFORK_LANGUAGES_INSTALLED_DETECTED_SUCCESS') . $installed_langs_html; } return true; } public function uninstallLanguage($tag, $name) { $table = JTable::getInstance('extension'); $id = $table->find(array('type'=>'file', 'element'=>"{$this->name}_{$tag}")); if(!$id) return; $installer = new JInstaller(); $installer->uninstall ( 'file', $id ); } }