Migration et bugs de Joomla 1.5.18 Imprimer
Note des utilisateurs: / 2
MauvaisTrès bien 
Écrit par Pierre   
Lundi, 31 Mai 2010 17:36

Je migre de Joomla 1.5.15 sur Joomla 1.5.18

Aujourd'hui le 06 / Dec / 22

Bienvenue sur le site de FNAUT Pays des Maures

1) Télécharger les patchs de Joomla 1.5.x à 1.5.18 ( télécharger )

2) Décomprimer le Zip.

3) Vérifier que htaccess.txt est bien identique au vôtre. Le rendre identique.

4) Le patch de la ligne 106 n'ayant pas été reporté, il est conseillé de l'y reporter dans la nouvelle version.
Ceci pour éviter : erreur : www/components/com_content/helpers/route.php on line 106

// modification préconisée par flyo6 le 02 janvier 2010

if(is_array($items))
{

foreach($items as $item)
{

if ((@$item->query['view'] == $needle) && (@$item->query['id'] == $id)) {

$match = $item;
break;

}

}

}

/*


foreach($items as $item)
{

if ((@$item->query['view'] == $needle) && (@$item->query['id'] == $id)) {

$match = $item;
break;

}

}

*/

// fin de modification préconisée par flyo6 le 02 janvier 2010

5) Le patch de la ligne 106 n'ayant pas été reporté, il est conseillé de l'y reporter dans la nouvelle version.
Ceci pour éviter l'erreur : www\components\com_content\views\article\view.html.php on line 156

Il faut remplacé l'instruction 156 :
if($menu && $menu->query['view']!= 'article')

par
if(is_object($menu) && isset($menu->query['view']) && $menu->query['view'] != 'article' )

6) Le patch de la ligne 118 n'ayant pas été reporté, il est conseillé de l'y reporter dans la nouvelle version.
Ceci pour éviterl'erreur : www\components\com_content\views\category\view.html.php on line 118

Il faut remplacé l'instruction 118 :
//set breadcrumbs
if(is_object($menu) && $menu->query['view'] != 'category') {

$pathway->addItem($category->title, '');

}

modifiées de la sorte :

//set breadcrumbs
if(is_object($menu) && isset($menu->query['view']) && $menu->query['view'] != 'category') {

$pathway-> addItem($category->title, '');

}

On peut regretter que des erreurs de programmation connues n'aient pas été corrigées dans la nouvelle version Joomla 1.5.18.

Il aurait été intéressant de connaître les modifications apportées au logiciel afin de se prémunir de toutes désagréables surprises

7) Erreur 402 sur lancement d'un PDF interne.
Alors qu'avec la version 1.0.7 de Joomla, on pouvait placer les PDF dans un répertoire de son choix, avec les versions 1.5.15 et supérieures, les PDT doivent être inclus dans le répertoire /images ou un de ces sous-répertoires.
Sans respecter cette règle non écrite, l'appel à un PDF hors du répertoire /images provoque l'erreur 402.

8) Afin d'écrire des routines PHP dans les articles Joomla, j'ai trouvé dans Joomlafrance le plugin kl-php que j'ai intégré aux plugins de la version 1.5.18.
OOH ! surprise rien ne marche comme prévu.

À un message sur Forum, Jovdev conseilla sourcerer .
Cela marche.

9) Lors de la création d'un élément de menu, faîtes attention aux minuscules et majuscules.
Si dans le nom du menu utilisé, vous avez une majuscule (ou plusieurs) comme "Carnoules-Gardanne", Joomla peut être susceptible de vous les remplacer par des minuscules comme "carnoules-gardanne".
Vous ne voyez rien, car Joomla vous affiche bien des majuscules mais l'élément de menu pointe sur le menu "carnoules-gardanne" sans majuscule et sur ne s'affiche dans le menu.
Vous pouvez vérifier alors dans la gestion des modules dans la liste déroulante "sélectionner un menu".

lLa seule façon de vous sortir de ce guépier est d'intervenir au niveau de phpMyadmin ou phpMySQL.

 

Fin le 30 septembre 2010

10) Penser à réinstaller les plugins et les components additionnels:
Sourcerer F:\Copy\Programme d'installation\joomla\Sourcerer-v2.7.1.zip
Component F:\Copy\Programme d'installation\joomla\plugin_component.1.9.zip
Rsmonials F:\Copy\Programme d'installation\joomla\com_rsmonials_1.5.3.zip

 

 

 

11) La fonction " preg_match_all " de PHP 5.2.9 présent dans le site mutualiste de online.net est buggé . Le résultat escompté peut ne pas être obtenu dans le plugin-component.
Il y a lieu alors de remplacer les lignes 171 et 172 :


