[Koha-patches] [PATCH] Cleanup stopwords.pl and .tmpl

Joe Atzberger joe.atzberger at liblime.com
Sat Jun 13 00:33:02 CEST 2009


Remove "toggle" code and useless javascript.
Rework "SimpleSearch" to use just one argument.
Remove unnecessary dependencies.
Remove incorrectly pasted comments.
Remove queries that didn't do anything.
Enable warnings.  Use one $dbh.  Remove $sth->finish calls.
---
 admin/stopwords.pl                                 |   94 ++---------
 .../prog/en/modules/admin/stopwords.tmpl           |  181 +++++++++-----------
 2 files changed, 96 insertions(+), 179 deletions(-)

diff --git a/admin/stopwords.pl b/admin/stopwords.pl
index d753085..cf3a4a6 100755
--- a/admin/stopwords.pl
+++ b/admin/stopwords.pl
@@ -4,22 +4,6 @@
 #written 20/02/2002 by paul.poulain at free.fr
 # This software is placed under the gnu General Public License, v2 (http://www.gnu.org/licenses/gpl.html)
 
-# ALGO :
-# this script use an $op to know what to do.
-# if $op is empty or none of the above values,
-#	- the default screen is build (with all records, or filtered datas).
-#	- the   user can clic on add, modify or delete record.
-# if $op=add_form
-#	- if primkey exists, this is a modification,so we read the $primkey record
-#	- builds the add/modify form
-# if $op=add_validate
-#	- the user has just send datas, so we create/modify the record
-# if $op=delete_form
-#	- we show the record having primkey=$primkey and ask for deletion validation form
-# if $op=delete_confirm
-#	- we delete the record having primkey=$primkey
-
-
 # Copyright 2000-2002 Katipo Communications
 #
 # This file is part of Koha.
@@ -38,45 +22,33 @@
 # Suite 330, Boston, MA  02111-1307 USA
 
 use strict;
+use warnings;
 use CGI;
 use C4::Context;
 use C4::Output;
