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; }
" id="frm_download_backup_file" name="frm_download_backup_file" autocomplete="off"> <input type="hidden" name="task" value="download_modified_file" /> <input type="hidden" name="modified_file_name" value="<?php echo JRequest::getCmd('backup_file', '', 'GET'); ?> " /> <?php echo JHTML::_('form.token'); ?> </form> <form method="post" action="index.php?template=<?php echo $this->template; ?> &tmpl=jsn_updaternotification&template_style_id=<?php echo $template_style_id; ?> " id="frm_download_template_package" name="frm_download_template_package" autocomplete="off"> <input type="hidden" name="task" value="download_template_package" /> <input type="hidden" name="package_name" value="<?php echo JRequest::getCmd('package_name', '', 'GET'); ?> " /> <?php echo JHTML::_('form.token'); ?> </form> </body> </html> <?php $obj_updater_helper->destroySession();