Messages recommandés

PeterRabbit    371

@cybertaf OK, mais comme je te dis, je ne vois pas, n'ayant jamais constaté ce problème de page blanche. Si ça concerne le défaut d'encodage du "é" de février et du "û" de août, je ne vois pas le rapport. Mais en réponse à ta demande, tu as un peu plus haut les trois fichiers que je soumets à tes essais.

Partager ce message


Lien à poster
Partager sur d’autres sites
PeterRabbit    371

@Thispy Markdown, ce n'est pas essentiel : un txt suffit s'il est clair. Mais si tu regardes la gauche de l'écran de StackEdit, tu as ce qu'il faut pour une mise en page basique avec Markdown : supprime les #, les *, et regarde ce que ça change, c'est du WYSIWYG. Un titre, c'est "## Un titre", des italiques, c'est *des italiques*, qui seront en gras si tu mets **deux astérisques**. Ce langage est fait pour taper à la volée, sans cliquer sur des boutons ou des combinaisons de touches.

 

Tu ne voudrais pas essayer de faire l'exercice que je te suggère ? Moi j'aimerais bien avoir d'autres polices, ou des polices différentes, et je ne sais pas faire. Je compte sur toi !

 

 PS :  Pour Markdown, pas besoin d'aller chercher ailleurs : clique sur l'icone colorée "Toggle side bar" à droite de la barre d'outils et choisis "Mardown cheat sheet". Comme son nom l'indique plaisamment, c'est un aide mémoire pour les "tricheurs" qui ne connaissent pas leur code par cœur, et là, tu as tout ce que tu voulais savoir pour une mise en page avec Markdown.

 

5bf30e84c4c03_cheatsheet.jpg.6f845e8c54379c2b68e24faba67717e3.jpg

 

 

Modifié par PeterRabbit

Partager ce message


Lien à poster
Partager sur d’autres sites
creatifmen    21

hello tout le monde je reste avec la 8.4.5 pour être en phase avec
@PeterRabbit   pour continuer le cour..
Deuxième solution possible
c'est fait.
un futur module de restauration:heart: qui restitue les fichiers dans leur état initial. :heart:le rêve me réjouis, grâce au module de restauration ont vas pouvoir faire plein de truc sympas..
@Thispy  (Sauf que nous n'avons pas de mérite..) en première un exemple concret c'est important tu crois pas Thispy?
comme ça tout le monde peut comprendre.....

a++

 

Partager ce message


Lien à poster
Partager sur d’autres sites
cybertaf    119
Il y a 2 heures, PeterRabbit a dit :

@cybertaf OK, mais comme je te dis, je ne vois pas, n'ayant jamais constaté ce problème de page blanche. Si ça concerne le défaut d'encodage du "é" de février et du "û" de août, je ne vois pas le rapport. Mais en réponse à ta demande, tu as un peu plus haut les trois fichiers que je soumets à tes essais.

Non il n'y a aucun rapport ;)

Partager ce message


Lien à poster
Partager sur d’autres sites
PeterRabbit    371

Hola @creatifmen ! :) Je ne sais pas si je me suis bien fait comprendre, ou si vous avez bien compris, mais le module de restauration, c'est à vous de le confectionner. 

Je vous ai montré une technique qui n'est qu'une première étape. A vous de l'appliquer progressivement à autre chose : le module de restauration découle de ce que je vous ai fait pratiquer.

 

Toi, tu as un petit train d'avance. C'est justement pour ça que j'aimerais bien que tu me permettes de faire un beau titre pour mon site, avec une police qui te plaise, mais une police qui n'est pas comprise dans les 27 que Zwii propose out of the box, et en appliquant ce que je vous ai exposé aujourd'hui.

C'est là que le module de restauration trouve son sens : et si je n'aimais pas ta police ? Oui, je sais, il suffirait que j'en choisisse une autre. Mais ce sont des exercices, il faut bien un support. Et moi, je voudrais retrouver mon site comme avant d'avoir installé ton plugin.

 

Cet exercice en vaut un autre : je ne plaisante pas quand je dis que je ne sais pas comment faire, parce que je ne l'ai pas fait. En revanche, je pense que je saurais comment faire si je m'y mettais. Et c'est cette envie de chercher que je voudrais vous communiquer en vous donnant les moyens de partager ensuite ce que vous avez trouvé.

 

