diff --git a/mozilla/webtools/addons/public/tpl/addon.tpl b/mozilla/webtools/addons/public/tpl/addon.tpl
index 12baf5a5c71..e8b966e0c7e 100644
--- a/mozilla/webtools/addons/public/tpl/addon.tpl
+++ b/mozilla/webtools/addons/public/tpl/addon.tpl
@@ -21,7 +21,16 @@ released on {$addon->VersionDateAdded|date_format}
{$addon->Description}
-Requires: {$addon->AppName} {$addon->MinAppVer} - {$addon->MaxAppVer}
+Requires:
+
+{section name=AppVersions loop=$addon->AppVersions}
+
+ ![{$addon->AppVersions[AppVersions].AppName}]({$config.webpath}/images/{$addon->AppVersions[AppVersions].AppName|lower}_icon.png) |
+ {$addon->AppVersions[AppVersions].AppName} |
+ {$addon->AppVersions[AppVersions].MinAppVer} - {$addon->AppVersions[AppVersions].MaxAppVer} |
+
+{/section}
+
diff --git a/mozilla/webtools/addons/shared/lib/addon.class.php b/mozilla/webtools/addons/shared/lib/addon.class.php
index be33b05f9b6..5001cc09261 100644
--- a/mozilla/webtools/addons/shared/lib/addon.class.php
+++ b/mozilla/webtools/addons/shared/lib/addon.class.php
@@ -32,14 +32,13 @@ class AddOn extends AMO_Object {
// Current version information.
var $vID;
var $Version;
- var $MinAppVer;
- var $MaxAppVer;
var $Size;
var $URI;
var $Notes;
var $VersionDateAdded;
var $AppName;
- var $OSName;
+
+ var $AppVersions;
// Preview information.
var $PreviewID;
@@ -87,6 +86,7 @@ class AddOn extends AMO_Object {
$this->getCurrentVersion();
$this->getMainPreview();
$this->getUserInfo();
+ $this->getAppVersions();
}
/**
@@ -189,18 +189,14 @@ class AddOn extends AMO_Object {
SELECT
version.vID,
version.Version,
- version.MinAppVer,
- version.MaxAppVer,
version.Size,
version.URI,
version.Notes,
version.DateAdded as VersionDateAdded,
- applications.AppName,
- os.OSName
+ applications.AppName
FROM
version
INNER JOIN applications ON version.AppID = applications.AppID
- INNER JOIN os ON version.OSID = os.OSID
WHERE
version.ID = '{$this->ID}' AND
version.approved = 'YES'
@@ -301,5 +297,41 @@ class AddOn extends AMO_Object {
$this->setVar('AddonCats',$this->db->record);
}
+
+ /**
+ * Retrieve all compatible applications and their versions. This only returns
+ * the applications that are marked as "supported" in the db!
+ */
+ function getAppVersions() {
+ $_final = array();
+ $this->db->query("
+ SELECT
+ `applications`.`AppName`,
+ `version`.`MinAppVer`,
+ `version`.`MaxAppVer`
+ FROM
+ `version`
+ INNER JOIN
+ `applications`
+ ON
+ `version`.`AppID` = `applications`.`AppID`
+ WHERE
+ `version`.`Version`='{$this->Version}'
+ AND
+ `version`.`ID`={$this->ID}
+ AND
+ `applications`.`supported` = 1
+ ", SQL_ALL, SQL_ASSOC);
+
+ foreach ($this->db->record as $var => $val) {
+ $_final[] = array (
+ 'AppName' => $val['AppName'],
+ 'MinAppVer' => $val['MinAppVer'],
+ 'MaxAppVer' => $val['MaxAppVer'],
+ );
+ }
+
+ $this->setVar('AppVersions',$_final);
+ }
}
?>
diff --git a/mozilla/webtools/addons/shared/sql/v2.sql b/mozilla/webtools/addons/shared/sql/v2.sql
index 7da11625514..d2723e2f2ee 100644
--- a/mozilla/webtools/addons/shared/sql/v2.sql
+++ b/mozilla/webtools/addons/shared/sql/v2.sql
@@ -18,3 +18,10 @@ CREATE TABLE `session_data` (
ALTER TABLE `feedback` ADD `UserID` INT( 11 ) AFTER `ID`;
ALTER TABLE `feedback` ADD INDEX ( `UserID` );
ALTER TABLE `feedback` ADD CONSTRAINT `feedback_ibfk_2` FOREIGN KEY (`UserID`) REFERENCES `userprofiles` (`UserID`) ON DELETE CASCADE ON UPDATE CASCADE;
+
+-- If you want the app to show up on the "supported applications" table for the
+-- extension this has to be '1'
+ALTER TABLE `applications` ADD `supported` TINYINT( 1 ) DEFAULT '0' NOT NULL ;
+
+-- Set the "supported" applications:
+UPDATE `applications` SET `supported`=1 WHERE `AppName` IN('Firefox','Thunderbird','Mozilla');