Jump to content

Page CMS ne s'affichent pas front


Ink

Recommended Posts

Bonjour à tous.

je vous contact car je suis confronté à un bug et je ne sais pas vraiment comment m'y prendre pour le résoudre.

sur ma boutique : http://nicolas.martync.me/shopmoto

j'ai mis en place des pages avec de contenu type CMS. Le problème est que en front office pour je ne sais qu'elle raison, rien ne s'affiche (exemple des liens en bas de page comme : Conditions d'utilisation ou A propos). Au niveau du backoffice par contre je vois bien mes articles et mes pages CMS. J'ai réalisé un autre shop dans le même style il n'y a pas longtemps et les pages CMS s'affichent normalement.

Si quelqu'un aurai une idée d'une manip pour refaire apparaitre mes page je serai intéressé :)

Cordialement.

Link to comment
Share on other sites

Bonjour a tous !

après beaucoup beaucoup de test...j'ai trouvé l'origine de mon problème. Par contre je ne vois pas trop comment le résoudre.

 

Sur mon site j'ai créé des hook spécifique pour certains modules. j'ai donc modifié le classes/frontcontroller.php et c'est de là que viens mon problème. j'ai rajouté ce code à la ligne 477 environ :

 self::$smarty->assign(array(
  'HOOK_HOMELEFT' => Module::hookExec('homeleft'),
  'HOOK_HOMESLIDER' => Module::hookExec('homeslider'),
  'HOOK_HOMELINE' => Module::hookExec('homeline'),
  'HOOK_HOMERIGHT' => Module::hookExec('homeright'),
  'HOOK_HEADER' => Module::hookExec('header'),
  'HOOK_TOP' => Module::hookExec('top'),
  'HOOK_LEFT_COLUMN' => Module::hookExec('leftColumn')
 ));

 

mais quand je laisse le code de base (sans mes hook) ça marche...

quelqu'un aurait-il une idée ?

Merci à tous :)

Link to comment
Share on other sites

Bonjour,

oui j'ai bien placé mes hook dans les bons fichiers et je les ai également créé dans le ps_hook en BDD.

Mes hooks sont bons puisque ils s'affichent correctement une fois le frontcontroller.php modifié.

 

Sauf que du coup mes page CMS (comme "a propos") sont vide (page blanche)...

 

Si je prend le frontcontroller.php natif de prestashop :

 self::$smarty->assign(array(
  'HOOK_HEADER' => Module::hookExec('header'),
  'HOOK_TOP' => Module::hookExec('top'),
  'HOOK_LEFT_COLUMN' => Module::hookExec('leftColumn')
 ));

la pas de problème les page CMS s'affichent. Mais si je rajoute :

  'HOOK_HOMELEFT' => Module::hookExec('homeleft'),
  'HOOK_HOMESLIDER' => Module::hookExec('homeslider'),
  'HOOK_HOMELINE' => Module::hookExec('homeline'),
  'HOOK_HOMERIGHT' => Module::hookExec('homeright'),

la ça ne marche plus...

Link to comment
Share on other sites

Oui la ça marche car je n'ai pas modifier le frontcontroller mais du coup mes hook en page d'accueil eux ne fonctionne pas. En gros c'est sois l'un sois l'autre...je ne sais pas pour quoi. Je penses que mes hook dans le frontcontroller sont mal placé, mais je ne sais pas où les mettre.

Link to comment
Share on other sites

Aprés plusieurs tests j'ai remarqué que je pouvais surcharger le FrontController que d'un seul hook. Dès que j'ajoute un autre hook là ça ne marche plus.

Comment faire du coup pour ajouter plusieurs hook personnalisé dans le frontcontroller sans effets de bord ?

Merci à tous.

Cordialement.

Link to comment
Share on other sites

As tu trouvé la solution. Car celle-ci m'intéresse. En java j'aurais dit en créant une fonction qui s'active en parallèle et qui fait la même chose. ( au risque que certaines données s'écrasent ).

Là je ne sais pas, tu as regardé si "assign" était limité au niveau des attributs ?

Link to comment
Share on other sites

Bonjour a tous,

aprés moult moult tests je viens de trouvé l'origine exacte du problème... :wacko:

Donc la surcharge du FrontController.php est Ok, Il s'agit en fait d'un module externe téléchargé sur le site d'un développer prestashop. C'est un module qui permet de mettre en avant les produits en promotion de façons aléatoire ou non (tout comme le module prestahop homefeatured mais pour les promos).

J'ai pris ce module et j'ai juste adapté le hook (home) sur mon hook (homeright) et c'est cette modification là qui supprime toutes les pages cms....vraiment super bizarre comme effet de bord....

