Tworzenie modułów do Magento ? Magento API tutorial cz. 2: Tworzenie kontrolera

Druga część mojego skromnego kursu tworzenia modułów do Magento dotyczyć będzie stworzenia prostego kontrolera. W poprzedniej części utworzyliśmy drzewo katalogów, w którym umieszczać będziemy nasze pliki modułu.

Kontroler to ta część systemu MVC, która jest wywoływana w odpowiedzi na to, co wpiszemy w miejsce adresu URL. Adres URL ma następującą postać:

http://example.pl/<frontend>/<controller>/<action>/<param1>/<param2>/…

Frontend to jakby podsystem funkcjonujący w obrębie systemu Magento. Kontroler to zestaw funkcjonalności powiązanych z jakimś zagadnieniem. Akcja to jakaś metoda w obrębie kontrolera. Dalej mamy parametry przekazywane do danej metody w kontrolerze. My sobie napiszemy kontroler, który będzie reagował na wywołanie postaci:

http://example.pl/sklep1/powitanie/hello/

Przechodzimy do folderu ./app/etc/modules i tworzmy plik ProTech_Vm2Mage.xml. Czemu taka właśnie nazwa, zostało opisane w poprzednim odcinku niniejszego tutoriala. Wewnątrz umieścimy standardową zawartość, która aktywuje nam nasz moduł.

<?xml version="1.0"?>
<config>
    <modules>
        <ProTech_Vm2Mage>
            <active>true</active>
            <codePool>local</codePool>
        </ProTech_Vm2Mage>
    </modules>
</config>

Żeby sprawdzić, czy zadziałało, możemy przejść do panelu administratora, wybrać:

System->Configuration->Anvanced->Advanced->Disable Modules Output

i zobaczyć, czy na dole pojawiła się nazwa naszego modułu. Jeżeli jesteśmy w panelu admina, to zrobimy jeszcze jedną rzecz, która ułatwi nam pisanie modułu. Przechodzimy do:

System->Cache Management

i zaznaczamy wszystko, wybieramy Disabled i Submit. Teraz, jak coś zimenimy w naszych plikach, to wystarczy, że odświerzymy przeglądarkę.

Teraz utworzymy sobie jeszcze jeden plik konfiguracyjny. Przechodzimy do

./app/code/local/ProTech/Vm2Mage/etc/

i tworzymy plik config.xml. Wewnątrz dajemy:

<config>
    <modules>
        <ProTech_Vm2Mage>
            <version>0.1.0</version>
        </ProTech_Vm2Mage>
    </modules>

    <frontend>
        <routers>
            <Vm2Mage>
                <use>standard</use>
                <args>
                    <module>ProTech_Vm2Mage</module>
                    <frontName>sklep1</frontName>
                </args>
            </Vm2Mage>
        </routers>
    </frontend>
</config>

Tutaj odbywa się już trochę naszej magii. To co tu robimy, to rejestrujemy nasz moduł do obsługi zapytań w obrębie frontendu o nazwie sklep1. Teraz wszystkie zapytanie z tego frontendu będą kierowane do kontrolerów znajdujących się w naszym module. Ostatnia, rzecz, którą musimy zrobić to napisać nasz kontroler. Przechodzimy do

./app/code/local/ProTech/Vm2Mage/controllers/

i tworzymy plik o nazwie PowitanieController.php. Wewnątrz wpisujemy:

<?php
	class ProTech_Vm2Mage_PowitanieController extends Mage_Core_Controller_Front_Action {
		public function helloAction() {
			echo "Siema...";
		}
	}
?>

Nazwa klasy chyba tłumaczy się sama, nazwa akcji też. Gdy to już zapiszemy, możemy wywołać nasz kontroler i akcję poprzez

http://example.pl/sklep1/powitanie/hello/

Na ekranie ukaże nam się nasz niesamowity napis. To tyle w tym odcinku i zapraszam na następny.