$matches = array();
$cnt = preg_match_all($this->regex,$text,$matches,PREG_OFFSET_CAPTURE | PREG_PATTERN_ORDER);


de la fonction _replace par :


$text2 = strstr($text,"com_rsmonials");
if ($text2) {

$u =& JFactory::getURI();
$ID = JRequest::getInt('id',0);
$user =& JFactory::getUser();
$usr_id = $user->get('id');
$LIMITSTART = JRequest::getInt('limitstart',0);
$pos = strpos($text2,"}");
$text1 = substr($text2,0,$pos+1);
}

$matches = array();
$cnt = preg_match_all($this->regex,$text,$matches,PREG_OFFSET_CAPTURE | PREG_PATTERN_ORDER);

if ($text2) {

$text2 = strstr($text,"{ C omponent url='");
$pos = strpos($text2,"}");
$text1 = substr($text2,0,$pos+1);
if (strstr($text1, "echo")) {

$textamp = strstr($text2,"&amp");
$I = 0;
$text_etudie = $text1;
$I_Fin = strlen($text1);
$text5 = "" ;
if ($textamp) {

$separat = "&";
}

else {

$separat = "&";
}

$pos1 = strpos($text_etudie, "&");
$text6 = substr($text_etudie,0,$pos1);
$text5 = $text5 . $text6;
$I = $I + strlen($text6);
$text_etudie = strstr($text_etudie,$separat);
for ($t=0 ;$t<=3 ;$t++ ) {

$pos1 = strpos($text_etudie, ";");
$pos2 = strpos($text_etudie, "=");
$text6 = substr($text_etudie,$pos1+1,$pos2- $pos1);
switch ($text6){

case 'cid=';

$text5 = $text5 . "&" . $text6 . $ID;
break;

case 'usr=';

$text5 = $text5 . "&" . > $text6 . $usr_id;
break;

case 'limitstart=';

$text5 = $text5 . "&" . $text6 . $LIMITSTART;
break;

}

$I = $I + $pos2 ;
$pos1 = strpos($text_etudie, "=");
if ($pos1) {

}

else {

$text1 = $text5 . "'}";
$pos = strpos($text1,"}");
$text3 = substr($text1,strlen("{ C omponent url='"),$pos - strlen("{ C omponent url='")-1);
break;
}

$text6 = strstr($text_etudie,"=");
$I= $I+ $pos1;
if ($I >= $I_Fin) {

$text1 = $text5 . "'}";
$pos = strpos($text1,"}");
$text3 = substr($text1,strlen("{ C omponent url='"),$pos - strlen("{ C omponent url='")-1);
break;
}

$pos1 = strpos($text_etudie,$separat);
$text_etudie = strstr($text6,$separat);
$I = $I + $pos1;
if ($I >= $I_Fin) {

$text1 = $text5 . "'}";
$pos = strpos($text1,"}");
$text3 = substr($text1,strlen("{ C omponent url='"),$pos - strlen("{ C omponent url='")-1);
break;

}

}

}

else {

$text3 = substr($text2,strlen("{ C omponent url='"),$pos-strlen("{ C omponent url='")-1);
}

$matches[0][0][0] = $text1;
$matches[0][0][1] = strpos($text,"{ C omponent url='");
$matches[1][0][1] = -1;
$matches[2][0][0] = $text3;
$matches[2][0][1] = strpos($text,"{ C omponent url='")+strlen("{ C omponent url='");
$matches[3][0] = "";
$cnt = 1;
}

ainsi que la ligne 176 :


$text = preg_replace($this->regex, $content, $text, 1);

par :


if ($text2) {

$text = substr($text,0,$matches[0][0][1]) . $content;
}

else {

$text = preg_replace($this->regex, $content, $text, 1);
}




Cette modification dont le but est de corriger un bug au niveau fonction PHP, pallie à un niveau supérieur un bug de bas niveau. Ceci est contraire à toutes les règles de programmation. Comme il n'est pas possible de corriger le bug au niveau de PHP dans un site mutualiste de online.net auquel nous n'avons pas accès, cette correction est propre à nos besoins et ne doit pas être reprise pour argent comptant.

CAUTION : Pour des raisons de compatibilité d'affichage component derrière une accolade a été remplacé par C omponent

Fin le 13 mars 2011

 

FNAUT Pays des Maures

Commentaires sur cet article :


<< Début Précédent 1 Suivant Fin >>

Page 1 sur 1


Pour saisir un commentaire,
Veuillez vous connecter sur la page d'accueil. S.V.P.

 


Customised and adapted by Fnautpaysmaures.com - Janury 2011

 

Mise à jour le Mercredi, 16 Mars 2011 20:52