/*
* Application Database - appview.php
*
*/
include("path.php");
require(BASE."include/"."incl.php");
require(BASE."include/"."application.php");
require(BASE."include/"."comments.php");
require(BASE."include/"."appdb.php");
require(BASE."include/"."vote.php");
require(BASE."include/"."rating.php");
require(BASE."include/"."category.php");
global $apidb_root;
// NOTE: app Owners will see this menu too, make sure we don't show admin-only options
function admin_menu()
{
global $appId;
global $versionId;
global $apidb_root;
$m = new htmlmenu("Admin");
if($versionId)
{
$m->add("Add Note", $apidb_root."admin/addAppNote.php?appId=$appId&versionId=$versionId");
$m->addmisc(" ");
$m->add("Edit Version", $apidb_root."admin/editAppVersion.php?appId=$appId&versionId=$versionId");
$url = $apidb_root."admin/deleteAny.php?what=appVersion&versionId=$versionId&confirmed=yes";
$m->add("Delete Version", "javascript:deleteURL(\"Are you sure?\", \"".$url."\")");
}
else
{
$m->add("Add Version", $apidb_root."admin/addAppVersion.php?appId=$appId");
$m->addmisc(" ");
$m->add("Edit App", $apidb_root."admin/editAppFamily.php?appId=$appId");
// global admin options
if(havepriv("admin"))
{
$url = $apidb_root."admin/deleteAny.php?what=appFamily&appId=$appId&confirmed=yes";
$m->add("Delete App", "javascript:deleteURL(\"Are you sure?\", \"".$url."\")");
$m->addmisc(" ");
$m->add("Edit Owners", $apidb_root."admin/editAppOwners.php?appId=$appId");
$m->add("Edit Bundle", $apidb_root."admin/editBundle.php?bundleId=$appId");
}
}
$m->done();
}
function get_screenshot_img($appId, $versionId)
{
global $apidb_root;
if(!$versionId)
$versionId = 0;
$result = mysql_query("SELECT * FROM appData WHERE appId = $appId AND versionId = $versionId AND type = 'image'");
if(!$result || !mysql_num_rows($result))
{
$imgFile = "
";
}
else
{
$ob = mysql_fetch_object($result);
$imgFile = "
";
}
$img = html_frame_start("",'128','',2);
$img .= "$imgFile";
$img .= html_frame_end()."
";
return $img;
}
function display_catpath($catId)
{
$cat = new Category($catId);
$catFullPath = make_cat_path($cat->getCategoryPath());
echo html_frame_start("",'98%','',2);
echo "
Category: ". $catFullPath ."
\n";
echo html_frame_end();
}
/* display the SUB apps that belong to this app */
function display_bundle($appId)
{
$result = mysql_query("SELECT appFamily.appId, appName, description FROM appBundle, appFamily ".
"WHERE bundleId = $appId AND appBundle.appId = appFamily.appId");
if(!$result || mysql_num_rows($result) == 0)
{
// do nothing
return;
}
echo html_frame_start("","98%","",0);
echo "
\n\n";
echo "\n";
echo " | Application Name | \n";
echo " Description | \n";
echo "
\n\n";
$c = 0;
while($ob = mysql_fetch_object($result))
{
//set row color
$bgcolor = ($c % 2 == 0) ? "color0" : "color1";
//format desc
$desc = substr(stripslashes($ob->description),0,50);
if(strlen($desc) == 50)
$desc .= " ...";
//display row
echo "\n";
echo " | ".stripslashes($ob->appName)." | \n";
echo " $desc | \n";
echo "
\n\n";
$c++;
}
echo "
\n\n";
echo html_frame_end();
}
/* display the notes for the app */
function display_notes($appId, $versionId = 0)
{
$result = mysql_query("SELECT noteId,noteTitle FROM appNotes ".
"WHERE appId = $appId AND versionId = $versionId");
if(!$result || mysql_num_rows($result) == 0)
{
// do nothing
return;
}
echo "| Notes | \n";
$c = 1;
while($ob = mysql_fetch_object($result))
{
//skip if NONAME
if ($ob->noteTitle == "NONAME") { continue; }
//set link for version
if ($versionId != 0)
{
$versionLink = "&versionId=$versionId";
}
//display row
echo " $c. ".substr(stripslashes($ob->noteTitle),0,30)." \n";
$c++;
}
echo " |
\n";
}
/* display the versions */
function display_versions($appId, $versions)
{
if ($versions)
{
echo html_frame_start("","98%","",0);
echo "\n\n";
echo "\n";
echo " | Version | \n";
echo " Description | \n";
echo " Rating With Windows | \n";
echo " Rating Without Windows | \n";
echo " Comments | \n";
echo "
\n\n";
$c = 0;
while(list($idx, $ver) = each($versions))
{
//set row color
$bgcolor = ($c % 2 == 0) ? "color0" : "color1";
//format desc
$desc = substr(stripslashes($ver->description),0,75);
if(strlen($desc) == 75)
$desc .= " ...";
//get ratings
$r_win = rating_stars_for_version($ver->versionId, "windows");
$r_fake = rating_stars_for_version($ver->versionId, "fake");
//count comments
$r_count = count_comments($appId,$ver->versionId);
//display row
echo "\n";
echo " | ".$ver->versionName." | \n";
echo " $desc | \n";
echo " $r_win | \n";
echo " $r_fake | \n";
echo " $r_count | \n";
echo "
\n\n";
$c++;
}
echo "
\n";
echo html_frame_end("Click the Version Name to view the details of that Version");
}
}
/* code to VIEW an application & versions */
if($appId && !$versionId)
{
$app = new Application($appId);
$data = $app->data;
if(!$data) {
// Oops! application not found or other error. do something
errorpage('Internal Database Access Error');
exit;
}
// Show Vote Menu
if(loggedin())
apidb_sidebar_add("vote_menu");
// Show Admin Menu
if(loggedin() && (havepriv("admin") || $current->ownsApp($appId))) {
apidb_sidebar_add("admin_menu");
}
// header
apidb_header("Viewing App - ".$data->appName);
//cat display
display_catpath($app->data->catId);
//set Vendor
$vendor = $app->getVendor();
//set URK
$appLinkURL = ($data->webPage) ? "".substr(stripslashes($data->webPage),0,30)."": " ";
//set Image
$img = get_screenshot_img($appId, $versionId);
//start display application
echo html_frame_start("","98%","",0);
echo '',"\n";
echo '',"\n";
echo "| Name | ".stripslashes($data->appName)." | \n";
echo " | App Id | ".$data->appId." | \n";
echo " | Vendor | ".
" ".stripslashes($vendor->vendorName)." \n";
echo " | \n";
//display notes
display_notes($appId);
//main URL
echo "| URL | ".$appLinkURL." | \n";
//optional links
$result = mysql_query("SELECT * FROM appData WHERE appId = $appId AND type = 'url'");
if($result && mysql_num_rows($result) > 0)
{
echo "| Links | \n";
while($ob = mysql_fetch_object($result))
{
echo " ".substr(stripslashes($ob->description),0,30)." \n";
}
echo " | \n";
}
// display app owner
$result = mysql_query("SELECT * FROM appOwners WHERE appId = $appId");
if($result && mysql_num_rows($result) > 0)
{
echo "| Owner | \n";
while($ob = mysql_fetch_object($result))
{
$inResult = mysql_query("SELECT username,email FROM user_list WHERE userid = $ob->ownerId");
if ($inResult && mysql_num_rows($inResult) > 0)
{
$foo = mysql_fetch_object($inResult);
echo " ".substr(stripslashes($foo->username),0,30)." \n";
}
}
echo " | \n";
}
echo " | \n";
//Desc
echo "Description \n";
echo add_br(stripslashes($data->description));
echo " | \n";
echo html_frame_end("For more details and user comments, view the versions of this application.");
//display versions
display_versions($appId,$app->getAppVersionList());
//display bundle
display_bundle($appId);
// disabled for now
//log_application_visit($appId);
}
else if($appId && $versionId)
{
$app = new Application($appId);
$data = $app->data;
if(!$data) {
// Oops! application not found or other error. do something
errorpage('Internal Database Access Error');
exit;
}
// rating menu
if(loggedin()) {
apidb_sidebar_add("rating_menu");
}
// admin menu
if(loggedin() && (havepriv("admin") || $current->ownsApp($appId))) {
apidb_sidebar_add("admin_menu");
}
// header
$ver = $app->getAppVersion($versionId);
apidb_header("Viewing App Version - ".$data->appName);
//cat
display_catpath($app->data->catId);
//set URL
$appLinkURL = ($data->webPage) ? "".substr(stripslashes($data->webPage),0,30)."": " ";
//set image
$img = get_screenshot_img($appId, $versionId);
//start version display
echo html_frame_start("","98%","",0);
echo ' |
',"\n";
echo '',"\n";
echo "| Name | ".stripslashes($data->appName)." | \n";
echo " | Ver Id | $ver->versionId | \n";
echo " | Version | ".stripslashes($ver->versionName)." | \n";
echo "| URL | ".stripslashes($appLinkURL)." | \n";
//Rating Area
$r_win = rating_stars_for_version($versionId, "windows");
$r_fake = rating_stars_for_version($versionId, "fake");
echo "| Rating | $r_win \n";
echo " $r_fake | \n";
//notes
display_notes($appId, $versionId);
//Image
echo "| $img | \n";
echo " | \n";
//Desc Image
echo " Description \n";
echo add_br(stripslashes($ver->description));
echo " | \n";
echo html_frame_end();
//TODO: code to view/add user experience records
if(!$versionId) {
$versionId = 0;
}
// Comments Section
view_app_comments($appId, $versionId);
}
else
{
// Oops! Called with no params, bad llamah!
errorpage('Page Called with No Params!');
exit;
}
echo p();
apidb_footer();
?>
|