function smarty_function_pico_category_search($params, &$smarty) { $dir = @$params['dir'] . @$params['dirname']; $cat_title = @$params['title'] . @$params['cat_title']; $var_name = @$params['item'] . @$params['assign']; if (empty($var_name)) { echo 'error ' . __FUNCTION__ . ' [specify item]'; return; } if (empty($dir)) { $dir = $smarty->get_template_vars('mydirname'); } if (empty($dir)) { echo 'error ' . __FUNCTION__ . ' [specify dirname]'; return; } $mydirnames = explode(',', $dir); $db =& Database::getInstance(); $myts =& MyTextSanitizer::getInstance(); $module_handler =& xoops_gethandler('module'); $config_handler =& xoops_gethandler('config'); $categories4assign = array(); foreach ($mydirnames as $mydirname) { $module =& $module_handler->getByDirname($mydirname); $configs = $config_handler->getConfigList($module->getVar('mid')); $sql = "SELECT * FROM " . $db->prefix($mydirname . "_categories") . " c WHERE c.cat_title='" . mysql_real_escape_string($cat_title) . "'"; $result = $db->query($sql); while ($cat_row = $db->fetchArray($result)) { $category4assign = array('mod_mid' => $module->getVar('mid'), 'mod_dirname' => $mydirname, 'mod_name' => $module->getVar('name'), 'id' => intval($cat_row['cat_id']), 'link' => pico_common_make_category_link4html($configs, $cat_row), 'title' => $myts->makeTboxData4Show($cat_row['cat_title']), 'desc' => $myts->displayTarea($cat_row['cat_desc'], 1), 'paths_raw' => pico_common_unserialize($cat_row['cat_path_in_tree']), 'paths_value' => array_values(pico_common_unserialize($cat_row['cat_path_in_tree'])), 'redundants' => pico_common_unserialize($cat_row['cat_redundants'])) + $cat_row; $categories4assign[] = $category4assign; } } $smarty->assign($var_name, $categories4assign); }
function b_pico_subcategories_show($options) { global $xoopsUser; $mydirname = empty($options[0]) ? 'pico' : $options[0]; $categories = trim(@$options[1]) === '' ? array() : array_map('intval', explode(',', $options[1])); $this_template = empty($options[2]) ? 'db:' . $mydirname . '_block_subcategories.html' : trim($options[2]); if (preg_match('/[^0-9a-zA-Z_-]/', $mydirname)) { die('Invalid mydirname'); } $db =& Database::getInstance(); $myts =& MyTextSanitizer::getInstance(); $uid = is_object(@$xoopsUser) ? $xoopsUser->getVar('uid') : 0; $module_handler =& xoops_gethandler('module'); $module =& $module_handler->getByDirname($mydirname); $config_handler =& xoops_gethandler('config'); $configs = $config_handler->getConfigList($module->mid()); // categories can be read by current viewer (check by category_permissions) $whr_read4cat = 'c.`cat_id` IN (' . implode(",", pico_common_get_categories_can_read($mydirname)) . ')'; // categories if ($categories === array()) { $whr_categories = 'WHERE pid=0'; $categories4assign = ''; } else { $whr_categories = 'c.pid IN (' . implode(',', $categories) . ')'; $categories4assign = implode(',', $categories); } $sql = "SELECT c.cat_id,c.cat_title,c.cat_vpath FROM " . $db->prefix($mydirname . "_categories") . " c WHERE ({$whr_read4cat}) AND ({$whr_categories}) ORDER BY c.cat_weight"; if (!($result = $db->query($sql))) { echo $db->logger->dumpQueries(); exit; } $constpref = '_MB_' . strtoupper($mydirname); $block = array('mydirname' => $mydirname, 'mod_url' => XOOPS_URL . '/modules/' . $mydirname, 'mod_imageurl' => XOOPS_URL . '/modules/' . $mydirname . '/' . $configs['images_dir'], 'mod_config' => $configs, 'categories' => $categories4assign, 'lang_category' => constant($constpref . '_CATEGORY'), 'lang_topcategory' => constant($constpref . '_TOPCATEGORY')); $cat4assign = array(); while ($cat_row = $db->fetchArray($result)) { $cat4assign[] = array('id' => intval($cat_row['cat_id']), 'link' => pico_common_make_category_link4html($configs, $cat_row), 'title' => $myts->makeTboxData4Show($cat_row['cat_title'], 1, 1)); } $block['categories'] = $cat4assign; if (empty($options['disable_renderer'])) { require_once XOOPS_ROOT_PATH . '/class/template.php'; $tpl =& new XoopsTpl(); $tpl->assign('block', $block); $ret['content'] = $tpl->fetch($this_template); return $ret; } else { return $block; } }
// // display stage // xoops_cp_header(); include dirname(__FILE__) . '/mymenu.php'; $tpl = new XoopsTpl() ; $tpl->assign( array( 'mydirname' => $mydirname , 'mod_name' => $xoopsModule->getVar('name') , 'mod_url' => XOOPS_URL.'/modules/'.$mydirname , 'mod_imageurl' => XOOPS_URL.'/modules/'.$mydirname.'/'.$xoopsModuleConfig['images_dir'] , 'mod_config' => $xoopsModuleConfig , 'cat_id' => $cat_id , 'cat_permission_id' => $cat_permission_id , 'cat_link' => pico_common_make_category_link4html( $xoopsModuleConfig , $cat_id , $mydirname ) , 'cat_title' => htmlspecialchars( $cat_title , ENT_QUOTES ) , 'cat_options' => $cat_options , 'permissions' => $permissions4assign , 'groups' => $groups4assign , 'users' => $users4assign , 'new_users' => $new_users4assign , 'gticket_hidden' => $xoopsGTicket->getTicketHtml( __LINE__ , 1800 , 'pico_admin') , ) ) ; $tpl->display( 'db:'.$mydirname.'_admin_category_access.html' ) ; xoops_cp_footer(); ?>
function pico_common_get_submenu($mydirname, $caller = 'xoops_version') { static $submenus_cache; if (!empty($submenus_cache[$caller][$mydirname])) { return $submenus_cache[$caller][$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_read = '`cat_id` IN (' . implode(",", pico_common_get_categories_can_read($mydirname)) . ')'; $categories = array(0 => array('pid' => -1, 'name' => '', 'url' => '', 'sub' => array())); // categories query $sql = "SELECT cat_id,pid,cat_title,cat_vpath FROM " . $db->prefix($mydirname . "_categories") . " WHERE ({$whr_read}) 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'], 1, 1), 'url' => pico_common_make_category_link4html($mod_config, $cat_row), 'is_category' => true, 'pid' => $cat_row['pid']); } } if (!($caller == 'sitemap_plugin' && !@$mod_config['sitemap_showcontents']) && !($caller == 'xoops_version' && !@$mod_config['submenu_showcontents'])) { // contents query $ors = $db->query("SELECT cat_id,content_id,vpath,subject FROM " . $db->prefix($mydirname . "_contents") . " WHERE show_in_menu AND visible AND created_time <= UNIX_TIMESTAMP() AND expiring_time > UNIX_TIMESTAMP() AND {$whr_read} ORDER BY weight,content_id"); if ($ors) { while ($content_row = $db->fetchArray($ors)) { $cat_id = intval($content_row['cat_id']); $categories[$cat_id]['sub'][] = array('name' => $myts->makeTboxData4Show($content_row['subject'], 1, 1), 'url' => pico_common_make_content_link4html($mod_config, $content_row), 'is_category' => false); } } } // restruct categories $top_sub = !empty($categories[0]['sub']) ? $categories[0]['sub'] : array(); $submenus_cache[$caller][$mydirname] = array_merge($top_sub, pico_common_restruct_categories($categories, 0)); return $submenus_cache[$caller][$mydirname]; }
} redirect_header(XOOPS_URL . "/modules/{$mydirname}/admin/index.php?page=contents&cat_id={$cat_id}", 3, _MD_A_PICO_MSG_CONTENTSEXPORTED); exit; } // // form stage // // category options as array $cat_options = pico_common_get_cat_options($mydirname); // fetch contents if ($cat_id == SPECIAL_CAT_ID_DELETED) { $ors = $db->query("SELECT oh.*,up.uname AS poster_uname,um.uname AS modifier_uname,c.cat_title,c.cat_depth_in_tree,1 AS is_deleted FROM " . $db->prefix($mydirname . "_content_histories") . " oh LEFT JOIN " . $db->prefix("users") . " up ON oh.poster_uid=up.uid LEFT JOIN " . $db->prefix("users") . " um ON oh.modifier_uid=um.uid LEFT JOIN " . $db->prefix($mydirname . "_categories") . " c ON oh.cat_id=c.cat_id LEFT JOIN " . $db->prefix($mydirname . "_contents") . " o ON o.content_id=oh.content_id WHERE o.content_id IS NULL GROUP BY oh.content_id ORDER BY oh.modified_time DESC"); } else { $whr_cat_id = $cat_id == SPECIAL_CAT_ID_ALL ? "1" : "o.cat_id={$cat_id}"; $ors = $db->query("SELECT o.*,up.uname AS poster_uname,um.uname AS modifier_uname,c.cat_title,c.cat_depth_in_tree,0 AS is_deleted FROM " . $db->prefix($mydirname . "_contents") . " o LEFT JOIN " . $db->prefix("users") . " up ON o.poster_uid=up.uid LEFT JOIN " . $db->prefix("users") . " um ON o.modifier_uid=um.uid LEFT JOIN " . $db->prefix($mydirname . "_categories") . " c ON o.cat_id=c.cat_id WHERE ({$whr_cat_id}) ORDER BY c.cat_depth_in_tree,o.weight,o.content_id"); } $contents4assign = array(); while ($content_row = $db->fetchArray($ors)) { $wrap_full_path = XOOPS_TRUST_PATH . _MD_PICO_WRAPBASE . '/' . $mydirname . str_replace('..', '', $content_row['vpath']); $content4assign = array('id' => intval($content_row['content_id']), 'link' => pico_common_make_content_link4html($xoopsModuleConfig, $content_row), 'cat_title' => $myts->makeTboxData4Show($content_row['cat_title'], 1, 1), 'created_time_formatted' => formatTimestamp($content_row['created_time'], 'm'), 'modified_time_formatted' => formatTimestamp($content_row['modified_time'], 'm'), 'expiring_time_formatted' => formatTimestamp(@$content_row['expiring_time'], 'm'), 'poster_uname' => $content_row['poster_uid'] ? $myts->makeTboxData4Show($content_row['poster_uname']) : _MD_PICO_REGISTERED_AUTOMATICALLY, 'modifier_uname' => $content_row['modifier_uid'] ? $myts->makeTboxData4Show($content_row['modifier_uname']) : _MD_PICO_REGISTERED_AUTOMATICALLY, 'subject' => $myts->makeTboxData4Edit($content_row['subject']), 'vpath' => htmlspecialchars($content_row['vpath']), 'wrap_file' => is_file($wrap_full_path) ? array('mtime_formatted' => formatTimestamp(filemtime($wrap_full_path), 'm'), 'size' => filesize($wrap_full_path)) : false, 'histories' => $content_row['is_deleted'] ? pico_get_content_histories4assign($mydirname, intval($content_row['content_id'])) : array(), 'ef' => pico_common_unserialize($content_row['extra_fields'])); $contents4assign[] = $content4assign + $content_row; } // // display stage // xoops_cp_header(); include dirname(__FILE__) . '/mymenu.php'; $tpl =& new XoopsTpl(); $tpl->assign(array('mydirname' => $mydirname, 'mod_name' => $xoopsModule->getVar('name'), 'mod_url' => XOOPS_URL . '/modules/' . $mydirname, 'mod_imageurl' => XOOPS_URL . '/modules/' . $mydirname . '/' . $xoopsModuleConfig['images_dir'], 'mod_config' => $xoopsModuleConfig, 'cat_id' => $cat_id, 'cat_link' => pico_common_make_category_link4html($xoopsModuleConfig, $cat_id, $mydirname), 'cat_title' => htmlspecialchars($cat_title, ENT_QUOTES), 'cat_options' => $cat_options + array(SPECIAL_CAT_ID_ALL => _MD_PICO_ALLCONTENTS, SPECIAL_CAT_ID_DELETED => _MD_PICO_DELETEDCONTENTS), 'cat_options4move' => $cat_options, 'module_options' => $exportable_modules, 'contents' => $contents4assign, 'gticket_hidden' => $xoopsGTicket->getTicketHtml(__LINE__, 1800, 'pico_admin'))); $tpl->display('db:' . $mydirname . '_admin_contents.html'); xoops_cp_footer();
function getBreadcrumbs() { if (!is_array($this->data['paths_raw'])) { return array(); } $ret = array(); foreach ($this->data['paths_raw'] as $cat_id => $name_raw) { $ret[] = array('url' => XOOPS_URL . '/modules/' . $this->mydirname . '/' . pico_common_make_category_link4html($this->mod_config, $cat_id, $this->mydirname), 'name' => htmlspecialchars($name_raw, ENT_QUOTES)); } return $ret; }
function render() { redirect_header(XOOPS_URL . "/modules/{$this->mydirname}/" . pico_common_make_category_link4html($this->mod_config, $this->currentCategoryObj->getData()), 2, _MD_PICO_MSG_CONTENTDELETED); exit; }
if ($db->getRowsNum($cprs) > 0) { list($serialized_gpermissions) = $db->fetchRow($cprs); $gpermissions = pico_common_unserialize($serialized_gpermissions); } else { $gpermissions = array(); } $groups4assign[] = array('gid' => $gid, 'name' => $group->getVar('name'), 'perms' => $gpermissions); } // create user form $users4assign = array(); $cprs = $db->query("SELECT u.uid,u.uname,cp.permissions FROM " . $db->prefix($mydirname . "_category_permissions") . " cp LEFT JOIN " . $db->prefix("users") . " u ON cp.uid=u.uid WHERE cp.cat_id={$cat_permission_id} AND cp.groupid IS NULL ORDER BY u.uid ASC"); $user_trs = ''; while (list($uid, $uname, $serialized_upermissions) = $db->fetchRow($cprs)) { $uid = intval($uid); $upermissions = pico_common_unserialize($serialized_upermissions); $users4assign[] = array('uid' => $uid, 'name' => htmlspecialchars($uname, ENT_QUOTES), 'perms' => $upermissions); } // create new user form $new_users4assign = array(); for ($i = 0; $i < 5; $i++) { $new_users4assign[] = array('nid' => $i, 'perms' => array('can_read' => 1)); } // // display stage // xoops_cp_header(); include dirname(__FILE__) . '/mymenu.php'; $tpl =& new XoopsTpl(); $tpl->assign(array('mydirname' => $mydirname, 'mod_name' => $xoopsModule->getVar('name'), 'mod_url' => XOOPS_URL . '/modules/' . $mydirname, 'mod_imageurl' => XOOPS_URL . '/modules/' . $mydirname . '/' . $xoopsModuleConfig['images_dir'], 'mod_config' => $xoopsModuleConfig, 'cat_id' => $cat_id, 'cat_permission_id' => $cat_permission_id, 'cat_link' => pico_common_make_category_link4html($xoopsModuleConfig, $cat_id, $mydirname), 'cat_title' => htmlspecialchars($cat_title, ENT_QUOTES), 'cat_options' => $cat_options, 'permissions' => $permissions4assign, 'groups' => $groups4assign, 'users' => $users4assign, 'new_users' => $new_users4assign, 'gticket_hidden' => $xoopsGTicket->getTicketHtml(__LINE__, 1800, 'pico_admin'))); $tpl->display('db:' . $mydirname . '_admin_category_access.html'); xoops_cp_footer();
function render() { redirect_header(XOOPS_URL . "/modules/{$this->mydirname}/" . pico_common_make_category_link4html($this->mod_config, $this->cat_id, $this->mydirname), 2, _MD_PICO_MSG_CATEGORYUPDATED); exit; }