Si vous envisagez (ou avez envisagé) d'effectuer la migration de votre plateforme Joomla, de la série 1.0 à la série 1.5, le composant mtwMigrator ne vous est certainement pas inconnu. Il s'agit en effet de l'extension la plus utilisée pour migrer son site Joomla et ainsi bénéficier des dernières avancées de la communauté du célèbre CMS Open Source.
Cependant, vous vous êtes peut-être heurté à un problème loin d'être anondin : tous vos articles multipages ont sauté, la syntaxe {mospagebreak} provenant de la série 1.0 n'étant plus reconnue sur la dernière version du CMS. Si le problème est vite résolu à coups de copier-coller sur un "petit" site, la tâche s'avère plus ardue pour un site regroupant des centaines voir des milliers d'articles multipages !
Nous allons voir comment modifier l'extension mtwMigrator afin que vous gardiez en l'état la totalité des articles multipages lors du processus de migration de votre plateforme Joomla.
Prérequis
Le composant mtwMigrator doit bien sûr être installé sur la plateforme Joomla 1.5 qui réceptionnera la migration. Il se chargera de récupérer la base de donnée de votre ancien Joomla pour l'adapter et l'insérer sur la plateforme la plus récente.
Note
Il s'agit d'un hack, à savoir la modification d'un fichier de l'extension mtwMigrator, version 0.2.1. Il se peut que les développeurs de l'extension intègrent des modifications et/ou des améliorations dans les versions suivantes, rendant ce tutoriel obsolète. Dans la mesure du possible, nous nous chargerons d'éditer l'article en conséquence.
Modifier le composant mtwMigrator afin de conserver ses articles multipages
OUVRIR
administrator/components/com_mtwmigrator/models/migrate.php
TROUVER ligne 340$data[$i]->alias = JFilterOutput::stringURLSafe($data[$i]->title);
AJOUTER APRÈS$data[$i]->fulltext = str_replace('{mospagebreak}','<hr class="system-pagebreak" />', $data[$i]->fulltext);
// Replace {mospagebreak title=The page title} -> <hr class="system-pagebreak" title="The page title" />
$data[$i]->fulltext = preg_replace('/{mospagebreak title=([^\}]*)}/','<hr class="system-pagebreak" title="\1" />', $data[$i]->fulltext);
// Replace {mospagebreak heading=The first page} -> <hr class="system-pagebreak" alt="The first page" />
$data[$i]->fulltext = preg_replace('/{mospagebreak heading=([^\}]*)}/','<hr class="system-pagebreak" alt="\1" />', $data[$i]->fulltext);
// Replace {mospagebreak title=The page title&heading=The first page} -> <hr class="system-pagebreak" title="The page title" alt="The first page" />
$data[$i]->fulltext = preg_replace('/{mospagebreak title=([^\& ]*)&heading=([^\}]*)}/', '<hr class="system-pagebreak" title="\1" alt="\2" />', $data[$i]->fulltext);
// Replace {mospagebreak heading=The first page&title=The page title} -> <hr class="system-pagebreak" title="The page title" alt="The first page" />
$data[$i]->fulltext = preg_replace('/{mospagebreak heading=([^\&]*)&title=([^\}]*)}/', '<hr class="system-pagebreak" title="\2" alt="\1" />', $data[$i]->fulltext);
SAUVEGARDER
Et voilà ! Vous pouvez désormais lancer la migration de votre plateforme Joomla avec le composant mtwMigrator, sans perdre les articles multipages écrit auparavant.