La pause estivale a été plus courte que prévue puisque la nouvelle version de Soosyze CMS est disponible avec comme fonctionnalité phare : Les multi-niveaux. De plus, une grande partie du module News a été refondue.

Utilisateur

Menu multi-niveaux

Commençons par la grosse nouveauté, les multi-niveaux.

Jusqu’à présent seul le menu principal était modifiable, maintenant tous les menus sont ouverts à l’édition. L’interface utilisateur a été revue pour y intégrer une navigation pour les différents menus.

Illistration Admin Menu
Le champ « Poids » a disparu, le déplacement des liens se réalise uniquement en glissé/déposé. Un nouveau champ Icône est présent dans l'interface de création et d’édition d’un lien. Il permet d'insérer une classe CSS de la librairie Font Awesome (5 Free) pour y insérer une Icône de leur catalogue.

  • #69 Ajout d'un sous menu dans l'interface des liens des menus.
  • #68 Ajout d'icônes dynamiques pour les liens des menus.
  • #67 Ajout de multiple niveau dans le module Menu.

Refonte du module News

Le module News a été refondu pour y ajouter une pagination aux articles et un flux RSS.

  • #71 Ajout d'un flux RSS.
  • #70 Refonte du module News.

Illustration Blog

De plus, vous pouvez choisir le nombre d’articles que vous souhaitez afficher dans le panneau de configuration.

  • #73 Ajoute une configuration au module News.

Illustration Admin Config News

Node et Badges

Quelques refontes légères comme :

  • 2188438 Simplification de l'affichage des nodes dans le panneau d'administration.
  • 333f6fd Ajout du badge des rôles dans l'interface des permissions.

Développeur

Pour les développeurs il y a aussi quelques nouveautés !

Template

Le service template vient de corriger et simplifier la création de blocs autonomes et la substitution des fichiers sources des templates.

// Déclare une template dans la section page.content
->render('page.content', 'node-show.php', $this->pathViews, [ 'fields' => unserialize($node[ 'field' ])  ])
// Ajoute des fichier sources de substitution (dans l’ordre auquel elles sont appelées) si elles sont présentes dans le thème.
->override('page.content', [ 'node-show-' . $id . '.php', 'node-show-' . $node[ 'type' ] . '.php']);

Dans cet exemple-là, si le contenu node/1 (page) est affiché, le template choisira dans la liste de fichier d’affichages suivantes :

  • node-show.php Par défaut
  • node-show-1.php Première substitution possible
  • node-show-page.php Seconde substitution

Ou appeler un bloc existant et lui ajouter un nom de fichier de substitution :

/* Créer un template menu.php */
$tpl->createBlock('menu.php', $this→pathViews)
/* Créer un fichier template de substitution au nom du menu qu’il affiche. */
->nameOverride($nameMenu . '.php')
->addVars([ 'menu' => $menus, 'level' => $level ]);
  • #66 Simplification du service Temlplate.

Pagination

La nouvelle version du Framework comporte le nouveau composant Paginator.

Vous pouvez l’utiliser de la façon suivante :

use Soosyze\Components\Paginate\Paginator;

$count = 30 ; // Nombre d’éléments total
$limit = 5 ; // Nombre d’éléments a afficher par page (Minimum 3).
$id    = 1 ; // Identifiant de la page courante.
$link  = 'page/:id' // Lien des éléments de pagination avec la clé incrémentale.

$paginate = new Paginator($count, $limit, $id, $link);

echo $paginate ;

Vous pouvez également l’utiliser directement dans Soosyze CMS a l’aide du router pour générer le lien  :

/* le paramètre false à la fin de getRoute() permet de générer une route non stricte en omettant les paramètres obligatoires. */
$link     = self::router()->getRoute('news.page', [], false);
/* $link  = ‘news/page/:id’ */
$paginate = new Paginator(count($query_all), self::$limit, $page, $link);

Revu du développement

La phase de la maturité approche, depuis cette version il est possible de hiérarchiser les contenus et de créer des blocs autonomes utilisant le thème, ouvrant la voie à des fonctionnalités à venir.

Contrairement a ce qui a été annoncé dans la précédente Release, le module FileManager n'est pas encore disponible. Il reste un module très important pour l'évolution de Soosyze CMS, mais nous ne voulons pas précipiter les choses et sera disponible après avoir stabilisé quelques fonctionnalités du coeur.

Vous pouvez retrouver l'ensemble du changelog à cette adresse.

N’hésitez pas à nous faire vos retours de cette version directement sur le forum. Merci à vous ;)