<?xml version="1.0" encoding="utf-8"?>
<modification>
	<name>JooCart Admin Common Modifications</name>
	<code>joocart_admin_common</code>
	<version>3.0.3.2</version>
	<author>softPHP</author>
	<link>https://www.soft-php.com</link>
	<file path="admin/controller/catalog/category.php">
		<operation>
			<search><![CDATA[} elseif (!empty($category_info) && is_file(DIR_IMAGE . $category_info['image'])) {]]></search>
			<add position="replace"><![CDATA[} elseif (!empty($category_info) && (is_file(DIR_IMAGE . $category_info['image']) || (defined("JOOCART_MAIN_HTTP_SERVER") && JOOCART_MAIN_HTTP_SERVER))) {]]></add>
		</operation>
		<operation>
			<search><![CDATA['limit'       => 5]]></search>
			<add position="replace"><![CDATA['limit'       => 20]]></add>
		</operation>
	</file>
	
	<file path="admin/controller/catalog/product.php|admin/controller/common/dashboard.php|admin/controller/common/filemanager.php|admin/controller/common/footer.php|admin/controller/common/header.php|admin/controller/common/security.php">
		<operation>
			<search><![CDATA[public function index() {]]></search>
			<add position="after"><![CDATA[
			$data['ABSPATH'] = defined("ABSPATH")?ABSPATH:false;
			]]></add>
		</operation>
	</file>
	
	<file path="admin/controller/common/footer.php">
		<operation>
			<search><![CDATA[return $this->load->view('common/footer', $data);]]></search>
			<add position="before"><![CDATA[
		if(defined("ABSPATH") && $data['text_version'] != "")
		$data['text_version'] = 'JooCart Version 3.0.5.1 - OpenCart ' . sprintf($this->language->get('text_version'), VERSION);
		$data["oc_theme_admin_only"] = false;
			]]></add>
		</operation>
	</file>
	
	<file path="admin/controller/catalog/product.php">
		<operation>
			<search><![CDATA[if (is_file(DIR_IMAGE . $result['image'])) {]]></search>
			<add position="replace"><![CDATA[if (is_file(DIR_IMAGE . $result['image']) || (defined("JOOCART_MAIN_HTTP_SERVER") && JOOCART_MAIN_HTTP_SERVER)) {]]></add>
		</operation>
		<operation>
			<search><![CDATA[} elseif (!empty($product_info) && is_file(DIR_IMAGE . $product_info['image'])) {]]></search>
			<add position="replace"><![CDATA[} elseif (!empty($product_info) && (is_file(DIR_IMAGE . $product_info['image']) || (defined("JOOCART_MAIN_HTTP_SERVER") && JOOCART_MAIN_HTTP_SERVER))) {]]></add>
		</operation>
		<operation>
			<search><![CDATA[if (is_file(DIR_IMAGE . $product_image['image'])) {]]></search>
			<add position="replace"><![CDATA[if (is_file(DIR_IMAGE . $product_image['image']) || (defined("JOOCART_MAIN_HTTP_SERVER") && JOOCART_MAIN_HTTP_SERVER)) {]]></add>
		</operation>
	</file>
	
	<file path="admin/controller/common/dashboard.php">
		<operation>
			<search><![CDATA[// Dashboard Extensions]]></search>
			<add position="before"><![CDATA[
		//check wrong db info in joocart options
		if(defined("ABSPATH") && isset($_SESSION["wrong_db_info"]) && $_SESSION["wrong_db_info"]=="yes"){
			$data['error_install'] = $this->language->get('error_dbinfo_joocart');
		}
			]]></add>
		</operation>
	</file>
	<file path="admin/controller/common/developer.php">
		<operation>
			<search><![CDATA[// Before we delete we need to make sure there is a sass file to regenerate the css]]></search>
			<add position="before"><![CDATA[
			if(!defined("ABSPATH")) {
			]]></add>
		</operation>
		<operation>
			<search><![CDATA[$json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_sass'));]]></search>
			<add position="before"><![CDATA[
			}
			]]></add>
		</operation>
	</file>
	
	<file path="admin/controller/common/filemanager.php|admin/controller/extension/openbay/amazon_product.php|admin/controller/extension/openbay/amazonus_product.php|admin/controller/extension/openbay/ebay.php|admin/controller/sale/voucher.php|admin/model/extension/openbay/openbay.php|admin/model/tool/image.php">
		<operation>
			<search><![CDATA[. 'image/' .]]></search>
			<add position="replace"><![CDATA[. JOOCART_RELATIVE_URL . 'image/' .]]></add>
		</operation>
	</file>
	
	<file path="admin/controller/common/filemanager.php">
		<operation>
			<search><![CDATA[$this->response->setOutput($this->load->view('common/filemanager', $data));]]></search>
			<add position="before"><![CDATA[
			$data['HTTP_IMAGE'] = defined("JOOCART_OPENCART_URL")?JOOCART_OPENCART_URL . 'image/':'';
			]]></add>
		</operation>
	</file>
	
	<file path="admin/controller/common/header.php">
		<operation>
			<search><![CDATA[public function index() {]]></search>
			<add position="after"><![CDATA[
			$data['JOOCART_DONT_INCLUDE_JQUERY'] = defined("JOOCART_DONT_INCLUDE_JQUERY")?JOOCART_DONT_INCLUDE_JQUERY:false;
			$data['JOOCART_USE_JQUERY_DOLLAR'] = defined("JOOCART_USE_JQUERY_DOLLAR")?JOOCART_USE_JQUERY_DOLLAR:false;
			$data["oc_theme_admin_only"] = false;
			if (!defined('VERSION') && defined('JOOCART_OC_VERSION')) { define('VERSION', JOOCART_OC_VERSION); }
			]]></add>
		</operation>
	</file>
	
	<file path="admin/controller/common/logout.php">
		<operation>
			<search><![CDATA[unset($this->session->data['user_token']);]]></search>
			<add position="after"><![CDATA[
		if(isset($this->session->data['store_token_id']))
		unset($this->session->data['store_token_id']);
			]]></add>
		</operation>
	</file>
	
	<file path="admin/controller/design/translation.php">
		<operation>
			<search><![CDATA[$pagination->url = $this->url->link('design/translation/history', 'user_token=' . $this->session->data['user_token'] . '&page={page}', true);]]></search>
			<add position="replace"><![CDATA[
		$pagination->limit = $this->config->get('config_limit_admin');
		$pagination->url = $this->url->link('design/translation', 'user_token=' . $this->session->data['user_token'] . '&page={page}', true);
			]]></add>
		</operation>
	</file>
	
	<file path="admin/controller/extension/module/pp_login.php">
		<operation>
			<search><![CDATA['marketplace/event']]></search>
			<add position="replace"><![CDATA['setting/event']]></add>
		</operation>
	</file>
	
	<file path="admin/controller/extension/payment/pp_express.php">
		<operation>
			<search><![CDATA['parent_transaction_id' => $this->request->post['transaction_id'],]]></search>
			<add position="replace"><![CDATA['parent_id' => $this->request->post['transaction_id'],]]></add>
		</operation>
	</file>
	
	<file path="admin/controller/startup/error.php">
		<operation>
			<search><![CDATA[if ($this->config->get('config_error_]]></search>
			<add position="replace"><![CDATA[if(is_object($this->config) && $error != 'Notice' && $error != 'Warning' && $code !=E_STRICT && $error != 'Unknown')
		if ($this->config->get('config_error_]]></add>
		</operation>
	</file>
	
	<file path="admin/controller/startup/startup.php">
		<operation>
			<search><![CDATA[// Theme]]></search>
			<add position="before"><![CDATA[
		if($this->config->get('config_secure') && !defined("JOOCART_OC_SSL_SECURE"))
		define('JOOCART_OC_SSL_SECURE', $this->config->get('config_secure'));
		if(!defined('JOOCART_RELATIVE_URL'))
		define('JOOCART_RELATIVE_URL', '');
		if(!defined("JOOCART_PAGE_ID_PARAM"))
		define('JOOCART_PAGE_ID_PARAM', '');
			]]></add>
		</operation>
	</file>
	
	<file path="admin/controller/startup/startup.php">
		<operation>
			<search><![CDATA[if ($this->config->get('config_timezone')) {]]></search>
			<add position="replace"><![CDATA[if ($this->config->get('config_timezone') && !defined("ABSPATH")) {]]></add>
		</operation>
	</file>
	
	
	
	<file path="admin/language/en-gb/en-gb.php">
		<operation>
			<search><![CDATA[// Locale]]></search>
			<add position="before"><![CDATA[
$_['error_dbinfo_joocart']                             = 'Warning: Wrong databse information provied in JooCart Options! Provide correct databse information and login agin.';
$_['entry_wordpress_user_group_id_for_user_group']     = 'Default WordPress user group during new user registration';
$_['entry_wordpress_user_group_id_for_customer_group'] = 'Default WordPress user group during new customer registration';
			]]></add>
		</operation>
	</file>
	
	<file path="admin/language/en-gb/common/security.php">
		<operation>
			<search><![CDATA[$_['heading_title']    = 'Important Security Notification!';]]></search>
			<add position="replace"><![CDATA[
if(defined("ABSPATH"))
$_['heading_title']    = 'Storage Directory';
else
$_['heading_title']    = 'Important Security Notification!';
			]]></add>
		</operation>		
		<operation>
			<search><![CDATA[$_['text_security']]]></search>
			<add position="after"><![CDATA[
if(defined("ABSPATH"))
$_['text_security']    = 'You can move the storage directory outside of the web directory (e.g. public_html, www or htdocs). But after each upgrade you need to do it again. So it is better to ignore it and continue using default storage directory( '.DIR_STORAGE.' )';
			]]></add>
		</operation>
	</file>
	
	<file path="admin/model/tool/image.php">
		<operation>
			<search><![CDATA[public function resize($filename, $width, $height) {]]></search>
			<add position="replace"><![CDATA[
	public function filemtime_remote($uri)
	{
		$uri = parse_url($uri);
		$handle = @fsockopen($uri['host'],80);
		if(!$handle)
			return 0;
		fputs($handle,"GET $uri[path] HTTP/1.1\r\nHost: $uri[host]\r\n\r\n");
		$result = 0;
		while(!feof($handle))
		{
			$line = fgets($handle,1024);
			if(!trim($line))
				break;
			$col = strpos($line,':');
			if($col !== false)
			{
				$header = trim(substr($line,0,$col));
				$value = trim(substr($line,$col+1));
				if(strtolower($header) == 'last-modified')
				{
					$result = strtotime($value);
					break;
				}
			}
		}
		fclose($handle);
		return $result;
	}
	public function resize($filename, $width, $height) {
		if(defined("JOOCART_MAIN_HTTP_SERVER") && JOOCART_MAIN_HTTP_SERVER){
			/* if (!file_exists(DIR_IMAGE . $filename) || !is_file(DIR_IMAGE . $filename) || ($this->filemtime_remote(JOOCART_MAIN_HTTP_SERVER.JOOCART_RELATIVE_URL.'image/' . $filename) > filemtime(DIR_IMAGE . $filename)) || ($this->filemtime_remote(JOOCART_MAIN_HTTP_SERVER.'image/' . $filename) > filemtime(DIR_IMAGE . $filename)) ) {
			*/
			if (!file_exists(DIR_IMAGE . $filename) || !is_file(DIR_IMAGE . $filename)) {
				if(!@copy(JOOCART_MAIN_HTTP_SERVER.JOOCART_RELATIVE_URL.'image/' . $filename, DIR_IMAGE . $filename)){
					@copy(JOOCART_MAIN_HTTP_SERVER.'image/' . $filename, DIR_IMAGE . $filename);
				}
			}
		}
			]]></add>
		</operation>
	</file>
	
	<file path="admin/view/template/catalog/product_form.twig">
		<operation>
			<search><![CDATA[<div class="tab-content">{% for language in languages %}]]></search>
			<add position="replace"><![CDATA[<div class="tab-content"{% if ABSPATH %} style="display:block !important;"{% endif %}>{% for language in languages %}]]></add>
		</operation>
	</file>
	
	<file path="admin/view/template/common/dashboard.twig">
		<operation>
			<search><![CDATA[<div class="pull-right">]]></search>
			<add position="after"><![CDATA[
		{% if ABSPATH and security %}
	  	<button type="button" id="button-security" title="" data-loading-text="{{ text_loading }}" class="btn btn-info"><i class="fa fa-exclamation-triangle fa-fw"></i></button>
		{% endif %}
			]]></add>
		</operation>
	</file>
	
	<file path="admin/view/template/common/filemanager.twig">
		<operation>
			<search><![CDATA[<div id="filemanager" class="modal-dialog modal-lg">]]></search>
			<add position="before"><![CDATA[
		{% if ABSPATH %}
	  	<div class="body-oc">
		{% endif %}
			]]></add>
		</operation>
		<operation>
			<search><![CDATA[<div class="modal-body">]]></search>
			<add position="replace"><![CDATA[<div class="modal-body"{% if ABSPATH %} style="overflow:auto;"{% endif %}>]]></add>
		</operation>
		<operation>
			<search index="0"><![CDATA[<script type="text/javascript"><!--]]></search>
			<add position="before"><![CDATA[
		{% if ABSPATH %}
	  	</div>
		{% endif %}
			]]></add>
		</operation>
		<operation>
			<search><![CDATA[}}').val($(this).parent().find('input').val());]]></search>
			<add position="after"><![CDATA[
	{% if "mceu_" in target %}
	$('#{{ target }}').val('{{ HTTP_IMAGE }}' + $(this).parent().find('input').val());			
	{% endif %}
			]]></add>
		</operation>
	</file>
	
	<file path="admin/view/template/common/footer.twig">
		<operation>
			<search><![CDATA[</body></html>]]></search>
			<add position="replace"><![CDATA[
			{% if ABSPATH and not oc_theme_admin_only %}
			</div>
			{% else %}			
			</body></html>
			{% endif %}]]></add>
		</operation>
	</file>
	
	<file path="admin/view/template/common/security.twig">
		<operation>
			<search index="0"><![CDATA[$(document).ready(function() {]]></search>
			<add position="before"><![CDATA[
{% if ABSPATH %}
$('#button-security').on('click', function(e) {
	$('#modal-security').modal('show');
});
{% endif %}
			]]></add>
		</operation>
		<operation>
			<search index="1"><![CDATA[$('#modal-security').modal('show');]]></search>
			<add position="replace"><![CDATA[
			{% if not ABSPATH %}
			$('#modal-security').modal('show');
			{% endif %}
			]]></add>
		</operation>
	</file>
	
	
	<file path="admin/view/template/design/translation_form.twig">
		<operation>
			<search><![CDATA[<button type="submit" form="form-translation" data-toggle="tooltip" title="{{ button_save }}" class="btn btn-primary"><i class="fa fa-save"></i></button>]]></search>
			<add position="replace"><![CDATA[
			<button type="submit" onclick="enable_translation_values();return false;" form="form-translation" data-toggle="tooltip" title="{{ button_save }}" class="btn btn-primary"><i class="fa fa-save"></i></button>
  <script type="text/javascript"><!--
	function enable_translation_values() {
		$('select[name="store_id"]').prop('disabled', false);
		$('select[name="language_id"]').prop('disabled', false);
		$('select[name="route"]').prop('disabled', false);
		$('select[name="key"]').prop('disabled', false);
		$('textarea[name="value"]').prop('disabled', false);
		$("#form-translation").submit();
	}
  //--></script> 
			]]></add>
		</operation>
	</file>
	
	<file path="admin/view/template/marketing/contact.twig">
		<operation>
			<search><![CDATA[send(]]></search>
			<add position="replace"><![CDATA[{% if ABSPATH %}sendmail( {% else %} send({% endif %}]]></add>
		</operation>
		<operation>
			<search><![CDATA[url) {]]></search>
			<add position="after"><![CDATA[
	// tinymce fix
	if(!$('#input-message').val() && typeof(tinymce) != 'undefined')
	tinymce.triggerSave();
			]]></add>
		</operation>
	</file>
	
	<file path="system/config/admin.php">
		<operation>
			<search><![CDATA[$_['action_default'] = 'common/dashboard';]]></search>
			<add position="before"><![CDATA[
			if(defined("ABSPATH"))
			unset($_['action_pre_action'][3]);
			]]></add>
		</operation>
	</file>
	
	<file path="system/config/catalog.php">
		<operation>
			<search><![CDATA[$_['site_url']           = HTTP_SERVER;]]></search>
			<add position="replace"><![CDATA[
			if(defined("ABSPATH"))
			$_['site_url']           = JOOCART_SITE_URL;
			else
			$_['site_url']           = HTTP_SERVER;
			]]></add>
		</operation>
		<operation>
			<search><![CDATA[$_['site_ssl']           = HTTPS_SERVER;]]></search>
			<add position="replace"><![CDATA[
			if(defined("ABSPATH"))
			$_['site_url']           = JOOCART_SITE_URL;
			else
			$_['site_ssl']           = HTTPS_SERVER;
			]]></add>
		</operation>
	</file>
	
	<file path="system/helper/utf8.php">
		<operation>
			<search><![CDATA[if (extension_loaded('mbstring')) {]]></search>
			<add position="replace"><![CDATA[
if(defined("ABSPATH")) {
if(file_exists("/libraries/vendor/wordpress/string/src/phputf8/utf8.php"))
require_once("libraries/vendor/wordpress/string/src/phputf8/utf8.php");
elseif(file_exists("libraries/phputf8/utf8.php"))
require_once("libraries/phputf8/utf8.php");
}
if (!function_exists("utf8_strlen") && extension_loaded('mbstring')) {
			]]></add>
		</operation>
		
		<operation>
			<search><![CDATA[} elseif (function_exists('iconv')) {]]></search>
			<add position="replace"><![CDATA[} elseif (!function_exists("utf8_strlen") && function_exists('iconv')) {]]></add>
		</operation>
	</file>
	
	<file path="system/library/cache/file.php|system/library/session/file.php">
		<operation>
			<search><![CDATA[	unlink($file);]]></search>
			<add position="replace"><![CDATA[	@unlink($file);]]></add>
		</operation>
	</file>
	
	<file path="system/library/db/mysql.php">
		<operation>
			<search><![CDATA[if (!$this->connection = mysql_connect($hostname . ':' . $port, $username, $password)) {]]></search>
			<add position="replace" offset="7"><![CDATA[
		global $wpdb;		
		if(defined("ABSPATH") && $wpdb->dbname!=DB_DATABASE && $wpdb->dbhost==DB_HOSTNAME && $wpdb->dbuser==DB_USERNAME && $wpdb->dbpassword==JOOCART_DB_PASS_WORD){			
			if (!$this->connection = @mysql_connect($hostname . ':' . $port, $username, $password,true)) {
				$_SESSION["wrong_db_info"]="yes";
				if(!$this->connection = mysql_connect($wpdb->dbhost . ':' . $port, $wpdb->dbuser, $wpdb->dbpassword)) {
					throw new \Exception('Error: Could not connect to database ' . $database);
				}
			}
		}
		elseif (!$this->connection = @mysql_connect($hostname . ':' . $port, $username, $password)) {
			$_SESSION["wrong_db_info"]="yes";
			if(defined("ABSPATH") && !$this->connection = mysql_connect($wpdb->dbhost . ':' . $port, $wpdb->dbuser, $wpdb->dbpassword)) {
				throw new \Exception('Error: Could not connect to database ' . $database);
			}
    	}

    	if (!@mysql_select_db($database, $this->connection)) {
			$_SESSION["wrong_db_info"]="yes";
			if (defined("ABSPATH") && !mysql_select_db($wpdb->dbname, $this->connection)) {
				throw new \Exception('Error: Could not connect to database ' . $database);
			}
    	}
			]]></add>
		</operation>
	</file>
	
	<file path="system/library/db/mysqli.php">
		<operation>
			<search><![CDATA[($hostname, $username, $password, $database, $port);]]></search>
			<add position="after"><![CDATA[
		}
			]]></add>
		</operation>
		<operation>
			<search><![CDATA[($hostname, $username, $password, $database, $port);]]></search>
			<add position="before"><![CDATA[
		if(defined("ABSPATH") && strstr($hostname, ".sock") && strstr($hostname, ":")) {
			$socket = '';
			$host_name = explode(":", $hostname);
		    if(count($host_name) == 3 && !is_numeric($host_name[2])){
				$hostname =$host_name[0] . ":" .$host_name[1];
				$socket = $host_name[2];
			} elseif(count($host_name) == 2 && !is_numeric($host_name[1])) {
				$hostname =$host_name[0];
				$socket = $host_name[1];
			}			
			$this->connection = $mysqli = @new \MySQLi($hostname, $username, $password, $database, $port, $socket);
		} else {
			$host_name = explode(":", $hostname);
			if(count($host_name) == 2 && is_numeric($host_name[1])) {
				$hostname =$host_name[0];
				$port = $host_name[1];
			}
			]]></add>
		</operation>
		<operation>
			<search index="0"><![CDATA[throw new \Exception('Error:]]></search>
			<add position="replace"><![CDATA[
		if(defined("ABSPATH")) {
			$_SESSION["wrong_db_info"]="yes";
			global $wpdb;
			if(isset($this->connection))
			unset($this->connection);
			$this->connection = $mysqli = new \mysqli($wpdb->dbhost, $wpdb->dbuser, $wpdb->dbpassword, $wpdb->dbname, $port);	
		}
		if ($this->connection->connect_error)
			throw new \Exception('Error:]]></add>
		</operation>
	</file>
	
	<file path="system/library/session/db.php">
		<operation>
			<search><![CDATA[if ($session_id) {]]></search>
			<add position="replace"><![CDATA[if ($session_id && $this->db->escape($session_id) != '') {]]></add>
		</operation>
	</file>
	
	<file path="system/library/template/Twig/Autoloader.php">
		<operation>
			<search><![CDATA[class Twig_Autoloader]]></search>
			<add position="before"><![CDATA[
			if(class_exists('Twig_Autoloader')) return;
			]]></add>
		</operation>
	</file>
	
	<file path="system/library/cache.php">
		<operation>
			<search><![CDATA[class Cache {]]></search>
			<add position="before"><![CDATA[
			if(class_exists('Cache')) return;
			]]></add>
		</operation>
	</file>
	
	<file path="system/library/image.php">
		<operation>
			<search><![CDATA[class Image {]]></search>
			<add position="before"><![CDATA[
			if(class_exists('Image')) return;
			]]></add>
		</operation>
		<operation>
			<search><![CDATA[	$info = getimagesize($file);]]></search>
			<add position="replace"><![CDATA[	$info = @getimagesize($file);]]></add>
		</operation>
	</file>
	
	<file path="system/library/mail.php">
		<operation>
			<search><![CDATA[class Mail ]]></search>
			<add position="before"><![CDATA[
			if(class_exists('Mail')) return;
			]]></add>
		</operation>
	</file>
	
	<file path="system/library/openbay.php">
		<operation>
			<search><![CDATA[$this->{$market} = new $class($registry);]]></search>
			<add position="replace"><![CDATA[
				if(class_exists($class))
				$this->{$market} = new $class($registry);
			]]></add>
		</operation>
	</file>
	
	<file path="system/library/request.php">
		<operation>
			<search><![CDATA[$this->post = $this->clean($_POST);]]></search>
			<add position="replace"><![CDATA[
		if(isset($_POST))
		$this->post = $this->clean($_POST);
			]]></add>
		</operation>
	</file>
	
	<file path="system/library/response.php">
		<operation>
			<search><![CDATA[!== false]]></search>
			<add position="replace"><![CDATA[]]></add>
		</operation>
		<operation>
			<search><![CDATA[echo $output;]]></search>
			<add position="after"><![CDATA[
			if(defined("ABSPATH")) {
				if((isset($_REQUEST["route"]) || isset($_REQUEST["_route_"])) && !strstr($output,"/javascript/common.js\"") && !strstr($output,"='header") && !strstr($output,"=\"header") && !strstr($output,"<header>"))
				$_REQUEST["tmpl"]="component";
				elseif(isset($header) && strstr($header, "application/json") && !isset($_REQUEST["tmpl"]))
				$_REQUEST["tmpl"]="component";
			}
			]]></add>
		</operation>
	</file>
	
	<file path="system/library/session.php">
		<operation>
			<search><![CDATA[class Session {]]></search>
			<add position="before"><![CDATA[
			if(class_exists('Session')) return;
			]]></add>
		</operation>
	</file>
	
	<file path="system/framework.php">
		<operation>
			<search><![CDATA[$registry = new Registry();]]></search>
			<add position="before"><![CDATA[global $registry, $config;]]></add>
		</operation>		
		<operation>
			<search><![CDATA[$config->load($application_config);]]></search>
			<add position="before"><![CDATA[
$config->set('application_config', $application_config);
if(isset($joocart_application_config_mode))
$config->set('application_config_mode', $joocart_application_config_mode);
			]]></add>
		</operation>
		<operation>
			<search><![CDATA[$registry->set('session', $session);]]></search>
			<add position="replace"><![CDATA[]]></add>
		</operation>
		<operation>
			<search><![CDATA[	setcookie($config->get('session_name'), $session->getId(), ini_get('session.cookie_lifetime'), ini_get('session.cookie_path'), ini_get('session.cookie_domain'));]]></search>
			<add position="replace"><![CDATA[
			if(!headers_sent())
			@setcookie($config->get('session_name'), $session->getId(), ini_get('session.cookie_lifetime'), ini_get('session.cookie_path'), ini_get('session.cookie_domain'));]]></add>
		</operation>
		<operation>
			<search><![CDATA[// Cache]]></search>
			<add position="before"><![CDATA[$registry->set('session', $session);]]></add>
		</operation>
		<operation>
			<search><![CDATA[$response->output();]]></search>
			<add position="replace"><![CDATA[
global $joocart_application_config_mode;
if(!isset($joocart_application_config_mode) ||  $joocart_application_config_mode != 'module') 
$response->output();
			]]></add>
		</operation>
	</file>
	
	<file path="system/framework.php">
		<operation>
			<search><![CDATA[if ($config->get('error_display')) {]]></search>
			<add position="replace"><![CDATA[if ($config->get('error_display') && $error != 'Unknown') {]]></add>
		</operation>
		<operation>
			<search><![CDATA[if ($config->get('error_log')) {]]></search>
			<add position="replace"><![CDATA[if ($config->get('error_log') && $error != 'Unknown' && is_object($log) && method_exists($log,'write')) {]]></add>
		</operation>
	</file>
	
	<file path="system/startup.php">
		<operation>
			<search><![CDATA[function modification($filename) {]]></search>
			<add position="before"><![CDATA[if(!function_exists("modification")){]]></add>
		</operation>
		<operation>
			<search><![CDATA[// Autoloader]]></search>
			<add position="before"><![CDATA[}]]></add>
		</operation>
		<operation>
			<search><![CDATA[function library($class) {]]></search>
			<add position="before"><![CDATA[if(!function_exists("library")){]]></add>
		</operation>
		<operation>
			<search><![CDATA[spl_autoload_register('library');]]></search>
			<add position="before"><![CDATA[}]]></add>
		</operation>
		<operation>
			<search><![CDATA[require_once(modification(DIR_SYSTEM . 'engine/action.php'));]]></search>
			<add position="replace"><![CDATA[if(!class_exists("Action"))
require_once(modification(DIR_SYSTEM . 'engine/action.php'));]]></add>
		</operation>
		<operation>
			<search><![CDATA[require_once(modification(DIR_SYSTEM . 'engine/loader.php'));]]></search>
			<add position="replace"><![CDATA[if(!class_exists("Loader"))
require_once(modification(DIR_SYSTEM . 'engine/loader.php'));]]></add>
		</operation>
		<operation>
			<search><![CDATA[function start($application_config) {]]></search>
			<add position="replace" offset="2"><![CDATA[if(defined('ABSPATH')) {
function joocart_output_oc($output) {
	echo $output;
}
function start_oc($application_config) {
	require_once(modification(DIR_SYSTEM . 'framework.php'));	
}
} else {
function start($application_config) {
	require_once(DIR_SYSTEM . 'framework.php');	
}
}]]></add>
		</operation>
  </file>
</modification>
