Propriété "viewItemPath"
La propriété public viewItemPath du module FractalCMS peut-être valorisé dans le fichier de configuration. La propriété est valorisée par défaut par @webapp/views/fractal-cms.
/* fichier de configuration */
/*../..*/
'bootstrap' => [
'log',
'fractal-cms',
'fractal-cms-content',
],
'modules' => [
'fractal-cms' => [
'class' => \fractalCms\core\Module::class
'viewItemPath'=> '@webapp/views/fractal-cms'
],
'fractal-cms-content' => [
'class' => \fractalCms\content\Module::class
],
],
/*../..*/Si une vue est détectée dans ce répertoire, c'est elle qui sera utiliser dans le formulaire de création d'un article partie Gestion des éléments.
Règle de nommages des vues
Le nom du fichier doit correspondre à la valeur de la propriété name de la Configuration de l'élément. Les noms comportant des "-" seront automatiquement remplacés par des "_".
Exemple pour l'entête
- Nom : entete
- Valeur de la propriété name de la configuration : entete
- Nom de la vue : entete.php
Exemple pour Image HTML
- Nom : image-html
- Valeur de la propriété name de la configuration : image-html
- Nom de la vue : image_html.php
Exemple du fichier image_html.php
<?php
/**
* image_html.php
*
* PHP Version 8.2+
*
* @version XXX
* @package webapp\views\layouts
*
* @var $this yii\web\View
* @var $model \fractalCms\models\Item
* @var $target \fractalCms\content\content\models\Content | \fractalCms\content\content\models\Tag
*/
use fractalCms\content\content\helpers\Html;
use yii\helpers\ArrayHelper;
use fractalCms\content\content\helpers\Cms;
?>
<?php
foreach ($model->configItem->configArray as $attribute => $data):?>
<div class="col form-group p-0 mt-1">
<?php
$title = ($data['title']) ?? '';
$description = ($data['description']) ?? '';
$options = ($data['options']) ?? null;
$accept = ($data['accept']) ?? null;
switch ($data['type']) {
case Html::CONFIG_TYPE_FILE:
case Html::CONFIG_TYPE_FILES:
echo Html::tag('fractal-cms-content-file-upload', '', [
'title.bind' => '\''.$title.'\'',
'name' => Html::getInputName($target, 'items['.$model->id.']['.$attribute.']'),
'value' => $model->$attribute,
'upload-file-text' => 'Ajouter une fichier',
'file-type' => $accept
]);
break;
case Html::CONFIG_TYPE_WYSIWYG:
echo Html::activeLabel($target, 'items['.$model->id.']['.$attribute.']', ['label' => $title, 'class' => 'form-label']);
echo Html::activeHiddenInput($target, 'items['.$model->id.']['.$attribute.']', ['value' => $model->$attribute, 'class' => 'wysiwygInput']);
$inputNameId = Html::getInputId($target, 'items['.$model->id.']['.$attribute.']');
echo Html::tag('div', '',
[
'cms-wysiwyg-editor' => 'input-id.bind:\''.$inputNameId.'\'',
]);
break;
}
?>
</div>
<?php if (empty($description) === false):?>
<div class="col p-0">
<p class="fw-lighter fst-italic">
<?php echo $description;?>
</p>
</div>
<?php endif;?>
<?php endforeach;?>Les noms et ids des champs doivent être scrupuleusement respectés.