Know-how, előadás, architektúra joomla
Összefoglaló: A Joomla architektúráját röviden ismertetjük. Tekinthető előre definiált konstansok, nyelvi fájlokat, a végrehajtási mód „gyári”, dolgozó HTTP-kérés objektum JApplication, ami az eszköztárakat.
Az előadás célja: Tanulmányozni a Joomla architektúrájára vonatkozó alapvető információkat. Ismertesse az ilyen típusú bővítmények működését komponensként.
előszó
A Joomla programozásának legfontosabb információforrása e rendszer hivatalos dokumentációja [5]. Azonban a kurzus megírásakor ez a dokumentáció meglehetősen hiányos, különösen mivel számos cikk a Joomla régebbi verziójára utal (1.5). A Joomla 1.5-re írt kiterjesztések kódja kissé eltér a Joomla 1.6, 1.7 és 2.5 frissen kiadott változatától.
Irányelvek a fejlesztési komponens a Joomla webhely azonnal megkezdődik az írás kód szerint az építészet MVC (Model - View - View). Egy ilyen megközelítés aligha kényelmes, sokkal könnyebb a hallgató megkezdi a tanulás alapjait programozás Joomla, a tanulmány fő osztálya keretében ezt a rendszert, és csak ezután lépni a MVC architektúra. A könyvben sokkal kényelmesebb megközelítést alkalmaznak a könyvben [3]. Kialakításuk az egyszerűtől az összetett, először tekinthető olyan egyszerű komponens alkalmazása nélkül megvalósító osztályoknak az MVC, és akkor van egy átmenet ezen architektúrához. Ezért a kurzus gyakorlati részében követjük a könyv bemutatásának sorrendjét. Ezen kívül a legtöbb kód, amely a gyakorlati része ennek a kurzusnak a listákon alapul. Azonban a forráskódot, kivett [3] írt alá Joomla 1.5 és elavult. Ehhez a kurzushoz megváltozott a Joomla 1.7-ben való felhasználás, és átkerültek egy másik tématerületre. Váltás Joomla 1.7 követelte felül gyakorlati része során ezek nem voltak jelen [3] kapcsolatos kérdések, mint például a létrehozása a menüpontok a vezérlőpulton használja a nyelvi fájlokat. Nagyobb figyelmet fordítanak a webhely navigációs láncával való együttműködésre.
Az előadások elméleti részének megírását a Joomla dokumentáció hiányosságai bonyolítják. Néha bármilyen módszer paramétereinek leírása megtalálható a dokumentációban, de teljesen hibás. Bizonyos esetekben, amikor figyelembe vettük a rendszer keretosztályait, meg kellett nyitnia a fájlok forráskódját annak megértéséhez, hogy ez hogyan működik-e. Ezt a megközelítést különösen akkor alkalmazták, ha figyelembe vesszük az osztályok csoportját, amelyek szabályozzák a HTML elemek létrehozását.
Vegye figyelembe a könyvet [2] is, amely a Joomla régi változatának programozását is figyelembe veszi.
A tartalomkezelő rendszerhez a Joomla több ezer kiterjesztést készített. Mindazonáltal nem mindig célszerű egy kész megoldást használni. A harmadik féltől származó bővítmények túl drágák vagy túlterhelhetők a kiszolgáló számára egy adott feladatfunkcióra szükségtelenül. Nem szabványos feladat esetén egyáltalán nem talál egy kész megoldást.
Néha elég használni a Joomla egyik tartalomtervezõjét (CCK), amely lehetõvé teszi, hogy saját sablonokat hozzon létre az anyagokhoz. A CCK azonban nem csodaszer, és lehetséges, hogy tehetetlen lesz. Ebben az esetben szükségessé válik a saját kiterjesztés megírása.
Előfordulhat, hogy a kész megoldás nem működik megfelelően, és hibát kell keresnie benne. Ezután a kód megértéséhez a programozónak ismernie kell a Joomla alatt lévő építési bővítmények alapelveit.
Joomla Architecture
A Joomla keretrendszer három szintből áll (1.1. Ábra):
- a keret szintje;
- alkalmazási szint;
- kiterjesztések szintje.
Ábra. 1.1. A Joomla keretrendszer
A keret a Joomla alapvető funkcióit tartalmazza a könyvtárak és bővítmények, valamint a Joomla keretrendszerrel együtt:
- A Joomla keretrendszer (vagy a "core") olyan osztályokból álló csoport, amelyek a Joomla alapfunkcióit biztosítják. Ezeknek az osztályoknak a nevei a "J" betűvel kezdődnek és magukért beszélnek: JDatabase. JUser. JForm. JEditor stb.;
- könyvtárak szükségesek a keretrendszer működtetéséhez vagy harmadik fél kiterjesztéseihez;
- A bővítmények kiterjesztik a keret funkcionalitását.
Az alkalmazásréteg olyan alkalmazásokból áll, amelyek kiterjesztik az elvont JApplication osztályt. Az alkalmazás egy globális objektum. a kérések feldolgozásához.
Ez a szint a következő alkalmazásokat tartalmazza:
- A JInstallation a Joomla telepítésekor indul. A telepítés befejezése után törölni kell a telepítési könyvtárat. amely csak tartalmazza ezt az alkalmazást. A jövőben a kiterjesztéseket a JAdministrator alkalmazással telepítheti;
- A JAdministrator kezeli a Joomla adminisztráció összes funkcióját;
- A JSite felelős a frontend elrendezéséért és megjelenítéséért;
- Az XML-RPC lehetővé teszi a Joomla webhely távoli felügyeletét.
A kiterjesztések szintje a Joomla keretrendszer és alkalmazások kiterjesztéseiből áll:
- Az összetevők a Joomla kiterjesztések fő típusai. Minden alkalommal, amikor eléred a Joomla-t, a megfelelő összetevőt hívják. Például, amikor megjelenik egy oldal egy oldala, a com_content összetevő neve;
- a modulok kis méretű tartalmak megjelenítésére szolgálnak, általában a bal vagy jobb oszlopban, vagy az oldal felső vagy alsó területein;
- a plug-inek lehetővé teszik a Joomla által okozott események feldolgozásához szükséges funkciók és osztályok regisztrálását, például a webhely keresését;
- nyelvi fájlok lehetővé teszik a Joomla tartalom megjelenítését több nyelven;
- A sablonok felelősek a webhely megjelenéséért.
Frontend és Backend
A Joomla legtöbb komponense a frontendre és a backendre van felosztva, és kódjuk két mappára oszlik, amelyek mindegyikét com_<имя компонента>. Mindegyik mappának tartalmaznia kell egy fájlt. Ez a belépési pont, és ugyanaz, mint az összetevő. azaz <имя компонента>. php. Szekvenciálisan a következőképpen ábrázolható:
Előre meghatározott konstansok
A Joomla azonosított számos állandók, hogy tartsa értékeit módon: JPATH_BASE - az út, hogy a gyökér könyvtárat az aktuális alkalmazás; JPATH_ROOT - útvonal a gyökér könyvtárába a helyszínen, JPATH_COMPONENT - út a komponens könyvtár, JPATH_COMPONENT_SITE - az út, hogy a front-end komponens JPATH_COMPONENT_ADMINISTRATOR - út a backend komponens, stb Ezek teljes listája megtalálható a dokumentációban. Mindezen állandók visszaadják az abszolút értékeket a fájlrendszerben. Ha meg kell szerezned az elérési utat az URL-ben. használja a JURI :: base () módszert.
Az indexfájlban. php. a Joomla gyökérkönyvtárában található. az állandó _JEXEC definiálva van. A Joomla alatt írt legtöbb PHP fájl kifejezéssel kezdődik
Ez az kifejezés ellenőrzi, hogy a fájl volt-e. amelyben fel van jegyezve, a Joomla-tól hívják. Ily módon a külső fájlhoz való hozzáférés tilos megakadályozni a webhely feltörését.
Egy másik népszerű konstans a Joomla - DS. Egy könyvtárszeparátor, amelyet egy adott operációs rendszerben fogadnak el (például előre vagy hátra).
Nyelvi fájlok
A Joomla lehetővé teszi többnyelvű webhely létrehozását. a webhely nyelvének és a kezelőpanel nyelvének meghatározása minden felhasználó számára. Ez a funkció végrehajtása az alábbiak szerint: a kódok a bővítmények szükség megjelenítéséhez a korábban ismert szöveget (például egy üzenetet a sikeres végrehajtása a felhasználó kérésére) helyett írt szöveg egyenértékű (kulcs). A kiterjesztés által támogatott minden nyelv esetében létrehoznak nyelvi fájlokat. amelyek tárolják a fordításokat a kiterjesztési kódokban található valamennyi kulcs számára. Például a kulcs "COM_MYCOMPONENT_HELLO_WORLD" angol fordítást lehet meghatározni, mint a "Hello, world!", Az orosz - "Hello, world" francia - "Bonjour le monde!" és így tovább.
A frontend nyelvi fájlok a / language /
A nyelvi fájlok háttere a mappában / rendszergazda / nyelvben /
A .ini fájlok mellett. A kiterjesztéshez létre kell hozni egy * .sys.ini fájlt is. amely tárolhatja a kiterjesztés telepítése után megjelenített üzenetek fordítását, a menüelemek fordítását. Létrehozta az alkatrész a vezérlőpulton, transzferek nyomtató alkatrész paramétereket és a transzferek, kiválasztódnak az Extension Manager. Például a fájl elérési útját .sys.ini érintkező elem az orosz nyelv a következő: /administrator/language/ru-RU/ru-RU.com_contact.sys.ini
A kulcs a fordításhoz használt karakterlánc, és az érték a megadott nyelv nyelvének a fordítása. A kulcsot az egyenlőségjeltől elválasztja az értéktől: