By: Anonymous: Alex ()  Jul 08 2010 13:41 pm (Read 2606 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 2010 10:44 am  

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 2010 15:11 pm  

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']),



Group Comfort
: +53
Registered:: 06/10/08

Posts: 2075
By: Anonymous: Alex ()  Jul 18 2010 18:26 pm  

Thank you for your help, lgarner. It works.

Thanks again Smile

4 posts :: Page 1 of 1