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

Ayalon ayalon at blog.nl
Wed Sep 12 03:43:31 EDT 2007


Hi There,

This is really a great plugin, but there are some problems with it.

When i switch on this plugin my apache process rise to a memory use that's
incredible. Is there something to change about it? My database is pretty
large with a lot of articles and I have a lot of reads on the blogs. Anybody
an idea how to optimize?

I know this is not really something for the list, but I tried to reprogram
the plugin making a different way of searching but I got stuck..

Regards


-----Oorspronkelijk bericht-----
Van: plog-svn-bounces at devel.lifetype.net
[mailto:plog-svn-bounces at devel.lifetype.net] Namens
pwestbro at devel.lifetype.net
Verzonden: dinsdag 11 september 2007 7:10
Aan: plog-svn at devel.lifetype.net
Onderwerp: [pLog-svn] r5925 - in plugins/branches/lifetype-1.2/related: .
class/action class/view locale templates

Author: pwestbro
Date: 2007-09-11 01:09:42 -0400 (Tue, 11 Sep 2007)
New Revision: 5925

Modified:
 
plugins/branches/lifetype-1.2/related/class/action/pluginrelatedupdateconfig
action.class.php
 
plugins/branches/lifetype-1.2/related/class/view/pluginrelatedconfigview.cla
ss.php
   plugins/branches/lifetype-1.2/related/locale/locale_en_UK.php
   plugins/branches/lifetype-1.2/related/pluginrelated.class.php
   plugins/branches/lifetype-1.2/related/templates/related.template
Log:
Added a setting so the minimum number for keywords that are used to generate
the list of related articles


Modified:
plugins/branches/lifetype-1.2/related/class/action/pluginrelatedupdateconfig
action.class.php
===================================================================
---
plugins/branches/lifetype-1.2/related/class/action/pluginrelatedupdateconfig
action.class.php	2007-09-10 19:45:42 UTC (rev 5924)
+++
plugins/branches/lifetype-1.2/related/class/action/pluginrelatedupdateconfig
action.class.php	2007-09-11 05:09:42 UTC (rev 5925)
@@ -18,43 +18,45 @@
     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."class/action/admin/adminaction.class.php"
);
     lt_include(
PLOG_CLASS_PATH."plugins/related/class/view/pluginrelatedconfigview.class.ph
p" ); 
 
     $apiKeyValid = true;
     
     class PluginRelatedUpdateConfigAction extends AdminAction 
-	{
-	
-		var $_pluginEnabled;
-		var $_numRelatedArticles;
-		var $_minWordLength;
-		var $_refreshInterval;
-		var $_parseBody;
-		var $_bannedKeywords;
+        {
+        
+                var $_pluginEnabled;
+                var $_numRelatedArticles;
+                var $_minWordLength;
+                var $_minNumKeywords;
+                var $_refreshInterval;
+                var $_parseBody;
+                var $_bannedKeywords;
 
 
-    	/**
+        /**
          * Constructor. If nothing else, it also has to call the
constructor of the parent
          * class, BlogAction with the same parameters
          */
         function PluginRelatedUpdateConfigAction( $actionInfo, $request )
         {
-        	$this->AdminAction( $actionInfo, $request );
+                $this->AdminAction( $actionInfo, $request );
         }
-		
-		function validate()
-		{
+                
+       function validate()
+       {
 
             $this->_pluginEnabled = $this->_request->getValue(
"pluginEnabled" );
-            $this->_pluginEnabled = ($this->_pluginEnabled != "" );

+            $this->_pluginEnabled = ($this->_pluginEnabled != "" );

         
 
             $this->_numRelatedArticles = $this->_request->getValue(
"numArticles" );
             $this->_minWordLength = $this->_request->getValue(
"minWordLength" );
+            $this->_minNumKeywords = $this->_request->getValue(
"minNumKeywords" );
             $this->_refreshInterval = $this->_request->getValue( "interval"
);
             $this->_parseBody = $this->_request->getValue( "parseBody" );
-            $this->_parseBody = ($this->_parseBody != "" );

+            $this->_parseBody = ($this->_parseBody != "" );

             $this->_bannedKeywords = $this->_request->getValue(
"bannedKeywords" );
 
             
@@ -98,28 +100,49 @@
                         return false;    
                     }
                 }
+
+
+                if( $this->_minNumKeywords == "" ) {
+                    $this->_view = new PluginRelatedConfigView(
$this->_blogInfo );
+                    $this->_view->setErrorMessage(
$this->_locale->tr("related_missing_num_keywords"));
+                    $this->setCommonData();
+    
+                    return false;                
+                }
+                else {
+                    $val3 = new IntegerValidator();
+                    if( !$val3->validate( $this->_minNumKeywords )) {
+                        $this->_view = new PluginRelatedConfigView(
$this->_blogInfo );
+                        $this->_view->setErrorMessage(
$this->_locale->tr("related_invalid_num_keywords"));
+                        $this->setCommonData();
+        
+                        return false;    
+                    }
+                }
+
             }
-			return true;
-		}
-		
+            return true;
+        }
+                
         /**
          * Carries out the specified action
          */
         function perform()
         {
             // update the plugin configurations to blog setting
-			$blogSettings = $this->_blogInfo->getSettings();
+                        $blogSettings = $this->_blogInfo->getSettings();
             $blogSettings->setValue( "plugin_related_enabled",
$this->_pluginEnabled );
             $blogSettings->setValue( "plugin_related_num_articles",
$this->_numRelatedArticles );
             $blogSettings->setValue( "plugin_related_min_word_length",
$this->_minWordLength );
+            $blogSettings->setValue( "plugin_related_min_num_keywords",
$this->_minNumKeywords );
             $blogSettings->setValue( "plugin_related_refresh_interval",
$this->_refreshInterval );
             $blogSettings->setValue(
"plugin_related_extract_keywords_from_body", $this->_parseBody );
             $blogSettings->setValue( "plugin_related_banned_keywords",
$this->_bannedKeywords );
 
             $this->_blogInfo->setSettings( $blogSettings ); 
-		
-			// save the blogs settings
-			$blogs = new Blogs();
+                
+                        // save the blogs settings
+                        $blogs = new Blogs();
             if( !$blogs->updateBlog( $this->_blogInfo )) {
                 $this->_view = new PluginRelatedConfigView(
$this->_blogInfo );
                 $this->_view->setErrorMessage(
$this->_locale->tr("error_updating_settings"));
@@ -127,20 +150,20 @@
 
                 return false;                       
             }
-			
-			// if everything went ok...
+                        
+                        // if everything went ok...
             $this->_blogInfo->setSettings( $blogSettings );
             $this->_session->setValue( "blogInfo", $this->_blogInfo );
             $this->saveSession();
-			
-			$this->_view = new PluginRelatedConfigView(
$this->_blogInfo );
-			$this->_view->setSuccessMessage(
$this->_locale->tr("related_settings_saved_ok"));			
-			$this->setCommonData();
-			
-			// clear the cache
-			CacheControl::resetBlogCache(
$this->_blogInfo->getId());					
+                        
+                        $this->_view = new PluginRelatedConfigView(
$this->_blogInfo );
+                        $this->_view->setSuccessMessage(
$this->_locale->tr("related_settings_saved_ok"));                      
+                        $this->setCommonData();
+                        
+                        // clear the cache
+                        CacheControl::resetBlogCache(
$this->_blogInfo->getId());                                       
             
-            return true;		
+            return true;                
         }
     }
     

