dolibarr  18.0.0
edit.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (C) 2005 Matthieu Valleton <mv@seeschloss.org>
3  * Copyright (C) 2006-2016 Laurent Destailleur <eldy@users.sourceforge.net>
4  * Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
5  * Copyright (C) 2007 Patrick Raguin <patrick.raguin@gmail.com>
6  * Copyright (C) 2020 Frédéric France <frederic.france@netlogic.fr>
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 3 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program. If not, see <https://www.gnu.org/licenses/>.
20  */
21 
28 // Load Dolibarr environment
29 require '../main.inc.php';
30 require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
31 require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
32 require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
33 
34 // Load translation files required by the page
35 $langs->load("categories");
36 
37 $id = GETPOST('id', 'int');
38 $ref = GETPOST('ref', 'alphanohtml');
39 $action = (GETPOST('action', 'aZ09') ?GETPOST('action', 'aZ09') : 'edit');
40 $confirm = GETPOST('confirm');
41 $cancel = GETPOST('cancel', 'alpha');
42 $backtopage = GETPOST('backtopage', 'alpha');
43 
44 $socid = (int) GETPOST('socid', 'int');
45 $label = (string) GETPOST('label', 'alphanohtml');
46 $description = (string) GETPOST('description', 'restricthtml');
47 $color = preg_replace('/[^0-9a-f#]/i', '', (string) GETPOST('color', 'alphanohtml'));
48 $visible = (int) GETPOST('visible', 'int');
49 $parent = (int) GETPOST('parent', 'int');
50 
51 if ($id == "") {
52  dol_print_error('', 'Missing parameter id');
53  exit();
54 }
55 
56 // Security check
57 $result = restrictedArea($user, 'categorie', $id, '&category');
58 
59 $object = new Categorie($db);
60 $result = $object->fetch($id, $label);
61 if ($result <= 0) {
62  dol_print_error($db, $object->error); exit;
63 }
64 
65 $type = $object->type;
66 if (is_numeric($type)) {
67  $type = Categorie::$MAP_ID_TO_CODE[$type]; // For backward compatibility
68 }
69 
70 $extrafields = new ExtraFields($db);
71 $extrafields->fetch_name_optionals_label($object->table_element);
72 
73 // Initialize technical object to manage hooks. Note that conf->hooks_modules contains array array
74 $hookmanager->initHooks(array('categorycard'));
75 
76 $error = 0;
77 
78 
79 /*
80  * Actions
81  */
82 
83 if ($cancel) {
84  if ($backtopage) {
85  header("Location: ".$backtopage);
86  exit;
87  } else {
88  header('Location: '.DOL_URL_ROOT.'/categories/viewcat.php?id='.$object->id.'&type='.$type);
89  exit;
90  }
91 }
92 
93 // Action mise a jour d'une categorie
94 if ($action == 'update' && $user->rights->categorie->creer) {
95  $object->oldcopy = dol_clone($object);
96  $object->label = $label;
97  $object->description = dol_htmlcleanlastbr($description);
98  $object->color = $color;
99  $object->socid = ($socid > 0 ? $socid : 0);
100  $object->visible = $visible;
101  $object->fk_parent = $parent != -1 ? $parent : 0;
102 
103  if (empty($object->label)) {
104  $error++;
105  $action = 'edit';
106  setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Label")), null, 'errors');
107  }
108  if (!$error && empty($object->error)) {
109  $ret = $extrafields->setOptionalsFromPost(null, $object, '@GETPOSTISSET');
110  if ($ret < 0) {
111  $error++;
112  }
113 
114  if (!$error && $object->update($user) > 0) {
115  if ($backtopage) {
116  header("Location: ".$backtopage);
117  exit;
118  } else {
119  header('Location: '.DOL_URL_ROOT.'/categories/viewcat.php?id='.$object->id.'&type='.$type);
120  exit;
121  }
122  } else {
123  setEventMessages($object->error, $object->errors, 'errors');
124  }
125  } else {
126  setEventMessages($object->error, $object->errors, 'errors');
127  }
128 }
129 
130 
131 
132 /*
133  * View
134  */
135 
136 $form = new Form($db);
137 $formother = new FormOther($db);
138 
139 llxHeader("", "", $langs->trans("Categories"));
140 
141 print load_fiche_titre($langs->trans("ModifCat"));
142 
143 $object->fetch($id);
144 
145 
146 print "\n";
147 print '<form method="post" action="'.$_SERVER['PHP_SELF'].'">';
148 print '<input type="hidden" name="token" value="'.newToken().'">';
149 print '<input type="hidden" name="action" value="update">';
150 print '<input type="hidden" name="id" value="'.$object->id.'">';
151 print '<input type="hidden" name="type" value="'.$type.'">';
152 print '<input type="hidden" name="backtopage" value="'.$backtopage.'">';
153 
154 print dol_get_fiche_head('');
155 
156 print '<table class="border centpercent">';
157 
158 // Ref
159 print '<tr><td class="titlefieldcreate fieldrequired">';
160 print $langs->trans("Ref").'</td>';
161 print '<td><input type="text" size="25" id="label" name ="label" value="'.$object->label.'" />';
162 print '</tr>';
163 
164 // Description
165 print '<tr>';
166 print '<td>'.$langs->trans("Description").'</td>';
167 print '<td>';
168 require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
169 $doleditor = new DolEditor('description', $object->description, '', 200, 'dolibarr_notes', '', false, true, isModEnabled('fckeditor'), ROWS_6, '90%');
170 $doleditor->Create();
171 print '</td></tr>';
172 
173 // Color
174 print '<tr>';
175 print '<td>'.$langs->trans("Color").'</td>';
176 print '<td>';
177 print $formother->selectColor($object->color, 'color');
178 print '</td></tr>';
179 
180 // Parent category
181 print '<tr><td>'.$langs->trans("In").'</td><td>';
182 print img_picto('', 'category', 'class="pictofixedwidth"');
183 print $form->select_all_categories($type, $object->fk_parent, 'parent', 64, $object->id);
184 print ajax_combobox('parent');
185 print '</td></tr>';
186 
187 $parameters = array();
188 $reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
189 print $hookmanager->resPrint;
190 if (empty($reshook)) {
191  print $object->showOptionals($extrafields, 'edit', $parameters);
192 }
193 
194 print '</table>';
195 
196 
197 print dol_get_fiche_end();
198 
199 
200 print '<div class="center"><input type="submit" class="button" name"submit" value="'.$langs->trans("Modify").'"> &nbsp; <input type="submit" class="button button-cancel" name="cancel" value="'.$langs->trans("Cancel").'"></div>';
201 
202 print '</form>';
203 
204 // End of page
205 llxFooter();
206 $db->close();
llxFooter
llxFooter()
Empty footer.
Definition: wrapper.php:70
load_fiche_titre
load_fiche_titre($titre, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
Definition: functions.lib.php:5477
GETPOST
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
Definition: functions.lib.php:609
dol_print_error
dol_print_error($db='', $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
Definition: functions.lib.php:5107
$form
if($cancel &&! $id) if($action=='add' &&! $cancel) if($action=='delete') if($id) $form
Actions.
Definition: card.php:143
FormOther
Classe permettant la generation de composants html autre Only common components are here.
Definition: html.formother.class.php:39
Categorie
Class to manage categories.
Definition: categorie.class.php:47
dol_clone
dol_clone($object, $native=0)
Create a clone of instance of object (new instance with same value for each properties) With native =...
Definition: functions.lib.php:1255
img_picto
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=false, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
Definition: functions.lib.php:4135
llxHeader
if(!defined('NOREQUIRESOC')) if(!defined('NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined('NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined('NOREQUIREAJAX')) llxHeader()
Empty header.
Definition: wrapper.php:56
setEventMessages
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0)
Set event messages in dol_events session object.
Definition: functions.lib.php:8673
dol_htmlcleanlastbr
dol_htmlcleanlastbr($stringtodecode)
This function remove all ending and br at end.
Definition: functions.lib.php:7518
restrictedArea
restrictedArea(User $user, $features, $object=0, $tableandshare='', $feature2='', $dbt_keyfield='fk_soc', $dbt_select='rowid', $isdraft=0, $mode=0)
Check permissions of a user to show a page and an object.
Definition: security.lib.php:353
dol_get_fiche_end
dol_get_fiche_end($notab=0)
Return tab footer of a card.
Definition: functions.lib.php:2177
isModEnabled
isModEnabled($module)
Is Dolibarr module enabled.
Definition: functions.lib.php:207
dol_get_fiche_head
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.
Definition: functions.lib.php:1979
ExtraFields
Class to manage standard extra fields.
Definition: extrafields.class.php:39
Form
Class to manage generation of HTML components Only common components must be here.
Definition: html.form.class.php:53
ajax_combobox
ajax_combobox($htmlname, $events=array(), $minLengthToAutocomplete=0, $forcefocus=0, $widthTypeOfAutocomplete='resolve', $idforemptyvalue='-1', $morecss='')
Convert a html select field into an ajax combobox.
Definition: ajax.lib.php:449
DolEditor
Class to manage a WYSIWYG editor.
Definition: doleditor.class.php:30