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 2008
Christian
Bonsoir.
Quel programme ! on Oct. 30 2008
Lucrecius
Bonsoir les dés velop'r on Oct. 30 2008
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 2008
Denis
Bonsoir on Oct. 30 2008
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 2008
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 2008
Denis
Les "hooks" ne sont pas au menu ? on Oct. 30 2008
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 2008
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 2008
Lucrecius
Christian, le lien proposé par Bernard, ne fait-il pas office de résumé ? on Oct. 30 2008
Christian
certes mais en l'épurant et en le structurant ca fait une belle documentation non ?
(structurant = juste mettre des titres) on Oct. 30 2008
Bernard
Je vous poste une courte présentation pour démarrer. on Oct. 30 2008
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 2008
Bernard
20081030-developper-avec-yacs.pdf on Oct. 30 2008
Lucrecius
Bernard, dans les série "les incompris", je n'ai pas trouvé d'explication pour le paramètre "Comportements" on Oct. 30 2008
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 2008
Tof
(bonsoir tout le monde) on Oct. 30 2008
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 2008
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 2008
Bernard
(coucou Tof) on Oct. 30 2008
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 2008
Lucrecius
Bernard, oui... mes excuses, la hire m'emporte. on Oct. 30 2008
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 2008
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 2008
Bernard
Denis, c'est là où les hooks interviennent, mais nous aurons l'occasion d'en reparler un peu plus tard. on Oct. 30 2008
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 2008
Denis
super, merci ! on Oct. 30 2008
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 2008
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 2008
Bernard
Pas de question sur la page 1 ? Sinon, on passe à la page 2... on Oct. 30 2008
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 2008
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 2008
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 2008
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 2008
Lucrecius
Salut Agnès !
Bernard, globalement d'accord... mais de mon expérience, c'est plus à anticiper qu'à acquérir. on Oct. 30 2008
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 2008
Lucrecius

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

on Oct. 30 2008
Agnès
wave on Oct. 30 2008
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 2008
Lucrecius
Avec AJAX? tu n'oublies pas JAVA ? on Oct. 30 2008
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 2008
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 2008
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 2008
Lucrecius
ça me semble une phrase clé à retenir on Oct. 30 2008
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 2008
Christian
exact on Oct. 30 2008
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 2008
Lucrecius
tiens.. ça me rappelle une mésaventure on Oct. 30 2008
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 2008
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 2008
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 2008
Christian
la main image ca correspond à quoi ? on Oct. 30 2008
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 2008
Christian
pardon $context[ 'page_image' ] - the main image of the page, if any
dans skins/index.php on Oct. 30 2008
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 2008
Lucrecius
Je ne comprends pas bien "Vous taperez 'trucs' pour changer l'apparence des articles" que veuxà-tu dire par "taper" ? on Oct. 30 2008
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 2008
Lucrecius
ah bien, ça répond à une de mes questions des "inconnus" on Oct. 30 2008
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 2008
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 2008
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 2008
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 2008
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 2008
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 2008
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 2008
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 2008
Tof
c'est donc encore plus personnalisable que l'overlay ? on Oct. 30 2008
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 2008
Lucrecius
ça me plait bien, ça... on Oct. 30 2008
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 2008
Tof
ça peut servir... on Oct. 30 2008
Lucrecius
ça VA servir ! on Oct. 30 2008
Christian
ca sert ! on Oct. 30 2008
ThierryP
servie on Oct. 30 2008
Tof

salut thierry on Oct. 30 2008
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 2008
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 2008
Bernard
Un mot sur les prises d'extension (hooks) et après on finira par les overlays, ok ? on Oct. 30 2008
Lucrecius
oki pour moi on Oct. 30 2008
Denis
ok, les overlay ç am'interesse aussi ! on Oct. 30 2008
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 2008
Tof
bernard : on peut imaginer de brancher un hook sur 'finalize' pour avoir un historique de l'utilisation du site ? on Oct. 30 2008
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 2008
Denis
hooks.XML ? (pas php) on Oct. 30 2008
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 2008
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 2008
Denis
oui, j'ai une question sur l'interface get_tabs() on Oct. 30 2008
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 2008
Denis
moi aussi je bute un peu sur les hooks mais je debute, donc c'est normal (je vais réviser) on Oct. 30 2008
Christian
sur les hooks ? euh pas trop pour l'instant. autant les layouts et un peu les overlays ... mais les hooks on Oct. 30 2008
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 2008
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 2008
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 2008
Christian
et pour en enlever? on Oct. 30 2008
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 2008
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 2008
Bernard
Ok, ça ce n'est pas encore possible à l'heure actuelle ... on Oct. 30 2008
Christian
nouvelle fonction ? on Oct. 30 2008
Bernard
A discuter, sans doute, oui. on Oct. 30 2008
Lucrecius
Je comprends le besoin de Christian. on Oct. 30 2008
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 2008
Tof
+1 on Oct. 30 2008
Denis
+2 (des membres lecteurs et non editeurs)
enfin editeur mais pas des options... on Oct. 30 2008
Bernard
Click to fold/unfold Click to fold/unfold

