A
To moduł jest alias . W tym przypadku page
jest to skrót od Mage_Page_Block
(jest zdefiniowany w, app/code/core/Mage/Page/etc/config.xml
jeśli chcesz zobaczyć).
Jest B
to nazwa klasy w stosunku do aliasu, początkowe litery każdego słowa są pisane wielką literą. W tym przypadku html
staje się Html
i jest dołączane do rozwiązanego aliasu, więc tak jest Mage_Page_Block_Html
. Prawdopodobnie znajduje się to w pliku, app/code/core/Mage/Page/Block/Html.php
ponieważ nazwy klas są tłumaczone bezpośrednio na lokalizacje w Magento.
Gdybyś używał aliasu modelu zamiast aliasu blokowego page
, Mage_Page_Model
zamiast tego byłby . To samo dzieje się z modelami zasobów i pomocnikami. Twój własny moduł będzie musiał zdefiniować je w swojej konfiguracji, jeśli ma mieć bloki, modele i pomocniki.
Aby dowiedzieć się więcej o typach bloków Magento, poniżej przedstawiono kilka wbudowanych typów bloków, które są szeroko stosowane w układzie.
core/template
: Ten blok renderuje szablon zdefiniowany przez jegotemplate
atrybut. Większość bloków zdefiniowanych w układzie jest typu lub podtypucore/template
.page/html
: Jest to podtypcore/template
i definiuje blok główny. Wszystkie inne bloki są blokami potomnymi tego bloku.page/html_head
: Definiuje sekcję nagłówka HTML strony, która zawiera elementy obejmujące JavaScript, CSS itp.page/html_header
: Definiuje część nagłówkową strony, która zawiera logo witryny, górne linki itp.page/template_links
: Ten blok służy do tworzenia listy linków. Linki widoczne w stopce i obszarze nagłówka używają tego typu bloku.core/text_list
: Niektóre bloki, takie jakcontent
,left
,right
itp są typucore/text_list
. Gdy te bloki są renderowane, wszystkie ich bloki podrzędne są renderowane automatycznie bez konieczności wywoływaniagetChildHtml()
metody.page/html_wrapper
: Ten blok jest używany do tworzenia bloku opakowującego, który renderuje swoje bloki potomne wewnątrz znacznika HTML ustawionego przez akcjęsetHtmlTagName
. Domyślnym znacznikiem jest to,<div>
że żaden element nie jest ustawiony.page/html_breadcrumbs
: Ten blok definiuje bułkę tartą na stronie.page/html_footer
: Definiuje obszar stopki strony, który zawiera linki w stopce, informacje o prawach autorskich itp.core/messages
: Ten blok wyświetla komunikaty o błędach / sukcesach / powiadomieniach.page/switch
: Ten blok może być używany do przełączania języka lub sklepu.To jest lista tylko powszechnie używanych typów bloków. Istnieje wiele innych typów bloków, które są używane w zaawansowanych implementacjach motywów.
źródło
strona to nazwa frontendu zdefiniowana w
etc/config.xml
pliku. html to nazwa klasy blokuwięcej szczegółów:
w tej linii
type(type="page/html")
zdefiniuj nazwę klasy bloku związaną z twoim,template(template="example/view.phtml">)
a nazwa jest unikalna dla każdego bloku.najpierw zobacz strukturę folderów
ustawiliśmy
FrontendName = 'mymodule'
w hello.php utworzyłeś funkcję
a teraz przejdź do strony XML układu:
<block type="mymodule/data" name="xyz" template="example/view.phtml">
tutaj moje dane to nazwa frontendua teraz przejdź do szablonu
tutaj możesz bezpośrednio wywołać funkcję mydata ()
lubić
teraz możesz uzyskać wynik w przeglądarce „Nazywa się blok”
źródło
Nie, nie mylisz się. Ale
"<!-- script -->"
może to być mylące. Wyjaśnijmy: zgodnie z powyższymi odpowiedziami jest to alias, który składał się z dwóch części, pierwsza część („A”) jest aliasem, który definiujesz dla klas swojego modułu w swoim moduleconfig.xml
, druga to ścieżka względna wartość węzła. Te razem („A” + wielkie litery „B”) zostaną przetłumaczone na nazwę klasy, używając pierwszej części (wartość węzła „A”) dokładnie tak, jak ją zdefiniujesz (uważaj na duże / małe litery, jeśli nie chcesz godzin cierpienia), a druga część jest zapisywana wielką literą po każdym podkreśleniu. Więc zacznij od przykładu A / B z blokiem i tą konfiguracją:W czasie wykonywania
A/B
byłoby rozwiązane przez config Magento naVendor_Module_Block_B
które następnie zawarte przez autoload z następującej ścieżce:public/app/local/Vendor/Module/Block/B.php
. Aby lepiej zrozumieć, radzę przyjrzeć sięMage_Core_Model_Config::getGroupedClassName()
,Mage_Core_Model_Config::getModelInstance()
iVarien_Autoload::autoload()
.źródło
Nie wiem o typie „B”, ale „A” odnosi się do tagu nazwy modułu w pliku config.xml
Przykład w pliku config.xml:
uwaga: mam nadzieję, że się nie mylę ..
źródło