#written 20/02/2002 by paul.poulain@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.
# 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,
});
$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);
}
<!-- TMPL_INCLUDE NAME="doc-head-open.inc" -->
-<title>Koha › System Administration › <!-- TMPL_IF NAME="else" -->Stop words<!-- /TMPL_IF --><!-- TMPL_IF NAME="add_form" --> Stop words › <!-- TMPL_IF NAME="searchfield" -->Modify stop word<!-- TMPL_ELSE -->New stop word<!-- /TMPL_IF --><!-- /TMPL_IF --><!-- TMPL_IF NAME="add_validate" --> Stop words › Data recorded<!-- /TMPL_IF --><!-- TMPL_IF NAME="delete_confirm" --> Stop words › Delete stop word '<!-- TMPL_VAR NAME="searchfield" -->' ?<!-- /TMPL_IF --><!-- TMPL_IF NAME="delete_confirmed" --> Stop words › Data deleted<!-- /TMPL_IF --></title>
+<title>Koha › System Administration › Stop words
+<!-- TMPL_IF NAME="add_form" -->› <!-- TMPL_IF NAME="searchfield" -->Modify<!-- TMPL_ELSE -->New<!-- /TMPL_IF --> stop word
+<!-- TMPL_ELSIF NAME="add_validate" -->› Data recorded
+<!-- TMPL_ELSIF NAME="delete_confirm" -->› Delete stop word '<!-- TMPL_VAR NAME="searchfield" -->' ?
+<!-- TMPL_ELSIF NAME="delete_confirmed" -->› 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> › <a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a> › <!-- TMPL_IF NAME="else" -->Stop Words<!-- /TMPL_IF --><!-- TMPL_IF NAME="add_form" --><a href="/cgi-bin/koha/admin/stopwords.pl">Stop Words</a> › <!-- 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> › Data recorded<!-- /TMPL_IF --><!-- TMPL_IF NAME="delete_confirm" --> <a href="/cgi-bin/koha/admin/stopwords.pl">Stop Words</a> › 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> › Data deleted<!-- /TMPL_IF --></div>
+<div id="breadcrumbs">
+<a href="/cgi-bin/koha/mainpage.pl">Home</a>
+› <a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a>
+› <a href="/cgi-bin/koha/admin/stopwords.pl">Stop Words</a>
+<!-- TMPL_IF NAME="add_form" -->
+ › <!-- TMPL_IF NAME="searchfield" -->Modify<!-- TMPL_ELSE -->New<!-- /TMPL_IF --> Stop Word
+<!-- TMPL_ELSIF NAME="add_validate" -->
+ › Data recorded
+<!-- TMPL_ELSIF NAME="delete_confirm" -->
+ › Delete Stop Word '<!-- TMPL_VAR NAME="searchfield" -->' ?
+<!-- TMPL_ELSIF NAME="delete_confirmed" -->
+ › Data deleted
+<!-- /TMPL_IF -->
+</div>
<div id="doc3" class="yui-t2">
<div class="yui-b">
<!-- TMPL_IF NAME="add_form" -->
-
<!-- TMPL_IF NAME="searchfield" -->
<h1>Modify word</h1>
<!-- TMPL_ELSE -->
<!-- /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 -->
<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" -->
<!-- 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>
<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&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&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" -->"><< Previous</a>
- <!-- /TMPL_IF -->
- <!-- TMPL_IF NAME="ltcount" -->
- <a href="<!-- TMPL_VAR NAME="script_name" -->?offset=<!-- TMPL_VAR NAME="nextpage" -->">Next >></a>
- <!-- /TMPL_iF --></div>
+
+ <div class="pages">
+ <!-- TMPL_IF NAME="offsetgtzero" -->
+ <a href="<!-- TMPL_VAR NAME="script_name" -->?offset=<!-- TMPL_VAR NAME="prevpage" -->"><< Previous</a>
+ <!-- /TMPL_IF -->
+ <!-- TMPL_IF NAME="ltcount" -->
+ <a href="<!-- TMPL_VAR NAME="script_name" -->?offset=<!-- TMPL_VAR NAME="nextpage" -->">Next >></a>
+ <!-- /TMPL_iF -->
+ </div>
<!-- /TMPL_IF -->
</div>