first commit

This commit is contained in:
2025-01-06 20:47:25 +01:00
commit 3bdbd78c2f
25591 changed files with 3586440 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
# Premium Google Analytics Enhanced Ecommerce
## Description
This module allows you to track your site with Google Analytics Enhanced Ecommerce on Prestashop
## Features
- Google Analytics Enhanced Ecommerce
- Scroll Tracking
- Dynamic Remarketing
- AdWords Conversions
## Links
- [online guide](https://docs.reactioncode.com/en/modules/prestashop/premium-google-analytics-enhanced-ecommerce/)
- [support](https://addons.prestashop.com/contact-form.php?id_product=18623)

View File

@@ -0,0 +1,217 @@
NOTICE OF LICENSE
This source file is subject to a trade license awarded by
Garamo Online L.T.D.
Any use, reproduction, modification or distribution
of this source file without the written consent of
Garamo Online L.T.D it is prohibited.
@author Reaction Code <info@reactioncode.com>
@copyright 2015-2020 Garamo Online L.T.D
@license Commercial license
PREMIUM GOOGLE ANALYTICS ENHANCED E-COMMERCE
-------------------------------------------
*******************************************
* 4.5.1 (January 29, 2020)
*******************************************
Fixed
- Product list on search page
- Improved get term on search page
- Notice undefined index on main file
- Checkout step detection
*******************************************
* 4.5.0 (October 10, 2019)
*******************************************
Added
- compatibility with opc sveacheckout by prestaworks
- compatibility with opc thecheckout by Zelarg
Fixed
- send the correct option for shipping and payment method
*******************************************
* 4.4.4 (May 27, 2019)
*******************************************
Fixed
- fixed checkout step with onepagecheckoutps and redirect to payment page option enabled
*******************************************
* 4.4.3 (March 31, 2019)
*******************************************
Fixed
- fixed Google Ads don't works because is converted to 0
*******************************************
* 4.4.2 (March 20, 2019)
*******************************************
Fixed
- fixed product page error 500 on PS 1.7.5 that uses product object instead new productLazyArray
*******************************************
* 4.4.1 (February 28, 2019)
*******************************************
Fixed
- null variant values on dynamic remarketing
- Wrong prices send on manual transactions
*******************************************
* 4.4.0 (January 15, 2019)
*******************************************
Added
- Dynamic remarketing with Business data by GA and GAds
Improves
- Dynamic remarketing with Merchant Center by GA and GAds
Fixed
- Warning processing coupon on status change
*******************************************
* 4.3.0 (January 15, 2019)
*******************************************
Added
- Track promotions (Views and Clicks)
- Track Sig Ups with Supercheckout OPC
Fixed
- Error on PS1.7.5
- Normalized event labels
- Checkout option event values
- Scroll tracking detection
*******************************************
* 4.2.5 (November 15, 2018)
*******************************************
Added
- Added Country iso variable for remarketing prefixes
Fixed
- fixed init gtag issue on empty adwords configurations
*******************************************
* 4.2.4 (October 16, 2018)
*******************************************
Fixed
- fixed quick view product redirection on bad integrations
- fixed addblock detection
*******************************************
* 4.2.3 (September 23, 2018)
*******************************************
Improves
- added compatibility for OPC by PrestaTeam
Fixed
- allow product redirection on exceptional XHR server issue
- fixed send AddToCart event when remove from cart on OPC modules
*******************************************
* 4.2.2 (August 31, 2018)
*******************************************
Fixed
- fixed source / medium on BO transactions
*******************************************
* 4.2.1 (August 19, 2018)
*******************************************
Improves
- updated online guide url
*******************************************
* 4.2.0 (July 18, 2018)
*******************************************
Improves
- added referral exclusion list for manual transactions
- improved source / medium tracking
- improved filters to track search results
- improved event on aborted transactions
- improved remarketing dimensions
- improved code performance
*******************************************
* 4.1.2 (July 11, 2018)
*******************************************
Improves
- added full events on quick view mode
- improved code performance
Fixes
- fixed error on order confirmation page
- fixed revenue value on order confirmation page
- fixed custom dimension ids on order confirmation page
*******************************************
* 4.1.1 (July 4, 2018)
*******************************************
Fixes
- fixed issue on ajax response
*******************************************
* 4.1.0 (July 4, 2018)
*******************************************
Improves
- added tracking status and manual management on display order
- improved order sources for manual transaction
Fixes
- fixed transaction value on AdWords Conversion
*******************************************
* 4.0.0 (May 19, 2018)
*******************************************
Improves
- revamped with new tracking script Global Site Tag
- added option to honor the Do Not Track browser setting to be more compliant with GDPR
- added site speed sample rate value
- added google optimize feature
- added save customer id in control table
- added event to track search terms
- added event goals to track sign ups
- added event goals to track social interactions on product page
- added event values for worthy events
- added on BO transactions send if is possible customer id to avoid missing AdWords transactions
- added control event to track transactions missed by addblock or similar
- added custom dimension ecomm_category for AdWords Remarketing
- improved code performance
Fixes
- fixed split products on checkout and order transactions if is necessary
- fixed bounces distortion on product detail event setting it as non interaction
- fixed send updated product view on each attribute change
- fixed lists values
- fixed list_position on products with non default variant
- fixed product positions on pagination
*******************************************
* 3.3.0 (December 27, 2017)
*******************************************
Improves
- added event Values Configurable
- added new fields on control table (sent_date and sent_from)
- scroll tracking
Fixes
- dynamic remarketing ids prefixes
*******************************************
* 3.2.0 (November 10, 2017)
*******************************************
Improves
- new menu style
- utm data when send order to GA from BO
- added compatibility for supercheckout by Knowband
*******************************************
* 3.1.4 (August 15, 2017)
*******************************************
Fixes
- fixed quantity on product lists add to cart event
- fixed send orders to GA from BO, check if order status is on invalid statuses list
Improves
- BO Menu structure
*******************************************
* 3.1.3 (July 10, 2017)
*******************************************
Improves
- include summary cart on checkout steps
*******************************************
* 3.1.2 (July 4, 2017)
*******************************************
Improves
- added Security token for ajax request
- improved scroll tracking performance
*******************************************
* 3.1.1 (June 23, 2017)
*******************************************
Fixes
- fix events with click + ctrl or click + shift
*******************************************
* 3.0.0 (January 26, 2017)
*******************************************
- Initial release

View File

@@ -0,0 +1,40 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a trade license awarded by
* Garamo Online L.T.D.
*
* Any use, reproduction, modification or distribution
* of this source file without the written consent of
* Garamo Online L.T.D It Is prohibited.
*
* @author ReactionCode <info@reactioncode.com>
* @copyright 2015-2020 Garamo Online L.T.D
* @license Commercial license
*/
class Rc_PgAnalyticsClientId extends ObjectModel
{
public $id_customer;
public $id_shop;
public $client_id;
public static $definition = array(
'table' => 'rc_pganalytics_client_id',
'primary' => 'id_customer',
'fields' => array(
'id_customer' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true),
'id_shop' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true),
'client_id' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'required' => true),
)
);
public static function getClientIdByCustomerId($id_customer)
{
$query = 'SELECT client_id FROM `'._DB_PREFIX_.'rc_pganalytics_client_id`
WHERE id_customer = '.(int)$id_customer
;
return Db::getInstance()->getValue($query);
}
}

View File

@@ -0,0 +1,50 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a trade license awarded by
* Garamo Online L.T.D.
*
* Any use, reproduction, modification or distribution
* of this source file without the written consent of
* Garamo Online L.T.D It Is prohibited.
*
* @author ReactionCode <info@reactioncode.com>
* @copyright 2015-2020 Garamo Online L.T.D
* @license Commercial license
*/
class Rc_PgAnalyticsOrderSent extends ObjectModel
{
public $id_order;
public $id_shop;
public $sent_from;
public $sent_at;
public static $definition = array(
'table' => 'rc_pganalytics_orders_sent',
'primary' => 'id_order',
'fields' => array(
'id_order' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true),
'id_shop' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true),
'sent_from' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'required' => true),
'sent_at' => array('type' => self::TYPE_DATE, 'validate' => 'isDate', 'required' => true),
)
);
public static function getOrderReport($id_order, $id_shop)
{
$query = 'SELECT * FROM `'._DB_PREFIX_.'rc_pganalytics_orders_sent`
WHERE id_order = '.(int)$id_order.' AND id_shop = '.(int)$id_shop
;
return Db::getInstance()->getRow($query);
}
public static function removeOrder($id_order, $id_shop)
{
$query = 'DELETE FROM `'._DB_PREFIX_.'rc_pganalytics_orders_sent`
WHERE id_order = '.(int)$id_order.' AND id_shop = '.(int)$id_shop
;
return Db::getInstance()->execute($query);
}
}

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<module>
<name>rc_pganalytics</name>
<displayName><![CDATA[Premium Google Analytics Enhanced Ecommerce]]></displayName>
<version><![CDATA[4.5.1]]></version>
<description><![CDATA[Enable Google Enhanced Ecommerce Analytics, and knows in detail how users interact in your online Store]]></description>
<author><![CDATA[ReactionCode]]></author>
<tab><![CDATA[analytics_stats]]></tab>
<is_configurable>1</is_configurable>
<need_instance>1</need_instance>
<limited_countries></limited_countries>
</module>

