27 require
'../main.inc.php';
28 require_once DOL_DOCUMENT_ROOT.
'/bookmarks/class/bookmark.class.php';
31 $langs->loadLangs(array(
'bookmarks',
'other'));
34 if (!$user->rights->bookmark->lire) {
39 $action =
GETPOST(
"action",
"alpha");
40 $title = (string)
GETPOST(
"title",
"alpha");
41 $url = (string)
GETPOST(
"url",
"alpha");
42 $urlsource =
GETPOST(
"urlsource",
"alpha");
43 $target =
GETPOST(
"target",
"alpha");
44 $userid =
GETPOST(
"userid",
"int");
45 $position =
GETPOST(
"position",
"int");
46 $backtopage =
GETPOST(
'backtopage',
'alpha');
55 if ($action ==
'add' || $action ==
'addproduct' || $action ==
'update')
57 if ($action ==
'update') {
58 $invertedaction =
'edit';
60 $invertedaction =
'create';
67 if (empty($backtopage)) $backtopage = ($urlsource ? $urlsource : ((!empty($url) && !preg_match(
'/^http/i', $url)) ? $url : DOL_URL_ROOT.
'/bookmarks/list.php'));
68 header(
"Location: ".$backtopage);
72 if ($action ==
'update') $object->fetch(
GETPOST(
"id",
'int'));
74 if (!empty($userid)) {
75 $object->fk_user = $userid;
77 $object->title = $title;
79 $object->target = $target;
80 $object->position = $position;
84 setEventMessages($langs->transnoentities(
"ErrorFieldRequired", $langs->trans(
"BookmarkTitle")), null,
'errors');
89 setEventMessages($langs->transnoentities(
"ErrorFieldRequired", $langs->trans(
"UrlOrLink")), null,
'errors');
94 $object->favicon =
'none';
96 if ($action ==
'update') $res = $object->update();
97 else $res = $object->create();
101 if (empty($backtopage)) $backtopage = ($urlsource ? $urlsource : ((!empty($url) && !preg_match(
'/^http/i', $url)) ? $url : DOL_URL_ROOT.
'/bookmarks/list.php'));
102 header(
"Location: ".$backtopage);
105 if ($object->errno ==
'DB_ERROR_RECORD_ALREADY_EXISTS')
107 $langs->load(
"errors");
108 setEventMessages($langs->transnoentities(
"WarningBookmarkAlreadyExists"), null,
'warnings');
112 $action = $invertedaction;
115 $action = $invertedaction;
126 $form =
new Form($db);
132 $head[$h][0] =
$_SERVER[
"PHP_SELF"].($object->id ?
'id='.$object->id :
'');
133 $head[$h][1] = $langs->trans(
"Bookmark");
134 $head[$h][2] =
'card';
140 if ($action ==
'create')
146 print '<form action="'.$_SERVER[
"PHP_SELF"].
'" method="POST" enctype="multipart/form-data">'.
"\n";
147 print '<input type="hidden" name="token" value="'.newToken().
'">';
148 print '<input type="hidden" name="action" value="add">';
149 print '<input type="hidden" name="backtopage" value="'.$backtopage.
'">';
155 print '<table class="border centpercent tableforfieldcreate">';
157 print
'<tr><td class="titlefieldcreate fieldrequired">'.$langs->trans(
"BookmarkTitle").
'</td><td><input id="titlebookmark" class="flat minwidth300" name="title" value="'.
dol_escape_htmltag($title).
'"></td><td class="hideonsmartphone">'.$langs->trans(
"SetHereATitleForLink").
'</td></tr>';
161 print
'<tr><td class="fieldrequired">'.$langs->trans(
"UrlOrLink").
'</td><td><input class="flat quatrevingtpercent" name="url" value="'.
dol_escape_htmltag($url).
'"></td><td class="hideonsmartphone">'.$langs->trans(
"UseAnExternalHttpLinkOrRelativeDolibarrLink").
'</td></tr>';
164 print
'<tr><td>'.$langs->trans(
"BehaviourOnClick").
'</td><td>';
165 $liste = array(0=>$langs->trans(
"ReplaceWindow"), 1=>$langs->trans(
"OpenANewWindow"));
166 print $form->selectarray(
'target', $liste, 1);
167 print
'</td><td class="hideonsmartphone">'.$langs->trans(
"ChooseIfANewWindowMustBeOpenedOnClickOnBookmark").
'</td></tr>';
170 print
'<tr><td>'.$langs->trans(
"Owner").
'</td><td>';
171 print
img_picto(
'',
'user').
' '.$form->select_dolusers(
GETPOSTISSET(
'userid') ?
GETPOST(
'userid',
'int') : $user->id,
'userid', 1,
'', 0,
'',
'', 0, 0, 0,
'', 0,
'',
'maxwidth300');
172 print
'</td><td class="hideonsmartphone"> </td></tr>';
175 print
'<tr><td>'.$langs->trans(
"Position").
'</td><td>';
176 print
'<input class="flat" name="position" size="5" value="'.(GETPOSTISSET(
"position") ?
GETPOST(
"position",
'int') : $object->position).
'">';
177 print
'</td><td class="hideonsmartphone"> </td></tr>';
183 print
'<div align="center">';
184 print
'<input type="submit" class="button" value="'.$langs->trans(
"CreateBookmark").
'" name="create"> ';
185 print
'<input type="submit" class="button button-cancel" value="'.$langs->trans(
"Cancel").
'" name="cancel">';
192 if ($id > 0 && !preg_match(
'/^add/i', $action))
203 $langs->trans(
'Card'),
208 if ($action ==
'edit')
210 print
'<form name="edit" method="POST" action="'.$_SERVER[
"PHP_SELF"].
'" enctype="multipart/form-data">';
211 print
'<input type="hidden" name="token" value="'.newToken().
'">';
212 print
'<input type="hidden" name="action" value="update">';
213 print
'<input type="hidden" name="id" value="'.$object->id.
'">';
214 print
'<input type="hidden" name="urlsource" value="'.DOL_URL_ROOT.
'/bookmarks/card.php?id='.$object->id.
'">';
215 print
'<input type="hidden" name="backtopage" value="'.$backtopage.
'">';
219 print
dol_get_fiche_head($head, $hselected, $langs->trans(
"Bookmark"), -1,
'bookmark');
221 $linkback =
'<a href="'.DOL_URL_ROOT.
'/bookmarks/list.php?restore_lastsearch_values=1">'.$langs->trans(
"BackToList").
'</a>';
223 dol_banner_tab($object,
'id', $linkback, 1,
'rowid',
'ref',
'',
'', 0,
'',
'', 0);
225 print
'<div class="fichecenter">';
227 print
'<div class="underbanner clearboth"></div>';
228 print
'<table class="border centpercent tableforfield">';
230 print
'<tr><td class="titlefield">';
231 if ($action ==
'edit') {
232 print
'<span class="fieldrequired">';
235 print $langs->trans(
"BookmarkTitle");
237 if ($action ==
'edit') {
242 if ($action ==
'edit') print
'<input class="flat minwidth300" name="title" value="'.(GETPOSTISSET(
"title") ?
GETPOST(
"title",
'', 2) : $object->title).
'">';
243 else print $object->title;
247 if ($action ==
'edit') {
248 print
'<span class="fieldrequired">';
250 print $langs->trans(
"UrlOrLink");
251 if ($action ==
'edit') {
255 if ($action ==
'edit') print
'<input class="flat minwidth500 quatrevingtpercent" name="url" value="'.(GETPOSTISSET(
"url") ?
GETPOST(
"url") : $object->url).
'">';
256 else print
'<a href="'.(preg_match(
'/^http/i', $object->url) ? $object->url : DOL_URL_ROOT.$object->url).
'"'.($object->target ?
' target="_blank"' :
'').
'>'.$object->url.
'</a>';
259 print
'<tr><td>'.$langs->trans(
"BehaviourOnClick").
'</td><td>';
260 if ($action ==
'edit')
262 $liste = array(1=>$langs->trans(
"OpenANewWindow"), 0=>$langs->trans(
"ReplaceWindow"));
263 print $form->selectarray(
'target', $liste,
GETPOSTISSET(
"target") ?
GETPOST(
"target") : $object->target);
265 if ($object->target == 0) print $langs->trans(
"ReplaceWindow");
266 if ($object->target == 1) print $langs->trans(
"OpenANewWindow");
270 print
'<tr><td>'.$langs->trans(
"Owner").
'</td><td>';
271 if ($action ==
'edit' && $user->admin)
273 print
img_picto(
'',
'user').
' '.$form->select_dolusers(
GETPOSTISSET(
'userid') ?
GETPOST(
'userid',
'int') : ($object->fk_user ? $object->fk_user :
''),
'userid', 1,
'', 0,
'',
'', 0, 0, 0,
'', 0,
'',
'maxwidth300');
275 if ($object->fk_user > 0)
277 $fuser =
new User($db);
278 $fuser->fetch($object->fk_user);
279 print $fuser->getNomUrl(1);
281 print $langs->trans(
"Public");
287 print
'<tr><td>'.$langs->trans(
"Position").
'</td><td>';
288 if ($action ==
'edit') print
'<input class="flat" name="position" size="5" value="'.(GETPOSTISSET(
"position") ?
GETPOST(
"position",
'int') : $object->position).
'">';
289 else print $object->position;
293 print
'<tr><td>'.$langs->trans(
"DateCreation").
'</td><td>'.
dol_print_date($object->datec,
'dayhour').
'</td></tr>';
301 if ($action ==
'edit')
303 print
'<div align="center"><input class="button button-save" type="submit" name="save" value="'.$langs->trans(
"Save").
'"> <input class="button button-cancel" type="submit" name="cancel" value="'.$langs->trans(
"Cancel").
'"></div>';
310 print
"<div class=\"tabsAction\">\n";
313 if ($user->rights->bookmark->creer && $action !=
'edit')
315 print
'<a class="butAction" href="'.$_SERVER[
"PHP_SELF"].
'?id='.$object->id.
'&action=edit&token='.
newToken().
'">'.$langs->trans(
"Edit").
'</a>'.
"\n";
319 if ($user->rights->bookmark->supprimer && $action !=
'edit')
321 print
'<a class="butActionDelete" href="list.php?bid='.$object->id.
'&action=delete&token='.
newToken().
'">'.$langs->trans(
"Delete").
'</a>'.
"\n";
GETPOST($paramname, $check= 'alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
Class to manage Dolibarr users.
setEventMessages($mesg, $mesgs, $style= 'mesgs', $messagekey= '')
Set event messages in dol_events session object.
GETPOSTISSET($paramname)
Return true if we are in a context of submitting the parameter $paramname.
load_fiche_titre($titre, $morehtmlright= '', $picto= 'generic', $pictoisfullpath=0, $id= '', $morecssontable= '', $morehtmlcenter= '')
Load a title with 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)
restrictedArea($user, $features, $objectid=0, $tableandshare= '', $feature2= '', $dbt_keyfield= 'fk_soc', $dbt_select= 'rowid', $isdraft=0)
Check permissions of a user to show a page and an object.
print $_SERVER["PHP_SELF"]
Edit parameters.
dol_get_fiche_head($links=array(), $active= '', $title= '', $notab=0, $picto= '', $pictoisfullpath=0, $morehtmlright= '', $morecss= '', $limittoshow=0, $moretabssuffix= '')
Show tabs of a record.
print
Draft customers invoices.
dol_print_date($time, $format= '', $tzoutput= 'auto', $outputlangs= '', $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
newToken()
Return the value of token currently saved into session with name 'newtoken'.
dol_get_fiche_end($notab=0)
Return tab footer of a card.
dol_banner_tab($object, $paramid, $morehtml= '', $shownav=1, $fieldid= 'rowid', $fieldref= 'ref', $morehtmlref= '', $moreparam= '', $nodbprefix=0, $morehtmlleft= '', $morehtmlstatus= '', $onlybanner=0, $morehtmlright= '')
Show tab footer of a card.
Class to manage bookmarks.
dol_set_focus($selector)
Set focus onto field with selector (similar behaviour of 'autofocus' HTML5 tag)
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $keepmoretags= '', $escapeonlyhtmltags=0)
Returns text escaped for inclusion in HTML alt or title tags, or into values of HTML input fields...