diff options
| author | cash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-12-17 11:53:21 +0000 | 
|---|---|---|
| committer | cash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-12-17 11:53:21 +0000 | 
| commit | e0d1bf52ccde42d62d979b11791905f069bad8c4 (patch) | |
| tree | cfd5b4226002177d7a437dede66e6384b7222411 | |
| parent | 7420e77cdd5018235423bb065c41c5d8b0de7875 (diff) | |
| download | elgg-e0d1bf52ccde42d62d979b11791905f069bad8c4.tar.gz elgg-e0d1bf52ccde42d62d979b11791905f069bad8c4.tar.bz2 | |
bookmarks plugin needs to be rewritten - hacked it to get the add functionality working
git-svn-id: http://code.elgg.org/elgg/trunk@7656 36083f99-b078-4883-b0ff-0f9b5a30f544
| -rw-r--r-- | mod/bookmarks/start.php | 71 | 
1 files changed, 57 insertions, 14 deletions
| diff --git a/mod/bookmarks/start.php b/mod/bookmarks/start.php index 996421acf..8e33991c9 100644 --- a/mod/bookmarks/start.php +++ b/mod/bookmarks/start.php @@ -77,19 +77,26 @@ function bookmarks_pagesetup() {  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 elgg_get_page_owner() is the group. -	if (isset($page[0])) { -		$owner_name = $page[0]; -		set_input('username', $owner_name); - -		// grab the page owner here so the group magic works. -		$owner = elgg_get_page_owner(); -	} else { -		set_page_owner(get_loggedin_userid()); +	// group usernames +	if (substr_count($page[0], 'group:')) { +		preg_match('/group\:([0-9]+)/i', $page[0], $matches); +		$guid = $matches[1]; +		if ($entity = get_entity($guid)) { +			bookmarks_url_forwarder($page); +		} +	} + +	// user usernames +	$user = get_user_by_username($page[0]); +	if ($user) { +		bookmarks_url_forwarder($page);  	} +	set_input('username', $page[1]); +	$owner = get_user_by_username($page[1]); +	//$owner = elgg_get_page_owner(); +	$owner_name = $owner->username; +  	// owner name passed but invalid.  	if ($owner_name && !$owner) {  		$sidebar = elgg_view('bookmarks/sidebar', array('object_type' => 'bookmarks')); @@ -106,7 +113,7 @@ function bookmarks_page_handler($page) {  	}  	$logged_in_user = get_loggedin_user(); -	$section = (isset($page[1])) ? $page[1] : $section = 'items'; +	$section = (isset($page[0])) ? $page[0] : $section = 'items';  	//don't show the all site bookmarks breadcrumb when on the all site bookmarks page  	if(elgg_get_page_owner_guid() != 0){ @@ -230,7 +237,7 @@ function bookmarks_page_handler($page) {  				'context' => $context,  				'type' => 'bookmarks',  				'all_link' => "pg/bookmarks/", -				'new_link' => "pg/bookmarks/{$owner_name}/add" +				'new_link' => "pg/bookmarks/add/{$owner_name}"  			));  		}  	}else{ @@ -238,7 +245,7 @@ function bookmarks_page_handler($page) {  				'context' => $context,  				'type' => 'bookmarks',  				'all_link' => "pg/bookmarks/", -				'new_link' => "pg/bookmarks/{$owner_name}/add" +				'new_link' => "pg/bookmarks/add/{$owner_name}"  			));  	} @@ -253,6 +260,42 @@ function bookmarks_page_handler($page) {  	return TRUE;  } +/** + * Forward to the new style of URLs + * + * @param string $page + */ +function bookmarks_url_forwarder($page) { +	global $CONFIG; + +	if (!isset($page[1])) { +		$page[1] = 'items'; +	} + +	switch ($page[1]) { +		case "read": +			$url = "{$CONFIG->wwwroot}pg/bookmarks/read/{$page[2]}/{$page[3]}"; +			break; +		case "inbox": +			$url = "{$CONFIG->wwwroot}pg/bookmarks/inbox/{$page[0]}/"; +			break; +		case "friends": +			$url = "{$CONFIG->wwwroot}pg/bookmarks/friends/{$page[0]}/"; +			break; +		case "add": +			$url = "{$CONFIG->wwwroot}pg/bookmarks/add/{$page[0]}/"; +			break; +		case "items": +			$url = "{$CONFIG->wwwroot}pg/bookmarks/owner/{$page[0]}/"; +			break; +		case "bookmarklet": +			$url = "{$CONFIG->wwwroot}pg/bookmarks/bookmarklet/{$page[0]}/"; +			break; +	} + +	register_error(elgg_echo("changebookmark")); +	forward($url); +}  /**   * Populates the ->getUrl() method for bookmarked objects | 
