[AppDB] Main App should have a random screenshot from it's versions.

Jonathan Ernst Jonathan at ErnstFamily.ch
Fri Dec 10 14:29:21 CST 2004


I made the changes Chris Morgan requested and I will now use the coding 
style we started to define with Tony Lambregts (see our DOCS/* patch). I 
hope the patch is better now.

Change Log:
- Main App has a random screenshot from it's versions.
- Versions have a random screenshot from their screenshots
- code cleanup (better indentation + comments + replaced globally some registered vars)

Files changed:
- appview.php



Chris Morgan a écrit :

>Please use
>
>return_type function_name(parameters)
>{
>}
>
>for functions as thats what the rest of the code does.
>
>Chris
>
>
>  
>

-------------- next part --------------
Index: appview.php
===================================================================
RCS file: /home/wine/appdb/appview.php,v
retrieving revision 1.12
diff -u -r1.12 appview.php
--- appview.php	10 Dec 2004 00:18:01 -0000	1.12
+++ appview.php	10 Dec 2004 20:25:16 -0000
@@ -1,11 +1,9 @@
 <?
+/**********************************/
+/* code to display an application */
+/**********************************/
 
-
-/*
- * Application Database - appview.php
- *
- */
-
+# APPLICATION ENVIRONMENT
 include("path.php");
 require(BASE."include/"."incl.php");
 require(BASE."include/"."application.php");
@@ -18,41 +16,36 @@
 
 require(BASE."include/"."maintainer.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;
+function admin_menu() {
     global $apidb_root;
 
     $m = new htmlmenu("Admin");
-    if($versionId)
-    {
-        $m->add("Add Note", $apidb_root."admin/addAppNote.php?appId=$appId&versionId=$versionId");
+    if($_REQUEST[versionId]) {
+        $m->add("Add Note", $apidb_root."admin/addAppNote.php?appId=$appId&versionId=".$_REQUEST['versionId']);
         $m->addmisc("&nbsp;");
 
-        $m->add("Edit Version", $apidb_root."admin/editAppVersion.php?appId=$appId&versionId=$versionId");
+        $m->add("Edit Version", $apidb_root."admin/editAppVersion.php?appId=$appId&versionId=".$_REQUEST['versionId']);
 
-        $url = $apidb_root."admin/deleteAny.php?what=appVersion&versionId=$versionId&confirmed=yes";
+        $url = $apidb_root."admin/deleteAny.php?what=appVersion&versionId=".$_REQUEST['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");
+    }
+    else {
+        $m->add("Add Version", $apidb_root."admin/addAppVersion.php?appId=".$_REQUEST['appId']);
         $m->addmisc("&nbsp;");
 	
-        $m->add("Edit App", $apidb_root."admin/editAppFamily.php?appId=$appId");
+        $m->add("Edit App", $apidb_root."admin/editAppFamily.php?appId=".$_REQUEST['appId']);
 	
         // global admin options
         if(havepriv("admin"))
         {
-            $url = $apidb_root."admin/deleteAny.php?what=appFamily&appId=$appId&confirmed=yes";
+            $url = $apidb_root."admin/deleteAny.php?what=appFamily&appId=".$_REQUEST['appId']."&confirmed=yes";
             $m->add("Delete App", "javascript:deleteURL(\"Are you sure?\", \"".$url."\")");
             $m->addmisc("&nbsp;");
-            $m->add("Edit Owners", $apidb_root."admin/editAppOwners.php?appId=$appId");
-            $m->add("Edit Bundle", $apidb_root."admin/editBundle.php?bundleId=$appId");
+            $m->add("Edit Owners", $apidb_root."admin/editAppOwners.php?appId=".$_REQUEST['appId']);
+            $m->add("Edit Bundle", $apidb_root."admin/editBundle.php?bundleId=".$_REQUEST['appId']);
         }
     }
     
@@ -60,34 +53,45 @@
 }
 
 
-function get_screenshot_img($appId, $versionId)
+/**
+ * Get a random image for a particular version of an app.
+ * If the version is not set, get a random app image 
+ */
+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($versionId) 
+    {
+        $result = mysql_query("SELECT *, RAND() AS rand FROM appData WHERE appId = $appId AND versionId = $versionId AND type = 'image' ORDER BY rand");
+    }
+    else {
+  	   $result = mysql_query("SELECT *, RAND() AS rand FROM appData WHERE appId = $appId AND type = 'image' ORDER BY rand");
+    }
     
     if(!$result || !mysql_num_rows($result))
     {
-        $imgFile = "<img src='".$apidb_root."images/no_screenshot.gif' border=0 alt='No Screenshot'>";
+        $imgFile = "<img src='".$apidb_root."images/no_screenshot.gif' border=0 alt='No Screenshot' />";
     }
     else
     {
         $ob = mysql_fetch_object($result);
         $imgFile = "<img src='appimage.php?imageId=$ob->id&width=128&height=128' ".
-                   "border=0 alt='$ob->description'>";
+                   "border=0 alt='$ob->description' />";
     }
     
     $img = html_frame_start("",'128','',2);
-    $img .= "<a href='screenshots.php?appId=$appId&versionId=$versionId'>$imgFile</a>";
-    $img .= html_frame_end()."<br>";
+    if($versionId)
+        $img .= "<a href='screenshots.php?appId=$appId&versionId=$versionId'>$imgFile</a>";
+    else 
+        $img .= $imgFile;
+    $img .= html_frame_end()."<br />";
     
     return $img;
 }
 
 
+/* TODO: what does it do ? */
 function display_catpath($catId)
 {
     $cat = new Category($catId);
@@ -98,16 +102,16 @@
     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");
+		                    "WHERE bundleId = $appId AND appBundle.appId = appFamily.appId");
     if(!$result || mysql_num_rows($result) == 0)
-	{
-	    // do nothing
-	    return;
-	}
+    {
+	       return; // do nothing
+	  }
 
     echo html_frame_start("","98%","",0);
     echo "<table width='100%' border=0 cellpadding=3 cellspacing=1>\n\n";
@@ -118,24 +122,22 @@
     echo "</tr>\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 "<tr class=$bgcolor>\n";
-	    echo "    <td><a href='appview.php?appId=$ob->appId'>".stripslashes($ob->appName)."</a></td>\n";
-	    echo "    <td>$desc &nbsp;</td>\n";
-	    echo "</tr>\n\n";
+    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 "<tr class=$bgcolor>\n";
+	      echo "    <td><a href='appview.php?appId=$ob->appId'>".stripslashes($ob->appName)."</a></td>\n";
+	      echo "    <td>$desc &nbsp;</td>\n";
+	      echo "</tr>\n\n";
 
-	    $c++;
-	}
+	      $c++;
+	  }
 
     echo "</table>\n\n";
     echo html_frame_end();
@@ -158,23 +160,23 @@
     
     $c = 1;
     while($ob = mysql_fetch_object($result))
-	{
-	    //skip if NONAME
-	    if ($ob->noteTitle == "NONAME" || $ob->noteTitle == "WARNING" || $ob->noteTitle == "HOWTO") { continue; }
+    {
+	      // skip if NONAME
+	      if ($ob->noteTitle == "NONAME" || $ob->noteTitle == "WARNING" || $ob->noteTitle == "HOWTO") { continue; }
 	    
-	    //set link for version
-	    if ($versionId != 0)
-	    {
-	        $versionLink = "&versionId=$versionId";
-	    }
+	      // set link for version
+	      if ($versionId != 0)
+	      {
+	          $versionLink = "&versionId=$versionId";
+	      }
 	    
-	    //display row
+	      // display row
         if (havepriv("admin") || isMaintainer($appId,$versionId) )
             echo "    <a href='admin/editAppNote.php?noteId=".$ob->noteId."&appId=$appId".$versionLink."'> $c. ".substr(stripslashes($ob->noteTitle),0,30)."</a><br>\n";
         else
             echo "    <a href='noteview.php?noteId=".$ob->noteId."&appId=$appId".$versionLink."'> $c. ".substr(stripslashes($ob->noteTitle),0,30)."</a><br>\n";
-	    $c++;
-	}
+	      $c++;
+    }
 
     echo "</td></tr>\n";
 }
