Fix all relative link to work with new URL

This commit is contained in:
ArthurHoaro 2020-01-23 22:26:38 +01:00
parent b8e3630f2e
commit bee33239ed
23 changed files with 72 additions and 72 deletions

View file

@ -10,9 +10,9 @@ use ReflectionMethod;
use Shaarli\ApplicationUtils;
use Shaarli\Bookmark\Bookmark;
use Shaarli\Bookmark\BookmarkArray;
use Shaarli\Bookmark\LinkDB;
use Shaarli\Bookmark\BookmarkFilter;
use Shaarli\Bookmark\BookmarkIO;
use Shaarli\Bookmark\LinkDB;
use Shaarli\Config\ConfigJson;
use Shaarli\Config\ConfigManager;
use Shaarli\Config\ConfigPhp;
@ -534,7 +534,7 @@ class LegacyUpdater
if ($thumbnailsEnabled) {
$this->session['warnings'][] = t(
'You have enabled or changed thumbnails mode. <a href="?do=thumbs_update">Please synchronize them</a>.'
'You have enabled or changed thumbnails mode. <a href="./?do=thumbs_update">Please synchronize them</a>.'
);
}

View file

@ -16,7 +16,7 @@
*/
function updateThumb(ids, i, elements) {
const xhr = new XMLHttpRequest();
xhr.open('POST', '?do=ajax_thumb_update');
xhr.open('POST', './?do=ajax_thumb_update');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.responseType = 'json';
xhr.onload = () => {

View file

@ -27,7 +27,7 @@ function findParent(element, tagName, attributes) {
*/
function refreshToken() {
const xhr = new XMLHttpRequest();
xhr.open('GET', '?do=token');
xhr.open('GET', './?do=token');
xhr.onload = () => {
const token = document.getElementById('token');
token.setAttribute('value', xhr.responseText);
@ -546,7 +546,7 @@ function init(description) {
const refreshedToken = document.getElementById('token').value;
const fromtag = block.getAttribute('data-tag');
const xhr = new XMLHttpRequest();
xhr.open('POST', '?do=changetag');
xhr.open('POST', './?do=changetag');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onload = () => {
if (xhr.status !== 200) {
@ -558,8 +558,8 @@ function init(description) {
input.setAttribute('value', totag);
findParent(input, 'div', { class: 'rename-tag-form' }).style.display = 'none';
block.querySelector('a.tag-link').innerHTML = htmlEntities(totag);
block.querySelector('a.tag-link').setAttribute('href', `?searchtags=${encodeURIComponent(totag)}`);
block.querySelector('a.rename-tag').setAttribute('href', `?do=changetag&fromtag=${encodeURIComponent(totag)}`);
block.querySelector('a.tag-link').setAttribute('href', `./?searchtags=${encodeURIComponent(totag)}`);
block.querySelector('a.rename-tag').setAttribute('href', `./?do=changetag&fromtag=${encodeURIComponent(totag)}`);
// Refresh awesomplete values
existingTags = existingTags.map(tag => (tag === fromtag ? totag : tag));
@ -593,7 +593,7 @@ function init(description) {
if (confirm(`Are you sure you want to delete the tag "${tag}"?`)) {
const xhr = new XMLHttpRequest();
xhr.open('POST', '?do=changetag');
xhr.open('POST', './?do=changetag');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onload = () => {
block.remove();

View file

@ -979,7 +979,7 @@ function renderPage($conf, $pluginManager, $bookmarkService, $history, $sessionM
if ($oldhash != $conf->get('credentials.hash')) {
echo '<script>alert("'
. t('The old password is not correct.')
.'");document.location=\'?do=changepasswd\';</script>';
.'");document.location=\'./?do=changepasswd\';</script>';
exit;
}
// Save new password
@ -1002,10 +1002,10 @@ function renderPage($conf, $pluginManager, $bookmarkService, $history, $sessionM
);
// TODO: do not handle exceptions/errors in JS.
echo '<script>alert("'. $e->getMessage() .'");document.location=\'?do=tools\';</script>';
echo '<script>alert("'. $e->getMessage() .'");document.location=\'./?do=tools\';</script>';
exit;
}
echo '<script>alert("'. t('Your password has been changed') .'");document.location=\'?do=tools\';</script>';
echo '<script>alert("'. t('Your password has been changed') .'");document.location=\'./?do=tools\';</script>';
exit;
} else {
// show the change password form.
@ -1051,7 +1051,7 @@ function renderPage($conf, $pluginManager, $bookmarkService, $history, $sessionM
) {
$_SESSION['warnings'][] = t(
'You have enabled or changed thumbnails mode. '
.'<a href="?do=thumbs_update">Please synchronize them</a>.'
.'<a href="./?do=thumbs_update">Please synchronize them</a>.'
);
}
$conf->set('thumbnails.mode', $thumbnailsMode);
@ -1067,10 +1067,10 @@ function renderPage($conf, $pluginManager, $bookmarkService, $history, $sessionM
);
// TODO: do not handle exceptions/errors in JS.
echo '<script>alert("'. $e->getMessage() .'");document.location=\'?do=configure\';</script>';
echo '<script>alert("'. $e->getMessage() .'");document.location=\'./?do=configure\';</script>';
exit;
}
echo '<script>alert("'. t('Configuration was saved.') .'");document.location=\'?do=configure\';</script>';
echo '<script>alert("'. t('Configuration was saved.') .'");document.location=\'./?do=configure\';</script>';
exit;
} else {
// Show the configuration form.
@ -1130,7 +1130,7 @@ function renderPage($conf, $pluginManager, $bookmarkService, $history, $sessionM
}
$bookmarkService->save();
$delete = empty($_POST['totag']);
$redirect = $delete ? 'do=changetag' : 'searchtags='. urlencode(escape($_POST['totag']));
$redirect = $delete ? './do=changetag' : 'searchtags='. urlencode(escape($_POST['totag']));
$alert = $delete
? sprintf(t('The tag was removed from %d link.', 'The tag was removed from %d bookmarks.', $count), $count)
: sprintf(t('The tag was renamed in %d link.', 'The tag was renamed in %d bookmarks.', $count), $count);
@ -1519,7 +1519,7 @@ function renderPage($conf, $pluginManager, $bookmarkService, $history, $sessionM
),
get_max_upload_size(ini_get('post_max_size'), ini_get('upload_max_filesize'))
);
echo '<script>alert("'. $msg .'");document.location=\'?do='.Router::$PAGE_IMPORT .'\';</script>';
echo '<script>alert("'. $msg .'");document.location=\'./?do='.Router::$PAGE_IMPORT .'\';</script>';
exit;
}
if (! $sessionManager->checkToken($_POST['token'])) {
@ -1532,7 +1532,7 @@ function renderPage($conf, $pluginManager, $bookmarkService, $history, $sessionM
$conf,
$history
);
echo '<script>alert("'.$status.'");document.location=\'?do='
echo '<script>alert("'.$status.'");document.location=\'./?do='
.Router::$PAGE_IMPORT .'\';</script>';
exit;
}
@ -1587,12 +1587,12 @@ function renderPage($conf, $pluginManager, $bookmarkService, $history, $sessionM
// TODO: do not handle exceptions/errors in JS.
echo '<script>alert("'
. $e->getMessage()
.'");document.location=\'?do='
.'");document.location=\'./?do='
. Router::$PAGE_PLUGINSADMIN
.'\';</script>';
exit;
}
header('Location: ?do='. Router::$PAGE_PLUGINSADMIN);
header('Location: ./?do='. Router::$PAGE_PLUGINSADMIN);
exit;
}

View file

@ -32,7 +32,7 @@
</div>
</form>
<p>{'You can also edit tags in the'|t} <a href="?do=taglist&sort=usage">{'tag list'|t}</a>.</p>
<p>{'You can also edit tags in the'|t} <a href="./?do=taglist&sort=usage">{'tag list'|t}</a>.</p>
</div>
</div>
{include="page.footer"}

View file

@ -289,7 +289,7 @@
{if="! $gd_enabled"}
{'You need to enable the extension <code>php-gd</code> to use thumbnails.'|t}
{elseif="$thumbnails_enabled"}
<a href="?do=thumbs_update">{'Synchronize thumbnails'|t}</a>
<a href="./?do=thumbs_update">{'Synchronize thumbnails'|t}</a>
{/if}
</span>
</label>

View file

@ -11,7 +11,7 @@
<div class="pure-u-lg-2-3 pure-u-22-24 page-form page-visitor" id="daily">
<h2 class="window-title">
{'The Daily Shaarli'|t}
<a href="?do=dailyrss" title="{'1 RSS entry per day'|t}"><i class="fa fa-rss"></i></a>
<a href="./?do=dailyrss" title="{'1 RSS entry per day'|t}"><i class="fa fa-rss"></i></a>
</h2>
<div id="plugin_zone_start_daily" class="plugin_zone">
@ -25,7 +25,7 @@
<div class="pure-g">
<div class="pure-u-lg-1-3 pure-u-1 center">
{if="$previousday"}
<a href="?do=daily&amp;day={$previousday}">
<a href="./?do=daily&amp;day={$previousday}">
<i class="fa fa-arrow-left"></i>
{'Previous day'|t}
</a>
@ -36,7 +36,7 @@
</div>
<div class="pure-u-lg-1-3 pure-u-1 center">
{if="$nextday"}
<a href="?do=daily&amp;day={$nextday}">
<a href="./?do=daily&amp;day={$nextday}">
{'Next day'|t}
<i class="fa fa-arrow-right"></i>
</a>

View file

@ -6,7 +6,7 @@
<body>
{include="page.header"}
<form method="POST" action="?do=import" enctype="multipart/form-data" name="uploadform" id="uploadform">
<form method="POST" action="./?do=import" enctype="multipart/form-data" name="uploadform" id="uploadform">
<div class="pure-g">
<div class="pure-u-lg-1-4 pure-u-1-24"></div>
<div class="pure-u-lg-1-2 pure-u-22-24 page-form page-form-complete">

View file

@ -17,7 +17,7 @@
{if="is_file('data/user.css')"}
<link type="text/css" rel="stylesheet" href="data/user.css#" />
{/if}
<link rel="search" type="application/opensearchdescription+xml" href="?do=opensearch#" title="Shaarli search - {$shaarlititle}"/>
<link rel="search" type="application/opensearchdescription+xml" href="./?do=opensearch#" title="Shaarli search - {$shaarlititle}"/>
{if="! empty($links) && count($links) === 1"}
{$link=reset($links)}
<meta property="og:title" content="{$link.title}" />

View file

@ -205,7 +205,7 @@
</a>
</span>
<span class="linklist-item-infos-controls-item ctrl-pin">
<a href="?do=pin&amp;id={$value.id}&amp;token={$token}"
<a href="./?do=pin&amp;id={$value.id}&amp;token={$token}"
title="{$strToggleSticky}" aria-label="{$strToggleSticky}" class="pin-link {if="$value.sticky"}pinned-link{/if} pure-u-0 pure-u-lg-visible">
<i class="fa fa-thumb-tack" aria-hidden="true"></i>
</a>

View file

@ -21,24 +21,24 @@
</li>
{if="$is_logged_in || $openshaarli"}
<li class="pure-menu-item">
<a href="?do=addlink" class="pure-menu-link" id="shaarli-menu-shaare">
<a href="./?do=addlink" class="pure-menu-link" id="shaarli-menu-shaare">
<i class="fa fa-plus" aria-hidden="true"></i> {'Shaare'|t}
</a>
</li>
<li class="pure-menu-item" id="shaarli-menu-tools">
<a href="?do=tools" class="pure-menu-link">{'Tools'|t}</a>
<a href="./?do=tools" class="pure-menu-link">{'Tools'|t}</a>
</li>
{/if}
<li class="pure-menu-item" id="shaarli-menu-tags">
<a href="?do=tagcloud" class="pure-menu-link">{'Tag cloud'|t}</a>
<a href="./?do=tagcloud" class="pure-menu-link">{'Tag cloud'|t}</a>
</li>
{if="$thumbnails_enabled"}
<li class="pure-menu-item" id="shaarli-menu-picwall">
<a href="?do=picwall{$searchcrits}" class="pure-menu-link">{'Picture wall'|t}</a>
<a href="./?do=picwall{$searchcrits}" class="pure-menu-link">{'Picture wall'|t}</a>
</li>
{/if}
<li class="pure-menu-item" id="shaarli-menu-daily">
<a href="?do=daily" class="pure-menu-link">{'Daily'|t}</a>
<a href="./?do=daily" class="pure-menu-link">{'Daily'|t}</a>
</li>
{loop="$plugins_header.buttons_toolbar"}
<li class="pure-menu-item shaarli-menu-plugin">
@ -52,11 +52,11 @@
</li>
{/loop}
<li class="pure-menu-item pure-u-lg-0 shaarli-menu-mobile" id="shaarli-menu-mobile-rss">
<a href="?do={$feed_type}{$searchcrits}" class="pure-menu-link">{'RSS Feed'|t}</a>
<a href="./?do={$feed_type}{$searchcrits}" class="pure-menu-link">{'RSS Feed'|t}</a>
</li>
{if="$is_logged_in"}
<li class="pure-menu-item pure-u-lg-0 shaarli-menu-mobile" id="shaarli-menu-mobile-logout">
<a href="?do=logout" class="pure-menu-link">{'Logout'|t}</a>
<a href="./?do=logout" class="pure-menu-link">{'Logout'|t}</a>
</li>
{else}
<li class="pure-menu-item pure-u-lg-0 shaarli-menu-mobile" id="shaarli-menu-mobile-login">
@ -74,7 +74,7 @@
</a>
</li>
<li class="pure-menu-item" id="shaarli-menu-desktop-rss">
<a href="?do={$feed_type}{$searchcrits}" class="pure-menu-link" title="{'RSS Feed'|t}" aria-label="{'RSS Feed'|t}">
<a href="./?do={$feed_type}{$searchcrits}" class="pure-menu-link" title="{'RSS Feed'|t}" aria-label="{'RSS Feed'|t}">
<i class="fa fa-rss" aria-hidden="true"></i>
</a>
</li>
@ -88,7 +88,7 @@
</li>
{else}
<li class="pure-menu-item" id="shaarli-menu-desktop-logout">
<a href="?do=logout" class="pure-menu-link" aria-label="{'Logout'|t}" title="{'Logout'|t}">
<a href="./?do=logout" class="pure-menu-link" aria-label="{'Logout'|t}" title="{'Logout'|t}">
<i class="fa fa-sign-out" aria-hidden="true"></i>
</a>
</li>

View file

@ -15,7 +15,7 @@
{if="count($linksToDisplay)===0 && $is_logged_in"}
<div class="pure-g pure-alert pure-alert-warning page-single-alert">
<div class="pure-u-1 center">
{'There is no cached thumbnail. Try to <a href="?do=thumbs_update">synchronize them</a>.'|t}
{'There is no cached thumbnail. Try to <a href="./?do=thumbs_update">synchronize them</a>.'|t}
</div>
</div>
{/if}

View file

@ -16,7 +16,7 @@
<div class="clear"></div>
</noscript>
<form method="POST" action="?do=save_pluginadmin" name="pluginform" id="pluginform" class="pluginform-container">
<form method="POST" action="./?do=save_pluginadmin" name="pluginform" id="pluginform" class="pluginform-container">
<div class="pure-g">
<div class="pure-u-lg-1-8 pure-u-1-24"></div>
<div class="pure-u-lg-3-4 pure-u-22-24 page-form page-form-complete">
@ -127,7 +127,7 @@
<input type="hidden" name="token" value="{$token}">
</form>
<form action="?do=save_pluginadmin" method="POST">
<form action="./?do=save_pluginadmin" method="POST">
<div class="pure-g">
<div class="pure-u-lg-1-8 pure-u-1-24"></div>
<div class="pure-u-lg-3-4 pure-u-22-24 page-form page-form-light">

View file

@ -51,7 +51,7 @@
<div class="pure-u-1">
{if="$is_logged_in===true"}
<a href="#" class="delete-tag" aria-label="{'Delete'|t}"><i class="fa fa-trash" aria-hidden="true"></i></a>&nbsp;&nbsp;
<a href="?do=changetag&fromtag={$key|urlencode}" class="rename-tag" aria-label="{'Rename tag'|t}">
<a href="./?do=changetag&fromtag={$key|urlencode}" class="rename-tag" aria-label="{'Rename tag'|t}">
<i class="fa fa-pencil-square-o {$key}" aria-hidden="true"></i>
</a>
{/if}

View file

@ -1,8 +1,8 @@
<div class="pure-g">
<div class="pure-u-1 pure-alert pure-alert-success tag-sort">
{'Sort by:'|t}
<a href="?do=tagcloud">{'Cloud'|t}</a> &middot;
<a href="?do=taglist&sort=usage">{'Most used'|t}</a> &middot;
<a href="?do=taglist&sort=alpha">{'Alphabetical'|t}</a>
<a href="./?do=tagcloud">{'Cloud'|t}</a> &middot;
<a href="./?do=taglist&sort=usage">{'Most used'|t}</a> &middot;
<a href="./?do=taglist&sort=alpha">{'Alphabetical'|t}</a>
</div>
</div>
</div>

View file

@ -11,35 +11,35 @@
<div class="pure-u-lg-1-3 pure-u-22-24 page-form page-form-light">
<h2 class="window-title">{'Settings'|t}</h2>
<div class="tools-item">
<a href="?do=configure" title="{'Change Shaarli settings: title, timezone, etc.'|t}">
<a href="./?do=configure" title="{'Change Shaarli settings: title, timezone, etc.'|t}">
<span class="pure-button pure-u-lg-2-3 pure-u-3-4">{'Configure your Shaarli'|t}</span>
</a>
</div>
<div class="tools-item">
<a href="?do=pluginadmin" title="{'Enable, disable and configure plugins'|t}">
<a href="./?do=pluginadmin" title="{'Enable, disable and configure plugins'|t}">
<span class="pure-button pure-u-lg-2-3 pure-u-3-4">{'Plugin administration'|t}</span>
</a>
</div>
{if="!$openshaarli"}
<div class="tools-item">
<a href="?do=changepasswd" title="{'Change your password'|t}">
<a href="./?do=changepasswd" title="{'Change your password'|t}">
<span class="pure-button pure-u-lg-2-3 pure-u-3-4">{'Change password'|t}</span>
</a>
</div>
{/if}
<div class="tools-item">
<a href="?do=changetag" title="{'Rename or delete a tag in all links'|t}">
<a href="./?do=changetag" title="{'Rename or delete a tag in all links'|t}">
<span class="pure-button pure-u-lg-2-3 pure-u-3-4">{'Manage tags'|t}</span>
</a>
</div>
<div class="tools-item">
<a href="?do=import"
<a href="./?do=import"
title="{'Import Netscape HTML bookmarks (as exported from Firefox, Chrome, Opera, delicious...)'|t}">
<span class="pure-button pure-u-lg-2-3 pure-u-3-4">{'Import links'|t}</span>
</a>
</div>
<div class="tools-item">
<a href="?do=export"
<a href="./?do=export"
title="{'Export Netscape HTML bookmarks (which can be imported in Firefox, Chrome, Opera, delicious...)'|t}">
<span class="pure-button pure-u-lg-2-3 pure-u-3-4">{'Export database'|t}</span>
</a>
@ -47,7 +47,7 @@
{if="$thumbnails_enabled"}
<div class="tools-item">
<a href="?do=thumbs_update" title="{'Synchronize all link thumbnails'|t}">
<a href="./?do=thumbs_update" title="{'Synchronize all link thumbnails'|t}">
<span class="pure-button pure-u-lg-2-3 pure-u-3-4">{'Synchronize thumbnails'|t}</span>
</a>
</div>

View file

@ -159,7 +159,7 @@
{if="! $gd_enabled"}
{'You need to enable the extension <code>php-gd</code> to use thumbnails.'|t}
{elseif="$thumbnails_enabled"}
<a href="?do=thumbs_update">{'Synchonize thumbnails'|t}</a>
<a href="./?do=thumbs_update">{'Synchonize thumbnails'|t}</a>
{/if}
</label>
</td>

View file

@ -14,9 +14,9 @@
<div class="dailyAbout">
All links of one day<br>in a single page.<br>
{if="$previousday"} <a href="?do=daily&amp;day={$previousday}"><b>&lt;</b>Previous day</a>{else}<b>&lt;</b>Previous day{/if}
{if="$previousday"} <a href="./?do=daily&amp;day={$previousday}"><b>&lt;</b>Previous day</a>{else}<b>&lt;</b>Previous day{/if}
-
{if="$nextday"}<a href="?do=daily&amp;day={$nextday}">Next day<b>&gt;</b></a>{else}Next day<b>&gt;</b>{/if}
{if="$nextday"}<a href="./?do=daily&amp;day={$nextday}">Next day<b>&gt;</b></a>{else}Next day<b>&gt;</b>{/if}
<br>
{loop="$daily_about_plugin"}
@ -24,7 +24,7 @@
{/loop}
<br>
<a href="?do=dailyrss" title="1 RSS entry per day"><img src="img/feed-icon-14x14.png" alt="rss_feed">Daily RSS Feed</a>
<a href="./?do=dailyrss" title="1 RSS entry per day"><img src="img/feed-icon-14x14.png" alt="rss_feed">Daily RSS Feed</a>
</div>
<div class="dailyTitle">

View file

@ -6,7 +6,7 @@
{include="page.header"}
<div id="uploaddiv">
Import Netscape HTML bookmarks (as exported from Firefox/Chrome/Opera/Delicious/Diigo...) (Max: {$maxfilesize}).
<form method="POST" action="?do=import" enctype="multipart/form-data"
<form method="POST" action="./?do=import" enctype="multipart/form-data"
name="uploadform" id="uploadform">
<input type="hidden" name="token" value="{$token}">
<input type="hidden" name="MAX_FILE_SIZE" value="{$maxfilesize}">

View file

@ -14,7 +14,7 @@
<link type="text/css" rel="stylesheet" href="{$value}#"/>
{/loop}
{if="is_file('data/user.css')"}<link type="text/css" rel="stylesheet" href="data/user.css#" />{/if}
<link rel="search" type="application/opensearchdescription+xml" href="?do=opensearch#" title="Shaarli search - {$shaarlititle|htmlspecialchars}"/>
<link rel="search" type="application/opensearchdescription+xml" href="./?do=opensearch#" title="Shaarli search - {$shaarlititle|htmlspecialchars}"/>
{if="! empty($links) && count($links) === 1"}
{$link=reset($links)}
<meta property="og:title" content="{$link.title}" />

View file

@ -18,12 +18,12 @@
{else}
<li><a href="{$titleLink}" class="nomobile">Home</a></li>
{if="$is_logged_in"}
<li><a href="?do=logout">Logout</a></li>
<li><a href="?do=tools">Tools</a></li>
<li><a href="?do=addlink">Add link</a></li>
<li><a href="./?do=logout">Logout</a></li>
<li><a href="./?do=tools">Tools</a></li>
<li><a href="./?do=addlink">Add link</a></li>
{elseif="$openshaarli"}
<li><a href="?do=tools">Tools</a></li>
<li><a href="?do=addlink">Add link</a></li>
<li><a href="./?do=tools">Tools</a></li>
<li><a href="./?do=addlink">Add link</a></li>
{else}
<li><a href="/login">Login</a></li>
{/if}
@ -31,9 +31,9 @@
{if="$showatom"}
<li><a href="{$feedurl}?do=atom{$searchcrits}" class="nomobile">ATOM Feed</a></li>
{/if}
<li><a href="?do=tagcloud">Tag cloud</a></li>
<li><a href="?do=picwall{$searchcrits}">Picture wall</a></li>
<li><a href="?do=daily">Daily</a></li>
<li><a href="./?do=tagcloud">Tag cloud</a></li>
<li><a href="./?do=picwall{$searchcrits}">Picture wall</a></li>
<li><a href="./?do=daily">Daily</a></li>
{loop="$plugins_header.buttons_toolbar"}
<li><a
{loop="$value.attr"}

View file

@ -16,7 +16,7 @@
</noscript>
<div id="pluginsadmin">
<form action="?do=save_pluginadmin" method="POST">
<form action="./?do=save_pluginadmin" method="POST">
<section id="enabled_plugins">
<h1>Enabled Plugins</h1>
@ -88,7 +88,7 @@
</section>
</form>
<form action="?do=save_pluginadmin" method="POST">
<form action="./?do=save_pluginadmin" method="POST">
<section id="plugin_parameters">
<h1>Enabled Plugin Parameters</h1>

View file

@ -5,17 +5,17 @@
<div id="pageheader">
{include="page.header"}
<div id="toolsdiv">
<a href="?do=configure"><b>Configure your Shaarli</b><span>: Change Title, timezone...</span></a>
<a href="./?do=configure"><b>Configure your Shaarli</b><span>: Change Title, timezone...</span></a>
<br><br>
<a href="?do=pluginadmin"><b>Plugin administration</b><span>: Enable, disable and configure plugins.</span></a>
<a href="./?do=pluginadmin"><b>Plugin administration</b><span>: Enable, disable and configure plugins.</span></a>
<br><br>
{if="!$openshaarli"}<a href="?do=changepasswd"><b>Change password</b><span>: Change your password.</span></a>
<br><br>{/if}
<a href="?do=changetag"><b>Rename/delete tags</b><span>: Rename or delete a tag in all links</span></a>
<a href="./?do=changetag"><b>Rename/delete tags</b><span>: Rename or delete a tag in all links</span></a>
<br><br>
<a href="?do=import"><b>Import</b><span>: Import Netscape html bookmarks (as exported from Firefox, Chrome, Opera, delicious...)</span></a>
<a href="./?do=import"><b>Import</b><span>: Import Netscape html bookmarks (as exported from Firefox, Chrome, Opera, delicious...)</span></a>
<br><br>
<a href="?do=export"><b>Export</b><span>: Export Netscape html bookmarks (which can be imported in Firefox, Chrome, Opera, delicious...)</span></a>
<a href="./?do=export"><b>Export</b><span>: Export Netscape html bookmarks (which can be imported in Firefox, Chrome, Opera, delicious...)</span></a>
<br><br>
<a class="smallbutton"
onclick="return alertBookmarklet();"