Разработване на модул за Drupal

редовна процедура

Drupal периодично да извършват определени действия в Task Scheduler, трябва да конфигурирате операционната система се cron.php файл, който е в основата на всеки Drupal-сайт. Когато стартирате този файл ще се нарича кука hook_cron. и в този модул ще напишем нейното прилагане.

Процедурата за получаване и обработка на XML-файл намира на отдалечен сървър е доста проста, така че не е показано тук. Ако желаете, можете да разглобите логиката на тази функция чрез изследване модул валути изходния код. В резултат на работата му се формира от $ резултат масив, който съдържа информация за валутни курсове и които се предава Theming функция.

currencies_contents () функция см. в Пример 3.

currencies_contents () функция, ще бъдат използвани не само в началото Cron-задачи, но също така и във формирането на блока от данни, които ще се показва на потребителя. По този начин, почти винаги, потребителите ще виждат данните, получени от кеша Drupal, ако сайтът не работи Cron и не кеширани данни за валутните курсове, ще има връзка със сървъра на централната банка, както и формирането на запис в кеша на данни е необходимо.

функция Theming

Theming функция - функция, която генерира HTML-код, който след това се показва на потребителя. Особеността на тези функции е, че, от една страна, те не трябва да се прилагат всеки бизнес логика, т. Е. Тяхната задача е само да се генерира HTML-код, въз основа на аргументите. На второ място, тези функции могат да бъдат обезсилени от разработчиците на уебсайтове, за да редактирате кода в един модул, чрез промяна на template.php файл или да създадете файл с шаблон.

В този случай, масив от данни се формира currencies_contents () функция. и HTML-код, създаден theme_currencies_block () функция. което сме сега, за да се определя и записва. Искам да подчертая, че всяко предизвикателство Theming функция чрез обвивка извикване на функция с името на темата (), т. Е. функция Theme_currencies_block ($ аргумент) трябва да бъде призован като тема ( "currencies_block", $ аргумент). На какво се дължи тази нужда, аз ще обясня по-късно.

За да се регистрирате функция тема, използвани в модула, ние трябва да осъзнаем, hook_theme. която връща масив от имена, използвани Theming функции и параметри, получени от тях. В нашия блок ще използва една функция Theming theme_currencies_block (). че на входа отнема един задължителен аргумент - масив от валути, така че изпълнението на куката hook_theme ще изглежда така:

Без такава регистрация, повикване тема ( "currencies_block", $ аргумент) не е възможно. Theming функцията ще бъде:

Още веднъж, имайте предвид, че currencies_theme функцията както показва името на името на currencies_block на Theming функция. и неговото прилагане има theme_currencies_block () име. Трябва да в бъдеще разработчиците на сайтове, които използват нашата модул, може да замени тази функция, т.е.. Д. Промяна на генерирания HTML-кодът него. За да направите това, те в папка с вашата тема във файла template.php ще бъде достатъчно, за да се създаде функция със същото име като името на функцията Theming, но в който думата се заменя с името на тема използвани теми, а именно. Д. Създаване на функция nazvanietemy дизайн _currencies_block (). Drupal ядро, когато срещне на разговор в темата на тип код модул ( "currencies_block", $ резултат). първо се опита да намери функция Theming във файла template.php в момента са в употреба теми, и само ако тя не го намерите, използване theme_currencies_block (функция).

В случай на големи модели по-лесно да се направи тема функция на файла template.php в отделен файл. За да направите това, масив върнат от изпълнението на hook_theme на кука. трябва да добавите елемент с ключ, а името на шаблона, съответстваща на името на файла на шаблона и модула директория да се постави шаблон файл с посоченото име и разширение по-рано .tpl.php. В резултат на това hook_theme () под формата:

и в папката с модула, който искате да поставите файл с име тек-block.tpl.php и това съдържание:

Сега, за да се замени на изхода, генериран от валутите, модул, разработчикът може просто да копирате тек-block.tpl.php файл, от папката с модула в една папка, използван от тема дизайн и направете необходимите промени.

Потребителският интерфейс

Сега нашата модул е ​​интерфейс администратор, е в състояние да се свързва автоматично към отдалечен сървър, за да получи необходимата информация от него за формиране на HTML код и да го съхранява в кеш паметта. Той остава най-простите до програмиста и най-значимите за посетителя на сайта - изходните данни на екрана.

За да се реши този проблем бихме могли чрез функцията на създадена по-рано currencies_menu (), за да се регистрирате по друг начин, и като параметър да се уточни currencies_contents на страница обратно повикване () функция. които ще получат необходимите данни (от кеша или от отдалечен сървър) и ги донесе на екрана чрез функция тема. Но ние искаме обменните курсове трябва да бъдат визуализирани не е отделна страница, както и кутия (създаден специално елемент, който съдържа данни) на всяка отделна страница, с администратора на сайта. За това е необходимо да се създаде кука изпълнение hook_block звезда () (вж. Обява 4).

Параметър $ оп (съкратено от експлоатация), съдържа информация за това кои работа на блока се изпълнява в момента. Списъкът на стойност казва модула, че информацията в нея се показва в списъка с модули, тук трябва да се премине на Drupal ядро ​​един параметър - модул заглавието, както и редица допълнителни параметри, информация за които може да се намери в документацията.

Стойността на $ оп оглед на аргумент е, че потребителят вижда на страница, където нашата единица и единицата е длъжен да върне на съдържанието, за да бъдат показани. За тази функция трябва да създаде и да издаде асоциативен масив с ключ съдържание, което ще се използва като блок съдържание, както и елемент по избор в зависимост от - заглавие съединение.

Всеки модул може да създаде няколко блока, $ делта параметър кука hook_block на съдържа преработен индекс в момента блок.

Всички дизайна на модула е пълна! Сега, с администратора на сайта, след инсталацията Валути модул може да се активира, той създаде блок, за това трябва да отидете в менюто Прилагайте - блокове (администратор / изграждане / блок), плъзнете линията на мишка с описание блок в правилната региона (област на страницата, която може да съдържа един или няколко блока) и запазете промените. В свойствата на модула е на разположение за стандартните инструменти за управление на блок Drupal: списък на страници, които трябва да се показват на устройството (или обратното списък на страниците, че устройството не трябва да бъде показан), списък на потребителски роли, които имат достъп до съдържанието на блока, както и другите.

Връзки към други части на тази статия: