sub journals {
my $c = shift;
- my $journals = $c->model('journals')->select(limit => 10, order_by => {date => 'DESC'});
- $c->render(journals => $journals);
+ my $items_per_page = $c->config->{IndexPage}->{story_per_page} || 10;
+ my $items = $c->model('journals')->select(limit => $items_per_page + 1, order_by => {date => 'DESC'});
+ if (!$items) {
+ $c->rendered(404);
+ return;
+ }
+
+ # check if next page exists
+ my $prev_page = {};
+ if (@$items > $items_per_page) {
+ my $next_item = pop @$items;
+ $prev_page = _get_paging_item($next_item);
+ }
+ $c->render(journals => $items, prev_page => $prev_page);
}
# deprecated: moved to Comment.pm
}
sub _get_paging_item {
- my $story = shift;
- return if !$story;
+ my $item = shift;
+ return if !$item;
- my $dt = Newslash::Util::Formatters::parse_mysql_datetime($story->{time});
+ my $dt = Newslash::Util::Formatters::parse_mysql_datetime($item->{time});
return if !$dt;
$dt->set_time_zone('UTC');
$mm = "0$mm" if $mm < 10;
$dd = "0$dd" if $dd < 10;
+ my $id;
+ if ($item->{content_type} eq "story") {
+ $id = $item->{stoid};
+ }
+ elsif ($item->{content_type} eq "journal") {
+ $id = $item->{id};
+ }
+
return {
date =>"$yy/$mm/$dd",
- sid => $story->{sid}
+ id => $id,
};
}
1;
IF story.content_type == 'vote'; content_id = story.qid; END;
-%]
-<article id="[% story.sid %]" type="[% story.content_type %]" item-id="[% content_id %]" [% IF !x_template %]v-if="0"[% END %]>
+<article id="[% story.id %]" type="[% story.content_type %]" item-id="[% content_id %]" [% IF !x_template %]v-if="0"[% END %]>
<header>
<h1>
[%- IF story.primary_topic.image.length || x_template -%]
[%- INCLUDE common/article/article hide_bodytext=1%]
[%- END -%]
</div><!-- .index -->
+
+ <div class="pager">
+ [%- IF prev_page -%]
+ <span class="prev">
+ <a href="/journal/[% prev_page.date %]/[% IF prev_page.id %]#[% prev_page.id %][% END %]">≪前の記事</a>
+ </span>
+ [%- END -%]
+ [%- IF next_page -%]
+ <span class="next">
+ <a href="/journal/[% next_page.date %]/[% IF next_page.id %]#[% next_page.id %][% END %]">次の記事≫</a>
+ </span>
+ [%- END -%]
+ </div>
</div>
[%- INCLUDE common/sidebar -%]
[%- INCLUDE common/article/article %]
[%- END -%]
</div><!-- .index -->
+
<div class="pager">
[%- IF prev_page -%]
<span class="prev">
- <a href="/story/[% prev_page.date %]/[% IF prev_page.sid %]#[% prev_page.sid %][% END %]">≪前の記事</a>
+ <a href="/story/[% prev_page.date %]/[% IF prev_page.id %]#[% prev_page.id %][% END %]">≪前の記事</a>
</span>
[%- END -%]
[%- IF next_page -%]
<span class="next">
- <a href="/story/[% next_page.date %]/[% IF next_page.sid %]#[% next_page.sid %][% END %]">次の記事≫</a>
+ <a href="/story/[% next_page.date %]/[% IF next_page.id %]#[% next_page.id %][% END %]">次の記事≫</a>
</span>
[%- END -%]
</div>