Blog

641efc29f1deb.jpg

Sortie de la version 1.1

25/03/2023 | 0 commentaire | Non classé

Bonjour ici.

 

3 posts en une semaine, c'est vraiment pas dans mes habitudes ^^ Mais j'essaye de faire un effort :)

J'ai le plaisir de vous annoncer la sortie de la version 1.1 du CMS 299Ko.

Modifications

Ajouts

Un seul changement notable, l'ajout d'un plugin FileManager, qui vous permet sur n'importe quel page d'édition de téléverser, voir, insérer et supprimer tous types et fichiers, et particulièrement les images pour vos contenus.

Mises à jour

  • Les fichiers .htaccess générés sont maintenant compatibles avec les dernières versions d'Apache (2.4.x)
  • Modification de l'affichage des images cachées ou non dans la galerie
  • Changement du favicon dans l'administration

Fixes

Coté réparation, pas grand chose de visible :

  • Le choix des catégories et l'affichage des images cachées dans la galerie généraient des bugs, dû au javascript (lors de la suppression de jQuery). C'est maintenant réparé.
  • Dans le plugin SEO, les icônes pouvaient être décalées lorsque l'affichage était sélectionné en "flottant"

Comment faire la mise à jour

Nouvelle installation

Vous pouvez télécharger l'ensemble du CMS sur GitHub. L'installation se passe conformément à la documentation, toujours aussi simplement : https://docs.299ko.ovh/books/installation/page/installation-et-prerequis

Mise à jour depuis la version 1.0.2

Vous pouvez mettre à jour votre installation de 299Ko en téléchargeant l'archive de mise à jour. Il vous suffit de la décompresser à la racine de votre site. Puis décompressez le tout à la racine de votre site. Une fois cela fait, il faut simplement aller dans la gestion des plugins, et activer le nouveau plugin, FileManager. Attention cependant à votre thème si vous avez modifié et que vous utilisez le thème défaut, le fichier styles.css sera écrasé.

Avant toute chose, n'oubliez pas de faire une sauvegarde de votre site, juste au cas où.

N'hésitez pas à nous remonter si vous rencontrez des bugs avec cette mise à jour, sur le post dédié sur le forum.

A venir

La prochaine version sera orientée accessibilité, avec une recherche des éléments à améliorer, surtout grâce à ARIA. Une mise à jour sera faite également pour l'éditeur TinyMCE, qui sera implémenté dans sa version 6, mais qui passera peut-être en plugin additionnel et non plus fourni d'office, dû au poids de celui-ci.

641aea2b86047.jpg

Arrêt du serveur le 22/03/2023

22/03/2023 | 0 commentaire | Non classé

Hello ici !

Le serveur subira une courte interruption ce mercredi 22 mars, entre 16h30 et 18h00, afin de monter le nouveau processeur Xeon dans le serveur, afin de faire baisser la charge du système. Tout reviendra en ordre passé 18h00 (si tout va bien ^^).

Ce blog, le forum et la documentation seront indisponibles pendant ce court laps de temps.

Merci !

6418aaac8220e.png

Déménagement et auto-hébergement

20/03/2023 | 4 commentaires | Non classé

Bonjour ici.

Il y a bien longtemps que je n'avais rien posté de technique. Enfin, ça l'est un peu mais ça n'est pas le sujet du jour. Non, aujourd'hui il est question de déménagement et d'auto-hébergement.

TuxFamily

Depuis le début du projet, soit en août 2022, 299Ko était hébergé par TuxFamily. J'ai déjà parlé de cette association, qui vise à promouvoir le logiciel libre. Mais depuis peu, le forum commence à vivre tranquillement, les utilisateurs s'intéressent, posent des questions, hébergent des images, ... Et l'hébergement offert par Tuxfamily ne suffit malheureusement plus.

En effet, les limitations, normales à mon sens, sont un peu trop restrictives pour héberger un site vivant. Il s'agit de 200Mo par site, sur un serveur tournant sous Debian 10 dont les services commencent à dater (PHP 7.3 et une vieille MySQL 5.6 de mémoire). Si c'était suffisant pour le blog et un petit forum sous MyBB, on est vite contraint lorsqu'on veut mettre en place des outils plus modernes.

Déménagement

