can('example','read')) return; $menuItems[] = array( 'sort'=>2, 'url'=>'index.php?module=example', 'label'=>'Example', 'icon'=> 'fas fa-users', 'color'=> '#3498db' ); } //Cette fonction va generer une page quand on clique sur Modele dans menu function example_page(){ global $_,$myUser; if(!isset($_['module']) || $_['module'] !='example') return; $page = !isset($_['page']) ? 'list' : $_['page']; $file = __DIR__.SLASH.'page.'.$page.'.php'; if(!file_exists($file)) throw new Exception("Page ".$page." inexistante"); require_once($file); } //Fonction executée lors de l'activation du plugin function example_install($id){ if($id != 'fr.idleman.example') return; Entity::install(__DIR__); } //Fonction executée lors de la désactivation du plugin function example_uninstall($id){ if($id != 'fr.idleman.example') return; Entity::uninstall(__DIR__); } //Déclaration des sections de droits du plugin function example_section(&$sections){ $sections['example'] = "Gestion des droits sur le plugin d'exemple"; } //Cette fonction comprends toutes les actions //du plugin qui ne nécessitent pas de vue html function example_action(){ require_once(__DIR__.SLASH.'action.php'); } //Déclaration du menu de réglages function example_menu_setting(&$settingMenu){ global $_, $myUser; if($myUser->can('example','configure')) { $settingMenu[]= array( 'sort' =>1, 'url' => 'setting.php?section=example', 'icon' => 'fas fa-angle-right', 'label' => 'Example' ); } } //Déclaration des pages de réglages function example_content_setting(){ global $_; if(file_exists(__DIR__.SLASH.'setting.'.$_['section'].'.php')) require_once(__DIR__.SLASH.'setting.'.$_['section'].'.php'); } //Déclation des assets Plugin::addJs("/js/document.api.js"); Plugin::addCss("/css/main.css"); Plugin::addJs("/js/main.js"); //Mapping hook / fonctions Plugin::addHook("install", "example_install"); Plugin::addHook("uninstall", "example_uninstall"); Plugin::addHook("section", "example_section"); Plugin::addHook("menu_main", "example_menu"); Plugin::addHook("page", "example_page"); Plugin::addHook("action", "example_action"); Plugin::addHook("menu_setting", "example_menu_setting"); Plugin::addHook("content_setting", "example_content_setting"); global $myFirm; if($myFirm->has_plugin('fr.idleman.export')){ require_once(__ROOT__.PLUGIN_PATH.'export'.SLASH.'ExportModel.class.php'); ExportModel::add('example','contact-sheet', 'Fiche contact', function($params){ global $myUser; if(isset($params['description']) && $params['description']!=true){ require_once(__DIR__.SLASH.'Contact.class.php'); $contact = Contact::getById($params['id']); $data['contact.libellé'] = $contact->label; $data['contact.téléphone'] = $contact->phone; $data['contact.anniversaire'] = date('d/m/Y',$contact->birth); $data['contact.identifiant'] = $contact->login; //Ajout du champs spécial de photo de contact $data['contact.photo'] = '::'.$contact->get_image('path'); } else { $data['contact.libellé'] = 'Libellé du contact'; $data['contact.téléphone'] = 'N° de téléphone du contact'; $data['contact.anniversaire'] = 'Date de naissance/d\'anniversaire du contact'; $data['contact.identifiant'] = 'Identifiant du contact'; $data['contact.photo'] = array('desc'=>'Image de profil du contact', 'type'=>'photo'); } return $data; }); ExportModel::add('example','contact-list','Liste de contacts',function($params){ global $myUser; if(isset($params['description']) && $params['description']!=true){ require_once(__DIR__.SLASH.'Contact.class.php'); foreach(Contact::loadAll() as $contact){ //définition jeu de données $row['contact.libellé'] = $contact->label; $row['contact.téléphone'] = $contact->phone; $row['contact.anniversaire'] = date('d/m/Y',$contact->birth); $row['contact.identifiant'] = $contact->login; //Ajout du champs spécial de photo de contact $row['contact.photo'] = '::'.$contact->get_image('path'); $data['liste.contacts'][] = $row; } } else { $data['liste.contacts.nombre'] ='Nombre de contacts au total'; $subItems = array( 'contact.libellé' => 'Libellé du contact', 'contact.téléphone' => 'N° de téléphone du contact', 'contact.anniversaire' => 'Date de naissance/d\'anniversaire du contact', 'contact.identifiant' => 'Identifiant du contact', 'contact.photo' => array('desc'=>'Image de profil du contact', 'type'=>'photo'), ); $data['liste.contacts'] = array('desc'=>'Boucle sur les contacts', 'type'=>'list', 'subitems'=>$subItems); } return $data; }); } ?>