View File

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -0,0 +1,53 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a trade license awared by
* Garamo Online L.T.D.
*
* Any use, reproduction, modification or distribution
* of this source file without the written consent of
* Garamo Online L.T.D It Is prohibited.
*
* @author ReactionCode <info@reactioncode.com>
* @copyright 2015-2020 Garamo Online L.T.D
* @license Commercial license
*/
require_once(dirname(__FILE__).'/../../config/config.inc.php');
require_once(dirname(__FILE__).'/../../init.php');
require_once(dirname(__FILE__).'/rc_pganalytics.php');
// Make sure the request is POST and token exist
if ($_SERVER['REQUEST_METHOD'] !== 'POST' || !Tools::getValue('token') || !Module::isEnabled('rc_pganalytics')) {
// Pretend we're not here if the message is invalid
http_response_code(404);
die;
}
try {
$rcpganalytics = new Rc_PgAnalytics();
if (Tools::getValue('token') === $rcpganalytics->secret_key) {
// get all post values is compliant with PS standards
$post_values = Tools::getAllValues();
// check if exist the data value
if (isset($post_values['data'])) {
// convert json data to array
$data = json_decode($post_values['data'], true);
}
// check is array and is not empty
if (is_array($data) && $data) {
$rcpganalytics->ajaxCall($data);
} else {
throw new Exception('Invalid data');
}
} else {
throw new Exception('Invalid token');
}
} catch (Exception $e) {
http_response_code(400);
echo 'Error: ', $e->getMessage();
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,35 @@
<?php
/**
* 2007-2015 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2015 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

View File

@@ -0,0 +1,42 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a trade license awarded by
* Garamo Online L.T.D.
*
* Any use, reproduction, modification or distribution
* of this source file without the written consent of
* Garamo Online L.T.D It Is prohibited.
*
* @author ReactionCode <info@reactioncode.com>
* @copyright 2015-2020 Garamo Online L.T.D
* @license Commercial license
*/
$sql = array();
$sql[] = 'CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'rc_pganalytics_orders_sent` (
`id_order` INT(10) UNSIGNED NOT NULL,
`id_shop` INT(10) UNSIGNED NOT NULL,
`sent_from` VARCHAR(2) NOT NULL,
`sent_at` DATETIME NOT NULL,
PRIMARY KEY (`id_order`, `id_shop`)
) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=utf8;';
$sql[] = 'CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'rc_pganalytics_client_id` (
`id_customer` INT(10) UNSIGNED NOT NULL,
`id_shop` INT(10) UNSIGNED NOT NULL,
`client_id` VARCHAR(50) NOT NULL,
PRIMARY KEY (`id_customer`, `id_shop`)
) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=utf8;';
$sql[] = 'INSERT IGNORE INTO `'._DB_PREFIX_.'rc_pganalytics_orders_sent` (id_order, id_shop, sent_from, sent_at)
SELECT `id_order`, `id_shop`, "st" AS sent_from, `date_add` AS `sent_at`
FROM `'._DB_PREFIX_.'orders`';
foreach ($sql as $query) {
if (!Db::getInstance()->execute($query)) {
return false;
}
}

View File

@@ -0,0 +1,26 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a trade license awared by
* Garamo Online L.T.D.
*
* Any use, reproduction, modification or distribution
* of this source file without the written consent of
* Garamo Online L.T.D It Is prohibited.
*
* @author ReactionCode <info@reactioncode.com>
* @copyright 2015-2020 Garamo Online L.T.D
* @license Commercial license
*/
$sql = array();
$sql[] = 'DROP TABLE IF EXISTS `'._DB_PREFIX_.'rc_pganalytics_orders_sent`';
$sql[] = 'DROP TABLE IF EXISTS `'._DB_PREFIX_.'rc_pganalytics_client_id`';
foreach ($sql as $query) {
if (Db::getInstance()->execute($query) == false) {
return false;
}
}

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,128 @@
<?php
global $_MODULE;
$_MODULE = array();
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_2579d48981bf080b0dcbc52be32be8b5'] = 'Activa Google Enhanced Ecommerce Analytics y conoce al detalle cómo los usuarios interactúan con tu tienda';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_462390017ab0938911d2d4e964c0cab7'] = 'Configuración actualizada';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_5ad234cb2cde4266195252a23ca7d84e'] = 'Propiedad';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_b4a592245c7c653e71a6b87621940223'] = 'Características de Seguimiento';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_871fa20d6e95bf3be6651ce6a287e53f'] = 'Remarketing Dinámico';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_d93302eabf22ebf309dffabfe626a2d5'] = 'Objetivos';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_449b7b53c811c05e08651ec82d37b499'] = 'Comportamiento de Transacciones';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_5b6cf869265c13af8566f192b4ab3d2a'] = 'Documentación';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_db5eb84117d06047c97c9a0191b5fffe'] = 'Soporte';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_e17402700a96d0ba5446e678dbf40449'] = 'Sugerencias y Mejoras';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_f4f70727dc34561dfde1a3c529b6205c'] = 'Configuración';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_9455a04d13f6889559324dd028eb77aa'] = 'Para conseguir un seguimiento perfecto necesitas una integración específica, lee la documentación';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_6fc25a42f1660072451b8fd33865af1f'] = 'Excluir Tráfico Interno';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_668069a217c4a5c4f69e04ffd99d4e1b'] = 'Desactiva el seguimiento de GA para tu tráfico interno.';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_78b518dc5c6f442dfa7e0a68aaa599e7'] = 'Respetar Solicitud de No Seguimiento';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_d71bdeb1364f56108aeacf9011d985d1'] = 'Desactiva el seguimiento en clientes con la característica de navegación \"solicitud de no seguimiento\" activada';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_3331153593b30bc1ad0ad387710b0f16'] = 'El formato es';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_eb5029701372810b021521e595e85df9'] = 'Máximo Ratio de Productos';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_da4c4f7d55b7dcfa697db10e0a5b3496'] = 'Divide los datos en paquetes de x productos para enviar a GA.';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_454f042e19bf5d9a5ae94facb94ef031'] = 'Dependiendo de tu idioma, podrás enviar más o menos productos a la vez';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_65ab13c1eac1a80c39b447f37b084b2a'] = 'Ratio de Muestreo de Velocidad del Sitio';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_350597cab0e5667660415bcde996656c'] = 'Porcentaje de usuarios para los informes de velocidad del sitio';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_c9cc8cce247e49bae79f15173ce97354'] = 'Guardar';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_62d498990ba9938425763b6314b5c42a'] = 'IP Anónima';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_21137beac6489661dd8c347c2d430886'] = 'Necesario en algunos paises, para política de privacidad.';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_83a907d620592d6a497d75299b701c1e'] = 'Unifica las sesiones de un cliente si utiliza distintos dispositivos.';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_8ad59e00b7399b2cfc8946f6169f6281'] = 'Atribución de Enlace Mejorada ';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_b5669631f4a33f56c2a83bb595c539c1'] = 'Realizar un mejor seguimiento de los enlaces de tu página.';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_8befe4f037ab5fc33184d0668eecd9e2'] = 'Listado Multi Dominio';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_f2dd8efdb0cf77ab276403c4aed3de48'] = 'Seguimiento entre tus dominios enlazados con el mismo ID de GA';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_f4250f288a441f40684291b44fdc70fc'] = 'Inlcuye un dominio por línea';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_a40da615d7464af244b244e6ea378c8b'] = 'Lista de Exclusión de Referencia';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_bcbf8d4c0d8f6a86d14a419af9832f32'] = 'Excluye dominios para la fuente en las transacciones manuales';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_9685954dc6ff606aeea82f0b03c0e653'] = 'Remarketing Minorista (Etiquetas ecomm)';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_c179b073bd55b5a823ce35eb08d63e6d'] = 'Remarketing con Merchant Center';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_640c2e37484393584e1be22cb95c987a'] = 'Índice ecomm_prodid';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_124dd56254bcf97dd71b666fa52f6378'] = 'Este índice debe coincidir con el índice de la dimensión personalizada de GA';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_a23cce89ca0ede33ba31665b413488a3'] = 'Índice ecomm_pagetype';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_c0b407a3c42bfdec3d63dd1db3856475'] = 'Índice ecomm_totalvalue';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_4e526db724e868f10e9ae2c6ac66529c'] = 'Índice ecomm_category';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_3d1527ae67c6dd3f899be93d39af0930'] = 'Prefijo de Merchant Center';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_4e74292028fc7aad48d4be1275b38512'] = 'Añade un prefijo para que coincida tu ID de producto con el de feed de Merchant Center';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_6aaecbf4b7827cb85af9b8ecdb16184d'] = 'Utiliza las variables {lang} o {country} para los valores iso. {LANG} o {COUNTRY} para mayúsculas';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_21e089b6752760d36e26d21856bf4f00'] = 'Sufijo Merchant Center';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_d47bbcf797373d520e9879393c1a9bd0'] = 'Añade un sufijo para coincidir el ID producto con tu feed de Merchant Center';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_7b8a1790dab37567772a7b504fcde58c'] = 'Variantes de Merchant Center';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_d77aa4e58a8e8481efe7c81d41802754'] = 'Añade una clave para la variante / En blanco para desactivar.';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_6630f1f25c4cd53eef8a0a5ee8f638a0'] = 'Ej. Utiliza \"v\" para separar el producto ID(55) y la variante ID(7) - Resultado: 55v7 ';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_1c1a635f5b60ae67d3b0616e49cd6f7c'] = 'Datos Empresariales (etiquetas dynx)';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_c6833b82b226be38f5e77c13b4a6e6ad'] = 'Remarketing para países donde Merchant Center no está disponible';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_c25e6e4afd42fadb1061d5e3b798510a'] = 'Índice dynx_itemid';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_765d0ac05c906db0a838ec65f96b32be'] = 'Índice dynx_itemid2';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_ddfb4bd0d3557851dc28470137938256'] = 'Índice dynx_pagetype';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_97423da7864fe64c7e6f49fafcd7d95f'] = 'Índice dynx_totalvalue';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_df363208c9752d1d86d0dae9f5050df5'] = 'Prefijo Datos Empresariales';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_1655f46ab9c4f3d73369775aabe9645f'] = 'Añade un prefijo para que coincida con el ID de producto del listado de Datos Empresariales';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_8fcc3d5aa973ec9283f4bf67a5ce0d84'] = 'Variante Datos Empresariales';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_e3969a9a550bfa51551b70cd9450b638'] = 'Utiliza un separador de variante para concatenar los id de producto y atributo en dynx_itemid, o desactivalo para usar dynx_itemid para el id de producto y dynx_itemid2 para el id de atributo';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_77104e8ed177d0d83f6d314880b98f93'] = 'Etiqueta de Conversión de Compra';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_bb9b2c613562033bdf84872a03984032'] = 'Etiqueta de Conversión para el evento de compra';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_b9882abccdd2243cb5dcb32d9f3ed173'] = 'Para el seguimiento de conversiones es necesario configurar el Google Ads ID';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_db86a575cbe2242bda9894e2d839d83f'] = 'Clase de Ocultación';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_7db9418737c077c40e91bdb7c6d79b23'] = 'Clase CSS de ocultación';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_a34b3753634ac2d0c8c255dea755a4e9'] = 'Un valor vacío desactiva el código de ocultación';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_45215aa078fd61d0b567ca5fa5247e8f'] = 'Tiempo de Ocultación';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_870e8f6a0e2c7457ec880c537360a82d'] = 'Tiempo de ocultación (milisegundos)';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_5675ced059cead432e7358e1689bfe13'] = 'Seguir Registros';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_878ab83d78c396ed4e7651460e328d93'] = 'Enviar objetivo cuando un nuevo cliente se registra';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_faff6e4c091be56643981939678221f7'] = 'Valor de Registro';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_188b9ee933de2d683d48684ecfcbeafa'] = 'Valor virtual para este evento';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_f770391fa4a5646c46eddb75c24d8f2a'] = 'Solo enteros positivos';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_e302f82b9a6bb75bf6de1ed15ab8b9d6'] = 'Seguir Acciones Sociales';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_3493fb285e373291979cebb2cc0eb34c'] = 'Enviar objetivo cuando el cliente comparte un producto';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_30f4223a8eba8d3f37a1263a93f65ba3'] = 'compatible con el módulo estándar de compartir en redes sociales';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_5d83517710563b70991739ea7c630cc9'] = 'Valor de Acción Social';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_a2330ef7aa0e52f8e24ab90e068762d6'] = 'Estados de pedidos Inválidos';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_bfcbc7dadfeeec205154b53db03f4399'] = 'Selecciona los estados de pedido que no envían transacciones a GA';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_a2498a0bf9556bcb50be63dca3c66458'] = 'Cuidado, una mala selección puede tener un impacto negativo en las transacciones';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_439c6481b3ec751f6e84ab4517d04937'] = 'Mostrar Opciones';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_9bd207f01ab0de6645eeee7dab54be5d'] = 'Ocultar Opciones';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_69400ca0e607523fc86d229b35b91098'] = 'Estados de devolución';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_9c28ca95dc6f18d3d3c9e563b1e526b7'] = 'Selecciona los estados de pedido que envían devoluciones a GA';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_472c79eb5213a9862678a41bb982ae97'] = 'El Dominio \"%s\" no está correctamente escrito!';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_26b64fa4eacb1002534dc6cc3784300f'] = 'Google Analytics ID es obligatorio';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_ad2376beebecdcf7846ba973fa1a005b'] = 'Instalación';
$_MODULE['<{rc_pganalytics}prestashop>form_2efd89b3ccc76b0b03a34196fc6d1c8b'] = 'Añadir etiqueta';
$_MODULE['<{rc_pganalytics}prestashop>form_e0626222614bdee31951d84c64e5e9ff'] = 'Selecciona';
$_MODULE['<{rc_pganalytics}prestashop>form_ec211f7c20af43e742bf2570c3cb84f9'] = 'Añadir';
$_MODULE['<{rc_pganalytics}prestashop>form_1063e38cb53d94d386f21227fcd84717'] = 'Eliminar';
$_MODULE['<{rc_pganalytics}prestashop>form_93cba07454f06a4a960172bbd6e2a435'] = 'Sí';
$_MODULE['<{rc_pganalytics}prestashop>form_bafd7322c6e97d25b6299b5d6fe8920b'] = 'No';
$_MODULE['<{rc_pganalytics}prestashop>form_26ce1315d2bff025e8fb8a0c6259e58c'] = 'Cambiar contraseña...';
$_MODULE['<{rc_pganalytics}prestashop>form_d9c2d86a66aa5a45326c3757f3a272cc'] = 'Contraseña actual';
$_MODULE['<{rc_pganalytics}prestashop>form_98a6ee4b0f0e346c15ab21a289165a2d'] = 'La contraseña tiene que ser al menos de 8 caracteres';
$_MODULE['<{rc_pganalytics}prestashop>form_3544848f820b9d94a3f3871a382cf138'] = 'Nueva contraseña';
$_MODULE['<{rc_pganalytics}prestashop>form_4c231e0da3eaaa6a9752174f7f9cfb31'] = 'Confirmar contraseña';
$_MODULE['<{rc_pganalytics}prestashop>form_2871afea416378d2772937c4d67d6c2c'] = 'Generar contraseña';
$_MODULE['<{rc_pganalytics}prestashop>form_ea4788705e6873b424c65e91c2846b19'] = 'Cancelar';
$_MODULE['<{rc_pganalytics}prestashop>form_4bbb8f967da6d1a610596d7257179c2b'] = 'Inválido';
$_MODULE['<{rc_pganalytics}prestashop>form_26b63f278101527e06a5547719568bb5'] = 'Correcto';
$_MODULE['<{rc_pganalytics}prestashop>form_0c6ad70beb3a7e76c3fc7adab7c46acc'] = 'Bien';
$_MODULE['<{rc_pganalytics}prestashop>form_b8dc7c80939667637db7ac31ece215b9'] = 'Fabuloso';
$_MODULE['<{rc_pganalytics}prestashop>form_01e8202cf69f19ea7cf3a80f7673066a'] = 'Contraseña inválida';
$_MODULE['<{rc_pganalytics}prestashop>form_86f5978d9b80124f509bdb71786e929e'] = 'Enero';
$_MODULE['<{rc_pganalytics}prestashop>form_659e59f062c75f81259d22786d6c44aa'] = 'Febrero';
$_MODULE['<{rc_pganalytics}prestashop>form_fa3e5edac607a88d8fd7ecb9d6d67424'] = 'Marzo';
$_MODULE['<{rc_pganalytics}prestashop>form_3fcf026bbfffb63fb24b8de9d0446949'] = 'Abril';
$_MODULE['<{rc_pganalytics}prestashop>form_195fbb57ffe7449796d23466085ce6d8'] = 'Mayo';
$_MODULE['<{rc_pganalytics}prestashop>form_688937ccaf2a2b0c45a1c9bbba09698d'] = 'Junio';
$_MODULE['<{rc_pganalytics}prestashop>form_1b539f6f34e8503c97f6d3421346b63c'] = 'Julio';
$_MODULE['<{rc_pganalytics}prestashop>form_41ba70891fb6f39327d8ccb9b1dafb84'] = 'Agosto';
$_MODULE['<{rc_pganalytics}prestashop>form_cc5d90569e1c8313c2b1c2aab1401174'] = 'Septiembre';
$_MODULE['<{rc_pganalytics}prestashop>form_eca60ae8611369fe28a02e2ab8c5d12e'] = 'Octubre';
$_MODULE['<{rc_pganalytics}prestashop>form_7e823b37564da492ca1629b4732289a8'] = 'Noviembre';
$_MODULE['<{rc_pganalytics}prestashop>form_82331503174acbae012b2004f6431fa5'] = 'Diciembre';$_MODULE['<{rc_pganalytics}prestashop>tab_content_order_e516dc2af8132f05ebf3e335c0991fe8'] = 'Estado de Seguimiento';
$_MODULE['<{rc_pganalytics}prestashop>tab_content_order_c3bc4f518aa22907fa8d4d49c677d9a3'] = 'Este pedido se ha incluido en la tabla de control por el proceso de instalación para evitar duplicados con antiguos módulos de seguimiento, puede ser que esta transacción no esté registrada en GA';
$_MODULE['<{rc_pganalytics}prestashop>tab_content_order_62a7773357ab85d4c2cd831e5dfb417e'] = 'si quieres enviar este pedido a GA, haz click en';
$_MODULE['<{rc_pganalytics}prestashop>tab_content_order_9573f8e628d0c5e5a4813fec03c3d57f'] = 'Borrar de la Tabla de Control';
$_MODULE['<{rc_pganalytics}prestashop>tab_content_order_bb475dcde8d856e9547a73e4a1dbd4b3'] = 'botón para activar el envío manual';
$_MODULE['<{rc_pganalytics}prestashop>tab_content_order_62ec5d4ad10b656b837f8ca0ed89fb49'] = 'Este pedido no ha sido enviado a GA';
$_MODULE['<{rc_pganalytics}prestashop>tab_content_order_c91bae7459091eefe2bd5f6b49f3f63b'] = 'Cambia el estado del pedido para enviarlo automáticamente o haz click en';
$_MODULE['<{rc_pganalytics}prestashop>tab_content_order_bd035a223ca0d2cd39da4dc45936385b'] = 'Forzar Envío a GA';
$_MODULE['<{rc_pganalytics}prestashop>tab_content_order_ce50a09343724eb82df11390e2c1de18'] = 'botón';
$_MODULE['<{rc_pganalytics}prestashop>tab_order_e516dc2af8132f05ebf3e335c0991fe8'] = 'Estado de Seguimiento';

