Browse Source

initialisation Git

Frédéric 3 years ago
parent
commit
fd39d92df9

+ 4
- 0
mod/_module/ReadMe.txt View File

@@ -0,0 +1,4 @@
1
+
2
+Documentation sur le wiki :
3
+
4
+http://www.wiki-turbolead.com/index.php?title=Module_mod%C3%A8le

+ 26
- 0
mod/_module/classes/autoload/autoload.php View File

@@ -0,0 +1,26 @@
1
+<?php
2
+/**
3
+ * Generated by makeautoload
4
+ */
5
+
6
+$basePath = dirname(dirname(dirname(__FILE__)));
7
+
8
+return array(
9
+
10
+	// Controllers
11
+	'XXXActionRouter' => $basePath . '/control/XXXActionRouter.php',
12
+	'XXXControl' => $basePath . '/control/XXXControl.php',
13
+	'XXXExampleControl' => $basePath . '/control/XXXExampleControl.php',
14
+
15
+	// Models
16
+	'XXXExampleBean' => $basePath . '/model/XXXExampleBean.php',
17
+	'XXXExampleFilter' => $basePath . '/model/XXXExampleFilter.php',
18
+	'XXXExampleHome' => $basePath . '/model/XXXExampleHome.php',
19
+
20
+	// Views
21
+	'XXXErrorView' => $basePath . '/view/XXXErrorView.php',
22
+	'XXXExampleViewForm' => $basePath . '/view/XXXExampleViewForm.php',
23
+	'XXXExampleViewList' => $basePath . '/view/XXXExampleViewList.php',
24
+	'XXXTheme' => $basePath . '/view/XXXTheme.php',
25
+	'XXXWelcomeView' => $basePath . '/view/XXXWelcomeView.php',
26
+);

+ 15
- 0
mod/_module/classes/lesclasses.php View File

@@ -0,0 +1,15 @@
1
+<?php
2
+/**
3
+ * Script responsable du chargement des classes du module,
4
+ * autrement dit il initialise l'autoloader.
5
+ *
6
+ * Ce fichier sera inclus automatiquement par Turbolead avant
7
+ * le lancement de la session, ce qui garantit que les objets stockés
8
+ * dans la session (ex : les filtres) seront désérialisables.
9
+ */
10
+include_once(dirname(__FILE__).'/../../../classes/autoload/TurboleadAutoloader.php');
11
+$classLoader = TurboleadAutoloader::getInstance();
12
+
13
+$classLoader->addClassMapFile(dirname(__FILE__).'/autoload/autoload.php');
14
+
15
+?>

+ 37
- 0
mod/_module/classes/prepend.php View File

@@ -0,0 +1,37 @@
1
+<?php
2
+/**
3
+ * Ce fichier charge et initialise tout le nécessaire
4
+ * pour que le module fonctionne. Il DOIT être inclus
5
+ * au début de tous les points d'entrée du module.
6
+ */
7
+
8
+//==============================================================================
9
+// Encodage
10
+//==============================================================================
11
+mb_internal_encoding('UTF-8');
12
+
13
+//==============================================================================
14
+// Init Turbolead
15
+//==============================================================================
16
+include_once(dirname(__FILE__).'/lesclasses.php');
17
+include_once(dirname(__FILE__).'/../../../classes/prepend_turbolead.php');
18
+
19
+//==============================================================================
20
+// Include
21
+//==============================================================================
22
+include_once(dirname(__FILE__).'/../const.php');
23
+include_once(dirname(__FILE__).'/../language/language.php');
24
+
25
+//==============================================================================
26
+// Version du cache pour les ressources statiques
27
+//==============================================================================
28
+include_once(dirname(__FILE__).'/../../../classes/tpb/view/ViewScript.php');
29
+
30
+$filename = dirname(__FILE__).'/../_version.json';
31
+
32
+if (file_exists($filename)) {
33
+	ViewScript::setCacheVersion(filemtime($filename));
34
+}
35
+
36
+
37
+?>

+ 45
- 0
mod/_module/const.php View File

