diff options
Diffstat (limited to 'mod/thewire/views')
| -rw-r--r-- | mod/thewire/views/default/forms/thewire/add.php | 41 | ||||
| -rw-r--r-- | mod/thewire/views/default/js/thewire.php | 86 | ||||
| -rw-r--r-- | mod/thewire/views/default/object/thewire.php | 63 | ||||
| -rw-r--r-- | mod/thewire/views/default/river/object/thewire/create.php | 31 | ||||
| -rw-r--r-- | mod/thewire/views/default/thewire/css.php | 35 | ||||
| -rw-r--r-- | mod/thewire/views/default/thewire/previous.php | 11 | ||||
| -rw-r--r-- | mod/thewire/views/default/thewire/profile_status.php | 44 | ||||
| -rw-r--r-- | mod/thewire/views/default/thewire/reply.php | 14 | ||||
| -rw-r--r-- | mod/thewire/views/default/thewire/scripts/counter.js | 25 | ||||
| -rw-r--r-- | mod/thewire/views/default/thewire/sidebar.php | 9 | ||||
| -rw-r--r-- | mod/thewire/views/default/widgets/thewire/content.php | 30 | ||||
| -rw-r--r-- | mod/thewire/views/default/widgets/thewire/edit.php | 22 | ||||
| -rw-r--r-- | mod/thewire/views/rss/object/thewire.php | 36 | ||||
| -rw-r--r-- | mod/thewire/views/rss/search/object/thewire/entity.php | 27 | 
14 files changed, 474 insertions, 0 deletions
diff --git a/mod/thewire/views/default/forms/thewire/add.php b/mod/thewire/views/default/forms/thewire/add.php new file mode 100644 index 000000000..8607b3662 --- /dev/null +++ b/mod/thewire/views/default/forms/thewire/add.php @@ -0,0 +1,41 @@ +<?php +/** + * Wire add form body + * + * @uses $vars['post'] + */ + +elgg_load_js('elgg.thewire'); + +$post = elgg_extract('post', $vars); + +$text = elgg_echo('post'); +if ($post) { +	$text = elgg_echo('thewire:reply'); +} + +if ($post) { +	echo elgg_view('input/hidden', array( +		'name' => 'parent_guid', +		'value' => $post->guid, +	)); +} + +echo elgg_view('input/plaintext', array( +	'name' => 'body', +	'class' => 'mtm', +	'id' => 'thewire-textarea', +)); +?> +<div id="thewire-characters-remaining"> +	<span>140</span> <?php echo elgg_echo('thewire:charleft'); ?> +</div> +<div class="elgg-foot mts"> +<?php + +echo elgg_view('input/submit', array( +	'value' => $text, +	'id' => 'thewire-submit-button', +)); +?> +</div>
\ No newline at end of file diff --git a/mod/thewire/views/default/js/thewire.php b/mod/thewire/views/default/js/thewire.php new file mode 100644 index 000000000..ba8f35050 --- /dev/null +++ b/mod/thewire/views/default/js/thewire.php @@ -0,0 +1,86 @@ +<?php +/** + * The wire's JavaScript + */ + +$site_url = elgg_get_site_url(); + +?> + +elgg.provide('elgg.thewire'); + +elgg.thewire.init = function() { +	$("#thewire-textarea").live('keydown', function() { +		elgg.thewire.textCounter(this, $("#thewire-characters-remaining span"), 140); +	}); +	$("#thewire-textarea").live('keyup', function() { +		elgg.thewire.textCounter(this, $("#thewire-characters-remaining span"), 140); +	}); + +	$(".thewire-previous").live('click', elgg.thewire.viewPrevious); +}; + +/** + * Update the number of characters left with every keystroke + * + * @param {Object}  textarea + * @param {Object}  status + * @param {integer} limit + * @return void + */ +elgg.thewire.textCounter = function(textarea, status, limit) { + +	var remaining_chars = limit - $(textarea).val().length; +	status.html(remaining_chars); + +	if (remaining_chars < 0) { +		status.parent().addClass("thewire-characters-remaining-warning"); +		$("#thewire-submit-button").attr('disabled', 'disabled'); +		$("#thewire-submit-button").addClass('elgg-state-disabled'); +	} else { +		status.parent().removeClass("thewire-characters-remaining-warning"); +		$("#thewire-submit-button").removeAttr('disabled', 'disabled'); +		$("#thewire-submit-button").removeClass('elgg-state-disabled'); +	} +}; + +/** + * Display the previous wire post + * + * Makes Ajax call to load the html and handles changing the previous link + * + * @param {Object} event + * @return void + */ +elgg.thewire.viewPrevious = function(event) { +	var $link = $(this); +	var postGuid = $link.attr("href").split("/").pop(); +	var $previousDiv = $("#thewire-previous-" + postGuid); + +	if ($link.html() == elgg.echo('thewire:hide')) { +		$link.html(elgg.echo('thewire:previous')); +		$link.attr("title", elgg.echo('thewire:previous:help')); +		$previousDiv.slideUp(400); +	} else { +		$link.html(elgg.echo('thewire:hide')); +		$link.attr("title", elgg.echo('thewire:hide:help')); +		 +		$.ajax({type: "GET", +			url: elgg.config.wwwroot + "ajax/view/thewire/previous", +			dataType: "html", +			cache: false, +			data: {guid: postGuid}, +			success: function(htmlData) { +				if (htmlData.length > 0) { +					$previousDiv.html(htmlData); +					$previousDiv.slideDown(600); +				} +			} +		}); + +	} + +	event.preventDefault(); +}; + +elgg.register_hook_handler('init', 'system', elgg.thewire.init); diff --git a/mod/thewire/views/default/object/thewire.php b/mod/thewire/views/default/object/thewire.php new file mode 100644 index 000000000..134c87243 --- /dev/null +++ b/mod/thewire/views/default/object/thewire.php @@ -0,0 +1,63 @@ +<?php +/** + * View a wire post + *  + * @uses $vars['entity'] + */ + +elgg_load_js('elgg.thewire'); + +$full = elgg_extract('full_view', $vars, FALSE); +$post = elgg_extract('entity', $vars, FALSE); + +if (!$post) { +	return true; +} + +// make compatible with posts created with original Curverider plugin +$thread_id = $post->wire_thread; +if (!$thread_id) { +	$post->wire_thread = $post->guid; +} + +$owner = $post->getOwnerEntity(); + +$owner_icon = elgg_view_entity_icon($owner, 'tiny'); +$owner_link = elgg_view('output/url', array( +	'href' => "thewire/owner/$owner->username", +	'text' => $owner->name, +	'is_trusted' => true, +)); +$author_text = elgg_echo('byline', array($owner_link)); +$date = elgg_view_friendly_time($post->time_created); + +$metadata = elgg_view_menu('entity', array( +	'entity' => $post, +	'handler' => 'thewire', +	'sort_by' => 'priority', +	'class' => 'elgg-menu-hz', +)); + +$subtitle = "$author_text $date"; + +// do not show the metadata and controls in widget view +if (elgg_in_context('widgets')) { +	$metadata = ''; +} + +$params = array( +	'entity' => $post, +	'metadata' => $metadata, +	'subtitle' => $subtitle, +	'content' => thewire_filter($post->description), +	'tags' => false, +); +$params = $params + $vars; +$list_body = elgg_view('object/elements/summary', $params); + +echo elgg_view_image_block($owner_icon, $list_body); + +if ($post->reply) { +	echo "<div class=\"thewire-parent hidden\" id=\"thewire-previous-{$post->guid}\">"; +	echo "</div>"; +} diff --git a/mod/thewire/views/default/river/object/thewire/create.php b/mod/thewire/views/default/river/object/thewire/create.php new file mode 100644 index 000000000..c75a42b3f --- /dev/null +++ b/mod/thewire/views/default/river/object/thewire/create.php @@ -0,0 +1,31 @@ +<?php +/** + * File river view. + */ + +$object = $vars['item']->getObjectEntity(); +$excerpt = strip_tags($object->description); +$excerpt = thewire_filter($excerpt); + +$subject = $vars['item']->getSubjectEntity(); +$subject_link = elgg_view('output/url', array( +	'href' => $subject->getURL(), +	'text' => $subject->name, +	'class' => 'elgg-river-subject', +	'is_trusted' => true, +)); + +$object_link = elgg_view('output/url', array( +	'href' => "thewire/owner/$subject->username", +	'text' => elgg_echo('thewire:wire'), +	'class' => 'elgg-river-object', +	'is_trusted' => true, +)); + +$summary = elgg_echo("river:create:object:thewire", array($subject_link, $object_link)); + +echo elgg_view('river/elements/layout', array( +	'item' => $vars['item'], +	'message' => $excerpt, +	'summary' => $summary, +));
\ No newline at end of file diff --git a/mod/thewire/views/default/thewire/css.php b/mod/thewire/views/default/thewire/css.php new file mode 100644 index 000000000..d11cce74a --- /dev/null +++ b/mod/thewire/views/default/thewire/css.php @@ -0,0 +1,35 @@ +<?php +/** + * The Wire CSS + */ + +?> +/******************************** +The Wire +*********************************/ +#thewire-textarea { +	height: 40px; +	padding: 6px; +} +#thewire-characters-remaining { +	text-align: right; +	float: right; +	font-weight: bold; +	color: #333333; +} +.thewire-characters-remaining { +	color:#333333; +	border:none; +	font-size: 100%; +	font-weight: bold; +	padding:0 2px 0 0; +	margin:0; +	text-align: right; +	background: white; +} +.thewire-characters-remaining-warning { +	color: #D40D12 !important; +} +.thewire-parent { +	margin-left: 40px; +} diff --git a/mod/thewire/views/default/thewire/previous.php b/mod/thewire/views/default/thewire/previous.php new file mode 100644 index 000000000..e1ca83e24 --- /dev/null +++ b/mod/thewire/views/default/thewire/previous.php @@ -0,0 +1,11 @@ +<?php +/** + * Serve up html for a post + */ + +$guid = (int) get_input('guid'); + +$parent = thewire_get_parent($guid); +if ($parent) { +	echo elgg_view_entity($parent); +} diff --git a/mod/thewire/views/default/thewire/profile_status.php b/mod/thewire/views/default/thewire/profile_status.php new file mode 100644 index 000000000..b5d9dbd80 --- /dev/null +++ b/mod/thewire/views/default/thewire/profile_status.php @@ -0,0 +1,44 @@ +<?php +/** + * Latest wire post on profile page + * + * @uses $vars['entity'] User that owns this profile page + */ + +$owner = $vars['entity']->guid; + +//grab the user's latest from the wire +$params = array( +	'types' => 'object', +	'subtypes' => 'thewire', +	'owner_guid' => $owner, +	'limit' => 1, +); +$latest_wire = elgg_get_entities($params); + +if ($latest_wire && count($latest_wire) > 0) { +	$latest_wire = $latest_wire[0]; +	$content = thewire_filter($latest_wire->description); +	$time = "<p class='elgg-subtext'>(" . elgg_view_friendly_time($latest_wire->time_created) . ")</p>"; + +	$button = ''; +	if ($owner == elgg_get_logged_in_user_guid()) { +		$url_to_wire = "thewire/owner/" . $vars['entity']->username; +		$button = elgg_view('output/url', array( +			'text' => elgg_echo('thewire:update'), +			'href' => $url_to_wire, +			'class' => 'elgg-button elgg-button-action float-alt', +			'is_trusted' => true, +		)); +	} + +	$body = $content . $time; +	$content = elgg_view_image_block('', $body, array('image_alt' => $button)); + +	echo <<< HTML +<div class="wire-status elgg-border-plain pam mbm clearfix"> +	$content +</div> +HTML; + +} diff --git a/mod/thewire/views/default/thewire/reply.php b/mod/thewire/views/default/thewire/reply.php new file mode 100644 index 000000000..341b691b1 --- /dev/null +++ b/mod/thewire/views/default/thewire/reply.php @@ -0,0 +1,14 @@ +<?php +/** + * Reply header + */ + +$post = $vars['post']; +$poster = $post->getOwnerEntity(); +$poster_details = array( +	htmlspecialchars($poster->name,  ENT_QUOTES, 'UTF-8'), +	htmlspecialchars($poster->username,  ENT_QUOTES, 'UTF-8'), +); +?> +<b><?php echo elgg_echo('thewire:replying', $poster_details); ?>: </b> +<?php echo $post->description;
\ No newline at end of file diff --git a/mod/thewire/views/default/thewire/scripts/counter.js b/mod/thewire/views/default/thewire/scripts/counter.js new file mode 100644 index 000000000..0d416fa9a --- /dev/null +++ b/mod/thewire/views/default/thewire/scripts/counter.js @@ -0,0 +1,25 @@ +/** + * Elgg thewire text counter + *  + * @package ElggTheWire + * + * @question - do we want users to be able to edit thewire? + *  + * @uses $vars['entity'] Optionally, the note to view + +<!-- Dynamic Version by: Nannette Thacker --> +<!-- http://www.shiningstar.net --> +<!-- Original by :  Ronnie T. Moore --> +<!-- Web Site:  The JavaScript Source --> +<!-- Limit the number of characters per textarea --> +*/ + +function textCounter(field,cntfield,maxlimit) { +    // if too long...trim it! +    if (field.value.length > maxlimit) { +        field.value = field.value.substring(0, maxlimit); +    } else { +        // otherwise, update 'characters left' counter +        cntfield.value = maxlimit - field.value.length; +    } +} diff --git a/mod/thewire/views/default/thewire/sidebar.php b/mod/thewire/views/default/thewire/sidebar.php new file mode 100644 index 000000000..a8aadd1f8 --- /dev/null +++ b/mod/thewire/views/default/thewire/sidebar.php @@ -0,0 +1,9 @@ +<?php +/** + * The wire sidebar + */ + +echo elgg_view('page/elements/tagcloud_block', array( +	'subtypes' => 'thewire', +	'owner_guid' => elgg_get_page_owner_guid(), +)); diff --git a/mod/thewire/views/default/widgets/thewire/content.php b/mod/thewire/views/default/widgets/thewire/content.php new file mode 100644 index 000000000..7212d4397 --- /dev/null +++ b/mod/thewire/views/default/widgets/thewire/content.php @@ -0,0 +1,30 @@ +<?php +/** + * User wire post widget display view + */ + +$num = $vars['entity']->num_display; + +$options = array( +	'type' => 'object', +	'subtype' => 'thewire', +	'container_guid' => $vars['entity']->owner_guid, +	'limit' => $num, +	'full_view' => FALSE, +	'pagination' => FALSE, +); +$content = elgg_list_entities($options); + +echo $content; + +if ($content) { +	$owner_url = "thewire/owner/" . elgg_get_page_owner_entity()->username; +	$more_link = elgg_view('output/url', array( +		'href' => $owner_url, +		'text' => elgg_echo('thewire:moreposts'), +		'is_trusted' => true, +	)); +	echo "<span class=\"elgg-widget-more\">$more_link</span>"; +} else { +	echo elgg_echo('thewire:noposts'); +} diff --git a/mod/thewire/views/default/widgets/thewire/edit.php b/mod/thewire/views/default/widgets/thewire/edit.php new file mode 100644 index 000000000..cee3f769d --- /dev/null +++ b/mod/thewire/views/default/widgets/thewire/edit.php @@ -0,0 +1,22 @@ +<?php +/** + * User wire widget edit view + */ + +// set default value +if (!isset($vars['entity']->num_display)) { +	$vars['entity']->num_display = 4; +} + +$params = array( +	'name' => 'params[num_display]', +	'value' => $vars['entity']->num_display, +	'options' => array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), +); +$dropdown = elgg_view('input/dropdown', $params); + +?> +<div> +	<?php echo elgg_echo('thewire:num'); ?>: +	<?php echo $dropdown; ?> +</div> diff --git a/mod/thewire/views/rss/object/thewire.php b/mod/thewire/views/rss/object/thewire.php new file mode 100644 index 000000000..8fddb8aa8 --- /dev/null +++ b/mod/thewire/views/rss/object/thewire.php @@ -0,0 +1,36 @@ +<?php +/** + * Elgg thewire rss view + * + * @package ElggTheWire + */ + +$owner = $vars['entity']->getOwnerEntity(); +if (!$owner) { +	return true; +} + +$title = elgg_echo('thewire:by', array($owner->name)); + +$permalink = htmlspecialchars($vars['entity']->getURL(), ENT_NOQUOTES, 'UTF-8'); +$pubdate = date('r', $vars['entity']->getTimeCreated()); + +$description = elgg_autop($vars['entity']->description); + +$creator = elgg_view('page/components/creator', $vars); +$georss = elgg_view('page/components/georss', $vars); +$extension = elgg_view('extensions/item', $vars); + +$item = <<<__HTML +<item> +	<guid isPermaLink="true">$permalink</guid> +	<pubDate>$pubdate</pubDate> +	<link>$permalink</link> +	<title><![CDATA[$title]]></title> +	<description><![CDATA[$description]]></description> +	$creator$georss$extension +</item> + +__HTML; + +echo $item; diff --git a/mod/thewire/views/rss/search/object/thewire/entity.php b/mod/thewire/views/rss/search/object/thewire/entity.php new file mode 100644 index 000000000..d9ea81ad1 --- /dev/null +++ b/mod/thewire/views/rss/search/object/thewire/entity.php @@ -0,0 +1,27 @@ +<?php +/** + * Elgg thewire. + * Search entity view for RSS feeds. + * + * @package ElggTheWire + */ + +if (!array_key_exists('entity', $vars)) { +	return FALSE; +} + +$owner = $vars['entity']->getOwnerEntity(); +if ($owner) { +	$title = elgg_echo('thewire:by', array($owner->name)); +} +$description = $vars['entity']->getVolatileData('search_matched_description'); + +?> + +<item> +	<guid isPermaLink='false'><?php echo $vars['entity']->getGUID(); ?></guid> +	<pubDate><?php echo date("r", $vars['entity']->time_created) ?></pubDate> +	<link><?php echo htmlspecialchars($vars['entity']->getURL()); ?></link> +	<title><![CDATA[<?php echo $title; ?>]]></title> +	<description><![CDATA[<?php	echo $description; ?>]]></description> +</item>  | 
