30require
'../main.inc.php';
31require_once DOL_DOCUMENT_ROOT.
'/bookmarks/class/bookmark.class.php';
42$langs->loadLangs(array(
'bookmarks',
'other'));
47$action =
GETPOST(
"action",
"alpha");
48$title = (string)
GETPOST(
"title",
"alpha");
49$url = (string)
GETPOST(
"url",
"alpha");
50$urlsource =
GETPOST(
"urlsource",
"alpha");
51$target =
GETPOST(
"target",
"alpha");
54$backtopage =
GETPOST(
'backtopage',
'alpha');
66$permissiontoread = $user->hasRight(
'bookmark',
'lire');
67$permissiontoadd = $user->hasRight(
'bookmark',
'creer');
68$permissiontodelete = ($user->hasRight(
'bookmark',
'supprimer') || ($permissiontoadd &&
$object->fk_user == $user->id));
76if (($action ==
'add' || $action ==
'addproduct' || $action ==
'update') && $permissiontoadd) {
77 if ($action ==
'update') {
78 $invertedaction =
'edit';
80 $invertedaction =
'create';
85 if (
GETPOST(
'cancel',
'alpha')) {
86 if (empty($backtopage)) {
87 $backtopage = ($urlsource ? $urlsource : ((!empty($url) && !preg_match(
'/^http/i', $url)) ? $url : DOL_URL_ROOT.
'/bookmarks/list.php'));
89 header(
"Location: ".$backtopage);
93 if ($action ==
'update') {
96 if (!empty($user->admin)) {
98 if (!empty($userid)) {
101 } elseif ($action !=
'update') {
112 setEventMessages($langs->transnoentities(
"ErrorFieldRequired", $langs->trans(
"BookmarkTitle")),
null,
'errors');
117 setEventMessages($langs->transnoentities(
"ErrorFieldRequired", $langs->trans(
"UrlOrLink")),
null,
'errors');
122 $langs->load(
"errors");
123 setEventMessages($langs->transnoentities(
"ErrorFieldTooLong", $langs->transnoentitiesnoconv(
"BookmarkTitle")),
null,
'errors');
129 if ($action ==
'update') {
136 if (empty($backtopage)) {
137 $backtopage = ($urlsource ? $urlsource : ((!empty($url) && !preg_match(
'/^http/i', $url)) ? $url : DOL_URL_ROOT.
'/bookmarks/list.php'));
139 header(
"Location: ".$backtopage);
142 if (
$object->errno ==
'DB_ERROR_RECORD_ALREADY_EXISTS') {
143 $langs->load(
"errors");
144 setEventMessages($langs->transnoentities(
"WarningBookmarkAlreadyExists"),
null,
'warnings');
148 $action = $invertedaction;
151 $action = $invertedaction;
161llxHeader(
'',
'',
'',
'', 0, 0,
'',
'',
'',
'mod-bookmarks page-card');
163$form =
new Form($db);
169$head[$h][0] = $_SERVER[
"PHP_SELF"].($object->id ?
'?id='.$object->id :
'');
170$head[$h][1] = $langs->trans(
"Bookmark");
171$head[$h][2] =
'card';
177if ($action ==
'create') {
182 print
'<form action="'.$_SERVER[
"PHP_SELF"].
'" method="POST" enctype="multipart/form-data">'.
"\n";
183 print
'<input type="hidden" name="token" value="'.newToken().
'">';
184 print
'<input type="hidden" name="action" value="add">';
185 print
'<input type="hidden" name="backtopage" value="'.$backtopage.
'">';
191 print
'<table class="border centpercent tableforfieldcreate">';
193 print
'<tr><td class="titlefieldcreate fieldrequired">'.$langs->trans(
"BookmarkTitle").
'</td><td><input id="titlebookmark" class="flat minwidth250" name="title" value="'.
dol_escape_htmltag($title).
'"></td><td class="hideonsmartphone"><span class="opacitymedium">'.$langs->trans(
"SetHereATitleForLink").
'</span></td></tr>';
197 print
'<tr><td class="fieldrequired">'.$langs->trans(
"UrlOrLink").
'</td><td><input class="flat quatrevingtpercent minwidth500" name="url" value="'.
dol_escape_htmltag($url).
'"></td><td class="hideonsmartphone"><span class="opacitymedium">'.$langs->trans(
"UseAnExternalHttpLinkOrRelativeDolibarrLink").
'</span></td></tr>';
200 print
'<tr><td>'.$langs->trans(
"BehaviourOnClick").
'</td><td>';
201 $liste = array(0 => $langs->trans(
"ReplaceWindow"), 1 => $langs->trans(
"OpenANewWindow"));
203 if ($url && !preg_match(
'/^http/i', $url)) {
206 print $form->selectarray(
'target', $liste, GETPOSTISSET(
'target') ?
GETPOSTINT(
'target') : $defaulttarget, 0, 0, 0,
'', 0, 0, 0,
'',
'maxwidth300');
207 print
'</td><td class="hideonsmartphone"><span class="opacitymedium">'.$langs->trans(
"ChooseIfANewWindowMustBeOpenedOnClickOnBookmark").
'</span></td></tr>';
210 print
'<tr><td>'.$langs->trans(
"Visibility").
'</td><td>';
211 print
img_picto(
'',
'user',
'class="pictofixedwidth"');
212 print $form->select_dolusers(GETPOSTISSET(
'userid') ?
GETPOSTINT(
'userid') : $user->id,
'userid', 0, null, 0, ($user->admin ?
'' : array($user->id)),
'',
'0', 0, 0,
'', ($user->admin) ? 1 : 0,
'',
'maxwidth300 widthcentpercentminusx');
213 print
'</td><td class="hideonsmartphone"></td></tr>';
216 print
'<tr><td>'.$langs->trans(
"Position").
'</td><td>';
217 print
'<input class="flat width50" name="position" value="'.(GETPOSTISSET(
"position") ?
GETPOSTINT(
"position") :
$object->
position).
'">';
218 print
'</td><td class="hideonsmartphone"></td></tr>';
224 print $form->buttonsSaveCancel(
"CreateBookmark");
230if ($id > 0 && !preg_match(
'/^add/i', $action)) {
231 if ($action ==
'edit') {
232 print
'<form name="edit" method="POST" action="'.$_SERVER[
"PHP_SELF"].
'" enctype="multipart/form-data">';
233 print
'<input type="hidden" name="token" value="'.newToken().
'">';
234 print
'<input type="hidden" name="action" value="update">';
235 print
'<input type="hidden" name="id" value="'.$object->id.
'">';
236 print
'<input type="hidden" name="urlsource" value="'.DOL_URL_ROOT.
'/bookmarks/card.php?id='.
$object->id.
'">';
237 print
'<input type="hidden" name="backtopage" value="'.$backtopage.
'">';
240 print
dol_get_fiche_head($head, $hselected, $langs->trans(
"Bookmark"), -1,
'bookmark');
242 $linkback =
'<a href="'.DOL_URL_ROOT.
'/bookmarks/list.php?restore_lastsearch_values=1">'.$langs->trans(
"BackToList").
'</a>';
244 dol_banner_tab(
$object,
'id', $linkback, 1,
'rowid',
'ref',
'',
'', 0,
'',
'', 0);
246 print
'<div class="fichecenter">';
248 print
'<div class="underbanner clearboth"></div>';
249 print
'<table class="border centpercent tableforfield">';
252 print
'<tr><td class="titlefield">';
253 if ($action ==
'edit') {
254 print
'<span class="fieldrequired">';
257 print $langs->trans(
"BookmarkTitle");
259 if ($action ==
'edit') {
264 if ($action ==
'edit') {
265 print
'<input class="flat minwidth250" name="title" value="'.(GETPOSTISSET(
"title") ?
GETPOST(
"title",
'', 2) :
$object->title).
'">';
273 if ($action ==
'edit') {
274 print
'<span class="fieldrequired">';
276 print $langs->trans(
"UrlOrLink");
277 if ($action ==
'edit') {
280 print
'</td><td class="wordbreak">';
281 if ($action ==
'edit') {
282 print
'<input class="flat minwidth500 quatrevingtpercent" name="url" value="'.(GETPOSTISSET(
"url") ?
GETPOST(
"url") :
$object->url).
'">';
284 print
'<a href="'.(preg_match(
'/^http/i',
$object->url) ?
$object->url : DOL_URL_ROOT.$object->url).
'"'.(
$object->target ?
' target="_blank" rel="noopener noreferrer"' :
'').
'>';
285 print
img_picto(
'',
'globe',
'class="paddingright"');
291 print
'<tr><td>'.$langs->trans(
"BehaviourOnClick").
'</td><td>';
292 if ($action ==
'edit') {
293 $liste = array(1 => $langs->trans(
"OpenANewWindow"), 0 => $langs->trans(
"ReplaceWindow"));
294 print $form->selectarray(
'target', $liste, GETPOSTISSET(
"target") ?
GETPOST(
"target") :
$object->target);
297 print $langs->trans(
"ReplaceWindow");
300 print $langs->trans(
"OpenANewWindow");
306 print
'<tr><td>'.$langs->trans(
"Visibility").
'</td><td>';
307 if ($action ==
'edit' && $user->admin) {
308 print
img_picto(
'',
'user',
'class="pictofixedwidth"');
309 print $form->select_dolusers(GETPOSTISSET(
'userid') ?
GETPOSTINT(
'userid') : (
$object->fk_user ?
$object->fk_user :
''),
'userid', 1, null, 0,
'',
'',
'0', 0, 0,
'', 0,
'',
'maxwidth300 widthcentpercentminusx');
312 $fuser =
new User($db);
313 $fuser->fetch(
$object->fk_user);
314 print $fuser->getNomUrl(-1);
316 print
'<span class="opacitymedium">'.$langs->trans(
"Everybody").
'</span>';
322 print
'<tr><td>'.$langs->trans(
"Position").
'</td><td>';
323 if ($action ==
'edit') {
324 print
'<input class="flat" name="position" size="5" value="'.(GETPOSTISSET(
"position") ?
GETPOSTINT(
"position") :
$object->
position).
'">';
331 print
'<tr><td>'.$langs->trans(
"DateCreation").
'</td><td>'.
dol_print_date(
$object->datec,
'dayhour').
'</td></tr>';
339 if ($action ==
'edit') {
340 print $form->buttonsSaveCancel();
348 print
'<div class="tabsAction">'.
"\n";
351 if ($permissiontoadd && $action !=
'edit') {
352 print
'<a class="butAction" href="'.$_SERVER[
"PHP_SELF"].
'?id='.
$object->id.
'&action=edit&token='.
newToken().
'">'.$langs->trans(
"Edit").
'</a>'.
"\n";
356 if ($permissiontodelete && $action !=
'edit') {
357 print
'<a class="butActionDelete" href="list.php?id='.$object->id.
'&action=delete&token='.
newToken().
'">'.$langs->trans(
"Delete").
'</a>'.
"\n";
$id
Support class for third parties, contacts, members, users or resources.
if( $user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $object
llxFooter($comment='', $zone='private', $disabledoutputofmessages=0)
Empty footer.
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader($head='', $title='', $help_url='', $target='', $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='', $morequerystring='', $morecssonbody='', $replacemainareaby='', $disablenofollow=0, $disablenoindex=0)
Empty header.
Class to manage bookmarks.
Class to manage Dolibarr users.
load_fiche_titre($title, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0, $attop=0)
Set event messages in dol_events session object.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2, $allowothertags=array())
Show picto whatever it's its name (generic function)
GETPOSTINT($paramname, $method=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='', $dragdropfile=0, $morecssdiv='')
Show tabs of a record.
dol_get_fiche_end($notab=0)
Return tab footer of a card.
dol_strlen($string, $stringencoding='UTF-8')
Make a strlen call.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs=null, $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
dol_set_focus($selector)
Set focus onto field with selector (similar behaviour of 'autofocus' HTML5 tag)
newToken()
Return the value of token currently saved into session with name 'newtoken'.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
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...
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.