Plugin for field 124e
[koha.git] / C4 / Authorities.pm
index 4bf064d..8af184b 100644 (file)
@@ -86,6 +86,7 @@ Note :
 sub newauthority  {
        my ($dbh,$category,$stdlib,$freelib,$father,$level,$hierarchy)=@_;
        exit unless ($stdlib);
+       $level=1 unless $level;
        $freelib = $stdlib unless ($freelib);
        my $dbh = C4::Context->dbh;
        my $sth1b=$dbh->prepare("select id from bibliothesaurus where freelib=? and hierarchy=? and category=?");
@@ -110,7 +111,6 @@ sub newauthority  {
        my $id;
        if ($#Thierarchy >=0) {
                # free form
-               $level='' unless $level;
                $hierarchy='' unless $hierarchy;
                $sth1b->execute($freelib,$hierarchy,$category);
                ($id) = $sth1b->fetchrow;
@@ -121,6 +121,7 @@ sub newauthority  {
                        $Fhierarchy[$#Fhierarchy] =~ s/\s+$// if ($#Fhierarchy>=0);
                        $freelib =~ s/\s+$//;
                        $sth2->execute($category,$Thierarchy[$#Thierarchy],$#Fhierarchy==$#Thierarchy?$Fhierarchy[$#Fhierarchy]:$freelib,$father,$level,$hierarchy);
+               } else {
                }
                # authority form
                $sth1b->execute($Thierarchy[$#Thierarchy],$hierarchy,$category);
@@ -128,9 +129,11 @@ sub newauthority  {
                unless ($id) {
                        $Thierarchy[$#Thierarchy] =~ s/^\s+//;
                        $Thierarchy[$#Thierarchy] =~ s/\s+$//;
-                       $sth2->execute($category,$Thierarchy[$#Thierarchy],$Thierarchy[$#Thierarchy],$father,$level,$hierarchy);
                        $sth1b->execute($stdlib,$hierarchy,$category);
                        ($id) = $sth1b->fetchrow;
+                       unless ($id) {
+                               $sth2->execute($category,$Thierarchy[$#Thierarchy],$Thierarchy[$#Thierarchy],$father,$level,$hierarchy);
+                       }
                }
        }
        return $id;
@@ -189,9 +192,9 @@ sub searchauthority  {
                push(@bind,$searchstring);
                }
 #      $query .= " and freelib like \"$searchstring%\"" if ($searchstring);
-       $query .= " order by category,freelib limit ?,?";
+       $query .= " limit ?,?";
        push(@bind,$offset,($pagesize*4));
-#      warn "q : $query";
+       warn "q : $query".@bind;
        my $sth=$dbh->prepare($query);
        $sth->execute(@bind);
        my @results;
@@ -215,7 +218,7 @@ sub searchauthority  {
        my ($cnt) = $sth->fetchrow;
        $cnt = $pagesize+1 if ($cnt>$pagesize);
        $sth->finish();
-       return ($cnt,\@results);
+       return ($#results,\@results);
 }
 
 =item SearchDeeper