Crearea componentei mvc a joomla 1

Adăugarea de funcții

Deci, în timp ce secțiunea noastră admin nu este foarte utilă. Până în prezent, nu face decât să afișeze conținutul bazei de date.





Pentru a adăuga funcții utile, trebuie să adăugați câteva butoane și linkuri.

Bara de instrumente

Este posibil să fi observat bara de instrumente afișată în partea superioară a panourilor de administrare a componentei Joomla. Este, de asemenea, necesar pentru componenta noastră. Joomla o face ușor. Adăugați butoane Ștergeți intrările, Editați intrările și creați intrări noi. Adăugați, de asemenea, un titlu care va fi afișat pe bara de instrumente.







Puteți face acest lucru prin adăugarea unui cod în vizualizare. Pentru a adăuga butoane, utilizați metode statice din clasa JToolBarHelper. Codul arată astfel:

Aceste trei metode creează butoanele corespunzătoare. Metoda deleteList () poate lua trei parametri: primul parametru este un șir care cere utilizatorului să confirme ștergerea. Al doilea parametru este sarcina trimisă împreună cu cererea (implicit este "eliminați"), iar a treia este textul afișat sub buton.

Metodele editListX () și addNewX () pot primi doi parametri suplimentari. Prima este sarcina (implicit, respectiv, editați și adăugați), a doua este textul afișat sub buton.

* Poate ați acordat atenție utilizării metodei JText :: _ ca în șablonul anterior și aici. Aceasta este o funcție care facilitează în mare măsură traducerea componentei. Metoda JText :: _ caută un șir de text în fișierul lingvistic al componentei și returnează șirul tradus. Dacă traducerea nu este găsită, funcția returnează șirul care îi este transmis. Dacă componenta trebuie să fie tradusă în altă limbă, tot ce trebuie să faceți este să creați un fișier de limbă care include liniile și traducerea acestora în limba dorită.

Steaguri și legături

Acum avem butoanele. Două dintre aceste butoane controlează înregistrările existente. Dar cum știi cu ce documente trebuie să lucrezi? Permiteți utilizatorului să o determine. Pentru a face acest lucru, trebuie să adăugăm steagurile la masă astfel încât utilizatorul să poată selecta înregistrările necesare. Acest lucru este implementat în șablonul nostru.

Pentru a adăuga casetele de selectare, trebuie să adăugăm o coloană suplimentară în tabel. Vom adăuga o coloană între cele două disponibile.

În antetul coloanei, adăugați o casetă de selectare pe care o puteți utiliza pentru a selecta sau șterge toate casetele de selectare:

Acum trebuie să adăugați casetele de selectare la fiecare rând. Clasa JHTML are o metodă JHTML :: _ () care va crea o casetă de selectare pentru noi. Adăugați următoarele linii în bucla noastră:

Apoi adăugați o celulă între cele două disponibile:

Necesitatea de a selecta caseta de selectare, deplasarea în sus a paginii și apăsarea butonului este prea dificilă. Vom adăuga un link pentru a merge direct la formularul de editare. Următoarele rânduri vor fi adăugate după ce metoda JHTML :: _ () este chemată pentru a crea linkul HTML:

Adăugarea unui link către celulă, afișarea textului:

Aici este codul complet al fișierului default.php:

Acum, părerea noastră despre hellos sa terminat. Puteți testa componenta pentru a vedea rezultatele.

Acum că vederea Hellos este completă, este timpul să acordăm atenție aspectului și modelului Hello. Această lucrare se face aici.

Controler Bună

Singura activitate a controlorului este afișarea vizualizărilor în mod implicit.

Ar trebui să puteți efectua sarcini care rulează din vizualizarea Hellos: adăugați, modificați și ștergeți.

