homestore

This commit is contained in:
Nolwenn 2016-07-11 12:08:49 +02:00
parent 4ceb3e9753
commit f81842bc4e
24 changed files with 733 additions and 88 deletions

View File

@ -0,0 +1,138 @@
<?php
if (!defined('_CAN_LOAD_FILES_'))
exit;
include_once(dirname(__FILE__) . '/classes/AdvRea2.php');
class AdvReassurance2 extends Module
{
public function __construct()
{
$this->name = 'advreassurance2';
$this->tab = 'front_office_features';
$this->version = '1.0';
$this->author = 'Antadis';
$this->need_instance = 0;
$this->bootstrap = true;
parent::__construct();
$this->displayName = $this->l('Reassurance avancé 2');
$this->description = $this->l('Gestion des blocks reassurance2');
}
public function install()
{
$sql = array();
$sql[] =
'CREATE TABLE IF NOT EXISTS `' . _DB_PREFIX_ . 'advreassurance2` (
`id_reassurance2` int(10) unsigned NOT NULL auto_increment,
`position` INT(11) UNSIGNED NOT NULL default 0,
`active` INT(11) UNSIGNED NOT NULL default 1,
PRIMARY KEY (`id_reassurance2`)
) ENGINE=' . _MYSQL_ENGINE_ . ' DEFAULT CHARSET=utf8';
$sql[] =
'CREATE TABLE IF NOT EXISTS `' . _DB_PREFIX_ . 'advreassurance2_lang` (
`id_reassurance2` int(10) unsigned NOT NULL,
`id_lang` int(10) unsigned NOT NULL,
`title` varchar(255) NOT NULL,
`subtitle` varchar(255) NOT NULL,
`url` varchar(255),
PRIMARY KEY (`id_reassurance2`,`id_lang`)
) ENGINE=' . _MYSQL_ENGINE_ . ' DEFAULT CHARSET=utf8';
$sql[] =
'CREATE TABLE IF NOT EXISTS `' . _DB_PREFIX_ . 'advreassurance2_shop` (
`id_reassurance2` int(10) unsigned NOT NULL auto_increment,
`id_shop` int(10) unsigned NOT NULL,
PRIMARY KEY (`id_reassurance2`, `id_shop`)
) ENGINE=' . _MYSQL_ENGINE_ . ' DEFAULT CHARSET=utf8';
foreach ($sql as $_sql) {
Db::getInstance()->Execute($_sql);
}
$tab = new Tab();
$tab->class_name = 'AdminAdvReassurance2';
$tab->id_parent = Tab::getCurrentParentId();
$tab->module = $this->name;
$languages = Language::getLanguages();
foreach ($languages as $language) {
$tab->name[$language['id_lang']] = 'Reassurance2';
}
$img_dir = _PS_IMG_DIR_ . 'reassurance2';
$folder = is_dir($img_dir);
if (!$folder)
{
$folder = mkdir($img_dir, 0755, true);
}
return parent::install() && $tab->add() && $this->registerHook('displayReassurance2') && $this->registerHook('actionRefreshReassurance2') && $folder;
}
public function uninstall()
{
$sql = 'DROP TABLE IF EXISTS
`' . _DB_PREFIX_ . 'advreassurance2_lang`,
`' . _DB_PREFIX_ . 'advreassurance2_shop`,
`' . _DB_PREFIX_ . 'advreassurance2`
';
Db::getInstance()->Execute($sql);
$idTab = Tab::getIdFromClassName('AdminAdvReassurance2');
if ($idTab) {
$tab = new Tab($idTab);
$tab->delete();
}
return parent::uninstall();
}
public function assignBlocks()
{
$blocks = AdvRea2::getBlocks();
if (!$blocks)
{
return false;
}
$this->smarty->assign('blocks', $blocks);
}
public function hookDisplayReassurance2($params)
{
if (!$this->isCached('advreassurance2.tpl', $this->getCacheId()))
{
$this->assignBlocks();
}
return $this->display(__FILE__, 'advreassurance2.tpl', $this->getCacheId());
}
public function hookHome($params)
{
return $this->hookDisplayReassurance2($params);
}
public function hookDisplayReassurance2Bottom($params)
{
if (!$this->isCached('advreassurance2-bottom.tpl', $this->getCacheId()))
{
$this->assignBlocks();
}
return $this->display(__FILE__, 'advreassurance2-bottom.tpl', $this->getCacheId());
}
public function hookActionRefreshReassurance2()
{
$this->_clearCache('advreassurance2');
}
}

View File

