123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- <?php
- require_once(__DIR__.SLASH.'QRCode.class.php');
- function directory_plugin_menu(&$accountMenu){
- global $_, $myUser;
- if(!$myUser->connected()) throw new Exception('Vous devez être connecté pour accéder à cette fonctionnalité',401);
- $accountMenu[]= array(
- 'sort' =>1,
- 'url' => 'account.php?section=directory',
- 'icon' => 'fas fa-angle-right',
- 'label' => 'Annuaire',
- );
- }
- function directory_get_contacts(){
- $users = User::getAll();
- $userMapping = array();
- foreach ($users as $user) {
- $userMapping[$user->login] = array(
- 'object'=>$user,
- 'values' => array(
- 'Nom' => strtoupper($user->name).' '.$user->firstname,
- 'Email' => '<a href="mailto:'.$user->mail.'">'.$user->mail.'</a>',
- 'Fixe' => '<a href="tel: '.$user->phone.'">'.$user->phone.'</a>',
- 'Portable (pro)' => '<a href="tel: '.$user->mobile.'">'.$user->mobile.'</a>'
- )
- );
- }
- Plugin::callHook('directory_list',array(&$userMapping));
- $columns = array();
- $reference = array();
- foreach ($userMapping as $infos) {
- if(isset($infos['values']) && count($infos['values']) > count($reference)) $reference = $infos['values'];
- }
- if(!empty($reference)) $columns = array_keys($reference);
- //Tri par ordre alphabétique
- uasort($userMapping, function($a, $b){
- return strcmp($a['object']->name, $b['object']->name);
- });
- return array($columns,$userMapping);
- }
- //cette fonction comprends toutes les actions du plugin qui ne nécessitent pas de vue html
- require_once(__DIR__.SLASH.'action.php');
- function directory_plugin_page(){
- global $myUser,$_;
- if(!isset($_['section']) || $_['section']!='directory') return;
- if($myUser!=false){
- list($columns,$userMapping) = directory_get_contacts();
- ?>
- <div class="tab-pane fade show active">
- <h3>Annuaire</h3>
- <p>Annuaire de la société</p>
- <hr>
- <a type="btn" href="action.php?action=directory_get_excel" class="btn btn-primary" title="Excel"><i class="far fa-file-excel"></i> Exporter l'annuaire (.csv)</a>
- <br/><br/>
- <table class="table table-striped table-bordered table-hover">
- <thead>
- <tr>
- <?php foreach($columns as $column): ?>
- <th><?php echo $column; ?></th>
- <?php endforeach; ?>
- <th>Action</th>
- </tr>
- </thead>
- <?php foreach($userMapping as $infos){
- $user = $infos['object'];
- if($user->origin != ''){
- ?>
- <tr data-user="<?php echo $user->login; ?>">
- <?php foreach($columns as $column): ?>
- <td><?php echo isset($infos['values'][$column])?$infos['values'][$column]:''; ?></td>
- <?php endforeach; ?>
- <td>
- <a type="btn" target="_blank" href="action.php?action=directory_get_qr&user=<?php echo $user->login; ?>" class="btn btn-primary btn-sm" title="QR Code"><i class="fas fa-qrcode"></i></a>
- <a type="btn" href="action.php?action=directory_get_cardav&user=<?php echo $user->login; ?>" class="btn btn-primary btn-sm" title="Cardav"><i class="far fa-address-card"></i></a>
- <?php if(Plugin::is_active('fr.core.sms')): ?>
- <div onclick="directory_send_sms(this)" class="btn btn-primary btn-sm" title="Me l'envoyer par sms"><i class="fas fa-sms"></i></div>
- <?php endif; ?>
- </td>
- </tr>
- <?php
- }
- } ?>
- </table>
- </div>
- <?php } else { ?>
- <div id="main" class="wrapper clearfix">
- <article>
- <h3>Vous devez être connecté</h3>
- </article>
- </div>
- <?php }
- }
- Plugin::addJs("/js/main.js");
- Plugin::addHook("menu_account", "directory_plugin_menu");
- Plugin::addHook("content_account", "directory_plugin_page");
- ?>
|