image : modules tierces

Modules tierces

La création et ajout de modules tierces.

Cette fonctionnalité a pour utilité de permettre d'ajouter au système FractalCMS un ou plusieurs modules. Il sera ajouté automatiquement au back-office de FractalCore, qui gèreras la connexion et les droits d'access.

Première étape

Installation du composant fractal-cms-core

Ce composant a pour but de paramétrer le socle initial qui accueillera les autres modules.

composer require webcraftdg\fractal-cms-core

Le module fractal-cms-core met à disposition une interface.

fractalCms\core\interfaces\FractalCmsCoreInterface

Module.php doit implémenter cette interfaces afin d'y ajouter les fonctions nécessaires.

use fractalCms\core\interfaces\FractalCmsCoreInterface;

class Module extends \yii\base\Module implements BootstrapInterface, FractalCmsCoreInterface
{
../..
}

Le menu

Fonction getMenu()

Cette fonction est utilisée pas le Core afin d'amender le menu global de fractal-cms-core. Cette fonction renvoie un tableau sous le format :

  [
        'title' => 'le titre du menu',
        'url' => 'votre url',
        'optionsClass' => [], // Les classes à ajouter
        'children' => [], // les sous menus si il y en a (même configuration)
    ];

Les routes

Fonction getRoutes()

Cette fonction ajoute les routes à toutes les routes déjà présentent. Cette fonction renvoie un tableau sous le format :

  1. $coreId : Id du module Core dans votre application
  2. $contextId : Context Id de votre module
[
  $coreId.'/api/file/delete'=> $contextId.'/api/file/delete',
  .../...
]

Les permission (droits d'access)

Fonction getPermissions()

Cette fonction permet d'ajouter les permissions qui permettrons le paramétrage complet des utilisateurs. Cette fonction renvoie un tableau sous le format (Rbac de yiiframework) :

  1. permission => titre
[
    'PRODUCTS:' => 'produits',
    ../..
]

Les informations

Fonction getInformations()

Cette fonction permet de récupérer des informations liées au module et l'afficher sur le Dashboard. Cette fonction renvoie un tableau sous le format :

  1. titre => valeur
[
 'Nombre de produits actifs' => 10,
 ../..
]

Le nom

Fonction getName()

Cette fonction renvoie le nom de votre module (string)

L'identifiant

Les fonctions setContextId() et getContextId()

Ces fonctions permettent la valorisation et la récupération de l'Id technique du module au sein de l'application.

Elles sont importantes pour la gestion automatiques des routes.

public function getContextId() : string
{
    try {
        return $this->contextId;
    }catch (Exception $e) {
        Yii::error($e->getMessage(), __METHOD__);
        throw  $e;
    }
}

public function setContextId($id) : void
{
    try {
        $this->contextId = $id;
    }catch (Exception $e) {
        Yii::error($e->getMessage(), __METHOD__);
        throw  $e;
    }
}