voici donc le code php du module modifié (j'ai simplement remplacé home par homeright:))

 

<?php
/* Module Prestashop HomeSpecials
* Copyright Prestacrea
* Author: Prestacrea
* Website: http://www.prestacrea.com */
class HomeSpecials extends Module
{
function __construct()
{
$this->name = 'homespecials';
$this->tab = 'PRESTACREA - Modules';
$this->version = '2.0';
$this->author = 'PRESTACREA';
parent::__construct();

$this->displayName = ('PRESTACREA - Home Specials');
$this->description = $this->l('Adds promotions on your homepage');
}
function install()
{
if (!parent::install()
OR !$this->registerHook('homeright')
OR !Configuration::updateValue('HOME_SPECIALS_NBR', 4)
OR !Configuration::updateValue('HOME_SPECIALS_RANDOM', 1))
return false;
return true;
}
function uninstall()
{
if (!parent::uninstall()
OR !Configuration::deleteByName('HOME_SPECIALS_NBR')
OR !Configuration::deleteByName('HOME_SPECIALS_RANDOM'))
return false;
return true;
}
function getContent()
{
$this->_html = '<h2>'.$this->displayName.'</h2>';
if (Tools::isSubmit('submitHomeSpecials'))
{
$nbr = intval(Tools::getValue('nbr'));
$ran = intval(Tools::getValue('random'));
if (!$nbr OR $nbr <= 0 OR !Validate::isInt($nbr))
$this->_html = $this->displayError($this->l('Invalid number of products'));
else
{
Configuration::updateValue('HOME_SPECIALS_NBR', $nbr);
Configuration::updateValue('HOME_SPECIALS_RANDOM', $ran);
$this->_html = $this->displayConfirmation($this->l('Settings updated'));
}
}
$this->displayForm();
return $this->_html;
}
function displayForm()
{
$this->_html.= '
<form action="'.$_SERVER['REQUEST_URI'].'" method="post">
<fieldset><legend><img src="'.$this->_path.'logo.gif"/>'.$this->l('SETTINGS').'</legend>
<label style="padding:0">'.$this->l('Products displayed').'</label>
<div class="margin-form">
<input type="text" size="5" name="nbr" value="'.Configuration::get('HOME_SPECIALS_NBR').'" />
<p>'.$this->l('Set the number of products displayed').'</p>
</div>
<label style="padding:0">'.$this->l('Random display').'</label>
<div class="margin-form">
<select name="random" id="random" style="width:60px">
<option value="1" '.(Configuration::get('HOME_SPECIALS_RANDOM') == 1 ? 'selected' : '').'>'.$this->l('Yes').'</option>
<option value="0" '.(Configuration::get('HOME_SPECIALS_RANDOM') == 0 ? 'selected' : '').'>'.$this->l('No').'</option>
</select>
<p>'.$this->l('Set whether the display is made randomly or not').'</p>
</div>
<div class="margin-form"><input type="submit" name="submitHomeSpecials" value="'.$this->l('Update').'" class="button" style="width:150px"/></div>
</fieldset>
</form>';
}
function hookhomeright($params)
{
global $smarty, $cookie;
  $category = new Category(1);
  $num = intval(Configuration::get('HOME_SPECIALS_NBR'));
$rand = intval(Configuration::get('HOME_SPECIALS_RANDOM'));
if ($rand == 1) {
  $products = Product::getPricesDrop(intval($cookie->id_lang), 0, 100);
if ( $products )
{
shuffle($products);
array_slice($products, ($num ? $num : 10));
}
}
else
{
  $products = Product::getPricesDrop(intval($cookie->id_lang), NULL - 0, (intval($num ? $num : 4)), false, NULL, NULL);
}   
$smarty->assign(array(
'allow_buy_when_out_of_stock' => Configuration::get('PS_ORDER_OUT_OF_STOCK', false),
'max_quantity_to_allow_display' => Configuration::get('PS_LAST_QTIES'),
'category' => $category,
'products' => $products,
'currency' => new Currency(intval($params['cart']->id_currency)),
'lang' => Language::getIsoById(intval($params['cookie']->id_lang)),
'productNumber' => sizeof($products),
'homeSize' => Image::getSize('home'),
'num' => $num,
'ps_version' => _PS_VERSION_));
return $this->display(__FILE__, 'homespecials.tpl');
}
}
?>

 

Personnalement je ne vois pas trop ou est le probléme.

Sinon connaisez vous un bon module qui pourrai remplir la même fonction ?

Merci à tous !

Cordialement

Link to comment
Share on other sites

  • 1 month later...
  • 1 year later...

Même chose chez moi, Homespecial plantait les pages module parce que je l'avais acroché a un hook personalisé, je l'ai basculer sur le hook classic de Homepage et les pages cms remarche (PRESTACREA homespecial, qui n'est peut etre pas le réelle module homespecial)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...