Dezvoltarea modulului pentru drupal
Procedura regulată
Drupal periodic pentru a efectua anumite acțiuni în Task Scheduler, trebuie să configurați sistemul de operare start-up fișierul cron.php, care se află la baza fiecărui Drupal site-ul. Când executați acest fișier va fi numit cârlig hook_cron. și în acest modul vom scrie punerea sa în aplicare.
Procedura de obținere și procesarea XML-fișier localizat pe un server de la distanță este destul de simplu, deci nu este prezentată aici. Dacă se dorește, puteți dezasambla logica acestei funcții prin examinarea codul sursa modulului de valute. Ca rezultat al activității sale este formată dintr-un $ rezultat matrice, care conține informații cu privire la ratele de schimb și care se transmite funcția theming.
currencies_contents () funcția cm. în exemplul 3.
currencies_contents () funcție va fi utilizată nu numai la start cron-misiuni, dar, de asemenea, în formarea blocului de date care va fi afișat pentru utilizator. Astfel, aproape întotdeauna, utilizatorii vor vedea datele obținute din memoria cache Drupal, în cazul în care site-ul nu funcționează cron și nu există date stocate în memoria cache pe ratele de schimb, va exista o conexiune la serverul Băncii Centrale, precum și formarea unei intrări în memoria cache a datelor solicitate.
funcţia de theming
Funcția de theming - o funcție care generează HTML-cod, care este apoi afișată utilizatorului. Particularitatea acestor funcții este faptul că, în primul rând, acestea nu trebuie să pună în aplicare orice logica de afaceri, t. E. Sarcina lor este doar de a genera HTML-cod pe baza argumentelor. În al doilea rând, aceste funcții pot fi înlocuite de către dezvoltatorii de site-ul pentru a edita codul într-un modul, prin modificarea fișierului template.php sau de a crea un fișier șablon.
În acest caz, matricea de date este format currencies_contents) funcția (. și HTML-cod creat theme_currencies_block () funcția. pe care acum urmează să fie determinate și înregistrate. Subliniez faptul că orice funcție provocare theming printr-un înveliș de apel funcție cu numele temei (), t. E. Funcția Theme_currencies_block ($ argument) trebuie să fie numit ca o temă ( „currencies_block“, $ argumentul). Ceea ce a cauzat această necesitate, voi explica mai târziu.
Pentru a înregistra o funcție de temă, utilizată în modulul, trebuie să ne dăm seama hook_theme. care returnează o serie de nume folosite funcții theming și parametrii primite de acestea. In unitatea noastra va folosi o funcție de theming theme_currencies_block (). că de intrare are un argument necesar - o serie de valute, astfel încât punerea în aplicare a cârligului hook_theme va arata astfel:
Fără o astfel de înregistrare, tema apel ( „currencies_block“, $ argumentul) nu este posibilă. Theming Funcția va fi:
Încă o dată, rețineți că funcția currencies_theme ca numele indică numele currencies_block funcției theming. și punerea sa în aplicare a theme_currencies_block () numele. Ai nevoie de ea în viitor, dezvoltatorii de site-uri care utilizează modulul nostru, se poate trece peste această funcție, adică. E. Schimbarea codul HTML generat-o. Pentru a face acest lucru ei într-un dosar cu subiectul în fișierul template.php va fi suficient pentru a crea o funcție cu același nume ca și numele funcției theming, dar în care cuvântul este înlocuit cu numele temei temele folosite, de ex., E. Crearea unui proiect de _currencies_block funcția nazvanietemy (). core Drupal, atunci când întâlnește un apel în tema tipul modulului de cod ( „currencies_block“, $ rezultat). încercați mai întâi să găsească o funcție de theming în fișierul template.php în prezent în teme de utilizare, și numai în cazul în care nu-l găsesc, utilizează funcția theme_currencies_block ().
În cazul unor modele de mari dimensiuni pentru a face mai ușor o funcție temă a fișierului template.php într-un fișier separat. Pentru a face acest lucru, matrice a revenit prin punerea în aplicare a hook_theme cârlig. trebuie să adăugați un element cu o cheie și numele șablonului corespunzător numele fișierului șablon și modulul director pentru a plasa un fișier șablon cu numele specificat și extensia anterioară .tpl.php. Ca rezultat, hook_theme () ia forma:
și în dosarul cu modulul pe care doriți să plasați un fișier numit potaie-block.tpl.php și acest conținut:
Acum, pentru a trece peste puterea generată de Valutele module, dezvoltatorul poate copia pur și simplu fișierul potaie-block.tpl.php din dosarul cu modulul într-un dosar folosit de tema de proiectare și de a face modificările necesare.
Interfața utilizator
Acum, modulul nostru este interfața de administrator, este capabil să se conecteze automat la un server de la distanță pentru a obține informațiile necesare de la ea pentru a forma HTML-cod și îl stochează în memoria cache. A rămas cel mai simplu la programator și cel mai important pentru vizitator al site-ului - datele de ieșire de pe ecran.
Pentru a rezolva această problemă am putut prin funcția de currencies_menu creat anterior () pentru a înregistra un alt mod, și ca un parametru pentru a specifica currencies_contents pagina de apel invers funcție (). care ar primi datele necesare (din memoria cache sau de la un server de la distanță) și le-a adus pe ecran printr-o funcție de temă. Dar noi vrem ratele de schimb care urmează să fie afișat nu este o pagină separată, și caseta (proiectat special un element care conține date) pe orice pagină dată, administratorul site-ului. Pentru aceasta este necesar să se creeze un cârlig hook_block de punere în aplicare () (a se vedea. Listarea 4).
Parametrul $ op (prescurtarea de operare), care conține informații despre funcționarea unității rulează în prezent. Lista de valoare spune modulul că informația de pe acesta este afișat în lista de module, aici trebuie să treacă Drupal de bază un parametru - antet modul, și un număr de parametri opționali, informații despre care pot fi găsite în documentația.
Valoarea de $ vedere op de argumentul este că utilizatorul vizionează o pagină în cazul în care unitatea noastră, iar unitatea este obligat să se întoarcă conținutul care urmează să fie afișate. Pentru această funcție ar trebui să creeze și să emită un element asociativ matrice cu cheie de conținut care va fi folosit ca un bloc de conținut, și un element opțional supus - compusul din titlu.
Fiecare modul poate crea mai multe blocuri, de $ delta cârlig parametru hook_block conține indicele prezent bloc procesat.
Toate design modul este complet! Acum, administratorul site-ului, după instalarea modulului Valute poate fi activat el a creat un bloc, pentru aceasta trebuie să meargă la meniul Administrati - Blocuri (admin / build / bloc), trageți linia mouse-ul cu o descriere bloc în regiunea din dreapta (regiune a paginii care poate conține unul sau mai multe blocuri) și salvați modificările. În proprietățile modulului este disponibil pentru instrumentele standard de management bloc Drupal: o listă de pagini care trebuie să fie afișate unitatea (sau invers o listă de pagini care nu ar trebui să fie afișate unitatea), o listă de roluri ale utilizatorilor care au acces la conținutul blocului, și altele.
Link-uri către alte părți ale acestui articol: