/** * @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(); }
/** * @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; }