dolibarr  19.0.0-dev
admin_extrafields_view.tpl.php
1 <?php
2 /* Copyright (C) 2010-2018 Laurent Destailleur <eldy@users.sourceforge.net>
3  * Copyright (C) 2012-2021 Regis Houssin <regis.houssin@inodbox.com>
4  * Copyright (C) 2018-2019 Frédéric France <frederic.france@netlogic.fr>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program. If not, see <https://www.gnu.org/licenses/>.
18  */
19 
20 /* To call this template, you must define
21  * $textobject
22  * $langs
23  * $extrafield
24  * $elementtype
25  */
26 
27 // Protection to avoid direct call of template
28 if (empty($langs) || !is_object($langs)) {
29  print "Error, template page can't be called as URL";
30  exit;
31 }
32 
33 
34 $langs->load("modulebuilder");
35 
36 ?>
37 
38 <!-- BEGIN PHP TEMPLATE admin_extrafields_view.tpl.php -->
39 <?php
40 
41 $title = '<span class="opacitymedium">'.$langs->trans("DefineHereComplementaryAttributes", empty($textobject) ? '': $textobject).'</span><br>'."\n";
42 //if ($action != 'create' && $action != 'edit') {
43 $newcardbutton = dolGetButtonTitle($langs->trans('NewAttribute'), '', 'fa fa-plus-circle', $_SERVER["PHP_SELF"].'?action=create', '', (($action != 'create' && $action != 'edit') ? 1 : 1));
44 /*} else {
45  $newcardbutton = '';
46 }*/
47 
48 print '<div class="centpercent tagtable marginbottomonly">';
49 print '<div class="tagtr">';
50 print '<div class="tagtd inline-block valignmiddle hideonsmartphoneimp">'.$title.'</div>';
51 print '<div class="tagtd right inline-block valignmiddle"">'.$newcardbutton.'</div>';
52 print '</div>';
53 print '</div>';
54 
55 // Load $extrafields->attributes
56 $extrafields->fetch_name_optionals_label($elementtype);
57 
58 print '<div class="div-table-responsive">';
59 print '<table summary="listofattributes" class="noborder centpercent small">';
60 
61 print '<tr class="liste_titre">';
62 print '<td class="left">'.$langs->trans("Position");
63 print '<span class="nowrap">';
64 print img_picto('A-Z', '1downarrow.png');
65 print '</span>';
66 print '</td>';
67 print '<td>'.$langs->trans("LabelOrTranslationKey").'</td>';
68 print '<td>'.$langs->trans("TranslationString").'</td>';
69 print '<td>'.$langs->trans("AttributeCode").'</td>';
70 print '<td>'.$langs->trans("Type").'</td>';
71 print '<td class="right">'.$langs->trans("Size").'</td>';
72 print '<td>'.$langs->trans("ComputedFormula").'</td>';
73 print '<td class="center">'.$langs->trans("Unique").'</td>';
74 print '<td class="center">'.$langs->trans("Mandatory").'</td>';
75 print '<td class="center">'.$form->textwithpicto($langs->trans("AlwaysEditable"), $langs->trans("EditableWhenDraftOnly")).'</td>';
76 print '<td class="center">'.$form->textwithpicto($langs->trans("Visibility"), $langs->trans("VisibleDesc").'<br><br>'.$langs->trans("ItCanBeAnExpression")).'</td>';
77 print '<td class="center">'.$form->textwithpicto($langs->trans("DisplayOnPdf"), $langs->trans("DisplayOnPdfDesc")).'</td>';
78 print '<td class="center">'.$form->textwithpicto($langs->trans("Totalizable"), $langs->trans("TotalizableDesc")).'</td>';
79 print '<td class="center">'.$form->textwithpicto($langs->trans("CssOnEdit"), $langs->trans("HelpCssOnEditDesc")).'</td>';
80 print '<td class="center">'.$form->textwithpicto($langs->trans("CssOnView"), $langs->trans("HelpCssOnViewDesc")).'</td>';
81 print '<td class="center">'.$form->textwithpicto($langs->trans("CssOnList"), $langs->trans("HelpCssOnListDesc")).'</td>';
82 if (isModEnabled('multicompany')) {
83  print '<td class="center">'.$langs->trans("Entity").'</td>';
84 }
85 print '<td width="80">&nbsp;</td>';
86 print "</tr>\n";
87 
88 if (isset($extrafields->attributes[$elementtype]['type']) && is_array($extrafields->attributes[$elementtype]['type']) && count($extrafields->attributes[$elementtype]['type'])) {
89  foreach ($extrafields->attributes[$elementtype]['type'] as $key => $value) {
90  /*if (! dol_eval($extrafields->attributes[$elementtype]['enabled'][$key], 1, 1, '1')) {
91  // TODO Uncomment this to exclude extrafields of modules not enabled. Add a link to "Show extrafields disabled"
92  // continue;
93  }*/
94 
95  // Load language if required
96  if (!empty($extrafields->attributes[$elementtype]['langfile'][$key])) {
97  $langs->load($extrafields->attributes[$elementtype]['langfile'][$key]);
98  }
99 
100  print '<tr class="oddeven">';
101  // Position
102  print "<td>".dol_escape_htmltag($extrafields->attributes[$elementtype]['pos'][$key])."</td>\n";
103  // Label
104  print '<td title="'.dol_escape_htmltag($extrafields->attributes[$elementtype]['label'][$key]).'" class="tdoverflowmax150">'.dol_escape_htmltag($extrafields->attributes[$elementtype]['label'][$key])."</td>\n"; // We don't translate here, we want admin to know what is the key not translated value
105  // Label translated
106  print '<td class="tdoverflowmax150" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv($extrafields->attributes[$elementtype]['label'][$key])).'">'.dol_escape_htmltag($langs->transnoentitiesnoconv($extrafields->attributes[$elementtype]['label'][$key]))."</td>\n";
107  // Key
108  print '<td title="'.dol_escape_htmltag($key).'" class="tdoverflowmax100">'.dol_escape_htmltag($key)."</td>\n";
109  // Type
110  $typetoshow = $type2label[$extrafields->attributes[$elementtype]['type'][$key]];
111  print '<td title="'.dol_escape_htmltag($typetoshow).'" class="tdoverflowmax100">';
112  print dol_escape_htmltag($typetoshow);
113  print "</td>\n";
114  // Size
115  print '<td class="right">'.dol_escape_htmltag($extrafields->attributes[$elementtype]['size'][$key])."</td>\n";
116  // Computed field
117  print '<td class="tdoverflowmax100" title="'.dol_escape_htmltag($extrafields->attributes[$elementtype]['computed'][$key]).'">'.dol_escape_htmltag($extrafields->attributes[$elementtype]['computed'][$key])."</td>\n";
118  // Is unique ?
119  print '<td class="center">'.yn($extrafields->attributes[$elementtype]['unique'][$key])."</td>\n";
120  // Is mandatory ?
121  print '<td class="center">'.yn($extrafields->attributes[$elementtype]['required'][$key])."</td>\n";
122  // Can always be editable ?
123  print '<td class="center">'.yn($extrafields->attributes[$elementtype]['alwayseditable'][$key])."</td>\n";
124  // Visible
125  print '<td class="center tdoverflowmax100" title="'.dol_escape_htmltag($extrafields->attributes[$elementtype]['list'][$key]).'">'.dol_escape_htmltag($extrafields->attributes[$elementtype]['list'][$key])."</td>\n";
126  // Print on PDF
127  print '<td class="center tdoverflowmax100" title="'.dol_escape_htmltag($extrafields->attributes[$elementtype]['printable'][$key]).'">'.dol_escape_htmltag($extrafields->attributes[$elementtype]['printable'][$key])."</td>\n";
128  // Summable
129  print '<td class="center">'.yn($extrafields->attributes[$elementtype]['totalizable'][$key])."</td>\n";
130  // CSS
131  print '<td class="center tdoverflowmax100" title="'.dol_escape_htmltag($extrafields->attributes[$elementtype]['css'][$key]).'">'.dol_escape_htmltag($extrafields->attributes[$elementtype]['css'][$key])."</td>\n";
132  // CSS view
133  print '<td class="center tdoverflowmax100" title="'.dol_escape_htmltag($extrafields->attributes[$elementtype]['cssview'][$key]).'">'.dol_escape_htmltag($extrafields->attributes[$elementtype]['cssview'][$key])."</td>\n";
134  // CSS list
135  print '<td class="center tdoverflowmax100" title="'.dol_escape_htmltag($extrafields->attributes[$elementtype]['csslist'][$key]).'">'.dol_escape_htmltag($extrafields->attributes[$elementtype]['csslist'][$key])."</td>\n";
136  // Multicompany
137  if (isModEnabled('multicompany')) {
138  print '<td class="center">';
139  if (empty($extrafields->attributes[$elementtype]['entityid'][$key])) {
140  print $langs->trans("All");
141  } else {
142  global $multicompanylabel_cache;
143  if (!is_array($multicompanylabel_cache)) {
144  $multicompanylabel_cache = array();
145  }
146  if (empty($multicompanylabel_cache[$extrafields->attributes[$elementtype]['entityid'][$key]])) {
147  global $mc;
148  if (is_object($mc) && method_exist($mc, 'getInfo')) {
149  $mc->getInfo($extrafields->attributes[$elementtype]['entityid'][$key]);
150  $multicompanylabel_cache[$extrafields->attributes[$elementtype]['entityid'][$key]] = $mc->label ? $mc->label : $extrafields->attributes[$elementtype]['entityid'][$key];
151  }
152  }
153  print $multicompanylabel_cache[$extrafields->attributes[$elementtype]['entityid'][$key]];
154  }
155  print '</td>';
156  }
157  // Actions
158  print '<td class="right nowraponall">';
159  print '<a class="editfielda" href="'.$_SERVER["PHP_SELF"].'?action=edit&token='.newToken().'&attrname='.urlencode($key).'#formeditextrafield">'.img_edit().'</a>';
160  print '&nbsp; <a class="paddingleft" href="'.$_SERVER["PHP_SELF"].'?action=delete&token='.newToken().'&attrname='.urlencode($key).'">'.img_delete().'</a>';
161  print '</td>'."\n";
162  print "</tr>";
163  }
164 } else {
165  $colspan = 17;
166  if (isModEnabled('multicompany')) {
167  $colspan++;
168  }
169 
170  print '<tr class="oddeven">';
171  print '<td colspan="'.$colspan.'"><span class="opacitymedium">';
172  print $langs->trans("None");
173  print '</span></td>';
174  print '</tr>';
175 }
176 
177 print "</table>";
178 print '</div>';
179 ?>
180 <!-- END PHP TEMPLATE admin_extrafields_view.tpl.php -->
img_delete($titlealt='default', $other='class="pictodelete"', $morecss='')
Show delete logo.
dolGetButtonTitle($label, $helpText='', $iconClass='fa fa-file', $url='', $id='', $status=1, $params=array())
Function dolGetButtonTitle : this kind of buttons are used in title in list.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=false, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
newToken()
Return the value of token currently saved into session with name 'newtoken'.
isModEnabled($module)
Is Dolibarr module enabled.
img_edit($titlealt='default', $float=0, $other='')
Show logo editer/modifier fiche.
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...