A+ @creatifmen avec le plugin complet ! Si, si, j'y tiens, sinon à quoi bon ? :mrgreen:

 

 

Modifié par PeterRabbit

Partager ce message


Lien à poster
Partager sur d’autres sites
PeterRabbit    371

Bon, j'ai fait mon TP ! Oui, c'est d'accord, j'ai le temps maintenant... 

Et avec ce que @PeterRabbit m'a montré, je pourrais partager le résultat, même si ce petit exercice ne justifie pas un plugin.

Mais on ne peut pas tout apprendre en une fois...

 

tp.jpg.3dd94a4756b499cd6c49a1ee301c6ed1.jpg

 

Honnêtement, ce ne sera un "atelier" que si vous mettez la main à la pâte. :/

 

Reprise de l'atelier vers 17:00.

Les choses vont se compliquer.

 

Modifié par PeterRabbit
  • Thanks 1

Partager ce message


Lien à poster
Partager sur d’autres sites
Thispy    53
Non, tu ne t'es pas planté @PeterRabbit juste que je n'aime pas ne pas comprendre ….
Tu proposes pas mal de chose (markdown, des astuces) et je ne veux pas brûler les étapes…
 
J'ai juste réussi actuellement de créer des répertoires et des sous-répertoire et mettre des fichiers dedans !
Soit en bref comme des dossiers dans mon Windows
 
Je n'ai pas encore trouvé la solution de restauration et d'installation !
Et encore moins Markdown…
 
Je pensais avoir fini un rien moins tard aujourd'hui, et bien, ce n'est pas le cas.
 
Je vais regarder comment faire dans les codes de zwii comment fonctionne le bidule.
Ou décortiqué un module que tu as déjà réalisé.
 
En fait je ne sais même pas par ou commencer…
Je dois être stupide à mon avis !
 
C'est comme si tu demandes à un enfant de 8 ans de prendre la voiture et de conduire.
Perdu.com
(rire)
 
Aussi, je pense que chaque atelier devrait avoir 1 semaine, le temps de pouvoir apprendre et le temps de pouvoir chercher.
Je sais que pour certain d'entre vous cela parait plus facile, et bien, je ne suis pas dans le cas.
 
C'est comme avant dans les math.
(a+b)2=a2+2ab+b2 j'avoue que je connais encore toutes les formules de math, mais me demande jamais de les appliquer, je n'ai jamais pigé.
 
Sortir de rétho, la 6 secondaires avec 94% et échec en math il faut le faire non !

Je n'avais pas un bon prof, il préférait boire sa tasse de café et fumé sa cigarette pendant la récréation, malgré que je lui disais que je ne comprenais pas !
Il me répondait, c'est de l'étude à l'état pur…
 
L'état pur il l'a eu en fin d'année.

Feuille blanche nom et prénom et sur les feuilles vierges pour faire les calculs j'ai noté toutes les formules que j'avais étudié sans rien comprendre, avec le nom du cylabus, la page et les chapitres !
 
En bref au lieu d'être ce que je voulais vraiment faire dans ma vie, Médecin Légiste, je suis devenu restaurateur, organisateur de banquet et chef de cuisine dans une maison de repos !
Modifié par Thispy
correction
  • Like 2

Partager ce message


Lien à poster
Partager sur d’autres sites
PeterRabbit    371

Oops ! Voilà la réponse que j'espérais. Je réponds tout de suite, mais laisse-moi le temps de la lire pour mieux te répondre. A tout !

 

Modifié par PeterRabbit

Partager ce message


Lien à poster
Partager sur d’autres sites
Rich_    11

Hello @PeterRabbit tu ne t'es pas du tout planté mais la fin d'année est compliquée en entre prise, on boucle l'année (prod et chiffre hein)

Je lis tout ça avec attention !!

J'ai créé mon espace de test avec une fresh install de zwii en 8.4.0 accessible ici sur http://test.herde.fr

Concernant la manip avec filezilla RAS

A plus

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites
PeterRabbit    371

Merci pour ta réponse, @Thispy, je m'y retrouve, tu sais, en particulier sur l'image des profs de l'époque.

 

