31if (empty($conf) || !is_object($conf)) {
32 print
"Error, template page can't be called as URL";
37$langs->load(
"modulebuilder");
39$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';
43<!-- BEGIN PHP TEMPLATE admin_extrafields_add.tpl.php -->
45 jQuery(document).ready(
function() {
46 function init_typeoffields(
type)
48 console.log(
"select a new type (add) = "+
type);
49 var size = jQuery(
"#size");
50 var computed_value = jQuery(
"#computed_value");
51 var langfile = jQuery(
"#langfile");
52 var default_value = jQuery(
"#default_value");
53 var unique = jQuery(
"#unique");
54 var required = jQuery(
"#required");
55 var alwayseditable = jQuery(
"#alwayseditable");
56 var list = jQuery(
"#list");
57 var totalizable = jQuery(
"#totalizable");
59 if ((
GETPOST(
'type',
'alpha') !=
"select") && (
GETPOST(
'type',
'alpha') !=
"sellist")) {
60 print
'jQuery("#value_choice").hide();';
63 if (
GETPOST(
'type',
'alpha') ==
"separate") {
64 print
"jQuery('#size, #default_value, #langfile').val('').prop('disabled', true);";
65 print
'jQuery("#value_choice").hide();';
71 jQuery(
"tr.extra_computed_value").show();
73 computed_value.val(
''); jQuery(
"tr.extra_computed_value").hide();
75 if (computed_value.val())
77 console.log(
"We enter a computed formula");
78 jQuery(
"#default_value").val(
'');
80 jQuery(
"#default_value, #unique, #required, #alwayseditable, #list").attr(
'disabled',
true);
81 jQuery(
"tr.extra_default_value, tr.extra_unique, tr.extra_required, tr.extra_alwayseditable, tr.extra_list").hide();
85 console.log(
"No computed formula");
86 jQuery(
"#default_value, #unique, #required, #alwayseditable, #list").attr(
'disabled',
false);
87 jQuery(
"tr.extra_default_value, tr.extra_unique, tr.extra_required, tr.extra_alwayseditable, tr.extra_list").show();
90 if (
type ==
'date') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'disabled'); jQuery(
"#value_choice").hide();jQuery(
"#helpchkbxlst").hide(); }
91 else if (
type ==
'datetime') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'disabled'); jQuery(
"#value_choice").hide(); jQuery(
"#helpchkbxlst").hide();}
92 else if (
type ==
'double') { size.val(
'24,8').removeAttr(
'disabled'); unique.removeAttr(
'disabled'); jQuery(
"#value_choice").hide(); jQuery(
"#helpchkbxlst").hide();}
93 else if (
type ==
'int') { size.val(
'10').removeAttr(
'disabled'); unique.removeAttr(
'disabled'); jQuery(
"#value_choice").hide(); jQuery(
"#helpchkbxlst").hide();}
94 else if (
type ==
'text') { size.val(
'2000').removeAttr(
'disabled'); unique.prop(
'disabled',
true).removeAttr(
'checked'); jQuery(
"#value_choice").hide();jQuery(
"#helpchkbxlst").hide(); }
95 else if (
type ==
'html') { size.val(
'2000').removeAttr(
'disabled'); unique.prop(
'disabled',
true).removeAttr(
'checked'); jQuery(
"#value_choice").hide();jQuery(
"#helpchkbxlst").hide(); }
96 else if (
type ==
'varchar') { size.val(
'255').removeAttr(
'disabled'); unique.removeAttr(
'disabled'); jQuery(
"#value_choice").hide();jQuery(
"#helpchkbxlst").hide(); }
97 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();}
98 else if (
type ==
'boolean') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'checked').prop(
'disabled',
true); jQuery(
"#value_choice").hide();jQuery(
"#helpchkbxlst").hide();}
99 else if (
type ==
'price') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'checked').prop(
'disabled',
true); jQuery(
"#value_choice").hide();jQuery(
"#helpchkbxlst").hide();}
100 else if (
type ==
'pricecy') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'checked').prop(
'disabled',
true); jQuery(
"#value_choice").hide();jQuery(
"#helpchkbxlst").hide();}
101 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();}
102 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();}
103 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();}
104 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();}
105 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();}
106 else if (
type ==
'link') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'disabled'); jQuery(
"#value_choice").show(); jQuery(
".spanforparamtooltip").hide(); jQuery(
"#helplink").show();}
107 else if (
type ==
'point') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'disabled'); jQuery(
"#value_choice").show(); jQuery(
".spanforparamtooltip").hide(); jQuery(
"#helplink").show();}
108 else if (
type ==
'linestrg') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'disabled'); jQuery(
"#value_choice").show(); jQuery(
".spanforparamtooltip").hide(); jQuery(
"#helplink").show();}
109 else if (
type ==
'polygon') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'disabled'); jQuery(
"#value_choice").show(); jQuery(
".spanforparamtooltip").hide(); jQuery(
"#helplink").show();}
110 else if (
type ==
'separate') {
111 langfile.val(
'').prop(
'disabled',
true);size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'checked').prop(
'disabled',
true); required.val(
'').prop(
'disabled',
true);
112 jQuery(
"#value_choice").show();
113 jQuery(
".spanforparamtooltip").hide(); jQuery(
"#helpseparate").show();
116 size.val(
'').prop(
'disabled',
true);
117 unique.removeAttr(
'disabled');
120 if (
type ==
'separate' ||
type ==
'point' ||
type ==
'linestrg' ||
type ==
'polygon')
122 required.removeAttr(
'checked').prop(
'disabled',
true); alwayseditable.removeAttr(
'checked').prop(
'disabled',
true); list.removeAttr(
'checked').prop(
'disabled',
true);
123 jQuery(
'#size, #default_value, #langfile').val(
'').prop(
'disabled',
true);
124 jQuery(
'#list').val(3);
128 default_value.removeAttr(
'disabled');
129 langfile.removeAttr(
'disabled');required.removeAttr(
'disabled'); alwayseditable.removeAttr(
'disabled'); list.removeAttr(
'disabled');
132 init_typeoffields(
'<?php echo GETPOST('type', 'alpha
'); ?>');
133 jQuery(
"#type").change(
function() {
134 init_typeoffields($(
this).val());
138 jQuery(
"#computed_value").keyup(
function() {
139 init_typeoffields(jQuery(
'#type').val());
143 <?php
if (!
getDolGlobalInt(
'MAIN_EXTRAFIELDS_CODE_AUTOFILL_DISABLED')) : ?>
144 jQuery(
"#label").keyup(function() {
145 console.log(
"Update new field");
146 $(
"#attrname").val( $(
this).val().normalize(
'NFD').replace(/\s/g,
"_").replace(/[^a-zA-Z0-9_]/g,
'').toLowerCase() );
152<form action=
"<?php echo $_SERVER["PHP_SELF
"]; ?>" method=
"post">
153<input
type=
"hidden" name=
"token" value=
"<?php echo newToken(); ?>">
154<input
type=
"hidden" name=
"action" value=
"add">
158<
table summary=
"listofattributes" class=
"border centpercent">
160<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>
162<tr><td
class=
"fieldrequired"><?php echo $langs->trans(
"AttributeCode"); ?></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>
164<tr><td
class=
"fieldrequired"><?php echo $langs->trans(
"Type"); ?></td><td
class=
"valeur">
167if (empty($formadmin)) {
168 include_once DOL_DOCUMENT_ROOT.
'/core/class/html.formadmin.class.php';
171print $formadmin->selectTypeOfFields(
'type',
GETPOST(
'type',
'alpha'));
175<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>
176<!-- Default Value (
for select list / radio/ checkbox) -->
177<tr
id=
"value_choice">
179 <?php echo $langs->trans(
"Value"); ?>
182 <
table class=
"nobordernopadding">
184 <textarea
name=
"param" id=
"param" cols=
"80" rows=
"<?php echo ROWS_4 ?>"><?php echo
GETPOST(
'param',
'alpha'); ?></textarea>
186 <span
id=
"helpselect" class=
"spanforparamtooltip"><?php print $form->textwithpicto(
'', $langs->trans(
"ExtrafieldParamHelpselect"), 1, 0,
'', 0, 2,
'helpvalue1')?></span>
187 <span
id=
"helpsellist" class=
"spanforparamtooltip"><?php print $form->textwithpicto(
'', $langs->trans(
"ExtrafieldParamHelpsellist"), 1, 0,
'', 0, 2,
'helpvalue2')?></span>
188 <span
id=
"helpchkbxlst" class=
"spanforparamtooltip"><?php print $form->textwithpicto(
'', $langs->trans(
"ExtrafieldParamHelpsellist"), 1, 0,
'', 0, 2,
'helpvalue3')?></span>
189 <span
id=
"helplink" class=
"spanforparamtooltip"><?php print $form->textwithpicto(
'', $langs->trans(
"ExtrafieldParamHelplink").
'<br><br>'.$langs->trans(
"Examples").
':<br>'.$listofexamplesforlink, 1, 0,
'', 0, 2,
'helpvalue4')?></span>
190 <span
id=
"helppassword" class=
"spanforparamtooltip"><?php print $form->textwithpicto(
'', $langs->trans(
"ExtrafieldParamHelpPassword"), 1, 0,
'', 0, 2,
'helpvalue5')?></span>
191 <span
id=
"helpseparate" class=
"spanforparamtooltip"><?php print $form->textwithpicto(
'', $langs->trans(
"ExtrafieldParamHelpSeparator"), 1, 0,
'', 0, 2,
'helpvalue6')?></span>
197<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>
198<!-- Language file -->
199<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>
200<!-- Computed Value -->
201<tr
class=
"extra_computed_value">
203 <td><?php echo $form->textwithpicto($langs->trans(
"ComputedFormula"), $langs->trans(
"ComputedFormulaDesc"), 1,
'help',
'', 0, 2,
'tooltipcompute'); ?></td>
205 <td><?php echo $form->textwithpicto($langs->trans(
"ComputedFormula"), $langs->trans(
"ComputedFormulaDesc")).$form->textwithpicto($langs->trans(
"Computedpersistent"), $langs->trans(
"ComputedpersistentDesc"), 1,
'warning'); ?></td>
207<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>
209<!-- Default Value (at sql setup level) -->
210<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" size=
"5" value=
"<?php echo(GETPOST('default_value', 'alpha') ? GETPOST('default_value', 'alpha') : ''); ?>"></td></tr>
212<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>
214<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>
215<!-- Always editable -->
216<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>
218<tr><td
class=
"extra_list"><?php echo $form->textwithpicto($langs->trans(
"Visibility"), $langs->trans(
"VisibleDesc").
'<br><br>'.$langs->trans(
"ItCanBeAnExpression")); ?>
219</td><td
class=
"valeur"><input
id=
"list" class=
"minwidth100" type=
"text" name=
"list" value=
"<?php echo GETPOSTISSET('list') ? GETPOSTINT('list') : '1'; ?>"></td></tr>
220<!-- Visibility
for PDF-->
221<tr><td
class=
"extra_pdf"><?php echo $form->textwithpicto($langs->trans(
"DisplayOnPdf"), $langs->trans(
"DisplayOnPdfDesc")); ?>
222</td><td
class=
"valeur"><input
id=
"printable" class=
"minwidth100" type=
"text" name=
"printable" value=
"<?php echo dol_escape_htmltag(GETPOSTISSET('printable') ? GETPOST('printable') : '1'); ?>"></td></tr>
224<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>
226<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>
228<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>
230<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>
232<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>
233<?php
if (isModEnabled(
'multicompany')) { ?>
234 <!-- Multicompany entity -->
235 <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>
241<div
class=
"center"><input
type=
"submit" name=
"button" class=
"button button-save" value=
"<?php echo $langs->trans("Save
"); ?>">
242<input
type=
"submit" name=
"button" class=
"button button-cancel" value=
"<?php echo $langs->trans("Cancel
"); ?>"></div>
246<!-- END PHP TEMPLATE admin_extrafields_add.tpl.php -->
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.
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.
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
treeview li table
No Email.
if(preg_match('/crypted:/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.