Utilizarea tag-uri în Extensii Joomla! 3

Sistemul de etichetare este utilizat în toate Extensii Joomla de bază și este proiectat pentru o integrare mai ușoară în alte extensii care utilizează modele standard de proiectare Joomla.

Utilizați etichete pentru a extinde destul de simplu. Pentru a face acest lucru, aveți nevoie pentru a face aceste modificări în extensia:

  • Înregistrează-te tipuri de conținut pentru tipurile de expansiune
  • Adăugați „Metode Observer“ în clasa de extensii ale tabelelor
  • Adăugați o etichetă de câmp pentru a extinde formularul de editare
  • Adăugați codul în tipurile de extensie tag-ul de fișiere de ieșire
  • Dacă doriți, puteți adăuga o metodă de a crea un lot de etichete în extensia panoului de administrare

Înregistrați-un tip de conținut pentru fiecare tip de

La instalarea extensiei dvs., trebuie să creați o nouă intrare pentru fiecare specie, folosind tag-uri.

Aici structura #__content_types tabel. Fiecare coloană va fi descrisă în următoarele secțiuni.

Acest câmp este o cheie de auto-increment de înregistrare.

type_title

type_alias

Un șir specificând componenta și forma (care ar fi în cererea de pagină, de regulă, numele modelului respectiv), de exemplu com_contact.contact, com_weblinks.weblink.

Fiecare dintre aceste componente este folosit pentru intrarea clasă în tabel: componenta de contact ContactTableContact pentru link-uri și componente WeblinksTableWeblink. Veți avea nevoie de numele de clasă prefix, cum ar ContactTable, WeblinksTable.

celulă de tabel oferă informații complete despre clasa mesei ca un obiect JSON cu două elemente. Primul element este un tabel de „special“, al doilea - o masă comună opțională (implicit este executat JTableCorecontent).

O serie de setări utilizate în componenta lor in constructori si getInstance () metode pot fi gol

Această informație permite etichetele de sistem (și alte interfață API) pentru a face un acces ușor la componenta de masă.

notițe

  • Numele tabelului la masa principală este #__ucm_content; Acest lucru nu este valabil pentru 3.1 și 3.1.1, în cazul în care datele nu sunt utilizate. Datele utilizate începând cu 3.1.4.
  • câmp type_title pot fi utilizate pentru a afișa tipul de antet, deși acest lucru nu este realizat în acest moment, cu excepția ContentType zona. În mod normal, ar trebui să înceapă cu o majusculă, scrisă în limba engleză. A se vedea nota cu privire la modul de a face acest câmp este transferabil: la numele dvs. de tip sunt transferabile ar trebui să adăugați COM_TAGS_CONTENT_TYPE_ + type_title = „Tip Titlu“ în fișierele de limbă și sys.ini ini.

Regulile nu sunt utilizate în prezent. Acest câmp este probabil să fie eliminate în favoarea ASSET_ID pentru fiecare tip, acum puteți ignora acest domeniu, care va fi gestionat de JTable.

field_mappings

Această intrare afișează numele coloanelor din tabel se potrivesc componenta cu un set standard Joomla! nume. Această mapare este stocată într-o matrice JSON cu primul „comun“

Element cu comune câmpuri și al doilea element de „speciale“ care reflectă celelalte câmpuri din tabel.

Aici field_mappings intrare pentru tipul de conținut Banner (ales pentru că este un exemplu de mai bogat decât articol sau WebLink). Rețineți că afișajul „general“, care nu au nici un echivalent încorporat ca „zero“ (lăsându-le gol poate provoca interogări SQL); numele și valorile în „speciale“ a elementului de potrivire, deoarece acestea sunt limitate la acea componentă.

remarcă

  • JHelperTags și JUcm API Interfețe 3.1.1 suportă matrice pentru acest domeniu, dar de 3.1.4 sunt susținute de o matrice sau un obiect. În mod implicit, obiecte.

Acest câmp opțional conține numele metodei statice pentru acest tip de asistent router găsit în folderul ajutoare componente front-end, de exemplu WeblinksHelperRoute :: getWeblinkRoute.

În cazul în care componenta dvs. nu este un utilizator al router-ului, atunci etichetele sunt returnate la regulile din JHelperRoute.

Daca tii datele din #__ucm_content vă în cele din urmă puteți lăsa câmpul router-ul gol, cu toate că această opțiune nu este încă implementată.

content_history_options

Această secțiune a fost adăugat la Joomla! 3.2 ca conexiunea la conținutul component al istoriei.

Iată o intrare pentru tipul de conținut Banner:

Crearea unei înregistrări

Puteți lua notițe în programul de instalare într-una din cele trei moduri:

  • o metodă de instalare script postflight
  • JTableContenttype exemplu prin crearea și adăugarea unui rând sau
  • folosind SQL, pentru a crea în mod direct o intrare

