);
my $page_id = $query->param('page_id');
+my $code = $query->param('code');
my $page;
-if (defined $page_id){
- $page = Koha::AdditionalContents->search({ idnew => $page_id, location => ['opac_only', 'staff_and_opac'] });
- if ( $page->count > 0){
- $template->param( page => $page->next );
- } else {
- $template->param( page_error => 1 );
- }
+my $homebranch = $ENV{OPAC_BRANCH_DEFAULT};
+if (C4::Context->userenv) {
+ $homebranch = C4::Context->userenv->{'branch'};
+}
+
+if( $page_id ) {
+ $page = Koha::AdditionalContents->search({ idnew => $page_id, location => ['opac_only', 'staff_and_opac'], branchcode => [ $homebranch, undef ] });
+} elsif( $code ) {
+ my $lang = $query->param('language') || $query->cookie('KohaOpacLanguage');
+ # In the next query we make sure that the 'default' records come after the regular languages
+ $page = Koha::AdditionalContents->search({ code => $code, lang => ['default', $lang], location => ['opac_only', 'staff_and_opac'], branchcode => [ $homebranch, undef ] }, { order_by => { -desc => \[ 'CASE WHEN lang="default" THEN "" ELSE lang END' ]}} );
}
+$template->param( $page && $page->count ? ( page => $page->next ) : ( page_error => 1 ) );
output_html_with_http_headers $query, $cookie, $template->output;