is there a simple way to implement next and previous post navigation. So readers can move through the articles one by one without having to return to the post list page?
I was wondering this aswell. Tried for a solution for a bit until I finally just let it slide & let Disqus recommend posts. Would like to know this too.
I'm really interested in this solution too. Would be great if it was built into the plugin.
Add
$this->next = $this->page['next'] = $this->getNextPost();
$this->prev = $this->page['prev'] = $this->getPrevPost();
to your onRun() and then define the following:
protected function getNextPost() {
$id = $this->post->id;
$post = BlogPost::isPublished()->where('id', '>' , $id)->first();
return $post;
}
protected function getPrevPost() {
$id = $this->post->id;
$post = BlogPost::isPublished()->where('id', '<', $id)->first();
return $post;
}
I used a technique like this in a similar module I worked on.
Looks promising. Where exactly do i add all this code? (all in the onRun() of the page)
. I assume I have to manually include next and previous links in my partial?
All Ok , got it sorted with a few tweaks wasn't sure how to call it onto page but got there in the end. Thanks for the pointers ;)
UPDATE, sort of worked but some strange foo going on where won;t continue through the full list of articles. If I get it sorted i 'll let you know what I did
I added all of those in my component class in my plugin. I'll work on a PR later to add them to this plugin.
Do you have a screenshot where to place the code?
My solution:
`use rainlab\blog\models\Post;
function onStart(){
$slug = $this->param('slug');
$this['post_active'] = Post::isPublished()->where('slug', '=' , $slug)->get();
$post_active = Post::isPublished()->where('slug', '=' , $slug)->get();
$this['NextPost'] = Post::isPublished()->where('id', '>' , $post_active[0]['id'])->get();
$this['LastPost'] = Post::isPublished()->where('id', '<',$post_active[0]['id'])->get();
}`
Thanks jhenahan
This is now available via both the blog post component and the blog post model
{% set nextPost = blogPost.nextPost %}
{% set lastPost = blogPost.previousPost %}
Most helpful comment
This is now available via both the blog post component and the blog post model