| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 | <?php//Déclaration d'un item de menu dans le menu principalfunction example_menu(&$menuItems){	global $_,$myUser;	if(!$myUser->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 menufunction 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 pluginfunction example_install($id){	if($id != 'fr.idleman.example') return;	Entity::install(__DIR__);}//Fonction executée lors de la désactivation du pluginfunction example_uninstall($id){	if($id != 'fr.idleman.example') return;	Entity::uninstall(__DIR__);}//Déclaration des sections de droits du pluginfunction 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 htmlfunction example_action(){	require_once(__DIR__.SLASH.'action.php');}//Déclaration du menu de réglagesfunction 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églagesfunction example_content_setting(){	global $_;	if(file_exists(__DIR__.SLASH.'setting.'.$_['section'].'.php'))		require_once(__DIR__.SLASH.'setting.'.$_['section'].'.php');}//Déclation des assetsPlugin::addCss("/css/main.css?v=1"); Plugin::addJs("/js/main.js?v=1"); //Mapping hook / fonctionsPlugin::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;	});}?>
 |