Je retiens immédiatement une idée : une semaine pour réfléchir. C'est bien pour l'apprenant (comme on dit) et c'est bien aussi pour l'enseignant : préparer des cours, ça prend du temps. o.O

 

Tu me confortes aussi dans l'idée qu'il n'y a pas de transmission sans véritable échange. Avec des élèves, c'est le défi de chaque rentrée de leur faire comprendre, admettre et pratiquer. Dans le cadre d'un forum, ça se complique à cause de la façon de communiquer.

 

Ce que je te "reproche" (tu as vu les guillemets), c'est de vouloir trop en faire tout de suite par enthousiasme, au risque de te disperser – mais Markdown, c'est ma faute, je n'ai jamais fait que des txt...

 

Je voudrais juste vous faire parcourir le cheminement qui a été le mien, en pensant bien que certains sont des novices comme moi au début, mais que, en vous donnant le moyen de créer des plugins, cela vous motiverait pour chercher quelque chose à transmettre, parce qu’entre-temps les exercices vous auraient amenés à plonger dans un code que vous ne connaissez pas.

 

----------

 

Pour ce qui est de l'exercice technique, si tu as réussi à mettre tous les répertoires les uns dans les autres, avec les fichiers modifiés là où il faut (comme dans l'explorateur de Windows), tu peux les copier sur ton site d'essai pour le tester.

Accepte les remplacements, et parcours le site pour vérifier que le problème est réglé.

C'est le module d'installation.

 

Devoir pour ce soir (j'espère que tu comprends que j'y mets pas mal d'auto-ironie), le module de restauration.

 

tip.png.284c608c61d0aa35e0ea6a23924b4c33.pngUn indice : puisque tu as remplacé les fichiers d'origine par des fichiers modifiés, qu'est-ce qu'il faut faire pour remplacer les fichiers modifiés par les fichiers d'origine ? 

Je ne t'ai pas tout dit, je l'ai juste suggéré. xD

 

 

 

Allez, je continue l'atelier, mais c'est à vous de me dire à quel rythme !

 

Modifié par PeterRabbit

Partager ce message


Lien à poster
Partager sur d’autres sites
PeterRabbit    371
il y a 5 minutes, Rich_ a dit :

Hello @PeterRabbit tu ne t'es pas du tout planté mais la fin d'année est compliquée en entre prise, on boucle l'année (prod et chiffre hein)

Je lis tout ça avec attention !!

J'ai créé mon espace de test avec une fresh install de zwii en 8.4.0 accessible ici sur http://test.herde.fr

Concernant la manip avec filezilla RAS

A plus

 

Merci @Rich_ ! Entre-temps, on est passé à la 8.46, mais ce n'est pas grave. :mrgreen:

T'inquiète, pour ce qui est de votre boulot et de votre vie, je crois que je peux comprendre, même si la mienne n'a pas été et n'est plus la vôtre.

 

Tu as fait le plugin total (installation, désinstallation et readme dans une archive zippée) ? Envoie-le  nous en PJ !

 

A bientôt ! :)

Partager ce message


Lien à poster
Partager sur d’autres sites
Rich_    11
il y a 1 minute, PeterRabbit a dit :

 

Merci @Rich_ ! Entre-temps, on est passé à la 8.46, mais ce n'est pas grave. :mrgreen:

T'inquiète, pour ce qui est de votre boulot et de votre vie, je crois que je peux comprendre, même si la mienne n'a pas été et n'est plus la vôtre.

 

Tu as fait le plugin total (installation, désinstallation et readme dans une archive zippée) ? Envoie-le  nous en PJ !

 

A bientôt ! :)

Tu pourrais me ré-expliquer l'atelier de ce qui est attendu afin que je te propose un zip

J'ai relu le fil du forum mais j'ai pas bien saisi le livrable de l'atelier :(

J'suis un boulet, sorry 

 

Partager ce message


Lien à poster
Partager sur d’autres sites
Thispy    53

Voici l'adresse des deux plugin 

L'installation et la désintalation

 

A vérifier ici... https://www.root.my.be/845/plugin/

Heuu j'ai pas fait le fichier txt

 

Au fait merci de l'info noté ici plus haut ...

J'ai pas du regarder dans les codes ..

 

 

Modifié par Thispy
Merci
  • Thanks 1

Partager ce message