@@ -0,0 +1,45 @@
1
+<?php
2
+/**
3
+ * Constantes du module
4
+ */
5
+
6
+//=================================================================
7
+// NOM DU MODULE
8
+//=================================================================
9
+define('XXX_MODULE_NAME', "Module modèle");
10
+
11
+//=================================================================
12
+// TRUCS UTILES
13
+//=================================================================
14
+define('XXX_DEFAULT_FILTER_LIMIT', 25);
15
+
16
+//=================================================================
17
+// GROUPES
18
+//=================================================================
19
+define('gr__xxx_modulename', 99000); // groupe racine du module
20
+define('gr__xxx_user', 99001);
21
+define('gr__xxx_admin', 99002);
22
+
23
+//=================================================================
24
+// DROITS
25
+//=================================================================
26
+define('ri__xxx_example_manage', 99100);
27
+
28
+//=================================================================
29
+// MESSAGES
30
+//=================================================================
31
+//define('ms__xxx_i_am_a_message', 299001);
32
+
33
+//=================================================================
34
+// ACTIONS
35
+//=================================================================
36
+define('do__xxx_start', 1);
37
+
38
+define('do__xxx_example_start', 20);
39
+define('do__xxx_example_list', 21);
40
+define('do__xxx_example_form', 22);
41
+define('do__xxx_example_validate', 23);
42
+define('do__xxx_example_delete', 24);
43
+define('do__xxx_example_end', 39);
44
+
45
+?>

+ 20
- 0
mod/_module/control/XXXActionRouter.php View File

@@ -0,0 +1,20 @@
1
+<?php
2
+/**
3
+ * Routeur d'action du module.
4
+ */
5
+class XXXActionRouter extends ActionRouter
6
+{
7
+	/**
8
+	 * Constructeur
9
+	 */
10
+	public function __construct()
11
+	{
12
+		parent::__construct();
13
+
14
+		$this->addRoute(do__xxx_start, 'XXXControl');
15
+
16
+		$this->addRouteRange(do__xxx_example_start, do__xxx_example_end, 'XXXExampleControl');
17
+
18
+	}
19
+}
20
+?>

+ 70
- 0
mod/_module/control/XXXControl.php View File

@@ -0,0 +1,70 @@
1
+<?php
2
+/**
3
+ * Controleur de base du module.
4
+ * Contient les éléments de controle communs pour l'ensemble
5
+ * du module (les autres controleurs dérivent de celui-ci).
6
+ *
7
+ */
8
+class XXXControl extends ObjectControl
9
+{
10
+	/**
11
+	 * Constructeur
12
+	 */
13
+	public function __construct()
14
+	{
15
+		parent::ObjectControl();
16
+
17
+		$this->addFunction(do__xxx_start, 'drawWelcome');
18
+	}
19
+
20
+	/**
21
+	 * Affiche la page d'accueil.
22
+	 */
23
+	public function drawWelcome()
24
+	{
25
+		$view = new XXXWelcomeView();
26
+		$this->drawTheme($view, _XXX_WELCOME_TITLE, _XXX_WELCOME_TITLE);
27
+	}
28
+
29
+	/**
30
+	 * Affiche une erreur.
31
+	 * @param string $msg Message d'erreur
32
+	 */
33
+	protected function drawError($msg=NULL)
34
+	{
35
+		$view = new XXXErrorView();
36
+		if ($msg)
37
+		{
38
+			$view->setMessage($msg);
39
+		}
40
+		$this->drawTheme($view, _XXX_ERROR_TITLE, _XXX_ERROR_TITLE);
41
+	}
42
+
43
+	/**
44
+	 * Affiche le thème avec la vue spécifiée.
45
+	 * @param BeanView $view Vue
46
+	 * @param string $pageTitle Titre de la page
47
+	 * @param string $mainTitle Titre principal (h1)
48
+	 */
49
+	protected function drawTheme($view, $pageTitle, $mainTitle)
50
+	{
51
+		$theme = new XXXTheme($view, $pageTitle, $mainTitle);
52
+		$theme->setMessage($this->getErreur(), $this->getErreurClass());
53
+
54
+		// Affichage
55
+		echo $theme->afficher();
56
+	}
57
+
58
+	/**
59
+	 * Methode interne executée si l'action n'a pas de méthode définie,
60
+	 * ou si l'utilisateur n'a pas les droits requis.
61
+	 * @param int $action Action sur controleur
62
+	 * @access protected (En théorie car ObjectControl est en PHP4,
63
+	 * donc ses méthodes sont publiques.)
64
+	 */
65
+	public function _internal_method($action)
66
+	{
67
+		$this->drawError();
68
+	}
69
+}
70
+?>

+ 123
- 0
mod/_module/control/XXXExampleControl.php View File

