Know-how, prelegere, arhitectura joomla

Rezumat: Arhitectura Joomla este descrisă pe scurt. constante predefinite luata in considerare, fișiere de limbă, modelul de implementare a „fabrica“, care lucrează cu HTTP-cerere obiect JApplication, crearea de bare de instrumente.







Scopul cursului: Studierea informațiilor de bază despre arhitectura Joomla. Obțineți o idee despre funcționarea acestui tip de extensii ca și componente.

prefață

Cea mai importantă sursă de informații despre programarea pentru Joomla este documentația oficială a acestui sistem [5]. Cu toate acestea, la momentul redactării acestui curs, această documentație este destul de incompletă, în special având în vedere că un număr de articole se referă la versiunea mai veche a Joomla (1.5). Codul extensiilor scrise pentru Joomla 1.5 este puțin diferit de codul scris pentru versiunile recent lansate ale Joomla 1.6, 1.7 și 2.5.

Ghidul de dezvoltare pentru componenta de pe site-ul oficial Joomla începe imediat cu scrierea codului în conformitate cu arhitectura MVC (Model - View - View). O astfel de abordare nu este deloc convenabil, deoarece este mult mai ușor pentru elev ar începe prin a învăța elementele de bază ale programării pentru Joomla, cu un studiu al principalelor clase de cadrul acestui sistem, și numai apoi se trece la arhitectura MVC. O abordare mai convenabilă a predării este aplicată în cartea [3]. Acesta este construit de la simplu la complex, în primul rând considerat de a dezvolta o componentă simplă, fără utilizarea de clase care implementează MVC, și atunci există o tranziție de la această arhitectură. Prin urmare, în partea practică a acestui curs, vom urma ordinea prezentării acestei cărți. În plus, majoritatea codului care formează partea practică a acestui curs se bazează pe lista din această carte. Cu toate acestea, codul sursă, preluat din cartea [3], este scris sub Joomla 1.5 și este depășit. Pentru acest curs au fost schimbate pentru a fi utilizate în Joomla 1.7 și transferate într-o altă zonă. Trecerea la Joomla 1.7 a cerut revizuit în partea practică a cursului de acestea au fost absente în [3] probleme, cum ar fi crearea elementelor de meniu de pe panoul de control, utilizați fișierele de limbă. Mai multă atenție este acordată colaborării cu lanțul de navigație al site-ului.

Scrierea părții teoretice a cursurilor a fost complicată de lacunele din documentația Joomla. Uneori descrierea parametrilor oricărei metode este prezentă în documentație, dar este complet incorectă. În unele cazuri, atunci când ați luat în considerare clasele cadru ale acestui sistem, a trebuit să deschideți codul sursă al fișierelor sale pentru a înțelege cum funcționează această metodă sau acea metodă. Această abordare a fost folosită în special când se analizează un grup de clase care controlează generarea de elemente HTML.

Rețineți și cartea [2], care ia în considerare și programarea pentru versiunea veche a Joomla.

Pentru sistemul de management al conținutului, Joomla a creat mii de extensii. Cu toate acestea, nu este întotdeauna oportun să se utilizeze o soluție gata făcută. Extensiile de la terți pot fi prea scumpe sau pot supraîncărca serverul inutil pentru anumite funcții ale taskurilor. Pentru o sarcină non-standard, o soluție gata nu poate fi găsită deloc.

Uneori este suficient să utilizați unul dintre designerii de conținut (CCK) pentru Joomla, ceea ce vă permite să creați propriile șabloane pentru materiale. Cu toate acestea, CCK nu este un panaceu, și este posibil ca el să fie neputincios. În acest caz, este necesar să vă scrieți extensia proprie.

Se poate întâmpla ca soluția terminată să nu funcționeze corect și va trebui să caute o eroare în ea. Apoi, pentru a înțelege codul său, programatorul va avea nevoie de cunoașterea principiilor construirii extensiilor în cadrul Joomla.

Arhitectura Joomla

Cadrul Joomla constă din trei niveluri (Figura 1.1):

  1. nivelul cadrului;
  2. nivelul de aplicare;
  3. nivelul extensiilor.

Know-how, prelegere, arhitectura joomla







Fig. 1.1. Cadrul Joomla

Nivelul cadrului oferă funcționalitatea de bază a Joomla cu un set de biblioteci și pluginuri și cadrul Joomla în sine:

  • Cadrul Joomla (sau "core") este un set de clase care oferă funcționalitatea de bază a Joomla. Numele acestor clase încep cu litera "J" și vorbesc de la sine: JDatabase. JUser. JForm. JEditor, etc;
  • bibliotecile sunt necesare pentru funcționarea extensiilor cadru sau a unor terțe părți;
  • pluginurile extind funcționalitatea cadrului.

Stratul de aplicație constă în aplicații care extind clasa abstractă JApplication. Aplicația este un obiect global. utilizat pentru procesarea cererilor.

