Понимание блока и типа блока Magento

Я просто хочу понять значение

 

Я получил много ссылок от Google и многое понял об этом, но я все еще не могу понять формирование type="page/html" как сформировать тип для моего настраиваемого модуля.

Пожалуйста, объясни

 type="A/B" 

Дайте мне знать, откуда взялись эти A и B?

Aпсевдоним модуля. В этом случае page короткая для Mage_Page_Block (она определена в app/code/core/Mage/Page/etc/config.xml если вы хотите увидеть).

B – это имя classа относительно псевдонима, начальные буквы каждого слова капитализируются. В этом случае html становится Html и добавляется к разрешенному псевдониму, поэтому это Mage_Page_Block_Html . Вероятно, это можно найти в файле app/code/core/Mage/Page/Block/Html.php потому что имена classов переводятся непосредственно в местоположения Magento.

Если вы используете псевдоним модели вместо псевдонима блока, тогда вместо page будет Mage_Page_Model . То же самое происходит и для моделей ресурсов и помощников. Ваш собственный модуль должен будет определить их в своем конфиге, если у него есть блоки, модели и помощники.

Для получения дополнительной информации о типах блоков magento следуют некоторые встроенные типы блоков, которые широко используются в макете.

  1. core/template : этот блок отображает шаблон, определенный его атрибутом template . Большинство блоков, определенных в макете, имеют тип или подтип core/template .
  2. page/html : Это подтип core/template и определяет корневой блок. Все остальные блоки являются дочерними блоками этого блока.
  3. page/html_head : определяет раздел page/html_head HTML на странице, содержащий элементы для включения JavaScript, CSS и т. д.
  4. page/html_header : определяет заголовочную часть страницы, содержащую логотип сайта, верхние ссылки и т. д.
  5. page/template_links : этот блок используется для создания списка ссылок. Ссылки, видимые в нижнем колонтитуле и области заголовка, используют этот тип блока.
  6. core/text_list : некоторые блоки, такие как content , left , right и т. д., имеют тип core/text_list . Когда эти блоки визуализируются, все их дочерние блоки визуализируются автоматически без необходимости вызова метода getChildHtml() .
  7. page/html_wrapper : этот блок используется для создания блока-оболочки, который отображает дочерние блоки внутри HTML-тега, установленного в действие setHtmlTagName . Тег по умолчанию

    если элемент не задан.

  8. page/html_breadcrumbs : Этот блок определяет сухари на странице.
  9. page/html_footer : Определяет область page/html_footer колонтитула страницы, которая содержит ссылки page/html_footer колонтитула, сообщения об авторских правах и т. д.
  10. core/messages : этот блок отображает сообщения об ошибках / успехах / уведомлениях.
  11. page/switch : Этот блок может использоваться для переключателя языка или магазина.

Это список только используемых типов блоков. Существует много других типов блоков, которые используются в расширенных реализациях тем.

  

page является FrontendName, определенным в etc/config.xml html, является именем classа блока

подробнее:

в этом type(type="page/html") линии type(type="page/html") определяют имя classа блока, связанное с вашим template(template="example/view.phtml">) а имя является уникальным для каждого блока.

сначала увидеть структуру папок

приложение> местный> имена> имя_модуль> и т.д.> config.xml

мы устанавливаем FrontendName = 'mymodule'

app> local> namespace> modulename> Block > hello.php

в hello.php вы создали функцию

  class namespace_modulename_Block_Data extends Mage_Core_Block_Template { public function mydata() { $data = "Block is called"; return $data; } } 

и теперь перейдите на страницу размещения xml:

здесь mydata – это имя интерфейса

и теперь приходят к шаблону вашего шаблона

шаблон / пример / view.phtml страница

здесь вы можете напрямую вызвать функцию mydata ()

как

 
mydata(); ?>

теперь вы можете получить свой вывод в браузере «Блок называется»

я не знаю о типах «B», но «A» ссылается на ваш тег имени модуля в файле config.xml в файле config.xml:

  

Нет, ты не ошибаешься. Но "" может быть запутанным. Давайте поясним: как было сказано выше, это псевдоним, состоящий из двух частей: первая часть («А») – это псевдоним, который вы определяете для classов вашего модуля в config.xml вашего модуля, второй – путь относительно значения узла. Они вместе («A» + капитализированный «B») будут переведены на имя classа, используя первую часть (значение узла «A») точно так же, как вы ее определяете (смотрите верхний / нижний регистр, если вы не хотите часов страдания), а вторая часть капитализируется после каждого подчеркивания. Итак, начните с примера A / B с помощью блока и этой конфигурации:

  ...   Vendor_Module_Block   ...  

Во время выполнения A/B разрешено конфигурацией Magento для Vendor_Module_Block_B которая затем включается автозагрузкой по следующему пути: public/app/local/Vendor/Module/Block/B.php . Чтобы лучше понять, я советую вам взглянуть на Mage_Core_Model_Config::getGroupedClassName() , Mage_Core_Model_Config::getModelInstance() и Varien_Autoload::autoload() .

Я не знаю типа «B», но «A» ссылается на ваш тег имени модуля в файле config.xml

Пример в файле config.xml:

  

nb: Надеюсь, я не ошибаюсь ..

Давайте будем гением компьютера.