@@ -0,0 +1,123 @@
1
+<?php
2
+/**
3
+ * Controleur des Example.
4
+ *
5
+ */
6
+class XXXExampleControl extends XXXControl
7
+{
8
+	/**
9
+	 * Identifiant du filtre le la liste des Examples
10
+	 * @var string
11
+	 */
12
+	const LIST_FILTER_NAME = 'xxx_example_list_filter';
13
+
14
+	/**
15
+	 * Constructeur.
16
+	 */
17
+	public function __construct()
18
+	{
19
+		parent::__construct();
20
+
21
+		$this->addFunction(do__xxx_example_list, 'drawList', ri__xxx_example_manage);
22
+		$this->addFunction(do__xxx_example_form, 'drawForm', ri__xxx_example_manage);
23
+		$this->addFunction(do__xxx_example_validate, 'validate', ri__xxx_example_manage);
24
+		$this->addFunction(do__xxx_example_delete, 'delete', ri__xxx_example_manage);
25
+	}
26
+
27
+	/**
28
+	 * Affiche la liste.
29
+	 */
30
+	public function drawList()
31
+	{
32
+		// Instance du filtre pour la liste
33
+		$filter = XXXExampleFilter::getOrCreateFilterInSession(self::LIST_FILTER_NAME);
34
+		$filter->setLimit(XXX_DEFAULT_FILTER_LIMIT);
35
+
36
+		// Récupère automatiquement les inputs du moteur de recherche
37
+		$filter->setFromRequest();
38
+
39
+		$examples = $this->home->getExamplesByFilter($filter);
40
+
41
+		$viewList = new XXXExampleViewList($examples, do__xxx_example_form);
42
+		$viewList->setFilter($filter, do__xxx_example_list);
43
+
44
+		// Affichage
45
+		$this->drawTheme($viewList, _XXX_EXAMPLE_LIST_TITLE, _XXX_EXAMPLE_LIST_TITLE);
46
+	}
47
+
48
+	/**
49
+	 * Affiche le formulaire.
50
+	 */
51
+	public function drawForm()
52
+	{
53
+		$idExample = $this->getIntFromRequest('id_example');
54
+		$beanExample = $this->home->get($idExample);
55
+
56
+		if (!$beanExample)
57
+		{
58
+			if ($idExample == 0)
59
+			{
60
+				// ID = 0 = On veut créer un nouvel objet.
61
+				$beanExample = $this->home->create();
62
+			}
63
+			else
64
+			{
65
+				// Sinon on essaye d'obtenir un objet
66
+				// inexistant donc bam ! Erreur.
67
+				$this->drawError(_XXX_EXAMPLE_DOES_NOT_EXIST);
68
+				return;
69
+			}
70
+		}
71
+
72
+		$viewForm = new XXXExampleViewForm($beanExample, do__xxx_example_validate, do__xxx_example_delete);
73
+
74
+		// Affichage
75
+		$this->drawTheme($viewForm, _XXX_EXAMPLE_FORM_TITLE, _XXX_EXAMPLE_FORM_TITLE);
76
+	}
77
+
78
+	/**
79
+	 * Crée ou update le Example à partir des
80
+	 * valeurs de $_REQUEST.
81
+	 * Puis retourne au formulaire.
82
+	 */
83
+	public function validate()
84
+	{
85
+		$idExample = $this->getIntFromRequest('id_example');
86
+		$exampleData = $this->getObjectFromRequest();
87
+
88
+		if ($this->home->isExists($idExample))
89
+		{
90
+			// Edition
91
+			$this->home->updateObject($exampleData);
92
+			$this->afficherErreur(_XXX_EXAMPLE_UPDATED, 'succes-msg');
93
+		}
94
+		else
95
+		{
96
+			// Création
97
+			$idExample = $this->home->addObject($exampleData);
98
+			$_REQUEST['id_example'] = $idExample;
99
+			$this->afficherErreur(_XXX_EXAMPLE_CREATED, 'succes-msg');
100
+		}
101
+
102
+		$this->drawForm();
103
+	}
104
+
105
+	/**
106
+	 * Supprime le Example dont l'id est
107
+	 * dans $_REQUEST.
108
+	 * Puis retourne à la liste.
109
+	 */
110
+	public function delete()
111
+	{
112
+		$idExample = $this->getIntFromRequest('id_example');
113
+
114
+		if ($this->home->deleteObject($idExample)) {
115
+			$this->afficherErreur(_XXX_EXAMPLE_DELETED, 'succes-msg');
116
+		} else {
117
+			$this->afficherErreur(_XXX_EXAMPLE_DELETE_FAIL, 'erreur-msg');
118
+		}
119
+
120
+		$this->drawList();
121
+	}
122
+}
123
+?>

