Skip to main content Help Control Panel

YACS CMS : Open source !

Community «   Calendrier des évènements «  

Approfondir - Yacs pour les développeurs

Une soirée orientée développement, pour ceux qui mettent les mains dans le code. Adapter, interfacer, intégrer... découvrez comment tirer le meilleur parti de la structure de Yacs.
Rendez-vous ici, de 21h à 23h, heure de Paris.

Oct. 30 2008

Christian

ci-après diverses pistes pour le clavardage de jeudi. Certains points ne demandent que des réponses courtes d'autres sont peut-être hors sujet. En tout cas ce sont des questions que je me pose.

  1. synthèse des "outils" mis à disposition des développeurs - le fichier template - le fichier skin-skeleton.php - l'overlay - le layout - le comportement - la table - le formulaire ... j'en oublie ?
  2. les variables à notre disposition Principales variables utilisées pour construire une page à l'écran
  3. l'overlay mutable par l'exemple
  4. Intégrer une application tierse dans yacs : le necessaire pour garder sa session, ses droits yacs et autres choses vitales
  5. Les limites des layouts
  6. les traitements automatiques L'overlay mutable par l'exemple
  7. overlay : gerer le mutli-ligne dans un overlay (plusieurs articles)
  8. modifier la mise en page des flux RSS
  9. Personnaliser le vocabulaire autrement que par un overlay ? 
  10. personnaliser l'enregistrement, la connexion 
  11. supprimer l'affichage de certains onglets lors de l'edition des pages pour certaines catégories d'utilisateur
  12. ajouter un champ d'overlay (ou pas) dans manage it
  13. ajouter des fonctions dans la boite à outils
  14. ajouter des fonctions aux articles, sections ou catégories sans perdre son code à chaque mise à jour.
on Oct. 27
Christian
Bonsoir.
Quel programme ! on Oct. 30
Lucrecius
Bonsoir les dés velop'r on Oct. 30
Bernard
En introduction de cette session, on peut aussi faire référence à L'architecture MVC et YACS et à Les formulaires : c'est parti ! on Oct. 30
Denis
Bonsoir on Oct. 30
Lucrecius
Salut Bernard, d'avance merci pour ce menu.. mais je pressent que ce ne sera pas possible de tous manger, il faudra en apporter à la maison
Salut, Denis, content de te "voir", j'ai toujours un ENOOORME pb avec 1and1. Il semble que tu n'aies pas de soucis. on Oct. 30
Christian
je me souviens plus si j'avais fait un compte-rendu de MVC et yacs mais si c'est pas le cas il faudra que je le fasse on Oct. 30
Denis
Les "hooks" ne sont pas au menu ? on Oct. 30
Lucrecius
Bernard, il y a-t-il aussi possibilité des questions du genre "ce que vous n'avez pas osé demandé, ou pas bien compris ?"
..les hooks par exemple
Peux-tu également préciser de quelle version nous parlons ? on Oct. 30
Christian
bien sur qu'on peut en parler. J'ai fait une liste en vrac mais j'espère n'être pas le seul demandeur. En plus certains sujets ne demandent pas qu'on s'étendent dessus on Oct. 30
Lucrecius
Christian, le lien proposé par Bernard, ne fait-il pas office de résumé ? on Oct. 30
Christian
certes mais en l'épurant et en le structurant ca fait une belle documentation non ?
(structurant = juste mettre des titres) on Oct. 30
Bernard
Je vous poste une courte présentation pour démarrer. on Oct. 30
Denis
Lucrecius, je n'ai pas de pb avec 1and1 : finalement j'ai compris que j'ai juste des messages d'erreur SQL qui s'affichent (meme en local) car il me manque des tables dans ma BD. je ne suis pas chez 1and1. on Oct. 30
Bernard
20081030-developper-avec-yacs.pdf on Oct. 30
Lucrecius
Bernard, dans les série "les incompris", je n'ai pas trouvé d'explication pour le paramètre "Comportements" on Oct. 30
Bernard
Ok, donc par rapport aux éléments suggérés par Christian il faut ajouter les hooks et les comportements.
Si vous le voulez bien entrons directement dans le vif du sujet, et je vous laisserai autant de temps que possible pour vos questions additionnelles. on Oct. 30
Tof
(bonsoir tout le monde) on Oct. 30
Bernard
Je suppose que vous connaissez le PHP, ou à peu près, et que vous avez téléchargé la présentation pour la lire. on Oct. 30
Lucrecius
>Denis merci pour ces précisions. Mon pb SQL est direct et violent, immédiatement déclenché en utilisant la fonction "Assistant de contenu/Ajouter des exemples"
Salut Toff on Oct. 30
Bernard
(coucou Tof) on Oct. 30
Bernard
Yanys, stop, la réunion de ce soir a un but précis, et ton problème devra être traité ailleurs. on Oct. 30
Lucrecius
Bernard, oui... mes excuses, la hire m'emporte. on Oct. 30
Bernard
Eventuellement, vous aurez pris le temps de re-parcourir les fils de discussion précédent, dont celui dédié à l'architecture MVC, ainsi que celui sur les formulaires. on Oct. 30
Denis
De mon coté je n'ai pas reussi a faire generer des tables aditionnelles par yacs en utilisant un overlay, d'ou les messages lors de DELETE/INSERT. j'imagine que la fonction "setup" n'est appelée que lors de la création/initialisation de la BD lors de l'installation. on Oct. 30
Bernard
Denis, c'est là où les hooks interviennent, mais nous aurons l'occasion d'en reparler un peu plus tard. on Oct. 30
Tof

