Jump to content

Position dans module produits phares


Recommended Posts

Bonjour,

 

Sur ma page d'accueil j'ai un module pour mes produits phares (différent du natif prestashop) cependant celui-ci ne prend pas en compte la préférence de tri des produits par position.

 

Les produits restent bloqués sur le tri par le numéro des produits.

 

Quelqu'un aurait'il la ligne de code à insérer dans mon tpl pour prendre en compte la position des produits?

 

Je vous remercie par avance pour ce petit coup de pouce ;)

Link to comment
Share on other sites

merci pour votre réponse, voici le php du module concerné

 

if (!defined('_PS_VERSION_'))
exit;
class HomeFeatured extends Module
{
private $_html = '';
private $_postErrors = array();
function __construct()
{
 $this->name = 'homefeatured';
 $this->tab = 'front_office_features';
 $this->version = '0.9';
 $this->author = 'PrestaShop';
 $this->need_instance = 0;
 parent::__construct();

 $this->displayName = $this->l('Featured Products on the homepage');
 $this->description = $this->l('Displays Featured Products in the middle of your homepage.');
}
function install()
{
 if (!Configuration::updateValue('HOME_FEATURED_NBR', 8) OR !parent::install() OR !$this->registerHook('home'))
  return false;
 return true;
}
public function getContent()
{
 $output = '<h2>'.$this->displayName.'</h2>';
 if (Tools::isSubmit('submitHomeFeatured'))
 {
  $nbr = (int)(Tools::getValue('nbr'));
  if (!$nbr OR $nbr <= 0 OR !Validate::isInt($nbr))
$errors[] = $this->l('Invalid number of products');
  else
Configuration::updateValue('HOME_FEATURED_NBR', (int)($nbr));
  if (isset($errors) AND sizeof($errors))
$output .= $this->displayError(implode('<br />', $errors));
  else
$output .= $this->displayConfirmation($this->l('Settings updated'));
 }
 return $output.$this->displayForm();
}
public function displayForm()
{
 $output = '
 <form action="'.Tools::safeOutput($_SERVER['REQUEST_URI']).'" method="post">
  <fieldset><legend><img src="'.$this->_path.'logo.gif" alt="" title="" />'.$this->l('Settings').'</legend>
<p>'.$this->l('In order to add products to your homepage, just add them to the "home" category.').'</p><br />
<label>'.$this->l('Number of products displayed').'</label>
<div class="margin-form">
 <input type="text" size="5" name="nbr" value="'.Tools::safeOutput(Tools::getValue('nbr', (int)(Configuration::get('HOME_FEATURED_NBR')))).'" />
 <p class="clear">'.$this->l('The number of products displayed on homepage (default: 10).').'</p>

</div>
<center><input type="submit" name="submitHomeFeatured" value="'.$this->l('Save').'" class="button" /></center>
  </fieldset>
 </form>';
 return $output;
}
function hookHome($params)
{
 global $smarty;
 $category = new Category(1, Configuration::get('PS_LANG_DEFAULT'));
 $nb = (int)(Configuration::get('HOME_FEATURED_NBR'));
 $products = $category->getProducts((int)($params['cookie']->id_lang), 1, ($nb ? $nb : 10));
 $smarty->assign(array(
 'products' => $products,
 'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'),
 'homeSize' => Image::getSize('home')));
 return $this->display(__FILE__, 'homefeatured.tpl');
}
}

Link to comment
Share on other sites

Bonjour,

 

Normalement l'affichage doit déjà se faire par défaut en position ( par rapport au code source de la version 1.4.9)

 

Sinon vous pouvez essayer de modifier la ligne

$products = $category->getProducts((int)($params['cookie']->id_lang), 1, ($nb ? $nb : 10));

 

par

$products = $category->getProducts((int)($params['cookie']->id_lang), 1, ($nb ? $nb : 10),'position');

 

Si ça ne marche pas :

Là c'est dans la classe Category de Prestashop que ça se joue, regardez la méthode getProducts pour voir si il y a le paramètre optionnel $orderBy. Ca peut dépendre de votre version de Prestashop.

Link to comment
Share on other sites

Merci pour cette réponse,

 

J'ai testé en modifiant le php du module, ça ne fonctionne toujours pas.

 

Effectivement dans category je n'ai pas $orderby.

 

pourriez-vous me donner la ligne de code à insérer? mes connaissances sur le php sont extrèmement limitées ;)

 

Merci d'avance!

Link to comment
Share on other sites

Bonjour a tous pour ma part le module homefeatured refuse de centrer l'image du produit je n'arrive même pas a ouvrir les fichers .php .tpl donc je ne peut pas le modifier et je n'en trouve pas d'autres à telecharger je ne serais pas contre un coup de main.

 

Cordialement, Virtu.

 

http://www.universel-informatique.fr/

Edited by Virtu (see edit history)
Link to comment
Share on other sites

Bonjour a tous pour ma part le module homefeatured refuse de centrer l'image du produit je n'arrive même pas a ouvrir les fichers .php .tpl donc je ne peut pas le modifier et je n'en trouve pas d'autres à telecharger je ne serais pas contre un coup de main.

 

Bonjour Virtu,

Tu n'as pas d'accès ftp à ton site ? Si tu ne peux pas modifier les fichiers php, tpl ou css c'est plus que compliqué.

 

Pour 'Un coup de main' il faut des informations comme la version de ton Prestashop, l'origine de ton module s'il n'est pas standard, savoir si tu peux accéder aux fichiers, centrage par rapport à la hauteur, la largeur, etc...

Link to comment
Share on other sites

Voici le catégory.php

 

include(dirname(__FILE__).'/config/config.inc.php');
ControllerFactory::getController('CategoryController')->run();

 

 

Et le catégory.tpl

 

{include file="$tpl_dir./breadcrumb.tpl"}
{include file="$tpl_dir./errors.tpl"}
{if isset($category)}
{if $category->id AND $category->active}

 {if $scenes}
  <!-- Scenes -->
  {include file="$tpl_dir./scenes.tpl" scenes=$scenes}
 {else}
  <!-- Category image -->
  {if $category->id_image}
  <div class="align_center">
   <img src="{$link->getCatImageLink($category->link_rewrite, $category->id_image, 'category')}" alt="{$category->name|escape:'htmlall':'UTF-8'}" title="{$category->name|escape:'htmlall':'UTF-8'}" id="categoryImage" width="{$categorySize.width}" height="{$categorySize.height}" />
  </div>
  {/if}
 {/if}
 {if $category->description}
  <div class="cat_desc">{$category->description}</div>
 {/if}
 {if isset($subcategories)}
 <!-- Subcategories -->
 <div id="COLLECTIONS">
  <h3>{l s=' '}</h3>
  <ul class="inline_list">
  {foreach from=$subcategories item=subcategory}
   <li>
 <a href="{$link->getCategoryLink($subcategory.id_category, $subcategory.link_rewrite)|escape:'htmlall':'UTF-8'}" title="{$subcategory.name|escape:'htmlall':'UTF-8'}">
  {if $subcategory.id_image}
   <img src="{$link->getCatImageLink($subcategory.link_rewrite, $subcategory.id_image, 'medium')}" alt="" width="{$mediumSize.width}" height="{$mediumSize.height}" />
  {else}
   <img src="{$img_cat_dir}default-medium.jpg" alt="" width="{$mediumSize.width}" height="{$mediumSize.height}" />
  {/if}
 </a><br />
 <a href="{$link->getCategoryLink($subcategory.id_category, $subcategory.link_rewrite)|escape:'htmlall':'UTF-8'}">{$subcategory.name|escape:'htmlall':'UTF-8'}</a>
   </li>
  {/foreach}
  </ul>
  <br class="clear"/>
 </div>
 {/if}
 {if $products}
   {include file="$tpl_dir./product-sort.tpl"}
   {include file="$tpl_dir./product-list.tpl" products=$products}
   {include file="$tpl_dir./product-compare.tpl"}
   {include file="$tpl_dir./pagination.tpl"}
  {elseif !isset($subcategories)}
   <p class="warning">{l s='There are no products in this category.'}</p>
  {/if}
{elseif $category->id}
 <p class="warning">{l s='This category is currently unavailable.'}</p>
{/if}
{/if}

 

Merci encore!

Link to comment
Share on other sites

Bonjour Virtu,

Tu n'as pas d'accès ftp à ton site ? Si tu ne peux pas modifier les fichiers php, tpl ou css c'est plus que compliqué.

 

Pour 'Un coup de main' il faut des informations comme la version de ton Prestashop, l'origine de ton module s'il n'est pas standard, savoir si tu peux accéder aux fichiers, centrage par rapport à la hauteur, la largeur, etc...

 

Bonjour math_PHP

 

si si bien sur que j'ai un acces FTP manquerais plus que cela je ne peu juste pas ouvrir les fichier je crois que je ne dispose pas du logiciel pour le faire et ces vrais que j'ai pas pense a citer ma versoins de prestashop qui et

 

PrestaShop™ 1.4.9.0

 

en te remerciant

 

Cordialement, Virtu

 

www.universel-informatique.fr

Link to comment
Share on other sites

Ok bonne nouvelle, il n'y a rien a faire.

Par défaut les articles sont obligatoirement trié par position.

 

C'est peut être juste un renouvellement de cache qui ne se fait pas et qui t'affiche les anciennes positions.

 

Dans l'onglet 'Préférences/Performances force la compilation, désactive le cache, visualise les changements et remets les réglages comme avant.

 

Tu peux aussi éventuellement vider le dossier /tools/smarty/compile en sortant tous les xxxx.tpl.php

 

Cordialement

Link to comment
Share on other sites

Bonjour math_PHP

 

si si bien sur que j'ai un acces FTP manquerais plus que cela je ne peu juste pas ouvrir les fichier je crois que je ne dispose pas du logiciel pour le faire et ces vrais que j'ai pas pense a citer ma versoins de prestashop qui et

 

PrestaShop™ 1.4.9.0

 

en te remerciant

 

Cordialement, Virtu

 

www.universel-informatique.fr

 

En fait toi c'est le zoom au survol que tu veux "centré sur l'écran". Ton module n'est pas standard ou j'ai loupé quelque chose ?

 

Pour ouvrir un fichier tpl ou php prend notepad++ qui est gratuit.

Link to comment
Share on other sites

ok merci pour notepad++ , je ne sais pas si le module et standard mais mon probleme et que dans les produits phares j'ai l'image du produit qui ce decale du cadre tu peut le voir sur mon site

 

www.universel-informatique.fr

 

je trouve que cela n'ai pas presentable pour commencer les ventes cela ne fait pas trés sérieux

 

Virtu

 

je suis également sur TeamSpeak si tu souhaite nous rejoindre voilà l'adresse:

 

176.31.226.59:9987

Mot de passe: enclosure

Link to comment
Share on other sites

Sur ma page d'accueil j'ai un module pour mes produits phares (différent du natif prestashop) cependant celui-ci ne prend pas en compte la préférence de tri des produits par position.

 

Bonjour Saetine,

Il y a une solution, mais ce que tu nous montres c'est du code standard pas 'différent du natif'.

 

Peut etre qu'effectivement tu as un homefeatured différent, mais tu nous donne les codes du standard ?

 

On peut voir le site ? As tu d'autres éléments ?

 

Cordialement

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...