@ -0,0 +1,133 @@
<?php
class AdvRea2 extends ObjectModel {
public $id_reassurance2;
public $position;
public $active;
public $title;
public $subtitle;
public $url;
public static $definition = array(
'table' => 'advreassurance2',
'primary' => 'id_reassurance2',
'multilang' => TRUE,
'fields' => array(
'id_reassurance2' => array('type' => self::TYPE_INT, 'validate' => 'isInt'),
'position' => array('type' => self::TYPE_INT, 'validate' => 'isInt'),
'active' => array('type' => self::TYPE_INT, 'validate' => 'isInt'),
// Lang fields
'title' => array('type' => self::TYPE_STRING, 'lang' => TRUE, 'validate' => 'isGenericName', 'size' => 255),
'subtitle' => array('type' => self::TYPE_HTML, 'lang' => TRUE, 'validate' => 'isCleanHtml'),
'url' => array('type' => self::TYPE_STRING, 'lang' => TRUE, 'validate' => 'isUrl', 'size' => 255)
)
);
public function __construct($id = NULL, $id_lang = NULL, $id_shop = NULL) {
parent::__construct($id, $id_lang, $id_shop);
$this->image_dir = _PS_IMG_DIR_ . 'reassurance2/';
}
public function add($null_values = false, $autodate = true)
{
$result = parent::add($null_values, $autodate);
Hook::exec('actionRefreshReassurance2');
return $result;
}
public function update($null_values = FALSE) {
$result = parent::update($null_values);
Hook::exec('actionRefreshReassurance2');
return $result;
}
public function delete($null_values = FALSE) {
$result = parent::delete($null_values);
Hook::exec('actionRefreshReassurance2');
return $result;
}
public static function getBlocks()
{
$context = Context::getContext();
$reassurance2s = Db::getInstance()->executeS('
SELECT *
FROM `'._DB_PREFIX_.'advreassurance2` adv
JOIN `'._DB_PREFIX_.'advreassurance2_lang` advl ON adv.`id_reassurance2` = advl.`id_reassurance2` AND id_lang = '. (int)$context->language->id . '
WHERE adv.`active` = 1
ORDER BY `position` ASC
');
return $reassurance2s;
}
public function cleanPositions(){
return Db::getInstance()->execute('UPDATE `'._DB_PREFIX_.'advreassurance2`
SET `position`= `position` - 1
WHERE `id_reassurance2` = '.(int)$this->id_reassurance2.'
AND `position` > '.(int)$this->position);
}
public function updatePosition($way, $position)
{
$sql = 'SELECT `position`, `id_reassurance2`
FROM `'._DB_PREFIX_.'advreassurance2`
ORDER BY `position` ASC';
if (!$res = Db::getInstance()->executeS($sql))
return false;
foreach ($res as $row)
if ((int)$row['id_reassurance2'] == (int)$this->id_reassurance2)
$moved_row = $row;
if (!isset($moved_row) || !isset($position))
return false;
// < and > statements rather than BETWEEN operator
// since BETWEEN is treated differently according to databases
$res = Db::getInstance()->execute('
UPDATE `'._DB_PREFIX_.'advreassurance2`
SET `position`= `position` '.($way ? '- 1' : '+ 1').'
AND `position`
'.($way
? '> '.(int)$moved_row['position'].' AND `position` <= '.(int)$position
: '< '.(int)$moved_row['position'].' AND `position` >= '.(int)$position)
)
&& Db::getInstance()->execute('
UPDATE `'._DB_PREFIX_.'advreassurance2`
SET `position` = '.(int)$position.'
WHERE `id_reassurance2`='.(int)$moved_row['id_reassurance2']
);
$this->refreshPositions();
Hook::exec('actionRefreshReassurance2');
return $res;
}
public function refreshPositions(){
$sql = 'SELECT `id_reassurance2`
FROM `'._DB_PREFIX_.'advreassurance2`
ORDER BY `position` ASC';
if (!$blocks = Db::getInstance()->executeS($sql))
return false;
$pos=0;
foreach ($blocks as $block) {
Db::getInstance()->execute('
UPDATE `'._DB_PREFIX_.'advreassurance2`
SET `position` = '.(int)$pos.'
WHERE `id_reassurance2`='.(int)$block['id_reassurance2']);
$pos++;
}
}
}

View File

@ -0,0 +1,243 @@
<?php
include_once dirname(__FILE__).'/../../classes/AdvRea2.php';
class AdminAdvReassurance2Controller extends ModuleAdminController {
public function __construct() {
$this->table = 'advreassurance2';
$this->className = 'AdvRea2';
$this->identifier = 'id_reassurance2';
$this->lang = TRUE;
$this->deleted = FALSE;
$this->bootstrap = TRUE;
$this->fieldImageSettings = array(
'name' => 'image',
'dir' => 'reassurance2'
);
$this->position_identifier = 'id_reassurance2';
$this->_defaultOrderBy = 'position';
parent::__construct();
$this->actions = array('edit', 'delete');
$this->fields_list = array(
'id_reassurance2' => array(
'title' => 'ID',
'width' => 25
),
'image' => array(
'title' => $this->module->l('Image'),
'image' => $this->fieldImageSettings['dir'],
'width' => 75
),
'title' => array(
'title' => $this->module->l('Titre'),
),
'url' => array(
'title' => $this->module->l('Url'),
'width' => 45,
),
'position' => array(
'title' => $this->l('Position'),
'align' => 'center',
'position' => 'position',
'filter_key' => 'a!position'
)
);
if (Shop::isFeatureActive() && Shop::getContext() != Shop::CONTEXT_ALL){
$this->_join .= 'JOIN `'._DB_PREFIX_.'advreassurance2_shop` as ashop ON a.`id_reassurance2` = ashop.`id_reassurance2` AND ashop.`id_shop` IN ('.implode(', ', Shop::getContextListShopID()).') ';
$this->_group .= 'GROUP BY ashop.`id_reassurance2`';
}
}
public function initPageHeaderToolbar() {
parent::initPageHeaderToolbar();
if ($this->display != 'edit' && $this->display != 'add') {
$this->page_header_toolbar_btn['new_link'] = array(
'href' => self::$currentIndex.'&id_parent='.(int)Tools::getValue('id_reassurance2').'&addadvreassurance2&token='.$this->token,
'desc' => $this->l('Ajouter un nouveau block', NULL, NULL, FALSE),
'icon' => 'process-icon-new'
);
}
}
public function renderView() {
return $this->renderList();
}
public function renderForm() {
$this->fields_form = array(
'tinymce' => TRUE,
'legend' => array(
'title' => $this->className,
),
'submit' => array(
'name' => 'submitAdvReassurance2r',
'title' => $this->l('Save'),
),
'input' => array(
array(
'type' => 'text',
'label' => $this->l('Titre'),
'name' => 'title',
'lang' => TRUE,
),
array(
'type' => 'textarea',
'label' => $this->l('Description'),
'name' => 'subtitle',
'autoload_rte' => TRUE,
'cols' => 100,
'rows' => 6,
'lang' => TRUE,
),
array(
'type' => 'text',
'label' => $this->l('Lien'),
'name' => 'url',
'lang' => TRUE
),
array(
'type' => 'switch',
'label' => $this->l('Activé'),
'name' => 'active',
'required' => FALSE,
'is_bool' => TRUE,
'default' => 1,
'values' => array(
array(
'id' => 'active_on',
'value' => 1,
'label' => $this->l('Enabled')
),
array(
'id' => 'active_off',
'value' => 0,
'label' => $this->l('Disabled')
)
),
),
array(
'type' => 'shop',
'label' => $this->l('Shop'),
'form_group_class' => 'fieldhide input_association',
'name' => 'checkBoxShopAsso_advreassurance2'
)
)
);
$obj = $this->loadObject(TRUE);
$image = FALSE;
$image_url = '';
$image_size = '';
if($obj)
{
$image = _PS_IMG_DIR_ . 'reassurance2/' . $obj->id.'.jpg';
$image_url = ImageManager::thumbnail($image, $this->table.'_'.(int)$obj->id.'.'.$this->imageType, 350, $this->imageType, TRUE, TRUE);
$image_size = file_exists($image) ? filesize($image) / 1000 : FALSE;
}
$this->fields_form['input'][] = array(
'type' => 'file',
'label' => $this->l('Image'),
'name' => 'image',
'display_image' => TRUE,
'lang' => TRUE,
'image' => $image_url,
'size' => $image_size,
'delete_url' => self::$currentIndex.'&'.$this->identifier.'='.$this->object->id.'&token='.$this->token.'&deleteImage=1'
);
return parent::renderForm();
}
protected function copyFromPost(&$object, $table) {
parent::copyFromPost($object, $table);
if(Shop::isFeatureActive())
{
$object->id_shop_list = array();
foreach (Tools::getValue('checkBoxShopAsso_advreassurance2') as $id_shop => $value)
$object->id_shop_list[] = $id_shop;
}
}
public function postProcess() {
if (Tools::getValue('deleteImage')) {
$this->processForceDeleteImage();
$this->refreshPreview();
}
return parent::postProcess();
}
public function processForceDeleteImage() {
$link = $this->loadObject(TRUE);
if (Validate::isLoadedObject($link))
{
$link->deleteImage(TRUE);
}
}
protected function postImage($id) {
$ret = parent::postImage($id);
$this->refreshPreview();
if (isset($_FILES) && count($_FILES) && $_FILES['image']['name'] != NULL && !empty($this->object->id) )
{
return TRUE;
}
return TRUE;
}
public function refreshPreview()
{
$current_preview = _PS_TMP_IMG_DIR_.'advreassurance2_mini_'.$this->object->id_reassurance2.'_'.$this->context->shop->id.'.jpg';
if (file_exists($current_preview)) {
unlink($current_preview);
}
}
public function ajaxProcessUpdatePositions()
{
$way = (int)(Tools::getValue('way'));
$id = (int)(Tools::getValue('id'));
$positions = Tools::getValue('slide');
$obj = 'advreassurance2';
if (is_array($positions)){
foreach ($positions as $position => $value)
{
$pos = explode('_', $value);
if (isset($pos[2]) && (int)$pos[2] === $id)
{
$menu_obj = new AdvRea2((int)$pos[2]);
if (Validate::isLoadedObject($menu_obj))
if (isset($position) && $menu_obj->updatePosition($way, $position))
{
echo 'ok position '.(int)$position.' for '.$obj.' '.(int)$pos[2]."\r\n";
}
else
echo '{"hasError" : true, "errors" : "Can not update '.$obj.' '.(int)$id.' to position '.(int)$position.' "}';
else
echo '{"hasError" : true, "errors" : "This '.$obj.' ('.(int)$id.') cannot be loaded"}';
break;
}
}
}
}
}

View File

@ -0,0 +1,35 @@
<?php
/*
* 2007-2014 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-2014 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;

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@ -0,0 +1,3 @@
<!-- Block Advmenu module -->
<!-- /Block Advmenu module -->

View File

@ -1,12 +1,13 @@
<h2>{l s='Tous nos produits' mod='categorieshome'}</h2>
<h2>{l s='Toutes nos rubriques' mod='categorieshome'}</h2>
<div class="row">
{foreach from=$categories item=category name=category_index}
<div class="col-md-3 col-sm-4 col-xs-6 col-xxs-12 category">
<p class="title"><a href="{$link->getCategoryLink($category)}">{$category->name}</a> <span>({$category->nbProducts})</span></p>
<a href="{$link->getCategoryLink($category)}">
<img src="/img/c/{$category->id}-0_thumb.jpg" alt="{$category->name}" class="img-responsive">
</a>
<p class="title"><a href="{$link->getCategoryLink($category)}">{$category->name}</a> <span>({$category->nbProducts})</span></p>
</div>
{/foreach}
</div>

View File

@ -848,6 +848,7 @@ body .ac_results {
.newsletter_overlay.shown{
display: block;
}
#homestore .newsletter_footer { margin-bottom: 30px; }
.inner_partenaire {
padding-bottom: 30px;
@ -2326,23 +2327,27 @@ main#categorycms { margin-bottom: 30px }
#reassurance_product p {
text-align: center;
}
#home_products h2 {
text-align: center;
font-size: 36px;
margin-bottom: 30px;
#home_products .category {
margin-top: 15px;
}
#home_products .category .title {
background: #f1f1f1;
padding: 15px;
font-family: 'vidaloka';
letter-spacing: -1px;
font-size: 20px;
#home_products h2 {
text-align: center;
font-size: 36px;
margin-bottom: 30px;
}
#home_products .category .title a { color: #333333; }
#home_products .category .title a:hover { text-decoration: none; }
#home_products .category .title span {
font-family: 'pompiere_regular';
#home_products .category .title {
background: #f1f1f1;
padding: 15px;
font-family: 'vidaloka';
letter-spacing: -1px;
font-size: 20px;
margin-bottom: 0;
}
#home_products .category .title a { color: #333333; }
#home_products .category .title a:hover { text-decoration: none; }
#home_products .category .title span {
font-family: 'pompiere_regular';
}
#reassurance_home_store {
padding: 15px 0;
@ -2443,10 +2448,10 @@ main#categorycms { margin-bottom: 30px }
.homeslider-description .homeslider-content h4{ font-size: 13px;}
.homeslider-description .btn{ height: auto;}
.homeslider-description .slider-legend{ font-size: 13px;}
#reassurance_product h2{ font-size: 18px;}
#reassurance_product img{ height: 90px;}
#reassurance_product h4{ font-size: 16px;}
#reassurance_product p{ font-size: 12px;}
#reassurance_product h2{ font-size: 20px; }
#reassurance_product img{ height: 65px; }
#reassurance_product h4{ font-size: 17px; }
#reassurance_product p{ font-size: 14px; }
#best_sales h2{ font-size: 30px;}
#best_sales .product-container:nth-child(3n+1),
@ -2649,8 +2654,81 @@ main#categorycms { margin-bottom: 30px }
#category .page-heading .header .content { width: 100%; }
#category .page-heading .header { padding: 15px; }
}
/*******************************************************************************************/
/*********************************** ADVREASSURANCE2 ********************************/
/******************************************************************************************/
/*************************************************************************************************************
************************************* #ADVREASSURANCE 2 ****************************************
**************************************************************************************************************/
#advReassurance2 {
margin-top: 50px;
}
#advReassurance2 .ctn {
padding-right: 15px;
padding-left: 15px;
}
#advReassurance2 li {
padding-left: 85px;
text-align: left;
background-position: 10px -5px;
background-repeat: no-repeat;
font-size: 15px;
}
#advReassurance2 span.title {
font-weight: 200;
display: inline-block;
line-height: 26px;
text-transform: none;
padding-top: 0;
padding-bottom: 5px;
background: none;
color: #4d4d4d;
text-align: left;
height: auto;
font-family: 'vidaloka';
font-size: 22px;
width: auto;
}
#footer #advReassurance2 .title { padding-bottom: 15px; }
#advReassurance2 .subtitle {
display: block;
line-height: 18px;
font-size: 15px;
text-align: left;
}
#advReassurance2 .subtitle { color: #666; }
#advReassurance2 .subtitle { line-height: 21px; }
@media(max-width: 1170px) and (min-width: 990px) {
#advReassurance2 span.title { font-size: 19px; line-height: 20px; height: 50px; }
}
@media(max-width: 990px) and (min-width: 480px) {
#advReassurance2 span.title{ font-size: 18px; line-height: 20px; }
}
@media(max-width: 480px) {
#advReassurance2 span p { font-size: 13px; }
#advReassurance2 li { padding-bottom: 5px; background-position: 10px 0px; padding-top: 0; padding-left: 80px; text-align: left; line-height: 17px; }
#advReassurance2 .subtitle { padding-bottom: 15px; margin-bottom: 0;}
#advReassurance2 { padding-top: 30px; margin-top: 0; }
#footer #advReassurance2 .subtitle { line-height: 18px;}
#footer #advReassurance2 .title { padding-bottom: 3px;}
}
/*******************************************************************************************/
/*********************************** BLOCKLAYERED ********************************/
/******************************************************************************************/

