logo

Dodatni tipovi blokova (EBT) - Novo iskustvo rada sa Layout Builder-om❗

Dodatni tipovi blokova (EBT) – stilizovani, prilagodljivi tipovi blokova: slajdšouvi, kartice sa tabovima, kartice, akordeoni i mnogi drugi. Ugrađena podešavanja za pozadinu, DOM Box, javascript dodatke. Iskusite budućnost kreiranja rasporeda već danas.

Demo EBT moduli Preuzmite EBT module

❗Dodatni tipovi pasusa (EPT) – Novo iskustvo rada sa pasusima

Dodatni tipovi pasusa (EPT) – analogni skup modula zasnovan na pasusima.

Demo EPT moduli Preuzmite EPT module

Scroll

Kreiranje stranice u Drupal modulu programatski

20/06/2025, by Ivan

Postoje dva koraka u kreiranju jednostavne stranice u Drupalu:

Definišite putanju i njene parametre.

Ovaj korak uključuje naslov stranice, zahteve za pristup stranici i druge parametre.

U Drupalu 7 morali ste implementirati hook_menu().

U Drupalu 8 kreirajte fajl <module_name>.routing.yml u direktorijumu modula na najvišem nivou.

Napišite kod za vraćanje sadržaja stranice.

U Drupalu 7 morali ste napisati callback funkciju stranice koja je navedena u hook_menu().

U Drupalu 8 callback stranice treba da bude ili metod klase ili registrovani servis. Može se razlikovati u zavisnosti od različitih uslova (HTTP ili HTTPS, Content-Headers itd.), ali to je izvan okvira ovog uvoda.

Prolazak kroz primer

Prateći primer na ovoj stranici, moći ćete da kreirate jednostavnu stranicu u svom prilagođenom modulu, bez potrebe da saznate više o unutrašnjosti Drupala. Za detaljnije informacije pogledajte Change record o promenama u sistemu rutiranja i različitim implementacijama u jezgru i u primerima projekata.

YAML fajl za rutiranje za primer modula

Informacije o rutiranju se čuvaju u example/example.routing.yml:

example.my_page:
  path: '/mypage/page'
  defaults:
    _controller: '\Drupal\example\Controller\ExampleController::myPage'
    _title: 'My first page in D8'
  requirements:
    _permission: 'access content'

example.my_page

  • Ovo je mašinsko ime rute. Po konvenciji, mašinska imena ruta treba da budu module_name.sub_name. Kada drugi delovi koda treba da referenciraju rutu, oni će koristiti mašinsko ime.

path

  • Ovo definiše putanju do stranice na vašem sajtu. Obratite pažnju na početni kosu crtu (/).

defaults

  • Opisuje callback funkciju stranice i naslov. @todo: Gde se ove podrazumevane vrednosti mogu nadjačati?

requirements

  • Definiše uslove pod kojima će stranica biti prikazana. Možete navesti dozvole, module koji moraju biti uključeni i druge uslove.

 

Implementacija stranice za primer modula

Klasa ExampleController treba da bude definisana u example/src/Controller/ExampleController.php:

<?php
namespace Drupal\example\Controller;

use Drupal\Core\Controller\ControllerBase;

/**
 * Pruža rute odgovore za Example modul.
 */
class ExampleController extends ControllerBase {

  /**
   * Vraća jednostavnu stranicu.
   *
   * @return array
   *   Jednostavan renderabilni niz.
   */
  public function myPage() {
    $element = array(
      '#markup' => 'Hello, world',
    );
    return $element;
  }

}

namespace (prostor imena)

  • Ovde se deklariše prefiks potreban za potpuno kvalifikovano ime klase koju definišemo. Uporedite PHPDoc blok i ime klase. Autoloader zna da da bi pronašao klasu \Drupal\example\Controller\ExampleController, mora da traži fajl modules/example/src/Controller/ExampleController.php.

use

  • Omogućava nam da koristimo ControllerBase umesto punog imena klase, čineći definiciju klase čitljivijom.

myPage()

  • Metod naveden u YAML fajlu mora biti javni. Treba da vraća renderabilni niz.

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.