sendmail.plugin.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  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. //cette fonction comprends toutes les actions du plugin qui ne nécessitent pas de vue html
  33. function sendmail_action(){
  34. require_once(__DIR__.SLASH.'action.php');
  35. }
  36. //Déclaration du menu de réglages
  37. function sendmail_menu_setting(&$settingMenu){
  38. global $myUser;
  39. if(!$myUser->can('sendmail','configure')) return;
  40. $settingMenu[] = array(
  41. 'sort' =>1,
  42. 'url' => 'setting.php?section=global.sendmail',
  43. 'icon' => 'fas fa-angle-right',
  44. 'label' => 'Envois E-mail'
  45. );
  46. }
  47. //Déclaration des pages de réglages
  48. function sendmail_content_setting(){
  49. global $_;
  50. if(file_exists(__DIR__.SLASH.'setting.'.$_['section'].'.php'))
  51. require_once(__DIR__.SLASH.'setting.'.$_['section'].'.php');
  52. }
  53. //Déclaration du menu de réglages du compte user
  54. function sendmail_menu_account(&$accountMenu){
  55. global $myUser, $conf;
  56. if(!$conf->get('sendmail_allow_custom_signature') || !$myUser->can('sendmail', 'read')) return;
  57. $accountMenu[]= array(
  58. 'sort' => 1,
  59. 'url' => 'account.php?section=sendmail',
  60. 'icon' => 'fas fa-angle-right',
  61. 'label' => 'E-mail',
  62. );
  63. }
  64. //Déclaration des pages de réglages du compte user
  65. function sendmail_content_account(){
  66. global $_;
  67. if(file_exists(__DIR__.SLASH.'account.'.$_['section'].'.php'))
  68. require_once(__DIR__.SLASH.'account.'.$_['section'].'.php');
  69. }
  70. function sendmail_user_signature(){
  71. global $myUser;
  72. $html = '';
  73. if($myUser->connected()) $html = htmlentities($myUser->preference('sendmail_email_signature'));
  74. return $html;
  75. }
  76. //Déclaration des settings de base
  77. //Types possibles : text,select ( + "values"=> array('1'=>'Val 1'),password,checkbox. Un simple string définit une catégorie.
  78. Configuration::setting('sendmail',array(
  79. "Général",
  80. 'sendmail_allow_custom_signature' => array("label"=>"Signatures personnalisées", "legend"=>"Chaque utilisateur peut créer sa propre signature HTML", "type"=>"boolean"),
  81. '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"),
  82. 'sendmail_default_signature' => array("label"=>"Signature ajoutée aux mails", "legend"=>"Vous pouvez récuperer les informations utilisateur avec les balises :
  83. <table class='table-sm w-100 border-0 mt-2'>
  84. <tbody>
  85. <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>
  86. <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>
  87. <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>
  88. <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>
  89. <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>
  90. <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>
  91. <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>
  92. <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>
  93. <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>
  94. <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>
  95. <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>
  96. <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>
  97. </tbody>
  98. </table>","type"=>"wysiwyg"),
  99. ));
  100. //Déclation des assets
  101. Plugin::addCss("/css/main.css");
  102. Plugin::addJs("/js/main.js");
  103. //Mapping hook / fonctions
  104. Plugin::addHook("install", "sendmail_install");
  105. Plugin::addHook("uninstall", "sendmail_uninstall");
  106. Plugin::addHook("action", "sendmail_action");
  107. Plugin::addHook("menu_setting", "sendmail_menu_setting");
  108. Plugin::addHook("content_setting", "sendmail_content_setting");
  109. //Affichage page dans menu du compte
  110. Plugin::addHook("menu_account", "sendmail_menu_account");
  111. Plugin::addHook("content_account", "sendmail_content_account");
  112. ?>