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

Jon Daley plogworld at jon.limedaley.com
Fri Sep 5 15:43:23 EDT 2008


 	Hrm, just came across my first "this site has been reported as an 
attacker" thingy - I think that might use google to figure out which sites 
are "bad"?  Maybe that is how it got ahold of my "secret" URL.
 	If so - that isn't particularly good - that google is actually 
going through all the sites that you click on.

On Fri, 5 Sep 2008, Jon Daley wrote:

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

-- 
Jon Daley
http://jon.limedaley.com
~~
The most wasted of all days is one without laughter.
-- e. e. cummings


More information about the pLog-svn mailing list