bebeboutik/modules/trustedshops/trustedshops.php
Srv Bebeboutik 6c0978166c add modules
2016-01-04 12:49:26 +01:00

239 lines
7.4 KiB
PHP
Executable File

<?php
/*
* 2007-2011 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-2011 PrestaShop SA
* @version Release: $Revision: 9992 $
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
if (!defined('_PS_VERSION_'))
exit;
require (_PS_MODULE_DIR_.'trustedshops/lib/AbsTrustedShops.php');
require (_PS_MODULE_DIR_.'trustedshops/lib/TrustedShopsRating.php');
require (_PS_MODULE_DIR_.'trustedshops/lib/TSBuyerProtection.php');
class TrustedShops extends Module
{
/**
* Saved each Object needed list of AbsTrustedShops extended objects
* @var array
*/
private static $objects_list = array();
private $errors = array();
private $warnings = array();
public $limited_countries = array();
private $confirmations = array();
public function __construct()
{
global $smarty;
$this->name = 'trustedshops';
$this->tab = 'payment_security';
$this->version = '1.3.3';
parent::__construct();
if (empty(self::$objects_list))
{
TSBuyerProtection::setTranslationObject($this);
$obj_ts_rating = new TrustedShopsRating();
$obj_ts_buyerprotection = new TSBuyerProtection();
$obj_ts_buyerprotection->_setEnvApi(TSBuyerProtection::ENV_PROD);
self::$objects_list = array($obj_ts_rating, $obj_ts_buyerprotection);
self::$objects_list[0]->setModuleName($this->name);
self::$objects_list[0]->setSmarty($smarty);
}
if (!extension_loaded('soap'))
$this->warnings[] = $this->l('This module requires the SOAP PHP extension to function properly.');
foreach (self::$objects_list as $object)
{
$this->limited_countries = array_merge($this->limited_countries, $object->limited_countries);
if (!empty($object->warnings))
$this->warnings = array_merge($this->warnings, $object->warnings);
}
if (!empty($this->warnings))
$this->warning = implode(',<br />', $this->warnings).'.';
$this->displayName = $this->l('Trusted Shops trust solutions');
$this->description = $this->l('Build confidence in your online shop with the Trusted Shops quality seal, buyer protection and customer rating.');
$this->confirmUninstall = $this->l('Are you sure you want to delete all your settings?');
}
public function install()
{
$return = true;
foreach (self::$objects_list as $object)
{
$return = $object->install();
if (!$return)
break;
}
$return = ($return) ? (parent::install() AND $this->registerHook('orderConfirmation') AND $this->registerHook('newOrder') AND $this->registerHook('rightColumn') AND $this->registerHook('paymentTop') AND $this->registerHook('orderConfirmation')) : $return;
$id_hook = Hook::get('payment');
$this->updatePosition($id_hook, 0, 1);
return $return;
}
public function uninstall()
{
$return = true;
foreach (self::$objects_list as $object)
{
$return = $object->uninstall();
if (!$return)
break;
}
$return = ($return) ? parent::uninstall() : $return;
return $return;
}
public function getContent()
{
$out = '<h2>'.$this->displayName.'</h2>';
$tabs = array();
foreach (self::$objects_list as $key=>$object)
{
$object->id_tab = $key;
$tabs['title'][] = $object->tab_name;
$tabs['content'][] = $object->getContent();
}
// Display Title Tabs
$out .= '<ul id="menuTabs">';
foreach($tabs['title'] as $key=>$title)
$out .= '<li id="menuTab'.$key.'" class="menuTabButton'.( (int)$key === (int)Tools::getValue('id_tab') ? ' selected' : '' ).'">'.($key+1).'. '.$title.'</li>';
$out .= '</ul>';
// Display content Tabs
$out .= '<div id="tabList">';
foreach($tabs['content'] as $key=>$content)
$out .= '<div id="menuTab'.$key.'Sheet" class="tabItem'.( (int)$key === (int)Tools::getValue('id_tab') ? ' selected' : '' ).'">'.$content.'</div>';
$out .= '<br clear="left" />'.$this->displayCSSJSTab();
// Check If each object (display as Tab) contains errors message of
$this->checkObjectsErrorsOrConfirmations();
return ( !empty($this->errors) ? $this->displayErrors() : $this->displayConfirmations() ).$out;
}
private function displayCSSJSTab()
{
$id_tab = isset($_GET['id_tab']) ? (int)$_GET['id_tab'] : 0;
return '
<style>
#menuTabs { float: left; padding: 0; text-align: left; margin:0}
#menuTabs li { text-align: left; float: left; display: inline; padding: 5px 10px 5px 5px; background: #EFEFEF; font-weight: bold; cursor: pointer; border-left: 1px solid #EFEFEF; border-right: 1px solid #EFEFEF; border-top: 1px solid #EFEFEF; }
#menuTabs li.menuTabButton.selected { background: #FFF6D3; border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; border-top: 1px solid #CCCCCC; }
#tabList { clear: left;}
.tabItem { display: none; }
.tabItem.selected { display: block; background: #fcfcfc; border: 1px solid #CCCCCC; padding: 10px; padding-top: 20px;}
</style>
<script>
$().ready(function()
{
$("#menuTab'.$id_tab.'Sheet").addClass("selected");
$("#menuTab'.$id_tab.'").addClass("selected");
});
$(".menuTabButton").click(function ()
{
$(".menuTabButton.selected").removeClass("selected");
$(this).addClass("selected");
$(".tabItem.selected").removeClass("selected");
$("#" + this.id + "Sheet").addClass("selected");
});
</script>
';
}
/**
* Check If each object (display as Tab) contains errors message of
*
* @return void
*/
private function checkObjectsErrorsOrConfirmations()
{
foreach (self::$objects_list as $object)
{
if (!empty($object->errors))
$this->errors = array_merge($this->errors, $object->errors);
if (!empty($object->confirmations))
$this->confirmations = array_merge($this->confirmations, $object->confirmations);
}
}
private function displayConfirmations()
{
$html = '';
if (!empty($this->confirmations))
foreach ($this->confirmations as $confirmations)
$html .= $this->displayConfirmation($confirmations);
return $html;
}
private function displayErrors()
{
$html = '';
if (!empty($this->errors))
foreach ($this->errors as $error)
$html .= $this->displayError($error);
return $html;
}
public function hookOrderConfirmation($params)
{
return $this->dynamicHook($params, __FUNCTION__);
}
public function hookNewOrder($params)
{
return $this->dynamicHook($params, __FUNCTION__);
}
public function hookRightColumn($params)
{
return $this->dynamicHook($params, __FUNCTION__);
}
public function hookLeftColumn($params)
{
return $this->hookRightColumn($params);
}
public function hookPaymentTop($params)
{
return $this->dynamicHook($params, __FUNCTION__);
}
private function dynamicHook($params, $hook_name)
{
if (!$this->active)
return '';
$return = '';
foreach (self::$objects_list as $object)
if (method_exists($object, $hook_name))
$return .= $object->{$hook_name}($params);
return $return;
}
}