sendmail.plugin.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. <?php
  2. //Fonction executée lors de l'activation du plugin
  3. function sendmail_install($id){
  4. if($id != 'fr.core.sendmail') return;
  5. Entity::install(__DIR__);
  6. global $conf;
  7. $signature = '<div>Cordialement,<br />
  8. <b><span style="color: #ff0000;" color="#ff0000"></span></b></div>
  9. <hr style="width: 100%; height: 2px;" />
  10. <table border="0" cellpadding="0" width="550">
  11. <tr>
  12. <td>
  13. <p style="margin-top: 0; margin-left:20px;color: #4e4d55; font-family: Arial, sans-serif; font-size:15px;">
  14. <strong>{{user.fullname}}</strong><br>
  15. <strong><span style="color: #3aa8e0;">{{user.function}}</span></strong><br>
  16. Soci&eacute;t&eacute; <strong>SYS<span style="color: #3aa8e0;">1</span></strong><br>
  17. Email : {{user.mail}}<br>
  18. Portable : {{user.mobile}}
  19. </p>
  20. </td>
  21. </tr>
  22. </table>';
  23. $conf->put('sendmail_default_signature',$signature);
  24. }
  25. //Fonction executée lors de la désactivation du plugin
  26. function sendmail_uninstall($id){
  27. if($id != 'fr.core.sendmail') return;
  28. Entity::uninstall(__DIR__);
  29. }
  30. //Déclaration des sections de droits du plugin
  31. Right::register("sendmail",array('label'=>"Gestion des droits sur le plugin sendmail"));
  32. //Comprends toutes les actions du plugin qui ne nécessitent pas de vue html
  33. require_once(__DIR__.SLASH.'action.php');
  34. //Déclaration du menu de réglages
  35. function sendmail_menu_setting(&$settingMenu){
  36. global $myUser;
  37. if(!$myUser->can('sendmail','configure')) return;
  38. $settingMenu[] = array(
  39. 'sort' =>1,
  40. 'url' => 'setting.php?section=global.sendmail',
  41. 'icon' => 'fas fa-angle-right',
  42. 'label' => 'Envois E-mail'
  43. );
  44. }
  45. //Déclaration des pages de réglages
  46. function sendmail_content_setting(){
  47. global $_;
  48. if(file_exists(__DIR__.SLASH.'setting.'.$_['section'].'.php'))
  49. require_once(__DIR__.SLASH.'setting.'.$_['section'].'.php');
  50. }
  51. //Déclaration du menu de réglages du compte user
  52. function sendmail_menu_account(&$accountMenu){
  53. global $myUser, $conf;
  54. if(!$conf->get('sendmail_allow_custom_signature') || !$myUser->can('sendmail', 'read')) return;
  55. $accountMenu[]= array(
  56. 'sort' => 1,
  57. 'url' => 'account.php?section=sendmail',
  58. 'icon' => 'fas fa-angle-right',
  59. 'label' => 'E-mail',
  60. );
  61. }
  62. //Déclaration des pages de réglages du compte user
  63. function sendmail_content_account(){
  64. global $_;
  65. if(file_exists(__DIR__.SLASH.'account.'.$_['section'].'.php'))
  66. require_once(__DIR__.SLASH.'account.'.$_['section'].'.php');
  67. }
  68. function sendmail_user_signature(){
  69. global $myUser;
  70. $html = '';
  71. if($myUser->connected()) $html = htmlentities($myUser->preference('sendmail_email_signature'));
  72. return $html;
  73. }
  74. //Déclaration des settings de base
  75. //Types possibles : text,select ( + "values"=> array('1'=>'Val 1'),password,checkbox. Un simple string définit une catégorie.
  76. Configuration::setting('sendmail',array(
  77. "Général",
  78. 'sendmail_allow_custom_signature' => array("label"=>"Signatures personnalisées", "legend"=>"Chaque utilisateur peut créer sa propre signature HTML", "type"=>"boolean"),
  79. 'sendmail_force_global_signature' => array("label"=>"Forcer la signature globale", "legend"=>"Les envois par e-mail récupèrent obligatoirement la signature globale", "type"=>"boolean"),
  80. 'sendmail_default_signature' => array("label"=>"Signature ajoutée aux mails", "legend"=>"Vous pouvez récuperer les informations utilisateur avec les balises :
  81. <table class='table-sm w-100 border-0 mt-2'>
  82. <tbody>
  83. <tr class='bg-transparent border-0'><td class='border-0'><code>{{user.mail}}</code></td><td class='border-0'>E-mail de l'utilisateur connecté</td></tr>
  84. <tr class='bg-transparent border-0'><td class='border-0'><code>{{user.firstname}}</code></td><td class='border-0'>Prénom de l'utilisateur connecté</td></tr>
  85. <tr class='bg-transparent border-0'><td class='border-0'><code>{{user.fullname}}</code></td><td class='border-0'>Prénom et Nom de l'utilisateur connecté</td></tr>
  86. <tr class='bg-transparent border-0'><td class='border-0'><code>{{user.function}}</code></td><td class='border-0'>Fonction l'utilisateur connecté</td></tr>
  87. <tr class='bg-transparent border-0'><td class='border-0'><code>{{user.phone}}</code></td><td class='border-0'>N° Téléphone l'utilisateur connecté</td></tr>
  88. <tr class='bg-transparent border-0'><td class='border-0'><code>{{user.mobile}}</code></td><td class='border-0'>N° Téléphone portable de l'utilisateur connecté</td></tr>
  89. <tr class='bg-transparent border-0'><td class='border-0'><code>{{firm.logo}}</code></td><td class='border-0'>Logo de la société</td></tr>
  90. <tr class='bg-transparent border-0'><td class='border-0'><code>{{firm.label}}</code></td><td class='border-0'>Libellé de la société</td></tr>
  91. <tr class='bg-transparent border-0'><td class='border-0'><code>{{firm.phone}}</code></td><td class='border-0'>N° Téléphone portable de la société</td></tr>
  92. <tr class='bg-transparent border-0'><td class='border-0'><code>{{firm.fax}}</code></td><td class='border-0'>N° Fax de la société</td></tr>
  93. <tr class='bg-transparent border-0'><td class='border-0'><code>{{firm.mail}}</code></td><td class='border-0'>E-mail de la société</td></tr>
  94. <tr class='bg-transparent border-0'><td class='border-0'><code>{{firm.address}}</code></td><td class='border-0'>Adresse de la société</td></tr>
  95. </tbody>
  96. </table>","type"=>"wysiwyg"),
  97. ));
  98. //Déclation des assets
  99. Plugin::addCss("/css/main.css");
  100. Plugin::addJs("/js/main.js");
  101. //Mapping hook / fonctions
  102. Plugin::addHook("install", "sendmail_install");
  103. Plugin::addHook("uninstall", "sendmail_uninstall");
  104. Plugin::addHook("menu_setting", "sendmail_menu_setting");
  105. Plugin::addHook("content_setting", "sendmail_content_setting");
  106. //Affichage page dans menu du compte
  107. Plugin::addHook("menu_account", "sendmail_menu_account");
  108. Plugin::addHook("content_account", "sendmail_content_account");
  109. ?>