Forum CMS Made Simple FR

Version complète : ListIt2 et CMSMS 1.12
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
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 Cool
Sad

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 ?
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...=7&t=72707
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 ?
Je pense qu'elle devrait être valable pour les 2.
Bon, dans ce cas je vais pas me précipiter pour la mise à jour d'un de mes sites utilisant intensivement LI2.
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 Big Grin

<EDIT>PS : j'ai pas testé LI2. </EDIT>
Merci à toi ! Je vais faire ça dès que je peux (après dossiers, devis, etc. et avant quelques jours de semi-repos).