43 print
"Error, template page can't be called as URL";
48$langs->load(
"modulebuilder");
50$listofexamplesforlink =
'Societe:societe/class/societe.class.php<br>Contact:contact/class/contact.class.php<br>Product:product/class/product.class.php<br>Project:projet/class/project.class.php';
54<!-- BEGIN PHP TEMPLATE admin_extrafields_add.tpl.php -->
56 jQuery(document).ready(
function() {
57 function init_typeoffields(
type)
59 console.log(
"select a new type (add) = "+
type);
60 var size = jQuery(
"#size");
61 var computed_value = jQuery(
"#computed_value");
62 var ai_prompt = jQuery(
"#ai_prompt");
63 var langfile = jQuery(
"#langfile");
64 var default_value = jQuery(
"#default_value");
65 var unique = jQuery(
"#unique");
66 var required = jQuery(
"#required");
67 var alwayseditable = jQuery(
"#alwayseditable");
68 var list = jQuery(
"#list");
69 var totalizable = jQuery(
"#totalizable");
71 if ((
GETPOST(
'type',
'alpha') !=
"select") && (
GETPOST(
'type',
'alpha') !=
"sellist")) {
72 print
'jQuery("#value_choice").hide();';
75 if (
GETPOST(
'type',
'alpha') ==
"separate") {
76 print
"jQuery('#size, #default_value, #langfile').val('').prop('disabled', true);";
77 print
'jQuery("#value_choice").hide();';
83 jQuery(
"tr.extra_computed_value").show();
85 computed_value.val(
''); jQuery(
"tr.extra_computed_value").hide();
87 if (computed_value.val())
89 console.log(
"We enter a computed formula");
90 jQuery(
"#default_value").val(
'');
92 jQuery(
"#default_value, #unique, #required, #alwayseditable, #list").attr(
'disabled',
true);
93 jQuery(
"tr.extra_default_value, tr.extra_unique, tr.extra_required, tr.extra_alwayseditable, tr.extra_list").hide();
97 console.log(
"No computed formula");
98 jQuery(
"#default_value, #unique, #required, #alwayseditable, #list").attr(
'disabled',
false);
99 jQuery(
"tr.extra_default_value, tr.extra_unique, tr.extra_required, tr.extra_alwayseditable, tr.extra_list").show();
103 if (
type ==
'text' ||
type ==
'varchar' ||
type ==
'int' ||
type ==
'double' ||
type ==
'price' ||
type ==
'html') {
104 jQuery(
"tr.extra_ai_prompt").show();
106 jQuery(ai_prompt).val(
''); jQuery(
"tr.extra_ai_prompt").hide();
109 if (
type ==
'date') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'disabled'); jQuery(
"#value_choice").hide();jQuery(
"#helpchkbxlst").hide(); }
110 else if (
type ==
'datetime') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'disabled'); jQuery(
"#value_choice").hide(); jQuery(
"#helpchkbxlst").hide();}
111 else if (
type ==
'double') { size.val(
'24,8').removeAttr(
'disabled'); unique.removeAttr(
'disabled'); jQuery(
"#value_choice").hide(); jQuery(
"#helpchkbxlst").hide();}
112 else if (
type ==
'int') { size.val(
'10').removeAttr(
'disabled'); unique.removeAttr(
'disabled'); jQuery(
"#value_choice").hide(); jQuery(
"#helpchkbxlst").hide();}
113 else if (
type ==
'text') { size.val(
'2000').removeAttr(
'disabled'); unique.prop(
'disabled',
true).removeAttr(
'checked'); jQuery(
"#value_choice").hide();jQuery(
"#helpchkbxlst").hide(); }
114 else if (
type ==
'html') { size.val(
'2000').removeAttr(
'disabled'); unique.prop(
'disabled',
true).removeAttr(
'checked'); jQuery(
"#value_choice").hide();jQuery(
"#helpchkbxlst").hide(); }
115 else if (
type ==
'varchar') { size.val(
'255').removeAttr(
'disabled'); unique.removeAttr(
'disabled'); jQuery(
"#value_choice").hide();jQuery(
"#helpchkbxlst").hide(); }
116 else if (
type ==
'password') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'checked').prop(
'disabled',
true); required.val(
'').prop(
'disabled',
true); default_value.val(
'').prop(
'disabled',
true); jQuery(
"#value_choice").show(); jQuery(
".spanforparamtooltip").hide(); jQuery(
"#helppassword").show();}
117 else if (
type ==
'boolean') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'checked').prop(
'disabled',
true); jQuery(
"#value_choice").hide();jQuery(
"#helpchkbxlst").hide();}
118 else if (
type ==
'price') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'checked').prop(
'disabled',
true); jQuery(
"#value_choice").hide();jQuery(
"#helpchkbxlst").hide();}
119 else if (
type ==
'pricecy') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'checked').prop(
'disabled',
true); jQuery(
"#value_choice").hide();jQuery(
"#helpchkbxlst").hide();}
120 else if (
type ==
'select') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'checked').prop(
'disabled',
true); jQuery(
"#value_choice").show(); jQuery(
".spanforparamtooltip").hide(); jQuery(
"#helpselect").show();}
121 else if (
type ==
'sellist') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'checked').prop(
'disabled',
true); jQuery(
"#value_choice").show(); jQuery(
".spanforparamtooltip").hide(); jQuery(
"#helpsellist").show();}
122 else if (
type ==
'radio') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'checked').prop(
'disabled',
true); jQuery(
"#value_choice").show(); jQuery(
".spanforparamtooltip").hide(); jQuery(
"#helpselect").show();}
123 else if (
type ==
'checkbox') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'checked').prop(
'disabled',
true); jQuery(
"#value_choice").show(); jQuery(
".spanforparamtooltip").hide(); jQuery(
"#helpselect").show();}
124 else if (
type ==
'chkbxlst') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'checked').prop(
'disabled',
true); jQuery(
"#value_choice").show(); jQuery(
".spanforparamtooltip").hide(); jQuery(
"#helpchkbxlst").show();}
125 else if (
type ==
'link') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'disabled'); jQuery(
"#value_choice").show(); jQuery(
".spanforparamtooltip").hide(); jQuery(
"#helplink").show();}
126 else if (
type ==
'point') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'disabled'); jQuery(
"#value_choice").show(); jQuery(
".spanforparamtooltip").hide(); jQuery(
"#helplink").show();}
127 else if (
type ==
'linestrg') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'disabled'); jQuery(
"#value_choice").show(); jQuery(
".spanforparamtooltip").hide(); jQuery(
"#helplink").show();}
128 else if (
type ==
'polygon') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'disabled'); jQuery(
"#value_choice").show(); jQuery(
".spanforparamtooltip").hide(); jQuery(
"#helplink").show();}
129 else if (
type ==
'stars') { size.val(
'5').removeAttr(
'disabled'); unique.removeAttr(
'disabled'); jQuery(
"#value_choice").hide(); jQuery(
"#helpchkbxlst").hide();}
130 else if (
type ==
'separate') {
131 langfile.val(
'').prop(
'disabled',
true);size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'checked').prop(
'disabled',
true); required.val(
'').prop(
'disabled',
true);
132 jQuery(
"#value_choice").show();
133 jQuery(
".spanforparamtooltip").hide(); jQuery(
"#helpseparate").show();
136 size.val(
'').prop(
'disabled',
true);
137 unique.removeAttr(
'disabled');
140 if (
type ==
'separate' ||
type ==
'point' ||
type ==
'linestrg' ||
type ==
'polygon')
142 required.removeAttr(
'checked').prop(
'disabled',
true); alwayseditable.removeAttr(
'checked').prop(
'disabled',
true); list.removeAttr(
'checked').prop(
'disabled',
true);
143 jQuery(
'#size, #default_value, #langfile').val(
'').prop(
'disabled',
true);
144 jQuery(
'#list').val(3);
148 default_value.removeAttr(
'disabled');
149 langfile.removeAttr(
'disabled');required.removeAttr(
'disabled'); alwayseditable.removeAttr(
'disabled'); list.removeAttr(
'disabled');
152 init_typeoffields(
'<?php echo GETPOST('type', 'alpha
'); ?>');
153 jQuery(
"#type").change(
function() {
154 init_typeoffields($(
this).val());
158 jQuery(
"#computed_value").keyup(
function() {
159 init_typeoffields(jQuery(
'#type').val());
163 <?php
if (!
getDolGlobalInt(
'MAIN_EXTRAFIELDS_CODE_AUTOFILL_DISABLED')) : ?>
164 jQuery(
"#label").keyup(function() {
165 console.log(
"Update new field");
166 $(
"#attrname").val( $(
this).val().normalize(
'NFD').replace(/\s/g,
"_").replace(/[^a-zA-Z0-9_]/g,
'').toLowerCase() );
172<form action=
"<?php echo $_SERVER["PHP_SELF
"]; ?>" method=
"post">
173<input
type=
"hidden" name=
"token" value=
"<?php echo newToken(); ?>">
174<input
type=
"hidden" name=
"action" value=
"add">
178<
table summary=
"listofattributes" class=
"border centpercent">
180<tr><td
class=
"titlefieldcreate fieldrequired"><?php echo $langs->trans(
"LabelOrTranslationKey"); ?></td><td
class=
"valeur"><input
type=
"text" name=
"label" id=
"label" class=
"width200" value=
"<?php echo GETPOST('label', 'alpha'); ?>" autofocus></td></tr>
182<tr><td
class=
"fieldrequired"><?php echo $form->textwithpicto($langs->trans(
"AttributeCode"), $langs->trans(
"AttributeCodeHelp")); ?></td><td
class=
"valeur"><input
type=
"text" name=
"attrname" id=
"attrname" size=
"10" value=
"<?php echo GETPOST('attrname', 'alpha'); ?>" pattern=
"\w+"> <span
class=
"opacitymedium">(<?php echo $langs->trans(
"AlphaNumOnlyLowerCharsAndNoSpace"); ?>)</span></td></tr>
184<tr><td
class=
"fieldrequired"><?php echo $langs->trans(
"Type"); ?></td><td
class=
"valeur">
187if (empty($formadmin)) {
188 include_once DOL_DOCUMENT_ROOT.
'/core/class/html.formadmin.class.php';
191print $formadmin->selectTypeOfFields(
'type',
GETPOST(
'type',
'alpha'));
195<tr
class=
"extra_size"><td
class=
"fieldrequired"><?php echo $langs->trans(
"Size"); ?></td><td
class=
"valeur"><input
id=
"size" type=
"text" name=
"size" class=
"width50" value=
"<?php echo(GETPOST('size', 'alpha') ? GETPOST('size', 'alpha') : ''); ?>"></td></tr>
196<!-- Default Value (
for select list / radio/ checkbox) -->
197<tr
id=
"value_choice">
199 <?php echo $langs->trans(
"Value"); ?>
202 <
table class=
"nobordernopadding">
204 <textarea
name=
"param" id=
"param" cols=
"80" rows=
"<?php echo ROWS_4 ?>" spellcheck=
"false""><?php echo GETPOST('param', 'alpha'); ?></textarea>
206 <span id="helpselect
" class="spanforparamtooltip
"><?php print $form->textwithpicto('', $langs->trans("ExtrafieldParamHelpselect
"), 1, 'info', '', 0, 2, 'helpvalue1')?></span>
207 <span id="helpsellist
" class="spanforparamtooltip
"><?php print $form->textwithpicto('', $langs->trans("ExtrafieldParamHelpsellist
").'<br>'.$langs->trans("ExtrafieldParamHelpsellistb
").'<br>'.$langs->trans("ExtrafieldParamHelpsellistc
").'<br>'.$langs->trans("ExtrafieldParamHelpsellistd
").(getDolGlobalInt('MAIN_FEATUREES_LEVEL') > 0 ? '<br>'.$langs->trans("ExtrafieldParamHelpsellist2
") : ''), 1, 'info', '', 0, 2, 'helpvalue2')?></span>
208 <span id="helpchkbxlst
" class="spanforparamtooltip
"><?php print $form->textwithpicto('', $langs->trans("ExtrafieldParamHelpsellist
").'<br>'.$langs->trans("ExtrafieldParamHelpsellistb
").'<br>'.$langs->trans("ExtrafieldParamHelpsellistc
").'<br>'.$langs->trans("ExtrafieldParamHelpsellistd
").(getDolGlobalInt('MAIN_FEATUREES_LEVEL') > 0 ? '<br>'.$langs->trans("ExtrafieldParamHelpsellist2
") : ''), 1, 'info', '', 0, 2, 'helpvalue3')?></span>
209 <span id="helplink
" class="spanforparamtooltip
"><?php print $form->textwithpicto('', $langs->trans("ExtrafieldParamHelplink
").'<br><br>'.$langs->trans("Examples
").':<br>'.$listofexamplesforlink, 1, 'info', '', 0, 2, 'helpvalue4')?></span>
210 <span id="helppassword
" class="spanforparamtooltip
"><?php print $form->textwithpicto('', $langs->trans("ExtrafieldParamHelpPassword
"), 1, 'info', '', 0, 2, 'helpvalue5')?></span>
211 <span id="helpseparate
" class="spanforparamtooltip
"><?php print $form->textwithpicto('', $langs->trans("ExtrafieldParamHelpSeparator
"), 1, 'info', '', 0, 2, 'helpvalue6')?></span>
217<tr><td class="titlefield
"><?php echo $langs->trans("Position"); ?></td><td class="valeur"><input type="text
" name="pos
" class="width50
" value="<?php echo GETPOSTISSET(
'pos') ?
GETPOSTINT(
'pos') : 100; ?>
"></td></tr>
218<!-- Language file -->
219<tr><td class="titlefield
"><?php echo $langs->trans("LanguageFile
"); ?></td><td class="valeur"><input type="text
" id="langfile
" name="langfile
" class="minwidth200
" value="<?php echo
dol_escape_htmltag(
GETPOST(
'langfile',
'alpha')); ?>
"></td></tr>
220<!-- Computed Value -->
221<tr class="extra_computed_value
">
222<?php if (!getDolGlobalString('MAIN_STORE_COMPUTED_EXTRAFIELDS')) { ?>
223 <td><?php echo $form->textwithpicto($langs->trans("ComputedFormula
"), $langs->trans("ComputedFormulaDesc
"), 1, 'help', '', 0, 2, 'tooltipcompute'); ?></td>
225 <td><?php echo $form->textwithpicto($langs->trans("ComputedFormula
"), $langs->trans("ComputedFormulaDesc
")).$form->textwithpicto($langs->trans("Computedpersistent
"), $langs->trans("ComputedpersistentDesc
"), 1, 'warning'); ?></td>
227<td class="valeur"><textarea name="computed_value
" id="computed_value
" class="quatrevingtpercent
" rows="<?php echo ROWS_4 ?>
"><?php echo(GETPOSTISSET('computed_value') ? GETPOST('computed_value', 'restricthtml') : ''); ?></textarea></td>
230<tr class="extra_ai_prompt
">
232 if ($elementtype == "projet
") {
233 $elementtype = "project
";
235 $elementprop = getElementProperties($elementtype);
236 $object = fetchObjectByElement(0, $elementtype);
237 if ($elementprop["module
"] == "adherent
") {
238 $elementprop["module
"] = "member
";
240 if ($elementprop["module
"] == "projet
") {
241 $elementprop["module
"] = "project
";
243 if ($elementprop["module
"] == "contrat
") {
244 $elementprop["module
"] = "contract
";
245 $object->element = "contract
";
247 if ($elementprop["module
"] == "ficheinter
") {
248 $elementprop["module
"] = "intervention
";
250 $substitutionarray = getCommonSubstitutionArray($langs, 1, null, $object, array("object", $elementprop["module
"]));
251 $texthelp = $langs->trans("FollowingConstantsWillBeSubstituted
").'<br>';
252 foreach ($substitutionarray as $key => $val) {
253 $texthelp .= $key.' -> '.$val.'<br>';
255 echo $form->textwithpicto($langs->trans("AIPromptExtrafield
"), $texthelp, 1, 'help', 'valignmiddle', 0, 3, 'abc');?></td>
256<td class="valeur"><textarea name="ai_prompt
" id="ai_prompt
" class="quatrevingtpercent
" rows="<?php echo ROWS_4 ?>
"><?php echo(GETPOSTISSET('ai_prompt') ? GETPOST('ai_prompt', 'restricthtml') : ''); ?></textarea></td></tr>
257<!-- Default Value (at sql setup level) -->
258<tr class="extra_default_value
"><td><?php echo $langs->trans("DefaultValue
").' ('.$langs->trans("Database").')'; ?></td><td class="valeur"><input id="default_value
" type="text
" name="default_value
" class="minwidth200
" value="<?php echo(
GETPOST(
'default_value',
'alpha') ?
GETPOST(
'default_value',
'alpha') :
''); ?>
"></td></tr>
260<tr class="extra_unique
"><td><?php echo $langs->trans("Unique
"); ?></td><td class="valeur"><input id="unique
" type="checkbox
" name="unique
"<?php echo(GETPOST('unique', 'alpha') ? ' checked' : ''); ?>></td></tr>
262<tr class="extra_required
"><td><?php echo $langs->trans("Mandatory
"); ?></td><td class="valeur"><input id="required
" type="checkbox
" name="required
"<?php echo(GETPOST('required', 'alpha') ? ' checked' : ''); ?>></td></tr>
263<!-- Always editable -->
264<tr class="extra_alwayseditable
"><td><?php echo $form->textwithpicto($langs->trans("AlwaysEditable
"), $langs->trans("EditableWhenDraftOnly
")); ?></td><td class="valeur"><input id="alwayseditable
" type="checkbox
" name="alwayseditable
"<?php echo((GETPOST('alwayseditable', 'alpha') || !GETPOST('button', 'alpha')) ? ' checked' : ''); ?>></td></tr>
266<tr><td class="extra_list
"><?php echo $form->textwithpicto($langs->trans("Visibility
"), $langs->trans("VisibleDesc
").'<br><br>'.$langs->trans("ItCanBeAnExpression
")); ?>
267</td><td class="valeur"><input id="list
" class="width50
" type="text
" name="list
" value="<?php echo GETPOSTISSET(
'list') ?
GETPOSTINT(
'list') :
'1'; ?>
"></td></tr>
268<!-- Visibility for PDF-->
269<tr><td class="extra_pdf
"><?php echo $form->textwithpicto($langs->trans("DisplayOnPdf
"), $langs->trans("DisplayOnPdfDesc
")); ?>
270</td><td class="valeur"><input id="printable
" class="width50
" type="text
" name="printable
" value="<?php echo
dol_escape_htmltag(GETPOSTISSET(
'printable') ?
GETPOST(
'printable') :
'1'); ?>
"></td></tr>
272<tr class="extra_totalizable
"><td><?php echo $langs->trans("Totalizable
"); ?></td><td class="valeur"><input id="totalizable
" type="checkbox
" name="totalizable
"<?php echo(GETPOST('totalizable', 'alpha') ? ' checked' : ''); ?>></td></tr>
274<tr class="help
"><td><?php echo $form->textwithpicto($langs->trans("CssOnEdit
"), $langs->trans("HelpCssOnEditDesc
")); ?></td><td class="valeur"><input id="css
" class="minwidth200
" type="text
" name="css
" value="<?php echo
dol_escape_htmltag((empty($css) ?
'' : $css)); ?>
"></td></tr>
276<tr class="help
"><td><?php echo $form->textwithpicto($langs->trans("CssOnView
"), $langs->trans("HelpCssOnViewDesc
")); ?></td><td class="valeur"><input id="cssview
" class="minwidth200
" type="text
" name="cssview
" value="<?php echo
dol_escape_htmltag((empty($cssview) ?
'' : $cssview)); ?>
"></td></tr>
278<tr class="help
"><td><?php echo $form->textwithpicto($langs->trans("CssOnList
"), $langs->trans("HelpCssOnListDesc
")); ?></td><td class="valeur"><input id="csslist
" class="minwidth200
" type="text
" name="csslist
" value="<?php echo
dol_escape_htmltag((empty($csslist) ?
'' : $csslist)); ?>
"></td></tr>
280<tr class="help
"><td><?php echo $form->textwithpicto($langs->trans("HelpOnTooltip
"), $langs->trans("HelpOnTooltipDesc
")); ?></td><td class="valeur"><input id="help
" class="quatrevingtpercent
" type="text
" name="help
" value="<?php echo
dol_escape_htmltag((empty($help) ?
'' : $help)); ?>
"></td></tr>
281<?php if (isModEnabled('multicompany')) { ?>
282 <!-- Multicompany entity -->
283 <tr><td><?php echo $langs->trans("AllEntities
"); ?></td><td class="valeur"><input id="entitycurrentorall
" type="checkbox
" name="entitycurrentorall
"<?php echo(GETPOST('entitycurrentorall', 'alpha') ? ' checked' : ''); ?>></td></tr>
287<?php print dol_get_fiche_end(); ?>
289<div class="center
"><input type="submit
" name="button" class="button button-save
" value="<?php echo $langs->trans(
"Save"); ?>
">
290<input type="submit
" name="button" class="button button-cancel
" value="<?php echo $langs->trans(
"Cancel"); ?>
"></div>
294<!-- END PHP TEMPLATE admin_extrafields_add.tpl.php -->
if(! $user->hasRight( 'banque', 'lire')) valeur($sql)
Get result of sql for field amount.
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, $morecssdiv='')
Show tabs of a record.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
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...
treeview li table
No Email.
ui state ui widget content ui state ui widget header ui state a ui button
0 = Do not include form tag and submit button -1 = Do not include form tag but include submit button
Class to manage Dolibarr database access for an SQL database.
global $conf
The following vars must be defined: $type2label $form $conf, $lang, The following vars may also be de...
if(preg_match('/(crypted|dolcrypt):/i', $dolibarr_main_db_pass)||!empty($dolibarr_main_db_encrypted_pass)) $conf db type
$conf db name
Only used if Module[ID]Name translation string is not found.