added matrix asset

This commit is contained in:
JT Smith 2005-11-18 01:28:04 +00:00
parent 9fda810ad0
commit f98ac111f9
6 changed files with 2544 additions and 0 deletions

View file

@ -35,8 +35,573 @@ addAvatarField();
addEnableAvatarColumn();
addSpectre();
addWorkflow();
addMatrix();
finish();
#-------------------------------------------------
sub addMatrix {
print "\tAdding Matrix Asset\n" unless ($quiet);
WebGUI::SQL->write("CREATE TABLE `Matrix_rating` (
`timeStamp` int(11) NOT NULL default '0',
`category` varchar(255) default NULL,
`rating` int(11) NOT NULL default '1',
`listingId` varchar(22) binary NOT NULL default '',
`ipAddress` varchar(15) default NULL,
`assetId` varchar(22) binary NOT NULL default '',
`userId` varchar(22) binary default NULL
) ");
WebGUI::SQL->write("CREATE TABLE `Matrix_listingData` (
`listingId` varchar(22) binary NOT NULL default '',
`fieldId` varchar(22) binary NOT NULL default '',
`value` varchar(255) default NULL,
`assetId` varchar(22) binary NOT NULL default '',
PRIMARY KEY (`listingId`,`fieldId`)
) ");
WebGUI::SQL->write("CREATE TABLE `Matrix_field` (
`fieldId` varchar(22) binary NOT NULL default '',
`category` varchar(255) NOT NULL default '',
`name` varchar(255) default NULL,
`label` varchar(255) default NULL,
`description` text,
`fieldType` varchar(35) default NULL,
`defaultValue` varchar(255) default NULL,
`assetId` varchar(22) binary NOT NULL default '',
PRIMARY KEY (`fieldId`),
KEY `categoryIndex` (`category`)
) ");
WebGUI::SQL->write("CREATE TABLE `Matrix_ratingSummary` (
`listingId` varchar(22) binary NOT NULL default '',
`category` varchar(255) NOT NULL default '',
`meanValue` decimal(3,2) default NULL,
`medianValue` int(11) default NULL,
`countValue` int(11) default NULL,
`assetId` varchar(22) binary NOT NULL default '',
PRIMARY KEY (`listingId`,`category`)
)");
WebGUI::SQL->write("CREATE TABLE `Matrix` (
`detailTemplateId` varchar(22) binary default NULL,
`compareTemplateId` varchar(22) binary default NULL,
`searchTemplateId` varchar(22) binary default NULL,
`ratingDetailTemplateId` varchar(22) binary default NULL,
`categories` text,
`assetId` varchar(22) binary NOT NULL default '',
`templateId` varchar(22) binary NOT NULL default '',
`revisionDate` bigint(20) NOT NULL default '0',
`maxComparisons` int(11) NOT NULL default '10',
`maxComparisonsPrivileged` int(11) NOT NULL default '10',
`privilegedGroup` varchar(22) binary NOT NULL default '2',
`groupToRate` varchar(22) binary NOT NULL default '2',
`ratingTimeout` int(11) NOT NULL default '31536000',
`ratingTimeoutPrivileged` int(11) NOT NULL default '31536000',
`groupToAdd` varchar(22) binary NOT NULL default '2',
PRIMARY KEY (`assetId`,`revisionDate`)
) ");
WebGUI::SQL->write("CREATE TABLE `Matrix_listing` (
`listingId` varchar(22) binary NOT NULL default '',
`maintainerId` varchar(22) binary default NULL,
`forumId` varchar(22) binary default NULL,
`productName` varchar(255) default NULL,
`productUrl` text,
`manufacturerName` varchar(255) default NULL,
`manufacturerUrl` text,
`description` text,
`lastUpdated` int(11) default NULL,
`versionNumber` varchar(30) default NULL,
`views` int(11) NOT NULL default '0',
`compares` int(11) NOT NULL default '0',
`clicks` int(11) NOT NULL default '0',
`status` varchar(30) NOT NULL default 'pending',
`clicksLastIp` varchar(16) default NULL,
`viewsLastIp` varchar(16) default NULL,
`comparesLastIp` varchar(16) default NULL,
`assetId` varchar(22) binary NOT NULL default '',
PRIMARY KEY (`listingId`)
) ");
my $import = WebGUI::Asset->getImportNode;
my $folder = $import->addChild({
title=>"Matrix Templates",
menuTitle=>"Matrix Templates",
className=>"WebGUI::Asset::Wobject::Folder",
url=>"matrix-templates",
});
my $template = <<STOP;
<h1>Comparison</h1>
<table cellpadding="0" cellspacing="0" border="0" style="font-size: 11px; font-family: helvetica, arial, sans-serif;">
<tr>
<td valign="top"><tmpl_var compare.form></td>
<td valign="top">
<tmpl_if isTooMany>
You tried to compare too many listings. Please choose <tmpl_var maxCompares> or less at a time.
</tmpl_if>
<tmpl_if isTooFew>
You must choose at least two products to compare. Less than two isn't much of a comparison.
</tmpl_if>
<tmpl_unless isTooFew><tmpl_unless isTooMany>
<table style="font-size: 11px; font-family: helvetica, arial, sans-serif;" align="center" cellpadding="1" cellspacing="1" border="0">
<tr>
<td>Product</td>
<tmpl_loop product_loop>
<td><a href="<tmpl_var url>"><tmpl_var name> <tmpl_var version></a></td>
</tmpl_loop>
</tr>
<tr>
<td>Last Updated</td>
<tmpl_loop lastupdated_loop>
<td><tmpl_var lastupdated></a></td>
</tmpl_loop>
</tr>
<tmpl_loop category_loop>
<tr><td class="category"><tmpl_var category></td>
<tmpl_loop product_loop>
<td align="center"><b><tmpl_var name></b></td>
</tmpl_loop>
</tr>
<tmpl_loop row_loop>
<tr
<tmpl_if __ODD__>
class="odd"
<tmpl_else>
class="even"
</tmpl_if>
>
<tmpl_loop column_loop>
<td class="<tmpl_var class>" <tmpl_if description>onmouseover="return escape('<tmpl_var description>')"</tmpl_if>>
<tmpl_var value>
</td>
</tmpl_loop>
</tr>
</tmpl_loop>
</tmpl_loop>
</table>
</tmpl_unless></tmpl_unless>
</td></tr></table>
STOP
my $newAsset = $folder->addChild({
title=>"Matrix Default Compare",
menuTitle=>"Matrix Default Compare",
namespace=>"Matrix/Compare",
url=>"matrix-default-compare-template",
className=>"WebGUI::Asset::Template",
template=>$template
}, "matrixtmpl000000000002");
$newAsset->commit;
$template = <<STOP;
<tmpl_if session.var.adminOn>
<p><tmpl_var toolbar></p>
</tmpl_if>
<h1><tmpl_var title></h1>
<tmpl_if description>
<tmpl_var description><br /><br />
</tmpl_if>
<table class="content" width="100%">
<tr><td valign="top" width="50%">
<p>Use the form below to select up to <tmpl_var maxCompares> listings to compare at once.
</p>
<tmpl_var compare.form>
</td><td valign="top">
<p>
<b>Narrow The Matrix</b><br>
You can narrow the scope of the matrix by <a href="<tmpl_var search.url>">searching</a> for exactly the criteria you're looking for in a listing.
</p>
<p>
<br><b>Expand The Matrix</b><br>
<tmpl_if isLoggedIn>
<a href="<tmpl_var listing.add.url>">Click here to add a new listing.</a> Please note that you will be the official maintainer of the listing, and will be responsible for keeping it up to date.
<tmpl_else>
If you are the maker of a product, or are an expert user and are willing to maintain the listing, <a href="^a(linkonly);">create an account</a> so you can register your listing.
</tmpl_if>
</p>
<br><b>Listing Statistics</b><br>
<table class="content">
<tr>
<td>Most clicks:</td>
<td><tmpl_var best.clicks.count></td>
<td><a href="<tmpl_var best.clicks.url>"><tmpl_var best.clicks.name></a></td>
</tr>
<tr>
<td>Most views:</td>
<td><tmpl_var best.views.count></td>
<td><a href="<tmpl_var best.views.url>"><tmpl_var best.views.name></a></td>
</tr>
<tr>
<td>Most compares:</td>
<td><tmpl_var best.compares.count></td>
<td><a href="<tmpl_var best.compares.url>"><tmpl_var best.compares.name></a></td>
</tr>
<tr>
<td>Most recently updated:</td>
<td><tmpl_var best.updated.date></td>
<td><a href="<tmpl_var best.updated.url>"><tmpl_var best.updated.name></a></td>
</tr>
<tr>
<td colspan="3"><hr size="1"></td>
</tr>
<tr>
<td align="center" colspan="3">Best Rated By Users</td>
</tr>
<tmpl_loop best_rating_loop>
<tr>
<td><tmpl_var category></td>
<td><tmpl_var mean>/10</td>
<td><a href="<tmpl_var url>"><tmpl_var name></a></td>
</tr>
</tmpl_loop>
<tr>
<td colspan="3"><hr size="1"></td>
</tr>
<tr>
<td colspan="3" align="center"><a href="<tmpl_var ratings.details.url>">View Ratings Details</a></td>
</tr>
<tr>
<td colspan="3"><hr size="1"></td>
</tr>
<tr>
<td align="center" colspan="3">Worst Rated By Users</td>
</tr>
<tmpl_loop worst_rating_loop>
<tr>
<td><tmpl_var category></td>
<td><tmpl_var mean>/10</td>
<td><a href="<tmpl_var url>"><tmpl_var name></a></td>
</tr>
</tmpl_loop>
<tr>
<td colspan="3"><hr size="1"></td>
</tr>
</table>
<br>
<br><b>Site Statistics</b><br>
<table class="content">
<tr>
<td>Listing Count:</td>
<td><tmpl_var listing.count></td>
</tr>
<tr>
<td>Current Visitors:</td>
<td><tmpl_var current.user.count></td>
</tr>
<tr>
<td>Registered Users:</td>
<td><tmpl_var user.count></td>
</tr>
</table>
<tmpl_if session.var.adminOn>
<p> <a href="<tmpl_var field.list.url>">List Fields</a>
</p>
<tmpl_if pending_list>
<b>PENDING LISTINGS:</b>
</tmpl_if>
<ul>
<tmpl_loop pending_list>
<li><a href="<tmpl_var url>"><tmpl_var productName></a></li>
</tmpl_loop>
</ul>
</tmpl_if>
</td></tr></table>
STOP
$newAsset = $folder->addChild({
title=>"Matrix Default View",
menuTitle=>"Matrix Default View",
namespace=>"Matrix",
url=>"matrix-default-view-template",
className=>"WebGUI::Asset::Template",
template=>$template
}, "matrixtmpl000000000001");
$newAsset->commit;
$template = <<STOP;
<style>
.ratingForm {
font-size: 9px;
}
</style>
<h1><tmpl_var productName></h1>
<table class="content">
<tr><td valign="top">
<table class="content">
<tr><td><b>Web Site</b></td><td><a target="_blank" href="<tmpl_var productUrl.click>"><tmpl_var productUrl></a></td></tr>
<tr><td><b>Version Number</b></td><td><tmpl_var versionNumber></td></tr>
<tr><td><b>Manufacturer</b></td><td><a target="_blank" href="<tmpl_var manufacturerUrl.click>"><tmpl_var manufacturerName></a></td></tr>
<tr><td><b>Last Updated</b></td><td><tmpl_var lastUpdated.date></td></tr>
<tr><td><b>Clicks</b></td><td><tmpl_var clicks></td></tr>
<tr><td><b>Views</b></td><td><tmpl_var views></td></tr>
<tr><td><b>Compares</b></td><td><tmpl_var compares></td></tr>
</table>
</td>
<td valign="top">&nbsp;</td>
<td valign="top">
<tmpl_if description>
<b>Description</b><br /><tmpl_var description><br /><br />
</tmpl_if>
<b>Contact Maintainer</b><br />
<tmpl_if email.wasSent>
<div style="color: green;">Message sent.<br /></div>
</tmpl_if>
<tmpl_var email.form>
</td>
<td valign="top">&nbsp;</td>
<td valign="top">
<tmpl_var ratings>
</td>
</tr>
</table>
<p />
<table width="100%" class="content">
<tr>
<td valign="top" width="50%">
<span class="category">Features</span>
<table class="content" width="180">
<tmpl_loop features_loop>
<tr
<tmpl_if __ODD__>
class="odd"
<tmpl_else>
class="even"
</tmpl_if>
>
<td onmouseover="return escape('<tmpl_var description>')"><tmpl_var label></td><td><tmpl_var value></td>
</tr>
</tmpl_loop>
</table>
<p />
</td>
<td valign="top" width="50%">
<span class="category">Benefits</span>
<table class="content" width="180">
<tmpl_loop benefits_loop>
<tr
<tmpl_if __ODD__>
class="odd"
<tmpl_else>
class="even"
</tmpl_if>
>
<td onmouseover="return escape('<tmpl_var description>')"><tmpl_var label></td><td class="<tmpl_var class>"><tmpl_var value></td>
</tr>
</tmpl_loop>
</table>
</td>
</tr>
</table>
<p />
<tmpl_var discussion>
<tmpl_if user.canEdit>
<br /> <hr /><a href="<tmpl_var edit.url>">Edit this listing.</a> <br>
</tmpl_if>
<tmpl_if user.canApprove>
<tmpl_if isPending>
<a href="<tmpl_var approve.url>">Approve this listing.</a><br>
</tmpl_if>
<a href="<tmpl_var delete.url>">Delete this listing.</a><br>
</tmpl_if>
STOP
$newAsset = $folder->addChild({
title=>"Matrix Default Detailed Listing",
menuTitle=>"Matrix Default Detailed Listing",
namespace=>"Matrix/Detail",
url=>"matrix-default-detailed-listing",
className=>"WebGUI::Asset::Template",
template=>$template
}, "matrixtmpl000000000003");
$newAsset->commit;
$template = <<STOP;
<h1>Rating Detail</h1>
<table class="content" cellpadding="5" width="60%">
<tbody>
<tmpl_loop rating_loop>
<tmpl_if __ODD__>
<tr>
</tmpl_if>
<td width="50%" valign="top">
<h2><tmpl_var category></h2>
<table class="content">
<tbody>
<tr><th>Listing</th><th>Mean</th><th>Median</th><th>Count</th></tr>
<tmpl_loop detail_loop>
<tr>
<td><a href="<tmpl_var url>"><tmpl_var name></a></td>
<td><tmpl_var mean></td>
<td><tmpl_var median></td>
<td><tmpl_var count></td>
</tr>
</tmpl_loop>
</tbody>
</table>
</td>
<tmpl_if __EVEN__>
</tr>
</tmpl_if>
</tmpl_loop>
</tr>
</tbody>
</table>
STOP
$newAsset = $folder->addChild({
title=>"Matrix Default Rating Detail",
menuTitle=>"Matrix Default Rating Detail",
namespace=>"Matrix/RatingDetail",
url=>"matrix-rating-detail-template",
className=>"WebGUI::Asset::Template",
template=>$template
}, "matrixtmpl000000000004");
$newAsset->commit;
$template = <<STOP;
<h1>Search The Matrix</h1>
<tmpl_if isTooFew>
<p>Your search returned no results. Try specifying a few less criteria.</p>
</tmpl_if>
<tmpl_if isTooMany>
<p>
Your search returned too many results. Either select up to <tmpl_var maxCompares> products from the list below, or specify more critera.
</p>
</tmpl_if>
<table width="100%" class="content">
<tr><td valign="top">
<tmpl_var compare.form>
</td><td valign="top">
<tmpl_var form.header>
<tmpl_var form.submit>
<table width="100%" class="content">
<tr>
<td valign="top" width="50%">
<span class="category">Features</span>
<table class="content" width="180">
<tmpl_loop features_loop>
<tr
<tmpl_if __ODD__>
class="odd"
<tmpl_else>
class="even"
</tmpl_if>
>
<td onmouseover="return escape('<tmpl_var description>')"><tmpl_var label></td><td><tmpl_var form></td>
</tr>
</tmpl_loop>
</table>
</td>
<td valign="top" width="50%">
<span class="category">Benefits</span>
<table class="content">
<tmpl_loop benefits_loop>
<tr
<tmpl_if __ODD__>
class="odd"
<tmpl_else>
class="even"
</tmpl_if>
>
<td onmouseover="return escape('<tmpl_var description>')"><tmpl_var label></td><td><tmpl_var form></td>
</tr>
</tmpl_loop>
</table>
</td>
</tr>
</table>
<tmpl_var form.submit>
<tmpl_var form.footer>
</td></tr></table>
STOP
$newAsset = $folder->addChild({
title=>"Matrix Default Search",
menuTitle=>"Matrix Default Search",
namespace=>"Matrix/Search",
url=>"matrix-search-template",
className=>"WebGUI::Asset::Template",
template=>$template
}, "matrixtmpl000000000005");
$newAsset->commit;
}
#-------------------------------------------------
sub updateCollaboration {
print "\tAdding collaboration/rss template\n" unless ($quiet);