use BSE::Util::HTML;
use base qw(BSE::Util::DynamicTags);
-our $VERSION = "1.005";
+our $VERSION = "1.006";
sub new {
my ($class, $req, %opts) = @_;
$self->{req}->_set_vars();
my $result =
{
- content => BSE::Template->replace($template, $self->{req}->cfg, \%acts, $self->{req}->{vars}),
+ content => BSE::Template->replace($template, $self->{req}->cfg, \%acts, $self->{req}->{vars}, dynamic => 1),
type => BSE::Template->get_type($self->{req}->cfg, $article->{template}),
};
use Carp qw(confess cluck);
use Config ();
-our $VERSION = "1.011";
+our $VERSION = "1.012";
my %formats =
(
$formats{u} = $formats{uri};
sub templater {
- my ($class, $cfg, $rsets) = @_;
+ my ($class, $cfg, $rsets, %opts) = @_;
my @conf_dirs = $class->template_dirs($cfg);
my @dirs;
@dirs = @conf_dirs;
}
- my %opts =
+ my %topts =
(
template_dir => \@dirs,
utf8 => $cfg->utf8,
);
if ($cfg->entry("basic", "cache_templates")) {
require BSE::Cache;
- $opts{cache} = BSE::Cache->load($cfg);
+ $topts{cache} = BSE::Cache->load($cfg);
}
if ($cfg->entry("basic", "cache_templates_locally")) {
- $opts{cache_locally} = 1;
+ $topts{cache_locally} = 1;
}
- $opts{preload} = $cfg->entry("basic", "preload_template");
+ $topts{preload} = $cfg->entry("basic", "preload_template");
+ if ($opts{dynamic}) {
+ $topts{delimiters} =
+ [
+ [ "<:", ":>" ],
+ [ "[:", ":]" ],
+ ];
+ }
- return Squirrel::Template->new(%opts);
+ return Squirrel::Template->new(%topts);
}
sub _get_filename {
}
sub get_page {
- my ($class, $template, $cfg, $acts, $base_template, $rsets, $vars) = @_;
+ my ($class, $template, $cfg, $acts, $base_template, $rsets, $vars, %opts) = @_;
my $file = $class->_get_filename($cfg, $template);
- my $obj = $class->templater($cfg, $rsets);
+ my $obj = $class->templater($cfg, $rsets, %opts);
my $out;
if ($base_template) {
}
sub replace {
- my ($class, $source, $cfg, $acts, $vars) = @_;
+ my ($class, $source, $cfg, $acts, $vars, %opts) = @_;
- my $obj = $class->templater($cfg);
+ my $obj = $class->templater($cfg, undef, %opts);
$obj->replace_template($source, $acts, undef, undef, $vars);
}
}
sub get_response {
- my ($class, $template, $cfg, $acts, $base_template, $rsets, $vars) = @_;
+ my ($class, $template, $cfg, $acts, $base_template, $rsets, $vars, %opts) = @_;
my $content = $class->get_page($template, $cfg, $acts,
- $base_template, $rsets, $vars);
+ $base_template, $rsets, $vars, %opts);
return $class->make_response($content, $class->get_type($cfg, $template));
}
-<:if Search:>
+[:if Search:]
<: if Results:>
<p> <font face="Verdana, Arial, Helvetica, sans-serif" size="2"> <:count:> <:if
Multiple:>documents<:or Multiple:>document<:eif Multiple:> matched your search
<:or Results:>
<p> <font face="Verdana, Arial, Helvetica, sans-serif" size="2"> No documents
were found that matched your search requirements.</font></p>
-<: eif Results:> <:or Search:>
+<: eif Results:> [:or Search:]
<p> <font face="Verdana, Arial, Helvetica, sans-serif" size="2"> All lower case
will search case insensitively, if an upper case character is present in a word
then that word will be searched case sensitively. Results are returned if any
one of the words is found in the document. You can group words using single
or double quotes to find things like "search engine". </font></p>
<p> </p>
-<:eif Search:>
+[:eif Search:]