dolibarr  16.0.5
suggestconference.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (C) 2021 Dorian Vabre <dorian.vabre@gmail.com>
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program. If not, see <https://www.gnu.org/licenses/>.
16  */
17 
24 if (!defined('NOLOGIN')) {
25  define("NOLOGIN", 1); // This means this output page does not require to be logged.
26 }
27 if (!defined('NOCSRFCHECK')) {
28  define("NOCSRFCHECK", 1); // We accept to go on this page from external web site.
29 }
30 if (!defined('NOIPCHECK')) {
31  define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip
32 }
33 if (!defined('NOBROWSERNOTIF')) {
34  define('NOBROWSERNOTIF', '1');
35 }
36 if (!defined('NOIPCHECK')) {
37  define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip
38 }
39 
40 // For MultiCompany module.
41 // Do not use GETPOST here, function is not defined and define must be done before including main.inc.php
42 // TODO This should be useless. Because entity must be retrieve from object ref and not from url.
43 $entity = (!empty($_GET['entity']) ? (int) $_GET['entity'] : (!empty($_POST['entity']) ? (int) $_POST['entity'] : 1));
44 if (is_numeric($entity)) {
45  define("DOLENTITY", $entity);
46 }
47 
48 require '../../main.inc.php';
49 require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
50 require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
51 require_once DOL_DOCUMENT_ROOT.'/eventorganization/class/conferenceorbooth.class.php';
52 require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
53 require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
54 require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
55 require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
56 require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/paymentterm.class.php';
57 require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
58 
59 global $dolibarr_main_url_root;
60 
61 // Init vars
62 $errmsg = '';
63 $num = 0;
64 $error = 0;
65 $backtopage = GETPOST('backtopage', 'alpha');
66 $action = GETPOST('action', 'aZ09');
67 
68 $eventtype = GETPOST("eventtype");
69 $email = GETPOST("email");
70 $societe = GETPOST("societe");
71 $label = GETPOST("label");
72 $note = GETPOST("note");
73 $datestart = GETPOST("datestart");
74 $dateend = GETPOST("dateend");
75 
76 $id = GETPOST('id');
77 
78 $project = new Project($db);
79 $resultproject = $project->fetch($id);
80 if ($resultproject < 0) {
81  $error++;
82  $errmsg .= $project->error;
83 }
84 
85 // Security check
86 $securekeyreceived = GETPOST("securekey");
87 $securekeytocompare = dol_hash($conf->global->EVENTORGANIZATION_SECUREKEY.'conferenceorbooth'.$id, 'md5');
88 
89 if ($securekeytocompare != $securekeyreceived) {
90  print $langs->trans('MissingOrBadSecureKey');
91  exit;
92 }
93 
94 // Load translation files
95 $langs->loadLangs(array("main", "companies", "install", "other", "eventorganization"));
96 
97 // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
98 $hookmanager->initHooks(array('publicnewmembercard', 'globalcard'));
99 
100 $extrafields = new ExtraFields($db);
101 
102 $user->loadDefaultValues();
103 
104 $cactioncomm = new CActionComm($db);
105 $arrayofconfboothtype = $cactioncomm->liste_array('', 'id', '', 0, "module='conference@eventorganization'");
106 
107 // Security check
108 if (empty($conf->eventorganization->enabled)) {
109  accessforbidden('', 0, 0, 1);
110 }
111 
112 
124 function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '')
125 {
126  global $user, $conf, $langs, $mysoc;
127 
128  top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss); // Show html headers
129 
130  print '<body id="mainbody" class="publicnewmemberform">';
131 
132  // Define urllogo
133  $urllogo = DOL_URL_ROOT.'/theme/common/login_logo.png';
134 
135  if (!empty($mysoc->logo_small) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_small)) {
136  $urllogo = DOL_URL_ROOT.'/viewimage.php?cache=1&amp;modulepart=mycompany&amp;file='.urlencode('logos/thumbs/'.$mysoc->logo_small);
137  } elseif (!empty($mysoc->logo) && is_readable($conf->mycompany->dir_output.'/logos/'.$mysoc->logo)) {
138  $urllogo = DOL_URL_ROOT.'/viewimage.php?cache=1&amp;modulepart=mycompany&amp;file='.urlencode('logos/'.$mysoc->logo);
139  } elseif (is_readable(DOL_DOCUMENT_ROOT.'/theme/dolibarr_logo.svg')) {
140  $urllogo = DOL_URL_ROOT.'/theme/dolibarr_logo.svg';
141  }
142 
143  print '<div class="center">';
144 
145  // Output html code for logo
146  if ($urllogo) {
147  print '<div class="backgreypublicpayment">';
148  print '<div class="logopublicpayment">';
149  print '<img id="dolpaymentlogo" src="'.$urllogo.'"';
150  print '>';
151  print '</div>';
152  if (empty($conf->global->MAIN_HIDE_POWERED_BY)) {
153  print '<div class="poweredbypublicpayment opacitymedium right"><a class="poweredbyhref" href="https://www.dolibarr.org?utm_medium=website&utm_source=poweredby" target="dolibarr" rel="noopener">'.$langs->trans("PoweredBy").'<br><img class="poweredbyimg" src="'.DOL_URL_ROOT.'/theme/dolibarr_logo.svg" width="80px"></a></div>';
154  }
155  print '</div>';
156  }
157 
158  if (!empty($conf->global->PROJECT_IMAGE_PUBLIC_SUGGEST_CONFERENCE)) {
159  print '<div class="backimagepublicsuggestconference">';
160  print '<img id="idPROJECT_IMAGE_PUBLIC_SUGGEST_CONFERENCE" src="'.$conf->global->PROJECT_IMAGE_PUBLIC_SUGGEST_CONFERENCE.'">';
161  print '</div>';
162  }
163 
164  print '</div>';
165 
166  print '<div class="divmainbodylarge">';
167 }
168 
174 function llxFooterVierge()
175 {
176  print '</div>';
177 
178  printCommonFooter('public');
179 
180  print "</body>\n";
181  print "</html>\n";
182 }
183 
184 
185 
186 /*
187  * Actions
188  */
189 
190 $parameters = array();
191 // Note that $action and $object may have been modified by some hooks
192 $reshook = $hookmanager->executeHooks('doActions', $parameters, $project, $action);
193 if ($reshook < 0) {
194  setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
195 }
196 
197 // Action called when page is submitted
198 if (empty($reshook) && $action == 'add') {
199  $error = 0;
200 
201  $urlback = '';
202 
203  $db->begin();
204 
205  if (!GETPOST("lastname")) {
206  $error++;
207  $errmsg .= $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Lastname"))."<br>\n";
208  }
209  if (!GETPOST("firstname")) {
210  $error++;
211  $errmsg .= $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Firstname"))."<br>\n";
212  }
213  if (!GETPOST("email")) {
214  $error++;
215  $errmsg .= $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Email"))."<br>\n";
216  }
217  if (!GETPOST("societe")) {
218  $error++;
219  $errmsg .= $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Societe"))."<br>\n";
220  }
221  if (!GETPOST("label")) {
222  $error++;
223  $errmsg .= $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Label"))."<br>\n";
224  }
225  if (!GETPOST("note")) {
226  $error++;
227  $errmsg .= $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Note"))."<br>\n";
228  }
229  if (GETPOST("email") && !isValidEmail(GETPOST("email"))) {
230  $error++;
231  $langs->load("errors");
232  $errmsg .= $langs->trans("ErrorBadEMail", GETPOST("email"))."<br>\n";
233  }
234 
235  if (!$error) {
236  // Getting the thirdparty or creating it
237  $thirdparty = new Societe($db);
238  $resultfetchthirdparty = $thirdparty->fetch('', $societe);
239 
240  if ($resultfetchthirdparty<=0) {
241  // Need to create a new one (not found or multiple with the same name)
242  $thirdparty->name = $societe;
243  $thirdparty->address = GETPOST("address");
244  $thirdparty->zip = GETPOST("zipcode");
245  $thirdparty->town = GETPOST("town");
246  $thirdparty->client = 2;
247  $thirdparty->fournisseur = 0;
248  $thirdparty->country_id = GETPOST("country_id", 'int');
249  $thirdparty->state_id = GETPOST("state_id", 'int');
250  $thirdparty->email = $email;
251 
252  // Load object modCodeTiers
253  $module = (!empty($conf->global->SOCIETE_CODECLIENT_ADDON) ? $conf->global->SOCIETE_CODECLIENT_ADDON : 'mod_codeclient_leopard');
254  if (substr($module, 0, 15) == 'mod_codeclient_' && substr($module, -3) == 'php') {
255  $module = substr($module, 0, dol_strlen($module) - 4);
256  }
257  $dirsociete = array_merge(array('/core/modules/societe/'), $conf->modules_parts['societe']);
258  foreach ($dirsociete as $dirroot) {
259  $res = dol_include_once($dirroot.$module.'.php');
260  if ($res) {
261  break;
262  }
263  }
264  $modCodeClient = new $module($db);
265 
266  if (empty($tmpcode) && !empty($modCodeClient->code_auto)) {
267  $tmpcode = $modCodeClient->getNextValue($thirdparty, 0);
268  }
269  $thirdparty->code_client = $tmpcode;
270  $readythirdparty = $thirdparty->create($user);
271  if ($readythirdparty <0) {
272  $error++;
273  $errmsg .= $thirdparty->error;
274  } else {
275  $thirdparty->country_code = getCountry($thirdparty->country_id, 2, $db, $langs);
276  $thirdparty->country = getCountry($thirdparty->country_code, 0, $db, $langs);
277  }
278  }
279  // From there we have a thirdparty, now looking for the contact
280  if (!$error) {
281  $contact = new Contact($db);
282  $resultcontact = $contact->fetch('', '', '', $email);
283  if ($resultcontact<=0) {
284  // Need to create a contact
285  $contact->socid = $thirdparty->id;
286  $contact->lastname = (string) GETPOST("lastname", 'alpha');
287  $contact->firstname = (string) GETPOST("firstname", 'alpha');
288  $contact->address = (string) GETPOST("address", 'alpha');
289  $contact->zip = (string) GETPOST("zipcode", 'alpha');
290  $contact->town = (string) GETPOST("town", 'alpha');
291  $contact->country_id = (int) GETPOST("country_id", 'int');
292  $contact->state_id = (int) GETPOST("state_id", 'int');
293  $contact->email = $email;
294  $contact->statut = 1; //Default status to Actif
295  $resultcreatecontact = $contact->create($user);
296  if ($resultcreatecontact<0) {
297  $error++;
298  $errmsg .= $contact->error;
299  }
300  }
301  }
302 
303  if (!$error) {
304  // Adding supplier tag and tag from setup to thirdparty
305  $category = new Categorie($db);
306 
307  $resultcategory = $category->fetch($conf->global->EVENTORGANIZATION_CATEG_THIRDPARTY_CONF);
308 
309  if ($resultcategory<=0) {
310  $error++;
311  $errmsg .= $category->error;
312  } else {
313  $resultsetcategory = $thirdparty->setCategoriesCommon(array($category->id), CATEGORIE::TYPE_CUSTOMER, false);
314  if ($resultsetcategory < 0) {
315  $error++;
316  $errmsg .= $thirdparty->error;
317  } else {
318  $thirdparty->fournisseur = 1;
319 
320  // Load object modCodeFournisseur
321  $module = (!empty($conf->global->SOCIETE_CODECLIENT_ADDON) ? $conf->global->SOCIETE_CODECLIENT_ADDON : 'mod_codeclient_leopard');
322  if (substr($module, 0, 15) == 'mod_codeclient_' && substr($module, -3) == 'php') {
323  $module = substr($module, 0, dol_strlen($module) - 4);
324  }
325  $dirsociete = array_merge(array('/core/modules/societe/'), $conf->modules_parts['societe']);
326  foreach ($dirsociete as $dirroot) {
327  $res = dol_include_once($dirroot.$module.'.php');
328  if ($res) {
329  break;
330  }
331  }
332  $modCodeFournisseur = new $module;
333  if (empty($tmpcode) && !empty($modCodeFournisseur->code_auto)) {
334  $tmpcode = $modCodeFournisseur->getNextValue($thirdparty, 1);
335  }
336  $thirdparty->code_fournisseur = $tmpcode;
337 
338  $res = $thirdparty->update(0, $user, 1, 1, 1);
339 
340  if ($res <= 0) {
341  $error++;
342  }
343  }
344  }
345  }
346 
347  if (!$error) {
348  // We have the contact and the thirdparty
349  $conforbooth = new ConferenceOrBooth($db);
350  $conforbooth->label = $label;
351  $conforbooth->fk_soc = $thirdparty->id;
352  $conforbooth->fk_project = $project->id;
353  $conforbooth->note = $note;
354  $conforbooth->fk_action = $eventtype;
355  $conforbooth->datep =$datestart;
356  $conforbooth->datep2 = $dateend;
357  $conforbooth->datec = dol_now();
358  $conforbooth->tms = dol_now();
359  $conforbooth->firstname = $contact->firstname;
360  $conforbooth->lastname = $contact->lastname;
361  $resultconforbooth = $conforbooth->create($user);
362  if ($resultconforbooth<=0) {
363  $error++;
364  $errmsg .= $conforbooth->error;
365  } else {
366  // Adding the contact to the project
367  $resultaddcontact = $conforbooth->add_contact($contact->id, 'SPEAKER');
368  if ($resultaddcontact<0) {
369  $error++;
370  $errmsg .= $conforbooth->error;
371  } else {
372  $conforbooth->status = ConferenceOrBooth::STATUS_SUGGESTED;
373  $conforbooth->update($user);
374 
375  // Sending mail
376  require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
377  include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
378  $formmail = new FormMail($db);
379  // Set output language
380  $outputlangs = new Translate('', $conf);
381  $outputlangs->setDefaultLang(empty($thirdparty->default_lang) ? $mysoc->default_lang : $thirdparty->default_lang);
382  // Load traductions files required by page
383  $outputlangs->loadLangs(array("main", "members"));
384  // Get email content from template
385  $arraydefaultmessage = null;
386 
387  $labeltouse = $conf->global->EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF;
388  if (!empty($labeltouse)) {
389  $arraydefaultmessage = $formmail->getEMailTemplate($db, 'conferenceorbooth', $user, $outputlangs, $labeltouse, 1, '');
390  }
391 
392  if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) {
393  $subject = $arraydefaultmessage->topic;
394  $msg = $arraydefaultmessage->content;
395  }
396 
397  $substitutionarray = getCommonSubstitutionArray($outputlangs, 0, null, $thirdparty);
398  complete_substitutions_array($substitutionarray, $outputlangs, $object);
399 
400  $subjecttosend = make_substitutions($subject, $substitutionarray, $outputlangs);
401  $texttosend = make_substitutions($msg, $substitutionarray, $outputlangs);
402 
403  $sendto = $thirdparty->email;
404  $from = $conf->global->MAILING_EMAIL_FROM;
405  $urlback = $_SERVER["REQUEST_URI"];
406 
407  $ishtml = dol_textishtml($texttosend); // May contain urls
408 
409  $mailfile = new CMailFile($subjecttosend, $sendto, $from, $texttosend, array(), array(), array(), '', '', 0, $ishtml);
410 
411  $result = $mailfile->sendfile();
412  if ($result) {
413  dol_syslog("EMail sent to ".$sendto, LOG_DEBUG, 0, '_payment');
414  } else {
415  dol_syslog("Failed to send EMail to ".$sendto, LOG_ERR, 0, '_payment');
416  }
417  }
418  }
419  }
420  }
421  if (!$error) {
422  $db->commit();
423  $securekeyurl = dol_hash($conf->global->EVENTORGANIZATION_SECUREKEY.'conferenceorbooth'.$id, 2);
424  $redirection = $dolibarr_main_url_root.'/public/eventorganization/subscriptionok.php?id='.$id.'&securekey='.$securekeyurl;
425  Header("Location: ".$redirection);
426  exit;
427  } else {
428  $db->rollback();
429  }
430 }
431 
432 
433 /*
434  * View
435  */
436 
437 $form = new Form($db);
438 $formcompany = new FormCompany($db);
439 
440 llxHeaderVierge($langs->trans("NewSuggestionOfConference"));
441 
442 print '<br>';
443 
444 // Event summary
445 print '<div class="center">';
446 print '<span class="large">'.$project->title.'</span><br>';
447 print img_picto('', 'calendar', 'class="pictofixedwidth"').$langs->trans("Date").': ';
448 print dol_print_date($project->date_start, 'daytext');
449 if ($project->date_end && $project->date_start != $project->date_end) {
450  print ' - '.dol_print_date($project->date_end, 'daytext');
451 }
452 print '<br><br>'."\n";
453 //print $langs->trans("EvntOrgRegistrationWelcomeMessage")."\n";
454 //print $project->note_public."\n";
455 //print img_picto('', 'map-marker-alt').$langs->trans("Location").': xxxx';
456 print '</div>';
457 
458 
459 print load_fiche_titre($langs->trans("NewSuggestionOfConference"), '', '', 0, 0, 'center');
460 
461 
462 print '<div align="center">';
463 print '<div id="divsubscribe">';
464 print '<div class="center subscriptionformhelptext justify">';
465 
466 dol_htmloutput_errors($errmsg, $errors);
467 
468 // Print form
469 print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST" name="newmember">'."\n";
470 print '<input type="hidden" name="token" value="'.newToken().'" / >';
471 print '<input type="hidden" name="entity" value="'.$entity.'" />';
472 print '<input type="hidden" name="action" value="add" />';
473 print '<input type="hidden" name="id" value="'.$id.'" />';
474 print '<input type="hidden" name="securekey" value="'.$securekeyreceived.'" />';
475 
476 print '<br>';
477 
478 print '<br><span class="opacitymedium">'.$langs->trans("FieldsWithAreMandatory", '*').'</span><br>';
479 //print $langs->trans("FieldsWithIsForPublic",'**').'<br>';
480 
481 print dol_get_fiche_head('');
482 
483 print '<script type="text/javascript">
484 jQuery(document).ready(function () {
485  jQuery(document).ready(function () {
486  jQuery("#selectcountry_id").change(function() {
487  document.newmember.action.value="create";
488  document.newmember.submit();
489  });
490  });
491 });
492 </script>';
493 
494 print '<table class="border" summary="form to subscribe" id="tablesubscribe">'."\n";
495 
496 // Last Name
497 print '<tr><td><label for="lastname">'.$langs->trans("Lastname").'<span style="color: red">*</span></label></td>';
498 print '<td colspan="3"><input name="lastname" id="lastname" type="text" class="maxwidth100onsmartphone" maxlength="80" value="'.dol_escape_htmltag(GETPOST("lastname", 'alpha') ?GETPOST("lastname", 'alpha') : $object->lastname).'" autofocus="autofocus"></td>';
499 print '</tr>';
500 // First Name
501 print '<tr><td><label for="firstname">'.$langs->trans("Firstname").'<span style="color: red">*</span></label></td>';
502 print '<td colspan="3"><input name="firstname" id="firstname" type="text" class="maxwidth100onsmartphone" maxlength="80" value="'.dol_escape_htmltag(GETPOST("firstname", 'alpha') ?GETPOST("firstname", 'alpha') : $object->firstname).'" autofocus="autofocus"></td>';
503 print '</tr>';
504 // Email
505 print '<tr><td>'.$langs->trans("Email").'<span style="color: red">*</span></td><td><input type="text" name="email" maxlength="255" class="minwidth150" value="'.dol_escape_htmltag(GETPOST('email')).'"></td></tr>'."\n";
506 // Company
507 print '<tr id="trcompany" class="trcompany"><td>'.$langs->trans("Company").'<span style="color: red">*</span>';
508 print ' </td><td><input type="text" name="societe" class="minwidth150" value="'.dol_escape_htmltag(GETPOST('societe')).'"></td></tr>'."\n";
509 // Address
510 print '<tr><td>'.$langs->trans("Address").'</td><td>'."\n";
511 print '<textarea name="address" id="address" wrap="soft" class="quatrevingtpercent" rows="'.ROWS_3.'">'.dol_escape_htmltag(GETPOST('address', 'restricthtml'), 0, 1).'</textarea></td></tr>'."\n";
512 // Zip / Town
513 print '<tr><td>'.$langs->trans('Zip').' / '.$langs->trans('Town').'</td><td>';
514 print $formcompany->select_ziptown(GETPOST('zipcode'), 'zipcode', array('town', 'selectcountry_id', 'state_id'), 6, 1);
515 print ' / ';
516 print $formcompany->select_ziptown(GETPOST('town'), 'town', array('zipcode', 'selectcountry_id', 'state_id'), 0, 1);
517 print '</td></tr>';
518 // Country
519 print '<tr><td>'.$langs->trans('Country').'</td><td>';
520 $country_id = GETPOST('country_id');
521 if (!$country_id && !empty($conf->global->MEMBER_NEWFORM_FORCECOUNTRYCODE)) {
522  $country_id = getCountry($conf->global->MEMBER_NEWFORM_FORCECOUNTRYCODE, 2, $db, $langs);
523 }
524 if (!$country_id && !empty($conf->geoipmaxmind->enabled)) {
525  $country_code = dol_user_country();
526  //print $country_code;
527  if ($country_code) {
528  $new_country_id = getCountry($country_code, 3, $db, $langs);
529  //print 'xxx'.$country_code.' - '.$new_country_id;
530  if ($new_country_id) {
531  $country_id = $new_country_id;
532  }
533  }
534 }
535 $country_code = getCountry($country_id, 2, $db, $langs);
536 print $form->select_country($country_id, 'country_id');
537 print '</td></tr>';
538 // State
539 if (empty($conf->global->SOCIETE_DISABLE_STATE)) {
540  print '<tr><td>'.$langs->trans('State').'</td><td>';
541  if ($country_code) {
542  print $formcompany->select_state(GETPOST("state_id"), $country_code);
543  } else {
544  print '';
545  }
546  print '</td></tr>';
547 }
548 // Type of event
549 print '<tr><td>'.$langs->trans("Format").'<span style="color: red">*</span></td>'."\n";
550 print '<td>'.Form::selectarray('eventtype', $arrayofconfboothtype, $eventtype, 1).'</td>';
551 // Label
552 print '<tr><td>'.$langs->trans("LabelOfconference").'<span style="color: red">*</span></td>'."\n";
553 print '</td><td><input type="text" name="label" class="minwidth150" value="'.dol_escape_htmltag(GETPOST('label')).'"></td></tr>'."\n";
554 // Note
555 print '<tr><td>'.$langs->trans("Description").'<span style="color: red">*</span></td>'."\n";
556 print '<td><textarea name="note" id="note" wrap="soft" class="quatrevingtpercent" rows="'.ROWS_3.'">'.dol_escape_htmltag(GETPOST('note', 'restricthtml'), 0, 1).'</textarea></td></tr>'."\n";
557 
558 print "</table>\n";
559 
560 print dol_get_fiche_end();
561 
562 
563 // Show all action buttons
564 print '<div class="center">';
565 print '<br>';
566 print '<input type="submit" value="'.$langs->trans("SuggestConference").'" name="suggestconference" id="suggestconference" class="button">';
567 print '<br><br>';
568 
569 
570 
571 
572 print "</form>\n";
573 print "<br>";
574 print '</div></div>';
575 
576 
578 
579 $db->close();
make_substitutions
make_substitutions($text, $substitutionarray, $outputlangs=null, $converttextinhtmlifnecessary=0)
Make substitution into a text string, replacing keys with vals from $substitutionarray (oldval=>newva...
Definition: functions.lib.php:7839
Societe
Class to manage third parties objects (customers, suppliers, prospects...)
Definition: societe.class.php:48
dol_escape_htmltag
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $noescapetags='', $escapeonlyhtmltags=0)
Returns text escaped for inclusion in HTML alt or title tags, or into values of HTML input fields.
Definition: functions.lib.php:1468
Project
Class to manage projects.
Definition: project.class.php:35
dol_htmloutput_errors
dol_htmloutput_errors($mesgstring='', $mesgarray=array(), $keepembedded=0)
Print formated error messages to output (Used to show messages on html output).
Definition: functions.lib.php:8367
load_fiche_titre
load_fiche_titre($titre, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
Definition: functions.lib.php:5204
GETPOST
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
Definition: functions.lib.php:484
dol_include_once
if(!function_exists('dol_getprefix')) dol_include_once($relpath, $classname='')
Make an include_once using default root and alternate root if it fails.
Definition: functions.lib.php:1033
Translate
Class to manage translations.
Definition: translate.class.php:30
top_htmlhead
top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='', $disableforlogin=0, $disablenofollow=0, $disablenoindex=0)
Ouput html header of a page.
Definition: main.inc.php:1482
CMailFile
Class to send emails (with attachments or not) Usage: $mailfile = new CMailFile($subject,...
Definition: CMailFile.class.php:38
$form
if($cancel &&! $id) if($action=='add' &&! $cancel) if($action=='delete') if($id) $form
Actions.
Definition: card.php:142
Categorie
Class to manage categories.
Definition: categorie.class.php:47
printCommonFooter
printCommonFooter($zone='private')
Print common footer : conf->global->MAIN_HTML_FOOTER js for switch of menu hider js for conf->global-...
Definition: functions.lib.php:9150
dol_print_date
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs='', $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
Definition: functions.lib.php:2514
FormCompany
Class to build HTML component for third parties management Only common components are here.
Definition: html.formcompany.class.php:40
img_picto
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=false, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
Definition: functions.lib.php:3880
dol_user_country
dol_user_country()
Return country code for current user.
Definition: functions.lib.php:3584
dol_hash
dol_hash($chain, $type='0')
Returns a hash of a string.
Definition: security.lib.php:104
llxFooterVierge
llxFooterVierge()
Show footer for new member.
Definition: suggestconference.php:174
CActionComm
Class to manage different types of events.
Definition: cactioncomm.class.php:29
isValidEmail
isValidEmail($address, $acceptsupervisorkey=0, $acceptuserkey=0)
Return true if email syntax is ok.
Definition: functions.lib.php:3681
getCommonSubstitutionArray
getCommonSubstitutionArray($outputlangs, $onlykey=0, $exclude=null, $object=null)
Return array of possible common substitutions.
Definition: functions.lib.php:7275
dol_syslog
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.
Definition: functions.lib.php:1603
Contact
Class to manage contact/addresses.
Definition: contact.class.php:40
ConferenceOrBooth
Class for ConferenceOrBooth.
Definition: conferenceorbooth.class.php:33
dol_get_fiche_head
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='')
Show tabs of a record.
Definition: functions.lib.php:1822
dol_strlen
dol_strlen($string, $stringencoding='UTF-8')
Make a strlen call.
Definition: functions.lib.php:3747
dol_get_fiche_end
dol_get_fiche_end($notab=0)
Return tab footer of a card.
Definition: functions.lib.php:2018
ExtraFields
Class to manage standard extra fields.
Definition: extrafields.class.php:39
Form
Class to manage generation of HTML components Only common components must be here.
Definition: html.form.class.php:52
dol_now
dol_now($mode='auto')
Return date for now.
Definition: functions.lib.php:2845
getCountry
getCountry($searchkey, $withcode='', $dbtouse=0, $outputlangs='', $entconv=1, $searchlabel='')
Return country label, code or id from an id, code or label.
Definition: company.lib.php:489
setEventMessages
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='')
Set event messages in dol_events session object.
Definition: functions.lib.php:8137
dol_textishtml
dol_textishtml($msg, $option=0)
Return if a text is a html content.
Definition: functions.lib.php:7185
accessforbidden
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 ...
Definition: security.lib.php:933
FormMail
Classe permettant la generation du formulaire html d'envoi de mail unitaire Usage: $formail = new For...
Definition: html.formmail.class.php:38
llxHeaderVierge
if(empty($conf->eventorganization->enabled)) llxHeaderVierge($title, $head="", $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='')
Show header for new member.
Definition: suggestconference.php:124
complete_substitutions_array
complete_substitutions_array(&$substitutionarray, $outputlangs, $object=null, $parameters=null, $callfunc="completesubstitutionarray")
Complete the $substitutionarray with more entries coming from external module that had set the "subst...
Definition: functions.lib.php:7961