Program de creare de blocuri în drupal 7, profhelp

Acum vă voi arăta un exemplu de creare a unui modul în Drupal care implementează blocul, care, pe lângă elementele standard, are de asemenea o zonă de text și un câmp pentru încărcarea imaginii.







Pentru ca blocul să apară printre celelalte blocuri și poate fi configurat, este de minim să definiți două cârlige: hook_block_info () și hook_block_view (). Pentru o realizare completă a posibilităților concepute, este necesară implementarea următoarelor cârlige:

  • hook_block_info () - afișează blocul din lista blocurilor disponibile
  • hook_block_configure () - configurați parametrii bloc suplimentari
  • hook_block_save () - salvarea informațiilor introduse în formularul de modificare a blocului
  • hook_block_view () - Ieșiți conținutul blocului

hook_block_info () - Afișează blocul din lista blocurilor

Acest cârlig este responsabil pentru apariția blocului creat în meniul administrativ. Acesta returnează o serie de elemente care descriu blocurile create de modul. Aceste elemente, la rândul lor, sunt ele însele asociative. Pentru informații despre cheile valide și despre valorile acestora, consultați pagina hook_block_info (). Rețineți că în numele funcției cuvântul cârlig este înlocuit cu numele modulului în acest caz test_block

După salvarea modificărilor și actualizarea paginii, printre altele, va apărea un bloc cu numele "Test Block":

În acest stadiu, dacă deschideți formularul de configurare pentru acest bloc, apare un formular standard care conține setul implicit de parametri de blocare. Pentru a adăuga mai multe opțiuni pentru personalizare, va trebui să adăugați un cod suplimentar.

hook_block_configure () - Formular de configurare pentru bloc

Cu ajutorul cârligului hook_block_configure (), puteți adăuga elemente suplimentare care sunt afișate când blocul este configurat. În acest caz, acesta este câmpul pentru încărcarea imaginii #managed_file și câmpul text #text_format. Dar, dacă este necesar, puteți adăuga acele câmpuri pe care le doriți. O listă cu tipurile de câmpuri disponibile poate fi găsită în pagina de referință API pentru formular.

Notă: #managed_file nu este doar un element de intrare, este un widget care suportă AJAX, afișarea miniaturilor, verificarea tipului de fișiere descărcate și multe altele.

Pentru a descrie elementul formularului #text_format, aveți nevoie de #type, #title și #default_value - tipul, titlul și, respectiv, valoarea implicită.







Pentru a forma element de #managed_file nevoie #nume, #type, #title, #description, #default_value, #upload_location și #upload_validators.

După salvarea modificărilor în modul, forma de editare a blocului trebuie să conțină elementele adăugate:

Program de creare de blocuri în drupal 7, profhelp

hook_block_save () - Salvarea informațiilor pe server

Pentru a salva informațiile introduse, utilizați cârligul hook_block_save (). care acceptă la intrare două argumente $ delta și $ edit. Variabila șirului $ delta conține identificatorul blocului care a trimis informațiile și editarea $ conține informațiile în sine.

Pentru a salva informațiile introduse în câmpul de text, utilizați funcția variable_set (). care ca argumente sunt transmise numele variabilei și valoarea acesteia, care este luată din variabila $ edit ['text_body'] ['value']

Pentru a salva imaginea, este necesar să programați un pic mai mult, și anume:

  1. Creați fișier $ object pentru fișierul descărcat. Aceasta se face folosind funcția file_load ().
  2. Apoi, trebuie să setați FILE_STATUS_PERMANENT starea fișierului (nonstanta egal cu unu). Inițial, după descărcarea unui fișier prin intermediul unui widget #managed_file, fișier are statut FILE_STATUS_TEMPORARY și îndepărtat după ora DRUPAL_MAXIMUM_TEMP_FILE_AGE.
  3. Apoi, utilizați funcția file_save (). Ar trebui să salvați fișierul $ actualizat în baza de date.
  4. Pentru a spune sistemului că fișierul este utilizat de bloc, ar trebui să utilizați funcția file_usage_add (). Acest lucru împiedică ștergerea fișierului dacă este apelată funcția file_delete (). În modul normal, un fișier care nu are înregistrări în tabela file_usage poate fi șters. Unul dintre parametrii acceptați de funcția file_usage_add () este identificatorul blocului, astfel încât pentru a obține acest ID, apelați funcția block_load (). În sfârșit, când se face înregistrarea despre utilizarea fișierului utilizând funcția variable_set (). ar trebui să salvați informațiile despre imagine.

hook_block_view () - Ieșiți conținutul blocului

Ultimul pas este utilizarea hook_block_view (). Ieșiți conținutul blocului, inclusiv câmpurile adăugate pe ecran.

Pentru a îmbunătăți lizibilitatea, logica acestei faze va fi împărțit în două funcții: cârligul în sine hook_block_view () și chemat de la my_block_view său funcția (), care este format dintr-o matrice.

Asta e tot. Aparatul este acum gata de utilizare:

Program de creare de blocuri în drupal 7, profhelp

concluzie

, Ai nevoie pentru a face destul de un pic de efort, dar pentru a înțelege toate complicațiile API Forma Drupal 7 în posibilități nelimitate se va deschide pentru tine pentru a crea blocuri de foarte diferite de complexitate, și ceea ce faci toate astea ca un modul separat, vă va permite după cum vedeți, pentru a crea programatic un bloc Utilizați aceste blocuri în mod repetat în toate proiectele dvs. În atașamentul la articol, veți găsi modulul gata descris mai sus.







Articole similare

Trimiteți-le prietenilor: