[pLog-svn] r6714 - in plugins/branches/lifetype-1.2: . rssimport rssimport/class rssimport/class/action rssimport/class/view rssimport/locale rssimport/templates
Jon Daley
plogworld at jon.limedaley.com
Fri Sep 5 15:09:12 EDT 2008
Nope. I am using IceWeasel 3.0.1 on Debian. I would assume that they
wouldn't submit urls anywhere.
On Fri, 5 Sep 2008, Paul Westbrook wrote:
> Hello,
> I thought about what you were stating in your comment. Are you using the Google Toolbar or Opera?
> Both of these submit the urls that you visit to Google. This could cause Google to see the url, with
> the access key.
>
> --Paul
>
> On Thu, Sep 4, 2008 at 8:57 AM, Jon Daley <plogworld at jon.limedaley.com> wrote:
> Ick. Googlebot visited my "secret" access key protected page. They must look at the
> referrer or something, and put it in their database. Though that doesn't even make sense,
> since LT's code goes to the google feed, and probably doesn't pass the referrer.
>
> But, somehow, google discovered it, and visited it this morning.
>
>
> On Tue, 2 Sep 2008, Paul Westbrook wrote:
>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hello,
> When the plugin successfully imports a feed, it goes to
> the DefaultView. So I can believe that you are getting that
> warning. ( I assume that $posts is null)
>
> The link to the rss item comes straight out of LifeType's
> xml parser. If you look at the feed from google reader, does the
> url look good there?
>
> What you have described is exactly what I want to use it
> for. But there is a problem with the google reader feed.
> Google doesn't have any indication of when an item was "shared" in the
> feed itself. Without that, it is hard to generate the list of
> the items that were shared in the last 24 hours. I am planning
> on working on a workaround for this, when I get a chance.
>
> I have written up how I am using it here:
>
> http://www.paulstimesink.com/post/2008/08/21/posting_daily_activity
>
> Also, this plugin will not create a post, if there are no items in the
> feed. The way that I was planning on using this is to pass a
> feed that only has items added in the last 24 hours in it. I am
> using Yahoo Pipes to do that now for my delicious items.
>
>
>
> - --Paul
>
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.6 (GNU/Linux)
> Comment: http://getfiregpg.org
>
> iD8DBQFIvXzwQIx6KJgT81kRArZZAKCJW+fqqrrwOMlmy/2n45Ji0sYwVQCfS/8U
> d3wxanQ34LKO4jNlLbvqYNk=
> =x2VX
> -----END PGP SIGNATURE-----
> On Mon, Sep 1, 2008 at 7:43 PM, Jon Daley <plogworld at jon.limedaley.com> wrote:
> I haven't looked into it yet, but I got this error every time I import the feed
> (google reader shared)
>
> Warning: Invalid argument supplied for foreach() in
> /home/jondaley/www/plog/class/view/defaultview.class.php on line 41
>
> Also, it is parsing the RSS feed incorrectly, and generating text like this:
>
> <li><a
> href="http://blog.wired.com/geekdad/2008/09/geekdad-puzzle.htmlhttp://blog.wired.com/geekdad/">GeekDad
> Puzzle of
> the Week: Cross Number PrimeGeekdad </a></li>
>
> You mentioned you use it for google reader, so it seems odd that it would fail
> for me?
>
> Lastly, the ideal way to make it work with google reader is to setup a daily
> cron job to look at a feed url that only shows
> posts on that day, and it is smart enough to not generate a post if there
> aren't any links? i.e. if I simply give it my google
> reader url, then it will always generate links for all of my shared items each
> time, even though it already displayed them last
> time, right?
>
> Looks like I might have some work to make this work how I want it to, but a
> good start for me anyway.
>
>
> On Thu, 21 Aug 2008, Paul Westbrook wrote:
>
> Hello,
> This creates a new post everytime the "import feed action" gets run
> (assuming that the right access key is specified).
>
> The reason that I wrote this was to have a way to create a daily post that
> contains links to my "shared" items. For example, my del.icio.us bookmarks
> and Google Reader Shared items. This timing is why I rely on an external
> action to call the plugin.
>
> --Paul
>
> On Wednesday 20 August 2008 08:15:59 Jon Daley wrote:
> Very nice. I have been aiming to do something like this. How
> does this work - it has one post that gets updated? Or it makes a new
> post with the same title every time the rss feed changes?
>
> On Wed, 20 Aug 2008, pwestbro at devel.lifetype.net wrote:
> Author: pwestbro
> Date: 2008-08-20 17:48:02 -0400 (Wed, 20 Aug 2008)
> New Revision: 6714
>
> Added:
> plugins/branches/lifetype-1.2/rssimport/
> plugins/branches/lifetype-1.2/rssimport/README.txt
> plugins/branches/lifetype-1.2/rssimport/class/
> plugins/branches/lifetype-1.2/rssimport/class/action/
>
>
> plugins/branches/lifetype-1.2/rssimport/class/action/importrssfeedaction.
> class.php
>
> plugins/branches/lifetype-1.2/rssimport/class/action/pluginrssimportconfi
> gaction.class.php
>
> plugins/branches/lifetype-1.2/rssimport/class/action/pluginrssimportupdat
> econfigaction.class.php
> plugins/branches/lifetype-1.2/rssimport/class/view/
>
>
> plugins/branches/lifetype-1.2/rssimport/class/view/pluginrssimportconfigv
> iew.class.php plugins/branches/lifetype-1.2/rssimport/locale/
> plugins/branches/lifetype-1.2/rssimport/locale/locale_en_UK.php
> plugins/branches/lifetype-1.2/rssimport/pluginrssimport.class.php
> plugins/branches/lifetype-1.2/rssimport/templates/
>
> plugins/branches/lifetype-1.2/rssimport/templates/rssimport.template
> Log:
> The rssimport plugin creates a post with the content of an rss
> feed. One
> use of this is to create a daily post of online activities (i.e.
> posted
> Flickr photos, Twitter tweets, delicious bookmarks, Google Reader
> shared
> items.)
>
>
> [USAGES]:
> 1. Upload: Upload all the extract files and directories to
> $LifeType_Install_Dir/plugin/rssimport
> 2. Specify the url to the rss feed to be imported
> 3. Specify a title for the generated posts
> 4. Speciy a category for the generated posts
> 5. (Optionally) Specify a different access key needed to make a
> post
> 6. Press Update
>
> Now when you access the "Url to import feed", and there are a post
> will
> be created
>
>
>
>
> Added: plugins/branches/lifetype-1.2/rssimport/README.txt
>
> ===================================================================
> --- plugins/branches/lifetype-1.2/rssimport/README.txt
> (rev 0) +++
> plugins/branches/lifetype-1.2/rssimport/README.txt 2008-08-20
> 21:48:02
> UTC (rev 6714) @@ -0,0 +1,52 @@
> +[DESCRIPTION]
> +The rssimport plugin creates a post with the content of an rss
> feed.
> One +use of this is to create a daily post of online activities
> (i.e.
> posted +Flickr photos, Twitter tweets, delicious bookmarks, Google
> Reader
> shared +items.)
> +
> +[USAGES]:
> +1. Upload: Upload all the extract files and directories to
> + $LifeType_Install_Dir/plugin/rssimport
> +2. Specify the url to the rss feed to be imported
> +3. Specify a title for the generated posts
> +4. Speciy a category for the generated posts
> +5. (Optionally) Specify a different access key needed to make a
> post
> +6. Press Update
> +
> +Now when you access the "Url to import feed", and there are a post
> will
> be created +
> +
> +[ADVANCED USAGES]
> +Creating a rss feed for the last 24 hours of posts.
> +
> + This Yahoo Pipe will filter a feed by date
> +
> http://pipes.yahoo.com/pipes/pipe.info?_id=SJDIxkAa3BG7s6ZYmLokhQ
> +
> +Automatically creating posts
> +
> + On Linux and Max OS X, it is easy to schedule access to the
> "Url to
> + import feed" with cron. For a cron tutorial
> + http://www.clickmojo.com/code/cron-tutorial.html
> +
> +
> +[SECURITY CONCERNS]
> +The rssimport plugin does allow external processes to create posts
> in a
> +LifeType install. When first configured, the rssimport plugin
> creates a
> +random, relatively unique accessKey. This key is required to be
> specified +in a parameter of the url in order for a post to be
> created.
> +
> +It is possible, that if the accessKey is discovered, that a third
> party
> can +create posts. The third party will not be able to specify the
> content of +these posts, as the feed url is in retrieved from the
> plugin
> config. +
> +Followon release may add the following addition enhancement.
> + 1) Allow a list of ip address/host names to be specified where
> posting is + allowed
> +
> +
> +
> +[TODO]
> +1) Add the ability to specify a list of the ip address that are
> permitted to create the posts. +2) Add an option to include the
> description of the rss items or a summary +int the pos
> +3) Change the title field, to not require characters to be escaped
>
> Added:
>
> plugins/branches/lifetype-1.2/rssimport/class/action/importrssfeedaction.
> class.php
>
> ===================================================================
> ---
>
> plugins/branches/lifetype-1.2/rssimport/class/action/importrssfeedaction.
> class.php (rev 0) +++
>
> plugins/branches/lifetype-1.2/rssimport/class/action/importrssfeedaction.
> class.php 2008-08-20 21:48:02 UTC (rev 6714) @@ -0,0 +1,157
> @@
> +<?php
> +
> + lt_include(
> PLOG_CLASS_PATH."class/action/blogaction.class.php" );
> + lt_include(
> PLOG_CLASS_PATH."class/view/plugintemplatedview.class.php" ); +
> lt_include( PLOG_CLASS_PATH."class/view/errorview.class.php" ); +
> + class ImportRssFeedAction extends BlogAction
> + {
> + var $_enteredPassword;
> + var $_html;
> +
> + function ImportRssFeedAction( $actionInfo, $request )
> + {
> +
> + $this->BlogAction( $actionInfo, $request );
> + }
> +
> + function perform()
> + {
> + // Get and confirm the password
> + $this->_enteredPassword = $this->_request->getValue(
> "accessKey"
> ); +
> + $this->_html = "";
> +
> + // Check the ip address to make sure that it is the
> list of
> + // allowd ip address
> +
> + $blogSettings = $this->_blogInfo->getSettings();
> + if ($blogSettings->getValue( "plugin_rssimport_enabled"
> ) == FALSE)
> + {
> + $this->_view = new ErrorView( $this->_blogInfo );
> + $this->_view->setValue( "message", "Plugin not
> enabled" );
> +
> + $this->setCommonData();
> + return true;
> + }
> +
> + $feedurl = $blogSettings->getValue(
> "plugin_rssimport_feedurl" );
> + $accessKey = $blogSettings->getValue(
> "plugin_rssimport_accessKey"
> ); +// $accessHosts = $blogSettings->getValue(
> "plugin_rssimport_accessHosts" ); + $titleFormat =
> $blogSettings->getValue( "plugin_rssimport_titleFormat" ); +
> + // Compare the access key to that which is in the
> accessKey
> parameter + if ($accessKey != $this->_enteredPassword)
> + {
> + // Passwords don't match
> + $this->_view = new ErrorView( $this->_blogInfo );
> + $this->_view->setValue( "message", "Incorrect
> Access Key" );
> +
> + $this->setCommonData();
> + return true;
> +
> + }
> +
> +// if ( $accessHosts != null && $accessHosts != "" )
> +// {
> +//
> +// }
> +
> +
> + lt_include(
> PLOG_CLASS_PATH."class/xml/rssparser/rssparser.class.php" ); +
> + $parser = new RSSParser();
> +
> + if ( $parser->parse($feedurl) == FALSE )
> + {
> + // failed to parse the feed
> + $this->_view = new ErrorView( $this->_blogInfo );
> + $this->_view->setValue( "message", "Failed to parse
> feed" );
> +
> + $this->setCommonData();
> + return true;
> + }
> +
> + $items = $parser->getItems();
> +
> + // Now add each of the items to our html documen that
> we are
> building + foreach ($items as $item) {
> + $this->addItem($item);
> + }
> +
> + if ( $this->_html == "" )
> + {
> + // There were no items
> + $this->_view = new ErrorView( $this->_blogInfo );
> + $this->_view->setValue( "message", "No items in
> feed" );
> +
> + $this->setCommonData();
> + return true;
> + }
> +
> + // Now create an article with the html as the body,
> +
> + lt_include(
> PLOG_CLASS_PATH.'class/dao/articles.class.php' );
> + $articles = new Articles();
> +
> + $postText = Textfilter::xhtmlize("<ul>" . $this->_html
> .
> "</ul>"); +
> + $postTitle = date($titleFormat);
> +
> +
> + // XXX_PW This should pull the category from the
> settings
> + // Get the default category
> + lt_include(
> PLOG_CLASS_PATH.'class/dao/articlecategories.class.php' ); +
> $category = new ArticleCategories();
> + $cats =
> $category->getBlogCategories($this->_blogInfo->getId()); +
> + // some protection again blogs without categories
> + if( !$cats ) {
> + $this->_view = new ErrorView( $this->_blogInfo );
> + $this->_view->setValue( "message", "Error getting
> categories" );
> +
> + $this->setCommonData();
> + return true;
> + }
> +
> +
> + $idCategory = $blogSettings->getValue(
> "plugin_rssimport_article_category_id" ); +
> + $article = new Article( $postTitle,
> + $postText,
> + Array( $idCategory ), // catid
> + $this->_blogInfo->getOwner(),
> + $this->_blogInfo->getId(),
> + POST_STATUS_PUBLISHED,
> +
> 0 );
> + $article->setDateObject( new Timestamp());
> + $article->setCommentsEnabled( true );
> +
> +
> + // add the article to the db, finally
> + if( $articles->addArticle( $article )) {
> + lt_include(
> PLOG_CLASS_PATH."class/view/defaultview.class.php"
> ); + $this->_view = new DefaultView( $this->_blogInfo );
> + }
> + else {
> + $this->_view = new ErrorView( $this->_blogInfo );
> + $this->_view->setValue( "message", "Error adding
> article to the
> database" ); + }
> +
> + $this->setCommonData();
> +
> +
> + return true;
> + }
> +
> + function addItem( $item )
> + {
> + // Add this item to the html text
> + $this->_html .= "<li>";
> + $this->_html .= "<a href=\"" . $item->getLink() .
> "\">" .
> $item->getTitle() . " </a>"; + $this->_html .= "</li>";
> + }
> +
> +
> + }
> +?>
>
> Added:
>
> plugins/branches/lifetype-1.2/rssimport/class/action/pluginrssimportconfi
> gaction.class.php
>
> ===================================================================
> ---
>
> plugins/branches/lifetype-1.2/rssimport/class/action/pluginrssimportconfi
> gaction.class.php (rev 0) +++
>
> plugins/branches/lifetype-1.2/rssimport/class/action/pluginrssimportconfi
> gaction.class.php 2008-08-20 21:48:02 UTC (rev 6714) @@ -0,0
> +1,45 @@
> +<?php
> +
> + /*
> + Copyright 2006, 2008 Paul Westbrook (paul at westbrooks.org)
> +
> + This program is free software; you can redistribute it and/or
> modify
> + it under the terms of the GNU General Public License as
> published by
> + the Free Software Foundation; either version 2 of the License,
> or
> + (at your option) any later version.
> +
> + This program is distributed in the hope that it will be
> useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + GNU General Public License for more details.
> +
> + You should have received a copy of the GNU General Public
> License
> + along with this program; if not, write to the Free Software
> + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
> 02111-1307
> USA + */
> +
> +
> + lt_include(
> PLOG_CLASS_PATH."class/action/admin/adminaction.class.php"
> ); + lt_include(
>
> PLOG_CLASS_PATH."plugins/rssimport/class/view/pluginrssimportconfigview.c
> lass.php" ); +
> + /**
> + * shows a form with the current configuration
> + */
> + class PluginRssImportConfigAction extends AdminAction
> + {
> +
> + function PluginRssImportConfigAction( $actionInfo,
> $request )
> + {
> + $this->AdminAction( $actionInfo, $request
> );
> + }
> +
> + function perform()
> + {
> + $this->_view = new
> PluginRssImportConfigView( $this->_blogInfo
> ); +
> + $this->setCommonData();
> +
> + return true;
> + }
> + }
> +?>
>
> Added:
>
> plugins/branches/lifetype-1.2/rssimport/class/action/pluginrssimportupdat
> econfigaction.class.php
>
> ===================================================================
> ---
>
> plugins/branches/lifetype-1.2/rssimport/class/action/pluginrssimportupdat
> econfigaction.class.php (rev 0) +++
>
> plugins/branches/lifetype-1.2/rssimport/class/action/pluginrssimportupdat
> econfigaction.class.php 2008-08-20 21:48:02 UTC (rev 6714) @@ -0,0
> +1,165
> @@
> +<?php
> +
> + /*
> + Copyright 2006, 2008 Paul Westbrook (paul at westbrooks.org)
> +
> + This program is free software; you can redistribute it and/or
> modify
> + it under the terms of the GNU General Public License as
> published by
> + the Free Software Foundation; either version 2 of the License,
> or
> + (at your option) any later version.
> +
> + This program is distributed in the hope that it will be
> useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + GNU General Public License for more details.
> +
> + You should have received a copy of the GNU General Public
> License
> + along with this program; if not, write to the Free Software
> + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
> 02111-1307
> USA + */
> +
> + lt_include(
> PLOG_CLASS_PATH."class/action/admin/adminaction.class.php"
> ); + lt_include(
>
> PLOG_CLASS_PATH."plugins/rssimport/class/view/pluginrssimportconfigview.c
> lass.php" ); + lt_include(
> PLOG_CLASS_PATH."class/data/validator/httpurlvalidator.class.php"
> );
> + lt_include(
> PLOG_CLASS_PATH."class/data/validator/stringvalidator.class.php" );
> +
> +
> + /**
> + * updates the plugin configuration
> + */
> + class PluginRssImportUpdateConfigAction extends AdminAction
> + {
> + var $_pluginEnabled;
> + var $_feedurl;
> + var $_accessKey;
> +// var $_accessHosts;
> + var $_titleFormat;
> + var $_categoryId;
> +
> + function PluginRssImportUpdateConfigAction(
> $actionInfo, $request )
> + {
> + $this->AdminAction( $actionInfo, $request
> );
> + }
> +
> + function validate()
> + {
> +
> + $this->_pluginEnabled =
> $this->_request->getValue( "pluginEnabled" );
> + $this->_pluginEnabled =
> ($this->_pluginEnabled != "" );
> +
> + $this->_feedurl =
> $this->_request->getValue( "feedurl" );
> +
> + $this->_accessKey =
> $this->_request->getValue( "accessKey" );
> +
> +// $this->_accessHosts =
> $this->_request->getValue( "accessHosts" );
> +
> + $this->_titleFormat =
> $this->_request->getValue( "titleFormat" );
> + $this->_categoryId =
> $this->_request->getValue( "categoryId" );
> +
> + // This should validate the url
> + $val = new HttpUrlValidator();
> + if( !$val->validate($this->_feedurl) ) {
> + $this->_view = new
> PluginRssImportConfigView(
> $this->_blogInfo ); +
> $this->_view->setErrorMessage(
> $this->_locale->tr("rssimport_error_url")); +
> $this->setCommonData();
> +
> + return false;
> + }
> +
> + // Make sure that key is specied
> + if (!$this->_accessKey || $this->_accessKey
> == "")
> + {
> + $this->_view = new
> PluginRssImportConfigView(
> $this->_blogInfo ); +
> $this->_view->setErrorMessage(
> $this->_locale->tr("rssimport_error_missing_accesskey")); +
> $this->setCommonData();
> +
> + return false;
> + }
> +
> + // This should validate the url
> + $val = new StringValidator();
> + if( !$val->validate($this->_accessKey) ) {
> + $this->_view = new
> PluginRssImportConfigView(
> $this->_blogInfo ); +
> $this->_view->setErrorMessage(
> $this->_locale->tr("rssimport_error_invalid_accesskey")); +
> $this->setCommonData();
> +
> + return false;
> + }
> +
> + // This should validate the url
> + $val = new StringValidator();
> + if( !$val->validate($this->_accessKey) ) {
> + $this->_view = new
> PluginRssImportConfigView(
> $this->_blogInfo ); +
> $this->_view->setErrorMessage(
> $this->_locale->tr("rssimport_error_invalid_accesskey")); +
> $this->setCommonData();
> +
> + return false;
> + }
> +
> + // Make sure that titleFormat is specied
> + if (!$this->_titleFormat ||
> $this->_titleFormat == "")
> + {
> + $this->_view = new
> PluginRssImportConfigView(
> $this->_blogInfo ); +
> $this->_view->setErrorMessage(
> $this->_locale->tr("rssimport_error_missing_titleformat")); +
> $this->setCommonData();
> +
> + return false;
> + }
> +
> + // This should validate the url
> + $val = new StringValidator();
> + if( !$val->validate($this->_titleFormat) )
> {
> + $this->_view = new
> PluginRssImportConfigView(
> $this->_blogInfo ); +
> $this->_view->setErrorMessage(
> $this->_locale->tr("rssimport_error_invalid_titleformat")); +
> $this->setCommonData();
> +
> + return false;
> + }
> +
> + return true;
> + }
> +
> + function perform()
> + {
> + // update the plugin configurations to blog
> setting
> + $blogSettings =
> $this->_blogInfo->getSettings();
> + $blogSettings->setValue(
> "plugin_rssimport_enabled",
> $this->_pluginEnabled ); +
> + $blogSettings->setValue(
> "plugin_rssimport_feedurl", $this->_feedurl
> ); +
> + $blogSettings->setValue(
> "plugin_rssimport_accessKey",
> $this->_accessKey); +
> +// $blogSettings->setValue(
> "plugin_rssimport_accessHosts",
> $this->_accessHosts); +
> + $blogSettings->setValue(
> "plugin_rssimport_titleFormat",
> $this->_titleFormat); +
> + $blogSettings->setValue(
> "plugin_rssimport_article_category_id",
> $this->_categoryId ); +
> $this->_blogInfo->setSettings( $blogSettings );
> +
> +
> + // save the blogs settings
> + $blogs = new Blogs();
> + if( !$blogs->updateBlog( $this->_blogInfo
> )) {
> + $this->_view = new
> PluginRssImportConfigView(
> $this->_blogInfo ); +
> $this->_view->setErrorMessage(
> $this->_locale->tr("error_updating_settings")); +
> $this->setCommonData();
> +
> + return false;
> + }
> +
> + // if everything went ok...
> + $this->_blogInfo->setSettings(
> $blogSettings );
> + $this->_session->setValue( "blogInfo",
> $this->_blogInfo );
> + $this->saveSession();
> +
> + $this->_view = new
> PluginRssImportConfigView( $this->_blogInfo );
> + $this->_view->setSuccessMessage(
> $this->_locale->tr("rssimport_settings_saved_ok"));
> + $this->setCommonData();
> +
> + // clear the cache
> + CacheControl::resetBlogCache(
> $this->_blogInfo->getId());
> +
> + return true;
> + }
> + }
> +?>
>
> Added:
>
> plugins/branches/lifetype-1.2/rssimport/class/view/pluginrssimportconfigv
> iew.class.php
>
> ===================================================================
> ---
>
> plugins/branches/lifetype-1.2/rssimport/class/view/pluginrssimportconfigv
> iew.class.php (rev 0) +++
>
> plugins/branches/lifetype-1.2/rssimport/class/view/pluginrssimportconfigv
> iew.class.php 2008-08-20 21:48:02 UTC (rev 6714) @@ -0,0 +1,94 @@
> +<?php
> + /*
> + Copyright 2006, 2008 Paul Westbrook (paul at westbrooks.org)
> +
> + This program is free software; you can redistribute it and/or
> modify
> + it under the terms of the GNU General Public License as
> published by
> + the Free Software Foundation; either version 2 of the License,
> or
> + (at your option) any later version.
> +
> + This program is distributed in the hope that it will be
> useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + GNU General Public License for more details.
> +
> + You should have received a copy of the GNU General Public
> License
> + along with this program; if not, write to the Free Software
> + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
> 02111-1307
> USA + */
> +
> +
> + lt_include(
>
> PLOG_CLASS_PATH."class/view/admin/adminplugintemplatedview.class.php" );
> +
> + /**
> + * implements the main view of the feed reader plugin
> + */
> + class PluginRssImportConfigView extends
> AdminPluginTemplatedView
> + {
> +
> +
> + function PluginRssImportConfigView( $blogInfo )
> + {
> + $this->AdminPluginTemplatedView( $blogInfo,
> "rssimport", "rssimport"
> ); +
> + }
> +
> + function render()
> + {
> + // load some configuration settings
> + $blogSettings =
> $this->_blogInfo->getSettings();
> + $pluginEnabled = $blogSettings->getValue(
> "plugin_rssimport_enabled"
> ); +
> + $feedurl = $blogSettings->getValue(
> "plugin_rssimport_feedurl" );
> +
> + $accessKey = $blogSettings->getValue(
> "plugin_rssimport_accessKey" );
> + // If accessKey is not set, generate a new
> one
> + if ( $accessKey == null || $accessKey == ""
> )
> + {
> + $rg =&
> $this->_blogInfo->getBlogRequestGenerator();
> + $rg->blogLink();
> +
> + // Generate a unique accessKey for this
> plugin
> + $accessKey = md5($rg->blogLink() .
> time());
> + }
> +
> +// $accessHosts = $blogSettings->getValue(
> "plugin_rssimport_accessHosts" ); +
> + // Get the title format string
> + $titleFormat = $blogSettings->getValue(
> "plugin_rssimport_titleFormat" ); + if (
> $titleFormat == null ||
> $titleFormat == "" )
> + {
> + $locale =
> $this->_blogInfo->getLocale();
> + $titleFormat =
> $locale->tr("rssimport_default_titleformat");
> + }
> +
> + $categoryId = $blogSettings->getValue(
> "plugin_rssimport_article_category_id" ); +
> + // fetch all the current article categories
> + lt_include(
> PLOG_CLASS_PATH."class/dao/articlecategories.class.php");
> + $categories = new ArticleCategories();
> + $blogCategories =
> $categories->getBlogCategories(
> $this->_blogInfo->getId()); +
> + // get the update url from rssimport plugin
> and pass to the plugin
> setting view + $plugins =
> $this->_pm->getPlugins();
> + $this->setValue( 'importRssUrl',
> $plugins['rssimport']->getImportRssUrl($accessKey) ); +
> +
> + // create a view and export the settings to
> the template
> + $this->setValue( "pluginEnabled",
> $pluginEnabled );
> +
> + $this->setValue( "feedurl", $feedurl );
> +
> + $this->setValue( "accessKey", $accessKey );
> +
> +// $this->setValue( "accessHosts",
> $accessHosts );
> +
> + $this->setValue( "titleFormat",
> $titleFormat );
> +
> + $this->setValue( "categoryId", $categoryId
> );
> + $this->setValue( "categories",
> $blogCategories );
> +
> + parent::render();
> + }
> + }
> +?>
>
> Added:
> plugins/branches/lifetype-1.2/rssimport/locale/locale_en_UK.php
>
> ===================================================================
> --- plugins/branches/lifetype-1.2/rssimport/locale/locale_en_UK.php
> (rev 0) +++
> plugins/branches/lifetype-1.2/rssimport/locale/locale_en_UK.php
> 2008-08-2
> 0 21:48:02 UTC (rev 6714) @@ -0,0 +1,32 @@
> +<?php
> +$messages["manageIntegrationPlugins"] = "Integration Management";
> +$messages["rssimport"] = "RSS Import";
> +
> +$messages["rssimport_plugin_enabled"] = "Enable this plugin";
> +$messages["rssimport_accessKey"] = "Access Key that is required to
> import a feed"; +$messages["rssimport_accessHosts"] = "IP address
> that
> are allowed to trigger a feed to be imported (leave blank to allow
> allow
> all hosts)"; +$messages["rssimport_feedurl"] = "Url of the feed to
> fetch";
> +$messages["rssimport_titleformat"] = "Format string that should be
> used
> for the titles of the new posts. See <a
> href='http://us3.php.net/manual/en/function.date.php'>this page</a>
> for
> format parameters";
> +$messages["rssimport_articles_categories_help"] =
> "In which category would you like articles posted to be
> categorized?";
> +$messages["rssimport_plugin"] = "RSS Import Plugin";
> +
> +$messages["detail"] = "Detail";
> +
> +$messages["rssimport_settings_saved_ok"] = "RSS Import settings
> saved
> successfully!"; +$messages["rssimport_error_url"] = "Invalid url
> specified ";
> +$messages["rssimport_error_missing_accesskey"] = "Access Key needs
> to be
> specified "; +$messages["rssimport_error_invalid_accesskey"] =
> "Invalid
> Access Key"; +$messages["rssimport_error_missing_titleformat"] =
> "Title
> Format needs to be specified";
> +$messages["rssimport_error_invalid_titleformat"] = "Invalid Title
> Format"; +
> +
> +$messages["label_configuration"] = "Configuration";
> +$messages["label_enable"] = "Enable";
> +$messages["label_rssimport_feedurl"] = "Feed URL";
> +$messages["label_rssimport_accessKey"] = "Access Key";
> +$messages["label_rssimport_accessHosts"] = "Allowed hosts";
> +$messages["label_rssimport_importurl"] = "Url to import feed";
> +$messages["label_rssimport_titleformat"] = "Title Format String";
> +
> +$messages["rssimport_default_titleformat"] = "\l\i\\n\k\s \f\o\\r
> F j,
> Y"; +?>
>
> Added:
> plugins/branches/lifetype-1.2/rssimport/pluginrssimport.class.php
>
> ===================================================================
> ---
> plugins/branches/lifetype-1.2/rssimport/pluginrssimport.class.php
> (rev 0) +++
> plugins/branches/lifetype-1.2/rssimport/pluginrssimport.class.php
> 2008-08
> -20 21:48:02 UTC (rev 6714) @@ -0,0 +1,93 @@
> +<?php
> + /*
> + Copyright 2006, 2008 Paul Westbrook (paul at westbrooks.org)
> +
> + This program is free software; you can redistribute it and/or
> modify
> + it under the terms of the GNU General Public License as
> published by
> + the Free Software Foundation; either version 2 of the License,
> or
> + (at your option) any later version.
> +
> + This program is distributed in the hope that it will be
> useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + GNU General Public License for more details.
> +
> + You should have received a copy of the GNU General Public
> License
> + along with this program; if not, write to the Free Software
> + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
> 02111-1307
> USA + */
> +
> +
> +
> + lt_include(
> PLOG_CLASS_PATH."class/plugin/pluginbase.class.php" );
> + lt_include(
> PLOG_CLASS_PATH."class/plugin/pluginmanager.class.php" );
> +
> +
> + class PluginRssImport extends PluginBase
> + {
> + var $pluginEnabled;
> +
> + function PluginRssImport( $source = "" )
> + {
> + $this->PluginBase($source);
> +
> + $this->id = "rssimport";
> + $this->author = "Paul Westbrook";
> + $this->desc = "The Rss Import plugin
> imports an rss feed and
> creates an article with the contentss"; +
> $this->version = "20080715";
> +
> + $this->locales = Array( "en_UK");
> +
> + if( $source == "admin" )
> + $this->initAdmin();
> + else
> + $this->init();
> + }
> +
> + function init()
> + {
> + $this->registerBlogAction( "importFeed",
> "ImportRssFeedAction" );
> + }
> +
> +
> + function initAdmin()
> + {
> + $this->registerAdminAction(
> "rssImportConfig",
> "PluginRssImportConfigAction" ); +
> $this->registerAdminAction(
> "updateRssImportConfig", "PluginRssImportUpdateConfigAction" ); +
> + $menu =& Menu::getMenu();
> + if( !$menu->entryExists(
> "/menu/controlCenter/manageIntegrationPlugins" ))
> + $this->addMenuEntry(
> "/menu/controlCenter",
> "manageIntegrationPlugins", "", "", true, false ); +
> + $this->addMenuEntry(
> "/menu/controlCenter/manageIntegrationPlugins",
> "rssimport", "?op=rssImportConfig", "" ); + }
> +
> + function register()
> + {
> +
>
> ...
>
> [Message clipped]
> _______________________________________________
> pLog-svn mailing list
> pLog-svn at devel.lifetype.net
> http://limedaley.com/mailman/listinfo/plog-svn
>
>
>
>
--
Jon Daley
http://jon.limedaley.com
~~
Never put off until tomorrow what you can do the day after tomorrow.
-- Mark Twain
More information about the pLog-svn
mailing list