+ 16
- 0
mod/_module/css/style.css View File

@@ -0,0 +1,16 @@
1
+
2
+/*==========================================================
3
+ * Style des listes
4
+ */
5
+.BeanViewListe tr {
6
+	background: #fff;
7
+	font-size: 13px;
8
+	height: 23px;
9
+}
10
+.BeanViewListe tr:nth-child(2n) {
11
+	background: #dfdfdf;
12
+}
13
+.BeanViewListe tr:hover {
14
+	background: #415B86;
15
+}
16
+

BIN
mod/_module/images/icon2.png View File


BIN
mod/_module/images/nom_module.png View File


+ 27
- 0
mod/_module/index.php View File

@@ -0,0 +1,27 @@
1
+<?php
2
+/**
3
+ * Index du module
4
+ */
5
+
6
+// INCLUDE
7
+require_once(dirname(__FILE__).'/classes/prepend.php');
8
+
9
+//==============================================================================
10
+// ROUTEUR
11
+//==============================================================================
12
+$router = new XXXActionRouter();
13
+
14
+// Action par défaut
15
+$router->setAction(do__xxx_start);
16
+
17
+// Puis on regarde dans REQUEST
18
+$router->setActionFromRequest();
19
+
20
+// Certains vieux composants ont besoin que l'action soit dans REQUEST
21
+$_REQUEST['action'] = $router->getAction();
22
+
23
+// ROUTAGE
24
+$router->routeAction();
25
+
26
+
27
+?>

+ 48
- 0
mod/_module/install.php View File

@@ -0,0 +1,48 @@
1
+<?php
2
+/**
3
+ * Script d'installation du module.
4
+ */
5
+include_once(dirname(__FILE__).'/../../classes/db/DAS.php');
6
+include_once(dirname(__FILE__).'/../../utilisateur/model/DroitHome.php');
7
+include_once(dirname(__FILE__).'/../../utilisateur/model/GroupeHome.php');
8
+include_once(dirname(__FILE__).'/../../utilisateur/model/ModuleHome.php');
9
+
10
+include_once(dirname(__FILE__).'/const.php');
11
+
12
+// DEBUT INSTALL
13
+echo "Installation du module ".XXX_MODULE_NAME."<br />";
14
+
15
+// Préparation de la db grace à la DAS
16
+$das = DAS::create(dirname(__FILE__).'/model/das.php');
17
+$das->genererBase(true);
18
+
19
+// Ajout du module dans turbolead
20
+$homeModule = ModuleHome::getInstance('ModuleHome');
21
+$homeModule->addModule('_module', XXX_MODULE_NAME);
22
+
23
+// Groupes et droits
24
+$homeGroup = GroupeHome::getInstance('GroupeHome');
25
+$homeGroup->addGroupe('gr__xxx_modulename', 'Gestion du module modèle', 'fr', __id_groupe_mod_turbolead);
26
+$homeGroup->addGroupe('gr__xxx_user', 'Utilisateur', 'fr', gr__xxx_modulename);
27
+$homeGroup->addGroupe('gr__xxx_admin', 'Administrateur', 'fr', gr__xxx_modulename);
28
+
29
+$homeRight = DroitHome::getInstance('DroitHome');
30
+$homeRight->addDroit('ri__xxx_example_manage', 'Gestion des Example', 'fr');
31
+
32
+// Droits Utilisateur
33
+$homeGroup->dettacherDroit(gr__xxx_user);
34
+$homeGroup->attacherDroit(gr__xxx_user, array
35
+(
36
+	ri__xxx_example_manage
37
+));
38
+
39
+// Droits Administrateur
40
+$homeGroup->dettacherDroit(gr__xxx_admin);
41
+$homeGroup->attacherDroit(gr__xxx_admin, array
42
+(
43
+	ri__xxx_example_manage
44
+));
45
+
46
+// FIN INSTALL
47
+echo "Fin de l'installation du module ".XXX_MODULE_NAME."<br />";
48
+?>

+ 7
- 0
mod/_module/js/script.js View File

@@ -0,0 +1,7 @@
1
+"use strict";
2
+$(document).ready(function() {
3
+
4
+	// NOTICES
5
+	$('#messageDefaut').hide();
6
+	$('#messageDefaut').fadeIn(800);
7
+});

+ 37
- 0
mod/_module/language/fr/lang_fr.php View File

