20 gruodžio, 2017

Drupal programavimas

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>'
  );
}

Kitos programavimo paslaugos