* Copyright (C) 2006-2017 Laurent Destailleur * Copyright (C) 2005-2014 Regis Houssin * Copyright (C) 2007 Patrick Raguin * Copyright (C) 2013 Florian Henry * Copyright (C) 2015 Raphaƫl Doursenaud * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ /** * \file htdocs/categories/card.php * \ingroup category * \brief Page to create a new category */ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; $langs->load("categories"); // Security check $socid=GETPOST('socid','int'); if (!$user->rights->categorie->lire) accessforbidden(); $action = GETPOST('action','alpha'); $cancel = GETPOST('cancel','alpha'); $origin = GETPOST('origin','alpha'); $catorigin = GETPOST('catorigin','int'); $type = GETPOST('type','alpha'); $urlfrom = GETPOST('urlfrom','alpha'); $socid=GETPOST('socid','int'); $label=GETPOST('label'); $description=GETPOST('description'); $color=GETPOST('color'); $visible=GETPOST('visible'); $parent=GETPOST('parent'); if ($origin) { if ($type == Categorie::TYPE_PRODUCT) $idProdOrigin = $origin; if ($type == Categorie::TYPE_SUPPLIER) $idSupplierOrigin = $origin; if ($type == Categorie::TYPE_CUSTOMER) $idCompanyOrigin = $origin; if ($type == Categorie::TYPE_MEMBER) $idMemberOrigin = $origin; if ($type == Categorie::TYPE_CONTACT) $idContactOrigin = $origin; if ($type == Categorie::TYPE_PROJECT) $idProjectOrigin = $origin; } if ($catorigin && $type == Categorie::TYPE_PRODUCT) $idCatOrigin = $catorigin; $object = new Categorie($db); $extrafields = new ExtraFields($db); $extralabels=$extrafields->fetch_name_optionals_label($object->table_element); // Initialize technical object to manage hooks. Note that conf->hooks_modules contains array array $hookmanager->initHooks(array('categorycard')); /* * Actions */ // Add action if ($action == 'add' && $user->rights->categorie->creer) { // Action ajout d'une categorie if ($cancel) { if ($urlfrom) { header("Location: ".$urlfrom); exit; } else if ($idProdOrigin) { header("Location: ".DOL_URL_ROOT.'/categories/viewcat.php?id='.$idProdOrigin.'&type='.$type); exit; } else if ($idCompanyOrigin) { header("Location: ".DOL_URL_ROOT.'/categories/viewcat.php?id='.$idCompanyOrigin.'&type='.$type); exit; } else if ($idSupplierOrigin) { header("Location: ".DOL_URL_ROOT.'/categories/viewcat.php?id='.$idSupplierOrigin.'&type='.$type); exit; } else if ($idMemberOrigin) { header("Location: ".DOL_URL_ROOT.'/categories/viewcat.php?id='.$idMemberOrigin.'&type='.$type); exit; } else if ($idContactOrigin) { header("Location: ".DOL_URL_ROOT.'/categories/viewcat.php?id='.$idContactOrigin.'&type='.$type); exit; } else if ($idProjectOrigin) { header("Location: ".DOL_URL_ROOT.'/categories/viewcat.php?id='.$idProjectOrigin.'&type='.$type); exit; } else { header("Location: ".DOL_URL_ROOT.'/categories/index.php?leftmenu=cat&type='.$type); exit; } } $object->label = $label; $object->color = $color; $object->description = dol_htmlcleanlastbr($description); $object->socid = ($socid ? $socid : 'null'); $object->visible = $visible; $object->type = $type; if ($parent != "-1") $object->fk_parent = $parent; $ret = $extrafields->setOptionalsFromPost($extralabels,$object); if ($ret < 0) $error++; if (! $object->label) { $error++; setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Ref")), null, 'errors'); $action = 'create'; } // Create category in database if (! $error) { $result = $object->create($user); if ($result > 0) { $action = 'confirmed'; $_POST["addcat"] = ''; } else { setEventMessages($object->error, $object->errors, 'errors'); } } } // Confirm action if (($action == 'add' || $action == 'confirmed') && $user->rights->categorie->creer) { // Action confirmation de creation categorie if ($action == 'confirmed') { if ($urlfrom) { header("Location: ".$urlfrom); exit; } else if ($idProdOrigin) { header("Location: ".DOL_URL_ROOT.'/categories/viewcat.php?id='.$idProdOrigin.'&type='.$type.'&mesg='.urlencode($langs->trans("CatCreated"))); exit; } else if ($idCompanyOrigin) { header("Location: ".DOL_URL_ROOT.'/categories/viewcat.php?id='.$idCompanyOrigin.'&type='.$type.'&mesg='.urlencode($langs->trans("CatCreated"))); exit; } else if ($idSupplierOrigin) { header("Location: ".DOL_URL_ROOT.'/categories/viewcat.php?id='.$idSupplierOrigin.'&type='.$type.'&mesg='.urlencode($langs->trans("CatCreated"))); exit; } else if ($idMemberOrigin) { header("Location: ".DOL_URL_ROOT.'/categories/viewcat.php?id='.$idMemberOrigin.'&type='.$type.'&mesg='.urlencode($langs->trans("CatCreated"))); exit; } else if ($idContactOrigin) { header("Location: ".DOL_URL_ROOT.'/categories/viewcat.php?id='.$idContactOrigin.'&type='.$type.'&mesg='.urlencode($langs->trans("CatCreated"))); exit; } else if ($idProjectOrigin) { header("Location: ".DOL_URL_ROOT.'/categories/viewcat.php?id='.$idProjectOrigin.'&type='.$type.'&mesg='.urlencode($langs->trans("CatCreated"))); exit; } header("Location: ".DOL_URL_ROOT.'/categories/viewcat.php?id='.$result.'&type='.$type); exit; } } /* * View */ $form = new Form($db); $formother = new FormOther($db); $helpurl=''; llxHeader("",$langs->trans("Categories"),$helpurl); if ($user->rights->categorie->creer) { // Create or add if ($action == 'create' || $_POST["addcat"] == 'addcat') { dol_set_focus('#label'); print '
'; print ''; print ''; print ''; print ''; print ''; print ''; if ($origin) print ''; if ($catorigin) print ''; print load_fiche_titre($langs->trans("CreateCat")); dol_fiche_head(''); print ''; // Ref print ''; print ''; // Description print ''; // Color print ''; // Parent category print ''; $parameters=array(); $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; if (empty($reshook) && ! empty($extrafields->attribute_label)) { print $object->showOptionals($extrafields,'edit'); } print '
'.$langs->trans("Ref").''; print'
'.$langs->trans("Description").''; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; $doleditor=new DolEditor('description',$description,'',200,'dolibarr_notes','',false,true,$conf->global->FCKEDITOR_ENABLE_PRODUCTDESC,ROWS_6,'90%'); $doleditor->Create(); print '
'.$langs->trans("Color").''; print $formother->selectColor($color,'color'); print '
'.$langs->trans("AddIn").''; print $form->select_all_categories($type, $catorigin, 'parent'); print ajax_combobox('parent'); print '
'; dol_fiche_end(''); print '
'; print ''; print '     '; print ''; print '
'; print '
'; } } llxFooter(); $db->close();