View File

@@ -0,0 +1,124 @@
<?php
global $_MODULE;
$_MODULE = array();
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_2579d48981bf080b0dcbc52be32be8b5'] = 'Activer Google Analytics amélioré Ecommerce, et sait en détail comment les utilisateurs interagissent dans votre site';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_462390017ab0938911d2d4e964c0cab7'] = 'Paramètres mis à jour avec succès';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_5ad234cb2cde4266195252a23ca7d84e'] = 'Propriété';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_b4a592245c7c653e71a6b87621940223'] = 'Fonctionnalités de Suivi';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_871fa20d6e95bf3be6651ce6a287e53f'] = 'Remarketing Dynamique';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_d93302eabf22ebf309dffabfe626a2d5'] = 'Objectifs';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_449b7b53c811c05e08651ec82d37b499'] = 'Comportements de Transaction';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_5b6cf869265c13af8566f192b4ab3d2a'] = 'Documentation';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_db5eb84117d06047c97c9a0191b5fffe'] = 'Soutien';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_e17402700a96d0ba5446e678dbf40449'] = 'Sugerencias y Mejoras';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_f4f70727dc34561dfde1a3c529b6205c'] = 'Configuration';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_9455a04d13f6889559324dd028eb77aa'] = 'Pour réaliser un suivi parfait est nécessaire pour suivre une intégration spécifique, s\'il vous plaît lire la documentation';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_6fc25a42f1660072451b8fd33865af1f'] = 'Exclure Trafic Interne';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_668069a217c4a5c4f69e04ffd99d4e1b'] = 'Désactiver le suivi GA pour votre trafic interne.';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_78b518dc5c6f442dfa7e0a68aaa599e7'] = 'Respecter la Demande de Non Suivi';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_d71bdeb1364f56108aeacf9011d985d1'] = 'Désactiver le suivi sur les clients avec la fonctionnalité de navigation \"demande de non-suivi\" activée';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_3331153593b30bc1ad0ad387710b0f16'] = 'Le format est';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_eb5029701372810b021521e595e85df9'] = 'Nombre Maximum de Produits';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_da4c4f7d55b7dcfa697db10e0a5b3496'] = 'Diviser les données en paquets de x produits pour envoyer GA.';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_454f042e19bf5d9a5ae94facb94ef031'] = 'En fonction de votre langue, vous pouvez envoyer plus ou moins de produits à la fois';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_65ab13c1eac1a80c39b447f37b084b2a'] = 'Fréquence d\'Échantillonnage de la Vitesse du Site';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_350597cab0e5667660415bcde996656c'] = 'Pourcentage d\'utilisateurs à inclure dans les rapports de données sur la vitesse du site';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_c9cc8cce247e49bae79f15173ce97354'] = 'Enregistrer';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_62d498990ba9938425763b6314b5c42a'] = 'Anonymiser IP';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_21137beac6489661dd8c347c2d430886'] = 'Besoin dans certains pays, pour les politiques de confidentialité.';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_83a907d620592d6a497d75299b701c1e'] = 'Unifier les sessions des clients se ils utilisent des dispositifs diferent.';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_8ad59e00b7399b2cfc8946f6169f6281'] = 'Enhanced Paternité Link';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_b5669631f4a33f56c2a83bb595c539c1'] = 'Mieux suivre votre page de liens.';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_8befe4f037ab5fc33184d0668eecd9e2'] = 'Liste Multidomaine.';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_f2dd8efdb0cf77ab276403c4aed3de48'] = 'Suivez vos domaines liés avec le même GA ID';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_f4250f288a441f40684291b44fdc70fc'] = 'Inclure un domaine par ligne';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_a40da615d7464af244b244e6ea378c8b'] = 'Liste d\'Exclusion de Référence';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_bcbf8d4c0d8f6a86d14a419af9832f32'] = 'Exclure les domaines sources sur les transactions manuelles';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_9685954dc6ff606aeea82f0b03c0e653'] = 'Remarketing au Détail (Balises ecomm)';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_c179b073bd55b5a823ce35eb08d63e6d'] = 'Remarketing avec Merchant Center';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_640c2e37484393584e1be22cb95c987a'] = 'Index ecomm_prodid';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_124dd56254bcf97dd71b666fa52f6378'] = 'Cet index doit correspondre à l\'index de la dimension personnalisée GA';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_a23cce89ca0ede33ba31665b413488a3'] = 'Index ecomm_pagetype';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_c0b407a3c42bfdec3d63dd1db3856475'] = 'Index ecomm_totalvalue';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_4e526db724e868f10e9ae2c6ac66529c'] = 'Index ecomm_category';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_3d1527ae67c6dd3f899be93d39af0930'] = 'Merchant Center préfixe';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_4e74292028fc7aad48d4be1275b38512'] = 'Ajouter un préfixe pour correspondre le numéro de produit de votre flux de centre marchand';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_6aaecbf4b7827cb85af9b8ecdb16184d'] = 'Utilisez {lang} ou {country} pour les valeurs iso de langue ou de pays. {LANG} ou {COUNTRY} pour majuscule';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_21e089b6752760d36e26d21856bf4f00'] = 'Suffixe du Merchant Center';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_d47bbcf797373d520e9879393c1a9bd0'] = 'Ajouter un suffixe pour correspondre à l\'ID du produit de votre centre marchand';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_7b8a1790dab37567772a7b504fcde58c'] = 'Variante du Merchant Center';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_d77aa4e58a8e8481efe7c81d41802754'] = 'Ajouter la clé pour l\'ID de variante / Feuilles vides pour désactiver.';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_6630f1f25c4cd53eef8a0a5ee8f638a0'] = 'Ex. Utilisez \"v\" pour fractionner l\'ID produit (55) et l\'ID de variante (7) - Résultat: 55v7';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_1c1a635f5b60ae67d3b0616e49cd6f7c'] = 'Données d\'Entreprise (Balises dynx)';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_c6833b82b226be38f5e77c13b4a6e6ad'] = 'Remarketing pour les pays où Merchant Center n\'est pas disponible';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_df363208c9752d1d86d0dae9f5050df5'] = 'Préfixe de Données d\'Entreprise';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_1655f46ab9c4f3d73369775aabe9645f'] = 'Ajouter un préfixe à faire correspondre à l\'ID de produit de votre flux de données d\'entreprise';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_8fcc3d5aa973ec9283f4bf67a5ce0d84'] = 'Variant de Données d\'Entreprise';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_e3969a9a550bfa51551b70cd9450b638'] = 'Utilisez variante separator pour concaténer le produit et l\'identifiant d\'attribut dans dynx_itemid, ou désactivez-le pour utiliser dynx_itemid comme identifiant de produit et dynx_itemid2 pour l\'identifiant d\'attribut';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_77104e8ed177d0d83f6d314880b98f93'] = 'Etiqueta de Conversión d\'Achat';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_bb9b2c613562033bdf84872a03984032'] = 'Etiquette de conversion pour événement d\'achat';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_b9882abccdd2243cb5dcb32d9f3ed173'] = 'Pour effectuer le suivi des conversions, vous devez définir un identifiant Google Ads';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_db86a575cbe2242bda9894e2d839d83f'] = 'CSS Classe de Dissimulation';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_7db9418737c077c40e91bdb7c6d79b23'] = 'Nom de la classe de dissimulation';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_a34b3753634ac2d0c8c255dea755a4e9'] = 'Une valeur vide désactive le code de dissimulation';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_45215aa078fd61d0b567ca5fa5247e8f'] = 'Temps de dissimulation';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_870e8f6a0e2c7457ec880c537360a82d'] = 'Temps de dissimulation (millisecondes)';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_5675ced059cead432e7358e1689bfe13'] = 'Suivi des Inscriptions';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_878ab83d78c396ed4e7651460e328d93'] = 'Envoyer un objectif lorsqu\'un nouveau client s\'est inscrit';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_faff6e4c091be56643981939678221f7'] = 'Inscription Value';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_188b9ee933de2d683d48684ecfcbeafa'] = 'Valeur virtuelle pour cet événement';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_f770391fa4a5646c46eddb75c24d8f2a'] = 'Seuls les entiers positifs';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_e302f82b9a6bb75bf6de1ed15ab8b9d6'] = 'Suivi les Actions Sociales';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_3493fb285e373291979cebb2cc0eb34c'] = 'Envoyer un objectif lorsque le client partage le produit';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_30f4223a8eba8d3f37a1263a93f65ba3'] = 'compatible avec le module de partage social standard';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_5d83517710563b70991739ea7c630cc9'] = 'Action Sociale Value';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_a2330ef7aa0e52f8e24ab90e068762d6'] = 'États de commande non valide';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_bfcbc7dadfeeec205154b53db03f4399'] = 'Sélectionnez quels statuts de commande n\'envoie pas une transaction à GA';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_a2498a0bf9556bcb50be63dca3c66458'] = 'Attention! une mauvaise sélection pourrait avoir un impact négatif sur les transactions';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_439c6481b3ec751f6e84ab4517d04937'] = 'Afficher les options';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_9bd207f01ab0de6645eeee7dab54be5d'] = 'Masquer les options';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_69400ca0e607523fc86d229b35b91098'] = 'États du remboursement';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_9c28ca95dc6f18d3d3c9e563b1e526b7'] = 'Sélectionnez les statuts de la commande qui envoie un remboursement à GA';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_472c79eb5213a9862678a41bb982ae97'] = 'Le domaine \"%s\" ne sont pas écrire correctement!';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_26b64fa4eacb1002534dc6cc3784300f'] = 'Google Analytics ID est obligatoire';
$_MODULE['<{rc_pganalytics}prestashop>rc_pganalytics_ad2376beebecdcf7846ba973fa1a005b'] = 'Instalación';
$_MODULE['<{rc_pganalytics}prestashop>form_2efd89b3ccc76b0b03a34196fc6d1c8b'] = 'Ajouter une étiquette';
$_MODULE['<{rc_pganalytics}prestashop>form_e0626222614bdee31951d84c64e5e9ff'] = 'Sélectionner';
$_MODULE['<{rc_pganalytics}prestashop>form_ec211f7c20af43e742bf2570c3cb84f9'] = 'Ajouter';
$_MODULE['<{rc_pganalytics}prestashop>form_1063e38cb53d94d386f21227fcd84717'] = 'Retirer';
$_MODULE['<{rc_pganalytics}prestashop>form_93cba07454f06a4a960172bbd6e2a435'] = 'Oui';
$_MODULE['<{rc_pganalytics}prestashop>form_bafd7322c6e97d25b6299b5d6fe8920b'] = 'Non';
$_MODULE['<{rc_pganalytics}prestashop>form_26ce1315d2bff025e8fb8a0c6259e58c'] = 'Changer le mot de passe...';
$_MODULE['<{rc_pganalytics}prestashop>form_d9c2d86a66aa5a45326c3757f3a272cc'] = 'Mot de passe actuel';
$_MODULE['<{rc_pganalytics}prestashop>form_98a6ee4b0f0e346c15ab21a289165a2d'] = 'Le mot de passe doit comporter au moins 8 caractères.';
$_MODULE['<{rc_pganalytics}prestashop>form_3544848f820b9d94a3f3871a382cf138'] = 'Nouveau mot de passe';
$_MODULE['<{rc_pganalytics}prestashop>form_4c231e0da3eaaa6a9752174f7f9cfb31'] = 'Confirmez le mot de passe';
$_MODULE['<{rc_pganalytics}prestashop>form_2871afea416378d2772937c4d67d6c2c'] = 'Créer un mot de passe';
$_MODULE['<{rc_pganalytics}prestashop>form_ea4788705e6873b424c65e91c2846b19'] = 'Annuler';
$_MODULE['<{rc_pganalytics}prestashop>form_4bbb8f967da6d1a610596d7257179c2b'] = 'Invalide';
$_MODULE['<{rc_pganalytics}prestashop>form_26b63f278101527e06a5547719568bb5'] = 'd\'accord';
$_MODULE['<{rc_pganalytics}prestashop>form_0c6ad70beb3a7e76c3fc7adab7c46acc'] = 'Bien';
$_MODULE['<{rc_pganalytics}prestashop>form_b8dc7c80939667637db7ac31ece215b9'] = 'Fabuleuse';
$_MODULE['<{rc_pganalytics}prestashop>form_01e8202cf69f19ea7cf3a80f7673066a'] = 'Confirmation du mot de passe invalide';
$_MODULE['<{rc_pganalytics}prestashop>form_86f5978d9b80124f509bdb71786e929e'] = 'Janvier';
$_MODULE['<{rc_pganalytics}prestashop>form_659e59f062c75f81259d22786d6c44aa'] = 'Février';
$_MODULE['<{rc_pganalytics}prestashop>form_fa3e5edac607a88d8fd7ecb9d6d67424'] = 'Mars';
$_MODULE['<{rc_pganalytics}prestashop>form_3fcf026bbfffb63fb24b8de9d0446949'] = 'Avril';
$_MODULE['<{rc_pganalytics}prestashop>form_195fbb57ffe7449796d23466085ce6d8'] = 'Mai';
$_MODULE['<{rc_pganalytics}prestashop>form_688937ccaf2a2b0c45a1c9bbba09698d'] = 'Juin';
$_MODULE['<{rc_pganalytics}prestashop>form_1b539f6f34e8503c97f6d3421346b63c'] = 'Juillet';
$_MODULE['<{rc_pganalytics}prestashop>form_41ba70891fb6f39327d8ccb9b1dafb84'] = 'Août';
$_MODULE['<{rc_pganalytics}prestashop>form_cc5d90569e1c8313c2b1c2aab1401174'] = 'Septembre';
$_MODULE['<{rc_pganalytics}prestashop>form_eca60ae8611369fe28a02e2ab8c5d12e'] = 'Octobre';
$_MODULE['<{rc_pganalytics}prestashop>form_7e823b37564da492ca1629b4732289a8'] = 'Novembre';
$_MODULE['<{rc_pganalytics}prestashop>form_82331503174acbae012b2004f6431fa5'] = 'Décembre';$_MODULE['<{rc_pganalytics}prestashop>tab_content_order_e516dc2af8132f05ebf3e335c0991fe8'] = 'État de suivi';
$_MODULE['<{rc_pganalytics}prestashop>tab_content_order_c3bc4f518aa22907fa8d4d49c677d9a3'] = 'Cette commande a été incluse dans la table de contrôle lors du processus d\'installation afin d\'éviter les doublons avec les anciens modules de suivi, donc peut-être que la transaction n\'est pas enregistrée sur GA';
$_MODULE['<{rc_pganalytics}prestashop>tab_content_order_62a7773357ab85d4c2cd831e5dfb417e'] = 'Si vous voulez envoyer cette commande à GA, cliquez sur';
$_MODULE['<{rc_pganalytics}prestashop>tab_content_order_9573f8e628d0c5e5a4813fec03c3d57f'] = 'Supprimer de la Table de Contrôle';
$_MODULE['<{rc_pganalytics}prestashop>tab_content_order_bb475dcde8d856e9547a73e4a1dbd4b3'] = 'bouton pour activer l\'envoi manuel';
$_MODULE['<{rc_pganalytics}prestashop>tab_content_order_62ec5d4ad10b656b837f8ca0ed89fb49'] = 'Cette commande n\'a pas été envoyée à GA';
$_MODULE['<{rc_pganalytics}prestashop>tab_content_order_c91bae7459091eefe2bd5f6b49f3f63b'] = 'Changez le statut de la commande pour l\'envoyer automatiquement ou cliquez sur';
$_MODULE['<{rc_pganalytics}prestashop>tab_content_order_bd035a223ca0d2cd39da4dc45936385b'] = 'Force Envoyer à GA';
$_MODULE['<{rc_pganalytics}prestashop>tab_content_order_ce50a09343724eb82df11390e2c1de18'] = 'bouton';
$_MODULE['<{rc_pganalytics}prestashop>tab_order_e516dc2af8132f05ebf3e335c0991fe8'] = 'État de suivi';

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

