aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--actions/simplepie/save_group_feed.php14
-rw-r--r--languages/en.php4
-rw-r--r--languages/en.php~14
-rw-r--r--languages/es.php8
-rw-r--r--languages/es.php~22
-rw-r--r--views/default/forms/simplepie/save_group_feed.php39
-rw-r--r--views/default/simplepie/group_module.php66
-rw-r--r--views/default/simplepie/group_module.php~108
8 files changed, 227 insertions, 48 deletions
diff --git a/actions/simplepie/save_group_feed.php b/actions/simplepie/save_group_feed.php
new file mode 100644
index 000000000..556372f98
--- /dev/null
+++ b/actions/simplepie/save_group_feed.php
@@ -0,0 +1,14 @@
+<?php
+
+$group = get_entity((int)get_input('group_guid'));
+$feed_url = get_input('feed_url');
+
+if (!simplepie_is_url($feed_url)) {
+ register_error (elgg_echo("simplepie:invalid_url"));
+ forward(REFERER);
+}
+
+if (!$group || !$group->canEdit() || !elgg_instanceof($group, 'group')) {
+ forward(REFERER);
+}
+$group->feed_url = $feed_url;
diff --git a/languages/en.php b/languages/en.php
index 082b4c485..a22316863 100644
--- a/languages/en.php
+++ b/languages/en.php
@@ -1,5 +1,4 @@
<?php
-
$english = array(
'simplepie:widget' => 'RSS Feed',
'simplepie:description' => 'Add an external blog to your profile',
@@ -11,8 +10,5 @@ $english = array(
'simplepie:post_date' => 'Include post date',
'simplepie:postedon' => 'Posted on',
'simplepie:invalid_url' => 'Invalid url, copy it from the navigation bar please',
-
);
-
add_translation("en", $english);
-
diff --git a/languages/en.php~ b/languages/en.php~
new file mode 100644
index 000000000..a22316863
--- /dev/null
+++ b/languages/en.php~
@@ -0,0 +1,14 @@
+<?php
+$english = array(
+ 'simplepie:widget' => 'RSS Feed',
+ 'simplepie:description' => 'Add an external blog to your profile',
+ 'simplepie:notset' => 'Feed url is not set',
+ 'simplepie:notfound' => 'Cannot find feed. Check the feed url.',
+ 'simplepie:feed_url' => 'Feed URL',
+ 'simplepie:num_items' => 'Number of items',
+ 'simplepie:excerpt' => 'Include excerpt',
+ 'simplepie:post_date' => 'Include post date',
+ 'simplepie:postedon' => 'Posted on',
+ 'simplepie:invalid_url' => 'Invalid url, copy it from the navigation bar please',
+);
+add_translation("en", $english);
diff --git a/languages/es.php b/languages/es.php
index 85f24e4a5..d9bd5d2d6 100644
--- a/languages/es.php
+++ b/languages/es.php
@@ -1,5 +1,4 @@
<?php
-
$spanish = array(
'simplepie:widget' => 'Enlace RSS',
'simplepie:description' => 'Agregar un blog externo',
@@ -12,11 +11,4 @@ $spanish = array(
'simplepie:postedon' => 'Posted on',
'simplepie:invalid_url' => 'Url invalida, copiela desde la barra del navegador por favor',
);
-
add_translation("en", $english);
-
-
-
-
-
-
diff --git a/languages/es.php~ b/languages/es.php~
new file mode 100644
index 000000000..85f24e4a5
--- /dev/null
+++ b/languages/es.php~
@@ -0,0 +1,22 @@
+<?php
+
+$spanish = array(
+ 'simplepie:widget' => 'Enlace RSS',
+ 'simplepie:description' => 'Agregar un blog externo',
+ 'simplepie:notset' => 'Enlace RSS no configurado',
+ 'simplepie:notfound' => 'no se encontro el feed. Revisa el feed url.',
+ 'simplepie:feed_url' => 'Feed URL',
+ 'simplepie:num_items' => 'Numero de items',
+ 'simplepie:excerpt' => 'Incluir contenido',
+ 'simplepie:post_date' => 'Incluir fecha del post',
+ 'simplepie:postedon' => 'Posted on',
+ 'simplepie:invalid_url' => 'Url invalida, copiela desde la barra del navegador por favor',
+);
+
+add_translation("en", $english);
+
+
+
+
+
+
diff --git a/views/default/forms/simplepie/save_group_feed.php b/views/default/forms/simplepie/save_group_feed.php
new file mode 100644
index 000000000..a3f771586
--- /dev/null
+++ b/views/default/forms/simplepie/save_group_feed.php
@@ -0,0 +1,39 @@
+<?php
+/**
+ * Simplepie feed reader widget settings
+ */
+
+// set default value
+
+$url_label = elgg_echo("simplepie:feed_url");
+$url_textbox = elgg_view('input/text', array(
+ 'name' => 'feed_url',
+ 'id'=> 'feed_url',
+ 'value' => $vars['entity']->feed_url,
+));
+
+$group_field = elgg_view('input/hidden', array(
+ 'name' => 'group_guid',
+ 'value' => $vars['entity']->guid,
+));
+
+$save_button = elgg_view('input/submit', array(
+ 'value' => elgg_echo('save'),
+));
+
+
+
+
+echo <<<HTML
+<div>
+ <label for="feed_url">$url_label</label>
+ $url_textbox
+ $group_field
+</div>
+<div>
+ $save_button
+</div>
+HTML;
+
+
+
diff --git a/views/default/simplepie/group_module.php b/views/default/simplepie/group_module.php
index 17b2dba0c..d9860d65f 100644
--- a/views/default/simplepie/group_module.php
+++ b/views/default/simplepie/group_module.php
@@ -29,68 +29,62 @@ if ($feed_url) {
$excerpt = true;
$post_date = true;
$num_items = 7;
-
$cache_location = elgg_get_data_path() . '/simplepie_cache/';
if (!file_exists($cache_location)) {
mkdir($cache_location, 0777);
}
-
$feed = new SimplePie($feed_url, $cache_location);
-// doubles timeout if going through a proxy
-//$feed->set_timeout(20);
+ // doubles timeout if going through a proxy
+ //$feed->set_timeout(20);
+ // only display errors to profile owner
-
-// only display errors to profile owner
$num_posts_in_feed = $feed->get_item_quantity();
-if (!$num_posts_in_feed) {
- if (elgg_get_logged_in_user_guid() == elgg_get_page_owner_guid()) {
- $content .= '<p>' . elgg_echo('simplepie:notfound') . '</p>';
+ if (!$num_posts_in_feed) {
+ if (elgg_get_logged_in_user_guid() == elgg_get_page_owner_guid()) {
+ $content .= '<p>' . elgg_echo('simplepie:notfound') . '</p>';
+ }
}
-}
-// don't display more feed items than user requested
+ // don't display more feed items than user requested
if ($num_items > $num_posts_in_feed) {
$num_items = $num_posts_in_feed;
}
$feed_link = elgg_view('output/url', array(
- 'href' => $feed->get_permalink(),
- 'text' => $feed->get_title(),
-));
+ 'href' => $feed->get_permalink(),
+ 'text' => $feed->get_title(),
+ ));
-// need to center
+ // need to center
$content .= "<h2 class=\"simplepie-heading\">$feed_link</h2>";
$content .= '<ul class="simplepie-list">';
foreach ($feed->get_items(0, $num_items) as $item) {
- $item_link = elgg_view('output/url', array(
- 'href' => $item->get_permalink(),
- 'text' => $item->get_title(),
-));
-
-if ($excerpt) {
- $text = strip_tags($item->get_description(true), $allowed_tags);
- $excerpt = elgg_get_excerpt($text);
-}
-
-if ($post_date) {
- $item_date_label = elgg_echo('simplepie:postedon');
- $item_date = $item->get_date('j F Y | g:i a');
- $post_date = "$item_date_label $item_date";
-}
-
- $content .= <<<HTML
-
+ $item_link = elgg_view('output/url', array(
+ 'href' => $item->get_permalink(),
+ 'text' => $item->get_title(),
+ ));
+
+ if ($excerpt) {
+ $text = strip_tags($item->get_description(true), $allowed_tags);
+ $excerpt = elgg_get_excerpt($text);
+ }
+
+ if ($post_date) {
+ $item_date_label = elgg_echo('simplepie:postedon');
+ $item_date = $item->get_date('j F Y | g:i a');
+ $post_date = "$item_date_label $item_date";
+ }
+
+ $content .= <<<HTML
<li class="mbm elgg-item">
<h4 class="mbs">$item_link</h4>
<p class="elgg-subtext">$post_date</p>
<div class="elgg-content">$excerpt</div>
</li>
HTML;
-
- }
+ }
$content .= "</ul>";
-
}
elgg_pop_context();
diff --git a/views/default/simplepie/group_module.php~ b/views/default/simplepie/group_module.php~
new file mode 100644
index 000000000..bfba96f06
--- /dev/null
+++ b/views/default/simplepie/group_module.php~
@@ -0,0 +1,108 @@
+<?php
+/**
+ * Group simplepie:rss module
+ */
+elgg_load_library('simplepie');
+
+$group = elgg_get_page_owner_entity();
+
+if ($group->rss_enable != "yes") {
+ return true;
+}
+
+elgg_push_context('widgets');
+
+$allowed_tags = '<a><p><br><b><i><em><del><pre><strong><ul><ol><li><img>';
+$feed_url = $group->feed_url;
+$content = '';
+
+if ($group->canEdit()) {
+ $content .= elgg_view_form("simplepie/save_group_feed", array(
+ 'id' => 'simplepie-form',
+ 'class' => $feed_url ? 'hidden' : '',
+ ), $vars);
+}
+
+if ($feed_url) {
+
+// get widget settings
+ $excerpt = true;
+ $post_date = true;
+ $num_items = 7;
+ $cache_location = elgg_get_data_path() . '/simplepie_cache/';
+ if (!file_exists($cache_location)) {
+ mkdir($cache_location, 0777);
+ }
+ $feed = new SimplePie($feed_url, $cache_location);
+
+ // doubles timeout if going through a proxy
+ //$feed->set_timeout(20);
+ // only display errors to profile owner
+
+ $num_posts_in_feed = $feed->get_item_quantity();
+ if (!$num_posts_in_feed) {
+ if (elgg_get_logged_in_user_guid() == elgg_get_page_owner_guid()) {
+ $content .= '<p>' . elgg_echo('simplepie:notfound') . '</p>';
+ }
+ }
+
+ // don't display more feed items than user requested
+ if ($num_items > $num_posts_in_feed) {
+ $num_items = $num_posts_in_feed;
+}
+
+ $feed_link = elgg_view('output/url', array(
+ 'href' => $feed->get_permalink(),
+ 'text' => $feed->get_title(),
+));
+
+// need to center
+ $content .= "<h2 class=\"simplepie-heading\">$feed_link</h2>";
+ $content .= '<ul class="simplepie-list">';
+ foreach ($feed->get_items(0, $num_items) as $item) {
+ $item_link = elgg_view('output/url', array(
+ 'href' => $item->get_permalink(),
+ 'text' => $item->get_title(),
+));
+
+if ($excerpt) {
+ $text = strip_tags($item->get_description(true), $allowed_tags);
+ $excerpt = elgg_get_excerpt($text);
+}
+
+if ($post_date) {
+ $item_date_label = elgg_echo('simplepie:postedon');
+ $item_date = $item->get_date('j F Y | g:i a');
+ $post_date = "$item_date_label $item_date";
+}
+
+ $content .= <<<HTML
+
+<li class="mbm elgg-item">
+ <h4 class="mbs">$item_link</h4>
+ <p class="elgg-subtext">$post_date</p>
+ <div class="elgg-content">$excerpt</div>
+</li>
+HTML;
+ }
+ $content .= "</ul>";
+}
+
+elgg_pop_context();
+
+if (!$content) {
+ $content = '<p>' . elgg_echo('simplepie:none') . '</p>';
+}
+
+$edit = elgg_view('output/url', array(
+ 'href' => '#simplepie-form',
+ 'text' => elgg_echo('edit'),
+ 'rel' => 'toggle'
+));
+
+echo elgg_view('groups/profile/module', array(
+ 'title' => elgg_echo('RSS Group'),
+ 'content' => $content,
+ 'all_link' => $edit,
+));
+