Created
November 17, 2014 04:18
-
-
Save jasontipton/175d84cc7977f5613807 to your computer and use it in GitHub Desktop.
Adding 'hproduct' Microformat - Magento 1.9 Community Edition
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Magento | |
* | |
* NOTICE OF LICENSE | |
* | |
* This source file is subject to the Academic Free License (AFL 3.0) | |
* that is bundled with this package in the file LICENSE_AFL.txt. | |
* It is also available through the world-wide-web at this URL: | |
* http://opensource.org/licenses/afl-3.0.php | |
* If you did not receive a copy of the license and are unable to | |
* obtain it through the world-wide-web, please send an email | |
* to [email protected] so we can send you a copy immediately. | |
* | |
* DISCLAIMER | |
* | |
* Do not edit or add to this file if you wish to upgrade Magento to newer | |
* versions in the future. If you wish to customize Magento for your | |
* needs please refer to http://www.magentocommerce.com for more information. | |
* | |
* @category design | |
* @package base_default | |
* @copyright Copyright (c) 2014 Magento Inc. (http://www.magentocommerce.com) | |
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) | |
*/ | |
/** | |
* Product additional attributes template | |
* | |
* @see Mage_Catalog_Block_Product_View_Attributes | |
*/ | |
?> | |
<?php | |
$_helper = $this->helper('catalog/output'); | |
$_product = $this->getProduct() | |
?> | |
<?php if($_additional = $this->getAdditionalData()): ?> | |
<h2><?php echo $this->__('Additional Information') ?></h2> | |
<table class="data-table" id="product-attribute-specs-table"> | |
<col width="25%" /> | |
<col /> | |
<tbody> | |
<?php foreach ($_additional as $_data): ?> | |
<tr> | |
<th class="label"><?php echo $this->escapeHtml($this->__($_data['label'])) ?></th> | |
<td class="data <?php echo strtolower($_data['label']); ?>"><?php echo $_helper->productAttribute($_product, $_data['value'], $_data['code']) ?></td> | |
</tr> | |
<?php endforeach; ?> | |
</tbody> | |
</table> | |
<script type="text/javascript">decorateTable('product-attribute-specs-table')</script> | |
<?php endif;?> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Magento | |
* | |
* NOTICE OF LICENSE | |
* | |
* This source file is subject to the Academic Free License (AFL 3.0) | |
* that is bundled with this package in the file LICENSE_AFL.txt. | |
* It is also available through the world-wide-web at this URL: | |
* http://opensource.org/licenses/afl-3.0.php | |
* If you did not receive a copy of the license and are unable to | |
* obtain it through the world-wide-web, please send an email | |
* to [email protected] so we can send you a copy immediately. | |
* | |
* DISCLAIMER | |
* | |
* Do not edit or add to this file if you wish to upgrade Magento to newer | |
* versions in the future. If you wish to customize Magento for your | |
* needs please refer to http://www.magentocommerce.com for more information. | |
* | |
* @category design | |
* @package base_default | |
* @copyright Copyright (c) 2014 Magento Inc. (http://www.magentocommerce.com) | |
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) | |
*/ | |
/** | |
* Product media data template | |
* | |
* @see Mage_Catalog_Block_Product_View_Media | |
*/ | |
?> | |
<?php | |
$_product = $this->getProduct(); | |
$_helper = $this->helper('catalog/output'); | |
?> | |
<?php if ($_product->getImage() != 'no_selection' && $_product->getImage()): ?> | |
<p class="product-image product-image-zoom"> | |
<?php | |
$_img = '<img class="photo fn" id="image" src="'.$this->helper('catalog/image')->init($_product, 'image').'" alt="'.$this->escapeHtml($this->getImageLabel()).'" title="'.$this->escapeHtml($this->getImageLabel()).'" />'; | |
echo $_helper->productAttribute($_product, $_img, 'image'); | |
?> | |
</p> | |
<p class="zoom-notice" id="track_hint"><?php echo $this->__('Double click on above image to view full picture') ?></p> | |
<div class="zoom"> | |
<img id="zoom_out" src="<?php echo $this->getSkinUrl('images/slider_btn_zoom_out.gif') ?>" alt="<?php echo $this->__('Zoom Out') ?>" title="<?php echo $this->__('Zoom Out') ?>" class="btn-zoom-out" /> | |
<div id="track"> | |
<div id="handle"></div> | |
</div> | |
<img id="zoom_in" src="<?php echo $this->getSkinUrl('images/slider_btn_zoom_in.gif') ?>" alt="<?php echo $this->__('Zoom In') ?>" title="<?php echo $this->__('Zoom In') ?>" class="btn-zoom-in" /> | |
</div> | |
<script type="text/javascript"> | |
//<![CDATA[ | |
Event.observe(window, 'load', function() { | |
product_zoom = new Product.Zoom('image', 'track', 'handle', 'zoom_in', 'zoom_out', 'track_hint'); | |
}); | |
//]]> | |
</script> | |
<?php else: ?> | |
<p class="product-image"> | |
<?php | |
$_img = '<img src="'.$this->helper('catalog/image')->init($_product, 'image')->resize(265).'" alt="'.$this->escapeHtml($this->getImageLabel()).'" title="'.$this->escapeHtml($this->getImageLabel()).'" />'; | |
echo $_helper->productAttribute($_product, $_img, 'image'); | |
?> | |
</p> | |
<?php endif; ?> | |
<?php if (count($this->getGalleryImages()) > 0): ?> | |
<div class="more-views"> | |
<h2><?php echo $this->__('More Views') ?></h2> | |
<ul> | |
<?php foreach ($this->getGalleryImages() as $_image): ?> | |
<li> | |
<a href="#" onclick="popWin('<?php echo $this->getGalleryUrl($_image) ?>', 'gallery', 'width=300,height=300,left=0,top=0,location=no,status=yes,scrollbars=yes,resizable=yes'); return false;" title="<?php echo $this->escapeHtml($_image->getLabel()) ?>"><img src="<?php echo $this->helper('catalog/image')->init($this->getProduct(), 'thumbnail', $_image->getFile())->resize(56); ?>" width="56" height="56" alt="<?php echo $this->escapeHtml($_image->getLabel()) ?>" /></a> | |
</li> | |
<?php endforeach; ?> | |
</ul> | |
</div> | |
<?php endif; ?> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Magento | |
* | |
* NOTICE OF LICENSE | |
* | |
* This source file is subject to the Academic Free License (AFL 3.0) | |
* that is bundled with this package in the file LICENSE_AFL.txt. | |
* It is also available through the world-wide-web at this URL: | |
* http://opensource.org/licenses/afl-3.0.php | |
* If you did not receive a copy of the license and are unable to | |
* obtain it through the world-wide-web, please send an email | |
* to [email protected] so we can send you a copy immediately. | |
* | |
* DISCLAIMER | |
* | |
* Do not edit or add to this file if you wish to upgrade Magento to newer | |
* versions in the future. If you wish to customize Magento for your | |
* needs please refer to http://www.magentocommerce.com for more information. | |
* | |
* @category design | |
* @package base_default | |
* @copyright Copyright (c) 2014 Magento Inc. (http://www.magentocommerce.com) | |
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) | |
*/ | |
/** | |
* Product view template | |
* | |
* @see Mage_Catalog_Block_Product_View | |
* @see Mage_Review_Block_Product_View | |
*/ | |
?> | |
<?php $_helper = $this->helper('catalog/output'); ?> | |
<?php $_product = $this->getProduct(); ?> | |
<script type="text/javascript"> | |
var optionsPrice = new Product.OptionsPrice(<?php echo $this->getJsonConfig() ?>); | |
</script> | |
<div id="messages_product_view"><?php echo $this->getMessagesBlock()->getGroupedHtml() ?></div> | |
<div class="product-view hproduct"> | |
<div class="product-essential"> | |
<form action="<?php echo $this->getSubmitUrl($_product) ?>" method="post" id="product_addtocart_form"<?php if($_product->getOptions()): ?> enctype="multipart/form-data"<?php endif; ?>> | |
<?php echo $this->getBlockHtml('formkey') ?> | |
<div class="no-display"> | |
<input type="hidden" name="product" value="<?php echo $_product->getId() ?>" /> | |
<input type="hidden" name="related_product" id="related-products-field" value="" /> | |
</div> | |
<div class="product-shop"> | |
<div class="product-name"> | |
<h1><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></h1> | |
</div> | |
<?php if ($this->canEmailToFriend()): ?> | |
<p class="email-friend"><a href="<?php echo $this->helper('catalog/product')->getEmailToFriendUrl($_product) ?>"><?php echo $this->__('Email to a Friend') ?></a></p> | |
<?php endif; ?> | |
<?php echo $this->getReviewsSummaryHtml($_product, false, true)?> | |
<?php echo $this->getChildHtml('alert_urls') ?> | |
<?php echo $this->getChildHtml('product_type_data') ?> | |
<?php echo $this->getTierPriceHtml() ?> | |
<?php echo $this->getChildHtml('extrahint') ?> | |
<?php if (!$this->hasOptions()):?> | |
<div class="add-to-box"> | |
<?php if($_product->isSaleable()): ?> | |
<?php echo $this->getChildHtml('addtocart') ?> | |
<?php if( $this->helper('wishlist')->isAllow() || $_compareUrl=$this->helper('catalog/product_compare')->getAddUrl($_product)): ?> | |
<span class="or"><?php echo $this->__('OR') ?></span> | |
<?php endif; ?> | |
<?php endif; ?> | |
<?php echo $this->getChildHtml('addto') ?> | |
</div> | |
<?php echo $this->getChildHtml('extra_buttons') ?> | |
<?php elseif (!$_product->isSaleable()): ?> | |
<div class="add-to-box"> | |
<?php echo $this->getChildHtml('addto') ?> | |
</div> | |
<?php endif; ?> | |
<?php if ($_product->getShortDescription()):?> | |
<div class="short-description"> | |
<h2><?php echo $this->__('Quick Overview') ?></h2> | |
<div class="std"><?php echo $_helper->productAttribute($_product, nl2br($_product->getShortDescription()), 'short_description') ?></div> | |
</div> | |
<?php endif;?> | |
<?php echo $this->getChildHtml('other');?> | |
<?php if ($_product->isSaleable() && $this->hasOptions()):?> | |
<?php echo $this->getChildChildHtml('container1', '', true, true) ?> | |
<?php endif;?> | |
</div> | |
<div class="product-img-box"> | |
<?php echo $this->getChildHtml('media') ?> | |
</div> | |
<div class="clearer"></div> | |
<?php if ($_product->isSaleable() && $this->hasOptions()):?> | |
<?php echo $this->getChildChildHtml('container2', '', true, true) ?> | |
<?php endif;?> | |
</form> | |
<script type="text/javascript"> | |
//<![CDATA[ | |
var productAddToCartForm = new VarienForm('product_addtocart_form'); | |
productAddToCartForm.submit = function(button, url) { | |
if (this.validator.validate()) { | |
var form = this.form; | |
var oldUrl = form.action; | |
if (url) { | |
form.action = url; | |
} | |
var e = null; | |
try { | |
this.form.submit(); | |
} catch (e) { | |
} | |
this.form.action = oldUrl; | |
if (e) { | |
throw e; | |
} | |
if (button && button != 'undefined') { | |
button.disabled = true; | |
} | |
} | |
}.bind(productAddToCartForm); | |
productAddToCartForm.submitLight = function(button, url){ | |
if(this.validator) { | |
var nv = Validation.methods; | |
delete Validation.methods['required-entry']; | |
delete Validation.methods['validate-one-required']; | |
delete Validation.methods['validate-one-required-by-name']; | |
// Remove custom datetime validators | |
for (var methodName in Validation.methods) { | |
if (methodName.match(/^validate-datetime-.*/i)) { | |
delete Validation.methods[methodName]; | |
} | |
} | |
if (this.validator.validate()) { | |
if (url) { | |
this.form.action = url; | |
} | |
this.form.submit(); | |
} | |
Object.extend(Validation.methods, nv); | |
} | |
}.bind(productAddToCartForm); | |
//]]> | |
</script> | |
</div> | |
<div class="product-collateral"> | |
<?php foreach ($this->getChildGroup('detailed_info', 'getChildHtml') as $alias => $html):?> | |
<div class="box-collateral <?php echo "box-{$alias}"?>"> | |
<?php if ($title = $this->getChildData($alias, 'title')):?> | |
<h2><?php echo $this->escapeHtml($title); ?></h2> | |
<?php endif;?> | |
<?php echo $html; ?> | |
</div> | |
<?php endforeach;?> | |
<?php echo $this->getChildHtml('upsell_products') ?> | |
<?php echo $this->getChildHtml('product_additional_data') ?> | |
</div> | |
</div> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The full file paths for edited files are:
app/design/frontend/base/default/template/catalog/product/view/attributes.phtml
app/design/frontend/base/default/template/catalog/product/view/media.phtml
app/design/frontend/base/default/template/catalog/product/view.phtml
When making these edits be sure to copy these files from base/default to YOUR_PACKAGE/YOUR_THEME and maintain the same sub-folder structure for each file.
The edits were created following this blog post from Yoast. As the author Joost de Valk mentions you may not want to include Step 2 Availability depending on your company strategy so it has been left off of this Gist.
https://yoast.com/rich-snippets-magento/