conexiune Joomla la o bază de date externă

Dacă aveți nevoie pentru a accesa tabelele bazei de date de extensiile Joomla, puteți utiliza pur și simplu JFactory-> getDBO () metoda folosită pentru conexiunea deja stabilită, ce folosește Joomla pentru a se conecta la baza de date.

Acum $ db variabilă - este un obiect de tip JDatabase și putem produce acțiunile necesare pentru baza de date, folosind tehnicile incluse în interfața sa: clasa JDatabase.

Dar ce se întâmplă dacă aveți nevoie pentru a lucra cu baze de date diferite. diferit de cel pe care îl prescrie în timpul instalării și este specificat în fișierul de configurare? Sau extensia folosește mai multe baze de date (se întâmplă uneori), cu privire la diferite gazde și diferite prefixe. Sau poate ai nevoie pentru a lucra la toate cu drivere diferite? Apoi, aveți nevoie de un miracol universal coaie! Numai azi! Potrivit preț incredibil de mic! Total 999,99. - Glumă :)! Va trebui să utilizați metoda JDatabase-> getInstance ()

Acum $ db variabilă - este din nou tip de obiect JDatabase cu toate consecințele. Rețineți că, în cazul în care baza de date utilizează un număr de port non-standard, puteți specifica portul adăugându-l la sfârșitul numele gazdei. De exemplu, în cazul în care MySQL rulează pe portul 3307 (portul implicit 3306), în acest caz, numele de gazdă poate lua forma de „db.myhost.com: 3307“.

Una dintre caracteristicile folosind JDatabase-> getInstance (). Este că dacă încercați să creați un alt obiect de conexiune cu aceiași parametri, cu un obiect deja creat înainte - aceasta va returna obiectul creat anterior, mai degrabă decât să creați unul nou. Acesta este JDatabase-> getInstance () - pune în aplicare ideea Singlton, totuși, că acest lucru sa întâmplat, parametrii trebuie să se potrivească exact. De exemplu, dacă două apeluri au fost efectuate folosind JDatabase-> getInstance (), prima dată folosind numele de gazdă „db.myhost.com“, iar a doua prin „db.myhost.com: 3306“, atunci acesta va genera două obiecte diferite deși portul 3306 este un port de MySQL în mod implicit, și este logic același lucru. Nu detectez crud lui, dar se pare că există parametri prostește sunt comparate ca șiruri.

Dacă trebuie să utilizați JModel cu pagina de navigare, etc. etc. Și ai nevoie pentru a obține pentru a lucra modelul cu noua conexiune, mai degrabă decât cu un compus de incapacitate de plată. Acest lucru ar necesita utilizarea JDatabase-> setDbo () metoda. De fapt, trebuie să suprascrie JModel de designer în fișierul modelul dumneavoastră, după cum urmează:

Voila - foloseste acum modelul să-i strecoare o nouă conexiune.