Et voilà ... on Oct. 30 2008
Tof
"et voilà" (en anglais dans le texte...) on Oct. 30 2008
Denis
ok, merci, je vais regarder ça ! pas facile de trouver un exemple tout seul... on Oct. 30 2008
Lucrecius
+1 on Oct. 30 2008
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 2008
Tof
overlay_test.php est bien aussi on Oct. 30 2008
Bernard
Oui Tof, mais il n'aide pas pour comprendre comment ajouter des champs de saisie dans un onglet ... on Oct. 30 2008
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 2008
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 2008
Tof
lol on Oct. 30 2008
Agnès
on Oct. 30 2008
Denis
ok, comme dans agents/browsers_hook.php on Oct. 30 2008
Christian
effectivement je marche aussi beaucoup par l'exemple on Oct. 30 2008
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 2008
Christian
c'est une nouveauté récente qui mériterait peut etre un clavardage spécial !
mais allons-y on Oct. 30 2008
Denis
mais qu'est-ce que c'est ? on Oct. 30 2008
Bernard
Pas forcément Christian ... on Oct. 30 2008
Christian
ah alors on t'écoute on Oct. 30 2008
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 2008
Tof
c'est un design pattern ? on Oct. 30 2008
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 2008
Lucrecius
qu'entends-tu par "automatique", auto :o)... je veux bien, mais matique... on Oct. 30 2008
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 2008
Lucrecius
...c'est plus que l'annonce "You will change some attributes of a named overlay." on Oct. 30 2008
Tof
comment traduis tu "mutable" ? on Oct. 30 2008
Lucrecius
et le fichier texte, chez Zaniroli, il est saisi ou bien, il est issu d'un flux ? on Oct. 30 2008
Bernard
Tof, d'après le traducteur que j'ai c'est ... mutable diablotin on Oct. 30 2008
Christian
et pourquoi ne pas créer un [ table ] qui irait lire dans une tables des classements construite par ailleurs ? on Oct. 30 2008
Tof
je formule différemment, pourquoi avoir chois le mot "mutable" ? on Oct. 30 2008
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 2008
Lucrecius
mutable = mutationnel cf. nos cousins et voisins d'Alain (http://www.granddictionnaire.com/btml/fra/r_motclef/index800_1.asp) on Oct. 30 2008
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 2008
Lucrecius
c'est du domaine de la génétique, au départ on Oct. 30 2008
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 2008
Christian
la encore un petit exemple ne nuirait pas à nous ouvrir des portes ! on Oct. 30 2008
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 2008
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 2008
Tof
yacs gère le café chez toi ? on Oct. 30 2008
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 2008
Tof

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

on Oct. 30 2008
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 2008
Tof
ok je comprends.
et je le regarderai de près on Oct. 30 2008
Denis
je vais vous laisser... bonsoir et merci pour tout ! on Oct. 30 2008
Bernard
Encore une question ou deux avant de terminer la session de ce soir ?
Merci Denis, à bientôt ? on Oct. 30 2008
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 2008
Bernard
ok Tof on Oct. 30 2008
Denis
a bientôt ! on Oct. 30 2008
Tof
Bye Denis on Oct. 30 2008
Lucrecius
Bonsoir Denis, Bernard, tu peux expliquer "comportement" on Oct. 30 2008
Christian
bye on Oct. 30 2008
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 2008
Lucrecius
Christian, Baille. on Oct. 30 2008
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 2008
Christian
je disais bye à Denis ! on Oct. 30 2008
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 2008
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 2008
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 2008
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 2008
Bernard
(ha ha je vais regarder ce bug pernicieux de localisation) on Oct. 30 2008
Lucrecius
je l'ai abandonné car il modifiait la mise en page du code on Oct. 30 2008
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 2008
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 2008
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 2008
Lucrecius
Je me permettrai d'ajouter Fireftp ScreenGrab (nouveau pour moi.. mais très prometteur) Irfanview
Tu utilises toujours "commander" ? on Oct. 30 2008
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 2008
Tof
PSPad Editor pour moi et WinSCP pour le ftp on Oct. 30 2008
Christian
Ok je regarderais ce script on Oct. 30 2008
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 2008
Tof
il est demain... je vais aller me coucher. on Oct. 30 2008
Bernard
Pour le SVN, c'est Passage à Subversion, chez Google Code et il faudra faire une session là-dessus un jour ... on Oct. 30 2008
Christian
google Code est en avance par rapport à yacs ? on Oct. 30 2008
Bernard
Ca peut arriver, oui. on Oct. 30 2008
Christian
je vais faire une synchro pour voir on Oct. 30 2008
Lucrecius
Je vais devoir aussi vous laisser on Oct. 30 2008
Christian
A très bientot et merci pour tout ... Bonne nuit on Oct. 30 2008
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 2008
Agnès
Bernard, je t'ai laissé une action sur ton profil. on Oct. 30 2008
Tof
tu conclus bernard ? on Oct. 30 2008
Bernard
Merci Agnès on Oct. 30 2008
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 2008
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 2008
Lucrecius
Bernard, tu as parlé Lundi d'une utlime mouture après la b21.. elle est dispo ? on Oct. 30 2008
Bernard
Yanys, non, mais on y travaille ... on Oct. 30 2008
Tof
et bien, merci encore. on Oct. 30 2008
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 2008
Lucrecius
pas de soucis.... che va piano, va sano, no ? on Oct. 30 2008
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 2008
Tof
bonne nuit tout le monde on Oct. 30 2008
Bernard
Fermeture annoncée dans 1 minute.. on Oct. 30 2008
Lucrecius
Bonsoir et merci.... on va potasser on Oct. 30 2008
Agnès
Bonsoir à vous tous également. À bientôt on Oct. 30 2008
Bernard
Extinction, brossage des dents, et dodo ! on Oct. 30 2008

 
Files
Information channels
Recent files