Пълно ръководство за създаване на плъгини Joomla 1
Когато започнем да се създаде нов плъгин, разделихме създаването на няколко части. Така ще бъде по-лесно да стигнем до сърцето и по-удобен щепсела тест. В идеалния случай, трябва да имаме повече от един сървър за тестване на плъг-ин (по-специално неговото инсталиране). Първо ние ще създадем prosteyschy инсталатор. Опишете XML инсталатор добавка, наречена Foobar - Моят разширение.
Важно е да се отбележи, групата на параметъра плъгин. Като цяло, всички плъгини са разделени в логически групи. Ето списък на Joomla основни групи: - удостоверяване - съдържание - редактори - редакторите-XTD - търсене - система - потребител - xmlrpc Както можете да забележите, можем да включим вашата група. Също така на XML файл, показва много важна информация е параметър от приставката. Този параметър е уникален в групата, и определя нашата плъгин. Таблицата по-долу може да видите имената на плъгини, които вече са заети от ядрото.
GruppaZarezervirovannye имена удостоверяване Gmail Joomla съдържание LDAP OpenID emailcloak geshi loadmodule pagebreak pagenavigation SEF вот редактори няма TinyMCE XStandard редактори XTD категории изображение pagebreak търсене Readmore контакти Външни новини съдържание секции Връзки система кеш за отстраняване на грешки наследство дневник помня потребителското Joomla xmlrpc блогър Joomla
След като сте създали myextension.xml на XML файл, myextension.php създадете файл и ги сложете в каталог Foobar. Тогава компресирате в GZ. катран. tar.gz или пощенски (това е добър начин да се цип). Имайте предвид, че досиетата на една и съща приставка не е разделен на директории, защото плъгини състоят от само два файлове. След това можете да инсталирате плъгина. Но толкова дълго, колкото той не прави нищо.
Така че ние трябва да сме създали едно събитие, което ще продължи да се управлява от приставката. Joomla приложения използват глобалната Обектът, наречен мениджър събитие (събитие диспечер), за да изпратите събития за регистрирани студенти (слушателите). Global Мениджър събитие - обект JEventDispatcher, който е разширение на абстрактен клас JObservable. В Joomla, слушателят може да бъде клас или функция. Когато използваме класа слушател, този клас трябва да бъде продължение на JPlugin клас. Това разширение, за да наследи основните методи на класа. Така че, представете си, че имаме Foobar компонент, който показва някои от записите от базата данни. Можем да използваме onPrepareFoobar събитие, което се провежда преди отпечатване записи. За да добавите събитие, пишем го използвате () метод triggerEvent на диспечера на събитие, което вече изпраща своите слушатели. triggerEvent () метод съдържа два параметъра: името на събитието и множество аргументи минута до слушателите. Да предположим, че ние добавяме onPrepareFoobar събитие:
$ Експедитор = - JDispatcher. getInstance (); JPluginHelper. importPlugin ( "Foobar '); Аргументите $ = масив (- $ foobarData); $ Резултат = $ диспечер -> спусък ( "onPrepareFoobar" $ аргументи.);
Имайте предвид, че се минава на $ foobarData чрез препратка и втори параметър на функцията трябва да е масив. Сега можем да пишем плъгини, които ще се справят с $ foobarData.
Това е един от най-важните понятия. Като цяло, студентите са плъгини, които обработват събития, изпратени от мениджъра на събитието.
Regestrirovanie слушателите
$ Mainframe -> registerEvent ( "onSearch '' plgSearchContent".);
обработка на събитие
Както бе споменато по-рано, ние можем да използваме функции, така и класове за обработка на събитие. Започваме нашето изследване с използването на функции за обработка на събитие. Ние вече направи плъгин детайл, наречена My Plugin Foobar в групата, а ние искаме да се справят на събитието, наречено onPrepareFoobar. Преди да започнем да се създаде нашата функция, ние трябва да му се даде име. Важно е да се използва следната конвенция за именуване: PLG думата, щепсел група, плъгин име, събитие. Например, нашата функция ще се нарича plgFoobarMyPluginPrepareFoobar. Например тази функция може да се използва, за да се справят на събитието:
$ Mainframe -> registerEvent ( "onPrepareFoobar '' plgFoobarMyPluginPrepareFoobar".); / *** Поставя даден параметър главни ** @param Foobar Референтен до Foobar обект * / функция plgFoobarMyPluginPrepareFoobar. (- $ Foobar) <$foobar -> име = strtoupper ($ Foobar -> наименование);>
Най-важната част от тази функция - е параметър, преминал. Преди това минахме на параметъра като масив. Всеки елемент на масива се обработва от приставката отделно. Приставката се състои от функциите могат да обслужват няколко събития. Ако искаме да се създаде слушател с помощта на класа, така че ние трябва да се разшири JPlugin клас. Първо трябва да разбера как да се обадя клас слушател. JPlugin изисква специално обозначаване на думата PLG, приставка име на групата, на името на плъгина. Например, приставка на име myplugin Foobar група трябва да се нарича plgFoobarMyplugin. Този пример дръжки две събития: onPrepareFoobar и onAfterDisplayFoobar.
В този пример, както можете да видите, не е нужно да притежавате regestrirovat събития. За теб всичко ще freymvork Joomla. Основното, което трябва да се нарича клас и събития. Когато внасяме приставка Joomla, глобално събитие диспечер автоматично изглежда класове слушатели и моля да ги превърне. onAfterDisplayFoobar () метод връща стойността. Трябва да се помни, че преди да премина обработка плъгин масив. Този пример показва как да се върна вече обработено масив.
$ Експедитор = JDispatcher. getInstance (); JPluginHelper. importPlugin ( "Foobar '); Аргументите $ = масив ( $ FoobarData); $ Резултат = $ диспечер -> спусък ( "onPrepareFoobar" $ аргументи.); $ Foobar -> onAfterDisplayFoobar = отрежете (спуквам ( "\ Н" $ резултат).);
Това е един много прост пример. На следващо място, ние считаме, по-сложните неща.
приставки групи
Модули са разделени в различни групи. Всяка група от приставките да се справят с определен набор от събития. В Joomla ядро съдържа 8 групи: редактори на съдържание удостоверяване редактори XTD търсене система потребителското xmlrpc Следваща ние ще разгледаме всяка група в детайли.
заверка
Имайте предвид, че общите суми не трябва да се върне, а параметър $ ред се предава чрез препратка. Нека разгледаме характеристиките на съдържанието:
AtributOpisanie създаден дата на създаване във формата 0000-00-00 00:00:00. дата на промяна на последната промяна във формат на 0000-00-00 00:00:00 текст основното съдържание на таблицата на съдържанието заглавие елемент елемент заглавна TOC на съдържанието на
А сега да разгледаме събитията. onAfterDisplayContent
Редактори-XTD
търсене група ispolzyuetsya включете за разширяване основният компонент за търсене и получаване на резултатите от търсенето. Има две събития, свързани с тази група, както и onSearch onSearchAreas. Целта onSearchAreas трудно да се разбере. Ето една снимка на търсенето:
Изпълнява търсенето и връща резултатите от търсене на текст низ фраза Вид Търсене "всеки", "всички" или "точна". поръчване сортиране Форми: "Най-новият", "най-старият", "популярен", "алфа" (азбучен), или "категория". Единичните области, които се стремят (на базата на onSearchArea). Тя връща асоциативен масив със следните полета: "титла", "текст", "създадени", "HREF", "browsernav" (1 = отворена в нов прозорец), както и "раздел" (по желание).
Описание Вземете масив от различни области, които биха могли да бъдат открити с помощта на този плъгин. Всеки търсене плъгин трябва да прилага по отношение на най-малко една област. Тя връща асоциативен масив от различни области да се търси.
Система Има четири важни събития в системата. Тук е ред: - onAfterInitialize - onAfterRoute - onAfterDispatch - onAfterRender onAfterDispatch
Описание настъпва след като е била изпратена заявката
Описание настъпва след прилагането се инициализира
Описание случва, когато заявлението се оказва, но все още не се изпраща на потребителя
Описание настъпва след рутера за кандидатстване
Plugins позволяват потребителски групи за извършване на допълнителна преработка в определени събития, свързани с потребителя. Това е особено полезно, когато тези добавки се използват във връзка с компонент, който е свързан с маса # __users на. Вземем примера на onAfterUserStore събитие. Това събитие се задейства, след като потребител sohanyaet своите данни (задейства за нови и настоящи потребители). Този пример показва как можем да подкрепим другата маса, # __some_table, когато се създава нов потребител:
Описание Позволява на потребителя да променя данните преди да я съхранявате потребителски параметри асоциативен масив с потребителски данни isnew True, ако нов потребител
Описание Позволява ви да изпълни код, след като потребителят исторически данни са били съхранявани потребителски параметри асоциативен масив с ползвателя на данни, ако потребителят isnew истината Истината е нов успех в случай на успешна опазване съобщ съобщение за грешка, ако има такива
Описание ни позволява да изпълняваме допълнителна обработка, преди потребителят да се изтрива. Полезно е да се актуализира неосновните таблици, които са свързани с основните таблици #__users Параметри на потребителя асоциативен масив с потребителски данни
Описание Позволява ви да изпълни код, след като изтрит потребител потребителя параметри асоциативен масив с истината потребителски данни успех успех съобщ съобщение за грешка, ако има такива
Описание Ако потребителското име или паролата е неправилна параметри JAuthenticationResponse отговор обект
Описание потребител се опита да излезете. По това време, приставката "Joomla" премахва сесията. Параметри на потребителя JAuthenticationResponse обект връща булева znchenie фалшива, ако не успее
XML-RPC - стандартен / дистанционно протокол извикване на процедура на базата на XML, че е прародител на сапуна, е изключително лесен за използване. XML-RPC, както и всяка друга RPC интерфейс определя набор от стандартни типове данни и команди, които програмистите могат да използват, за да получите достъп до функционалността на другата програма намира на друг компютър в мрежата. Joomla! Тя включва XML-RPC сървър, което е как можем да се удължи с плъгини. XML-RPC плъгини се състоят от две части: водачът onGetWebServices събитие, което връща масив от поддържани повиквания за услуги от Интернет и статичен клас или набор от функции, които контролират отдалечено извикване на процедура. Ако ръцете ви стигнат, аз говоря за това как да се използва XML-RPC в Joomla в отделна статия. onGetWebServices
Описание Вземете асоциативен масив с описание на предлаганите методи на уеб услуги. Тя връща асоциативен масив в асоциативен масив, който определя дали обслужване на разговор е на разположение.
Обработка параметри разширения Joomla
При разработването на разширения за Joomla CMS, като плъгини, модули, компоненти или образци, често е необходимо да се получи параметрите на развитите или всяко друго разширение. В този.
Kunena шаблон kramsaem
1. В папка \ компоненти \ com_kunena \ шаблон \ vash_shablon \ template.xml намери файла и го поставете в парче (за да можете да изберете областта, за да го покаже или не):