diff options
Diffstat (limited to 'mod/blog')
-rw-r--r-- | mod/blog/blog_lib.php | 66 | ||||
-rw-r--r-- | mod/blog/languages/en.php | 1 | ||||
-rw-r--r-- | mod/blog/start.php | 6 | ||||
-rw-r--r-- | mod/blog/views/default/blog/sidebar_menu.php | 46 |
4 files changed, 103 insertions, 16 deletions
diff --git a/mod/blog/blog_lib.php b/mod/blog/blog_lib.php index 6f52e53ec..7f83d0dc3 100644 --- a/mod/blog/blog_lib.php +++ b/mod/blog/blog_lib.php @@ -98,6 +98,72 @@ function blog_get_page_content_edit($guid, $revision = NULL) { } /** + * Show blogs with publish dates between $lower and $upper + * + * @param unknown_type $owner_guid + * @param unknown_type $lower + * @param unknown_type $upper + */ +function blog_get_page_content_archive($owner_guid, $lower, $upper) { + $now = time(); + + $content = elgg_view('page_elements/content_header', array('context' => $context, 'type' => 'blog')); + + if ($lower) { + $lower = (int)$lower; + } + + if ($upper) { + $upper = (int)$upper; + } + + $options = array( + 'type' => 'object', + 'subtype' => 'blog', + 'full_view' => FALSE, + 'order_by_metadata' => array('name'=>'publish_date', 'direction'=>'DESC', 'as'=>'int'), + ); + + if ($owner_guid) { + $options['owner_guid'] = $owner_guid; + } + + // admin / owners can see any posts + // everyone else can only see published posts + if (!(isadminloggedin() || (isloggedin() && $owner_guid == get_loggedin_userid()))) { + if ($upper > $now) { + $upper = $now; + } + + $options['metadata_name_value_pairs'] = array( + array('name' => 'status', 'value' => 'published') + ); + } + + if ($lower) { + $options['metadata_name_value_pairs'][] = array( + 'name' => 'publish_date', + 'operand' => '>', + 'value' => $lower + ); + } + + if ($upper) { + $options['metadata_name_value_pairs'][] = array( + 'name' => 'publish_date', + 'operand' => '<', + 'value' => $upper + ); + } + + $content .= elgg_list_entities_from_metadata($options); + + return array( + 'content' => $content + ); +} + +/** * Returns an appropriate excerpt for a blog. * * @param string $text diff --git a/mod/blog/languages/en.php b/mod/blog/languages/en.php index 8a7f7d8dc..f98cc6059 100644 --- a/mod/blog/languages/en.php +++ b/mod/blog/languages/en.php @@ -9,6 +9,7 @@ $english = array( 'blog:blogs' => 'Blogs', 'blog:owned_blogs' => '%s blogs', 'blog:revisions' => 'Revisions', + 'blog:archives' => 'Archives', 'blog:blog' => 'Blog', 'blog:yours' => 'Your blog', diff --git a/mod/blog/start.php b/mod/blog/start.php index d0c4c5157..3c497088a 100644 --- a/mod/blog/start.php +++ b/mod/blog/start.php @@ -128,12 +128,12 @@ function blog_page_handler($page) { $content_info = blog_get_page_content_edit($page2, $page3); break; - case 'archives': - $content = elgg_view('page_elements/content_header', array('context' => $content, 'type' => 'blog')); - $content .= blog_get_page_content_archive($user->getGUID(), $page2, $page3); + case 'archive': + $content_info = blog_get_page_content_archive($user->getGUID(), $page2, $page3); break; case 'friends': + //@todo make it go $content = elgg_view('page_elements/content_header', array('context' => $content, 'type' => 'blog')); $content .= blog_get_page_content_archive($user->getGUID()); break; diff --git a/mod/blog/views/default/blog/sidebar_menu.php b/mod/blog/views/default/blog/sidebar_menu.php index d4f67ec98..bd348c7e6 100644 --- a/mod/blog/views/default/blog/sidebar_menu.php +++ b/mod/blog/views/default/blog/sidebar_menu.php @@ -23,23 +23,43 @@ All blogs: Owned blogs; Archives - - - */ $loggedin_user = get_loggedin_user(); $page_owner = page_owner_entity(); - // include a view for plugins to extend - echo elgg_view("blogs/sidebar", array("object_type" => 'blog')); +// include a view for plugins to extend +echo elgg_view("blogs/sidebar", array("object_type" => 'blog')); + +// fetch & display latest comments on all blog posts +$comments = get_annotations(0, "object", "blog", "generic_comment", "", 0, 4, 0, "desc"); +echo elgg_view('annotation/latest_comments', array('comments' => $comments)); + +if ($dates = get_entity_dates('object', 'blog', page_owner())) { + echo elgg_view_title(elgg_echo('blog:archives')); + + echo '<ul>'; + foreach($dates as $date) { + $timestamplow = mktime(0,0,0,substr($date,4,2),1,substr($date,0,4)); + $timestamphigh = mktime(0,0,0,((int) substr($date,4,2)) + 1,1,substr($date,0,4)); + + if (!isset($page_owner)) $page_owner = page_owner_entity(); + $link = $CONFIG->wwwroot . 'pg/blog/' . $page_owner->username . '/archive/' . $timestamplow . '/' . $timestamphigh; + //add_submenu_item(sprintf(elgg_echo('date:month:' . substr($date,4,2)), substr($date, 0, 4)), $link, 'filter'); + $month = sprintf(elgg_echo('date:month:' . substr($date,4,2)), substr($date, 0, 4)); + echo "<li><a href=\"$link\" title=\"$month\">$month</a><li>"; + } + + echo '</ul>'; +} + - // fetch & display latest comments on all blog posts - $comments = get_annotations(0, "object", "blog", "generic_comment", "", 0, 4, 0, "desc"); - echo elgg_view('annotation/latest_comments', array('comments' => $comments)); +// temporarily force tag-cloud display +$tags = display_tagcloud(0, 100, 'tags'); +echo <<<___END +<h3>Tagcloud</h3> +<div class="tagcloud sidebar">$tags</div> +<a href="{$vars['url']}mod/tagcloud/tagcloud.php">All site tags</a> +___END; - // temporarily force tag-cloud display - echo "<h3>Tagcloud</h3>"; - echo "<div class='tagcloud sidebar'>".display_tagcloud(0, 100, 'tags')."</div>"; - echo "<a href=\"{$vars['url']}mod/tagcloud/tagcloud.php\">All site tags</a>"; -?> +?>
\ No newline at end of file |