/**
  * @param string                     $type
  * @param JInstallerAdapterComponent $parent
  *
  * @return void
  */
 public function postFlight($type, $parent)
 {
     $this->isXmapDataFound = $this->lookForXmapData();
     $this->createDefaultSitemap();
     // If Xmap plugins are still available and we don't have the OSMap plugins yet,
     // save Xmap plugins params to re-apply after install OSMap plugins
     $this->saveXmapPluginParamsIfExists();
     parent::postFlight($type, $parent);
     // Check if we have params from Xmap plugins to apply to OSMap plugins
     $this->moveXmapPluginsParamsToOSMapPlugins();
 }
Example #2
0
 /**
  * @param string                     $type
  * @param JInstallerAdapterComponent $parent
  *
  * @return void
  */
 public function postFlight($type, $parent)
 {
     $this->isXmapDataFound = $this->lookForXmapData();
     $this->createDefaultSitemap();
     parent::postFlight($type, $parent);
 }
 /**
  * Method to run after an install/update method
  *
  * @return void
  */
 public function postFlight($type, $parent)
 {
     $db = JFactory::getDBO();
     // The upload destination path has changed, so let's move the files to the new destination
     $this->moveCurrentUploadedFiles();
     // Check if mod_osdownloads is installed to show the warning of deprecated
     $query = $db->getQuery(true)->select('COUNT(*)')->from('#__extensions')->where($db->qn('type') . '=' . $db->q('module'))->where($db->qn('element') . '=' . $db->q('mod_osdownloads'));
     $db->setQuery($query);
     $this->deprecatedModOSDownloadsIsInstalled = (int) $db->loadResult();
     parent::postFlight($type, $parent);
     // Legacy database update
     $db->setQuery("SHOW COLUMNS FROM #__osdownloads_documents");
     $rows = $db->loadObjectList();
     $db_version = "1.0.0";
     $has_show_email = false;
     $has_description_3 = false;
     $has_direct_field = false;
     $has_file_url = false;
     $has_parent_id = false;
     $has_cms_version = false;
     $has_picture = false;
     $has_external_ref = false;
     $has_access = false;
     $has_agreement_article_id = false;
     foreach ($rows as $row) {
         if ($row->Field == "show_email") {
             $has_show_email = true;
         }
         if ($row->Field == "description_3") {
             $has_description_3 = true;
         }
         if ($row->Field == "direct_page") {
             $has_direct_field = true;
         }
         if ($row->Field == "file_url") {
             $has_file_url = true;
         }
         if ($row->Field == "file_url") {
             $has_file_url = true;
         }
         if ($row->Field == 'parent_id') {
             $has_parent_id = true;
         }
         if ($row->Field == 'cms_version') {
             $has_cms_version = true;
         }
         if ($row->Field == 'picture') {
             $has_picture = true;
         }
         if ($row->Field == 'external_ref') {
             $has_external_ref = true;
         }
         if ($row->Field == 'access') {
             $has_access = true;
         }
         if ($row->Field == 'agreement_article_id') {
             $has_agreement_article_id = true;
         }
     }
     if ($has_show_email && !$has_description_3) {
         $db_version = "1.0.1";
     }
     if ($has_show_email && $has_description_3) {
         $db_version = "1.0.2";
     }
     if ($has_direct_field) {
         $db_version = "1.0.3";
     }
     if ($db_version == "1.0.0") {
         echo "<div>Migrate database from version 1.0.0 to 1.0.3</div>";
         $db->setQuery(file_get_contents(JPATH_ADMINISTRATOR . DS . "components" . DS . "com_osdownloads" . DS . "sql" . DS . "update_1.0.0_1.0.3.mysql.utf8.sql"));
         $db->query();
     }
     if ($db_version == "1.0.1") {
         echo "<div>Migrate database from version 1.0.1 to 1.0.3</div>";
         $db->setQuery(file_get_contents(JPATH_ADMINISTRATOR . DS . "components" . DS . "com_osdownloads" . DS . "sql" . DS . "update_1.0.1_1.0.3.mysql.utf8.sql"));
         $db->query();
     }
     if ($db_version == "1.0.2") {
         echo "<div>Migrate database from version 1.0.2 to 1.0.3</div>";
         $db->setQuery(file_get_contents(JPATH_ADMINISTRATOR . DS . "components" . DS . "com_osdownloads" . DS . "sql" . DS . "update_1.0.2_1.0.3.mysql.utf8.sql"));
         $db->query();
     }
     if (!$has_description_3) {
         // Fix database if upgrade from version 1.0.2 (new install). If upgrade from 1.0.x to 1.0.2 it still correct
         $db->setQuery("SHOW COLUMNS FROM #__osdownloads_documents");
         $rows = $db->loadObjectList();
         $has_description_3 = false;
         foreach ($rows as $row) {
             if ($row->Field == "description_3") {
                 $has_description_3 = true;
             }
         }
         if (!$has_description_3) {
             echo "<div>Apply patch for database version 1.0.2</div>";
             $db->setQuery("ALTER TABLE `#__osdownloads_documents` ADD `description_3` TEXT NOT NULL AFTER `description_2`");
             $db->query();
         }
     }
     if (!$has_file_url) {
         echo "<div>Migrate database for remote files</div>";
         $sql = file_get_contents(JPATH_ADMINISTRATOR . "/components/com_osdownloads/sql/updates/mysql/1.0.17.sql");
         $db->setQuery($sql);
         $db->query();
     }
     // Legacy database update
     $columns = array('external_ref' => 'VARCHAR(100)', 'access' => 'INT(11) NOT NULL DEFAULT 1', 'agreement_article_id' => 'INT(11)');
     $this->addColumnsIfNotExists('#__osdownloads_documents', $columns);
     $columns = array('parent_id', 'cms_version', 'picture');
     $this->dropColumnsIfExists('#__osdownloads_documents', $columns);
     // Remove the old pkg_osdownloads, if existent
     $query = 'DELETE FROM `#__extensions` WHERE `type`="package" AND `element`="pkg_osdownloads"';
     $db->setQuery($query);
     $db->execute();
     $this->checkAndCreateDefaultCategory();
     if ($has_show_email) {
         $this->removeDeprecatedFieldShowEmail();
     }
     return true;
 }