function links_edit_category($cid, $pid) { global $_CONF, $_TABLES, $_USER, $MESSAGE, $LANG_LINKS_ADMIN, $LANG_ADMIN, $LANG_ACCESS, $_LI_CONF; $retval = ''; $cid = addslashes($cid); if (!empty($pid)) { // have parent id, so making a new subcategory // get parent access rights $result = DB_query("SELECT group_id,perm_owner,perm_group,perm_members,perm_anon FROM {$_TABLES['linkcategories']} WHERE cid='" . addslashes($pid) . "'"); $A = DB_fetchArray($result); $A['owner_id'] = $_USER['uid']; $A['pid'] = $pid; } elseif (!empty($cid)) { // have category id, so editing a category $sql = "SELECT * FROM {$_TABLES['linkcategories']} WHERE cid='{$cid}'" . COM_getPermSQL('AND'); $result = DB_query($sql); $A = DB_fetchArray($result); } else { // nothing, so making a new top-level category // get default access rights $A['group_id'] = DB_getItem($_TABLES['groups'], 'grp_id', "grp_name='Links Admin'"); SEC_setDefaultPermissions($A, $_LI_CONF['category_permissions']); $A['owner_id'] = $_USER['uid']; $A['pid'] = $_LI_CONF['root']; } $access = SEC_hasAccess($A['owner_id'], $A['group_id'], $A['perm_owner'], $A['perm_group'], $A['perm_members'], $A['perm_anon']); if ($access < 3) { return COM_showMessage(6, 'links'); } $token = SEC_createToken(); $retval .= COM_startBlock($LANG_LINKS_ADMIN[56], '', COM_getBlockTemplate('_admin_block', 'header')); $retval .= SEC_getTokenExpiryNotice($token); $T = new Template($_CONF['path'] . 'plugins/links/templates/admin'); $T->set_file(array('page' => 'categoryeditor.thtml')); $T->set_var('xhtml', XHTML); $T->set_var('site_url', $_CONF['site_url']); $T->set_var('site_admin_url', $_CONF['site_admin_url']); $T->set_var('layout_url', $_CONF['layout_url']); $T->set_var('lang_pagetitle', $LANG_LINKS_ADMIN[28]); $T->set_var('lang_link_list', $LANG_LINKS_ADMIN[53]); $T->set_var('lang_new_link', $LANG_LINKS_ADMIN[51]); $T->set_var('lang_validate_links', $LANG_LINKS_ADMIN[26]); $T->set_var('lang_list_categories', $LANG_LINKS_ADMIN[50]); $T->set_var('lang_new_category', $LANG_LINKS_ADMIN[52]); $T->set_var('lang_admin_home', $LANG_ADMIN['admin_home']); $T->set_var('instructions', $LANG_LINKS_ADMIN[29]); $T->set_var('lang_category', $LANG_LINKS_ADMIN[30]); $T->set_var('lang_cid', $LANG_LINKS_ADMIN[32]); $T->set_var('lang_description', $LANG_LINKS_ADMIN[31]); $T->set_var('lang_topic', $LANG_LINKS_ADMIN[33]); $T->set_var('lang_parent', $LANG_LINKS_ADMIN[34]); $T->set_var('lang_save', $LANG_ADMIN['save']); if (!empty($cid)) { $delbutton = '<input type="submit" value="' . $LANG_ADMIN['delete'] . '" name="mode"%s' . XHTML . '>'; $jsconfirm = ' onclick="return confirm(\'' . $MESSAGE[76] . '\');"'; $T->set_var('delete_option', sprintf($delbutton, $jsconfirm)); $T->set_var('delete_option_no_confirmation', sprintf($delbutton, '')); } else { $T->set_var('delete_option', ''); } $T->set_var('lang_cancel', $LANG_ADMIN['cancel']); if (!empty($cid)) { $T->set_var('cid_value', $A['cid']); $T->set_var('old_cid_value', $A['cid']); $T->set_var('category_options', links_select_box(3, $A['pid'])); $T->set_var('category_value', $A['category']); $T->set_var('description_value', $A['description']); } else { $A['cid'] = COM_makeSid(); $T->set_var('cid_value', $A['cid']); $T->set_var('old_cid_value', ''); $T->set_var('category_options', links_select_box(3, $A['pid'])); $T->set_var('category_value', ''); $T->set_var('description_value', ''); } if (!isset($A['tid'])) { $A['tid'] = 'all'; } $topics = COM_topicList('tid,topic', $A['tid'], 1, true); $T->set_var('topic_list', $topics); $alltopics = '<option value="all"'; if ($A['tid'] == 'all') { $alltopics .= ' selected="selected"'; } $alltopics .= '>' . $LANG_LINKS_ADMIN[35] . '</option>' . LB; $T->set_var('topic_selection', '<select name="tid">' . $alltopics . $topics . '</select>'); if (empty($cid)) { $num_links = $LANG_ADMIN['na']; } else { $nresult = DB_query("SELECT COUNT(*) AS count FROM {$_TABLES['links']} WHERE cid='{$cid}'" . COM_getPermSQL('AND')); $N = DB_fetchArray($nresult); $num_links = COM_numberFormat($N['count']); } $T->set_var('lang_num_links', $LANG_LINKS_ADMIN[61]); $T->set_var('num_links', $num_links); // user access info $T->set_var('lang_accessrights', $LANG_ACCESS['accessrights']); $T->set_var('lang_owner', $LANG_ACCESS['owner']); $T->set_var('owner_name', COM_getDisplayName($A['owner_id'])); $T->set_var('cat_ownerid', $A['owner_id']); $T->set_var('lang_group', $LANG_ACCESS['group']); $T->set_var('group_dropdown', SEC_getGroupDropdown($A['group_id'], $access)); $T->set_var('lang_permissions', $LANG_ACCESS['permissions']); $T->set_var('lang_permissionskey', $LANG_ACCESS['permissionskey']); $T->set_var('lang_perm_key', $LANG_ACCESS['permissionskey']); $T->set_var('permissions_editor', SEC_getPermissionsHTML($A['perm_owner'], $A['perm_group'], $A['perm_members'], $A['perm_anon'])); $T->set_var('lang_permissions_msg', $LANG_ACCESS['permmsg']); $T->set_var('lang_lockmsg', $LANG_ACCESS['permmsg']); $T->set_var('gltoken_name', CSRF_TOKEN); $T->set_var('gltoken', $token); $T->parse('output', 'page'); $retval .= $T->finish($T->get_var('output')); $retval .= COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer')); return $retval; }
/** * Shows the links editor * * @param string $action 'edit' or 'moderate' * @param string $lid ID of link to edit * @global array core config vars * @global array core group data * @global array core table data * @global array core user data * @global array links plugin config vars * @global array links plugin lang vars * @global array core lang access vars * @return string HTML for the link editor form * */ function LINK_edit($action, $lid = '') { global $_CONF, $_GROUPS, $_TABLES, $_USER, $_LI_CONF, $LANG_LINKS_ADMIN, $LANG_ACCESS, $LANG_ADMIN, $MESSAGE; USES_lib_admin(); $retval = ''; switch ($action) { case 'edit': $blocktitle = $LANG_LINKS_ADMIN[1]; // Link Editor $saveoption = $LANG_ADMIN['save']; // Save break; case 'moderate': $blocktitle = $LANG_LINKS_ADMIN[65]; // Moderate Link $saveoption = $LANG_ADMIN['moderate']; // Save & Approve break; } $menu_arr = array(array('url' => $_CONF['site_admin_url'] . '/plugins/links/index.php', 'text' => $LANG_LINKS_ADMIN[53]), array('url' => $_CONF['site_admin_url'], 'text' => $LANG_ADMIN['admin_home'])); $link_templates = new Template($_CONF['path'] . 'plugins/links/templates/admin/'); $link_templates->set_file('editor', 'linkeditor.thtml'); $link_templates->set_var('lang_pagetitle', $LANG_LINKS_ADMIN[28]); $link_templates->set_var('lang_link_list', $LANG_LINKS_ADMIN[53]); $link_templates->set_var('lang_new_link', $LANG_LINKS_ADMIN[51]); $link_templates->set_var('lang_validate_links', $LANG_LINKS_ADMIN[26]); $link_templates->set_var('lang_list_categories', $LANG_LINKS_ADMIN[50]); $link_templates->set_var('lang_new_category', $LANG_LINKS_ADMIN[52]); $link_templates->set_var('lang_admin_home', $LANG_ADMIN['admin_home']); $link_templates->set_var('instructions', $LANG_LINKS_ADMIN[29]); if ($action != 'moderate' and !empty($lid)) { $result = DB_query("SELECT * FROM {$_TABLES['links']} WHERE lid ='{$lid}'"); if (DB_numRows($result) !== 1) { $msg = COM_startBlock($LANG_LINKS_ADMIN[24], '', COM_getBlockTemplate('_msg_block', 'header')); $msg .= $LANG_LINKS_ADMIN[25]; $msg .= COM_endBlock(COM_getBlockTemplate('_msg_block', 'footer')); return $msg; } $A = DB_fetchArray($result); $access = SEC_hasAccess($A['owner_id'], $A['group_id'], $A['perm_owner'], $A['perm_group'], $A['perm_members'], $A['perm_anon']); if ($access == 0 or $access == 2) { $retval .= COM_startBlock($LANG_LINKS_ADMIN[16], '', COM_getBlockTemplate('_msg_block', 'header')); $retval .= $LANG_LINKS_ADMIN[17]; $retval .= COM_endBlock(COM_getBlockTemplate('_msg_block', 'footer')); COM_accessLog("User {$_USER['username']} tried to illegally submit or edit link {$lid}."); return $retval; } } else { if ($action == 'moderate') { $result = DB_query("SELECT * FROM {$_TABLES['linksubmission']} WHERE lid = '{$lid}'"); $A = DB_fetchArray($result); } else { $A['lid'] = COM_makesid(); $A['cid'] = ''; $A['url'] = ''; $A['description'] = ''; $A['title'] = ''; $A['owner_id'] = $_USER['uid']; } $A['hits'] = 0; if (isset($_GROUPS['Links Admin'])) { $A['group_id'] = $_GROUPS['Links Admin']; } else { $A['group_id'] = SEC_getFeatureGroup('links.edit'); } SEC_setDefaultPermissions($A, $_LI_CONF['default_permissions']); $access = 3; } $retval .= COM_startBlock($blocktitle, '', COM_getBlockTemplate('_admin_block', 'header')); $retval .= ADMIN_createMenu($menu_arr, $LANG_LINKS_ADMIN[66], plugin_geticon_links()); $link_templates->set_var('link_id', $A['lid']); if (!empty($lid) && SEC_hasRights('links.edit')) { $delbutton = '<input type="submit" value="' . $LANG_ADMIN['delete'] . '" name="delete"%s>'; $jsconfirm = ' onclick="return confirm(\'' . $MESSAGE[76] . '\');"'; $link_templates->set_var('delete_option', sprintf($delbutton, $jsconfirm)); $link_templates->set_var('delete_option_no_confirmation', sprintf($delbutton, '')); $link_templates->set_var('delete_confirm_msg', $MESSAGE[76]); if ($action == 'moderate') { $link_templates->set_var('submission_option', '<input type="hidden" name="type" value="submission">'); } } $link_templates->set_var('lang_linktitle', $LANG_LINKS_ADMIN[3]); $link_templates->set_var('link_title', htmlspecialchars($A['title'])); $link_templates->set_var('lang_linkid', $LANG_LINKS_ADMIN[2]); $link_templates->set_var('lang_linkurl', $LANG_LINKS_ADMIN[4]); $link_templates->set_var('max_url_length', 255); $link_templates->set_var('link_url', $A['url']); $link_templates->set_var('lang_includehttp', $LANG_LINKS_ADMIN[6]); $link_templates->set_var('lang_category', $LANG_LINKS_ADMIN[5]); $othercategory = links_select_box(3, $A['cid']); $link_templates->set_var('category_options', $othercategory); $link_templates->set_var('lang_ifotherspecify', $LANG_LINKS_ADMIN[20]); $link_templates->set_var('category', $othercategory); $link_templates->set_var('lang_linkhits', $LANG_LINKS_ADMIN[8]); $link_templates->set_var('link_hits', $A['hits']); $link_templates->set_var('lang_linkdescription', $LANG_LINKS_ADMIN[9]); $link_templates->set_var('link_description', $A['description']); $link_templates->set_var('lang_save', $saveoption); $link_templates->set_var('lang_cancel', $LANG_ADMIN['cancel']); // user access info $link_templates->set_var('lang_accessrights', $LANG_ACCESS['accessrights']); $link_templates->set_var('lang_owner', $LANG_ACCESS['owner']); $ownername = COM_getDisplayName($A['owner_id']); $link_templates->set_var('owner_username', DB_getItem($_TABLES['users'], 'username', "uid = {$A['owner_id']}")); $link_templates->set_var('owner_name', $ownername); $link_templates->set_var('owner', $ownername); $link_templates->set_var('link_ownerid', $A['owner_id']); $link_templates->set_var('lang_group', $LANG_ACCESS['group']); $link_templates->set_var('group_dropdown', SEC_getGroupDropdown($A['group_id'], $access)); $link_templates->set_var('lang_permissions', $LANG_ACCESS['permissions']); $link_templates->set_var('lang_permissionskey', $LANG_ACCESS['permissionskey']); $link_templates->set_var('permissions_editor', SEC_getPermissionsHTML($A['perm_owner'], $A['perm_group'], $A['perm_members'], $A['perm_anon'])); $link_templates->set_var('lang_lockmsg', $LANG_ACCESS['permmsg']); $link_templates->set_var('gltoken_name', CSRF_TOKEN); $link_templates->set_var('gltoken', SEC_createToken()); $link_templates->parse('output', 'editor'); $retval .= $link_templates->finish($link_templates->get_var('output')); $retval .= COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer')); return $retval; }
/** * Shows the links editor * * @param string $mode Used to see if we are moderating a link or simply editing one * @param string $lid ID of link to edit * @global array core config vars * @global array core group data * @global array core table data * @global array core user data * @global array links plugin config vars * @global array links plugin lang vars * @global array core lang access vars * @return string HTML for the link editor form * */ function editlink($mode, $lid = '') { global $_CONF, $_GROUPS, $_TABLES, $_USER, $_LI_CONF, $LANG_LINKS_ADMIN, $LANG_ACCESS, $LANG_ADMIN, $MESSAGE; $retval = ''; $link_templates = COM_newTemplate(CTL_plugin_templatePath('links', 'admin')); $link_templates->set_file('editor', 'linkeditor.thtml'); $link_templates->set_var('lang_pagetitle', $LANG_LINKS_ADMIN[28]); $link_templates->set_var('lang_link_list', $LANG_LINKS_ADMIN[53]); $link_templates->set_var('lang_new_link', $LANG_LINKS_ADMIN[51]); $link_templates->set_var('lang_validate_links', $LANG_LINKS_ADMIN[26]); $link_templates->set_var('lang_list_categories', $LANG_LINKS_ADMIN[50]); $link_templates->set_var('lang_new_category', $LANG_LINKS_ADMIN[52]); $link_templates->set_var('lang_admin_home', $LANG_ADMIN['admin_home']); $link_templates->set_var('instructions', $LANG_LINKS_ADMIN[29]); if ($mode != 'editsubmission' and !empty($lid)) { $result = DB_query("SELECT * FROM {$_TABLES['links']} WHERE lid ='{$lid}'"); if (DB_numRows($result) !== 1) { $msg = COM_showMessageText($LANG_LINKS_ADMIN[25], $LANG_LINKS_ADMIN[24]); return $msg; } $A = DB_fetchArray($result); $access = SEC_hasAccess($A['owner_id'], $A['group_id'], $A['perm_owner'], $A['perm_group'], $A['perm_members'], $A['perm_anon']); if ($access == 0 or $access == 2) { $retval .= COM_showMessageText($LANG_LINKS_ADMIN[17], $LANG_LINKS_ADMIN[16]); COM_accessLog("User {$_USER['username']} tried to illegally submit or edit link {$lid}."); return $retval; } } else { if ($mode == 'editsubmission') { $result = DB_query("SELECT * FROM {$_TABLES['linksubmission']} WHERE lid = '{$lid}'"); $A = DB_fetchArray($result); } else { $A['lid'] = COM_makesid(); $A['cid'] = ''; $A['url'] = ''; $A['description'] = ''; $A['title'] = ''; $A['owner_id'] = $_USER['uid']; } $A['hits'] = 0; if (isset($_GROUPS['Links Admin'])) { $A['group_id'] = $_GROUPS['Links Admin']; } else { $A['group_id'] = SEC_getFeatureGroup('links.edit'); } SEC_setDefaultPermissions($A, $_LI_CONF['default_permissions']); $access = 3; } $token = SEC_createToken(); $retval .= COM_startBlock($LANG_LINKS_ADMIN[1], '', COM_getBlockTemplate('_admin_block', 'header')); $retval .= SEC_getTokenExpiryNotice($token); $link_templates->set_var('link_id', $A['lid']); if (!empty($lid) && SEC_hasRights('links.edit')) { $delbutton = '<input type="submit" value="' . $LANG_ADMIN['delete'] . '" name="mode"%s' . XHTML . '>'; $jsconfirm = ' onclick="return confirm(\'' . $MESSAGE[76] . '\');"'; $link_templates->set_var('delete_option', sprintf($delbutton, $jsconfirm)); $link_templates->set_var('delete_option_no_confirmation', sprintf($delbutton, '')); if ($mode == 'editsubmission') { $link_templates->set_var('submission_option', '<input type="hidden" name="type" value="submission"' . XHTML . '>'); } } $link_templates->set_var('lang_linktitle', $LANG_LINKS_ADMIN[3]); $link_templates->set_var('link_title', htmlspecialchars(stripslashes($A['title']))); $link_templates->set_var('lang_linkid', $LANG_LINKS_ADMIN[2]); $link_templates->set_var('lang_linkurl', $LANG_LINKS_ADMIN[4]); $link_templates->set_var('max_url_length', 255); $link_templates->set_var('link_url', $A['url']); $link_templates->set_var('lang_includehttp', $LANG_LINKS_ADMIN[6]); $link_templates->set_var('lang_category', $LANG_LINKS_ADMIN[5]); $othercategory = links_select_box(3, $A['cid']); $link_templates->set_var('category_options', $othercategory); $link_templates->set_var('lang_ifotherspecify', $LANG_LINKS_ADMIN[20]); $link_templates->set_var('category', $othercategory); $link_templates->set_var('lang_linkhits', $LANG_LINKS_ADMIN[8]); $link_templates->set_var('link_hits', $A['hits']); $link_templates->set_var('lang_linkdescription', $LANG_LINKS_ADMIN[9]); $link_templates->set_var('link_description', stripslashes($A['description'])); $allowed = COM_allowedHTML('links.edit') . COM_allowedAutotags(); $link_templates->set_var('lang_allowed_html', $allowed); $link_templates->set_var('lang_save', $LANG_ADMIN['save']); $link_templates->set_var('lang_cancel', $LANG_ADMIN['cancel']); // user access info $link_templates->set_var('lang_accessrights', $LANG_ACCESS['accessrights']); $link_templates->set_var('lang_owner', $LANG_ACCESS['owner']); $ownername = COM_getDisplayName($A['owner_id']); $link_templates->set_var('owner_username', DB_getItem($_TABLES['users'], 'username', "uid = {$A['owner_id']}")); $link_templates->set_var('owner_name', $ownername); $link_templates->set_var('owner', $ownername); $link_templates->set_var('link_ownerid', $A['owner_id']); $link_templates->set_var('lang_group', $LANG_ACCESS['group']); $link_templates->set_var('group_dropdown', SEC_getGroupDropdown($A['group_id'], $access)); $link_templates->set_var('lang_permissions', $LANG_ACCESS['permissions']); $link_templates->set_var('lang_permissionskey', $LANG_ACCESS['permissionskey']); $link_templates->set_var('lang_perm_key', $LANG_ACCESS['permissionskey']); $link_templates->set_var('permissions_editor', SEC_getPermissionsHTML($A['perm_owner'], $A['perm_group'], $A['perm_members'], $A['perm_anon'])); $link_templates->set_var('lang_permissions_msg', $LANG_ACCESS['permmsg']); $link_templates->set_var('lang_lockmsg', $LANG_ACCESS['permmsg']); $link_templates->set_var('gltoken_name', CSRF_TOKEN); $link_templates->set_var('gltoken', $token); $link_templates->parse('output', 'editor'); $retval .= $link_templates->finish($link_templates->get_var('output')); $retval .= COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer')); return $retval; }
/** * Create the links list depending on the category given * * @param array $message message(s) to display * @return string the links page * */ function links_list($message) { global $_CONF, $_TABLES, $_LI_CONF, $LANG_LINKS_ADMIN, $LANG_LINKS, $LANG_LINKS_STATS; $cid = $_LI_CONF['root']; $display = ''; if (isset($_GET['category'])) { $cid = strip_tags(COM_stripslashes($_GET['category'])); } elseif (isset($_POST['category'])) { $cid = strip_tags(COM_stripslashes($_POST['category'])); } $cat = DB_escapeString($cid); $page = 0; if (isset($_GET['page'])) { $page = COM_applyFilter($_GET['page'], true); } if ($page == 0) { $page = 1; } if (empty($cid)) { if ($page > 1) { $page_title = sprintf($LANG_LINKS[114] . ' (%d)', $page); } else { $page_title = $LANG_LINKS[114]; } } else { if ($cid == $_LI_CONF['root']) { $category = $LANG_LINKS['root']; } else { $category = DB_getItem($_TABLES['linkcategories'], 'category', "cid = '{$cat}'"); } if ($page > 1) { $page_title = sprintf($LANG_LINKS[114] . ': %s (%d)', $category, $page); } else { $page_title = sprintf($LANG_LINKS[114] . ': %s', $category); } } // Check has access and existent to this category if ($cid != $_LI_CONF['root']) { $result = DB_query("SELECT owner_id,group_id,perm_owner,perm_group,perm_members,perm_anon FROM {$_TABLES['linkcategories']} WHERE cid='{$cat}'"); $A = DB_fetchArray($result); if (SEC_hasAccess($A['owner_id'], $A['group_id'], $A['perm_owner'], $A['perm_group'], $A['perm_members'], $A['perm_anon']) < 2) { $display .= COM_showMessage(5, 'links'); $display = COM_createHTMLDocument($display, array('pagetitle' => $page_title)); COM_output($display); exit; } // check existent if (!isset($A['owner_id'])) { $display .= COM_showMessage(16, 'links'); $display = COM_createHTMLDocument($display, array('pagetitle' => $page_title)); COM_output($display); exit; } } if (is_array($message) && !empty($message[0])) { $display .= COM_showMessageText($message[1], $message[0]); } else { if (isset($_REQUEST['msg'])) { $msg = COM_applyFilter($_REQUEST['msg'], true); if ($msg > 0) { $display .= COM_showMessage($msg, 'links'); } } } $linklist = COM_newTemplate(CTL_plugin_templatePath('links')); $linklist->set_file(array('linklist' => 'links.thtml', 'catlinks' => 'categorylinks.thtml', 'link' => 'linkdetails.thtml', 'catnav' => 'categorynavigation.thtml', 'catrow' => 'categoryrow.thtml', 'catcol' => 'categorycol.thtml', 'actcol' => 'categoryactivecol.thtml', 'pagenav' => 'pagenavigation.thtml', 'catdrop' => 'categorydropdown.thtml')); $linklist->set_var('blockheader', COM_startBlock($LANG_LINKS[114])); if ($_LI_CONF['linkcols'] > 0) { // Create breadcrumb trail $linklist->set_var('breadcrumbs', links_breadcrumbs($_LI_CONF['root'], $cid)); // Set dropdown for category jump $linklist->set_var('lang_go', $LANG_LINKS[124]); $linklist->set_var('link_dropdown', links_select_box(2, $cid)); // Show categories $sql = "SELECT cid,pid,category,description FROM {$_TABLES['linkcategories']} WHERE pid='{$cat}'"; $sql .= COM_getLangSQL('cid', 'AND'); $sql .= COM_getPermSQL('AND') . " ORDER BY category"; $result = DB_query($sql); $nrows = DB_numRows($result); if ($nrows > 0) { $linklist->set_var('lang_categories', $LANG_LINKS_ADMIN[14]); for ($i = 1; $i <= $nrows; $i++) { $C = DB_fetchArray($result); // Get number of child links user can see in this category $ccid = DB_escapeString($C['cid']); $result1 = DB_query("SELECT COUNT(*) AS count FROM {$_TABLES['links']} WHERE cid='{$ccid}'" . COM_getPermSQL('AND')); $D = DB_fetchArray($result1); // Get number of child categories user can see in this category $result2 = DB_query("SELECT COUNT(*) AS count FROM {$_TABLES['linkcategories']} WHERE pid='{$ccid}'" . COM_getPermSQL('AND')); $E = DB_fetchArray($result2); // Format numbers for display $display_count = ''; // don't show zeroes if ($E['count'] > 0) { $display_count = COM_numberFormat($E['count']); } if ($E['count'] > 0 && $D['count'] > 0) { $display_count .= ', '; } if ($D['count'] > 0) { $display_count .= COM_numberFormat($D['count']); } // add brackets if child items exist if ($display_count != '') { $display_count = '(' . $display_count . ')'; } $linklist->set_var('category_name', $C['category']); if ($_LI_CONF['show_category_descriptions']) { $linklist->set_var('category_description', PLG_replaceTags($C['description'])); } else { $linklist->set_var('category_description', ''); } $linklist->set_var('category_link', $_CONF['site_url'] . '/links/index.php?category=' . rawurlencode($C['cid'])); $linklist->set_var('category_count', $display_count); $linklist->set_var('width', floor(100 / $_LI_CONF['linkcols'])); if (!empty($cid) && $cid == $C['cid']) { $linklist->parse('category_col', 'actcol', true); } else { $linklist->parse('category_col', 'catcol', true); } if ($i % $_LI_CONF['linkcols'] == 0) { $linklist->parse('category_row', 'catrow', true); $linklist->set_var('category_col', ''); } } if ($nrows % $_LI_CONF['linkcols'] != 0) { $linklist->parse('category_row', 'catrow', true); } $linklist->parse('category_navigation', 'catnav', true); } else { $linklist->set_var('category_navigation', ''); } } else { $linklist->set_var('category_navigation', ''); } if ($_LI_CONF['linkcols'] == 0) { $linklist->set_var('category_dropdown', ''); } else { $linklist->parse('category_dropdown', 'catdrop', true); } $linklist->set_var('cid', $cid); $linklist->set_var('cid_plain', $cid); $linklist->set_var('cid_encoded', rawurlencode($cid)); $linklist->set_var('lang_addalink', $LANG_LINKS[116]); // Build SQL for links $sql = 'SELECT lid,cid,url,description,title,hits,owner_id,group_id,perm_owner,perm_group,perm_members,perm_anon'; $from_where = " FROM {$_TABLES['links']}"; if ($_LI_CONF['linkcols'] > 0) { if (!empty($cid)) { $from_where .= " WHERE cid='" . DB_escapeString($cid) . "'"; } else { $from_where .= " WHERE cid=''"; } $from_where .= COM_getPermSQL('AND'); } else { $from_where .= COM_getPermSQL(); } $order = ' ORDER BY cid ASC,title'; $limit = ''; if ($_LI_CONF['linksperpage'] > 0) { if ($page < 1) { $start = 0; } else { $start = ($page - 1) * $_LI_CONF['linksperpage']; } $limit = ' LIMIT ' . $start . ',' . $_LI_CONF['linksperpage']; } $result = DB_query($sql . $from_where . $order . $limit); $nrows = DB_numRows($result); if ($nrows == 0) { if ($cid == $_LI_CONF['root'] && $page <= 1 && $_LI_CONF['show_top10']) { $result = DB_query("SELECT lid,url,title,description,hits,owner_id,group_id,perm_owner,perm_group,perm_members,perm_anon FROM {$_TABLES['links']} WHERE (hits > 0)" . COM_getPermSQL('AND') . LINKS_getCategorySQL('AND') . " ORDER BY hits DESC LIMIT 10"); $nrows = DB_numRows($result); if ($nrows > 0) { $linklist->set_var('link_details', ''); $linklist->set_var('link_category', $LANG_LINKS_STATS['stats_headline']); for ($i = 0; $i < $nrows; $i++) { $A = DB_fetchArray($result); prepare_link_item($A, $linklist); $linklist->parse('link_details', 'link', true); } $linklist->parse('category_links', 'catlinks', true); } } $linklist->set_var('page_navigation', ''); } else { $currentcid = ''; for ($i = 0; $i < $nrows; $i++) { $A = DB_fetchArray($result); if (strcasecmp($A['cid'], $currentcid) != 0) { // print the category and link if ($i > 0) { $linklist->parse('category_links', 'catlinks', true); $linklist->set_var('link_details', ''); } $currentcid = $A['cid']; $currentcategory = DB_getItem($_TABLES['linkcategories'], 'category', "cid = '" . DB_escapeString($currentcid) . "'"); if ($A['cid'] == $_LI_CONF['root']) { $linklist->set_var('link_category', $LANG_LINKS['root']); } else { $linklist->set_var('link_category', $currentcategory); } } prepare_link_item($A, $linklist); $linklist->parse('link_details', 'link', true); } $linklist->parse('category_links', 'catlinks', true); $result = DB_query('SELECT COUNT(*) AS count ' . $from_where); list($numlinks) = DB_fetchArray($result); $pages = 0; if ($_LI_CONF['linksperpage'] > 0) { $pages = (int) ($numlinks / $_LI_CONF['linksperpage']); if ($numlinks % $_LI_CONF['linksperpage'] > 0) { $pages++; } } if ($pages > 0) { if ($_LI_CONF['linkcols'] > 0 && !empty($currentcid)) { $catlink = '?category=' . rawurlencode($currentcid); } else { $catlink = ''; } $linklist->set_var('page_navigation', COM_printPageNavigation($_CONF['site_url'] . '/links/index.php' . $catlink, $page, $pages)); } else { $linklist->set_var('page_navigation', ''); } } $linklist->set_var('blockfooter', COM_endBlock()); $linklist->parse('output', 'linklist'); $display .= $linklist->finish($linklist->get_var('output')); $display = COM_createHTMLDocument($display, array('pagetitle' => $page_title)); return $display; }