dolibarr  13.0.2
mailman.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
3  * Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
4  * Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
5  * Copyright (C) 2004 Sebastien Di Cintio <sdicintio@ressource-toi.org>
6  * Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
7  * Copyright (C) 2005-2011 Regis Houssin <regis.houssin@inodbox.com>
8  * Copyright (C) 2011-2013 Juanjo Menent <jmenent@2byte.es>
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 3 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program. If not, see <https://www.gnu.org/licenses/>.
22  */
23 
30 require '../main.inc.php';
31 require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
32 require_once DOL_DOCUMENT_ROOT.'/core/lib/mailmanspip.lib.php';
33 require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
34 
35 // Load translation files required by the page
36 $langs->loadLangs(array("admin", "members", "mailmanspip"));
37 
38 if (!$user->admin) accessforbidden();
39 
40 
41 $type = array('yesno', 'texte', 'chaine');
42 
43 $action = GETPOST('action', 'aZ09');
44 $testsubscribeemail = GETPOST("testsubscribeemail");
45 $testunsubscribeemail = GETPOST("testunsubscribeemail");
46 
47 /*
48  * Actions
49  */
50 
51 // Action updated or added a constant
52 if ($action == 'update' || $action == 'add')
53 {
54  foreach ($_POST['constname'] as $key => $val)
55  {
56  $constname = $_POST["constname"][$key];
57  $constvalue = $_POST["constvalue"][$key];
58  $consttype = $_POST["consttype"][$key];
59  $constnote = $_POST["constnote"][$key];
60  $res = dolibarr_set_const($db, $constname, $constvalue, $type[$consttype], 0, $constnote, $conf->entity);
61 
62  if (!($res > 0)) $error++;
63  }
64 
65  if (!$error)
66  {
67  setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
68  } else {
69  setEventMessages($langs->trans("Error"), null, 'errors');
70  }
71 }
72 
73 // Action activation d'un sous module du module adherent
74 if ($action == 'set')
75 {
76  $result = dolibarr_set_const($db, $_GET["name"], $_GET["value"], '', 0, '', $conf->entity);
77  if ($result < 0)
78  {
79  dol_print_error($db);
80  }
81 }
82 
83 // Action desactivation d'un sous module du module adherent
84 if ($action == 'unset')
85 {
86  $result = dolibarr_del_const($db, $_GET["name"], $conf->entity);
87  if ($result < 0)
88  {
89  dol_print_error($db);
90  }
91 }
92 
93 if (($action == 'testsubscribe' || $action == 'testunsubscribe') && !empty($conf->global->ADHERENT_USE_MAILMAN))
94 {
95  $email = GETPOST($action.'email');
96  if (!isValidEmail($email))
97  {
98  $langs->load("errors");
99  setEventMessages($langs->trans("ErrorBadEMail", $email), null, 'errors');
100  } else {
101  include_once DOL_DOCUMENT_ROOT.'/mailmanspip/class/mailmanspip.class.php';
102  $mailmanspip = new MailmanSpip($db);
103 
104  $object = new stdClass();
105  $object->email = $email;
106  $object->pass = $email;
107  /*$object->element='member';
108  $object->type='Preferred Partners'; */
109 
110  if ($action == 'testsubscribe')
111  {
112  $result = $mailmanspip->add_to_mailman($object);
113  if ($result < 0)
114  {
115  $error++;
116  setEventMessages($mailmanspip->error, $mailmanspip->errors, 'errors');
117  } else {
118  setEventMessages($langs->trans("MailmanCreationSuccess"), null);
119  }
120  }
121  if ($action == 'testunsubscribe')
122  {
123  $result = $mailmanspip->del_to_mailman($object);
124  if ($result < 0)
125  {
126  $error++;
127  setEventMessages($mailmanspip->error, $mailmanspip->errors, 'errors');
128  } else {
129  setEventMessages($langs->trans("MailmanDeletionSuccess"), null);
130  }
131  }
132  }
133 }
134 
135 
136 /*
137  * View
138  */
139 
140 $help_url = '';
141 
142 llxHeader('', $langs->trans("MailmanSpipSetup"), $help_url);
143 
144 
145 $linkback = '<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
146 print load_fiche_titre($langs->trans("MailmanSpipSetup"), $linkback, 'title_setup');
147 
148 $head = mailmanspip_admin_prepare_head();
149 
150 if (!empty($conf->global->ADHERENT_USE_MAILMAN))
151 {
152  print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
153  print '<input type="hidden" name="token" value="'.newToken().'">';
154  print '<input type="hidden" name="action" value="update">';
155 
156  print dol_get_fiche_head($head, 'mailman', $langs->trans("Setup"), -1, 'user');
157 
158  //$link=img_picto($langs->trans("Active"),'tick').' ';
159  $link = '<a class="reposition" href="'.$_SERVER["PHP_SELF"].'?action=unset&token='.newToken().'&value=0&name=ADHERENT_USE_MAILMAN">';
160  //$link.=$langs->trans("Disable");
161  $link .= img_picto($langs->trans("Activated"), 'switch_on');
162  $link .= '</a>';
163  // Edition des varibales globales
164  $constantes = array(
165  'ADHERENT_MAILMAN_ADMINPW',
166  'ADHERENT_MAILMAN_URL',
167  'ADHERENT_MAILMAN_UNSUB_URL',
168  'ADHERENT_MAILMAN_LISTS'
169  );
170 
171  print load_fiche_titre($langs->trans('MailmanTitle'), $link, '');
172 
173  print '<br>';
174 
175  // JQuery activity
176  print '<script type="text/javascript">
177  var i1=0;
178  var i2=0;
179  var i3=0;
180  jQuery(document).ready(function(){
181  jQuery("#exampleclick1").click(function(event){
182  if (i1 == 0) { jQuery("#example1").show(); i1=1; }
183  else if (i1 == 1) { jQuery("#example1").hide(); i1=0; }
184  });
185  jQuery("#exampleclick2").click(function(){
186  if (i2 == 0) { jQuery("#example2").show(); i2=1; }
187  else if (i2 == 1) { jQuery("#example2").hide(); i2=0; }
188  });
189  jQuery("#exampleclick3").click(function(){
190  if (i3 == 0) { jQuery("#example3").show(); i3=1; }
191  else if (i3 == 1) { jQuery("#example3").hide(); i3=0; }
192  });
193  });
194  </script>';
195 
196  form_constantes($constantes, 2);
197 
198  print '*'.$langs->trans("FollowingConstantsWillBeSubstituted").'<br>';
199  print '%LISTE%, %MAILMAN_ADMINPW%, %EMAIL% <br>';
200 
201  print dol_get_fiche_end();
202 
203  print '<div class="center"><input type="submit" class="button" value="'.$langs->trans("Update").'" name="update"></div>';
204 
205  print '</form>';
206 } else {
207  print dol_get_fiche_head($head, 'mailman', $langs->trans("Setup"), 0, 'user');
208 
209  $link = '<a href="'.$_SERVER["PHP_SELF"].'?action=set&token='.newToken().'&value=1&name=ADHERENT_USE_MAILMAN">';
210  //$link.=img_$langs->trans("Activate")
211  $link .= img_picto($langs->trans("Disabled"), 'switch_off');
212  $link .= '</a>';
213  print load_fiche_titre($langs->trans('MailmanTitle'), $link, '');
214 
215  print dol_get_fiche_end();
216 }
217 
218 
219 if (!empty($conf->global->ADHERENT_USE_MAILMAN))
220 {
221  print '<form action="'.$_SERVER["PHP_SELF"].'">';
222  print '<input type="hidden" name="token" value="'.newToken().'">';
223  print '<input type="hidden" name="action" value="testsubscribe">';
224 
225  print $langs->trans("TestSubscribe").'<br>';
226  print $langs->trans("EMail").' <input type="email" class="flat" name="testsubscribeemail" value="'.GETPOST('testsubscribeemail').'"> <input class="button" type="submit" value="'.$langs->trans("Test").'"><br>';
227 
228  print '</form>';
229 
230  print '<form action="'.$_SERVER["PHP_SELF"].'">';
231  print '<input type="hidden" name="token" value="'.newToken().'">';
232  print '<input type="hidden" name="action" value="testunsubscribe">';
233 
234  print $langs->trans("TestUnSubscribe").'<br>';
235  print $langs->trans("EMail").' <input type="email" class="flat" name="testunsubscribeemail" value="'.GETPOST('testunsubscribeemail').'"> <input class="button" type="submit" value="'.$langs->trans("Test").'"><br>';
236 
237  print '</form>';
238 }
239 
240 // End of page
241 llxFooter();
242 $db->close();
GETPOST($paramname, $check= 'alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
dolibarr_set_const($db, $name, $value, $type= 'chaine', $visible=0, $note= '', $entity=1)
Insert a parameter (key,value) into database (delete old key then insert it again).
Definition: admin.lib.php:575
llxHeader()
Empty header.
Definition: wrapper.php:45
setEventMessages($mesg, $mesgs, $style= 'mesgs', $messagekey= '')
Set event messages in dol_events session object.
load_fiche_titre($titre, $morehtmlright= '', $picto= 'generic', $pictoisfullpath=0, $id= '', $morecssontable= '', $morehtmlcenter= '')
Load a title with picto.
dolibarr_del_const($db, $name, $entity=1)
Effacement d&#39;une constante dans la base de donnees.
Definition: admin.lib.php:499
img_picto($titlealt, $picto, $moreatt= '', $pictoisfullpath=false, $srconly=0, $notitle=0, $alt= '', $morecss= '', $marginleftonlyshort=2)
Show picto whatever it&#39;s its name (generic function)
form_constantes($tableau, $strictw3c=0, $helptext= '')
Show array with constants to edit.
Definition: admin.lib.php:1479
accessforbidden($message= '', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program Calling this function terminate execution ...
dol_get_fiche_head($links=array(), $active= '', $title= '', $notab=0, $picto= '', $pictoisfullpath=0, $morehtmlright= '', $morecss= '', $limittoshow=0, $moretabssuffix= '')
Show tabs of a record.
print
Draft customers invoices.
Definition: index.php:89
dol_print_error($db= '', $error= '', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
newToken()
Return the value of token currently saved into session with name &#39;newtoken&#39;.
dol_get_fiche_end($notab=0)
Return tab footer of a card.
Class to manage mailman and spip.
llxFooter()
Empty footer.
Definition: wrapper.php:59
isValidEmail($address, $acceptsupervisorkey=0)
Return true if email syntax is ok.