Le A
est d'un module l'alias . Dans ce cas, page
c'est l'abréviation de Mage_Page_Block
(il est défini dans app/code/core/Mage/Page/etc/config.xml
si vous voulez voir).
Le B
est le nom de la classe par rapport à l'alias, les lettres initiales de chaque mot sont en majuscules. Dans ce cas, html
devient Html
et est ajouté à l'alias résolu, il en est ainsi Mage_Page_Block_Html
. Cela se trouve probablement dans le fichier app/code/core/Mage/Page/Block/Html.php
car les noms de classe se traduisent directement par des emplacements dans Magento.
Si vous utilisiez un alias de modèle au lieu d'un alias de bloc, vous le page
seriez à la Mage_Page_Model
place. La même chose se produit également pour les modèles de ressources et les assistants. Votre propre module devra les définir dans sa configuration s'il veut avoir des blocs, des modèles et des helpers.
Pour en savoir plus sur les types de blocs magento, voici quelques types de blocs intégrés qui sont largement utilisés dans la mise en page.
core/template
: Ce bloc rend un modèle défini par sontemplate
attribut. La majorité des blocs définis dans la mise en page sont de type ou sous-type decore/template
.page/html
: Ceci est un sous-type decore/template
et définit le bloc racine. Tous les autres blocs sont des blocs enfants de ce bloc.page/html_head
: Définit la section d'en-tête HTML de la page qui contient des éléments pour inclure JavaScript, CSS, etc.page/html_header
: Définit la partie d'en-tête de la page qui contient le logo du site, les principaux liens, etc.page/template_links
: Ce bloc est utilisé pour créer une liste de liens. Les liens visibles dans la zone de pied de page et d'en-tête utilisent ce type de bloc.core/text_list
: Certains blocs commecontent
,left
,right
etc. sont de typecore/text_list
. Lorsque ces blocs sont rendus, tous leurs blocs enfants sont rendus automatiquement sans qu'il soit nécessaire d'appeler lagetChildHtml()
méthode.page/html_wrapper
: Ce bloc est utilisé pour créer un bloc wrapper qui restitue ses blocs enfants dans une balise HTML définie par l'actionsetHtmlTagName
. La balise par défaut est<div>
si aucun élément n'est défini.page/html_breadcrumbs
: Ce bloc définit le fil d'Ariane sur la page.page/html_footer
: Définit la zone de pied de page de la page qui contient des liens de pied de page, un message de copyright, etc.core/messages
: Ce bloc rend les messages d'erreur / de réussite / d'avis.page/switch
: Ce bloc peut être utilisé pour le sélecteur de langue ou de magasin.Il s'agit d'une liste des seuls types de blocs couramment utilisés. Il existe de nombreux autres types de blocs qui sont utilisés dans les implémentations de thème avancées.
la source
page est un FrontendName défini dans le
etc/config.xml
fichier html est un nom de classe de blocplus de détails:
dans cette ligne
type(type="page/html")
définissez le nom de la classe de bloc lié à votretemplate(template="example/view.phtml">)
et le nom est l'unique pour chaque bloc.voir d'abord la structure des dossiers
nous fixons
FrontendName = 'mymodule'
dans hello.php vous avez créé une fonction
et venez maintenant sur votre page xml de mise en page:
<block type="mymodule/data" name="xyz" template="example/view.phtml">
ici mydata est le nom du frontendet maintenant venez à votre modèle
ici vous pouvez appeler directement la fonction mydata ()
comme
maintenant vous pouvez obtenir votre sortie dans le navigateur "Le bloc est appelé"
la source
Non, tu n'as pas tort. Mais cela
"<!-- script -->"
peut être déroutant. Clarifions: comme les réponses ci-dessus l'ont indiqué, il s'agit d'un alias, qui se composait de deux parties, la première partie ("A") elle-même est l'alias que vous définissez pour les classes de votre module dans votre moduleconfig.xml
, la seconde est un chemin relatif au la valeur du nœud. Ceux-ci ensemble («A» + «B» en majuscule) seront traduits en un nom de classe, en utilisant la première partie (la valeur du nœud «A») exactement comme vous la définissez (surveillez les majuscules / minuscules si vous ne voulez pas d'heures de la souffrance) et la deuxième partie est en majuscule après chaque trait de soulignement. Alors, commencez par l'exemple A / B avec un bloc et cette configuration:En exécution
A/B
serait résolu par la config MagentoVendor_Module_Block_B
qui serait alors inclus par le chargement automatique du chemin suivant:public/app/local/Vendor/Module/Block/B.php
. Pour mieux comprendre, je vous conseille de jeter un oeil à laMage_Core_Model_Config::getGroupedClassName()
,Mage_Core_Model_Config::getModelInstance()
etVarien_Autoload::autoload()
.la source
Je ne connais pas le type "B", mais "A" fait référence à la balise de nom de votre module dans config.xml
Un exemple dans le fichier config.xml:
nb: j'espère ne pas me tromper ..
la source