Drupal programavimas
Atliekame svetainių kūrimo su Drupal darbus. Atnaujiname Drupal modulius, šaliname klaidas. Galime sukurti nesudėtingą Drupal modulį pagal kliento poreikius.
Daugiau apie Drupal
Drupal’as paprastai priskiriamas prie turinio valdymo sistemų (TVS). Tačiau Drupalą galima laikyti turinio valdymo freimworku (Content Management Framework – CMF).
Drupalui galima sukurti papildomus modulius, kad išplėsti sistemos funkcionalumą ir sukurti sudėtingus Web portalus.
Drupalo dalys:
Drupal branduolys (core)
Drupal priedai (add-ons): Moduliai, Templeitai, Vertimai
Darbas su Drupal:
- Drupal diegimas
- Reikiamų modulių diegimas ir konfigūravimas
- Dizainas
- Specifinių modulių programavimas
Prieš rašant specifinį modulį, reikia užduoti sau klausimus:
- Ar tai dar nėra įgyvendinta
- Galbūt galima apjungti du ar daugiau modulių
- Galbūt jau realizuota kažkas panašaus ?
- Drupal branduolio komponentai:
- Turinio valdymas
- Vartotojų valdymas
- Duomenų bazė
- API
- Išvedimas (theming)
- Lokalizacija
Drupal architektūra:
- Ne OOP
- Modulinė architektūra
- Design patternai
- Drupal modulio sandara.
- Drupal modulis aprašomas info faile.
- Modulio priklausomybės, versijos, aprašymai
- Hook’ai – modulių funkcijos, kurios iškviečiamos tam tikrais užklausos metu Drupal branduolio nuožiūra.
Drupal programavimas – pamokėlė
Paprasto modulio „helloworld“ programavimas.
Modulis sukuria meniu punktą „Hello world“. Paspaudus pele šį meniu punktą, išvedamas tekstas „Hello world“.
Reikalinga sukurti kataloga
sites/default/modules /helloworld
Reikia sukurti du failus:
1) helloworld.info
name = Hello world description = A container that contains some tutorial code package = helloworld core = 7.x files[] = helloworld.module
2) helloworld.module
<?php /** * Implements hook_menu() * @return array */ function helloworld_menu() { $aItems = array( 'hello_world' => array( 'title' => 'Hello world', 'page callback' => '_page_hello_world', 'access callback' => TRUE, ), ); return $aItems; } /** * Page callback mapped to the url /hello_world * * @return array */ function _page_hello_world() { return array( '#markup' => '<p>Hello world</p>' ); }