View | Details | Raw Unified | Return to bug 11944
Collapse All | Expand All

(-)a/C4/Templates.pm (-41 / +1 lines)
Lines 112-130 sub output { Link Here
112
        C4::Context->preference('opaclayoutstylesheet');
112
        C4::Context->preference('opaclayoutstylesheet');
113
113
114
    # add variables set via param to $vars for processing
114
    # add variables set via param to $vars for processing
115
    # and clean any utf8 mess
116
    for my $k ( keys %{ $self->{VARS} } ) {
115
    for my $k ( keys %{ $self->{VARS} } ) {
117
        $vars->{$k} = $self->{VARS}->{$k};
116
        $vars->{$k} = $self->{VARS}->{$k};
118
        if (ref($vars->{$k}) eq 'ARRAY'){
119
            utf8_arrayref($vars->{$k});
120
        }
121
        elsif (ref($vars->{$k}) eq 'HASH'){
122
            utf8_hashref($vars->{$k});
123
        }
124
        else {
125
            utf8::encode($vars->{$k}) if utf8::is_utf8($vars->{$k});
126
        }
127
    }
117
    }
118
128
    my $data;
119
    my $data;
129
    binmode( STDOUT, ":utf8" );
120
    binmode( STDOUT, ":utf8" );
130
    $template->process( $self->filename, $vars, \$data )
121
    $template->process( $self->filename, $vars, \$data )
Lines 132-167 sub output { Link Here
132
    return $data;
123
    return $data;
133
}
124
}
134
125
135
sub utf8_arrayref {
136
    my $arrayref = shift;
137
    foreach my $element (@$arrayref){
138
        if (ref($element) eq 'ARRAY'){
139
            utf8_arrayref($element);
140
            next;
141
        }
142
        if (ref($element) eq 'HASH'){
143
            utf8_hashref($element);
144
            next;
145
        }
146
        utf8::encode($element) if utf8::is_utf8($element);
147
    }        
148
}         
149
150
sub utf8_hashref {
151
    my $hashref = shift;
152
    for my $key (keys %{$hashref}){
153
        if (ref($hashref->{$key}) eq 'ARRAY'){
154
            utf8_arrayref($hashref->{$key});
155
            next;
156
        }
157
        if (ref($hashref->{$key}) eq 'HASH'){
158
            utf8_hashref($hashref->{$key});
159
            next;
160
        }
161
        utf8::encode($hashref->{$key}) if utf8::is_utf8($hashref->{$key});
162
    }
163
}
164
165
# wrapper method to allow easier transition from HTML template pro to Template Toolkit
126
# wrapper method to allow easier transition from HTML template pro to Template Toolkit
166
sub param {
127
sub param {
167
    my $self = shift;
128
    my $self = shift;
168
- 

Return to bug 11944