View File

@ -14,7 +14,7 @@
<glyph unicode="&#xe604;" glyph-name="facebook" d="M512 960c-282.316 0-512-229.684-512-512 0-282.295 229.684-512 512-512 282.295 0 512 229.705 512 512 0 282.316-229.664 512-512 512zM639.33 429.975h-83.298c0-133.084 0-296.896 0-296.896h-123.432c0 0 0 162.225 0 296.896h-58.674v104.933h58.674v67.872c0 48.61 23.098 124.566 124.566 124.566l91.465-0.351v-101.86c0 0-55.58 0-66.387 0s-26.171-5.403-26.171-28.584v-61.664h94.043l-10.786-104.912z" />
<glyph unicode="&#xe605;" glyph-name="email" d="M512-64c-47.104 0-92.501 6.144-136.192 18.432-43.691 12.293-84.48 29.525-122.368 51.712s-72.363 48.811-103.424 79.872c-31.061 31.058-57.685 65.536-79.872 103.424-22.187 37.891-39.424 78.677-51.712 122.37-12.288 43.689-18.432 89.086-18.432 136.19s6.144 92.501 18.432 136.192 29.525 84.48 51.712 122.368 48.811 72.363 79.872 103.424 65.536 57.685 103.424 79.872 78.677 39.424 122.368 51.712 89.088 18.432 136.192 18.432c70.315 0 136.704-13.483 199.168-40.448s116.736-63.488 162.816-109.568 82.603-100.352 109.568-162.816 40.448-128.853 40.448-199.168c0-47.104-6.144-92.501-18.432-136.192-12.293-43.686-29.525-84.475-51.712-122.368-22.187-37.888-48.811-72.363-79.872-103.424-31.058-31.061-65.536-57.69-103.424-79.872-37.891-22.187-78.677-39.424-122.371-51.712-43.687-12.288-89.085-18.432-136.189-18.432zM758.784 658.944h-485.376c-4.779 0-8.875-1.536-12.288-4.608s-5.12-7.339-5.12-12.8v-54.272c0-2.731 1.024-4.096 3.072-4.096l257.029-146.432c1.36 0 2.389 0.341 3.072 1.024l246.784 145.408c1.36 0.683 2.389 1.024 3.072 1.024 0.678 0 1.707 0.341 3.072 1.024 2.731 0 4.096 1.365 4.096 4.096v52.224c0 5.461-1.708 9.728-5.125 12.8s-7.509 4.608-12.288 4.608zM410.624 440.832c0.683 0.683 1.024 1.708 1.024 3.072 0 2.053-0.683 3.072-2.048 3.072l-146.432 83.97c-2.048 0.683-3.755 0.683-5.12 0-1.365 0-2.048-1.024-2.048-3.072v-220.16c0-2.053 1.024-3.413 3.072-4.096h2.048c1.365 0 2.048 0.341 2.048 1.024l147.456 136.19zM588.8 424.448c-0.683 2.053-2.394 2.389-5.125 1.024l-56.32-32.768c-6.827-4.096-13.99-4.096-21.504 0l-49.152 27.643c-2.048 1.365-3.755 1.365-5.12 0l-187.392-174.080c-0.683-0.678-1.024-2.048-1.024-4.091 0-0.683 0.683-1.708 2.048-3.072 4.096-1.365 6.827-2.053 8.192-2.053h480.258c1.365 0 2.736 0.683 4.096 2.053 0 2.731-0.341 4.432-1.024 5.12l-167.933 180.224zM773.12 535.040h-4.091l-139.264-82.944c-1.36 0-2.048-1.024-2.048-3.072-0.683-0.683-0.341-1.707 1.019-3.067l139.264-150.533c1.365-1.365 2.389-2.053 3.072-2.053h2.048c2.053 2.053 3.077 3.413 3.077 4.096v233.475c-0.005 1.367-1.029 2.732-3.077 4.098z" />
<glyph unicode="&#xe606;" glyph-name="google-plus" d="M443.406 363.155c-3.32 2.207-6.723 4.599-10.291 7.012-10.374 3.176-21.387 4.826-32.668 4.97h-1.361c-51.848 0-97.302-31.368-97.302-67.171 0-38.978 38.958-69.439 88.661-69.439 65.562 0 98.787 22.645 98.787 67.191 0 4.207-0.495 8.579-1.547 12.972-4.434 17.283-20.294 28.069-44.279 44.464zM406.676 499.023c0.041 0 0.041 0 0.041 0 12.395 0 22.851 4.888 30.956 14.168 12.704 14.478 18.334 38.236 14.993 63.459-5.878 45.083-38.112 82.618-71.749 83.587l-1.341 0.041c-11.9 0-22.521-4.908-30.585-14.148-12.518-14.292-17.819-36.937-14.54-62.118 5.898-45.042 38.814-83.958 71.749-84.99h0.474zM512 960c-282.316 0-512-229.684-512-512 0-282.295 229.684-512 512-512 282.295 0 512 229.705 512 512 0 282.316-229.664 512-512 512zM452.975 198.682c-19.345-5.589-40.278-8.414-62.242-8.414-24.46 0-47.97 2.805-69.893 8.353-42.423 10.704-73.77 30.997-88.413 57.148-6.311 11.302-9.507 23.346-9.507 35.823 0 12.848 3.073 25.883 9.136 38.793 23.243 49.538 84.515 82.865 152.387 82.865 0.681 0 1.32 0 1.939 0-5.506 9.714-8.167 19.778-8.167 30.358 0 5.259 0.701 10.621 2.104 16.086-71.192 1.609-124.463 53.745-124.463 122.483 0 48.527 38.793 95.817 94.27 114.914 16.602 5.733 33.534 8.662 50.177 8.662h152.243c5.177 0 9.776-3.362 11.384-8.291 1.609-4.908-0.165-10.312-4.352-13.343l-34.049-24.645c-2.042-1.444-4.496-2.227-7.033-2.227h-12.189c15.736-18.871 24.954-45.784 24.954-75.998 0-33.348-16.87-64.882-47.579-88.908-23.717-18.479-24.645-23.573-24.645-34.111 0.289-5.795 16.808-24.707 35.039-37.597 42.464-30.028 58.262-59.499 58.262-108.665-0.021-51.373-39.020-95.755-99.364-113.285zM796.79 459.817c0-6.6-5.383-11.962-11.962-11.962h-86.516v-86.557c0-6.6-5.383-11.962-11.92-11.962h-24.645c-6.641 0-12.003 5.362-12.003 11.962v86.557h-86.454c-6.6 0-11.962 5.321-11.962 11.962v24.604c0 6.6 5.362 12.003 11.962 12.003h86.454v86.475c0 6.62 5.362 11.962 12.003 11.962h24.645c6.538 0 11.92-5.341 11.92-11.962v-86.475h86.495c6.579 0 11.962-5.362 11.962-11.962v-24.645z" />
<glyph unicode="&#xe607;" glyph-name="wallet2" d="M437.898 831.252c1.555 0.079-1.572 0 0 0v0zM982.818 522.404l-23.719 39.496c-29.89 49.859-84.592 80.814-142.714 80.814h-206.14c36.182 15.251 62.269 57.323 62.269 97.56 0 50.309-40.774 91.096-91.102 91.096s-91.104-40.786-91.104-91.096c0-40.237 26.089-82.309 62.271-97.56h-81.16c7.258 3.059 14.113 7.198 20.432 12.184 0 0-36.236 39.038-36.236 85.376 0 30.571 12.014 58.563 30.218 80.395-12.773 6.813-29.772 11.076-47.935 10.585-48.188-1.309-86.411-42.242-86.411-90.977 0-40.237 26.087-82.309 62.269-97.56h-206.13c-58.122 0-112.823-30.954-142.714-80.795l-23.725-39.515c-9.865-16.441-4.542-37.761 11.893-47.618 16.435-9.901 37.761-4.542 47.622 11.893l23.721 39.532c17.418 29.044 49.314 47.095 83.205 47.095h608.76c33.891 0 65.778-18.051 83.196-47.114l23.727-39.515c6.497-10.844 17.997-16.844 29.782-16.844 6.066 0 12.244 1.593 17.831 4.95 16.431 9.857 21.753 31.176 11.891 47.618zM1009.091 225.751l-164.51 277.706c-5.597 9.436-15.763 15.234-26.744 15.234h-620.585c-11.244 0-21.589-6.068-27.103-15.877l-156.521-279.285c-18.536-33.047-18.127-73.443 1.020-106.127 19.152-32.69 54.198-52.771 92.091-52.771h810.541c38.325 0 73.706 20.573 92.724 53.889 18.984 33.296 18.636 74.233-0.912 107.23z" />
<glyph unicode="&#xe607;" glyph-name="wallet2" d="M437.858 831.064c1.555 0.079-1.572 0 0 0v0zM982.778 522.216l-23.719 39.496c-29.89 49.859-84.592 80.814-142.714 80.814h-206.14c36.182 15.251 62.269 57.323 62.269 97.56 0 50.309-40.774 91.096-91.102 91.096s-91.104-40.786-91.104-91.096c0-40.237 26.089-82.309 62.271-97.56h-81.16c7.258 3.059 14.113 7.198 20.432 12.184 0 0-36.236 39.038-36.236 85.376 0 30.571 12.014 58.563 30.218 80.395-12.773 6.813-29.772 11.076-47.935 10.585-48.188-1.309-86.411-42.242-86.411-90.977 0-40.237 26.087-82.309 62.269-97.56h-206.13c-58.122 0-112.823-30.954-142.714-80.795l-23.725-39.515c-9.865-16.441-4.542-37.761 11.893-47.618 16.435-9.901 37.761-4.542 47.622 11.893l23.721 39.532c17.418 29.044 49.314 47.095 83.205 47.095h608.76c33.891 0 65.778-18.051 83.196-47.114l23.727-39.515c6.497-10.844 17.997-16.844 29.782-16.844 6.066 0 12.244 1.593 17.831 4.95 16.431 9.857 21.753 31.176 11.891 47.618zM1009.051 225.563l-164.51 277.706c-5.597 9.436-15.763 15.234-26.744 15.234h-620.585c-11.244 0-21.589-6.068-27.103-15.877l-156.521-279.285c-18.536-33.047-18.127-73.443 1.020-106.127 19.152-32.69 54.198-52.771 92.091-52.771h810.541c38.325 0 73.706 20.573 92.724 53.889 18.984 33.296 18.636 74.233-0.912 107.23z" />
<glyph unicode="&#xe608;" glyph-name="coins30" d="M1022.863 378.438c-4.098 18.171-18.845 29.613-40.418 34.356-17.976 3.948-49.545 3.859-97.868-18.992-3.37-1.462-226.836-96.814-268.536-114.697-6.426-2.753-8.642-11.845-8.642-11.845-55.393-152.375-213.752-89.197-213.572-87.12 81.842-3.537 140.305 41.332 158.002 76.418 41.328 81.941-51.509 71.225-102.144 71.79-189.655 2.135-186.874-44.364-288.579-78.307l-154.182-59.438c-3.944-1.618-5.755-5.189-6.595-8.971-0.84-3.784-0.052-7.745 2.172-10.918l10.119-14.433c25.223-35.976 55.042-91.378 81.3-127.635 1.691-2.335 4.074-4.083 6.814-4.997 0.606-0.208 1.408-0.44 2.395-0.661 3.532-0.773 7.329-0.847 10.253-0.16l112.765 28.439c5.93 1.408 291.398-86.459 401.036-10.11l337.357 255.803c13.335 10.552 27.122 21.461 40.893 32.147 15.029 11.669 21.351 31.946 17.43 49.328zM626.425 886.062c-75.834 0-140.221-48.819-163.568-116.726 71.827-21.032 124.304-87.36 124.304-165.987 0-19.702-3.34-38.612-9.406-56.255 15.444-4.522 31.766-6.991 48.674-6.991 95.536 0 172.983 77.445 172.983 172.979s-77.449 172.981-172.987 172.981zM661.154 619.423c0-7.076-5.735-12.813-12.811-12.813h-23.599c-7.076 0-12.809 5.735-12.809 12.813v143.781l-14.604-7.884c-3.474-1.876-7.624-2.045-11.236-0.457s-6.298 4.754-7.266 8.581l-4.663 18.377c-1.447 5.707 1.18 11.667 6.372 14.444l40.674 21.771c1.858 0.994 3.935 1.516 6.045 1.516h21.084c7.076 0 12.811-5.733 12.811-12.811v-187.318h0.002zM389.271 757.558c-93.141 0-168.645-75.507-168.645-168.647s75.504-168.647 168.645-168.647c93.143 0 168.651 75.507 168.651 168.647s-75.509 168.647-168.651 168.647zM423.127 497.596c0-6.9-5.594-12.492-12.49-12.492h-23.007c-6.898 0-12.49 5.592-12.49 12.492v140.182l-14.238-7.686c-3.387-1.83-7.431-1.993-10.955-0.446s-6.14 4.635-7.087 8.364l-4.546 17.918c-1.41 5.564 1.152 11.375 6.214 14.082l39.658 21.227c1.813 0.97 3.836 1.479 5.893 1.479h20.558c6.898 0 12.49-5.592 12.49-12.49v-182.63z" />
<glyph unicode="&#xe609;" glyph-name="lock39" d="M512.003 960c-165.121 0-299.462-134.336-299.462-299.462v-171.031c0-1.944-2.398-5.218-4.282-5.845-16.194-5.4-29.346-10.080-41.385-14.721-14.357-5.535-25.186-21.446-25.186-37.011v-392.98c0-15.459 10.759-31.384 25.025-37.038 110.38-43.739 226.552-65.913 345.289-65.913s234.909 22.178 345.294 65.918c14.261 5.652 25.014 21.573 25.014 37.032v392.98c0 15.566-10.827 31.476-25.191 37.017-12.044 4.641-25.194 9.321-41.376 14.721-1.879 0.626-4.277 3.903-4.277 5.846v171.029c-0.009 165.121-134.341 299.457-299.462 299.457zM430.437 312.242c0 45.079 36.518 81.559 81.561 81.559 45.039 0 81.557-36.476 81.557-81.559 0-29.87-16.845-54.879-40.78-69.056v-134.843c0-22.542-18.239-40.78-40.78-40.78-22.542 0-40.78 18.237-40.78 40.78v134.843c-23.933 14.177-40.78 39.186-40.78 69.056zM708.494 660.543v-147.568c-64.436 13.865-130.543 20.887-196.465 20.893-65.892 0-131.985-7.024-196.521-20.877v147.552c0 108.347 88.144 196.489 196.489 196.489 108.344 0.002 196.496-88.142 196.496-196.489z" />
<glyph unicode="&#xe60a;" glyph-name="logistics3" d="M379.422 331.963c-47.266 0-85.464-38.333-85.464-85.601 0-47.127 38.198-85.464 85.464-85.464s85.464 38.336 85.464 85.464c-0.002 47.268-38.198 85.601-85.464 85.601zM379.422 203.63c-23.634 0-42.734 19.238-42.734 42.735 0 23.631 19.1 42.732 42.734 42.732 23.632 0 42.732-19.101 42.732-42.732-0.002-23.497-19.1-42.735-42.732-42.735zM1024 395.192v-91.258c0-22.764-18.454-41.219-41.221-41.219h-44.106c-7.969 54.687-55.097 96.731-111.982 96.731-56.745 0-103.876-42.046-111.845-96.731h-223.552c-7.969 54.687-55.099 96.731-111.845 96.731s-103.876-42.046-111.844-96.731h-55.236c-22.766 0-41.219 18.454-41.219 41.219v91.258h852.85zM826.801 331.963c-47.266 0-85.601-38.333-85.601-85.601 0-47.127 38.336-85.464 85.601-85.464 47.127 0 85.462 38.336 85.462 85.464 0 47.268-38.335 85.601-85.462 85.601zM826.801 203.63c-23.634 0-42.732 19.238-42.732 42.735 0 23.631 19.098 42.732 42.732 42.732 23.495 0 42.732-19.101 42.732-42.732 0-23.497-19.237-42.735-42.732-42.735zM1007.758 487.091l-161.994 160.211c-10.305 10.168-24.183 15.939-38.611 15.939h-81.753v30.641c0 22.807-18.412 41.219-41.219 41.219h-471.84c-22.672 0-41.219-18.414-41.219-41.219v-6.459l-167.273-19.279 296.401-38.597-300.25-29.827 299.192-42.538-299.192-25.941 171.132-32.276-0.012-80.988h852.851v30.093c0 14.702-5.908 28.716-16.213 39.021zM937.134 481.733h-156.774c-3.572 0-6.459 2.885-6.459 6.457v121.051c0 3.572 2.886 6.459 6.459 6.459h29.816c1.648 0 3.298-0.688 4.534-1.787l126.822-121.051c4.257-3.984 1.37-11.128-4.399-11.128z" />
@ -29,4 +29,6 @@
<glyph unicode="&#xe908;" glyph-name="minus" d="M968.432 519.443h-912.866c-17.538 0-55.566-23.815-55.566-71.443s38.030-71.443 55.566-71.443h912.87c17.532 0 55.564 23.815 55.564 71.443s-38.032 71.443-55.568 71.443z" />
<glyph unicode="&#xe909;" glyph-name="plus" d="M968.428 519.442h-384.988v384.99c0 17.538-23.815 55.566-71.442 55.566s-71.442-38.030-71.442-55.566v-384.992h-384.99c-17.536 0.002-55.566-23.813-55.566-71.438s38.030-71.442 55.566-71.442h384.992v-384.992c0-17.534 23.813-55.566 71.442-55.566s71.442 38.032 71.442 55.566v384.992h384.992c17.534 0 55.566 23.813 55.566 71.442s-38.036 71.44-55.572 71.44z" />
<glyph unicode="&#xe90a;" glyph-name="list" d="M221.645 230.789h802.355v-146.289h-802.355v146.289zM221.645 518.927h597.555v-146.289h-597.555v146.289zM221.645 815.928h802.355v-146.284h-802.355v146.284zM0 226.355h146.284v-146.284h-146.284v146.284zM0 518.927h146.284v-146.289h-146.284v146.289zM0 815.928h146.284v-146.284h-146.284v146.284z" />
<glyph unicode="&#xe90b;" glyph-name="back" d="M311.568 448.027l462.455 462.455c11.374 11.374 11.374 29.614 0 40.988s-29.614 11.374-40.988 0l-483.056-483.056c-11.374-11.374-11.374-29.614 0-40.988l483.056-482.842c5.58-5.58 13.090-8.584 20.387-8.584s14.807 2.79 20.387 8.584c11.374 11.374 11.374 29.614 0 40.988l-462.24 462.455z" />
<glyph unicode="&#xe90c;" glyph-name="next" d="M774.115 468.413l-483.056 483.056c-11.374 11.374-29.614 11.374-40.988 0s-11.374-29.614 0-40.988l462.455-462.455-462.455-462.455c-11.374-11.374-11.374-29.614 0-40.988 5.58-5.58 13.090-8.584 20.387-8.584s14.807 2.79 20.387 8.584l483.056 483.056c11.374 11.159 11.374 29.614 0.215 40.773z" />
</font></defs></svg>

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -4,30 +4,7 @@
{hook h='displayNewsletterFooter'}
</div>
<div class="container">
<div class="separator"></div>
{if $page_name != 'password'}
<div class="inner_partenaire row">
<span class="h4">{l s='Nos partenaires'}</span>
<div class="col-md-4">
<div class="pub">
{hook h='displayBoxPartenaire1'}
</div>
</div>
<div class="col-md-4">
<div class="pub">
{hook h='displayBoxPartenaire2'}
</div>
</div>
<div class="col-md-4">
<div class="pub">
{hook h='displayBoxPartenaire3'}
</div>
</div>
</div>
{/if}
</div>
{/if}
<div class="bg-grey">

