dolibarr  16.0.1
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();
Class to manage different types of events.
if(!function_exists('dol_getprefix')) dol_include_once($relpath, $classname= '')
Make an include_once using default root and alternate root if it fails.
GETPOST($paramname, $check= 'alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
dol_hash($chain, $type= '0')
Returns a hash of a string.
Classe permettant la generation du formulaire html d&#39;envoi de mail unitaire Usage: $formail = new For...
if($cancel &&!$id) if($action== 'add'&&!$cancel) if($action== 'delete') if($id) $form
Actions.
Definition: card.php:142
Class to manage contact/addresses.
printCommonFooter($zone= 'private')
Print common footer : conf-&gt;global-&gt;MAIN_HTML_FOOTER js for switch of menu hider js for conf-&gt;global-...
dol_now($mode= 'auto')
Return date for now.
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...
isValidEmail($address, $acceptsupervisorkey=0, $acceptuserkey=0)
Return true if email syntax is ok.
getCommonSubstitutionArray($outputlangs, $onlykey=0, $exclude=null, $object=null)
Return array of possible common substitutions.
Class to build HTML component for third parties management Only common components are here...
Class to manage standard extra fields.
setEventMessages($mesg, $mesgs, $style= 'mesgs', $messagekey= '')
Set event messages in dol_events session object.
Class to manage generation of HTML components Only common components must be here.
Class to manage third parties objects (customers, suppliers, prospects...)
Class to manage categories.
Class to manage projects.
load_fiche_titre($titre, $morehtmlright= '', $picto= 'generic', $pictoisfullpath=0, $id= '', $morecssontable= '', $morehtmlcenter= '')
Load a title with picto.
dol_strlen($string, $stringencoding= 'UTF-8')
Make a strlen call.
Class to send emails (with attachments or not) Usage: $mailfile = new CMailFile($subject,$sendto,$replyto,$message,$filepath,$mimetype,$filename,$cc,$ccc,$deliveryreceipt,$msgishtml,$errors_to,$css,$trackid,$moreinheader,$sendcontext,$replyto); $mailfile-&gt;sendfile();.
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)
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename= '', $restricttologhandler= '', $logcontext=null)
Write log message into outputs.
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 ...
Class to manage translations.
dol_user_country()
Return country code for current user.
if(!defined('NOTOKENRENEWAL')) if(!defined('NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined('NOREQUIREAJAX')) if(!defined('NOLOGIN')) if(!defined('NOCSRFCHECK')) if(!defined('NOIPCHECK')) llxHeaderVierge()
Header function.
dol_get_fiche_head($links=array(), $active= '', $title= '', $notab=0, $picto= '', $pictoisfullpath=0, $morehtmlright= '', $morecss= '', $limittoshow=0, $moretabssuffix= '')
Show tabs of a record.
dol_print_date($time, $format= '', $tzoutput= 'auto', $outputlangs= '', $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
llxFooterVierge()
Footer function.
Class for ConferenceOrBooth.
dol_get_fiche_end($notab=0)
Return tab footer of a card.
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:1478
make_substitutions($text, $substitutionarray, $outputlangs=null, $converttextinhtmlifnecessary=0)
Make substitution into a text string, replacing keys with vals from $substitutionarray (oldval=&gt;newva...
dol_htmloutput_errors($mesgstring= '', $mesgarray=array(), $keepembedded=0)
Print formated error messages to output (Used to show messages on html output).
getCountry($searchkey, $withcode= '', $dbtouse=0, $outputlangs= '', $entconv=1, $searchlabel= '')
Return country label, code or id from an id, code or label.
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 &quot;subst...
dol_textishtml($msg, $option=0)
Return if a text is a html content.