Alexander Nicolaysen Sørnes : Use objectManager to display applications
Chris Morgan
cmorgan at winehq.org
Wed Sep 19 19:41:15 CDT 2007
Module: appdb
Branch: master
Commit: af87e895357d62a90114ec87186e06bdd933e56c
URL: http://source.winehq.org/git/appdb.git/?a=commit;h=af87e895357d62a90114ec87186e06bdd933e56c
Author: Alexander Nicolaysen Sørnes <alex at thehandofagony.com>
Date: Tue Sep 18 14:04:23 2007 +0200
Use objectManager to display applications
---
appview.php | 86 +++++++++--------------------------------------
help/appdb_faq.help | 2 +-
include/application.php | 57 ++++++++++++++++++++++++++++---
3 files changed, 69 insertions(+), 76 deletions(-)
diff --git a/appview.php b/appview.php
index 6b4e3b3..f154840 100644
--- a/appview.php
+++ b/appview.php
@@ -1,93 +1,39 @@
<?php
/**
- * Displays an application or a version.
+ * Previously used to display an application or a version.
+ * It still does that, but only for compatibility with old links
*
* Mandatory parameters:
* - iAppId, application identifier
* OR
* - iVersionId, version identifier
*
- * Optional parameters:
- * - sSub, action to perform ("delete", "unqueue", "Submit a new bug link.")
- * - iBuglinkId, bug identifier to link a bug with a version
- *
- * TODO:
- * - replace sSub with iAction and replace "delete", "unqueue", etc. with integer constants DELETE, UNQUEUE, etc.
- * - move and rename display_bundle into its respective modules
- * - replace require_once with require after checking that it won't break anything
- */
+*/
-// application environment
+// Basic environment
require("path.php");
require(BASE."include/incl.php");
-require_once(BASE."include/application.php");
-require_once(BASE."include/appdb.php");
-require_once(BASE."include/vote.php");
-require_once(BASE."include/category.php");
-require_once(BASE."include/maintainer.php");
-
-/**
- * Displays the SUB apps that belong to this application.
- */
-function display_bundle($iAppId)
+if(isset($aClean['iAppId']) || isset($aClean['iVersionId'])) // Valid args
{
- $oApp = new Application($iAppId);
- $hResult = query_parameters("SELECT appFamily.appId, appName, description FROM appBundle, appFamily ".
- "WHERE appFamily.queued='false' AND bundleId = '?' AND appBundle.appId = appFamily.appId",
- $iAppId);
- if(!$hResult || query_num_rows($hResult) == 0)
- {
- return; // do nothing
- }
-
- 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>Application Name</td>\n";
- echo " <td>Description</td>\n";
- echo "</tr>\n\n";
-
- $c = 0;
- while($ob = query_fetch_object($hResult))
- {
- $oApp = new application($ob->appId);
- //set row color
- $bgcolor = ($c % 2 == 0) ? "color0" : "color1";
-
- //display row
- echo "<tr class=\"$bgcolor\">\n";
- echo " <td>".$oApp->objectMakeLink()."</td>\n";
- echo " <td>".util_trim_description($oApp->sDescription)."</td>\n";
- echo "</tr>\n\n";
+ if( isset($aClean['iAppId']) ) // Application
+ $oObject = new Application($aClean['iAppId']);
+ else // We want to see a particular version.
+ $oObject = new Version($aClean['iVersionId']);
- $c++;
- }
+ // header
+ apidb_header($oObject->objectGetCustomTitle("display"));
- echo "</table>\n\n";
- echo html_frame_end();
-}
+ if(isset($aClean['iVersionId']))
+ $oObject->display($aClean);
+ else
+ $oObject->display();
-/**
- * We want to see an application family (=no version).
- */
-if( isset($aClean['iAppId']) )
-{
- $oApp = new Application($aClean['iAppId']);
- $oApp->display();
-} else if( isset($aClean['iVersionId']) ) // We want to see a particular version.
-{
- $oVersion = new Version($aClean['iVersionId']);
-
- // header
- apidb_header("Viewing App: ".version::fullName($oVersion->iVersionId));
- $oVersion->display($aClean);
+ apidb_footer();
} else
{
// Oops! Called with no params, bad llamah!
util_show_error_page_and_exit('Page Called with No Params!');
}
-apidb_footer();
?>
diff --git a/help/appdb_faq.help b/help/appdb_faq.help
index 94657ae..3fa60ee 100644
--- a/help/appdb_faq.help
+++ b/help/appdb_faq.help
@@ -12,7 +12,7 @@ Application Database.</p>
<p><b>A:</b> The Application Database is a repository for
Windows application compatibility information with Wine.
In particular it provides the following information:<br>
-(see the <a href="/appview.php?iAppId=296">Visual FoxPro</a> entry for an
+(see the <a href="/objectManager.php?sClass=application&iId=296">Visual FoxPro</a> entry for an
example)<p>
<ul>
<li>Whether a given application works at all with Wine.</li>
diff --git a/include/application.php b/include/application.php
index 57a1345..b259934 100644
--- a/include/application.php
+++ b/include/application.php
@@ -628,6 +628,56 @@ class Application {
$this->iMaintainerRequest = $aValues['iMaintainerRequest'];
}
+ /**
+ * Displays the SUB apps that belong to this application.
+ */
+ function displayBundle()
+ {
+ $hResult = query_parameters("SELECT appFamily.appId, appName, description FROM appBundle, appFamily ".
+ "WHERE appFamily.queued='false' AND bundleId = '?' AND appBundle.appId = appFamily.appId",
+ $this->iAppId);
+ if(!$hResult || query_num_rows($hResult) == 0)
+ {
+ return; // do nothing
+ }
+
+ 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>Application Name</td>\n";
+ echo " <td>Description</td>\n";
+ echo "</tr>\n\n";
+
+ for($c = 0; $ob = query_fetch_object($hResult); $c++)
+ {
+ $oApp = new application($ob->appId);
+ //set row color
+ $bgcolor = ($c % 2 == 0) ? "color0" : "color1";
+
+ //display row
+ echo "<tr class=\"$bgcolor\">\n";
+ echo " <td>".$oApp->objectMakeLink()."</td>\n";
+ echo " <td>".util_trim_description($oApp->sDescription)."</td>\n";
+ echo "</tr>\n\n";
+ }
+
+ echo "</table>\n\n";
+ echo html_frame_end();
+ }
+
+ function objectGetCustomTitle($sAction)
+ {
+ switch($sAction)
+ {
+ case "display":
+ return "Viewing App: ".$this->sName;
+
+ default:
+ return null;
+ }
+ }
+
/* display this application */
function display()
{
@@ -635,9 +685,6 @@ class Application {
if(!$_SESSION['current']->canViewApplication($this))
util_show_error_page_and_exit("Something went wrong with the application or version id");
- // header
- apidb_header("Viewing App - ".$this->sName);
-
// cat display
$oCategory = new Category($this->iCatId);
$oCategory->display($this->iAppId);
@@ -755,7 +802,7 @@ class Application {
Version::displayList($this->aVersionsIds);
// display bundle
- display_bundle($this->iAppId);
+ $this->displayBundle();
}
function lookup_name($appId)
@@ -816,7 +863,7 @@ class Application {
function objectMakeUrl()
{
- $sUrl = APPDB_ROOT."appview.php?iAppId=$this->iAppId";
+ $sUrl = APPDB_ROOT."objectManager.php?sClass=application&iId=$this->iAppId";
return $sUrl;
}
More information about the wine-cvs
mailing list