diff options
| -rw-r--r-- | engine/lib/tags.php | 9 | ||||
| -rw-r--r-- | mod/blog/views/default/blog/sidebar.php | 7 | ||||
| -rw-r--r-- | mod/blog/views/default/blog/sidebar/tagcloud.php | 31 | ||||
| -rw-r--r-- | views/default/output/tagcloud.php | 18 | ||||
| -rw-r--r-- | views/default/page/elements/tagcloud_block.php | 57 | 
5 files changed, 69 insertions, 53 deletions
diff --git a/engine/lib/tags.php b/engine/lib/tags.php index 32d48eff2..1116d63f3 100644 --- a/engine/lib/tags.php +++ b/engine/lib/tags.php @@ -269,10 +269,11 @@ function elgg_view_tagcloud(array $options = array()) {  	}  	$tag_data = elgg_get_tags($options); -	return elgg_view("output/tagcloud", array('value' => $tag_data, -											'type' => $type, -											'subtype' => $subtype)); - +	return elgg_view("output/tagcloud", array( +		'value' => $tag_data, +		'type' => $type, +		'subtype' => $subtype, +	));  }  /** diff --git a/mod/blog/views/default/blog/sidebar.php b/mod/blog/views/default/blog/sidebar.php index 4eb5cf443..b7dfaa2e1 100644 --- a/mod/blog/views/default/blog/sidebar.php +++ b/mod/blog/views/default/blog/sidebar.php @@ -19,4 +19,9 @@ if ($vars['page'] == 'all') {  echo elgg_view('blog/sidebar/archives', $vars); -echo elgg_view('blog/sidebar/tagcloud', $vars); +if ($vars['page'] != 'friends') { +	echo elgg_view('page/elements/tagcloud_block', array( +		'subtypes' => 'blog', +		'owner_guid' => elgg_get_page_owner_guid(), +	)); +} diff --git a/mod/blog/views/default/blog/sidebar/tagcloud.php b/mod/blog/views/default/blog/sidebar/tagcloud.php deleted file mode 100644 index 70c454390..000000000 --- a/mod/blog/views/default/blog/sidebar/tagcloud.php +++ /dev/null @@ -1,31 +0,0 @@ -<?php -/** - * Blog tag cloud - */ - -$loggedin_user = elgg_get_logged_in_user_entity(); -$page_owner = elgg_get_page_owner_entity(); - -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/views/default/output/tagcloud.php b/views/default/output/tagcloud.php index 3bc04a3fb..22b6cf49d 100644 --- a/views/default/output/tagcloud.php +++ b/views/default/output/tagcloud.php @@ -12,8 +12,6 @@   * @uses $vars['subtype'] Entity subtype   */ -$context = elgg_get_context(); -  if (!empty($vars['subtype'])) {  	$subtype = "&entity_subtype=" . urlencode($vars['subtype']);  } else { @@ -53,22 +51,8 @@ if (!empty($vars['tagcloud']) && is_array($vars['tagcloud'])) {  		$url = elgg_format_url($url);  		$cloud .= "<a href=\"$url\" style=\"font-size: $size%\" title=\"".addslashes($tag->tag)." ($tag->total)\">" . htmlspecialchars($tag->tag, ENT_QUOTES, 'UTF-8') . "</a>";  	} -		 -	if ($context != 'tags') { -		$cloud .= '<p class="small">'; -		$cloud .= elgg_view_icon('tag'); -		$cloud .= elgg_view('output/url', array( -			'href' => 'tags',  -			'text' => elgg_echo('tagcloud:allsitetags'), -		)); -		$cloud .= '</p>'; -	}  	$cloud .= elgg_view('tagcloud/extend'); -	if ($context != 'tags') { -		echo elgg_view_module('aside', elgg_echo('tagcloud'), $cloud, array('class' => 'elgg-tagcloud')); -	} else { -		echo "<div class=\"elgg-tagcloud\">$cloud</div>"; -	} +	echo "<div class=\"elgg-tagcloud\">$cloud</div>";  } diff --git a/views/default/page/elements/tagcloud_block.php b/views/default/page/elements/tagcloud_block.php new file mode 100644 index 000000000..8b67c9e37 --- /dev/null +++ b/views/default/page/elements/tagcloud_block.php @@ -0,0 +1,57 @@ +<?php +/** + * Display content-based tags + * + * Generally used in a sidebar. Does not work with groups currently. + * + * @uses $vars['subtypes']   Object subtype string or array of subtypes + * @uses $vars['owner_guid'] The owner of the content being tagged + * @uses $vars['limit']      The maxinum number of tags to display + */ + +$owner_guid = elgg_extract('owner_guid', $vars, ELGG_ENTITIES_ANY_VALUE); +if (!$owner_guid) { +	$owner_guid = ELGG_ENTITIES_ANY_VALUE; +} + +$owner_entity = get_entity($owner_guid); +if ($owner_entity && elgg_instanceof($owner_entity, 'group')) { +	// not supporting groups so return +	return true; +} + +$options = array( +	'type' => 'object', +	'subtype' => elgg_extract('subtypes', $vars, ELGG_ENTITIES_ANY_VALUE), +	'owner_guid' => $owner_guid, +	'threshold' => 0, +	'limit' => elgg_extract('limit', $vars, 50), +	'tag_name' => 'tags', +); + +$title = elgg_echo('tagcloud'); +if (is_array($options['subtype']) && count($options['subtype']) > 1) { +	// we cannot provide links to tagged objects with multiple types +	$tag_data = elgg_get_tags($options); +	$cloud = elgg_view("output/tagcloud", array( +		'value' => $tag_data, +		'type' => $type, +	)); +} else { +	$cloud = elgg_view_tagcloud($options); +} +if (!$cloud) { +	return true; +} + +// add a link to all site tags +$cloud .= '<p class="small">'; +$cloud .= elgg_view_icon('tag'); +$cloud .= elgg_view('output/url', array( +	'href' => 'tags', +	'text' => elgg_echo('tagcloud:allsitetags'), +)); +$cloud .= '</p>'; + + +echo elgg_view_module('aside', $title, $cloud);  | 
