Eu só quero entender o significado de
<block type="page/html" name="root" output="toHtml" template="example/view.phtml">
Recebi muitas referências do Google e entendi muitas coisas sobre isso, mas ainda não consigo entender a formação de type="page/html"
como formar um tipo para meu módulo personalizado.
Por favor explique
type="A/B"
Deixe-me saber de onde vêm esses A e B?
Para entender mais sobre os tipos de blocos magento, a seguir estão alguns tipos de blocos integrados que são amplamente usados no layout.
core/template
: Este bloco renderiza um template definido por seutemplate
atributo. A maioria dos blocos definidos no layout são do tipo ou subtipo decore/template
.page/html
: Este é um subtipo decore/template
e define o bloco raiz. Todos os outros blocos são blocos filhos deste bloco.page/html_head
: Define a seção do cabeçalho HTML da página que contém elementos para incluir JavaScript, CSS etc.page/html_header
: Define a parte do cabeçalho da página que contém o logotipo do site, links principais, etc.page/template_links
: Este bloco é usado para criar uma lista de links. Os links visíveis na área do rodapé e do cabeçalho usam este tipo de bloco.core/text_list
: Alguns blocoscontent
, comoleft
,right
etc. , são do tipocore/text_list
. Quando esses blocos são renderizados, todos os seus blocos filhos são renderizados automaticamente, sem a necessidade de chamar ogetChildHtml()
método.page/html_wrapper
: Este bloco é usado para criar um bloco wrapper que renderiza seus blocos filhos dentro de uma tag HTML definida pela açãosetHtmlTagName
. A tag padrão é<div>
se nenhum elemento for definido.page/html_breadcrumbs
: Este bloco define a localização atual da página.page/html_footer
: Define a área de rodapé da página que contém links de rodapé, mensagem de direitos autorais etc.core/messages
: Este bloco renderiza mensagens de erro / sucesso / aviso.page/switch
: Este bloco pode ser usado para o alternador de idioma ou loja.Esta é uma lista apenas dos tipos de blocos comumente usados. Existem muitos outros tipos de bloco que são usados em implementações de tema avançadas.
fonte
page é um FrontendName definido no
etc/config.xml
arquivo html é um nome de classe de blocomais detalhes:
nesta linha,
type(type="page/html")
defina o nome da classe do bloco relacionado ao seutemplate(template="example/view.phtml">)
e o nome é o único para cada bloco.primeiro veja a estrutura da pasta
montamos
FrontendName = 'mymodule'
em hello.php você criou uma função
e agora vá para a sua página xml de layout:
<block type="mymodule/data" name="xyz" template="example/view.phtml">
aqui mydata é o nome do frontende agora venha para o seu modelo
aqui você pode chamar diretamente a função mydata ()
gostar
agora você pode obter sua saída no navegador "Bloco é chamado"
fonte
Não, você não está errado. Mas
"<!-- script -->"
pode ser confuso. Vamos esclarecer: como as respostas acima indicadas, este é um alias, que consistia em duas partes, a primeira parte ("A") em si é o alias que você define para as classes do seu módulo em seu móduloconfig.xml
, o segundo é um caminho relativo ao valor do nó. Juntos ("A" + "B" maiúsculo) serão traduzidos para um nome de classe, usando a primeira parte (o valor do nó "A") exatamente como você o definiu (observe as letras maiúsculas / minúsculas se não quiser horas de sofrimento) e a segunda parte é maiúscula após cada sublinhado. Portanto, comece com o exemplo A / B com um bloco e esta configuração:Em tempo de execução
A/B
seria resolvido pela configuração Magento paraVendor_Module_Block_B
que então incluído pelo autoload do seguinte caminho:public/app/local/Vendor/Module/Block/B.php
. Para obter uma melhor compreensão, aconselho você a consultar oMage_Core_Model_Config::getGroupedClassName()
,Mage_Core_Model_Config::getModelInstance()
eVarien_Autoload::autoload()
.fonte
Não sei sobre o tipo "B", mas "A" se refere à tag de nome do módulo em config.xml
Um exemplo no arquivo config.xml:
nb: espero não estar errado ..
fonte