Volgende en vorige artikel in CGBlog binnen categorie

Nederlandse ondersteuning voor CMS Made Simple

Moderator: velden

Post Reply
User avatar
timdebuurman
Power Poster
Power Poster
Posts: 891
Joined: Sun Nov 06, 2011 8:15 pm

Volgende en vorige artikel in CGBlog binnen categorie

Post by timdebuurman »

Hoi,

In de detail sjabloon van CGBlog staat al een mooie code om naar het Vorige en Volgende artikel te gaan.
Ik wil dit echter alleen binnen de huidige categorie doen en standaard gaat hij alle artikelen langs.

Dit is de code:

Code: Select all

{$article_id=$entry->id}
{* find the id of the next viewable blog article (by post date) *}
{cgblog_relative_article article=$article_id dir='next' assign='next_id'}
{if $next_id}

  <a  class="photonav" href="{module_action_link module=CGBlog action=detail articleid=$next_id urlonly=1}">Vorige foto</a>
{else}
<span  class="photonav" href="{module_action_link module=CGBlog action=detail articleid=$next_id urlonly=1}">Vorige foto</span>
{/if}


{* find the id of the prev viewable blog article (by post date) *}

{cgblog_relative_article article=$article_id dir='prev' assign='prev_id'}
{if $prev_id}

  <a class="photonav" href="{module_action_link module=CGBlog action=detail articleid=$prev_id urlonly=1}">Volgende foto</a>
{else}
<span class="photonav" href="{module_action_link module=CGBlog action=detail articleid=$prev_id urlonly=1}">Volgende foto</span>
{/if}
Eerst even geprobeerd om 'category=...' toe te voegen, maar dat doet niets.

Iemand een idee?

gr Tim
NextDoorMedia - Online Marketing Partner
https://www.nextdoormedia.nl
User avatar
Rolf
Power Poster
Power Poster
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Contact:

Re: Volgende en vorige artikel in CGBlog binnen categorie

Post by Rolf »

Een beetje omslachtiger, maar ik *denk* dat het bij deze methode wel werkt:
https://www.cmscanbesimple.org/blog/add ... tail-pages

Ik heb het eens gebruikt bij de Company Directory module en daar werkt het in ieder geval.
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
User avatar
Gregor
Power Poster
Power Poster
Posts: 1874
Joined: Thu Mar 23, 2006 9:25 am

Re: Volgende en vorige artikel in CGBlog binnen categorie

Post by Gregor »

Binnen mijn site (http://www.uisge-beatha.eu het ik het ooit op deze manier opgelost:

Code: Select all

 <h5>Artikelen binnen dezelfde categorie</h5>
{prev_next pageid=$page_id currid=$entry->id currdate=$entry->postdate}
<div class="prevnext">
   {if $cgblog_next_url}<a href="{$cgblog_next_url}"><< Vorig artikel in deze categorie</a> | {/if}
   {if $cgblog_prev_url}<a href="{$cgblog_prev_url}">Volgend artikel in deze categorie >></a>{/if }
</div>
User avatar
timdebuurman
Power Poster
Power Poster
Posts: 891
Joined: Sun Nov 06, 2011 8:15 pm

Re: Volgende en vorige artikel in CGBlog binnen categorie

Post by timdebuurman »

Hoi Gregor,

Het lijkt er op dat je dan nog een UDT hebt genaamd 'prev_next' waarnaar de tag verwijst?

gr Tim
NextDoorMedia - Online Marketing Partner
https://www.nextdoormedia.nl
User avatar
Gregor
Power Poster
Power Poster
Posts: 1874
Joined: Thu Mar 23, 2006 9:25 am

Re: Volgende en vorige artikel in CGBlog binnen categorie

Post by Gregor »

Wel handig als je die dan ook hebt ;)

Code: Select all

$gCms = cmsms();
$db = cmsms()->GetDb();    // changed this line.
$cgblog = cms_utils::get_module('CGBlog');  // changed this line.

// call from cgblog detail_template: {prev_next pageid=$page_id currid=$entry->id currdate=$entry->postdate}
$pageid = ($_REQUEST['pageid']) ? $_REQUEST['pageid'] : $params['pageid'];
$currid = ($_REQUEST['currid']) ? $_REQUEST['currid'] : $params['currid'];  // added this line.
$currdate = $params['currdate'];
if(!$currdate) return;

// call from cgblog detail_template: {prev_next pageid=$page_id currid=$entry->id currdate=$entry->postdate}

// For performance, added an index over two columns on ".cms_db_prefix()."module_cgblog_blog_categories