-use C4::Search;
 use C4::Auth;
 
 sub StringSearch  {
-	my ($env,$searchstring,$type)=@_;
-	$searchstring=~ s/\'/\\\'/g;
-	my @data=split(' ',$searchstring);
-	my $count=@data;
 	my $sth = C4::Context->dbh->prepare("
-		SELECT word from stopwords WHERE (word like ?) order by word
+		SELECT word FROM stopwords WHERE (word LIKE ?) ORDER BY word
 	");
-	$sth->execute("$data[0]%");
-	my @results;
-	my $cnt=0;
-	while (my $data=$sth->fetchrow_hashref){
-			push(@results,$data);
-			$cnt ++;
-	}
-	$sth->finish;
-	return ($cnt,\@results);
+	$sth->execute((shift || '') . "%");
+	return $sth->fetchall_arrayref({});
 }
 
 my $input = new CGI;
-my $searchfield=$input->param('searchfield');
-my $offset=$input->param('offset');
-my $script_name="/cgi-bin/koha/admin/stopwords.pl";
+my $searchfield = $input->param('searchfield');
+my $offset      = $input->param('offset') || 0;
+my $script_name = "/cgi-bin/koha/admin/stopwords.pl";
 
-my $pagesize=20;
-my $op = $input->param('op');
-$searchfield=~ s/\,//g;
+my $pagesize = 20;
+my $op = $input->param('op') || '';
 
 my ($template, $loggedinuser, $cookie) 
     = get_template_and_user({template_name => "admin/stopwords.tmpl",
     query => $input,
     type => "intranet",
-    flagsrequired => {parameters => 1, management => 1},
+    flagsrequired => {parameters => 1},
     authnotrequired => 0,
     debug => 1,
     });
@@ -84,69 +56,37 @@ my ($template, $loggedinuser, $cookie)
 $template->param(script_name => $script_name,
 		 searchfield => $searchfield);
 
-
-################## ADD_FORM ##################################
-# called by default. Used to create form to add or  modify a record
+my $dbh = C4::Context->dbh;
 if ($op eq 'add_form') {
 	$template->param(add_form => 1);
-	#---- if primkey exists, it's a modify action, so read values to modify...
-	if ($searchfield) {
-		my $dbh = C4::Context->dbh;
-		my $sth=$dbh->prepare("SELECT word from stopwords where word=?");
-		$sth->execute($searchfield);
-		my $data=$sth->fetchrow_hashref;	# why bother ??
-		$sth->finish;
-	}
-													# END $OP eq ADD_FORM
-################## ADD_VALIDATE ##################################
-# called by add_form, used to insert/modify data in DB
 } elsif ($op eq 'add_validate') {
 	$template->param(add_validate => 1);
-	my $dbh = C4::Context->dbh;
 	my @tab = split / |,/, $input->param('word');
 	my $sth=$dbh->prepare("INSERT INTO stopwords (word) VALUES (?)");
 	foreach my $insert_value (@tab) {
 		$sth->execute($insert_value);
 	}
-	$sth->finish;
-													# END $OP eq ADD_VALIDATE
-################## DELETE_CONFIRM ##################################
-# called by default form, used to confirm deletion of data in DB
 } elsif ($op eq 'delete_confirm') {
 	$template->param(delete_confirm => 1);
-	my $dbh = C4::Context->dbh;
-	my $sth=$dbh->prepare("SELECT word from stopwords where word=?");
-	$sth->execute($searchfield);
-	my $data=$sth->fetchrow_hashref;		# why bother ?
-	$sth->finish;
-													# END $OP eq DELETE_CONFIRM
-################## DELETE_CONFIRMED ##################################
-# called by delete_confirm, used to effectively confirm deletion of data in DB
 } elsif ($op eq 'delete_confirmed') {
 	$template->param(delete_confirmed => 1);
-	my $dbh = C4::Context->dbh;
 	my $sth=$dbh->prepare("delete from stopwords where word=?");
 	$sth->execute($searchfield);
-	$sth->finish;
-													# END $OP eq DELETE_CONFIRMED
-################## DEFAULT ##################################
 } else { # DEFAULT
 	$template->param(else => 1);
-
-	my $env;
-	my ($count,$results)=StringSearch($env,$searchfield,'web');
+    my $results = StringSearch($searchfield);
+    my $count = scalar(@$results);
 	my @loop;
+    # FIXME: limit and offset should get to the SQL query
 	for (my $i=$offset; $i < ($offset+$pagesize<$count?$offset+$pagesize:$count); $i++){
-		my %row = (word => $results->[$i]{'word'});
-		push @loop, \%row;
+		push @loop, {word => $results->[$i]{'word'}};
 	}
 	$template->param(loop => \@loop);
-
-	if ($offset>0) {
+	if ($offset > 0) {
 		$template->param(offsetgtzero => 1,
 				 prevpage => $offset-$pagesize);
 	}
-	if ($offset+$pagesize<$count) {
+	if ($offset+$pagesize < scalar(@$results)) {
 		$template->param(ltcount => 1,
 				 nextpage => $offset+$pagesize);
 	}
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/stopwords.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/stopwords.tmpl
index 5c0f821..d03f871 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/stopwords.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/stopwords.tmpl
@@ -1,65 +1,50 @@
 <!-- TMPL_INCLUDE NAME="doc-head-open.inc" -->
-<title>Koha &rsaquo; System Administration &rsaquo; <!-- TMPL_IF NAME="else" -->Stop words<!-- /TMPL_IF --><!-- TMPL_IF NAME="add_form" --> Stop words &rsaquo; <!-- TMPL_IF NAME="searchfield" -->Modify stop word<!-- TMPL_ELSE -->New stop word<!-- /TMPL_IF --><!-- /TMPL_IF --><!-- TMPL_IF NAME="add_validate" --> Stop words &rsaquo; Data recorded<!-- /TMPL_IF --><!-- TMPL_IF NAME="delete_confirm" --> Stop words &rsaquo; Delete stop word '<!-- TMPL_VAR NAME="searchfield" -->' ?<!-- /TMPL_IF --><!-- TMPL_IF NAME="delete_confirmed" --> Stop words &rsaquo; Data deleted<!-- /TMPL_IF --></title>
+<title>Koha &rsaquo; System Administration &rsaquo; Stop words
+<!-- TMPL_IF NAME="add_form"            -->&rsaquo; <!-- TMPL_IF NAME="searchfield" -->Modify<!-- TMPL_ELSE -->New<!-- /TMPL_IF --> stop word
+<!-- TMPL_ELSIF NAME="add_validate"     -->&rsaquo; Data recorded
+<!-- TMPL_ELSIF NAME="delete_confirm"   -->&rsaquo; Delete stop word '<!-- TMPL_VAR NAME="searchfield" -->' ?
+<!-- TMPL_ELSIF NAME="delete_confirmed" -->&rsaquo; Data deleted
+<!-- /TMPL_IF -->
+</title>
 <!-- TMPL_INCLUDE NAME="doc-head-close.inc" -->
-<!-- TMPL_IF NAME="add_form" -->
-        <script language="javascript" type="text/javascript">
-		//<![CDATA[
-            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-            function isNotNull(f,noalert) {
-                if (f.value.length ==0) {
-                    return false;
-                }
-                return true;
-            }
-            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-            function toUC(f) {
-                var x=f.value.toUpperCase();
-                f.value=x;
-                return true;
-            }
-            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-            function isNum(v,maybenull) {
-            var n = new Number(v.value);
-            if (isNaN(n)) {
-                return false;
-            }
-            if (maybenull==0 && v.value=='') {
-                return false;
-            }
-            return true;
-            }
-            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-            function isDate(f) {
-                var t = Date.parse(f.value);
-                if (isNaN(t)) {
-                    return false;
-                }
-            }
-            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-            function Check(f) {
-                var ok=1;
-                var _alertString="";
-                var alertString2;
-                if (f.word.value.length==0) {
-                    _alertString += "\n- " + _("word missing");
-                }
-                if (_alertString.length==0) {
-                    document.Aform.submit();
-                } else {
-                    alertString2  = _("Form not submitted because of the following problem(s)");
-                    alertString2 += "\n------------------------------------------------------------------------------------\n";
-                    alertString2 += _alertString;
-                    alert(alertString2);
-                }
-            }  //]]>
-        </script>
-	<!-- /TMPL_IF -->
+<script language="javascript" type="text/javascript">
+//<![CDATA[
+    $(document).ready(function() {
+        new YAHOO.widget.Button("newstopword");
+    });
+    function toUC(f) {
+        var x=f.value.toUpperCase();
+        f.value=x;
+        return true;
+    }
+    function Check(f) {
+        if (f.word.value.length==0) {
+            alert("Form not submitted: word missing");
+        } else {
+            document.Aform.submit();
+        }
+    }
+//]]>
+</script>
 </head>
 <body>
 <!-- TMPL_INCLUDE NAME="header.inc" -->
 <!-- TMPL_INCLUDE NAME="stopwords-admin-search.inc" -->
 
-<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a> &rsaquo; <!-- TMPL_IF NAME="else" -->Stop Words<!-- /TMPL_IF --><!-- TMPL_IF NAME="add_form" --><a href="/cgi-bin/koha/admin/stopwords.pl">Stop Words</a> &rsaquo; <!-- TMPL_IF NAME="searchfield" -->Modify Stop Word<!-- TMPL_ELSE -->New Stop Word<!-- /TMPL_IF --><!-- /TMPL_IF --><!-- TMPL_IF NAME="add_validate" --> <a href="/cgi-bin/koha/admin/stopwords.pl">Stop Words</a> &rsaquo; Data recorded<!-- /TMPL_IF --><!-- TMPL_IF NAME="delete_confirm" --> <a href="/cgi-bin/koha/admin/stopwords.pl">Stop Words</a> &rsaquo; Delete Stop Word '<!-- TMPL_VAR NAME="searchfield" -->' ?<!-- /TMPL_IF --><!-- TMPL_IF NAME="delete_confirmed" --> <a href="/cgi-bin/koha/admin/stopwords.pl">Stop Words</a> &rsaquo; Data deleted<!-- /TMPL_IF --></div>
+<div id="breadcrumbs">
+<a href="/cgi-bin/koha/mainpage.pl">Home</a>
+&rsaquo; <a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a>
+&rsaquo; <a href="/cgi-bin/koha/admin/stopwords.pl">Stop Words</a>
+<!-- TMPL_IF NAME="add_form" -->
+    &rsaquo; <!-- TMPL_IF NAME="searchfield" -->Modify<!-- TMPL_ELSE -->New<!-- /TMPL_IF --> Stop Word
+<!-- TMPL_ELSIF NAME="add_validate" -->
+    &rsaquo; Data recorded
+<!-- TMPL_ELSIF NAME="delete_confirm" -->
+    &rsaquo; Delete Stop Word '<!-- TMPL_VAR NAME="searchfield" -->' ?
+<!-- TMPL_ELSIF NAME="delete_confirmed" -->
+    &rsaquo; Data deleted
+<!-- /TMPL_IF -->
+</div>
 
 <div id="doc3" class="yui-t2">
    
@@ -68,7 +53,6 @@
 	<div class="yui-b">
 
 <!-- TMPL_IF NAME="add_form" -->
-        
         <!-- TMPL_IF NAME="searchfield" -->
             <h1>Modify word</h1>
         <!-- TMPL_ELSE -->
@@ -76,19 +60,21 @@
         <!-- /TMPL_IF -->
         <form action="<!-- TMPL_VAR NAME="script_name" -->" name="Aform" method="post">
             <input type="hidden" name="op" value="add_validate" />
-         <fieldset class="rows">  <ol> <!-- TMPL_IF NAME="searchfield" -->
-                <li>
-                    <span class="label">Word</span>
-                        <input type="hidden" name="word" value="<!-- TMPL_VAR NAME="searchfield" -->" /><!-- TMPL_VAR NAME="searchfield" -->
-                </li>
+            <fieldset class="rows">
+            <ol><li>
+            <!-- TMPL_IF NAME="searchfield" -->
+                <span class="label">Word</span>
+                    <input type="hidden" name="word" value="<!-- TMPL_VAR NAME="searchfield" -->" /><!-- TMPL_VAR NAME="searchfield" -->
             <!-- TMPL_ELSE -->
-                <li>
-                    <label for="word">Word</label>
-                    <input type="text" name="word" id="word" size="50" maxlength="250" onblur="toUC(this)" />
+                <label for="word">Word</label>
+                <input type="text" name="word" id="word" size="50" maxlength="250" onblur="toUC(this)" />
+            <!-- /TMPL_IF -->
                 </li>
-            <!-- /TMPL_IF --></ol></fieldset>
+            </ol>
+            </fieldset>
             <fieldset class="action">
-                <input type="button" value="Save" onclick="Check(this.form)" /> <a class="cancel" href="/cgi-bin/koha/admin/stopwords.pl">Cancel</a>
+                <input type="button" value="Save" onclick="Check(this.form)" />
+                <a class="cancel" href="/cgi-bin/koha/admin/stopwords.pl">Cancel</a>
             </fieldset>
         </form>
 <!-- /TMPL_IF -->
@@ -104,10 +90,13 @@
     <div class="dialog alert">
 	<h3>Delete Stop Word <span class="ex">'<!-- TMPL_VAR NAME="searchfield" -->'</span></h3>
 	<form action="<!-- TMPL_VAR NAME="script_name" -->" method="post">
-       <input type="hidden" name="op" value="delete_confirmed" />
+        <input type="hidden" name="op" value="delete_confirmed" />
         <input type="hidden" name="searchfield" value="<!-- TMPL_VAR NAME="searchfield" -->" />
-       <input type="submit" value="Yes, Delete" class="approve" /></form>
-	   <form action="<!-- TMPL_VAR NAME="script_name" -->" method="get"><input type="submit" class="deny" value="No, Do Not Delete" /> </form></div>
+        <input type="submit" value="Yes, Delete" class="approve" />
+    </form>
+    <form action="<!-- TMPL_VAR NAME="script_name" -->" method="get">
+        <input type="submit" class="deny" value="No, Do Not Delete" />
+    </form></div>
 <!-- /TMPL_IF -->
 
 <!-- TMPL_IF NAME="delete_confirmed" -->
@@ -120,17 +109,6 @@
 <!-- TMPL_IF NAME="else" -->
 
 <div id="toolbar">
-	<script type="text/javascript">
-	//<![CDATA[
-	// prepare DOM for YUI Toolbar
-	 $(document).ready(function() {
-	    yuiToolbar();
-	 });
-	// YUI Toolbar Functions
-	function yuiToolbar() {
-	    new YAHOO.widget.Button("newstopword");
-	}	//]]>
-	</script>
 	<ul class="toolbar">
 	<li><a id="newstopword" href="/cgi-bin/koha/admin/stopwords.pl?op=add_form">New Stop Word</a></li>
 </ul></div>
@@ -138,33 +116,32 @@
     <h1>Stop Words</h1>
     <p class="message">NOTE : if you change something in this table, ask your administrator to run misc/rebuildnonmarc.pl script.</p>
 
-
     <!-- TMPL_IF NAME="searchfield" -->
-                    You searched for <b><!-- TMPL_VAR NAME="searchfield" --></b>
+        <p>You searched for <b><!-- TMPL_VAR NAME="searchfield" --></b></p>
     <!-- /TMPL_IF -->
 
     <table>
-            <tr>
-                    <th>Word</th>
-                    <th> </th>
-            </tr>
-            <!-- TMPL_LOOP NAME="loop" -->
-               <!-- TMPL_UNLESS NAME="__odd__" -->
-                    <tr class="highlight">
-               <!-- TMPL_ELSE -->
-                    <tr>
-               <!-- /TMPL_IF -->
-                    <td><!-- TMPL_VAR NAME="word" --></td>
-                    <td><a href="<!-- TMPL_VAR NAME="script_name" -->?op=delete_confirm&amp;searchfield=<!-- TMPL_VAR NAME="word" -->">Delete</a></td>
-                </tr>
-            <!-- /TMPL_LOOP -->
+        <tr><th>Word</th>
+            <th></th>
+        </tr>
+        <!-- TMPL_LOOP NAME="loop" -->
+           <!-- TMPL_IF NAME="__odd__" --><tr>
+           <!-- TMPL_ELSE --><tr class="highlight">
+           <!-- /TMPL_IF -->
+            <td><!-- TMPL_VAR NAME="word" --></td>
+            <td><a href="<!-- TMPL_VAR NAME="script_name" -->?op=delete_confirm&amp;searchfield=<!-- TMPL_VAR NAME="word" -->">Delete</a></td>
+        </tr>
+        <!-- /TMPL_LOOP -->
     </table>
-           <div class="pages"> <!-- TMPL_IF NAME="offsetgtzero" -->
-                <a href="<!-- TMPL_VAR NAME="script_name" -->?offset=<!-- TMPL_VAR NAME="prevpage" -->">&lt;&lt; Previous</a>
-            <!-- /TMPL_IF -->
-            <!-- TMPL_IF NAME="ltcount" -->
-                <a href="<!-- TMPL_VAR NAME="script_name" -->?offset=<!-- TMPL_VAR NAME="nextpage" -->">Next &gt;&gt;</a>
-            <!-- /TMPL_iF --></div>
+
+    <div class="pages">
+        <!-- TMPL_IF NAME="offsetgtzero" -->
+            <a href="<!-- TMPL_VAR NAME="script_name" -->?offset=<!-- TMPL_VAR NAME="prevpage" -->">&lt;&lt; Previous</a>
+        <!-- /TMPL_IF -->
+        <!-- TMPL_IF NAME="ltcount" -->
+            <a href="<!-- TMPL_VAR NAME="script_name" -->?offset=<!-- TMPL_VAR NAME="nextpage" -->">Next &gt;&gt;</a>
+        <!-- /TMPL_iF -->
+    </div>
 <!-- /TMPL_IF -->
 
 </div>
-- 
1.5.6.5




More information about the Koha-patches mailing list