@@ -0,0 +1,37 @@
1
+<?php
2
+/**
3
+ * Constantes de localisation FR
4
+ */
5
+
6
+// Menu
7
+Localizer::set('_XXX_MENU_HOME', "Accueil");
8
+Localizer::set('_XXX_MENU_EXAMPLE', "Exemples");
9
+Localizer::set('_XXX_MENU_EXAMPLE_LIST', "Liste des exemples");
10
+Localizer::set('_XXX_MENU_NEW_EXAMPLE', "Créer un exemple");
11
+
12
+// Notifications
13
+Localizer::set('_XXX_EXAMPLE_UPDATED', "L'exemple a été mis à jour.");
14
+Localizer::set('_XXX_EXAMPLE_CREATED', "L'exemple a été créé.");
15
+Localizer::set('_XXX_EXAMPLE_DELETED', "L'exemple a été supprimé.");
16
+Localizer::set('_XXX_EXAMPLE_DELETE_FAIL', "La suppression de l'exemple a échoué.");
17
+Localizer::set('_XXX_EXAMPLE_DOES_NOT_EXIST', "Cet exemple n'existe pas.");
18
+
19
+// Accueil
20
+Localizer::set('_XXX_WELCOME_TITLE', "Titre de l'accueil");
21
+Localizer::set('_XXX_WELCOME_TEXT', "Texte de l'accueil.");
22
+
23
+// Erreur
24
+Localizer::set('_XXX_ERROR_TITLE', "Erreur");
25
+Localizer::set('_XXX_ERROR_TEXT', "Une erreur est survenue.");
26
+
27
+// Liste de Example
28
+Localizer::set('_XXX_EXAMPLE_LIST_TITLE', "Liste des exemples");
29
+Localizer::set('_XXX_EXAMPLE_COLUMN_ID', "ID");
30
+Localizer::set('_XXX_EXAMPLE_COLUMN_NAME', "Nom");
31
+
32
+// Form de Example
33
+Localizer::set('_XXX_EXAMPLE_FORM_TITLE', "Editer un exemple");
34
+Localizer::set('_XXX_EXAMPLE_FIELDSET_INFO', "Informations générales");
35
+Localizer::set('_XXX_EXAMPLE_NAME', "Nom");
36
+
37
+?>

+ 31
- 0
mod/_module/language/language.php View File

@@ -0,0 +1,31 @@
1
+<?php
2
+/**
3
+ * Inclut les fichiers de localisation
4
+ * de turbolead et du module.
5
+ */
6
+include_once(dirname(__FILE__).'/../../../i18n/language/Localizer.php');
7
+include_once(dirname(__FILE__).'/../../../i18n/model/LangueHome.php');
8
+
9
+//===================================================
10
+// INTERFACE
11
+//===================================================
12
+//FR
13
+Localizer::addFile('fr', dirname(__FILE__).'/../../../language/fr/lang_fr.php');
14
+Localizer::addFile('fr', dirname(__FILE__).'/fr/lang_fr.php');
15
+
16
+//===================================================
17
+// DEFINE LOCALES
18
+//===================================================
19
+Localizer::defineLocales();
20
+
21
+//===================================================
22
+// LIBELLE
23
+//===================================================
24
+// $langue est utilisée comme variable globale
25
+// dans plusieurs fonctions de turbolead, il ne
26
+// faut pas la renommer.
27
+$homeLanguage = LangueHome::getInstance('LangueHome');
28
+$langue = $homeLanguage->getLangueLib();
29
+
30
+
31
+?>

+ 16
- 0
mod/_module/model/XXXExampleBean.php View File

@@ -0,0 +1,16 @@
1
+<?php
2
+/**
3
+ * Objet de type Example
4
+ *
5
+ */
6
+class XXXExampleBean extends ObjectBean
7
+{
8
+	/**
9
+	 * Constructeur
10
+	 * @param ObjectBean|array $object
11
+	 */
12
+	public function __construct(&$object) {
13
+		parent::ObjectBean($object, 'id_example');
14
+	}
15
+}
16
+?>

+ 32
- 0
mod/_module/model/XXXExampleFilter.php View File

