dolibarr 21.0.0-beta
new.php
Go to the documentation of this file.
1<?php
2/* Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
3 * Copyright (C) 2001-2002 Jean-Louis Bergamo <jlb@j1b.org>
4 * Copyright (C) 2006-2013 Laurent Destailleur <eldy@users.sourceforge.net>
5 * Copyright (C) 2012 Regis Houssin <regis.houssin@inodbox.com>
6 * Copyright (C) 2012 J. Fernando Lagrange <fernando@demo-tic.org>
7 * Copyright (C) 2018-2024 Frédéric France <frederic.france@free.fr>
8 * Copyright (C) 2018 Alexandre Spangaro <aspangaro@open-dsi.fr>
9 * Copyright (C) 2021 Waël Almoman <info@almoman.com>
10 * Copyright (C) 2022 Udo Tamm <dev@dolibit.de>
11 * Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
12 *
13 * This program is free software; you can redistribute it and/or modify
14 * it under the terms of the GNU General Public License as published by
15 * the Free Software Foundation; either version 3 of the License, or
16 * (at your option) any later version.
17 *
18 * This program is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details.
22 *
23 * You should have received a copy of the GNU General Public License
24 * along with this program. If not, see <https://www.gnu.org/licenses/>.
25 */
26
34if (!defined('NOLOGIN')) {
35 define("NOLOGIN", 1); // This means this output page does not require to be logged.
36}
37if (!defined('NOCSRFCHECK')) {
38 define("NOCSRFCHECK", 1); // We accept to go on this page from external web site.
39}
40if (!defined('NOBROWSERNOTIF')) {
41 define('NOBROWSERNOTIF', '1');
42}
43
44
45// For MultiCompany module.
46// Do not use GETPOST here, function is not defined and define must be done before including main.inc.php
47// Because 2 entities can have the same ref
48$entity = (!empty($_GET['entity']) ? (int) $_GET['entity'] : (!empty($_POST['entity']) ? (int) $_POST['entity'] : 1));
49// if (is_numeric($entity)) { // value is casted to int so always numeric
50define("DOLENTITY", $entity);
51// }
52
53
54// Load Dolibarr environment
55require '../../main.inc.php';
56require_once DOL_DOCUMENT_ROOT . '/core/lib/company.lib.php';
57require_once DOL_DOCUMENT_ROOT . '/core/lib/payments.lib.php';
58require_once DOL_DOCUMENT_ROOT . '/adherents/class/adherent.class.php';
59require_once DOL_DOCUMENT_ROOT . '/adherents/class/adherent_type.class.php';
60require_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php';
61require_once DOL_DOCUMENT_ROOT . '/core/class/html.formcompany.class.php';
62require_once DOL_DOCUMENT_ROOT . '/core/class/cunits.class.php';
63require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php';
64require_once DOL_DOCUMENT_ROOT . '/core/class/html.formadmin.class.php';
65require_once DOL_DOCUMENT_ROOT . '/core/lib/public.lib.php';
66
74// Init vars
75$backtopage = GETPOST('backtopage', 'alpha');
76$action = GETPOST('action', 'aZ09');
77
78$errmsg = '';
79$num = 0;
80$error = 0;
81
82// Load translation files
83$langs->loadLangs(array("main", "members", "companies", "install", "other", "errors"));
84
85// Security check
86if (!isModEnabled('societe')) {
87 httponly_accessforbidden('Module Thirdparty not enabled');
88}
89
90if (!getDolGlobalString('SOCIETE_ENABLE_PUBLIC')) {
91 httponly_accessforbidden("Online form for contact for public visitors has not been enabled");
92}
93
94
95// permissions
96
97$permissiontoadd = $user->hasRight('societe', 'creer');
98
99// Initialize a technical object to manage hooks of page. Note that conf->hooks_modules contains an array of hook context
100$hookmanager->initHooks(array('publicnewmembercard', 'globalcard'));
101
102$extrafields = new ExtraFields($db);
103
104$objectsoc = new Societe($db);
105$user->loadDefaultValues();
106
107$extrafields->fetch_name_optionals_label($objectsoc->table_element); // fetch optionals attributes and labels
108
109
121function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = [])
122{
123 global $conf, $langs, $mysoc;
124
125 top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss); // Show html headers
126
127 print '<body id="mainbody" class="publicnewmemberform">';
128
129 // Define urllogo
130 $urllogo = DOL_URL_ROOT . '/theme/common/login_logo.png';
131
132 if (!empty($mysoc->logo_small) && is_readable($conf->mycompany->dir_output . '/logos/thumbs/' . $mysoc->logo_small)) {
133 $urllogo = DOL_URL_ROOT . '/viewimage.php?cache=1&amp;modulepart=mycompany&amp;file=' . urlencode('logos/thumbs/' . $mysoc->logo_small);
134 } elseif (!empty($mysoc->logo) && is_readable($conf->mycompany->dir_output . '/logos/' . $mysoc->logo)) {
135 $urllogo = DOL_URL_ROOT . '/viewimage.php?cache=1&amp;modulepart=mycompany&amp;file=' . urlencode('logos/' . $mysoc->logo);
136 } elseif (is_readable(DOL_DOCUMENT_ROOT . '/theme/dolibarr_logo.svg')) {
137 $urllogo = DOL_URL_ROOT . '/theme/dolibarr_logo.svg';
138 }
139
140 print '<header class="center">';
141
142 // Output html code for logo
143 // if ($urllogo) { // test always true
144 print '<div class="backgreypublicpayment">';
145 print '<div class="logopublicpayment">';
146 print '<img id="dolpaymentlogo" src="' . $urllogo . '">';
147 print '</div>';
148 if (!getDolGlobalString('MAIN_HIDE_POWERED_BY')) {
149 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>';
150 }
151 print '</div>';
152 // }
153
154 if (getDolGlobalString('MEMBER_IMAGE_PUBLIC_REGISTRATION')) {
155 print '<div class="backimagepublicregistration">';
156 print '<img id="idEVENTORGANIZATION_IMAGE_PUBLIC_INTERFACE" src="' . getDolGlobalString('MEMBER_IMAGE_PUBLIC_REGISTRATION') . '">';
157 print '</div>';
158 }
159
160 print '</header>';
161
162 print '<div class="divmainbodylarge">';
163}
164
171{
172 global $conf, $langs;
173
174 print '</div>';
175
176 printCommonFooter('public');
177
178 if (!empty($conf->use_javascript_ajax)) {
179 print "\n" . '<!-- Includes JS Footer of Dolibarr -->' . "\n";
180 print '<script src="' . DOL_URL_ROOT . '/core/js/lib_foot.js.php?lang=' . $langs->defaultlang . '"></script>' . "\n";
181 }
182
183 print "</body>\n";
184 print "</html>\n";
185}
186
187
188
189/*
190 * Actions
191 */
192
193$parameters = array();
194// Note that $action and $object may have been modified by some hooks
195$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action);
196if ($reshook < 0) {
197 setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
198}
199
200// Action called when page is submitted
201if (empty($reshook) && $action == 'add') { // Test on permission not required here. This is a public page. Security is done on constant and mitigation.
202 $error = 0;
203 $urlback = '';
204
205 $db->begin();
206
207 if (!GETPOST('name')) {
208 setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Company")), null, 'errors');
209 $error++;
210 }
211
212 // Check Captcha code if is enabled
213 if (getDolGlobalString('MAIN_SECURITY_ENABLECAPTCHA')) {
214 $sessionkey = 'dol_antispam_value';
215 $ok = (array_key_exists($sessionkey, $_SESSION) && (strtolower($_SESSION[$sessionkey]) == strtolower(GETPOST('code'))));
216 if (!$ok) {
217 $error++;
218 $errmsg .= $langs->trans("ErrorBadValueForCode") . "<br>\n";
219 $action = '';
220 }
221 }
222
223 if (!$error) {
224 $societe = new Societe($db);
225
226 $societe->name = GETPOST('name', 'alphanohtml');
227 $societe->client = GETPOSTINT('client') ? GETPOSTINT('client') : $societe->client;
228 $societe->address = GETPOST('address', 'alphanohtml');
229 $societe->country_id = GETPOSTINT('country_id');
230 $societe->phone = GETPOST('phone', 'alpha');
231 $societe->fax = GETPOST('fax', 'alpha');
232 $societe->email = trim(GETPOST('email', 'custom', 0, FILTER_SANITIZE_EMAIL));
233 $societe->client = 2 ; // our client is a prospect
234 $societe->code_client = '-1';
235 $societe->name_alias = GETPOST('name_alias', 'alphanohtml');
236 $societe->note_private = GETPOST('note_private', 'alphanohtml');
237
238 // Fill array 'array_options' with data from add form
239 /*
240 $extrafields->fetch_name_optionals_label($societe->table_element);
241 $ret = $extrafields->setOptionalsFromPost(null, $societe);
242 if ($ret < 0) {
243 $error++;
244 $errmsg .= $societe->error;
245 }
246 */
247
248 $nb_post_max = getDolGlobalInt("MAIN_SECURITY_MAX_POST_ON_PUBLIC_PAGES_BY_IP_ADDRESS", 200);
249
250 if (checkNbPostsForASpeceificIp($societe, $nb_post_max) <= 0) {
251 $error++;
252 $errmsg .= implode('<br>', $societe->errors);
253 }
254
255 if (!$error) {
256 $result = $societe->create($user);
257 if ($result > 0) {
258 require_once DOL_DOCUMENT_ROOT . '/core/class/CMailFile.class.php';
259 $objectsoc = $societe;
260
261 if (!empty($backtopage)) {
262 $urlback = $backtopage;
263 } elseif (getDolGlobalString('MEMBER_URL_REDIRECT_SUBSCRIPTION')) {
264 $urlback = getDolGlobalString('MEMBER_URL_REDIRECT_SUBSCRIPTION');
265 // TODO Make replacement of __AMOUNT__, etc...
266 } else {
267 $urlback = $_SERVER["PHP_SELF"] . "?action=added&token=" . newToken();
268 }
269 } else {
270 $error++;
271 $errmsg .= implode('<br>', $societe->errors);
272 }
273 }
274 }
275
276 if (!$error) {
277 $db->commit();
278
279 header("Location: " . $urlback);
280 exit;
281 } else {
282 $db->rollback();
283 $action = "create";
284 }
285}
286
287// Action called after a submitted was send and prospect created successfully
288// If MEMBER_URL_REDIRECT_SUBSCRIPTION is set to an url, we never go here because a redirect was done to this url. Same if we ask to redirect to the payment page.
289// backtopage parameter with an url was set on prospect submit page, we never go here because a redirect was done to this url.
290
291if (empty($reshook) && $action == 'added') { // Test on permission not required here
292 llxHeaderVierge("newSocieteAdded");
293
294 // If we have not been redirected
295 print '<br><br>';
296 print '<div class="center">';
297 print $langs->trans("newSocieteAdded");
298 print '</div>';
299
301 exit;
302}
303
304
305
306/*
307 * View
308 */
309
310$form = new Form($db);
311$formcompany = new FormCompany($db);
312$adht = new AdherentType($db);
313$formadmin = new FormAdmin($db);
314
315
316llxHeaderVierge($langs->trans("ContactUs"));
317
318print '<br>';
319print load_fiche_titre(img_picto('', 'member_nocolor', 'class="pictofixedwidth"') . ' &nbsp; ' . $langs->trans("ContactUs"), '', '', 0, '', 'center');
320
321
322print '<div align="center">';
323print '<div id="divsubscribe">';
324
325print '<div class="center subscriptionformhelptext opacitymedium justify">';
326if (getDolGlobalString('COMPANY_NEWFORM_TEXT')) {
327 print $langs->trans(getDolGlobalString('COMPANY_NEWFORM_TEXT')) . "<br>\n";
328} else {
329 print $langs->trans("ContactUsDesc", getDolGlobalString("MAIN_INFO_SOCIETE_MAIL")) . "<br>\n";
330}
331print '</div>';
332
333dol_htmloutput_errors($errmsg);
335
336// Print form
337print '<form action="' . $_SERVER["PHP_SELF"] . '" method="POST" name="newprospect">' . "\n";
338print '<input type="hidden" name="token" value="' . newToken() . '" / >';
339print '<input type="hidden" name="entity" value="' . $entity . '" />';
340print '<input type="hidden" name="action" value="add" />';
341print '<br>';
342
343$messagemandatory = '<span class="">' . $langs->trans("FieldsWithAreMandatory", '*') . '</span>';
344//print '<br><span class="opacitymedium">'.$langs->trans("FieldsWithAreMandatory", '*').'</span><br>';
345//print $langs->trans("FieldsWithIsForPublic",'**').'<br>';
346
347print dol_get_fiche_head();
348
349print '<script type="text/javascript">
350jQuery(document).ready(function () {
351 jQuery(document).ready(function () {
352 function initmorphy()
353 {
354 console.log("Call initmorphy");
355 if (jQuery("#morphy").val() == \'phy\') {
356 jQuery("#trcompany").hide();
357 }
358 if (jQuery("#morphy").val() == \'mor\') {
359 jQuery("#trcompany").show();
360 }
361 }
362 initmorphy();
363 jQuery("#morphy").change(function() {
364 initmorphy();
365 });
366 jQuery("#selectcountry_id").change(function() {
367 document.newprospect.action.value="create";
368 document.newprospect.submit();
369 });
370 jQuery("#typeid").change(function() {
371 document.newprospect.action.value="create";
372 document.newprospect.submit();
373 });
374 });
375});
376</script>';
377
378
379print '<table class="border" summary="form to subscribe" id="tablesubscribe">' . "\n";
380//Third party name
381/*
382if ($objectsoc->particulier || $private) {
383 print '<span id="TypeName" class="fieldrequired">'.$langs->trans('ThirdPartyName').' / '.$langs->trans('LastName', 'name').'</span>';
384} else {
385 print '<span id="TypeName" class="fieldrequired">'.$form->editfieldkey('ThirdPartyName', 'name', '', $objectsoc, 0).'</span>';
386}
387*/
388print '<tr class="tr-field-thirdparty-name"><td class="titlefieldcreate">'; // text appreas left
389print '<input type="hidden" name="ThirdPartyName" value="' . $langs->trans('ThirdPartyName') . '">';
390print '<span id="TypeName" class="fieldrequired" title="' .dol_escape_htmltag($langs->trans("FieldsWithAreMandatory", '*')) . '" >' . $form->editfieldkey('Company', 'name', '', $objectsoc, 0) . '<span class="star"> *</span></span>';
391print '</td><td>'; // inline input
392print '<input type="text" class="minwidth300" maxlength="128" name="name" id="name" value="' . dol_escape_htmltag($objectsoc->name) . '" autofocus="autofocus">';
393//
394
395// Name and lastname
396print '<tr><td class="classfortooltip" title="' . dol_escape_htmltag($messagemandatory) . '">' . $langs->trans("Firstname") . ' <span class="star">*</span></td><td><input type="text" name="firstname" class="minwidth150" value="' . dol_escape_htmltag(GETPOST('firstname')) . '"></td></tr>' . "\n";
397
398print '<tr><td class="classfortooltip" title="' . dol_escape_htmltag($messagemandatory) . '">' . $langs->trans("Lastname") . ' <span class="star">*</span></td><td><input type="text" name="lastname" class="minwidth150" value="' . dol_escape_htmltag(GETPOST('lastname')) . '"></td></tr>' . "\n";
399
400// Address
401print '<tr><td class="tdtop">';
402print $form->editfieldkey('Address', 'address', '', $objectsoc, 0);
403print '</td>';
404print '<td>';
405print '<textarea name="address" id="address" class="quatrevingtpercent" rows="' . ROWS_2 . '" wrap="soft">';
406print dol_escape_htmltag($objectsoc->address, 0, 1);
407print '</textarea>';
408print $form->widgetForTranslation("address", $objectsoc, $permissiontoadd, 'textarea', 'alphanohtml', 'quatrevingtpercent');
409print '</td></tr>';
410
411// Country
412print '<tr><td>' . $form->editfieldkey('Country', 'selectcountry_id', '', $objectsoc, 0) . '</td><td class="maxwidthonsmartphone">';
413print img_picto('', 'country', 'class="pictofixedwidth"');
414print $form->select_country((GETPOSTISSET('country_id') ? GETPOST('country_id') : $objectsoc->country_id), 'country_id', '', 0, 'minwidth300 maxwidth500 widthcentpercentminusx');
415if ($user->admin) {
416 print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1);
417}
418print '</td></tr>';
419
420// Phone / Fax
421print '<tr><td>' . $form->editfieldkey('Phone', 'phone', '', $objectsoc, 0) . '</td>';
422print '<td>' . img_picto('', 'object_phoning', 'class="pictofixedwidth"') . ' <input type="text" name="phone" id="phone" class="maxwidth200 widthcentpercentminusx" value="' . (GETPOSTISSET('phone') ? GETPOST('phone', 'alpha') : $objectsoc->phone) . '"></td>';
423print '</tr>';
424
425print '<tr>';
426print '<td>' . $form->editfieldkey('Fax', 'fax', '', $objectsoc, 0) . '</td>';
427print '<td>' . img_picto('', 'object_phoning_fax', 'class="pictofixedwidth"') . ' <input type="text" name="fax" id="fax" class="maxwidth200 widthcentpercentminusx" value="' . (GETPOSTISSET('fax') ? GETPOST('fax', 'alpha') : $objectsoc->fax) . '"></td>';
428print '</tr>';
429
430// Email / Web
431print '<tr><td>' . $form->editfieldkey('EMail', 'email', '', $objectsoc, 0, 'string', '', !getDolGlobalString('SOCIETE_EMAIL_MANDATORY') ? '' : $conf->global->SOCIETE_EMAIL_MANDATORY) . '</td>';
432print '<td>' . img_picto('', 'object_email', 'class="pictofixedwidth"') . ' <input type="text" class="maxwidth200 widthcentpercentminusx" name="email" id="email" value="' . $objectsoc->email . '"></td>';
433if (isModEnabled('mailing') && getDolGlobalString('THIRDPARTY_SUGGEST_ALSO_ADDRESS_CREATION')) {
434 if ($conf->browser->layout == 'phone') {
435 print '</tr><tr>';
436 }
437 print '<td class="individualline noemail">' . $form->editfieldkey($langs->trans('No_Email') . ' (' . $langs->trans('Contact') . ')', 'contact_no_email', '', $objectsoc, 0) . '</td>';
438 print '<td class="individualline" ' . (($conf->browser->layout == 'phone') /* || !isModEnabled('mailing') */ ? ' colspan="3"' : '') . '>' . $form->selectyesno('contact_no_email', (GETPOSTISSET("contact_no_email") ? GETPOST("contact_no_email", 'alpha') : (empty($objectsoc->no_email) ? 0 : 1)), 1, false, 1) . '</td>';
439}
440print '</tr>';
441
442print '<tr><td>' . $form->editfieldkey('Web', 'url', '', $objectsoc, 0) . '</td>';
443print '<td>' . img_picto('', 'globe', 'class="pictofixedwidth"') . ' <input type="text" class="maxwidth500 widthcentpercentminusx" name="url" id="url" value="' . $objectsoc->url . '"></td></tr>';
444
445
446// Comments
447print '<tr>';
448print '<td class="tdtop">' . $langs->trans("Comments") . '</td>';
449print '<td class="tdtop"><textarea name="note_private" id="note_private" wrap="soft" class="quatrevingtpercent" rows="' . ROWS_3 . '">' . dol_escape_htmltag(GETPOST('note_private', 'restricthtml'), 0, 1) . '</textarea></td>';
450print '</tr>' . "\n";
451
452
453// Other attributes
454$parameters['tpl_context'] = 'public'; // define template context to public
455include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_add.tpl.php';
456
457
458// TODO Move this into generic feature.
459
460// Display Captcha code if is enabled
461if (getDolGlobalString('MAIN_SECURITY_ENABLECAPTCHA')) {
462 require_once DOL_DOCUMENT_ROOT . '/core/lib/security2.lib.php';
463 print '<tr><td class="titlefield"><label for="email"><span class="fieldrequired">' . $langs->trans("SecurityCode") . '</span></label></td><td>';
464 print '<span class="span-icon-security inline-block">';
465 print '<input id="securitycode" placeholder="' . $langs->trans("SecurityCode") . '" class="flat input-icon-security width150" type="text" maxlength="5" name="code" tabindex="3" />';
466 print '</span>';
467 print '<span class="nowrap inline-block">';
468 print '<img class="inline-block valignmiddle" src="' . DOL_URL_ROOT . '/core/antispamimage.php" border="0" width="80" height="32" id="img_securitycode" />';
469 print '<a class="inline-block valignmiddle" href="' . $_SERVER['PHP_SELF'] . '" tabindex="4" data-role="button">' . img_picto($langs->trans("Refresh"), 'refresh', 'id="captcha_refresh_img"') . '</a>';
470 print '</span>';
471 print '</td></tr>';
472}
473
474print "</table>\n";
475
476print dol_get_fiche_end();
477
478// Save / Submit
479print '<div class="center">';
480print '<input type="submit" value="' . $langs->trans("Send") . '" id="submitsave" class="button">';
481if (!empty($backtopage)) {
482 print ' &nbsp; &nbsp; <input type="submit" value="' . $langs->trans("Cancel") . '" id="submitcancel" class="button button-cancel">';
483}
484print '</div>';
485
486
487print "</form>\n";
488print "<br>";
489print '</div></div>';
490
491
492
494
495$db->close();
if( $user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $object
Definition card.php:66
Class to manage members type.
Class to manage standard extra fields.
Class to generate html code for admin pages.
Class to build HTML component for third parties management Only common components are here.
Class to manage generation of HTML components Only common components must be here.
Class to manage third parties objects (customers, suppliers, prospects...)
llxHeaderVierge($title, $head="", $disablejs=0, $disablehead=0, $arrayofjs=[], $arrayofcss=[])
Show header for new prospect.
Definition new.php:121
llxFooterVierge()
Show footer for new societe.
Definition new.php:170
load_fiche_titre($title, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0, $attop=0)
Set event messages in dol_events session object.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
GETPOSTINT($paramname, $method=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='', $dragdropfile=0)
Show tabs of a record.
dol_get_fiche_end($notab=0)
Return tab footer of a card.
printCommonFooter($zone='private')
Print common footer : conf->global->MAIN_HTML_FOOTER js for switch of menu hider js for conf->global-...
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
newToken()
Return the value of token currently saved into session with name 'newtoken'.
dol_htmloutput_events($disabledoutputofmessages=0)
Print formatted messages to output (Used to show messages on html output).
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
info_admin($text, $infoonimgalt=0, $nodiv=0, $admin='1', $morecss='hideonsmartphone', $textfordropdown='', $picto='')
Show information in HTML for admin users or standard users.
dol_htmloutput_errors($mesgstring='', $mesgarray=array(), $keepembedded=0)
Print formatted error messages to output (Used to show messages on html output).
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $noescapetags='', $escapeonlyhtmltags=0, $cleanalsojavascript=0)
Returns text escaped for inclusion in HTML alt or title or value tags, or into values of HTML input f...
top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs=array(), $arrayofcss=array(), $disableforlogin=0, $disablenofollow=0, $disablenoindex=0)
Output html header of a page.
global $conf
The following vars must be defined: $type2label $form $conf, $lang, The following vars may also be de...
Definition member.php:79
checkNbPostsForASpeceificIp($object, $nb_post_max)
Check if the object exceeded the number of posts for a specific ip in the same week.
httponly_accessforbidden($message='1', $http_response_code=403, $stringalreadysanitized=0)
Show a message to say access is forbidden and stop program.