Lien à poster
Partager sur d’autres sites
PeterRabbit    371

@Rich_ Meuh non, pas plus que tout le monde ! :mrgreen:

 

Il faut juste lire et faire, mais le problème, c'est que ces moyens de communication modernes ne facilitent pas la tâche : le fil de discussion se trouve éparpillé par les différentes réponses.

 

A la fin de chaque "leçon", il y a cette icone.  in_progress.png.3810d39133e91c13f8263d65387dfda8.png

Relis : tu devrais pouvoir nous envoyer ton plugin sous la forme d'un fichier .zip.

Mais si tu ne comprends toujours pas, n'hésite pas à le dire !

 

 

Modifié par PeterRabbit

Partager ce message


Lien à poster
Partager sur d’autres sites
PeterRabbit    371
il y a 22 minutes, Thispy a dit :

Voici l'adresse des deux plugin 

L'installation et la désintalation

 

A vérifier ici... https://www.root.my.be/845/plugin/

Heuu j'ai pas fait le fichier txt

 

Au fait merci de l'info noté ici plus haut ...

J'ai pas du regarder dans les codes ..

 

 

 

Bravo ! :beer: 

Mais je vais pinailler (pour le bon fonctionnement de l'atelier) :

  • zippe (au format .zip) les deux modules dans la même archive
  • ajoute un readme.txt – si, si !
  • une copie d'écran pour l'illustrer
  • une vignette de 250x250px
  • et poste ton archive sur ce fil de discussion.
Modifié par PeterRabbit

Partager ce message


Lien à poster
Partager sur d’autres sites
PeterRabbit    371
il y a 11 minutes, Thispy a dit :

On reste sur la version 8.4.5 pour les leçons ?
Où on met à jour ?

À suivre...

 

Pour les "leçons", on continue, non ?

On met à jour (8.45 ->  8.46) depuis la barre d'administration pour vérifier que ça fonctionne.

Et on va constater que la mise à jour à écrasé ton beau travail, ce qui donne à réfléchir.

Mais on n'oublie pas d'envoyer le plugin terminé ! :P

 

A demain pour la suite ?

Modifié par PeterRabbit

Partager ce message


Lien à poster
Partager sur d’autres sites
Thispy    53

@PeterRabbit

Heuu ok sauf que je n'ai pas zip
Je n'ai que winrar
Pour le reste, je te fais cela demain en .rar

Et pour ta police normalement demain aussi, j'ai trouvé ou je dois aller.
\core\vendor\tinymce\skins\lightgray\fonts

Choisi ta police que tu désires Monsieur le professeur !
Je ne travaille pas avec tinymce full option disponible sur le site ...

 

Partager ce message


Lien à poster
Partager sur d’autres sites
PeterRabbit    371

@Thispy Tu vois que ça te fait oublier ton boulot !

 

Winrar ne fait pas du zip ? Télécharge ça, c'est du portable !

 

Pour le devoir, tu choisis la police que tu veux, l'essentiel, c'est que ça fonctionne (teste avant).

Et relis ce que je demande et que j'ai montré un peu plus haut. Le titre, ce n'est pas Tiny... :|

 

in_progress.png.31f9bb54ce0bbe1a594054615d51f568.png

Modifié par PeterRabbit

Partager ce message


Lien à poster
Partager sur d’autres sites
Rich_    11
Le 19/11/2018 à 10:53, PeterRabbit a dit :

Reprise de l'atelier.

Où vous confectionnerez votre premier plugin... et corrigerez ce petit défaut d'encodage ! @cybertaf sera content. :mrgreen:
 

Personne n'ayant répondu à ma question, j'en déduis que vous êtes tous très occupés, qu'elle était trop simple ou trop difficile, ou que vous êtes timides (rayez les mentions inutiles). Pô grave, j'ai une longue habitude des questions-réponses et des moments de grande solitude. xD On enchaîne donc.

 

------------

 

Deuxième solution possible

 

tip.png.18a3610e8a3697ab35001ee747ed23ec.pngS'inspirer de la façon dont Zwii s'installe sur votre serveur en reconstituant dans une archive la partie de l'arborescence concernée et en y plaçant les trois fichiers modifiés : il suffira à l'utilisateur de copier le contenu à la racine de son espace et d'accepter le remplacement des trois fichiers.

 

 

 

Mise en pratique
Téléchargez les trois fichiers modifiés :

 

Créez un nouveau dossier sur votre bureau et nommez-le "Mon premier plugin", par exemple.
A l'intérieur, placez le fichier "index.php" modifié puis créez un nouveau dossier "module" à l'intérieur duquel vous créerez un dossier "blog"... à l'intérieur duquel vous créerez un dossier "view"...  à l'intérieur duquel vous créerez pour terminer deux dossiers "article" et "index", o.O reconstituant ainsi l'arborescence de Zwii. Reproduisez les noms à l'identique, sans majuscules !

 

arborescence.jpg.4856505502b6ebb58eff30abf644ceba.jpg

 

Placez les deux fichiers modifiés "article.php" et "index.php" (le bon !) dans les dossiers "article" et "index".
Votre plugin est prêt.


Installez-le en copiant l'ensemble (le fichier "index.php" et le dossier "module") à la racine de votre site.
Acceptez les trois remplacements.


C'est fait, vous pouvez vérifier, le défaut est corrigé dans l'index du blog (/blog), dans les articles(/blog/mon-troisieme-article) et dans la page de configuration du module dans la partie admin (/blog/config). 

 

NB : @creatif m'a dit qu'il reste un défaut en local. Désolé, je n'ai pas les moyens de tester.

 


tp.png.95bb09f5caa382f8ab73cb520671aec6.png

 

Exercices d'application à faire pour la prochaine séance

 

 

 

 

1. Même s'il est peu probable qu'un utilisateur veuille désinstaller ce correctif, vous confectionnerez un module de restauration qui permette de remettre le site dans son état initial en utilisant le même principe et vous vérifierez qu'il fonctionne bien. Je pense que vous saurez comment faire.

 

2. Après quoi, vous confectionnerez le plugin définitif : 

  • Renommez les deux modules d'installation et de restauration "utf8_encode_install" et "utf8_encode_restaure".
  • Rédigez un petit "readme.txt" ou, mieux, un "readme.md" en essayant l'éditeur Markdown en ligne StackEdit. https://stackedit.io/app#
  • Zippez le tout.

Avec une vignette et une ou deux copies d'écran, votre premier plugin serait presque bon pour la rubrique "Téléchargements" du forum... s'il ne présentait pas un défaut quasi rédhibitoire...

 

J'avoue que c'est cette technique que j'ai utilisée à mes débuts, il y a deux ans. Jusqu'au jour où je me suis dit qu'écraser les fichiers d'origine, c'était risquer d'écraser d'éventuelles personnalisations apportées par les utilisateurs, même dans des fichiers qui paraissent secondaires. Celui qui aurait modifié la police de la signature des articles, par exemple, aurait bien raison de vous maudire !

Je me suis donc dit qu'il fallait que j'acquière les rudiments de PHP pour réécrire ponctuellement les fichiers sans toucher au reste du code, mais toujours en proposant un module de restauration qui restitue les fichiers dans leur état initial.

 

On verra ça demain ? :)

