aboutsummaryrefslogtreecommitdiff
path: root/mod
diff options
context:
space:
mode:
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-03-23 21:38:14 +0000
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-03-23 21:38:14 +0000
commit9d2a1831b574d517592c0345fdf5aa173fcd42d7 (patch)
treeed21825a7efd41e89a00792861fc84ee098db995 /mod
parentdf750ff4e9e069aff6cf9e5ada55ae0696c1e77b (diff)
downloadelgg-9d2a1831b574d517592c0345fdf5aa173fcd42d7.tar.gz
elgg-9d2a1831b574d517592c0345fdf5aa173fcd42d7.tar.bz2
Added filtering by archive date.
git-svn-id: http://code.elgg.org/elgg/trunk@5490 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'mod')
-rw-r--r--mod/blog/blog_lib.php66
-rw-r--r--mod/blog/languages/en.php1
-rw-r--r--mod/blog/start.php6
-rw-r--r--mod/blog/views/default/blog/sidebar_menu.php46
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