Drupal filtrare IP

Cum de a face prieteni cu un tip de date de vizualizări. La dezvoltarea de module pentru Drupal, vom crea adesea noi tipuri de materiale moi (de exemplu, noduri). In timp ce, uneori, este tentant sa incheie programate rapid kakoy- o colecție ordonată a acestor materiale. De exemplu, producția nod- orașe, sortate în ordine alfabetică, sau antichitate, sau grupate în funcție de țară. Astfel de colecții utile pot forma suficient pentru a crea programatic și fiecare dintre ele - nu foarte eficient.

Mai ales dacă după aceea vrem ceva să se schimbe, fuzioneze, sau converti. Mult mai ordonat - folosiți modulul Vederi. În general vorbind, puncte de vedere - unul dintre elementele-cheie ale dezvoltării pe Drupal.

Cu toate acestea, imediat ce dezvoltatorul vrea să obțină cu colecția Vizualizare ajutorul datelor create de ele - de exemplu, dintr-un tabel improvizat făcut pentru un nou tip de material - detectează că nu a avut încă Views conștient de masa lui. Deci, spune-ne despre masa ta modulul Vederi pentru totdeauna - în opinia mea, este mult mai precise decât o soluție programată manual toate reprezentările necesare.

În continuare - cum să o facă. Presupun că cititorul știe deja cum să creeze în mod programatic propriile tipuri de materiale.

Voi vorbi cu modulul un exemplu în care a fost creat un nou tip. Și să nu publice codul modulului cu un nou tip de descriere, sugerăm doar să descărcați-l: Descarcă mytest modul. Modulul este deja pus în aplicare toate în continuare vor fi discutate în articol.

Deci, avem un tip de material testnode, am adăugat două câmpuri întregi - int. Vizualizări preda descărca aceste câmpuri din baza de date, să le imprimați, precum și un fel și să le filtrați de colectare. lucrurile contabile brute în primul rând, eu asigur opinii cu privire la ce versiune a API folosim (și folosim versiunea Views 2. Drupal 6. x). Pentru a face acest lucru, vom adăuga la dosarul nostru mytest. Este timpul să spunem opinii despre masa noastră. În acest scop cârlig cârlig.

Punerea în aplicare a cârlig ar trebui să returneze un $ de date în format matrice asociativ. De asemenea, în matrice pentru fiecare tabel poate conține date $ subarray. Luați în considerare cârligul în ordine: funcția mytest. În principiu, puteți specifica numele grupului pentru fiecare dintre domeniile descrise, dar dacă acest lucru nu se face - nume de grup este moștenită de la secțiunea.

Ce anume face modulul Vederi, atunci când utilizatorul specifică în user-friendly, deși confuz la prima vedere, argumentele coloana de interfață, filtre, câmpuri, relații și moduri de a sorta? Așa e, punct specific Vizualizare modul de interogare SQL- este tras din baza de date datele pe care utilizatorul a specificat, și sortează după cum este necesar pentru utilizator. Astfel încât utilizatorul poate specifica în câmp tabelul Views. În plus față de acestea, avem nevoie pentru a umple o serie de elemente care sunt relevante pentru munca logica Views. Acestea sunt elementele. Toate cele cinci elemente trebuie să fie matrice asociative. Ei trebuie să fie sigur de a aduce un element de valoare.

În contrast cu nucleul Drupal și cele mai multe module terță parte, modulul Vederi API - orientate-obiect (posibil). Fellows, care sunt folosite pentru a programa pentru Drupal, Views API poate fi oarecum confuz, dar pot să vă asigur: acest lucru este un plus, nu un minus. Apropo, despre lipsa unei abordări orientate spre obiect „drop“ diferite cetățeni a ridicat periodic blana acoperi.

Prin urmare, aici atinge numai pe faptul că ne-am preocupat în mod direct, adică stivuitoare. Înțelegerea cititor de litere limba engleză se referă la descrierea detaliată accesează site-ul API: http: // puncte de vedere. Rădăcina modelului este clasa de opinii. derivați fir de opinii. stivuitoare Ie - o clasă gestionat, a cărui sarcină principală pentru a se asigura că tot ceea ce a trebuit să fie adăugate la o interogare din baza de date la rezultatul dorit a fost obținut care a fost generat de câmpurile de text corecte și așa mai departe.

