Wprowadzenie do pisania własnych modułów oraz do systemu menu.

download Wprowadzenie do pisania własnych modułów oraz do systemu menu.

If you can't read please download the document

description

Wprowadzenie do pisania własnych modułów oraz do systemu menu. - Agnieszka Cupek - Drupal idzie na studia

Transcript of Wprowadzenie do pisania własnych modułów oraz do systemu menu.

  • 1. Wprowadzenie do pisaniawasnych moduw oraz do systemu menu. prezentujcy: Agnieszka Cupek Programista serwisw internetowych

2. Moduy - wprowadzenieCo to jest Modu: to podstawowy element, na bazie ktrego funkcjonuje Drupal to element rozszerzajcy standardowe moliwoci Drupala.Rodzaje moduw: Moduy rdzenia s to moduy dostarczone razem z standardow instalacj Drupala przechowywane w /modules Moduy dodatkowe to wszystkie moduy tworzone przez spoeczno Drupalow, rozszerzajce moliwoci Drupala. Baza moduw http://drupal.org/project/modules 3. Tworzenie moduuUwaga:Wszystkie moduy dodatkowe umieszczamy w folderze/sites/all/modules, gdzie moemy dodatkowo zastosowa podzia np.: Moduy dodatkowe napisane przez spoeczno Drupalow przechowywane w folderze /contrib. Moduy dodatkowe napisane przez nas samych przechowywane w folderze /custom.Podstawowe elementy moduu: Plik nazwa_modulu.info plik konfiguracyjny umoliwiajcy prawidowe rozpoznanie moduu. Plik nazwa_modulu.module plik z kodem moduu. 4. Struktura pliku .info (1)Struktura pliku .info wyglda nastpujco: name=Firstmodule description=Myfirstmoduleusinghook_menu core=7.x files[]=first_module.module *dependencies[]= *dependencies[]= *version=7.x1.0 package=Drupalidzienastudia *php=5.2Oznaczenie:*opcjonalnie 5. Struktura pliku .info (2)Gdzie atrybut:nameokrela nazw moduu.descriptionzawiera opis moduu.coreokrela wersj Drupala, do ktrej zosta dostosowany modu.dependencies[]okrela zalenoci od innych moduw.packagedefiniuje pakiet, do ktrego przynaley modu.phpdefiniuje wersj PHP wymagan przez modu.versiondefiniuje wersj moduu. 6. Struktura pliku .module (1)/***Implementshook_menu().*/functionfirst_module_menu(){$items[first_page]=array(title=>Thisisfirstpage,pagecallback=>first_page,accesscallback=>TRUE,type=>MENU_NORMAL_ITEM,);$items[hello/%]=array(title=>Thisissecondpage,pagecallback=>second_page,pagearguments=>array(1),accesscallback=>TRUE,type=>MENU_CALLBACK,);return$items;} 7. Struktura pliku .module (2)/***Callbackforthefirstpage.*/functionfirst_page(){returnt(Thisismyfirstmodule);}/***Callbackforthesecondpage.**@paramstring$name*Stringwiththeusername.*/functionsecond_page($name=NULL){printt(Hello@name,array(@name=>$name));} 8. System menuSystem menu mona potraktowa jako trzy gwne funkcjonalnocimajce ze sob zwizek:Mapowanie wywoa zwrotnych.Kontrola dostpu.Dostosowanie menu. 9. Mapowanie wywoa zwrotnych 10. hook_menu (1)Atrybuty funkcji hook_menu:title nieprzetumaczalny tytu elementu menu;page callback funkcja wywoywana w celu wywietlenia strony wmomencie wywoania przez uytkownika danej cieki;page arguments tablica argumentw przekazywanych dowywoania zwrotnego strony;access callback funkcja zwracajca warto logiczn, okrelajcczy uytkownik ma dostp do danej strony;access arguments tablica argumentw przekazywana dopowyszej funkcjitype atrybut opisujcy waciwoci elementu menu; 11. hook_menu (2)Dostpne wartoci argumentu type:MENU_NORMAL_ITEM zwyky element menu wywietlany wstrukturze menu, moliwy do zarzdzania przez administratoraMENU_CALLBACK wywoanie zwrotne rejestrujce ciek, gdyuytkownik wywoa dany URL wykona si zdefiniowana funkcjaMENU_LOCAL_TASK elementy menu wywietlane s jakozakadkiMENU_DEFAULT_LOCAL_TASK element menu wywietlany jakozakadka domylna 12. Kontrola dostpuW przykadzie zastosowalimy: accesscallback=>TRUECo oznacza, e kady uytkownik ma dostp do elementu menu.Jak kontrolowa dostp do menu?Wystarczy podczas definiowania elementu menu ustawi atrybuty: accesscallback=>user_access, accessarguments=>array(accessgoodbye)Funkcja user_access() - jest domyln funkcj sprawdzajc dostpuytkownika. 13. StandardyPiszc moduy naley stosowa si do obowizujcych standardwDrupalowych.Dlaczego?Poniewa moduy pisane s przez spoeczno Drupalow stosowaniesi do standardw uatwia i usprawnia prac innych ludzi.Szczegowe konwencje programistyczne obowizujce w Drupaluznale mona na stronie http://drupal.org/coding-standardsNarzdzie wspierajce programistw:Modu Coder http://drupal.org/project/coder 14. Dzikuj za uwag