form initialisation

This commit is contained in:
Fred Tempez 2022-10-10 11:28:27 +02:00
parent 59aaa07e10
commit 65bdf8121f
3 changed files with 57 additions and 2 deletions

View File

@ -1,3 +1,5 @@
# Version 3.1
- Initialisation des paramètres personnalisés
# Version 3
- Déplacement des options de formulaires
- Gabarit du formulaire sur la page
- Gabarit du formulaire sur la page

View File

@ -28,7 +28,9 @@ class form extends common {
'deleteall' => self::GROUP_MODERATOR,
'index' => self::GROUP_VISITOR,
'export2csv' => self::GROUP_MODERATOR,
'output2csv' => self::GROUP_MODERATOR
'output2csv' => self::GROUP_MODERATOR,
'init' => self::GROUP_MODERATOR,
'update' => self::GROUP_MODERATOR,
];
public static $data = [];
@ -104,6 +106,10 @@ class form extends common {
* Configuration
*/
public function config() {
// Mise à jour des données de module
$this->update();
// Liste des utilisateurs
$userIdsFirstnames = helper::arrayColumn($this->getData(['user']), 'firstname');
ksort($userIdsFirstnames);
@ -375,6 +381,10 @@ class form extends common {
* Accueil
*/
public function index() {
// Mise à jour des données de module
$this->update();
// Soumission du formulaire
if($this->isPost()) {
// Check la captcha
@ -491,4 +501,28 @@ class form extends common {
],
]);
}
/**
* Mise à jour du module
* Appelée par les fonctions index et config
*/
private function update() {
// le module n'est pas initialisé
if ( $this->getData(['module',$this->getUrl(0), 'config']) === NULL ) {
$this->init();
}
}
/**
* Initialisation du thème d'un nouveau module
*/
private function init() {
// Données du module absentes
require_once('module/form/ressource/defaultdata.php');
if ($this->getData(['module', $this->getUrl(0), 'config' ]) === null) {
$this->setData(['module', $this->getUrl(0), 'config', init::$defaultData]);
}
}
}

View File

@ -0,0 +1,19 @@
<?php
class init extends form {
public static $defaultData = [
'button'=> '',
'captcha'=> false,
'group'=> 0,
'user'=> '',
'mail'=> '',
'pageId'=> '',
'subject'=> '',
'replyto'=> false,
'signature'=> 'text',
'logoUrl'=> '',
'logoWidth'=> '40',
'offset'=> '0',
'width'=> '12',
'align'=> ''
];
}