View File

@ -4,31 +4,9 @@
{hook h='displayHomeStore'}
</div>
<div id="reassurance_product">
<h2>{l s='Les produits séléctionnés par ToutPratique.com sont'}</h2>
<div class="row">
<div class="col-md-3 col-sm-3 col-xs-6 col-xxs-6">
<img class="img-responsive" src="{$img_ps_dir}picto_sains.jpg" alt="{l s='Sains'}">
<h4>{l s='Sains'}</h4>
<p>{l s='Lorem ipsum dolor sit amet quis faucibus leo quam 1.'}</p>
</div>
<div class="col-md-3 col-sm-3 col-xs-6 col-xxs-6">
<img class="img-responsive" src="{$img_ps_dir}picto_respectueux.jpg" alt="{l s='Respectueux'}">
<h4>{l s='Respectueux'}</h4>
<p>{l s='Lorem ipsum dolor sit amet quis faucibus leo quam 2.'}</p>
</div>
<div class="col-md-3 col-sm-3 col-xs-6 col-xxs-6">
<img class="img-responsive" src="{$img_ps_dir}picto_abordable.jpg" alt="{l s='Abordables'}">
<h4>{l s='Abordables'}</h4>
<p>{l s='Lorem ipsum dolor sit amet quis faucibus leo quam 3.'}</p>
</div>
<div class="col-md-3 col-sm-3 col-xs-6 col-xxs-6">
<img class="img-responsive" src="{$img_ps_dir}picto_pratique.jpg" alt="{l s='Pratiques !'}">
<h4>{l s='Pratiques !'}</h4>
<p>{l s='Lorem ipsum dolor sit amet quis faucibus leo quam 4.'}</p>
</div>
</div>
<div class="container">
{hook h="displayReassurance2"}
</div>
<div class="separator"></div>
@ -38,33 +16,39 @@
</div>
<div class="separator"></div>
<div id="home_products">
<div id="home_products">
{hook h='displayHome' mod='categorieshome'}
</div>
<div id="reassurance_home_store">
<div class="separator"></div>
<div id="reassurance_product">
<h2>{l s='Les produits séléctionnés par ToutPratique.com sont'}</h2>
<div class="row">
<div class="col-sm-3 col-xs-6 col-xxs-12 bloc bloc1">
<span class="icon-wallet2"></span> {l s='Frais de port gratuit à partir de 60€'}
<div class="col-md-3 col-sm-3 col-xs-6 col-xxs-6">
<img class="img-responsive" src="{$img_dir}reassurance2/picto_efficace.jpg" alt="{l s='Sains'}">
<h4>{l s='Sains'}</h4>
<p>{l s='Lorem ipsum dolor sit amet quis faucibus leo quam 1.'}</p>
</div>
<div class="col-sm-3 col-xs-6 col-xxs-12 bloc bloc2">
<span class="icon-logistics3"></span> {l s='Livraison express'}
<div class="col-md-3 col-sm-3 col-xs-6 col-xxs-6">
<img class="img-responsive" src="{$img_dir}reassurance2/picto_respectueux.jpg" alt="{l s='Respectueux'}">
<h4>{l s='Respectueux'}</h4>
<p>{l s='Lorem ipsum dolor sit amet quis faucibus leo quam 2.'}</p>
</div>
<div class="col-sm-3 col-xs-6 col-xxs-12 bloc bloc3">
<span class="icon-lock39"></span> {l s='Paiement sécurisé'}
<div class="col-md-3 col-sm-3 col-xs-6 col-xxs-6">
<img class="img-responsive" src="{$img_dir}reassurance2/picto_abordable.jpg" alt="{l s='Abordables'}">
<h4>{l s='Abordables'}</h4>
<p>{l s='Lorem ipsum dolor sit amet quis faucibus leo quam 3.'}</p>
</div>
<div class="col-md-3 col-sm-3 col-xs-6 col-xxs-6">
<img class="img-responsive" src="{$img_dir}reassurance2/picto_pratique.jpg" alt="{l s='Pratiques !'}">
<h4>{l s='Pratiques !'}</h4>
<p>{l s='Lorem ipsum dolor sit amet quis faucibus leo quam 4.'}</p>
</div>
<div class="col-sm-3 col-xs-6 col-xxs-12 bloc bloc4">
<span class="icon-flag"></span> {l s='Made in France'}
</div>
</div>
</div>
<div class="separator"></div>
<div id="manufacturers">
{hook h='displayHome' mod='blockmanufacturer'}
</div>
</main>

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@ -0,0 +1,16 @@
<!-- Block Advmenu module -->
{if $blocks}
<ul class="row">
{foreach from=$blocks item=block key=key}
<li class="md3 sm6 xs6 xxs6">
<span class="title">{$block.title}</span>
<span class="subtitle">{$block.subtitle}</span>
</li>
{/foreach}
<li class="md3 sm6 xs6 xxs6">
<span class="title hidden-lg hidden-md hidden-sm">{l s='Reviews' mod='advreassurance'}</span>
<img src="{$base_dir}img/verified-reviews.png" alt="">
</li>
</ul>
{/if}
<!-- /Block Advmenu module -->

View File

@ -0,0 +1,16 @@
<!-- Block Advreassurance module -->
<div id="advReassurance2">
<div class="inner">
{if $blocks}
<ul class="row">
{foreach from=$blocks item=block key=key}
<li class="col-lg-3 col-md-3 col-sm-6 col-xs-6 col-xxs-12" style="background-image: url({$base_dir}img/reassurance2/{$block.id_reassurance2}.jpg);">
<span class="title">{$block.title}</span>
<span class="subtitle">{$block.subtitle}</span>
</li>
{/foreach}
</ul>
{/if}
</div>
</div>
<!-- /Block Advreassurance module -->

View File

@ -0,0 +1,5 @@
<?php
global $_MODULE;
$_MODULE = array();
$_MODULE['<{advreassurance}pierimport>advreassurance-bottom_34e80a799d144cfe4af46815e103f017'] = 'Avis client';