Magento 2 - Jak mogę dodać niestandardowy plik szablonu do <head>?

9

W magento 1.x mogę dodać pliki css do głowy za pomocą pomocnika, takiego jak poniższy kod.

<reference name="head">
    <action method="addCss"><stylesheet helper="module/helperclass/helperfunction"/></action>
</reference>

Ale nie można tego zrobić w Magento 2.

Więc teraz dodałem ten kod <link rel="stylesheet" type="text/css" media="all" href="<?php echo $_helper->getCSSFile()?>">do kontenera „after.body.start”.

Czy ktoś wie, jak mogę dodać niestandardowy plik szablonu <head>?

Mikrofon
źródło

Odpowiedzi:

17

Jeśli chcesz dodać plik css do głowy, możesz użyć tego kodu:

<head>
   <css src="path_to/file.css" />
</head>

Ale jeśli chcesz dodać niestandardowy blok do nagłówka, możesz użyć tego kodu:

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="head.additional">
            <block class="Magento\Framework\View\Element\Template" name="block_name" template="path_to_file.phtml" />
        </referenceBlock>
    </body>
</page>

Mam nadzieję że to pomoże

Ihor Klymchuk
źródło
Czy możesz zasugerować, jak zrobić to samo w adminie, wypróbowałem wszystkie nazwy bloków odwołań, ale bez powodzenia, chociaż dane wyjściowe pojawiają się poprawnie, gdy używam bloku odwołania do treści
Sunil Verma
kiedy używam własnego bloku niestandardowego zamiast Magento \ Framework \ View \ Element \ Template pojawia się błąd wyświetlania „należy utworzyć obiekt domdocument” jak usunąć ten błąd i użyć mojego niestandardowego bloku?
Sanjay Gohil
2

Przeszukałem tę odpowiedź w Internecie, w końcu przeszedłem przez wiele eksperymentów.

Uważam, że jest to najłatwiejszy sposób:
przejdź do strony znajdującej się w panelu administracyjnym.
Znajdź swoją stronę i przewiń w dół obok sekcji zawartości do sekcji xml aktualizacji układu.
W tym polu możesz dodać specyficzny dla strony CSS i JS.

<head> <css src="js/ingredients.css> </head>  

Spowoduje to dodanie skryptu do górnej części sekcji nagłówka.
(Utrudnianie pracy dla JS)

<head><script src="requirejs/require.js"/><script src="js/ingredients.js"/></head>  

Powyżej zauważysz, że requirejsnajpierw dodałem plik. Dzieje się tak, ponieważ bez dodania go przed spersonalizowanym plikiem JS nie będzie można uzyskać dostępu do innych bibliotek załadowanych do wymagań.

Daniel Barenboim
źródło