* @author Bogdan Dumitru * @mod developers and support * Casey Wilson / Ap0s7le * York Kie Tan / yktan * @package PHPLinkDirectory * @version 2.0.0 RC5.2 **/ 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 = preg_match('`\d+`', $_REQUEST['p']) ? $_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 if(array_key_exists($_REQUEST['s'], $sort_cols)){ $sort = $_REQUEST['s']; }else{ $sort = DEFAULT_SORT; } if(!ENABLE_PAGERANK || !SHOW_PAGERANK && $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)"; if (isset($_REQUEST['p'])){ 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': $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; // Paging 2 default: $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 = $id AND FEATURED=1 $expire_where ORDER BY EXPIRY_DATE DESC"); $tpl->assign('feat_links', $feat_links); } $count = $db->GetAll("SELECT * FROM {$tables['link']['name']} WHERE STATUS=2 AND CATEGORY_ID = $id $feat_where $expire_where ORDER BY {$sort_cols[$sort]} {$sort_ord[$sort]}"); $links = $db->GetAll("SELECT * FROM {$tables['link']['name']} WHERE STATUS=2 AND CATEGORY_ID = $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 = $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 = ".$row['ID']." ORDER BY HITS DESC, TITLE", 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']); } $row['COUNT'] = $db->GetOne("SELECT COUNT(*) FROM {$tables['category']['name']} WHERE STATUS=2 AND PARENT_ID = ".$row['ID']); $row['COUNT'] += $db->GetOne("SELECT COUNT(*) FROM {$tables['link']['name']} WHERE STATUS=2 AND CATEGORY_ID = ".$row['ID']); 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']; } $categs[] = $row; } $rs->Close(); } // $count = $db->GetAll("SELECT * FROM {$tables['link']['name']} WHERE STATUS=2 AND CATEGORY_ID = {$id}"); $links = $db->GetAll("SELECT * FROM {$tables['link']['name']} WHERE STATUS=2 AND CATEGORY_ID = {$id} $feat_where $expire_where ORDER BY {$sort_cols[$sort]} {$sort_ord[$sort]}{$limit}"); $path = get_path($id); $path[] = array ('ID' => $id, 'TITLE' => _L('Page ' . $page), 'TITLE_URL' => '', 'DESCRIPTION' => ''); break; // End Paging 2 } $tpl->assign('p', $_REQUEST['p']); }elseif (isset ($_REQUEST['q'])) { $q = $db->qstr('%'.preg_replace('`\s+`','%', $_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($_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 = $id AND FEATURED=1 $expire_where ORDER BY EXPIRY_DATE DESC"); $tpl->assign('feat_links', $feat_links); } // Paging 3 $count = $db->GetAll("SELECT * FROM {$tables['link']['name']} WHERE STATUS=2 AND CATEGORY_ID = $id $feat_where $expire_where ORDER BY {$sort_cols[$sort]} {$sort_ord[$sort]}"); // End Paging 3 $links = $db->GetAll("SELECT * FROM {$tables['link']['name']} WHERE STATUS=2 AND CATEGORY_ID = $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 = $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 = ".$row['ID']." ORDER BY HITS DESC, TITLE", 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']); } $row['COUNT'] = $db->GetOne("SELECT COUNT(*) FROM {$tables['category']['name']} WHERE STATUS=2 AND PARENT_ID = ".$row['ID']); $row['COUNT'] += $db->GetOne("SELECT COUNT(*) FROM {$tables['link']['name']} WHERE STATUS=2 AND CATEGORY_ID = ".$row['ID']); 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']; } $categs[] = $row; } $rs->Close(); } if ($id > 0) $db->Execute("UPDATE {$tables['category']['name']} SET HITS=HITS+1 WHERE ID=$id"); } // Paging 4 $tpl->assign('list_total', count($count)); // End Paging 4 $tpl->assign('category', $path[count($path) - 1]); $tpl->assign('path', $path); $tpl->assign('links', $links); $tpl->assign('categs', $categs); echo $tpl->fetch('main.tpl', $id); ?>