@@ -182,22 +184,22 @@
 /* display the versions */
 function display_versions($appId, $versions)
 {
-	if ($versions)
-	{
-		 echo html_frame_start("","98%","",0);
-		 echo "<table width='100%' border=0 cellpadding=3 cellspacing=1>\n\n";
-
-		 echo "<tr class=color4>\n";
-		 echo "    <td width=80><font color=white>Version</font></td>\n";
-		 echo "    <td><font color=white>Description</font></td>\n";
-		 echo "    <td width=80><font color=white class=small>Rating With Windows</font></td>\n";
-		 echo "    <td width=80><font color=white class=small>Rating Without Windows</font></td>\n";
-		 echo "    <td width=40><font color=white class=small>Comments</font></td>\n";
-		 echo "</tr>\n\n";
+    if ($versions)
+	  {
+		    echo html_frame_start("","98%","",0);
+		    echo "<table width='100%' border=0 cellpadding=3 cellspacing=1>\n\n";
+
+		    echo "<tr class=color4>\n";
+		    echo "    <td width=80><font color=white>Version</font></td>\n";
+		    echo "    <td><font color=white>Description</font></td>\n";
+		    echo "    <td width=80><font color=white class=small>Rating With Windows</font></td>\n";
+		    echo "    <td width=80><font color=white class=small>Rating Without Windows</font></td>\n";
+		    echo "    <td width=40><font color=white class=small>Comments</font></td>\n";
+		    echo "</tr>\n\n";
     	
-         $c = 0;
-         while(list($idx, $ver) = each($versions))
-         {
+        $c = 0;
+        while(list($idx, $ver) = each($versions))
+        {
             //set row color
             $bgcolor = ($c % 2 == 0) ? "color0" : "color1";
 
@@ -227,18 +229,20 @@
 		
 		echo "</table>\n";
 		echo html_frame_end("Click the Version Name to view the details of that Version");
-	}
+    }
 }
 
-/* code to VIEW an application & versions */
 
 $appId = $_REQUEST['appId'];
 $versionId = $_REQUEST['versionId'];
 
+######################################################
+# We want to see an application family (=no version) #
+######################################################
 if(!is_numeric($appId))
 {
-	errorpage("Something went wrong with the IDs");
-	exit;
+    errorpage("Something went wrong with the IDs");
+    exit;
 }
 
 if($appId && !$versionId)
@@ -272,9 +276,6 @@
     //set URL
     $appLinkURL = ($data->webPage) ? "<a href='$data->webPage'>".substr(stripslashes($data->webPage),0,30)."</a>": "&nbsp;";
 	
-    //set Image
-    $img = get_screenshot_img($appId, $versionId);
-	
     //start display application
     echo html_frame_start("","98%","",0);
 	
@@ -290,40 +291,44 @@
          "        <a href='bugs.php?appId=$data->appId.'> Check for bugs in bugzilla </a> &nbsp;\n";        
     echo "        </td></tr>\n";
 	
-	//display notes
-	display_notes($appId);
+    //display notes
+	  display_notes($appId);
 	
-	//main URL
-	echo "        <tr class=color1 valign=top><td align=right> <b>URL</b></td><td>".$appLinkURL."</td></tr>\n";
+	  // main URL
+	  echo "        <tr class=color1 valign=top><td align=right> <b>URL</b></td><td>".$appLinkURL."</td></tr>\n";
 
-	//optional links
-	$result = mysql_query("SELECT * FROM appData WHERE appId = $appId AND type = 'url'");
-	if($result && mysql_num_rows($result) > 0)
+	  // optional links
+	  $result = mysql_query("SELECT * FROM appData WHERE appId = $appId AND type = 'url'");
+	  if($result && mysql_num_rows($result) > 0)
     {
-		echo "        <tr class=color1><td valign=top align=right> <b>Links</b></td><td>\n";
-		while($ob = mysql_fetch_object($result))
+		    echo "        <tr class=color1><td valign=top align=right> <b>Links</b></td><td>\n";
+		    while($ob = mysql_fetch_object($result))
         {
-			echo "        <a href='$ob->url'>".substr(stripslashes($ob->description),0,30)."</a> <br>\n";
+			      echo "        <a href='$ob->url'>".substr(stripslashes($ob->description),0,30)."</a> <br>\n";
         }
-		echo "        </td></tr>\n";
-    }
-
-	// display app owner
-	$result = mysql_query("SELECT * FROM appOwners WHERE appId = $appId");
-	if($result && mysql_num_rows($result) > 0)
+		        echo "        </td></tr>\n";
+        }
+  
+    // image
+    $img = get_screenshot_img($appId);
+    echo "<tr><td align=center colspan=2>$img</td></tr>\n";
+    
+	  // display app owner
+	  $result = mysql_query("SELECT * FROM appOwners WHERE appId = $appId");
+	  if($result && mysql_num_rows($result) > 0)
     {
-		echo "        <tr class=color0><td valign=top align=right> <b>Owner</b></td>\n";
+		    echo "        <tr class=color0><td valign=top align=right> <b>Owner</b></td>\n";
         echo "        <td>\n";
-		while($ob = mysql_fetch_object($result))
+		    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 "        <a href='mailto:$foo->email'>".substr(stripslashes($foo->username),0,30)."</a> <br>\n";
+		    	  if ($inResult && mysql_num_rows($inResult) > 0)
+			      {
+				        $foo = mysql_fetch_object($inResult);
+				        echo "        <a href='mailto:$foo->email'>".substr(stripslashes($foo->username),0,30)."</a> <br>\n";
             }
         }
-		echo "        </td></tr>\n";
+		    echo "        </td></tr>\n";
     }
     echo "      </table>\n"; /* close of name/vendor/bugs/url table */
 
