By: Anonymous: Alex ()  Jul 08 10 @ 1:41  (Read 2627 times)  

Hi all

I have a question about the evList Plugin center block.

How can I display for each event the categories to which it belongs?


By: Anonymous: Alex ()  Jul 09 10 @ 10:44   

Hi again

How can I make the {category_links} work in other thtml files? I would like to use the {category_links} in list_item.thtml to display for each event the categories.


By: lgarner (offline)  Jul 09 10 @ 3:11   

The template variables are populated by the code, so just adding one won't necessarily do anything. From what I can tell, the list_item.thml template is used by index.php when displaying the list. So, by borrowing some code from event.php, which does show the category list, we can make it work.

First, I created a new function to get the category list:

PHP Formatted Code
function EVLIST_getCatLinks($eid)
    global $_TABLES, $_CONF;

    $cresult = DB_query("SELECT id, name
            FROM {$_TABLES['evlist_categories']} tc
            LEFT JOIN {$_TABLES['evlist_lookup']} tl
                ON id = cid
            WHERE eid = '".DB_escapeString($eid)."'
            AND tl.status = '1'");
    $catcount = DB_numRows($cresult);
    if ($catcount >= 1) {
        $t = new Template($_CONF['path'] . 'plugins/evlist/templates/');
        $t->set_file('category_links', 'category_links.thtml');
        $t->set_var('catmore', $LANG_EVLIST03[23]);
        $i = 1;
        while ($C = DB_fetchArray($cresult)) {
            $catlink = '<a href="';
            $catlink .= COM_buildURL($_CONF['site_url'] .
                '/evlist/index.php?op=list' . $andrange . '&cat=' . $C['id']);
            $catlink .= '">' . COM_stripslashes($C['name']) . '</a>&nbsp;';
            if ($i < $catcount) {
                $catlink .= '|&nbsp;';
            $t->set_var('category_link', $catlink, true);
        $t->parse('categories', 'category_links');
        $retval = $t->finish($t->get_var('categories'));
    } else {
        $retval = '';

    return $retval;


I just added it to the bottom of public_html/evlist/index.php for testing, but you'd want to put it in lib-custom.php so it doesn't get lost when you update glFusion.

Likewise, copy the list_item.thtml file to the custom subdirectory, and edit the copy to add {category_links} where you want it. This will also be protected from updates.

Now, the one piece that you'll have to maintain yourself. In index.php at about line 150, where the template variables are being set, you'll add one for category_links so it looks like this:

PHP Formatted Code
                'title' => $titlelink,
                'date_summary' => $datesummary,
                'summary' => $summary,
                'more_link' => $morelink,
                'contact_link' => $contactlink,
                'block_title' => $block_title,
                'category_links' => EVLIST_getCatLinks($A['id']),

Forum Admin


Group Comfort
: +53
Registered:: 06/10/08
Posts: 2124
By: Anonymous: Alex ()  Jul 18 10 @ 6:26   

Thank you for your help, lgarner. It works.

Thanks again Smile

4 posts :: Page 1 of 1