Problematica
În versiunile vechi ale CMS Joomla, funcționalitatea de bază era destul de săracă, unele extensii ofereau posibilități mult mai interesante de prezentare a articolelor. Unul dintre acestea este K2. O dată cu versiunea a 2-a a CMS Joomla, interesul față de această extensie a dispărut, totuși unele site-uri elaborate pe atunci au continuat să o utilizeze. Unii pentru că nu au avut necesitatea de a face modificări, alții însă nu au putut să o facă. Dintre soluțiile găsite pe net, doar CMS2CMS poate transfera conținutul din K2 direct în Joomla sau în alt CMS. Dar acesta este cu plată.
După mai multe căutări pe net și încercări, am reușit să transfer conținutul din K2 în Joomla, iar apoi cu alt modul să-l transfer în WordPress. Totuși nu mi-a reușit să transfer imaginile și nu toate articolele au fost atribuite corect categoriile corespunzătoare, referitor la categorii nu sînt sigur dacă problema a fost în cazul K2=>Joomla sau Joomla=>Wordpress. Deci această soluție este parțială. Orice propuneri de îmbunătățire sînt binevenite!
Metodologia
În primul rînd se face o copie de rezervă a bazei de date (sau două, în locații diferite). Dacă vreți să mutați articolele la un site funcțional, atunci copiați baza de date și lucrați cu această copie.
Transferul se face prin instrucțiuni MySQL, copiind valorile din cîmpurile tabelului k2_items în cîmpurile tabelului content. Le puteți rula din consolă sau din meniul SQL a panoului phpMyAdmin, selectînd în prealabil baza de date. În phpMyAdmin, după autentificare, pur și simplu faceți click pe numele bazei de date din listă.
Dacă baza de date este prea mare, executarea instrucțiunilor ar putea cere mai mult timp decît permit setările web-serverului și veți primi o eroare, atunci va fi nevoie să executați comenzile din consolă. Pentru executare din consolă, urmați pașii:
Vă conectați la MySQL:
mysql -u numeutilizator -p
Introduceți parola utilizatorului bazei de date.
Afișați lista bazelor de date:
show databases;
Selectați pentru lucru baza de date necesară:
use numelebazeidedate;
Transferul propriu-zis din K2 în Joomla
Se face în două etape: mai întîi se copiază articolele, apoi categoriile.
Pentru articole executați:
INSERT INTO prefix_content (id, title, alias, catid, state, introtext, `fulltext`, created, created_by, modified, publish_up, featured, hits) SELECT id, title, alias, catid, published, introtext, `fulltext`, created, created_by, modified, publish_up, featured, hits FROM prefix_k2_items ;
Pentru categorii executați:
INSERT INTO prefix_categories (title, alias, published, catid) SELECT name, alias, published, id FROM prefix_k2_categories ;
În loc de „prefix_” indicați prefixul bazei de date. Dacă nu folosiți un prefix, eliminați acest prefix în toate cele patru poziții.
Transferul din Joomla în WordPress l-am făcut cu ajutorul modulului FG Joomla to WordPress.
Pentru Joomla 2.5 am folosit
INSERT INTO prefix_content (title, alias, introtext, state, sectionid, catid, created_by, metakey, metadesc, ordering)
SELECT title, alias, introtext, published, ‘114’, catid, ‘192’, metakey, metadesc, ordering into prefix_k2_items
INSERT INTO prefix_content (title, alias, catid, published, introtext, fulltext)
SELECT title, alias, catid, published, introtext, fulltext
FROM prefix_k2_items ;
114 – categoria unde se importă
192 – ID adminului
Pentru transferul categoriilor, cel mai sigur e asta
insert into yop8x_categories (id, title, alias, published)
select name, alias, published, ‘114’
from yop8x_k2_categories
unde 114 e categoria unde se importă