Teljes útmutató létrehozása plugins joomla 1
Amikor elkezdjük egy új bővítményt, osztjuk a létesítmény több részre. Így könnyebb lesz, hogy a szív és kényelmesebb tesztdugasz. Ideális esetben kell több mint egy szervert, hogy teszteljék a plug-in (különösen a telepítés). Először fogunk létrehozni prosteyschy telepítőt. Ismertesse XML telepítő beépülő izemize - My Extension.
Fontos megjegyezni, a plugin paraméter csoport. Általában az összes beépülő modult vannak osztva logikai csoportokba. Itt van egy lista a Joomla core csoport: - hitelesítés - tartalom - szerkesztők - szerkesztők xtd - keresés - - felhasználói - xmlrpc Amint azt veszi észre, mi is tartalmazza a csoport. Szintén XML-fájl jelzi nagyon fontos információ a paraméter plugin. Ez a paraméter egyedülálló a csoporthoz, és azonosítja a beépülő modul. Az alábbi táblázat a neveit plug-inek, amelyek már elfoglalták a kernel.
GruppaZarezervirovannye nevek hitelesítés gmail joomla ldap openid tartalom emailcloak Geshi LoadModule pagebreak pagenavigation SEF szavazás szerkesztők sem TinyMCE XStandard szerkesztők xtd kép pagebreak readmore keresési kategóriák kapcsolatok tartalmi hírforrások szakaszok Weblinkek rendszergyorsítótárat hibakeresési örökölt log emlékszik felhasználói joomla xmlrpc blogger joomla
Miután létrehozta az XML fájl myextension.xml, myextension.php hozzon létre egy fájlt, és tedd egy katalógusban foobar. Ezután tömörítse a gz. tar. tar.gz, vagy a zip (ez jobb módja annak, hogy zip). Megjegyezzük, hogy a fájlokat az azonos plug-in nem oszlik könyvtárakat, mert plugins áll csak két fájl. Akkor telepíti a bővítményt. De mindaddig, amíg nem csinál semmit.
Tehát meg kell létrehoztunk egy esemény, amely továbbra is kezeli a plugin. Joomla alkalmazások a globális objektum neve Event Manager (esemény diszpécser), hogy küldjön események regisztrált diákok (hallgatók). Global Event Manager - egy tárgy JEventDispatcher, amely egy kiterjesztése egy absztrakt osztály JObservable. A Joomla, a hallgató lehet egy osztály vagy függvény. Ha használjuk a hallgató osztály, ebbe az osztályba kiterjesztése az osztály JPlugin. Ez bővítése, annak érdekében, hogy elnyerjem az alapvető módszereit az osztály. Tehát, képzeljük el, hogy van egy Foobar komponens, amely megjeleníti néhány bejegyzést az adatbázisból. Tudjuk használni onPrepareFoobar esemény történik a nyomtatás előtt rekordokat. Ahhoz, hogy egy esemény, akkor írd meg a triggerEvent () metódus az esemény diszpécser már küldi hallgatók. triggerEvent () metódus két paramétert: a neve az esemény, és egy sor argumentumokat a hallgatókhoz. Tegyük fel, hogy hozzá onPrepareFoobar eseményt:
$ Diszpécser = - JDispatcher. getInstance (); JPluginHelper. importPlugin ( 'Foobar'); $ Érvei = array (- $ foobarData); $ Result = $ diszpécser -> ravaszt (onPrepareFoobar '$ érveket.);
Figyeljük meg, hogy átadjuk a $ foobarData hivatkozással, és a második függvény paramétert kell egy tömb. Most tudjuk írni plug-inek, amely kezeli $ foobarData.
Ez az egyik legfontosabb fogalom. Általában a diákok a pluginek, események kezelését küldött az Event Manager.
Regestrirovanie hallgatók
$ Mainframe -> registerEvent (onSearch 'plgSearchContent.');
esemény feldolgozása
Mint korábban említettük, fel tudjuk használni a funkciókat és osztályok esemény kezelése. Kezdjük tanulmány felhasználásával esemény feldolgozó funkciók. Már készült bővítmény munkadarab, az úgynevezett My Plugin Foobar a csoportban, és azt akarjuk, hogy lekezeli az eseményt nevezzük onPrepareFoobar. Mielőtt elkezdenénk, hogy létrehozzuk a funkciót, meg kell adni neki egy nevet. Fontos, hogy az alábbi elnevezési: a szó plg, dugó-csoport, a plugin nevét, az esemény. Például a funkció kerül meghívásra plgFoobarMyPluginPrepareFoobar. Például ezt a funkciót tudjuk használni, hogy lekezeli az eseményt:
$ Mainframe -> registerEvent (onPrepareFoobar 'plgFoobarMyPluginPrepareFoobar.'); / *** helyezi az adott paraméter nagybetűs ** @param Foobar Hivatkozás a Foobar tárgy * / function plgFoobarMyPluginPrepareFoobar. (- $ foobar) <$foobar -> name = strtoupper ($ foobar -> név);>
A legfontosabb része ebben a funkcióban - az átadott paramétert. Korábban adtuk át a paraméter egy tömb. Minden elem a tömb által feldolgozott bővítmény külön-külön. A bővítmény áll a funkciók is kezelni több eseményeket. Ha azt akarjuk, hogy hozzon létre egy hallgató egy osztály, ezért kell bővíteni JPlugin osztályban. Először meg kell kitalálni, hogyan kell hívni a hallgató osztály. JPlugin igényel speciális elnevezése a szó plg, bővítmény csoport neve, a neve a plugin. Például, egy plug-in elemzi myplugin foobar csoportot kell hívni plgFoobarMyplugin. Ez a példa kezeli a két esemény: onPrepareFoobar és onAfterDisplayFoobar.
Ebben a példában, mint látható, nem kell, hogy saját regestrirovat eseményeket. Mert akkor minden rendben lesz freymvork Joomla. A lényeg, hogy lehet nevezni egy osztály, és az eseményeket. Amikor mi import plug-in Joomla egy globális esemény diszpécser automatikusan megkeresi hallgató osztályokat és kérjük válik velük. onAfterDisplayFoobar () metódus visszaadja az értéket. Meg kell emlékezni, hogy mielőtt mentünk a feldolgozó beépülő tömb. Ez a példa azt mutatja, hogyan juthatunk vissza a már feldolgozott tömb.
$ Diszpécser = JDispatcher. getInstance (); JPluginHelper. importPlugin ( 'Foobar'); $ Érvei = array ( $ FoobarData); $ Result = $ diszpécser -> ravaszt (onPrepareFoobar '$ érveket.); $ Foobar -> onAfterDisplayFoobar = trim (implode ( "\ n" $ result).);
Ez egy nagyon egyszerű példát. Ezután vesszük a bonyolultabb dolgokat.
plugins csoportok
Dugó vannak osztva különböző csoportok. Minden csoport a plug-inek kezelni bizonyos események halmazát. A Joomla nucleus tartalmaz 8 csoportban: hitelesítő tartalom szerkesztők szerkesztők xtd kereső rendszer felhasználói xmlrpc Következő nézzük meg az egyes csoportok részletesen.
hitelesítés
Megjegyezzük, hogy az összegek nem kell visszatérnie, és a $ sor paraméter átadása hivatkozás. Nézzük a tartalom attribútumok:
AtributOpisanie létre létrehozás dátuma formátumban 0000-00-00 00:00:00. módosításának dátuma az utolsó változás formátumban 0000-00-00 00:00:00 szöveget fő tartalmát a cím elem tartalmi elem fejléc TOC tartalomjegyzék
Most tekintsük az eseményeket. onAfterDisplayContent
Szerkesztők-xtd
csoport keresés ispolzyuetsya dugó kiterjesztjük a keresési főkomponens és megszerzése találatokat. Két kapcsolódó eseményeket ebben a csoportban, onSearch onSearchAreas. A cél onSearchAreas nehéz megérteni. Itt van egy screenshot a keresési feltételeket:
Végrehajtja a keresést, és visszatér az eredmények szöveges keresési karakterlánc kifejezés Keresés típusa „minden”, „minden”, vagy „pontos”. rendelési válogatás Forms: „legújabb”, „legrégebbi”, „népszerű”, „alfa” (ABC), vagy „kategóriájának”. Unit-nak, amelyek célja (a onSearchArea). Ez adja vissza egy asszociatív tömböt az alábbi területeken: a „cím”, „text”, „teremtett”, „href”, „browsernav” (1 = megnyitás új ablakban), és a „szakasz” (opcionális).
Leírás Kap egy sor különböző területeken, amelyek kimutathatók a segítségével ezt a plugint. Minden kereső plugin alkalmazni kell legalább egy területen. Ez adja vissza egy asszociatív tömb különböző területeken keresni.
A rendszer négy fontos rendszer események. Itt látható a parancsot: - onAfterInitialize - onAfterRoute - onAfterDispatch - onAfterRender onAfterDispatch
Leírás követően fordul elő, a kérelmet benyújtották,
Leírás követően fordul elő, az alkalmazást inicializáljuk
Leírás Akkor következik be, amikor egy alkalmazás válik, de még nem küldte a felhasználó
Leírás követően fordul elő, a kérelmet router
Dugó teszi felhasználói csoportok elvégzéséhez további feldolgozás bizonyos események kapcsolódnak a felhasználó. Ez különösen hasznos, ha ezeket a plug-ineket együtt használják egy összetevő, amely kapcsolatban áll a táblázat # __users. Tekintsük a példát onAfterUserStore esemény. Ez az esemény váltja, ha egy felhasználó sohanyaet adatait (váltott az új és a meglévő felhasználók számára). Ez a példa azt mutatja, hogyan tudjuk támogatni a másik asztalnál, # __some_table, amikor egy új felhasználó létrehozásakor:
Leírás Lehetővé teszi a felhasználó módosíthatja az adatokat, mielőtt tárolja a felhasználói paraméterekben Egy asszociatív tömb a felhasználói adatokat isnew Igaz, ha egy új felhasználót
Leírás Lehetővé teszi programfuttatási miután a felhasználó történeti adatok tárolásra kerültek a felhasználói paraméterek egy asszociatív tömböt az adatokat felhasználó, ha a felhasználó isnew igazság igazság egy új siker esetén a sikeres természetvédelmi msg Hibaüzenet, ha rendelkezésre áll
Leírás Lehetővé teszi számunkra, hogy végre további feldolgozásra, mielőtt a felhasználó törlésre kerül. Érdemes frissíteni, nem alapvető táblázatokat, amelyek kapcsolódnak a legfontosabb táblázatok #__users paraméterek felhasználó asszociatív tömböt felhasználói adatok
Leírás Lehetővé teszi programfuttatási után a felhasználó törölte a felhasználói paraméterek egy asszociatív tömböt felhasználói adatok igazság sikert sikerre msg Hibaüzenet, ha rendelkezésre áll
Leírás Ha a felhasználónév vagy a jelszó hibás paraméterek válasz JAuthenticationResponse objektum
Leírás egy felhasználó megpróbál kilépni. Ebben az időben, a plugin „joomla” eltávolítja a munkamenetet. Paraméterek felhasználó JAuthenticationResponse tárgy boolean típusú znchenie hamis, ha nem sikerül
XML-RPC - normál / távoli eljárás hívás protokoll alapján XML ez az őse a SOAP, rendkívül könnyen használható. XML-RPC, valamint minden egyéb RPC interfész meghatározza egy sor szabványos adattípusok és parancsokat, hogy a programozók, amellyel hozzáférhet a funkció a másik program található egy másik számítógépen a hálózatban. Joomla! Ez magában foglalja egy XML-RPC szerver, ami az, hogy hogyan lehet kiterjeszteni a dugó. XML-RPC plugins két részből áll: a felvezető onGetWebServices esemény, amely egy tömböt ad vissza a támogatott webes szolgáltatás hívásokat, és statikus osztály vagy funkciócsoportja hogy ellenőrizzék a távoli eljárás hívás. Ha keze eléri, úgy beszélni, hogyan kell használni az XML-RPC Joomla egy külön cikkben. onGetWebServices
Leírás Kap egy asszociatív tömböt leírás a hozzáférhető webes szolgáltatás módszereket. Ez adja vissza egy asszociatív tömb egy asszociatív tömb, amely meghatározza, hogy egy hívás szolgáltatás elérhető.
Feldolgozási paraméterek Joomla Extensions
Amikor a fejlődő bővítmények CMS Joomla, mint a plug-inek, modulok, komponensek vagy sablonok, gyakran van szükség, így a paramétereket a fejlett, vagy bármely más bővítményt. Ebben.
Kunena sablon kramsaem
1. A mappa \ components \ com_kunena \ template \ vash_shablon \ template.xml megtalálni a fájlt, és illessze be egy darab (a ki tudja választani a pályát, hogy mutassa meg, vagy sem):