Je me demande comment vérifier qu'un bloc CMS particulier est actif ou non. p>
Jusqu'à présent, j'ai trouvé que le bloc CMS est Mage :: LOG (GET_CLASS (MAGE :: App () -> GetLayout () -> CreateBlock ('CMS / Bloc') -> SetBlockId ('Promo_space') P>
blockQuote>
Aucune des deux classes n'a de méthodes qui vérifieraient que le bloc est actif ou non. Comment puis-je le faire? P> Mage_cms_block_block code> Classe qui hérite de
Mage_CMS_block_abstract code> Classe P>
5 Réponses :
obtenu cela moi-même
j'ai créé une méthode isactive (identifiant, valeur) dans l'assistant "Block" dans le module local Mage / CMS. P>
Voici comment la méthode a l'air p> < Pré> xxx pré>
Paramètre $ attribut est le champ Table (bloc CMS) tel que "Identifiant" ou "Titre" et la valeur peut être le nom du bloc statique ou de l'identifiant lui-même. Les deux utilisaient pour filtrer le bloc statique particulier que vous êtes intéressé par p>
voici comment j'appelle l'assistant p> J'ai également mis à jour le fichier config.xml Fichier pour le bloc CMS pour lire mon nouvel assistant et ma méthode. P> J'espère que c'est utile. p> p>
Peut-être que c'est vieux, mais j'utilise une autre méthode qui fonctionne non seulement pour les blocs CMS, mais également pour tout autre bloc chargé sur la mise en page. Si vous devez vérifier si un bloc a été chargé:
if($this->getLayout()->getBlock('your_block_name')) //Do whatever you need here
Un meilleur moyen de le faire consiste à ajouter de l'observateur à cet événement: contrôleur_action_layout_generate_blocks_after, qui se produit juste après que Magento ait initialisé et généré des objets de blocs. Vous avez accès aux classes de mise en page et d'action et à tous les blocs générés avant que HTML soit rendu
Remplacez static_block_Identifier avec l'identifiant fort> que vous avez attribué à votre bloc statique CMS. P> mage :: getmodel ('cms / bloc') -> charge ("static_block_identifier ') -> getisactive () code> p>
Ce code fonctionne pour moi:
if ( $this->getLayout()->createBlock('cms/block')->setBlockId('YOUR-BLOCK-ID')->toHtml() !== '' ) {}