De fapt, adăugarea și modificarea sunt aceeași sarcină: ambele afișează un formular pentru ca utilizatorul să editeze salutul. Singura diferență este că atunci când creați un formular gol este afișat și când îl schimbați, este afișat un formular cu date. Deoarece acestea sunt similare, vom efectua sarcina de a adăuga funcția de modificare a sarcinii. Acest lucru este indicat în constructorul nostru:

Primul parametru al JController :: registerTask este sarcina, al doilea este metoda de execuție

Să începem cu prelucrarea sarcinii de schimbare. În acest caz, funcționarea controlerului este simplă. Tot ce are nevoie este să specificați vederea și aspectul descărcării (în cazul nostru, vizualizarea salutului și aspectul formularului). Vom sublinia, de asemenea, Joomla pentru a dezactiva meniul principal în timp ce schimbați salutul. Acest lucru împiedică părăsirea intrărilor nesalvate deschise.

Schimbătorul de sarcini de schimbare arată astfel:

Bună ziua

Afișajul Bună ziua afișează un formular care permite utilizatorului să editeze salutul. Metoda de afișare ar trebui să efectueze câteva operații simple:

  • obțineți datele din model
  • creați bara de instrumente / div>
  • puneți datele într-un șablon
  • apelați metoda display () pentru a desena un șablon

Este un pic mai complicat, deoarece o vizualizare efectuează atât editarea, cât și adăugarea. Bara noastră de instrumente ar trebui să informeze utilizatorul despre operațiunea efectuată în prezent - adăugând-o sau editând, adică trebuie să definiți sarcina care trebuie efectuată.

Când obținem o înregistrare de afișat din model, putem folosi aceste date pentru a determina sarcina curentă. Dacă lucrarea este ediționată, atunci câmpul id de înregistrare a fost modificat. Dacă aceasta este o sarcină nouă, atunci valoarea ei nu va fi setată. Acest detaliu vă poate ajuta să determinați dacă se creează o nouă înregistrare sau dacă se editează una actuală.

De asemenea, adăugați două butoane în bara de instrumente: salvați și anulați. Funcționalitatea va fi aproape aceeași, dar în funcție de sarcina curentă vor fi afișate diferite butoane. În cazul unei intrări noi, butonul de anulare va fi afișat, iar dacă cel existent este schimbat, va fi afișat butonul de închidere.

Deci, metoda de afișare va arăta astfel:

Bună ziua model

Avem nevoie de date pentru prezentarea noastră. Aceasta înseamnă că trebuie să creați un model adecvat.

Modelul nostru va avea două proprietăți: _id și _data. _id va stoca ID-ul de salut, date-date.

Să începem cu constructorul, care primește idul din interogare:

Metoda JRequest :: getVar () este utilizată pentru a prelua date dintr-o interogare. Primul parametru este numele variabilei de formă. Al doilea parametru este valoarea implicită pentru atribuire în cazul în care valoarea nu este găsită. Al treilea parametru este numele hash pentru obținerea valorii de la get, post etc. iar ultima valoare este tipul de date pe care să îl setați pentru valoare.

Constructorul va primi prima valoare din matricea cid și îl va aloca ID-ului.

Metoda setId () poate fi folosită pentru a seta id-ul. Modificarea id-ului, care este indicat de modelul nostru, înseamnă că punctele indică date incorecte. Prin urmare, prin setarea valorii id, ștergem proprietatea de date:

În cele din urmă, avem nevoie de o metodă de obținere a datelor: getData ()

getData va verifica dacă valoarea proprietății _data este setată. Dacă da, el o va returna. În caz contrar, datele din baza de date vor fi primite.

În cele din urmă, tot ce trebuie să faceți este să creați un formular pentru date. Deoarece am definit aspectul ca formă, formularul va fi plasat în fișierul directorului tmpl al vizualizării salut ca form.php:

Notă: în plus față de câmpul de introducere, există un câmp ascuns pentru id. Utilizatorul nu ar trebui să schimbe id-ul, așa că l-am pus pe formular.







Articole similare

Trimiteți-le prietenilor: