koha-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Koha-cvs] koha readingrec.pl [dev_week]


From: Kyle Hall
Subject: [Koha-cvs] koha readingrec.pl [dev_week]
Date: Fri, 14 Mar 2008 13:42:13 +0000

CVSROOT:        /sources/koha
Module name:    koha
Branch:         dev_week
Changes by:     Kyle Hall <kylemhall>   08/03/14 13:42:13

Modified files:
        .              : readingrec.pl 

Log message:
        Reading record sorting by title now ignores stopwords.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/readingrec.pl?cvsroot=koha&only_with_tag=dev_week&r1=1.12.2.5.2.3&r2=1.12.2.5.2.4

Patches:
Index: readingrec.pl
===================================================================
RCS file: /sources/koha/koha/Attic/readingrec.pl,v
retrieving revision 1.12.2.5.2.3
retrieving revision 1.12.2.5.2.4
diff -u -b -r1.12.2.5.2.3 -r1.12.2.5.2.4
--- readingrec.pl       31 May 2007 12:48:52 -0000      1.12.2.5.2.3
+++ readingrec.pl       14 Mar 2008 13:42:13 -0000      1.12.2.5.2.4
@@ -22,6 +22,8 @@
 # Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
 # Suite 330, Boston, MA  02111-1307 USA
 
+use Data::Dumper;
+
 use strict;
 use C4::Auth;
 use C4::Output;
@@ -47,9 +49,10 @@
 } else {
   $limit=50;
 }
-my ($count,$issues)=allissues($bornum,$order2,$limit);
 
-my ($template, $loggedinuser, $cookie)
+my ( $count, $issues ) = allissues( $bornum, $order2, $limit );
+
+my ( $template, $loggedinuser, $cookie )
 = get_template_and_user({template_name => "members/readingrec.tmpl",
                                query => $input,
                                type => "intranet",
@@ -60,30 +63,49 @@
 
 my @loop_reading;
 
+my $stopwords = C4::Context->stopwords;
+
 for (my $i=0;$i<$count;$i++){
        my %line;
        if($i%2){
                $line{'toggle'} = 1;
        }
-       $line{biblionumber}=$issues->[$i]->{'biblionumber'};
-       $line{title}=$issues->[$i]->{'title'};
-       $line{author}=$issues->[$i]->{'author'};
+       $line{biblionumber} = $issues->[$i]->{'biblionumber'};
+       $line{title} = $issues->[$i]->{'title'};
+       $line{author} = $issues->[$i]->{'author'};
        $line{classification} = $issues->[$i]->{'classification'};
-       $line{date_due}=format_date($issues->[$i]->{'date_due'});
-       $line{issue_date}=format_date($issues->[$i]->{'issue_date'});
-       $line{returndate}=format_date($issues->[$i]->{'returndate'});
-       $line{volumeddesc}=$issues->[$i]->{'volumeddesc'};
-       $line{volume} =$issues->[$i]->{'volume'};
-       $line{publicationyear} =$issues->[$i]->{'publicationyear'};
-       $line{publishercode} =$issues->[$i]->{'publishercode'};
-       $line{place} =$issues->[$i]->{'place'};
-       $line{pages} =$issues->[$i]->{'pages'};
-       $line{size} =$issues->[$i]->{'size'};
-       $line{description} =$issues->[$i]->{'description'};
-       $line{itemcallnumber}=$issues->[$i]->{'itemcallnumber'};
+       $line{date_due} = format_date($issues->[$i]->{'date_due'});
+       $line{issue_date} = format_date($issues->[$i]->{'issue_date'});
+       $line{returndate} = format_date($issues->[$i]->{'returndate'});
+       $line{volumeddesc} = $issues->[$i]->{'volumeddesc'};
+       $line{volume} = $issues->[$i]->{'volume'};
+       $line{publicationyear} = $issues->[$i]->{'publicationyear'};
+       $line{publishercode} = $issues->[$i]->{'publishercode'};
+       $line{place} = $issues->[$i]->{'place'};
+       $line{pages} = $issues->[$i]->{'pages'};
+       $line{size} = $issues->[$i]->{'size'};
+       $line{description} = $issues->[$i]->{'description'};
+       $line{itemcallnumber} = $issues->[$i]->{'itemcallnumber'};
+
+       if ( $order2 =~ m/title/ ) { ## If we are sorting by 'title'
+               ## Need to sort ignoring stopwords, create 'titlesort' which is 
the title without any stopwords
+               $line{titlesort} = uc( $issues->[$i]->{'title'} ); ## Stopwords 
are all uppercase
+               my ( $key, $value );
+               while ( ( $key, $value ) = each( %$stopwords ) ) {
+                       if ( $line{titlesort} =~ m/^$key / ) { ## space after 
$key make sure its not the beginning of a different word
+                               $line{titlesort} = substr( $line{titlesort}, 
length( $key ) );
+                       }
+               }
+       }
+               
        push(@loop_reading,\%line);
 }
 
+## resort @loop_reading based on 'titlesort' instead of 'title' if being 
sorted by title
+if ( $order2 =~ m/title/ ) {
+       @loop_reading = sort { $a->{titlesort} cmp $b->{titlesort} } 
@loop_reading;
+}
+
 $template->param(
                                                biblionumber => 
$data->{'biblionumber'},
                                                title => $data->{'title'},




reply via email to

[Prev in Thread] Current Thread [Next in Thread]