Add the ability to choose the number of top apps you want
and to drill down into sections
This commit is contained in:
committed by
Jeremy Newman
parent
b9db13f6a8
commit
471f673a01
145
votestats.php
145
votestats.php
@@ -2,15 +2,146 @@
|
|||||||
|
|
||||||
include("path.php");
|
include("path.php");
|
||||||
include(BASE."include/"."incl.php");
|
include(BASE."include/"."incl.php");
|
||||||
|
require(BASE."include/"."category.php");
|
||||||
|
|
||||||
apidb_header("Vote Stats - Top 25 Applications");
|
/* default to 25 apps, main categories */
|
||||||
|
$topNumber = 25;
|
||||||
|
$categoryId = "any"; /* default to all categories */
|
||||||
|
|
||||||
|
/* process the post variables to override the default settings */
|
||||||
|
if($HTTP_POST_VARS)
|
||||||
|
{
|
||||||
|
if(isset($_POST['topNumber'])) $topNumber = $_POST['topNumber'];
|
||||||
|
if(isset($_POST['categoryId'])) $categoryId = $_POST['categoryId'];
|
||||||
|
}
|
||||||
|
|
||||||
|
apidb_header("Vote Stats - Top $topNumber Applications");
|
||||||
|
|
||||||
|
/* display the selection for the top number of apps to view */
|
||||||
|
echo "<form method=post name=message>";
|
||||||
|
echo "<b>Number of top apps to display:</b>";
|
||||||
|
echo "<select name='topNumber'>";
|
||||||
|
$topNumberArray = array(25, 50, 100, 200);
|
||||||
|
|
||||||
|
foreach ($topNumberArray as $i => $value)
|
||||||
|
{
|
||||||
|
if($topNumberArray[$i] == $topNumber)
|
||||||
|
echo "<option value='$topNumberArray[$i]' SELECTED>$topNumberArray[$i]";
|
||||||
|
else
|
||||||
|
echo "<option value='$topNumberArray[$i]'>$topNumberArray[$i]";
|
||||||
|
}
|
||||||
|
echo "</select>";
|
||||||
|
|
||||||
|
/* list sub categories */
|
||||||
|
if($categoryId == "any")
|
||||||
|
$catId = 0;
|
||||||
|
else
|
||||||
|
$catId = $categoryId;
|
||||||
|
|
||||||
|
/******************************************************************/
|
||||||
|
/* build an array of categories from the current category back up */
|
||||||
|
/* the tree to the main category */
|
||||||
|
$cat_array = Array();
|
||||||
|
$cat_name_array = Array();
|
||||||
|
|
||||||
|
if($catId != 0)
|
||||||
|
{
|
||||||
|
$currentCatId = $catId;
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
$catQuery = "SELECT appCategory.catName, appCategory.catParent ".
|
||||||
|
"FROM appCategory WHERE appCategory.catId = '$currentCatId';";
|
||||||
|
$result = mysql_query($catQuery);
|
||||||
|
|
||||||
|
if($result)
|
||||||
|
{
|
||||||
|
$row = mysql_fetch_object($result);
|
||||||
|
$catParent = $row->catParent;
|
||||||
|
|
||||||
|
array_push($cat_array, "$currentCatId");
|
||||||
|
array_push($cat_name_array, "$row->catName");
|
||||||
|
}
|
||||||
|
|
||||||
|
$currentCatId = $catParent;
|
||||||
|
} while($currentCatId != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*******************************************************************/
|
||||||
|
/* add options for all of the categories that we are recursed into */
|
||||||
|
echo "<b>Section:</b>";
|
||||||
|
echo "<select name='categoryId'>";
|
||||||
|
|
||||||
|
if($catId == 0)
|
||||||
|
echo "<option value='any' SELECTED>Any";
|
||||||
|
else
|
||||||
|
echo "<option value='any'>Any";
|
||||||
|
|
||||||
|
$indent = 1;
|
||||||
|
|
||||||
|
/* reverse the arrays because we need the entries in the opposite order */
|
||||||
|
$cat_array_reversed = array_reverse($cat_array);
|
||||||
|
$cat_name_array_reversed = array_reverse($cat_name_array);
|
||||||
|
foreach ($cat_array_reversed as $i => $value)
|
||||||
|
{
|
||||||
|
/* if this is the current category, select this option */
|
||||||
|
if($categoryId == $cat_array_reversed[$i])
|
||||||
|
echo "<option value='$cat_array_reversed[$i]' SELECTED>";
|
||||||
|
else
|
||||||
|
echo "<option value='$cat_array_reversed[$i]'>";
|
||||||
|
|
||||||
|
echo str_repeat("-", $indent);
|
||||||
|
echo stripslashes($cat_name_array_reversed[$i]);
|
||||||
|
|
||||||
|
$indent++;
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************************/
|
||||||
|
/* add to the list all of the sub sections of the current section */
|
||||||
|
$cat = new Category($catId);
|
||||||
|
$catFullPath = make_cat_path($cat->getCategoryPath());
|
||||||
|
$subs = $cat->getCategoryList();
|
||||||
|
|
||||||
|
if($subs)
|
||||||
|
{
|
||||||
|
while(list($id, list($name, $desc)) = each($subs))
|
||||||
|
{
|
||||||
|
/* if this is the current category, select this option */
|
||||||
|
if($id == $catId)
|
||||||
|
echo "<option value=$id SELECTED>";
|
||||||
|
else
|
||||||
|
echo "<option value=$id>";
|
||||||
|
|
||||||
|
echo str_repeat("-", $indent);
|
||||||
|
echo stripslashes($name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
echo "</select>";
|
||||||
|
|
||||||
|
echo "<input type=submit value='Refresh'>";
|
||||||
|
echo "</form>";
|
||||||
|
|
||||||
|
echo "<br>";
|
||||||
|
echo "<br>";
|
||||||
|
|
||||||
|
/***************************************************/
|
||||||
|
/* build a list of the apps in the chosen category */
|
||||||
|
if(strcasecmp($categoryId, "any") == 0)
|
||||||
|
{
|
||||||
|
/* leave out the appFamily.catId = '$categoryId' */
|
||||||
$voteQuery = "SELECT appVotes.appId, appName, count(userId) as count ".
|
$voteQuery = "SELECT appVotes.appId, appName, count(userId) as count ".
|
||||||
"FROM appVotes, appFamily ".
|
"FROM appVotes, appFamily ".
|
||||||
"WHERE appVotes.appId = appFamily.appId ".
|
"WHERE appVotes.appId = appFamily.appId ".
|
||||||
"GROUP BY appId ORDER BY count DESC LIMIT 25";
|
"GROUP BY appId ORDER BY count DESC LIMIT $topNumber";
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
$voteQuery = "SELECT appVotes.appId, appName, count(userId) as count ".
|
||||||
|
"FROM appVotes, appFamily, appCategory ".
|
||||||
|
"WHERE appVotes.appId = appFamily.appId AND ".
|
||||||
|
"(appFamily.catId = '$categoryId' OR ".
|
||||||
|
"(appFamily.catId = appCategory.catId AND appCategory.catParent = '$categoryId')) ".
|
||||||
|
"GROUP BY appId ORDER BY count DESC LIMIT $topNumber";
|
||||||
|
}
|
||||||
|
|
||||||
$result = mysql_query($voteQuery);
|
$result = mysql_query($voteQuery);
|
||||||
|
|
||||||
@@ -29,9 +160,17 @@ if($result)
|
|||||||
echo "<tr class='".$bgcolor."'><td width='90%'>$c. $link </td> <td> $row->count </td></tr>\n";
|
echo "<tr class='".$bgcolor."'><td width='90%'>$c. $link </td> <td> $row->count </td></tr>\n";
|
||||||
$c++;
|
$c++;
|
||||||
}
|
}
|
||||||
|
|
||||||
echo html_table_end();
|
echo html_table_end();
|
||||||
echo html_frame_end();
|
echo html_frame_end();
|
||||||
|
|
||||||
|
/* Make sure we tell the user here are no apps, otherwise they might */
|
||||||
|
/* think that something went wrong with the server */
|
||||||
|
if($c == 1)
|
||||||
|
{
|
||||||
|
echo "<h2><center>No apps found in this category</center></h2>";
|
||||||
|
}
|
||||||
|
|
||||||
echo "<center><a href='help/?topic=voting'>What does this screen mean?</a></center>\n";
|
echo "<center><a href='help/?topic=voting'>What does this screen mean?</a></center>\n";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user