Soosyze CMS 1.0.0-alpha6

La nouvelle version de Soosyze CMS est enfin arrivée :) ! Malheureusement elle ne marquera pas les utilisateurs de nouvelles fonctionnalités criardes puisque 75 % du code écrit est consacré à la stabilité de l’outil ^^'.
Cette version a pris plus de temps que prévu pour sa sortie, nous vous en expliquerons les raisons à la fin du billet. Bref fessons le point des nouveautés et des changements.

Utilisateur

Module Manager

L’un des plus grands changements intervient dans le Module Manager. Entièrement refondu, il intègre un champ de recherche avec 2 options (les modules activés et/ou désactivés), ainsi qu’un sous-menu contenant les titres des paquets.

Pour voir les nouveautés sur l’intégration des modules, rendez-vous dans la partie «développeur».

URL simplifiées

Vous pouvez désormais simplifier les URL de votre site si votre serveur vous le permet.
Rendez-vous dans le panneau de configuration «Système» et si le champ «Rendre les URL propres» apparaît vous pourrez passer vos URL sous la forme simplifiée.

Cependant, selon votre serveur web (par exemple en offre mutualisée) la réécriture de l’URL peut ne pas fonctionner et donc masquer le champ de configuration.
Vous pouvez donc activer manuellement la simplification de vos URL en modifiant la valeur rewrite_engine à TRUE dans le fichier app/config/settings.json

Tooltip

Des tooltips ont été ajoutées à certains champs de l’interface d’administration pour fournir des informations complémentaires à l’utilisateur.

Politique de mots de passe

Le manque de complexité des mots de passe peut être un risque pour la sécurité.
Nous permettons donc à l’administrateur, via le panneau de configuration, de définir une longueur minimum des mots de passe. De plus, vous pouvez définir le nombre de caractères majuscule, numérique et spéciaux minimum contenus dans les mots de passe.

Permission

La barre de recherche des permissions a été modifiée pour pouvoir cacher les entêtes en cas d’absence de résultats.

Développeur

Modules manager

Le module manager a embrassé le format proposé par Composer. Très largement utilisé dans les projets PHP, Composer permet le téléchargement, l’installation et bien plus encore des dépendances d’un projet. C’est pour cette raison que Soosyze CMS utilisera le fichier composer.json pour fournir au Module Manager les informations d’installations de nouveaux modules.

Framework et Queryflatfile

Ces 2 projets sont les pierres angulaires de Soosyze CMS.
Ils ont subi de nombreux changements et corrections. Voici quelques exemples :

  • Les règles sur les tailles du composant Validator doivent pouvoir s’exprimer en taille de fichier :
$validator->setRules([ 
    /* Ancienne expression. */ 
    'picture' => 'image|size:200000', 
    /* Nouvelle expression. */ 
    'picture' => 'image|size:200ko' 
]) ->setInputs( $files );
  • Ajout de la méthode json() dans l’objet Controller :
/* Ancienne expression. */
public function foo() {
    $content  = "Affichage de la liste";
    $stream   = new \Soosyze\Components\Http\Stream(json_encode($content));
    $response = new \Soosyze\Components\Http\Response(200, $stream);
    return $response->withHeader('content-type', 'application/json');
}
/* nouvelle expression. */
public function foo() {
    return $this->json(200, ["Affichage de la liste"]);
}
  • La mise à jour des tests unitaires avec Travis et Coveralls gagnent de précieuses minutes d’attentes pour tester la couverture de code.

Vous pouvez retrouver les grands axes des changements aux adresses suivantes :

Revu du développement

La version alpah6 a duré plus de temps que prévu pour plusieurs raisons.
Pour commencer, la réécriture du framework et de queryflatfile a pris quelques jours.

Nous espérons avoir le temps de créer un ou deux articles sur certains points de cette nouvelle version qui a été riche en enseignements.
Mais deux points qui ont coûté très cher en temps, via la création du nouveau module « File Manager » et la refonte du « Module Manager ».

File Manager

Nous pensons qu’un bon CMS doit pouvoir gérer du contenu multimédia assez simplement. Un manager de fichier permet donc d’uploader des fichiers et de les ré-employer dans le site simplement.
Le module est développé à 95 %. Il peut ajouter des fichiers et répertoires, les modifier, les voir, les supprimer.

Cependant, vous devez vous douter que cette fonctionnalité ouvre de nombreuses possibilités à des utilisateurs malveillants (comme remplir votre serveur de documents jusqu’à l’excès, y introduire des scripts à risques, dérober des documents et autres informations sensibles).

C’est pour toutes ces raisons que ce module n’est pas encore mis à disposition.

Module Manager

Encore cette bête-là ^^.
C’est l’un, sinon LE module le plus important de Soosyze CMS puisqu’il est responsable de l’installation du CMS et du cycle de vie des modules.

Beaucoup de temps a été pris pour normaliser son fonctionnement et fournir une façon simple et élégante de créer des modules pour les développeurs courageux ;).

Si vous avez jeté un coup d’œil à la documentation développeur, le début de l’avant-dernier chapitre («Intégration à SoosyzeCMS ») précise qu’en dehors de l’utilisation des thèmes, le reste du chapitre est voué à être modifié dans les prochaines versions de Soosyze CMS pour une meilleure stabilité et mise à jour des données.
C’est pour cette raison qu’autant de temps a été mis à disposition dans le développement ce module.

Feuille de route

Dans quelle direction Soosyze CMS se dirige-t-il maintenant ?
Si vous avez lu le point sur le module File Manager dîtes-vous qu’il est quasiment fini, donc probablement présent pour la version alpha7 de Soosyze.

Dans les grands chantiers qui manquent avant le passage à la version Bêta il y a :

  • Les multi-niveaux dans le module menu (qui sont un réel frein pour dans l’adoption de l’outil),
  • La mise à jour des données à partir du module manager,
  • La refonte du module Node,
  • Une meilleure exploitation du module de Configuration.

Quant aux jours qui viennent, ils seront consacrés à la mise à jour de la documentation.
N’hésitez pas à nous faire vos retours de cette version directement sur le forum. Merci à vous ;)