// Shaarli library
require_once 'application/bookmark/LinkUtils.php';
require_once 'application/config/ConfigPlugin.php';
-require_once 'application/feed/Cache.php';
require_once 'application/http/HttpUtils.php';
require_once 'application/http/UrlUtils.php';
require_once 'application/updater/UpdaterUtils.php';
use Shaarli\Netscape\NetscapeBookmarkUtils;
use Shaarli\Plugin\PluginManager;
use Shaarli\Render\PageBuilder;
+use Shaarli\Render\PageCacheManager;
use Shaarli\Render\ThemeUtils;
use Shaarli\Router;
use Shaarli\Security\LoginManager;
*/
function renderPage($conf, $pluginManager, $bookmarkService, $history, $sessionManager, $loginManager)
{
+ $pageCacheManager = new PageCacheManager($conf->get('resource.page_cache'));
$updater = new Updater(
UpdaterUtils::read_updates_file($conf->get('resource.updates')),
$bookmarkService,
$conf->get('resource.updates'),
$updater->getDoneUpdates()
);
+
+ $pageCacheManager->invalidateCaches();
}
} catch (Exception $e) {
die($e->getMessage());
}
// -------- User wants to logout.
if (isset($_SERVER['QUERY_STRING']) && startsWith($_SERVER['QUERY_STRING'], 'do=logout')) {
- invalidateCaches($conf->get('resource.page_cache'));
- $sessionManager->logout();
- setcookie(LoginManager::$STAY_SIGNED_IN_COOKIE, 'false', 0, WEB_PATH);
- header('Location: ?');
+ header('Location: ./logout');
exit;
}
// -------- Picture wall
if ($targetPage == Router::$PAGE_PICWALL) {
- $PAGE->assign('pagetitle', t('Picture wall') .' - '. $conf->get('general.title', 'Shaarli'));
- if (! $conf->get('thumbnails.mode', Thumbnailer::MODE_NONE) === Thumbnailer::MODE_NONE) {
- $PAGE->assign('linksToDisplay', []);
- $PAGE->renderPage('picwall');
- exit;
- }
-
- // Optionally filter the results:
- $links = $bookmarkService->search($_GET);
- $linksToDisplay = [];
-
- // Get only bookmarks which have a thumbnail.
- // Note: we do not retrieve thumbnails here, the request is too heavy.
- $factory = new FormatterFactory($conf, $loginManager->isLoggedIn());
- $formatter = $factory->getFormatter();
- foreach ($links as $key => $link) {
- if ($link->getThumbnail() !== false) {
- $linksToDisplay[] = $formatter->format($link);
- }
- }
-
- $data = [
- 'linksToDisplay' => $linksToDisplay,
- ];
- $pluginManager->executeHooks('render_picwall', $data, ['loggedin' => $loginManager->isLoggedIn()]);
-
- foreach ($data as $key => $value) {
- $PAGE->assign($key, $value);
- }
-
- $PAGE->renderPage('picwall');
+ header('Location: ./picture-wall');
exit;
}
alphabetical_sort($tags, false, true);
+ $logMaxCount = $maxcount > 1 ? log($maxcount, 30) : 1;
$tagList = array();
foreach ($tags as $key => $value) {
if (in_array($key, $filteringTags)) {
}
// Tag font size scaling:
// default 15 and 30 logarithm bases affect scaling,
- // 22 and 6 are arbitrary font sizes for max and min sizes.
- $size = log($value, 15) / log($maxcount, 30) * 2.2 + 0.8;
+ // 2.2 and 0.8 are arbitrary font sizes in em.
+ $size = log($value, 15) / $logMaxCount * 2.2 + 0.8;
$tagList[$key] = array(
'count' => $value,
'size' => number_format($size, 2, '.', ''),
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
);
// 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.
) {
$_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);
try {
$conf->write($loginManager->isLoggedIn());
$history->updateSettings();
- invalidateCaches($conf->get('resource.page_cache'));
+ $pageCacheManager->invalidateCaches();
} catch (Exception $e) {
error_log(
'ERROR while writing config file after configuration update.' . PHP_EOL .
);
// 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.
}
$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);
),
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'])) {
$conf,
$history
);
- echo '<script>alert("'.$status.'");document.location=\'?do='
+ echo '<script>alert("'.$status.'");document.location=\'./?do='
.Router::$PAGE_IMPORT .'\';</script>';
exit;
}
// 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;
}
exit;
}
-$containerBuilder = new ContainerBuilder($conf, $sessionManager, $loginManager);
+$containerBuilder = new ContainerBuilder($conf, $sessionManager, $loginManager, WEB_PATH);
$container = $containerBuilder->build();
$app = new App($container);
$app->group('', function () {
$this->get('/login', '\Shaarli\Front\Controller\LoginController:index')->setName('login');
+ $this->get('/logout', '\Shaarli\Front\Controller\LogoutController:index')->setName('logout');
+ $this->get('/picture-wall', '\Shaarli\Front\Controller\PictureWallController:index')->setName('picwall');
+ $this->get('/add-tag/{newTag}', '\Shaarli\Front\Controller\TagController:addTag')->setName('add-tag');
})->add('\Shaarli\Front\ShaarliMiddleware');
$response = $app->run(true);