Deblan blog

Développement

Murph, la version v1.0 est publiée

Murph est un framework open-source pour construire des CMS. Il est développé à l'aide de Symfony et permet de gérer des sites web avec plusieurs noms de domaines et en plusieurs langues. Il possède un gestionnaire de navigations et de menus, il met à diposition un générateur de CRUD et intègre quelques outils indispensables comme un gestionnaire de fichiers, un gestionnaire de tâches, un panneau de configuration, la double authentification, etc.

La procédure d'installation est simple et rapide. Toutes les informations essentielles sont sur la documentation et les sources sont sur gitnet.

composer create-project murph/murph-skeleton MonProjet ^1 # Installation du projet
cp .env .env.local
vim .env.local 
make doctrine-migration # Configuration de la base de données
make asset # Création des assets
php bin/console murph:user:create # Création d'un compte
symfony server:start -d # On lance le serveur web de dev

À partir de là, Murph est opérationnel. L'interface d'administration est accessible sur https://127.0.0.1:8080.
Tout le reste du travail s'articule dans la conception de votre CMS via du code. Je vous invite à lire la documentation du projet.

L'idée générale de Murph se résume dans ces quelques points :

  • Une installation de Murph contient une ou plusieurs navigations représentées par des noms de domaines et des langues
  • Une navigation contient des menus dans lesquels on ajoute des nœuds
  • Un nœud peut représenter une URL et peut s'associer à une page ou un autre nœud
  • Une page contient des blocs de contenu
  • À coté de ça, on peut générer des CRUD pour éditer des données métiers (exemple : les articles d'un blog)

Beaucoup de travail a été mené et Murph peut couvrir beaucoup de cas d'usages rencontrés par les développeurs de sites web sur-mesure. J'ai par exemple réalisé mon blog, un site de recrutement, un outil pour s'inscrire à un évènement et un site qui présente les services d'un hôtel dont voici quelques images du backoffice :

Murph


Nouvelle version majeure de Custom Menu

La version v2.3.2 de Custom Menu a été publiée il y a quelques jours. Cette version contient des mises à jours importantes qui rendent l'application à présent très complète.

Pour rappel, Custom Menu est une application qu'on installe dans Nextcloud. Elle permet de corriger un manque cruel de la mise en page du menu de navigation de Nextcloud. L'application permet de paramétrer 4 modes d'affichage du menu avec, à ce jour, une 40ène de de paramètres.

Parmis les dernières mises à jour, on retrouve la capacité de l'application à s'adapter aux couleurs de Nextcloud dès son installation. Mais le plus gros du travail s'est concentré autour la gestion des catégories. En effet, les applications sont organisées dans des catégories gérées par les développeurs Nextcloud. Custom Menu permet maintenant de créer de nouvelles catégories (dans toutes les langues utilisées dans votre Nextcloud) et de les affecter aux applications qui sont installées.


Supprimer les mots de passe d'un fichier Excel

Dans le cadre de mon travail, je vais devoir supprimer les mots de passe définis dans plusieurs dizaines de fichiers Excel.

Un fichier Excel, ainsi que n'importe quel type de fichier généré par la suite Office, est ni plus ni moins qu'une archive Zip contenant des répertoires et des fichiers XML. Les mots de passe ne chiffrent aucune donnée dans le cas d'une protection simple (le comportement par défaut). Par conséquant, et uniquement dans ce cas de figure, le mot de passe est un artifice pour bloquer l'accès à du contenu. Dans le cas d'un chiffrement des données, il n'est pas possible de supprimer le mot de passe comme je vais le faire. Les données sont stockées au format XML, il est donc très simple de retirer les mots de passe d'un classeur et de ses feuilles.

Afin d'industrialiser les modifications, j'ai écris un script qui fait toutes les modifications automatiquement : Excel password terminator.

Pour l'installer, il suffit simplement de clôner le projet ou de télécharger une archive de dépots. Les dépendances sont très peu nombreuses : zip, unzip, grep et sed.

asciicast


Migration de blog vers Murph

Mon blog a été mon premier vrai projet quand j'ai commencé de faire du développement web et il me suit toujours aujourd'hui.

Beaucoup de versions ont été réalisées car elles suivent mon évolution et les technologies que j'utilise. La précédente mouture était basée sur Trinity, un CMF basé sur Symfony 2, développé par web&design et sur lequel j'ai beaucoup travaillé. Trinity est puissant mais la conception n'est plus d'actualité et la migration vers une version récente de Symfony est impossible.
Je travaille sur la refonte du site web de l'association Tinternet & cie et s'est rapidement posée la question du CMS. Cela m'a permis d'entreprendre l'écriture de Murph, un CMF qui repose sur Symfony 5 et qui reprend les bonnes idées de Trinity avec une conception qui tient plus la route.

Tandis que Trinity était un hommage à Matrix, Murph est tout droit tiré d'Interstellar, un film pour lequel j'ai une affection très particulière. Voici quelques images du backoffice.

Si le projet vous intéresse, le code source du blog est disponible ici et celui du squelette de Murph se trouve là.


Mon thème pour ZSH

Cela fait des années que j'utilise ZSH comme interpréteur de commande. En complément, j'utilise également des plugins disponibles via l'excellent projet oh-my-zsh.

J'ai harmonisé l'ensemble des configurations sur mes différents accès. Pour ce faire, j'ai principalement travaillé sur le prompt et je publie aujourd'hui le code de mon thème.

Voici une capture d'écran qui décrit l'ensemble des fonctionnalités de mon thème :

  • Une gestion des codes de sortie avec différentes couleurs et éventuellement le code
  • L'affichage de l'heure
  • L'affichage de l'utilisateur et de la machine
  • Changement de couleur si l'utilisateur⋅trice est privilégié⋅e
  • Le chemin courant avec un retour à la ligne s'il dépasse une certaine longueur
  • Intégration de GIT (nécessite olivierverdier/zsh-git-prompt)

Mon thème pour ZSH

Le code source est disponible sur cette page et il est totalement libre.