aboutsummaryrefslogtreecommitdiff
path: root/mod/blog
diff options
context:
space:
mode:
authorcash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-12-25 17:07:41 +0000
committercash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-12-25 17:07:41 +0000
commit58bd19d7cf35e6159124716d0da48d91354d3a2f (patch)
treebaf3133c13b2f5a38e7e16e182a208258069e4ef /mod/blog
parentf6045914d7488c43cd7761ddaded55b3791ae950 (diff)
downloadelgg-58bd19d7cf35e6159124716d0da48d91354d3a2f.tar.gz
elgg-58bd19d7cf35e6159124716d0da48d91354d3a2f.tar.bz2
amtrak does not have wifi so here is one big commit with group blogs, blog widget, and improved blog sidebar
git-svn-id: http://code.elgg.org/elgg/trunk@7720 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'mod/blog')
-rw-r--r--mod/blog/actions/blog/save.php10
-rw-r--r--mod/blog/languages/en.php13
-rw-r--r--mod/blog/lib/blog.php67
-rw-r--r--mod/blog/start.php144
-rw-r--r--mod/blog/views/default/blog/group_module.php40
-rw-r--r--mod/blog/views/default/blog/sidebar.php18
-rw-r--r--mod/blog/views/default/blog/sidebar/archives.php30
-rw-r--r--mod/blog/views/default/blog/sidebar/revisions.php (renamed from mod/blog/views/default/blog/sidebar_revisions.php)0
-rw-r--r--mod/blog/views/default/blog/sidebar/tagcloud.php31
-rw-r--r--mod/blog/views/default/blog/sidebar_menu.php76
-rw-r--r--mod/blog/views/default/forms/blog/save.php7
-rw-r--r--mod/blog/views/default/input/datetime.php2
-rw-r--r--mod/blog/views/default/object/blog.php7
-rw-r--r--mod/blog/views/default/widgets/blog/content.php29
-rw-r--r--mod/blog/views/default/widgets/blog/edit.php22
15 files changed, 316 insertions, 180 deletions
diff --git a/mod/blog/actions/blog/save.php b/mod/blog/actions/blog/save.php
index 11d366a44..4e6e9133b 100644
--- a/mod/blog/actions/blog/save.php
+++ b/mod/blog/actions/blog/save.php
@@ -24,7 +24,6 @@ if ($guid) {
register_error(elgg_echo('blog:error:post_not_found'));
forward(get_input('forward', REFERER));
}
- $success_forward_url = get_input('forward', $blog->getURL());
// save some data for revisions once we save the new edit
$revision_text = $blog->description;
@@ -32,7 +31,6 @@ if ($guid) {
} else {
$blog = new ElggBlog();
$blog->subtype = 'blog';
- $success_forward_url = get_input('forward');
$new_post = TRUE;
}
@@ -45,7 +43,7 @@ $values = array(
'comments_on' => 'On',
'excerpt' => '',
'tags' => '',
- 'container_guid' => ''
+ 'container_guid' => (int)get_input('container_guid'),
);
// fail if a required entity isn't set
@@ -150,7 +148,11 @@ if (!$error) {
if ($new_post && $blog->status == 'published') {
add_to_river('river/object/blog/create', 'create', get_loggedin_userid(), $blog->getGUID());
}
- forward($success_forward_url);
+ if ($blog->status == 'published') {
+ forward($blog->getURL());
+ } else {
+ forward("pg/blog/edit/$blog->guid");
+ }
} else {
register_error(elgg_echo('blog:error:cannot_save'));
forward($error_forward_url);
diff --git a/mod/blog/languages/en.php b/mod/blog/languages/en.php
index 39e1a7ad0..d247c0150 100644
--- a/mod/blog/languages/en.php
+++ b/mod/blog/languages/en.php
@@ -16,7 +16,11 @@ $english = array(
'blog:title:user_blogs' => '%s\'s Blogs',
'blog:title:all_blogs' => 'All Site Blogs',
- 'blog:title:friends' => 'All Friends\' Blogs',
+ 'blog:title:friends' => 'Friends\' Blogs',
+
+ 'blog:group' => 'Group blog',
+ 'blog:enableblog' => 'Enable group blog',
+ 'blog:write' => 'Write a blog post',
// Editing
'blog:new' => 'New blog post',
@@ -40,7 +44,7 @@ $english = array(
'blog:message:saved' => 'Blog post saved.',
'blog:error:cannot_save' => 'Cannot save blog post.',
'blog:error:cannot_write_to_container' => 'Insufficient access to save blog to group.',
- 'blog:error:post_not_found' => 'This post has been removed or is invalid.',
+ 'blog:error:post_not_found' => 'This post has been removed, is invalid, or you do not have permission to view it.',
'blog:messages:warning:draft' => 'There is an unsaved draft of this post!',
'blog:edit_revision_notice' => '(Old version)',
'blog:message:deleted_post' => 'Blog post deleted.',
@@ -54,6 +58,11 @@ $english = array(
// river
'blog:river:create' => 'published a blog post',
'river:commented:object:blog' => 'the blog',
+
+ // widget
+ 'blog:widget:description' => 'Display your latest blog posts',
+ 'blog:moreblogs' => 'More blog posts',
+ 'blog:numbertodisplay' => 'Number of blog posts to display',
);
add_translation('en', $english);
diff --git a/mod/blog/lib/blog.php b/mod/blog/lib/blog.php
index f3d059ae3..3a67af193 100644
--- a/mod/blog/lib/blog.php
+++ b/mod/blog/lib/blog.php
@@ -22,11 +22,22 @@ function blog_get_page_content_read($guid = NULL) {
$return['filter'] = '';
$return['header'] = '';
- if (!elgg_instanceof($blog, 'object', 'blog') || !$blog->canEdit()) {
+ if (!elgg_instanceof($blog, 'object', 'blog')) {
$return['content'] = elgg_echo('blog:error:post_not_found');
return $return;
}
+ elgg_set_page_owner_guid($blog->getContainerGUID());
+ $return['title'] = htmlspecialchars($blog->title);
+
+ $container = $blog->getContainerEntity();
+ $crumbs_title = elgg_echo('blog:owned_blogs', array($container->name));
+ if (elgg_instanceof($container, 'group')) {
+ elgg_push_breadcrumb($crumbs_title, "pg/blog/group/$container->guid/owner");
+ } else {
+ elgg_push_breadcrumb($crumbs_title, "pg/blog/owner/$container->username");
+ }
+
elgg_push_breadcrumb($blog->title);
$return['content'] = elgg_view_entity($blog, TRUE);
//check to see if comment are on
@@ -43,11 +54,11 @@ function blog_get_page_content_read($guid = NULL) {
* @param int $owner_guid The GUID of the page owner or NULL for all blogs
* @return array
*/
-function blog_get_page_content_list($owner_guid = NULL) {
+function blog_get_page_content_list($container_guid = NULL) {
$return = array();
- $return['filter_context'] = $owner_guid ? 'mine' : 'all';
+ $return['filter_context'] = $container_guid ? 'mine' : 'all';
$options = array(
'type' => 'object',
@@ -57,16 +68,23 @@ function blog_get_page_content_list($owner_guid = NULL) {
);
$loggedin_userid = get_loggedin_userid();
- if ($owner_guid) {
- $options['owner_guid'] = $owner_guid;
+ if ($container_guid) {
+ $options['container_guid'] = $container_guid;
+ $container = get_entity($container_guid);
+ if (!$container) {
+
+ }
+ $return['title'] = elgg_echo('blog:title:user_blogs', array($container->name));
+ elgg_set_page_owner_guid($container_guid);
- // do not want to highlight the current page so pop what was already added
- elgg_pop_breadcrumb();
- $crumbs_title = elgg_echo('blog:owned_blogs', array(get_user($owner_guid)->name));
+ $crumbs_title = elgg_echo('blog:owned_blogs', array($container->name));
elgg_push_breadcrumb($crumbs_title);
+ if (elgg_instanceof($container, 'group')) {
+ $return['filter'] = '';
+ }
- if ($owner_guid == $loggedin_userid) {
+ if ($container_guid == $loggedin_userid) {
$return['filter_context'] = 'mine';
} else{
// do not show button or select a tab when viewing someone else's posts
@@ -75,11 +93,12 @@ function blog_get_page_content_list($owner_guid = NULL) {
}
} else {
$return['filter_context'] = 'all';
+ $return['title'] = elgg_echo('blog:title:all_blogs');
}
// show all posts for admin or users looking at their own blogs
// show only published posts for other users.
- if (!(isadminloggedin() || (isloggedin() && $owner_guid == $loggedin_userid))) {
+ if (!(isadminloggedin() || (isloggedin() && $container_guid == $loggedin_userid))) {
$options['metadata_name_value_pairs'] = array(
array('name' => 'status', 'value' => 'published'),
//array('name' => 'publish_date', 'operand' => '<', 'value' => time())
@@ -104,11 +123,17 @@ function blog_get_page_content_list($owner_guid = NULL) {
*/
function blog_get_page_content_friends($user_guid) {
- elgg_push_breadcrumb(elgg_echo('friends'));
+ elgg_set_page_owner_guid($user_guid);
+ $user = get_user($user_guid);
$return = array();
$return['filter_context'] = 'friends';
+ $return['title'] = elgg_echo('blog:title:friends');
+
+ $crumbs_title = elgg_echo('blog:owned_blogs', array($user->name));
+ elgg_push_breadcrumb($crumbs_title, "pg/blog/owner/{$user->username}");
+ elgg_push_breadcrumb(elgg_echo('friends'));
if (!$friends = get_user_friends($user_guid, ELGG_ENTITIES_ANY_VALUE, 0)) {
$return['content'] .= elgg_echo('friends:none:you');
@@ -160,6 +185,10 @@ function blog_get_page_content_archive($owner_guid, $lower = 0, $upper = 0) {
$now = time();
+ $user = get_user($owner_guid);
+
+ $crumbs_title = elgg_echo('blog:owned_blogs', array($user->name));
+ elgg_push_breadcrumb($crumbs_title, "pg/blog/owner/{$user->username}");
elgg_push_breadcrumb(elgg_echo('blog:archives'));
if ($lower) {
@@ -229,11 +258,12 @@ function blog_get_page_content_archive($owner_guid, $lower = 0, $upper = 0) {
/**
* Get page components to edit a blog post.
*
- * @param int $guid GUID of blog post
+ * @param string $page 'edit' or 'new'
+ * @param int $guid GUID of blog post or container
* @param int $revision Annotation id for revision to edit (optional)
* @return array
*/
-function blog_get_page_content_edit($guid, $revision = NULL) {
+function blog_get_page_content_edit($page, $guid = 0, $revision = NULL) {
$return = array(
'buttons' => '',
@@ -244,7 +274,7 @@ function blog_get_page_content_edit($guid, $revision = NULL) {
$vars['internalid'] = 'blog-post-edit';
$vars['internalname'] = 'blog_post';
- if ($guid) {
+ if ($page == 'edit') {
$blog = get_entity((int)$guid);
$title = elgg_echo('blog:edit');
@@ -274,11 +304,18 @@ function blog_get_page_content_edit($guid, $revision = NULL) {
$content = elgg_view_form('blog/save', $vars, $body_vars);
$content .= elgg_view('js/blog/save_draft');
- $sidebar = elgg_view('blog/sidebar_revisions', $vars);
+ $sidebar = elgg_view('blog/sidebar/revisions', $vars);
} else {
$content = elgg_echo('blog:error:cannot_edit_post');
}
} else {
+ if (!$guid) {
+ $container = get_loggedin_user();
+ } else {
+ $container = get_entity($guid);
+ }
+ elgg_set_page_owner_guid($container->guid);
+
elgg_push_breadcrumb(elgg_echo('blog:new'));
$body_vars = blog_prepare_form_vars($blog);
diff --git a/mod/blog/start.php b/mod/blog/start.php
index 3086d9087..8dc3737f8 100644
--- a/mod/blog/start.php
+++ b/mod/blog/start.php
@@ -5,12 +5,12 @@
* @package Blog
*
* @todo
- * Either drop support for "publish date" or duplicate more entity getter
+ * - Either drop support for "publish date" or duplicate more entity getter
* functions to work with a non-standard time_created.
- * Show friends blog posts
- * Widget
- * Pingbacks
- * Notifications
+ * - Pingbacks
+ * - Notifications
+ * - River entry for posts saved as drafts and later published
+ * - Group menu
*/
elgg_register_event_handler('init', 'system', 'blog_init');
@@ -47,7 +47,11 @@ function blog_init() {
// Register for search.
register_entity_type('object', 'blog');
- //elgg_register_widget_type('blog', elgg_echo('blog'), elgg_echo('blog:widget:description'), 'profile, dashboard');
+ // Add group option
+ add_group_tool_option('blog', elgg_echo('blog:enableblog'), true);
+ elgg_extend_view('groups/tool_latest', 'blog/group_module');
+
+ elgg_register_widget_type('blog', elgg_echo('blog'), elgg_echo('blog:widget:description'), 'profile');
// register actions
$action_path = elgg_get_plugin_path() . 'blog/actions/blog';
@@ -74,14 +78,19 @@ function blog_runonce() {
/**
* Dispatches blog pages.
* URLs take the form of
- * pg/blog/[all|owner|read|edit|archive|new]/[username]/[time_start|guid]/[time_end|title]
+ * All blogs: pg/blog/all
+ * User's blogs: pg/blog/owner/<username>
+ * Friends' blog: pg/blog/friends/<username>
+ * User's archives: pg/blog/archives/<username>/<time_start>/<time_stop>
+ * Blog post: pg/blog/read/<guid>/<title>
+ * New post: pg/blog/new
+ * Edit post: pg/blog/edit/<guid>/<revision>
+ * Preview post: pg/blog/preview/<guid>
+ * Group blog: pg/blog/group/<guid>/owner
+ * Group new post: pg/blog/group/<guid>/new
*
- * Without an action, show all blogs
- * Without a guid, show all post for that user.
* Title is ignored
*
- * If archive, uses time_start/end
- *
* @todo no archives for all blogs or friends
*
* @param array $page
@@ -105,80 +114,61 @@ function blog_page_handler($page) {
blog_url_forwarder($page);
}
+
elgg_load_library('elgg:blog');
- // push breadcrumb
+ // push all blogs breadcrumb
elgg_push_breadcrumb(elgg_echo('blog:blogs'), "pg/blog/all/");
if (!isset($page[0])) {
$page[0] = 'all';
}
-
- // if username not set, we are showing all blog posts
- if (!isset($page[1])) {
- $title = elgg_echo('blog:title:all_blogs');
- $params = blog_get_page_content_list();
- } else {
- $username = $page[1];
- // forward away if invalid user.
- if (!$user = get_user_by_username($username)) {
- register_error('blog:error:unknown_username');
- forward(REFERER);
- }
-
- set_page_owner($user->getGUID());
- $crumbs_title = elgg_echo('blog:owned_blogs', array($user->name));
- $crumbs_url = "pg/blog/owner/$username/";
- elgg_push_breadcrumb($crumbs_title, $crumbs_url);
-
- $action = $page[0];
- // yeah these are crap names, but they're used for different things.
- $page2 = isset($page[2]) ? $page[2] : FALSE;
- $page3 = isset($page[3]) ? $page[3] : FALSE;
-
- switch ($action) {
- case 'owner':
- $title = elgg_echo('blog:title:user_blogs', array($user->name));
- $params = blog_get_page_content_list($user->getGUID());
- break;
-
- case 'read':
- $title = elgg_echo('blog:title:user_blogs', array($user->name));
- $params = blog_get_page_content_read($page2);
- break;
-
- case 'new':
- case 'edit':
+
+ $page_type = $page[0];
+ switch ($page_type) {
+ case 'owner':
+ $user = get_user_by_username($page[1]);
+ $params = blog_get_page_content_list($user->guid);
+ break;
+ case 'friends':
+ $user = get_user_by_username($page[1]);
+ $params = blog_get_page_content_friends($user->guid);
+ break;
+ case 'archive':
+ $user = get_user_by_username($page[1]);
+ $params = blog_get_page_content_archive($user->guid, $page[2], $page[3]);
+ break;
+ case 'read':
+ $params = blog_get_page_content_read($page[1]);
+ break;
+ case 'new':
+ gatekeeper();
+ $params = blog_get_page_content_edit($page_type);
+ break;
+ case 'edit':
+ gatekeeper();
+ $params = blog_get_page_content_edit($page_type, $page[1], $page[2]);
+ break;
+ case 'group':
+ if ($page[2] == 'new') {
gatekeeper();
- $title = elgg_echo('blog:edit');
- $params = blog_get_page_content_edit($page2, $page3);
- break;
-
- case 'archive':
- $title = elgg_echo('blog:archives');
- $params = blog_get_page_content_archive($user->getGUID(), $page2, $page3);
- break;
-
- case 'friends':
- $title = elgg_echo('blog:title:friends');
- $params = blog_get_page_content_friends($user->getGUID());
- break;
-
- default:
- forward("pg/blog/owner/$username/");
- break;
- }
+ $params = blog_get_page_content_edit($page_type, $page[1]);
+ } else {
+ $params = blog_get_page_content_list($page[1]);
+ }
+ break;
+ case 'all':
+ default:
+ $title = elgg_echo('blog:title:all_blogs');
+ $params = blog_get_page_content_list();
+ break;
}
-
- $sidebar_menu = elgg_view('blog/sidebar_menu', array(
- 'page' => $action,
- ));
-
- $params['sidebar'] .= $sidebar_menu;
+
+ $params['sidebar'] .= elgg_view('blog/sidebar', array('page' => $page_type));
$body = elgg_view_layout('content', $params);
- echo elgg_view_page($title, $body);
+ echo elgg_view_page($params['title'], $body);
}
/**
@@ -216,20 +206,20 @@ function blog_url_forwarder($page) {
}
/**
- * Format and return the correct URL for blogs.
+ * Format and return the URL for blogs.
*
- * @param ElggObject $entity
+ * @param ElggObject $entity Blog object
* @return string URL of blog.
*/
function blog_url_handler($entity) {
- if (!$user = get_entity($entity->owner_guid)) {
+ if (!$entity->getOwnerEntity()) {
// default to a standard view if no owner.
return FALSE;
}
$friendly_title = elgg_get_friendly_title($entity->title);
- return "pg/blog/read/{$user->username}/{$entity->guid}/$friendly_title";
+ return "pg/blog/read/{$entity->guid}/$friendly_title";
}
/**
diff --git a/mod/blog/views/default/blog/group_module.php b/mod/blog/views/default/blog/group_module.php
new file mode 100644
index 000000000..6e75966af
--- /dev/null
+++ b/mod/blog/views/default/blog/group_module.php
@@ -0,0 +1,40 @@
+<?php
+/**
+ * Group blog module
+ */
+
+$group = elgg_get_page_owner();
+
+$all_link = elgg_view('output/url', array(
+ 'href' => "pg/blog/group/$group->guid/owner",
+ 'text' => elgg_echo('link:view:all'),
+));
+
+$header = "<span class=\"group-widget-viewall\">$all_link</span>";
+$header .= '<h3>' . elgg_echo('blog:group') . '</h3>';
+
+
+elgg_push_context('widgets');
+$options = array(
+ 'type' => 'object',
+ 'subtype' => 'blog',
+ 'container_guid' => elgg_get_page_owner_guid(),
+ 'limit' => 6,
+ 'full_view' => false,
+ 'pagination' => false,
+);
+$content = elgg_list_entities($options);
+elgg_pop_context();
+
+$new_link = elgg_view('output/url', array(
+ 'href' => "pg/blog/group/$group->guid/new",
+ 'text' => elgg_echo('blog:write'),
+));
+$content .= "<span class='elgg-widget-more'>$new_link</span>";
+
+
+$params = array(
+ 'header' => $header,
+ 'body' => $content,
+);
+echo elgg_view('layout/objects/module', $params);
diff --git a/mod/blog/views/default/blog/sidebar.php b/mod/blog/views/default/blog/sidebar.php
new file mode 100644
index 000000000..63ed85c0b
--- /dev/null
+++ b/mod/blog/views/default/blog/sidebar.php
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Blog sidebar
+ *
+ * @package Blog
+ */
+
+// fetch & display latest comments
+if ($vars['page'] == 'all') {
+ echo elgg_view_latest_comments(0, 'object', 'blog');
+} elseif ($vars['page'] == 'owner') {
+ // @todo - what we want is the latest comments on this user's blog posts - elgg does not support this
+ echo elgg_view_latest_comments(elgg_get_page_owner_guid(), 'object', 'blog');
+}
+
+echo elgg_view('blog/sidebar/archives', $vars);
+
+echo elgg_view('blog/sidebar/tagcloud', $vars);
diff --git a/mod/blog/views/default/blog/sidebar/archives.php b/mod/blog/views/default/blog/sidebar/archives.php
new file mode 100644
index 000000000..9904be288
--- /dev/null
+++ b/mod/blog/views/default/blog/sidebar/archives.php
@@ -0,0 +1,30 @@
+<?php
+/**
+ * Blog archives
+ */
+
+$loggedin_user = get_loggedin_user();
+$page_owner = elgg_get_page_owner();
+
+// This is a limitation of the URL schema.
+if ($page_owner && $vars['page'] != 'friends') {
+ $dates = blog_get_blog_months($user);
+
+ if ($dates) {
+ $title = elgg_echo('blog:archives');
+ $content = '<ul class="blog-archives">';
+ foreach($dates as $date) {
+ $date = $date->yearmonth;
+
+ $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));
+
+ $link = elgg_get_site_url() . 'pg/blog/archive/' . $page_owner->username . '/' . $timestamplow . '/' . $timestamphigh;
+ $month = elgg_echo('date:month:' . substr($date, 4, 2), array(substr($date, 0, 4)));
+ $content .= "<li><a href=\"$link\" title=\"$month\">$month</a></li>";
+ }
+ $content .= '</ul>';
+
+ echo elgg_view('layout/objects/module', array('title' => $title, 'body' => $content));
+ }
+} \ No newline at end of file
diff --git a/mod/blog/views/default/blog/sidebar_revisions.php b/mod/blog/views/default/blog/sidebar/revisions.php
index e3919648b..e3919648b 100644
--- a/mod/blog/views/default/blog/sidebar_revisions.php
+++ b/mod/blog/views/default/blog/sidebar/revisions.php
diff --git a/mod/blog/views/default/blog/sidebar/tagcloud.php b/mod/blog/views/default/blog/sidebar/tagcloud.php
new file mode 100644
index 000000000..2f5ce3955
--- /dev/null
+++ b/mod/blog/views/default/blog/sidebar/tagcloud.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * Blog tag cloud
+ */
+
+$loggedin_user = get_loggedin_user();
+$page_owner = elgg_get_page_owner();
+
+if ($page_owner && $vars['page'] != 'friends') {
+
+ // friends page lists all tags; mine lists owner's
+ $owner_guid = ($vars['page'] == 'friends') ? '' : $page_owner->getGUID();
+ $options = array(
+ 'type' => 'object',
+ 'subtype' => 'blog',
+ 'owner_guid' => $owner_guid,
+ 'threshold' => 0,
+ 'limit' => 50,
+ 'tag_name' => 'tags',
+ );
+ echo elgg_view_tagcloud($options);
+} else {
+ $options = array(
+ 'type' => 'object',
+ 'subtype' => 'blog',
+ 'threshold' => 0,
+ 'limit' => 50,
+ 'tag_name' => 'tags',
+ );
+ echo elgg_view_tagcloud($options);
+}
diff --git a/mod/blog/views/default/blog/sidebar_menu.php b/mod/blog/views/default/blog/sidebar_menu.php
deleted file mode 100644
index 7dfbeb1bc..000000000
--- a/mod/blog/views/default/blog/sidebar_menu.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-/**
- * Blog sidebar menu.
- *
- * @package Blog
- */
-
-// a few cases to consider:
-// 1. looking at all posts
-// 2. looking at a user's post
-// 3. looking at your posts
-
-/*
-Logged in or not doesn't matter unless you're looking at your blog.
- Does it matter then on the side bar?
-
-All blogs:
- Archives
-
-Owned blogs;
- Archives
-*/
-
-$loggedin_user = get_loggedin_user();
-$page_owner = elgg_get_page_owner();
-
-// include a view for plugins to extend
-echo elgg_view("blogs/sidebar", array("object_type" => 'blog'));
-
-// fetch & display latest comments on all blog posts
-echo elgg_view_latest_comments(0, 'object', 'blog');
-
-// only show archives for users or groups.
-// This is a limitation of the URL schema.
-if ($page_owner && $vars['page'] != 'friends') {
- $dates = blog_get_blog_months($user);
-
- if ($dates) {
- $title = elgg_echo('blog:archives');
- $content = '<ul class="blog-archives">';
- foreach($dates as $date) {
- $date = $date->yearmonth;
-
- $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));
-
- $link = elgg_get_site_url() . 'pg/blog/archive/' . $page_owner->username . '/' . $timestamplow . '/' . $timestamphigh;
- $month = elgg_echo('date:month:' . substr($date, 4, 2), array(substr($date, 0, 4)));
- $content .= "<li><a href=\"$link\" title=\"$month\">$month</a></li>";
- }
- $content .= '</ul>';
-
- echo elgg_view('layout/objects/module', array('title' => $title, 'body' => $content));
- }
-
- // friends page lists all tags; mine lists owner's
- $owner_guid = ($vars['page'] == 'friends') ? '' : $page_owner->getGUID();
- $options = array(
- 'type' => 'object',
- 'subtype' => 'blog',
- 'owner_guid' => $owner_guid,
- 'threshold' => 0,
- 'limit' => 50,
- 'tag_name' => 'tags',
- );
- echo elgg_view_tagcloud($options);
-} else {
- $options = array(
- 'type' => 'object',
- 'subtype' => 'blog',
- 'threshold' => 0,
- 'limit' => 50,
- 'tag_name' => 'tags',
- );
- echo elgg_view_tagcloud($options);
-}
diff --git a/mod/blog/views/default/forms/blog/save.php b/mod/blog/views/default/forms/blog/save.php
index f49340985..8597c135c 100644
--- a/mod/blog/views/default/forms/blog/save.php
+++ b/mod/blog/views/default/forms/blog/save.php
@@ -5,8 +5,6 @@
* @package Blog
*/
-$forward = $_SERVER['HTTP_REFERER'];
-
$draft_warning = $vars['draft_warning'];
if ($draft_warning) {
$draft_warning = '<span class="message warning">' . $draft_warning . '</span>';
@@ -89,6 +87,7 @@ $access_input = elgg_view('input/access', array(
'value' => $vars['access_id']
));
+// not being used
$publish_date_label = elgg_echo('blog:publish_date');
$publish_date_input = elgg_view('input/datetime', array(
'internalname' => 'publish_date',
@@ -99,9 +98,8 @@ $publish_date_input = elgg_view('input/datetime', array(
$categories_input = elgg_view('categories', $vars);
// hidden inputs
-//$container_guid_input = elgg_view('input/hidden', array('internalname' => 'container_guid', 'value' => $vars['container_guid']));
+$container_guid_input = elgg_view('input/hidden', array('internalname' => 'container_guid', 'value' => elgg_get_page_owner_guid()));
$guid_input = elgg_view('input/hidden', array('internalname' => 'guid', 'value' => $vars['guid']));
-$forward_input = elgg_view('input/hidden', array('internalname' => 'forward', 'value' => $forward));
echo <<<___HTML
@@ -150,7 +148,6 @@ $categories_input
$guid_input
$container_guid_input
-$forward_input
$action_buttons
diff --git a/mod/blog/views/default/input/datetime.php b/mod/blog/views/default/input/datetime.php
index 5586464f1..f4bad188c 100644
--- a/mod/blog/views/default/input/datetime.php
+++ b/mod/blog/views/default/input/datetime.php
@@ -1,6 +1,8 @@
<?php
/**
* A date-time view for the blog publication date.
+ *
+ * not being used
*/
// default date to current time
diff --git a/mod/blog/views/default/object/blog.php b/mod/blog/views/default/object/blog.php
index 639031113..19018492a 100644
--- a/mod/blog/views/default/object/blog.php
+++ b/mod/blog/views/default/object/blog.php
@@ -69,7 +69,7 @@ if ($blog->canEdit()) {
$metadata .= "<li>$status_text</li>";
}
- $edit_url = elgg_get_site_url() . "pg/blog/edit/{$owner->username}/{$blog->getGUID()}/";
+ $edit_url = elgg_get_site_url() . "pg/blog/edit/{$blog->getGUID()}/";
$edit_link = elgg_view('output/url', array(
'href' => $edit_url,
'text' => elgg_echo('edit'),
@@ -91,6 +91,11 @@ $metadata .= '</ul>';
$subtitle = "$author_text $date $categories $comments_link";
+// do not show the metadata and controls in widget view
+if (elgg_in_context('widgets')) {
+ $metadata = '';
+}
+
if ($full) {
$header = elgg_view_title($blog->title);
diff --git a/mod/blog/views/default/widgets/blog/content.php b/mod/blog/views/default/widgets/blog/content.php
new file mode 100644
index 000000000..83d1c0c41
--- /dev/null
+++ b/mod/blog/views/default/widgets/blog/content.php
@@ -0,0 +1,29 @@
+<?php
+/**
+ * User blog widget display view
+ */
+
+$num = $vars['entity']->num_display;
+
+$options = array(
+ 'type' => 'object',
+ 'subtype' => 'blog',
+ 'container_guid' => $vars['entity']->owner_guid,
+ 'limit' => $num,
+ 'full_view' => FALSE,
+ 'pagination' => FALSE,
+);
+$content = elgg_list_entities($options);
+
+echo $content;
+
+if ($content) {
+ $blog_url = "pg/blog/owner/" . elgg_get_page_owner()->username;
+ $more_link = elgg_view('output/url', array(
+ 'href' => $blog_url,
+ 'text' => elgg_echo('blog:moreblogs'),
+ ));
+ echo "<span class=\"elgg-widget-more\">$more_link</span>";
+} else {
+ echo elgg_echo('blog:noblogs');
+}
diff --git a/mod/blog/views/default/widgets/blog/edit.php b/mod/blog/views/default/widgets/blog/edit.php
new file mode 100644
index 000000000..aaa9d1a10
--- /dev/null
+++ b/mod/blog/views/default/widgets/blog/edit.php
@@ -0,0 +1,22 @@
+<?php
+/**
+ * User blog widget edit view
+ */
+
+// set default value
+if (!isset($vars['entity']->num_display)) {
+ $vars['entity']->num_display = 4;
+}
+
+$params = array(
+ 'internalname' => 'params[num_display]',
+ 'value' => $vars['entity']->num_display = 4,
+ 'options' => array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
+);
+$dropdown = elgg_view('input/pulldown', $params);
+
+?>
+<p>
+ <?php echo elgg_echo('blog:numbertodisplay'); ?>:
+ <?php echo $dropdown; ?>
+</p>