128 lines
5.4 KiB
PHP
128 lines
5.4 KiB
PHP
<?php
|
|
use Module\ACM\Lib\Psr4AutoloaderClass;
|
|
require_once __DIR__ . '/../../lib/Psr4AutoloaderClass.php';
|
|
$chargeurDeClasse = new Psr4AutoloaderClass();
|
|
$chargeurDeClasse->register();
|
|
$chargeurDeClasse->addNamespace('Module\\ACM',__DIR__ ."/../../" );
|
|
|
|
use Module\ACM\Classe\GestionBD\gestionVariableCongee;
|
|
use Module\ACM\Classe\GestionBD\gestionDate;
|
|
use Module\ACM\Classe\GestionBD\gestionCouleur;
|
|
|
|
require_once DOL_DOCUMENT_ROOT . "/core/modules/DolibarrModules.class.php";
|
|
|
|
class modACM extends DolibarrModules{
|
|
/**
|
|
* @param $db TraceableDB est la variable qui contient la bd de dolibarr
|
|
*/
|
|
function __construct($db) {
|
|
|
|
/** ** ** Base de la création de module dolibarr ** ** **/
|
|
global $langs;
|
|
$this->db = $db;
|
|
$langs->load("ACM@ACM");
|
|
$this->numero = 340003;
|
|
$this->editor_name = "Desal"; // nom de l'éditeur
|
|
$this->family = "Desal-Tools"; // lieu où le module est retrouvable
|
|
$this->name = preg_replace('/^mod/i', '', get_class($this)); // permet de récupérer le nom du module à partir du nom du fichier
|
|
$this->description = $langs->trans("ACMDescription"); // description du module, permet une traduction grâce à la fonction traduction
|
|
$this->version = 1; // numero de version au format X.X
|
|
$this->const_name = 'MAIN_MODULE_'.strtoupper($this->name); // constante du nom du module
|
|
$this->special = 3; // ?
|
|
$this->picto = 'ACM.png@'.$this->name; // image nommée object_ACM.png dans le dossier img de ACM
|
|
$this->module_parts = array ( // permet la gestion et l'execution des triggers et du js
|
|
'hooks'=>array('holidaycard', 'holidaylist', 'formObjectOptions'),
|
|
'js'=>array()
|
|
);
|
|
|
|
/** Création de répertoire dans la partie documentation **/
|
|
$this->dirs = array(); // Exemple de composent : "/templateDolibarr/temp"
|
|
$r = 0;
|
|
/** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **/
|
|
|
|
/** Gestion des dépendances et des modules obligatoires **/
|
|
$this->hidden = false;
|
|
$this->depends = array("modHRM"); // module obligatoire pour utilisation
|
|
$this->conflictwith = array(); // liste des modules conflictuelle
|
|
$this->phpmin = array(7,0); // version minimum de php demander
|
|
$this->need_dolibarr_version = array(19,0,2); // version minimum de dolibarr demander
|
|
$this->langfiles = array($this->name.'@'.$this->name); // position du fichier de langue
|
|
/** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **/
|
|
$csrfToken = function_exists('newToken') ? newToken() : $_SESSION['newtoken'];
|
|
$this->config_page_url = '../custom/ACM/admin/setup.php';
|
|
|
|
$this->tabs = array('objecttype:+ACMAbsences:Absences:ACM@ACM:/ACM/absences.php?id=__ID__');
|
|
|
|
$this->boxes = array(); // permet un affichage sur la page d'accueil
|
|
$r = 0;
|
|
|
|
/** ** ** Gestion des permissions ** ** **/
|
|
$this->rights = array();
|
|
$this->rights_class = $this->name;
|
|
$r=0;
|
|
|
|
// Exemple de permission //
|
|
$r++;
|
|
$this->rights[$r][0] = 3400031;
|
|
$this->rights[$r][1] = 'User can use the module';
|
|
$this->rights[$r][2] = 'r';
|
|
$this->rights[$r][3] = 0;
|
|
$this->rights[$r][4] = 'moduleutilisable';
|
|
/** ** ** ** ** ** ** ** ** ** ** ** ** **/
|
|
$r = 0;
|
|
|
|
|
|
$this->menu = array();
|
|
$r = 0;
|
|
$r = $r+1;
|
|
// Add here entries to declare new menus
|
|
/* BEGIN MODULEBUILDER TOPMENU */
|
|
$this->menu[$r] = array(
|
|
'fk_menu' => 'fk_mainmenu=hrm', // Pas de parent, menu principal
|
|
'type' => 'left', // Menu principal en haut
|
|
'prefix' => img_picto('pictoAbsence', 'absence@ACM', 'class="pictofixedwidth paddingright em088"'),
|
|
'titre' => " ".$langs->trans("ACMAbsenceTitre"), // Nom affiché
|
|
'mainmenu' => 'hrm', // Menu principal pour ton module
|
|
'leftmenu' => 'acmAbsences', // Identifiant unique pour le sous-menu
|
|
'url' => '/acm/index.php', // Lien vers ta page
|
|
'langs' => 'acm@acm', // Fichier de langue
|
|
'position' => 1000+$r, // Position dans le menu
|
|
'enabled' => '$conf->acm->enabled', // Affiche seulement si ACM est activé
|
|
);
|
|
|
|
$r = $r+1;
|
|
global $dolibarr_main_url_root;
|
|
$css_file = $dolibarr_main_url_root . '/custom/ACM/css/style.css';
|
|
$this->resprints = "<link rel='stylesheet' type='text/css' href='$css_file'>";
|
|
}
|
|
|
|
/**
|
|
* @override dolibarr
|
|
* @param $options
|
|
* @return int
|
|
*/
|
|
function init($options=''){
|
|
global $conf, $langs;
|
|
$result = $this->_load_tables('/ACM/sql/');
|
|
if ($result < 0) {
|
|
return -1; // Do not activate module if error 'not allowed' returned when loading module SQL queries (the _load_table run sql with run_sql with the error allowed parameter set to 'default')
|
|
}
|
|
$this->remove($options);
|
|
$sql = array();
|
|
gestionCouleur::getListeCouleur();
|
|
gestionDate::importerDateFerier();
|
|
return $this->_init($sql, $options);
|
|
}
|
|
|
|
/**
|
|
* @param $options
|
|
* @return mixed
|
|
*/
|
|
function remove($options=''){
|
|
$sql = array();
|
|
return $this->_remove($sql, $options);
|
|
}
|
|
|
|
|
|
|
|
} |