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-coreLe module fractal-cms-core met à disposition une interface.
fractalCms\core\interfaces\FractalCmsCoreInterfaceModule.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 :
- $coreId : Id du module Core dans votre application
- $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) :
- 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 :
- 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;
}
}