View File

@@ -0,0 +1,46 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a trade license awarded by
* Garamo Online L.T.D.
*
* Any use, reproduction, modification or distribution
* of this source file without the written consent of
* Garamo Online L.T.D It Is prohibited.
*
* @author Reaction Code <info@reactioncode.com>
* @copyright 2015-2020 Garamo Online L.T.D
* @license Commercial license
*/
function upgrade_module_3_3_0()
{
$success = true;
$upgrade_default_values = array(
'RC_PGANALYTICS_EVENT_ST' => '0',
'RC_PGANALYTICS_EVENT_PC' => '0',
'RC_PGANALYTICS_EVENT_AC' => '0',
'RC_PGANALYTICS_EVENT_RC' => '0',
'RC_PGANALYTICS_EVENT_CHO' => '0'
);
$upgrade_sql = 'ALTER TABLE `'._DB_PREFIX_.'rc_pganalytics_orders_sent`
MODIFY `id_order` INT(10) UNSIGNED NOT NULL,
MODIFY `id_shop` INT(10) UNSIGNED NOT NULL,
ADD `sent_from` VARCHAR(2) NOT NULL,
ADD `sent_at` DATETIME NOT NULL';
foreach ($upgrade_default_values as $key => $value) {
// Set default Products Rate
if (!Configuration::updateGlobalValue($key, $value)) {
$success = false;
}
}
if (!Db::getInstance()->execute($upgrade_sql)) {
$success = false;
}
return $success;
}

View File

