diff options
Diffstat (limited to 'mod/blog')
| -rw-r--r-- | mod/blog/lib/blog.php | 43 | 
1 files changed, 24 insertions, 19 deletions
diff --git a/mod/blog/lib/blog.php b/mod/blog/lib/blog.php index db6b7846f..3c71dfbab 100644 --- a/mod/blog/lib/blog.php +++ b/mod/blog/lib/blog.php @@ -50,7 +50,7 @@ function blog_get_page_content_read($guid = NULL) {  /**   * Get page components to list a user's or all blogs.   * - * @param int $owner_guid The GUID of the page owner or NULL for all blogs + * @param int $container_guid The GUID of the page owner or NULL for all blogs   * @return array   */  function blog_get_page_content_list($container_guid = NULL) { @@ -62,10 +62,11 @@ function blog_get_page_content_list($container_guid = NULL) {  	$options = array(  		'type' => 'object',  		'subtype' => 'blog', -		'full_view' => FALSE, +		'full_view' => false,  	); -	$loggedin_userid = elgg_get_logged_in_user_guid(); +	$current_user = elgg_get_logged_in_user_entity(); +  	if ($container_guid) {  		// access check for closed groups  		group_gatekeeper(); @@ -80,7 +81,7 @@ function blog_get_page_content_list($container_guid = NULL) {  		$crumbs_title = $container->name;  		elgg_push_breadcrumb($crumbs_title); -		if ($container_guid == $loggedin_userid) { +		if ($current_user && ($container_guid == $current_user->guid)) {  			$return['filter_context'] = 'mine';  		} else if (elgg_instanceof($container, 'group')) {  			$return['filter'] = false; @@ -99,7 +100,13 @@ function blog_get_page_content_list($container_guid = NULL) {  	// show all posts for admin or users looking at their own blogs  	// show only published posts for other users. -	if (!(elgg_is_admin_logged_in() || (elgg_is_logged_in() && $container_guid == $loggedin_userid))) { +	$show_only_published = true; +	if ($current_user) { +		if (($current_user->guid == $container_guid) || $current_user->isAdmin()) { +			$show_only_published = false; +		} +	} +	if ($show_only_published) {  		$options['metadata_name_value_pairs'] = array(  			array('name' => 'status', 'value' => 'published'),  		); @@ -155,11 +162,14 @@ function blog_get_page_content_friends($user_guid) {  		// admin / owners can see any posts  		// everyone else can only see published posts -		if (!(elgg_is_admin_logged_in() || (elgg_is_logged_in() && $owner_guid == elgg_get_logged_in_user_guid()))) { -			if ($upper > $now) { -				$upper = $now; +		$show_only_published = true; +		$current_user = elgg_get_logged_in_user_entity(); +		if ($current_user) { +			if (($user_guid == $current_user->guid) || $current_user->isAdmin()) { +				$show_only_published = false;  			} - +		} +		if ($show_only_published) {  			$options['metadata_name_value_pairs'][] = array(  				array('name' => 'status', 'value' => 'published')  			); @@ -240,9 +250,9 @@ function blog_get_page_content_archive($owner_guid, $lower = 0, $upper = 0) {  	$list = elgg_list_entities_from_metadata($options);  	if (!$list) { -		$content .= elgg_echo('blog:none'); +		$content = elgg_echo('blog:none');  	} else { -		$content .= $list; +		$content = $list;  	}  	$title = elgg_echo('date:month:' . date('m', $lower), array(date('Y', $lower))); @@ -274,6 +284,7 @@ function blog_get_page_content_edit($page, $guid = 0, $revision = NULL) {  	$vars['id'] = 'blog-post-edit';  	$vars['class'] = 'elgg-form-alt'; +	$sidebar = '';  	if ($page == 'edit') {  		$blog = get_entity((int)$guid); @@ -310,14 +321,8 @@ function blog_get_page_content_edit($page, $guid = 0, $revision = NULL) {  			$content = elgg_echo('blog:error:cannot_edit_post');  		}  	} else { -		if (!$guid) { -			$container = elgg_get_logged_in_user_entity(); -		} else { -			$container = get_entity($guid); -		} -  		elgg_push_breadcrumb(elgg_echo('blog:add')); -		$body_vars = blog_prepare_form_vars($blog); +		$body_vars = blog_prepare_form_vars(null);  		$title = elgg_echo('blog:add');  		$content = elgg_view_form('blog/save', $vars, $body_vars); @@ -384,7 +389,7 @@ function blog_prepare_form_vars($post = NULL, $revision = NULL) {  	if ($auto_save_annotations = $post->getAnnotations('blog_auto_save', 1)) {  		$auto_save = $auto_save_annotations[0];  	} else { -		$auto_save == FALSE; +		$auto_save = false;  	}  	if ($auto_save && $auto_save->id != $revision->id) {  | 
