function d3forum_notify_base($mydirname, $category, $item_id) { include_once dirname(__FILE__) . '/include/common_functions.php'; $db =& Database::getInstance(); $module_handler =& xoops_gethandler('module'); $module =& $module_handler->getByDirname($mydirname); if ($category == 'global') { $item['name'] = ''; $item['url'] = ''; return $item; } if ($category == 'category') { // Assume we have a valid cat_id $whr_cat = 'cat_id IN (' . implode(',', d3forum_get_categories_can_read($mydirname)) . ')'; $sql = 'SELECT cat_title FROM ' . $db->prefix($mydirname . '_categories') . ' WHERE cat_id=' . $item_id . " AND ({$whr_cat})"; $result = $db->query($sql); $result_array = $db->fetchArray($result); $item['name'] = $result_array['cat_title']; $item['url'] = XOOPS_URL . '/modules/' . $module->getVar('dirname') . '/index.php?cat_id=' . $item_id; return $item; } if ($category == 'forum') { // Assume we have a valid forum_id $whr_forum = 'forum_id IN (' . implode(',', d3forum_get_forums_can_read($mydirname)) . ')'; $sql = 'SELECT forum_title FROM ' . $db->prefix($mydirname . '_forums') . ' WHERE forum_id=' . $item_id . " AND ({$whr_forum})"; $result = $db->query($sql); $result_array = $db->fetchArray($result); $item['name'] = $result_array['forum_title']; $item['url'] = XOOPS_URL . '/modules/' . $module->getVar('dirname') . '/index.php?forum_id=' . $item_id; return $item; } if ($category == 'topic') { // Assume we have a valid topid_id $whr_forum = 'forum_id IN (' . implode(',', d3forum_get_forums_can_read($mydirname)) . ')'; $sql = 'SELECT topic_title FROM ' . $db->prefix($mydirname . '_topics') . ' WHERE topic_id=' . $item_id . " AND ({$whr_forum})"; $result = $db->query($sql); $result_array = $db->fetchArray($result); $item['name'] = $result_array['topic_title']; $item['url'] = XOOPS_URL . '/modules/' . $module->getVar('dirname') . '/index.php?topic_id=' . $item_id; return $item; } }
function d3forum_get_submenu($mydirname) { static $submenus_cache; if (!empty($submenus_cache[$mydirname])) { return $submenus_cache[$mydirname]; } $module_handler =& xoops_gethandler('module'); $module =& $module_handler->getByDirname($mydirname); if (!is_object($module)) { return array(); } $config_handler =& xoops_gethandler('config'); $mod_config =& $config_handler->getConfigsByCat(0, $module->getVar('mid')); $db =& Database::getInstance(); $myts =& MyTextSanitizer::getInstance(); $whr_read4cat = '`cat_id` IN (' . implode(",", d3forum_get_categories_can_read($mydirname)) . ')'; $whr_read4forum = '`forum_id` IN (' . implode(",", d3forum_get_forums_can_read($mydirname)) . ')'; $categories = array(0 => array('pid' => -1, 'name' => '', 'url' => '')); // categories query $sql = "SELECT cat_id,pid,cat_title FROM " . $db->prefix($mydirname . "_categories") . " WHERE ({$whr_read4cat}) ORDER BY cat_order_in_tree"; $crs = $db->query($sql); if ($crs) { while ($cat_row = $db->fetchArray($crs)) { $cat_id = intval($cat_row['cat_id']); $categories[$cat_id] = array('name' => $myts->makeTboxData4Show($cat_row['cat_title']), 'url' => 'index.php?cat_id=' . $cat_id, 'pid' => $cat_row['pid']); } } // forums query $frs = $db->query("SELECT cat_id,forum_id,forum_title FROM " . $db->prefix($mydirname . "_forums") . " WHERE ({$whr_read4forum}) ORDER BY forum_weight"); if ($frs) { while ($forum_row = $db->fetchArray($frs)) { $cat_id = intval($forum_row['cat_id']); $categories[$cat_id]['sub'][] = array('name' => $myts->makeTboxData4Show($forum_row['forum_title']), 'url' => '?forum_id=' . intval($forum_row['forum_id'])); } } // restruct categories $submenus_cache[$mydirname] = array_merge(d3forum_restruct_categories($categories, 0)); return $submenus_cache[$mydirname]; }