Forum CMS Made Simple FR

Version complète : ContentPreCompile et paramètres d'url de module
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.

HevyRemy

Hello à tous les dev !

Suite à une demande implicite d'un client (et aussi parce que ça me paraît indispensable), j'ai entamé le développement d'un module ("PageSplitter") qui construirait un index de page à partir de marqueurs simples insérés dans le contenu lors de l'édition.
Cette opération de construction d'index et affichage de sections particulières est une opération faite sur le contenu avant le traitement par Smarty, via ContentPreCompile. Le module CodeMangler m'a aidé quant à la réalisation de ce type d'opération.

La partie "insertion de marqueur" est ok, aucun souci pour ce nouveau plugin TinyMCE (une simple variante du plugin AdvHR).

Retrouver les marqueurs dans le contenu et générer un index à partir des infos de base de la page et des infos contenus dans les marqueurs, c'est pas sorcier.

Les différentes entrées de l'index généré contiennent l'URL de la page courante, URL à laquelle a été un rajouté (à la main) un paramètre permettant de n'afficher qu'une section particulière de l'ensemble du contenu.
J'ai donc des URL de ce style :
Code :
http://www.example.com/index.php?page=mapage&pagesection=2
Le truc, c'est que les paramètres rajoutés en URL ne sont pas pris en compte, et donc on se retrouve toujours avec tout le contenu affiché par défaut (au lieu d'une section en particulier).
Vu que c'est un module qui de dispose pas de méthodes d'action classiques comme "default" ou autres (il n'y a qu'un événement avant compilation des templates, dans un fichier nommé event.Core.ContentPreCompile.php), impossible d'utiliser la méthode CreateLink() pour générer les liens.

J'ajoute que lesdits paramètres supplémentaires des URL ont bien été déclarés dans la classe du module.

Auriez-vous une astuce pour ce désagrément ? Je n'ai rien trouvé de très concluant dans l'API.

Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS : 1.7.0
#~ Version du MLE si existante : Non
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.7
#~ Installed Modules:
#~ * CMSMailer: 1.73.14
#~ * FileManager: 1.0.2
#~ * MenuManager: 1.6.2
#~ * ModuleManager: 1.3.3
#~ * News: 2.10.4
#~ * nuSOAP: 1.0.1
#~ * Printing: 1.0.4
#~ * Search: 1.6.2
#~ * ThemeManager: 1.1.1
#~ * TinyMCE: 2.6.5
#~ * Album: 0.9.3
#~ * LandManager: 0.1
#~ * CodeMangler: 0.1.2
#~ * Album: 0.9.3
#~ * Captcha: 0.4
#~ * CGExtensions: 1.18.1
#~ * SiteMapMadeSimple: 1.2.1
#~ * Quotes: 0.1.2
#~ * Questions: 1.0.3
#~ * PageSplitter: 0.1
#~ Config Information:
#~ * php_memory_limit:
#~ * process_whole_template: false
#~ * max_upload_size: 128000000
#~ * default_upload_permission: 664
#~ * assume_mod_rewrite: false
#~ * page_extension:
#~ * internal_pretty_urls: false
#~ * use_hierarchy: true
#~ Php Information:
#~ * phpversion: 5.3.1
#~ * md5_function: On (Vrai)
#~ * gd_version: 2
#~ * tempnam_function: On (Vrai)
#~ * magic_quotes_runtime: Off (Faux)
#~ * E_STRICT: 0
#~ * E_DEPRECATED: 0
#~ * memory_limit: 128M
#~ * max_execution_time: 60
#~ * safe_mode: Off (Faux)
#~ * session_save_path: W:\xampp\tmp (0777)
#~ * session_use_cookies: On (Vrai)
#~ Server Information:
#~ * Server Api: apache2handler
#~ * Server Db Type: MySQL (mysqli)
#~ * Server Db Version: 5.1.41
#~ ----------------------------------------------
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
No url, no cry Wink
Je crois tu devrais demander ça sur le .org

HevyRemy

En effet ^^ Par contre, je laisse ce sujet ouvert si des éléments de réponse apparaissent (ça pourra servir à d'autres dev, qui sait ?) Wink