Modified:
plugins/branches/lifetype-1.2/related/class/view/pluginrelatedconfigview.cla
ss.php
===================================================================
---
plugins/branches/lifetype-1.2/related/class/view/pluginrelatedconfigview.cla
ss.php	2007-09-10 19:45:42 UTC (rev 5924)
+++
plugins/branches/lifetype-1.2/related/class/view/pluginrelatedconfigview.cla
ss.php	2007-09-11 05:09:42 UTC (rev 5925)
@@ -38,6 +38,7 @@
 			$pluginEnabled = $blogSettings->getValue(
"plugin_related_enabled" );			
 			$numArticles = $blogSettings->getValue(
"plugin_related_num_articles" );			
 			$minWordLength = $blogSettings->getValue(
"plugin_related_min_word_length" );			
+			$minNumKeyword = $blogSettings->getValue(
"plugin_related_min_num_keywords" );
 			$refreshInterval = $blogSettings->getValue(
"plugin_related_refresh_interval" );			
 			$parseBody = $blogSettings->getValue(
"plugin_related_extract_keywords_from_body" );			
 			$bannedKeywords = $blogSettings->getValue(
"plugin_related_banned_keywords" );
@@ -49,6 +50,7 @@
 			$this->setValue( "pluginEnabled", $pluginEnabled );
 			$this->setValue( "numArticles", $numArticles );
 			$this->setValue( "minWordLength", $minWordLength );
+			$this->setValue( "minNumKeywords", $minNumKeyword );
 			$this->setValue( "interval", $refreshInterval );
 			$this->setValue( "parseBody", $parseBody );
 			$this->setValue( "bannedKeywords", $bannedKeywords
);

Modified: plugins/branches/lifetype-1.2/related/locale/locale_en_UK.php
===================================================================
--- plugins/branches/lifetype-1.2/related/locale/locale_en_UK.php
2007-09-10 19:45:42 UTC (rev 5924)
+++ plugins/branches/lifetype-1.2/related/locale/locale_en_UK.php
2007-09-11 05:09:42 UTC (rev 5925)
@@ -10,12 +10,15 @@
 $messages["related_settings_saved_ok"] = "Related Posts settings saved
successfully!";
 $messages["related_missing_num_articles"] = "Number of articles needs to be
specified";
 $messages["related_invalid_num_articles"] = "Number of articles needs to be