Astfel, utilizatorul poate folosi câmpurile din tabel. Pentru unitatea noastră de test, avem nevoie de puncte de vedere manipulare. Ca urmare, masa de câmp. În plus față de numele grupului, acesta conține informații importante despre dacă acesta este masa de bază, sau trebuie să fie atașat la altul prin generarea de puncte de vedere. tabelul de bază - un tabel care este esențială pentru vizualizări, cum ar fi masa nod pentru vizualizare nod sau tabel de utilizator - pentru vizualizare de utilizare. Fie că baza noastră de masă, ne-ar fi cerut-o în datele matrice $. În ea, trebuie să furnizeze informații cu privire la modul și la care vizualizările de masă de bază ar trebui să atașeze tabelul de date.

Pentru această secțiune. Foi văzute din codul format pe NID câmpul de bază. În acest tabel de integrare. Modulul poate fi instalat și permite Vizualizare adăugați imediat la int reprezentare domeniu. Să fie numit un procent și se calculează din valorile existente int. În acest exemplu, să vedem cum se adaugă un câmp virtual în vizualizări, modul de a utiliza un handler cu formula sufixul și cum să scrie moștenirea lor handler existente. În primul rând, trebuie să adăugați un câmp. pentru care, după cum știm deja, este elementul.

În schimb, ne-ar dori să nu adăugați la interogare, și de ieșire pentru a obține rezultatul ca număr. Pentru a face acest lucru, vom avea nevoie de propriul handler, pe care o numim mytest. O practică comună în programarea sub vizualizările recomandă ca primul cuvânt în numele handler a fost numele modulului, apoi handler și cuvântul este opțiunea Vizualizări este că gestionează (adică câmpul), iar la sfârșitul numelui câmpului din tabelul bazei de date. Punerea în aplicare a handler situat în mytest fișier. În primul rând, vom trece peste metoda de interogare (), care este responsabil pentru modificarea interogare SQL-. În cazul nostru, noi nu vrem să adăugați nimic la cerere, astfel încât metoda de interogare () - gol.

Apoi deranjează la rezultat, care vor fi înregistrate în domeniu, după punctul de vedere al cererii. Este responsabil pentru această metodă face ($ valori), în cazul în care valorile $ object sunt toate citite din valorile de bază de date. Metoda supracomandată render (), se calculează și returnează rezultatul citit din câmpurile bazei de date int.

Rețineți că numele tabelă. Dacă int. Cu toate acestea, această abordare implică faptul că utilizatorul trebuie să adauge manual câmpuri int. Dacă vrem să automatizeze procesul și pentru a adăuga aceste domenii ori de câte ori am nevoie de câmp procentual, este necesar să se pună în aplicare o metodă de adăugare.

Pentru a face acest lucru, se potrivesc o pãreri handler. Acest lucru necesită o formulă suplimentară de tratare a parametrului de valoare calculată care vor fi sortate de colectare. Formula dorită este inserată în porțiunea Vizualizari anchetă ORDER BY. Pentru aceasta, de asemenea, va crea un nou handler: //. Acesta va moșteni de la filtrul numeric-: clasa mytest. Pentru a face acest lucru, noi numim prima $ this-> asigura. Sense moștenire filtru numeric- care deja definit numerele de operare comparație (mai mare sau egală cu, mai puțin, etc) pentru ea.

De fapt, punerea în aplicare a unei metode de copiat punerea în aplicare a părintelui necesar pentru a schimba numai valoarea câmpului $. În cele din urmă, înainte de vizualizările vor vedea noile noastre stivuitoare, adăugați mytest fișierul. Am învățat Views pentru a citi, de afișare și de a folosi pentru a sorta și filtra rezultatele interogării câmp procentual virtual. Rămâne doar pentru a goli cache-ul de la „admin / build / opinii / unelte“ pagina Vederile și modulul este gata de funcționare.