@Freudd

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 présume, pour des questions de sécurité tu va dire, que les pages ne sont pas conçues pour y intégrer du PHP (j'ai bien sûr essayé - Lol !). Alors, si l'on voulait l'utiliser pour une raison quelconque. Écrire "Hello World" par exemple.

La soluce serait (peut-être) de créer une page externe au CMS avec le template pour décorer mais c'est une bidouille à la Jackos qui a réussie quelquefois.

Si il y a un remède je suis preneur.

J'ai parcouru la doc dev en https://soosyze.com/documentation/soosyze/1-0-0/template mais c'est (encore) trop compliqué pour moi.

A propos; Il y est fait état d'un certain TodoModule/ Un truc ancien qui a évolué ou qui n'existe plus ?

    @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.

      Freudd c'est juste que sortir de l'architecture mise en place par le framework et le CMS m'empêche de t'aider correctement.

      C'est exactement pour cela que je fais des complexes car je sais que tu as autre choses à faire que de passer du temps à expliquer des trucs qui sortent du cadre mais ça va aller. Je vais m'efforcer de ne pas te distraire.

      Du coup, je vais m'attaquer au module StarteKit mais il me faudra du temps car je ne suis pas codeur et parle le php comme l'anglais. J'en comprends quelques mots et sais en lire d'autres. Pour l'écrire cela m'est déjà plus compliqué. 😉

      Le module en question fera l’affaire quand j'aurai compris ce qu'est "un Contrôleur". La doc à destination des développeurs n'ayant vocation à l'enseigner et ce forum n'étant pas un centre d'apprentissage, je vais faire de mon mieux. Par pure curiosité et intérêt amical pour ce CMS.

      Freudd Tu n'es pas obligé de tous comprendre

      Ah ! Que cela sonne doux à mon oreille mon ami. 🙂

        jackos Le module en question fera l’affaire quand j'aurai compris ce qu'est "un Contrôleur".

        Un contrôleur (Controller) contient la logique concernant les actions effectuées par l'utilisateur.

        En l'occurrence Soosyze utilise des objets PHP comme contrôleur.
        Et chaque méthode (ou fonction de l'objet PHP) correspond à l’exécution d'une requête.

        Cette exécution peut s'expliquer avec le schéma suivant :

        Dans l'exemple tu peux voir que la requête possède une URL admin/node/1/edit et une méthode GET qui sert généralement à récupérer de la données.

        Cette réponse sera de la données HTML générer à partir d'une template : le formulaire d'édition de la node 1.

        Je te remercie pour ces explications mais crains de ne pas être assez avancé pour comprendre

        J'ai installé Starterkit, rencontré les Lien du formulaire de création et Lien du formulaire d'édition, cliqué sur chacun, entré des titres mais cela s'est arrêté là.

        Je suis retourné dans la doc mais elle s'adresse quand même à des gens qui ont la science et je ne vais pas te mobiliser pour apprendre tout ça. Peut-être quand tu aura plus de temps et que je serai plus familiarisé avec ces bonnes choses.

        Merci quand même. 🙂

        jackos Cette doc n'est donc plus valable pour bêta 1.2 ?

        Non elle n'est plus à jour pour la version 1.0.0-beta1.2 😅 mais le module starterkit lui est à jour.
        En attendant, c'est cool que tu as essayé 😉

        Les changements sur la documentation "Hello World" sont :
        L'utilisation d'un routeur en PHP et que les constante de configuration ne sont plus utilisées.

        Pour le routeur PHP regarde le fichier conf/routes.php dans le starterkit, la syntaxe ne diffère pas beaucoup

        Ancienne version en JSON :

        {
            "todo.index": {
                "methode" : "GET",
                "path": "todo/index",
                "uses": "TodoController@index"
            }
        }

        Nouvelle version en PHP :

        <?php
        
        use Soosyze\Components\Router\Route as R;
        
        R::useNamespace('SoosyzeExtension\TodoModule\Controller');
        
        R::get('todo.index', 'todo/index', 'TodoController@index');

        Mais attention l'exemple donné dans la documentation correspond au module TodoModule, si tu pars du starterkit il faut utiliser le namespace correspondant :

        <?php
        
        use Soosyze\Components\Router\Route as R;
        
        R::useNamespace('SoosyzeExtension\Starterkit\Controller');
        
        R::get('starterkit.index', 'starterkit/index', 'Starterkit@index');

          Tiens, petite question,
          si la documentation était à jour, tu serais prêt à faire le tutoriel de A-Z ?

            Freudd si la documentation était à jour, tu serais prêt à faire le tutoriel de A-Z ?

            Je commence par cette question (avant les miennes) 😉

            Oui, écrire des tutoriels (pour débutants) ça me branche et c'est d'ailleurs une de mes spécialités.

            Une de mes œuvres (très vieille) est ici.

            Freudd Pour le routeur PHP regarde le fichier conf/routes.php dans le starterkit, la syntaxe ne diffère pas beaucoup

            Tu veux dire Config/routes.php n'est-ce pas ?

            Pour le reste, j'y suis dessus et je ne sais pas par quel miracle, je commence [peut-être] à comprendre.

            Note : Justement, pour les tutos, il faut que je comprenne bien d'abord. Lol !

              En fait, c'est une manie chez moi.

              Quand je découvre un nouveau soft, je liste les éléments en guise de pense-bête et petit à petit, cela devient une doc.

              Quand je suis content et sais bien me servir du truc, je mets en ligne à destination des newbees qui passent après moi.

              Car, elle n'est pas à jour en ligne, par contre elle l'est jusqu'au chapitre 7 (Routeur) sur mon ordinateur.

              Si tu veux je peux les mettre à disposition sur GitHub que tu puisses lire les chapitres :

              • 1-4 (C'est de la présentation assez générale)
              • 5 Architecture d'un module,
              • 6 Hello World,
              • Et 7 Routeur.

              Si tu arrives a assimiler ces 3 premiers points ça t'avancerais surement pas mal.

              jackos Tu veux dire Config/routes.php n'est-ce pas ?

              Oui je voulais dire Config/routes.php

              jackos Une de mes œuvres (très vieille) est ici.

              Sympa, je regarderais ça quand j'aurais un peu de temps 😉

                Bon, je commence à me mélanger les pinceaux entre Starterkit et TodoModule 🙁

                Je propose que nous en restions à Starterkit puisqu'il est fait pour ça (si j'ai bien compris) et si cela te convient.

                Ok pour transférer sur GitHub si ça t'arrange mais ne me demande pas d'y faire des commits (je ne sais d’ailleurs pas ce que ça veut dire) car je ne le maîtrise pas.

                Ensuite, tu m'aide à arriver à afficher au moins un "Hello World !" et quand c'est fait, j'aurai compris pas mal de choses le but étant...

                Freudd Si tu arrives a assimiler ces 3 premiers points ça t'avancerais sûrement pas mal.

                Ce travail ne sera pas perdu car nous pourrons le mettre à disposition des nouveaux arrivant car dans l'état, si tu n'est pas DEV, tu pers le bénéfice de ces fonctionnalités et c'est bien dommage pour l'intérêt de l'application.

                  jackos Ok pour transférer sur GitHub si ça t'arrange mais ne me demande pas d'y faire des commits (je ne sais d’ailleurs pas ce que ça veut dire) car je ne le maîtrise pas.

                  Ne t'inquiète pas, je ne te demanderais pas ça 😉

                  jackos Je propose que nous en restions à Starterkit puisqu'il est fait pour ça (si j'ai bien compris) et si cela te convient.

                  Je comprends que tu puisses te mélanger les pinceaux,

                  • TodoModule c'est le module créer pendant le tutoriel,
                  • Starterkit c'est un module 'standard' fournit à la fin du tutoriel pour ceux qui veulent créer un nouveau module sans repartir de zéro.

                  Je viens de mettre à jour les premiers chapitres du tutoriel, j'ai pris le temps de tester le code écrit ça devrait fonctionner. Je ne suis pas à l’abri d'une coquille ou d'éventuelles fautes, je n'ai pas vraiment eu le temps de relire 😛

                  Donc, si tu veux bien comprendre Starterkit, il faut que tu passes par l'étape TodoModule, je t'invite à lire et réaliser les chapitres :

                  j'ai cru lire sur une de tes vielles œuvres quelque chose ressemblant à :

                  Ne les parcourrez pas en diagonale car vous perdriez beaucoup d'informations absolument capitales.

                    Loin de moi l'idée de parcourir les diagonales comme un fou ou c'est l’échec assuré. Lol !

                    Bien, c'est un bon commencement et, dans le cadre de la préparation du chantier, je viens de créer un espace où, comme d'habitude, j'éditerai mes notes d'apprentissage qui se transformeront peu à peu en tutoriels mais cela va bien sûr prendre du temps d'autant plus que comme toi j'ai d'autres choses à faire.

                    https://tuto-soosyze.reseauk.info/

                    Je démarre ça pour me donner une base d'écriture et de classement de mes données et je m'occupe de "Hello World" par module interposé.

                    Ce dont j'aurais besoin, c'est de savoir comment tu a fait les menus de ta documentation.

                      jackos Ce dont j'aurais besoin, c'est de savoir comment tu a fait les menus de ta documentation.

                      • J'ai créé un menu,
                      • Mis le bloc de menu correspondant dans la sidebar,
                      • Ajouté une classe CSS dans l'édition du bloc,
                      • Et j'ai fait son style dans mon thème à partir de ma classe CSS 🕶️.

                        Bougrement compliqué et il faudra dans un lointain avenir un bloc dédié pour cela car n’oublions pas que les utilisateurs de CMS sont des grands fainéants qui veulent du tout cuit et que comme moi ils ne connaissent rien (ou si peu) au CSS.

                        Bon, je vais me débrouiller. De toutes façons, j'invente. 😉

                        Freudd Mis le bloc de menu correspondant dans la sidebar,

                        Un bloc à gauche sans doute ?

                        J'ai testé corrections en reprenant l'intégralité du code app/app_core.php de sous...

                        Avant de tester votre module, vous devez l’activer pour que SoosyseFramework puisse exécuter le code.

                        Rendez-vous dans le répertoire app, éditez le fichier app_core.php et ajoutez la ligne "TodoController" => new SoosyzeExtension\TodoModule\Controller\TodoController() à la fonction loadModules().

                        Cela donne ça : http://soosy.reseauk.info/?q=todo/index

                        Bien vue, j'ai corrigé et testé le code du fichier app/app_core.php il fonctionne à présent.
                        Un oublie de renommage 😉