From 2216b3352edd95a4df2745996e7d3c741efc3284 Mon Sep 17 00:00:00 2001 From: ben Date: Wed, 16 Apr 2008 09:20:51 +0000 Subject: Blog plugin now serves as a fancy URL example git-svn-id: https://code.elgg.org/elgg/trunk@473 36083f99-b078-4883-b0ff-0f9b5a30f544 --- mod/blog/start.php | 41 +++++++++++++++++++++++++++++++--- mod/blog/views/default/object/blog.php | 4 ++-- 2 files changed, 40 insertions(+), 5 deletions(-) diff --git a/mod/blog/start.php b/mod/blog/start.php index 0a3a50cd8..f8af95e17 100644 --- a/mod/blog/start.php +++ b/mod/blog/start.php @@ -30,14 +30,14 @@ // Set up menu for logged in users if (isloggedin()) { - add_menu(elgg_echo('blog'), $CONFIG->wwwroot . "mod/blog/",array( - menu_item(elgg_echo('blog:read'),$CONFIG->wwwroot."mod/blog/?username=" . $_SESSION['user']->username), + add_menu(elgg_echo('blog'), $CONFIG->wwwroot . "blog/",array( + menu_item(elgg_echo('blog:read'),$CONFIG->wwwroot."blog/" . $_SESSION['user']->username), menu_item(elgg_echo('blog:addpost'),$CONFIG->wwwroot."mod/blog/add.php"), menu_item(elgg_echo('blog:everyone'),$CONFIG->wwwroot."mod/blog/everyone.php"), )); // And for logged out users } else { - add_menu(elgg_echo('blog'), $CONFIG->wwwroot . "mod/blog/",array( + add_menu(elgg_echo('blog'), $CONFIG->wwwroot . "mod/blog/everyone.php",array( menu_item(elgg_echo('blog:everyone'),$CONFIG->wwwroot."mod/blog/everyone.php"), )); } @@ -45,6 +45,41 @@ // Extend system CSS with our own styles, which are defined in the blog/css view extend_view('css','blog/css'); + // Register a page handler, so we can have nice URLs + register_page_handler('blog','blog_page_handler'); + + } + + /** + * Blog page handler; allows the use of fancy URLs + * + * @param array $page From the page_handler function + * @return true|false Depending on success + */ + function blog_page_handler($page) { + + // The first component of a blog URL is the username + if (isset($page[0])) { + set_input('username',$page[0]); + } + + // The second part dictates what we're doing + if (isset($page[1])) { + switch($page[1]) { + case "read": set_input('blogpost',$page[2]); + @include(dirname(__FILE__) . "/read.php"); + break; + case "friends": // TODO: add friends blog page here + break; + } + // If the URL is just 'blog/username', or just 'blog/', load the standard blog index + } else { + @include(dirname(__FILE__) . "/index.php"); + return true; + } + + return false; + } // Make sure the blog initialisation function is called on initialisation diff --git a/mod/blog/views/default/object/blog.php b/mod/blog/views/default/object/blog.php index c4b718045..52c03d23b 100644 --- a/mod/blog/views/default/object/blog.php +++ b/mod/blog/views/default/object/blog.php @@ -17,7 +17,7 @@ ?>
-

title; ?>

+

title; ?>

- name; ?> + name; ?>