Aussi, j'ai pris la décision il y a 2 semaines de migrer au fur et à mesure les services de 299Ko. Le but est de se libérer des contraintes imposées, et de pouvoir appliquer du composer, du PHP 8, et surtout de la place.

Pour les outils, j'avais déjà Flarum, un excellent CMS de board qui me faisait de l’œil. Et pour la documentation, je souhaitais changer du principe des pages statiques proposées par 299Ko pour un truc qui permette à plusieurs membres d'écrire, un wiki en somme. Et je suis tombé sur BookStack, un excellent wiki déjà en ligne qui remplacera la documentation et la gestion des téléchargements, toujours dans l'optique de pouvoir travailler à plusieurs.

Mais si le choix de se passer de TuxFamily était fait, il fallait se résoudre à avoir un hébergement, mais aussi un nom de domaine. Désireux de mettre le moins possible la main au porte-monnaie pour ce projet, j'ai été faible et ai donc pris un nom de domaine chez OVH : https://299ko.ovh

Le nom est court, mais il est facile à retenir selon moi. Et il n'est pas cher ^^

Auto-hébergement

J'ai un nom de domaine, c'est bien, mais je n'ai toujours pas d'hébergement. Dans l'optique de faire de ce projet une vraie partie intégrante de ma vie, j'ai vite compris que je pouvais l'héberger moi-même. Oui, j'ai depuis près de 2 ans un serveur qui tourne chez moi, et je peux en faire ce que je veux. C'est un HP Proliant MicroServer Gen 8, qui fonctionne très bien, et qui tourne déjà, aussi ça ne me coûte rien de plus en électricité. En plus, je viens de terminer l'installation de 2 panneaux solaires, justement destinés à ôter tout ce talon électrique (le serveur, le frigo, la box internet). Peut-être que j'y reviendrai un jour, tellement je trouve cette démarche sympa.

Coté performance, la bête est sur un Intel Celeron, que je remplacerai par un Xeon 1265L V2 dès que je l'aurai reçu, avec 8 Go de RAM, et 4 disques WD RED de 2 To montés en RAID 5. Faut pas que j'oublie de faire des sauvegardes malgré tout ^^

Là où le bat blesse pour le moment, c'est ma petite connexion internet en VDSL2 de 70Mo en DL et 10Mo en UP. La région me promet la fibre sous quelques mois, espérons 🤞

Limitations

Ben oui, bien que je sois satisfait du serveur, je ne m'appelle pas OVH non plus. Par exemple, je n'ai pas d'onduleur, aussi si j'ai une coupure de courant ou même d'internet, il faudra que vous fassiez une pause et vous aérer un peu en attendant que ça revienne ^^ Ne me tombez pas dessus si vous n'avez pas pu finir de lire une conversation et que ma femme a débranché le serveur pour passer l'aspirateur, ça ne changera rien 😁

La connexion internet joue aussi : J'ai essayé de prendre des softs peu gourmands en bande passante, mais si le nombre d'utilisateurs et de visiteurs croît, il faudra peut-être s'armer de patience en attendant l'arrivée de la fibre.

Bref, tout ça pour dire que le projet 299Ko prend une dimension un peu plus importante, et que les choses changent, mais j'y reviendrai (pour sûr :) ).

N'hésitez pas à faire un tour sur le forum histoire de poser une question ou suggérer des améliorations, j'y suis bien plus présent que sur les réseaux sociaux, et en plus il y a du monde sympa :)

Version 1.0.2

05/01/2023 | 0 commentaire | Non classé

Bonjour tous.

Petite news pour signaler que je viens de publier en crash une nouvelle version, la v1.0.2.

Celle-ci corrige un bug d'affichage des pages qui pouvaient apparaître sur le plugin Page, dans la partie administration.

Au passage, j'en ai profité pour inclure une fonctionnalité demandée : La suppression automatique (en un clic) du fichier install.php lorsqu'il est encore présent à l'issue de l'installation.

N'hésitez pas à poster vos retours et soucis sur le forum de 299Ko, toute discussion est la bienvenue :) Vous pouvez même poster un message sans vous enregistrer, mais vous perdez quelques fonctionnalités bien sûr.

Merci !

6361278b3e227.png

Le Moteur de Templates