@@ -380,7 +385,7 @@
 
     echo "  </table>\n"; /* close the table that contains the whole left hand side of the upper table */
 
-    //Desc
+    // description
     echo "  <td class=color2 valign=top width='100%'>\n";
     echo "    <table width='100%' border=0><tr><td width='100%' valign=top><b>Description</b><br>\n";
     echo add_br(stripslashes($data->description));
@@ -389,24 +394,28 @@
 
     echo html_frame_end("For more details and user comments, view the versions of this application.");
 
-    //display versions
+    // display versions
     display_versions($appId,$app->getAppVersionList());
 
-    //display bundle
+    // display bundle
     display_bundle($appId);
 
     // disabled for now
     //log_application_visit($appId);
 }
+
+#######################################
+# We want to see a particular version #
+#######################################
 else if($appId && $versionId)
 {
     $app = new Application($appId);
     $data = $app->data;
-    if(!$data ) 
+    if(!$data) 
     {
         // Oops! application not found or other error. do something
         errorpage('Internal Database Access Error. No App found.');
-	exit;
+	      exit;
     }
 
     $ver = $app->getAppVersion($versionId);
@@ -414,7 +423,7 @@
     {
         // Oops! Version not found or other error. do something
         errorpage('Internal Database Access Error. No Version Found.');
-	exit;
+	      exit;
     }
 
     // rating menu
@@ -457,9 +466,8 @@
     //notes
     display_notes($appId, $versionId);
 
-    //Image
+    // image
     $img = get_screenshot_img($appId, $versionId);
-
     echo "<tr><td align=center colspan=2>$img</td></tr>\n";
 
     // Display all maintainers of this application
@@ -601,24 +609,24 @@
         }
     }
     //TODO: code to view/add user experience record
-//    if(!$versionId) 
-//    {
-//        $versionId = 0;
-//    }
+    //    if(!$versionId) 
+    //    {
+    //        $versionId = 0;
+    //    }
 
     // Comments Section
     view_app_comments($appId, $versionId);
 	
-}
-else
+} else 
 {
-	// Oops! Called with no params, bad llamah!
-	errorpage('Page Called with No Params!');
-	exit;
+  	// Oops! Called with no params, bad llamah!
+	  errorpage('Page Called with No Params!');
+	  exit;
 }
+?>
 
-echo p();
+<p>&nbsp;</p>
 
+<?
 apidb_footer();
-
-?>
+?>
\ No newline at end of file


More information about the wine-patches mailing list