Lahmizzar Muinela
2013-04-22 d0edc0ba3461fde5db00fd63533f7373f890666b
install.script.php
@@ -12,6 +12,7 @@
class pkg_projectfork_languagesInstallerScript {
   
   protected $name = 'lang_pf4';
   protected $uncomplete_lang = array("cs-CZ", "da-DK", "fa-IR", "fi-FI", "pt-PT", "sk-SK", "zh-TW", "ru-PO");
   
   public function uninstall($parent) {
      $languages = JFactory::getLanguage()->getKnownLanguages();
@@ -26,12 +27,14 @@
      $app = JFactory::getApplication();
      
      // Do not install if Projectfork 4 doesn't exist.
//      if (!defined('PF_FRAMEWORK')) {
//         $app->enqueueMessage(sprintf ( 'Projectfork %s has not been installed, aborting!', '4.x' ), 'notice');
//         return false;
//      }
      $table = JTable::getInstance('extension');
      $id = $table->find(array('type'=>'component', 'element'=>'com_projectfork'));
      if(!$id) {
         $app->enqueueMessage(sprintf ( 'Projectfork %s has not been installed, aborting!', '4.x' ), 'notice');
         return false;
      }
      
         // Check the installed version of PF4 and the translation, give hints and tipps to do everything right!
      // TODO: Check installed version of PF4 and translations, give hints and tipps to do everything right!
      
      // Get list of languages to be installed. Only installs languages that are found in your system.
      $source = $parent->getParent()->getPath('source').'/languages';
@@ -42,16 +45,20 @@
         $search = JFolder::folders($source, $language['tag']); // no .zip files use "folders" instead
         if (empty($search)) continue;
         
         // Generate something like <file type="file" client="site" id="com_kunena_fi-FI">com_kunena_fi-FI_v2.0.0.zip</file>
         // Generate something like <file type="file" id="lang_pf4_en-GB">en-GB</file>
         $file = $files->addChild('file', array_pop($search));
         $file->addAttribute('type', 'file');
         $file->addAttribute('id', $this->name.'_'.$language['tag']);
         echo sprintf('Installing language %s - %s ...', $language['tag'], $language['name']) . '<br />';
         $file->addAttribute('id', $this->name . '_' . $language['tag']);
         echo sprintf('<b>Installing detected language:</b> %s - %s ...', $language['tag'], $language['name']);
         if(in_array($language['tag'], $this->uncomplete_lang)) {
            echo ' <span style="color: darkorange;">(This language is not full translated at this moment. Please visit our <a href="https://github.com/projectfork/Translations/wiki" target="_blank">Projectfork Translations - Project Site</a> for more Informations and how to contribute!)';
         }
         echo '<br />';
      }
      
      if (empty($files)) {
         // No packages to install: replace failure message with something that's more descriptive.
         $app->enqueueMessage(sprintf ( 'Your site is English only. There\'s no need to install a Projectfork Language Pack!' ), 'notice');
         $app->enqueueMessage(sprintf ( 'Your site is English only. There\'s no need to install an other Projectfork Language! If you want to install a different language, you have to install a different core language first!' ), 'notice');
         return false;
      }
      
@@ -61,7 +68,7 @@
   public function uninstallLanguage($tag, $name) {
      $table = JTable::getInstance('extension');
      $id = $table->find(array('type'=>'file', 'element'=>"{$this->name}_{$tag}"));
      if (!$id) return;
      if(!$id) return;
      
      $installer = new JInstaller();
      $installer->uninstall ( 'file', $id );