rucna deinstalacija ekstenzija u joomla

Upload: sasa-tadic

Post on 07-Apr-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/4/2019 Rucna Deinstalacija Ekstenzija u JOOMLA

    1/5

    1

    Saa Tadi, dipl ing raunarske tehnike

    web site:http://sasatadic.net46.net/Crvanj

    e-mail:[email protected]

    Podgorica

    Runa deinstalacija ekstenzija u JOOMLA!Primjenljivo na Verziju JOOMLA 1.5 i novije

    Do sada sam nekoliko puta dolazio u situaciju da mi automatska deinstalacijakomponenti, modula ili plugin-ova za Joomlu nije bila uspjena pa sam morao pristupatimanuelnim tehnikama za rjeenje ovog zadatka. Ovo se deavalo najee zbog mojenepanje (grekom sam pokuavao da instaliram ekstenziju verzije 1.6 na JOOMLAsoftver verzije 1.5 ili sl.). I dalje je apsolutna preporuka da se deinstalacija radi krozJOOMLA interfejs a ovo to je dato u nastavku je samo "nuno zlo" i eventualno odgovorradoznalom itaocu na pitanje kako su stvari u "back stageu" realizovane

    U nastavku u samo u najosnovnijim crtama ukazati na stvari koje bi se trebale uraditida se posao realizuje runo. Ukoliko bude interesovanja, mogu dati i detaljnijaobjanjenja.

    Odmah na poetku istiem da naredne korake ne treba da rade one osobe koje nisufamilijarne bar sa osnovnim konceptima razvoja ekstenzija za JOOMLA i sa MySQL bazompodataka. Ova prezentacija je validna pod uslovom da se sa komponentom / modulom /plugin-om koju treba deinstalirati nije prethodno neta radilo kroz web site a to jemoglo dovesti do unosa podataka u bazu podataka. Ako su se u bazi podataka unjeli nekipodaci korienjem ekstenzije koju elimo izbrisati, neophodne su moda odredjenedodatne aktivnosti. Takodje, ovaj prikaz daje samo specifikaciju osnovnih tabela bazenad kojima se trebaju uraditi intervencije. Sloeniji moduli i komponente u manjoj iliveoj mjeri dodaju jo neke dodatne upise u strukture baze podataka.

    Prezentirani dokumenat polazi od pretpostavke da je ekstenzija razvijana popreporukama JOOMLA asocijacije (to i jeste sluaj za ekstenzije koje su preuzete saoficijelnih JOOMLA site-ova)

    Prije bilo kakvog konkretnog rada na konkretnom web siteu po ovim uputama a koji

    sadri iole znaajnije podatke, neophodno je uraditi eksport MySQL baze podataka iBackUp strukture foldera site-a na kojem e se vriti intervencija.

    Aktivnosti

    Manuelna deinstalacija se treba uraditi na 2 mjesta:

    1. Folderi u operativnom sistemu2. Tabele u MySQL bazi podataka

    Realizacija deinstalacije je nezavisna za: Komponente Module PlugIn-ove

    Pretpostavimo da imamo site "Portal" i pretpostavimo da smo instalirali za na web site -"portal": komponentu pod imenom - test, modul pod imenom - test i plugin pod imenom - test

    http://sasatadic.net46.net/Crvanjhttp://sasatadic.net46.net/Crvanjhttp://sasatadic.net46.net/Crvanjmailto:[email protected]:[email protected]:[email protected]:[email protected]://sasatadic.net46.net/Crvanj
  • 8/4/2019 Rucna Deinstalacija Ekstenzija u JOOMLA

    2/5

    2

    Aktivnosti koje treba sprovesti su identine bilo da se va site nalazi na vaem lokalnom(Windows ili Unix) raunaru bilo da se nalazi na serveru kod provajdera koji vamobezbjedjuje hosting. U ovom drugom sluaju provajder vam treba omoguiti koritenjeftp servisa i alata za pristup MySQL bazi podataka koji su neophodni za realizaciju ovih

    poslova.

    Naredna slika prikazuje kljune foldere u JOOMLA strukturi foldera ispod kojih susmjetene nae ekstenzije na kojima se vri intervencija

  • 8/4/2019 Rucna Deinstalacija Ekstenzija u JOOMLA

    3/5

    3

    Naredna slika prikazuje kljune tabele u bazi podataka nad kojima se vri intervencija

    1. Deinstalacija komponente se radi na 2 mjesta

    1.1. Operativni sistem

    U operativnom sistemu, ispod foldera gdje je razvojno okruenje za na site (vjerovatno".....\www\portal" ili sl.) za komponentu "test" postoje 2 foldera pod nazivom "com_test"i to za: Back_end dio sistema: "....\www\portal\administrator\components\com_test" Front_end dio sistema ".....\www\portal\components\com_test"

    Potrebno je ova 2 foldera pobrisati

  • 8/4/2019 Rucna Deinstalacija Ekstenzija u JOOMLA

    4/5

    4

    1.2. MySQL baza podataka

    U MySQL bazi, u emi baze uzkoju je izvrena instalacija komponente podaci zakomponentu koju briemo se nalaze u nekoliko tabela (u ovom primjeru je pretpostavkada smo prilikom instalacije JOOMLA sistema specificirali da e sve nae tabele kao prefiksimati string "jos_").

    Prvo treba da pogledamo tabelu jos_extensions i u njoj da pronadjemo komponentukoju treba da briemo. Komponentu emo prepoznati po imenu ali trebamozapamtiti ifru sporne komponente (extension_id).

    Zatim, potrebno je da pogledamo i tabelu jos_assets i da tamo pronadjemo nauproblematinu komponentu. Treba da zapamtimo vrijednost id atributaproblematine komponente.

    jos_menu - u ovoj tabeli se nalazi onoliko slogova u vezi sa problematinomkomponentom koliko stavki menija imamo u components meniju za back_end (akoimamo jednu stavku iz koje se pozivaju 2 pod stavke u jos_menu treba da postoje3 sloga koja briemo) i jo dodato onoliko stavki koliko stavki menija imamo nafront_end a iz kojih smo koristili komponentu koju treba brisati (referentni atribut je

    - component_id - treba da je identian naem identifikovanom extension_id ). Svislogovi koji sadre component_id identian extension_id komponente koju briemose trebaju izbrisati

    jos_assets - ova tabela postoji samo u Joomla 1.6 i u njoj je registrovana naakomponenta u bar jednom slogu kojeg treba izbrisati

    jos_extensions - u ovoj tabeli postoji jedan slog sa imenom nae komponente. Slogtreba izbrisati.

    Mogue je da su se recimo u tabeli jos_content pojavile reference na komponentukoju treba da brisemo. Tipino - ako elimo brisati neku komponentu koja vripodrku za dodavanje komentara italaca tada je mogue da su sami komentariitalaca uneseni u tabelu jos_content a ova tabela sadri foreign key atributasset_id koji moe odgovarati atributuid koji smo pronali u jos_assets tabeli. U

    tom sluaju, ove slogove treba brisati. Ovo je meutim dodatna intervencija koja seradi samo u sluaju da je komponenta u nekom periodu bila aktivna na site-u a napoetku smo rekli da ukoliko je ekstenzija bila aktivna tada specifikacija u ovomdokumentu nije sasvim dovoljna da se sve stvari uklone pa se treba izvriti dodatnakonsultacija.

    Komponenta, ukoliko radi neta sa svojim specifinim podacima bi trebala u bazipodataka da ima bar jednu tabelu iji naziv bi trebao da bude u obliku "jos_test....".Ova tabela (tabele) se trebaju obrisati. Moguce je da po istom principu moduli iplugin-ovi imaju svoje ili koriste iste tabele. Ne postoji pravilo po kojem se dajuimena tabelama koje koriste komponente, moduli odnosno plugin-ovi. Stvar jeostavljena na volju distributerima ekstenzija. U svakom sluaju, ukoliko poredkomponente briemo i modul i plugin, treba da pobriemo i sve ove tabele. Ukolikobriemo samo komponentu a modul i/ili plugin treba da ostanu, potrebno je uraditikontrolu i vidjeti ta pripada komponenti koju briemo u tim tabelama pa prematome i samo odredjene tabele pobrisati (ili samo neke slogove u nekim tabelama).Na slici uz ovaj primjer su oznaene tabele koje se instaliraju u bazi podatakaprilikom instalacije popularne komponente phocagalery i sve one bi se trebaleizbrisati prilikom uklanjanja iste (oigledan je nain na koji je autor dodatka daoimena svojim tabelama).

    2. Deinstalacija modula se radi na 2 mjesta

    2.1 Operativni sistem

    U operativnom sistemu, ispod foldera gdje je razvojno okruenje za na site (vjerovatno

    ".....\www\portal" ili sl) za modul test postoje 2 foldera pod nazivom "mod_test" i to za: Back_end dio sistema: "....\www\portal\administrator\modules\mod_test"

  • 8/4/2019 Rucna Deinstalacija Ekstenzija u JOOMLA

    5/5

    5

    Front_end dio sistema "....\www\portal\modules\mod_test"Potrebno je ova 2 foldera pobrisati

    2.2. MySQL baza podataka

    U MySQL bazi, u emi baze uz koju je izvrena instalacija modula podaci za modul kojibriemo se takodje nalaze u nekoliko tabela.

    Za sluaj modula, prvo treba da pogledamo tabelu jos_modules i u njoj dapronadjemo modul koju treba da briemo. Trebamo zapamtiti id spornog modula.

    jos_modules _menu - u ovoj tabeli koja je agregacija dvije tabele (modula imennija) je data veza u kojoj svaki id modula ima id menija na front-end-u uz koji

    je vezan. Ukoliko smo modul vezali za neku stavku menija ta pojava e bitiregistrovana u ovoj tabeli i potrebno je taj slog (odnosno sve te slogove iz tabele)pobrisati. Krierijum za brisanje su vrijednosti atributa - moduleid i ona treba daodgovara id-u modula kojeg smo pronali u prethodnoj taki.

    jos_modules - u ovoj tabeli postoji modul registrovan u jednom slogu kojeg trebaizbrisati.

    jos_extensions - u ovoj tabeli trebalo bi da postoji (nije pravilo) jedan slog saimenom naeg modula. Slog treba izbrisati.

    Modul (kao i komponenta), ukoliko radi neta sa svojim specifinim podacima bitrebao u bazi podataka da ima bar jednu tabelu iji naziv bi trebao da bude u obliku"jos_test....". Ova tabela (tabele) se trebaju obrisati. Moguce je da po istom

    principu komponente i plugin-ovi imaju svoje ili koriste iste tabele. Ne postojipravilo po kojem se daju imena tabelama koje koriste komponente, moduli odnosnoplugin-ovi. Stvar je ostavljena na volju distributerima ekstenzija. U svakom sluaju,ukoliko pored modula briemo i komponentu i plugin, treba da pobriemo i sve ovetabele. Ukoliko briemo samo modul a komponentu i/ili plugin treba da ostanu,potrebno je uraditi kontrolu i vidjeti ta pripada modulu kojeg briemo u tim

    tabelama pa prema tome i samo odredjene tabele pobrisati (ili samo neke slogove unekim tabelama).

    3. Deinstalacija PlugIn-ova

    U JOOMLA sistemu ekstenzije koje su vezane za PlugIn-ove se nalaze ispod folderaPlugIns (pogledajte sliku). Svaki dodatno uradjeni plugin trebalo bi da ima svoj folder i upostupku deinstalacije ovaj folder bi trebao da se pobrie

    U bazi podataka svaki PlugIn bi trebao biti registrovan u tabeli jos_extensions i prilikomdeinstalacije se iz ove tabele trebaju pobrisati pripadajui entiteti

    Opcionalno, kao komponente i moduli, i plugin-ovi mogu imati svoje specifine tabele(mada nije pravilo) koje u ovom sluaju treba pobrisati.