Hello,<br>&nbsp;&nbsp; This plugin uses a brute force algorithm.&nbsp;&nbsp;In order to calculate the list of related articles for a given post, first it gets a list of all of the unique words in the post.&nbsp;&nbsp;Then it for each keyword, it uses LifeType&#39;s builtin search engine to find a list of the posts that have that keyword.&nbsp;&nbsp;After it does that for all of the keywords, it lists the returned articles based on the number of times that the article is returned by the search engine.&nbsp;&nbsp;Then the plugin returns the top x articles.
<br><br>&nbsp;&nbsp; Since this is expensive, the plugin implements a cache.&nbsp;&nbsp;The list of related articles for a post is cached in the file system, so the next time that it runs, the queries do not have to be run.&nbsp;&nbsp;The user can specify the lifetime of that cache.&nbsp;&nbsp;For example, I have mine set to 1 month, so the queries will only be run once every 30 days for each article.
<br><br>&nbsp;&nbsp; There are serveral things that could be done to improve performance<br><ol><li>Implement or use a library that will actually summarize the article text.&nbsp; This shouldn&#39;t simply take the nth sentence, but should generate a representative summary that contains the important keywords.&nbsp; This would reduce the number of search engine queries that are run
</li><li>Change the search engine to be able to return a list of articles that contains at least one of a specified list of words.&nbsp; This would allow the search engine to be run only once for each article</li><li>Use native tag support.&nbsp; When lifetype nativelly supports tags, the plugins wouldn&#39;t have to use all of the text in the article, but could just find posts that are tagged with the same tags.
<br></li></ol><br>--Paul<br><br><br><br>On 9/12/07, Ayalon &lt;<a href="mailto:ayalon@blog.nl">ayalon@blog.nl</a>&gt; wrote:<br>&gt; Hi There,<br>&gt; <br>&gt; This is really a great plugin, but there are some problems with it.
<br>&gt; <br>&gt; When i switch on this plugin my apache process rise to a memory use that&#39;s<br>&gt; incredible. Is there something to change about it? My database is pretty<br>&gt; large with a lot of articles and I have a lot of reads on the blogs. Anybody
<br>&gt; an idea how to optimize?<br>&gt; <br>&gt; I know this is not really something for the list, but I tried to reprogram<br>&gt; the plugin making a different way of searching but I got stuck..<br>&gt; <br>&gt; Regards
<br>&gt; <br>&gt; <br>&gt; -----Oorspronkelijk bericht-----<br>&gt; Van: <a href="mailto:plog-svn-bounces@devel.lifetype.net">plog-svn-bounces@devel.lifetype.net</a><br>&gt; [mailto:<a href="mailto:plog-svn-bounces@devel.lifetype.net">
plog-svn-bounces@devel.lifetype.net</a>] Namens<br>&gt; <a href="mailto:pwestbro@devel.lifetype.net">pwestbro@devel.lifetype.net</a><br>&gt; Verzonden: dinsdag 11 september 2007 7:10<br>&gt; Aan: <a href="mailto:plog-svn@devel.lifetype.net">
plog-svn@devel.lifetype.net</a><br>&gt; Onderwerp: [pLog-svn] r5925 - in plugins/branches/lifetype-1.2/related: .<br>&gt; class/action class/view locale templates<br>&gt; <br>&gt; Author: pwestbro<br>&gt; Date: 2007-09-11 01:09:42 -0400 (Tue, 11 Sep 2007)
<br>&gt; New Revision: 5925<br>&gt; <br>&gt; Modified:<br>&gt; <br>&gt; plugins/branches/lifetype-1.2/related/class/action/pluginrelatedupdateconfig<br>&gt; action.class.php<br>&gt; <br>&gt; plugins/branches/lifetype-1.2/related/class/view/pluginrelatedconfigview.cla
<br>&gt; ss.php<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;plugins/branches/lifetype-1.2/related/locale/locale_en_UK.php<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;plugins/branches/lifetype-1.2/related/pluginrelated.class.php<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;plugins/branches/lifetype-1.2/related/templates/related.template
<br>&gt; Log:<br>&gt; Added a setting so the minimum number for keywords that are used to generate<br>&gt; the list of related articles<br>&gt; <br>&gt; <br>&gt; Modified:<br>&gt; plugins/branches/lifetype-1.2/related/class/action/pluginrelatedupdateconfig
<br>&gt; action.class.php<br>&gt; ===================================================================<br>&gt; ---<br>&gt; plugins/branches/lifetype-1.2/related/class/action/pluginrelatedupdateconfig<br>&gt; action.class.php
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2007-09-10 19:45:42 UTC (rev 5924)<br>&gt; +++<br>&gt; plugins/branches/lifetype-1.2/related/class/action/pluginrelatedupdateconfig<br>&gt; action.class.php&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2007-09-11 05:09:42 UTC (rev 5925)<br>&gt; @@ -18,43 +18,45 @@
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA&nbsp;&nbsp;02111-1307<br>&gt; USA<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br>&gt; <br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lt_include(<br>&gt; PLOG_CLASS_PATH.&quot;class/action/admin/adminaction.class.php&quot; );
<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;lt_include( PLOG_CLASS_PATH.&quot;class/action/admin/adminaction.class.php&quot;<br>&gt; );<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lt_include(<br>&gt; PLOG_CLASS_PATH.&quot;plugins/related/class/view/pluginrelatedconfigview.class.ph<br>
&gt; p&quot; );<br>&gt; <br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$apiKeyValid = true;<br>&gt; <br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class PluginRelatedUpdateConfigAction extends AdminAction<br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&gt; -<br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var $_pluginEnabled;<br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var $_numRelatedArticles;
<br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var $_minWordLength;<br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var $_refreshInterval;<br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var $_parseBody;<br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var $_bannedKeywords;<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&gt; +<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $_pluginEnabled;
<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $_numRelatedArticles;<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $_minWordLength;<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $_minNumKeywords;<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $_refreshInterval;<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $_parseBody;
<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $_bannedKeywords;<br>&gt; <br>&gt; <br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * Constructor. If nothing else, it also has to call the<br>&gt; constructor of the parent<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * class, BlogAction with the same parameters
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function PluginRelatedUpdateConfigAction( $actionInfo, $request )<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;AdminAction( $actionInfo, $request );<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;AdminAction( $actionInfo, $request );
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&gt; -<br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function validate()<br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&gt; +<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function validate()<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&gt; <br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_pluginEnabled = $this-&gt;_request-&gt;getValue(
<br>&gt; &quot;pluginEnabled&quot; );<br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_pluginEnabled = ($this-&gt;_pluginEnabled != &quot;&quot; );<br>&gt; <br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_pluginEnabled = ($this-&gt;_pluginEnabled != &quot;&quot; );
<br>&gt; <br>&gt; <br>&gt; <br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_numRelatedArticles = $this-&gt;_request-&gt;getValue(<br>&gt; &quot;numArticles&quot; );<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_minWordLength = $this-&gt;_request-&gt;getValue(
<br>&gt; &quot;minWordLength&quot; );<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_minNumKeywords = $this-&gt;_request-&gt;getValue(<br>&gt; &quot;minNumKeywords&quot; );<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_refreshInterval = $this-&gt;_request-&gt;getValue( &quot;interval&quot;
<br>&gt; );<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_parseBody = $this-&gt;_request-&gt;getValue( &quot;parseBody&quot; );<br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_parseBody = ($this-&gt;_parseBody != &quot;&quot; );<br>&gt; <br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_parseBody = ($this-&gt;_parseBody != &quot;&quot; );
<br>&gt; <br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_bannedKeywords = $this-&gt;_request-&gt;getValue(<br>&gt; &quot;bannedKeywords&quot; );<br>&gt; <br>&gt; <br>&gt; @@ -98,28 +100,49 @@<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false;
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&gt; +<br>&gt; +<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( $this-&gt;_minNumKeywords == &quot;&quot; ) {<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_view = new PluginRelatedConfigView(
<br>&gt; $this-&gt;_blogInfo );<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_view-&gt;setErrorMessage(<br>&gt; $this-&gt;_locale-&gt;tr(&quot;related_missing_num_keywords&quot;));<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;setCommonData();
<br>&gt; +<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false;<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else {<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$val3 = new IntegerValidator();<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( !$val3-&gt;validate( $this-&gt;_minNumKeywords )) {
<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_view = new PluginRelatedConfigView(<br>&gt; $this-&gt;_blogInfo );<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_view-&gt;setErrorMessage(<br>&gt; $this-&gt;_locale-&gt;tr(&quot;related_invalid_num_keywords&quot;));
<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;setCommonData();<br>&gt; +<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false;<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&gt; +<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;
<br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&gt; -<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&gt; +<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * Carries out the specified action<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function perform()
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// update the plugin configurations to blog setting<br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $blogSettings = $this-&gt;_blogInfo-&gt;getSettings();<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$blogSettings = $this-&gt;_blogInfo-&gt;getSettings();
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$blogSettings-&gt;setValue( &quot;plugin_related_enabled&quot;,<br>&gt; $this-&gt;_pluginEnabled );<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$blogSettings-&gt;setValue( &quot;plugin_related_num_articles&quot;,<br>&gt; $this-&gt;_numRelatedArticles );
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$blogSettings-&gt;setValue( &quot;plugin_related_min_word_length&quot;,<br>&gt; $this-&gt;_minWordLength );<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$blogSettings-&gt;setValue( &quot;plugin_related_min_num_keywords&quot;,
<br>&gt; $this-&gt;_minNumKeywords );<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$blogSettings-&gt;setValue( &quot;plugin_related_refresh_interval&quot;,<br>&gt; $this-&gt;_refreshInterval );<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$blogSettings-&gt;setValue(<br>
&gt; &quot;plugin_related_extract_keywords_from_body&quot;, $this-&gt;_parseBody );<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$blogSettings-&gt;setValue( &quot;plugin_related_banned_keywords&quot;,<br>&gt; $this-&gt;_bannedKeywords );<br>&gt; 
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_blogInfo-&gt;setSettings( $blogSettings );<br>&gt; -<br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // save the blogs settings<br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $blogs = new Blogs();<br>&gt; +<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// save the blogs settings
<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$blogs = new Blogs();<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( !$blogs-&gt;updateBlog( $this-&gt;_blogInfo )) {<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_view = new PluginRelatedConfigView(<br>&gt; $this-&gt;_blogInfo );
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_view-&gt;setErrorMessage(<br>&gt; $this-&gt;_locale-&gt;tr(&quot;error_updating_settings&quot;));<br>&gt; @@ -127,20 +150,20 @@<br>&gt; <br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
<br>&gt; -<br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // if everything went ok...<br>&gt; +<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// if everything went ok...<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_blogInfo-&gt;setSettings( $blogSettings );<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_session-&gt;setValue( &quot;blogInfo&quot;, $this-&gt;_blogInfo );
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;saveSession();<br>&gt; -<br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;_view = new PluginRelatedConfigView(<br>&gt; $this-&gt;_blogInfo );<br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;_view-&gt;setSuccessMessage(
<br>&gt; $this-&gt;_locale-&gt;tr(&quot;related_settings_saved_ok&quot;));<br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;setCommonData();<br>&gt; -<br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // clear the cache<br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CacheControl::resetBlogCache(
<br>&gt; $this-&gt;_blogInfo-&gt;getId());<br>&gt; +<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_view = new PluginRelatedConfigView(<br>&gt; $this-&gt;_blogInfo );<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_view-&gt;setSuccessMessage(
<br>&gt; $this-&gt;_locale-&gt;tr(&quot;related_settings_saved_ok&quot;));<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;setCommonData();<br>&gt; +<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// clear the cache<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CacheControl::resetBlogCache(
<br>&gt; $this-&gt;_blogInfo-&gt;getId());<br>&gt; <br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&gt; <br>&gt; <br>&gt; Modified:<br>&gt; plugins/branches/lifetype-
1.2/related/class/view/pluginrelatedconfigview.cla<br>&gt; ss.php<br>&gt; ===================================================================<br>&gt; ---<br>&gt; plugins/branches/lifetype-1.2/related/class/view/pluginrelatedconfigview.cla
<br>&gt; ss.php&nbsp;&nbsp;2007-09-10 19:45:42 UTC (rev 5924)<br>&gt; +++<br>&gt; plugins/branches/lifetype-1.2/related/class/view/pluginrelatedconfigview.cla<br>&gt; ss.php&nbsp;&nbsp;2007-09-11 05:09:42 UTC (rev 5925)<br>&gt; @@ -38,6 +38,7 @@
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $pluginEnabled = $blogSettings-&gt;getValue(<br>&gt; &quot;plugin_related_enabled&quot; );<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $numArticles = $blogSettings-&gt;getValue(<br>&gt; &quot;plugin_related_num_articles&quot; );
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $minWordLength = $blogSettings-&gt;getValue(<br>&gt; &quot;plugin_related_min_word_length&quot; );<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $minNumKeyword = $blogSettings-&gt;getValue(<br>&gt; &quot;plugin_related_min_num_keywords&quot; );
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $refreshInterval = $blogSettings-&gt;getValue(<br>&gt; &quot;plugin_related_refresh_interval&quot; );<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $parseBody = $blogSettings-&gt;getValue(<br>&gt; &quot;plugin_related_extract_keywords_from_body&quot; );
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $bannedKeywords = $blogSettings-&gt;getValue(<br>&gt; &quot;plugin_related_banned_keywords&quot; );<br>&gt; @@ -49,6 +50,7 @@<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;setValue( &quot;pluginEnabled&quot;, $pluginEnabled );
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;setValue( &quot;numArticles&quot;, $numArticles );<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;setValue( &quot;minWordLength&quot;, $minWordLength );<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;setValue( &quot;minNumKeywords&quot;, $minNumKeyword );
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;setValue( &quot;interval&quot;, $refreshInterval );<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;setValue( &quot;parseBody&quot;, $parseBody );<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;setValue( &quot;bannedKeywords&quot;, $bannedKeywords
<br>&gt; );<br>&gt; <br>&gt; Modified: plugins/branches/lifetype-1.2/related/locale/locale_en_UK.php<br>&gt; ===================================================================<br>&gt; --- plugins/branches/lifetype-1.2/related/locale/locale_en_UK.php
<br>&gt; 2007-09-10 19:45:42 UTC (rev 5924)<br>&gt; +++ plugins/branches/lifetype-1.2/related/locale/locale_en_UK.php<br>&gt; 2007-09-11 05:09:42 UTC (rev 5925)<br>&gt; @@ -10,12 +10,15 @@<br>&gt;&nbsp;&nbsp;$messages[&quot;related_settings_saved_ok&quot;] = &quot;Related Posts settings saved
<br>&gt; successfully!&quot;;<br>&gt;&nbsp;&nbsp;$messages[&quot;related_missing_num_articles&quot;] = &quot;Number of articles needs to be<br>&gt; specified&quot;;<br>&gt;&nbsp;&nbsp;$messages[&quot;related_invalid_num_articles&quot;] = &quot;Number of articles needs to be
<br>&gt; an integer&quot;;<br>&gt; +$messages[&quot;related_missing_num_keywords&quot;] = &quot;Number of keywords needs to be<br>&gt; specified&quot;;<br>&gt; +$messages[&quot;related_invalid_num_keywords&quot;] = &quot;Number of keywords needs to be
<br>&gt; an integer&quot;;<br>&gt;&nbsp;&nbsp;$messages[&quot;related_missing_min_length&quot;] = &quot;Minimum keyword length needs to<br>&gt; be specified&quot;;<br>&gt;&nbsp;&nbsp;$messages[&quot;related_invalid_min_length&quot;] = &quot;Minumum keyword length needs to
<br>&gt; be an integer&quot;;<br>&gt;&nbsp;&nbsp;$messages[&quot;related_banned_keywords&quot;] = &quot;Keywords that should not be used to<br>&gt; find related posts (comma separated).&quot;;<br>&gt; <br>&gt;&nbsp;&nbsp;$messages[&quot;related_articles&quot;] = &quot;Number of related articles to return.&quot;;
<br>&gt;&nbsp;&nbsp;$messages[&quot;related_word_length&quot;] = &quot;Minimum length of keyword used to<br>&gt; generate related article.&quot;;<br>&gt; +$messages[&quot;related_num_keywords&quot;] = &quot;Minimum number of keywords required to
<br>&gt; determine list of related articles.&quot;;<br>&gt;&nbsp;&nbsp;$messages[&quot;related_cache&quot;] = &quot;Lifetime for the related article cache.&quot;;<br>&gt;&nbsp;&nbsp;$messages[&quot;parse_body&quot;] = &quot;Parse the body of articles to generate keywords.
<br>&gt; (This may cause generating related posts to take longer.)&quot;;<br>&gt; <br>&gt; @@ -24,6 +27,7 @@<br>&gt; <br>&gt;&nbsp;&nbsp;$messages[&quot;related_max_articles&quot;] = &quot;Number Articles&quot;;<br>&gt;&nbsp;&nbsp;$messages[&quot;related_min_word_length&quot;] = &quot;Minimum Keyword Length&quot;;
<br>&gt; +$messages[&quot;related_min_num_keywords&quot;] = &quot;Minimum Number of Keywords&quot;;<br>&gt;&nbsp;&nbsp;$messages[&quot;related_cache_lifetime&quot;] = &quot;Cache Lifetime&quot;;<br>&gt;&nbsp;&nbsp;$messages[&quot;related_parse_body&quot;] = &quot;Parse Body&quot;;
<br>&gt;&nbsp;&nbsp;$messages[&quot;banned_keywords&quot;] = &quot;Banned Keywords&quot;;<br>&gt; <br>&gt; Modified: plugins/branches/lifetype-1.2/related/pluginrelated.class.php<br>&gt; ===================================================================
<br>&gt; --- plugins/branches/lifetype-1.2/related/pluginrelated.class.php<br>&gt; 2007-09-10 19:45:42 UTC (rev 5924)<br>&gt; +++ plugins/branches/lifetype-1.2/related/pluginrelated.class.php<br>&gt; 2007-09-11 05:09:42 UTC (rev 5925)
<br>&gt; @@ -25,10 +25,11 @@<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var $pluginEnabled;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var $numRelatedArticles;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var $minWordLength;<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var $minNumKeywords;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var $refreshInterval;
<br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $cacheFolder;<br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $extractKeywordsFromBody;<br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $bannedWords;<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var $cacheFolder;<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var $extractKeywordsFromBody;<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var $bannedWords;
<br>&gt; <br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function PluginRelated( $source = &quot;&quot; )<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&gt; @@ -38,7 +39,7 @@<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;desc&nbsp;&nbsp;&nbsp;&nbsp;= &quot;The Related plugin will generate a
<br>&gt; list of related posts.&quot;;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;author&nbsp;&nbsp;= &quot;Paul Westbrook&quot;;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;locales = Array( &quot;en_UK&quot; );<br>&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;version = &quot;20070602&quot;;
<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;version = &quot;20070910&quot;;<br>&gt; <br>&gt; <br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if( $source == &quot;admin&quot; )<br>&gt; @@ -62,6 +63,7 @@<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;pluginEnabled = $blogSettings-&gt;getValue(
<br>&gt; &quot;plugin_related_enabled&quot; );<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;numRelatedArticles = $blogSettings-&gt;getValue(<br>&gt; &quot;plugin_related_num_articles&quot; );<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;minWordLength = $blogSettings-&gt;getValue(
<br>&gt; &quot;plugin_related_min_word_length&quot; );<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;minNumKeywords = $blogSettings-&gt;getValue(<br>&gt; &quot;plugin_related_min_num_keywords&quot; );<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;refreshInterval = $blogSettings-&gt;getValue(
<br>&gt; &quot;plugin_related_refresh_interval&quot; );<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;extractKeywordsFromBody =<br>&gt; $blogSettings-&gt;getValue( &quot;plugin_related_extract_keywords_from_body&quot; );<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;bannedWords = $blogSettings-&gt;getValue(
<br>&gt; &quot;plugin_related_banned_keywords&quot; );<br>&gt; @@ -116,8 +118,14 @@<br>&gt; <br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Get the keywords<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$keywords = $this-&gt;getArticleKeywords($article);<br>&gt; +
<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Make sure that there are enough keywords to make<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// generating the list of articles worth while<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($this-&gt;minNumKeywords != &quot;&quot; &amp;&amp; count($keywords) &lt;
<br>&gt; $this-&gt;minNumKeywords) {<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return $relatedArticles;<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&gt; +<br>&gt; <br>&gt; -<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach($keywords as $word) {<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Build the list of articles that have this keyword
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lt_include(<br>&gt; PLOG_CLASS_PATH.&quot;class/dao/searchengine.class.php&quot; );<br>&gt; <br>&gt; Modified: plugins/branches/lifetype-1.2/related/templates/related.template<br>&gt; ===================================================================
<br>&gt; --- plugins/branches/lifetype-1.2/related/templates/related.template<br>&gt; 2007-09-10 19:45:42 UTC (rev 5924)<br>&gt; +++ plugins/branches/lifetype-1.2/related/templates/related.template<br>&gt; 2007-09-11 05:09:42 UTC (rev 5925)
<br>&gt; @@ -35,6 +35,17 @@<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br>&gt; <br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div class=&quot;field&quot;&gt;<br>&gt; +&nbsp;&nbsp; &lt;label for=&quot;width&quot;&gt;{$locale-&gt;tr(&quot;related_min_num_keywords&quot;)}&lt;/label&gt;
<br>&gt; +&nbsp;&nbsp; &lt;span class=&quot;required&quot;&gt;*&lt;/span&gt;<br>&gt; +&nbsp;&nbsp; &lt;div class=&quot;formHelp&quot;&gt;{$locale-&gt;tr(&quot;related_num_keywords&quot;)}&lt;/div&gt;<br>&gt; +&nbsp;&nbsp; &lt;input class=&quot;text&quot; type=&quot;text&quot; name=&quot;minNumKeywords&quot;
<br>&gt; id=&quot;minNumKeywords&quot;<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {user_cannot_override<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; key=plugin_related_min_num_keywords}readonly=&quot;readonly&quot;<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {/user_cannot_override}<br>&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value=&quot;{$minNumKeywords}&quot; width=&quot;10&quot; /&gt;
<br>&gt; +&nbsp;&nbsp;&lt;/div&gt;<br>&gt; +<br>&gt; +&nbsp;&nbsp;&lt;div class=&quot;field&quot;&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label for=&quot;size&quot;&gt;{$locale-&gt;tr(&quot;related_cache_lifetime&quot;)}&lt;/label&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;span class=&quot;required&quot;&gt;*&lt;/span&gt;
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class=&quot;formHelp&quot;&gt;{$locale-&gt;tr(&quot;related_cache&quot;)}&lt;/div&gt;<br>&gt; <br>&gt; _______________________________________________<br>&gt; pLog-svn mailing list<br>&gt; <a href="mailto:pLog-svn@devel.lifetype.net">
pLog-svn@devel.lifetype.net</a><br>&gt; <a href="http://limedaley.com/mailman/listinfo/plog-svn">http://limedaley.com/mailman/listinfo/plog-svn</a><br>&gt; <br>&gt; <br>&gt; _______________________________________________
<br>&gt; pLog-svn mailing list<br>&gt; <a href="mailto:pLog-svn@devel.lifetype.net">pLog-svn@devel.lifetype.net</a><br>&gt; <a href="http://limedaley.com/mailman/listinfo/plog-svn">http://limedaley.com/mailman/listinfo/plog-svn
</a><br>&gt; <br>