Thanks Uniqu3 for your help, however I don't think I fully get it.
My idea was, to show tags related to a cgblog article, I therefore added all previous code into the detailtamplate called 'Logboekpagina'.
I try to understand why you come up with a detailtemplate. Could you explain?
The code in the detailtemplate so far is:
Code: Select all
..... other code
{if isset($entry->fields)}
{foreach from=$entry->fields item='field'}
<div class="CGBlogDetailField">
{if $field->type == 'image'}
<img class="hidden" src="{$entry->file_location}/thumb_{$field->value}" alt="" />
{elseif $field->name == 'Tags'}
{if $field->name != ""} {*tags to show *}
{$field->name}: {*$entry->fieldsbyname.tags->value|replace:',':' - '*}
{assign var="taglist" value=$entry->fieldsbyname.tags->value}
{*taglist :{$taglist|print_r*}
{assign var="tagwords" value=", "|explode:$taglist}
{*foreach from=$tagwords item=tagword}
<a href=”{$tagword}” title="{$tagword|trim}">{$tagword}</a> 
{/foreach*}
{foreach from=$tagwords item=tagword}
{cms_selflink page='lbtochten' urlparam=$tagword text=$tagword|trim} 
{/foreach}
{/if}
{else}
{$field->name}: {eval var=$field->value}
{/if}
</div>
{/foreach}
{/if}
<h5>Tags</h5>
{tags_prev_next pageid=$page_id currid=$entry->id currdate=$entry->postdate currtagid=$field->id currtagvalue=$field->value currtagword=$tagword}
<div class="prevnext">
{if $cgblog_tag_next_url}<a href="{$cgblog_tag_next_url}"><< Vorig artikel in deze tag</a> | {/if}
{if $cgblog_tag_prev_url}<a href="{$cgblog_tag_prev_url}">Volgend artikel in deze tag >></a>{/if }
</div>
<br />
...... other code
If you look at the links, something funny happend, from the page source:
The UDT 'tags_prev_next' contains the following code (it has some print statement to see the values of certain variables):
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 currtag=$entry->.........}
$pageid = ($_REQUEST['pageid']) ? $_REQUEST['pageid'] : $params['pageid'];
$currid = ($_REQUEST['currid']) ? $_REQUEST['currid'] : $params['currid']; // added this line.
$currdate = $params['currdate'];
$currtagid = ($_REQUEST['currtagid']) ? $_REQUEST['currtagid'] : $params['currtagid'];
$currtagvalue = ($_REQUEST['currtagvalue']) ? $_REQUEST['currtagvalue'] : $params['currtagvalue'];
$tagword = $params['currtagword'];
echo "currid: ";
echo "$currid";
echo " | ";
echo "currtagid: ";
echo "$currtagid";
echo " | ";
echo "currtagvalue: ";
echo "$currtagvalue";
echo " | ";
echo "currtagword: ";
echo "$currtagword";
if(!$currdate) return;
//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_tag_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 cgblog_id
FROM ".cms_db_prefix()."module_cgblog_fieldvals
WHERE fielddef_id IN
(SELECT fielddef_id
FROM ".cms_db_prefix()."module_cgblog_fieldvals
WHERE value like %".$currtagid."%)))
ORDER BY cgblog_date
ASC LIMIT 1";
$result_tag_next =& $db->GetRow($query_tag_next,array($currdate));
echo "next = ";
print_r($result_tag_next);
$query_tag_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 cgblog_id
FROM ".cms_db_prefix()."module_cgblog_fieldvals
WHERE fielddef_id IN
(SELECT fielddef_id
FROM ".cms_db_prefix()."module_cgblog_fieldvals
WHERE value like %".$currtagid."%)))
ORDER BY cgblog_date
DESC LIMIT 1";
/* //echo "next-p = ";
//echo "$query_prev";
// end of get all CGBlog items */
$result_tag_prev = &$db->GetRow($query_ptag_rev,array($currdate));
echo "prev = ";
print_r($result_tag_prev);
//date -> id
if($result_tag_next['cgblog_id']) {
$aliased_title = munge_string_to_url($result_tag_next['cgblog_title']);
$prettyurl = 'logboek/' . $result_tag_next["cgblog_id"] .'/'.$pageid."/$aliased_title";
$next_uri = $cgblog->CreateLink('cntnt01', 'detail', $pageid, '', array('articleid' => $result_tag_next["cgblog_id"]) ,'', true, false, '', true, $prettyurl);
}else {
$next_uri = "";
}
if($result_tag_prev['cgblog_id']) {
$aliased_title = munge_string_to_url($result_tag_prev['cgblog_title']);
$prettyurl = 'logboek/' . $result_tag_prev["cgblog_id"] .'/'.$pageid."/$aliased_title";
$prev_uri = $cgblog->CreateLink('cntnt02', 'detail', $pageid, '', array('articleid' => $result_tag_prev["cgblog_id"]) ,'', true, false, '', true, $prettyurl);
}else {
$prev_uri = "";
}
$smarty->assign('cgblog_tag_next_url', $next_uri);
$smarty->assign('cgblog_tag_next_text', $cgblog->lang("next"));
$smarty->assign('cgblog_tag_prev_url', $prev_uri);
$smarty->assign('cgblog_tag_prev_text', $cgblog->lang("prev"));
Does this help to help me?
Gregor