Acest nivel include următoarele aplicații:

  • JInstalarea începe când instalați Joomla. După finalizarea instalării, trebuie să ștergeți directorul de instalare. care conține doar această aplicație. În viitor, instalați extensiile utilizând aplicația JAdministrator;
  • JAdministrator gestionează toate funcțiile pentru administrarea Joomla;
  • JSite este responsabil pentru aspectul și afișarea interfeței;
  • XML-RPC vă permite să administrați site-ul Joomla de la distanță.

Nivelul extensiilor constă în extensii ale cadrului și aplicațiilor Joomla:

  • componentele sunt principalele tipuri de extensii Joomla. De fiecare dată când accesați Joomla, este apelată componenta corespunzătoare. De exemplu, atunci când este afișată o pagină a unui site, componenta com_content este apelată;
  • modulele sunt utilizate pentru a afișa bucăți mici de conținut, de obicei în coloana din stânga sau din dreapta sau în zonele de sus sau de jos ale paginii;
  • plug-in-urile vă permit să înregistrați funcții și clase pentru procesarea oricăror evenimente cauzate de Joomla, de exemplu, căutați pe site;
  • fișierele lingvistice vă permit să trimiteți conținut Joomla în mai multe limbi;
  • Șabloanele sunt responsabile pentru aspectul site-ului.

Frontend și Backend

Cele mai multe componente pentru Joomla sunt împărțite în frontend și backend, iar codul lor este împărțit în două foldere, fiecare dintre acestea fiind numit com_<имя компонента>. Fiecare dintre aceste dosare trebuie să conțină un fișier. Acesta este punctul de intrare și se numește același element ca și componenta. și anume <имя компонента>. php. Schematic, poate fi reprezentat după cum urmează:

Constante predefinite

Joomla definește un număr de constante care stochează valorile căilor: JPATH_BASE - calea spre directorul rădăcină al aplicației curente; JPATH_ROOT - calea către directorul rădăcină al unui site, JPATH_COMPONENT - calea către directorul componente, JPATH_COMPONENT_SITE - calea către componenta de front-end, JPATH_COMPONENT_ADMINISTRATOR - calea către componenta backend, etc. O listă completă a acestora poate fi găsită în documentație. Toate aceste constante returnează valorile căilor absolute în sistemul de fișiere. Dacă doriți să obțineți calea de utilizat în URL. utilizați metoda JURI :: base ().

În fișierul index. php. localizat în directorul rădăcină al Joomla. constanta _JEXEC este definită. Majoritatea fișierelor PHP scrise sub Joomla încep cu expresie

Această expresie verifică dacă fișierul a fost. în care este înregistrat, este chemat de la Joomla. În acest fel, accesul la fișier din exterior este interzis pentru a împiedica hacking-ul site-ului.

O altă constanta populară este Joomla - DS. Un separator de directoare care este adoptat într-un anumit sistem de operare (de exemplu, un slash înainte sau înapoi).

Fișiere lingvistice

Joomla vă permite să creați un site multilingv. specificând limba site-ului și panoul de control pentru fiecare utilizator. Această caracteristică este pusă în aplicare după cum urmează: în codurile extensiilor după cum este necesar pentru a afișa orice text anterior cunoscute (de exemplu, un mesaj cu privire la punerea în aplicare cu succes a unei cereri de utilizare) în loc de echivalent text scris (cheie). Pentru fiecare limbă acceptată de această extensie, sunt create fișierele de limbă. care stochează traducerile pentru toate tastele întâlnite în codurile de extensie. De exemplu, „COM_MYCOMPONENT_HELLO_WORLD“ traducerea în limba engleză cheie poate fi definită ca, în limba rusă „Bună ziua, lume!“ - „Bună ziua, lume“, în limba franceză - „Bonjour le monde!“ și așa mai departe.

Fișierele de limbă Frontend sunt stocate în / language /. unde - codul de limbă conform RFC3066. Dosarul trebuie denumit în funcție de schemă .<префикс><имя расширения>..ini. în care prefixul depinde de tipul de expansiune: "com_" (component), "mod_" (modulul), "tpl_" (template) etc. De exemplu, calea către componenta de contact fișier de limbă pentru limba rusă următoarele: /language/ru-RU/ru-RU.com_contact.ini

Fișierele lingvistice stocate în folderul / administrator / language / .

În plus față de fișierele .ini. pentru extensie, trebuie creat un fișier * .sys.ini. care poate stoca traducerile mesajelor care sunt afișate după instalarea extensiei, traducerile elementelor de meniu. create pentru componenta din panoul de control, traducerile parametrilor componentei și traducerile inscripțiilor afișate în managerul extensiei. De exemplu, calea către fișierul .sys.ini componenta de contact pentru limba rusă este după cum urmează: /administrator/language/ru-RU/ru-RU.com_contact.sys.ini

Cheia este șirul pentru traducere, iar valoarea este traducerea acestei linii în limba specificată. Cheia este separată de valoare prin semnul egal:







Articole similare

Trimiteți-le prietenilor: