Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/site/app/views/addons
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@member.fsf.org>2009-06-11 11:59:20 (GMT)
committer Aleksey Lim <alsroot@member.fsf.org>2009-06-11 11:59:20 (GMT)
commit15238e13918a019bdc020c3eeafa5e01c810bbf1 (patch)
treee11aa9a28033dbfca2ede7169da745518bf3e992 /site/app/views/addons
parente9361d633e8163e508a4dcde36c25c94f7e8b272 (diff)
Fake v2 production branchv2
Diffstat (limited to 'site/app/views/addons')
-rw-r--r--site/app/views/addons/browse.thtml71
-rw-r--r--site/app/views/addons/browse_thumbs.thtml166
-rw-r--r--site/app/views/addons/category_landing.thtml299
-rw-r--r--site/app/views/addons/dictionaries.thtml20
-rw-r--r--site/app/views/addons/display.thtml759
-rw-r--r--site/app/views/addons/home.thtml311
-rw-r--r--site/app/views/addons/plugins.thtml153
-rw-r--r--site/app/views/addons/policy.thtml116
-rw-r--r--site/app/views/addons/recommended.thtml50
-rw-r--r--site/app/views/addons/searchengines.thtml173
-rw-r--r--site/app/views/addons/themes_landing.thtml118
-rw-r--r--site/app/views/addons/versions.thtml168
12 files changed, 1312 insertions, 1092 deletions
diff --git a/site/app/views/addons/browse.thtml b/site/app/views/addons/browse.thtml
index 7c5f80f..69d6acf 100644
--- a/site/app/views/addons/browse.thtml
+++ b/site/app/views/addons/browse.thtml
@@ -38,38 +38,51 @@
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
+?>
+
+<div id="content" class="category">
-$this->viewVars['bodyclass'] = 'inverse';
-$this->layout = 'amo2009';
+<?php
+if (!empty($type) && !empty($this_tag) && array_key_exists('Tag', $this_tag))
+ echo $this->renderElement('search', array('category' =>
+ array($type, $this_tag['Tag']['id'])));
+else
+ echo $this->renderElement('search');
?>
-<div class="section" id="browse">
- <div class="stand-alone-options">
- <?=$this->renderElement('amo2009/categories')?>
- <?php
- if (!empty($type) && array_key_exists('Tag', $this_tag))
- echo $this->renderElement('amo2009/search', array('category' =>
- array($type, $this_tag['Tag']['id'])));
- else
- echo $this->renderElement('amo2009/search');
- ?>
- </div>
- <div class="primary full" role="main">
- <h2><?=$subpagetitle?></h2>
+<div id="content-main">
- <h3><?=sprintf(ngettext('addon_list_category_totalcount',
- 'addon_list_category_totalcount', $paging['total']),
- $paging['total'])?></h3>
- <div class="featured listing" id="addon-listing">
- <?php
- echo $this->renderElement('amo2009/addon_list_options', array('paging' => $paging));
- foreach ($addons as $val) {
- echo $this->renderElement('amo2009/homepage_addon', array('addon' => $val));
- }
- ?>
- </div>
+<?=$this->renderElement('addon_list_options', array('paging'=>$paging))?>
- <?=$this->renderElement('amo2009/pagination');?>
- </div><!-- /primary -->
+<ul id="addon-listing">
+<?
+foreach ($addons as $val) {
+ // prepare preview image
+ $prevPath = $this->controller->Image->getHighlightedPreviewURL($val['Addon']['id']);
+ // prepare icon
+ $iconPath = $this->controller->Image->getAddonIconURL($val['Addon']['id']);
+
+ echo $this->renderElement('addon_listitem', array(
+ 'addon' => $val,
+ 'addonIconPath' => $iconPath,
+ 'addonPreviewPath' => $prevPath,
+ ));
+}
+?>
+</ul>
-</div><!-- /section -->
+<?=$this->renderElement('pagination', array('countstring' =>
+ sprintf(ngettext('addon_list_category_totalcount',
+ 'addon_list_category_totalcount', $paging['total']), $paging['total'])));?>
+
+</div><!-- /#content-main -->
+
+<?php
+if (!empty($type) && array_key_exists('Tag', $this_tag))
+ echo $this->renderElement('sidebar', array('highlight' =>
+ array($type, $this_tag['Tag']['id'])));
+else
+ echo $this->renderElement('sidebar');
+?>
+<?=$this->renderElement('app_chooser')?>
+</div><!-- /#content -->
diff --git a/site/app/views/addons/browse_thumbs.thtml b/site/app/views/addons/browse_thumbs.thtml
index a5c029e..a405f89 100644
--- a/site/app/views/addons/browse_thumbs.thtml
+++ b/site/app/views/addons/browse_thumbs.thtml
@@ -36,65 +36,19 @@
*
* ***** END LICENSE BLOCK ***** */
-$this->viewVars['bodyclass'] = 'browse_thumbs';
-$this->layout = 'amo2009';
?>
-<div class="stand-alone-options">
- <?=$this->renderElement('amo2009/categories')?>
- <?php
- if (!empty($type) && !empty($this_tag) && array_key_exists('Tag', $this_tag))
- echo $this->renderElement('amo2009/search', array('category' =>
- array($type, $this_tag['Tag']['id'])));
- else
- echo $this->renderElement('amo2009/search');
- ?>
-</div>
-
-<div class="secondary">
- <div class="highlight" id="thumb-subcategories">
- <h3><?=___('general_addontype_theme_plural', 'Themes')?></h3>
- <ul class="subcategories">
- <li<?= ($this_tag == FALSE) ? ' class="selected"' : '' ?>><?=$html->link(
- 'All',
- "/browse/type:{$type}/cat:all?sort={$sort_by}"
- )?>
- <span class="items"><?=$all_total?></span>
- </li>
- <?php foreach ($subcats as $subcat): ?>
- <?php
- $params = 'sort=' . $sort_by;
- if ($show_exp)
- $params .= '&exp=on';
- if ($show_limit)
- $params .= '&show=' . $show_limit;
- ?>
- <li class="sub<?= ($this_tag['Tag']['id'] == $subcat['Tag']['id']) ? ' selected' : '' ?>"><?=$html->link(
- $subcat['Translation']['name']['string'],
- "/browse/type:{$subcat['Tag']['addontype_id']}/cat:{$subcat['Tag']['id']}?{$params}"
- )?>
- <span class="items"><?=(isset($subcat_totals[$subcat['Tag']['id']]) ? $subcat_totals[$subcat['Tag']['id']] : 0) ?></span>
- </li>
- <?php endforeach; ?>
- </ul>
- </div>
-</div>
+<div id="content" class="landing browse">
-<div class="primary" role="main">
+ <?=$this->renderElement('search', array('category' => array($type, 0)))?>
- <?php if ( empty($this_tag)): ?>
- <h2><?=___('themes_landing_browse_themes', 'Browse Themes')?></h2>
- <?php else: ?>
- <h2><?=$this_tag['Translation']['name']['string']?></h2>
- <?php endif ?>
+ <div id="content-main">
- <h3><?=sprintf(ngettext('addon_list_category_totalcount',
- 'addon_list_category_totalcount', $paging['total']),
- $paging['total'])?></h3>
- <div class="featured listing" id="addon-listing">
- <?= $this->renderElement('amo2009/addon_list_options', array('paging' => $paging)) ?>
+ <div id="thumb-browser">
- <ul class="thumbs clearfix">
+ <?=$this->renderElement('addon_list_options', array('paging'=>$paging))?>
+
+ <ul class="thumbs">
<?php
foreach ($addons as $addon) {
$addonID = $addon['Addon']['id'];
@@ -106,43 +60,93 @@ $this->layout = 'amo2009';
$_alt = sprintf(_('img_preview_of'),$addonName);
$previmg = '<img src="'.$prevPath.'" alt="'.$_alt.'" title="'.$_alt.'"/>';
$previmg = $html->link($previmg, "/addon/{$addonID}");
+
+ // is addon recommended or experimental?
+ global $experimental_status;
+ if (in_array($addon['Addon']['status'], $experimental_status)) {
+ $flag = _('addon_listitem_flag_experimental');
+ $li_extraclass = 'exp';
+ } elseif ($addon['Addon']['recommended']) {
+ $flag = _('addon_listitem_flag_recommended');
+ $li_extraclass = 'rec';
+ } else {
+ $flag = '';
+ $li_extraclass = '';
+ }
+
?>
- <li class="thumb <?=$html->extraClass($addon)?>">
- <div class="thumb_item">
- <div class="img"><?=$previmg?></div>
- <h4 class="name"><?=$html->link("$addonName", "/addon/{$addonID}");?></h4>
- <?=$html->flag($addon)?>
- <p class="meta">
- <?php if ($sort_by == 'updated'): ?>
- <?php
- $_update_string = (_('addon_detail_last_updated') == 'addon_detail_last_updated') ? 'Updated %s' : _('addon_detail_last_updated');
- $_version_date = (isset($addon['Addon']['datestatuschanged']) ? $addon['Addon']['datestatuschanged'] : $addon['Version'][0]['created']);
- echo sprintf($_update_string, strftime(_('date'), strtotime($_version_date)));
- ?>
- <?php elseif ($sort_by == 'popular'): ?>
- <em><?=$html->number_format($addon['Addon']['weeklydownloads'], 0)?></em>
- <?php
- echo ___('addon_downloads_weekly', _('addon_downloads'));
- ?>
- <?php else: ?>
- <?=$this->renderElement('stars',array('rating' => $addon['Addon']['averagerating']))?>
- <?php if ($addon['Addon']['totalreviews'] > 0): ?>
- <a href="<?= $html->url('/addon/'.$addon['Addon']['id'].'#reviews') ?>"><?=
- sprintf(ngettext('feature_reviews','feature_reviews',
- $addon['Addon']['totalreviews']), $addon['Addon']['totalreviews'])
- ?></a>
+ <li class="thumb <?=$li_extraclass?>">
+ <div class="wrapper">
+ <div class="item">
+ <div class="img"><?=$previmg?></div>
+ <h3 class="name"><?=$html->link("$addonName", "/addon/{$addonID}");?></h3>
+ <? if (!empty($flag)) echo '<h5 class="flag">'.$flag.'</h5>'; ?>
+ <p class="meta">
+ <?php if ($sort_by == 'updated'): ?>
+ <?php
+ $_update_string = (_('addon_detail_last_updated') == 'addon_detail_last_updated') ? 'Updated %s' : _('addon_detail_last_updated');
+ $_version_date = (isset($addon['Addon']['datestatuschanged']) ? $addon['Addon']['datestatuschanged'] : $addon['Version'][0]['created']);
+ echo sprintf($_update_string, strftime(_('date'), strtotime($_version_date)));
+ ?>
+ <?php elseif ($sort_by == 'popular'): ?>
+ <em><?=$html->number_format($addon['Addon']['weeklydownloads'], 0)?></em>
+ <?php
+ echo ___('addon_downloads_weekly', _('addon_downloads'));
+ ?>
+ <?php else: ?>
+ <?=$this->renderElement('stars',array('rating' => $addon['Addon']['averagerating']))?>
+ <?php if ($addon['Addon']['totalreviews'] > 0): ?>
+ <a href="<?= $html->url('/addon/'.$addon['Addon']['id'].'#reviews') ?>"><?=
+ sprintf(ngettext('feature_reviews','feature_reviews',
+ $addon['Addon']['totalreviews']), $addon['Addon']['totalreviews'])
+ ?></a>
+ <?php endif ?>
<?php endif ?>
- <?php endif ?>
- </p>
+ </p>
+ </div>
</div>
+ <div class="vex"><span>&nbsp;</span></div>
</li>
<?php
}
?>
</ul>
+ <br style="clear:both" />
+
+ <?=$this->renderElement('pagination', array('countstring' =>
+ sprintf(ngettext('addon_list_category_totalcount',
+ 'addon_list_category_totalcount', $paging['total']), $paging['total'])));?>
+
+ </div> <!-- #thumb-browser -->
+
+
+ </div><!-- /#content-main -->
+
+ <div id="thumb-subcategories">
+ <ul class="subcategories">
+ <li<?= ($this_tag == FALSE) ? ' class="selected"' : '' ?>><?=$html->link(
+ 'All ('.$all_total.')',
+ "/browse/type:{$type}/cat:all?sort={$sort_by}"
+ )?></li>
+ <?php foreach ($subcats as $subcat): ?>
+ <?php
+ $params = 'sort=' . $sort_by;
+ if ($show_exp)
+ $params .= '&exp=on';
+ if ($show_limit)
+ $params .= '&show=' . $show_limit;
+ ?>
+ <li<?= ($this_tag['Tag']['id'] == $subcat['Tag']['id']) ? ' class="selected"' : '' ?>><?=$html->link(
+ $subcat['Translation']['name']['string'] . ' (' . (isset($subcat_totals[$subcat['Tag']['id']]) ? $subcat_totals[$subcat['Tag']['id']] : 0) . ')',
+ "/browse/type:{$subcat['Tag']['addontype_id']}/cat:{$subcat['Tag']['id']}?{$params}"
+ )?></li>
+ <?php endforeach; ?>
+ </ul>
</div>
- <?=$this->renderElement('amo2009/pagination');?>
+ <?=$this->renderElement('sidebar', array('highlight' => array($type, 0)))?>
+
+ <?=$this->renderElement('app_chooser')?>
-</div><!-- /primary -->
+</div><!-- /#content -->
diff --git a/site/app/views/addons/category_landing.thtml b/site/app/views/addons/category_landing.thtml
index db0764c..5cff14d 100644
--- a/site/app/views/addons/category_landing.thtml
+++ b/site/app/views/addons/category_landing.thtml
@@ -37,142 +37,187 @@
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
-
-$this->viewVars['bodyclass'] = 'inverse category_landing';
-$this->layout = 'amo2009';
-
-$curr_tag_name = $this_tag['Translation']['name']['string'];
-$curr_tag_desc = $this_tag['Translation']['description']['string'];
-
-$nameLimit = 40;
-$summaryLimit = 70;
?>
-<div class="stand-alone-options">
- <?=$this->renderElement('amo2009/categories')?>
- <?=$this->renderElement('amo2009/search')?>
-</div>
-<div class="primary" role="main">
+<div id="content" class="landing landing-with-slider">
- <h2><?php echo $curr_tag_name ?></h2>
+<?=$this->renderElement('search', array('category' =>
+ array($this_tag['Tag']['addontype_id'], $this_tag['Tag']['id'])))?>
- <div id="featured_addons" class="clearfix">
- <ul>
- <?php foreach ($featured_addons as $addon): ?>
-
- <li class="addon_block_wrapper">
- <div class="addon_block item">
- <h4 class="name"><a href="<?=$html->url("/addon/{$addon['Addon']['id']}")?>"><?php echo $html->truncateChars(28, $addon['Translation']['name']['string'], true) ?></a></h4>
- <p class="authors"><?=_('addons_home_by')?> <?=$html->linkUsersFromModel($addon['User'], 2,"/addon/{$addon['Addon']['id']}#authors" );?></p>
- <p class="summary"><?php echo $html->truncateChars($summaryLimit, $addon['Translation']['summary']['string'], true) ?></p>
- <div class="preview"><a href="<?=$html->url("/addon/{$addon['Addon']['id']}")?>"><img src="<?php echo $this->controller->Image->getHighlightedPreviewURL($addon['Addon']['id']);?>" alt="" /></a></div>
- <p class="rating"><?=$this->renderElement('amo2009/stars',array('rating' => $addon['Addon']['averagerating']))?></p>
- <?php
- $addonIconPath = $this->controller->Image->getAddonIconURL($addon['Addon']['id']);
- $addonID = $addon['Addon']['id'];
- $addonName = $addon['Translation']['name']['string'];
- $hasVersion = (isset($addon['Version']) && !empty($addon['Version']));
- $addonVersion = ($hasVersion ? $addon['Version'][0]['version'] : '');
- $hasFiles = ($hasVersion && !empty($addon['File']));
- if ($hasFiles) {
- $addonFiles = $addon['File'];
- $addonEULA = $addon['Translation']['eula']['string'];
-
-
- $addonCreators = $addon['User'];
- $addonSummary = $addon['Translation']['summary']['string'];
+<div id="content-main">
+
+ <div id="content-extra">
+ <div class="more-addons">
+ <h3><?=$html->link(sprintf(_('category_extra_see_all'), $this_tag['Translation']['name']['string']),
+ "/browse/type:{$type_id}/cat:{$cat_id}?sort=name",
+ array('class'=>'view'))?></h3>
+
+ <ul>
+ <?php
+ $sortorders = array(
+ 'popular' => _('category_extra_mostpopular'),
+ 'rated' => _('category_extra_highestrated'),
+ 'updated' => _('category_extra_lastupdated'),
+ );
+ foreach ($sortorders as $sortkey => $title):
+ ?>
+ <li><?=$html->link($title,
+ "/browse/type:{$type_id}/cat:{$cat_id}?sort={$sortkey}",
+ array('class'=>'view'))?></li>
+ <?php endforeach; ?>
+ <li><?=$html->link(_('category_extra_allrecommended'),
+ "/recommended/cat:{$cat_id}", array('class'=>'view'))?></li>
+ </ul>
+ </div>
+
+ <?=$this->renderElement('pitch'); ?>
+ </div><!-- /#content-extra -->
- // prepare preview image
- if (isset($addonPreviewPath) && !empty($addonPreviewPath)) {
- $_alt = sprintf(_('img_preview_of'),$addonName);
- $previmg = '<img src="'.$addonPreviewPath.'" '
- .'alt="'.$_alt.'" title="'.$_alt.'"/>';
- $previmg = '<p class="preview-img">'
- .$html->link($previmg, "/addon/{$addonID}").'</p>';
- } else
- $previmg = '';
- // prepare icon
- if (isset($addonIconPath) && !empty($addonIconPath))
- $icon = '<img src="'.$addonIconPath.'" class="icon" alt=""/>';
- else
- $icon = '';
+ <?php if (!empty($featureAddons)): ?>
+ <!-- <div> -->
+ <div id="recommended">
+ <h3><?=_('addons_home_feature_head')?></h3>
- // prepare categories
- if (!empty($addon['Tag'])) {
- $categories = $this->renderElement('addon_categories', array('tags' => $addon['Tag']));
- } else
- $categories = '';
+ <div id="slider" class="slider_widget">
+ <div class="inner">
+ <div class="viewport">
+ <ul class="item_set">
+ <?php
+ $idx = 0;
+ $total_features = count( $featureAddons );
+ foreach ( $featureAddons as $feature1 ) {
+ $idx++;
- // prepare summary
- if (!isset($addonSummary) || empty($addonSummary))
- $addonSummary = '&nbsp;';
+ $prev_idx = $idx - 1;
+ if ($prev_idx < 1)
+ $prev_idx = $total_features;
+ $next_idx = $idx + 1;
+ if ($next_idx > $total_features)
+ $next_idx = 1;
- $_install_render_options = array(
- 'addonIconPath' => $addonIconPath,
- 'addonName' => $addonName,
- 'addonId' => $addonID,
- 'addonFiles' => $addonFiles,
- 'addonEULA' => $addonEULA,
- 'addonStatus' => $addon['Addon']['status'],
- 'is_latest' => ($addon['Addon']['status'] == STATUS_PUBLIC),
- 'addonType' => $addon['Addon']['addontype_id'],
- 'compatible_apps' => $addon['compatible_apps'],
- 'allPlatforms' => $platforms,
- 'buttonType' => 'small',
- 'showInstructions' => false
- );
- echo $this->renderElement('amo2009/install', $_install_render_options);
-
- }
- ?>
+ ?>
+ <li id="feature1_<?=$idx?>" class="item addon featured main">
+ <?=$this->renderElement('feature', array(
+ 'addonIconPath' => $this->controller->Image->getAddonIconURL($feature1['Addon']['id']),
+ 'addonThumbPath' => $this->controller->Image->getHighlightedPreviewURL($feature1['Addon']['id']),
+ 'addonName' => $feature1['Translation']['name']['string'],
+ 'addonSummary' => $feature1['Translation']['summary']['string'],
+ 'addonId' => $feature1['Addon']['id'],
+ 'addonFiles' => $feature1['File'],
+ 'addonEULA' => $feature1['Translation']['eula']['string'],
+ 'addonStatus' => $feature1['Addon']['status'],
+ 'addonAuthors' => $feature1['User'],
+ 'addonTags' => $feature1['Tag'],
+ 'addonWeeklyDownloads' => $feature1['Addon']['weeklydownloads'],
+ 'allPlatforms' => $platforms,
+ 'compatible_apps' => $feature1['compatible_apps'],
+ 'addonType' => $feature1['Addon']['addontype_id'],
+ 'addonRating' => $feature1['Addon']['averagerating'],
+ 'addonReviews' => $feature1['Addon']['totalreviews'],
+ 'addonVersionCreated' => $feature1['Version'][0]['created']
+ ))?>
+ </li>
+ <?php
+ } ?>
+ </ul>
+ </div>
+ <div class="controls">
+ <div class="controls_inner">
+ <a href="#slider" title="Previous" class="prev">
+ <img src="<?=$html->urlImage("slider-prev-disabled.gif")?>"
+ width="30" height="30" alt="<?=___('addon_slider_tooltip_previous', 'Previous Add-on')?>"
+ title="<?=___('addon_slider_tooltip_previous', 'Previous Add-on')?>" />
+ </a>
+ <span class="indicator">
+ <span class="index">1</span>
+ /
+ <span class="total"><?=$total_features?></span>
+ </span>
+ <a href="#slider" title="Next" class="next">
+ <img src="<?=$html->urlImage("slider-next.gif")?>"
+ width="30" height="30" alt="<?=___('addon_slider_tooltip_next', 'Next Add-on')?>"
+ title="<?=___('addon_slider_tooltip_next', 'Next Add-on')?>" />
+ </a>
</div>
- </li>
- <?php endforeach ?>
- </ul>
- </div>
-
- <div id="new_addons" class="addons_column clearfix">
- <h3><span><?= ___('addons_recently_added') ?></span></h3>
- <ul>
- <?php foreach ($new_addons as $idx=>$addon): ?>
- <li class="<?= (0 == ($idx % 2)) ? 'odd' : 'even' ?>"><a href="<?=$html->url("/addon/{$addon['id']}")?>">
- <img class="icon" src="<?php echo $addon['icon_url']?>" width="32" height="32" alt="" />
- <span class="name"><?php echo $html->truncateChars($nameLimit, $addon['name'], true) ?></span>
- <span class="meta created">
- added <?php echo strftime('%m/%d/%Y', strtotime($addon['created'])) ?>
- </span>
- </a></li>
- <?php endforeach ?>
- </ul>
- <p class="view-all"><?=$html->link(___('view_recently_added').' »',"/browse/type:{$type_id}/cat:{$cat_id}?sort=newest")?></p>
- </div>
+ </div>
+ </div>
+ <div class="vex"><span><!-- bottom edge --></span></div>
+ </div>
+ </div><!-- /#recommended -->
+ <?php endif; /* !empty(recommended) */ ?>
- <div id="popular_addons" class="addons_column clearfix">
- <h3><span><?=___('addons_top_downloads') ?></span></h3>
- <ul>
- <?php foreach ($popular_addons as $idx=>$addon): ?>
- <li class="<?= (0 == ($idx % 2)) ? 'odd' : 'even' ?>"><a href="<?=$html->url("/addon/{$addon['id']}")?>">
- <img class="icon" src="<?php echo $addon['icon_url']?>" width="32" height="32" alt="" />
- <span class="name"><?php echo $html->truncateChars($nameLimit, $addon['name'], true) ?></span>
- <span class="meta downloads"><?php echo $html->number_format($addon['weeklydownloads']) ?> <?= _('addon_downloads_weekly') ?></span>
- </a></li>
- <?php endforeach ?>
- </ul>
- <p class="view-all"><?=$html->link(___('view_top_downloads').' »',"/browse/type:{$type_id}/cat:{$cat_id}?sort=popular")?></p>
- </div>
+ <?php if (FALSE && !empty($featureAddons)): ?>
+ <div id="recommended">
+ <h3><?=_('addons_home_feature_head')?></h3>
+ <?php
+ foreach($featureAddons as $id => $addon):
+ ?>
+ <div id="feature<?=$id+1?>" class="addon main">
+ <?=$this->renderElement('feature', array(
+ 'addonIconPath' => $this->controller->Image->getAddonIconURL($addon['Addon']['id']),
+ 'addonThumbPath' => $this->controller->Image->getHighlightedPreviewURL($addon['Addon']['id']),
+ 'addonName' => $addon['Translation']['name']['string'],
+ 'addonSummary' => $addon['Translation']['summary']['string'],
+ 'addonId' => $addon['Addon']['id'],
+ 'addonFiles' => $addon['File'],
+ 'addonEULA' => $addon['Translation']['eula']['string'],
+ 'addonAuthors' => $addon['User'],
+ 'addonWeeklyDownloads' => $addon['Addon']['weeklydownloads'],
+ 'allPlatforms' => $platforms,
+ 'compatible_apps' => $addon['compatible_apps'],
+ 'addonType' => $addon['Addon']['addontype_id'],
+ 'addonRating' => $addon['Addon']['averagerating'],
+ 'addonReviews' => $addon['Addon']['totalreviews'],
+ 'addonVersionCreated' => $addon['Version'][0]['created']
+ ))?>
+ <div class="vex"><span><!-- bottom edge --></span></div>
+ </div>
+ <?php endforeach; ?>
+ </div><!-- /#recommended -->
+ <?php endif; /* !empty(recommended) */ ?>
+
+ <?php if (!empty($randomAddons)): ?>
+ <div id="secondaries">
+ <?php
+ global $experimental_status;
+ $is_first = TRUE;
+ foreach($randomAddons as $id => $addon):
+ $idx = count($featureAddons) + $id + 1;
+ if (in_array($addon['Addon']['status'], $experimental_status))
+ $extraclass = ' exp';
+ else
+ $extraclass = '';
+ if ($is_first) {
+ $is_first = FALSE; $extraclass = ' first';
+ }
+ ?>
+ <div id="feature<?=$idx?>" class="addon sub<?=$extraclass?>">
+ <div class="irk">
+ <?=$this->renderElement('feature', array(
+ 'addonIconPath' => $this->controller->Image->getAddonIconURL($addon['Addon']['id']),
+ 'addonThumbPath' => $this->controller->Image->getHighlightedPreviewURL($addon['Addon']['id']),
+ 'addonName' => $addon['Translation']['name']['string'],
+ 'addonSummary' => $addon['Translation']['summary']['string'],
+ 'addonId' => $addon['Addon']['id'],
+ 'addonEULA' => $addon['Translation']['eula']['string'],
+ 'addonStatus' => $addon['Addon']['status'],
+ 'addonAuthors' => $addon['User'],
+ 'addonWeeklyDownloads' => $addon['Addon']['weeklydownloads'],
+ 'allPlatforms' => $platforms,
+ 'addonType' => $addon['Addon']['addontype_id'],
+ 'addonRating' => $addon['Addon']['averagerating'],
+ 'addonReviews' => $addon['Addon']['totalreviews']
+ ))?>
+ </div>
+ <div class="vex"><span><!-- bottom edge --></span></div>
+ </div>
+ <?php endforeach; ?>
+ </div><!-- /#secondaries -->
+ <?php endif; /* !empty(random) */ ?>
- <div id="updated_addons" class="addons_column last clearfix">
- <h3><span><?=___('addons_top_rated') ?></span></h3>
- <ul>
- <?php foreach ($updated_addons as $idx=>$addon): ?>
- <li class="<?= (0 == ($idx % 2)) ? 'odd' : 'even' ?>"><a href="<?=$html->url("/addon/{$addon['id']}")?>">
- <img class="icon" src="<?php echo $addon['icon_url']?>" width="32" height="32" alt="" />
- <span class="name"><?php echo $html->truncateChars($nameLimit, $addon['name'], true) ?></span>
- <span class="meta rating"><?=$this->renderElement('amo2009/stars',array('rating' => $addon['averagerating']))?></span>
- </a></li>
- <?php endforeach ?>
- </ul>
- <p class="view-all"><?=$html->link(___('view_top_rated').' »',"/browse/type:{$type_id}/cat:{$cat_id}?sort=rated")?></p>
- </div>
+</div><!-- /#content-main -->
-</div>
+<?=$this->renderElement('sidebar', array('highlight' =>
+ array($this_tag['Tag']['addontype_id'], $this_tag['Tag']['id'])))?>
+<?=$this->renderElement('app_chooser')?>
+</div><!-- /#content -->
diff --git a/site/app/views/addons/dictionaries.thtml b/site/app/views/addons/dictionaries.thtml
index da197e8..0a0bcd7 100644
--- a/site/app/views/addons/dictionaries.thtml
+++ b/site/app/views/addons/dictionaries.thtml
@@ -47,18 +47,14 @@ if (in_array(APP_ID, $browser_apps)) {
$install_text[ADDON_DICT] = _('langtools_download_dictionary');
$install_text[ADDON_LPAPP] = _('langtools_download_langpack');
}
-
-$this->viewVars['bodyclass'] = 'inverse';
-$this->layout = 'amo2009';
?>
-<div class="section">
- <div class="stand-alone-options">
- <?=$this->renderElement('amo2009/categories')?>
- <?=$this->renderElement('amo2009/search'); ?>
- </div>
+<div id="content" class="landing languages">
+
+<?=$this->renderElement('search', array('category'=>array(ADDON_DICT, 0)))?>
+
+<div id="content-main">
<?php /* list of dictionaries and language packs */ ?>
- <div class="featured"><div class="featured-inner">
<div id="dictionaries">
<h3><?=_('langtools_header_dicts_and_langpacks')?></h3>
@@ -105,7 +101,9 @@ $this->layout = 'amo2009';
</tbody>
</table>
</div><!-- /#dictionaries -->
- </div></div><!-- /featured -->
+</div><!-- /#content-main -->
-</div><!-- /.section -->
+<?=$this->renderElement('sidebar', array('highlight' => array(ADDON_DICT, 0)))?>
+<?=$this->renderElement('app_chooser')?>
+</div><!-- /#content -->
diff --git a/site/app/views/addons/display.thtml b/site/app/views/addons/display.thtml
index 32a81ff..c0825d1 100644
--- a/site/app/views/addons/display.thtml
+++ b/site/app/views/addons/display.thtml
@@ -41,35 +41,32 @@
?>
<?php
+
if (empty($addonIconPath))
$addonIconPath = ($addon['Addon']['addontype_id'] == ADDON_THEME ? $html->urlImage(DEFAULT_THEME_ICON) : $html->urlImage(DEFAULT_ADDON_ICON));
-?>
-<div class="stand-alone-options">
+// is addon experimental?
+global $experimental_status;
+if (in_array($addon['Addon']['status'], $experimental_status)) {
+ $flag = _('addon_listitem_flag_experimental');
+ $box_extraclass = 'exp';
+} else {
+ $flag = '';
+ $box_extraclass = '';
+}
- <?=$this->renderElement('amo2009/categories')?>
+?>
- <?=$this->renderElement('amo2009/search')?>
+ <div id="content" class="detail-page">
- </div>
+<?=$this->renderElement('search')?>
-<div class="primary" role="main">
- <?php
- if (!empty($coll_addon_added)) {
- echo $this->renderElement('notification', array(
- 'type' => 'success',
- 'msg' => sprintf(___('addons_display_collection_publish_success'),
- $addon['Translation']['name']['string'],
- $html->link($coll_addon_added['Translation']['name']['string'],
- "/collection/{$coll_addon_added['Collection']['uuid']}")
- )
- ));
- }
- ?>
- <h2 <?=$addon['Translation']['name']['locale_html']?> class="addon"><img src="<?=$addonIconPath?>" class="icon" alt="" /><span><?=$addon['Translation']['name']['string']?> <?=($hasversion?$addon['Version'][0]['Version']['version']:'')?></span></h2>
+ <div id="content-main">
+
+ <div id="addon-summary" class="addon <?=$box_extraclass?>">
+ <h3 class="name"<?=$addon['Translation']['name']['locale_html']?>><img src="<?=$addonIconPath?>" class="addon-icon" alt="" /><?=$addon['Translation']['name']['string']?> <?=($hasversion?$addon['Version'][0]['Version']['version']:'')?></h3>
<h4 class="author"><?=_('addons_home_by')?> <?= $html->linkUsersFromModel($addon['User'], 0); ?></h4>
- <div id="addon-summary" class="addon <?=$html->extraClass($addon)?>">
-
+ <? if (!empty($flag)) echo '<h5 class="flag">'.$flag.'</h5>'; ?>
<?php if (count($previews) > 0) {
$shown = 0;
@@ -83,7 +80,7 @@
?>
<p class="preview-img">
- <a class="screenshot" rel="jquery-lightbox" href="<?=$full?>" title="<?=$caption?>">
+ <a rel="jquery-lightbox" href="<?=$full?>" title="<?=$caption?>">
<img src="<?=$thumb?>" alt=""/>
</a>
</p>
@@ -92,429 +89,397 @@
<img src="<?=$html->urlImage('no-preview.png')?>" alt="" width="200" height="150" />
</p>
<?php } ?>
-<p class="desc"<?=$addon['Translation']['summary']['locale_html']?>><?=nl2br($addon['Translation']['summary']['string'])?> </p>
-
<h4 class="hidden"><?=_('addons_display_categories')?></h4>
<?=$this->renderElement('addon_categories', array('tags' => $relatedTags)); ?>
+ <p class="desc"<?=$addon['Translation']['summary']['locale_html']?>><?=nl2br($addon['Translation']['summary']['string'])?> </p>
+
+ <p class="rating"><?=$this->renderElement('stars',array('rating' => $addon['Addon']['averagerating']))?> <?php if ($review_count > 0) { ?> <a href="<?=$html->url('/addon/'.$addon['Addon']['id'].'#reviews')?>"><?=sprintf(ngettext('feature_reviews','feature_reviews', $review_count), $review_count)?></a><?php } ?></p>
+
+ <div class="link-sharing rollover-reveal">
+ <div class="badge">
+ <p class="share-button">
+ <a class="activator" href="#"><span><span><span>
+ <strong><?php echo ___('addons_share_button_text', 'Share this') ?></strong>
+ </span></span></span></a>
+ </p>
+ </div>
+ <div class="choices to-reveal"><div>
+ <ul>
+ <?php foreach ($link_sharing_services as $l_name => $l_details) :?>
+ <li class="<?= $l_name ?>"><p>
+ <a class="uniquify" href="<?=$html->url('/addon/share/'.$addon['Addon']['id']) . '?service=' . $l_name ?>"><?php
+ // Escaping here because these details came via set()
+ echo htmlentities($l_details['label'])
+ ?></a>
+ </p></li>
+ <?php endforeach ?>
+ </ul>
+ <br style="clear: both" />
+ </div></div>
+ </div>
+
<? if ($hasversion): ?>
<p class="updated">
<?php
- echo sprintf(___('addon_detail_last_updated'), strftime(_('date'), strtotime($addon['Version'][0]['Version']['created'])));
+ // @partial 5/08/08, bug 425527
+ $_update_string = (_('addon_detail_last_updated') == 'addon_detail_last_updated') ? 'Updated %s' : _('addon_detail_last_updated');
+ echo sprintf($_update_string, strftime(_('date'), strtotime($addon['Version'][0]['Version']['created'])));
?>
</p>
<? endif; ?>
-
- <?php
- if ($hasversion) {
-
- $flags = array($html->byStatus($addon, array('experimental' => 'experimental',
- 'recommended' => 'recommended',
- 'default' => 'default')));
-
- global $experimental_status;
- if (isset($addonStatus) && in_array($addonStatus, $experimental_status)) {
- $flags[] = 'experimental';
- }
-
- $addon['File'] = $addon['Version'][0]['File']; //install.thtml expects this
-
- echo $this->renderElement('amo2009/install', array(
- 'flags' => $flags,
- 'buttonClass' => 'significant',
- 'buttonSize' => '16x16',
- 'addon' => $addon
- ));
-
- if (!empty($addon['Translation']['privacypolicy']['string'])) {
- echo '<div class="privacypolicy">';
- echo $html->link(_('addons_display_has_privacy'), "/addons/policy/0/{$addon['Addon']['id']}");
- echo '</div>';
- }
- }
- ?>
-
-
- <p class="rating">
- <?=$this->renderElement('amo2009/reviews', array('addon' => $addon))?>
- </p>
-
-
<p class="stats">
+ <em><?=$html->number_format($addon['Addon']['weeklydownloads'], 0)?></em>
<?php
- echo '<em>'.$html->number_format($addon['Addon']['weeklydownloads'], 0).'</em> '.___('addon_downloads_weekly');
+ /* @partial 4/25/08
+ Only show total downloads if string has been translated to avoid
+ showing two "downloads" with different numbers */
+ if (_('addon_downloads_weekly') == 'addon_downloads_weekly') {
+ echo _('addon_downloads');
+ }
+ else {
+ echo _('addon_downloads_weekly');
echo '<br /><em>'.$html->number_format($addon['Addon']['totaldownloads'], 0).'</em> '._('addon_downloads_total');
+ }
?>
</p>
+ <?php
+ if ($hasversion) {
+
+ $_install_render_options = array(
+ 'addonIconPath' => $addonIconPath,
+ 'addonName' => $addon['Translation']['name']['string'],
+ 'addonId' => $addon['Addon']['id'],
+ 'addonFiles' => ($hasversion?$addon['Version'][0]['File']:''),
+ 'is_latest' => true,
+ 'addonEULA' => $addon['Translation']['eula']['string'],
+ 'addonStatus' => $addon['Addon']['status'],
+ 'addonType' => $addon['Addon']['addontype_id'],
+ 'allPlatforms' => $platforms,
+ 'compatible_apps'=> $compatible_apps
+ );
+ echo $this->renderElement('install', $_install_render_options);
- <div class="share-this">
- <a class="share button" href="#">
- <?php echo ___('addons_share_button_text', 'Share this') ?>
- </a>
-
- <div class="share-networks">
- <ul>
- <?php foreach ($link_sharing_services as $l_name => $l_details) :?>
- <li class="<?= $l_name ?>"><p>
- <?php $share_url = str_replace('/addon/', '/addon/share/', $_SERVER['REQUEST_URI']) ?>
- <a class="uniquify" target="_blank" href="<?php echo $share_url . '?service=' . $l_name ?>"><?php
- // Escaping here because these details came via set()
- echo htmlentities($l_details['label'], ENT_COMPAT, 'UTF-8')
- ?></a>
- </p></li>
- <?php endforeach ?>
- </ul>
- </div>
+ if (!empty($addon['Translation']['privacypolicy']['string'])) {
+ echo '<div class="privacypolicy">';
+ echo $html->link(_('addons_display_has_privacy'), "/addons/policy/0/{$addon['Addon']['id']}");
+ echo '</div>';
+ }
+ }
+ ?>
+ <div class="vex"><span><!-- bottom edge --></span></div>
</div>
- </div>
- <div id="addon-info" class="featured listing">
- <div class="featured-inner">
-
- <? if (count($previews) > 1): // Only show this if there are 2 or more images. ?>
- <div class="item">
- <h5><?=_('addons_display_more_images')?></h5>
+ <!-- /#addon-summary -->
- <?php
- $shown = 0;
- $_js_string = '';
-
- foreach ($previews as $preview):
-
- // Skip the first one, which is the preview.
- if ($shown < 1) {
- $shown++;
- continue;
- }
-
- $thumb = $this->controller->Image->getPreviewURL($preview['Preview']['id']);
- $full = $this->controller->Image->getPreviewURL($preview['Preview']['id'], 'full');
- $caption = $preview['Translation']['caption']['string'];
- // Lightbox supports HTML in their captions, but we strip it
- // out in the dev cp.
- $_js_string .= empty($_js_string) ? "['{$full}','{$caption}']" : ", ['{$full}','{$caption}']";
- $shown++;
- ?>
+ <div id="addon-info">
- <a class="screenshot thumbnail" rel="jquery-lightbox" href="<?=$full?>" title="<?=$caption?>"><img src="<?=$thumb?>" alt="" /></a>
-
- <? endforeach; ?>
- </div>
- <? endif; ?>
-
-
-
- <div class="item">
- <h5><?=_('addons_display_long_description')?></h5>
- <p<?=$addon['Translation']['description']['locale_html']?>><?=nl2br($addon['Translation']['description']['string'])?></p>
- </div>
- <div class="item">
- <?=$this->renderElement('app_compatibility', array('compatible_apps' => $compatible_apps)) ?>
-
- <div id="addon_app_compatibility" ><?php
- // link to complete version history
- if ($hasversion) {
- echo $html->link(___('addons_display_see_all_versions'),
- "/addons/versions/{$addon['Addon']['id']}", array('class'=>'view'));
- }
- ?></div>
- </div>
-
-
- <?php
- /* Homepage URL link */
- if (!empty($addon['Translation']['homepage']['string'])): ?>
- <div class="item">
- <?php echo '<h5 id="homepage">'.___('addons_display_header_homepage').'</h5>'; ?>
- <p><?=$html->link($addon['Translation']['homepage']['string'])?></p>
- </div>
-
-
- <?php endif; // h4:Homepage ?>
-
- <?php /* License */
- if ($hasversion && isset($addon['Version'][0]['Version']['license_id'])):
- $license_id = $addon['Version'][0]['Version']['license_id'];
- $version_id = $addon['Version'][0]['Version']['id'];
- $license_name = $this->controller->License->getName($license_id);
- $license_link = $html->link($license_name,
- '/versions/license/'.$version_id);
- ?>
- <div class="item">
- <h5 id="license">
- <?=___('addons_display_header_license')?>
- <a href="<?=$html->url('/pages/developer_faq')?>">
- <?=___('addons_display_a_license_what')?>
- </a>
- </h5>
- <p><?=$license_link?></p>
- </div>
- <?php endif; ?>
+ <? if (count($previews) > 1): // Only show this if there are 2 or more images. ?>
+ <h4><?=_('addons_display_more_images')?></h4>
+ <ul class="addon-images">
+ <?php
+ $shown = 0;
+ $_js_string = '';
- <?php
- $has_supportemail = !empty($addon['Translation']['supportemail']['string']);
- $has_supporturl = !empty($addon['Translation']['supporturl']['string']);
- if ($has_supportemail || $has_supporturl): ?>
- <div class="item">
- <?php echo '<h5 id="support">'.___('addons_display_header_support').'</h5>'; ?>
-
- <?php
- /* Support email/URL link */
- if ($has_supportemail && $has_supporturl) {
- // both support email and support URL present
- ?>
- <p>
- <?=sprintf(_('addons_display_paragraph_supportinfoemailurl'),
- $html->link($addon['Translation']['supporturl']['string']),
- $link->email($addon['Translation']['supportemail']['string']));?>
- </p>
- <?php
- } else if ($has_supporturl) {
- // support URL only
- ?>
- <p>
- <?=sprintf(_('addons_display_paragraph_supportinfourl'),
- $html->link($addon['Translation']['supporturl']['string']));?>
- </p>
- <?php
- } else if ($has_supportemail) {
- // support email only
- ?>
- <p>
- <?=sprintf(_('addons_display_paragraph_supportinfoemail'),
- $link->email($addon['Translation']['supportemail']['string']));?>
- </p>
- <?php } ?>
- </div>
- <?php endif; // h4:Support ?>
-
- <div id="addon-advanced" class="item">
- <h5><?=_('addons_display_advanced_details')?></h5>
+ foreach ($previews as $preview):
- <?php if (!empty($addon['Translation']['developercomments']['string'])) { ?>
- <h5><?=_('addons_display_header_developer_comments')?></h5>
- <p<?=$addon['Translation']['developercomments']['locale_html']?>>
- <?=nl2br($addon['Translation']['developercomments']['string'])?>
- </p>
- <?php } ?>
+ // Skip the first one, which is the preview.
+ if ($shown < 1) {
+ $shown++;
+ continue;
+ }
- <?php if ($hasversion):
- $_version_data = array(
- 'addonid' => $addon['Addon']['id'],
- 'version' => $addon['Version'][0]['Version']['version'],
- 'created' => $addon['Version'][0]['Version']['created'],
- 'fileSize' => $addon['Version'][0]['File'][0]['size']
- );
+ $thumb = $this->controller->Image->getPreviewURL($preview['Preview']['id']);
+ $full = $this->controller->Image->getPreviewURL($preview['Preview']['id'], 'full');
+ $caption = $preview['Translation']['caption']['string'];
+ // Lightbox supports HTML in their captions, but we strip it
+ // out in the dev cp.
+ $_js_string .= empty($_js_string) ? "['{$full}','{$caption}']" : ", ['{$full}','{$caption}']";
+ $shown++;
+ ?>
+
+ <li><a rel="jquery-lightbox" href="<?=$full?>" title="<?=$caption?>"><img src="<?=$thumb?>" alt="" /></a></li>
+
+ <? endforeach; ?>
+ </ul>
+ <? endif; ?>
+
+
+ <h4><?=_('addons_display_long_description')?></h4>
+ <p<?=$addon['Translation']['description']['locale_html']?>><?=nl2br($addon['Translation']['description']['string'])?></p>
+
+ <?=$this->renderElement('app_compatibility', array('compatible_apps' => $compatible_apps)) ?>
+
+ <div id="addon_app_compatibility" ><?php
+ // link to complete version history
+ if ($hasversion) {
+ // @partial, 4/9/08
+ $_versionhistory_linktext = (_('addons_display_see_all_versions') ==
+ 'addons_display_see_all_versions' ? _('addons_display_version_history') :
+ _('addons_display_see_all_versions'));
+ echo '<h4 class="version-link">'.$html->link($_versionhistory_linktext,
+ "/addons/versions/{$addon['Addon']['id']}", array('class'=>'view'))."</h4>";
+ }
+ ?></div>
+
+ <?php
+ /* Homepage URL link */
+ if (!empty($addon['Translation']['homepage']['string'])): ?>
+
+ <?php //@partial, 5/12/08, bug 425537
+ if (_('addons_display_header_homepage') == 'addons_display_header_homepage') {
+ echo '<h4 id="homepage">Homepage</h4>';
+ } else {
+ echo '<h4 id="homepage">'._('addons_display_header_homepage').'</h4>';
+ }
+ ?>
+ <p><?=$html->link($addon['Translation']['homepage']['string'])?></p>
+
+ <?php endif; // h4:Homepage ?>
+
+
+ <?php
+ $has_supportemail = !empty($addon['Translation']['supportemail']['string']);
+ $has_supporturl = !empty($addon['Translation']['supporturl']['string']);
+ if ($has_supportemail || $has_supporturl): ?>
+
+ <?php //@partial, 4/25/08, bug 425510
+ if (_('addons_display_header_support') == 'addons_display_header_support') {
+ echo '<h4 id="support">Support</h4>';
+ } else {
+ echo '<h4 id="support">'._('addons_display_header_support').'</h4>';
+ }
?>
- <h5 id="version-detail">
- <?=$this->renderElement('addon_version_detail', $_version_data)?>
- </h5>
- <p id="release-notes" <?=$addon['Version'][0]['Translation']['releasenotes']['locale_html']?>>
- <?=nl2br($addon['Version'][0]['Translation']['releasenotes']['string'])?>
+
+ <?php
+ /* Support email/URL link */
+ if ($has_supportemail && $has_supporturl) {
+ // both support email and support URL present
+ ?>
+ <p>
+ <?=sprintf(_('addons_display_paragraph_supportinfoemailurl'),
+ $html->link($addon['Translation']['supporturl']['string']),
+ $link->email($addon['Translation']['supportemail']['string']));?>
</p>
+ <?php
+ } else if ($has_supporturl) {
+ // support URL only
+ ?>
<p>
+ <?=sprintf(_('addons_display_paragraph_supportinfourl'),
+ $html->link($addon['Translation']['supporturl']['string']));?>
+ </p>
<?php
- $additionalLinks = array();
- if ($addon['Addon']['viewsource'] == 1 && $this->controller->Session->check('User')) {
- $additionalLinks[] = $html->link(_('addons_display_view_source'), "/files/browse/{$addon['Version'][0]['File'][0]['id']}");
- }
- if ($addon['Addon']['publicstats'] == 1) {
- $additionalLinks[] = $html->link(_('addons_display_view_stats'), "/statistics/addon/{$addon['Addon']['id']}");
- }
-
- if (!empty($additionalLinks)) {
- echo implode($additionalLinks, ' | ');
- }
+ } else if ($has_supportemail) {
+ // support email only
?>
+ <p>
+ <?=sprintf(_('addons_display_paragraph_supportinfoemail'),
+ $link->email($addon['Translation']['supportemail']['string']));?>
</p>
- <? endif; ?>
-</div>
- </div></div>
-
- <?php if (!empty($reviews)): ?>
- <h3 id="reviews"><?=_('addons_display_header_reviews')?></h3>
- <div class="article">
-
+ <?php } ?>
+
+ <?php endif; // h4:Support ?>
+
+ <?php if (!empty($reviews)): ?>
+
+ <h4 id="reviews"><?=_('addons_display_header_reviews')?></h4>
+
+ <ul class="addon-reviews">
+
+ <?php
+ foreach ($reviews as $rev_no => $review):
+ $review['Translation'] = (array_key_exists(LANG, $review['Translation']) ?
+ $review['Translation'][LANG] : current($review['Translation']));
+ ?>
+ <li id="review-<?=$rev_no?>">
+ <blockquote>
+ <?php if (!empty($review['Translation']['title']['string'])): ?>
+ <h5><?=$review['Translation']['title']['string']?></h5>
+ <?php endif; ?>
+ <p><?=$review['Translation']['body']['string']?></p>
+ </blockquote>
+ <p class="cite">
+ <?=$this->renderElement('stars',array('rating' => $review['Review']['rating']))?>
+ <cite>
<?php
- foreach ($reviews as $rev_no => $review):
- $review['Translation'] = (array_key_exists(LANG, $review['Translation']) ?
- $review['Translation'][LANG] : current($review['Translation']));
+ // @partial: translation fallback for bug 427376, 04/24/08
+ if (_('addon_reviewed_by_u_on_d') == 'addon_reviewed_by_u_on_d') {
+ echo $html->linkUserFromModel($review['User']).", ".strftime(_('date'), strtotime($review['Review']['created']));
+ } else {
+ echo sprintf(_('addon_reviewed_by_u_on_d'),
+ $html->linkUserFromModel($review['User']),
+ strftime(_('date'), strtotime($review['Review']['created'])));
+ }
?>
+ </cite>
+ </p>
+ </li>
+ <?php
+ endforeach;
+ ?>
- <div id="review-<?=$rev_no?>" class="hreview">
- <?php if (!empty($review['Translation']['title']['string'])): ?>
- <h5><?=$review['Translation']['title']['string']?></h5>
- <?php endif; ?>
- <p class="description"><?=$review['Translation']['body']['string']?></p>
+ </ul>
+
+ <? echo '<p>'.$html->link(sprintf(_('addons_display_see_all_reviews'), $review_count), '/reviews/display/'.$addon['Addon']['id'], array('class'=>'view')).'</p>'; ?>
+
+ <?php endif; ?>
+
+
+
+ </div>
+ <!-- /#addon-info -->
+
+ <div id="addon-advanced">
+ <h4><?=_('addons_display_advanced_details')?></h4>
+
+ <?php if (!empty($addon['Translation']['developercomments']['string'])) { ?>
+ <h5><?=_('addons_display_header_developer_comments')?></h5>
+ <p<?=$addon['Translation']['developercomments']['locale_html']?>>
+ <?=nl2br($addon['Translation']['developercomments']['string'])?>
+ </p>
+ <?php } ?>
+
+ <?php if ($hasversion):
+ $_version_data = array(
+ 'addonid' => $addon['Addon']['id'],
+ 'version' => $addon['Version'][0]['Version']['version'],
+ 'created' => $addon['Version'][0]['Version']['created'],
+ 'fileSize' => $addon['Version'][0]['File'][0]['size']
+ );
+ ?>
+ <h5><?=$this->renderElement('addon_version_detail', $_version_data)?></h5>
+ <p <?=$addon['Version'][0]['Translation']['releasenotes']['locale_html']?>><?=nl2br($addon['Version'][0]['Translation']['releasenotes']['string'])?></p>
+ <p>
+ <?php
+ $additionalLinks = array();
+ if ($addon['Addon']['viewsource'] == 1 && $this->controller->Session->check('User')) {
+ $additionalLinks[] = $html->link(_('addons_display_view_source'), "/files/browse/{$addon['Version'][0]['File'][0]['id']}");
+ }
+ if ($addon['Addon']['publicstats'] == 1) {
+ $additionalLinks[] = $html->link(_('addons_display_view_stats'), "/statistics/addon/{$addon['Addon']['id']}");
+ }
+
+ if (!empty($additionalLinks)) {
+ echo implode($additionalLinks, ' | ');
+ }
+ ?>
+ </p>
+ <? endif; ?>
+
+
+
+ </div>
+ <!-- /#addon-advanced -->
+
+ <div id="content-extra">
+
+ <?php if(empty($isAuthor)) { ?>
+ <form id="form-review" action="<?=$html->url('/reviews/add/'.$addon['Addon']['id'])?>" method="post">
+ <?=$html->hiddenSession() ?>
+ <h3><?=_('addons_display_what_do_you_think')?></h3>
+ <?php if(!$loggedIn) { ?>
+ <p class="login">(<?php echo $html->link(_('header_navlink_login'), $html->login_url());?>)</p>
+ <?php } ?>
+ <p><input type="hidden" name="data[Review][id]" value="" id="ReviewId"/></p>
+ <p><input type="hidden" name="data[Review][title]" value=" " id="ReviewTitle"/></p>
+ <fieldset id="rate-it">
+ <h4><?=_('addons_display_rate_it')?></h4>
+ <div class="stars degrade">
+ <p><input class="star" type="radio" name="data[Review][rating]" value="1" title="<?=_('addons_display_hate_it')?>" /> <?=_('addons_display_hate_it')?></p>
+ <p><input class="star" type="radio" name="data[Review][rating]" value="2" title="<?=_('addons_display_dont_like_it')?>"/> <?=_('addons_display_dont_like_it')?></p>
+ <p><input class="star" type="radio" name="data[Review][rating]" value="3" title="<?=_('addons_display_like_it')?>"/> <?=_('addons_display_like_it')?></p>
+ <p><input class="star" type="radio" name="data[Review][rating]" value="4" title="<?=_('addons_display_really_like_it')?>"/> <?=_('addons_display_really_like_it')?></p>
+ <p><input class="star" type="radio" name="data[Review][rating]" value="5" title="<?=_('addons_display_love_it')?>"/> <?=_('addons_display_love_it')?></p>
+ </div>
+ <?=$html->tagErrorMsg('Review/rating', _('error_review_rating_required')) ?>
+ </fieldset>
+ <p><textarea name="data[Review][body]" cols="30" rows="6" id="short-review" <?php if(!$loggedIn) { ?>disabled="disabled" class="disabled" <?php } ?>></textarea></p>
+ <p id="review-submit">
+ <?php
+ //@partial
+ $_submit_value = (_('addons_display_review_submit') == 'addons_display_review_submit') ? _('forum_save') : _('addons_display_review_submit');
+ ?>
+ <input type='submit' value='<?=$_submit_value?>' class="amo-submit" <?php if(!$loggedIn) { ?>disabled="disabled" <?php } ?> />
+
+ <a href="<?=$html->url('/reviews/add/'.$addon['Addon']['id'])?>"><?=_('addons_display_detailed_review')?></a></p>
+ <div id="addons-display-review-etiquette">
<p>
- <?=$this->renderElement('amo2009/stars',array('rating' => $review['Review']['rating']));?>
- <?php
- echo sprintf(___('addon_reviewed_by_u_on_d'),
- $html->linkUserFromModel($review['User']),
- strftime(_('date'), strtotime($review['Review']['created'])));
- ?>
+ <?php // @partial 5/12/08
+ if (_('addons_display_review_etiquette') == 'addons_display_review_etiquette'): ?>
+ Please do not post bug reports in reviews. We do not make your email address available to add-on developers and they may need to contact you to help resolve your issue.
+ <?php else: ?>
+ <?php echo _('addons_display_review_etiquette'); ?>
+ <?php endif; ?>
</p>
- </div>
-
- <?php
- endforeach;
- ?>
- <? echo '<p>'.$html->link(sprintf(_('addons_display_see_all_reviews'), $review_count), '/reviews/display/'.$addon['Addon']['id'], array('class'=>'more-info')).'</p>'; ?>
-
- </div>
- <?php endif; ?>
-
-</div>
-<div class="secondary" role="secondary">
-
- <?php if(empty($isAuthor)) { ?>
- <div class="highlight">
- <form id="form-review" action="<?=$html->url('/reviews/add/'.$addon['Addon']['id'])?>" method="post">
- <?=$html->hiddenSession() ?>
- <h3><?=_('addons_display_what_do_you_think')?></h3>
- <?php if(!$loggedIn) { ?>
- <p class="login">(<?php echo $html->link(_('header_navlink_login'), $html->login_url());?>)</p>
- <?php } ?>
- <p><input type="hidden" name="data[Review][id]" value="" id="ReviewId"/></p>
- <p><input type="hidden" name="data[Review][title]" value=" " id="ReviewTitle"/></p>
-
- <h4><?=_('addons_display_rate_it')?></h4>
-
- <?php if(!$loggedIn) { ?>
- <p class="stars stars-0">&nbsp;</p>
- <?php } else {?>
-
- <select id="review-rating" name="data[Review][rating]">
- <option></option>
- <option value="1" class="worst">*</option>
- <option value="2" class="bad">**</option>
-
- <option value="3" class="fair">***</option>
- <option value="4" class="good">****</option>
- <option value="5" class="best">*****</option>
- </select>
- <?php } ?>
-
- <?=$html->tagErrorMsg('Review/rating', _('error_review_rating_required')) ?>
- <p><textarea name="data[Review][body]" cols="30" rows="6" id="short-review" <?php if(!$loggedIn) { ?>disabled="disabled" class="disabled" <?php } ?>></textarea></p>
- <p>
- <a href="<?=$html->url('/reviews/add/'.$addon['Addon']['id'])?>"><?=_('addons_display_detailed_review')?></a>
- <button <?php if(!$loggedIn) { ?>disabled="disabled" <?php } ?> ><?=___('addons_display_review_submit')?></button>
- </p>
-
-
- <div id="addons-display-review-etiquette">
- <p>
- <?php echo ___('addons_display_review_etiquette'); ?>
- </p>
+ <?php
+ if ($has_supportemail || $has_supporturl) {
+ // @partial 5/13/08
+ if (_('addons_display_review_see_support') == 'addons_display_review_see_support'): ?>
+ <p>See the <a href="#support">support section</a> to find out where to get assistance for this add-on.</p>
<?php
- if ($has_supportemail || $has_supporturl) {
- echo '<p>'.sprintf(___('addons_display_review_see_support'), '#support').'</p>';
- }
- ?>
- <p><?=sprintf(___('addons_display_review_guidelines_link', '<a href="%s">Review Guidelines</a>'), $html->url('/pages/review_guide')) ?></p>
- </div>
- </form>
- </div>
- <?php } ?>
-
-
+ else:
+ echo '<p>'.sprintf(_('addons_display_review_see_support'),
+ '#support').'</p>';
+ endif;
+ }
+ ?>
+ <p><?=sprintf(___('addons_display_review_guidelines_link', '<a href="%s">Review Guidelines</a>'), $html->url('/pages/review_guide')) /* @partial, 6/25/08 */ ?></p>
+ </div>
+ </form>
+ <?php } ?>
-<div class="highlight">
+ <div class="more-addons">
- <?php
- if (is_array($relatedTags)) {
- foreach ($relatedTags as $tag) {
- echo $html->link(sprintf(_('addons_display_see_all_addons'),$tag['Translation']['name']['string']), '/browse/' . "type:" . $tag['Tag']['addontype_id'] . '/' . "cat:" . $tag['Tag']['id'], array('class' => 'more-info')) . "\n";
+ <?php
+ if (is_array($relatedTags)) {
+ foreach ($relatedTags as $tag) {
+ echo '<h3>'.$html->link(sprintf(_('addons_display_see_all_addons'),$tag['Translation']['name']['string']), '/browse/' . "type:" . $tag['Tag']['addontype_id'] . '/' . "cat:" . $tag['Tag']['id'], array('class'=>'view')) . '</h3>'."\n";
+ }
}
- }
- ?>
-
- <?php if (count($authorAddons) > 1): ?>
- <h4 class="other-author-addons"><?=sprintf(n___('addons_display_other_addons_by', 'addons_display_other_addons_by', count($addon['User'])),
- $html->linkUsersFromModel($addon['User'], 0));?>
- </h4>
- <div class="prose">
- <ul>
- <?php
- if (count($authorAddons) > 3) {
- echo '<form id="addons-author-addons" method="get" action="">';
- echo '<select id="addons-author-addons-select" name="addons-author-addons-select" onchange="this.form.submit()">';
- echo $this->renderElement('addon_author_addons', array('tag' => 'option'));
- echo '</select>';
- echo '<input class="hidden" type="submit" value="'._('addons_author_addons_submit').'"/>';
- echo '</form>';
- } else {
- echo $this->renderElement('addon_author_addons', array('tag' => 'li'));
- }
?>
- </ul>
- </div>
-
- <?php endif; ?>
-</div>
-<!-- /#more-addons-->
+ <?php if (count($authorAddons) > 1): ?>
+ <h4><?=sprintf(n___('addons_display_other_addons_by', 'addons_display_other_addons_by', count($addon['User'])),
+ $html->linkUsersFromModel($addon['User'], 0));?>
+ </h4>
+ <ul>
+ <?php
+ if (count($authorAddons) > 3) {
+ echo '<form id="addons-author-addons" method="get" action="">';
+ echo '<select id="addons-author-addons-select" name="addons-author-addons-select" onchange="this.form.submit()">';
+ echo $this->renderElement('addon_author_addons', array('tag' => 'option'));
+ echo '</select>';
+ echo '<input class="hidden" type="submit" value="'._('addons_author_addons_submit').'"/>';
+ echo '</form>';
+ } else {
+ echo $this->renderElement('addon_author_addons', array('tag' => 'li'));
+ }
+ ?>
+ </ul>
+ <?php endif; ?>
- <div class="highlight collections-add prose">
- <h3><?=___('addons_display_header_collections')?></h3>
+ </div>
+ <!-- /#more-addons-->
- <?php if (empty($pop_collections)): ?>
- <p><?=___('addons_display_nocollections')?></p>
- <?php else: ?>
- <ul>
- <?php foreach($pop_collections as &$_coll): ?>
- <li><?=$link->collection($_coll)?></li>
- <?php endforeach; ?>
- <?php if (($_othercolls = $collection_count - count($pop_collections)) > 0): ?>
- <li>
- <?=sprintf(n___('addons_display_collections_more', 'addons_display_collections_more', $_othercolls), $_othercolls)?>
- </li>
-
- <?php endif; ?>
- </ul>
- <?php endif; ?>
- <?php if ($loggedIn): ?>
- <form action="<?= $html->url('/collections/addtocollection') ?>" method="post" id="coll_publish">
- <div>
- <h3><label for="publish_to"><?=___('addons_display_collection_add')?></label></h3>
- <?=$html->link(___('addons_display_collection_whatsthis'), '/collections/')?>
- <?=$html->hiddenSession() ?>
- <input name="data[addon_id]" type="hidden" value="<?= $addon['Addon']['id'] ?>" />
- <select name="data[collection_uuid]" id="publish_to">
- <option value="" selected="selected"><?=___('addons_display_collection_add_select_one')?></option>
- <?php foreach ($userCollections as $collection): ?>
- <option value="<?=$collection['Collection']['uuid'] ?>"><?=$collection['Translation']['name']['string'] ?></option>
- <?php endforeach; ?>
- <option value="new"><?=___('addons_display_collection_add_new')?></option>
- </select>
- <button><?=___('addons_display_collection_add_submit')?></button>
- </div>
- </form>
- <?php endif; ?>
+
</div>
+ <!-- /#content-extra -->
+ </div>
+ <!-- /#content-main -->
+
+<?=$this->renderElement('sidebar')?>
+
+<?=$this->renderElement('app_chooser')?>
</div>
<script type="text/javascript" charset="utf-8">
- $(function(){
- addons_display.init({
- jsonURL: '<?=$html->url('/collections/json')?>',
- collViewURL: '<?=$html->url('/collection/')?>',
- loggedIn: <?=(int)$loggedIn?>
- });
- $("a[rel=jquery-lightbox]").lightBox({
- overlayOpacity: 0.6,
- imageBlank: "<?= $html->urlImage('jquery-lightbox/lightbox-blank.gif') ?>",
- imageLoading: "<?= $html->urlImage('jquery-lightbox/lightbox-ico-loading.gif')?>",
- imageBtnClose: "<?= $html->urlImage('jquery-lightbox/close.png')?>",
- imageBtnPrev: "<?= $html->urlImage('jquery-lightbox/goleft.png')?>",
- imageBtnNext: "<?= $html->urlImage('jquery-lightbox/goright.png')?>",
- containerResizeSpeed: 350
- });
-
+ $(function(){
+ $('.stars').rating(<?php if(!$loggedIn) { ?> {readOnly:true}<?php } ?>);
+ $('.rollover-reveal').rolloverReveal();
});
</script>
<!-- /#content -->
diff --git a/site/app/views/addons/home.thtml b/site/app/views/addons/home.thtml
index 7d79eb0..0443155 100644
--- a/site/app/views/addons/home.thtml
+++ b/site/app/views/addons/home.thtml
@@ -24,7 +24,6 @@
* Frederic Wenzel <fwenzel@mozilla.com>
* Mike Morgan <morgamic@mozilla.com>
* Wil Clouser <clouserw@mozilla.com>
- * l.m.orchard <lorchard@mozilla.com>
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
@@ -39,142 +38,198 @@
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
-
-// Pass a CSS class for the body tag up to the layout.
-$this->viewVars['bodyclass'] = 'home';
?>
-<?php ob_start() ?>
- <?= $javascript->link('amo2009/home.js') ?>
-<?php $this->viewVars['head_extra'] = ob_get_clean() ?>
-
-<?php /* Display locale-formatted site stats, if available (bug 492998). */ ?>
-<?php ob_start() ?>
- <?php $lc = localeconv(); ?>
- <ul class="stats">
- <?php if (!empty($stats_downloaded)): ?>
- <li><?=sprintf(
- n___('addons_home_stats_downloaded', 'addons_home_stats_downloaded', $stats_downloaded),
- $html->number_format($stats_downloaded, 0)
- )?></li>
- <?php endif ?>
- <?php if (!empty($stats_inuse)): ?>
- <li><?=sprintf(
- n___('addons_home_stats_inuse', 'addons_home_stats_inuse', $stats_inuse),
- $html->number_format($stats_inuse, 0)
- )?></li>
- <?php endif ?>
- </ul>
-<?php $this->viewVars['header_extra'] = ob_get_clean() ?>
-
-<div class="secondary" role="complementary">
- <?=$this->renderElement('amo2009/categories', array('clickable_header'=>FALSE))?>
-
- <?php /*
- TODO: Enable this when there's content for developer center, leaving it for
- the markup example
- */ ?>
- <?php if (false): ?>
- <div class="highlight">
- <h3>Create a Firefox Add-on</h3>
- <p>
- Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
- eiusmod tempor incididunt ut labore et dolore magna aliqua.
- </p>
- <p><strong><a href="#">Visit the Developer Center</a></strong></p>
- </div>
- <?php endif ?>
-
-</div>
-
-<div class="primary" role="main">
+<div id="content" class="main-page">
- <?=$this->renderElement('amo2009/search')?>
+<?=$this->renderElement('search')?>
- <? if(APP_ID == APP_FIREFOX): ?>
- <?=$this->renderElement('amo2009/teaser_collections', array(
- 'teaser_collection_promos' => $teaser_collection_promos,
- 'promoted_collections' => $promoted_collections
- ))?>
- <? endif; ?>
+<div id="content-main">
+ <?php
+ if (count($featureAddons) != 0) {
+ ?>
+ <h3><?=_('addons_home_feature_head')?></h3>
- <h2><?=___('addons_home_browse_title', 'Browse Add-ons')?></h2>
- <div class="primary">
- <div class="featured show-<?=$featured_type?> listing" id="featured">
- <div class="featured-inner">
- <div class="listing-header">
- <ul>
- <li<?= ('recommended'==$featured_type) ? ' class="selected"' : '' ?>>
- <a href="?featured=recommended#featured"><?=___('addons_home_browse_recommended', 'Recommended')?></a></li>
- <li<?= ('popular'==$featured_type) ? ' class="selected"' : '' ?>>
- <a href="?featured=popular#featured"><?=___('addons_home_browse_popular', 'Popular')?></a></li>
- <li<?= ('added'==$featured_type) ? ' class="selected"' : '' ?>>
- <a href="?featured=added#featured"><?=___('addons_home_browse_new', 'Just Added')?></a></li>
- <li<?= ('updated'==$featured_type) ? ' class="selected"' : '' ?>>
- <a href="?featured=updated#featured"><?=___('addons_home_browse_updated', 'Updated')?></a></li>
+ <div id="slider" class="slider_widget">
+ <div class="inner">
+ <div class="viewport">
+ <ul class="item_set">
+ <?php
+ $fyf_time = gmmktime(16, 00, 00, 11, 18, 2008);
+ $fyf = ($fyf_time < gmmktime() && LANG == 'en-US' && APP_ID == APP_FIREFOX); // is it FYF promo time?
+ $total_features = min(count($featureAddons), ($fyf ? 6 : 5)); // FYF promo
+ for ($idx=1; $idx<=$total_features; $idx++) {
+
+ $prev_idx = $idx - 1;
+ if ($prev_idx < 1) $prev_idx = $total_features;
+ $next_idx = $idx + 1;
+ if ($next_idx > $total_features) $next_idx = 1;
+
+ if (!$fyf || $idx > 1) // FYF promo
+ $feature1 = array_shift($featureAddons);
+ ?>
+ <li id="feature1_<?=$idx?>" class="item addon featured main">
+ <?php
+ if ($fyf && $idx == 1):
+ echo $this->renderElement('fyf_promotion');
+ else:
+ ?>
+ <?=$this->renderElement('feature', array(
+ 'addonIconPath' => $this->controller->Image->getAddonIconURL($feature1['Addon']['id']),
+ 'addonThumbPath' => $this->controller->Image->getHighlightedPreviewURL($feature1['Addon']['id']),
+ 'addonName' => $feature1['Translation']['name']['string'],
+ 'addonSummary' => $feature1['Translation']['summary']['string'],
+ 'addonId' => $feature1['Addon']['id'],
+ 'addonFiles' => $feature1['File'],
+ 'addonEULA' => $feature1['Translation']['eula']['string'],
+ 'addonStatus' => $feature1['Addon']['status'],
+ 'addonAuthors' => $feature1['User'],
+ 'addonTags' => $feature1['Tag'],
+ 'addonWeeklyDownloads' => $feature1['Addon']['weeklydownloads'],
+ 'allPlatforms' => $platforms,
+ 'compatible_apps' => $feature1['compatible_apps'],
+ 'addonType' => $feature1['Addon']['addontype_id'],
+ 'addonRating' => $feature1['Addon']['averagerating'],
+ 'addonReviews' => $feature1['Addon']['totalreviews'],
+ 'addonVersionCreated' => $feature1['Version'][0]['created']
+ ))?>
+ <?php endif; ?>
+ </li>
+ <?php
+ } ?>
</ul>
</div>
- <div class="addon-listing">
- <?=$this->renderElement('amo2009/homepage_addon_listing')?>
+ <div class="controls">
+ <div class="controls_inner">
+ <a href="#slider" title="Previous" class="prev">
+ <img src="<?=$html->urlImage("slider-prev-disabled.gif")?>"
+ width="30" height="30" alt="<?=___('addon_slider_tooltip_previous', 'Previous Add-on')?>"
+ title="<?=___('addon_slider_tooltip_previous', 'Previous Add-on')?>" />
+ </a>
+ <span class="indicator">
+ <span class="index">1</span>
+ /
+ <span class="total"><?=$total_features?></span>
+ </span>
+ <a href="#slider" title="Next" class="next">
+ <img src="<?=$html->urlImage("slider-next.gif")?>"
+ width="30" height="30" alt="<?=___('addon_slider_tooltip_next', 'Next Add-on')?>"
+ title="<?=___('addon_slider_tooltip_next', 'Next Add-on')?>" />
+ </a>
+ </div>
</div>
- <script type="text/javascript">
- $(document).ready(function(){
- $('.listing-header a').click(function(e){
- e.preventDefault();
- var link = $(this);
- link.addClass('loading');
- $('.listing-header .selected').removeClass('selected');
- link.parent().addClass('selected');
- $.get('<?=$html->url('/addons/ajaxy')?>' + link.attr('href'),
- function(content){
- $('.addon-listing').html(content);
- link.removeClass('loading');
- });
- });
- });
- </script>
</div>
+
+ <div class="vex"><span><!-- bottom edge --></span></div>
+ </div>
+ <?php
+ }
+ ?>
+
+ <div id="secondaries">
+ <?php
+ foreach($featureAddons as $id => $addon):
+ $idx = $id + 2;
+ ?>
+ <div id="feature<?=$idx?>" class="addon featured sub">
+ <div class="irk">
+ <?=$this->renderElement('feature', array(
+ 'addonIconPath' => $this->controller->Image->getAddonIconURL($addon['Addon']['id']),
+ 'addonThumbPath' => $this->controller->Image->getHighlightedPreviewURL($addon['Addon']['id']),
+ 'addonName' => $addon['Translation']['name']['string'],
+ 'addonSummary' => $addon['Translation']['summary']['string'],
+ 'addonId' => $addon['Addon']['id'],
+ 'addonEULA' => $addon['Translation']['eula']['string'],
+ 'addonStatus' => $addon['Addon']['status'],
+ 'addonAuthors' => $addon['User'],
+ 'addonWeeklyDownloads' => $addon['Addon']['weeklydownloads'],
+ 'allPlatforms' => $platforms,
+ 'addonType' => $addon['Addon']['addontype_id'],
+ 'addonRating' => $addon['Addon']['averagerating'],
+ 'addonReviews' => $addon['Addon']['totalreviews']
+ ))?>
+ </div>
+ <div class="vex"><span><!-- bottom edge --></span></div>
</div>
- </div>
+ <?php endforeach; ?>
+ </div><!-- /#secondaries -->
+
+ <div id="content-extra">
- <div class="secondary">
- <img class="pull-right" src="<?=$html->url('/img/amo2009/illustrations/logo-collections-100x125.png', null, false, false)?>" alt=""/>
- <h3><a href="<?=$html->url('/collections')?>"><?=___('addons_home_collections','Collections')?></a>
- <span class="new indicator"><?=___('addons_home_new_indicator', 'NEW!')?></span></h3>
- <p><?=___('addons_home_collections_intro', '
- Collections are a way for you to categorize, mix, match and mingle
- add-ons. Subscribe to collections created by other users or create your
- own.
- ')?></p>
+<?php
+ /**
+ * Developer tools
+ * Shows links to dev cp and admin stuff depending on user permissions.
+ * If the user is not logged in, they won't see any of this.
+ */
+ if ($this->controller->Session->check('User')) {
+?>
+ <div id="developer" class="extra">
+ <h3><?=(!empty($welcomeName) ? sprintf(_('sidebar_navlink_welcome_name'), $welcomeName) : _('sidebar_navlink_welcome'))?></h3>
+ <ul>
+ <li><?=$html->link(_('sidebar_navlink_developer_tools'), '/developers/dashboard')?></li>
+ <?php if ($this->controller->SimpleAcl->actionAllowed('Editors', '%', $this->controller->Session->read('User'))): ?>
+ <li><?=$html->link(_('sidebar_navlink_editor_tools'), '/editors')?></li>
+ <?php endif;
+ if ($this->controller->SimpleAcl->actionAllowed('Localizers', '%', $this->controller->Session->read('User'))): ?>
+ <li><?=$html->link('Localizer Tools', '/localizers')?></li>
+ <?php endif;
+ if ($this->controller->SimpleAcl->actionAllowed('Admin', '%', $this->controller->Session->read('User'))): ?>
+ <li><?=$html->link(_('sidebar_navlink_admin_tools'), '/admin')?></li>
+ <?php endif; ?>
+ </ul>
+ </div>
+<?php
+ }
+?>
- <?php if (!empty($popular_collections)): ?>
- <h4><?=___('addons_home_collection_popular_title', 'Popular Collections')?></h4>
- <?php foreach ($popular_collections as $c): ?>
- <div class="item">
- <h5>
- <img class="icon" src="<?=$c['icon_url']?>" width="32" height="32" alt="<?=$c['name']?>"/>
- <?=$link->collection(array(
- 'Collection' => array('uuid'=>$c['uuid'], 'nickname'=>$c['nickname']),
- 'Translation' => array('name'=>array('string'=>$c['name']))
- ))?>
- <span><?=_('addons_home_by')?> <?=$html->linkUsersFromModel($c['authors'], null);?></span>
- </h5>
- <blockquote cite="#">
- <p><?=$html->truncateChars(200, $c['description'])?></p>
- </blockquote>
- <div class="meta">
- <span class="addons"><?=sprintf(
- n___('addons_home_collections_addon_count','addons_home_collections_addon_count',$c['addons_count']),
- $c['addons_count']
- )?></span>
- <span class="subscribers"><?=sprintf(
- n___('addons_home_collections_subscribers','addons_home_collections_subscribers',$c['subscribers']),
- $c['subscribers'])
- ?></span>
- </div>
- </div>
- <?php endforeach ?>
- <?php endif ?>
- <p><a class="more-info" href="<?=$html->url('/collections')?>"><?=___('addons_home_collections_all', 'View All Collections')?></a></p>
- </div>
-</div>
+ <div id="recs" class="extra">
+ <h3><?=_('addons_home_recommended_header')?></h3>
+ <ul>
+ <? foreach ($recAddons as $recAddon): ?>
+ <li><?=$html->link($recAddon['Translation']['name']['string'], "/addon/{$recAddon['Addon']['id']}")?><br />
+ <span><?=isset($recAddon['Tag'][0]['Translation']['name']['string']) ? $recAddon['Tag'][0]['Translation']['name']['string'] : ''; ?></span>
+ </li>
+ <? endforeach; ?>
+ </ul>
+ <p class="view-all"><a href="<?=$html->url('/recommended')?>" class="view" title="<?=_('addons_home_view_all_recommended_title')?>"><?=_('addons_home_view_all')?></a></p>
+
+ <h3><?=_('addons_home_popular_header')?></h3>
+ <ul>
+ <? foreach ($popAddons as $popAddon): ?>
+ <li><?=$html->link($popAddon['Translation']['name']['string'], "/addon/{$popAddon['Addon']['id']}")?><br />
+ <span><?=isset($popAddon['Tag'][0]['Translation']['name']['string']) ? $popAddon['Tag'][0]['Translation']['name']['string'] : ''; ?></span>
+ </li>
+ <? endforeach; ?>
+ </ul>
+ <p class="view-all"><a href="<?=$html->url("/browse/type:1/cat:all?sort=popular")?>" class="view" title="<?=_('addons_home_view_all_popular_title')?>"><?=_('addons_home_view_all')?></a></p>
+
+ <h3><?=___('addons_home_newest_header','Newest:')?></h3>
+ <ul>
+ <? foreach ($newAddons as $newAddon): ?>
+ <li><?=$html->link($newAddon['Translation']['name']['string'], "/addon/{$newAddon['Addon']['id']}")?> <br />
+ <span><?= isset($newAddon['Tag'][0]['Translation']['name']['string']) ? $newAddon['Tag'][0]['Translation']['name']['string'] : '' ; ?></span>
+ </li>
+ <? endforeach; ?>
+ </ul>
+ <p class="view-all"><a href="<?=$html->url("/browse/type:1/cat:all?sort=newest")?>" class="view" title="<?=_('addons_home_view_all_newest_title')?>"><?=_('addons_home_view_all')?></a></p>
+
+ <h3><?=___('addons_home_updated_header', 'Recently Updated:')?></h3>
+ <ul>
+ <? foreach ($updAddons as $updAddon): ?>
+ <li><?=$html->link($updAddon['Translation']['name']['string'], "/addon/{$updAddon['Addon']['id']}")?><br />
+ <span><?= $updAddon['Tag'][0]['Translation']['name']['string']; ?></span>
+ </li>
+ <? endforeach; ?>
+ </ul>
+ <p class="view-all"><a href="<?=$html->url("/browse/type:1/cat:all?sort=updated")?>" class="view" title="<?=_('addons_home_view_all_updated_title')?>"><?=_('addons_home_view_all')?></a></p>
+ </div>
+ </div><!-- /#content-extra -->
+
+</div><!-- /#content-main -->
+
+<?=$this->renderElement('sidebar', array('pitch'=>true))?>
+
+<?=$this->renderElement('app_chooser')?>
+
+</div><!-- /#content -->
diff --git a/site/app/views/addons/plugins.thtml b/site/app/views/addons/plugins.thtml
index c6c2a64..e1426c3 100644
--- a/site/app/views/addons/plugins.thtml
+++ b/site/app/views/addons/plugins.thtml
@@ -41,101 +41,120 @@
* We will most likely move to a dynamic version of this page pulling from the database.
*/
-$this->layout='amo2009';
-
?>
-<div class="secondary" role="complementary">
- <?=$this->renderElement('amo2009/categories')?>
-</div>
-<div class="primary" role="main">
- <?=$this->renderElement('amo2009/search')?>
-
- <div class="featured listing">
- <div class="featured-inner">
- <div class="listing-header">
- <p><?=_('addons_plugins_main_description')?></p>
- </div> <!-- listing-header -->
-
-<div class="item">
- <h2><a href="http://www.adobe.com/products/reader/">Adobe Reader</a></h2>
- <p><?=_('addons_plugins_by')?> <a href="http://www.adobe.com/">Adobe</a></p>
- <p>For viewing and printing Adobe Portable Document Format (PDF)</p>
- <div class="install install-container"><p class="install-button">
- <a class="button positive" href="http://www.adobe.com/products/acrobat/readstep2.html"> <img src="/remora/site/img/amo2009/icons/buttons/plus-green-8x9.gif" alt=""><?=sprintf(_('a_download'),'')?></a></p>
- </div>
+<div id="content" class="landing browse">
+
+<?=$this->renderElement('search', array())?>
+
+<div id="content-main">
+
+<p class="first"><?=_('addons_plugins_main_description')?></p>
+
+<div class="addon sub">
+ <div class="irk">
+ <h2 class="first"><a href="http://www.adobe.com/products/reader/">Adobe Reader</a></h2>
+ <p class="first"><?=_('addons_plugins_by')?> <a href="http://www.adobe.com/">Adobe</a></p>
+ <p class="first">For viewing and printing Adobe Portable Document Format (PDF)</p>
+ <div class="install-container"><p class="install-button">
+<a href="http://www.adobe.com/products/acrobat/readstep2.html"><span><span><span><strong><?=sprintf(_('a_download'),'')?></strong></span></span></span></a></p></div>
<div class="baseline"><p><img src="<?=$html->url('/img/plugins/faq_small.png',false,false,false)?>" class="faq" height="16" width="16" alt="" ><?=_('addons_plugins_support_documentation')?> <a href="http://plugindoc.mozdev.org/windows.html#Acrobat">Windows</a>, <a href="http://plugindoc.mozdev.org/linux.html#Acrobat">Linux</a>, <a href="http://plugindoc.mozdev.org/OSX.html#Acrobat">Mac OS X</a> | <a href="http://plugindoc.mozdev.org/faqs/acroread.html">Acrobat Reader FAQ</a></p></div>
+ </div>
+ <div class="vex"><span><!-- bottom edge --></span></div>
</div>
-<div class="item">
- <h2><a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Player</a></h2>
- <p><?=_('addons_plugins_by')?> <a href="http://www.adobe.com/">Adobe</a></p>
- <p>Adobe Flash Player is the universal rich client for delivering effective Adobe Flash experiences across desktops and devices.</p>
- <div class="install install-container"><p class="install-button">
- <a class="button positive" href="http://www.adobe.com/go/getflashplayer"><img src="/remora/site/img/amo2009/icons/buttons/plus-green-8x9.gif" alt=""><?=sprintf(_('a_download'),'')?></a></p>
+<div class="addon sub">
+ <div class="irk">
+ <h2 class="first"><a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Player</a></h2>
+ <p class="first"><?=_('addons_plugins_by')?> <a href="http://www.adobe.com/">Adobe</a></p>
+ <p class="first">Adobe Flash Player is the universal rich client for delivering effective Adobe Flash experiences across desktops and devices.</p>
+ <div class="install-container"><p class="install-button"><a href="http://www.adobe.com/go/getflashplayer"><span><span><span><strong><?=sprintf(_('a_download'),'')?></strong></span></span></span></a></p>
</div>
<div class="baseline"><p><img src="<?=$html->url('/img/plugins/faq_small.png',false,false,false)?>" class="faq" height="16" width="16" alt="" ><?=_('addons_plugins_support_documentation')?> <a href="http://plugindoc.mozdev.org/windows.html#Flash">Windows</a>, <a href="http://plugindoc.mozdev.org/linux.html#Flash">Linux</a>, <a href="http://plugindoc.mozdev.org/OSX.html#Flash">Mac OS X</a> | <a href="http://plugindoc.mozdev.org/faqs/flash.html">Flash Player FAQ</a></p></div>
+ </div>
+ <div class="vex"><span><!-- bottom edge --></span></div>
</div>
-<div class="item">
- <h2><a href="http://www.java.com/en/about/">Java</a></h2>
- <p><?=_('addons_plugins_by')?> <a href="http://www.sun.com/">Sun Microsystems</a></p>
- <p>The Java Runtime Environment enables your computer to run applications and applets that use Java technology.</p>
- <div class="install install-container"><p class="install-button">
- <a class="button positive" href="http://www.java.com/en/download/"><img src="/remora/site/img/amo2009/icons/buttons/plus-green-8x9.gif" alt=""><?=sprintf(_('a_download'),'')?></a></p>
+<div class="addon sub">
+ <div class="irk">
+ <h2 class="first"><a href="http://www.java.com/en/about/">Java</a></h2>
+ <p class="first"><?=_('addons_plugins_by')?> <a href="http://www.sun.com/">Sun Microsystems</a></p>
+ <p class="first">The Java Runtime Environment enables your computer to run applications and applets that use Java technology.</p>
+ <div class="install-container"><p class="install-button"><a href="http://www.java.com/en/download/"><span><span><span><strong><?=sprintf(_('a_download'),'')?></strong></span></span></span></a></p>
</div>
<div class="baseline"><p><img src="<?=$html->url('/img/plugins/faq_small.png',false,false,false)?>" class="faq" height="16" width="16" alt="" ><?=_('addons_plugins_support_documentation')?> <a href="http://plugindoc.mozdev.org/windows.html#Java">Windows</a>, <a href="http://plugindoc.mozdev.org/linux.html#Java">Linux</a>, <a href="http://plugindoc.mozdev.org/OSX.html#Java">Mac OS X</a> | <a href="http://plugindoc.mozdev.org/faqs/java.html">Java Plugin FAQ</a></p></div>
+ </div>
+ <div class="vex"><span><!-- bottom edge --></span></div>
</div>
-<div class="item">
- <h2><a href="http://www.apple.com/quicktime/">QuickTime</a></h2>
- <p><?=_('addons_plugins_by')?> <a href="http://www.apple.com/">Apple</a></p>
- <p>QuickTime Player is an easy-to-use application for playing, interacting with or viewing video, audio, VR or graphics files.</p>
- <div class="install install-container"><p class="install-button">
- <a class="button positive" href="http://www.apple.com/quicktime/download/"><img src="/remora/site/img/amo2009/icons/buttons/plus-green-8x9.gif" alt=""><?=sprintf(_('a_download'),'')?></a></p>
+<div class="addon sub">
+ <div class="irk">
+ <h2 class="first"><a href="http://www.apple.com/quicktime/">QuickTime</a></h2>
+ <p class="first"><?=_('addons_plugins_by')?> <a href="http://www.apple.com/">Apple</a></p>
+ <p class="first">QuickTime Player is an easy-to-use application for playing, interacting with or viewing video, audio, VR or graphics files.</p>
+ <div class="install-container"><p class="install-button"><a href="http://www.apple.com/quicktime/download/"><span><span><span><strong><?=sprintf(_('a_download'),'')?></strong></span></span></span></a></p>
</div>
<div class="baseline"><p><img src="<?=$html->url('/img/plugins/faq_small.png',false,false,false)?>" class="faq" height="16" width="16" alt="" ><?=_('addons_plugins_support_documentation')?> <a href="http://plugindoc.mozdev.org/windows.html#Quicktime">Windows</a>, <a href="http://plugindoc.mozdev.org/OSX.html#Quicktime">Mac OS X</a></p></div>
+ </div>
+ <div class="vex"><span><!-- bottom edge --></span></div>
</div>
-<div class="item">
- <h2><a href="http://www.real.com/player/">RealPlayer</a></h2>
- <p><?=_('addons_plugins_by')?> <a href="http://www.realnetworks.com/">Real Networks</a></p>
- <p>RealPlayer enables your computer to play streaming RealVideo and RealAudio.</p>
- <div class="install install-container">
- <p class="install-button"><a class="button positive" href="http://www.real.com/R/RC.040104freeplayer.def...R/forms.real.com/real/realone/realone.html?type=eva1&amp;rppr=rnwk&amp;src=040104freeplayer"><img src="/remora/site/img/amo2009/icons/buttons/plus-green-8x9.gif" alt=""><?=_('addons_plugins_for_windows')?> Version 11</a></p>
- <p class="install-button"><a class="button positive" href="http://www.real.com/linux/"><img src="/remora/site/img/amo2009/icons/buttons/plus-green-8x9.gif" alt=""><?=_('addons_plugins_for_linux')?> Version 10</a></p>
- <p class="install-button"><a class="button positive" href="http://www.real.com/R/RC.040104freeplayer.def...R/forms.real.com/real/realone/mac.html?rppr=rnwk&amp;src=040104freeplayer"><img src="/remora/site/img/amo2009/icons/buttons/plus-green-8x9.gif" alt=""><?=_('addons_plugins_for_macosx')?> Version 10</a></p>
+<div class="addon sub">
+ <div class="irk">
+ <h2 class="first"><a href="http://www.real.com/player/">RealPlayer</a></h2>
+ <p class="first"><?=_('addons_plugins_by')?> <a href="http://www.realnetworks.com/">Real Networks</a></p>
+ <p class="first">RealPlayer enables your computer to play streaming RealVideo and RealAudio.</p>
+
+ <p class="install-button"><a href="http://www.real.com/R/RC.040104freeplayer.def...R/forms.real.com/real/realone/realone.html?type=eva1&amp;rppr=rnwk&amp;src=040104freeplayer"><span><span><span><strong><img src="<?=$html->url('/img/plugins/windows_icon.png',false,false,false)?>" height="34" width="34" alt="" ><?=_('addons_plugins_for_windows')?> Version 11</strong></span></span></span></a></p>
+
+ <p class="install-button"><a href="http://www.real.com/linux/"><span><span><span><strong><img src="<?=$html->url('/img/plugins/linux_icon.png',false,false,false)?>" height="34" width="34" alt="" ><?=_('addons_plugins_for_linux')?> Version 10</strong></span></span></span></a></p>
+
+ <p class="install-button"><a href="http://www.real.com/R/RC.040104freeplayer.def...R/forms.real.com/real/realone/mac.html?rppr=rnwk&amp;src=040104freeplayer"><span><span><span><strong><img src="<?=$html->url('/img/plugins/macosx_icon.png',false,false,false)?>" height="34" width="34" alt="" ><?=_('addons_plugins_for_macosx')?> Version 10</strong></span></span></span></a></p>
+
+
+ <div class="baseline"><p><img src="<?=$html->url('/img/plugins/faq_small.png',false,false,false)?>" style="float: left; margin:0 4px 0 0" height="16" width="16" alt="" ><?=_('addons_plugins_support_documentation')?> <a href="http://plugindoc.mozdev.org/windows.html#RealOne">Windows</a>, <a href="http://plugindoc.mozdev.org/linux.html#RealPlayer">Linux</a>, <a href="http://plugindoc.mozdev.org/OSX.html#RealOne">Mac OS X</a></p></div>
+
</div>
- <div class="baseline"><p><img src="<?=$html->url('/img/plugins/faq_small.png',false,false,false)?>" class="faq" height="16" width="16" alt="" ><?=_('addons_plugins_support_documentation')?> <a href="http://plugindoc.mozdev.org/windows.html#RealOne">Windows</a>, <a href="http://plugindoc.mozdev.org/linux.html#RealPlayer">Linux</a>, <a href="http://plugindoc.mozdev.org/OSX.html#RealOne">Mac OS X</a></p></div>
+ <div class="vex"><span><!-- bottom edge --></span></div>
</div>
-<div class="item">
- <h2><a href="http://www.adobe.com/products/shockwaveplayer/">Shockwave</a></h2>
- <p><?=_('addons_plugins_by')?> <a href="http://www.adobe.com/">Adobe</a></p>
- <p>Shockwave Player displays Web content that has been created by Adobe Director.</p>
- <div class="install install-container"><p class="install-button">
- <a class="button positive" href="http://www.adobe.com/shockwave/download/"><img src="/remora/site/img/amo2009/icons/buttons/plus-green-8x9.gif" alt=""><?=sprintf(_('a_download'),'')?></a></p>
+<div class="addon sub">
+ <div class="irk">
+ <h2 class="first"><a href="http://www.adobe.com/products/shockwaveplayer/">Shockwave</a></h2>
+ <p class="first"><?=_('addons_plugins_by')?> <a href="http://www.adobe.com/">Adobe</a></p>
+ <p class="first">Shockwave Player displays Web content that has been created by Adobe Director.</p>
+ <div class="install-container"><p class="install-button"><a href="http://www.adobe.com/shockwave/download/"><span><span><span><strong><?=sprintf(_('a_download'),'')?></strong></span></span></span></a></p>
</div>
<div class="baseline"><p><img src="<?=$html->url('/img/plugins/faq_small.png',false,false,false)?>" class="faq" height="16" width="16" alt="" ><?=_('addons_plugins_support_documentation')?> <a href="http://plugindoc.mozdev.org/windows.html#Shockwave">Windows</a>, <a href="http://plugindoc.mozdev.org/OSX.html#Shockwave">Mac OS X</a></p></div>
+ </div>
+ <div class="vex"><span><!-- bottom edge --></span></div>
</div>
-<div class="item">
- <h2><a href="http://www.microsoft.com/windows/windowsmedia/default.aspx">Windows Media Player</a></h2>
- <p><?=_('addons_plugins_by')?> <a href="http://www.microsoft.com/">Microsoft</a></p>
- <p>Windows Media Player lets you play streaming audio, video, animations, and multimedia presentations on the web.</p>
- <div class="install install-container">
- <p class="install-button"><a class="button positive" href="http://port25.technet.com/pages/windows-media-player-firefox-plugin-download.aspx"><img src="/remora/site/img/amo2009/icons/buttons/plus-green-8x9.gif" alt=""><?=_('addons_plugins_for_windows')?> Vers. 11 (XP, Vista)</a></p>
- <p class="install-button"><a class="button positive" href="http://www.microsoft.com/windows/windowsmedia/9series/player.aspx"><img src="/remora/site/img/amo2009/icons/buttons/plus-green-8x9.gif" alt=""><?=_('addons_plugins_for_windows')?> Vers. 9 (98 SE, ME, 2000)</a></p>
- <p class="install-button"><a class="button positive" href="http://www.microsoft.com/windows/windowsmedia/player/mac/default.aspx"><img src="/remora/site/img/amo2009/icons/buttons/plus-green-8x9.gif" alt=""><?=_('addons_plugins_for_macosx')?> Version 9 or QuickTime Components</a></p>
- </div>
+<div class="addon sub">
+ <div class="irk">
+ <h2 class="first"><a href="http://www.microsoft.com/windows/windowsmedia/default.aspx">Windows Media Player</a></h2>
+ <p class="first"><?=_('addons_plugins_by')?> <a href="http://www.microsoft.com/">Microsoft</a></p>
+ <p class="first">Windows Media Player lets you play streaming audio, video, animations, and multimedia presentations on the web.</p>
+
+ <p class="install-button"><a href="http://port25.technet.com/pages/windows-media-player-firefox-plugin-download.aspx"><span><span><span><strong><img src="<?=$html->url('/img/plugins/windows_icon.png',false,false,false)?>" height="34" width="34" alt="" ><?=_('addons_plugins_for_windows')?> Vers. 11 (XP, Vista)</strong></span></span></span></a></p>
+
+ <p class="install-button"><a href="http://www.microsoft.com/windows/windowsmedia/9series/player.aspx"><span><span><span><strong><img src="<?=$html->url('/img/plugins/windows_icon.png',false,false,false)?>" height="34" width="34" alt="" > Vers. 9</strong></span></span></span></a></p>
+
+ <p class="install-button"><a href="http://www.microsoft.com/windows/windowsmedia/player/mac/default.aspx"><span><span><span><strong><img src="<?=$html->url('/img/plugins/macosx_icon.png',false,false,false)?>" height="34" width="34" alt="" ><?=_('addons_plugins_for_macosx')?> Version 9 or QuickTime Components</strong></span></span></span></a></p>
+
<div class="baseline"><p><img src="<?=$html->url('/img/plugins/faq_small.png',false,false,false)?>" class="faq" height="16" width="16" alt="" ><?=_('addons_plugins_support_documentation')?> <a href="http://plugindoc.mozdev.org/windows.html#WMP">Windows</a>, <a href="http://plugindoc.mozdev.org/OSX.html#WMP">Mac OS X</a></p></div>
+ </div>
+ <div class="vex"><span><!-- bottom edge --></span></div>
</div>
- </div> <!-- featured-inner -->
<h2><?=_('addons_plugins_looking_for_plugin')?></h2>
-<p><?=sprintf(_('addons_plugins_looking_for_more'),'<a href="http://plugindoc.mozdev.org">PluginDoc</a>')?></p>
- </div> <!-- featured listing -->
- </div> <!-- primary -->
+<p class="first"><?=sprintf(_('addons_plugins_looking_for_more'),'<a href="http://plugindoc.mozdev.org">PluginDoc</a>')?></p>
+
+</div><!-- /#content-main -->
+
+<?=$this->renderElement('sidebar', array('highlight' => $this_tag))?>
+<?=$this->renderElement('app_chooser')?>
+</div><!-- /#content -->
diff --git a/site/app/views/addons/policy.thtml b/site/app/views/addons/policy.thtml
index b3a136b..46e38df 100644
--- a/site/app/views/addons/policy.thtml
+++ b/site/app/views/addons/policy.thtml
@@ -37,6 +37,8 @@
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
+?>
+<?php
if (empty($policy))
$policy_index = 'eula';
@@ -44,79 +46,69 @@ else
$policy_index = 'privacypolicy';
?>
-<div class="secondary" role="complementary">
- <?=$this->renderElement('amo2009/categories')?>
-</div>
+<div id="content">
-<div id="content" class="primary prose" role="main">
+<?=$this->renderElement('sidebar')?>
- <h2 class="name"<?=$addon['Translation']['name']['locale_html']?>>
+<div id="content-main">
+
+<div id="addon-summary" class="addon addon-policy">
+ <div id="policy-tl"></div>
+
+ <h3 class="name"<?=$addon['Translation']['name']['locale_html']?>>
<?=$addon['Translation']['name']['string']?><?php if (empty($policy)) {?> <?=$addon['Version'][0]['Version']['version']?><? }?>
- </h2>
+ </h3>
+
+ <h4 class="author"> <?=_('addons_home_by')?> <?=$html->linkUsersFromModel($addon['User'], 0);?></h4>
- <h3 class="author"> <?=_('addons_home_by')?> <?=$html->linkUsersFromModel($addon['User'], 0);?></h3>
+ <div id="content-policy">
<?php if (empty($policy)) {?>
- <div class="addon-policy-tagline">
- <p<?=$addon['Translation']['name']['locale_html']?>><?=sprintf(_('addons_policy_eula_require'), $addon['Translation']['name']['string']);?></p>
- </div>
+ <div class="addon-policy-tagline">
+ <p<?=$addon['Translation']['name']['locale_html']?>><?=sprintf(_('addons_policy_eula_require'), $addon['Translation']['name']['string']);?></p>
+ </div>
<?php }?>
- <textarea readonly="readonly" cols="80" rows="20"<?=$addon['Translation'][$policy_index]['locale_html']?>><?=$addon['Translation'][$policy_index]['string']?></textarea>
+ <textarea class="policy-area" readonly="readonly" cols="80" rows="20"<?=$addon['Translation'][$policy_index]['locale_html']?>><?=$addon['Translation'][$policy_index]['string']?></textarea>
- <?php if (empty($policy)): ?>
- <div id="addon-summary" class="condensed <?=$html->extraClass($addon)?>">
- <?
- global $browser_apps;
- if (!in_array(APP_ID, $browser_apps)) {
- $buttonMessage = ___('a_eula_download');
- } else {
+ <?php if (empty($policy)) {
+ global $browser_apps;
+ if (!in_array(APP_ID, $browser_apps)) {
+ // @partial: translation fallback for locale changes from 1/9/08
+ if (_('a_eula_download') != 'a_eula_download')
+ $buttonMessage = _('a_eula_download');
+ else
$buttonMessage = _('a_eula_install');
- }
- if (array_key_exists('collection_id', $_GET) && $this->controller->Collection->isValidUUID($_GET['collection_id'])) {
- $_collection_uuid = $_GET['collection_id'];
- } else {
- $_collection_uuid = '';
- }
-
- $_install_render_options = array(
- 'addon' => $addon,
- 'addonFiles' => $addon['Version'][0]['File'],
- 'compatible_apps' => array(),
- 'collection_uuid' => $_collection_uuid,
- 'addonEULA' => '', // override a EULA if it exists since this page is pulling double duty
- 'is_latest' => $is_latest,
- 'platforms' => $platforms,
- 'buttonMessage' => $buttonMessage,
- 'is_eula_page' => true
- );
- echo $this->renderElement('amo2009/install', $_install_render_options);
- ?>
- </div>
- <!-- /.addon-summary -->
-
- <p class="policy-link"><?=$html->link(_('a_cancel_installation'), "/addon/{$addon['Addon']['id']}");?></p>
- <?php endif;?>
+ } else {
+ $buttonMessage = _('a_eula_install');
+ }
+ $_install_render_options = array(
+ 'addonIconPath' => $addonIconPath,
+ 'addonName' => $addon['Translation']['name']['string'],
+ 'addonId' => $addon['Addon']['id'],
+ 'addonFiles' => $addon['Version'][0]['File'],
+ 'addonEULA' => '',
+ 'addonStatus' => $addon['Addon']['status'],
+ 'is_latest' => ($addon['Addon']['status'] == STATUS_PUBLIC),
+ 'addonType' => $addon['Addon']['addontype_id'],
+ 'allPlatforms' => $platforms,
+ 'buttonMessage' => $buttonMessage
+ );
+ echo $this->renderElement('install', $_install_render_options);
+ ?>
+
+ <?=$html->link(_('a_cancel_installation'), "/addon/{$addon['Addon']['id']}");?>
+ <?php }?>
+ </div>
+ <!-- /#content-policy -->
- <p class="policy-link"><?=$html->link(sprintf(_('addon_review_a_back_to_addon_x'), $addon['Translation']['name']['string']), '/addon/'.$addon['Addon']['id']); ?></p>
+ <div class="vex"><span><!-- bottom edge --></span></div>
</div>
-<!-- /#primary -->
+<!-- /#addon-summary -->
+ <p><?=$html->link(sprintf(_('addon_review_a_back_to_addon_x'), $addon['Translation']['name']['string']), '/addon/'.$addon['Addon']['id']); ?></p>
+</div>
+<!-- /#main-content -->
-<script type="text/javascript">
-$( function() {
- if (window.location.href.match(/confirmed/)) {
- var bt = $("div#content").find('.install-button a');
- var href = $(bt).attr('href');
- if (href)
- if (href.match(/collection_id/)) {
- $(bt).attr('href', href + "&confirmed");
- } else {
- $(bt).attr('href', href + "?confirmed");
- }
+</div>
+<!-- /#content -->
- var onclick = $(bt).attr('onclick');
- if (onclick && onclick.match(/\.xml'\);$/))
- $(bt).attr('onclick', onclick.replace(/\.xml'\);$/, ".xml?confirmed');"));
- }
- });
-</script>
diff --git a/site/app/views/addons/recommended.thtml b/site/app/views/addons/recommended.thtml
index ab27e5a..7d578e9 100644
--- a/site/app/views/addons/recommended.thtml
+++ b/site/app/views/addons/recommended.thtml
@@ -36,29 +36,39 @@
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
+?>
-$this->layout = 'amo2009';
+<div id="content">
+ <?=$this->renderElement('search')?>
+ <?=$this->renderElement('sidebar', array('pitch' => true))?>
+ <?=$this->renderElement('app_chooser')?>
+
+ <div id="content-main">
-?>
+<?=$this->renderElement('extendfirefox')?>
-<div class="secondary" role="complementary">
- <?=$this->renderElement('amo2009/categories')?>
-</div>
+<p><?=_('addons_recommended_introduction')?></p>
-<div class="primary" role="main">
- <?=$this->renderElement('amo2009/search')?>
- <div>
- <?=_('addons_recommended_introduction')?>
- </div>
- <div class="featured listing">
- <div class="featured-inner">
- <div class="listing-header">
- </div> <!-- listing-header -->
+<ul id="addon-listing">
<?php
-foreach ($addons as $addon) {
- echo $this->renderElement('amo2009/homepage_addon', array('group'=>'recommended', 'addon' => $addon));
-}
+foreach ($addons as $addon):
+ // prepare preview image
+ $prevPath = $this->controller->Image->getHighlightedPreviewURL($addon['Addon']['id']);
+ // prepare icon
+ $iconPath = $this->controller->Image->getAddonIconURL($addon['Addon']['id']);
+
+ echo $this->renderElement('addon_listitem', array(
+ 'addon' => $addon,
+ 'addonIconPath' => $iconPath,
+ 'addonPreviewPath' => $prevPath,
+ ));
?>
- </div> <!-- featured-inner -->
- </div> <!-- featured listing -->
-</div> <!-- primary -->
+
+<? endforeach; ?>
+</ul>
+
+ </div>
+ <!-- /#content-main -->
+</div>
+<!-- /#content -->
+
diff --git a/site/app/views/addons/searchengines.thtml b/site/app/views/addons/searchengines.thtml
index 77d6032..2fa9e18 100644
--- a/site/app/views/addons/searchengines.thtml
+++ b/site/app/views/addons/searchengines.thtml
@@ -37,59 +37,142 @@
*
* ***** END LICENSE BLOCK ***** */
-$this->layout = 'amo2009';
-
?>
- <div class="stand-alone-options">
- <?=$this->renderElement('amo2009/categories', array('clickable_header' => true, 'category' => 'x'))?>
- <?=$this->renderElement('amo2009/search', array('category'=>array(ADDON_SEARCH, 0)))?>
- </div><!-- /.stand-alone-options -->
- <div class="primary" role="main">
+<div id="content" class="landing browse">
+
+<?=$this->renderElement('search', array('category'=>array(ADDON_SEARCH, 0)))?>
+
+<div id="content-main">
- <noscript>
- <?=$this->renderElement('notification', array('type' => 'error', 'description' => _('addons_searchengines_error_nojavascript'))); ?>
- </noscript>
- <div class="featured show-recommended listing" id="featured">
- <div class="featured-inner">
- <div class="listing-header">
- <ul>
- <li class="selected"><a href="?featured=recommended#featured"><?=___('addons_home_browse_recommended', 'Recommended')?></a></li>
- </ul>
- </div>
- <?php foreach ($featureAddons as $id => $addon): ?>
- <?= $this->renderElement('amo2009/homepage_addon', array(
- 'group' => 'recommended', 'addon' => $addon
- )) ?>
- <?php endforeach; ?>
- <div class="recommended listing-footer"> </div>
- </div>
+ <noscript><div class="error-notice">
+ <?=_('addons_searchengines_error_nojavascript'); ?>
+ </div></noscript>
+
+ <?php if (!empty($featureAddons)): ?>
+ <div id="recommended">
+ <h3><?=_('addons_home_feature_head')?></h3>
+ <?php
+ foreach($featureAddons as $id => $addon):
+ ?>
+ <div id="feature<?=$id+1?>" class="addon main">
+ <?=$this->renderElement('feature', array(
+ 'addonIconPath' => $this->controller->Image->getAddonIconURL($addon['Addon']['id']),
+ 'addonThumbPath' => $this->controller->Image->getHighlightedPreviewURL($addon['Addon']['id']),
+ 'addonName' => $addon['Translation']['name']['string'],
+ 'addonSummary' => $addon['Translation']['summary']['string'],
+ 'addonId' => $addon['Addon']['id'],
+ 'addonFiles' => $addon['File'],
+ 'addonEULA' => $addon['Translation']['eula']['string'],
+ 'addonAuthors' => $addon['User'],
+ 'addonWeeklyDownloads' => $addon['Addon']['weeklydownloads'],
+ 'allPlatforms' => $platforms,
+ 'compatible_apps' => $addon['compatible_apps'],
+ 'addonType' => $addon['Addon']['addontype_id'],
+ 'addonRating' => $addon['Addon']['averagerating'],
+ 'addonReviews' => $addon['Addon']['totalreviews'],
+ 'addonVersionCreated' => $addon['Version'][0]['created']
+ ))?>
+ <div class="vex"><span><!-- bottom edge --></span></div>
</div>
+ <?php endforeach; ?>
+ </div><!-- /#recommended -->
+ <?php endif; /* !empty(recommended) */ ?>
-</div><!-- /.primary -->
+ <?php if (!empty($randomAddons)): ?>
+ <div id="secondaries">
+ <?php
+ global $experimental_status;
+
+ foreach($randomAddons as $id => $addon):
+ $idx = count($featureAddons) + $id + 1;
+ if (in_array($addon['Addon']['status'], $experimental_status))
+ $extraclass = ' exp';
+ else
+ $extraclass = '';
+ ?>
+ <div id="feature<?=$idx?>" class="addon sub<?=$extraclass?>">
+ <div class="irk">
+ <?=$this->renderElement('feature', array(
+ 'addonIconPath' => $this->controller->Image->getAddonIconURL($addon['Addon']['id']),
+ 'addonThumbPath' => $this->controller->Image->getHighlightedPreviewURL($addon['Addon']['id']),
+ 'addonName' => $addon['Translation']['name']['string'],
+ 'addonSummary' => $addon['Translation']['summary']['string'],
+ 'addonId' => $addon['Addon']['id'],
+ 'addonEULA' => $addon['Translation']['eula']['string'],
+ 'addonStatus' => $addon['Addon']['status'],
+ 'addonAuthors' => $addon['User'],
+ 'addonWeeklyDownloads' => $addon['Addon']['weeklydownloads'],
+ 'allPlatforms' => $platforms,
+ 'addonType' => $addon['Addon']['addontype_id'],
+ 'addonRating' => $addon['Addon']['averagerating'],
+ 'addonReviews' => $addon['Addon']['totalreviews']
+ ))?>
+ </div>
+ <div class="vex"><span><!-- bottom edge --></span></div>
+ </div>
+ <?php endforeach; ?>
+ </div><!-- /#secondaries -->
+ <?php endif; /* !empty(random) */ ?>
-<div class="secondary" role="complementary">
+ <div id="content-extra">
+ <div class="more-addons">
+ <h3><?=$html->link(_('search_landing_browse_search_engines'),
+ "/browse/type:".ADDON_SEARCH."/cat:all?sort=name",
+ array('class'=>'view'))?></h3>
+ <ol class="browse-list">
+ <li><?=$html->link(_('search_landing_all_search_engines'),
+ "/browse/type:".ADDON_SEARCH."/cat:all?sort=name")?></li>
+ <?php
+ foreach ($subcats as $subcat):
+ ?>
+ <li><?=$html->link($subcat['Translation']['name']['string'],
+ "/browse/type:{$subcat['Tag']['addontype_id']}/cat:{$subcat['Tag']['id']}?sort=name")?></li>
+ <?php endforeach; ?>
+ </ol>
+ </div>
+ <div class="more-addons">
+ <h3><?=$html->link(sprintf(_('category_extra_see_all'), $this_tag['Translation']['name']['string']),
+ "/browse/type:{$this_tag['Tag']['addontype_id']}/cat:{$this_tag['Tag']['id']}?sort=name",
+ array('class'=>'view'))?></h3>
+ </div>
- <h3 class="compact"><?=$html->link(_('search_landing_browse_search_engines'), "/browse/type:".ADDON_SEARCH."/cat:all?sort=name", array('class'=>'view'))?></h3>
+ </div><!-- /#content-extra -->
- <ul class="highlight">
- <li><?=$html->link(_('search_landing_all_search_engines'),
- "/browse/type:".ADDON_SEARCH."/cat:all?sort=name", array('class' => 'category'))?></li>
- <?php foreach ($subcats as $subcat): ?>
- <li class="sub-category"><?=$html->link($subcat['Translation']['name']['string'],
- "/browse/type:{$subcat['Tag']['addontype_id']}/cat:{$subcat['Tag']['id']}?sort=name", array('class' => 'category'))?></li>
- <?php endforeach; ?>
- </ul>
+ <?php
+ /* @partial 5/12/08 bug 426234 */
- <h3 class="clear"><?=___('addons_searchengines_additional_resources')?></h3>
- <div class="article prose compact">
+ // Find out if we're serving msgid's or not. If we are, show the
+ // all-english version for now.
+ if (_('addons_searchengines_additional_resources') == 'addons_searchengines_additional_resources' ||
+ _('addons_searchengines_more') == ' addons_searchengines_more' ||
+ _('addons_searchengines_mycroft_link') == 'addons_searchengines_mycroft_link' ||
+ _('addons_searchengines_learn_howto') == 'addons_searchengines_learn_howto' ||
+ _('addons_searchengines_makeyourown_link') == 'addons_searchengines_makeyourown_link' ||
+ _('addons_searchengines_makeyourown_href') == 'addons_searchengines_makeyourown_href' ||
+ _('addons_searchengines_devmo_link') == 'addons_searchengines_devmo_link' ||
+ _('addons_searchengines_thanks') == 'addons_searchengines_thanks') {
+ ?>
+ <h1 class="clear">Additional Resources</h1>
<ul>
- <li><?=$html->link(sprintf(_('category_extra_see_all'), $this_tag['Translation']['name']['string']), "/browse/type:{$this_tag['Tag']['addontype_id']}/cat:{$this_tag['Tag']['id']}?sort=name", array('class'=>'view'))?></li>
- <li><?=sprintf(___('addons_searchengines_more'), $html->link(___('addons_searchengines_mycroft_link'), 'http://mycroft.mozdev.org/'))?></li>
- <li><?=sprintf(___('addons_searchengines_learn_howto'),
- $html->link(___('addons_searchengines_makeyourown_link'), 'http://developer.mozilla.org'.___('addons_searchengines_makeyourown_href')),
- $html->link(___('addons_searchengines_devmo_link'), 'http://developer.mozilla.org/'))?></li>
+ <li>Browse through more search engines at <a href="http://mycroft.mozdev.org/" >mycroft.mozdev.org</a></li>
+ <li>Learn how to <a href="http://developer.mozilla.org/en/docs/Creating_OpenSearch_plugins_for_Firefox" >make your own</a> at the <a href="http://developer.mozilla.org/" >Mozilla Developer Center</a>.</li>
+
</ul>
- </div>
- <div class="article prose highlight"> <?=_('addons_searchengines_thanks')?> </div>
-</div><!-- /.secondary -->
+ <p>Special thanks to the Mycroft Project for their work on Firefox Search Engines.</p>
+ <?php } else { ?>
+ <h1 class="clear"><?=_('addons_searchengines_additional_resources')?></h1>
+ <ul>
+ <li><?=sprintf(_('addons_searchengines_more'), $html->link(_('addons_searchengines_mycroft_link'), 'http://mycroft.mozdev.org/'))?></li>
+ <li><?=sprintf(_('addons_searchengines_learn_howto'),
+ $html->link(_('addons_searchengines_makeyourown_link'), 'http://developer.mozilla.org'._('addons_searchengines_makeyourown_href')),
+ $html->link(_('addons_searchengines_devmo_link'), 'http://developer.mozilla.org/'))?></li>
+ </ul>
+ <p><?=_('addons_searchengines_thanks')?></p>
+ <?php } ?>
+
+</div><!-- /#content-main -->
+
+<?=$this->renderElement('sidebar', array('highlight' => array(ADDON_SEARCH,0)))?>
+<?=$this->renderElement('app_chooser')?>
+</div><!-- /#content -->
diff --git a/site/app/views/addons/themes_landing.thtml b/site/app/views/addons/themes_landing.thtml
index f6af812..431d435 100644
--- a/site/app/views/addons/themes_landing.thtml
+++ b/site/app/views/addons/themes_landing.thtml
@@ -21,7 +21,6 @@
*
* Contributor(s):
* Frederic Wenzel <fwenzel@mozilla.com> (Original Author)
- * Wil Clouser <wclouser@mozilla.com>
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
@@ -37,39 +36,98 @@
*
* ***** END LICENSE BLOCK ***** */
-$this->layout = 'amo2009';
-
?>
- <div class="stand-alone-options">
- <?=$this->renderElement('amo2009/categories', array('clickable_header' => true, 'category' => 'x'))?>
- <?=$this->renderElement('amo2009/search', array('category'=>array(ADDON_THEME, 0)))?>
- </div><!-- /.stand-alone-options -->
-<div class="primary" role="main">
+<div id="content" class="landing browse">
+
+<?=$this->renderElement('search', array('category' => array(ADDON_THEME, 0)))?>
+
+<div id="content-main">
+
<?php if (!empty($featureAddons)): ?>
- <div class="featured show-recommended listing" id="featured">
- <div class="featured-inner">
- <div class="listing-header">
- <ul>
- <li class="selected"><a href="?featured=recommended#featured"><?=___('addons_home_browse_recommended', 'Recommended')?></a></li>
- </ul>
- </div>
- <?php foreach ($featureAddons as $id => $addon): ?>
- <?= $this->renderElement('amo2009/homepage_addon', array( 'group' => 'recommended', 'addon' => $addon)) ?>
- <?php endforeach; ?>
- <div class="recommended listing-footer"> </div>
+ <div id="recommended">
+ <h3><?=_('addons_home_feature_head')?></h3>
+ <?php
+ foreach($featureAddons as $id => $addon):
+ ?>
+ <div id="feature<?=$id+1?>" class="addon main">
+ <?=$this->renderElement('feature', array(
+ 'addonIconPath' => $this->controller->Image->getAddonIconURL($addon['Addon']['id']),
+ 'addonThumbPath' => $this->controller->Image->getHighlightedPreviewURL($addon['Addon']['id']),
+ 'addonName' => $addon['Translation']['name']['string'],
+ 'addonSummary' => $addon['Translation']['summary']['string'],
+ 'addonId' => $addon['Addon']['id'],
+ 'addonFiles' => $addon['File'],
+ 'addonEULA' => $addon['Translation']['eula']['string'],
+ 'addonAuthors' => $addon['User'],
+ 'addonWeeklyDownloads' => $addon['Addon']['weeklydownloads'],
+ 'allPlatforms' => $platforms,
+ 'compatible_apps' => $addon['compatible_apps'],
+ 'addonType' => $addon['Addon']['addontype_id'],
+ 'addonRating' => $addon['Addon']['averagerating'],
+ 'addonReviews' => $addon['Addon']['totalreviews'],
+ 'addonVersionCreated' => $addon['Version'][0]['created']
+ ))?>
+ <div class="vex"><span><!-- bottom edge --></span></div>
+ </div>
+ <?php endforeach; ?>
+ </div><!-- /#recommended -->
+ <?php endif; /* !empty(recommended) */ ?>
+
+ <?php if (!empty($randomAddons)): ?>
+ <div id="secondaries">
+ <?php
+ global $experimental_status;
+
+ foreach($randomAddons as $id => $addon):
+ $idx = count($featureAddons) + $id + 1;
+ if (in_array($addon['Addon']['status'], $experimental_status))
+ $extraclass = ' exp';
+ else
+ $extraclass = '';
+ ?>
+ <div id="feature<?=$idx?>" class="addon sub<?=$extraclass?>">
+ <div class="irk">
+ <?=$this->renderElement('feature', array(
+ 'addonIconPath' => $this->controller->Image->getAddonIconURL($addon['Addon']['id']),
+ 'addonThumbPath' => $this->controller->Image->getHighlightedPreviewURL($addon['Addon']['id']),
+ 'addonName' => $addon['Translation']['name']['string'],
+ 'addonSummary' => $addon['Translation']['summary']['string'],
+ 'addonId' => $addon['Addon']['id'],
+ 'addonEULA' => $addon['Translation']['eula']['string'],
+ 'addonStatus' => $addon['Addon']['status'],
+ 'addonAuthors' => $addon['User'],
+ 'addonWeeklyDownloads' => $addon['Addon']['weeklydownloads'],
+ 'allPlatforms' => $platforms,
+ 'addonType' => $addon['Addon']['addontype_id'],
+ 'addonRating' => $addon['Addon']['averagerating'],
+ 'addonReviews' => $addon['Addon']['totalreviews']
+ ))?>
</div>
+ <div class="vex"><span><!-- bottom edge --></span></div>
</div>
- <?php endif; /* !empty($featureAddons) */ ?>
-</div><!-- /.primary -->
+ <?php endforeach; ?>
+ </div><!-- /#secondaries -->
+ <?php endif; /* !empty(random) */ ?>
-<div class="secondary" role="navigation">
- <h3 class="compact"><?=$html->link(_('themes_landing_browse_themes'), "/browse/type:".ADDON_THEME."/cat:all?sort=name", array('class'=>'view'))?></h3>
+ <div id="content-extra">
+ <div class="more-addons">
+ <h3><?=$html->link(_('themes_landing_browse_themes'),
+ "/browse/type:".ADDON_THEME."/cat:all?sort=name",
+ array('class'=>'view'))?></h3>
+ <ol class="browse-list">
+ <li><?=$html->link(_('themes_landing_all_themes'), "/browse/type:".ADDON_THEME."/cat:all?sort=name")?></li>
+ <?php
+ foreach ($subcats as $subcat):
+ ?>
+ <li><?=$html->link($subcat['Translation']['name']['string'],
+ "/browse/type:{$subcat['Tag']['addontype_id']}/cat:{$subcat['Tag']['id']}?sort=name")?></li>
+ <?php endforeach; ?>
+ </ol>
+ </div>
+ </div><!-- /#content-extra -->
+</div><!-- /#content-main -->
- <ul class="highlight">
- <li><?=$html->link(_('themes_landing_all_themes'), "/browse/type:".ADDON_THEME."/cat:all?sort=name")?></li>
- <?php foreach ($subcats as $subcat): ?>
- <li class="sub-category"><?=$html->link($subcat['Translation']['name']['string'], "/browse/type:{$subcat['Tag']['addontype_id']}/cat:{$subcat['Tag']['id']}?sort=name", array('class' => 'category'))?></li>
- <?php endforeach; ?>
- </ul>
-</div><!-- /.secondary -->
+<?=$this->renderElement('sidebar', array('highlight' => array(ADDON_THEME, 0)))?>
+<?=$this->renderElement('app_chooser')?>
+</div><!-- /#content -->
diff --git a/site/app/views/addons/versions.thtml b/site/app/views/addons/versions.thtml
index 231756a..7a0c7ae 100644
--- a/site/app/views/addons/versions.thtml
+++ b/site/app/views/addons/versions.thtml
@@ -35,110 +35,88 @@
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
- * ***** END LICENSE BLOCK ***** */
-
-$this->viewVars['bodyclass'] = 'inverse';
-$this->layout = 'amo2009';
-
-$addonIconPath = $this->controller->Image->getAddonIconURL($addon['Addon']['id']);
+ * ***** END LICENSE BLOCK ***** */
?>
-<div class="section" id="version-history">
- <div class="stand-alone-options">
- <?=$this->renderElement('amo2009/categories')?>
- <?=$this->renderElement('amo2009/search')?>
- </div>
- <div class="primary" role="main">
- <?=$this->renderElement('amo2009/breadcrumbs')?>
-
- <h2><?=$subpagetitle?></h2>
-
- <div id="latest-version-container" class="featured listing"
- style="display:none;">
- </div>
-
- <?php
- echo $this->renderElement('notification', array(
- 'type' => 'warning',
- 'msg' => ___('addons_versions_careful'),
- 'description' => ___('addons_versions_careful_introduction')
- ));
- ?>
-
- <div class="featured listing">
- <?php
- foreach ($versions as $version):
- $_version_data = array(
- 'addonid' => $addon['Addon']['id'],
- 'version' => $version['Version']['version'],
- 'created' => $version['Version']['created'],
- 'fileSize' => $version['File'][0]['size'],
- 'license_id' => $version['Version']['license_id']
- );
-
- $addon['File'] = $version['File'];
- $addon['compatible_apps'] = $version['Compatibility'];
+<div id="content">
+ <?=$this->renderElement('search')?>
+ <?=$this->renderElement('sidebar', array('pitch' => true))?>
+ <?=$this->renderElement('app_chooser')?>
- // determine add-on flags
- global $experimental_status;
- $flags = array();
- if (in_array($version['File'][0]['status'], $experimental_status))
- $flags[] = 'experimental';
- ?>
- <div class="item oldversion <?=implode(' ', $flags)?>" id="version-<?=$_version_data['version']?>">
- <?=$this->renderElement('amo2009/install', array(
- 'flags' => $flags,
- 'addon' => $addon,
- 'is_latest' => false
- ))?>
- <h3><?=$this->renderElement('amo2009/addon_version_detail', $_version_data)?></h3>
+ <div id="content-main">
+ <h3><?=$subpagetitle ?></h3>
+ <div id="latest-version-container">
+ </div>
- <?=$this->renderElement('app_compatibility', array('compatible_apps' => $version['Compatibility'])); ?>
+<h3><?=_('addons_versions_history')?></h3>
+
+<div class="error-notice">
+<h3><?=_('addons_versions_careful')?></h3>
+<p><?=_('addons_versions_careful_introduction')?></p>
+</div>
- <p<?=$version['Translation']['releasenotes']['locale_html']?>>
- <?=nl2br($version['Translation']['releasenotes']['string'])?></p>
- <?php
- $show_license = isset($_version_data['license_id']);
- $show_source = $addon['Addon']['viewsource'] == 1 && $this->controller->Session->check('User');
- if ($show_license || $show_source) {
- echo '<ul class="legal">';
-
- if ($show_license) {
- $license_name = $this->controller->License->getName($_version_data['license_id']);
- $license_link = $html->link($license_name, '/versions/license/'.$version['Version']['id']);
- echo '<li class="license">'
- .___('addons_display_header_license').' '
- .$license_link
- .'</li>';
- }
-
- if ($show_source) {
- echo '<li class="source">'
- .$html->link(_('addons_display_view_source'),
- "/files/browse/{$version['File'][0]['id']}")
- .'</li>';
- }
- echo '</ul>';
- }
+<?php
+foreach ($versions as $version):
+ $_version_data = array(
+ 'addonid' => $addon['Addon']['id'],
+ 'version' => $version['Version']['version'],
+ 'created' => $version['Version']['created'],
+ 'fileSize' => $version['File'][0]['size']
+ );
+
+ // show "experimental" flag for non-public versions
+ if ($version['File'][0]['status'] == STATUS_PUBLIC) {
+ $flag = '';
+ $box_extraclass = '';
+ } else {
+ $flag = _('addon_listitem_flag_experimental');
+ $box_extraclass = 'exp';
+ }
+?>
+<div class="addon oldversion <?=$box_extraclass?>" id="version-<?=$_version_data['version']?>">
+ <? if (!empty($flag)) echo '<h5 class="flag">'.$flag.'</h5>'; ?>
+ <h3><?=$this->renderElement('addon_version_detail', $_version_data)?></h3>
+ <?=$this->renderElement('app_compatibility', array('compatible_apps' => $version['Compatibility'])); ?>
- ?>
+ <p<?=$version['Translation']['releasenotes']['locale_html']?>>
+ <?=nl2br($version['Translation']['releasenotes']['string'])?>
+ </p>
- </div>
- <?php endforeach; ?>
- </div><!-- /listing -->
+ <?php
+ $_install_render_options = array(
+ 'addonIconPath' => $addonIconPath,
+ 'addonName' => $addon['Translation']['name']['string'],
+ 'addonId' => $addon['Addon']['id'],
+ 'addonFiles' => $version['File'],
+ 'addonEULA' => $addon['Translation']['eula']['string'],
+ 'addonStatus' => $addon['Addon']['status'],
+ 'addonType' => $addon['Addon']['addontype_id'],
+ 'allPlatforms' => $platforms,
+ 'compatible_apps'=> $version['Compatibility']
+ );
+ echo $this->renderElement('install', $_install_render_options);
+ ?>
+ <p>
+ <?php
+ if ($addon['Addon']['viewsource'] == 1 && $this->controller->Session->check('User')) {
+ echo '<p>';
+ echo $html->link(_('addons_display_view_source'), "/files/browse/{$version['File'][0]['id']}");
+ echo '</p>';
+ }
+ ?>
+ </p>
- <p><?=$html->link(sprintf(_('addon_review_a_back_to_addon_x'), $addon['Translation']['name']['string']), "/addon/{$addon['Addon']['id']}");?></p>
+ <div class="vex"><span><!-- bottom edge --></span></div>
+</div>
+<?php endforeach; ?>
- </div><!-- primary -->
+<p><?=$html->link(sprintf(_('addon_review_a_back_to_addon_x'), $addon['Translation']['name']['string']), "/addon/{$addon['Addon']['id']}");?></p>
-</div><!-- /section -->
+ </div>
+</div>
<script type="text/javascript">
- $(document).ready(function() {
- if (gIsFirefox) {
- addons_history.init();
- addons_history.createLatestVersionElement("<?php
- echo addslashes(___('addon_versions_getlatestversion'))
- ?>", "<?=addslashes(APP_PRETTYNAME)?>");
- }
- });
+ <?php $latest_text = ___('addon_versions_getlatestversion', 'The most recent version compatible with %1$s (%2$s)'); ?>
+ setTimeout(function() {
+ if(gLatestVersionID != null) createLatestVersionElement("<?=$latest_text ?>", "<?=APP_PRETTYNAME?>");
+ }, 0);
</script>