From 4106d50727d5a56ec1442b16e182fbd9acc6b167 Mon Sep 17 00:00:00 2001 From: cash Date: Sat, 29 Oct 2011 15:07:43 -0400 Subject: [PATCH 1/4] Fixes #3201 updates rss view type for core Elgg --- engine/classes/ElggEntity.php | 15 +++--- engine/classes/Locatable.php | 2 +- languages/en.php | 2 + views/default/annotation/generic_comment.php | 4 +- views/rss/annotation/default.php | 34 ------------ views/rss/annotation/generic_comment.php | 33 ++++++++++++ views/rss/group/default.php | 54 ++++++++++---------- views/rss/object/creator.php | 8 --- views/rss/object/default.php | 17 +++--- views/rss/object/georss.php | 10 ---- views/rss/output/url.php | 2 +- views/rss/page/components/creator.php | 14 +++++ views/rss/page/components/georss.php | 15 ++++++ views/rss/page/default.php | 17 +++--- views/rss/page/elements/comments.php | 13 +++++ views/rss/river/item.php | 27 +++++----- views/rss/search/entity_list.php | 12 ----- views/rss/user/default.php | 43 +++++++++------- 18 files changed, 169 insertions(+), 153 deletions(-) delete mode 100644 views/rss/annotation/default.php create mode 100644 views/rss/annotation/generic_comment.php delete mode 100644 views/rss/object/creator.php delete mode 100644 views/rss/object/georss.php create mode 100644 views/rss/page/components/creator.php create mode 100644 views/rss/page/components/georss.php create mode 100644 views/rss/page/elements/comments.php delete mode 100644 views/rss/search/entity_list.php diff --git a/engine/classes/ElggEntity.php b/engine/classes/ElggEntity.php index ccf88a6f7c7..fdf2a80ea59 100644 --- a/engine/classes/ElggEntity.php +++ b/engine/classes/ElggEntity.php @@ -1434,10 +1434,11 @@ public function getLocation() { * * @param string $location String representation of the location * - * @return true + * @return bool */ public function setLocation($location) { - return $this->location = $location; + $this->location = $location; + return true; } /** @@ -1446,7 +1447,7 @@ public function setLocation($location) { * @param float $lat Latitude * @param float $long Longitude * - * @return true + * @return bool * @todo Unimplemented */ public function setLatLong($lat, $long) { @@ -1459,20 +1460,20 @@ public function setLatLong($lat, $long) { /** * Return the entity's latitude. * - * @return int + * @return float * @todo Unimplemented */ public function getLatitude() { - return $this->get('geo:lat'); + return (float)$this->get('geo:lat'); } /** * Return the entity's longitude * - * @return Int + * @return float */ public function getLongitude() { - return $this->get('geo:long'); + return (float)$this->get('geo:long'); } /* diff --git a/engine/classes/Locatable.php b/engine/classes/Locatable.php index 0977dde9943..7287d9798ae 100644 --- a/engine/classes/Locatable.php +++ b/engine/classes/Locatable.php @@ -13,7 +13,7 @@ interface Locatable { * @param string $location Textual representation of location * * @return bool - **/ + */ public function setLocation($location); /** diff --git a/languages/en.php b/languages/en.php index 3216be5e71a..5af00581455 100644 --- a/languages/en.php +++ b/languages/en.php @@ -425,6 +425,7 @@ 'riveritem:plural:user' => 'some users', 'river:ingroup' => 'in the group %s', 'river:none' => 'No activity', + 'river:update' => 'Update for %s', 'river:widget:title' => "Activity", 'river:widget:description' => "Display latest activity", @@ -1098,6 +1099,7 @@ 'generic_comment:notdeleted' => "Sorry, we could not delete this comment.", 'generic_comment:failure' => "An unexpected error occurred when adding your comment. Please try again.", 'generic_comment:none' => 'No comments', + 'generic_comment:title' => 'Comment by %s', 'generic_comment:email:subject' => 'You have a new comment!', 'generic_comment:email:body' => "You have a new comment on your item \"%s\" from %s. It reads: diff --git a/views/default/annotation/generic_comment.php b/views/default/annotation/generic_comment.php index a4fbf904e18..56a06f84281 100644 --- a/views/default/annotation/generic_comment.php +++ b/views/default/annotation/generic_comment.php @@ -2,8 +2,8 @@ /** * Elgg generic comment view * - * @uses $vars['annotation'] ElggAnnotation object - * @uses $vars['full_view'] Display fill view or brief view + * @uses $vars['annotation'] ElggAnnotation object + * @uses $vars['full_view'] Display fill view or brief view */ if (!isset($vars['annotation'])) { diff --git a/views/rss/annotation/default.php b/views/rss/annotation/default.php deleted file mode 100644 index 98329f132e0..00000000000 --- a/views/rss/annotation/default.php +++ /dev/null @@ -1,34 +0,0 @@ -entity_guid); - -$title = substr($vars['annotation']->value, 0, 32); -if (strlen($vars['annotation']->value) > 32) { - $title .= " ..."; -} - -$permalink = $entity->getURL(); -$pubdate = date('r', $entity->time_created); - -$creator = elgg_view('object/creator', array('entity' => $entity)); -$georss = elgg_view('object/georss', array('entity' => $entity)); -$extensions = elgg_view('extensions/item'); - -$item = <<<__HTML - - $permalink#{$vars['annotation']->id} - $pubdate - $permalink#{$vars['annotation']->id} - <![CDATA[$title]]> - value}]]> - $creator$georss$extensions - -__HTML; - -echo $item; diff --git a/views/rss/annotation/generic_comment.php b/views/rss/annotation/generic_comment.php new file mode 100644 index 00000000000..9e910756869 --- /dev/null +++ b/views/rss/annotation/generic_comment.php @@ -0,0 +1,33 @@ +getOwnerEntity(); +$poster_name = htmlspecialchars($poster->name, ENT_NOQUOTES, 'UTF-8'); +$pubdate = date('r', $annotation->getTimeCreated()); +$permalink = $annotation->getURL(); + +$title = elgg_echo('generic_comment:title', array($poster_name)); + +$creator = elgg_view('page/components/creator', array('entity' => $annotation)); +$extensions = elgg_view('extensions/item'); + +$item = <<<__HTML + + $permalink + $pubdate + $permalink + <![CDATA[$title]]> + value}]]> + $creator$extensions + + +__HTML; + +echo $item; diff --git a/views/rss/group/default.php b/views/rss/group/default.php index 4ffceba7811..1276ab8f12f 100644 --- a/views/rss/group/default.php +++ b/views/rss/group/default.php @@ -1,37 +1,37 @@ +$permalink = htmlspecialchars($vars['entity']->getURL(), ENT_NOQUOTES, 'UTF-8'); +$pubdate = date('r', $vars['entity']->getTimeCreated()); +$title = htmlspecialchars($vars['entity']->name, ENT_NOQUOTES, 'UTF-8'); +if ($vars['entity']->description) { + $description = autop($vars['entity']->description); +} elseif ($vars['entity']->briefdescription) { + $description = autop($vars['entity']->briefdescription); +} else { + $description = ''; +} + +$creator = elgg_view('page/components/creator', $vars); +$georss = elgg_view('page/components/georss', $vars); +$extension = elgg_view('extensions/item'); + +$item = <<<__HTML -getURL()); ?> -time_created) ?> -getURL()); ?> -<![CDATA[<?php echo (($vars['entity']->name)); ?>]]> -description)); ?>]]> -getOwnerEntity(); - if ($owner) { -?> -name; ?> - -getLongitude()) && - ($vars['entity']->getLatitude()) - ) { - ?> - getLatitude(); ?> getLongitude(); ?> - - + $permalink + $pubdate + $permalink + <![CDATA[$title]]> + + $creator$georss$extension + +__HTML; + +echo $item; diff --git a/views/rss/object/creator.php b/views/rss/object/creator.php deleted file mode 100644 index 2bc6fd57d2b..00000000000 --- a/views/rss/object/creator.php +++ /dev/null @@ -1,8 +0,0 @@ -getOwnerEntity()) { - echo "{$owner->name}"; -} diff --git a/views/rss/object/default.php b/views/rss/object/default.php index 29e5d459199..b5d269ac7bb 100644 --- a/views/rss/object/default.php +++ b/views/rss/object/default.php @@ -1,6 +1,6 @@ title; if (empty($title)) { - $subtitle = strip_tags($vars['entity']->description); - $title = substr($subtitle, 0, 32); - if (strlen($subtitle) > 32) { - $title .= ' ...'; - } + $title = strip_tags($vars['entity']->description); + $title = elgg_get_excerpt($title, 32); } -$permalink = htmlspecialchars($vars['entity']->getURL()); -$pubdate = date('r', $vars['entity']->time_created); +$permalink = htmlspecialchars($vars['entity']->getURL(), ENT_NOQUOTES, 'UTF-8'); +$pubdate = date('r', $vars['entity']->getTimeCreated()); -$creator = elgg_view('object/creator', $vars); -$georss = elgg_view('object/georss', $vars); +$creator = elgg_view('page/components/creator', $vars); +$georss = elgg_view('page/components/georss', $vars); $extension = elgg_view('extensions/item'); $item = <<<__HTML diff --git a/views/rss/object/georss.php b/views/rss/object/georss.php deleted file mode 100644 index 8aa02751988..00000000000 --- a/views/rss/object/georss.php +++ /dev/null @@ -1,10 +0,0 @@ -getLongitude()) && ($longitude = $vars['entity']->getLatitude()) -) { - echo "$latitude $longitude"; -} \ No newline at end of file diff --git a/views/rss/output/url.php b/views/rss/output/url.php index e0b94bf8d52..b0f4d9792ba 100644 --- a/views/rss/output/url.php +++ b/views/rss/output/url.php @@ -1,6 +1,6 @@ getOwnerEntity(); +if ($owner) { + $owner_name = htmlspecialchars($owner->name, ENT_NOQUOTES, 'UTF-8'); + echo "$owner_name"; +} diff --git a/views/rss/page/components/georss.php b/views/rss/page/components/georss.php new file mode 100644 index 00000000000..d176b8cacdd --- /dev/null +++ b/views/rss/page/components/georss.php @@ -0,0 +1,15 @@ +getLongitude(); +$latitude = $vars['entity']->getLatitude(); + +if ($vars['entity'] instanceof Locatable && $longitude && $latitude) { + echo "$latitude $longitude"; +} diff --git a/views/rss/page/default.php b/views/rss/page/default.php index cd94b0242f3..246ec972e27 100644 --- a/views/rss/page/default.php +++ b/views/rss/page/default.php @@ -4,7 +4,6 @@ * * @package Elgg * @subpackage Core - * */ header("Content-Type: text/xml"); @@ -12,7 +11,7 @@ // allow caching as required by stupid MS products for https feeds. header('Pragma: public', TRUE); -echo "\n"; +echo ""; // Set title if (empty($vars['title'])) { @@ -22,8 +21,8 @@ } // Remove RSS from URL -$url = str_replace('?view=rss','', full_url()); -$url = str_replace('&view=rss','', $url); +$url = str_replace('?view=rss', '', full_url()); +$url = str_replace('&view=rss', '', $url); ?> @@ -32,11 +31,9 @@ <![CDATA[<?php echo $title; ?>]]> - - + diff --git a/views/rss/page/elements/comments.php b/views/rss/page/elements/comments.php new file mode 100644 index 00000000000..9c655ffef86 --- /dev/null +++ b/views/rss/page/elements/comments.php @@ -0,0 +1,13 @@ + $vars['entity']->getGUID(), + 'annotation_name' => 'generic_comment', + 'order_by' => 'n_table.time_created desc', +); +echo elgg_list_annotations($options); diff --git a/views/rss/river/item.php b/views/rss/river/item.php index f84e6ccf0f0..fa2914eff00 100644 --- a/views/rss/river/item.php +++ b/views/rss/river/item.php @@ -6,27 +6,30 @@ */ $item = $vars['item']; -$view = $item->getView(); - $name = $item->getSubjectEntity()->name; -$body = elgg_view($item->getView(), array('item' => $item), false, false, 'default'); -$body = "$name $body"; +$name = htmlspecialchars($name, ENT_NOQUOTES, 'UTF-8'); +$title = elgg_echo('river:update', array($name)); -$title = strip_tags($body); $timestamp = date('r', $item->getPostedTime()); +$body = elgg_view('river/elements/summary', $vars, false, false, 'default'); + $object = $item->getObjectEntity(); if ($object) { $url = htmlspecialchars($object->getURL()); } else { - $url = elgg_get_site_url() . 'activity'; + $url = elgg_normalize_url('activity'); } -?> +$html = <<<__HTML - - - - <![CDATA[<?php echo $title; ?>]]> - ]]> + $item->id + $timestamp + $url + <![CDATA[$title]]> + + +__HTML; + +echo $html; diff --git a/views/rss/search/entity_list.php b/views/rss/search/entity_list.php deleted file mode 100644 index 1e44adf18cb..00000000000 --- a/views/rss/search/entity_list.php +++ /dev/null @@ -1,12 +0,0 @@ - 0) { - foreach($entities as $entity) { - echo elgg_view_entity($entity); - } -} \ No newline at end of file diff --git a/views/rss/user/default.php b/views/rss/user/default.php index a8b9d073c47..1500881f8c8 100644 --- a/views/rss/user/default.php +++ b/views/rss/user/default.php @@ -1,29 +1,34 @@ +$permalink = htmlspecialchars($vars['entity']->getURL(), ENT_NOQUOTES, 'UTF-8'); +$pubdate = date('r', $vars['entity']->getTimeCreated()); +$title = htmlspecialchars($vars['entity']->name, ENT_NOQUOTES, 'UTF-8'); +if ($vars['entity']->description) { + $description = autop($vars['entity']->description); +} else { + $description = ''; +} + +$georss = elgg_view('page/components/georss', $vars); +$extension = elgg_view('extensions/item'); + +$item = <<<__HTML -getURL(); ?> -time_created) ?> -getURL(); ?> -<![CDATA[<?php echo (($vars['entity']->name)); ?>]]> -description)); ?>]]> -getLongitude()) && - ($vars['entity']->getLatitude()) - ) { - ?> - getLatitude(); ?> getLongitude(); ?> - - + $permalink + $pubdate + $permalink + <![CDATA[$title]]> + + $georss$extension + +__HTML; + +echo $item; From 3bfeb41a547284d34506c10be3501aeefe73f74c Mon Sep 17 00:00:00 2001 From: cash Date: Sat, 29 Oct 2011 16:19:49 -0400 Subject: [PATCH 2/4] Refs #4028 reset the oAuth lib to version r64 of oauth-php --- .../vendors/oauth/library/OAuthRequestLogger.php | 2 +- .../vendors/oauth/library/OAuthRequestSigner.php | 2 +- .../vendors/oauth/library/OAuthRequestVerifier.php | 2 +- mod/oauth_api/vendors/oauth/library/OAuthRequester.php | 4 ++-- mod/oauth_api/vendors/oauth/library/OAuthServer.php | 8 ++++---- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/mod/oauth_api/vendors/oauth/library/OAuthRequestLogger.php b/mod/oauth_api/vendors/oauth/library/OAuthRequestLogger.php index 5b88e9d20f5..934c1c53cae 100644 --- a/mod/oauth_api/vendors/oauth/library/OAuthRequestLogger.php +++ b/mod/oauth_api/vendors/oauth/library/OAuthRequestLogger.php @@ -190,7 +190,7 @@ static function flush () // Log the request if (OAuthRequestLogger::$store_log) { - $store = elggconnect_get_oauth_store();//OAuthStore::instance(); + $store = OAuthStore::instance(); $store->addLog($keys, $received, $sent, $base_string, OAuthRequestLogger::$note, OAuthRequestLogger::$user_id); } diff --git a/mod/oauth_api/vendors/oauth/library/OAuthRequestSigner.php b/mod/oauth_api/vendors/oauth/library/OAuthRequestSigner.php index a33d14034a7..9f83f287fbe 100644 --- a/mod/oauth_api/vendors/oauth/library/OAuthRequestSigner.php +++ b/mod/oauth_api/vendors/oauth/library/OAuthRequestSigner.php @@ -56,7 +56,7 @@ class OAuthRequestSigner extends OAuthRequest */ function __construct ( $request, $method = 'GET', $params = null, $body = null ) { - $this->store = elggconnect_get_oauth_store();//OAuthStore::instance(); + $this->store = OAuthStore::instance(); if (is_string($params)) { diff --git a/mod/oauth_api/vendors/oauth/library/OAuthRequestVerifier.php b/mod/oauth_api/vendors/oauth/library/OAuthRequestVerifier.php index 5b346b3698e..4b4db968505 100644 --- a/mod/oauth_api/vendors/oauth/library/OAuthRequestVerifier.php +++ b/mod/oauth_api/vendors/oauth/library/OAuthRequestVerifier.php @@ -49,7 +49,7 @@ class OAuthRequestVerifier extends OAuthRequest */ function __construct ( $uri = null, $method = 'GET' ) { - $this->store = elggconnect_get_oauth_store();//OAuthStore::instance(); + $this->store = OAuthStore::instance(); parent::__construct($uri, $method); OAuthRequestLogger::start($this); diff --git a/mod/oauth_api/vendors/oauth/library/OAuthRequester.php b/mod/oauth_api/vendors/oauth/library/OAuthRequester.php index c6f56178eca..87f9586c074 100644 --- a/mod/oauth_api/vendors/oauth/library/OAuthRequester.php +++ b/mod/oauth_api/vendors/oauth/library/OAuthRequester.php @@ -150,7 +150,7 @@ static function requestRequestToken ( $consumer_key, $usr_id, $params = null, $m $params['xoauth_token_ttl'] = intval($options['token_ttl']); } - $store = elggconnect_get_oauth_store();//OAuthStore::instance(); + $store = OAuthStore::instance(); $r = $store->getServer($consumer_key, $usr_id); $uri = $r['request_token_uri']; @@ -220,7 +220,7 @@ static function requestAccessToken ( $consumer_key, $token, $usr_id, $method = ' { OAuthRequestLogger::start(); - $store = elggconnect_get_oauth_store();//OAuthStore::instance(); + $store = OAuthStore::instance(); $r = $store->getServerTokenSecrets($consumer_key, $token, 'request', $usr_id); $uri = $r['access_token_uri']; $token_name = $r['token_name']; diff --git a/mod/oauth_api/vendors/oauth/library/OAuthServer.php b/mod/oauth_api/vendors/oauth/library/OAuthServer.php index d86cc5f14f2..c7f9097b394 100644 --- a/mod/oauth_api/vendors/oauth/library/OAuthServer.php +++ b/mod/oauth_api/vendors/oauth/library/OAuthServer.php @@ -58,7 +58,7 @@ public function requestToken () } // Create a request token - $store = elggconnect_get_oauth_store();//OAuthStore::instance(); + $store = OAuthStore::instance(); $token = $store->addConsumerRequestToken($this->getParam('oauth_consumer_key', true), $options); $result = 'oauth_token='.$this->urlencode($token['token']) .'&oauth_token_secret='.$this->urlencode($token['token_secret']); @@ -104,7 +104,7 @@ public function authorizeVerify ( ) { OAuthRequestLogger::start($this); - $store = elggconnect_get_oauth_store();//OAuthStore::instance(); + $store = OAuthStore::instance(); $token = $this->getParam('oauth_token', true); $rs = $store->getConsumerRequestToken($token); if (empty($rs)) @@ -142,7 +142,7 @@ public function authorizeFinish ( $authorized, $user_id ) && $_SESSION['verify_oauth_token'] == $token) { // Flag the token as authorized, or remove the token when not authorized - $store = elggconnect_get_oauth_store();//OAuthStore::instance(); + $store = OAuthStore::instance(); // Fetch the referrer host from the oauth callback parameter $referrer_host = ''; @@ -198,7 +198,7 @@ public function accessToken () $options['token_ttl'] = $ttl; } - $store = elggconnect_get_oauth_store();//OAuthStore::instance(); + $store = OAuthStore::instance(); $token = $store->exchangeConsumerRequestForAccessToken($this->getParam('oauth_token', true), $options); $result = 'oauth_token='.$this->urlencode($token['token']) .'&oauth_token_secret='.$this->urlencode($token['token_secret']); From cd8124c0bd49e479cc115fc829cbd05aff16de7a Mon Sep 17 00:00:00 2001 From: cash Date: Sat, 29 Oct 2011 17:22:55 -0400 Subject: [PATCH 3/4] creates a simple manifest for people to copy and use --- .../plugins/{ => full_manifest}/manifest.xml | 2 +- .../plugins/simple_manifest/manifest.xml | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) rename documentation/examples/plugins/{ => full_manifest}/manifest.xml (98%) create mode 100644 documentation/examples/plugins/simple_manifest/manifest.xml diff --git a/documentation/examples/plugins/manifest.xml b/documentation/examples/plugins/full_manifest/manifest.xml similarity index 98% rename from documentation/examples/plugins/manifest.xml rename to documentation/examples/plugins/full_manifest/manifest.xml index 2a8a2bd5c1d..48a5a955873 100644 --- a/documentation/examples/plugins/manifest.xml +++ b/documentation/examples/plugins/full_manifest/manifest.xml @@ -16,7 +16,7 @@ elgg_release - 1.8-svn + 1.8 diff --git a/documentation/examples/plugins/simple_manifest/manifest.xml b/documentation/examples/plugins/simple_manifest/manifest.xml new file mode 100644 index 00000000000..febe719992f --- /dev/null +++ b/documentation/examples/plugins/simple_manifest/manifest.xml @@ -0,0 +1,18 @@ + + + My Plugin + My Name + 1.0 + This is a description of my plugin and its features. + http://www.elgg.org/ + (C) My Name or Company 2012 + GNU Public License version 2 + + + elgg_release + 1.8 + + + communication + + From 9046723db0c21cd0995ec87e69734bd1f0edcae6 Mon Sep 17 00:00:00 2001 From: cash Date: Sat, 29 Oct 2011 17:30:36 -0400 Subject: [PATCH 4/4] better organization for the manifests and plugin skeleton --- .../plugins/{full_manifest => manifest_options}/manifest.xml | 0 .../examples/plugins/{simple_manifest => skeleton}/manifest.xml | 0 documentation/examples/plugins/skeleton/start.php | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename documentation/examples/plugins/{full_manifest => manifest_options}/manifest.xml (100%) rename documentation/examples/plugins/{simple_manifest => skeleton}/manifest.xml (100%) create mode 100644 documentation/examples/plugins/skeleton/start.php diff --git a/documentation/examples/plugins/full_manifest/manifest.xml b/documentation/examples/plugins/manifest_options/manifest.xml similarity index 100% rename from documentation/examples/plugins/full_manifest/manifest.xml rename to documentation/examples/plugins/manifest_options/manifest.xml diff --git a/documentation/examples/plugins/simple_manifest/manifest.xml b/documentation/examples/plugins/skeleton/manifest.xml similarity index 100% rename from documentation/examples/plugins/simple_manifest/manifest.xml rename to documentation/examples/plugins/skeleton/manifest.xml diff --git a/documentation/examples/plugins/skeleton/start.php b/documentation/examples/plugins/skeleton/start.php new file mode 100644 index 00000000000..e69de29bb2d