an integer";
+$messages["related_missing_num_keywords"] = "Number of keywords needs to be
specified";
+$messages["related_invalid_num_keywords"] = "Number of keywords needs to be
an integer";
 $messages["related_missing_min_length"] = "Minimum keyword length needs to
be specified";
 $messages["related_invalid_min_length"] = "Minumum keyword length needs to
be an integer";
 $messages["related_banned_keywords"] = "Keywords that should not be used to
find related posts (comma separated).";
 
 $messages["related_articles"] = "Number of related articles to return.";
 $messages["related_word_length"] = "Minimum length of keyword used to
generate related article.";
+$messages["related_num_keywords"] = "Minimum number of keywords required to
determine list of related articles.";
 $messages["related_cache"] = "Lifetime for the related article cache.";
 $messages["parse_body"] = "Parse the body of articles to generate keywords.
(This may cause generating related posts to take longer.)";
 
@@ -24,6 +27,7 @@
 
 $messages["related_max_articles"] = "Number Articles";
 $messages["related_min_word_length"] = "Minimum Keyword Length";
+$messages["related_min_num_keywords"] = "Minimum Number of Keywords";
 $messages["related_cache_lifetime"] = "Cache Lifetime";
 $messages["related_parse_body"] = "Parse Body";
 $messages["banned_keywords"] = "Banned Keywords";

Modified: plugins/branches/lifetype-1.2/related/pluginrelated.class.php
===================================================================
--- plugins/branches/lifetype-1.2/related/pluginrelated.class.php
2007-09-10 19:45:42 UTC (rev 5924)
+++ plugins/branches/lifetype-1.2/related/pluginrelated.class.php
2007-09-11 05:09:42 UTC (rev 5925)
@@ -25,10 +25,11 @@
 		var $pluginEnabled;
 		var $numRelatedArticles;
 		var $minWordLength;
+		var $minNumKeywords;
 		var $refreshInterval;
-        var $cacheFolder;
-        var $extractKeywordsFromBody;
-        var $bannedWords;
+		var $cacheFolder;
+		var $extractKeywordsFromBody;
+		var $bannedWords;
 		
 		function PluginRelated( $source = "" )
 		{
@@ -38,7 +39,7 @@
 			$this->desc    = "The Related plugin will generate a
list of related posts.";
 			$this->author  = "Paul Westbrook";
 			$this->locales = Array( "en_UK" );
-            $this->version = "20070602";
+			$this->version = "20070910";
 
 
 			if( $source == "admin" )
@@ -62,6 +63,7 @@
 			$this->pluginEnabled = $blogSettings->getValue(
"plugin_related_enabled" );
 			$this->numRelatedArticles = $blogSettings->getValue(
"plugin_related_num_articles" );
 			$this->minWordLength = $blogSettings->getValue(
"plugin_related_min_word_length" );
+			$this->minNumKeywords = $blogSettings->getValue(
"plugin_related_min_num_keywords" );
 			$this->refreshInterval = $blogSettings->getValue(
"plugin_related_refresh_interval" );
 			$this->extractKeywordsFromBody =
$blogSettings->getValue( "plugin_related_extract_keywords_from_body" );
 		    $this->bannedWords = $blogSettings->getValue(
"plugin_related_banned_keywords" );
@@ -116,8 +118,14 @@
  
                 // Get the keywords
                 $keywords = $this->getArticleKeywords($article);
+
+                // Make sure that there are enough keywords to make 
+                // generating the list of articles worth while
+                if ($this->minNumKeywords != "" && count($keywords) <
$this->minNumKeywords) {
+                    return $relatedArticles;		   
+                }
+                    
                 
-                
                 foreach($keywords as $word) {
                     // Build the list of articles that have this keyword
                     lt_include(
PLOG_CLASS_PATH."class/dao/searchengine.class.php" );

Modified: plugins/branches/lifetype-1.2/related/templates/related.template
===================================================================
--- plugins/branches/lifetype-1.2/related/templates/related.template
2007-09-10 19:45:42 UTC (rev 5924)
+++ plugins/branches/lifetype-1.2/related/templates/related.template
2007-09-11 05:09:42 UTC (rev 5925)
@@ -35,6 +35,17 @@
   </div>
 
   <div class="field">
+   <label for="width">{$locale->tr("related_min_num_keywords")}</label>
+   <span class="required">*</span>
+   <div class="formHelp">{$locale->tr("related_num_keywords")}</div>
+   <input class="text" type="text" name="minNumKeywords"
id="minNumKeywords"
+           {user_cannot_override
+               key=plugin_related_min_num_keywords}readonly="readonly"
+           {/user_cannot_override}
+          value="{$minNumKeywords}" width="10" /> 
+  </div>
+
+  <div class="field">
    <label for="size">{$locale->tr("related_cache_lifetime")}</label>
    <span class="required">*</span>
    <div class="formHelp">{$locale->tr("related_cache")}</div>

_______________________________________________
pLog-svn mailing list
pLog-svn at devel.lifetype.net
http://limedaley.com/mailman/listinfo/plog-svn




More information about the pLog-svn mailing list