Interface
Editer / Ajouter
L'édition d'un article se réalise en cliquant sur le stylet de la ligne. La création se réalise en cliquant sur le bouton Ajouter.

Création d'un nouveau menu : étape 1
Lors de l'ajout d'un menu, il est demandé en étape 1 le nom de ce menu.
- actif : Permet d'activer le menu
- Nom : c'est le nom qui permettra de le trouver, cette valeur est unique
Création d'un nouveau menu : étape 2
Après avoir saisie un nom unique et valider le formulaire. Le formulaire ce met à jour afin de permettre d'ajouter des élements du menu, en cliquant sur le bouton Ajouter un élément.
Création d'un nouveau menu : ajout d'un élément
Les attributs du formulaire
Nom : Nom de l'élément
Route CMS : Lien vers un article actif de FractalCMS
Route locale : Lien vers une action d'un contrôleur hors FractalCMS de votre application Web
Parent : L'élément créé peut-être un enfant d'un autre élément.
Création d'un nouveau menu : Exemple créer menu "header"
Récupérer le menu sur votre application Web
Il est possible d'adapter la donnée de retour afin de correspondre à votre logique.
{
try {
$result = [];
$menuId = Parameter::getParameter('MENU', $name);
$menu = Menu::findOne($menuId);
if ($menu instanceof Menu) {
$menuItemsQuery = $menu->getMenuItemChild();
$result = $this->build($menuItemsQuery);
}
return $result;
} catch (Exception $e) {
Yii::error($e->getMessage(), __METHOD__);
throw $e;
}
}
protected function build(ActiveQuery $menuItemsQuery)
{
try {
$result = [];
/** @var MenuItem $menuItem */
foreach ($menuItemsQuery->each() as $menuItem) {
$part = [];
$contentTarget = $menuItem->getContent()->andWhere(['active' => 1])->one();
if ($contentTarget instanceof Content || empty($menuItem->route) === false) {
$route = ($contentTarget !== null) ? $contentTarget->getRoute() : $menuItem->route;
$part['name'] = $menuItem->name;
$part['route'] = $route;
$subMenuQuery = $menuItem->getMenuItems();
if ($subMenuQuery->count() > 0 ) {
$part['child'] = $this->build($menuItem->getMenuItems());
}
$result[] = $part;
}
}
return $result;
} catch (Exception $e) {
Yii::error($e->getMessage(), __METHOD__);
throw $e;
}
}