Render matrice în al șaptelea Drupal

matrice Rendernyh sunt elementele constitutive ale paginii Drupal. din al șaptelea Drupal. array Rendernyh - un tablou asociativ care corespunde standardelor și structura de date utilizate în sistemul de redare Drupal.

Ce este de redare?

În ceea ce privește Drupal, redarea reprezintă transformarea face matrice în codul HTML.

Ce se redă un tablou?

Render matrice - matrice clasic structurat în Drupal, care furnizează informații / date (eventual nested) împreună cu indicii despre modul în care acest element trebuie să fie prezentate (de exemplu, #type determină tipul elementului).

pagina matrice poate arăta astfel:

De ce se face acest lucru?

Înainte de lansarea Drupal 7, puteți schimba cu ușurință forma (folosind hook_form_alter ()), dar celelalte elemente care ar putea fi modificate în module sau subiecte, transformat în HTML înainte de a transferat la modificările.

Editați elemente

După lansarea a șaptea blocuri și paginile Drupal pot fi modificate în același mod ca și înainte de modificarea formei. Multe alte caracteristici sunt, de asemenea, disponibile pentru editare. De exemplu, folosind hook_page_alter (), puteți în modulul sau tema dvs. pentru a face acest lucru:

Ca matrice rendernyh asociate cu elementele?

Modulele pot defini noi elemente, care sunt de fapt matrice rendernyh înregistrate de anumite reguli. În acest scop, hook_element_info (). Element - este matrice rendernyh care are #type și alte proprietăți care determină comportamentul său viitor. Când matrice este creat rendernyh și a întrebat #type. ceva care să-l încărcat valorile implicite pentru acele atribute care nu sunt prezente în matrice, dar acestea sunt descrise în hook_element_info () pentru acest articol.

Crearea unei baze de date sub formă de matrice rendernyh

În Drupal 7. Spre deosebire de versiunile anterioare, modulul va crea aproape întotdeauna date ca matrici rendernyh. caracteristica de apel în orice pagină returnează o matrice, care va fi ulterior redat (convertit în HTML). Acest lucru permite modulelor pentru a stoca date în matrice pentru atâta timp cât posibil, în procesul de creare a paginilor.

În Drupal 6 de a folosi o metodă de redare a datelor și colectarea lor în formă de HTML:

Exemple de diferite tipuri de matrice

Ca și înainte, toate elementele Drupal (a se vedea. Hook_element_info (). Care a fost hook_elements () în Drupal 6) sunt descrise în funcție de tipul de date. Privind la system_element_info (). vom vedea o mulțime de tipuri predefinite, inclusiv pagina, formular. HTML_TAG. valoare. marcare. link-ul. FIELDSET si multe altele. Prin convenție, # - atribute folosite de acest tip sunt documentate cu funcția tema corespunzătoare. Astfel, de exemplu, atributele folosite în tipul elementului #type => „HTML_TAG“ poate fi găsită în theme_html_tag () funcția.

Iată trei exemple de exemple ale modulului (Render exemplu):

Exemple de tipuri de elemente

Prin matrice rendernyh se pot folosi mai multe tipuri existente sau de a crea propriul. Mai jos sunt cele mai frecvente.

Rețineți că multe dintre aceste proprietăți sunt descrise în API Formulare. deoarece în API rendernyh Forms API folosit întotdeauna pentru a indica tipul, dar acestea nu au fost documentate ca tipuri rendernyh API, cu care cu siguranță sunt în Drupal 7.

tipul de element. În cazul în care matrice - elementul, proprietățile elementelor vor fi încărcate în mod implicit. Aceasta conduce la o reducere set predefinit de proprietăți care pot fi luate din descrierea acestui element în hook_element_info ().

proprietăți simple, ceea ce creează pur și simplu un șir cu marcare #type => „marcare“. De fapt, acesta poate fi ușor pentru a insera o bucată de HTML'a fără modificări sau redare ulterioară.

Folosit pentru a adăuga un rând (sau marcaj) la începutul sau la sfârșitul elementului, dacă este necesar.

O serie de funcții care pot schimba matrice rendernyh înainte de a apela la el face. Această proprietate poate schimba, elimina piese, instalați #printed = TRUE. pentru a preveni redarea ulterioară, etc.

O serie de funcții care pot ocupa HTML, rezultând face elementul. În general, este aceeași cu cea a #theme_wrappers. cu excepția faptului că nu este folosit sistemul theming.

O serie de funcții temă, care are capacitatea de a adăuga ceva la rendernyh matrice după elementele de copil sunt redate și plasate în #children.
Frecvent utilizate pentru a adăuga HTML redat în jurul valorii de elemente copil, mai ales în cazul în care elementele de copil sunt redate recursiv folosind theming de funcții proprii. Această caracteristică este rar utilizat în conjuncție cu #theme.

Denotă o matrice ca în cache și de a determina durata de conservare. Dacă rendernyh matrice a fost pronunțată, ea nu va mai rendirovatsya până la sfârșitul perioadei de valabilitate a memoriei cache. Atunci când punerea în cache este utilizat funcții standard cache_get Drupal () și cache_set ().

Acest atribut poate cuprinde o matrice matrice:

  • = „Keys“> matrice de chei, care vor fi îmbinate pentru a crea o cheie cache.
  • 'Bin' => numele cache pentru a fi utilizat (de exemplu, 'cache' sau 'cache_page' etc.)
  • „Expiră“ => data înregistrată în Unix-format, care determină perioada de valabilitate a cache.
  • => Valoare „Granularitate“, indicând tipul de cache. De exemplu, DRUPAL_CACHE_PER_PAGE. DRUPAL_CACHE_PER_ROLE sau DRUPAL_CACHE_PER_USER.

Vă rugăm să rețineți că elementele marcate cu atributul #cache va păstra cache-ul să nu atâta timp cât începe coroane, în ciuda duratei sale de viață raft.