]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
first version of a 404 page
authorcash <cash.costello@gmail.com>
Tue, 6 Dec 2011 02:54:09 +0000 (21:54 -0500)
committercash <cash.costello@gmail.com>
Tue, 6 Dec 2011 02:54:09 +0000 (21:54 -0500)
engine/lib/pagehandler.php
languages/en.php
views/default/errors/404.php [new file with mode: 0644]
views/default/errors/default.php [new file with mode: 0644]
views/default/page/error.php [new file with mode: 0644]
views/default/page/layouts/error.php [new file with mode: 0644]

index aba921416caf88fb7603f3cdd460d7433033efd8..16be6e3b2855fdbec972071f34f129068c70dc30 100644 (file)
@@ -110,3 +110,34 @@ function elgg_unregister_page_handler($handler) {
 
        unset($CONFIG->pagehandler[$handler]);
 }
+
+/**
+ * Serve an error page
+ *
+ * @param string $hook   The name of the hook
+ * @param string $type   The type of the hook
+ * @param bool   $result The current value of the hook
+ * @param array  $params Parameters related to the hook
+ */
+function elgg_error_page_handler($hook, $type, $result, $params) {
+       if (elgg_view_exists("errors/$type")) {
+               $content = elgg_view("errors/$type", $params);
+       } else {
+               $content = elgg_view("errors/default", $params);
+       }
+       $body = elgg_view_layout('error', array('content' => $content));
+       echo elgg_view_page($title, $body, 'error');
+       exit;
+}
+
+/**
+ * Initializes the page handler/routing system
+ *
+ * @return void
+ * @access private
+ */
+function page_handler_init() {
+       elgg_register_plugin_hook_handler('forward', '404', 'elgg_error_page_handler');
+}
+
+elgg_register_event_handler('init', 'system', 'page_handler_init');
index 036ca88834ced5f23ee6552da23d872d8ed37c4b..eecb2f1aa015f2bc7046a979b2ada1dc301c3aa7 100644 (file)
@@ -240,6 +240,9 @@ $english = array(
        'changebookmark' => 'Please change your bookmark for this page',
        'noaccess' => 'This content has been removed, is invalid, or you do not have permission to view it.',
 
+       'error:default' => 'Oops...something went wrong.',
+       'error:404' => 'Sorry. We could not find the page that you requested.',
+
 /**
  * API
  */
diff --git a/views/default/errors/404.php b/views/default/errors/404.php
new file mode 100644 (file)
index 0000000..8bc35ac
--- /dev/null
@@ -0,0 +1,8 @@
+<?php
+/**
+ * Page not found error
+ */
+
+$message = elgg_echo('error:404');
+
+echo "<h2>$message</h2>";
diff --git a/views/default/errors/default.php b/views/default/errors/default.php
new file mode 100644 (file)
index 0000000..a0582eb
--- /dev/null
@@ -0,0 +1,8 @@
+<?php
+/**
+ * General error
+ */
+
+$message = elgg_echo('error:default');
+
+echo "<h2>$message</h2>";
diff --git a/views/default/page/error.php b/views/default/page/error.php
new file mode 100644 (file)
index 0000000..b7ba3ae
--- /dev/null
@@ -0,0 +1,14 @@
+<?php
+/**
+ * Page shell for errors
+ *
+ * This is for errors that are not unhandled exceptions. Those are handled
+ * through the failsafe viewtype to guarantee that no further exceptions occur.
+ * An example error would be 404 (page not found).
+ * 
+ * @uses $vars['title']       The page title
+ * @uses $vars['body']        The main content of the page
+ * @uses $vars['sysmessages'] A 2d array of various message registers, passed from system_messages()
+ */
+
+echo elgg_view('page/default', $vars);
diff --git a/views/default/page/layouts/error.php b/views/default/page/layouts/error.php
new file mode 100644 (file)
index 0000000..5b31099
--- /dev/null
@@ -0,0 +1,6 @@
+<?php
+/**
+ * Error layout
+ */
+
+echo elgg_view('page/layouts/one_column', $vars);