We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 15001
    • 697 Posts
    Bonsoir à tous,

    J’aimerais lancer ici une discussion sur la productivité avec MODx.
    Quels trucs et astuces pour aller plus vite ?

    J’avoue au passage mon ignorance en la matière.

    Les CMS (CMF) sont souvent présentés comme la panacée en terme de productivité, ce qui me laisse parfois sceptique.

    Pour un site d’une certaine importance, avec de la répétitivité au niveau des mises en page les CMS présentent des avantages indéniables. J’apprécie beaucoup la souplesse de MODx car je viens du "monde du codage manuel".

    Cependant, voilà, mon ordinateur n’est pas une bête de concours et il faut généralement plusieurs secondes avant que ne soit enregistré un modèle ou un document modifié. Même topo lors du chargement d’une image avec FCKEditor : il faut quelques secondes pour afficher le contenu des sous-dossiers, puis ensuite pour sauvegarder le document dans lequel l’image a été insérée.
    Pour des sites de grande taille c’est vraiment long et ça donne l’impression de dormir face à son écran.

    Pour certaines modifications de code, j’ai remarqué qu’il est plus confortable de copier-coller le contenu à modifier de MODx vers un éditeur syntaxique classique, puis vice-versa. (Ceci malgré l’existence du plugin EditArea.)

    Parfois, je me prend également à rêver d’un simple tableau Excel qui listerait dans une colonne les titres des documents et dans une seconde colonne l’url des images à insérer (valeur de variables de modèle) puis permettrait d’un seul clic la mise à jour des documents.

    Un export-import des valeurs des variables de modèles de tous les documents (pagetitle, longtitle, introtext, content, variables utilisateur) dans un tableur serait vraiment génial.

    Voilà. La discussion est ouverte. A vous la parole !
    • Pour augmenter ma productivité, j’utilise MODx, justement !!!

      - Je saisis tout mon code PHP HTML CSS Javascript dans TextMate ou Coda, ça dépend de mon humeur.
      - les codes sont dans des fichiers appelés avec des includes, parce que c’est moins dangereux que de faire des copier coller entre TextMate et le manager (genre écraser d’un copier-coller le super snippet qui portait presque le même nom que le template… je l’ai déjà fait)
      - ensuite pour une grosse base de données, écrire un petit script pour convertir un .CSV en document peux faire gagner pas mal de temps.

      MODx me permet de pas avoir à réinventer la roue à chaque fois, en me donnant un max de liberté.
      MODx me permet de créer une admin riche et qui fonctionne (template variables…) en 10 minutes chrono !
      MODx me permet d’ajouter mes fonctionalités perso facilement (et j’ai pas encore gratté Revolution…)
      MODx c’est de la balle !

      tiens, pour te montrer un exemple de truc permettant de se faciliter la vie, j’ai fait ça récemment :
      (une méthode alternative pour modifier le classement des documents (menuindex)

      => http://techzone.kurtzdev.com/modx_forum/moduleDeTri.mov

      smiley

        made with MODx => France Douglas || Vintage Weekender
        • 11975
        • 2,542 Posts
        Hello,

        perso je gère aussi la majeure partie de mes ressources (templates, snippets, chunks) via des fichiers pour des raisons de commodités.
        Pour l’insertion de données, j’ai un script d’import via csv qui me permet de passer le moins de temps possible dans le manager.

        :-)

          Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
          • 15001
          • 697 Posts
          Merci.

          Stocker un maximum les composants dans des fichiers externes me paraît effectivement une solution plutôt efficace pour tout ce qui est du recyclage de code et des retouches avec un éditeur plus confortable que EditArea.

          J’utilise déjà des fichiers externes pour les configurations de Wayfinder et j’ai vu que certains snippets appellent leur code avec un include().

          Sinon, je n’ai jamais testé les chunks externes.

          Je me suis mis à l’écriture de snippets; l’importation d’un fichier CSV avec un snippet ad-hoc semble effectivement une solution intéressante pour importer des données.

          @_lol_ : Il faut bien QuickTime pour voir ton exemple ?
            • 15001
            • 697 Posts
            _lol_ :
            "- les codes sont dans des fichiers appelés avec des includes"

            heliotrope :
            "perso je gère aussi la majeure partie de mes ressources (templates, snippets, chunks) via des fichiers pour des raisons de commodités."

            Effectivement, ça vaut le coup. J’ai remarqué qu’on gagne considérablement de temps en ayant un fichier de projet qui liste tous les fichiers textes externes comme les configurations de snippets, les feuilles de style, etc.
            (Des petits éditeurs syntaxiques comme www.CrimsonEditor.com font très bien l’affaire.)

            Comme je modifie souvent mes modèles, j’aimerais également pouvoir stocker leur code dans un fichier externe afin d’éviter des copier-coller.

            Je ne sais pas si lorsqu’il parle d’includes, _lol_ fait référence à la fonction include() de PHP.
            N’ayant pas trop envie de placer des "echo" devant les lignes de mon code (X)HTML, quel est le moyen le plus simple d’importer le code (X)HTML d’un modèle ?

            J’ai essayé de placer @FILE "mon_modele.html" dans le champ "Code source du modèle" mais ça ne marche pas.
              • 11975
              • 2,542 Posts
              Salut,

              tu peux utiliser le code suivant pour gerer tes templates dans des fichiers externes.
              Appelle le snippet uncached.
              <?php
              //[!getFileTemplate? &template=`tf-rubrique.tpl` &folder=`modx`!]
              $folder = isset($folder) ? $folder."/" : "";
              if ( !isset($template) || $template == "" ) return "No file specified."; //check if there's a file given.
              
              $toFile = $modx->config['base_path'] ."assets/templates/".$folder.$template; 
              
              //Start the buffer
              ob_start();
              
              //include
              include $toFile;
              
              //get contents from the buffer
              $ob_contents = ob_get_contents();
              
              //and kill/delete the buffer
              ob_end_clean();
              
              //return it to MODx
              return $ob_contents;
              ?>
              


              :-)
                Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
              • Alors en fait, je rectifie/complète :

                - mes templates et mes chunk sont eux toujours dans MODx, car en effet, comme toi, j’ai pas trouvé le moyen simple de les conserver sous forme de fichier facilement (ou alors à l’arrache avec une TV, et là le @FILE / @CHUNK, mais ça devient n’importe quoi…).

                Donc en fait, je pars toujours des fichiers Photoshop des graphistes, je prépare toutes mes images, et les range hiérarchiquement dans un dossier au nom du site/client dans le dossier assets/templates/nomDuSite/ici.

                Ensuite, je passe dans Textmate, et j’écris le gabarit XHTML de la page, d’après les maquettes, que je "rempli" avec du faux texte au besoin comme sur les PSD.
                Une fois le html écrit, je le copie dans le template dans MODx, et je check la validation W3C.
                pour toute cette phase (en générale plutôt rapide), c’est le pire des moments niveau productivité avec MODx : je dois
                - cliquer sur le template,
                - copier/coller le contenu dans TextMate,
                - faire mes modifs,
                - copier/coller le code dans MODx,
                - enregistrer…
                pffff…

                Une fois mon template écrit par contre, ça va beaucoup mieux.

                - Je commence à faire l’habillage CSS,
                pour ça, j’utilise Coda (http://www.panic.com), je navigue directement sur le serveur, et édite mon fichier.css direct.
                - je fais Enregistrer (pomme-S),
                - je peux direct vérifier avec safari dont la fenetre et juste à côté (clic + pomme-R),
                - je switch sur le bureau d’à côté où j’ai Firefox ouvert, (CTRL-vers la droite…),
                - je reload la page (clic + pomme-R),
                et hop.
                une fois de temps en temps en cas de doute, je switch sur le 3ème bureau ou j’ai Parrallel et XP/Explorer …

                ça va relativement vite.

                Ensuite, je commence à remplacer le contenu fictif par chunks et snippets,
                dans Coda, je navig sur le serveur, je clic et fait éditer les fichiers avec TextMate (parce que pour ce qui est pas CSS, je le préfère à Coda).
                avec cette méthode, pareil,
                pomme-S -> clic sur le navigateur -> pomme-R et je vois le résultat de ce que j’écrit dans mes fichiers PHP.

                Ça va très vite.

                En fait, je me rends compte qu’un élément essentiel de "ma productivité", c’est ma machine et son OS. Ya pas à tortiller,
                avec de bons outils, on travail tout de suite mieux, plus facilement, plus rapidement.



                Arrrrrggg !!!
                @Heliotrope => MERCI, si ça marche, c’est trop top mortel !!
                  made with MODx => France Douglas || Vintage Weekender
                • (et pis faut aussi voir ce qu’on pourra faire avec Revolution, mais je dois avouer après installe de celui-ci que je suis un tantinet largué avec…)
                    made with MODx => France Douglas || Vintage Weekender
                    • 15001
                    • 697 Posts
                    Salut Helio,

                    C’est vraiment un code du tonnerre que tu nous propose là ! kiss
                    Mille merci. J’ai testé et ça marche impec.

                    Naturellement, depuis le modèle, les appels de snippets doivent être en mode "mettre en cache" ([[...]]).

                    Au fait, il me semble qu’un appel de snippet [[...]] placé à l’intérieur d’un appel [! ... !] se comporte lui aussi comme un appel dont le résultat n’est pas mis en cache. Exact ?

                    @_lol_ : J’ai été intéressé de voir que tu stocke apparemment tous tes clients dans une même installation de MODx. Pour ma part, j’ai l’habitude de dupliquer mes installations de MODx et de ne garder pour chaque client que les configurations nécessaires (p.ex. pour les snippets), mais naturellement ça grignote l’espace de mon disque dur. Avec le code d’heliotrope, je me rend compte du potentiel à avoir un dossier par client dans le dossier "templates".

                    La question que je me pose c’est quant aux migrations de site. Utilises-tu un dossier par client dans
                    - assets/images,
                    - assets/snippets/wayfinder/config,
                    etc. ?

                    Pour les sauvegardes de fichiers, j’imagine que tu sauves les ressources des sites de tous tes clients en sauvant la racine de MODx.

                    Mais comment t’y prends-tu pour les migrations de sites ?
                    Dossier par dossier ?

                    Tu parles de validation W3C. As-tu installé un validateur en local ou transfères-tu régulièrement tes fichiers sur le serveur d’hébergement final ? J’ai remarqué que dans le second cas, c’est assez gourmand en temps.

                    Ce qui me prend toujours pas mal de temps, c’est l’installation de MODx chez un hébergeur, plus précisément le transfert FTP et surtout la mise à jour de fichiers distants (p. ex. une configuration de wayfinder, "enfouie" dans assets/snippets/wayfinder/config. Quelqu’un connaîtrait-il un bon synchronisateur FTP pour Windows XP ?

                    J’ai essayé SyncBack (en version gratuite). La configuration est très souple, mais je n’ai jamais réussi à savoir où ce logiciel en était dans la comparaison et la synchronisation des fichiers; pas de barre de progression, pas d’info sur l’avancement du processsus (ou alors j’ai manqué quelque chose).
                    • @JUL :

                      c’est pas tout à fait ça : j’ai bien un MODx par site, un MODx = un site/client.

                      Par contre, tout snippet/plugin/template… propre au site en question est systématiquement rangé dans un dossier à ce nom.

                      Parce que chaque fois que je met à jour/change le site de serveur ou même backup, je sais exactement ce que j’ai rajouté pour CE site.

                      Et un backup pour moi, c’est :
                      - duplication de tout le dossier MODx,
                      - Export depuis PhpMyAdmin de la base. (ah oui, toute table externe que je créé à systématiquement le préfixe "modx_", ainsi, tout est bien rangé, et ma table perso apparaît même dans le manager est backupable depuis là (mais je préfère phpMyAdmin, je suis plus sur de ce que je fais avec).


                      pour la validation, je valide toujours ici => http://validator.w3.org/, ou avec le TotalValidator de firefox.
                      J’utilise bien sur les inspecteurs DOM de FireFox et WebKit, et je pleure sinon toujours un peu avec IE 7 et IE6… mais moins qu’à une époque (quand le code est "simple" et valide, on réduit pas mal les risques de ’disfonctionnement’ d’IE. <- ça par exemple c’est une perte de productivité assez importante à mon niveau. Je fais mon site fonctionnel et bien aligné nikel pour tout les navigateurs (respectant les règles…) et après, je repasse une couche pour tout réaligner ou corriger le javascript juste pour IE.



                        made with MODx => France Douglas || Vintage Weekender