Forums fragento
Accueilvue en cascadeRèglesAide
Bienvenue, Invité
Merci de vous identifier ou de vous inscrire.    Mot de passe perdu?
[TUTO] Gestion de la homepage (1 lecteur(s)) (1) Invité(s)
Aller en bas Répondre
SUJET: [TUTO] Gestion de la homepage
#3688
Gabriiiel (Modérateur)
Modérateur
Messages: 954
graph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
[TUTO] Gestion de la homepage Il y a 4 Mois, 2 Semaines Karma: 19  
Bonsoir,

Quelques informations sur la présentation de sa homepage notamment pour ce qui est de l'affichage de produits

Je conseillerais de gérer la homepage uniquement avec les fichiers .phtml que l'on y inclus. Cela permet d'avoir une homepage plus dynamique, et donc, à priori, qui nécessitera moins de mise à jour.

I) Comment afficher des produits sur la homepage

Il existe un bug au niveau de la gestion de block avec Magento, qui fait le code suivant :

Code :
{{block type="catalog/product_list" category_id="1" template="catalog/product/list.phtml"}} {{block type="catalog/product_list" category_id="2" template="catalog/product/list.phtml"}}
... résulte en un double affichage des produits de la catégorie 1 ! Une solution consiste à : - gérer sa homepage à travers des .phtml - insérer un petit bout de code qui permet de résoudre le bug. Mettons que nous avons deux catégories différentes, ayant pour ID les numéros 1 et 2, et pour lesquelles nous voulons afficher des produits en page d'accueil. 1) Créer le(s) .phtml Vous pouvez utiliser le phtml nommé "list", situé dans app\design\frontend\NOM_DE_VOTRE_INTERFACE\NOM_DE_VOTRE_THEME\template\catalog\product. Avantage : rapide Inconvénient : vous ne pouvez pas gérer l'affichage niveau homepage sans que cela change l'affichage de la liste de produits Pour cela je conseille de créer, dans votre dossier de templates, un nouveau dossier "homepage", et d'y placer une copie de list.phtml, que vous renommerez "homepage" ou autre nom de fichier explicite Ce nouveau "list.phtml" sera alors à modifier pour avoir un affichage correct sur votre homepage. Si vous avez plusieurs catégories de produits à afficher, dans le sens de catégorie "commerciale" (= des produits que l'on va devoir présenter différemment, plutôt avec telle information, plutôt avec une autre), vous pouvez créer encore un nouveau phtml, toujours à placer dans le répertoire homepage. Toujours dans l'idée de pouvoir gérer au mieux l'apparence de la page d'accueil... 2) Le bout de code "magique" Il permet de remettre la variable à "NULL" ce qui empêche qu'un block prenne l'ID d'un autre. <?php Mage::getSingleton('catalog/layer')->setData("product_collection",NULL); $this->_productCollection = null; $_productCollection=$this->getLoadedProductCollection(); ?> Ce bout de code est à placer tout en haut de votre fichier .phtml (que ce soit list.phtml, homepage.phtml, il doit s'agir du .phtml qui gère l'affichage des produits sur votre page d'accueil ) 3) La page statique Pour afficher les produits des 2 catégories il faudra insérer dans le contenu de la homepage ce code :
Code :
{{block type="catalog/product_list" category_id="1" template="CHEMIN_DE_VOTRE_PHTML/VOTRE_PHTML.phtml"}} {{block type="catalog/product_list" category_id="2" template="CHEMIN_DE_VOTRE_PHTML/VOTRE_PHTML.phtml"}}
Ce qui peut donner par exemple :
Code :
{{block type="catalog/product_list" category_id="1" template="catalog/product/list.phtml"}} {{block type="catalog/product_list" category_id="2" template="catalog/product/list.phtml"}}
Ou si vous avez utilisé des .phtml différents :
Code :
{{block type="catalog/product_list" category_id="1" template="homepage/cat1.phtml"}} {{block type="catalog/product_list" category_id="2" template="homepage/cat2.phtml"}}
Et voilà vous aurez une homepage sans bug II) Inclure des "infoboxes statiques" dans sa page d'accueil C'est très simple. 1) Créer le .phtml à inclure dans l'infoboxe statique Disons que vous souhaitez afficher sur votre page d'accueil un bloc où seraient affichées, de manière aléatoire, des images de vos produits avec un lien menant à la page du produit affiché. Il s'agirait alors de créer un .phtml, dans le dossier template/homepage, qui gererait cette affichage aléatoire. 2) Créer l'infoboxe statique et y inclure un appel du .phtml Créez votre infoboxe statique, nommée par exemple "affichage-produits". Donnez lui un titre sans espace, et un identifiant égal au titre. Activez-la, associez-la à la Vue Magasin souhaitée (ou à tout le Site Web), et insérez en contenu :
Code :
{{block type=core/template template=homepage/affichage-produits.phtml}}
Sauvegardez. 3) Afficher le bloc statique sur votre homepage Editez votre homepage, et dans l'onglet de gauche ("Design Personnalisé" ), insérez le code suivant : <reference name="root"> <block type="cms/block" name="affichage-produits" as="affichage-produits"> <action method="setBlockId"><id>affichage-produits</id></action> </block> </reference> Cela le placera... nul part pour l'instant . Sauvegardez et passez à l'étape 4. 4) Créez un nouveau .phtml de gestion de la homepage Les pages Magento sont gérées grâce à des .phtml "généraux". A savoir : - 1column.phtml - 2columns-left.phtml - 2columns-right.phtml - 3columns.phtml La homepage étant une page particulière, il convient de créer un template spéciale, unique. Vous pouvez le placer dans le même répertoire que ces templates généraux, c'est à dire dans le dossier "template/page". On aurait ainsi : template/page/homepage.phtml En guise de contenu, copiez le .phtml général de votre choix. Si votre homepage doit avoir 3 colonnes, copiez le .phtml "3columns.phtml" Mettons que vous voulez afficher votre bloc qui affiche aléatoirement les images de vos produits sur la doite. Repérez dans votre nouveau .phtml le passage suivant :
Code :
<div class="col-right side-col">
Et insérez-y :
Code :
<?=$this->getChildHtml('affichage-produits')?>
Attention, la place à laquelle vous ajoutez ce code détermine la place d'apparition de votre bloc. Si vous souhaitez que votre bloc apparaisse à gauche, placez le dans la division commencant par :
Code :
<div class="col-left side-col">
Etc. Sauvegardez. 5) Faites un petit module qui vous permettra de choisir ce nouveau template dans la liste déroulante des templates existants Créez un .XML nommé "Mage_Templates.xml" avec ce contenu :
Code :
<config> <modules> <Mage_Templates> <active>true</active> <codePool>local</codePool> </Mage_Templates> </modules> </config>
Placez-le dans app/etc/modules. Créez ensuite un .XML nommé "config.xml" avec ce contenu :
Code :
<config> <global> <cms> <layouts> <new_template1> <label>Homepage</label> <template>page/homepage.phtml</template> </new_template1> </layouts> </cms> </global> </config>
Attention : le code placé entre les balises <template></template> peut varier selon ce que vous avez choisi de faire Incluez ce .xml dans un dossier nommé "etc", que vous placerez lui-même dans un dossier nommé "Templates". Placez ensuite ce dossier "Templates" dans app/code/local/Mage/ Vous aurez au final app/code/local/Mage/Templates/etc/config.xml Cette manipulation permet à Magento de trouver ce "module" qui est considéré comme extension locale. 6) Au final Retournez sur l'édition de votre homepage. Dans la liste déroulante vous trouverez votre template "homepage". Sélectionnez-le, et vous verrez les changements... III) Annexes Quelques snippets de code qui peuvent aider. Ils sont à placer dans la section "Design personnalisé" de la page que vous souhaitez mettre à jour au niveau de son layout. Retirer le bloc de comparaison de produit se trouvant à gauche
Code :
<reference name="left"> <action method="unsetChild"><alias>catalog.compare.sidebar</alias></action> </reference>
Retirer le bloc panier se trouvant à droite
Code :
<reference name="right"> <action method="unsetChild"><alias>cart_sidebar</alias></action> </reference>
Voilà. Je reconnais que c'est assez laborieux dans l'état actuel des choses mais avec ces quelques informations on peut palier au manque de simplicité actuel du système... Gab'
 
 
Dernière édition: 19-08-2008 à 23:48 Par Gabriiiel.
  L'administrateur a désactivé l'accès public en écriture.
