Od bardzo dawno przymierzam się do napisania tego poradnika - jeżeli można go tak nazwać. Tak na prawdę to "przetłumaczę" w skrócie ten poradnik. Screenami posłużę się oryginalnymi ( bez spolszczenia ), ale najważniejsze elementy spróbuję wyjaśnić. No to zaczynajmy! Zacznijmy od utworzenia folderu naszej aplikacji z następującą strukturę ( wybrane tylko potrzebne katalogi w tym przykładzie. W następnych poradnikach będę opisywał kolejno pozostałe foldery ): admin/applications_addon/other/*
klucz aplikacji ( u nas będzie to "helloworld" )
modules_public - główny katalog w którym znajdowały się będą nasze moduły publiczne,
To są główne foldery z których aktualnie będziemy korzystać. Dobra, skoro już to mamy za soba to możemy przejść do utworzenia aplikacji, ale jeszcze zanim to zrobimy to powinniśmy ustawić tryb DEVELOPER w conf_global.php. Wklejamy kod:
if( IN_ACP ) // jeżeli jesteśmy w panelu administracyjnym ustawia tryb dev na włączony { define('IN_DEV', 1); } else // jeżeli nie jesteśmy w panelu to jest on wyłączony - tutaj jest nie potrzebny. { define('IN_DEV', 0); }
Dobra, przechodzimy teraz: Admin CP --> System --> Manage Applications & Modules --> Add New Application
Tutaj chyba nie ma za dużo do opisywania:
Title - tytuł aplikacji,
Public title - publiczny tytuł ( czyli ten, który będzie wyświetlał się m.innymi w menu ),
Directory - nazwa folderu w applications_addon/other/,
Dobra, tutaj gotowe. Przejdźmy teraz do utworzenia naszego modułu publicznego.
Admin CP --> System --> Manage Applications & Modules --> Manage PUBLIC modules --> Add New Public Module
Title - tytuł modułu,
Description - opis,
Key - unikalne ID modułu. W naszym przypadku będzie to example
Jeżeli już utworzyliśmy nasz moduł to wracamy spowrotem do naszych katalogów. W modules_public tworzymy folder example( to unikalne ID, które wcześniej podaliśmy ), a następnie w nim pliki:
example.php - główny plik na którym za moment będziemy działać,
defaultHeader.php - "router" jeżeli można go tak nazwać. Ustanawiamy w nim głowną sekcję aplikacji ( o sekcjach za moment ).
Na początku deafultSection.php
<?php $DEFAULT_SECTION = 'example';
Dobra, czym są te sekcje? W każdym module może być nieskonczenie wiele sekcji. Jeżeli utworzyliśmy moduł example to w nim możemy utworzyć wiele sekcji, które póniej będziemy mogli "odtworzyć" w adresie: index.php?app=Klucz Aplikacji&module=Klucz modułu§ion=Nazwa sekcji
Podam to na przykładzie. Tworzymy blog, który składa się z:
strony z artykułami,
strona z formularzem,
strona z artykułem,
Aby wszystko było ładnie to potrzebujemy w tym przypadku 3 sekcje dla jednego modułu czyli tworzymy moduł "blog", a w nim pliki:
show.php - strona z artykułem,
send.php - strona z formularzem,
index.php - strona z artykułami,
defaulSection.php z oznaczeniem, że główną sekcją jest index.php (aby po przejściu na index.php?app=aplikacja&module=blog standardową sekcją była strona z artykułami )
Można oczywiście to zrobić w postaci 3 modułów ale będzie straszny nieład przy tworzeniu większych aplikacji. Dobra, to mamy za sobą - przejdźmy do pliku example.php.
<?php /** * Nazwa klasy (typ ( public/admin )_(klucz aplikacji)_(moduł)_(sekcja) */ class public_helloworld_example_example extends ipsCommand { public function doExecute( ipsRegistry $registry ) { // Ustawienie tytułu ( <title> </title> ) naszej sekcji. $this->registry->output->setTitle( 'Witaj Swiecie' ); // Wywołanie szablonu $this->registry->output->addContent($this->registry->output->getTemplate('helloworld')->example()); $this->registry->output->sendOutput(); } }
Czas na utworzenie szablonu. Przejdźmy do: Admin CP --> Look & Feel --> Skin --> HTML --> Add new bit
I dodajmy bit example do nowej grupy skin_helloworld Jeżeli już to zrobimy, wypełnijmy go czymś ( choćby Hello World ). Następnie przejdźmy do adresu:
index.php?app=helloworld&module=example
Powinniśmy ujrzeć I to chyba na tyle. Oryginalny poradnik: http://www.invisionpower.com/support/guides/_/advanced-and-developers/application/start-here-creating-an-application-r145
Dla invisionize.pl mojego autorstwa, zakaz kopiowania.