Modificarea tabelului de clasă a componentei (sau clase, în cazul în care aveți mai multe tabele)

Adăugați următoarele constructorului dvs. JTable:

Adăugarea acestei linii nu mai este necesară după 3.1.4 Vă rugăm să citiți istoricul document pentru această pagină, dacă trebuie să mențină 3.1.0 sau 3.1.1.

Pentru Joomla 3.2 trebuie să adăugați această linie: (Nu uitați să înlocuiți numele dvs. componentă Weblinks)

Adăugați etichete la o metodă getItem () modelul

Notă: Acest lucru este necesar numai în 3.1.0 și 3.1.1. Acesta nu trebuie utilizat în 3.1.4 sau mai târziu. Vă rugăm să citiți istoria acestei pagini, dacă aveți nevoie de instrucțiuni pentru versiuni mai vechi.

Adăugarea unei etichete în câmp tipurile de editare

În toate modurile de dispunere, editare, în cazul în care doriți să utilizați această funcție, trebuie să adăugați un câmp în XML și legate de aspecte, dacă este necesar. Schema de bază este utilizat pentru a gestiona etichetele JLayout, același aspect poate fi folosit orice extensie.

Actualizare: Vă rugăm să rețineți că numai B3.1.1 au un tratament special în acest nucleu. Tag-uri în formă de editare trebuie să facă parte din metadatele de grup. Nucleul oferă două JLayouts pentru a vă ajuta să gestionați formate standard - un (detalii) pentru metadatele și unul pentru panoul lateral, care include file. Extensia de actualizare 3.1.4, poate fi necesar să configurați tipul corect de editare.

3.1.4 sau mai târziu, acest tratament special nu este necesară. Cea mai bună opțiune este de a utiliza un JLayouts standard, deoarece oferă o procedură coerentă utilizatorilor.

Câmpul suportă două moduri:

  • Mod de etichete imbricate. O listă ierarhică de tag-uri. Ea nu acceptă crearea de tag-uri pe zbor.
  • Modul AJAX. Tag-uri sunt căutate în timpul date introduse de utilizator (min. 3 simboluri sunt necesare pentru a porni căutarea AJAX). tag-uri personalizate sunt adăugate prin apăsarea pe tasta Enter sau o virgulă. Tag-uri arată traseu / calea globală. EXEMPLU: bunicule / părinte / tag

Câmpul poate fi configurat pentru a utiliza setările com_tags Mod câmp de etichete. pentru a determina modul său. Pentru a forța regimul terenului trebuie să adăugați mode = „ajax“ sau modul = „imbricate“ la definirea câmpului tag-ul.

Exemplu de AJAX regim forțat:

Câmpul include, de asemenea, atribut pentru a activa / dezactiva utilizatorul pentru a introduce tag-uri valori arbitrare. În prezent, acest lucru funcționează numai în modul AJAX. Acest atribut trebuie adăugat la definirea câmpurilor ca ** personalizat = „permite“ ** sau ** personalizat = „nega“ **

câmp EXEMPLU cu interdicția de tag-uri arbitrare:

dacă nu este deja introdus. De obicei, multiple trebuie să fie adevărat, dacă aveți un motiv specific de a face altfel. Principalele componente din panoul de administrare, o etichetă câmp este în grup, prezentat în partea dreaptă, sub domeniul limbii.

Notă: Ca de 3.1.2, dacă doriți să utilizați un câmp pentru a indica etichetele părinte, trebuie să adăugați părintele = „părinte“, în definiția XML a câmpului.

pregătirea formei

Adăugați view.html.php înainte de aspectul de încărcare:

Primul parametru trebuie să se potrivească cu tipul în tipul de tabel. Al doilea parametru este cheia primară, cu care înregistrarea este stocată în tabel. Acest lucru poate fi utilizat în orice formă, în cazul în care doriți să se afișeze etichetele asociate cu acest element.

În orice aspect, în cazul în care doriți să se afișeze etichetele asociate cu tipul de material:

Schimbarea numele obiectelor și a proprietăților după cum este necesar.

Veți dori probabil să adăugați parametri un parametru show_tags de elemente, setări elemente de meniu și a componentelor de configurare după cum este necesar pentru utilizare.

lot de prelucrare

Dacă doriți să adăugați capacitatea de a face adăugarea lot de tag-uri sub forma unei liste de materiale, adăugați o etichetă la default_batch aspect

Și adăugați o etichetă la o clasă de butoane într-o fereastră modal (nu în totalitate necesar în acest moment, dar este bun pentru potențiale schimbări viitoare, de exemplu, dacă adăugați dezetichetează.)

Adăugați metoda de lot pentru modelul dumneavoastră dacă nu se extind de la JModelAdmin sau suprascrie metoda de prelucrare a lot.