aboutsummaryrefslogtreecommitdiff
path: root/mod/thewire
diff options
context:
space:
mode:
Diffstat (limited to 'mod/thewire')
-rw-r--r--mod/thewire/actions/add.php2
-rw-r--r--mod/thewire/actions/delete.php2
-rw-r--r--mod/thewire/activate.php10
-rw-r--r--mod/thewire/classes/ElggWire.php4
-rw-r--r--mod/thewire/deactivate.php6
-rw-r--r--mod/thewire/languages/en.php8
-rw-r--r--mod/thewire/manifest.xml7
-rw-r--r--mod/thewire/pages/thewire/everyone.php7
-rw-r--r--mod/thewire/pages/thewire/friends.php12
-rw-r--r--mod/thewire/pages/thewire/owner.php15
-rw-r--r--mod/thewire/pages/thewire/previous.php1
-rw-r--r--mod/thewire/pages/thewire/reply.php4
-rw-r--r--mod/thewire/pages/thewire/tag.php1
-rw-r--r--mod/thewire/pages/thewire/thread.php1
-rw-r--r--mod/thewire/pages/thewire/view.php31
-rw-r--r--mod/thewire/start.php155
-rw-r--r--mod/thewire/tests/regex.php6
-rw-r--r--mod/thewire/upgrades/2012122701-fix_entity_class.php8
-rw-r--r--mod/thewire/views/default/forms/thewire/add.php9
-rw-r--r--mod/thewire/views/default/js/thewire.php26
-rw-r--r--mod/thewire/views/default/object/thewire.php4
-rw-r--r--mod/thewire/views/default/river/object/thewire/create.php31
-rw-r--r--mod/thewire/views/default/thewire/css.php3
-rw-r--r--mod/thewire/views/default/thewire/profile_status.php7
-rw-r--r--mod/thewire/views/default/thewire/reply.php7
-rw-r--r--mod/thewire/views/default/widgets/thewire/content.php1
-rw-r--r--mod/thewire/views/rss/object/thewire.php59
27 files changed, 272 insertions, 155 deletions
diff --git a/mod/thewire/actions/add.php b/mod/thewire/actions/add.php
index 97b630678..6b3d8d5ba 100644
--- a/mod/thewire/actions/add.php
+++ b/mod/thewire/actions/add.php
@@ -17,7 +17,7 @@ if (empty($body)) {
forward(REFERER);
}
-$guid = thewire_save_post($body, get_loggedin_userid(), $access_id, $parent_guid, $method);
+$guid = thewire_save_post($body, elgg_get_logged_in_user_guid(), $access_id, $parent_guid, $method);
if (!$guid) {
register_error(elgg_echo("thewire:error"));
forward(REFERER);
diff --git a/mod/thewire/actions/delete.php b/mod/thewire/actions/delete.php
index 58502a7e7..38355d25e 100644
--- a/mod/thewire/actions/delete.php
+++ b/mod/thewire/actions/delete.php
@@ -24,7 +24,7 @@ if ($thewire->getSubtype() == "thewire" && $thewire->canEdit()) {
}
// Get owning user
- $owner = get_entity($thewire->getOwner());
+ $owner = get_entity($thewire->getOwnerGUID());
// Delete it
$rowsaffected = $thewire->delete();
diff --git a/mod/thewire/activate.php b/mod/thewire/activate.php
new file mode 100644
index 000000000..1cc64ceb1
--- /dev/null
+++ b/mod/thewire/activate.php
@@ -0,0 +1,10 @@
+<?php
+/**
+ * Register the ElggWire class for the object/thewire subtype
+ */
+
+if (get_subtype_id('object', 'thewire')) {
+ update_subtype('object', 'thewire', 'ElggWire');
+} else {
+ add_subtype('object', 'thewire', 'ElggWire');
+}
diff --git a/mod/thewire/classes/ElggWire.php b/mod/thewire/classes/ElggWire.php
index 3242dd5cb..9c92dd8f2 100644
--- a/mod/thewire/classes/ElggWire.php
+++ b/mod/thewire/classes/ElggWire.php
@@ -1,6 +1,10 @@
<?php
/**
* ElggWire Class
+ *
+ * @property string $method The method used to create the wire post (site, sms, api)
+ * @property bool $reply Whether this wire post was a reply to another post
+ * @property int $wire_thread The identifier of the thread for this wire post
*/
class ElggWire extends ElggObject {
diff --git a/mod/thewire/deactivate.php b/mod/thewire/deactivate.php
new file mode 100644
index 000000000..3e20207a1
--- /dev/null
+++ b/mod/thewire/deactivate.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * Deregister the ElggWire class
+ */
+
+update_subtype('object', 'thewire'); \ No newline at end of file
diff --git a/mod/thewire/languages/en.php b/mod/thewire/languages/en.php
index b55fb11d0..3c83d145f 100644
--- a/mod/thewire/languages/en.php
+++ b/mod/thewire/languages/en.php
@@ -13,13 +13,14 @@ $english = array(
'thewire:user' => "%s's wire posts",
'thewire:friends' => "Friends' wire posts",
'thewire:reply' => "Reply",
- 'thewire:replying' => "Replying to %s who wrote",
+ 'thewire:replying' => "Replying to %s (@%s) who wrote",
'thewire:thread' => "Thread",
'thewire:charleft' => "characters remaining",
'thewire:tags' => "Wire posts tagged with '%s'",
'thewire:noposts' => "No wire posts yet",
'item:object:thewire' => "Wire posts",
'thewire:update' => 'Update',
+ 'thewire:by' => 'Wire post by %s',
'thewire:previous' => "Previous",
'thewire:hide' => "Hide",
@@ -29,7 +30,8 @@ $english = array(
/**
* The wire river
*/
- 'thewire:river:create' => "posted to the wire",
+ 'river:create:object:thewire' => "%s posted to the %s",
+ 'thewire:wire' => 'wire',
/**
* Wire widget
@@ -43,7 +45,7 @@ $english = array(
*/
'thewire:posted' => "Your message was successfully posted to the wire.",
'thewire:deleted' => "The wire post was successfully deleted.",
- 'thewire:blank' => "Sorry, you need to enter come text before we can post this.",
+ 'thewire:blank' => "Sorry, you need to enter some text before we can post this.",
'thewire:notfound' => "Sorry, we could not find the specified wire post.",
'thewire:notdeleted' => "Sorry. We could not delete this wire post.",
diff --git a/mod/thewire/manifest.xml b/mod/thewire/manifest.xml
index 27dd5732d..962ed12f1 100644
--- a/mod/thewire/manifest.xml
+++ b/mod/thewire/manifest.xml
@@ -8,11 +8,10 @@
<description>Microblogging for Elgg</description>
<website>http://www.elgg.org/</website>
<copyright>See COPYRIGHT.txt</copyright>
- <license>GNU Public License version 2</license>
+ <license>GNU General Public License version 2</license>
<requires>
- <type>elgg_version</type>
- <version>2010030101</version>
+ <type>elgg_release</type>
+ <version>1.8</version>
</requires>
- <admin_interface>simple</admin_interface>
<activate_on_install>true</activate_on_install>
</plugin_manifest>
diff --git a/mod/thewire/pages/thewire/everyone.php b/mod/thewire/pages/thewire/everyone.php
index e3d38ace5..c7438747e 100644
--- a/mod/thewire/pages/thewire/everyone.php
+++ b/mod/thewire/pages/thewire/everyone.php
@@ -8,22 +8,23 @@ elgg_push_breadcrumb(elgg_echo('thewire'));
$title = elgg_echo('thewire:everyone');
+$content = '';
if (elgg_is_logged_in()) {
- $content .= elgg_view_form('thewire/add');
+ $form_vars = array('class' => 'thewire-form');
+ $content .= elgg_view_form('thewire/add', $form_vars);
$content .= elgg_view('input/urlshortener');
}
$content .= elgg_list_entities(array(
'type' => 'object',
'subtype' => 'thewire',
- 'limit' => 15,
+ 'limit' => get_input('limit', 15),
));
$body = elgg_view_layout('content', array(
'filter_context' => 'all',
'content' => $content,
'title' => $title,
- 'buttons' => false,
'sidebar' => elgg_view('thewire/sidebar'),
));
diff --git a/mod/thewire/pages/thewire/friends.php b/mod/thewire/pages/thewire/friends.php
index ab452aa55..efa7e7a56 100644
--- a/mod/thewire/pages/thewire/friends.php
+++ b/mod/thewire/pages/thewire/friends.php
@@ -4,6 +4,9 @@
*/
$owner = elgg_get_page_owner_entity();
+if (!$owner) {
+ forward('', '404');
+}
$title = elgg_echo('thewire:friends');
@@ -11,13 +14,18 @@ elgg_push_breadcrumb(elgg_echo('thewire'), "thewire/all");
elgg_push_breadcrumb($owner->name, "thewire/owner/$owner->username");
elgg_push_breadcrumb(elgg_echo('friends'));
-$content = list_user_friends_objects($owner->guid, 'thewire', 15, false);
+if (elgg_get_logged_in_user_guid() == $owner->guid) {
+ $form_vars = array('class' => 'thewire-form');
+ $content = elgg_view_form('thewire/add', $form_vars);
+ $content .= elgg_view('input/urlshortener');
+}
+
+$content .= list_user_friends_objects($owner->guid, 'thewire', 15, false);
$body = elgg_view_layout('content', array(
'filter_context' => 'friends',
'content' => $content,
'title' => $title,
- 'buttons' => false,
));
echo elgg_view_page($title, $body);
diff --git a/mod/thewire/pages/thewire/owner.php b/mod/thewire/pages/thewire/owner.php
index d61307990..dc25940e1 100644
--- a/mod/thewire/pages/thewire/owner.php
+++ b/mod/thewire/pages/thewire/owner.php
@@ -5,29 +5,34 @@
*/
$owner = elgg_get_page_owner_entity();
+if (!$owner) {
+ forward('', '404');
+}
$title = elgg_echo('thewire:user', array($owner->name));
elgg_push_breadcrumb(elgg_echo('thewire'), "thewire/all");
elgg_push_breadcrumb($owner->name);
-if (get_loggedin_userid() == $owner->guid) {
- $content = elgg_view_form('thewire/add');
+$context = '';
+if (elgg_get_logged_in_user_guid() == $owner->guid) {
+ $form_vars = array('class' => 'thewire-form');
+ $content = elgg_view_form('thewire/add', $form_vars);
$content .= elgg_view('input/urlshortener');
+ $context = 'mine';
}
$content .= elgg_list_entities(array(
'type' => 'object',
'subtype' => 'thewire',
'owner_guid' => $owner->guid,
- 'limit' => 15,
+ 'limit' => get_input('limit', 15),
));
$body = elgg_view_layout('content', array(
- 'filter_context' => 'mine',
+ 'filter_context' => $context,
'content' => $content,
'title' => $title,
- 'buttons' => false,
'sidebar' => elgg_view('thewire/sidebar'),
));
diff --git a/mod/thewire/pages/thewire/previous.php b/mod/thewire/pages/thewire/previous.php
index 45c1e1095..a3f1cb01c 100644
--- a/mod/thewire/pages/thewire/previous.php
+++ b/mod/thewire/pages/thewire/previous.php
@@ -15,7 +15,6 @@ $body = elgg_view_layout('content', array(
'filter' => false,
'content' => $body,
'title' => $title,
- 'buttons' => false,
));
echo elgg_view_page($title, $body); \ No newline at end of file
diff --git a/mod/thewire/pages/thewire/reply.php b/mod/thewire/pages/thewire/reply.php
index 826d513b6..df4511c51 100644
--- a/mod/thewire/pages/thewire/reply.php
+++ b/mod/thewire/pages/thewire/reply.php
@@ -14,7 +14,8 @@ elgg_push_breadcrumb(elgg_echo('thewire'), 'thewire/all');
elgg_push_breadcrumb($title);
$content = elgg_view('thewire/reply', array('post' => $post));
-$content .= elgg_view_form('thewire/add', array(), array('post' => $post));
+$form_vars = array('class' => 'thewire-form');
+$content .= elgg_view_form('thewire/add', $form_vars, array('post' => $post));
$content .= elgg_view('input/urlshortener');
@@ -22,7 +23,6 @@ $body = elgg_view_layout('content', array(
'filter' => false,
'content' => $content,
'title' => $title,
- 'buttons' => false,
));
echo elgg_view_page($title, $body);
diff --git a/mod/thewire/pages/thewire/tag.php b/mod/thewire/pages/thewire/tag.php
index 53f9e9db9..1c88030ec 100644
--- a/mod/thewire/pages/thewire/tag.php
+++ b/mod/thewire/pages/thewire/tag.php
@@ -30,7 +30,6 @@ $body = elgg_view_layout('content', array(
'filter' => false,
'content' => $content,
'title' => $title,
- 'buttons' => false,
));
echo elgg_view_page($title, $body);
diff --git a/mod/thewire/pages/thewire/thread.php b/mod/thewire/pages/thewire/thread.php
index 5c32a8400..ec2709430 100644
--- a/mod/thewire/pages/thewire/thread.php
+++ b/mod/thewire/pages/thewire/thread.php
@@ -22,7 +22,6 @@ $body = elgg_view_layout('content', array(
'filter' => false,
'content' => $content,
'title' => $title,
- 'buttons' => false,
));
echo elgg_view_page($title, $body);
diff --git a/mod/thewire/pages/thewire/view.php b/mod/thewire/pages/thewire/view.php
new file mode 100644
index 000000000..1709e5e9a
--- /dev/null
+++ b/mod/thewire/pages/thewire/view.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * View individual wire post
+ */
+
+$post = get_entity(get_input('guid'));
+if (!$post) {
+ register_error(elgg_echo('noaccess'));
+ $_SESSION['last_forward_from'] = current_page_url();
+ forward('');
+}
+$owner = $post->getOwnerEntity();
+if (!$owner) {
+ forward();
+}
+
+$title = elgg_echo('thewire:by', array($owner->name));
+
+elgg_push_breadcrumb(elgg_echo('thewire'), 'thewire/all');
+elgg_push_breadcrumb($owner->name, 'thewire/owner/' . $owner->username);
+elgg_push_breadcrumb($title);
+
+$content = elgg_view_entity($post);
+
+$body = elgg_view_layout('content', array(
+ 'filter' => false,
+ 'content' => $content,
+ 'title' => $title,
+));
+
+echo elgg_view_page($title, $body);
diff --git a/mod/thewire/start.php b/mod/thewire/start.php
index 770f8bce0..8b01cc57a 100644
--- a/mod/thewire/start.php
+++ b/mod/thewire/start.php
@@ -12,22 +12,20 @@
* Nathan Koterba
*/
-register_elgg_event_handler('init', 'system', 'thewire_init');
+elgg_register_event_handler('init', 'system', 'thewire_init');
/**
* The Wire initialization
*/
function thewire_init() {
- global $CONFIG;
-
- if (!update_subtype('object', 'thewire', 'ElggWire')) {
- add_subtype('object', 'thewire', 'ElggWire');
- }
// register the wire's JavaScript
$thewire_js = elgg_get_simplecache_url('js', 'thewire');
+ elgg_register_simplecache_view('js/thewire');
elgg_register_js('elgg.thewire', $thewire_js, 'footer');
+ elgg_register_ajax_view('thewire/previous');
+
// add a site navigation item
$item = new ElggMenuItem('thewire', elgg_echo('thewire'), 'thewire/all');
elgg_register_menu_item('site', $item);
@@ -39,7 +37,7 @@ function thewire_init() {
elgg_register_plugin_hook_handler('register', 'menu:entity', 'thewire_setup_entity_menu_items');
// Extend system CSS with our own styles, which are defined in the thewire/css view
- elgg_extend_view('css', 'thewire/css');
+ elgg_extend_view('css/elgg', 'thewire/css');
//extend views
elgg_extend_view('activity/thewire', 'thewire/activity_view');
@@ -52,24 +50,25 @@ function thewire_init() {
// Register a URL handler for thewire posts
elgg_register_entity_url_handler('object', 'thewire', 'thewire_url');
- // Your thewire widget
- add_widget_type('thewire', elgg_echo('thewire'), elgg_echo("thewire:widget:desc"));
+ elgg_register_widget_type('thewire', elgg_echo('thewire'), elgg_echo("thewire:widget:desc"));
- // Register entity type
+ // Register for search
elgg_register_entity_type('object', 'thewire');
// Register granular notification for this type
register_notification_object('object', 'thewire', elgg_echo('thewire:notify:subject'));
// Listen to notification events and supply a more useful message
- register_plugin_hook('notify:entity:message', 'object', 'thewire_notify_message');
+ elgg_register_plugin_hook_handler('notify:entity:message', 'object', 'thewire_notify_message');
// Register actions
- $action_base = $CONFIG->pluginspath . 'thewire/actions';
- register_action("thewire/add", false, "$action_base/add.php");
- register_action("thewire/delete", false, "$action_base/delete.php");
+ $action_base = elgg_get_plugins_path() . 'thewire/actions';
+ elgg_register_action("thewire/add", "$action_base/add.php");
+ elgg_register_action("thewire/delete", "$action_base/delete.php");
- register_plugin_hook('unit_test', 'system', 'thewire_test');
+ elgg_register_plugin_hook_handler('unit_test', 'system', 'thewire_test');
+
+ elgg_register_event_handler('upgrade', 'system', 'thewire_run_upgrades');
}
/**
@@ -80,61 +79,72 @@ function thewire_init() {
* thewire/owner/<username> View this user's wire posts
* thewire/following/<username> View the posts of those this user follows
* thewire/reply/<guid> Reply to a post
- * thewire/view/<guid> View a conversation thread
+ * thewire/view/<guid> View a post
+ * thewire/thread/<id> View a conversation thread
* thewire/tag/<tag> View wire posts tagged with <tag>
*
* @param array $page From the page_handler function
- * @return true|false Depending on success
+ * @return bool
*/
function thewire_page_handler($page) {
$base_dir = elgg_get_plugins_path() . 'thewire/pages/thewire';
- // if just /thewire go to global view in the else statement
- if (isset($page[0]) && $page[0]) {
-
- switch ($page[0]) {
- case "all":
- include "$base_dir/everyone.php";
- break;
-
- case "friends":
- include "$base_dir/friends.php";
- break;
-
- case "owner":
- include "$base_dir/owner.php";
- break;
-
- case "thread":
- if (isset($page[1])) {
- set_input('thread_id', $page[1]);
- }
- include "$base_dir/thread.php";
- break;
- case "reply":
- if (isset($page[1])) {
- set_input('guid', $page[1]);
- }
- include "$base_dir/reply.php";
- break;
- case "tag":
- if (isset($page[1])) {
- set_input('tag', $page[1]);
- }
- include "$base_dir/tag.php";
- break;
- case "previous":
- if (isset($page[1])) {
- set_input('guid', $page[1]);
- }
- include "$base_dir/previous.php";
- break;
- }
- } else {
- include "$base_dir/everyone.php";
+ if (!isset($page[0])) {
+ $page = array('all');
}
+ switch ($page[0]) {
+ case "all":
+ include "$base_dir/everyone.php";
+ break;
+
+ case "friends":
+ include "$base_dir/friends.php";
+ break;
+
+ case "owner":
+ include "$base_dir/owner.php";
+ break;
+
+ case "view":
+ if (isset($page[1])) {
+ set_input('guid', $page[1]);
+ }
+ include "$base_dir/view.php";
+ break;
+
+ case "thread":
+ if (isset($page[1])) {
+ set_input('thread_id', $page[1]);
+ }
+ include "$base_dir/thread.php";
+ break;
+
+ case "reply":
+ if (isset($page[1])) {
+ set_input('guid', $page[1]);
+ }
+ include "$base_dir/reply.php";
+ break;
+
+ case "tag":
+ if (isset($page[1])) {
+ set_input('tag', $page[1]);
+ }
+ include "$base_dir/tag.php";
+ break;
+
+ case "previous":
+ if (isset($page[1])) {
+ set_input('guid', $page[1]);
+ }
+ include "$base_dir/previous.php";
+ break;
+
+ default:
+ return false;
+ }
return true;
}
@@ -213,7 +223,7 @@ function thewire_filter($text) {
// usernames
$text = preg_replace(
- '/(^|[^\w])@([\w]+)/',
+ '/(^|[^\w])@([\p{L}\p{Nd}._]+)/u',
'$1<a href="' . $CONFIG->wwwroot . 'thewire/owner/$2">@$2</a>',
$text);
@@ -279,6 +289,16 @@ function thewire_save_post($text, $userid, $access_id, $parent_guid = 0, $method
if ($guid) {
add_to_river('river/object/thewire/create', 'create', $post->owner_guid, $post->guid);
+
+ // let other plugins know we are setting a user status
+ $params = array(
+ 'entity' => $post,
+ 'user' => $post->getOwnerEntity(),
+ 'message' => $post->description,
+ 'url' => $post->getURL(),
+ 'origin' => 'thewire',
+ );
+ elgg_trigger_plugin_hook('status', 'user', $params);
}
return $guid;
@@ -294,7 +314,7 @@ function thewire_save_post($text, $userid, $access_id, $parent_guid = 0, $method
*/
function thewire_send_response_notification($guid, $parent_guid, $user) {
$parent_owner = get_entity($parent_guid)->getOwnerEntity();
- $user = get_loggedin_user();
+ $user = elgg_get_logged_in_user_entity();
// check to make sure user is not responding to self
if ($parent_owner->guid != $user->guid) {
@@ -402,7 +422,7 @@ function thewire_setup_entity_menu_items($hook, $type, $value, $params) {
'text' => elgg_echo('thewire:previous'),
'href' => "thewire/previous/$entity->guid",
'priority' => 160,
- 'class' => 'thewire-previous',
+ 'link_class' => 'thewire-previous',
'title' => elgg_echo('thewire:previous:help'),
);
$value[] = ElggMenuItem::factory($options);
@@ -444,3 +464,12 @@ function thewire_test($hook, $type, $value, $params) {
$value[] = $CONFIG->pluginspath . 'thewire/tests/regex.php';
return $value;
}
+
+function thewire_run_upgrades() {
+ $path = dirname(__FILE__) . '/upgrades/';
+ $files = elgg_get_upgrade_files($path);
+
+ foreach ($files as $file) {
+ include $path . $file;
+ }
+} \ No newline at end of file
diff --git a/mod/thewire/tests/regex.php b/mod/thewire/tests/regex.php
index f5487a422..c73e06bdc 100644
--- a/mod/thewire/tests/regex.php
+++ b/mod/thewire/tests/regex.php
@@ -127,6 +127,12 @@ class TheWireRegexTest extends ElggCoreUnitTest {
$expected = "test (" . $this->getUserWireLink('user') . ") test";
$result = thewire_filter($text);
$this->assertEqual($result, $expected);
+
+ // utf8 characters
+ $text = "@tyúkanyó";
+ $expected = $this->getUserWireLink('tyúkanyó');
+ $result = thewire_filter($text);
+ $this->assertEqual($result, $expected);
}
/**
diff --git a/mod/thewire/upgrades/2012122701-fix_entity_class.php b/mod/thewire/upgrades/2012122701-fix_entity_class.php
new file mode 100644
index 000000000..a1f382712
--- /dev/null
+++ b/mod/thewire/upgrades/2012122701-fix_entity_class.php
@@ -0,0 +1,8 @@
+<?php
+/**
+ * Register thewire objects with the ElggWire class.
+ */
+
+if (get_subtype_id('object', 'thewire')) {
+ update_subtype('object', 'thewire', 'ElggWire');
+} \ No newline at end of file
diff --git a/mod/thewire/views/default/forms/thewire/add.php b/mod/thewire/views/default/forms/thewire/add.php
index 67585b0df..8607b3662 100644
--- a/mod/thewire/views/default/forms/thewire/add.php
+++ b/mod/thewire/views/default/forms/thewire/add.php
@@ -20,12 +20,17 @@ if ($post) {
'value' => $post->guid,
));
}
+
+echo elgg_view('input/plaintext', array(
+ 'name' => 'body',
+ 'class' => 'mtm',
+ 'id' => 'thewire-textarea',
+));
?>
-<textarea id="thewire-textarea" name="body" class="mtm"></textarea>
<div id="thewire-characters-remaining">
<span>140</span> <?php echo elgg_echo('thewire:charleft'); ?>
</div>
-<div class="mts">
+<div class="elgg-foot mts">
<?php
echo elgg_view('input/submit', array(
diff --git a/mod/thewire/views/default/js/thewire.php b/mod/thewire/views/default/js/thewire.php
index 1eda90bee..ba8f35050 100644
--- a/mod/thewire/views/default/js/thewire.php
+++ b/mod/thewire/views/default/js/thewire.php
@@ -18,7 +18,7 @@ elgg.thewire.init = function() {
});
$(".thewire-previous").live('click', elgg.thewire.viewPrevious);
-}
+};
/**
* Update the number of characters left with every keystroke
@@ -30,19 +30,19 @@ elgg.thewire.init = function() {
*/
elgg.thewire.textCounter = function(textarea, status, limit) {
- var remaining_chars = limit - textarea.value.length;
+ var remaining_chars = limit - $(textarea).val().length;
status.html(remaining_chars);
if (remaining_chars < 0) {
- status.parent().css("color", "#D40D12");
+ status.parent().addClass("thewire-characters-remaining-warning");
$("#thewire-submit-button").attr('disabled', 'disabled');
$("#thewire-submit-button").addClass('elgg-state-disabled');
} else {
- status.parent().css("color", "");
+ 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
@@ -57,16 +57,16 @@ elgg.thewire.viewPrevious = function(event) {
var postGuid = $link.attr("href").split("/").pop();
var $previousDiv = $("#thewire-previous-" + postGuid);
- if ($link.html() == "<?php echo elgg_echo('thewire:hide'); ?>") {
- $link.html("<?php echo elgg_echo('thewire:previous'); ?>");
- $link.attr("title", "<?php echo elgg_echo('thewire:previous:help'); ?>");
+ 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("<?php echo elgg_echo('thewire:hide'); ?>");
- $link.attr("title", "<?php echo elgg_echo('thewire:hide:help'); ?>");
+ $link.html(elgg.echo('thewire:hide'));
+ $link.attr("title", elgg.echo('thewire:hide:help'));
$.ajax({type: "GET",
- url: "<?php echo $site_url . "ajax/view/thewire/previous"; ?>",
+ url: elgg.config.wwwroot + "ajax/view/thewire/previous",
dataType: "html",
cache: false,
data: {guid: postGuid},
@@ -81,6 +81,6 @@ elgg.thewire.viewPrevious = function(event) {
}
event.preventDefault();
-}
+};
-elgg.register_hook_handler('init', 'system', elgg.thewire.init); \ No newline at end of file
+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
index 7beb197ee..134c87243 100644
--- a/mod/thewire/views/default/object/thewire.php
+++ b/mod/thewire/views/default/object/thewire.php
@@ -26,6 +26,7 @@ $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);
@@ -51,7 +52,8 @@ $params = array(
'content' => thewire_filter($post->description),
'tags' => false,
);
-$list_body = elgg_view('page/components/summary', $params);
+$params = $params + $vars;
+$list_body = elgg_view('object/elements/summary', $params);
echo elgg_view_image_block($owner_icon, $list_body);
diff --git a/mod/thewire/views/default/river/object/thewire/create.php b/mod/thewire/views/default/river/object/thewire/create.php
index d4dac38ee..c75a42b3f 100644
--- a/mod/thewire/views/default/river/object/thewire/create.php
+++ b/mod/thewire/views/default/river/object/thewire/create.php
@@ -7,18 +7,25 @@ $object = $vars['item']->getObjectEntity();
$excerpt = strip_tags($object->description);
$excerpt = thewire_filter($excerpt);
-$params = array(
- 'href' => $object->getURL(),
- 'text' => $object->title,
-);
-$link = elgg_view('output/url', $params);
+$subject = $vars['item']->getSubjectEntity();
+$subject_link = elgg_view('output/url', array(
+ 'href' => $subject->getURL(),
+ 'text' => $subject->name,
+ 'class' => 'elgg-river-subject',
+ 'is_trusted' => true,
+));
-echo elgg_echo('thewire:river:create');
+$object_link = elgg_view('output/url', array(
+ 'href' => "thewire/owner/$subject->username",
+ 'text' => elgg_echo('thewire:wire'),
+ 'class' => 'elgg-river-object',
+ 'is_trusted' => true,
+));
-echo " $link";
+$summary = elgg_echo("river:create:object:thewire", array($subject_link, $object_link));
-if ($excerpt) {
- echo '<div class="elgg-river-content">';
- echo $excerpt;
- echo '</div>';
-}
+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
index d1ef31993..d11cce74a 100644
--- a/mod/thewire/views/default/thewire/css.php
+++ b/mod/thewire/views/default/thewire/css.php
@@ -27,6 +27,9 @@ The Wire
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/profile_status.php b/mod/thewire/views/default/thewire/profile_status.php
index 6ab47bccb..26e1403fe 100644
--- a/mod/thewire/views/default/thewire/profile_status.php
+++ b/mod/thewire/views/default/thewire/profile_status.php
@@ -9,8 +9,8 @@ $owner = $vars['entity']->guid;
//grab the user's latest from the wire
$params = array(
- 'types' => 'object',
- 'subtypes' => 'thewire',
+ 'type' => 'object',
+ 'subtype' => 'thewire',
'owner_guid' => $owner,
'limit' => 1,
);
@@ -27,7 +27,8 @@ if ($latest_wire && count($latest_wire) > 0) {
$button = elgg_view('output/url', array(
'text' => elgg_echo('thewire:update'),
'href' => $url_to_wire,
- 'class' => 'elgg-button elgg-button-action right',
+ 'class' => 'elgg-button elgg-button-action float-alt',
+ 'is_trusted' => true,
));
}
diff --git a/mod/thewire/views/default/thewire/reply.php b/mod/thewire/views/default/thewire/reply.php
index 3794e1454..341b691b1 100644
--- a/mod/thewire/views/default/thewire/reply.php
+++ b/mod/thewire/views/default/thewire/reply.php
@@ -5,7 +5,10 @@
$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', array($poster->name)); ?>: </b>
+<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/widgets/thewire/content.php b/mod/thewire/views/default/widgets/thewire/content.php
index 835a328b0..7212d4397 100644
--- a/mod/thewire/views/default/widgets/thewire/content.php
+++ b/mod/thewire/views/default/widgets/thewire/content.php
@@ -22,6 +22,7 @@ if ($content) {
$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 {
diff --git a/mod/thewire/views/rss/object/thewire.php b/mod/thewire/views/rss/object/thewire.php
index 8229f46f1..8fddb8aa8 100644
--- a/mod/thewire/views/rss/object/thewire.php
+++ b/mod/thewire/views/rss/object/thewire.php
@@ -2,46 +2,35 @@
/**
* Elgg thewire rss view
*
- * @package Elgg
- * @subpackage Core
+ * @package ElggTheWire
*/
$owner = $vars['entity']->getOwnerEntity();
-if ($owner) {
- $title = elgg_echo('thewire:by', array($owner->name));
-} else {
- $subtitle = strip_tags($vars['entity']->description);
- $title = elgg_get_excerpt($subtitle, 32);
+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='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 (autop($vars['entity']->description)); ?>]]></description>
-<?php
-$owner = $vars['entity']->getOwnerEntity();
-if ($owner) {
- ?>
- <dc:creator><?php echo $owner->name; ?></dc:creator>
- <?php
-}
-?>
-<?php
-if (
- ($vars['entity'] instanceof Locatable) &&
- ($vars['entity']->getLongitude()) &&
- ($vars['entity']->getLatitude())
-) {
- ?>
- <georss:point>
- <?php echo $vars['entity']->getLatitude(); ?> <?php echo $vars['entity']->getLongitude(); ?>
- </georss:point>
- <?php
-}
-?>
-<?php echo elgg_view('extensions/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;