Example #1
0
 function JSNProUpgradeHelper($templateInfo, $joomlaVersion)
 {
     parent::JSNUpdaterHelper();
     $this->_template_version = $templateInfo['version'];
     $this->_identified_name = str_replace('jsn', 'tpl', strtolower($templateInfo['name']));
     $this->_joomla_version = $joomlaVersion;
     $this->_full_name = strtolower($templateInfo['full_name']);
     $this->_name = strtolower($templateInfo['name']);
 }
Example #2
0
 function autoUpdateTemplate()
 {
     jimport('joomla.utilities.xmlelement');
     $session = JFactory::getSession();
     $login_identifier = md5('state_update_login_' . strtolower($this->_template_name));
     $state_login = $session->get($login_identifier, false, 'jsntemplatesession');
     $modified_file_identifier = md5('state_modified_file_' . strtolower($this->_template_name));
     $modified_files = $session->get($modified_file_identifier, array(), 'jsntemplatesession');
     $tmp_path = JPATH_ROOT . DS . 'tmp';
     if (!$state_login) {
         jexit('Invalid Token');
     }
     if ($this->_template_edition != '' && $this->_template_edition != 'free') {
         $edition = $this->_template_edition;
     } else {
         $edition = 'free';
     }
     if ($edition == 'free') {
         $templateNameParts = explode('_', strtolower($this->_template_name));
         $link = 'http://www.joomlashine.com/joomla-templates/' . $templateNameParts[0] . '-' . $templateNameParts[1] . '-download.html';
         $msg_manual_download = JText::sprintf('JSN_UPDATE_DOWNLOAD_FREE', $link);
     } else {
         $link = 'http://www.joomlashine.com/customer-area.html';
         $msg_manual_download = '<span class="jsn-red-message">Unable to download file</span>. Please try to <a href="http://www.joomlashine.com/customer-area.html" target="_blank" class="link-action">download file from Customer Area</a>, then select it:';
     }
     $package_name = JRequest::getCmd('package_name');
     $backup_file = JRequest::getCmd('backup_file');
     $package_path = $tmp_path . DS . $package_name;
     $obj_updater_helper = new JSNUpdaterHelper();
     $obj_auto_updater_helper = new JSNAutoUpdaterHelper();
     $unpack = $obj_auto_updater_helper->unpack($package_path);
     if ($unpack) {
         $files = $obj_updater_helper->compareChecksumFile($unpack['dir']);
         $installer = JSNInstaller::getInstance();
         $strXML = '';
         $tmpArray = array();
         $deleted_files = array();
         $new_manifest = $obj_updater_helper->findManifest($unpack['dir']);
         $tmp_new_version = $new_manifest->version;
         $new_version = $tmp_new_version->data();
         $old_version = $this->_template_version;
         $compare_version = $this->_obj_utils->compareVersion($new_version, $old_version);
         if ($compare_version == 0) {
             $tmpArray = array_merge($tmpArray, $modified_files);
         } else {
             if (isset($files['added'])) {
                 $tmpArray = array_merge($tmpArray, $files['added']);
             }
             if (isset($files['modified'])) {
                 $tmpArray = array_merge($tmpArray, $files['modified']);
             }
             if (isset($files['deleted'])) {
                 $deleted_files = $files['deleted'];
             }
         }
         if (isset($files['modified']) && count($files['modified']) && count($modified_files)) {
             foreach ($files['modified'] as $item1) {
                 foreach ($modified_files as $item2) {
                     if ($item1 == $item2) {
                         echo json_encode(array('update' => false, 'backup_file_name' => '', 'message' => '', 'manual' => false, 'redirect' => true));
                         return;
                     }
                 }
             }
         }
         $tmpArray = array_merge($tmpArray, array('template.checksum'));
         if (count($tmpArray)) {
             $strXML = '<?xml version="1.0" encoding="UTF-8" ?><extension><files>';
             foreach ($tmpArray as $value) {
                 $strXML .= '<filename>' . $value . '</filename>';
             }
             foreach ($files['modified'] as $value) {
                 $strXML .= '<filename>' . $value . '</filename>';
             }
             $strXML .= '</files></extension>';
         }
         if (!empty($strXML)) {
             $new_tmp_xml = new JXMLElement($strXML);
         } else {
             $new_tmp_xml = null;
         }
         if (!$installer->install($unpack['dir'], $new_tmp_xml, $deleted_files)) {
             echo json_encode(array('update' => false, 'backup_file_name' => '', 'message' => JText::sprintf('JSN_UPDATE_INSTALL_FAILED', $link), 'manual' => true, 'redirect' => false));
         } else {
             echo json_encode(array('update' => true, 'backup_file_name' => $backup_file, 'message' => '', 'manual' => false, 'redirect' => false));
         }
     } else {
         echo json_encode(array('update' => false, 'backup_file_name' => '', 'message' => JText::sprintf('JSN_UPDATE_UNPACK_FAILED', $link), 'manual' => true, 'redirect' => false));
     }
     $obj_updater_helper->destroySession();
     $obj_updater_helper->deleteInstallationPackage($unpack['packagefile'], $unpack['dir']);
     return;
 }
 function JSNManualUpdaterHelper()
 {
     parent::JSNUpdaterHelper();
 }
Example #4
0
 * @version   $Id: jsn_updaternotification.php 15592 2012-08-28 09:33:04Z giangnd $
 */
// No direct access
defined('_JEXEC') or die('Restricted access');
include_once 'includes' . DS . 'jsn_defines.php';
include_once 'includes' . DS . 'lib' . DS . 'jsn_utils.php';
include_once 'includes' . DS . 'lib' . DS . 'jsn_readxmlfile.php';
include_once 'includes' . DS . 'lib' . DS . 'jsn_updater_helper.php';
include_once 'includes' . DS . 'lib' . DS . 'jsn_httpsocket.php';
include_once 'includes' . DS . 'lib' . DS . 'jsn_downloadtemplatepackage.php';
$template_style_id = JRequest::getInt('template_style_id', 0, 'GET');
$type = JRequest::getVar('type', 'auto', 'GET');
$session = JFactory::getSession();
$obj_read_xml_file = new JSNReadXMLFile();
$obj_utils = new JSNUtils();
$obj_updater_helper = new JSNUpdaterHelper();
$template_manifest = $obj_read_xml_file->getTemplateManifestFileInformation();
if ($template_manifest['edition'] != '' && $template_manifest['edition'] != 'free') {
    $edition = strtolower('pro_' . $template_manifest['edition']);
} else {
    $edition = 'free';
}
$manifest_cache = $obj_utils->getTemplateManifestCache();
$manifest_cache = json_decode($manifest_cache);
/* Form template identified_name */
$template_name = strtolower($manifest_cache->name);
$template_version_identifier = md5('template_version_' . $template_name);
$customer_info_identifier = md5('state_update_customer_info_' . $template_name);
$login_identifier = md5('state_update_login_' . $template_name);
$version_from_session = $session->get($template_version_identifier, null, 'jsntemplatesession');
$customer_session = $session->get($customer_info_identifier, array(), 'jsntemplatesession');
Example #5
0
 function JSNAutoUpdaterHelper()
 {
     parent::JSNUpdaterHelper();
     $this->setTemplateInfo();
 }