// get all CGBlog articles sorted by ascending date
$query_next = "
SELECT cgblog_id, cgblog_title
FROM ".cms_db_prefix()."module_cgblog
WHERE cgblog_date > ?
AND status = 'published'
AND (end_time >= CURRENT_DATE OR end_time IS NULL) 
AND cgblog_id IN
   ((SELECT blog_id
   FROM ".cms_db_prefix()."module_cgblog_blog_categories
   WHERE category_id IN
     (SELECT category_id 
     FROM ".cms_db_prefix()."module_cgblog_blog_categories
     WHERE blog_id = ".$currid.")))
ORDER BY cgblog_date
ASC LIMIT 1";


$result_next =& $db->GetRow($query_next,array($currdate)); 

$query_prev = "
SELECT cgblog_id, cgblog_title
FROM ".cms_db_prefix()."module_cgblog
WHERE cgblog_date < ?
AND status = 'published'
AND (end_time >= CURRENT_DATE OR end_time IS NULL) 
AND cgblog_id IN
   ((SELECT blog_id
   FROM ".cms_db_prefix()."module_cgblog_blog_categories
   WHERE category_id IN
     (SELECT category_id 
     FROM ".cms_db_prefix()."module_cgblog_blog_categories
     WHERE blog_id = ".$currid.")))
ORDER BY cgblog_date
DESC LIMIT 1";

/* //echo "next-p = ";
//echo "$query_prev";

// end of get all CGBlog items */


$result_prev = &$db->GetRow($query_prev,array($currdate));
/* echo "prev = "; 
print_r($result_prev); */
//date -> id


if($result_next['cgblog_id']) {
$aliased_title = munge_string_to_url($result_next['cgblog_title']);
$prettyurl = 'logboek/' . $result_next["cgblog_id"] .'/'.$pageid."/$aliased_title";
$next_uri = $cgblog->CreateLink('cntnt01', 'detail', $pageid, '', array('articleid' => $result_next["cgblog_id"]) ,'', true, false, '', true, $prettyurl);
}else{
$next_uri = "";
}


if($result_prev['cgblog_id']) {
$aliased_title = munge_string_to_url($result_prev['cgblog_title']);
$prettyurl = 'logboek/' . $result_prev["cgblog_id"] .'/'.$pageid."/$aliased_title";
$prev_uri = $cgblog->CreateLink('cntnt02', 'detail', $pageid, '', array('articleid' => $result_prev["cgblog_id"]) ,'', true, false, '', true, $prettyurl);
}else{
$prev_uri = "";
}

$smarty->assign('cgblog_next_url', $next_uri);
$smarty->assign('cgblog_next_text', $cgblog->lang("next"));
$smarty->assign('cgblog_prev_url', $prev_uri);
$smarty->assign('cgblog_prev_text', $cgblog->lang("prev"));
User avatar
Rolf
Power Poster
Power Poster
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Contact:

Re: Volgende en vorige artikel in CGBlog binnen categorie

Post by Rolf »

Rolf wrote:Een beetje omslachtiger, maar ik *denk* dat het bij deze methode wel werkt:
https://www.cmscanbesimple.org/blog/add ... tail-pages

Ik heb het eens gebruikt bij de Company Directory module en daar werkt het in ieder geval.
Ik gebruik in het sjabloon 2 extra regels zie ik nu:

Code: Select all

{foreach from=$items item=the_entry}
    {if $the_entry->hier_id|trim == $currentHIER} <------
        {capture append='allIDs'}{$the_entry->id}{/capture}
        {capture append='allURLs'}{$the_entry->detail_url}{/capture}
    {/if} <------
{/foreach}
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
User avatar
timdebuurman
Power Poster
Power Poster
Posts: 891
Joined: Sun Nov 06, 2011 8:15 pm

Re: Volgende en vorige artikel in CGBlog binnen categorie

Post by timdebuurman »

@Gregor

Het is gelukt met je UDT en code, THX
NextDoorMedia - Online Marketing Partner
https://www.nextdoormedia.nl
User avatar
Gregor
Power Poster
Power Poster
Posts: 1874
Joined: Thu Mar 23, 2006 9:25 am

Re: Volgende en vorige artikel in CGBlog binnen categorie

Post by Gregor »

Graag gedaan Tim. Misschien wel goed nog even mee te lezen in dit topic viewtopic.php?f=13&t=76404&p=332673&e=332673 ivm problemen om PHP 7 draaiend te krijgen.
Post Reply

Return to “Dutch - Nederlands”