Vreau doar să vă atrag atenția asupra faptului că acest material este legat de Joomla 3.2+, deoarece în această versiune a apărut o interfață convenabilă AJAX sub forma componentei com_ajax. Componenta este punctul de intrare pentru solicitările AJAX la module și plug-in-uri.
Formularea problemei
Deci, modulul nostru afișează o listă cu ultimii utilizatori înregistrați. Pentru a arăta cât de ușor este implementarea funcționalității AJAX într-un modul, hai să folosim exemplul următor: când faceți clic pe utilizator, vor fi afișate anteturile ultimelor trei materiale ale utilizatorului.
Desigur, acesta este un exemplu foarte îndepărtat, deoarece articolele ar putea fi obținute imediat cu o listă de utilizatori. Dar sarcina noastră principală este să înțelegem cum funcționează interfața AJAX, astfel încât esența exemplului nu este, în principiu, importantă.
Pregătirea machetelor de ieșire
În layout-uri, trebuie să furnizăm ieșirea ID-ului de utilizator, apoi să-l transmitem cererii AJAX. De asemenea, avem nevoie pentru a adăuga container pentru a afișa lista materialovi înveli elementul de ieșire în link-ul, pentru a deveni atașat la eveniment click.
Modulul nostru are două scheme: implicit și tabel. De exemplu, luați aspectul implicit. Toate modificările marcajului au fost făcute între etichete
Am împachetat ieșirea într-o etichetă și a atribuit clasa mlu-utilizator. pentru a fi atașat la un eveniment clic. ID-ul de utilizator este afișat în atributul data-userid. De asemenea, a fost adăugat un container pentru a scoate răspunsul la solicitarea AJAX.
Adăugarea solicitării AJAX
Pentru a compila o cerere AJAX într-un modul trebuie să adere la anumite reguli, care dictează componenta de interfață com_ajax. Următorii parametri sunt obligatorii pentru interogare:
- opțiune = com_ajax - utilizați întotdeauna componenta com_ajax;
- modul = module_name - treceți numele modulului la care facem o cerere. Un punct important - numele modulului trebuie să fie fără prefixul mod_;
- format = json - specificați formatul datelor returnate: raw. json sau depanare.
Adăugăm codul solicitării AJAX la sfârșitul punctului de intrare al modulului mod_latest_users.php:
Nu uitați să adăugați constantele fișierelor lingvistice:
Adăugarea unui handler AJAX
Suport pentru module de interfață Ajax este realizată printr-un apel al metodei fișierului modulului ajutor al cărui nume trebuie să se termine cu Ajax. Prefixul metodei implicite este obține. în cele din urmă vom obține getAjax ().
Putem apela metoda cu un nume diferit prin setarea numele metodei în metoda variabilă în formarea unei interogări, de exemplu, metoda = mymethod. Astfel, se va numi metoda myMethodAjax (). Acest lucru face posibilă implementarea mai multor agenți de manipulare AJAX în modul.
Iată cum arată robotul în modulul nostru:
Folosind exemplul acestui material, am văzut că adăugarea lui AJAX la modulul Joomla este o sarcină destul de simplă datorită interfeței AJAX. Dezvoltare reușită!
Codul modulului
Codul sursă al modulului este disponibil pe GitHub: pentru Joomla 2.5 și pentru Joomla 3.
De asemenea, puteți descărca arhiva: pentru Joomla 2.5 și pentru Joomla 3.