Jump to content

[Résolu] Impossible de changer le lien d une image


Recommended Posts

J'ai essayé de mettre le lien direct : ...com/category.php?id_category=7 mais j'ai un message: "01.produit introuvable".

Voici l'adresse du site sur lequel je bosse:http://www.lesvinsdedionysos.com
Je voudrais que les photos de la rubrique "produits phares", au centre, pointent vers les catégories dans l'arbre de la colonne de gauche: "vins rouges, vins blancs, vins rosés"

J'ai essayé d'assigner les mêmes id_product et id_category dans la base de donnée mais c'est impossible de "dupliquer" 2 items.

N'y a-il aucun moyen de "forcer" un lien dans un page php?

Link to comment
Share on other sites

C'est bon j'ai trouvé comme un grand:
Dans classes/Link.php, il suffit de remplacer ce qui'il y a apres GetproductLink par:

($id_category, $alias = NULL, $id_lang = NULL)
{
if (is_object($id_category))
return ($this->allow == 1) ? (_PS_BASE_URL_.__PS_BASE_URI__.$this->getLangLink((int)($id_lang)).(int)($id_category->id).'-'.$id_category->link_rewrite) :
(_PS_BASE_URL_.__PS_BASE_URI__.'category.php?id_category='.(int)($id_category->id));
if ($alias)
return ($this->allow == 1) ? (_PS_BASE_URL_.__PS_BASE_URI__.$this->getLangLink((int)($id_lang)).(int)($id_category).'-'.$alias) :
(_PS_BASE_URL_.__PS_BASE_URI__.'category.php?id_category='.(int)($id_category));
return _PS_BASE_URL_.__PS_BASE_URI__.'category.php?id_category='.(int)($id_category);
}

et là les images des produits pointent vers les categories des produits.
Biensur il faut changer les id_category dans la base de donnee pour que les chiffres correspondent.
Bye et merci pour le coup de main ;)
De rien :)

Link to comment
Share on other sites

($id_category, $alias = NULL, $id_lang = NULL)
   {
       if (is_object($id_category))
           return ($this->allow == 1) ? (_PS_BASE_URL_.__PS_BASE_URI__.$this->getLangLink((int)($id_lang)).(int)($id_category->id).'-'.$id_category->link_rewrite) :
           (_PS_BASE_URL_.__PS_BASE_URI__.'category.php?id_category='.(int)($id_category->id));
       if ($alias)
           return ($this->allow == 1) ? (_PS_BASE_URL_.__PS_BASE_URI__.$this->getLangLink((int)($id_lang)).(int)($id_category).'-'.$alias) :
           (_PS_BASE_URL_.__PS_BASE_URI__.'category.php?id_category='.(int)($id_category));
       return _PS_BASE_URL_.__PS_BASE_URI__.'category.php?id_category='.(int)($id_category);
   }



Bonjour,

juste une mise en forme que les gen puisse lire votre participation.

Je précise juste que ce genre de pratique est à proscrire et qu'il est préférable de modifier le module plutôt que un fichier coeur de Prestashop

Cr si je comprends bien votre démarche, maintenant tous les liens produits de la boutique revoient sur la catégorie ????
Link to comment
Share on other sites

c'est la solution que j'ai trouvée pour me créer un pseudo bloc categorie en milieu de page...je n'ai pas pu avoir de reponse de personne + experimentees que moi donc j'ai bricolé ^^'.
J'aurais effectivement préféré cibler uniquement les liens des images du bloc produits phares mais je n'ai pas réussi

Link to comment
Share on other sites

Et pourquoi ne pas simplement changer le lien au lieu d'utiliser getproduct, n'y aurait il pas un getcategorylink ?

mais pour cela il faut modifier le php du module pour récupérer les catégorie et non les produits.


Là ce que vous avez fait est très étrange. arrivez vous encore à allez sur les pages produits ?

Link to comment
Share on other sites

Le module se nomme "homefeatured.php" il comprend ceci:



Je change le

{$product.name|truncate:27:'...'|escape:'htmlall':'UTF-8'}
{$product.description_short|strip_tags|truncate:130:'...'}
getImageLink($product.link_rewrite, $product.id_image, 'home')}" height="{$homeSize.height}" width="{$homeSize.width}" alt="{$product.name|escape:html:'UTF-8'}" />
Link to comment
Share on other sites

Pouvez vous me dire ce que je dois changer SVP cela m 'aidera à comprendre le fonctionnement du site:

if (!defined('_CAN_LOAD_FILES_'))
   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 = ''.$this->displayName.'';
       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('
', $errors));
           else
               $output .= $this->displayConfirmation($this->l('Settings updated'));
       }
       return $output.$this->displayForm();
   }

   public function displayForm()
   {
       $output = '
       <form action="'.$_SERVER['REQUEST_URI'].'" method="post">
_path.'logo.gif" alt="" title="" />'.$this->l('Settings').'

'.$this->l('In order to add products to your homepage, just add them to the "home" category.').'

'.$this->l('Number of products displayed').'

                   <input type="text" size="5" name="nbr" value="'.Tools::getValue('nbr', (int)(Configuration::get('HOME_FEATURED_NBR'))).'" />

'.$this->l('The number of products displayed on homepage (default: 10).').'


<input type="submit" name="submitHomeFeatured" value="'.$this->l('Save').'" class="button" />

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

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