01/11/2022 | 0 commentaire | Non classé

Ca y est, je viens de commit un gros pavé sur le Git de 299Ko, bouclant un chapitre entamé avant la sortie de la V1 : Un moteur de templates PHP pour 299Ko.

Moteur de templates ?

Pour ceux qui ne connaissent pas, un moteur de templates est une librairie qui permet d'interpréter du code écrit dans du HTML et de le transformer en PHP. Au lieu du code PHP dans la partie affichage, nous n'allons plus avoir que du HTML et des 'pseudos codes'.

Concrètement, nous allons pouvoir pleinement séparer la partie traitement, le code PHP pur, de la partie Vue, le code HTML.

Selon la syntaxe choisie par le moteur de templates, on aura par exemple cette syntaxe :

Par exemple, pour afficher une variable dans un div :

// Dans un fichier .php
?>


// Dans un fichier .tpl avec un moteur de templates

Cela va simplifier énormément la mise en page et surtout, permettre d'avoir une meilleure lisibilité de la Vue. En effet, les fichiers 'header.php' et 'footer.php' sont remplacés par un 'layout.tpl', dans lequel on injecte le contenu de la page (variable {{ CONTENT }}.

Lequel ? Twig ? Smarty ?

Si vous connaissez les moteurs de templates, vous n'êtes pas sans savoir que Twig, développé par les créateurs du framework Symfony, et Smarty, certainement le plus ancien et populaire des moteurs de rendu, sont assez 'gros'.

S'ils permettent de faire beaucoup de choses, ils sont malheureusement très lourds, et ce n'est pas dans l'esprit de 299Ko, qui se veut l'anti usine à gaz. Aussi j'ai développé un moteur de templates (presque) spécialement pour ce CMS. Il se compose d'une seule classe et couvre tous les besoins nécessaires dans notre cas.

Comme j'avais déjà utilisé Twig, j'ai décidé d'en reprendre sa syntaxe qui pour moi est assez claire.

Que pourra t-on faire avec ?

Pour le moment, et je pense que ça ne bougera pas, il suffit à remplacer toute la partie Vue du code des plugins. En voilà quelques lignes de code, que j'ai tiré de mes tests :

Afficher une fonction avec 2 paramètres :

{{ test[oui,non] }}

Appeler une methode statique d'une classe :

{{ show.mainTitle[

#mainTitle#

] }}

Ici on affiche le titre principal en fournissant un argument

Appeler un Hook :

{% HOOK.ACTION.adminSandBoxAction[un, deuxxx] %}

Les boucles :

$arr = [
        0 => [
        'name' => 'Je s\'appelle Groot'
                ]
        ,1 => [
                'name' => 'Je s\'appelle Second élément'
        ]
];
$tpl->set('monArray', $arr);

{% FOR Arra IN monArray %}
        MOI : {{ Arra.name }} 
Ma clé est : {{ Arra.KEY }}
{% ENDFOR %}

La variable KEY est automatiquement affectée à chacun des items du tableau, avec pour valeur sa clé.

Résultat :

MOI : Je s'appelle Groot Ma clé est : 0 MOI : Je s'appelle Second élément Ma clé est : 1

Tests de condition :

{% IF mode %}
        Le mode est actif
{% IF action == 2 %} L'action est edit {% ELSEIF action === plop %} L'action est plopi :) {% ELSE %} L'action est autre {% ENDIF %} {% ENDIF %}

Enfin bref, vous avez compris le principe ;)

Ca ne fait pas tout

A contrario de Twig, je n'ai pas souhaité insérer des fonctions qui permettent par exemple d'afficher des majuscules, d'échapper des caractères etc, car c'est selon moi de la partie traitement, et cela n'a rien à faire dans la vue. Les tests de condition, s'ils sont pleinement fonctionnels et peuvent être imbriqués, ne permettent pas de faire des condition de fou : La vue n'est pas le lieu.

Pour finir

J'espère pouvoir modifier les fichiers PHP pour les basculer en Templates rapidement. Pour le moment, les 2 systèmes peuvent cohabiter, et je pense que cela restera ainsi pour la version 2 définitive. J'en profite pour signaler que si jamais vous souhaitez filer un petit coup de main, toute aide est la bienvenue, je suis prêt à vous aider ;)