Question

J'ai récemment créé une variable personnalisée nommée storecount - qui je vais être en programmant l'augmentation pour chaque magasin, qui est ajouté à mon store locator plugin.

Je voudrais montrer dans divers endroits, y compris les produits et les descriptions de catégorie alors, quand nous ne ajouter un nouveau magasin, nous ne sommes pas à trouver toutes les occurrences du magasin comte et augmenter manuellement par 1.

À l'aide de {{customVar code=storecount}} ne fonctionne pas dans la catégorie des descriptions.Est-il possible que je peux obtenir cette variable sans le piratage de la base Magento pour pièces?

Était-ce utile?

La solution

La façon la plus simple de le faire est d'utiliser le même modèle de processeur pour la description de la catégorie tel qu'il est utilisé pour les blocs cms et les pages de contenu.L'une à partir du widget module.
Pour cela, vous avez besoin d'une extension.Appelons ça de la StackExchange_Catalog.
Vous aurez besoin des fichiers suivants.

app/etc/modules/StackExchange_Catalog.xml - le dossier de déclaration

<?xml version="1.0"?>
<config>
    <modules>
        <StackExchange_Catalog>
            <active>true</active>
            <codePool>local</codePool>
            <depends>
                <Mage_Catalog />
                <Mage_Cms />
                <Mage_Widget />
            </depends>
        </StackExchange_Catalog>
    </modules>
</config>

app/code/local/StackExchange/Catalog/etc/config.xml - le fichier de configuration

<?xml version="1.0"?>
<config>
    <global>
        <catalog>
             <content>
                <tempate_filter>widget/template_filter</tempate_filter>
            </content>
        </catalog>
    </global>
</config>

effacer la mémoire cache et essayez à nouveau.

Autres conseils

Sans le piratage de base Magento, oui;sans code, pas de.

Vous pouvez écrire un observateur à l'écoute de la catalog_category_load_after de l'événement et de manipuler la description de la catégorie là.

/Edit:Lors de la catégorie avec la modification de la description est enregistré, la variable personnalisée sera également sauvé, si ce n'est pas une bonne solution.

Une autre façon serait d'ajouter votre storecount variable dans un fichier de modèle avec des:

// To get the TEXT value of the custom variable:
Mage::getModel('core/variable')->setStoreId(Mage::app()->getStore()->getId())->loadByCode('custom_variable_code')->getValue('text');

// To get the HTML value of the custom variable:
Mage::getModel('core/variable')->setStoreId(Mage::app()->getStore()->getId())->loadByCode('custom_variable_code')->getValue('html');

Si vous vous demandez quel modèle, tourner sur Modèle De Chemin De Conseils et vous devriez être capable de trouver l'endroit où l'ajouter dans un fichier de modèle.Ne pas remplacer un modèle de base, le copier dans votre thème répertoire, pour en faire une copie quelque part, comme app/design/frontend/[Your Design Package]/[Your Theme]/template/catalog/category/view.phtml.Si vous ne suivez pas cette pratique, vous allez perdre votre travail lorsque vous mettez à niveau Magento.

C'est probablement une meilleure pratique de créer des blocs CMS et de l'ajouter à vos fichiers de modèle de sorte qu'il est plus facile de modifier et désactiver.

créez votre CMS bloc avec votre contenu, y compris {{customVar code=storecount}}et d'ajouter où vous en avez besoin dans vos fichiers de modèle avec:

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

Mise à JOUR Juste eu un bon oeil à Marius réponse - sa solution semble très soigné et ajoute la constitutionnalité vous avez besoin de Magento.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top