[pLog-svn] r6714 - in plugins/branches/lifetype-1.2: . rssimport rssimport/class rssimport/class/action rssimport/class/view rssimport/locale rssimport/templates
Paul Westbrook
paul at westbrooks.org
Tue Aug 26 16:40:20 EDT 2008
Hello,
You are welcome. I use the technorati plugin for the the tags on each
post.
http://wiki.lifetype.net/index.php/Plugin_technorati
--Paul
On Tuesday 26 August 2008 11:02:39 fabian büttner wrote:
> thanks for sharing that great plugin!
>
> BTW: How do you do the technorati tags on your blog? Is this also a
> plugin?
>
> On Thu, 2008-08-21 at 02:22 -0700, 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/importrssfeedact
> > > >ion. class.php
> > > > plugins/branches/lifetype-1.2/rssimport/class/action/pluginrssimportc
> > > >onfi gaction.class.php
> > > > plugins/branches/lifetype-1.2/rssimport/class/action/pluginrssimportu
> > > >pdat econfigaction.class.php
> > > > plugins/branches/lifetype-1.2/rssimport/class/view/
> > > >
> > > > plugins/branches/lifetype-1.2/rssimport/class/view/pluginrssimportcon
> > > >figv 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/importrssfeedact
> > > >ion. class.php
> >
> >
===================================================================
> > ---
> >
> > > > plugins/branches/lifetype-1.2/rssimport/class/action/importrssfeedact
> > > >ion. class.php (rev 0) +++
> > > > plugins/branches/lifetype-1.2/rssimport/class/action/importrssfeedact
> > > >ion. 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/pluginrssimportc
> > > >onfi gaction.class.php
> >
> >
===================================================================
> > ---
> >
> > > > plugins/branches/lifetype-1.2/rssimport/class/action/pluginrssimportc
> > > >onfi gaction.class.php (rev 0) +++
> > > > plugins/branches/lifetype-1.2/rssimport/class/action/pluginrssimportc
> > > >onfi 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/pluginrssimportconfigvi
> > > >ew.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/pluginrssimportu
> > > >pdat econfigaction.class.php
> >
> >
===================================================================
> > ---
> >
> > > > plugins/branches/lifetype-1.2/rssimport/class/action/pluginrssimportu
> > > >pdat econfigaction.class.php (rev 0) +++
> > > > plugins/branches/lifetype-1.2/rssimport/class/action/pluginrssimportu
> > > >pdat 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/pluginrssimportconfigvi
> > > >ew.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/pluginrssimportcon
> > > >figv iew.class.php
> >
> >
===================================================================
> > ---
> >
> > > > plugins/branches/lifetype-1.2/rssimport/class/view/pluginrssimportcon
> > > >figv iew.class.php (rev 0) +++
> > > > plugins/branches/lifetype-1.2/rssimport/class/view/pluginrssimportcon
> > > >figv 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 200
> > > >8-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()
> > > > + {
> > > > + $blogSettings = $this->blogInfo->getSettings();
> > > > + $this->pluginEnabled = $blogSettings->getValue(
> > > > "plugin_rssimport_enabled" ); +
> > > > + $this->accessKey = $blogSettings->getValue(
> > > > "plugin_rssimport_accessKey" ); + }
> > > > +
> > > > + function isEnabled()
> > > > + {
> > > > + return $this->pluginEnabled;
> > > > + }
> > > > +
> > > > + function getImportRssUrl($accessKey)
> > > > + {
> > > > + lt_include(
> > > > PLOG_CLASS_PATH."class/net/rawrequestgenerator.class.php" ); +
> > > > + $rg = new RawRequestGenerator($this->blogInfo);
> > > > +
> > > > + $rg->addParameter( "op", "importFeed" );
> > > > + $rg->addParameter( "accessKey", $accessKey);
> > > > +
> > > > + $importRssUrl = $rg->getIndexUrl().$rg->getRequest();
> > > > +
> > > > + return $importRssUrl;
> > > > + }
> > > > +
> > > > + }
> > > > +?>
> > > >
> > > > Added:
> > > > plugins/branches/lifetype-1.2/rssimport/templates/rssimport.template
> >
> >
===================================================================
> > ---
> >
> > > > plugins/branches/lifetype-1.2/rssimport/templates/rssimport.template
> > > > (rev 0) +++
> > > > plugins/branches/lifetype-1.2/rssimport/templates/rssimport.template
> > > >2008 -08-20 21:48:02 UTC (rev 6714) @@ -0,0 +1,65 @@
> > > > +{include file="$admintemplatepath/header.template"}
> > > > +{include file="$admintemplatepath/navigation.template"
> > > > showOpt=rssimport title=$locale->tr("rssimport_plugin")} +<form
> > > > name="commentPluginConfig" method="post">
> > > > + <fieldset class="inputField">
> > > > + <legend>{$locale->tr("label_configuration")}</legend>
> > > > + {include file="$admintemplatepath/successmessage.template"}
> > > > + {include file="$admintemplatepath/errormessage.template"}
> > > > + <div class="field">
> > > > + <label for="pluginEnabled">{$locale->tr("label_enable")}</label>
> > > > + <div class="formHelp">
> > > > + <input class="checkbox" type="checkbox" name="pluginEnabled"
> > > > id="pluginEnabled" {if $pluginEnabled} checked="checked" {/if}
> > > > value="1" />{$locale->tr("rssimport_plugin_enabled")} + </div>
> > > > + </div>
> > > > +
> > > > + <div class="field">
> > > > + <label
> > > > for="accessKey">{$locale->tr("label_rssimport_accessKey")}</label> +
> > > > <span class="required">*</span>
> > > > + <div class="formHelp">{$locale->tr("rssimport_accessKey")}
> > > > + <input class="text" type="text" name="accessKey" id="accessKey"
> > > > value="{$accessKey}" width="10" /> + </div>
> > > > + </div>
> > > > +
> > > > + <div class="field">
> > > > + <label
> > > > for="feedurl">{$locale->tr("label_rssimport_feedurl")}</label> +
> > > > <span class="required">*</span>
> > > > + <div class="formHelp">{$locale->tr("rssimport_feedurl")}
> > > > + <input class="text" type="text" name="feedurl" id="feedurl"
> > > > value="{$feedurl}" width="10" /> + </div>
> > > > + </div>
> > > > +
> > > > + <div class="field">
> > > > + <label
> > > > for="feedurl">{$locale->tr("label_rssimport_titleformat")}</label> +
> > > > <span class="required">*</span>
> > > > + <div class="formHelp">{$locale->tr("rssimport_titleformat")}
> > > > + <input class="text" type="text" name="titleFormat"
> > > > id="titleFormat" value="{$titleFormat}" width="10" /> + </div>
> > > > + </div>
> > > > +
> > > > + <!-- article categories -->
> > > > + <div class="field">
> > > > + <label for="categoryId">{$locale->tr("posts")}</label>
> > > > + <div
> > > > class="formHelp">{$locale->tr("rssimport_articles_categories_help")}<
> > > >/div
> > > >
> > > >> + <select name="categoryId">
> > > >
> > > > + {foreach from=$categories item=category}
> > > > + <option value="{$category->getId()}" {if $categoryId ==
> > > > $category->getId()}selected="selected"{/if}>{$category->getName()}</o
> > > >ptio n> + {/foreach}
> > > > + </select>
> > > > + </div>
> > > > +
> > > > + <div class="field">
> > > > + <label
> > > > for="importurl">{$locale->tr("label_rssimport_importurl")}</label>
> > > > +<br/> + <span><a href="{$importRssUrl}">{$importRssUrl}</a></span>
> > > > + </div>
> > > > +
> > > > + </fieldset>
> > > > +
> > > > + <div class="buttons">
> > > > + <input type="hidden" name="op" value="updateRssImportConfig" />
> > > > + <input type="reset" name="{$locale->tr("reset")}" />
> > > > + <input type="submit" name="{$locale->tr("update_settings")}"
> > > > value="{$locale->tr("update")}" /> + </div>
> > > > +</form>
> > > > +{include file="$admintemplatepath/footernavigation.template"}
> > > > +{include file="$admintemplatepath/footer.template"}
> > > >
> > > > _______________________________________________
> > > > pLog-svn mailing list
> > > > pLog-svn at devel.lifetype.net
> > > > http://limedaley.com/mailman/listinfo/plog-svn
> >
> > _______________________________________________
> > pLog-svn mailing list
> > pLog-svn at devel.lifetype.net
> > http://limedaley.com/mailman/listinfo/plog-svn
>
> _______________________________________________
> pLog-svn mailing list
> pLog-svn at devel.lifetype.net
> http://limedaley.com/mailman/listinfo/plog-svn
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
URL: <http://limedaley.com/pipermail/plog-svn/attachments/20080826/9435f655/attachment-0001.pgp>
More information about the pLog-svn
mailing list