@@ -0,0 +1,70 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a trade license awarded by
* Garamo Online L.T.D.
*
* Any use, reproduction, modification or distribution
* of this source file without the written consent of
* Garamo Online L.T.D It Is prohibited.
*
* @author Reaction Code <info@reactioncode.com>
* @copyright 2015-2020 Garamo Online L.T.D
* @license Commercial license
*/
function upgrade_module_4_0_0($module)
{
$success = true;
$upgrade_default_values = array(
'RC_PGANALYTICS_SSSR' => 1,
'RC_PGANALYTICS_D4' => 4,
'RC_PGANALYTICS_OPT_ID' => '',
'RC_PGANALYTICS_OPT_HCN' => 'optimize-loading',
'RC_PGANALYTICS_OPT_HTO' => 4000
);
$remove_old_values = array(
'RC_PGANALYTICS_EVENT_ST',
'RC_PGANALYTICS_EVENT_PC',
'RC_PGANALYTICS_EVENT_AC',
'RC_PGANALYTICS_EVENT_RC',
'RC_PGANALYTICS_EVENT_CHO',
);
$remove_hook = 'productFooter';
// create new tables
$upgrade_sql = 'CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'rc_pganalytics_client_id` (
`id_customer` INT(10) UNSIGNED NOT NULL,
`id_shop` INT(10) UNSIGNED NOT NULL,
`client_id` VARCHAR(50) NOT NULL,
PRIMARY KEY (`id_customer`, `id_shop`)
) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=utf8;'
;
// set default values from new vars
foreach ($upgrade_default_values as $key => $value) {
// Set default Products Rate
if (!Configuration::updateGlobalValue($key, $value)) {
$success = false;
}
}
// remove old values from db
foreach ($remove_old_values as $old_value) {
Configuration::deleteByName($old_value);
}
$module->unregisterHook($remove_hook);
// remove js cache
Media::clearCache();
if (!Db::getInstance()->execute($upgrade_sql)) {
$success = false;
}
return $success;
}

View File

@@ -0,0 +1,28 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a trade license awarded by
* Garamo Online L.T.D.
*
* Any use, reproduction, modification or distribution
* of this source file without the written consent of
* Garamo Online L.T.D It Is prohibited.
*
* @author Reaction Code <info@reactioncode.com>
* @copyright 2015-2020 Garamo Online L.T.D
* @license Commercial license
*/
function upgrade_module_4_1_0($module)
{
$add_hooks = array(
'displayAdminOrderTabOrder',
'displayAdminOrderContentOrder'
);
$module->registerHook($add_hooks);
Media::clearCache();
return true;
}

View File

@@ -0,0 +1,31 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a trade license awarded by
* Garamo Online L.T.D.
*
* Any use, reproduction, modification or distribution
* of this source file without the written consent of
* Garamo Online L.T.D It Is prohibited.
*
* @author Reaction Code <info@reactioncode.com>
* @copyright 2015-2020 Garamo Online L.T.D
* @license Commercial license
*/
function upgrade_module_4_1_2()
{
$remove_old_values = array(
'RC_PGANALYTICS_DEBUG'
);
// remove old values from db
foreach ($remove_old_values as $old_value) {
Configuration::deleteByName($old_value);
}
Media::clearCache();
return true;
}

View File

@@ -0,0 +1,40 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a trade license awarded by
* Garamo Online L.T.D.
*
* Any use, reproduction, modification or distribution
* of this source file without the written consent of
* Garamo Online L.T.D It Is prohibited.
*
* @author Reaction Code <info@reactioncode.com>
* @copyright 2015-2020 Garamo Online L.T.D
* @license Commercial license
*/
function upgrade_module_4_2_0()
{
$success = true;
$upgrade_default_values = array(
'RC_PGANALYTICS_REL' => parse_url(Tools::getHttpHost(true), PHP_URL_HOST)
);
// set default values from new vars
foreach ($upgrade_default_values as $key => $value) {
// Set default Products Rate
if (!Configuration::updateGlobalValue($key, $value)) {
$success = false;
}
}
// clear all PS cache
Tools::clearSmartyCache();
Tools::clearXMLCache();
Media::clearCache();
Tools::generateIndex();
return $success;
}

View File

@@ -0,0 +1,43 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a trade license awarded by
* Garamo Online L.T.D.
*
* Any use, reproduction, modification or distribution
* of this source file without the written consent of
* Garamo Online L.T.D It Is prohibited.
*
* @author Reaction Code <info@reactioncode.com>
* @copyright 2015-2020 Garamo Online L.T.D
* @license Commercial license
*/
function upgrade_module_4_4_0()
{
$success = true;
$upgrade_default_values = array(
'RC_PGANALYTICS_D5' => 5,
'RC_PGANALYTICS_D6' => 6,
'RC_PGANALYTICS_D7' => 7,
'RC_PGANALYTICS_D8' => 8,
);
// set default values from new vars
foreach ($upgrade_default_values as $key => $value) {
// Set default Products Rate
if (!Configuration::updateGlobalValue($key, $value)) {
$success = false;
}
}
// clear all PS cache
Tools::clearSmartyCache();
Tools::clearXMLCache();
Media::clearCache();
Tools::generateIndex();
return $success;
}

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

View File

@@ -0,0 +1,7 @@
<?php
// autoload.php @generated by Composer
require_once __DIR__ . '/composer' . '/autoload_real.php';
return ComposerAutoloaderInit9ebb16cf1dc87bf00b3028a1bb212f7e::getLoader();

View File

@@ -0,0 +1,413 @@
<?php
/*
* This file is part of Composer.
*
* (c) Nils Adermann <naderman@naderman.de>
* Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Composer\Autoload;
/**
* ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
*
* $loader = new \Composer\Autoload\ClassLoader();
*
* // register classes with namespaces
* $loader->add('Symfony\Component', __DIR__.'/component');
* $loader->add('Symfony', __DIR__.'/framework');
*
* // activate the autoloader
* $loader->register();
*
* // to enable searching the include path (eg. for PEAR packages)
* $loader->setUseIncludePath(true);
*
* In this example, if you try to use a class in the Symfony\Component
* namespace or one of its children (Symfony\Component\Console for instance),
* the autoloader will first look for the class under the component/
* directory, and it will then fallback to the framework/ directory if not
* found before giving up.
*
* This class is loosely based on the Symfony UniversalClassLoader.
*
* @author Fabien Potencier <fabien@symfony.com>
* @author Jordi Boggiano <j.boggiano@seld.be>
* @see http://www.php-fig.org/psr/psr-0/
* @see http://www.php-fig.org/psr/psr-4/
*/
class ClassLoader
{
// PSR-4
private $prefixLengthsPsr4 = array();
private $prefixDirsPsr4 = array();
private $fallbackDirsPsr4 = array();
// PSR-0
private $prefixesPsr0 = array();
private $fallbackDirsPsr0 = array();
private $useIncludePath = false;
private $classMap = array();
private $classMapAuthoritative = false;
public function getPrefixes()
{
if (!empty($this->prefixesPsr0)) {
return call_user_func_array('array_merge', $this->prefixesPsr0);
}
return array();
}
public function getPrefixesPsr4()
{
return $this->prefixDirsPsr4;
}
public function getFallbackDirs()
{
return $this->fallbackDirsPsr0;
}
public function getFallbackDirsPsr4()
{
return $this->fallbackDirsPsr4;
}
public function getClassMap()
{
return $this->classMap;
}
/**
* @param array $classMap Class to filename map
*/
public function addClassMap(array $classMap)
{
if ($this->classMap) {
$this->classMap = array_merge($this->classMap, $classMap);
} else {
$this->classMap = $classMap;
}
}
/**
* Registers a set of PSR-0 directories for a given prefix, either
* appending or prepending to the ones previously set for this prefix.
*
* @param string $prefix The prefix
* @param array|string $paths The PSR-0 root directories
* @param bool $prepend Whether to prepend the directories
*/
public function add($prefix, $paths, $prepend = false)
{
if (!$prefix) {
if ($prepend) {
$this->fallbackDirsPsr0 = array_merge(
(array) $paths,
$this->fallbackDirsPsr0
);
} else {
$this->fallbackDirsPsr0 = array_merge(
$this->fallbackDirsPsr0,
(array) $paths
);
}
return;
}
$first = $prefix[0];
if (!isset($this->prefixesPsr0[$first][$prefix])) {
$this->prefixesPsr0[$first][$prefix] = (array) $paths;
return;
}
if ($prepend) {
$this->prefixesPsr0[$first][$prefix] = array_merge(
(array) $paths,
$this->prefixesPsr0[$first][$prefix]
);
} else {
$this->prefixesPsr0[$first][$prefix] = array_merge(
$this->prefixesPsr0[$first][$prefix],
(array) $paths
);
}
}
/**
* Registers a set of PSR-4 directories for a given namespace, either
* appending or prepending to the ones previously set for this namespace.
*
* @param string $prefix The prefix/namespace, with trailing '\\'
* @param array|string $paths The PSR-4 base directories
* @param bool $prepend Whether to prepend the directories
*
* @throws \InvalidArgumentException
*/
public function addPsr4($prefix, $paths, $prepend = false)
{
if (!$prefix) {
// Register directories for the root namespace.
if ($prepend) {
$this->fallbackDirsPsr4 = array_merge(
(array) $paths,
$this->fallbackDirsPsr4
);
} else {
$this->fallbackDirsPsr4 = array_merge(
$this->fallbackDirsPsr4,
(array) $paths
);
}
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
// Register directories for a new namespace.
$length = strlen($prefix);
if ('\\' !== $prefix[$length - 1]) {
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
}
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
$this->prefixDirsPsr4[$prefix] = (array) $paths;
} elseif ($prepend) {
// Prepend directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge(
(array) $paths,
$this->prefixDirsPsr4[$prefix]
);
} else {
// Append directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge(
$this->prefixDirsPsr4[$prefix],
(array) $paths
);
}
}
/**
* Registers a set of PSR-0 directories for a given prefix,
* replacing any others previously set for this prefix.
*
* @param string $prefix The prefix
* @param array|string $paths The PSR-0 base directories
*/
public function set($prefix, $paths)
{
if (!$prefix) {
$this->fallbackDirsPsr0 = (array) $paths;
} else {
$this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
}
}
/**
* Registers a set of PSR-4 directories for a given namespace,
* replacing any others previously set for this namespace.
*
* @param string $prefix The prefix/namespace, with trailing '\\'
* @param array|string $paths The PSR-4 base directories
*
* @throws \InvalidArgumentException
*/
public function setPsr4($prefix, $paths)
{
if (!$prefix) {
$this->fallbackDirsPsr4 = (array) $paths;
} else {
$length = strlen($prefix);
if ('\\' !== $prefix[$length - 1]) {
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
}
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
$this->prefixDirsPsr4[$prefix] = (array) $paths;
}
}
/**
* Turns on searching the include path for class files.
*
* @param bool $useIncludePath
*/
public function setUseIncludePath($useIncludePath)
{
$this->useIncludePath = $useIncludePath;
}
/**
* Can be used to check if the autoloader uses the include path to check
* for classes.
*
* @return bool
*/
public function getUseIncludePath()
{
return $this->useIncludePath;
}
/**
* Turns off searching the prefix and fallback directories for classes
* that have not been registered with the class map.
*
* @param bool $classMapAuthoritative
*/
public function setClassMapAuthoritative($classMapAuthoritative)
{
$this->classMapAuthoritative = $classMapAuthoritative;
}
/**
* Should class lookup fail if not found in the current class map?
*
* @return bool
*/
public function isClassMapAuthoritative()
{
return $this->classMapAuthoritative;
}
/**
* Registers this instance as an autoloader.
*
* @param bool $prepend Whether to prepend the autoloader or not
*/
public function register($prepend = false)
{
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
}
/**
* Unregisters this instance as an autoloader.
*/
public function unregister()
{
spl_autoload_unregister(array($this, 'loadClass'));
}
/**
* Loads the given class or interface.
*
* @param string $class The name of the class
* @return bool|null True if loaded, null otherwise
*/
public function loadClass($class)
{
if ($file = $this->findFile($class)) {
includeFile($file);
return true;
}
}
/**
* Finds the path to the file where the class is defined.
*
* @param string $class The name of the class
*
* @return string|false The path if found, false otherwise
*/
public function findFile($class)
{
// work around for PHP 5.3.0 - 5.3.2 https://bugs.php.net/50731
if ('\\' == $class[0]) {
$class = substr($class, 1);
}
// class map lookup
if (isset($this->classMap[$class])) {
return $this->classMap[$class];
}
if ($this->classMapAuthoritative) {
return false;
}
$file = $this->findFileWithExtension($class, '.php');
// Search for Hack files if we are running on HHVM
if ($file === null && defined('HHVM_VERSION')) {
$file = $this->findFileWithExtension($class, '.hh');
}
if ($file === null) {
// Remember that this class does not exist.
return $this->classMap[$class] = false;
}
return $file;
}
private function findFileWithExtension($class, $ext)
{
// PSR-4 lookup
$logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
$first = $class[0];
if (isset($this->prefixLengthsPsr4[$first])) {
foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) {
if (0 === strpos($class, $prefix)) {
foreach ($this->prefixDirsPsr4[$prefix] as $dir) {
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
return $file;
}
}
}
}
}
// PSR-4 fallback dirs
foreach ($this->fallbackDirsPsr4 as $dir) {
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
return $file;
}
}
// PSR-0 lookup
if (false !== $pos = strrpos($class, '\\')) {
// namespaced class name
$logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
. strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
} else {
// PEAR-like class name
$logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
}
if (isset($this->prefixesPsr0[$first])) {
foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
if (0 === strpos($class, $prefix)) {
foreach ($dirs as $dir) {
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
return $file;
}
}
}
}
}
// PSR-0 fallback dirs
foreach ($this->fallbackDirsPsr0 as $dir) {
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
return $file;
}
}
// PSR-0 include paths.
if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
return $file;
}
}
}
/**
* Scope isolated include.
*
* Prevents access to $this/self from included files.
*/
function includeFile($file)
{
include $file;
}

View File

@@ -0,0 +1,433 @@
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: Composer
Upstream-Contact: Jordi Boggiano <j.boggiano@seld.be>
Source: https://github.com/composer/composer
Files: *
Copyright: 2016, Nils Adermann <naderman@naderman.de>
2016, Jordi Boggiano <j.boggiano@seld.be>
License: Expat
Files: res/cacert.pem
Copyright: 2015, Mozilla Foundation
License: MPL-2.0
Files: src/Composer/Util/RemoteFilesystem.php
src/Composer/Util/TlsHelper.php
Copyright: 2016, Nils Adermann <naderman@naderman.de>
2016, Jordi Boggiano <j.boggiano@seld.be>
2013, Evan Coury <me@evancoury.com>
License: Expat and BSD-2-Clause
License: BSD-2-Clause
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
.
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
License: Expat
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished
to do so, subject to the following conditions:
.
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
License: MPL-2.0
1. Definitions
--------------
.
1.1. "Contributor"
means each individual or legal entity that creates, contributes to
the creation of, or owns Covered Software.
.
1.2. "Contributor Version"
means the combination of the Contributions of others (if any) used
by a Contributor and that particular Contributor's Contribution.
.
1.3. "Contribution"
means Covered Software of a particular Contributor.
.
1.4. "Covered Software"
means Source Code Form to which the initial Contributor has attached
the notice in Exhibit A, the Executable Form of such Source Code
Form, and Modifications of such Source Code Form, in each case
including portions thereof.
.
1.5. "Incompatible With Secondary Licenses"
means
.
(a) that the initial Contributor has attached the notice described
in Exhibit B to the Covered Software; or
.
(b) that the Covered Software was made available under the terms of
version 1.1 or earlier of the License, but not also under the
terms of a Secondary License.
.
1.6. "Executable Form"
means any form of the work other than Source Code Form.
.
1.7. "Larger Work"
means a work that combines Covered Software with other material, in
a separate file or files, that is not Covered Software.
.
1.8. "License"
means this document.
.
1.9. "Licensable"
means having the right to grant, to the maximum extent possible,
whether at the time of the initial grant or subsequently, any and
all of the rights conveyed by this License.
.
1.10. "Modifications"
means any of the following:
.
(a) any file in Source Code Form that results from an addition to,
deletion from, or modification of the contents of Covered
Software; or
.
(b) any new file in Source Code Form that contains any Covered
Software.
.
1.11. "Patent Claims" of a Contributor
means any patent claim(s), including without limitation, method,
process, and apparatus claims, in any patent Licensable by such
Contributor that would be infringed, but for the grant of the
License, by the making, using, selling, offering for sale, having
made, import, or transfer of either its Contributions or its
Contributor Version.
.
1.12. "Secondary License"
means either the GNU General Public License, Version 2.0, the GNU
Lesser General Public License, Version 2.1, the GNU Affero General
Public License, Version 3.0, or any later versions of those
licenses.
.
1.13. "Source Code Form"
means the form of the work preferred for making modifications.
.
1.14. "You" (or "Your")
means an individual or a legal entity exercising rights under this
License. For legal entities, "You" includes any entity that
controls, is controlled by, or is under common control with You. For
purposes of this definition, "control" means (a) the power, direct
or indirect, to cause the direction or management of such entity,
whether by contract or otherwise, or (b) ownership of more than
fifty percent (50%) of the outstanding shares or beneficial
ownership of such entity.
.
2. License Grants and Conditions
--------------------------------
.
2.1. Grants
.
Each Contributor hereby grants You a world-wide, royalty-free,
non-exclusive license:
.
(a) under intellectual property rights (other than patent or trademark)
Licensable by such Contributor to use, reproduce, make available,
modify, display, perform, distribute, and otherwise exploit its
Contributions, either on an unmodified basis, with Modifications, or
as part of a Larger Work; and
.
(b) under Patent Claims of such Contributor to make, use, sell, offer
for sale, have made, import, and otherwise transfer either its
Contributions or its Contributor Version.
.
2.2. Effective Date
.
The licenses granted in Section 2.1 with respect to any Contribution
become effective for each Contribution on the date the Contributor first
distributes such Contribution.
.
2.3. Limitations on Grant Scope
.
The licenses granted in this Section 2 are the only rights granted under
this License. No additional rights or licenses will be implied from the
distribution or licensing of Covered Software under this License.
Notwithstanding Section 2.1(b) above, no patent license is granted by a
Contributor:
.
(a) for any code that a Contributor has removed from Covered Software;
or
.
(b) for infringements caused by: (i) Your and any other third party's
modifications of Covered Software, or (ii) the combination of its
Contributions with other software (except as part of its Contributor
Version); or
.
(c) under Patent Claims infringed by Covered Software in the absence of
its Contributions.
.
This License does not grant any rights in the trademarks, service marks,
or logos of any Contributor (except as may be necessary to comply with
the notice requirements in Section 3.4).
.
2.4. Subsequent Licenses
.
No Contributor makes additional grants as a result of Your choice to
distribute the Covered Software under a subsequent version of this
License (see Section 10.2) or under the terms of a Secondary License (if
permitted under the terms of Section 3.3).
.
2.5. Representation
.
Each Contributor represents that the Contributor believes its
Contributions are its original creation(s) or it has sufficient rights
to grant the rights to its Contributions conveyed by this License.
.
2.6. Fair Use
.
This License is not intended to limit any rights You have under
applicable copyright doctrines of fair use, fair dealing, or other
equivalents.
.
2.7. Conditions
.
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
in Section 2.1.
.
3. Responsibilities
-------------------
.
3.1. Distribution of Source Form
.
All distribution of Covered Software in Source Code Form, including any
Modifications that You create or to which You contribute, must be under
the terms of this License. You must inform recipients that the Source
Code Form of the Covered Software is governed by the terms of this
License, and how they can obtain a copy of this License. You may not
attempt to alter or restrict the recipients' rights in the Source Code
Form.
.
3.2. Distribution of Executable Form
.
If You distribute Covered Software in Executable Form then:
.
(a) such Covered Software must also be made available in Source Code
Form, as described in Section 3.1, and You must inform recipients of
the Executable Form how they can obtain a copy of such Source Code
Form by reasonable means in a timely manner, at a charge no more
than the cost of distribution to the recipient; and
.
(b) You may distribute such Executable Form under the terms of this
License, or sublicense it under different terms, provided that the
license for the Executable Form does not attempt to limit or alter
the recipients' rights in the Source Code Form under this License.
.
3.3. Distribution of a Larger Work
.
You may create and distribute a Larger Work under terms of Your choice,
provided that You also comply with the requirements of this License for
the Covered Software. If the Larger Work is a combination of Covered
Software with a work governed by one or more Secondary Licenses, and the
Covered Software is not Incompatible With Secondary Licenses, this
License permits You to additionally distribute such Covered Software
under the terms of such Secondary License(s), so that the recipient of
the Larger Work may, at their option, further distribute the Covered
Software under the terms of either this License or such Secondary
License(s).
.
3.4. Notices
.
You may not remove or alter the substance of any license notices
(including copyright notices, patent notices, disclaimers of warranty,
or limitations of liability) contained within the Source Code Form of
the Covered Software, except that You may alter any license notices to
the extent required to remedy known factual inaccuracies.
.
3.5. Application of Additional Terms
.
You may choose to offer, and to charge a fee for, warranty, support,
indemnity or liability obligations to one or more recipients of Covered
Software. However, You may do so only on Your own behalf, and not on
behalf of any Contributor. You must make it absolutely clear that any
such warranty, support, indemnity, or liability obligation is offered by
You alone, and You hereby agree to indemnify every Contributor for any
liability incurred by such Contributor as a result of warranty, support,
indemnity or liability terms You offer. You may include additional
disclaimers of warranty and limitations of liability specific to any
jurisdiction.
.
4. Inability to Comply Due to Statute or Regulation
---------------------------------------------------
.
If it is impossible for You to comply with any of the terms of this
License with respect to some or all of the Covered Software due to
statute, judicial order, or regulation then You must: (a) comply with
the terms of this License to the maximum extent possible; and (b)
describe the limitations and the code they affect. Such description must
be placed in a text file included with all distributions of the Covered
Software under this License. Except to the extent prohibited by statute
or regulation, such description must be sufficiently detailed for a
recipient of ordinary skill to be able to understand it.
.
5. Termination
--------------
.
5.1. The rights granted under this License will terminate automatically
if You fail to comply with any of its terms. However, if You become
compliant, then the rights granted under this License from a particular
Contributor are reinstated (a) provisionally, unless and until such
Contributor explicitly and finally terminates Your grants, and (b) on an
ongoing basis, if such Contributor fails to notify You of the
non-compliance by some reasonable means prior to 60 days after You have
come back into compliance. Moreover, Your grants from a particular
Contributor are reinstated on an ongoing basis if such Contributor
notifies You of the non-compliance by some reasonable means, this is the
first time You have received notice of non-compliance with this License
from such Contributor, and You become compliant prior to 30 days after
Your receipt of the notice.
.
5.2. If You initiate litigation against any entity by asserting a patent
infringement claim (excluding declaratory judgment actions,
counter-claims, and cross-claims) alleging that a Contributor Version
directly or indirectly infringes any patent, then the rights granted to
You by any and all Contributors for the Covered Software under Section
2.1 of this License shall terminate.
.
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
end user license agreements (excluding distributors and resellers) which
have been validly granted by You or Your distributors under this License
prior to termination shall survive termination.
.
************************************************************************
* *
* 6. Disclaimer of Warranty *
* ------------------------- *
* *
* Covered Software is provided under this License on an "as is" *
* basis, without warranty of any kind, either expressed, implied, or *
* statutory, including, without limitation, warranties that the *
* Covered Software is free of defects, merchantable, fit for a *
* particular purpose or non-infringing. The entire risk as to the *
* quality and performance of the Covered Software is with You. *
* Should any Covered Software prove defective in any respect, You *
* (not any Contributor) assume the cost of any necessary servicing, *
* repair, or correction. This disclaimer of warranty constitutes an *
* essential part of this License. No use of any Covered Software is *
* authorized under this License except under this disclaimer. *
* *
************************************************************************
.
************************************************************************
* *
* 7. Limitation of Liability *
* -------------------------- *
* *
* Under no circumstances and under no legal theory, whether tort *
* (including negligence), contract, or otherwise, shall any *
* Contributor, or anyone who distributes Covered Software as *
* permitted above, be liable to You for any direct, indirect, *
* special, incidental, or consequential damages of any character *
* including, without limitation, damages for lost profits, loss of *
* goodwill, work stoppage, computer failure or malfunction, or any *
* and all other commercial damages or losses, even if such party *
* shall have been informed of the possibility of such damages. This *
* limitation of liability shall not apply to liability for death or *
* personal injury resulting from such party's negligence to the *
* extent applicable law prohibits such limitation. Some *
* jurisdictions do not allow the exclusion or limitation of *
* incidental or consequential damages, so this exclusion and *
* limitation may not apply to You. *
* *
************************************************************************
.
8. Litigation
-------------
.
Any litigation relating to this License may be brought only in the
courts of a jurisdiction where the defendant maintains its principal
place of business and such litigation shall be governed by laws of that
jurisdiction, without reference to its conflict-of-law provisions.
Nothing in this Section shall prevent a party's ability to bring
cross-claims or counter-claims.
.
9. Miscellaneous
----------------
.
This License represents the complete agreement concerning the subject
matter hereof. If any provision of this License is held to be
unenforceable, such provision shall be reformed only to the extent
necessary to make it enforceable. Any law or regulation which provides
that the language of a contract shall be construed against the drafter
shall not be used to construe this License against a Contributor.
.
10. Versions of the License
---------------------------
.
10.1. New Versions
.
Mozilla Foundation is the license steward. Except as provided in Section
10.3, no one other than the license steward has the right to modify or
publish new versions of this License. Each version will be given a
distinguishing version number.
.
10.2. Effect of New Versions
.
You may distribute the Covered Software under the terms of the version
of the License under which You originally received the Covered Software,
or under the terms of any subsequent version published by the license
steward.
.
10.3. Modified Versions
.
If you create software not governed by this License, and you want to
create a new license for such software, you may create and use a
modified version of this License if you rename the license and remove
any references to the name of the license steward (except to note that
such modified license differs from this License).
.
10.4. Distributing Source Code Form that is Incompatible With Secondary
Licenses
.
If You choose to distribute Source Code Form that is Incompatible With
Secondary Licenses under the terms of this version of the License, the
notice described in Exhibit B of this License must be attached.
.
Exhibit A - Source Code Form License Notice
-------------------------------------------
.
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.
.
If it is not possible or desirable to put the notice in a particular
file, then You may include the notice in a location (such as a LICENSE
file in a relevant directory) where a recipient would be likely to look
for such a notice.
.
You may add additional accurate notices of copyright ownership.
.
Exhibit B - "Incompatible With Secondary Licenses" Notice
---------------------------------------------------------
.
This Source Code Form is "Incompatible With Secondary Licenses", as
defined by the Mozilla Public License, v. 2.0.

View File

@@ -0,0 +1,12 @@
<?php
// autoload_classmap.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'Rc_PgAnalyticsClientId' => $baseDir . '/classes/Rc_PgAnalyticsClientId.php',
'Rc_PgAnalyticsOrderSent' => $baseDir . '/classes/Rc_PgAnalyticsOrderSent.php',
'Rc_PgAnalyticsTools' => $baseDir . '/src/rc_pganalyticstools.php',
);

View File

@@ -0,0 +1,9 @@
<?php
// autoload_namespaces.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
);

View File

@@ -0,0 +1,9 @@
<?php
// autoload_psr4.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
);

View File

@@ -0,0 +1,45 @@
<?php
// autoload_real.php @generated by Composer
class ComposerAutoloaderInit9ebb16cf1dc87bf00b3028a1bb212f7e
{
private static $loader;
public static function loadClassLoader($class)
{
if ('Composer\Autoload\ClassLoader' === $class) {
require __DIR__ . '/ClassLoader.php';
}
}
public static function getLoader()
{
if (null !== self::$loader) {
return self::$loader;
}
spl_autoload_register(array('ComposerAutoloaderInit9ebb16cf1dc87bf00b3028a1bb212f7e', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
spl_autoload_unregister(array('ComposerAutoloaderInit9ebb16cf1dc87bf00b3028a1bb212f7e', 'loadClassLoader'));
$map = require __DIR__ . '/autoload_namespaces.php';
foreach ($map as $namespace => $path) {
$loader->set($namespace, $path);
}
$map = require __DIR__ . '/autoload_psr4.php';
foreach ($map as $namespace => $path) {
$loader->setPsr4($namespace, $path);
}
$classMap = require __DIR__ . '/autoload_classmap.php';
if ($classMap) {
$loader->addClassMap($classMap);
}
$loader->register(true);
return $loader;
}
}

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

View File

@@ -0,0 +1 @@
[]

35
modules/rc_pganalytics/vendor/index.php vendored Normal file
View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

View File

@@ -0,0 +1,150 @@
/**
* NOTICE OF LICENSE
*
* This source file is subject to a trade license awarded by
* Garamo Online L.T.D.
*
* Any use, reproduction, modification or distribution
* of this source file without the written consent of
* Garamo Online L.T.D It Is prohibited.
*
* @author ReactionCode <info@reactioncode.com>
* @copyright 2015-2020 Garamo Online L.T.D
* @license Commercial license
*/
.form-tab-item {
cursor: pointer;
}
.list-group-item i {
margin-right: 8px;
}
input[type="range"] {
-webkit-appearance:none;
-moz-appearance:none;
appearance:none;
margin:0;
outline:none;
background-color:inherit;
background-size:0;
cursor:pointer;
padding:0;
width:100%;
vertical-align:middle;
}
input[type="range"]::-moz-range-track {
-moz-appearance:none;
appearance:none;
margin:10.5px 0;
border-radius:5px;
border-color:transparent;
background-color:#eee;
background-image:linear-gradient(#30aabc,#30aabc);
background-repeat:repeat-y;
background-size:0;
width:99.8%;
height:5px;
color:transparent;
box-sizing:border-box;
}
input[type="range"]::-ms-track {
appearance:none;
margin:10.5px 0;
border-radius:5px;
border-color:transparent;
background-color:#eee;
background-image:linear-gradient(#30aabc,#30aabc);
background-repeat:repeat-y;
background-size:0;
width:99.8%;
height:5px;
color:transparent;
box-sizing:border-box;
}
input[type="range"]::-webkit-slider-runnable-track {
-webkit-appearance:none;
appearance:none;
margin:10.5px 0;
border-radius:5px;
border-color:transparent;
background-color:#eee;
background-image:-webkit-gradient(linear,left top,left bottom,from(#30aabc),to(#30aabc));
background-image:linear-gradient(#30aabc,#30aabc);
background-repeat:repeat-y;
background-size:0;
width:99.8%;
height:5px;
color:transparent;
-webkit-box-sizing:border-box;
box-sizing:border-box;
}
input[type="range"]::-moz-range-thumb {
-moz-appearance:none;
appearance:none;
margin:-7.5px 0;
border:3px solid #30aabc;
border-radius:100%;
box-shadow:0 4px 8px 0 rgba(36,83,107,.15);
background-color:#30aabc;
width:20px;
height:20px;
box-sizing:border-box;
}
input[type="range"]::-ms-thumb {
appearance:none;
margin:-7.5px 0;
border:3px solid #30aabc;
border-radius:100%;
box-shadow:0 4px 8px 0 rgba(36,83,107,.15);
background-color:#30aabc;
width:20px;
height:20px;
box-sizing:border-box;
}
input[type="range"]::-webkit-slider-thumb {
-webkit-appearance:none;
appearance:none;
margin:-7.5px 0;
border:3px solid #30aabc;
border-radius:100%;
-webkit-box-shadow:0 4px 8px 0 rgba(36,83,107,.15);
box-shadow:0 4px 8px 0 rgba(36,83,107,.15);
background-color:#30aabc;
width:20px;
height:20px;
-webkit-box-sizing:border-box;
box-sizing:border-box;
}
input[type="range"]::-moz-range-progress {
border-top-left-radius:5px;
border-bottom-left-radius:5px;
background-color:#30aabc;
height:5px;
}
input[type="range"]::-ms-fill-lower {
border-top-left-radius:5px;
border-bottom-left-radius:5px;
background-color:#30aabc;
height:5px;
}
input[type="range"]::-moz-focus-outer {
border:0;
}
input[type="range"]::-ms-tooltip {
display:none;
}
input[type="range"]::-webkit-slider-container,
input[type="range"]::-webkit-slider-runnable-track {
background-size:inherit;
}

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

View File

@@ -0,0 +1,157 @@
/**
* NOTICE OF LICENSE
*
* This source file is subject to a trade license awared by
* Garamo Online L.T.D.
*
* Any use, reproduction, modification or distribution
* of this source file without the written consent of
* Garamo Online L.T.D It Is prohibited.
*
* @author ReactionCode <info@reactioncode.com>
* @copyright 2015-2020 Garamo Online L.T.D
* @license Commercial license
*/
(function() {
'use strict';
// Initialize all user events when DOM ready
document.addEventListener('DOMContentLoaded', initCommonForm, false);
function initCommonForm() {
var formTabs;
var inputsWithSelectInput;
var inputsWithSelectMenu;
formTabs = document.querySelector('#js-form-tabs');
if (formTabs) {
formTabs.addEventListener('click', toggleTabs, false);
}
inputsWithSelectInput = document.querySelectorAll('.js-inputwithselect-input');
if (inputsWithSelectInput) {
inputsWithSelectInput.forEach(function (inputWithSelectNode) {
if (inputWithSelectNode.min || inputWithSelectNode.max) {
inputWithSelectNode.addEventListener('change', inputWithSelectInput, false);
}
});
}
inputsWithSelectMenu = document.querySelectorAll('.js-inputwithselect-menu');
if (inputsWithSelectMenu) {
inputsWithSelectMenu.forEach(function (inputWithSelectNode) {
inputWithSelectNode.addEventListener('click', inputWithSelectMenu, false);
});
}
}
// toggle form tabs
function toggleTabs(event) {
var tabSelectors = ['.js-tab-item'];
var target = delegateEvents(tabSelectors, event.target);
var targetClassList;
var tabsList;
var tabsContent;
if (event.button === 0 && target) {
targetClassList = target.classList;
if (targetClassList.contains('reachable') && !targetClassList.contains('active')) {
tabsList = document.querySelectorAll('.js-tab-item');
tabsContent = document.querySelectorAll('.js-tab-content');
// handle tab column
tabsList.forEach(function (tab) {
if (tab.id === target.id) {
tab.classList.add('active');
} else {
tab.classList.remove('active');
}
});
// handle form values
tabsContent.forEach(function (content) {
if (content.id !== 'js-tab-content-' + target.id) {
content.classList.add('hidden');
} else {
content.classList.remove('hidden');
}
});
}
}
}
// handle imputs with select options
function inputWithSelectMenu(event) {
var optionSelector = ['.js-inputwithselect-option'];
var target = delegateEvents(optionSelector, event.target);
var mainSelector = ['.input-group-btn'];
var mainNode;
var inputNode;
var labelNode;
if (event.button === 0 && target) {
event.preventDefault();
mainNode = delegateEvents(mainSelector, target);
inputNode = mainNode.querySelector('input');
inputNode.value = target.dataset.value;
labelNode = mainNode.querySelector('.js-inputwithselect-label');
labelNode.innerText = target.innerText.trim();
}
}
// handle input limits
function inputWithSelectInput(event) {
var winnerInputNode = event.target;
if (winnerInputNode.max) {
if (Number(winnerInputNode.value) > Number(winnerInputNode.max)) {
winnerInputNode.value = winnerInputNode.max;
}
}
if (winnerInputNode.min) {
if (Number(winnerInputNode.value) < Number(winnerInputNode.min)) {
winnerInputNode.value = winnerInputNode.min;
}
}
}
// JS TOOLS - LIKE JQ CLOSEST
function delegateEvents(selectors, target) {
var matchMode;
if (target) {
// get available browser matches function
matchMode = target.matches || target.webkitMatchesSelector || target.msMatchesSelector;
// get function name (general browsers || iE9)
matchMode = matchMode.name || /function\s+([\w\$]+)\s*\(/.exec(matchMode.toString());
// on iE9 get the name value, empty value on anonymous fn
if (typeof matchMode !== 'string') {
matchMode = matchMode ? matchMode[1] : '';
}
// continue only if we get matches selector function
if (matchMode) {
while (target.parentNode !== null) {
if (target.nodeType === 1) {
// iterate all selectors
for (var i = 0; i < selectors.length; i++) {
// compare if node match with selector
if (target[matchMode](selectors[i])) {
// if match return target
return target;
}
}
}
// if no match or nodeType !== 1 go to parent
target = target.parentNode;
}
}
}
}
})();

View File

@@ -0,0 +1,68 @@
/**
* NOTICE OF LICENSE
*
* This source file is subject to a trade license awared by
* Garamo Online L.T.D.
*
* Any use, reproduction, modification or distribution
* of this source file without the written consent of
* Garamo Online L.T.D It Is prohibited.
*
* @author ReactionCode <info@reactioncode.com>
* @copyright 2015-2020 Garamo Online L.T.D
* @license Commercial license
*/
(function(){
'use strict';
// Initialize all user events when DOM ready
document.addEventListener('DOMContentLoaded', initConfigForm, false);
function initConfigForm() {
var hidingTimeNode;
var eventValueNodes;
hidingTimeNode = document.querySelector('#RC_PGANALYTICS_SSSR');
hidingTimeNode.addEventListener('input', validateSiteSpeedSampleRate);
eventValueNodes = document.querySelectorAll('.js-event-value');
eventValueNodes.forEach(function(eventValueNode) {
eventValueNode.addEventListener('input', validateEventValue);
});
}
function validateSiteSpeedSampleRate(event) {
var min = 1;
var max = 100;
var isNumber = /^\d+$/;
var inputValue = event.target.value;
if (isNumber.test(inputValue)) {
if (Number(inputValue) > max) {
event.target.value = max;
} else if (Number(inputValue) < min) {
event.target.value = min;
}
} else {
event.target.value = min;
}
}
function validateEventValue(event) {
var min = 0;
var isNumber = /^\d+$/;
var inputValue = event.target.value;
if (isNumber.test(inputValue)) {
if (Number(inputValue) < min) {
event.target.value = min;
}
} else {
event.target.value = min;
}
}
})();

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

View File

@@ -0,0 +1,185 @@
/**
* NOTICE OF LICENSE
*
* This source file is subject to a trade license awared by
* Garamo Online L.T.D.
*
* Any use, reproduction, modification or distribution
* of this source file without the written consent of
* Garamo Online L.T.D It Is prohibited.
*
* @author ReactionCode <info@reactioncode.com>
* @copyright 2015-2020 Garamo Online L.T.D
* @license Commercial license
*/
(function() {
'use strict';
// Initialize all user events when DOM ready
document.addEventListener('DOMContentLoaded', initRcGaContentOrder, false);
function initRcGaContentOrder() {
var orderDetailNode;
var detailSentNode;
var detailByNode;
var stStatusMessageNode;
var notSendMessageNode;
var sendButtonNode;
var removeButtonNode;
orderDetailNode = document.querySelector('.js-rcga-order-detail');
detailSentNode = document.querySelector('.js-rcga-detail-sent');
detailByNode = document.querySelector('.js-rcga-detail-by');
stStatusMessageNode = document.querySelector('.js-rcga-st-status');
notSendMessageNode = document.querySelector('.js-rcga-not-send');
sendButtonNode = document.querySelector('.js-rcga-send');
removeButtonNode = document.querySelector('.js-rcga-remove');
// bind action on node to handle it on event method
sendButtonNode.action = 'forceTransaction';
// bind event listener to button node
sendButtonNode.addEventListener('click', rcAjaxAction, false);
removeButtonNode.action = 'deleteFromControlTable';
removeButtonNode.addEventListener('click', rcAjaxAction, false);
// handle display depending actual status
if (rcTrackingReport) {
orderDetailNode.classList.remove('hidden');
detailSentNode.innerText = rcTrackingReport.sent_at;
detailByNode.innerText = rcTrackingStatuses[rcTrackingReport.sent_from];
removeButtonNode.classList.remove('hidden');
if (rcTrackingReport.sent_from === 'st') {
stStatusMessageNode.classList.remove('hidden');
}
} else {
notSendMessageNode.classList.remove('hidden');
sendButtonNode.classList.remove('hidden');
}
}
function rcAjaxAction(event) {
var req = new XMLHttpRequest();
var url = rcGaModuleUrl + 'rc_pganalytics-ajax.php';
var action = event.target.action;
var data = {
'action': action,
'id_order': rcOrderId,
'id_shop': rcOrderIdShop
};
var formData;
formData = new FormData();
formData.append('data', JSON.stringify(data));
formData.append('token', rcGaToken);
animateIcon('refresh');
req.open('POST', url, true);
req.onreadystatechange = function () {
var response;
var type;
if (req.readyState === 4 && req.status === 200) {
type = req.getResponseHeader('Content-Type');
if (type === 'application/json') {
response = JSON.parse(req.responseText);
if (typeof response === 'object') {
if (action === 'deleteFromControlTable') {
afterDeleteInControlTable(response);
} else if (action === 'forceTransaction') {
afterForceTransaction(response);
}
}
}
}
};
req.send(formData);
}
function animateIcon(action) {
var iconNode;
iconNode = document.querySelector('.js-rcga-icon i');
if (action === 'refresh') {
iconNode.className = 'icon-refresh icon-spin';
} else if (action === 'ok') {
iconNode.className = 'icon-check-circle';
} else if (action === 'ko') {
iconNode.className = 'icon-times-circle';
}
}
function afterDeleteInControlTable(response) {
var orderDetailNode;
var detailSentNode;
var detailByNode;
var stStatusMessageNode;
var notSendMessageNode;
var sendButtonNode;
var removeButtonNode;
if (response && response.result) {
// get all nodes
orderDetailNode = document.querySelector('.js-rcga-order-detail');
detailSentNode = document.querySelector('.js-rcga-detail-sent');
detailByNode = document.querySelector('.js-rcga-detail-by');
stStatusMessageNode = document.querySelector('.js-rcga-st-status');
notSendMessageNode = document.querySelector('.js-rcga-not-send');
sendButtonNode = document.querySelector('.js-rcga-send');
removeButtonNode = document.querySelector('.js-rcga-remove');
// wipe old data from detail
detailSentNode.innerText = '';
detailByNode.innerText = '';
// hidden all other nodes
orderDetailNode.classList.add('hidden');
stStatusMessageNode.classList.add('hidden');
removeButtonNode.classList.add('hidden');
// display required nodes
notSendMessageNode.classList.remove('hidden');
sendButtonNode.classList.remove('hidden');
animateIcon('ko');
}
}
function afterForceTransaction(response) {
var orderDetailNode;
var detailSentNode;
var detailByNode;
var stStatusMessageNode;
var notSendMessageNode;
var sendButtonNode;
var removeButtonNode;
if (response) {
// get all nodes
orderDetailNode = document.querySelector('.js-rcga-order-detail');
detailSentNode = document.querySelector('.js-rcga-detail-sent');
detailByNode = document.querySelector('.js-rcga-detail-by');
stStatusMessageNode = document.querySelector('.js-rcga-st-status');
notSendMessageNode = document.querySelector('.js-rcga-not-send');
sendButtonNode = document.querySelector('.js-rcga-send');
removeButtonNode = document.querySelector('.js-rcga-remove');
// wipe old data from detail
detailSentNode.innerText = response.sent_at;
detailByNode.innerText = rcTrackingStatuses[response.sent_from];
// hidden all other nodes
notSendMessageNode.classList.add('hidden');
sendButtonNode.classList.add('hidden');
stStatusMessageNode.classList.add('hidden');
// display required nodes
orderDetailNode.classList.remove('hidden');
removeButtonNode.classList.remove('hidden');
animateIcon('ok');
}
}
})();

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

View File

@@ -0,0 +1,35 @@
<?php
/**
* 2007-2015 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2015 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

View File

@@ -0,0 +1,35 @@
<?php
/**
* 2007-2015 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2015 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

View File

@@ -0,0 +1,52 @@
{*
* NOTICE OF LICENSE
*
* This source file is subject to a trade license awarded by
* Garamo Online L.T.D.
*
* Any use, reproduction, modification or distribution
* of this source file without the written consent of
* Garamo Online L.T.D It Is prohibited.
*
* @author ReactionCode <info@reactioncode.com>
* @copyright 2015-2020 Garamo Online L.T.D
* @license Commercial license
*}
{addJsDef rcGaToken=$rcToken}
{addJsDef rcGaModuleUrl=$moduleUrl}
{addJsDef rcOrderId=$rc_order_id}
{addJsDef rcOrderIdShop=$rc_order_id_shop}
{addJsDef rcTrackingReport=$tracking_report}
{addJsDef rcTrackingStatuses=$tracking_statuses}
<div class="tab-pane" id="rcga-tracking">
<h4 class="visible-print">
{l s='Tracking Status' mod='rc_pganalytics'}
{if $tracking_report}
<i class="icon-check-circle-o"></i>
{else}
<i class="icon-times-circle-o"></i>
{/if}
</h4>
<div class="well">
<div class="rc-messages">
<p class="js-rcga-st-status alert alert-warning hidden">
{l s='This order has been included in the control table at installation process to avoid duplicates with old tracking modules, so maybe the transaction is not registered on GA' mod='rc_pganalytics'}.<br>
<strong>{l s='If you want to send this order to GA, click on' mod='rc_pganalytics'} "{l s='Remove from Control Table' mod='rc_pganalytics'}" {l s='button to enable the manual send' mod='rc_pganalytics'}</strong>
</p>
<p class="js-rcga-not-send alert alert-danger hidden">
{l s='This order has not been sent to GA' mod='rc_pganalytics'}.<br>
<strong>{l s='Change the order status to send it automatically or click the' mod='rc_pganalytics'} "{l s='Force Send to GA' mod='rc_pganalytics'}" {l s='button' mod='rc_pganalytics'}</strong>
</p>
</div>
<dl class="js-rcga-order-detail list-detail hidden">
<dt>Transaction sent</dt>
<dd class="js-rcga-detail-sent"></dd>
<dt>Sent By</dt>
<dd class="js-rcga-detail-by"></dd>
</dl>
</div>
<div class="tracking-options">
<button type="button" class="js-rcga-send btn btn-primary hidden">{l s='Force Send to GA' mod='rc_pganalytics'}</button>
<button type="button" class="js-rcga-remove btn btn-danger hidden">{l s='Remove from Control Table' mod='rc_pganalytics'}</button>
</div>
</div>

View File

@@ -0,0 +1,22 @@
{*
* NOTICE OF LICENSE
*
* This source file is subject to a trade license awarded by
* Garamo Online L.T.D.
*
* Any use, reproduction, modification or distribution
* of this source file without the written consent of
* Garamo Online L.T.D It Is prohibited.
*
* @author ReactionCode <info@reactioncode.com>
* @copyright 2015-2020 Garamo Online L.T.D
* @license Commercial license
*}
<li>
<a href="#rcga-tracking">
<i class="icon-area-chart"></i> {l s='Tracking Status' mod='rc_pganalytics'}
<span class="js-rcga-icon badge">
<i class="{if $tracking_report}icon-check-circle{else}icon-times-circle{/if}"></i>
</span>
</a>
</li>

View File

@@ -0,0 +1,35 @@
<?php
/**
* 2007-2015 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2015 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

View File

@@ -0,0 +1,184 @@
{*
* NOTICE OF LICENSE
*
* This source file is subject to a trade license awared by
* Garamo Online L.T.D.
*
* Any use, reproduction, modification or distribution
* of this source file without the written consent of
* Garamo Online L.T.D It Is prohibited.
*
* @author ReactionCode <info@reactioncode.com>
* @copyright 2015-2020 Garamo Online L.T.D
* @license Commercial license
*}
<script type="text/javascript">
// Instantiate the tracking class
var rcAnalyticsEvents = new RcAnalyticsEvents();
// page controller
var controllerName = '{$controller_name}';
var compliantModules = {$compliant_modules|json_encode nofilter};
var compliantModuleName = '{$compliant_module_name}';
var skipCartStep = '{$skip_cart_step}';
var isOrder = '{$is_order}';
var isCheckout = '{$is_checkout}';
var isClientId = {$is_client_id};
var gaOrder;
var gaProducts;
////////////////////////////
// set tracking features
rcAnalyticsEvents.trackingFeatures = {$gtag_tracking_features|json_encode nofilter};
// set checkout values
rcAnalyticsEvents.controllerName = controllerName;
rcAnalyticsEvents.isCheckout = isCheckout;
rcAnalyticsEvents.compliantModuleName = compliantModuleName;
rcAnalyticsEvents.skipCartStep = skipCartStep;
// list names
rcAnalyticsEvents.lists = {$lists|json_encode nofilter};
// Google remarketing - page type
rcAnalyticsEvents.ecommPageType = '{$ecomm_pagetype}';
{if isset($products_list_cache)}
// get products list to cache
rcAnalyticsEvents.productsListCache = {$products_list_cache|json_encode nofilter};
{/if}
// Listing products
{if isset($ga_products)}
// checkout pages
gaProducts = {$ga_products|json_encode nofilter};
{/if}
{if isset($ga_order)}
// Order complete
gaOrder = {$ga_order|json_encode nofilter};
{/if}
/////////////////////////////////
// init gtag
rcAnalyticsEvents.sendGtagConfig('analyticsId');
rcAnalyticsEvents.sendGtagConfig('adwordsId');
///////////////////////////////////////////////
// Initialize all user events when DOM ready
document.addEventListener('DOMContentLoaded', initTrackingEvents, false);
window.addEventListener('pageshow', fireEventsOnPageShow, false);
///////////////////////////////////////////////
function initTrackingEvents() {
// Events binded on all pages
// Events binded to document.body to avoid firefox fire events on right/central click
document.body.addEventListener('click', rcAnalyticsEvents.eventClickPromotionItem, false);
// bind prestashop events with tracking events
prestashop.on(
'updateCart',
function (event) {
rcAnalyticsEvents.eventAddCartProduct(event);
}
);
prestashop.on(
'clickQuickView',
function (event) {
rcAnalyticsEvents.eventProductView(event)
}
);
prestashop.on(
'updatedProduct',
function (event) {
rcAnalyticsEvents.eventProductView(event)
}
);
if (!isCheckout && !isOrder) {
// init first scroll action for those products all ready visible on screen
rcAnalyticsEvents.eventScrollList();
// bind event to scroll
window.addEventListener('scroll', rcAnalyticsEvents.eventScrollList, false);
// init Event Listeners
document.body.addEventListener('click', rcAnalyticsEvents.eventClickProductList, false);
if (rcAnalyticsEvents.trackingFeatures.goals.socialAction) {
document.body.addEventListener('click', rcAnalyticsEvents.eventSocialShareProductView, false);
}
////////////////////////
// SEARCH PAGE
if (controllerName === 'search') {
rcAnalyticsEvents.onSearchResults();
}
////////////////////////
// PRODUCT PAGE
if (controllerName === 'product') {
// send product detail view
rcAnalyticsEvents.eventProductView();
}
}
////////////////////////
// CHECKOUT PROCESS
if (isCheckout) {
// SUMMARY CART
if (controllerName === 'cart') {
// events on summary Cart
document.body.addEventListener('click', rcAnalyticsEvents.eventCartQuantityDelete, false);
document.body.addEventListener('click', rcAnalyticsEvents.eventCartQuantityUp, false);
document.body.addEventListener('click', rcAnalyticsEvents.eventCartQuantityDown, false);
}
////////////////////////
// CHECKOUT
if (!compliantModuleName && controllerName === 'order') {
// Events on Checkout Process
document.body.addEventListener('click', rcAnalyticsEvents.eventPrestashopCheckout, false);
} else if (
compliantModuleName === 'supercheckout'
&& controllerName === compliantModules[compliantModuleName]
) {
// Compatible with super-checkout by Knowband
document.body.addEventListener('click', rcAnalyticsEvents.eventOpcSuperCheckout, false);
document.body.addEventListener('click', rcAnalyticsEvents.eventCartOpcSuperCheckout, false);
} else if (
compliantModuleName === 'onepagecheckoutps'
&& controllerName === compliantModules[compliantModuleName]
) {
// compatible with OPC by PrestaTeamShop
document.body.addEventListener('click', rcAnalyticsEvents.eventOpcPrestaTeam, false);
document.body.addEventListener('click', rcAnalyticsEvents.eventCartOpcPrestaTeam, false);
} else if (
compliantModuleName === 'thecheckout'
&& controllerName === compliantModules[compliantModuleName]
) {
// Compatible with thecheckout by Zelarg
document.body.addEventListener('click', rcAnalyticsEvents.eventOpcTheCheckout, false);
document.body.addEventListener('click', rcAnalyticsEvents.eventCartOpcTheCheckout, false);
}
}
}
function fireEventsOnPageShow(event){
// fixes safari back cache button
if (event.persisted) {
window.location.reload()
}
// Sign up feature
if (rcAnalyticsEvents.trackingFeatures.goals.signUp && rcAnalyticsEvents.trackingFeatures.isNewSignUp) {
rcAnalyticsEvents.onSignUp();
}
if (isClientId) {
rcAnalyticsEvents.setClientId();
}
// Checkout and order complete
if (isCheckout && gaProducts) {
rcAnalyticsEvents.onCheckoutProducts(gaProducts);
} else if (isOrder && gaOrder && gaProducts) {
rcAnalyticsEvents.onAddOrder(gaOrder, gaProducts, rcAnalyticsEvents.trackingFeatures.idShop);
}
}
</script>

View File

@@ -0,0 +1,38 @@
{*
* NOTICE OF LICENSE
*
* This source file is subject to a trade license awared by
* Garamo Online L.T.D.
*
* Any use, reproduction, modification or distribution
* of this source file without the written consent of
* Garamo Online L.T.D It Is prohibited.
*
* @author ReactionCode <info@reactioncode.com>
* @copyright 2015-2020 Garamo Online L.T.D
* @license Commercial license
*}
{if isset($optimize_id, $optimize_class_name) && $optimize_id && $optimize_class_name}
<!-- Google Optimize Page Hiding-->
<style>.{$optimize_class_name} {ldelim}opacity: 0 !important{rdelim} </style>
<script data-keepinline>
{literal}
(function(a,s,y,n,c,h,i,d,e){
s.className+=' '+y;h.start=1*new Date;
h.end=i=function(){s.className=s.className.replace(RegExp(' ?'+y),'')};
(a[n]=a[n]||[]).hide=h;setTimeout(function(){i();h.end=null},c);
h.timeout=c;
})
{/literal}
(window,document.documentElement,'{$optimize_class_name}','dataLayer',{$optimize_time_out},{ldelim}'{$optimize_id}':true{rdelim});
</script>
{/if}
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src='https://www.googletagmanager.com/gtag/js?id={$analytics_id}' data-keepinline></script>
<script data-keepinline>
{literal}
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
{/literal}
</script>

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;