Hello World w Magento czyli jak stworzyć blok i jak go użyć.

Hello World w Magento czyli jak stworzyć blok i jak go użyć. 5.00/5 / 5

Zadaniem, które w programowaniu w Magento przewija się cały czas jest tworzenie bloków. Blok jest podstawową jednostką, która jest wyświetlana w layoucie Magento. Składa się on z klasy, która “liczy” różne rzeczy, oraz szablonu .phtml, który wyświetla te dane. Blok jest częścią modułu (jeśli jeszcze nie stworzyłeś modułu, to zacznij najpierw od tego).

Zaczynamy od stworzenia pliku, który będzie zawierał naszą klasę:

app/code/local/Magentos/Tutorial/Block/Hello.php

Zawartość pliku wygląda następująco:

<?php

class Magentos_Tutorial_Block_Hello extends Mage_Core_Block_Template
{
	public function isLoggedIn(){
		return Mage::getSingleton('customer/session')->isLoggedIn();
	}
}

Zwróć uwagę, że nazwa klasy koresponduje ze ścieżką do pliku. Taki sposób nazywania klas i plików będzie Ci towarzyszył przez cały czas programowania w Magento, więc poświęć chwilę aby to zrozumieć.

Na razie nasza klasa zawiera tylko jedną metodę, która sprawdza, czy użytkownik jest zalogowany.

Teraz czas na szablon .phtml. Tworzymy taki plik:

app/design/frontend/base/default/template/magentos/hello.phtml

Dodam tylko, że plik nie jest poprawnie umieszczony, gdyż nie powinny się modyfikować plików i katalogów Magento. Na razie dla uproszczenia możemy sobie pozwolić na taki zabieg. Jak stworzyć własny layout dowiesz się niebawem …

Zawartość:

<h2>Hello World!</h2>
<h3>
	<?php if($this->isLoggedIn()): ?>
		Jesteś zalogowany
	<?php else:?>
		Jesteś wylogowany
	<?php endif;?>
</h3>

 

W pliku .phtml powinny znajdować się jedynie tagi html oraz proste struktury kontrolne PHP takie if,for,foreach. Wszystkie obliczenia powinny być wykonywane w klasie.

Zmienna $this odnosi się do klasy zawartej w stowarzyszonym pliku php.

Aby móc w uproszczony sposób wywołać nasz blok potrzebujemy jeszcze wyedytować plik:

app/code/local/Magentos/Tutorial/etc/config.xml
<config>
    <modules>
        <Magentos_Tutorial>
            <version>0.1</version>
        </Magentos_Tutorial>
    </modules>
    <global>
    	<blocks>
            <magentos><class>Magentos_Tutorial_Block</class></magentos>
        </blocks>
    </global>

</config>

W tagu global/blocks deklarujemy nasz skrót – alias. Przy wywołaniu będzie można użyć słowa “magentos” zamiast całej nazwy klasy.

No i teraz najważniejsze. Jak tego użyć? Jest kilka możliwości użycia bloku, ale na razie ograniczymy się do najprostszego.

Wejdź do admina.

CMS->Pages->home

Edytujemy treść strony głównej. Do treści wrzuć taki kod:

{{block type="magentos/hello" template="magentos/hello.phtml"}}

To jest miejsce, gdzie łączymy szablon html z naszą klasą. Właściwość type określa naszą klasę, uwzględniając skrót z pliku config.xml. Template określa szablon .phtml.

Efekt powinien wyglądać tak:

jak_stworzyc_blok_w_magento

 https://github.com/magentos-pl/nauka.git