@@ -0,0 +1,32 @@
1
+<?php
2
+/**
3
+ * Filtre sur les Examples.
4
+ */
5
+class XXXExampleFilter extends Filter
6
+{
7
+	/**
8
+	 * Constructeur
9
+	 * @param string $name
10
+	 */
11
+	public function __construct($name = null)
12
+	{
13
+		parent::__construct('xxx_example', 'id_example');
14
+
15
+		//@TODO
16
+
17
+		$this->setOrderBy('xxx_example.name ASC');
18
+		$this->setCurrentPageName('dp_example');
19
+		$this->setLimit(0);
20
+	}
21
+
22
+	/**
23
+	 * Retourne un filtre stocké dans la session.
24
+	 * @param string $name Identifiant du filtre dans la session
25
+     * @param string $className Argument inutile ici
26
+     * @return XXXExampleFilter
27
+	 */
28
+	public static function getOrCreateFilterInSession($name, $className = null) {
29
+		return FilterBase::getOrCreateFilterInSession($name, __CLASS__);
30
+	}
31
+}
32
+?>

+ 55
- 0
mod/_module/model/XXXExampleHome.php View File

@@ -0,0 +1,55 @@
1
+<?php
2
+/**
3
+ * Manager de XXXExampleBean
4
+ *
5
+ */
6
+class XXXExampleHome extends ObjectHome
7
+{
8
+	/**
9
+	 * Constructeur
10
+	 * @access protected
11
+	 */
12
+	protected function __construct() {
13
+		parent::ObjectHome(DAS::create(dirname(__FILE__).'/das.php', '_module'));
14
+	}
15
+
16
+	/**
17
+	 * Renvoie tous les Examples.
18
+	 *
19
+	 * Exemple de méthode avec une requête en dur.
20
+	 *
21
+	 * @return XXXExampleBean[]
22
+	 */
23
+	public function getAllExamples()
24
+	{
25
+		$query = 'SELECT id_example FROM xxx_example';
26
+
27
+		$result = $this->db->sql_query($query);
28
+
29
+		return $this->getResultAsObjects($result);
30
+	}
31
+
32
+	/**
33
+	 * Renvoie les Examples obtenus à partir
34
+	 * de la requête du filtre.
35
+	 *
36
+	 * Exemple de méthode avec un filtre.
37
+	 *
38
+	 * @param Filter $filter Filtre
39
+	 * @param boolean $count Active le comptage des résultats (utile si pagination)
40
+	 * @return XXXExampleBean[]
41
+	 */
42
+	public function getExamplesByFilter($filter, $count = true)
43
+	{
44
+		$query = $filter->getSql(true, $count);
45
+
46
+		$result = $this->db->sql_query($query);
47
+
48
+		if ($count) {
49
+			$filter->count();
50
+		}
51
+
52
+		return $this->getResultAsObjects($result);
53
+	}
54
+}
55
+?>

+ 14
- 0
mod/_module/model/das.php View File

@@ -0,0 +1,14 @@
1
+<?php
2
+/**
3
+ * Représentation XML du DAS
4
+ */
5
+$xml = '<?xml version="1.0" encoding="utf-8"?>
6
+<schema name="_module">' .
7
+
8
+'<table name="xxx_example" primarykey="id_example" home="XXXExampleHome" bean="XXXExampleBean">
9
+<field name="id_example" type="int(11)" required="NOT NULL" extra="auto_increment" />
10
+<field name="name" type="varchar(255)" required="NOT NULL" />
11
+</table>' .
12
+
13
+'</schema>';
14
+?>

+ 65
- 0
mod/_module/view/XXXErrorView.php View File

@@ -0,0 +1,65 @@
1
+<?php
2
+/**
3
+ * Page d'erreur.
4
+ *
5
+ */
6
+class XXXErrorView extends BeanView
7
+{
8
+	/**
9
+	 * Message d'erreur.
10
+	 * @var string
11
+	 */
12
+	protected $message;
13
+
14
+	/**
15
+	 * Constructeur.
16
+	 */
17
+	public function __construct()
18
+	{
19
+		parent::BeanView(false);
20
+		$this->message = _XXX_ERROR_TEXT;
21
+	}
22
+
23
+	/**
24
+	 * Positionne le message d'erreur.
25
+	 * @param string $message
26
+	 */
27
+	public function setMessage($message) {
28
+		$this->message = $message;
29
+	}
30
+
31
+	/**
32
+	 * Renvoie le contenu de la page.
33
+	 * @return string
34
+	 */
35
+	public function strHTML()
36
+	{
37
+		$bl = "\n";
38
+		$html = '';
39
+
40
+		if ($this->message)
41
+		{
42
+			$html .= '<div class="zone_texte">'.$bl;
43
+			$html .= '<p>'.$this->message.'</p>'.$bl;
44
+			$html .= '</div>'.$bl;
45
+		}
46
+		return $html;
47
+ 	}
48
+
49
+	/**
50
+	 * Renvoie le menu secondaire.
51
+	 * @return string
52
+	 */
53
+	public function strHTMLMenuSecondaire()
54
+	{
55
+		$bl = "\n";
56
+		$html = '<div id="menu_secondaire">'.$bl;
57
+
58
+		//$html .= '<ul id="bt_menu_secondaire">';
59
+		//$html .= '</ul>'.$bl;
60
+
61
+		$html .= '</div>'.$bl;
62
+		return $html;
63
+	}
64
+}
65
+?>

