ListIt2 et CMSMS 1.12 -
jissey - 13/04/2015
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.12
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~
Bonjour à tous,
ListIt2 ne fonctionne plus avec la dernière version 1.12 de CMSMS.
Comme les dev ont abandonnés le navire sans nous laisser les clés du camion, on va être obligé de hacker le module.
Chose à ne pas faire dans des circonstances normales :|
Ça se passe dans le fichier ListIt2.module.php autour de la ligne 340 et 350.
Il faut ajouter
Code :
[== Indéfini ==]
$smarty->no_absolute_templates = FALSE;
...
...
$smarty->no_absolute_templates = TRUE;
dans la function ModProcessTemplate avant le foreach($files as $file) ce qui devrait donc donner :
Code :
[== Indéfini ==]
public function ModProcessTemplate($tpl_name)
{
$ok = (strpos($tpl_name, '..') === false);
if (!$ok) return;
$smarty = cmsms()->GetSmarty();
$config = cmsms()->GetConfig();
$smarty->no_absolute_templates = FALSE;
$result = '';
$oldcache = $smarty->caching;
$smarty->caching = $this->can_cache_output() ? Smarty::CACHING_LIFETIME_CURRENT : Smarty::CACHING_OFF;
$files = array();
$files[] = cms_join_path($config['root_path'],'module_custom',$this->GetName(),'templates',$tpl_name);
$files[] = cms_join_path($this->GetModulePath(),'templates',$tpl_name);
$files[] = cms_join_path(LISTIT2_TEMPLATE_PATH,$tpl_name);
foreach($files as $file) {
if(is_readable($file)) {
$result = $smarty->fetch($file);
break;
}
}
$smarty->caching = $oldcache;
$smarty->no_absolute_templates = TRUE;
return $result;
}
Jo Morg va me trouver une solution plus sécurisée pour
Easylist que je ne peux que vous encourager à tester
ListIt2 et CMSMS 1.12 -
Ouik - 13/04/2015
Heureusement que tu as prévenu, et que je ne me suis pas jeté sur la mise à jour... Merci !
Et quand tu dis "plus sécurisée", ça veut dire que ce hack n'est pas vraiment sûr ?
ListIt2 et CMSMS 1.12 -
jissey - 13/04/2015
Oui, on m'a prévenu par le bug tracker et j'ai tout de suite cherché une solution.
voir ici pour le débat sur la sécurité :
http://forum.cmsmadesimple.org/viewtopic.php?f=7&t=72707
ListIt2 et CMSMS 1.12 -
Ouik - 13/04/2015
Vu. Et la solution qu'il va te fournir pour Easylist pourrait s'adapter à LI2 ? Ou c'est même pas la peine d'y penser ?
ListIt2 et CMSMS 1.12 -
jissey - 13/04/2015
Je pense qu'elle devrait être valable pour les 2.
ListIt2 et CMSMS 1.12 -
Ouik - 14/04/2015
Bon, dans ce cas je vais pas me précipiter pour la mise à jour d'un de mes sites utilisant intensivement LI2.
ListIt2 et CMSMS 1.12 -
jissey - 14/04/2015
Hello,
Jo Morg (super sympa) m'a filé les modifs pour EasyList.
C'est ok.
Pour
ceux celui qui teste (je ne vais pas me plaindre, proportionnellement aux nombre de testeurs pour CMSMS, je suis gâté!) il faut le reprendre depuis Github, j'ai fait beaucoup d'autres modifs, et donc, j'ai dû générer d'autres bugs :p .
Concernant ListIt, je ne fais pas le support, mais en appliquant déjà la méthode que j'ai indiquée plus haut, ça fonctionne et c'est sécurisé quand même.
Sinon, il faut refaire les modifs depuis EasyList :
Copier-coller lib/class.EasyListTemplateResource.php
Dans EasyList.module.php, copier-coller la ligne 77 et la function ModProcessTemplate de la ligne 328.
Enjoy
<EDIT>PS : j'ai pas testé LI2. </EDIT>
ListIt2 et CMSMS 1.12 -
Ouik - 14/04/2015
Merci à toi ! Je vais faire ça dès que je peux (après dossiers, devis, etc. et avant quelques jours de semi-repos).