* @copyright Copyright (C) 2008 - 2011 JoomlaShine.com. All rights reserved. * @license GNU/GPL v2 http://www.gnu.org/licenses/gpl-2.0.html * @version $Id: jsn_autoupdater.php 11613 2012-03-08 09:31:14Z hieudm $ */ // No direct access defined('_JEXEC') or die('Restricted access'); require_once 'includes' . DS . 'jsn_defines.php'; require_once 'includes' . DS . 'lib' . DS . 'jsn_utils.php'; require_once 'includes' . DS . 'lib' . DS . 'jsn_readxmlfile.php'; require_once 'includes' . DS . 'lib' . DS . 'jsn_auto_updater_helper.php'; $session = JFactory::getSession(); $obj_read_xml_file = new JSNReadXMLFile(); $obj_utils = new JSNUtils(); $obj_updater_helper = new JSNAutoUpdaterHelper(); $template_manifest = $obj_read_xml_file->getTemplateManifestFileInformation(); $manifest_cache = $obj_utils->getTemplateManifestCache(); $manifest_cache = json_decode($manifest_cache); /* Determine front-end index path, including lang sef if available */ $frontIndexPath = JURI::root() . $obj_utils->determineFrontendIndex(); /* Form template identified_name */ $explodedName = explode('_', $template_manifest['name']); $templateIdName = 'tpl_' . $explodedName[1]; /* Get template latest version from session if possible */ $templateVersionSesId = md5('template_version_' . strtolower($template_manifest['full_name'])); $versionFromSes = $session->get($templateVersionSesId, null, 'jsntemplatesession'); if (!is_null($versionFromSes)) { $latest_version = $versionFromSes; } else { $latest_version = $obj_utils->getLatestProductVersion($templateIdName, 'template'); } if ($template_manifest['edition'] != '' && $template_manifest['edition'] != 'free') {
function installSampleDataManually() { $filename = $this->getPackageFromUpload(); if (!$filename) { return false; } $obj_read_xml_file = new JSNReadXMLFile(); $obj_utils = new JSNUtils(); $unpack_package = $this->unpackPackage($filename); $template_manifest = json_decode($obj_utils->getTemplateManifestCache(), true); $array_non_basic_module = $this->getNonBasicModule(); $array_non_basic_admin_module = $this->getNonBasicAdminModule(); $array_3rd_extension_menu = $this->getThirdExtensionMenus(); $domain = $this->getDomain(); $errors = array(); $isNotExsited = array(); $folderbackup = $this->_template_folder_path . DS . 'backups'; if ($unpack_package) { $sample_data_xml = $obj_read_xml_file->getSampleDataFileContent($unpack_package, $this->_template_folder_name); $installed_data = $sample_data_xml['installed_data']; if ($installed_data && is_array($installed_data)) { if (trim($sample_data_xml['version']) != trim($template_manifest['version'])) { $this->deleteSampleDataFile($filename); $this->deleteSampleDataFolder($unpack_package); $msg = JText::_('JSN_SAMPLE_DATA_OUTDATED_PRODUCT') . ' <a class="link-action" href="http://www.joomlashine.com/docs/general/how-to-update-product.html" target="_blank">' . JText::_('JSN_SAMPLE_DATA_HOW_TO_UPDATE') . '</a>'; JError::raiseWarning('SOME_ERROR_CODE', JText::_($msg)); return false; } else { $result_check_existing_extension = $this->checkExistingExtensions($installed_data); foreach ($result_check_existing_extension as $key => $value) { if ($value['hasData'] === false) { unset($installed_data[$key]); } else { if ($value['exist']) { $extenstion_manifest = $obj_read_xml_file->getExtensionManifestFileInformation($key, $value['manifestPath']); if (count($extenstion_manifest)) { if (@$extenstion_manifest['version'] != $installed_data[$key]->version) { $errors[] = '<strong>' . $installed_data[$key]->description . '</strong> - ' . 'Version <strong>' . $installed_data[$key]->version . '</strong> is required. <a class="link-action" href="http://www.joomlashine.com/docs/general/how-to-update-product.html" target="_blank">How to update?</a>'; unset($installed_data[$key]); } } else { $errors[] = '<strong>' . $installed_data[$key]->description . '</strong> - ' . 'the version information not found in sample data package.'; unset($installed_data[$key]); } } else { $errors[] = '<strong>' . $installed_data[$key]->description . '</strong> - ' . 'Extension is not installed. <a class="link-action" href="http://www.joomlashine.com/joomla-extensions/jsn-' . $key . '.html" target="_blank">Get it now.</a>'; $isNotExsited[] = $key; unset($installed_data[$key]); } } } $this->returnError('false', $errors); $obj_backup = JSNBackup::getInstance(); if (is_writable($folderbackup)) { $backup_file_name = $obj_backup->executeBackup($this->_template_folder_path . DS . 'backups', $domain, $installed_data); } $this->deleteNonBasicAdminModule(); $this->installSampleData($installed_data); if (count($isNotExsited)) { $asset = JTable::getInstance('Asset'); foreach ($isNotExisted as $element) { $element = 'com_' . $element; if ($asset->loadByName($element)) { $asset->delete(); } } } $this->runQueryNonBasicModule($array_non_basic_module); $this->runQueryNonBasicModule($array_non_basic_admin_module, true); $this->restoreThirdExtensionMenus($array_3rd_extension_menu); $this->rebuildMenu(); $this->copyContentFromFilesFolder($unpack_package); $this->deleteSampleDataFolder($unpack_package); $this->setDefaultTemplate(strtolower($template_manifest['name'])); $this->deleteSampleDataFile($filename); return true; } } else { $this->deleteSampleDataFile($filename); $msg = JText::_('JSN_SAMPLE_DATA_INVALID'); JError::raiseWarning('SOME_ERROR_CODE', $msg); } return false; } else { $msg = JText::_('JSN_SAMPLE_DATA_UNABLE_EXTRACT_PACKAGE'); JError::raiseWarning('SOME_ERROR_CODE', $msg); } return false; }