+ 45
- 0
mod/_module/view/XXXExampleViewForm.php View File

@@ -0,0 +1,45 @@
1
+<?php
2
+/**
3
+ * Formulaire d'édition d'un Example
4
+ *
5
+ */
6
+class XXXExampleViewForm extends BeanViewForm
7
+{
8
+	/**
9
+	 * Constructeur
10
+	 * @param ObjectBean $bean Objet à éditer
11
+	 * @param int $validate Action lancée à la validation du formulaire
12
+	 * @param int $delete Action lancée à la suppression de l'objet
13
+	 */
14
+	public function __construct($bean, $validate, $delete)
15
+	{
16
+		parent::BeanViewForm($bean, $validate, $delete);
17
+
18
+		$this->form->addFieldset('xxx_example_info', '', _XXX_EXAMPLE_FIELDSET_INFO);
19
+		$this->form->addInputHidden('id_example');
20
+
21
+		$this->form->addInputText('name', _XXX_EXAMPLE_NAME, 40);
22
+	}
23
+
24
+	/**
25
+	 * Renvoie le menu secondaire.
26
+	 * @return string
27
+	 */
28
+	public function strHTMLMenuSecondaire()
29
+	{
30
+		$bl = "\n";
31
+		$html = '<div id="menu_secondaire">'.$bl;
32
+
33
+		$html .= '<ul id="bt_menu_secondaire">';
34
+
35
+		// Bouton retour vers la liste
36
+		$urlList = 'index.php?action='.do__xxx_example_list;
37
+		$html .= '<li><a href="'.$urlList.'" class="liste">'._XXX_MENU_EXAMPLE_LIST.'</a></li>';
38
+
39
+		$html .= '</ul>'.$bl;
40
+
41
+		$html .= '</div>'.$bl;
42
+		return $html;
43
+	}
44
+}
45
+?>

+ 67
- 0
mod/_module/view/XXXExampleViewList.php View File

@@ -0,0 +1,67 @@
1
+<?php
2
+/**
3
+ * Vue en liste des Example
4
+ *
5
+ */
6
+class XXXExampleViewList extends BeanViewListe
7
+{
8
+	/**
9
+	 * Filtre de la liste
10
+	 * @var Filter
11
+	 */
12
+	protected $filter = null;
13
+
14
+	/**
15
+	 * Constucteur
16
+	 * @param ObjectBean[] $beans Tableau des Beans à afficher
17
+	 * @param int $form Action lancée au clic sur un élément de la liste
18
+	 * @param bool $checkbox Ajoute ou non une checkbox à chaque ligne
19
+	 * @param bool $bMap Si c'est une liste de mappage
20
+	 */
21
+	public function __construct(&$beans, $form, $checkbox = false, $bMap = false)
22
+	{
23
+		parent::BeanViewListe($beans, 'id_example', $form, $bMap);
24
+
25
+		if ($checkbox) {
26
+			$this->addColonneCheckbox('m_xxxexample[]|ref_example', 'example');
27
+		}
28
+
29
+		$this->addColonne('id_example', _XXX_EXAMPLE_COLUMN_ID);
30
+		$this->addColonne('name', _XXX_EXAMPLE_COLUMN_NAME);
31
+	}
32
+
33
+	/**
34
+	 * Ajoute un filtre à la liste pour afficher la pagination
35
+	 * @param Filter $filter
36
+	 * @param $action Action de la liste
37
+	 */
38
+	public function setFilter($filter, $action)
39
+	{
40
+		$this->filter = $filter;
41
+
42
+		$arguments = array('action' => $action);
43
+
44
+		$pagination = new FilterNavigator($filter, 'index.php', $arguments);
45
+
46
+		$htmlPagination = $pagination->getHtml(true);
47
+		$this->setHtmlHaut($htmlPagination);
48
+		$this->setHtmlBas($htmlPagination);
49
+	}
50
+
51
+	/**
52
+	 * Renvoie le menu secondaire.
53
+	 * @return string
54
+	 */
55
+	public function strHTMLMenuSecondaire()
56
+	{
57
+		$bl = "\n";
58
+		$html = '<div id="menu_secondaire">'.$bl;
59
+
60
+		//$html .= '<ul id="bt_menu_secondaire">';
61
+		//$html .= '</ul>'.$bl;
62
+
63
+		$html .= '</div>'.$bl;
64
+		return $html;
65
+	}
66
+}
67
+?>

