X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=index.php;h=73d9e0224d96fe8a784e66459aa16e39b316a5b0;hb=b0428aa9b02b058b72c40b6e8dc2298d55bf692f;hp=7da8c22f3562e40446cc7d93468c8a95926f71c8;hpb=6c50a6ccceecf54850e62c312ab2397b84d89ab4;p=github%2Fshaarli%2FShaarli.git diff --git a/index.php b/index.php index 7da8c22f..73d9e022 100644 --- a/index.php +++ b/index.php @@ -53,7 +53,6 @@ require_once __DIR__ . '/vendor/autoload.php'; // 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'; @@ -78,6 +77,7 @@ use Shaarli\Languages; 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; @@ -252,7 +252,7 @@ if (isset($_POST['login'])) { // Optional redirect after login: if (isset($_GET['post'])) { - $uri = '?post='. urlencode($_GET['post']); + $uri = './?post='. urlencode($_GET['post']); foreach (array('description', 'source', 'title', 'tags') as $param) { if (!empty($_GET[$param])) { $uri .= '&'.$param.'='.urlencode($_GET[$param]); @@ -263,22 +263,22 @@ if (isset($_POST['login'])) { } if (isset($_GET['edit_link'])) { - header('Location: ?edit_link='. escape($_GET['edit_link'])); + header('Location: ./?edit_link='. escape($_GET['edit_link'])); exit; } if (isset($_POST['returnurl'])) { // Prevent loops over login screen. - if (strpos($_POST['returnurl'], 'do=login') === false) { + if (strpos($_POST['returnurl'], '/login') === false) { header('Location: '. generateLocation($_POST['returnurl'], $_SERVER['HTTP_HOST'])); exit; } } - header('Location: ?'); + header('Location: ./?'); exit; } else { $loginManager->handleFailedLogin($_SERVER); - $redir = '&username='. urlencode($_POST['login']); + $redir = '?username='. urlencode($_POST['login']); if (isset($_GET['post'])) { $redir .= '&post=' . urlencode($_GET['post']); foreach (array('description', 'source', 'title', 'tags') as $param) { @@ -288,7 +288,7 @@ if (isset($_POST['login'])) { } } // Redirect to login screen. - echo ''; + echo ''; exit; } } @@ -530,6 +530,7 @@ function showLinkList($PAGE, $linkDb, $conf, $pluginManager, $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, @@ -543,6 +544,8 @@ function renderPage($conf, $pluginManager, $bookmarkService, $history, $sessionM $conf->get('resource.updates'), $updater->getDoneUpdates() ); + + $pageCacheManager->invalidateCaches(); } } catch (Exception $e) { die($e->getMessage()); @@ -610,37 +613,7 @@ function renderPage($conf, $pluginManager, $bookmarkService, $history, $sessionM // -------- 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; } @@ -659,6 +632,7 @@ function renderPage($conf, $pluginManager, $bookmarkService, $history, $sessionM alphabetical_sort($tags, false, true); + $logMaxCount = $maxcount > 1 ? log($maxcount, 30) : 1; $tagList = array(); foreach ($tags as $key => $value) { if (in_array($key, $filteringTags)) { @@ -666,8 +640,8 @@ function renderPage($conf, $pluginManager, $bookmarkService, $history, $sessionM } // 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, '.', ''), @@ -923,7 +897,7 @@ function renderPage($conf, $pluginManager, $bookmarkService, $history, $sessionM // Show login screen, then redirect to ?post=... if (isset($_GET['post'])) { header( // Redirect to login page, then back to post link. - 'Location: ?do=login&post='.urlencode($_GET['post']). + 'Location: /login?post='.urlencode($_GET['post']). (!empty($_GET['title'])?'&title='.urlencode($_GET['title']):''). (!empty($_GET['description'])?'&description='.urlencode($_GET['description']):''). (!empty($_GET['tags'])?'&tags='.urlencode($_GET['tags']):''). @@ -934,7 +908,7 @@ function renderPage($conf, $pluginManager, $bookmarkService, $history, $sessionM showLinkList($PAGE, $bookmarkService, $conf, $pluginManager, $loginManager); if (isset($_GET['edit_link'])) { - header('Location: ?do=login&edit_link='. escape($_GET['edit_link'])); + header('Location: /login?edit_link='. escape($_GET['edit_link'])); exit; } @@ -978,7 +952,7 @@ function renderPage($conf, $pluginManager, $bookmarkService, $history, $sessionM if ($oldhash != $conf->get('credentials.hash')) { echo ''; + .'");document.location=\'./?do=changepasswd\';'; exit; } // Save new password @@ -1001,10 +975,10 @@ function renderPage($conf, $pluginManager, $bookmarkService, $history, $sessionM ); // TODO: do not handle exceptions/errors in JS. - echo ''; + echo ''; exit; } - echo ''; + echo ''; exit; } else { // show the change password form. @@ -1050,7 +1024,7 @@ function renderPage($conf, $pluginManager, $bookmarkService, $history, $sessionM ) { $_SESSION['warnings'][] = t( 'You have enabled or changed thumbnails mode. ' - .'Please synchronize them.' + .'Please synchronize them.' ); } $conf->set('thumbnails.mode', $thumbnailsMode); @@ -1058,7 +1032,7 @@ function renderPage($conf, $pluginManager, $bookmarkService, $history, $sessionM 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 . @@ -1066,10 +1040,10 @@ function renderPage($conf, $pluginManager, $bookmarkService, $history, $sessionM ); // TODO: do not handle exceptions/errors in JS. - echo ''; + echo ''; exit; } - echo ''; + echo ''; exit; } else { // Show the configuration form. @@ -1129,7 +1103,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); @@ -1518,7 +1492,7 @@ function renderPage($conf, $pluginManager, $bookmarkService, $history, $sessionM ), get_max_upload_size(ini_get('post_max_size'), ini_get('upload_max_filesize')) ); - echo ''; + echo ''; exit; } if (! $sessionManager->checkToken($_POST['token'])) { @@ -1531,7 +1505,7 @@ function renderPage($conf, $pluginManager, $bookmarkService, $history, $sessionM $conf, $history ); - echo ''; exit; } @@ -1586,12 +1560,12 @@ function renderPage($conf, $pluginManager, $bookmarkService, $history, $sessionM // TODO: do not handle exceptions/errors in JS. echo ''; exit; } - header('Location: ?do='. Router::$PAGE_PLUGINSADMIN); + header('Location: ./?do='. Router::$PAGE_PLUGINSADMIN); exit; } @@ -1890,7 +1864,7 @@ function install($conf, $sessionManager, $loginManager) echo ''; + .');document.location=\'./login\';'; exit; } @@ -1943,6 +1917,8 @@ $app->group('/api/v1', function () { $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'); })->add('\Shaarli\Front\ShaarliMiddleware'); $response = $app->run(true);