| 
      
            Lines 370-375
          sub new {
      
      
        Link Here
      
     | 
  
        
          | 370 | 
              $self->{"activeuser"} = undef;        # current active user | 
          370 | 
              $self->{"activeuser"} = undef;        # current active user | 
        
        
          | 371 | 
              $self->{"shelves"} = undef; | 
          371 | 
              $self->{"shelves"} = undef; | 
        
        
          | 372 | 
              $self->{tz} = undef; # local timezone object | 
          372 | 
              $self->{tz} = undef; # local timezone object | 
        
            
               | 
               | 
              373 | 
                  $self->{sysprefs} = {}; | 
            
        
          | 373 | 
           | 
          374 | 
           | 
        
        
          | 374 | 
              bless $self, $class;  | 
          375 | 
              bless $self, $class;  | 
        
        
          | 375 | 
              $self->{db_driver} = db_scheme2dbi($self->config('db_scheme'));  # cache database driver | 
          376 | 
              $self->{db_driver} = db_scheme2dbi($self->config('db_scheme'));  # cache database driver | 
        
  
    | 
      
            Lines 505-511
          with this method.
      
      
        Link Here
      
     | 
  
        
          | 505 | 
          =cut  | 
          506 | 
          =cut  | 
        
        
          | 506 | 
           | 
          507 | 
           | 
        
        
          | 507 | 
          my $syspref_cache = Koha::Cache->get_instance();  | 
          508 | 
          my $syspref_cache = Koha::Cache->get_instance();  | 
        
            
              | 508 | 
              my %syspref_L1_cache;  | 
               | 
               | 
            
        
          | 509 | 
          my $use_syspref_cache = 1;  | 
          509 | 
          my $use_syspref_cache = 1;  | 
        
        
          | 510 | 
          sub preference { | 
          510 | 
          sub preference { | 
        
        
          | 511 | 
              my $self = shift;  | 
          511 | 
              my $self = shift;  | 
        
  
    | 
      
            Lines 513-522
          sub preference {
      
      
        Link Here
      
     | 
  
        
          | 513 | 
           | 
          513 | 
           | 
        
        
          | 514 | 
              $var = lc $var;  | 
          514 | 
              $var = lc $var;  | 
        
        
          | 515 | 
           | 
          515 | 
           | 
        
          
            
              | 516 | 
                  # Return the value if the var has already been accessed  | 
              516 | 
                  $self = $context unless ref $self;  | 
            
            
              | 517 | 
                  if ($use_syspref_cache && exists $syspref_L1_cache{$var}) { | 
              517 | 
               | 
            
            
              | 518 | 
                      return $syspref_L1_cache{$var}; | 
              518 | 
                  return $self->{sysprefs}{$var} if $use_syspref_cache && $self && exists $self->{sysprefs}{$var}; | 
            
            
              | 519 | 
                  }  | 
               | 
               | 
            
        
          | 520 | 
           | 
          519 | 
           | 
        
        
          | 521 | 
              my $cached_var = $use_syspref_cache  | 
          520 | 
              my $cached_var = $use_syspref_cache  | 
        
        
          | 522 | 
                  ? $syspref_cache->get_from_cache("syspref_$var") | 
          521 | 
                  ? $syspref_cache->get_from_cache("syspref_$var") | 
        
  
    | 
      
            Lines 526-540
          sub preference {
      
      
        Link Here
      
     | 
  
        
          | 526 | 
              my $value;  | 
          525 | 
              my $value;  | 
        
        
          | 527 | 
              if ( defined $ENV{"OVERRIDE_SYSPREF_$var"} ) { | 
          526 | 
              if ( defined $ENV{"OVERRIDE_SYSPREF_$var"} ) { | 
        
        
          | 528 | 
                  $value = $ENV{"OVERRIDE_SYSPREF_$var"}; | 
          527 | 
                  $value = $ENV{"OVERRIDE_SYSPREF_$var"}; | 
        
          
            
              | 529 | 
                  } else { | 
              528 | 
                  } elsif ( my $syspref = Koha::Config::SysPrefs->find( $var ) ) { | 
            
            
              | 530 | 
                      my $syspref;  | 
              529 | 
                      $value = $syspref->value();  | 
            
            
              | 531 | 
                      eval { $syspref = Koha::Config::SysPrefs->find( lc $var ) }; | 
               | 
               | 
            
            
              | 532 | 
                      $value = $syspref ? $syspref->value() : undef;  | 
            
        
          | 533 | 
              }  | 
          530 | 
              }  | 
        
        
          | 534 | 
           | 
          531 | 
           | 
        
        
          | 535 | 
              if ( $use_syspref_cache ) { | 
          532 | 
              if ( $use_syspref_cache ) { | 
        
        
          | 536 | 
                  $syspref_cache->set_in_cache("syspref_$var", $value); | 
          533 | 
                  $syspref_cache->set_in_cache("syspref_$var", $value); | 
        
          
            
              | 537 | 
                      $syspref_L1_cache{$var} = $value; | 
              534 | 
                      $self->{sysprefs}{$var} = $value if $self; | 
            
        
          | 538 | 
              }  | 
          535 | 
              }  | 
        
        
          | 539 | 
              return $value;  | 
          536 | 
              return $value;  | 
        
        
          | 540 | 
          }  | 
          537 | 
          }  | 
        
  
    | 
      
            Lines 588-600
          will not be seen by this process.
      
      
        Link Here
      
     | 
  
        
          | 588 | 
          =cut  | 
          585 | 
          =cut  | 
        
        
          | 589 | 
           | 
          586 | 
           | 
        
        
          | 590 | 
          sub clear_syspref_cache { | 
          587 | 
          sub clear_syspref_cache { | 
        
            
               | 
               | 
              588 | 
                  my ($self) = @_;  | 
            
            
              | 589 | 
               | 
            
            
              | 590 | 
                  $self = $context unless ref $self;  | 
            
            
              | 591 | 
               | 
            
        
          | 591 | 
              return unless $use_syspref_cache;  | 
          592 | 
              return unless $use_syspref_cache;  | 
        
            
              | 592 | 
                  $syspref_cache->flush_all;  | 
               | 
               | 
            
            
              | 593 | 
                  clear_syspref_L1_cache()  | 
            
            
              | 594 | 
              }  | 
            
        
          | 595 | 
           | 
          593 | 
           | 
        
          
            
              | 596 | 
              sub clear_syspref_L1_cache { | 
              594 | 
                  $syspref_cache->flush_all;  | 
            
            
              | 597 | 
                  %syspref_L1_cache = ();  | 
              595 | 
                  $self->{sysprefs} = {} if $self; | 
            
        
          | 598 | 
          }  | 
          596 | 
          }  | 
        
        
          | 599 | 
           | 
          597 | 
           | 
        
        
          | 600 | 
          =head2 set_preference  | 
          598 | 
          =head2 set_preference  | 
        
  
    | 
      
            Lines 613-618
          sub set_preference {
      
      
        Link Here
      
     | 
  
        
          | 613 | 
           | 
          611 | 
           | 
        
        
          | 614 | 
              $variable = lc $variable;  | 
          612 | 
              $variable = lc $variable;  | 
        
        
          | 615 | 
           | 
          613 | 
           | 
        
            
               | 
               | 
              614 | 
                  $self = $context unless ref $self;  | 
            
            
              | 615 | 
               | 
            
        
          | 616 | 
              my $syspref = Koha::Config::SysPrefs->find($variable);  | 
          616 | 
              my $syspref = Koha::Config::SysPrefs->find($variable);  | 
        
        
          | 617 | 
              $type =  | 
          617 | 
              $type =  | 
        
        
          | 618 | 
                  $type    ? $type  | 
          618 | 
                  $type    ? $type  | 
        
  
    | 
      
            Lines 647-653
          sub set_preference {
      
      
        Link Here
      
     | 
  
        
          | 647 | 
           | 
          647 | 
           | 
        
        
          | 648 | 
              if ( $use_syspref_cache ) { | 
          648 | 
              if ( $use_syspref_cache ) { | 
        
        
          | 649 | 
                  $syspref_cache->set_in_cache( "syspref_$variable", $value );  | 
          649 | 
                  $syspref_cache->set_in_cache( "syspref_$variable", $value );  | 
        
          
            
              | 650 | 
                      $syspref_L1_cache{$variable} = $value; | 
              650 | 
                      $self->{sysprefs}{$variable} = $value if $self; | 
            
        
          | 651 | 
              }  | 
          651 | 
              }  | 
        
        
          | 652 | 
           | 
          652 | 
           | 
        
        
          | 653 | 
              return $syspref;  | 
          653 | 
              return $syspref;  | 
        
  
    | 
      
            Lines 666-675
          was no syspref of the name.
      
      
        Link Here
      
     | 
  
        
          | 666 | 
          sub delete_preference { | 
          666 | 
          sub delete_preference { | 
        
        
          | 667 | 
              my ( $self, $var ) = @_;  | 
          667 | 
              my ( $self, $var ) = @_;  | 
        
        
          | 668 | 
           | 
          668 | 
           | 
        
            
               | 
               | 
              669 | 
                  $self = $context unless ref $self;  | 
            
            
              | 670 | 
               | 
            
        
          | 669 | 
              if ( Koha::Config::SysPrefs->find( $var )->delete ) { | 
          671 | 
              if ( Koha::Config::SysPrefs->find( $var )->delete ) { | 
        
        
          | 670 | 
                  if ( $use_syspref_cache ) { | 
          672 | 
                  if ( $use_syspref_cache ) { | 
        
        
          | 671 | 
                      $syspref_cache->clear_from_cache("syspref_$var"); | 
          673 | 
                      $syspref_cache->clear_from_cache("syspref_$var"); | 
        
          
            
              | 672 | 
                          delete $syspref_L1_cache{$var}; | 
              674 | 
                          delete $self->{sysprefs}{$var} if $self; | 
            
        
          | 673 | 
                  }  | 
          675 | 
                  }  | 
        
        
          | 674 | 
           | 
          676 | 
           | 
        
        
          | 675 | 
                  return 1;  | 
          677 | 
                  return 1;  |