Comment dois-je appeler un bloc dans un phtml plutôt qu'à travers une mise en page?
J'ai désactivé la mise en page de la liste de souhaits bloc:
<block type="catalog/product_view" name="product.info.addtoto" as="addtoto" template="catalog/product/view/addto.phtml"/>
Je veux maintenant appel de bloc dans la phtml au lieu de l'ajouter à une autre mise en page.
Comment puis-je l'appeler directement?
OriginalL'auteur Chris | 2011-04-26
Vous devez vous connecter pour publier un commentaire.
Tout Prattski est vrai que c'est une mauvaise forme (je suis upvoting en tant que tel), il y a eu des moments où le développement lorsque cela a été un précieux débogage technique, ou il fait de la différence de plusieurs heures de programmation. Dans cet esprit, c'est la mauvaise habitude façon de le faire:
L'utiliser avec parcimonie, voire pas du tout.
OriginalL'auteur Joseph Mastey
cela peut être utiliser n'importe où pour l'appel de blocs.
setSomeVariable($variable)
si le jeu peut être consulté danssomeblock.phtml
par$this->getSomeVariable();
désolé n'ai pas essayé celui-ci. mais dans createBlock le 3ème paramètre est
array $attribute
. vous pouvez regarder dans.OriginalL'auteur R T
Chris - Vous devriez toujours besoin d'appeler un bloc directement à partir d'un modèle. Ce serait une mauvaise habitude de la pratique ou à en obtenir. Trouver la bonne référence du modèle que vous voulez pour ajouter le bloc, et l'ajouter dans la mise en page xml. Ensuite, depuis le fichier de modèle, utilisation:
OriginalL'auteur Prattski
J'ai du mal avec ce pour les âges et a constaté que si vous voulez appeler un bloc à partir d'un fait totalement partie distincte de la mise en page, vous devez utiliser du code légèrement différent. Utilisation:
Au lieu de:
À l'aide de ce code, vous pouvez créer vos propres blocs de n'importe où ou de ramasser des blocs à partir des autres modules et de les mettre n'importe où.
OriginalL'auteur Charlie Tupman