+ 60
- 0
mod/_module/view/XXXTheme.php View File

@@ -0,0 +1,60 @@
1
+<?php
2
+/**
3
+ * Theme du module.
4
+ *
5
+ */
6
+class XXXTheme extends Theme
7
+{
8
+	/**
9
+	 * Constructeur
10
+	 * @param BeanView $view Objet vue
11
+	 * @param string $pageTitle Titre sémantique de la page (=balise title)
12
+	 * @param string $zoneTitle Titre affiché (=balise h1)
13
+	 */
14
+	public function __construct($view, $pageTitle, $zoneTitle)
15
+	{
16
+		parent::Theme($view, $pageTitle, $zoneTitle, '_module');
17
+
18
+		// FICHIERS JS
19
+		$this->setJs(array('js/script.js'));
20
+
21
+		// FICHIERS CSS
22
+		$this->setCss(array(
23
+			'../../css/style-generique.css',
24
+			'css/style.css',
25
+		));
26
+	}
27
+
28
+	/**
29
+	 * Construit et renvoie le menu principal
30
+	 * @return string
31
+	 */
32
+	public function afficherMenuPrincipal()
33
+	{
34
+		$bl = "\n";
35
+		$html = '';
36
+
37
+		$homeUser = UtilisateurHome::getInstance('UtilisateurHome');
38
+		$user = $homeUser->getUtilisateurLogged();
39
+
40
+		// Menu accueil
41
+		$html .= '<ul id="mod_menu">'.$bl;
42
+		$html .= '<li><a href="index.php?action='.do__xxx_start.'">'._XXX_MENU_HOME.'</a></li>'.$bl;
43
+
44
+		// Menu concernant les Example
45
+		if ($user->hasDroit(ri__xxx_example_manage))
46
+		{
47
+			$html .= '<li><a href="index.php?action='.do__xxx_example_list.'">'._XXX_MENU_EXAMPLE.'</a>';
48
+			$html .= '<ul>';
49
+
50
+			$html .= '<li><a href="index.php?action='.do__xxx_example_list.'">'._XXX_MENU_EXAMPLE_LIST.'</a></li>';
51
+			$html .= '<li><a href="index.php?action='.do__xxx_example_form.'">'._XXX_MENU_NEW_EXAMPLE.'</a></li>';
52
+
53
+			$html .= '</ul></li>'.$bl;
54
+		}
55
+
56
+		$html .= '</ul>'.$bl;
57
+		return $html;
58
+	}
59
+}
60
+?>

+ 40
- 0
mod/_module/view/XXXWelcomeView.php View File

@@ -0,0 +1,40 @@
1
+<?php
2
+/**
3
+ * Vue de la page d'accueil du module
4
+ *
5
+ */
6
+class XXXWelcomeView extends BeanView
7
+{
8
+	/**
9
+	 * Renvoie le contenu de la page.
10
+	 * @return string
11
+	 */
12
+	public function strHTML()
13
+	{
14
+		$bl = "\n";
15
+		$html = '';
16
+
17
+		$html .= '<div class="zone_texte">'.$bl;
18
+		$html .= '<p>'._XXX_WELCOME_TEXT.'</p>';
19
+
20
+		$html .= '</div>'.$bl; // fin div.zone_texte
21
+		return $html;
22
+ 	}
23
+
24
+	/**
25
+	 * Renvoie le menu secondaire.
26
+	 * @return string
27
+	 */
28
+	public function strHTMLMenuSecondaire()
29
+	{
30
+		$bl = "\n";
31
+		$html = '<div id="menu_secondaire">'.$bl;
32
+
33
+		//$html .= '<ul id="bt_menu_secondaire">';
34
+		//$html .= '</ul>'.$bl;
35
+
36
+		$html .= '</div>'.$bl;
37
+		return $html;
38
+	}
39
+}
40
+?>

Loading…
Cancel
Save