diff options
| -rw-r--r-- | engine/classes/ElggEntity.php | 15 | ||||
| -rw-r--r-- | engine/classes/Locatable.php | 2 | ||||
| -rw-r--r-- | languages/en.php | 2 | ||||
| -rw-r--r-- | views/default/annotation/generic_comment.php | 4 | ||||
| -rw-r--r-- | views/rss/annotation/default.php | 34 | ||||
| -rw-r--r-- | views/rss/annotation/generic_comment.php | 33 | ||||
| -rw-r--r-- | views/rss/group/default.php | 54 | ||||
| -rw-r--r-- | views/rss/object/creator.php | 8 | ||||
| -rw-r--r-- | views/rss/object/default.php | 17 | ||||
| -rw-r--r-- | views/rss/object/georss.php | 10 | ||||
| -rw-r--r-- | views/rss/output/url.php | 2 | ||||
| -rw-r--r-- | views/rss/page/components/creator.php | 14 | ||||
| -rw-r--r-- | views/rss/page/components/georss.php | 15 | ||||
| -rw-r--r-- | views/rss/page/default.php | 17 | ||||
| -rw-r--r-- | views/rss/page/elements/comments.php | 13 | ||||
| -rw-r--r-- | views/rss/river/item.php | 27 | ||||
| -rw-r--r-- | views/rss/search/entity_list.php | 12 | ||||
| -rw-r--r-- | views/rss/user/default.php | 43 | 
18 files changed, 169 insertions, 153 deletions
diff --git a/engine/classes/ElggEntity.php b/engine/classes/ElggEntity.php index ccf88a6f7..fdf2a80ea 100644 --- a/engine/classes/ElggEntity.php +++ b/engine/classes/ElggEntity.php @@ -1434,10 +1434,11 @@ abstract class ElggEntity extends ElggData implements  	 *  	 * @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 @@ abstract class ElggEntity extends ElggData implements  	 * @param float $lat  Latitude  	 * @param float $long Longitude  	 * -	 * @return true +	 * @return bool  	 * @todo Unimplemented  	 */  	public function setLatLong($lat, $long) { @@ -1459,20 +1460,20 @@ abstract class ElggEntity extends ElggData implements  	/**  	 * 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 0977dde99..7287d9798 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 3216be5e7..5af005814 100644 --- a/languages/en.php +++ b/languages/en.php @@ -425,6 +425,7 @@ $english = array(  	'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 @@ If you requested this click on the link below, otherwise ignore this email.  	'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 a4fbf904e..56a06f842 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 98329f132..000000000 --- a/views/rss/annotation/default.php +++ /dev/null @@ -1,34 +0,0 @@ -<?php -/** - * Elgg RSS view for a generic comment - * - * @package Elgg - * @subpackage Core - */ - -$entity = get_entity($vars['annotation']->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 -<item> -	<guid isPermaLink='true'>$permalink#{$vars['annotation']->id}</guid> -	<pubDate>$pubdate</pubDate> -	<link>$permalink#{$vars['annotation']->id}</link> -	<title><![CDATA[$title]]></title> -	<description><![CDATA[{$vars['annotation']->value}]]></description> -	$creator$georss$extensions -</item> -__HTML; - -echo $item; diff --git a/views/rss/annotation/generic_comment.php b/views/rss/annotation/generic_comment.php new file mode 100644 index 000000000..9e9107568 --- /dev/null +++ b/views/rss/annotation/generic_comment.php @@ -0,0 +1,33 @@ +<?php +/** + * Elgg RSS view for a generic_comment annotation + * + * @package Elgg + * @subpackage Core + */ + +$annotation = $vars['annotation']; + +$poster = $annotation->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 +<item> +	<guid isPermaLink='true'>$permalink</guid> +	<pubDate>$pubdate</pubDate> +	<link>$permalink</link> +	<title><![CDATA[$title]]></title> +	<description><![CDATA[{$vars['annotation']->value}]]></description> +	$creator$extensions +</item> + +__HTML; + +echo $item; diff --git a/views/rss/group/default.php b/views/rss/group/default.php index 4ffceba78..1276ab8f1 100644 --- a/views/rss/group/default.php +++ b/views/rss/group/default.php @@ -1,37 +1,37 @@  <?php  /** - * Elgg default group view + * RSS group view   *   * @package Elgg   * @subpackage Core   */ -?> +$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  <item> -<guid isPermaLink='true'><?php echo htmlspecialchars($vars['entity']->getURL()); ?></guid> -<pubDate><?php echo date("r",$vars['entity']->time_created) ?></pubDate> -<link><?php echo htmlspecialchars($vars['entity']->getURL()); ?></link> -<title><![CDATA[<?php echo (($vars['entity']->name)); ?>]]></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; diff --git a/views/rss/object/creator.php b/views/rss/object/creator.php deleted file mode 100644 index 2bc6fd57d..000000000 --- a/views/rss/object/creator.php +++ /dev/null @@ -1,8 +0,0 @@ -<?php -/** - *  - */ - -if ($owner = $vars['entity']->getOwnerEntity()) { -	echo "<dc:creator>{$owner->name}</dc:creator>"; -} diff --git a/views/rss/object/default.php b/views/rss/object/default.php index 29e5d4591..b5d269ac7 100644 --- a/views/rss/object/default.php +++ b/views/rss/object/default.php @@ -1,6 +1,6 @@  <?php  /** - * Elgg default object view + * RSS object view   *   * @package Elgg   * @subpackage Core @@ -8,18 +8,15 @@  $title = $vars['entity']->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 8aa027519..000000000 --- a/views/rss/object/georss.php +++ /dev/null @@ -1,10 +0,0 @@ -<?php -/** - *  - */ - -if (($vars['entity'] instanceof Locatable) && -	($latitude = $vars['entity']->getLongitude()) && ($longitude = $vars['entity']->getLatitude()) -) { -	echo "<georss:point>$latitude $longitude</georss:point>"; -}
\ No newline at end of file diff --git a/views/rss/output/url.php b/views/rss/output/url.php index e0b94bf8d..b0f4d9792 100644 --- a/views/rss/output/url.php +++ b/views/rss/output/url.php @@ -1,6 +1,6 @@  <?php  /** - * RSS url view + * RSS url output view   *    */  echo elgg_view('output/url', $vars, false, false, 'default'); diff --git a/views/rss/page/components/creator.php b/views/rss/page/components/creator.php new file mode 100644 index 000000000..a14f1dbca --- /dev/null +++ b/views/rss/page/components/creator.php @@ -0,0 +1,14 @@ +<?php +/** + * Creator view + * + * Implements Dublin Core creator + * + * @uses $vars['entity'] + */ + +$owner = $vars['entity']->getOwnerEntity(); +if ($owner) { +	$owner_name = htmlspecialchars($owner->name, ENT_NOQUOTES, 'UTF-8'); +	echo "<dc:creator>$owner_name</dc:creator>"; +} diff --git a/views/rss/page/components/georss.php b/views/rss/page/components/georss.php new file mode 100644 index 000000000..d176b8cac --- /dev/null +++ b/views/rss/page/components/georss.php @@ -0,0 +1,15 @@ +<?php +/** + * GeoRSS view + * + * This implements GeoRSS-Simple + * + * @uses $vars['entity'] + */ + +$longitude = $vars['entity']->getLongitude(); +$latitude = $vars['entity']->getLatitude(); + +if ($vars['entity'] instanceof Locatable && $longitude && $latitude) { +	echo "<georss:point>$latitude $longitude</georss:point>"; +} diff --git a/views/rss/page/default.php b/views/rss/page/default.php index cd94b0242..246ec972e 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 @@ header("Content-Type: text/xml");  // allow caching as required by stupid MS products for https feeds.  header('Pragma: public', TRUE); -echo "<?xml version='1.0'?>\n"; +echo "<?xml version='1.0'?>";  // Set title  if (empty($vars['title'])) { @@ -22,8 +21,8 @@ if (empty($vars['title'])) {  }  // 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 @@ $url = str_replace('&view=rss','', $url);  	<title><![CDATA[<?php echo $title; ?>]]></title>  	<link><?php echo htmlentities($url); ?></link>  	<description></description> -	<?php echo elgg_view('extensions/channel'); ?> -	<?php - -		echo $vars['body']; - -	?> +<?php +	echo elgg_view('extensions/channel'); +	echo $vars['body']; +?>  </channel>  </rss> diff --git a/views/rss/page/elements/comments.php b/views/rss/page/elements/comments.php new file mode 100644 index 000000000..9c655ffef --- /dev/null +++ b/views/rss/page/elements/comments.php @@ -0,0 +1,13 @@ +<?php +/** + * RSS comments view + * + * @uses $vars['entity'] + */ + +$options = array( +	'guid' => $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 f84e6ccf0..fa2914eff 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  <item> -	<guid isPermaLink='true'><?php echo $url; ?></guid> -	<pubDate><?php echo $timestamp; ?></pubDate> -	<link><?php echo $url; ?></link> -	<title><![CDATA[<?php echo $title; ?>]]></title> -	<description><![CDATA[<?php echo ($body); ?>]]></description> +	<guid>$item->id</guid> +	<pubDate>$timestamp</pubDate> +	<link>$url</link> +	<title><![CDATA[$title]]></title> +	<description><![CDATA[$body]]></description>  </item> + +__HTML; + +echo $html; diff --git a/views/rss/search/entity_list.php b/views/rss/search/entity_list.php deleted file mode 100644 index 1e44adf18..000000000 --- a/views/rss/search/entity_list.php +++ /dev/null @@ -1,12 +0,0 @@ -<?php -/** - * @package Elgg - * @subpackage Core - */ - -$entities = $vars['entities']; -if (is_array($entities) && sizeof($entities) > 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 a8b9d073c..1500881f8 100644 --- a/views/rss/user/default.php +++ b/views/rss/user/default.php @@ -1,29 +1,34 @@  <?php  /** - * Elgg default user view + * RSS user view   *   * @package Elgg   * @subpackage Core   */ -?> +$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  <item> -<guid isPermaLink='true'><?php echo $vars['entity']->getURL(); ?></guid> -<pubDate><?php echo date("r",$vars['entity']->time_created) ?></pubDate> -<link><?php echo $vars['entity']->getURL(); ?></link> -<title><![CDATA[<?php echo (($vars['entity']->name)); ?>]]></title> -<description><![CDATA[<?php echo (autop($vars['entity']->description)); ?>]]></description> -<?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> +	$georss$extension  </item> + +__HTML; + +echo $item;  | 
