@jackos,
jackos A propos; Il y est fait état d'un certain TodoModule/ Un truc ancien qui a évolué ou qui n'existe plus ?
Ce n'est pas un truc ancien, c'est le module qui est construit pendant le tutoriel de développement d'un module.
Malheureusement, j'ai n'ai pas mis à jour et simplifié le tuto depuis l'apha-9.
Je compte justement m'y atteler en plus de metrre à jour la FAQ entre la version beta2 et beta3.
jackos Dis-moi si je t'importune avec mes questions qui parfois sortent du cadre de ce que le CMS fait ou peut faire. Je ne serai pas vexé.
Je ne suis pas vexé ne t'inquiète pas pour ça, c'est juste que sortir de l'architecture mise en place par le framework et le CMS m'empêche de t'aider correctement.
Le CMS à une architecture MVC, c'est a dire qu'il y a un découpage entre le Modèle (les données), la Vue (les templates) et le Contrôleur (le code PHP qui exécute la logique du CMS)
Jusqu'à présent je t'ai donné des conseils en ce qui concerne la Vue.
Si tu veux exécuter du code PHP il faut utiliser un Contrôleur en suivant l'architecture du CMS.
Et pour ça rien de plus simple. Je t'invite à installer le module StarteKit https://soosyze.com/module/starterkit-module
Ce module fournit une base de code standard (après à toi de l'adapter).
Une fois installé est activé tu vas pouvoir exécuter du code dans les fonctions fournies du base.
Tu n'es pas obligé de tous comprendre de ce module, juste que le fichier Config\route.php
donne la correspondance entre l'URL et quel Contrôleur appel quelle méthode.
Exemple :
<?php
use Soosyze\Components\Router\Route as R;
R::useNamespace('SoosyzeExtension\Starterkit\Controller');
// à l'url monsite.fr?q=starterkit/index la méthode index du contrôleur Starterkit s’exécute.
R::get('starterkit.index', 'starterkit/index', 'Starterkit@index');
Donc le code suivant dans le fichier Controller\Starterkit
à la méthode index()
s’exécute :
public function index(ServerRequest $req)
{
$linkShow = self::router()->getRoute('starterkit.show', [ ':id' => 1 ]);
return self::template()
->view('page', [
'title_main' => t('Starterkit index')
])
->make('page.content', 'page-starterkit-index.php', $this->pathViews, [
'link_show' => $linkShow
]);
}
Si tu retournes quelque chose qui correspond à une chaine de caractère elle s'affichera. Mais tu peux aussi exécuter du code arbitraire.