renomme fonction edition
restaure tinymce niveau core
supprime les instances locales
edit uniquement si connecté
This commit is contained in:
Fred Tempez 2024-08-29 21:30:41 +02:00
parent 89122bd9f0
commit 8b17c73757
7 changed files with 144 additions and 672 deletions

View File

@ -23,7 +23,7 @@ class agenda extends common
public static $actions = [
'add' => self::GROUP_VISITOR,
'edition' => self::GROUP_VISITOR,
'edit' => self::GROUP_VISITOR,
'config' => self::GROUP_MODERATOR,
'category' => self::GROUP_MODERATOR,
'delete' => self::GROUP_VISITOR,
@ -682,7 +682,10 @@ class agenda extends common
$this->addOutput([
'notification' => 'Vous n\'êtes pas connecté !',
'state' => false,
'redirect' => helper::baseUrl() . $this->getUrl(0)
'redirect' => helper::baseUrl() . $this->getUrl(0),
'vendor' => [
'tinymce'
]
]);
}
}
@ -691,7 +694,7 @@ class agenda extends common
/**
* Edition, modification, suppression
*/
public function edition($lid)
public function edit($lid)
{
//Préparation avant l'édition de l'évènement
@ -764,12 +767,19 @@ class agenda extends common
else {
$this->addOutput([
'notification' => 'La date de fin précède la date de début !',
'view' => 'edition',
'view' => 'edit',
'state' => false
]);
}
} else {
// Traitement avant affichage
// Edition uniquement en mode connecté
if (
$this->getUser('permission', __CLASS__, __FUNCTION__) === true
&& $this->getUser('group') >= self::$evenement['groupe_mod']
) {
if (self::$evenement['categorie'] != '') {
$json = file_get_contents(self::DATAMODULE . 'categories/categories.json');
$tabcat = json_decode($json, true);
@ -783,8 +793,16 @@ class agenda extends common
$this->addOutput([
'showBarEditButton' => true,
'showPageContent' => false,
'view' => 'edition'
'view' => 'edit',
'vendor' => [
'tinymce'
]
]);
} else {
$this->addOutput([
'redirect' => helper::baseUrl() . $this->getUrl(0)
]);
}
}
}
@ -820,7 +838,7 @@ class agenda extends common
//Extraction des données de la chaîne url et détection de changement de vue
$idclic = $this->vue_debut($url, '/id:');
//Vers l'édition d'un évènement
$this->edition($idclic);
$this->edit($idclic);
} else {
//Initialisations des paramètres de configuration du module et création des dossiers de sauvegarde
if (null === $this->getData(['module', $this->getUrl(0), 'vue'])) {

View File

@ -1,243 +0,0 @@
/**
* Initialisation de TinyMCE
*/
tinymce.init({
// Classe où appliquer l'éditeur
selector: ".editorWysiwyg",
// Aperçu dans le pied de page
setup:function(ed) {
ed.on('change', function(e) {
if (ed.id === 'themeFooterText') {
$("#footerText").html(tinyMCE.get('themeFooterText').getContent());
}
});
},
// Langue
language: "fr_FR",
// Plugins
plugins: "advlist anchor autolink autoresize autosave colorpicker contextmenu fullscreen hr lists paste searchreplace stickytoolbar tabfocus template textcolor visualblocks",
// Contenu de la barre d'outils
toolbar: "restoredraft | undo redo | styleselect | bold italic forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist | visualblocks fullscreen",
// Cibles de la target
target_list: [
{title: 'None', value: ''},
{title: 'Nouvel onglet', value: '_blank'}
],
// Target pour lightbox
rel_list: [
{title: 'None', value: ''},
{title: 'Popup intégrée (Lity)', value: 'data-lity'},
{title: 'Diaporama d\'images (SimpleLightbox)', value: 'gallery'}
],
// Titre des images
image_title: true,
// Pages internes
link_list: baseUrl + "core/vendor/tinymce/links.php",
// Contenu du menu contextuel
contextmenu: "cut copy paste pastetext | selectall searchreplace ",
// Fichiers CSS à intégrer à l'éditeur
content_css: [
baseUrl + "core/layout/common.css",
baseUrl + "core/vendor/tinymce/content.css",
baseUrl + "site/data/theme.css",
baseUrl + "site/data/custom.css"
],
// Classe à ajouter à la balise body dans l'iframe
body_class: "editorWysiwyg",
// Cache les menus
menubar: false,
// URL menu contextuel
link_context_toolbar: true,
// Cache la barre de statut
statusbar: false,
// Autorise tous les éléments
valid_elements :"*[*]",
valid_children : "*[*]",
// Autorise l'ajout de script
// extended_valid_elements: "script[language|type|src]",
// Bloque le dimensionnement des médias (car automatiquement en fullsize avec fitvids pour le responsive)
media_dimensions: true,
// Désactiver la dimension des images
image_dimensions: true,
// Active l'onglet avancé lors de l'ajout d'une image
image_advtab: true,
// Urls absolues
relative_urls: false,
// Url de base
document_base_url: baseUrl,
// Gestionnaire de fichiers
//filemanager_access_key: privateKey,
//external_filemanager_path: baseUrl + "core/vendor/filemanager/",
//external_plugins: {
// "filemanager": baseUrl + "core/vendor/filemanager/plugin.min.js"
//},
// Thème mobile
// mobile: {
// theme: "mobile",
// plugins: [ 'autosave', 'lists', 'autolink' ],
// toolbar: [ 'undo', 'bold', 'italic', 'styleselect' ]
//},
// Contenu du bouton insérer
insert_button_items: "image link media template codesample inserttable | hr | anchor",
// Contenu du bouton formats
style_formats: [
{title: "Headers", items: [
{title: "Header 1", format: "h1"},
{title: "Header 2", format: "h2"},
{title: "Header 3", format: "h3"},
{title: "Header 4", format: "h4"}
]},
{title: "Inline", items: [
{title: "Bold", icon: "bold", format: "bold"},
{title: "Italic", icon: "italic", format: "italic"},
{title: "Underline", icon: "underline", format: "underline"},
{title: "Strikethrough", icon: "strikethrough", format: "strikethrough"},
{title: "Superscript", icon: "superscript", format: "superscript"},
{title: "Subscript", icon: "subscript", format: "subscript"},
{title: "Code", icon: "code", format: "code"}
]},
{title: "Blocks", items: [
{title: "Paragraph", format: "p"},
{title: "Blockquote", format: "blockquote"},
{title: "Div", format: "div"},
{title: "Pre", format: "pre"}
]},
{title: "Alignment", items: [
{title: "Left", icon: "alignleft", format: "alignleft"},
{title: "Center", icon: "aligncenter", format: "aligncenter"},
{title: "Right", icon: "alignright", format: "alignright"},
{title: "Justify", icon: "alignjustify", format: "alignjustify"}
]}
],
// Templates
templates: [
{
title: "Bloc de texte",
url: baseUrl + "core/vendor/tinymce/templates/block.html",
description: "Bloc de texte avec un titre."
},
{
title: "Effet accordéon",
url: baseUrl + "core/vendor/tinymce/templates/accordion.html",
description: "Bloc de texte avec effet accordéon."
},
{
title: "Grille symétrique : 6 - 6",
url: baseUrl + "core/vendor/tinymce/templates/col6.html",
description: "Grille adaptative sur 12 colonnes, sur mobile elles passent les unes en dessous des autres."
},
{
title: "Grille symétrique : 4 - 4 - 4",
url: baseUrl + "core/vendor/tinymce/templates/col4.html",
description: "Grille adaptative sur 12 colonnes, sur mobile elles passent les unes en dessous des autres."
},
{
title: "Grille symétrique : 3 - 3 - 3 - 3",
url: baseUrl + "core/vendor/tinymce/templates/col3.html",
description: "Grille adaptative sur 12 colonnes, sur mobile elles passent les unes en dessous des autres."
},
{
title: "Grille asymétrique : 4 - 8",
url: baseUrl + "core/vendor/tinymce/templates/col4-8.html",
description: "Grille adaptative sur 12 colonnes, sur mobile elles passent les unes en dessous des autres."
},
{
title: "Grille asymétrique : 8 - 4",
url: baseUrl + "core/vendor/tinymce/templates/col8-4.html",
description: "Grille adaptative sur 12 colonnes, sur mobile elles passent les unes en dessous des autres."
},
{
title: "Grille asymétrique : 2 - 10",
url: baseUrl + "core/vendor/tinymce/templates/col2-10.html",
description: "Grille adaptative sur 12 colonnes, sur mobile elles passent les unes en dessous des autres."
},
{
title: "Grille asymétrique : 10 - 2",
url: baseUrl + "core/vendor/tinymce/templates/col10-2.html",
description: "Grille adaptative sur 12 colonnes, sur mobile elles passent les unes en dessous des autres."
}
]
});
tinymce.PluginManager.add('stickytoolbar', function(editor, url) {
editor.on('init', function() {
setSticky();
});
$(window).on('scroll', function() {
setSticky();
});
function setSticky() {
var container = editor.editorContainer;
var toolbars = $(container).find('.mce-toolbar-grp');
var statusbar = $(container).find('.mce-statusbar');
if (isSticky()) {
$(container).css({
paddingTop: toolbars.outerHeight()
});
if (isAtBottom()) {
toolbars.css({
top: 'auto',
bottom: statusbar.outerHeight(),
position: 'absolute',
width: '100%',
borderBottom: 'none'
});
} else {
toolbars.css({
top: 45,
bottom: 'auto',
position: 'fixed',
width: $(container).width(),
borderBottom: '1px solid rgba(0,0,0,0.2)'
});
}
} else {
$(container).css({
paddingTop: 0
});
toolbars.css({
top:0,
position: 'relative',
width: 'auto',
borderBottom: 'none'
});
}
}
function isSticky() {
var container = editor.editorContainer,
editorTop = container.getBoundingClientRect().top;
if (editorTop < 0) {
return true;
}
return false;
}
function isAtBottom() {
var container = editor.editorContainer,
editorTop = container.getBoundingClientRect().top;
var toolbarHeight = $(container).find('.mce-toolbar-grp').outerHeight();
var footerHeight = $(container).find('.mce-statusbar').outerHeight();
var hiddenHeight = -($(container).outerHeight() - toolbarHeight - footerHeight);
if (editorTop < hiddenHeight) {
return true;
}
return false;
}
});

View File

@ -1,259 +0,0 @@
/**
* Initialisation de TinyMCE
*/
tinymce.init({
// Classe où appliquer l'éditeur
selector: ".editorWysiwyg",
// Aperçu dans le pied de page
setup:function(ed) {
ed.on('change', function(e) {
if (ed.id === 'themeFooterText') {
$("#footerText").html(tinyMCE.get('themeFooterText').getContent());
}
});
},
// Langue
language: "fr_FR",
// Plugins
plugins: "advlist anchor autolink autoresize autosave codemirror codesample colorpicker contextmenu fullscreen hr image imagetools link lists media paste searchreplace stickytoolbar tabfocus table template textcolor visualblocks",
// Contenu de la barre d'outils
toolbar: "restoredraft | undo redo | styleselect | bold italic forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist | insert | code visualblocks fullscreen",
// CodeMirror
codemirror: {
indentOnInit: true, // Whether or not to indent code on init.
fullscreen: false, // Default setting is false
path: 'codemirror', // Path to CodeMirror distribution
config: { // CodeMirror config object
mode: 'application/x-httpd-php',
lineNumbers: true
},
width: 800, // Default value is 800
height: 500, // Default value is 550
files: [ // Additional JS files to load
baseUrl + 'core/vendor/tinymce/mode/clike/clike.js',
baseUrl + 'core/vendor/tinymce/mode/php/php.js'
]
},
// Cibles de la target
target_list: [
{title: 'None', value: ''},
{title: 'Nouvel onglet', value: '_blank'}
],
// Target pour lightbox
rel_list: [
{title: 'None', value: ''},
{title: 'Popup intégrée (Lity)', value: 'data-lity'},
{title: 'Diaporama d\'images (SimpleLightbox)', value: 'gallery'}
],
// Titre des image
image_title: true,
// Pages internes
link_list: baseUrl + "core/vendor/tinymce/links.php",
// Contenu du menu contextuel
contextmenu: "cut copy paste pastetext | selectall searchreplace | link image inserttable | cell row column deletetable",
// Fichiers CSS à intégrer à l'éditeur
content_css: [
baseUrl + "core/layout/common.css",
baseUrl + "core/vendor/tinymce/content.css",
baseUrl + "site/data/theme.css",
baseUrl + "site/data/custom.css"
],
// Classe à ajouter à la balise body dans l'iframe
body_class: "editorWysiwyg",
// Cache les menus
menubar: false,
// URL menu contextuel
link_context_toolbar: true,
// Cache la barre de statut
statusbar: false,
// Autorise tous les éléments
valid_elements :"*[*]",
valid_children : "*[*]",
// Autorise l'ajout de script
// extended_valid_elements: "script[language|type|src]",
// Bloque le dimensionnement des médias (car automatiquement en fullsize avec fitvids pour le responsive)
media_dimensions: true,
// Désactiver la dimension des images
image_dimensions: true,
// Active l'onglet avancé lors de l'ajout d'une image
image_advtab: true,
// Urls absolues
relative_urls: false,
// Url de base
document_base_url: baseUrl,
// Gestionnaire de fichiers
filemanager_access_key: privateKey,
external_filemanager_path: baseUrl + "core/vendor/filemanager/",
external_plugins: {
"filemanager": baseUrl + "core/vendor/filemanager/plugin.min.js"
},
// Thème mobile
// mobile: {
// theme: "mobile",
// plugins: [ 'autosave', 'lists', 'autolink' ],
// toolbar: [ 'undo', 'bold', 'italic', 'styleselect' ]
//},
// Contenu du bouton insérer
insert_button_items: "image link media template codesample inserttable | hr | anchor",
// Contenu du bouton formats
style_formats: [
{title: "Headers", items: [
{title: "Header 1", format: "h1"},
{title: "Header 2", format: "h2"},
{title: "Header 3", format: "h3"},
{title: "Header 4", format: "h4"}
]},
{title: "Inline", items: [
{title: "Bold", icon: "bold", format: "bold"},
{title: "Italic", icon: "italic", format: "italic"},
{title: "Underline", icon: "underline", format: "underline"},
{title: "Strikethrough", icon: "strikethrough", format: "strikethrough"},
{title: "Superscript", icon: "superscript", format: "superscript"},
{title: "Subscript", icon: "subscript", format: "subscript"},
{title: "Code", icon: "code", format: "code"}
]},
{title: "Blocks", items: [
{title: "Paragraph", format: "p"},
{title: "Blockquote", format: "blockquote"},
{title: "Div", format: "div"},
{title: "Pre", format: "pre"}
]},
{title: "Alignment", items: [
{title: "Left", icon: "alignleft", format: "alignleft"},
{title: "Center", icon: "aligncenter", format: "aligncenter"},
{title: "Right", icon: "alignright", format: "alignright"},
{title: "Justify", icon: "alignjustify", format: "alignjustify"}
]}
],
// Templates
templates: [
{
title: "Bloc de texte",
url: baseUrl + "core/vendor/tinymce/templates/block.html",
description: "Bloc de texte avec un titre."
},
{
title: "Effet accordéon",
url: baseUrl + "core/vendor/tinymce/templates/accordion.html",
description: "Bloc de texte avec effet accordéon."
},
{
title: "Grille symétrique : 6 - 6",
url: baseUrl + "core/vendor/tinymce/templates/col6.html",
description: "Grille adaptative sur 12 colonnes, sur mobile elles passent les unes en dessous des autres."
},
{
title: "Grille symétrique : 4 - 4 - 4",
url: baseUrl + "core/vendor/tinymce/templates/col4.html",
description: "Grille adaptative sur 12 colonnes, sur mobile elles passent les unes en dessous des autres."
},
{
title: "Grille symétrique : 3 - 3 - 3 - 3",
url: baseUrl + "core/vendor/tinymce/templates/col3.html",
description: "Grille adaptative sur 12 colonnes, sur mobile elles passent les unes en dessous des autres."
},
{
title: "Grille asymétrique : 4 - 8",
url: baseUrl + "core/vendor/tinymce/templates/col4-8.html",
description: "Grille adaptative sur 12 colonnes, sur mobile elles passent les unes en dessous des autres."
},
{
title: "Grille asymétrique : 8 - 4",
url: baseUrl + "core/vendor/tinymce/templates/col8-4.html",
description: "Grille adaptative sur 12 colonnes, sur mobile elles passent les unes en dessous des autres."
},
{
title: "Grille asymétrique : 2 - 10",
url: baseUrl + "core/vendor/tinymce/templates/col2-10.html",
description: "Grille adaptative sur 12 colonnes, sur mobile elles passent les unes en dessous des autres."
},
{
title: "Grille asymétrique : 10 - 2",
url: baseUrl + "core/vendor/tinymce/templates/col10-2.html",
description: "Grille adaptative sur 12 colonnes, sur mobile elles passent les unes en dessous des autres."
}
]
});
tinymce.PluginManager.add('stickytoolbar', function(editor, url) {
editor.on('init', function() {
setSticky();
});
$(window).on('scroll', function() {
setSticky();
});
function setSticky() {
var container = editor.editorContainer;
var toolbars = $(container).find('.mce-toolbar-grp');
var statusbar = $(container).find('.mce-statusbar');
if (isSticky()) {
$(container).css({
paddingTop: toolbars.outerHeight()
});
if (isAtBottom()) {
toolbars.css({
top: 'auto',
bottom: statusbar.outerHeight(),
position: 'absolute',
width: '100%',
borderBottom: 'none'
});
} else {
toolbars.css({
top: 45,
bottom: 'auto',
position: 'fixed',
width: $(container).width(),
borderBottom: '1px solid rgba(0,0,0,0.2)'
});
}
} else {
$(container).css({
paddingTop: 0
});
toolbars.css({
top:0,
position: 'relative',
width: 'auto',
borderBottom: 'none'
});
}
}
function isSticky() {
var container = editor.editorContainer,
editorTop = container.getBoundingClientRect().top;
if (editorTop < 0) {
return true;
}
return false;
}
function isAtBottom() {
var container = editor.editorContainer,
editorTop = container.getBoundingClientRect().top;
var toolbarHeight = $(container).find('.mce-toolbar-grp').outerHeight();
var footerHeight = $(container).find('.mce-statusbar').outerHeight();
var hiddenHeight = -($(container).outerHeight() - toolbarHeight - footerHeight);
if (editorTop < hiddenHeight) {
return true;
}
return false;
}
});

View File

@ -32,7 +32,7 @@
<div class="col12">
<?php echo template::textarea('creation_text', [
'label' => 'Evènement',
//'class' => 'editorWysiwyg',
'class' => 'editorWysiwygComment',
'value' => 'Votre évènement du '.$module::$jour.'/'.$module::$mois.'/'.$module::$annee
]); ?>
</div>

102
agenda/view/edit/edit.php Normal file
View File

@ -0,0 +1,102 @@
<?php echo template::formOpen('edition_events'); ?>
<div class="row">
<div class="col2">
<?php echo template::button('edition_retour', [
'class' => 'buttonGrey',
'href' => helper::baseUrl() . $this->getUrl(0),
'ico' => 'left',
'value' => 'Retour'
]); ?>
</div>
<div class="col2 offset6">
<?php echo template::button('edition_event_delete', [
'class' => 'buttonRed',
'href' => helper::baseUrl() . $this->getUrl(0) . '/deleteEvent/' . $module::$evenement['id'],
'value' => 'Supprimer',
'ico' => 'cancel'
]); ?>
</div>
<div class="col2">
<?php echo template::submit('edition_enregistrer', [
'ico' => 'check'
]); ?>
</div>
<div class="block">
<div class="row">
<div class="col12">
<?php echo template::textarea('edition_text', [
'label' => 'Evènement',
'class' => 'editorWysiwygComment',
'value' => $module::$evenement['texte']
]); ?>
</div>
</div>
<div class="row">
<div class="col4">
<?php echo template::date('edition_date_debut', [
'help' => 'Date de début',
'label' => 'Date de début',
'type' => 'datetime-local',
'value' => $module::$evenement['datedebut'],
]); ?>
</div>
<div class="col4">
<?php echo template::date('edition_date_fin', [
'help' => 'Date de fin',
'label' => 'Date de fin',
'type' => 'datetime-local',
'value' => $module::$evenement['datefin'],
]); ?>
</div>
</div>
<div class="row">
<?php if ($module::$evenement['categorie'] != '') { ?>
<div class="col8">
<?php echo template::select('edition_categorie', $module::$categorie, [
'help' => 'Choix de la catégorie d\'évènement.',
'label' => 'Catégorie d\'évènement',
'selected' => $module::$evenement['categorie']
]); ?>
</div>
<?php } else { ?>
<div class="col4">
<?php echo template::select('edition_couleur_fond', $module::$couleur, [
'help' => 'Choix de la couleur du bandeau dans lequel le texte apparaît.',
'label' => 'Couleur de fond',
'selected' => $module::$evenement['couleurfond']
]); ?>
</div>
<div class="col4">
<?php echo template::select('edition_couleur_texte', $module::$couleur, [
'help' => 'Choix de la couleur du texte.',
'label' => 'Couleur du texte',
'selected' => $module::$evenement['couleurtexte']
]); ?>
</div>
<?php } ?>
</div>
<div class="row">
<div class="col4">
<?php echo template::select('edition_groupe_lire', $module::$groupe, [
'help' => 'Choix du groupe minimal qui pourra voir et lire cet évènement',
'label' => 'Accès en lecture',
'selected' => $module::$evenement['groupe_lire']
]); ?>
</div>
<div class="col4">
<?php echo template::select('edition_groupe_mod', $module::$groupe, [
'help' => 'Choix du groupe minimal qui pourra modifier ou supprimer cet évènement',
'label' => 'Accès en modification',
'selected' => $module::$evenement['groupe_mod']
]); ?>
</div>
</div>
</div>
</div>
<?php echo template::formClose(); ?>
<div class="moduleVersion">Version
<?php echo $module::VERSION; ?>
</div>

View File

@ -1,146 +0,0 @@
<!--Chargement des librairies tinymce si nécessaire et adaptation de l'init en fonction des droits des utilisateurs -->
<?php if( $this->getUser('group') >= $module::$evenement['groupe_mod'] ){
echo '<script src="'. helper::baseUrl(false).'/core/vendor/tinymce/tinymce.min.js"></script>';
echo '<script src="'. helper::baseUrl(false).'/core/vendor/tinymce/jquery.tinymce.min.js"></script>';
if( $this->getUser('group') >= 2){
echo '<script src="'. helper::baseUrl(false).'/module/agenda/vendor/js/init23.js"></script>';
}
else{
echo '<script src="'. helper::baseUrl(false).'/module/agenda/vendor/js/init01.js"></script>';
}
echo '<link rel="stylesheet" href="'. helper::baseUrl(false).'/core/vendor/tinymce/init.css">';
}
?>
<?php echo template::formOpen('edition_events'); ?>
<div class="row">
<div class="col2">
<?php echo template::button('edition_retour', [
'class' => 'buttonGrey',
'href' => helper::baseUrl() . $this->getUrl(0),
'ico' => 'left',
'value' => 'Retour'
]); ?>
</div>
<?php if( $this->getUser('group') >= $module::$evenement['groupe_mod'] ){?>
<div class="col2 offset6">
<?php echo template::button('edition_event_delete', [
'class' => 'buttonRed',
'href' => helper::baseUrl() . $this->getUrl(0) . '/deleteEvent/' .$module::$evenement['id'],
'value' => 'Supprimer',
'ico' => 'cancel'
]); ?>
</div>
<div class="col2">
<?php echo template::submit('edition_enregistrer',[
'ico' => 'check'
]); ?>
</div>
<?php
$readonly = false;
}
else{
$readonly = true;
}?>
</div>
<div class="block">
<h4><?php if ($readonly){echo'Lire un évènement'; }else{echo'Lire, modifier, supprimer un évènement';}?></h4>
<?php if($readonly){echo 'Evénement<br/><div class="block">'.$module::$evenement['texte'].'</div>';}
else{
?>
<div class="row">
<div class="col12">
<?php echo template::textarea('edition_text', [
'label' => 'Evènement',
//'class' => 'editorWysiwyg',
'value' => $module::$evenement['texte']
]); ?>
</div>
</div>
<?php
}
?>
<div class="row">
<div class="col4">
<?php echo template::date('edition_date_debut', [
'help' => 'Date de début',
'label' => 'Date de début',
'type' => 'datetime-local',
'disabled' => $readonly,
'value' => $module::$evenement['datedebut'],
]); ?>
</div>
<div class="col4">
<?php echo template::date('edition_date_fin', [
'help' => 'Date de fin',
'label' => 'Date de fin',
'type' => 'datetime-local',
'disabled' => $readonly,
'value' => $module::$evenement['datefin'],
]); ?>
</div>
</div>
<div class="row">
<?php if( $module::$evenement['categorie'] != '' ){ ?>
<div class="col8">
<?php echo template::select('edition_categorie', $module::$categorie,[
'help' => 'Choix de la catégorie d\'évènement.',
'label' => 'Catégorie d\'évènement',
'selected' => $module::$evenement['categorie']
]); ?>
</div>
<?php }
else{ ?>
<div class="col4">
<?php echo template::select('edition_couleur_fond', $module::$couleur,[
'help' => 'Choix de la couleur du bandeau dans lequel le texte apparaît.',
'label' => 'Couleur de fond',
'disabled' => $readonly,
'selected' => $module::$evenement['couleurfond']
]); ?>
</div>
<div class="col4">
<?php echo template::select('edition_couleur_texte', $module::$couleur,[
'help' => 'Choix de la couleur du texte.',
'label' => 'Couleur du texte',
'disabled' => $readonly,
'selected' => $module::$evenement['couleurtexte']
]); ?>
</div>
<?php } ?>
</div>
<div class="row">
<div class="col4">
<?php echo template::select('edition_groupe_lire', $module::$groupe,[
'help' => 'Choix du groupe minimal qui pourra voir et lire cet évènement',
'label' => 'Accès en lecture',
'disabled' => $readonly,
'selected' => $module::$evenement['groupe_lire']
]); ?>
</div>
<div class="col4">
<?php echo template::select('edition_groupe_mod', $module::$groupe,[
'help' => 'Choix du groupe minimal qui pourra modifier ou supprimer cet évènement',
'label' => 'Accès en modification',
'disabled' => $readonly,
'selected' => $module::$evenement['groupe_mod']
]); ?>
</div>
</div>
</div>
<?php echo template::formClose(); ?>
<div class="moduleVersion">Version
<?php echo $module::VERSION; ?>
</div>