![]() J.Juraverfrom Entre chaise et clavier... 3710 posts | Bonjour, pas tout compris du fonctionnement backend et frontend, mais je suis intéressé à tester la solution si une technique de test est proposée de manière simple. Les codes yacs sont un grand levier d'évolution pour yacs. Je ne m'attarde pas, j'ai mon yacs en double file...
![]() Yacs on my blog | Suivez le blog Yacs | Yacs Showroom | Plugin Firefox de recherche dans Yetanoz | |
![]() Alexis Raimbaultfrom Mulhouse Associate, 1900 posts |
J'ai ajouté une page pour ma solution. Alexis Raimbault webmaster free-lance |
![]() Alexis Raimbaultfrom Mulhouse Associate, 1900 posts | Un petit mot pour dire que j'ai revu le sujet et commencé à travailler dessus, avec une solution très proche du code proposé par Christophe, juste un peu plus d'enrobage. Elle se base sur la création d'une nouvelle classe, établissant l'interface d'un code yacs, à surcharger pour chaque type de code. la méthode principale, set_pattern_replace(&$pattern, &$replace) permet de définir les couples "expressions captées"/"code appelé". Elle est à surcharger. les classes dérivées contiendront ou pas une méthode render() selon le besoin. Le fichier de la classe devra se nommer selon le caneva "code_foobar.php". Je regarde également comment faciliter la maintenance des pages d'exemples de codes yacs. Un methode get_samples() permettrait à chaque classe de définir ses textes d'exemple. (y compris donc, des codes yacs perso) afin de faciliter cette rédaction, une methode format_sample() pourra prendre en charge le formatage d'une ligne d'exemple présentée en tableau dans les pages d'aide (et dont l'ensemble présente actuellement beaucoup de répétitions de code) j'ai pensé également à une méthode pour faciliter l'écriture des expressions régulières à injecter dans $pattern. Alexis Raimbault webmaster free-lance |
![]() Alexis Raimbaultfrom Mulhouse Associate, 1900 posts |
Christophe Battarel : d'accord pour réserver included aux scripts de projets externes. Selon ton idée de plugin on devrait alors avoir plugins/layouts, plugins/overlays, plugins/hooks, etc. mais je trouve qu'on s'écarte du fonctionnement de yacs. Une grande différence de yacs avec d'autres CMS est qu'il n'y a pas un seul script d'entrée (index.php) entrouré de modules mais des scripts pour chaque type de page affichée. Avec plugins et modules je sens que l'on va induire une confusion. Mais pour trancher il me faudrait savoir comment tu compte integrer tes "modules" avec les scripts actuels ? En tout cas je pense que la place des codes de control reste /codes. Je vais proposer les entrées d'une classe modèle "codeyacs" et le traitement associé à faire dans shared/codes.php. Si quelqu'un a le temps avant qu'il ne se gêne pas pour entamer le boulot.
Alexis Raimbault webmaster free-lance |
![]() Alexis Raimbaultfrom Mulhouse Associate, 1900 posts |
Jmarc : l'éditeur textarea propose déjà quelques raccourcis de code yacs. c'est donc imaginable. Alexis Raimbault webmaster free-lance |
![]() Jmarcfrom Cannes 821 posts | J'aime bien la simplicité de la solution de Christophe... en attendant une optimisation globale comme suggérée par Alexis. Personnellement, s'il faut revoir certaines choses sur la mise en oeuvre des codes yacs, je proposerais d'aller plus loin, d'un point de vue "ergonomie utilisateur". Il m'est difficile d'expliquer à mes contributeurs (pas très férus d'informatique) qu'ils peuvent utiliser des codes pour améliorer leurs contenus et qu'il faut qu'ils se plongent dans la liste des codes et de leurs exemples. Par contre, j'aimerais bien leur mettre une liste déroulante dans l'editeur wysiwyg qui leur permette d'insérer un code yacs dans leur contenu. La liste n'afficherait pas les codes yacs mais leur résultat :
Le code yacs serait alors automatiquement interprété dans l'éditeur Wysiwyg pour afficher le résultat dudit code (c'est ce que j'ai fait pour l'inclusion des images... mais sans utiliser le code yacs habituel). c'est pas simple à coder (je ne sais même pas si c'est faisable) mais cela permettrait de mettre la puissance des codes Yacs à la portée de tous |
![]() Christophe Battarelfrom Grenoble-Chambery 1041 posts |
Effectivement, cette solution a les qualités et les défauts de sa simplicité. Il faut la prendre comme un point de départ pour effectivement exploser le codes.php. Concernant l'arborescence, le répertoire included contient les scripts externes à yacs (tinymce, ckeditor, etc) et devrait d'ailleurs s'appeler libraries en toute logique. Par contre, il est suffisamment conséquent et spécifique pour ne pas aller le polluer avec autre chose. J'ai hésité entre un sous-répertoire plugins dans /codes et un répertoire générique plugins avec un sous-répertoire codes, solution que j'ai finalement choisie car elle permet de prévoir d'autres types de plugins et de refléter cette nouvelle modularité dans l'architecture de Yacs. J'envisageais également de coller dans plugins un répertoire modules qui contiendrait des modules optionnels pour yacs (par exemple pour le commerce électronique). Cette architecture avec un dossier /plugins, un /plugins/codes, un /plugins/modules, etc permettrait aussi de pouvoir développer simplement une console de gestion des plugins installés sans avoir à parcourir tous les répertoires de yacs. Christophe Battarel - Société altairis -
|
![]() Alexis Raimbaultfrom Mulhouse Associate, 1900 posts |
Hellow Christophe, Ensemble de remarques sur ta propostion : c'est assez simple, en touchant à peine à l'existant
A+ Alexis Raimbault webmaster free-lance |
![]() Christophe Battarelfrom Grenoble-Chambery 1041 posts | Merci de me transmettre ici vos retours et vos suggestions d'amélioration. Christophe Battarel - Société altairis -
|
![]() Christophe Battarelfrom Grenoble-Chambery 1041 posts | Bienvenue dans le groupe "Extensibilité des codes yacs" Christophe Battarel - Société altairis -
|
Projets «
Extensibilité des codes yacs
Pouvoir créer ses propres codes yacs sous forme de plugins
J'ai développé une méthode pour étendre les codes yacs sous forme de plugins.
Principe:
Dans la fonction render() de la classe Codes, on va parcourir le répertoire /plugins/codes/ et inclure les scripts trouvés.
Exemple:
Je fournis en pièce jointe le codes.php modifié, ainsi qu'un exemple de plugin : ![]()
codes.zip
Intégration:
La branche wheel a été mise à jour.
| Topic | Poster | Replies | Views | Last post | |
|---|---|---|---|---|---|
| | Règles de fonctionnement | Christophe Battarel | 0 | 515 | created by Christophe Battarel on June 25 2010 |
| | Codes yacs reloaded Proposition d'un nouveau mécanisme, à base d'une classe à dériver, et en s'inspirant de la solution de Christophe. | Alexis Raimbault | 6 | 333 | edited by Alexis Raimbault on May 26 2011 |
Comments
Files
| Codes.zip - 29,478 bytes, 12 downloads |
| Person | Watcher | Editor | Owner |
|---|---|---|---|
création site internet annuaire entreprise Rhône-Alpes | | | |
Christophe Battarel - YACS Team - Développement![]() | | | |
J.Juraver - Yacs team - Modération, Communication, Documentation | | ||
Agnès Rambaud - YACS team - Modératrice | | ||
Alexis Raimbault - YACS Team - Modérateur, Support, Développement. | | ||
Jmarc | |





















