Community « Le forum « Machine à café «
[Réglé] Overlay
Si quelqu'un voit mieux que moi, merci des éclairages.
| Bernard from nearby-an-airport Associate, 7054 posts | En anglais, overlay veut dire "recouvrir". En programmation, on utilise ce mot lorsque l'on spécialise un objet. Dans YACS, les overlays sont un moyen de spécialiser les articles. Par exemple, taper "poll" dans une section fait que tous les articles de cette section deviennent des sondages... ou alors, taper "recipe" pour obtenir un livre de recettes de cuisine... Pour les développeurs, l'intérêt est d'ajouter le minimum de code pour étendre YACS, en bénéficiant directement de la puissance du logiciel : images, commentaires, fichiers attachés, etc... sont préservés, l'overlay s'intègre à l'existant. Généralement, quelques lignes de PHP suffisent pour ajouter quelques champs à un article et rendre le service recherché. Pour le webmaster, l'intérêt réside dans la souplesse d'évolution de YACS, puisqu'il de choisir le ou les overlays dont il a besoin pour étendre le système comme il le souhaite. D'ailleurs si quelqu'un a le temps de développer un véritable overlay pour organiser des votes, il y a des clients... Pour votre information, c'est le système que j'utilise pour gérer les résultats de certaines courses automobiles des Zaniroli. Une section pour les étapes de la course (une page par étape), avec un overlay pour paramétrer les secteurs de régularité. Une autre section pour les équipages (une page par équipage), avec un overlay pour les caractéristiques de classement (âge du véhicule, etc.). Cet overlay est aussi utilisé pour la saisie de la feuille de temps, et pour l'affichage des points. Quelques scripts autour pour les travaux par lots (calcul de l'ensemble des tableaux de résultat en fin de journée) et voilà. Du vite fait bien fait qui marche depuis deux ans sur le terrain. |
Agnès![]() from le Grésivaudan (grenoble-chambéry) Associate, 2241 posts |
Bernard : Je reprends le fil de cette discussion, car j'ai avancé un peu sur le sujet. Je me suis d'abord fendue d'un champ supplémentaire dans le recipe (que j'ai renomé), et j'ai trouvé ça extra : clair et facile. Donc du coup j'ai commencé à en faire un autre destiné à des annonces : cela oblige les annonceurs à saisir un certain nombre d'informations standardisés pour être sur qu'on trouvera ces infos comparables sur chaque annonce. Cela permettra également de faciliter les recherches. Techniquement tout fonctionne très bien. Je voudrais par contre savoir comment gérer la mise en page des champs. J'ai un peu cherché, mais pas trouvé. Je m'explique : une fois les champs remplis, ils apparaissent avant le texte de l'article, les uns sous les autres, avec un gros saut de ligne. Du coup, sur un petit écran, l'article lui même n'est plus immédiatement visible, il faut descendre avec l'ascenseur. Il faut que je modifie cette mise en forme. J'avoue que j'ai lu l'ensemble des explications que j'ai pu trouver ici, dans les scripts, etc. mais je bute toujours sur mon anglais (même si je commence à faire de bon progrès, comme quoi yacs'ert aussi à ça !). Agnès Il n'y a pas de problème, que des solutions. |
| GnapZ from Caribbean 2970 posts | Bernard : Alors là je nage complètement. Ca fait 3 jours que j'essaie de "dériver" un overlay (Poll ou Recipe), rien n'y fait. J'arrive bien à créer mes champs et à les afficher. Je voulais, comme dans Poll, avoir la possibilité d'en ajouter mais là, rien n'y fait. Je voulais simplement créer une saisie de relevé de compte bancaire sur 4 champs + 1 calculé (Solde). J'ai trouvé (à adapter) PhpFiance. Il semble très simple et j'ai voulu l'intégrer en INCLUDE (pas su faire) ou en PLUGIN (pas su faire). Questions:
J'ai bien lu un max de commentaires dans les scripts mais il y a des notions de base qui m'échappent (jamais fait de Php). |
Ghjmora![]() 191 posts |
Comme GnapZ : help !!!! ces quelques points (overlays, include, et plugin) manquent terribelement à ma culture |
| Bernard from nearby-an-airport Associate, 7054 posts |
GnapZ: ni include ni plugin, mais quelque chose de différent, comme YACS en est si friand... Tout d'abord il y a le fichier overlays/overlay.php, qui décrit les fonctions que YACS va appeler pour intégrer la bête dans les articles, les listes, etc. Ensuite il faut écrire un script, et le placer dans le répertoire overlays, pour pouvoir l'utiliser. Ce script reprendra les fonctions générales, en les spécialisant. Pour faire une analogie, overlays/overlay.php serait comme un gant vide, tandis que votre script serait comme la main qu'on met dedans. Plus ou moins poilue, avec 4 ou 5 doigts, etc. C'est pas très cathodique comme explication mais ça dit bien ce que ça veut dire.Reste que tout ceci nécessite un peu de programmation PHP, en objet qui plus est, et qu'environ 99.999% des terriens sont et resteront hermétiques à un tel truc. Il vous reste à trouver les 0.001% qui restent pour vous aider... |
Ghjmora![]() 191 posts |
Bernard : poll et recipe sont des exemples de mise en oeuvre de overlay ? |
Agnès![]() from le Grésivaudan (grenoble-chambéry) Associate, 2241 posts |
Bernard : pourrais-tu nous en dire un peu plus sur les modifs du overlay.php ? Qu'est-ce à dire qu'on a "les moyens mettre à jour [nos] propres overlays" ? Ben j'en ai commencé voire finis quelques uns, alors bon... autant savoir non ? Désolée, je fais plus partie des 99,999% d'hermétiques au php version programmation objet qui plus est, mais je dirais pas non plus que je suis complètement au top, loin de là Si j'en crois néanmoins la tournure de la phrase, mes petits continuerons à fonctionner, c'est ça ? Ghjmora : Tu l'auras vu, j'ai pas tout pigé, loin de là mais quand j'ai voulu faire un test, voilà ce que j'ai fait : j'ai pris recipe.php et je l'ai renomé (recipe2.php). Je l'ai modifié pour y ajouter un champ, puis je l'ai placé dans le répertoire "overlays" de Yacs. J'ai ensuite modifié la section où j'avais mis en place le livre des recettes de cuisine (puisqu'on parle de ça) et dans les options pour le contenu de la section, au champ "overlay", j'ai indiqué le nom - recipe2. Ben ça marche nickel. Toutes les pages ont maintenant le champ supplémentaire que j'ai rajouté. Est-ce que tu comprends mieux ? Agnès Il n'y a pas de problème, que des solutions. |
Ghjmora![]() 191 posts |
Agnès : merci Agnès pour les conseils de méthode ![]() à nous deux, on va bien arriver à tirer les vers du nez à Bernard....
|
Agnès![]() from le Grésivaudan (grenoble-chambéry) Associate, 2241 posts |
Ghjmora : Ben j'espère bien, parce que je cherche toujours comment on fait pour modifier la mise en page des champs qu'on a créé, et j'ai pas encore trouvé. Alors Bernard, si tu passes par là... (beuh, ou quelqu'un d'autre hein, j'suis pas sectaire moi) ! Agnès Il n'y a pas de problème, que des solutions. |
| GnapZ from Caribbean 2970 posts |
Agnès, Ghjmora : Oui, alors on sera 3 ! J'aimerais faire partie des 0.001% mais je connais Php que depuis Yacs et j'ai pas encore tout assimilé. Concernant les overlays, je suis partis de recipe et poll. Je voudrais utiliser l'ajout de questions de poll à la simplicité de recipe (pas de sous script de vote). Le but est de saisir des écritures de compte perso (date, libellé, débit, crédit) pour les afficher en relevé bancaire (avec calcul du solde). Si j'ai bien avancé (saisie + affichage en table), je n'arrive pas à récupérer les saisies mais seulement à en ajouter. Et puis, on ne sait toujours pas comment utiliser Include et Plugins (par rapport à ma proposition de PhpFinance). J'ai bien compris les différences entre overlay, include et plugin mais pas la mise en service. Mais on y arrivera ... avec ou sans "secret" (marrant ça, un secret sous GPL ...) ! |
| Bernard from nearby-an-airport Associate, 7054 posts |
Ghjmora: Oui, overlays/poll.php et overlays/recipe.php sont les deux premiers overlays livrés en standard avec YACS. Pour les utiliser, comme l'a indiqué Agnès (fine mouche), vous devez indiquer soit poll soit recipe dans la section destinée à recevoir les articles munis de ces overlays. Chaque article créé à cet endroit aura des champs supplémentaires à la saisie, et des informations complémentaires à l'affichage, en fonction de l'overlay choisi.Cette mécanique est bien entendu à disposition de n'importe quel développeur PHP. Il suffit de préparer un script respectant l'interface décrite dans overlays/overlay.php, de le placer dans le répertoire overlays, puis de l'invoquer dans une ou plusieurs sections par l'intermédiaire du champ overlay, en tapant le nom du script sans l'extension .php.
|
| Bernard from nearby-an-airport Associate, 7054 posts | Agnès: La mise en page est celle décidée dans l'overlay. Avec les exemples de base fournis avec YACS, chaque attribut supplémentaire est affiché dans une balise de paragraphe <p>...</p> et forcément ça fait des sauts de ligne plus ou moins heureux.Deux possibilités à considérer pour améliorer les choses : soit ajouter, dans le code de l'overlay, une classe à la balise <p class="ga_bu_zo_meu">...</p>, et régler l'affichage par CSS, soit remplacer les paragraphes par une simple une balise de retour à la ligne <br />.
|
| GnapZ from Caribbean 2970 posts |
Bernard : Ha ha ! Je te tiens ! Vas donc faire un tour sur www.sxmpc.net, mon yacs de test pour les overlays. User : demo Pwd : demo Je n'arrive pas à faire marcher mon overlay "statement" basé sur Poll ... parce que Poll a un sérieux problème de duplications ! A l'accueil, il y a 3 sections pour 3 overlays. Essaies de simplement modifier les exemples Poll et Statement en ajoutant une seule saisie de plus ... Toutes les saisies sont dupliquées !!! Bon d'accord, je ne sais pas dire pourquoi ... mais alors Poll, c'est pas un bon exemple ! Si "statement" intéresse quelqu'un, c'est un overlay de suivi de relevé de compte avec calcul du solde auto. Présentation en table simple, saisie de 4 champs "Date, Libellé, Débit et Crédit". Le tout en FR/EN à la sauce Yacs. Alors ? |
Agnès![]() from le Grésivaudan (grenoble-chambéry) Associate, 2241 posts |
GnapZ : Ben alors, je sais pas si t'aurais pas oublié des droits, ou alors t'as tout changé depuis... quelques heures ! J'ai fait un tour, j'y pu voter (je t'ai laissé un message), mais pour les autres, à part donner son avis, on peut rien faire. Même pas tester ! c'est pas du jeu ça ! Sinon, le "statement", intéressant. Très même. je vais suivre ça, ça m'intéresse. Agnès Il n'y a pas de problème, que des solutions. |
| GnapZ from Caribbean 2970 posts |
Agnès : As-tu fais une connexion avec l'utilisateur Demo (membre) ? Si oui, je le passe associé dès que j'ai la main (Reboot de l'hébergeur). Je te ferai signe ici. PS: Poll fonctionne-t-il correctement chez toi (ajout de questions en mode modif) ? |
Agnès![]() from le Grésivaudan (grenoble-chambéry) Associate, 2241 posts |
GnapZ : oui j'ai fait la connexion avec demo. à part ça, j'ai pas essayé de rajouter des champs passeque z'avais pas les droits, chef ! J'ai juste "voté" et laissé un message. Agnès Il n'y a pas de problème, que des solutions. |
Agnès![]() from le Grésivaudan (grenoble-chambéry) Associate, 2241 posts |
Agnès : Heu, plutôt que de passer demo associé, tu pourrais le mettre éditeur des sections concernées, non ? Enfin ce que j'en dit... c'est toi qui voit, hein ! Agnès Il n'y a pas de problème, que des solutions. |
| GnapZ from Caribbean 2970 posts |
Agnès : Oui, je comprends mais c'est un site test alors c'est plus simple de le passer associé pour laisser accès à tout. Tiens, à ce sujet (il faut que je fasse un fil là dessus), on ne peut rendre un membre éditeur d'une sous-section spéciale (non listées dans le choix des sections). Bref, le serveur est actif, j'ai ajouté un mot à ton commentaire. Merci pour le temps que tu passes à ces essais. |
| GnapZ from Caribbean 2970 posts |
Agnès : Ha mince ! Le serveur est encore tombé. Ils ont des problèmes de suractivité disques. Je te tiens au courant ... |
| GnapZ from Caribbean 2970 posts |
Agnès : Ca y est, ils ont terminé. Le serveur est ouvert ... à votre bon coeur. |
Agnès![]() from le Grésivaudan (grenoble-chambéry) Associate, 2241 posts |
GnapZ : Bon, j'ai refait un tour. Alors : j'ai pu rajouter un champ au sondage, pas de hurlements et pas de doubles. Par contre, il a pas voulu que je vote encore une fois (y'm'a dit que j'avais déjà voté, le bougre !). Pour les recettes... ben rien à dire. Au fait, j'ai rajouté un champ à cet overlay, à mon avis indispensable quand on a des enfants ou des "nuls en cuisine" Voir par là.Pour le dernier, j'ai cliqué sur modifier et j'ai changé les champs. Effectivement, t'as tout en double. J'ai juste changé dans la première partie (i.e. j'ai pas recopié ma saisie) et enregistré et hop ! Ca y'est, t'es plus à découvert J'essayerai de créer une page la prochaine fois (pas le temps là tout de suite, tu sais ce que c'est, les devoirs, le bain, la bouffe, le dodo, et tout...). Agnès Il n'y a pas de problème, que des solutions. |
| GnapZ from Caribbean 2970 posts | Agnès : Merci pour ces essais (je prends volontier ta nouvelle recette :D ). Voici où j'en suis mais attention c'est technique alors Agnès: ferme les yeux, enfin au moins un :Le problème commence dès la 3ème saisie. S'il y a une saisie, la deuxième passe normalement. La troisième déclenche des "doublons". Dans Poll, tu as eu un "doublon". Pas dans Statement (2ème saisie). J'ai créé une 3ème saisie dans statement et hop: "doublons". Je dis doublons entre guillemets car en fait c'est pas exactement ça: Exemple par Poll:
Chaque saisie supplémentaire crée un double de l'existant puis ajoute la nouvelle saisie. Dans l'exemple précédent, S(4) = Q1 + Q2 + Q3 et S(5) = S(4) + Q5. Un peu mathématique à expliquer mais au niveau développement, ça revient à S = S + 1. Hors je ne vois pas où cela se passe ... J'aurais bien une idée au niveau de l'enregistrement des saisies car l'effet "vider pour supprimer" ne marche pas. L'enregistrement d'une nouvelle saisie s'ajoute à l'ancienne au lieu de la remplacer. Comment alors effectuer ce "vidage" préalable ? Help, Bernard ? |
| GnapZ from Caribbean 2970 posts | GOT IT ! Ok, j'ai trouvé (pfff que de temps passé là dessus). Bernard: Il s'agissait d'un défaut d'utilisation de la variable tableau ANSWERS lors du chargement des données. Il n'y avait pas de référence à l'index et donc le tableau reprennait tout à chaque itération du ForEach ! Agnès: Voici donc une version corrigée des sondages : Voir le patch [file=128]. Et voici le "statement" fonctionnel : [article=1249]. Tu peux mettre un beau [Réglé] cette fois. :D Il est content le GnapZ, il va pouvoir créer plein d'autres overlays ... A+ |
| GnapZ from Caribbean 2970 posts | Suite à un commentaire laissé par Ghjmora sur l'article "Statement", je reprends ici ses questions qui, il me semble, seront utiles à tous. 1) Est-ce qu'il y a une limite à l'ajout de champs dans la page ? Je ne saurais répondre précisément. Cela dépend de la structure d'une fonction Php et de la gestion des variables tableaux. Je pense que la limite de base doit être de 255, à vérifier. 2) "Vous pouvez en ajouter autant que vous le souhaitez en enregistrant la page entre chaque." Au bout d'un certain nombre, est-ce utilisable? Cette limite est liée aux caractéristiques de la base de donnée Sql utilisée. Cet overlay ne contient aucune limite interne et répond donc au même contenu que tout autre article. Une bonne gestion serait de représenter un article par mois ou par an suivant le nombre d'opérations bancaires à manipuler. 3) A quoi sert et comment fonctionne l'option "Tables" ? L'option table est propre aux articles, pas à cet overlay qui se limite à ajouter les champs de suivi bancaire à un article de base. Cette fonction permet de manipuler une table située dans la base de donnée avec une commande MySql SELECT. Il est aussi possible de faire des imports/exports de fichiers Texte, Excel (csv), XML et autres. A noter que ces tables sont automatiquement triables. 4) A quand la possibilité de trier la table en cliquant sur les champs de la première ligne? C'est une bonne question et je vous remercie de l'avoir posée ... toutefois, un fil à ce sujet existe dans le forum "Utilisation" : Comment créer des tables triables ?. |
| GnapZ from Caribbean 2970 posts | J'ai ajouté deux petites fonctions paramétrables lors de l'édition de l'article, dans les options avancées, champ option.
Overlay à jour, voir [article=1249], Enjoy. |
| GnapZ from Caribbean 2970 posts |
Infos de dernière version: Ok, on annule tout et on recommence:
[table=grid]...[body]...[/table] Cela permet un alignement à droite des valeurs sans passer par le CSS.
Il reste deux chose en cours:
Les suggestions sont les bienvenues. |
| Bernard from nearby-an-airport Associate, 7054 posts |
GnapZ: bon ben tout baigne on dirait. Les joies de l'overlay, les corrections de bug, vous vous débrouillez très bien, et j'en suis enchanté. Si l'overlay statement est de portée générale et disponible en LGPL, on pourrait le rajouter à la prochaine distribution YACS, non ? |
| GnapZ from Caribbean 2970 posts | Bernard : No problemo, tout "développement" que je tente sur Yacs est sous la license de Yacs et à disposition de la communeauté (si on peut appeller ce copier/coller de Poll un "développement"). J'ai pris soin de renseigner les commentaires à la façon "Yacs Script" dans ce sens. Comme je l'indiquais, il n'est pas fini car comment suivre un compte si l'on ne peut reprendre les soldes précédents ? Mon problème est plus de savoir comment je vais "attraper" la valeur de solde à intégrer (une seule fois par article):
Il manque aussi une gestion propre des décimales en respect des 2 langues (EN=1,000.00 et FR=1 000,00). Un floatvar() semblerait bien faire l'affaire ... à suivre.J'aimerais aussi gérer correctement l'affichage de l'article dans la section (et non dans l'affichage de la page elle-même), de façon à ressembler aux autres articles (Titre + Intro sans le corps). Quelque chose de simple, souple, sobre et qui puisse être repris par les articles déjà créés par les utilisateurs de cet overlay. Du travail en perspective ... mais je ne lâche pas le morceau ! Par rapport à l'esprit de dev Yacs, je n'ai pas renseigné la partie "Aide" (pas biennn !), mais tout est déjà en EN/FR (biennn !). Agnès: pas sur la tête ... j'ai encore pondu un roman technique ... |
Agnès![]() from le Grésivaudan (grenoble-chambéry) Associate, 2241 posts |
GnapZ : Faut que je mette fin à ce que j'ai lancé moi-même : je suis absolument pas hermétique à tout ce qui est technique, j'ai une culture technique pas négligeable, et ma curiosité fait souvent le reste ! Par contre, j'ai ni la science infuse ni un QI de 150 : j'ai des degrés de compréhension, comme tout le monde, qui dépendent de plein de choses, et en particulier de mes connaissances de base (+ la fatigue, + la hauteur de la liste de course ou l'humeur de mon dernier client, bref, rien que de bien normal quoi). - au passage, moi pas taper, moi devenue plus zen que ça avec le temps... Donc quand ça pête un peu trop haut pour moi, je le dit, et ça ne me donne pas d'états d'âmes. Pas de soucis. Je préfère TRES largement un discours technique qui se tient - quitte à demander des explications plus basiques - qu'un verbiage pour non initié idiot de base qui n'apprend rien à personne. Si tu fais semblant d'expliquer, les autres feront semblant de comprendre. Et moi j'aime bien comprendre ! Se mettre à la portée de ceux qui comprennent pas est une autre histoire, et c'est un exercice totalement différent, qui doit je pense supposer un minimum d'empathie, un certain altruisme et un fond d'humanisme ou quelque chose d'approchant. Je te rassure d'ailleurs : tu t'en sors très bien ! Et il se trouve qu'ici, y'a plein de gens comme ça, et c'est un vrai bonheur ! Allez tiens, un petit coup de chapeau encore à tout le monde Agnès Il n'y a pas de problème, que des solutions. |



