[pLog-svn] r6714 - in plugins/branches/lifetype-1.2: . rssimport rssimport/class rssimport/class/action rssimport/class/view rssimport/locale rssimport/templates

pwestbro at devel.lifetype.net pwestbro at devel.lifetype.net
Wed Aug 20 17:48:02 EDT 2008


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/pluginrssimportconfigaction.class.php
   plugins/branches/lifetype-1.2/rssimport/class/action/pluginrssimportupdateconfigaction.class.php
   plugins/branches/lifetype-1.2/rssimport/class/view/
   plugins/branches/lifetype-1.2/rssimport/class/view/pluginrssimportconfigview.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/pluginrssimportconfigaction.class.php
===================================================================
--- plugins/branches/lifetype-1.2/rssimport/class/action/pluginrssimportconfigaction.class.php	                        (rev 0)
+++ plugins/branches/lifetype-1.2/rssimport/class/action/pluginrssimportconfigaction.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.class.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/pluginrssimportupdateconfigaction.class.php
===================================================================
--- plugins/branches/lifetype-1.2/rssimport/class/action/pluginrssimportupdateconfigaction.class.php	                        (rev 0)
+++ plugins/branches/lifetype-1.2/rssimport/class/action/pluginrssimportupdateconfigaction.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.class.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/pluginrssimportconfigview.class.php
===================================================================
--- plugins/branches/lifetype-1.2/rssimport/class/view/pluginrssimportconfigview.class.php	                        (rev 0)
+++ plugins/branches/lifetype-1.2/rssimport/class/view/pluginrssimportconfigview.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-20 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()
+		{
+		    $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()}</option>
+	{/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"}



More information about the pLog-svn mailing list