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.
Rendez-vous ici, de 21h à 23h, heure de Paris.
Oct. 30 2008

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.
- 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 ?
- les variables à notre disposition Principales variables utilisées pour construire une page à l'écran
- l'overlay mutable par l'exemple
- Intégrer une application tierse dans yacs : le necessaire pour garder sa session, ses droits yacs et autres choses vitales
- Les limites des layouts
- les traitements automatiques L'overlay mutable par l'exemple
- overlay : gerer le mutli-ligne dans un overlay (plusieurs articles)
- modifier la mise en page des flux RSS
- Personnaliser le vocabulaire autrement que par un overlay ?
- personnaliser l'enregistrement, la connexion
- supprimer l'affichage de certains onglets lors de l'edition des pages pour certaines catégories d'utilisateur
- ajouter un champ d'overlay (ou pas) dans manage it
- ajouter des fonctions dans la boite à outils
- ajouter des fonctions aux articles, sections ou catégories sans perdre son code à chaque mise à jour.
on Oct. 27 2008Quel programme ! on Oct. 30 2008
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
..les hooks par exemple
Peux-tu également préciser de quelle version nous parlons ? on Oct. 30 2008
(structurant = juste mettre des titres) on Oct. 30 2008
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
Salut Toff on Oct. 30 2008
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 2008Ce 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
On avance page par page ?
...pour les remarques.. on Oct. 30 2008
en tous cas sur le qui-fait-quoi on Oct. 30 2008
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
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.
on Oct. 30 2008Ce qui renvoie que les Stés de Conseils sont des clients potentiels, yacs, un de leurs outils ad-hoc
Bernard, globalement d'accord... mais de mon expérience, c'est plus à anticiper qu'à acquérir. on Oct. 30 2008
quelqu'un a dit CMS... comme Community Management System ?
on Oct. 30 2008L'architecture d'exécution de yacs est à la page 3. on Oct. 30 2008
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.phppour 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épertoiresharedd'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 2008render_skin(), qui transforme le contenu de$contexten balises compréhensibles pour le navigateur. on Oct. 30 2008Pour 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
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.phpettemplate.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 laisserskin_skeleton.phpfaire 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
skins/index.phples variables de$contextutilisées par yacs, et reproduites en partie dans Principales variables utilisées pour construire une page à l'écran.Pour vous aider, le script
page.phpregroupe logiquement les fonctionsecholes 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
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.phpdans yacs, où lexxxxdé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
dans skins/index.php on Oct. 30 2008
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
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
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
mais ca on s'en rend vite compte aussi on Oct. 30 2008
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
view_as_foo_barest activée pour un article, yacs charge le scriptarticles/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
articles/view_as_chat.phpa été ajouté à la distribution standard, plutôt que de faire gonfler le scriptarticles/view.phpdéjà existant. on Oct. 30 2008salut thierry on Oct. 30 2008
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
Question d'ergonomie dans la création de sections. on Oct. 30 2008
Quelques exemples :
- 'tick' pour lancer des traitements en tâche de fond, de temps en temps (toutes les 5 minutes environ)
on Oct. 30 2008control/scan.hpque 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
yanys, oui, je me suis trompé, il s'agit bien de
hooks.include.phpethooks.xml. Les deux ont le même contenu, mais sous des formes différentes.Les overlays ? on Oct. 30 2008
control/scan.php. Bon courage ...Les overlays, à quoi ça sert ? on Oct. 30 2008
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 :
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 2008Christian, 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
get_tabs()en lecture et en modification, voici un bout de code qui devrait aider : on Oct. 30 2008enfin editeur mais pas des options...
Et voilà ... on Oct. 30 2008
overlays/issue.phpva é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 2008setup()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énementcontrol/setup.phpavec la fonction de votre overlay, par exemplemon_overlay::setupLa 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
Christian avait des questions sur l'overlay 'mutable', ça vous tente ?
Allo ? on Oct. 30 2008
mais allons-y on Oct. 30 2008
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
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
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
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 2008overlays/mutables/edit.php, quelque soient leur emplacement dans l'arbre de contenu, les droits d'accès, etc. on Oct. 30 2008Si 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
ceci parce que le script overlays/mutable/edit.php est lançable "à volonté", c'est ça ?
on Oct. 30 2008et je le regarderai de près on Oct. 30 2008
Merci Denis, à bientôt ? on Oct. 30 2008
Un autre usage est l'ajout de boutons en bas de page pour construire des workflows élémentaires. on Oct. 30 2008
Voir
behaviors/index.phppour plus d'info. on Oct. 30 2008Chers développeurs, êtes-vous satisfaits ? on Oct. 30 2008
très statisfait
et FirebugFinalement, une fois que l'on a
dépassé un stade avec CSS, on est moins lié au WYSIWYG on Oct. 30 2008
Tu utilises toujours "commander" ? on Oct. 30 2008
tools/embed.phpqui montre comment mettre yacs "autour" d'une application existante, par ajout de code avant et après. on Oct. 30 2008J'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
Et je vais te laisser conclure en te remerçiant de cet exposé si clair. J'aime lire ça ! on Oct. 30 2008
Allez, c'est tout pour ce soir, alors dormez bien et à bientôt. on Oct. 30 2008