PHP Code:
<?php
//XXXXXXXXXXXXXXXXXX;,XMMMMMS i7XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXSXXXXXXSSXXXSXXXXXXSXXXSXSXXSXXSXXSXXXX
//XXXXXXXXXXXXXXXX7:XMM0aaZWMMX.rXXXXXXX77;iiiii;7XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
//XXXXXXXXXXXXXXXXiXMZXXS22XX8M0 rXXXXX7r20@MMMW8;;7XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
//XXXXXXXXXXXXXXX7.M8XXXr :0MMMMZ:XXXX72W8S7rrXS8MB;;7XXXXXXXXXXSXXXSXXXXXXSXXXXXXXXXXXSXXXXXXXSXXXXXX
//77777X7777X77XXiSMSXrWMMMBi ,@M XX7rZ8;,,,,i;;;7aMSi777XX77XXX7XX77XXXXX77X7XXX7XX77XX7XXX7XX7XXXXXX
//XXX7777XX777777:BMMMZr i;ZM 777SZi,:::ii;r;r7S@a:777777777777777X7XX777X7X7XXXXXXX7777XX7XX77X77
//XXXXXXXXXXXXXXX:ZM. .,:;rZM 77:8,,::.. .:iXMr;XXXXXXXXXXXXX7X7XXXX7X7X77X7XX77XXXXXXXXXXXXXX
//777777777777777iiMX:,,,,::irXMa.7riM, .;0MMMM8iXM.r777777777777777777777777777777777r777777777r7
//777777777777777r.@MX.,:iiiir2@ ;;7MMMMMMMM@ar:.iX8SMi;777777777777777777777777777777777777777777777
//7777777777777777i MM@r::iir8MMWX Mi .ii;;rS@Xi777777777777777777777777777777777777777777777
//rrrrrrrrrrrrrrrrri iMMMMMMM070MM7 ;Z.,.....,:i;rraZ8X:rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
//r77777777rrrrrrrrr rMaW77i :::i;ZMM a;,,,,::i;r77rZ@0:irrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
//rr;rr;r;i. ,. MX:7 BSX7r7aMM.2;iii;;;rX772MMM ;rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
//rrrrr;, ;B@@8: 28;72@ MSXXrrXWMMaMXii;;r7X7SM, ,rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
//;rr;i XMMMMMMMMMMM:iXX@ M2X2X;SB@M .M0X;;;7a@MM7. ,;rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr;r;rrrrr;
//;;ii MMM@WWWWWWMMM8.XXZM MS::arX@Mr 2ZMMMMMMMM7iSMM :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
//;;; MM@WWWWWWWWWBM0 7XSM MSa Z00B; MMBr2SZ8r :rSSSZM2 .i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;r;;;;;;;;
//ii. MM@WWWWMMMM@WMM22XS2BW M0MBa0. 7MM@8SrS2aZ8Z22MM :iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
//;; ,MMMM@W@@. MMM, Za2aZ0.Si;: MMaWMMMMMMMMMMMZ i;;;;iiiii;;;;;;;iiiiiiiii;;;iiiiiiiiiiii
//i: MM8 8@WWWaMMMX .rZ ,r7 ;MMMMMMMW MMX .MMS27;;rrr;iiiiiiiiir777r;iiiiiiiiiiiiiiiii
//ii MM WMWMMMM ,:iM .i;S, :MMMMMMMMMMM :MMMMMZ ZX;;rSaS7;ii;X2r. ;SX;iiiiiiiiiiiiiii
//i: MMaZM@MM0 ,,::iM; ;X MMMMMM MMM rMMMMMMMMMMMMMMM XSXS X;iiiiiiiiiiiiii
//:: MMM@@MMi .:,::i;;M; 7 MMMM; MM MMMMMMMMMMMMMMMMMMM.MMMMMS MMMMM 7i:::i:::::::::
//:: MM@WMM :i;ii;;rrM . MMMM XMMM MM MMMM MMM WMMMMMMMMMMMMW MMMMMMMM i;iiiiiiiiiiiii
//:: MM@MM i;77rrrrr2MX8 MMMM WM2 MMM MMMMMBMMM:MMMMMMMMMM0 MMM r,,,,,:,,,,,,:
//::: MMMM ir;rXrrr78MMMM :MMM ,7ZMM@a::S 8MM. MMMMMMM MM :MMMMMM MMM 7:::::::::::::
//,,, MMM2rX77X7X0MMZ7M MMM0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMM 7 MMMM :, MMM r,,,,,,,,,,,,,
//,,,, MMMMMMMMMMMW aM MMM2MMMMMMMMMMMMMMMMMMMMMMMMMMMMB MMM .r MMMMM ; MMM Xrr;i:,,,,,,,,
//,,,,,. SX.;aM7 M MMM :88i MMMr MMMMMMMMM :i MMX 7MMMM :i,,,,,.,
//,..,.,. B7i:..2M , ;i @MMM @MMMM MMMMM MMMM MMX @MMMMMMMMMMMMMMMMMMMMB .:......
//..,... MWSX7772WM2 M MMMMMMMMMMMMMMMa , MMM MMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM :,,,,,,
//...... M2 S7XSr ,BM M MMMMMMMMMMMMZ ::i. 8MMM MMMMMMMMMMMMMM2 ;20MMMMMMMMMMMZ .......
//...... MMZ7Z22aBS82@M, @M MMMMMMMM :,.,. MMM .MMMMMWMMM . MMMB ,.....
//.,,,,. MMMMMMMMMMMMMMMM: MMM ::,,,,,, MMM , 0MMMMMMM :::. MMM .:::: MMMM ,,,,,,.
// :MM@ ;MMMMMMM MMM MMMMZ
// MMMMM 0MMM SMMMMM
// GRPS: Commune For Groups ,MMMa MMMMX MMMMMM
// vBulletin Add-On Software MMMM MMMMMMMMMMM
// by sabret00the MMM MMMMMMa
// Copyright 2005 M
// ################ SET SCRIPT LOCATION ENVIRONMENT ######################
require_once('./includes/config_grps.php');
// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);
// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS', 1);
define('THIS_SCRIPT', 'browse');
// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array();
// get special data templates from the datastore
$specialtemplates = array();
// pre-cache templates used by all actions
$globaltemplates = array(
'GROUPS',
'groups_browse',
'groups_browse_cathead',
'groups_browse_catbit',
'groups_browse_catfoot',
'groups_groupshome_popularbits',
'groups_groupshome_largestbits',
'groups_groupshome_mygroups',
'groups_groupshome_mygroupsbits',
'groups_navbar',
);
// ######################### REQUIRE BACK-END ############################
require_once("./global.php");
require_once("./includes/functions_grps.php");
// pre-cache templates used by all actions
$globaltemplates = array();
// globalize variables
$vbulletin->input->clean_array_gpc('r', array(
'page' => TYPE_INT,
'perpage' => TYPE_INT,
'pagenumber' => TYPE_INT,
'do' => TYPE_STR,
'view' => TYPE_STR,
'c' => TYPE_INT,
));
// #######################################################################
// ######################## START MAIN SCRIPT ############################
// #######################################################################
// temp admin options
// url of the grps
$groupurl = "$vbulletin->options[homeurl]/groups/?groupid=$groupid";
if ($vbulletin->options['grps_status']=="0") {
eval(print_standard_error('grps_statusoff'));
}
// this switch handles the right column
$grps_pagetitle = "Browse Groups";
// ###################### pagenav
$pagenavcount = $db->query_first("
SELECT COUNT(*) AS totalgroups
FROM grps
LEFT JOIN grps_categories ON (grps_categories.catid = grps.catid)
WHERE grps.approved = '1'
ORDER BY grps.title
");
switch ($vbulletin->GPC['view'])
{
case "alphabetical":
// creates the pagenav
$page = ($vbulletin->GPC['page'] < 1) ? "1" : intval($vbulletin->GPC['page']);
$totalgroups = $db->query_first("SELECT COUNT(groupid) AS total FROM grps WHERE approved = '1' ");
$totalgroups = $totalgroups['total'];
$currentlocation = "browse.php?" . $vbulletin->session->vars['sessionurl'] ."view=alphabetical";
$perpage = "25";
$pagenumber = $page;
$lowerlimit = ($page * $perpage);
$query_lowerlimit = ($lowerlimit - $perpage);
// add's page title
$grps_pagetitle .= " Alphabetically";
$grps_alphabetical = $db->query_read("
SELECT grps.groupid, grps.title, grps.description, grps.catid, grps_categories.title AS catname, grps.approved, grps.leaderid, grps_setting.hidden_group
FROM grps
LEFT JOIN grps_categories ON (grps_categories.catid = grps.catid)
LEFT JOIN grps_setting ON (grps_setting.groupid = grps.groupid)
WHERE grps.approved = '1' AND grps_setting.hidden_group != '1'
ORDER BY grps.title
LIMIT $query_lowerlimit, $perpage
");
$grps_categoryinfo['catname'] = "All " . $vbulletin->options[hometitle] . " Groups In Alphabetical Order";
$hideviewall = 1;
eval("\$grps_catbits = \"" . fetch_template("groups_browse_cathead") . "\";");
if (!$db->num_rows($grps_alphabetical))
{ // no groups, this becomes obselete after the first group gets created
$grps_catbits .= "<tr><td class=\"alt1\" align=\"center\">no groups currently found in the database</td></tr>";
}
else
{ // display the information
while ($grps_categoryinfo = $db->fetch_array($grps_alphabetical))
{
$grps_categoryinfo['title'] = stripslashes($grps_categoryinfo['title']);
$grps_categoryinfo['description'] = nl2br(stripslashes($grps_categoryinfo['description']));
eval("\$grps_catbits .= \"" . fetch_template("groups_browse_catbit") . "\";");
} //now echo the date into the template
}
eval("\$grps_catbits .= \"" . fetch_template("groups_browse_catfoot") . "\";");
break;
case "bymembers":
// creates the pagenav
$page = ($vbulletin->GPC['page'] < 1) ? "1" : intval($vbulletin->GPC['page']);
$totalgroups = $db->query_first("SELECT COUNT(groupid) AS total FROM grps WHERE approved = '1'");
$totalgroups = $totalgroups['total'];
$currentlocation = "browse.php?" . $vbulletin->session->vars['sessionurl'] ."view=bymembers";
$perpage = "25";
$pagenumber = $page;
$lowerlimit = ($page * $perpage);
$query_lowerlimit = ($lowerlimit - $perpage);
// add's page title
$grps_pagetitle .= " By Number Of Members";
$grps_members = $db->query_read("
SELECT COUNT(*) AS totalmembers, grps.groupid, grps.title, grps.description, grps.catid, grps_categories.title AS catname, grps.approved, grps.leaderid, grps_setting.hidden_group
FROM grps_user
LEFT JOIN grps ON (grps.groupid = grps_user.groupid)
LEFT JOIN grps_categories ON (grps_categories.catid = grps.catid)
LEFT JOIN grps_setting ON (grps_setting.groupid = grps.groupid)
WHERE grps.approved = '1' AND grps_setting.hidden_group != '1'
GROUP BY grps.groupid
ORDER BY totalmembers DESC, grps.title
LIMIT $query_lowerlimit, $perpage
");
$grps_categoryinfo['catname'] = $vbulletin->options[hometitle] . " Groups Ordered By Size";
$hideviewall = 1;
eval("\$grps_catbits = \"" . fetch_template("groups_browse_cathead") . "\";");
if (!$db->num_rows($grps_members))
{ // no groups, this becomes obselete after the first group gets created
$grps_catbits .= "<tr><td class=\"alt1\" align=\"center\">no groups currently found in the database</td></tr>";
}
else
{ // display the information
while ($grps_categoryinfo = $db->fetch_array($grps_members))
{
$grps_categoryinfo['title'] = stripslashes($grps_categoryinfo['title']);
$grps_categoryinfo['description'] = nl2br(stripslashes($grps_categoryinfo['description']));
eval("\$grps_catbits .= \"" . fetch_template("groups_browse_catbit") . "\";");
} //now echo the date into the template
}
eval("\$grps_catbits .= \"" . fetch_template("groups_browse_catfoot") . "\";");
break;
default:
// creates the pagenav
$page = ($vbulletin->GPC['page'] < 1) ? "1" : intval($vbulletin->GPC['page']);
$totalgroups = $db->query_first("SELECT COUNT(groupid) AS total FROM grps WHERE approved = '1'");
$totalgroups = $totalgroups['total'];
$currentlocation = "browse.php?" . $vbulletin->session->vars['sessionurl'];
$perpage = "25";
$pagenumber = $page;
$lowerlimit = ($page * $perpage);
$query_lowerlimit = ($lowerlimit - $perpage);
// page title for grouphome.
$grps_pagetitle .= " By Categories";
// selects the number of validated groups for group home
$total = $db->query_read("
SELECT groupid
FROM grps
WHERE approved = 1
");
$num = number_format($db->num_rows($total));
$grps_limit=10;
if ($vbulletin->options[grps_moderation]=="1")
{
$grps_moderation="WHERE grps.visible=1";
}
$grps_categories = $db->query_read("
SELECT grps.groupid, grps.title, grps.description, grps.catid, grps_categories.title AS catname, grps.approved, grps.leaderid, grps_setting.hidden_group
FROM grps_categories
INNER JOIN grps ON grps_categories.catid = grps.catid AND grps.approved = '1'
INNER JOIN grps AS G2 ON grps_categories.catid = G2.catid AND G2.approved = '1' AND grps.title >= G2.title
LEFT JOIN grps_setting ON (grps_setting.groupid = grps.groupid)
WHERE grps_setting.hidden_group != '1'
GROUP BY grps_categories.title, grps.title, grps.description, grps.leaderid
HAVING COUNT(*) <= 10
ORDER BY grps.catid, grps.title
LIMIT $query_lowerlimit, $perpage
");
if (!$db->num_rows($grps_categories))
{ // no groups, this becomes obselete after the first group gets created
eval("\$grps_catbits = \"" . fetch_template("groups_browse_cathead") . "\";");
$grps_catbits .= "<tr><td class=\"alt1\" align=\"center\">no groups found in this catergory at this time</td></tr>";
eval("\$grps_catbits .= \"" . fetch_template("groups_browse_catfoot") . "\";");
}
else
{ // display the information
$row = "0";
while ($grps_categoryinfo = $db->fetch_array($grps_categories))
{
if ($row == 0)
{
eval("\$grps_catbits .= \"" . fetch_template("groups_browse_cathead") . "\";");
// reset catname store
$grps_catidstore = $grps_categoryinfo['catid'];
$seperator = TRUE;
}
if ($grps_catidstore != $grps_categoryinfo[catid] AND $row != 0)
{
eval("\$grps_catbits .= \"" . fetch_template("groups_browse_catfoot") . "\";");
eval("\$grps_catbits .= \"" . fetch_template("groups_browse_cathead") . "\";");
}
$grps_categoryinfo['catid'] = intval($grps_categoryinfo['catid']);
$grps_categoryinfo['title'] = stripslashes($grps_categoryinfo['title']);
$grps_categoryinfo['description'] = nl2br(stripslashes($grps_categoryinfo['description']));
$grps_categoryinfo['catname'] = stripslashes($grps_categoryinfo['catname']);
eval("\$grps_catbits .= \"" . fetch_template("groups_browse_catbit") . "\";");
if ($grps_categoryinfo[catid] != $grps_catidstore)
{
// reset catname store
$grps_catidstore = $grps_categoryinfo['catid'];
}
$row++;
} //now echo the date into the template
eval("\$grps_catbits .= \"" . fetch_template("groups_browse_catfoot") . "\";");
}
if ($vbulletin->GPC['c'] != "")
{
$c = intval($vbulletin->GPC['c']);
// creates the pagenav
$page = ($vbulletin->GPC['page'] < 1) ? "1" : intval($vbulletin->GPC['page']);
$totalgroups = $db->query_first("SELECT COUNT(groupid) AS total FROM grps WHERE approved = '1'");
$totalgroups = $totalgroups['total'];
$currentlocation = "browse.php?" . $vbulletin->session->vars['sessionurl'] . "c=$c";
$perpage = "25";
$pagenumber = $page;
$lowerlimit = ($page * $perpage);
$query_lowerlimit = ($lowerlimit - $perpage);
$groupsforcat = $db->query_read("
SELECT grps.groupid, grps.title, grps.description, grps.catid, grps_categories.title AS catname, grps.approved, grps.leaderid, grps_setting.hidden_group
FROM grps
LEFT JOIN grps_categories ON (grps_categories.catid = grps.catid)
LEFT JOIN grps_setting ON (grps_setting.groupid = grps.groupid)
WHERE grps.approved = '1' AND grps.catid = $c AND grps_setting.hidden_group != '1'
ORDER BY grps.title
LIMIT $query_lowerlimit, $perpage
");
$catname = $db->query_first("
SELECT title AS catname, catid
FROM grps_categories
WHERE catid = $c
");
$grps_categoryinfo2['catid'] = stripslashes($catname['catid']);
$grps_categoryinfo2['catname'] = stripslashes($catname['catname']);
$grps_categoryinfo['catid'] = stripslashes($catname['catid']);
$grps_categoryinfo['catname'] = stripslashes($catname['catname']);
eval("\$grps_catbits = \"" . fetch_template("groups_browse_cathead") . "\";");
if (!$db->num_rows($groupsforcat))
{ // no groups, this becomes obselete after the first group gets created
$grps_catbits .= "<tr><td class=\"alt1\" align=\"center\">no groups found in this catergory at this time</td></tr>";
}
else
{ // display the information
while ($grps_categoryinfo = $db->fetch_array($groupsforcat))
{
$grps_categoryinfo['title'] = stripslashes($grps_categoryinfo['title']);
$grps_categoryinfo['description'] = nl2br(stripslashes($grps_categoryinfo['description']));
eval("\$grps_catbits .= \"" . fetch_template("groups_browse_catbit") . "\";");
} //now echo the date into the template
}
eval("\$grps_catbits .= \"" . fetch_template("groups_browse_catfoot") . "\";");
}
}
$pagenav = construct_page_nav($pagenumber, $perpage, $totalgroups, "browse.php?" . $vbulletin->session->vars['sessionurl'], "" . (!empty($vbulletin->GPC['perpage']) ? "&pp=$perpage" : "") . "");
$navbits = array();
$navbits["browse.php?" . $vbulletin->session->vars['sessionurl'] . "c=" . $grps_categoryinfo2['catid']] = $grps_categoryinfo2['catname'];
$navbits[''] = 'Browse Groups';
$navbits = construct_navbits($navbits);
//handles the rest of the page and layout.
eval("\$grps_main .= \"".fetch_template("groups_browse")."\";");
eval('$grps_navbar = "' . fetch_template('groups_navbar') . '";');
eval('$headinclude = "' . fetch_template('headinclude') . '";');
$headinclude = grps_rewrite_links($headinclude);
eval('$navbar = "' . fetch_template('navbar') . '";');
$navbar = grps_rewrite_links($navbar);
eval('$footer = "' . fetch_template('footer') . '";');
$footer = grps_rewrite_links($footer);
eval("print_output(\"".fetch_template("GROUPS")."\");");
?>