* Copyright (C) 2005-2013 Laurent Destailleur * Copyright (C) 2014 Marcos GarcĂ­a * * 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/bookmarks/card.php * \brief Page display/creation of bookmarks * \ingroup bookmark */ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/bookmarks/class/bookmark.class.php'; $langs->load("bookmarks"); $langs->load("other"); // Security check if (! $user->rights->bookmark->lire) { restrictedArea($user, 'bookmarks'); } $id=GETPOST("id"); $action=GETPOST("action","alpha"); $title=GETPOST("title","alpha"); $url=GETPOST("url","alpha"); $target=GETPOST("target","alpha"); $userid=GETPOST("userid","int"); $position=GETPOST("position","int"); $backtopage=GETPOST('backtopage','alpha'); $bookmark=new Bookmark($db); /* * Actions */ if ($action == 'add' || $action == 'addproduct' || $action == 'update') { if ($action == 'update') { $invertedaction = 'edit'; } else { $invertedaction = 'create'; } $error = 0; if (GETPOST("cancel")) { if (empty($backtopage)) $backtopage=(GETPOST("urlsource")?GETPOST("urlsource"):((! empty($url))?$url:DOL_URL_ROOT.'/bookmarks/list.php')); header("Location: ".$backtopage); exit; } if ($action == 'update') $bookmark->fetch($_POST["id"]); $bookmark->fk_user=$userid; $bookmark->title=$title; $bookmark->url=$url; $bookmark->target=$target; $bookmark->position=$position; if (! $title) { $error++; setEventMessage($langs->transnoentities("ErrorFieldRequired",$langs->trans("BookmarkTitle")), 'errors'); } if (! $url) { $error++; setEventMessage($langs->transnoentities("ErrorFieldRequired",$langs->trans("UrlOrLink")), 'errors'); } if (! $error) { $bookmark->favicon='none'; if ($action == 'update') $res=$bookmark->update(); else $res=$bookmark->create(); if ($res > 0) { if (empty($backtopage)) $backtopage=(GETPOST("urlsource")?GETPOST("urlsource"):DOL_URL_ROOT.'/bookmarks/list.php'); header("Location: ".$backtopage); exit; } else { if ($bookmark->errno == 'DB_ERROR_RECORD_ALREADY_EXISTS') { $langs->load("errors"); setEventMessage($langs->transnoentities("WarningBookmarkAlreadyExists"), 'warnings'); } else { setEventMessage($bookmark->error, 'errors'); } $action = $invertedaction; } } else { $action = $invertedaction; } } /* * View */ llxHeader(); $form=new Form($db); $head = array(); $h=1; $head[$h][0] = $_SERVER["PHP_SELF"].($bookmark->id?'id='.$bookmark->id:''); $head[$h][1] = $langs->trans("Card"); $head[$h][2] = 'card'; $h++; $hselected='card'; if ($action == 'create') { /* * Fact bookmark creation mode */ print '
'."\n"; print ''; print ''; print_fiche_titre($langs->trans("NewBookmark")); dol_fiche_head($head, $hselected, $langs->trans("Bookmark"),0,'bookmark'); print ''; print ''; print ''; print ''; print ''; // Position print ''; print '
'.$langs->trans("BookmarkTitle").''.$langs->trans("SetHereATitleForLink").'
'.$langs->trans("UrlOrLink").''.$langs->trans("UseAnExternalHttpLinkOrRelativeDolibarrLink").'
'.$langs->trans("BehaviourOnClick").''; $liste=array(0=>$langs->trans("ReplaceWindow"),1=>$langs->trans("OpenANewWindow")); print $form->selectarray('target',$liste,1); print ''.$langs->trans("ChooseIfANewWindowMustBeOpenedOnClickOnBookmark").'
'.$langs->trans("Owner").''; $form->select_users(isset($_POST['userid'])?$_POST['userid']:$user->id,'userid',1); print ' 
'.$langs->trans("Position").''; print 'position).'">'; print ' 
'; dol_fiche_end(); print '
'; print '   '; print ''; print '
'; print '
'; } if ($id > 0 && ! preg_match('/^add/i',$action)) { /* * Fact bookmark mode or visually edition */ $bookmark->fetch($id); $head = array( array( '', $langs->trans('Card'), 'card' ) ); if ($action == 'edit') { print '
'; print ''; print ''; print ''; print ''; print ''; } dol_fiche_head($head, $hselected, $langs->trans("Bookmark"),0,'bookmark'); print ''; print ''; print ''; print ''; print ''; print ''; // Position print ''; // Date creation print ''; print '
'.$langs->trans("Ref").''.$bookmark->ref.'
'; if ($action == 'edit') { print ''; } print $langs->trans("BookmarkTitle"); if ($action == 'edit') { print ''; } print ''; if ($action == 'edit') print 'title).'">'; else print $bookmark->title; print '
'; if ($action == 'edit') { print ''; } print $langs->trans("UrlOrLink"); if ($action == 'edit') { print ''; } print ''; if ($action == 'edit') print 'url).'">'; else print 'target?' target="_blank"':'').'>'.$bookmark->url.''; print '
'.$langs->trans("BehaviourOnClick").''; if ($action == 'edit') { $liste=array(1=>$langs->trans("OpenANewWindow"),0=>$langs->trans("ReplaceWindow")); print $form->selectarray('target',$liste,isset($_POST["target"])?$_POST["target"]:$bookmark->target); } else { if ($bookmark->target == 0) print $langs->trans("ReplaceWindow"); if ($bookmark->target == 1) print $langs->trans("OpenANewWindow"); } print '
'.$langs->trans("Owner").''; if ($action == 'edit' && $user->admin) { $form->select_users(isset($_POST['userid'])?$_POST['userid']:($bookmark->fk_user?$bookmark->fk_user:''),'userid',1); } else { if ($bookmark->fk_user) { $fuser=new User($db); $fuser->fetch($bookmark->fk_user); print $fuser->getNomUrl(1); } else { print $langs->trans("Public"); } } print '
'.$langs->trans("Position").''; if ($action == 'edit') print 'position).'">'; else print $bookmark->position; print '
'.$langs->trans("DateCreation").''.dol_print_date($bookmark->datec,'dayhour').'
'; dol_fiche_end(); if ($action == 'edit') { print '
   
'; print '
'; } print "
\n"; // Edit if ($user->rights->bookmark->creer && $action != 'edit') { print " id."&action=edit\">".$langs->trans("Edit")."\n"; } // Remove if ($user->rights->bookmark->supprimer && $action != 'edit') { print " id."&action=delete\">".$langs->trans("Delete")."\n"; } print '
'; } llxFooter(); $db->close();