Denis :la fonction setup est aussi appelée lors de l'opération "maintenance de la bdd" dans le panneau de controle

on Oct. 30
Denis
super, merci ! on Oct. 30
Bernard
La première page de la présentation est très claire : nous ne faisons pas du PHP uniquement pour la beauté de la chose, mais pour réaliser des sites web qui marchent, agréables à regarder, et dans des temps très courts.
Ce soir, nous nous concentrerons tout particulièrement sur tous les endroits où PHP peut intervenir, et il y en a pas mal. on Oct. 30
Lucrecius
Bernard : présentation très concentrée, mais claire. En tous cas, ça donne une idée du chemin parcouru depuis 3 ans !
On avance page par page ?
...pour les remarques.. on Oct. 30
Bernard
Pas de question sur la page 1 ? Sinon, on passe à la page 2... on Oct. 30
Lucrecius
Juste une remarque sur "service", mot-valise qui mélange ici des concepts de regitres différents
en tous cas sur le qui-fait-quoi on Oct. 30
Bernard
Yanys, ce terme renvoie aux appellations Société de Services en Informatique (SSI) et Société de Service en Logiciel Libre (SSLL), et c'est là que la valeur ajoutée de chaque entreprise s'exprime...
Mon rôle est plutôt celui d'un éditeur de logiciel libre, mais il vous revient, en plus du développement, de "packager" l'ensemble pour vos clients. on Oct. 30
Lucrecius

je l'avais entendu comme ça, mais ce n'est pas le cas de tous le utilisateurs/clients. Ce qui m'interpelle plus précisemment, c'est "animation de communauté", ce n'est pas une compétence de SSxx... mais plutôt d'une Sté de Conseil en orga ou mngt.
Ce qui renvoie que les Stés de Conseils sont des clients potentiels, yacs, un de leurs outils ad-hoc

on Oct. 30
Bernard
Plus exactement, l'animation de communauté est une compétence à acquérir, qui permet d'accompagner le client après livraison du système. on Oct. 30
Lucrecius
Salut Agnès !
Bernard, globalement d'accord... mais de mon expérience, c'est plus à anticiper qu'à acquérir. on Oct. 30
Bernard
La page suivante de la présentation présente, pour mémoire, la séquence des échanges web entre un navigateur et un serveur yacs. on Oct. 30
Lucrecius

quelqu'un a dit CMS... comme Community Management System ?

