]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Bookmarks work with groups and use new style content header filter.
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>
Mon, 26 Apr 2010 17:36:33 +0000 (17:36 +0000)
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>
Mon, 26 Apr 2010 17:36:33 +0000 (17:36 +0000)
git-svn-id: http://code.elgg.org/elgg/trunk@5878 36083f99-b078-4883-b0ff-0f9b5a30f544

mod/bookmarks/add.php [deleted file]
mod/bookmarks/all.php [deleted file]
mod/bookmarks/friends.php [deleted file]
mod/bookmarks/index.php [deleted file]
mod/bookmarks/start.php

diff --git a/mod/bookmarks/add.php b/mod/bookmarks/add.php
deleted file mode 100644 (file)
index 7fe6e89..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-/**
- * Elgg bookmarks plugin add bookmark page
- *
- * @package ElggBookmarks
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.org/
- */
-
-global $CONFIG;
-
-// Start engine
-require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
-
-// You need to be logged in for this one
-gatekeeper();
-
-// Get the current page's owner
-$page_owner = page_owner_entity();
-if ($page_owner === false || is_null($page_owner)) {
-       $page_owner = $_SESSION['user'];
-       set_page_owner($page_owner->getGUID());
-}
-if ($page_owner instanceof ElggGroup)
-       $container = $page_owner->guid;
-
-//set up breadcrumbs
-elgg_push_breadcrumb(elgg_echo('bookmarks:all'), $CONFIG->wwwroot."mod/bookmarks/all.php");
-elgg_push_breadcrumb(elgg_echo("bookmarks:add"));
-
-$area1 .= elgg_view('navigation/breadcrumbs');
-
-// get the filter menu
-$area1 .= elgg_view('page_elements/content_header', array('context' => "action", 'type' => 'bookmarks'));
-
-// If we've been given a bookmark to edit, grab it
-if ($this_guid = get_input('bookmark',0)) {
-       $entity = get_entity($this_guid);
-       if ($entity->canEdit()) {
-               $area2 .= elgg_view('bookmarks/form',array('entity' => $entity, 'container_guid' => $container));
-       }
-} else {
-       $area2 .= elgg_view('bookmarks/form', array('container_guid' => $container));
-}
-
-$area3 = elgg_view('bookmarks/ownerblock');
-// include a view for plugins to extend
-$area3 .= elgg_view("bookmarks/sidebar", array("object_type" => 'bookmarks'));
-// if logged in, get the bookmarklet
-$area3 .= elgg_view("bookmarks/bookmarklet");
-
-// Format page
-$body = elgg_view_layout('one_column_with_sidebar', $area1.$area2, $area3);
-
-// Draw it
-echo page_draw(elgg_echo('bookmarks:add'),$body);
\ No newline at end of file
diff --git a/mod/bookmarks/all.php b/mod/bookmarks/all.php
deleted file mode 100644 (file)
index 87dd5f8..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-/**
- * Elgg bookmarks plugin everyone page
- *
- * @package ElggBookmarks
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.org/
- */
-
-// Start engine
-require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
-
-// get the filter menu
-$area1 = elgg_view('page_elements/content_header', array('context' => "everyone", 'type' => 'bookmarks'));
-
-// List bookmarks
-set_context('search');
-$area2 .= elgg_list_entities(array('type' => 'object', 'subtype' => 'bookmarks'));
-set_context('bookmarks');
-
-// include a view for plugins to extend
-$area3 = elgg_view("bookmarks/sidebar", array("object_type" => 'bookmarks'));
-
-// if logged in, get the bookmarklet
-if(isloggedin()){
-       $area3 .= elgg_view("bookmarks/bookmarklet");
-}
-// include statistics
-$count = elgg_get_entities(array('type' => 'object', 'subtype' => 'bookmarks', 'count' => true));
-$area3 .= elgg_view("bookmarks/stats", array('count' => $count));
-// Format page
-$body = elgg_view_layout('one_column_with_sidebar', $area1.$area2, $area3);
-
-// Draw it
-echo page_draw(elgg_echo('bookmarks:all'),$body);
\ No newline at end of file
diff --git a/mod/bookmarks/friends.php b/mod/bookmarks/friends.php
deleted file mode 100644 (file)
index 1581085..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-/**
- * Elgg bookmarks plugin friends' page
- * 
- * @package ElggBookmarks
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.org/
- */
-
-// Start engine
-require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
-       
-// get the filter menu
-$area1 = elgg_view("page_elements/content_header", array('context' => "friends", 'type' => 'bookmarks'));
-                       
-// List bookmarks
-set_context('search');
-$area2 .= list_user_friends_objects(page_owner(),'bookmarks',10,false,false);
-set_context('bookmarks');
-               
-// include a view for plugins to extend
-$area3 = elgg_view("bookmarks/sidebar", array("object_type" => 'bookmarks'));
-               
-// if logged in, get the bookmarklet
-if(isloggedin()){
-       $area3 .= elgg_view("bookmarks/bookmarklet");
-}              
-// Format page
-$body = elgg_view_layout('one_column_with_sidebar', $area1.$area2, $area3);
-               
-// Draw it
-echo page_draw(elgg_echo('bookmarks:friends'),$body);
\ No newline at end of file
diff --git a/mod/bookmarks/index.php b/mod/bookmarks/index.php
deleted file mode 100644 (file)
index 21166f7..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-/**
- * Elgg bookmarks plugin index page
- *
- * @package ElggBookmarks
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.org/
- */
-
-global $CONFIG;
-
-// Start engine
-require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
-
-// access check for closed groups
-group_gatekeeper();
-
-$page_owner = page_owner_entity();
-if ($page_owner === false || is_null($page_owner)) {
-       $page_owner = $_SESSION['user'];
-       set_page_owner($page_owner->getGUID());
-}
-
-elgg_push_breadcrumb(elgg_echo('bookmarks:all'), $CONFIG->wwwroot."mod/bookmarks/all.php");
-elgg_push_breadcrumb(sprintf(elgg_echo("bookmarks:user"),$page_owner->name));
-
-//set bookmarks header
-if(page_owner() == get_loggedin_userid()) {
-       $area1 .= elgg_view('page_elements/content_header', array('context' => "mine", 'type' => 'bookmarks'));
-} else {
-       $area1 .= elgg_view('navigation/breadcrumbs');
-       $area1 .= elgg_view('page_elements/content_header_member', array('type' => 'bookmarks'));
-}
-
-// List bookmarks
-set_context('search');
-$bookmarks = elgg_list_entities(array('type' => 'object', 'subtype' => 'bookmarks', 'owner_guid' => page_owner()));
-if(!$bookmarks && ($page_owner->guid == get_loggedin_user()->guid))
-       $bookmarks = elgg_view('help/bookmarks');
-$area2 .= $bookmarks;
-set_context('bookmarks');
-
-//if the logged in user is not looking at their stuff, display the ownerblock
-if(page_owner()        != get_loggedin_user()->guid){
-       $area3 = elgg_view('bookmarks/ownerblock');
-}
-// include a view for plugins to extend
-$area3 .= elgg_view("bookmarks/sidebar", array("object_type" => 'bookmarks'));
-
-if(isloggedin()){
-       // if logged in, get the bookmarklet
-       $area3 .= elgg_view("bookmarks/bookmarklet");
-}
-// Format page
-$body = elgg_view_layout('one_column_with_sidebar', $area1.$area2, $area3);
-
-// Draw it
-echo page_draw(sprintf(elgg_echo("bookmarks:user"),page_owner_entity()->name), $body);
\ No newline at end of file
index c37899034fe8d09b87a92aa65707cd5f15ea0f5a..ec1fb1c3a2c4dcbc52643910464ff9a776391965 100644 (file)
@@ -15,7 +15,7 @@ function bookmarks_init() {
        global $CONFIG;
 
        //add a tools menu option
-       add_menu(elgg_echo('bookmarks'), $CONFIG->wwwroot . 'mod/bookmarks/all.php');
+       add_menu(elgg_echo('bookmarks'), $CONFIG->wwwroot . 'pg/bookmarks');
 
        // Register a page handler, so we can have nice URLs
        register_page_handler('bookmarks', 'bookmarks_page_handler');
@@ -42,10 +42,9 @@ function bookmarks_init() {
 
        // Add group menu option
        add_group_tool_option('bookmarks',elgg_echo('bookmarks:enablebookmarks'),true);
-       
-       // Extend Groups profile page   
-       elgg_extend_view('groups/tool_latest','bookmarks/group_bookmarks');
 
+       // Extend Groups profile page
+       elgg_extend_view('groups/tool_latest','bookmarks/group_bookmarks');
 }
 
 /**
@@ -55,88 +54,170 @@ function bookmarks_init() {
 function bookmarks_pagesetup() {
        global $CONFIG;
 
-       // Set up menu for logged in users
-       // add submenu options - @todo partially removed - now provided by drop-down menu filter in content area
-       if (get_context() == "bookmarks") {
-/*
-               if (isloggedin()) {
-                       if (page_owner()) {
-                               $page_owner = page_owner_entity();
-                               add_submenu_item(elgg_echo('bookmarks:read'),$CONFIG->wwwroot."pg/bookmarks/" . $page_owner->username . "/items");
-                       }
-                       if(!$page_owner instanceof ElggGroup)
-                               add_submenu_item(elgg_echo('bookmarks:friends'),$CONFIG->wwwroot."pg/bookmarks/" . $_SESSION['user']->username . "/friends");
-                       }
-
-                       if(!$page_owner instanceof ElggGroup)
-                               add_submenu_item(elgg_echo('bookmarks:everyone'),$CONFIG->wwwroot."mod/bookmarks/everyone.php");
-*/
-
-                       // Bookmarklet
-                       if ((isloggedin()) && (page_owner()) && (can_write_to_container(0, page_owner()))) {
-                               $page_owner = page_owner_entity();
-                               $bmtext = elgg_echo('bookmarks:bookmarklet');
-                               if ($page_owner instanceof ElggGroup)
-                                       $bmtext = elgg_echo('bookmarks:bookmarklet:group');
-                               // add_submenu_item($bmtext, $CONFIG->wwwroot . "pg/bookmarks/{$page_owner->username}/bookmarklet");
-                       }
-               }
-
-               $page_owner = page_owner_entity();
+       $page_owner = page_owner_entity();
 
