[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
Thu Sep 4 13:50:16 EDT 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello,
   One of the other changes that I want to make was to have
a list of ip address that would be allowed to run the import.

- --Paul


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: http://getfiregpg.org

iD8DBQFIwB/UQIx6KJgT81kRAk16AJwM+uoCU7aps/OuVA9zOaZb2XKmcQCggWwK
H8PyKt8f3NajgAfxDCBm1NA=
=99eu
-----END PGP SIGNATURE-----
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.usbookmarks
>>      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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://limedaley.com/pipermail/plog-svn/attachments/20080904/89da21e2/attachment-0001.htm>


More information about the pLog-svn mailing list