Przeglądaj źródła

Merge pull request #444 from dimtion/404_template

Create 404 template
Arthur 8 lat temu
rodzic
commit
db36b8812d
3 zmienionych plików z 45 dodań i 6 usunięć
  1. 14 1
      inc/shaarli.css
  2. 14 5
      index.php
  3. 17 0
      tpl/404.html

+ 14 - 1
inc/shaarli.css

@@ -1101,4 +1101,17 @@ div.dailyNoEntry {
 ul.errors {
     color: red;
     float: left;
-}
+}
+
+/* 404 page */
+.error-container {
+
+    margin: 50px;
+    margin-top: 20px;
+}
+
+.error-container h1 {
+    text-decoration: none;
+    font-style: normal;
+    color: #80AD48;
+}

+ 14 - 5
index.php

@@ -472,7 +472,7 @@ if (isset($_POST['login']))
             session_set_cookie_params(0,$cookiedir,$_SERVER['SERVER_NAME']); // 0 means "When browser closes"
             session_regenerate_id(true);
         }
-        
+
         // Optional redirect after login:
         if (isset($_GET['post'])) {
             $uri = '?post='. urlencode($_GET['post']);
@@ -681,6 +681,18 @@ class pageBuilder
         if ($this->tpl===false) $this->initialize(); // Lazy initialization
         $this->tpl->draw($page);
     }
+
+    /**
+    * Render a 404 page (uses the template : tpl/404.tpl)
+    *
+    * usage : $PAGE->render404('The link was deleted')
+    * @param string $message A messate to display what is not found
+    */
+    public function render404($message='The page you are trying to reach does not exist or has been deleted.') {
+        header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found');
+        $this->tpl->assign('error_message', $message);
+        $this->renderPage('404');
+    }
 }
 
 // ------------------------------------------------------------------------------------------
@@ -1883,10 +1895,7 @@ function buildLinkList($PAGE,$LINKSDB)
         $linksToDisplay = $LINKSDB->filter($search_type, $search_crits);
 
         if (count($linksToDisplay) == 0) {
-            header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found');
-            echo '<h1>404 Not found.</h1>Oh crap.
-                  The link you are trying to reach does not exist or has been deleted.';
-            echo '<br>Would you mind <a href="?">clicking here</a>?';
+            $PAGE->render404('The link you are trying to reach does not exist or has been deleted.');
             exit;
         }
     }

+ 17 - 0
tpl/404.html

@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+    {include="includes"}
+</head>
+<body>
+<div id="pageheader">
+    {include="page.header"}
+</div>
+<div class="error-container">
+    <h1>404 Not found <small>Oh crap!</small></h1>
+    <p>{$error_message}</p>
+    <p>Would you mind <a href="?">clicking here</a> ?</p>
+</div>
+{include="page.footer"}
+</body>
+</html>