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

Kyle Hall kyle.m.hall at gmail.com
Fri Mar 14 14:42:13 CET 2008


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'},





More information about the Koha-cvs mailing list