add support for $base/../templates/
authorJulien Moutinho <julm@autogeree.net>
Thu, 27 Mar 2014 11:32:45 +0000 (12:32 +0100)
committerJulien Moutinho <julm+ikiwiki+newevent@autogeree.net>
Thu, 27 Mar 2014 11:33:59 +0000 (12:33 +0100)
newevent.pm

index 497ea9c..ec34b72 100644 (file)
@@ -38,6 +38,12 @@ sub getsetup () {
                 }
         );
  }
+sub tmpl ($$) {
+       my ($base, $model) = @_;
+       my $page = IkiWiki::dirname($base).'/'.'templates/'.$model;
+       my $file = defined srcfile($page, 1) ? '/'.$page : $model;
+       return template($file);
+ }
 sub date_of_form ($$;%) {
        my ($form, $prefix, %default) = @_;
        %default =
@@ -294,10 +300,10 @@ sub sessioncgi ($$) {
                                 }
                         }
                 );
+               $base = $form->field('base') ? $form->field('base') : $base;
                $form->title(sprintf(gettext("creating new events"), pagetitle(IkiWiki::basename($page))));
                $form->field(name => "do", type => "hidden", value => 'newevent', force => 1);
-               $form->field(name => "base", type => "hidden", force => 1
-                , value => ($form->field('base') ? $form->field('base') : $base));
+               $form->field(name => "base", type => "hidden", force => 1 , value => $base);
                $form->field(name => "from_date", type => "hidden", value => '1', force => 1);
                $form->field(name => "to_date", type => "hidden", value => '1', force => 1);
                $form->field(name => "end_date", type => "hidden", value => '1', force => 1);
@@ -334,7 +340,7 @@ sub sessioncgi ($$) {
                $form->field(name => "inc_day", type => 'text', value => '0', size => 2);
                $form->field(name => "inc_hour", type => 'text', value => '0', size => 2);
                $form->field(name => "inc_minute", type => 'text', value => '0', size => 2);
-               my $tmpl_neweventcontent = template("neweventcontent.tmpl");
+               my $tmpl_neweventcontent = tmpl($base, 'neweventcontent.tmpl');
                $tmpl_neweventcontent->param(title => gettext('Title of the event'));
                $tmpl_neweventcontent->param(tags => [map {{name => $_}} (sort keys %$tags)]);
                $form->field(name => "content", type => "textarea", size => 30, rows => 20, cols => 80
@@ -398,7 +404,7 @@ sub sessioncgi ($$) {
                         }
                        error("events try per commit overflow: $events_max")
                                unless $events_try <= $events_max;
-                       my $tmpl_neweventpage = template("neweventpage.tmpl");
+                       my $tmpl_neweventpage = tmpl($base, 'neweventpage.tmpl');
                        my $i = 0;
                        foreach (@events) {
                                $tmpl_neweventpage->clear_params();
@@ -559,7 +565,7 @@ sub create ($$$$$) {
                if (not exists $pagesources{$monthpage}
                 and not -l $config{srcdir}.'/'.$monthfile
                 and not -e _) {
-                       my $tmpl_neweventmonth = template("neweventmonth.tmpl");
+                       my $tmpl_neweventmonth = tmpl($base, 'neweventmonth.tmpl');
                        $tmpl_neweventmonth->param(base      => $base);
                        $tmpl_neweventmonth->param(year      => $event->{from}->year());
                        $tmpl_neweventmonth->param(month     => sprintf('%02d', $event->{from}->month()));
@@ -579,7 +585,7 @@ sub create ($$$$$) {
                if (not exists $pagesources{$daypage}
                 and not -l $config{srcdir}.'/'.$dayfile
                 and not -e _) {
-                       my $tmpl_neweventday = template("neweventday.tmpl");
+                       my $tmpl_neweventday = tmpl($base, 'neweventday.tmpl');
                        $tmpl_neweventday->param(base      => $base);
                        $tmpl_neweventday->param(year      => $event->{from}->year());
                        $tmpl_neweventday->param(month     => sprintf('%02d', $event->{from}->month()));