# @package PHPLinkDirectory # ###################################################################### */ require_once 'init.php'; define('DIR_LPP', 20); $sort_cols = array ( 'P' => 'PAGERANK', 'H' => 'HITS', 'A' => 'TITLE'); $sort_ord = array ( 'P' => 'DESC' , 'H' => 'DESC', 'A' => 'ASC'); // Paging 1 $page = (!empty ($_REQUEST['p']) && preg_match ('`^[\d]+$`', $_REQUEST['p']) ? intval ($_REQUEST['p']) : 1);; if ($page != 1) { $min = PAGER_LPP * $page - (PAGER_LPP); $max = PAGER_LPP * $page; } else { $min = 0; $max = PAGER_LPP; } $limit = " LIMIT {$min}," . PAGER_LPP; // End Paging 1 $getSort = (!empty ($_REQUEST['s']) ? trim ($_REQUEST['s']) : (!empty ($URLvariables['s']) ? $URLvariables['s'] : '')); if (array_key_exists ($getSort, $sort_cols)) { $sort = $getSort; } else { $sort = DEFAULT_SORT; } if ((ENABLE_PAGERANK != 1 || SHOW_PAGERANK != 1) && $sort == 'P') $sort = 'H'; $tpl->assign('sort', $sort); $path = array(); $path[] = array ('ID' => '0', 'TITLE' => _L(SITE_NAME), 'TITLE_URL' => DOC_ROOT, 'DESCRIPTION' => SITE_DESC); if (FTR_ENABLE) { $feat_where = "AND (`FEATURED` = '0')"; } $expire_where = "AND (`EXPIRY_DATE` >= ".$db->DBDate(time())." OR `EXPIRY_DATE` IS NULL)"; $available_options = array ('d' => _L('Latest Links'), 'h' => _L('Top Hits')); if (!empty ($_REQUEST['p']) && array_key_exists ($_REQUEST['p'], $available_options)) { switch ($_REQUEST['p']) { case 'd': $links = $db->GetAll("SELECT * FROM `{$tables['link']['name']}` WHERE `STATUS` = '2' {$expire_where} ORDER BY `DATE_ADDED` DESC LIMIT 0, ".LINKS_TOP); $path[] = array ('ID' => '0', 'TITLE' => _L('Latest Links'), 'TITLE_URL' => '', 'DESCRIPTION' => ''); break; case 'h': default : $links = $db->GetAll("SELECT * FROM `{$tables['link']['name']}` WHERE `STATUS` = '2' {$expire_where} ORDER BY `HITS` DESC LIMIT 0, ".LINKS_TOP); $path[] = array ('ID' => '0', 'TITLE' => _L('Top Hits'), 'TITLE_URL' => '', 'DESCRIPTION' => ''); break; } $tpl->assign('p', $_REQUEST['p']); } elseif (isset ($_REQUEST['q']) && !empty ($_REQUEST['q']) && strlen (trim ($_REQUEST['q'])) > 2) { $q = $db->qstr('%'.preg_replace('`\s+`','%', trim ($_REQUEST['q'])).'%'); if (FTR_ENABLE) { $feat_links = $db->GetAll("SELECT * FROM `{$tables['link']['name']}` WHERE `STATUS` = '2' AND (`URL` LIKE {$q} OR `TITLE` LIKE {$q} OR `DESCRIPTION` LIKE {$q}) AND `FEATURED` = '1' {$expire_where} ORDER BY `EXPIRY_DATE` DESC"); $tpl->assign('feat_links', $feat_links); } $links = $db->GetAll("SELECT * FROM `{$tables['link']['name']}` WHERE `STATUS` = '2' AND (`URL` LIKE {$q} OR `TITLE` LIKE {$q} OR `DESCRIPTION` LIKE {$q}) {$feat_where} {$expire_where} ORDER BY {$sort_cols[$sort]} {$sort_ord[$sort]}"); $categs = array(); $path[] = array ('ID' => '0', 'TITLE' => _L('Search Results'), 'TITLE_URL' => '', 'DESCRIPTION' => _L('Search results for: ').$_REQUEST['q']); $tpl->assign('qu', rawurlencode (trim ($_REQUEST['q']))); } else { $id = get_category(); if (!$tpl->is_cached('main.tpl', $id)) { $path = get_path($id); if (FTR_ENABLE) { $feat_links = $db->GetAll("SELECT * FROM `{$tables['link']['name']}` WHERE `STATUS` = '2' AND `CATEGORY_ID` = ".$db->qstr($id)." AND `FEATURED` = 1 {$expire_where} ORDER BY `EXPIRY_DATE` DESC"); $tpl->assign('feat_links', $feat_links); } // Paging 3 $count = $db->GetOne("SELECT COUNT(*) FROM `{$tables['link']['name']}` WHERE `STATUS` = '2' AND `CATEGORY_ID` = ".$db->qstr($id)." {$feat_where} {$expire_where}"); // End Paging 3 $links = $db->GetAll("SELECT * FROM `{$tables['link']['name']}` WHERE `STATUS` = '2' AND `CATEGORY_ID` = ".$db->qstr($id)." {$feat_where} {$expire_where} ORDER BY `{$sort_cols[$sort]}` {$sort_ord[$sort]} {$limit}"); $rs = $db->Execute("SELECT * FROM `{$tables['category']['name']}` WHERE `STATUS` = 2 AND `PARENT_ID` = ".$db->qstr($id)." ORDER BY `TITLE`"); while (!$rs->EOF) { $row = $rs->FetchRow(); if ($id == 0 && CATS_PREVIEW > 0) { $rs2 = $db->SelectLimit("SELECT * FROM `{$tables['category']['name']}` WHERE `STATUS` = '2' AND `SYMBOLIC` <> 1 AND `PARENT_ID` = ".$db->qstr($row['ID'])." ORDER BY `TITLE` ASC", CATS_PREVIEW); $row['SUBCATS'] = $rs2->GetRows(); $rs2->Close(); } if (ENABLE_REWRITE && empty ($row['TITLE_URL'])) { $row['TITLE_URL'] = preg_replace ('`[^\w_-]`', '_', $row['TITLE']); $row['TITLE_URL'] = str_replace ('__', '_', $row['TITLE_URL']); } if ($row['SYMBOLIC'] == 1) { $row['ID'] = $row['SYMBOLIC_ID']; $tempcat = $db->GetRow("SELECT * FROM `{$tables['category']['name']}` WHERE `ID` = ".$db->qstr($row['SYMBOLIC_ID'])); if (empty ($row['TITLE'])) $row['TITLE'] = $tempcat['TITLE']; $row['TITLE'] = "@" . $row['TITLE']; if (ENABLE_REWRITE == 1) $row['TITLE_URL'] = construct_mod_rewrite_path($row['SYMBOLIC_ID']); $row['COUNT'] = $db->GetOne("SELECT COUNT(*) FROM `{$tables['category']['name']}` WHERE `STATUS` = '2' AND `PARENT_ID` = ".$db->qstr($row['SYMBOLIC_ID'])); $row['COUNT'] += $db->GetOne("SELECT COUNT(*) FROM `{$tables['link']['name']}` WHERE `STATUS` = '2' AND `CATEGORY_ID` = ".$db->qstr($row['SYMBOLIC_ID'])); } else { $row['COUNT'] = $db->GetOne("SELECT COUNT(*) FROM `{$tables['category']['name']}` WHERE `STATUS` = '2' AND `PARENT_ID` = ".$db->qstr($row['ID'])); $row['COUNT'] += $db->GetOne("SELECT COUNT(*) FROM `{$tables['link']['name']}` WHERE `STATUS` = '2' AND `CATEGORY_ID` = ".$db->qstr($row['ID'])); } $categs[] = $row; } $rs->Close(); } if ($id > 0) { $db->Execute("UPDATE `{$tables['category']['name']}` SET `HITS` = `HITS` + 1 WHERE `ID` = ".$db->qstr($id)); } } // Paging 4 $tpl->assign('list_total', $count); // End Paging 4 $tpl->assign('category', $path[count($path) - 1]); $tpl->assign('path', $path); $tpl->assign('links', $links); $tpl->assign('categs', $categs); //Clean whitespace $tpl->load_filter('output', 'trimwhitespace'); //Make output echo $tpl->fetch('main.tpl', $id); ?>