diff options
author | Aleksey 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) |
commit | 15238e13918a019bdc020c3eeafa5e01c810bbf1 (patch) | |
tree | e11aa9a28033dbfca2ede7169da745518bf3e992 /site/app/views/addons | |
parent | e9361d633e8163e508a4dcde36c25c94f7e8b272 (diff) |
Fake v2 production branchv2
Diffstat (limited to 'site/app/views/addons')
-rw-r--r-- | site/app/views/addons/browse.thtml | 71 | ||||
-rw-r--r-- | site/app/views/addons/browse_thumbs.thtml | 166 | ||||
-rw-r--r-- | site/app/views/addons/category_landing.thtml | 299 | ||||
-rw-r--r-- | site/app/views/addons/dictionaries.thtml | 20 | ||||
-rw-r--r-- | site/app/views/addons/display.thtml | 759 | ||||
-rw-r--r-- | site/app/views/addons/home.thtml | 311 | ||||
-rw-r--r-- | site/app/views/addons/plugins.thtml | 153 | ||||
-rw-r--r-- | site/app/views/addons/policy.thtml | 116 | ||||
-rw-r--r-- | site/app/views/addons/recommended.thtml | 50 | ||||
-rw-r--r-- | site/app/views/addons/searchengines.thtml | 173 | ||||
-rw-r--r-- | site/app/views/addons/themes_landing.thtml | 118 | ||||
-rw-r--r-- | site/app/views/addons/versions.thtml | 168 |
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> </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 = ' '; + $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"> </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&rppr=rnwk&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&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&rppr=rnwk&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&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> |