on Oct. 30
Agnès
wave on Oct. 30
Bernard
Cette architecture est un grand classique, avec les éléments caractéristiques que sont, côté serveur, yacs, Apache, MySQL, PHP et yacs. yAMP quoi.
L'architecture d'exécution de yacs est à la page 3. on Oct. 30
Lucrecius
Avec AJAX? tu n'oublies pas JAVA ? on Oct. 30
Bernard
Pas de java dans Yacs à ce jour, sauf pour quelques applet exécutés côté navigateur.
Pour Ajax, il s'agit de bibliothèques javascript également exécutées côté navigateur.
En résumé, lorsqu'il reçoit une requête web, Apache lance directement le script concerné en fonction de l'objet cible et de l'action à effectuer. Par exemple, articles/view.php pour l'affichage d'un article.
Pour un développeur PHP, il est donc assez facile d'identifier le point d'entrée dans yacs à partir de l'adresse web, surtout lorsque l'on n'utilise pas l'option de ré-écriture de lien.
Ensuite, des librairies sont chargées, la plupart à travers shared/global.php. Beaucoup des librairies PHP sont placées dans le répertoire shared d'ailleurs.
Généralement le traitement d'un script consiste à positionner des variables dans le tableau $context, à partir du contenu de la base ou des fichiers. on Oct. 30
Lucrecius
"Généralement le traitement d'un script consiste à positionner des variables dans le tableau $context, à partir du contenu de la base ou des fichiers." on Oct. 30
Bernard
En fin de parcours, la génération HTML est déclenchée sur l'appel de la fonction render_skin(), qui transforme le contenu de $context en balises compréhensibles pour le navigateur. on Oct. 30
Lucrecius
ça me semble une phrase clé à retenir on Oct. 30
Bernard
La difficulté, pour un développeur PHP qui découvre yacs, est d'arriver à ses fins sans modifier les scripts de référence de yacs. on Oct. 30
Christian
exact on Oct. 30
Bernard
En effet, ces scripts évoluent dans le temps, et peuvent être modifiés sans préavis d'un mois sur l'autre.
Pour repérer un script de référence, c'est facile, puisqu'ils ont tous, dans l'en-tête, le mot-clé @reference.
Et la plupart des scripts de yacs sont des scripts de référence, donc intouchables, sauf à demander à appliquer des modifications sur yacs lui-même, ce qui arrive, mais assez rarement. on Oct. 30
Lucrecius
tiens.. ça me rappelle une mésaventure on Oct. 30
Bernard
Passons à la page suivante, qui énumère les différentes possibilités d'extension de yacs.
Les skins, ou plus exactement, les thèmes, sont caractéristiques de l'identité visuelle du site.
Yacs délègue au thème la plupart des traitements liés à l'aspect visuel, à travers deux scripts différents : skin.php et template.php.
Le premier à la charge de construire les éléments de page, telles que listes, tableaux, liens, etc.
Le second est appelé pour générer tout le HTML à partir de $context.
En tant que développeur PHP, vous avez vraiment beaucoup de possibilité avec cette architecture, même si ce n'est pas forcément simple de 'rentrer dedans'.
Pour skin.php, le plus simple est de laisser skin_skeleton.php faire le gros du boulot, et d'intervenir au maximum par CSS plutôt que par PHP.
Mais sachez qu'en cas de besoin 'lourd', vous pouvez même redéfinir la façon dont yacs construit les boîtes, les liens, les listes, etc. on Oct. 30
Lucrecius
Je témoigne que c'est un peu comme un lychee.. coque dure, mais pas très épaisse, suite simple.. jusqu'à ce que ce soit un peu plus dur; on Oct. 30
Bernard
Pour la construction de la page, regardez dans l'en-tête du script skins/index.php les variables de $context utilisées par yacs, et reproduites en partie dans Principales variables utilisées pour construire une page à l'écran.
Pour vous aider, le script page.php regroupe logiquement les fonctions echo les plus courantes.
Mais, là encore, libre à vous de repartit de zéro et de tout refaire à votre manière pour les clients riches qui ont des besoins spécifiques on Oct. 30
Christian
la main image ca correspond à quoi ? on Oct. 30
Bernard
Une fonction très courante d'un gestionnaire de contenu est la mise en forme du résultat d'une requête SQL.
Dans yacs, cette fonction de transformation d'informations retournées par la base de données est structurée sous le nom 'layout'.
En gros, le layout reçoit un pointeur sur des résultats de requête, et il doit construire du HTML avec ça.
Il y a pas mal de script layout_xxxx.php dans yacs, où le xxxx décrit les objets manipulés, et comment ils sont mis en forme.
En tant que développeur, vous pouvez ajouter un script de layout où vous le souhaitez, popur les articles, les sections, etc. L'activation se fait par configuration des sections cibles, en indiquant la terminaison du nom du script. Vous taperez 'trucs' pour changer l'apparence des articles telle que construite par layout_articles_as_trucs.php.
Christian, de qulle main parles-tu ? on Oct. 30
Christian
pardon $context[ 'page_image' ] - the main image of the page, if any
dans skins/index.php on Oct. 30
Bernard
Il s'agit de l'icône de page, dans le vocabulaire utilisé pour le téléversement des images.
Cette image n'est pas dans le corps de la page, elle peut être gérée complètement séparément si besoin. on Oct. 30
Lucrecius
Je ne comprends pas bien "Vous taperez 'trucs' pour changer l'apparence des articles" que veuxà-tu dire par "taper" ? on Oct. 30
Bernard
Yanys, il s'agit du mot que tu dois positionner dans le formulaire de modification de la section pour activer un script de layout non standard.
Si le nom de ce script, comme dans mon exemple, se termine par 'trucs', c'est ce que tu dois taper. on Oct. 30
Lucrecius
ah bien, ça répond à une de mes questions des "inconnus" on Oct. 30
Bernard
Si tu crées un script layout_articles_as_gabuzomeu.php, alors pour l'activer le mot-clé sera 'gabuzomeu', etc.
La page 5 de la présentation, intitulée 'Création d'une identité visuelle', reprend l'ensemble des éléments à maitriser, y compris les scripts PHP associés. on Oct. 30
Christian
en pensant bien à déclarer dans ce fichier la class avec son bon nom Class Layout_home_articles_as_gabuzomeu extends Layout_interface {
mais ca on s'en rend vite compte aussi on Oct. 30
Denis
est-ce que c'est dans le champ "Utiliser la mise en page spéciale" qu'il faut le saisir ? (contenu additionnel) on Oct. 30
Bernard
Oui Denis, et il y en a un pour les mises en page de sections, et un autre pour celles des articles.
Comme l'a indiqué Christian, les scripts de layout doivent respecter un certain formalisme, afin que yacs sache comment les appeler, et ceci s'effectue par spécialisation du script skins/layout.php.
Que peux-t-on faire avec ce genre d'extension ? on Oct. 30
Lucrecius
Et que vient alors faire » view_as_foo_bar - Débrancher vers articles/view_as_foo_bar.php ? ...je n'ai pas trouvé le lien vers 'Création d'une identité visuelle' on Oct. 30
Bernard
La plupart du temps, l'écriture d'un layout est intéressante pour particulariser l'affichage du contenu d'une section, si les formats existants ne conviennent pas ou doivent être adaptés. on Oct. 30
Christian
je m'en sers pour afficher une vignette de catégorie grace à une fonction maison : recherche des categories se rapportant à un article on Oct. 30
Bernard
Yanys, il s'agit d'un moyen de modifier l'affichage des articles et des sections, sans changer le coeur de yacs lui-même. Lorsque l'option view_as_foo_bar est activée pour un article, yacs charge le script articles/view.php, mais passe aussitôt la main à articles/view_as_foo_bar.php.
Ainsi, vu de l'extérieur on appelle une page comme d'habitude. Mais dans l'arrière-boutique, yacs délègue le traitement à un autre script.
C'est comme cela qu'a été construite l'extension qui nous permet de clavarder ce soir. on Oct. 30
Tof
c'est donc encore plus personnalisable que l'overlay ? on Oct. 30
Bernard
Un script articles/view_as_chat.php a été ajouté à la distribution standard, plutôt que de faire gonfler le script articles/view.php déjà existant. on Oct. 30
Lucrecius
ça me plait bien, ça... on Oct. 30
Bernard
Tof, cette extension est la bonne voie lorsque tu as besoin de vraiment chambouler l'affichage standard, sans remettre en cause le modèle de données standard de yacs (commentaires, liens, fichiers). on Oct. 30
Tof
ça peut servir... on Oct. 30
Lucrecius
ça VA servir ! on Oct. 30
Christian
ca sert ! on Oct. 30
ThierryP
servie on Oct. 30
Tof

salut thierry on Oct. 30
Bernard
Pour créer un layout, ou une extension d'articles/view.php, le mieux est de dupliquer l'un des scripts de référence et de le modifier progressivement.
Coucou Thierry on Oct. 30
Lucrecius
ce qui me conforte sur un plan de présentation des options. L'idée serai de différentier (visuellement) ce qui est du ressort du paramétrage de base et ce qui est du ressort d'ajouts et/ou contributions.
Question d'ergonomie dans la création de sections. on Oct. 30
Bernard
Un mot sur les prises d'extension (hooks) et après on finira par les overlays, ok ? on Oct. 30
Lucrecius
oki pour moi on Oct. 30
Denis
ok, les overlay ç am'interesse aussi ! on Oct. 30
Bernard
Les prises d'extension sont des scripts PHP qui sont activés par yacs sur certains événements nommés.
Quelques exemples :
  • 'users/edit.php#post' lorsqu'un surfeur s'enregistre sur le site

  • 'users/edit.php#put' lorsqu'il modifie son profil

  • 'index.php' lorsque la page d'accueil est visualisée, ainsi que 'index.php#prefix' et 'index.php#suffix'

  • 'publish' lorsqu'une page est publiée

  • 'finalize' à chaque fois que yacs répond à une requête

  • 'tick' pour lancer des traitements en tâche de fond, de temps en temps (toutes les 5 minutes environ)
on Oct. 30
Tof
bernard : on peut imaginer de brancher un hook sur 'finalize' pour avoir un historique de l'utilisation du site ? on Oct. 30
Bernard
Yacs détecte les prises d'extension par le nom des fichiers correspondants, comme indiqué dans le script control/scan.hp que je vous laisserair regarder par vous-mêmes.
Tof, oui, c'est même fait pour ça ...
Yacs consolide l'ensemble des prises d'extension actives dans le script parameters/hooks.php, c'est donc assez facile de vérifier qui est qui et qui fait quoi.
Pour écrire une extension, vous pouvez vous inspirer de celles qui sont fournies avec yacs, notamment dans le répertoire agents.
Je ne m'étendrai pas plus ce soir sur les prises d'extension, pour passer aux overlays. ok ? on Oct. 30
Denis
hooks.XML ? (pas php) on Oct. 30
Lucrecius
hum, hum... ça m'intéresse bien, mais je ne suis pas sur d'avoir visualisé la mise en oeuvre. ou bien hooks.include.php ? on Oct. 30
Bernard
Denis, le fichier .xml est construit en même temps que le .php, au cas où il y aurait besoin de récupérer cette information pour la visualiser, la traiter, etc. Yacs ne fait que le construire, mais pouvez l'exploiter comme bon vous semble.
yanys, oui, je me suis trompé, il s'agit bien de hooks.include.php et hooks.xml. Les deux ont le même contenu, mais sous des formes différentes.
Les overlays ? on Oct. 30
Denis
oui, j'ai une question sur l'interface get_tabs() on Oct. 30
Lucrecius
Bernard, je comprends que tu veilles poursuivre, mais il me faudra revenir dessus. Christian tu pourras me donner un coup de main ? on Oct. 30
Denis
moi aussi je bute un peu sur les hooks mais je debute, donc c'est normal (je vais réviser) on Oct. 30
Christian
sur les hooks ? euh pas trop pour l'instant. autant les layouts et un peu les overlays ... mais les hooks on Oct. 30
Bernard
Le bon point d'entrée pour les prises d'extension, c'est la lecture attentive de control/scan.php. Bon courage ...
Les overlays, à quoi ça sert ? on Oct. 30
Denis
J'ai fait un test pour ajouter un onglet dans un overlay (en implementant get_tabs) et j'ai bien mon onglet qui s'affiche, mais seulement en mode "modifier la page". pourtant je renvoie la meme chose quelque soit le mode en entrée de la fonction(view ou edit). on Oct. 30
Bernard
Ok Denis, on va y revenir ...
Un article d'introduction aux overlays est Un overlay ? c'est quoi ? Comment on s'en sert ? et je ne reviendrai pas sur les bases.
La mécanique mise en place par yacs pour gérer ces surcharges (la traduction du terme overlay) est assez sophistiquée, mais relativement légère pour le développeur.
Ca se rapproche des beans Java, pour ceux qui connaissent.
Lorsqu'une page surchargée est affichée, yacs appelle plusieurs fonctions membres de l'overlay, comme suit :
  • get_tabs() pour afficher des onglets additionnels si besoin

  • get_view_text() et get_trailer_text() pour afficher du texte au milieu et à la fin de la page

  • get_extra_text() pour mettre du contenu additionnel sur le côté de la page, si besoin

  • get_live_title() pour modifier le titre de page si besoin

  • get_live_introduction() pour modifier le texte d'introduction, si besoin

Lorsqu'une page est modifiée, yacs appelle les fonctions membres suivantes :
  • get_tabs(), pour ajouter des onglets au formulaire si besoin
on Oct. 30
Christian
et pour en enlever? on Oct. 30
Bernard
  • get_fields(), pour ajouter des champs de saisie au formulaire de base (dans le premier onglet, s'il y en a plusieurs)

Christian, pour en enlever ?
Thierry, il n'y aurait pas moyen de remettre des puces aux listes dans le nouveau thème ? Elles me manquent, ces petites bêtes ...
Christian, je dirais que, pour en enlever, il suffit de ne pas en mettre ? on Oct. 30
Christian
oui bernard : dans certains cas d'overlay je n'ai pas besoin que les utilisateurs puisse accéder aux onglets contenu et options on Oct. 30
Bernard
Ok, ça ce n'est pas encore possible à l'heure actuelle ... on Oct. 30
Christian
nouvelle fonction ? on Oct. 30
Bernard
A discuter, sans doute, oui. on Oct. 30
Lucrecius
Je comprends le besoin de Christian. on Oct. 30
Bernard
Pour répondre à Denis sur la différence de comportement de get_tabs() en lecture et en modification, voici un bout de code qui devrait aider : on Oct. 30
Tof
+1 on Oct. 30
Denis
+2 (des membres lecteurs et non editeurs)
enfin editeur mais pas des options... on Oct. 30
Bernard
Click to fold/unfold Click to fold/unfold

Et voilà ... on Oct. 30
Tof
"et voilà" (en anglais dans le texte...) on Oct. 30
Denis
ok, merci, je vais regarder ça ! pas facile de trouver un exemple tout seul... on Oct. 30
Lucrecius
+1 on Oct. 30
Bernard
Dans la prochaine livraison, le script overlays/issue.php va évoluer pour utiliser les onglets, ce sera donc le meilleur exemple à regarder en priorité.
Pour le lien avec la base de données, le mieux est d'ajouter une fonction membre setup() décrivant le nom de la ou des tables associées, ainsi que leur structure. on Oct. 30
Tof
overlay_test.php est bien aussi on Oct. 30
Bernard
Oui Tof, mais il n'aide pas pour comprendre comment ajouter des champs de saisie dans un onglet ... on Oct. 30
Denis
ok. sinon je voudrais savoir si je peux utiliser ces onglets (get_tabs) dans un overlay pour la page "utilisateurs" ou "personnes". je n'ai pas réussi a y faire apparaitre mon onglet. a l'aide de ton exemple je devrais y arriver ? on Oct. 30
Bernard
Pour que yacs prenne connaissance de l'existence de la fonction setup() d'un overlay, et pour qu'il l'intègre dans les opérations de maintenance de la base, le mieux est d'utiliser une prise d'extension. Créez un répertoire du même nom que votre overlay, et ajoutez-y un script d'extension qui liera l'événement control/setup.php avec la fonction de votre overlay, par exemple mon_overlay::setup
La aussi, je me dis qu'il faudrait créer un exemple de prise d'extension pour l'overlay issue, ça vous servirait... on Oct. 30
Tof
lol on Oct. 30
Agnès
on Oct. 30
Denis
ok, comme dans agents/browsers_hook.php on Oct. 30
Christian
effectivement je marche aussi beaucoup par l'exemple on Oct. 30
Bernard
Denis, oui, c'est ça. Je vais vérifier que le script d'affichage des utilisateurs se comporte exactement comme celui d'affichage des articles. Je n'ai pas encore fait de test d'ajout d'onglet pour les utilisateurs, à dire vrai.
Christian avait des questions sur l'overlay 'mutable', ça vous tente ?
Allo ? on Oct. 30
Christian
c'est une nouveauté récente qui mériterait peut etre un clavardage spécial !
mais allons-y on Oct. 30
Denis
mais qu'est-ce que c'est ? on Oct. 30
Bernard
Pas forcément Christian ... on Oct. 30
Christian
ah alors on t'écoute on Oct. 30
Bernard
Les surcharges que nouas avons vu jusqu'à présent servent essentiellement à capturer plus d'informations, de manière interactive, et à la restituer. on Oct. 30
Tof
c'est un design pattern ? on Oct. 30
Bernard
Tof, si on veut, oui.
Le problème que l'on cherche à résoudre est celui des pages 'qui changent toutes seules', ou plutôt sans intervention humaine, ou en complément d'une intervention humaine.
Pour moi, le problème s'est posé avec les rallyes de voiture sur www.zaniroli.com il y a quelques mois.
Chaque conducteur de véhicule a sa propre page perso, avec les photos des sponsors, les commentaires des copains, etc. Rien que du très classique jusque là.
Mais il a fallu, en plus, incruster les résultats de chaque concurrent dans sa page perso et ce, de la façon la plus automatique possible. Comment faire ?
C'est là que l'overlay 'mutable' entre en jeu.
Nous avons ajouté un overlay à chaque page concurrent, en spécifiant, comme identifiant d'overlay, le nom de la course et le numéro du concurrent. on Oct. 30
Lucrecius
qu'entends-tu par "automatique", auto )... je veux bien, mais matique... on Oct. 30
Bernard
Ensuite, une moulinette a été ajouté pour analyser les résultats de chaque jour, et, pour chaque concurrent, rechercher l'article correspondant par l'identifiant d'overlay, modifier les données de l'overlay, et resauver dans la base.
Vous pouvez faire manuellement cette opération en lançant overlays/mutables/edit.php.
Le script pour l'incrustation des résultats zaniroli fait la même chose, mais en prenant en entrée un fichier texte à la place.
Questions ? on Oct. 30
Lucrecius
...c'est plus que l'annonce "You will change some attributes of a named overlay." on Oct. 30
Tof
comment traduis tu "mutable" ? on Oct. 30
Lucrecius
et le fichier texte, chez Zaniroli, il est saisi ou bien, il est issu d'un flux ? on Oct. 30
Bernard
Tof, d'après le traducteur que j'ai c'est ... mutable diablotin on Oct. 30
Christian
et pourquoi ne pas créer un [ table ] qui irait lire dans une tables des classements construite par ailleurs ? on Oct. 30
Tof
je formule différemment, pourquoi avoir chois le mot "mutable" ? on Oct. 30
Bernard
Yanys, le classement est fourni par le prestataire spécialisé et expert dans ce domaine hautement complex, avec chronomètres, GPS, etc.
Christian, parce que je n'ai pas la table des classements, et parce que l'opération doit être faite sur chaque page concurrent. 100 voitures = 100 pages à modifier chaque jour.
Tof, mutable, en anglais, c'est la notion d'évolutif. Une variable qui ne change jamais, en java, est réputée immutable, ou constante, c'est selon. on Oct. 30
Lucrecius
mutable = mutationnel cf. nos cousins et voisins d'Alain (http://www.granddictionnaire.com/btml/fra/r_motclef/index800_1.asp) on Oct. 30
Tof

merci, je n'arrivais pas à me rappeler ce que ça signifiait; ça me permet de mémoriser son champ d'application - évolutif ici.

on Oct. 30
Lucrecius
c'est du domaine de la génétique, au départ on Oct. 30
Bernard
Un autre usage de cet overlay, ce pourrait être pour changer une annonce ou une information simultanément sur plein de pages. Si vous avez quelques centaines de pages avec le même identifiant d'overlay, vous pouvez toutes les changer d'un coup en invoquant interactivement overlays/mutables/edit.php, quelque soient leur emplacement dans l'arbre de contenu, les droits d'accès, etc. on Oct. 30
Christian
la encore un petit exemple ne nuirait pas à nous ouvrir des portes ! on Oct. 30
Bernard
Ou alors, faites comme moi si vous avez besoin de créer des pages qui reflète un état évolutif : suivi de colis, fonctionnement d'un routeur ou d'une machine à café, etc. on Oct. 30
Lucrecius
OUahhh.. ça me plait bien (exemple pour un groupe d'étudiants à qui fournir en même temps des données nouvelles, ou des résultats...) on Oct. 30
Tof
yacs gère le café chez toi ? on Oct. 30
Bernard
Supposez que vous ayez un serveur yacs pour gérer un parc de machines à café, avec une page par machine à café placée en clientèle.
Si vous savez capturer l'état de chaque machine d'une manière ou d'une autre, alors avec un peu de programmation, et en vous inspirant de l'overlay mutable, vous pouvez mettre à jour la page de chaque machine sans aucune intervention humaine.
Bref, l'overlay 'mutable' est une première incursion dans la notion de CMS mis à jour par flot de données externes, et non par édition de page faite par un surfeur humain.
On va tout droit vers le Process 2.0 là ... on Oct. 30
Tof

ceci parce que le script overlays/mutable/edit.php est lançable "à volonté", c'est ça ?

on Oct. 30
Bernard
Tof, ce script est un exemple de ce que l'on peut faire, limité à l'overlay 'mutable'. Mais l'intérêt est de rajouter les fonctionnalités de type mutable dans vos propres overlays, avec des mécanismes de mise à jour particulier à chaque cas. Donc à utiliser surtout comme un exemple, à étendre et enrichir. on Oct. 30
Tof
ok je comprends.
et je le regarderai de près on Oct. 30
Denis
je vais vous laisser... bonsoir et merci pour tout ! on Oct. 30
Bernard
Encore une question ou deux avant de terminer la session de ce soir ?
Merci Denis, à bientôt ? on Oct. 30
Tof
en parlant d'overlay, je termine l'intégration du module de paiement ATOS dans l'overlay annonce. je ferai remonter tout ça quand ce sera prêt. on Oct. 30
Bernard
ok Tof on Oct. 30
Denis
a bientôt ! on Oct. 30
Tof
Bye Denis on Oct. 30
Lucrecius
Bonsoir Denis, Bernard, tu peux expliquer "comportement" on Oct. 30
Christian
bye on Oct. 30
Bernard
Les comportements sont des scripts destinées pour l'instant à "bloquer" les surfeurs. Par exemple, pour les obliger à lire et accepter une licence avant de télécharger un fichier.
Un autre usage est l'ajout de boutons en bas de page pour construire des workflows élémentaires. on Oct. 30
Lucrecius
Christian, Baille. on Oct. 30
Bernard
En gros, les comportements sont similaires aux overlays, sauf qu'ils sont attachés à un conteneur, plutôt qu'à du contenu.
Voir behaviors/index.php pour plus d'info. on Oct. 30
Christian
je disais bye à Denis ! on Oct. 30
Bernard
Je signale aussi que la dernière page de la présentation partagée ce soir mentionne quelques outils bien utiles au développeur PHP pour yacs, objet de toutes nos attentions de ce soir ...
Chers développeurs, êtes-vous satisfaits ? on Oct. 30
Christian
(bernard j'ai eu une erreur Parse error: syntax error, unexpected '>' in /home.xx.xx/zaniroli/www/yacs/i18n/i18n.php(1344) : eval()'d code on line 1)
très statisfait manque un bout d'info peut etre pour : Intégrer une application tierse dans yacs : le necessaire pour garder sa session, ses droits yacs et autres choses vitales on Oct. 30
Tof
Je te remercie, Bernard. J'ai trouvé l'exposé clair; ça fera une bonne base pour la doc technique de Yacs. on Oct. 30
Lucrecius
Pour la dernière page de ton efficace présentation, je me permettrai de signaler que je ne suis pas satifait de Kompozer. on Oct. 30
Bernard
(ha ha je vais regarder ce bug pernicieux de localisation) on Oct. 30
Lucrecius
je l'ai abandonné car il modifiait la mise en page du code on Oct. 30
Bernard
Yanys, en fait j'ai récupéré des slides faits il y a quelques temps et depuis, j'ai remplacé Kompozer par Open Office... on Oct. 30
Lucrecius
lol ... et crimson
et FirebugFinalement, une fois que l'on a
dépassé un stade avec CSS, on est moins lié au WYSIWYG on Oct. 30
Bernard
Christian, la session yacs est gérée avec les cookies, donc si l'hébergement de l'autre application est sur le même serveur c'est bon non ? on Oct. 30
Lucrecius
Je me permettrai d'ajouter Fireftp ScreenGrab (nouveau pour moi.. mais très prometteur) Irfanview
Tu utilises toujours "commander" ? on Oct. 30
Bernard
Christian, et il y a aussi l'exemple de tools/embed.php qui montre comment mettre yacs "autour" d'une application existante, par ajout de code avant et après. on Oct. 30
Tof
PSPad Editor pour moi et WinSCP pour le ftp on Oct. 30
Christian
Ok je regarderais ce script on Oct. 30
Bernard
Yanys, maintenant je suis sur Mac OS X, et j'ai acheté une licence Forklift pour retrouver un confort similaire à celui que me fournissais Total Commander, sans en avoir la puissance hélas.
J'ai oublié de mentionner un point très important pour les développeurs PHP, qui est la disponibilité de l'ensemble de yacs sur le serveur Google Code, par accès SVN. on Oct. 30
Tof
il est demain... je vais aller me coucher. on Oct. 30
Bernard
Pour le SVN, c'est Passage à Subversion, chez Google Code et il faudra faire une session là-dessus un jour ... on Oct. 30
Christian
google Code est en avance par rapport à yacs ? on Oct. 30
Bernard
Ca peut arriver, oui. on Oct. 30
Christian
je vais faire une synchro pour voir on Oct. 30
Lucrecius
Je vais devoir aussi vous laisser on Oct. 30
Christian
A très bientot et merci pour tout ... Bonne nuit on Oct. 30
Bernard
Le but est de mettre à jour le référentiel de code dès que possible, même si une archive complète n'est pas reproposée systématiquement à chaque fois. on Oct. 30
Agnès
Bernard, je t'ai laissé une action sur ton profil. on Oct. 30
Tof
tu conclus bernard ? on Oct. 30
Bernard
Merci Agnès on Oct. 30
Agnès
Et j'ai repéré un ou deux bugs aussi, je te mettrais des issues demain.
Et je vais te laisser conclure en te remerçiant de cet exposé si clair. J'aime lire ça ! on Oct. 30
Bernard
Tof, oui, je conclue en répétant, fortement, que yacs a été conçu par un développeur PHP pour faciliter la vie du développeur PHP. Nul doute que, passé le cap de l'investissement initial, vous vous y sentiez à l'aise et efficace. on Oct. 30
Lucrecius
Bernard, tu as parlé Lundi d'une utlime mouture après la b21.. elle est dispo ? on Oct. 30
Bernard
Yanys, non, mais on y travaille ... on Oct. 30
Tof
et bien, merci encore. on Oct. 30
Bernard
Les possibilités d'extension de yacs vont encore augmenter dans le futur, puisque le but n'est pas d'étendre le logiciel à l'infini. on Oct. 30
Lucrecius
pas de soucis.... che va piano, va sano, no ? on Oct. 30
Bernard
Au contraire, de plus en plus, les nouveautés viendront par ajouts optionnels s'appuyant sur les mécanismes de base présentés ce soir.
Allez, c'est tout pour ce soir, alors dormez bien et à bientôt. on Oct. 30
Tof
bonne nuit tout le monde on Oct. 30
Bernard
Fermeture annoncée dans 1 minute.. on Oct. 30
Lucrecius
Bonsoir et merci.... on va potasser on Oct. 30
Agnès
Bonsoir à vous tous également. À bientôt on Oct. 30
Bernard
Extinction, brossage des dents, et dodo ! on Oct. 30

 
Files
Information channels
Recent files