30 if (empty($conf) || !is_object($conf)) {
31 print
"Error, template page can't be called as URL";
36 $langs->load(
"modulebuilder");
38 $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<br>...';
42 <!-- BEGIN PHP TEMPLATE admin_extrafields_edit.tpl.php -->
44 jQuery(document).ready(
function() {
45 function init_typeoffields(
type)
47 console.log(
"select a new type (edit) = "+
type);
48 var size = jQuery(
"#size");
49 var computed_value = jQuery(
"#computed_value");
50 var langfile = jQuery(
"#langfile");
51 var default_value = jQuery(
"#default_value");
52 var unique = jQuery(
"#unique");
53 var required = jQuery(
"#required");
54 var alwayseditable = jQuery(
"#alwayseditable");
55 var list = jQuery(
"#list");
56 var totalizable = jQuery(
"#totalizable");
58 if ((
GETPOST(
'type',
'alpha') !=
"select") && (
GETPOST(
'type',
'alpha') !=
"sellist")) {
59 print
'jQuery("#value_choice").hide();';
62 if (
GETPOST(
'type',
'alpha') ==
"separate") {
63 print
"jQuery('#size, #default_value, #langfile').val('').prop('disabled', true);";
64 print
'jQuery("#value_choice").hide();';
69 if (
type ==
'varchar' ||
type ==
'int' ||
type ==
'double' ||
type ==
'price') {
70 jQuery(
"tr.extra_computed_value").show();
72 computed_value.val(
''); jQuery(
"tr.extra_computed_value").hide();
74 if (computed_value.val())
76 console.log(
"We enter a computed formula");
77 jQuery(
"#default_value").val(
'');
79 jQuery(
"#default_value, #unique, #required, #alwayseditable, #list").attr(
'disabled',
true);
80 jQuery(
"tr.extra_default_value, tr.extra_unique, tr.extra_required, tr.extra_alwayseditable, tr.extra_list").hide();
84 console.log(
"No computed formula");
85 jQuery(
"#default_value, #unique, #required, #alwayseditable, #list").attr(
'disabled',
false);
86 jQuery(
"tr.extra_default_value, tr.extra_unique, tr.extra_required, tr.extra_alwayseditable, tr.extra_list").show();
89 if (
type ==
'date') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'disabled'); jQuery(
"#value_choice").hide();jQuery(
"#helpchkbxlst").hide(); }
90 else if (
type ==
'datetime') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'disabled'); jQuery(
"#value_choice").hide(); jQuery(
"#helpchkbxlst").hide();}
91 else if (
type ==
'double') { size.removeAttr(
'disabled'); unique.removeAttr(
'disabled'); jQuery(
"#value_choice").hide(); jQuery(
"#helpchkbxlst").hide();}
92 else if (
type ==
'int') { size.removeAttr(
'disabled'); unique.removeAttr(
'disabled'); jQuery(
"#value_choice").hide(); jQuery(
"#helpchkbxlst").hide();}
93 else if (
type ==
'text') { size.removeAttr(
'disabled'); unique.prop(
'disabled',
true).removeAttr(
'checked'); jQuery(
"#value_choice").hide();jQuery(
"#helpchkbxlst").hide(); }
94 else if (
type ==
'html') { size.removeAttr(
'disabled'); unique.prop(
'disabled',
true).removeAttr(
'checked'); jQuery(
"#value_choice").hide();jQuery(
"#helpchkbxlst").hide(); }
95 else if (
type ==
'varchar') { size.removeAttr(
'disabled'); unique.removeAttr(
'disabled'); jQuery(
"#value_choice").hide();jQuery(
"#helpchkbxlst").hide(); }
96 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();}
97 else if (
type ==
'boolean') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'checked').prop(
'disabled',
true); jQuery(
"#value_choice").hide(); jQuery(
"#helpchkbxlst").hide();}
98 else if (
type ==
'price') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'checked').prop(
'disabled',
true); jQuery(
"#value_choice").hide(); jQuery(
"#helpchkbxlst").hide();}
99 else if (
type ==
'pricecy') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'checked').prop(
'disabled',
true); jQuery(
"#value_choice").hide(); jQuery(
"#helpchkbxlst").hide();}
100 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();}
101 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();}
102 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();}
103 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();}
104 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();}
105 else if (
type ==
'link') { size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'disabled'); jQuery(
"#value_choice").show(); jQuery(
".spanforparamtooltip").hide(); jQuery(
"#helplink").show();}
106 else if (
type ==
'separate') {
107 size.val(
'').prop(
'disabled',
true); unique.removeAttr(
'checked').prop(
'disabled',
true); required.val(
'').prop(
'disabled',
true); default_value.val(
'').prop(
'disabled',
true);
108 jQuery(
"#value_choice").show();
109 jQuery(
".spanforparamtooltip").hide(); jQuery(
"#helpseparate").show();
112 size.val(
'').prop(
'disabled',
true);
113 unique.removeAttr(
'disabled');
116 if (
type ==
'separate')
118 required.removeAttr(
'checked').prop(
'disabled',
true); alwayseditable.removeAttr(
'checked').prop(
'disabled',
true); list.removeAttr(
'checked').prop(
'disabled',
true);
119 jQuery(
'#size, #default_value, #langfile').val(
'').prop(
'disabled',
true);
120 jQuery(
'#list').val(3);
124 default_value.removeAttr(
'disabled');
125 required.removeAttr(
'disabled'); alwayseditable.removeAttr(
'disabled'); list.removeAttr(
'disabled');
128 init_typeoffields(jQuery(
"#type").val());
129 jQuery(
"#type").change(
function() {
130 init_typeoffields($(
this).val());
134 jQuery(
"#computed_value").keyup(
function() {
135 init_typeoffields(jQuery(
'#type').val());
140 <!--
Form to edit an extra field -->
141 <form action=
"<?php echo $_SERVER["PHP_SELF
"]; ?>?attrname=<?php echo $attrname; ?>" id=
"formeditextrafield" method=
"post">
142 <input
type=
"hidden" name=
"token" value=
"<?php echo newToken(); ?>">
143 <input
type=
"hidden" name=
"attrname" value=
"<?php echo $attrname; ?>">
144 <input
type=
"hidden" name=
"action" value=
"update">
145 <input
type=
"hidden" name=
"rowid" value=
"<?php echo (empty($rowid) ? '' : $rowid) ?>">
146 <input
type=
"hidden" name=
"enabled" value=
"<?php echo $extrafields->attributes[$elementtype]['enabled'][$attrname]; ?>">
150 <table summary=
"listofattributes" class=
"border centpercent">
153 $label = $extrafields->attributes[$elementtype][
'label'][$attrname];
154 $type = $extrafields->attributes[$elementtype][
'type'][$attrname];
155 $size = $extrafields->attributes[$elementtype][
'size'][$attrname];
156 $computed = $extrafields->attributes[$elementtype][
'computed'][$attrname];
157 $default = $extrafields->attributes[$elementtype][
'default'][$attrname];
158 $unique = $extrafields->attributes[$elementtype][
'unique'][$attrname];
159 $required = $extrafields->attributes[$elementtype][
'required'][$attrname];
160 $pos = $extrafields->attributes[$elementtype][
'pos'][$attrname];
161 $alwayseditable = $extrafields->attributes[$elementtype][
'alwayseditable'][$attrname];
162 $param = $extrafields->attributes[$elementtype][
'param'][$attrname];
163 $perms = $extrafields->attributes[$elementtype][
'perms'][$attrname];
164 $langfile = $extrafields->attributes[$elementtype][
'langfile'][$attrname];
165 $list = $extrafields->attributes[$elementtype][
'list'][$attrname];
166 $totalizable = $extrafields->attributes[$elementtype][
'totalizable'][$attrname];
167 $help = $extrafields->attributes[$elementtype][
'help'][$attrname];
168 $entitycurrentorall = $extrafields->attributes[$elementtype][
'entityid'][$attrname];
169 $printable = $extrafields->attributes[$elementtype][
'printable'][$attrname];
170 $enabled = $extrafields->attributes[$elementtype][
'enabled'][$attrname];
171 $css = $extrafields->attributes[$elementtype][
'css'][$attrname];
172 $cssview = $extrafields->attributes[$elementtype][
'cssview'][$attrname];
173 $csslist = $extrafields->attributes[$elementtype][
'csslist'][$attrname];
175 if ((($type ==
'select') || ($type ==
'checkbox') || ($type ==
'radio')) && is_array($param)) {
177 foreach ($param[
'options'] as $key => $value) {
179 $param_chain .= $key.
','.$value.
"\n";
182 } elseif (($type ==
'sellist') || ($type ==
'chkbxlst') || ($type ==
'link') || ($type ==
'password') || ($type ==
'separate')) {
183 $paramlist = array_keys($param[
'options']);
184 $param_chain = $paramlist[0];
188 <tr><td
class=
"titlefieldcreate fieldrequired"><?php echo $langs->trans(
"LabelOrTranslationKey"); ?></td><td
class=
"valeur"><input
type=
"text" name=
"label" size=
"40" value=
"<?php echo $label; ?>"></td></tr>
191 <tr><td
class=
"fieldrequired"><?php echo $langs->trans(
"AttributeCode"); ?></td><td
class=
"valeur"><?php echo $attrname; ?></td></tr>
194 <tr><td
class=
"fieldrequired"><?php echo $langs->trans(
"Type"); ?></td><td
class=
"valeur">
197 $typewecanchangeinto = array(
198 'varchar'=>array(
'varchar',
'phone',
'mail',
'url',
'ip',
'select',
'password',
'text',
'html'),
199 'double'=>array(
'double',
'price'),
200 'price'=>array(
'double',
'price'),
201 'text'=>array(
'text',
'html'),
202 'html'=>array(
'text',
'html'),
203 'password'=>array(
'password',
'varchar'),
204 'mail'=>array(
'varchar',
'phone',
'mail',
'url',
'ip',
'select'),
205 'url'=>array(
'varchar',
'phone',
'mail',
'url',
'ip',
'select'),
206 'phone'=>array(
'varchar',
'phone',
'mail',
'url',
'ip',
'select'),
207 'ip'=>array(
'varchar',
'phone',
'mail',
'url',
'ip',
'select'),
208 'select'=>array(
'varchar',
'phone',
'mail',
'url',
'ip',
'select'),
209 'date'=>array(
'date',
'datetime')
216 if (in_array($type, array_keys($typewecanchangeinto))) {
218 print
'<select id="type" class="flat type" name="type">';
219 foreach ($type2label as $key => $val) {
221 if ($key == (
GETPOST(
'type',
'alpha') ?
GETPOST(
'type',
'alpha') : $type)) {
222 $selected =
' selected="selected"';
224 if (in_array($key, $typewecanchangeinto[$type])) {
225 print
'<option value="'.$key.
'"'.$selected.
'>'.$val.
'</option>';
227 print
'<option value="'.$key.
'" disabled="disabled"'.$selected.
'>'.$val.
'</option>';
233 print $type2label[$type];
234 print
'<input type="hidden" name="type" id="type" value="'.$type.
'">';
240 <tr
class=
"extra_size"><td
class=
"fieldrequired"><?php echo $langs->trans(
"Size"); ?></td><td><input
id=
"size" type=
"text" name=
"size" size=
"5" value=
"<?php echo $size; ?>"></td></tr>
242 <!-- Value (
for some fields like password, select list, radio, ...) -->
243 <tr
id=
"value_choice">
245 <?php echo $langs->trans(
"Value"); ?>
248 <table
class=
"nobordernopadding">
250 <textarea
name=
"param" id=
"param" cols=
"80" rows=
"<?php echo ROWS_4 ?>"><?php echo
dol_htmlcleanlastbr($param_chain); ?></textarea>
252 <span
id=
"helpselect" class=
"spanforparamtooltip"><?php print
$form->textwithpicto(
'', $langs->trans(
"ExtrafieldParamHelpselect"), 1, 0,
'', 0, 2,
'helpvalue1')?></span>
253 <span
id=
"helpsellist" class=
"spanforparamtooltip"><?php print
$form->textwithpicto(
'', $langs->trans(
"ExtrafieldParamHelpsellist"), 1, 0,
'', 0, 2,
'helpvalue2')?></span>
254 <span
id=
"helpchkbxlst" class=
"spanforparamtooltip"><?php print
$form->textwithpicto(
'', $langs->trans(
"ExtrafieldParamHelpchkbxlst"), 1, 0,
'', 0, 2,
'helpvalue3')?></span>
255 <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>
256 <span
id=
"helppassword" class=
"spanforparamtooltip"><?php print
$form->textwithpicto(
'', $langs->trans(
"ExtrafieldParamHelpPassword"), 1, 0,
'', 0, 2,
'helpvalue5')?></span>
257 <span
id=
"helpseparate" class=
"spanforparamtooltip"><?php print
$form->textwithpicto(
'', $langs->trans(
"ExtrafieldParamHelpSeparator"), 1, 0,
'', 0, 2,
'helpvalue6')?></span>
264 <tr><td
class=
"titlefield"><?php echo $langs->trans(
"Position"); ?></td><td
class=
"valeur"><input
type=
"text" name=
"pos" size=
"5" value=
"<?php echo dol_escape_htmltag($pos); ?>"></td></tr>
266 <!-- Language file -->
267 <tr><td
class=
"titlefield"><?php echo $langs->trans(
"LanguageFile"); ?></td><td
class=
"valeur"><input
type=
"text" name=
"langfile" class=
"minwidth200" value=
"<?php echo dol_escape_htmltag($langfile); ?>"></td></tr>
269 <!-- Computed value -->
270 <tr
class=
"extra_computed_value">
271 <?php
if (empty($conf->global->MAIN_STORE_COMPUTED_EXTRAFIELDS)) { ?>
272 <td><?php echo
$form->textwithpicto($langs->trans(
"ComputedFormula"), $langs->trans(
"ComputedFormulaDesc"), 1,
'help',
'', 0, 2,
'tooltipcompute'); ?></td>
274 <td><?php echo
$form->textwithpicto($langs->trans(
"ComputedFormula"), $langs->trans(
"ComputedFormulaDesc")).$form->textwithpicto($langs->trans(
"Computedpersistent"), $langs->trans(
"ComputedpersistentDesc"), 1,
'warning'); ?></td>
276 <td
class=
"valeur"><textarea
name=
"computed_value" id=
"computed_value" class=
"quatrevingtpercent" rows=
"<?php echo ROWS_4 ?>"><?php echo
dol_htmlcleanlastbr($computed); ?></textarea></td>
279 <!-- Default Value (at sql setup level) -->
280 <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 dol_escape_htmltag($default); ?>"></td></tr>
283 <tr
class=
"extra_unique"><td><?php echo $langs->trans(
"Unique"); ?></td><td
class=
"valeur"><input
id=
"unique" type=
"checkbox" name=
"unique"<?php echo ($unique ?
' checked' :
''); ?>></td></tr>
286 <tr
class=
"extra_required"><td><?php echo $langs->trans(
"Mandatory"); ?></td><td
class=
"valeur"><input
id=
"required" type=
"checkbox" name=
"required"<?php echo ($required ?
' checked' :
''); ?>></td></tr>
288 <!-- Always editable -->
289 <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 ($alwayseditable ?
' checked' :
''); ?>></td></tr>
292 <tr><td
class=
"extra_list"><?php echo
$form->textwithpicto($langs->trans(
"Visibility"), $langs->trans(
"VisibleDesc")); ?>
293 </td><td
class=
"valeur"><input
id=
"list" class=
"minwidth100" type=
"text" name=
"list" value=
"<?php echo ($list != '' ? $list : '1'); ?>"></td></tr>
295 <!-- Visibility
for PDF-->
296 <tr><td
class=
"extra_pdf"><?php echo
$form->textwithpicto($langs->trans(
"DisplayOnPdf"), $langs->trans(
"DisplayOnPdfDesc")); ?>
297 </td><td
class=
"valeur"><input
id=
"printable" class=
"minwidth100" type=
"text" name=
"printable" value=
"<?php echo dol_escape_htmltag($printable); ?>"></td></tr>
299 <!-- Can be summed -->
300 <tr
class=
"extra_totalizable"><td><?php echo
$form->textwithpicto($langs->trans(
"Totalizable"), $langs->trans(
"TotalizableDesc")); ?></td><td
class=
"valeur"><input
id=
"totalizable" type=
"checkbox" name=
"totalizable"<?php echo ($totalizable ?
' checked' :
''); ?>></td></tr>
303 <tr
class=
"extra_css"><td><?php echo
$form->textwithpicto($langs->trans(
"CssOnEdit"), $langs->trans(
"HelpCssOnEditDesc")); ?></td><td
class=
"valeur"><input
id=
"css" type=
"text" name=
"css" value=
"<?php echo $css ?>"></td></tr>
306 <tr
class=
"extra_cssview"><td><?php echo
$form->textwithpicto($langs->trans(
"CssOnView"), $langs->trans(
"HelpCssOnViewDesc")); ?></td><td
class=
"valeur"><input
id=
"cssview" type=
"text" name=
"cssview" value=
"<?php echo $cssview; ?>"></td></tr>
309 <tr
class=
"extra_csslist"><td><?php echo
$form->textwithpicto($langs->trans(
"CssOnList"), $langs->trans(
"HelpCssOnListDesc")); ?></td><td
class=
"valeur"><input
id=
"csslist" type=
"text" name=
"csslist" value=
"<?php echo $csslist; ?>"></td></tr>
311 <!-- Help tooltip -->
312 <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($help); ?>"></td></tr>
315 <!-- Multicompany entity -->
316 <tr><td><?php echo $langs->trans(
"AllEntities"); ?></td><td
class=
"valeur"><input
id=
"entitycurrentorall" type=
"checkbox" name=
"entitycurrentorall"<?php echo (empty($entitycurrentorall) ?
' checked' :
''); ?>></td></tr>
319 <!-- Show Enabled
property when value is not a common value -->
320 <?php
if ($enabled !=
'1') { ?>
321 <tr
class=
"help"><td><?php echo $langs->trans(
"EnabledCondition"); ?></td><td
class=
"valeur">
330 <div
class=
"center"><input
type=
"submit" name=
"button" class=
"button button-save" value=
"<?php echo $langs->trans("Save
"); ?>">
331 <input
type=
"submit" name=
"button" class=
"button button-cancel" value=
"<?php echo $langs->trans("Cancel
"); ?>"></div>
335 <!-- END PHP TEMPLATE admin_extrafields_edit.tpl.php -->
ajax_combobox($htmlname, $events=array(), $minLengthToAutocomplete=0, $forcefocus=0, $widthTypeOfAutocomplete='resolve', $idforemptyvalue='-1', $morecss='')
Convert a html select field into an ajax combobox.
if($cancel &&! $id) if($action=='add' &&! $cancel) if($action=='delete') if($id) $form
Actions.
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='')
Show tabs of a record.
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.
dol_get_fiche_end($notab=0)
Return tab footer of a card.
dol_htmlcleanlastbr($stringtodecode)
This function remove all ending and br at end.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
isModEnabled($module)
Is Dolibarr module enabled.
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.