diff options
Diffstat (limited to 'mod/likes/views')
| -rw-r--r-- | mod/likes/views/default/annotation/likes.php | 49 | ||||
| -rw-r--r-- | mod/likes/views/default/likes/button.php | 39 | ||||
| -rw-r--r-- | mod/likes/views/default/likes/count.php | 36 | ||||
| -rw-r--r-- | mod/likes/views/default/likes/css.php | 17 | ||||
| -rw-r--r-- | mod/likes/views/default/likes/js.php | 26 | 
5 files changed, 167 insertions, 0 deletions
diff --git a/mod/likes/views/default/annotation/likes.php b/mod/likes/views/default/annotation/likes.php new file mode 100644 index 000000000..2b5acc520 --- /dev/null +++ b/mod/likes/views/default/annotation/likes.php @@ -0,0 +1,49 @@ +<?php +/** + * Elgg show the users who liked the object + * + * @uses $vars['annotation'] + */ + +if (!isset($vars['annotation'])) { +	return true; +} + +$like = $vars['annotation']; + +$user = $like->getOwnerEntity(); +if (!$user) { +	return true; +} + +$user_icon = elgg_view_entity_icon($user, 'tiny'); +$user_link = elgg_view('output/url', array( +	'href' => $user->getURL(), +	'text' => $user->name, +	'is_trusted' => true, +)); + +$likes_string = elgg_echo('likes:this'); + +$friendlytime = elgg_view_friendly_time($like->time_created); + +if ($like->canEdit()) { +	$delete_button = elgg_view("output/confirmlink",array( +    	'href' => "action/likes/delete?id={$like->id}", +    	'text' => "<span class=\"elgg-icon elgg-icon-delete float-alt\"></span>", +    	'confirm' => elgg_echo('likes:delete:confirm'), +    	'encode_text' => false, +    )); +} + +$body = <<<HTML +<p class="mbn"> +	$delete_button +	$user_link $likes_string +	<span class="elgg-subtext"> +		$friendlytime +	</span> +</p> +HTML; + +echo elgg_view_image_block($user_icon, $body); diff --git a/mod/likes/views/default/likes/button.php b/mod/likes/views/default/likes/button.php new file mode 100644 index 000000000..bc7c8fd8a --- /dev/null +++ b/mod/likes/views/default/likes/button.php @@ -0,0 +1,39 @@ +<?php +/** + * Elgg likes button + * + * @uses $vars['entity'] + */ + +if (!isset($vars['entity'])) { +	return true; +} + +$guid = $vars['entity']->getGUID(); + +// check to see if the user has already liked this +if (elgg_is_logged_in() && $vars['entity']->canAnnotate(0, 'likes')) { +	if (!elgg_annotation_exists($guid, 'likes')) { +		$url = elgg_get_site_url() . "action/likes/add?guid={$guid}"; +		$params = array( +			'href' => $url, +			'text' => elgg_view_icon('thumbs-up'), +			'title' => elgg_echo('likes:likethis'), +			'is_action' => true, +			'is_trusted' => true, +		); +		$likes_button = elgg_view('output/url', $params); +	} else { +		$url = elgg_get_site_url() . "action/likes/delete?guid={$guid}"; +		$params = array( +			'href' => $url, +			'text' => elgg_view_icon('thumbs-up-alt'), +			'title' => elgg_echo('likes:remove'), +			'is_action' => true, +			'is_trusted' => true, +		); +		$likes_button = elgg_view('output/url', $params); +	} +} + +echo $likes_button; diff --git a/mod/likes/views/default/likes/count.php b/mod/likes/views/default/likes/count.php new file mode 100644 index 000000000..071a069bd --- /dev/null +++ b/mod/likes/views/default/likes/count.php @@ -0,0 +1,36 @@ +<?php +/** + * Count of who has liked something + * + *  @uses $vars['entity'] + */ + + +$list = ''; +$num_of_likes = likes_count($vars['entity']); +$guid = $vars['entity']->getGUID(); + +if ($num_of_likes) { +	// display the number of likes +	if ($num_of_likes == 1) { +		$likes_string = elgg_echo('likes:userlikedthis', array($num_of_likes)); +	} else { +		$likes_string = elgg_echo('likes:userslikedthis', array($num_of_likes)); +	} +	$params = array( +		'text' => $likes_string, +		'title' => elgg_echo('likes:see'), +		'rel' => 'popup', +		'href' => "#likes-$guid" +	); +	$list = elgg_view('output/url', $params); +	$list .= "<div class='elgg-module elgg-module-popup elgg-likes hidden clearfix' id='likes-$guid'>"; +	$list .= elgg_list_annotations(array( +		'guid' => $guid, +		'annotation_name' => 'likes', +		'limit' => 99, +		'list_class' => 'elgg-list-likes' +	)); +	$list .= "</div>"; +	echo $list; +} diff --git a/mod/likes/views/default/likes/css.php b/mod/likes/views/default/likes/css.php new file mode 100644 index 000000000..1ec07b366 --- /dev/null +++ b/mod/likes/views/default/likes/css.php @@ -0,0 +1,17 @@ +<?php +/** + * Likes CSS + */ +?> + +/* *************************************** +	Likes +*************************************** */ +.elgg-likes { +	width: 345px; +	position: absolute; +} + +.elgg-menu .elgg-menu-item-likes-count { +	margin-left: 3px; +} diff --git a/mod/likes/views/default/likes/js.php b/mod/likes/views/default/likes/js.php new file mode 100644 index 000000000..f701ebedf --- /dev/null +++ b/mod/likes/views/default/likes/js.php @@ -0,0 +1,26 @@ +<?php +/** + * Likes JavaScript extension for elgg.js + */ +?> + +/** + * Repositions the likes popup + * + * @param {String} hook    'getOptions' + * @param {String} type    'ui.popup' + * @param {Object} params  An array of info about the target and source. + * @param {Object} options Options to pass to + * + * @return {Object} + */ +elgg.ui.likesPopupHandler = function(hook, type, params, options) { +	if (params.target.hasClass('elgg-likes')) { +		options.my = 'right bottom'; +		options.at = 'left top'; +		return options; +	} +	return null; +}; + +elgg.register_hook_handler('getOptions', 'ui.popup', elgg.ui.likesPopupHandler);
\ No newline at end of file  | 