in_progress.png.7f8128acee3b10b722798008911357ac.png

Concernant  "utf8_encode_install" et "utf8_encode_restaure", on parle bien de deux plugin distinct ? :

  • Le premier dit original
  • Le deuxième comportant les modifs réalisé"s.

C'est bien ça ?

Modifié par Rich_
  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites
creatifmen    21

coucou tout le @PeterRabbit @Rich_ @Thispy  @simon511000  trop cool ça avance,
y a mon cerveau qui me demande de crée un outil ou l'on peut prendre les futurs patch créer ,les ajouter dans des dossiers et sur le site pouvoir tester avec des boutons genre installer désinstaller..
donc vais faire ça.. demain un esquisse ça vas le faire..
après vas me falloir un codeur pour affinée tout ça car je ni connais rien..
a++

 

Partager ce message


Lien à poster
Partager sur d’autres sites
herve    8

Bonjour;

 

Je me suis inscris  :-)

 

Mes occupations et ma dispo sont fluctuantes, je vais essayer de suivre.

 

Bonne journée

 

Hervé

  • Thanks 1

Partager ce message


Lien à poster
Partager sur d’autres sites
Thispy    53

Bonjour @PeterRabbit et les autres élèves...

 

Voilà ce que tu m'as demandé :

 

zippe (au format .zip) les deux modules dans la même archive

