Configuration du widget Magento 1 dans le backend - comment puis-je monter

11

J'ai une configuration de widget sur toutes les pages de catégorie via le backend -> CMS -> Widgets

Maintenant, lorsque j'utilise cette méthode, je sélectionne un bloc pour les pages de catégorie et le bloc s'affiche bien. Il se trouve au bas de toutes les autres informations dans la colonne de gauche.

Mais comment déplacer le bloc vers le haut? (ci-dessus en couches, etc.) ...

L'alternative est d'utiliser local.xml, que je ne préfère pas + elle apparaît également sur TOUS mes sites Web qui utilisent le même thème.

snh_nl
la source
3
Essayez peut-être d'utiliser le custom layout updateschamp de la catégorie pour ajouter le bloc et utiliser before=""ou after=""pour le positionner.
Rick Kuipers

Réponses:

12

Le problème est que Magento n'a pas de conteneur de widgets en haut de la colonne de gauche. Vous pouvez créer un tel conteneur en deux étapes:

  1. Créez votre conteneur de blocs de widgets dans un fichier local.xml :

    <layout>
       <!-- category pages with layered navigation -->
       <catalog_category_layered>
            <update handle="custom_top_container" />
       </catalog_category_layered>
       <!-- category pages without layered navigation -->
       <catalog_category_default>
            <update handle="custom_top_container" />
       </catalog_category_default>
       <!-- custom block container on that page -->
       <custom_top_container>
            <reference name="left">
               <block name="left_top" type="core/text_list" before="-" translate="label">
                    <label>Left Column Top</label>
               </block>
            <reference>
       </custom_top_container>
    </layout>
    

    Dans l'exemple suivant catalog_category_default et catalog_category_layered sont les descripteurs des pages de catégorie et le descripteur custom_top_container est inclus dans ces pages par la mise à jour des instructions de disposition. Le nouveau bloc left_top est un type de Mage_Core_Block_Text_List , qui montre la sortie concaténée des blocs enfants qui lui sont affectés, il sera donc vide si aucun widget ne lui est ajouté. Maintenant, lorsque la mise en page est prête pour la configuration du widget, vérifiez l'étape suivante.

  2. Créez un fichier widget.xml dans le répertoire etc de votre thème (si vous ne souhaitez pas conserver cette configuration du thème que vous étendez, vous devez le copier de ce thème dans le vôtre). Ce widget.xml devrait contenir des informations supplémentaires pour que Magento sache quels widgets prennent en charge votre conteneur nouvellement créé:

    <widgets>
        <[widget_id]>
            <supported_blocks>
                <left_column_top>
                    <block_name>left_top</block_name>
                </left_column_top>
             </supported_blocks>
        </[widget_id]>
    </widgets>
    

    Ce fichier de configuration permet à Magento de savoir quels blocs peuvent être utilisés pour récupérer d'éventuels conteneurs dans le panneau d'administration.

Sow, vous pouvez aller dans le panneau d'administration et choisir votre conteneur en haut de la colonne de gauche pour la mise à jour de la disposition des widgets.

Ivan Chepurnyi
la source
Merci Ivan. Et myabe, la meilleure façon - si nous modifions local.xml de toute façon - est d'appeler aussi immédiatement le bloc CMS (seulement une petite image qui était destinée en haut à gauche)
snh_nl
2

Vous pouvez essayer d'appeler dans ce bloc en utilisant

<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('BLOCK_ID_HERE')->toHtml() ?>

Insérez le code ci-dessus dans:

frontend / default / YOURTHEME / template / catalogue / navigation / sidebar.phtml

au-dessus du code qui affiche le menu du catalogue.

Pour l'empêcher de s'afficher sur plusieurs sites Web, utilisez différents thèmes par site Web.

Thomas Mongan
la source