+       // Add group bookmark menu item
+       if (isloggedin()) {
                if ($page_owner instanceof ElggGroup && get_context() == 'groups') {
-                       if($page_owner->bookmarks_enable != "no"){
-                       add_submenu_item(sprintf(elgg_echo("bookmarks:group"),$page_owner->name), $CONFIG->wwwroot . "pg/bookmarks/" . $page_owner->username . '/items');
+                       if ($page_owner->bookmarks_enable != "no") {
+                               add_submenu_item(sprintf(elgg_echo("bookmarks:group"),$page_owner->name), $CONFIG->wwwroot . "pg/bookmarks/" . $page_owner->username . '/items');
+                       }
                }
        }
 }
 
 /**
- * Bookmarks page handler; allows the use of fancy URLs
+ * Bookmarks page handler
+ * Expects URLs like:
+ *     pg/bookmarks/username/[friends||items||add||edit||bookmarklet]
+ *
  *
  * @param array $page From the page_handler function
  * @return true|false Depending on success
  */
 function bookmarks_page_handler($page) {
+       global $CONFIG;
 
        // The first component of a bookmarks URL is the username
+       // If the username is set_input()'d and has group:NN in it, magic happens
+       // and the page_owner_entity() is the group.
        if (isset($page[0])) {
-               set_input('username',$page[0]);
+               $owner_name = $page[0];
+               set_input('username', $owner_name);
+
+               // grab the page owner here so the group magic works.
+               $owner = page_owner_entity();
        }
 
-       // The second part dictates what we're doing
-       if (isset($page[1])) {
-               switch($page[1]) {
-                       case "friends":
-                               include(dirname(__FILE__) . "/friends.php");
-                               return true;
+       // owner name passed but invalid.
+       if ($owner_name && !$owner) {
+               $sidebar = elgg_view('bookmarks/sidebar', array('object_type' => 'bookmarks'));
+               $content = elgg_echo("bookmarks:unknown_user");
+
+               $body = elgg_view_layout('one_column_with_sidebar', $content, $sidebar);
+               echo page_draw(sprintf(elgg_echo("bookmarks:user"), page_owner_entity()->name), $body);
+
+               return FALSE;
+       }
+
+       $logged_in_user = get_loggedin_user();
+       $section = (isset($page[1])) ? $page[1] : $section = 'items';
+
+       elgg_push_breadcrumb(elgg_echo('bookmarks:all'), $CONFIG->wwwroot . 'pg/bookmarks/');
+
+       if ($owner) {
+               switch($section) {
+                       case 'friends':
+                               elgg_push_breadcrumb(sprintf(elgg_echo('bookmarks:friends'), $owner->name));
+
+                               $content = list_user_friends_objects($owner->getGUID(), 'bookmarks', 10, false, false);
+                               $context = ($owner == $logged_in_user) ? 'friends' : '';
                                break;
-                       case "items":
-                               include(dirname(__FILE__) . "/index.php");
-                               return true;
+
+                       default:
+                       case 'items':
+                               elgg_push_breadcrumb(sprintf(elgg_echo('bookmarks:user'), $owner->name));
+
+                               group_gatekeeper();
+                               $options = array(
+                                       'type' => 'object',
+                                       'subtype' => 'bookmarks'
+                               );
+
+                               if ($owner instanceof ElggGroup) {
+                                       $options['container_guid'] = $owner->getGUID();
+                               } else {
+                                       $options['owner_guid'] = $owner->getGUID();
+                               }
+
+                               $content = elgg_list_entities($options);
+
+                               if (!$content && ($owner == $logged_in_user)) {
+                                       $content = elgg_view('help/bookmarks');
+                               }
+
+                               $context = ($owner == $logged_in_user) ? 'mine' : '';
                                break;
-                       case "add":
-                               include(dirname(__FILE__) . "/add.php");
-                               return true;
+
+                       case 'add':
+                               gatekeeper();
+                               elgg_push_breadcrumb(elgg_echo('bookmarks:add'));
+
+                               $vars = array();
+                               if ($owner instanceof ElggGroup) {
+                                       $vars['container_guid'] = $owner->getGUID();
+                               }
+
+                               $context = 'action';
+                               $content = elgg_view('bookmarks/form', $vars);
                                break;
-                       case "edit":
-                               set_input('bookmark',$page[2]);
-                               include(dirname(__FILE__) . "/add.php");
-                               return true;
+
+                       case 'edit':
+                               gatekeeper();
+
+                               elgg_push_breadcrumb(elgg_echo('bookmarks:edit'));
+
+                               $vars = array();
+                               // this will never be the case.
+                               if ($owner instanceof ElggGroup) {
+                                       $vars['container_guid'] = $owner->getGUID();
+                               }
+
+                               $bookmark = (isset($page[2])) ? get_entity($page[2]) : FALSE;
+
+                               if ($bookmark && elgg_instanceof($bookmark, 'object', 'bookmarks') && $bookmark->canEdit()) {
+                                       $vars['entity'] = $bookmark;
+                                       $content = elgg_view('bookmarks/form', $vars);
+                               } else {
+                                       $content = elgg_echo('bookmarks:cannot_find_bookmark');
+                               }
+
                                break;
-                       case "bookmarklet":
-                               include(dirname(__FILE__) . "/bookmarklet.php");
-                               return true;
+
+                       // I don't think this is used.
+                       case 'bookmarklet':
+                               gatekeeper();
+
+                               $content = elgg_view_title(elgg_echo('bookmarks:bookmarklet'));
+                               $content .= elgg_view('bookmarks/bookmarklet', array('pg_owner' => $owner));
+
                                break;
                }
-               // If the URL is just 'bookmarks/username', or just 'bookmarks/', load the standard bookmarks index
+
        } else {
-               include(dirname(__FILE__) . "/index.php");
-               return true;
+               // no owner name passed, show everything.
+               $content = elgg_list_entities(array('type' => 'object', 'subtype' => 'bookmarks'));
+               $context = 'everyone';
        }
 
-       return false;
+       // sidebar
+       if ($logged_in_user != $owner) {
+               $area3 = elgg_view('bookmarks/ownerblock');
+       }
+
+       $sidebar = elgg_view('bookmarks/sidebar', array('object_type' => 'bookmarks'));
+
+       if (isloggedin()){
+               $sidebar .= elgg_view('bookmarks/bookmarklet');
+       }
+
+       // main content
+       if ($owner != $logged_in_user || $context == 'action') {
+               $header = elgg_view('navigation/breadcrumbs');
+       }
+
+       $header .= elgg_view("page_elements/content_header", array(
+               'context' => $context,
+               'type' => 'bookmarks',
+               'all_link' => "{$CONFIG->url}pg/bookmarks/",
+               'new_link' => "{$CONFIG->url}pg/bookmarks/{$owner_name}/add"
+       ));
+
+       $content = $header . $content;
+       $body = elgg_view_layout('one_column_with_sidebar', $content, $sidebar);
+       echo page_draw(sprintf(elgg_echo("bookmarks:user"), page_owner_entity()->name), $body);
 
+       return TRUE;
 }
 
 /**