ajoute un readme.txt – si, si !

une copie d'écran pour l'illustrer

une vignette de 250x250px

et poste ton archive sur ce file de discussion.

 

https://www.root.my.be/845/plugin/Rectification bug utf-8 du module blog.rar

 

Oups en .rar et non zip...

Mouais va falloir que je demande un accès admin sur le serveur pour pouvoir l'installé.

Comme je bosse sur un réseau, je ne fais pas ce que je désire...

 

Partager ce message


Lien à poster
Partager sur d’autres sites
Thispy    53

Re,

 

Voici une nouvelle police d'écriture pour Zwii 

L'écriture "Display"

 

Install et Erase effectif 

Lien :

https://www.root.my.be/845/plugin/Nouvelle police d'écriture (Display) Zwii V8.4.6.rar

 

Prochainement disponible en zip :(

Sans titre .png

Modifié par Thispy
img
  • Thanks 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

  • Contenu similaire

    • Par PeterRabbit
      ATELIER #2
      Où les choses vont légèrement se compliquer...
       
       
       
       
      A la fin du premier atelier, je vous ai laissés sur une impression insatisfaisante : "Pourquoi nous enseigner quelque chose pour nous dire après que ce à quoi nous sommes laborieusement parvenus n'est pas la bonne méthode ? " – Pour préparer progressivement les compétences nécessaires à l'atelier #3 à venir...
      Mais pour l'instant nous n'en sommes qu'à l'atelier #2 : apprendre quelques rudiments de PHP pour réécrire ponctuellement les fichiers au lieu de les écraser, sans toucher au reste du code.

      Grâce à Google pour mes recherches et à l'incontournable volumineux manuel officiel de PHP, j'ai peu à peu appris à remplacer une ligne de code par une autre en utilisant ces quelques instructions :
      $file="core/layout/main.php";  $filecontent=file_get_contents($file); $replace=str_replace('<header', '<header class="img<?php echo rand(1, 6);?>"', $filecontent); file_put_contents($file, $replace); Ne vous laissez pas impressionner par le code de la troisième ligne, c'est juste pour vous donner un vrai exemple.
       
      Je vous commente les instructions :
      $file="core/layout/main.php";  On associe le fichier que l'on veut modifier à la variable $file.
       
      $filecontent=file_get_contents($file); On ouvre le fichier $file, on lit son contenu et on le place dans la variable $filecontent.
       
      $replace=str_replace('<header', '<header class="img<?php echo rand(1, 6);?>"', $filecontent); On remplace le code d'origine par le nouveau code dans $filecontent et on associe le contenu modifié à la variable $replace.
      La syntaxe de cette instruction est simple : str_replace('code à remplacer', 'modification à apporter', $filecontent);
       
      file_put_contents($file, $replace); On écrit le contenu modifié dans le fichier $file et on le referme.
      Et on répète cette opération autant de fois qu'il le faut en fonction du nombre de modifications à apporter et du nombre de fichiers concernés.

      NB : Il existe des techniques plus sophistiquées et plus condensées qui relèvent de ce qu'on appelle "codage" – merci à @EBS01 pour l'exemple qu'il me fournit très à propos ! 
      Mais puisque celle-ci donne de bons résultats, pourquoi la compliquer, d'autant que le débutant s'y retrouvera plus facilement et qu'on peut faire du copier-coller à partir d'une maquette qu'on conservera dans un coin de son disque dur ?
       
      Mise en pratique
      Cette technique de remplacement peut être utilisée pour corriger un code. Nous aurions pu ainsi corriger le bug d'encodage de cette façon au lieu de remplacer les fichiers. Mais on peut aussi l'employer pour ajouter du code à certains endroits. C'est ce que nous allons voir.
      Je vous propose de partir du travail pratique que je vous avais demandé et que @Thispy m'a envoyé. Nous allons ajouter une police aux 27 dont dispose Zwii. Bien sûr, il suffirait d'expliquer comment faire, vu qu'il n'y a qu'une ligne à ajouter. Mais ce n'est pas notre propos et  comme l'exemple est simple, il sera plus parlant.
       


      Une étude de l'arborescence de Zwii (cf ; "README.md") vous amènerait à constater la présence d'un répertoire "theme" parmi les "modules du cœur" de Zwii ("core/module") : vous vous doutez que c'est là que se définissent les différents paramètres qui entreront dans la composition de la feuille de style qui définit l'apparence de Zwii  ("site/data/theme.css").
       
      Rendez-vous dans ce répertoire et éditez le fichier "core/module/theme/theme.php".
       
      Il va s'agir d'ajouter la police "Display" par ordre alphabétique (@Thispy ) entre les polices "Dancing script" et "Droid sans".
       
      Procédons pas à pas :
      Créez un nouveau fichier texte sur votre bureau et copiez-collez le code que j'ai commenté : $file="core/layout/main.php";  $filecontent=file_get_contents($file); $replace=str_replace('<header', '<header class="img<?php echo rand(1, 6);?>"', $filecontent); file_put_contents($file, $replace); Copier-coller minimise les risques de "fautes d'orthographe" : si vous oubliez la moindre virgule, c'est fichu...
      Nous ne mettrons qu'une instruction par ligne pour que le code soit plus facile à lire et surtout à relire.
       
       
       
       
      Adaptons maintenant ces lignes à ce que nous voulons faire. Il suffit juste de changer le chemin et le nom du fichier (ligne 1) ainsi que le code à remplacer et la modification à apporter (ligne 3). Je vous montre, vous appliquerez ensuite : $file="core/module/theme/theme.php";  $filecontent=file_get_contents($file); $replace=str_replace(''Dancing+Script' => 'Dancing Script',', ''Dancing+Script' => 'Dancing Script',         'Display' => 'Display',', $filecontent); file_put_contents($file, $replace); La ligne 1 ne soulevant pas de questions, je vous explique le principe de la ligne 3.
      En fait, pour ajouter la police "Display" à cet endroit précis, on remplace la ligne de la police précédente ("Dancing script") par deux lignes : la ligne de la police "Dancing script" à laquelle on ajoute celle de la nouvelle police "Display", sans oublier le passage à la ligne entre les deux. J'ai aussi ajouté un espace au début de la nouvelle ligne pour respecter la présentation du code.
       
      Si j'ai été clair, vous avez compris qu'il faut chercher dans le script des repères précis pour s'en servir comme de points d'ancrage pour les modifications. C'est le principe des hooks (crochets) dans des CMS conçus pour recevoir de vrais plugins. On aurait d'ailleurs pu prendre appui sur la ligne suivante, celle de la police "Droid sans".
       
      Exercice : Réécrivez la ligne 3 pour faire ce que je viens de dire !
       
       
       
       
       
      Voilà, votre script est prêt !
      C'est bien joli tout ça, me direz-vous, mais comment faire pour l'exécuter ?
      On pourrait le placer dans un fichier spécifique, "display.php" par exemple, qu'on placerait sur le site et qu'on appellerait depuis son navigateur, mais je me suis dit que ce serait plus élégant de l'ajouter au fichier "index.php" à la racine du site de façon qu'il s'exécute juste avant que Zwii ne se lance.
       
      Mise en pratique
      Faites une copie du fichier "index.php" à la racine de la 8.45 que vous avez téléchargée pour cet atelier (on continue à travailler sur cette version) et placez-la sur votre bureau (elle s'appellera toujours "index.php"). Éditez-la. Copiez-collez vos quatre lignes de code au niveau de la ligne 22, juste après la vérification de la version de PHP. Faites-les précéder d'un petit commentaire. Vous avez le choix de la syntaxe : /* Ceci est un commentaire dans un fichier PHP ou dans une feuille de style css */ // Ceci est un commentaire dans un fichier PHP Comme ceci :
      <?php /**  * This file is part of Zwii.  *  * For full copyright and license information, please see the LICENSE  * file that was distributed with this source code.  *  * @author Rémi Jean <remi.jean@outlook.com>  * @copyright Copyright (C) 2008-2018, Rémi Jean  * @license GNU General Public License, version 3  * @link http://zwiicms.com/  */ /**  * Vérification de la version de PHP  */ if(version_compare(PHP_VERSION, '5.6.0', '<')) {     exit('PHP 5.6+ required.'); } /* Installation de la police Display */ Vos quatre lignes de code [...] Enregistrez votre fichier et copiez-le à la racine de votre site d'essais. Validez le remplacement que vous propose Filezilla. Tatatan ! Le verdict va tomber : connectez-vous à votre site ou rafraîchissez la page d'accueil.  
      En fait, c'est plutôt le couperet qui est tombé 
      Parse error: syntax error, unexpected 'Dancing' (T_STRING) in /home/thgfrfo/public_html/8.45tp/index.php on line 25
      Une erreur d'interprétation du code due à une faute de syntaxe a bloqué le lancement de Zwii.
       
      Ne vous fiez pas aux explications des messages d'erreur, elles n'identifient pas toujours/souvent la cause première du problème. Dans le cas présent, ce n'est pas le "Dancing" qui est responsable du blocage, mais une erreur d'interprétation du code due à un petit détail que je vais vous expliquer.
       
      J'en profite pour vous conseiller d'utiliser un éditeur à coloration syntaxique (NotePad++ sur Windows ou Linux, ou Geany sur Linux par exemple – désolé, je n'ai pas croqué la pomme... 
       
       
       
       
      Ce qui aurait dû attirer votre regard, c'est que les parties de la ligne comprises entre des apostrophes sont en noir (sur Geany), couleur réservée aux instructions PHP. C'est donc là qu'est le problème.
      En effet, pour certains caractères, il faut expliquer à l'interpréteur PHP qu'il doit les considérer comme des caractères à écrire dans un fichier, et pas comme une partie d'une instruction à exécuter. Suis-je clair ? 
      Pour cela, il faut les faire précéder d'un antislash (Alt Gr 8). En jargon, on appelle cela "échapper" un caractère.
      Parmi ces caractères, il y a justement l'apostrophe dont votre ligne 3 fait un grand usage.
      Vous allez donc "échapper" ces apostrophes, mais pas toutes ! Celles qui encadrent la ligne à remplacer ou les deux lignes de remplacement appartiennent au script !
       
      Pour cette tâche, vous pouvez travailler indifféremment sur votre bureau ou en éditant le fichier en ligne.
      Faites précéder la première apostrophe 'Dancing d'un antislash, comme ceci : \'Dancing. Miracle, la suite se colore en orange... mais le problème se décale d'une apostrophe... Échappez donc une à une les 11 apostrophes restantes.  Cette fois, la ligne a une couleur plus homogène et vous voyez bien les deux virgules qui structurent le code.
      $replace=str_replace('\'Dancing+Script\' => \'Dancing Script\',', '\'Dancing+Script\' => \'Dancing Script\',         \'Display\' => \'Display\',', $filecontent); Au passage, ce travail de bénédictin vous a peut-être fait prendre conscience qu'il aurait été plus rapide d'échapper les apostrophes du code à remplacer, de copier ce code "échappé", puis d'ajouter la seconde ligne...
       
       
       
       
      Opérez le remplacement du fichier "index.php" de votre site, soit en le copiant à nouveau, soit en enregistrant les modifications avec Filezilla. Rafraîchissez la page. Ça marche, Zwii se lance !  
      Et si nous allions vérifier la bonne exécution de notre réécriture ?
      Éditez le fichier "core/module/theme/theme.php" de votre site.
      Bravo, la police "Display" apparaît à la ligne 44, entre "Dancing script" et "Droid Sans" ! 
      Et mince ! Elle y est deux fois ! 
      Eh oui, aussi bizarre que ça puisse paraître, même si votre erreur de syntaxe avait bloqué le lancement de Zwii, le script s'était pourtant exécuté et le remplacement avait été fait !
       
      Vous voyez donc que notre technique n'est pas parfaite  : si nous avions corrigé une ligne de code,  à la seconde exécution le script n'aurait plus trouvé le texte à remplacer. Mais dans le cas présent, la ligne qui sert d'ancrage est toujours là, et on la multiplierait à chaque connexion au site.
       
      La solution au prochain épisode ?
      Nous avons bien travaillé.
       
      J'ai oublié de donner le travail à faire !
      Envoyez-moi par MP un fichier "index.php" qui installe la police "Permanent Marker" en utiisant la technique que vous avez apprise.
      Indice : Zwii se fait livrer ses polices par Google Fonts.