#3691
Otaugames (Utilisateur)
Gold Boarder
Messages: 169
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Sexe: Masculin Sim Emporium Lieu: Troyes Date de naissance: 1986-06-28
Re:[TUTO] Gestion de la homepage Il y a 4 Mois, 2 Semaines Karma: 6  
Merci pour ce tuto très complet Gabriiiel !
 
  L'administrateur a désactivé l'accès public en écriture.
#3694
Max (Utilisateur)
Expert Boarder
Messages: 108
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Re:[TUTO] Gestion de la homepage Il y a 4 Mois, 2 Semaines Karma: 2  
merci Gabriiiel
 
  L'administrateur a désactivé l'accès public en écriture.
#3699
Arobanet (Utilisateur)
Fresh Boarder
Messages: 14
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Re:[TUTO] Gestion de la homepage Il y a 4 Mois, 2 Semaines Karma: 0  
Merci pour les conseils et pour ce tuto très instructif
 
  L'administrateur a désactivé l'accès public en écriture.
#3700
phy4me (Utilisateur)
Junior Boarder
Messages: 21
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Re:[TUTO] Gestion de la homepage Il y a 4 Mois, 2 Semaines Karma: 0  
Un excellent travail, Merci
 
  L'administrateur a désactivé l'accès public en écriture.
#3706
Gabriiiel (Modérateur)
Modérateur
Messages: 954
graph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Re:[TUTO] Gestion de la homepage Il y a 4 Mois, 2 Semaines Karma: 19  


N'hésitez pas si un point n'est pas clair où si j'ai oublié un élément car j'ai fais de mémoire xD

Mais normalement ca marche
 
  L'administrateur a désactivé l'accès public en écriture.
#3727
Jumentfolle (Utilisateur)
Expert Boarder
Messages: 157
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Re:[TUTO] Gestion de la homepage Il y a 4 Mois, 2 Semaines Karma: 0  
C'est ça tes 2/3 bidules? Impressionnant!
 
  L'administrateur a désactivé l'accès public en écriture.
#3864
zerax (Utilisateur)
Fresh Boarder
Messages: 6
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Re:[TUTO] Gestion de la homepage Il y a 4 Mois, 1 Semaine Karma: 0  
J'ai adopté la première solution pour afficher des produits sur la home.
Par contre vu que l'on place ces produits dans une certaine categorie et que le calcul de l'url du produit se fait par rapport a cette categorie on obtiens l'url de la categorie que l'on affiche sur la page d'accueil ( même alors que celle-ci est désactivée, normal pour ne pas que ca apparaisse dans le menu )

J'ai donc essayer de retracer le calcul de l'url du produit mais je bloque un peu la ...
En fait il ne faudrait modifier le calcul de l'url mais la categorie associée au produit lors du calcul de la collection de produits.

Vous auriez un indice sur la ou ca se fait ?
Merci
 
  L'administrateur a désactivé l'accès public en écriture.
Revenir en haut Répondre
Développé par FireBoardObtenir les derniers messages directement sur votre PC