Skok na 2.5: Put u pakao je popločan Joomla roadmapom
Sa Joomlom se družim od njenog prvog dana. Ustvari, web koji je pred vama je startao davne 2004 godine kao Mambo CMS 4.05 i od tada je preživio vrlo trnovit put:
Mambo CMS 4.0.5 (2004.) -> Joomla 1.0 (2006) -> Joomla 1.5 (2009) -> Joomla 2.5 (2013) |
U prosjeku se svake tri godine dešava neka velika nadogradnja, svaki put je mučna i dugotrajna, i svaki put obećeva da će slijedeći put biti bolje.
Ali neće biti bolje. Niti je bilo bolje 2009 u odnosu na 2006, niti je bolje bilo sad u odnosu na 2009.
Ponovo sam spržio tri debela tjedna na nešto što bi po "roadmapu" trebala biti relativno jednostavna migracija.
Iako se uvijek kod svakog ovakvog besplatnog CMS-a reklamira jednostavnost nadogradnje, i ovdje je prelazak sa jedne na drugu major verziju jednostavan i ugodan kao i intimna depilacija tupom hrđavom čakijom nakon šeste pive: sa svakim idućim korakom ste sve dalje od rješenja i sve bliže hitnoj pomoći.
Na kraju, naravno, pametniji popušta pa se tako i vi nađete kao pobjednik dok u jednoj ruci (figurativno) držite čupu sa vlastitog đoke a u drugoj krvavu čakiju i osjećate se ko kastrirani pobjednik. :)
Dobro je da kvalitetna rakija sve liječi, pa tako i duševne rane i nakon tri godine spremni ste ponovo proći isti proces (demencija je predivna stvar).
Dakle, zašto se web softver treba nadograđivati ako ispravno radi? Prvenstveno zbog potencijalnih sigurnosnih propusta koji ostaju zjapiti kao crne rupe kad softver udari u stari dobri EOL (End of Life). Drugim riječima, ukoliko ne želite da vam se na web nasere neki veseli script kiddie, bilo bi dobro softver držati na zadnjoj stabilnoj verziji.
Nadalje, svjestan sam da je prelazak sa jedne na drugu major verziju veliki korak unaprijed, svjestan sam i da se puno stvari mijenja, ali potpuno mi je nejasan poriv (ovo nije karakteristično samo za Joomlu) zajednice developera da se odluče za princip spaljene zemlje - nova verzija će raditi, staru nećemo podržavati, a migracijski most između smo napravili od starih najlonki.
Vi trebate preko prevesti šleper starog koda i sadržaja.
Obećanje da će od sada biti jednostavnije i bezbolnije ići u migracije uvijek ostane samo - obećanje.
Prilikom migracije sa Joomle 1.5 na 2.5 imat ćete na raspolaganju jUpgrade alat koji je u biti komponenta za Joomlu. Njen zadatk je da iskreira u bazi nove tablice (Joomla 2.5 DB schema), da ih napuni sa sadržajem sa vašeg postojećeg weba i da unutar "jupgrade" direktorija podigne novu Joomlu. Ostavite se svake nade da će ovaj korak bilo što napraviti sa starom Joomla extenzijama i pripadajućim podacima u bazi.
Potrošio sam najprije tri tjedna da pronađem zašto se proces zaglavi sa lijepo pogođenom porukom: "Migrating undefined". Prema ovome je "null pointer assigment", strah i trepet svakog C programera početnika, pičkin dim.
"Migrating undefined". Pomoći sa foruma Joomla zajednice, kao i od developera ove komponente nije bilo. Dao sam im tri tjedna da se netko od njih javi. Nula bodova.
Na kraju sam uspio izdebugirati ovu zavrzlamu sa paljenjem debug-a na php-u na testnoj lokaciji gdje imam kontrolu nad web serverom. Ispostavilo se da u ovom slučaju "MIgrating undefined" ustvari znači da se procedura za migraciju zaglavi na migraciji bannera koje ja ionako ne koristim tako da sam mogao nastaviti dalje kad sam prva tri tjedna potrošio da se uopće pokrenem s mrtve točke.
Nadalje, nakon migracije će vas dočekati grom i pakao - ponovo vam nijedna komponenta sa Joomle 1.5 neće vrijediti, kao ni template.
Ovo za komponente mogu shvatiti, ali ovo za template... Prepisivao sam ga već nekoliko puta i nakon svake migracije je ista pjesma.
Dakle, ono što vas čeka je:
- jUpgrade sa 1.5.26 na 2.5.x
- prilagodba/prepisivanje template-a za Joomlu 2.5
- instalacija novih komponenti za Joomlu 2.5 (ukoliko ne postoji verzija komponente za Joomlu 2.5, imate problem)
Što se prilagodbne template-a tiče i ovaj put se ispostavilo da ponovo treba korisitii "template overrides", kemijati sa css-om da se izbjegnu neka "inteligentna" default rješenja kao što je vertikalni pagination i cijelo čudno sitnica.
Dodatni problem mi je predstavljala atomicon galerija slika. Naime, skoro godinu dana nakon što je Joomla 1.5 došla u EOL stanje, developeri iz Holandije koji su tvorci ove komponente nisu se udostojili niti javiti na upite korisnika, a kamoli izbaciti van komponentu za Joomlu 2.5.
Očigledno je to palo na mene (jer nikog drugog nije bilo u blizini :)) i valjalo se zavući u MVC način razmišljanja, objektno programiranje i otkriti najprije koji vrag se dešava kako bih to mogao popraviti.
Da se razumijemo, za sve gore navedeno postoje načelni dokumenti kako se to radi, ali to je jedno 50% onoga što vam treba. Druga polovina je rasuta po internetu i po zakučcima vaše vlastite mašte i trebaće vam vremena, volje i sreće da sve uspješno privedete kraju.
Tri tjedna je trajala prilagodba na Joomlu 2.5 (kad je napokon jUpgrade uspio odraditi osnovni posao).
Toliko mučnih migracija od 2004 do danas, a izgled ovog weba se u biti nije ni mijenjao. Karoserija ista, samo je motor svaki put novi.
Ovaj put je vrijeme i da se na karoseriji malo poradi. S obzirom da nije realno da će u nekoj budućoj Joomli 3.5 migracija ići na jedan gumb, vrijedi uložiti vrijeme i posložiti novi, od nule pisani template kojeg će poslije biti puno lakše modificirati nego ovaj koji datira od vremena Mambo CMS-a.
Dok sam radio ovu migraciju, planirao sam na kraju raspisati repozitorij dokumenata i potrebnih alata da bi se ona napravila, ali sam na kraju zaključio da to jednostavno nije izvedivo. Takav popis bio bi predug, previše nepregledan i donio bi više konfuzije nego koristi.
Umjesto toga, zahvalio bih nekim ljudima koji su pomogli oko ove migracije. Dakle, ljudi koji su pomogli da danas ovaj web site ugleda svjetlo dana na Joomli 2.5:
- Tomislav Mihaliček: apache, php, ispijanje rakije
- Alen Vodopijevec: javascript, rame za plakanje
- Tomo Krajina, Damir Poljak: reality check (da, objektno orjentirano programiranje je zlo)
- Pavel Blaha: oštro oko kod švrljanja po outputu generiranog html koda
- Žuta Osa: nasušna potreba
Ako sam koga izostavio, nek ne zamjeri. Pun mi je nježnik natezanja uzice preko guzice i vjerojatno sam neke dijelove u ovom procesu i potisnuo.
Za sve koje zanima Atomicon Gallery za Joomlu 2., možete ga downloadati ovdje. Ideja je da ga stavim na službeni joomla web da si ljudi koje zanima mogu skinuti, ali s obzirom da sam dosad od Joomla zajednice imao skoro pa ništa koristi, ne bih se kladio da će to biti baš danas.
Joomla 1.5 je mrtva, živjela Joomla 2.5!
A kako sutra? Paaa, sigurno ne lakše nego dosad. Ali priča se da su ovo sad puno bolji temelji nego što su bili dosad. Negdje sam to već čuo. :)
Dobra stvar kod ove migracije je da je napokon gotova, bar ovaj njen nevidljivi i zajebani dio.
Do neke slijedeće prilike za izbijanjem mozga kroz očne duplje... Tatatatira! :)