Drupal филтриране на IP
Как да станем приятели с тип данни на мнения. При разработването на модули за Drupal, ние често се създават нови видове меки материали (т.е. възли). Макар понякога е изкушаващо да сключи бързо програмиран kakoy- сортиран колекция от тези материали. Така например, на изхода nod- градове, подредени по азбучен ред, или древността, или групирани по държави. Такива полезни колекции могат да се образуват и много софтуер за създаване на всеки един от тях - не е много ефективен.
Особено, ако след това ние искаме нещо да се промени, се слеят, или да конвертирате. Много по-спретнат - използвате модула Views. Най-общо казано, Прегледи - един от крайъгълните камъни на развитието на Drupal.
Въпреки това, веднага след като предприемачът иска да получи с помощта Прегледи събирането на данни, създадени от тях - например, от импровизирана маса за нов тип материал - тя открива, че възгледите все още не са имали наясно с неговата маса. Така че, просто ни кажете за вашата маса модул Прегледи завинаги - по мое мнение, е много по-точно решение в сравнение с ръчното програмирани всички необходими представителства.
Следваща - как да го направя. Предполагам, че читателят вече знае как да програмно създадете свои собствени видове материали.
Аз ще говоря с модула за пример, в който е бил създаден нов тип. И да не публикува кода на модула с нов тип описание, препоръчваме да го свалиш: Изтеглете mytest модул. Модулът е вече приложена цялата допълнително ще бъдат обсъдени в статията.
Така че, ние имаме вид testnode материал, ние добавихме две целочислени полета - вътр. Прегледи учат изтеглите тези полета от базата данни, да ги отпечатате, както и вид и да ги филтрирате колекция. Отчетна неща на първо място, аз осигуряват Прегледи на коя версия на API, които използваме (и ние използваме версия Views 2. Drupal 6. х). За да направите това, ние добавяме към mytest файл. Това е време да кажа Прегледи за нашата маса. За тази цел кука кука.
Изпълнение на куката трябва да се върне асоциативен данни формат масив $. Също така в масива за всяка таблица може да съдържа данни subarray $. Помислете за куката за: функция mytest. По принцип, можете да укажете името на групата за всеки от описаните области, но ако това не бъде направено - име на групата е наследен от секцията.
Какво точно прави модула Прегледи, когато потребителят указва във лесен за употреба, макар и объркващо на пръв поглед, аргументите интерфейс колони, филтри полета, връзки и начини за сортиране? Точно така, Прегледи модул конкретна точка на SQL- заявка се изтегля от базата данни на данните, които потребителят е посочил, и сортира тях, колкото е необходимо на потребителя. Така, че потребителят може да посочи в полеви маса възгледите на. В допълнение към тях, трябва да попълните масив от елементи, които са от значение за работата на логика изгледи. Това са елементите. И петте елемента трябва да са асоциативни масиви. Те трябва да бъдат сигурни, да донесе на стойност елемент.
За разлика от ядрото Drupal и повечето от трети страни модули, API модул Прегледи - обектно-ориентиран (колкото е възможно). Стипендианти, които се използват, за да програмирате за Drupal, Прегледи API може да бъде малко объркващо, но мога да ви уверя: това е плюс, а не минус. Между другото, от липсата на обектно-ориентиран подход за "пускане" на различни граждани периодично повдигна кожа лети.
Затова тук се допрат само на факта, че ние пряко засегнати, т.е. манипулатори. Разбирането на английски писмо читател е посочено подробно описание Прегледи сайта на API: HTTP: // гледка. Коренът на модела е в класа на мнения. Тема производни на мнения. Т.е. товарачи - управляван клас, чиято основна задача е да се уверите, че всичко, което е трябвало да бъде добавен към въпрос от базата данни до желания резултат се получава, че е генериран от правилните текстови полета и така нататък.
По този начин, потребителят може да използва полетата от масата. За нашия тест единица, ние се нуждаем гледания товарачи. В резултат на това масата на полето. В допълнение към името на групата, тя съдържа важна информация за това дали е базовата таблица, или той трябва да бъде прикрепен към друг чрез генериране на мнения. База за маса - таблица, която е в центъра на гледки, като например таблицата на възел за Node изглед или маса на потребител - за оглед на потребителя. Дали нашата база за маса, щяхме да го поискали в данните на масива $. В него трябва да се предостави информация за това как и за които се гледа на база маса трябва да се прикрепят таблицата с данни.
За тази секция. Листове, както се вижда от кода формира на база поле NID на. В тази таблица интеграция. Модулът може да се инсталира и Прегледи позволява незабавно да се добавят към INT поле представителство. Нека той да се нарече процент и се изчислява от съществуващите ценности Int. В този пример, нека да видим как да добавите виртуален поле в гледки, как да се използват манипулатор с формулата на наставка и как да пиша завета им към съществуващите манипулатори. Първо, ние трябва да добавите поле. за които, както вече знаем, е елемента.
Вместо това, ние бихме искали да не се добавят към заявката, както и на изхода, за да получите резултат като число. За да направите това, ние ще се нуждаем от вашата собствена манипулатор, което ние наричаме mytest. Честа практика в програмирането под Изгледи препоръчва първата дума в името на манипулатора е името на модула, а след това на водача и думата е опцията по Прегледи е, че той управлява (т.е. областта), а в края на името на полето от таблицата на базата данни. Изпълнение на манипулатора, разположен в mytest файл. На първо място, ние замени метода на заявка (), която е отговорна за промяната на SQL- заявката. В нашия случай, ние не искаме да се добави нещо към заявката, така че методът на заявка () - празен.
След това се занимавам с резултата, който ще бъде отбелязан в областта след мнението на искането. Отговаря за този метод да направи (стойности $), където всички $ стойностите на обектите се чете от стойностите на базата данни. Подтиснатия метода показват (), ние се изчисли и да се върне в резултат на четене от полетата с INT база данни.
Имайте предвид, че името на таблицата. Ако вътр. Въпреки това, този подход предполага, че потребителят трябва ръчно да добавите полета вътр. Ако искаме да се автоматизира процеса и да добавите тези полета, когато се нуждаехме процент поле, е необходимо да се приложи метод за добавяне.
За да направите това, поставете съществуващ изглед манипулатор. Това изисква допълнителен параметър манипулатор формула от изчислената стойност, които ще бъдат сортирани събиране. Желаният формула се вмъква в Преглед на запитване част РЕД ОТ. За това също ще създаде нов манипулатор: //. Той ще наследи от numeric- филтър: клас mytest. За да направите това, първо се обадете $ това-> гарантира. Sense numeric- филтър наследство че вече дефинирано сравнение експлоатация номера (по-голямо от или равно на по-малко от, и т.н.) за него.
В действителност, прилагането на метод, копиран от изпълнението на родителя се изисква да се промени само стойността на $ област. Накрая, преди да Изгледи ще видят нашите новите манипулатори, добавете mytest файла. Ние преподава Прегледи за четене, дисплей и използва, за да сортирате и филтрирате резултатите от заявките виртуална процент област. Остава само да изчистите кеш паметта от показванията на страницата "администраторски / изграждане / възгледи / инструменти" и модула е готов за работа.