Version Notes
Bug Fix
----------
Bug causing meta robots to be incorrect on filtered category pages
Download this release
Release Info
| Developer | GPMD |
| Extension | gpmd_seopack |
| Version | 1.2.1 |
| Comparing to | |
| See all releases | |
Code changes from version 1.1.3 to 1.2.1
- app/code/community/GPMD/SEOPack/Model/Observer.php +129 -93
- app/code/community/GPMD/SEOPack/Model/Paginator.php +97 -0
- app/code/community/GPMD/SEOPack/Model/Resource/Eav/Mysql4/Setup.php +1 -1
- app/code/community/GPMD/SEOPack/etc/config.xml +44 -34
- app/code/community/GPMD/SEOPack/etc/system.xml +100 -81
- app/code/community/GPMD/SEOPack/sql/seopack_setup/{mysql4-install-1.1.3.php → mysql4-install-0.1.1.php} +0 -0
- package.xml +12 -22
app/code/community/GPMD/SEOPack/Model/Observer.php
CHANGED
|
@@ -8,99 +8,135 @@
|
|
| 8 |
/**
|
| 9 |
* Observer for custom meta robots. Better than rewriting.
|
| 10 |
*
|
| 11 |
-
* @author adrian
|
| 12 |
*/
|
| 13 |
class GPMD_SEOPack_Model_Observer {
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
|
| 88 |
-
|
| 89 |
-
|
| 90 |
-
|
| 91 |
-
|
| 92 |
-
|
| 93 |
-
|
| 94 |
-
|
| 95 |
-
|
| 96 |
-
|
| 97 |
-
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
|
| 101 |
-
|
| 102 |
-
|
| 103 |
-
|
| 104 |
-
|
| 105 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 106 |
}
|
| 8 |
/**
|
| 9 |
* Observer for custom meta robots. Better than rewriting.
|
| 10 |
*
|
| 11 |
+
* @author Adrian Duke <adrian@gpmd.co.uk>, Martin Dines <mdines@gpmd.co.uk>
|
| 12 |
*/
|
| 13 |
class GPMD_SEOPack_Model_Observer {
|
| 14 |
+
|
| 15 |
+
const XML_PATH_METAROBOTS_SITEENABLED = 'seopack/activated/site_enabled';
|
| 16 |
+
const XML_PATH_METAROBOTS_FILTERENABLED = 'seopack/activated/filter_enabled';
|
| 17 |
+
const XML_PATH_METAROBOTS_PRODUCTENABLED = 'seopack/activated/product_enabled';
|
| 18 |
+
const XML_PATH_METAROBOTS_CATEGORYENABLED = 'seopack/activated/category_enabled';
|
| 19 |
+
const XML_PATH_GA_IGNORE = 'seopack/activated/ga_ignore';
|
| 20 |
+
const XML_PATH_RELPAGINATION_ENABLED = 'seopack/activated/rel_pagination_enabled';
|
| 21 |
+
|
| 22 |
+
static $_matches = array(
|
| 23 |
+
'HTTP_X_PURPOSE' => array(
|
| 24 |
+
'preview',
|
| 25 |
+
),
|
| 26 |
+
'HTTP_X_MOZ' => array(
|
| 27 |
+
'prefetch',
|
| 28 |
+
),
|
| 29 |
+
);
|
| 30 |
+
|
| 31 |
+
public function setMetaRobots(Varien_Event_Observer $observer) {
|
| 32 |
+
|
| 33 |
+
if (empty($this->_siteEnabled)) {
|
| 34 |
+
$this->_siteEnabled = Mage::getStoreConfig(self::XML_PATH_METAROBOTS_SITEENABLED);
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
if ($this->_siteEnabled) {
|
| 38 |
+
$layout = $observer->getEvent()->getLayout();
|
| 39 |
+
$action = $observer->getEvent()->getAction();
|
| 40 |
+
|
| 41 |
+
$this->_setMetaRobots($layout, $action);
|
| 42 |
+
}
|
| 43 |
+
|
| 44 |
+
$this->_setGAIgnore($layout);
|
| 45 |
+
}
|
| 46 |
+
|
| 47 |
+
protected function _setGAIgnore($layout) {
|
| 48 |
+
|
| 49 |
+
if (empty($this->_gaIgnoreEnabled)) {
|
| 50 |
+
$this->_gaIgnoreEnabled = Mage::getStoreConfig(self::XML_PATH_GA_IGNORE);
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
if ($this->_gaIgnoreEnabled) {
|
| 54 |
+
$intersect = array_intersect_key(self::$_matches, $_SERVER);
|
| 55 |
+
|
| 56 |
+
if (!empty($intersect)) {
|
| 57 |
+
foreach ($intersect as $match => $values) {
|
| 58 |
+
foreach ($values as $value) {
|
| 59 |
+
if ($_SERVER[$match] == $value) {
|
| 60 |
+
$layout->getBlock('after_body_start')->unsetChild('google_analytics');
|
| 61 |
+
break 2;
|
| 62 |
+
}
|
| 63 |
+
}
|
| 64 |
+
}
|
| 65 |
+
}
|
| 66 |
+
}
|
| 67 |
+
}
|
| 68 |
+
|
| 69 |
+
protected function _setMetaRobots($layout, $action) {
|
| 70 |
+
|
| 71 |
+
if (empty($this->_productEnabled)) {
|
| 72 |
+
$this->_productEnabled = Mage::getStoreConfig(self::XML_PATH_METAROBOTS_PRODUCTENABLED);
|
| 73 |
+
}
|
| 74 |
+
|
| 75 |
+
if (empty($this->_categoryEnabled)) {
|
| 76 |
+
$this->_categoryEnabled = Mage::getStoreConfig(self::XML_PATH_METAROBOTS_CATEGORYENABLED);
|
| 77 |
+
}
|
| 78 |
+
|
| 79 |
+
if (empty($this->_filterEnabled)) {
|
| 80 |
+
$this->_filterEnabled = Mage::getStoreConfig(self::XML_PATH_METAROBOTS_FILTERENABLED);
|
| 81 |
+
}
|
| 82 |
+
|
| 83 |
+
if ($head = $layout->getBlock('head')) {
|
| 84 |
+
if ($this->_productEnabled && $action instanceof Mage_Catalog_ProductController) {
|
| 85 |
+
$product = Mage::registry('current_product');
|
| 86 |
+
// Set meta robots if set in product
|
| 87 |
+
if ($robots = $product->getMetaRobots()) {
|
| 88 |
+
$head->setData('robots', $robots);
|
| 89 |
+
}
|
| 90 |
+
} elseif ($this->_categoryEnabled && $action instanceof Mage_Catalog_CategoryController) {
|
| 91 |
+
$category = Mage::registry('current_category');
|
| 92 |
+
|
| 93 |
+
// Set meta robots if set in category
|
| 94 |
+
if ($robots = $category->getMetaRobots()) {
|
| 95 |
+
$head->setData('robots', $robots);
|
| 96 |
+
}
|
| 97 |
+
|
| 98 |
+
if ($this->_filterEnabled) {
|
| 99 |
+
$layer = Mage::getModel('catalog/layer')->setCurrentCategory($category);
|
| 100 |
+
$attributes = $layer->getFilterableAttributes();
|
| 101 |
+
|
| 102 |
+
// Iterate over filterable attributes. Check if attribute is present in parametres
|
| 103 |
+
foreach ($attributes as $attribute) {
|
| 104 |
+
$attributeCode = $attribute->getAttributeCode();
|
| 105 |
+
if (array_key_exists($attributeCode, $action->getRequest()->getParams())) {
|
| 106 |
+
// Set NOINDEX,FOLLOW when a filter is applied
|
| 107 |
+
$head->setData('robots', 'NOINDEX,FOLLOW');
|
| 108 |
+
break;
|
| 109 |
+
}
|
| 110 |
+
}
|
| 111 |
+
}
|
| 112 |
+
}
|
| 113 |
+
}
|
| 114 |
+
|
| 115 |
+
}
|
| 116 |
+
|
| 117 |
+
/**
|
| 118 |
+
* doPagination() - kick off the process of adding the next and prev
|
| 119 |
+
* rel links to category pages where necessary
|
| 120 |
+
*
|
| 121 |
+
* @return GPMD_SEOPack_Model_Observer
|
| 122 |
+
* @author Drew Hunter <drewdhunter@gmail.com>
|
| 123 |
+
*/
|
| 124 |
+
public function doPagination() {
|
| 125 |
+
|
| 126 |
+
if (empty($this->_relPaginationEnabled)) {
|
| 127 |
+
$this->_relPaginationEnabled = Mage::getStoreConfig(self::XML_PATH_RELPAGINATION_ENABLED);
|
| 128 |
+
}
|
| 129 |
+
|
| 130 |
+
try {
|
| 131 |
+
if ($this->_relPaginationEnabled) {
|
| 132 |
+
$paginator = Mage::getModel('seopack/paginator');
|
| 133 |
+
$paginator->createLinks();
|
| 134 |
+
}
|
| 135 |
+
} catch (Exception $e) {
|
| 136 |
+
Mage::logException($e);
|
| 137 |
+
}
|
| 138 |
+
|
| 139 |
+
return $this;
|
| 140 |
+
}
|
| 141 |
+
|
| 142 |
}
|
app/code/community/GPMD/SEOPack/Model/Paginator.php
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
/**
|
| 4 |
+
* SeoPagination Paginator
|
| 5 |
+
* - Responsible for creating the rel="next" and rel="prev" links where necessary
|
| 6 |
+
*
|
| 7 |
+
* @category GPMD
|
| 8 |
+
* @package GPMD_SEOPack
|
| 9 |
+
* @author Drew Hunter <drewdhunter@gmail.com>
|
| 10 |
+
*/
|
| 11 |
+
class GPMD_SEOPack_Model_Paginator extends Mage_Core_Model_Abstract {
|
| 12 |
+
/*
|
| 13 |
+
* @var Mage_Catalog_Model_Resource_Product_Collection $_productCollection
|
| 14 |
+
*/
|
| 15 |
+
|
| 16 |
+
protected $_productCollection;
|
| 17 |
+
|
| 18 |
+
/*
|
| 19 |
+
* @var Mage_Catalog_Block_Product_List_Toolbar $_toolbar
|
| 20 |
+
*/
|
| 21 |
+
protected $_toolbar;
|
| 22 |
+
|
| 23 |
+
public function _construct() {
|
| 24 |
+
$this->_initProductCollection();
|
| 25 |
+
parent::_construct();
|
| 26 |
+
}
|
| 27 |
+
|
| 28 |
+
/**
|
| 29 |
+
* Initialise the product collection - it will be prepared based on the current
|
| 30 |
+
* category and layer
|
| 31 |
+
*
|
| 32 |
+
* @return GPMD_SEOPack_Model_Paginator
|
| 33 |
+
*/
|
| 34 |
+
protected function _initProductCollection() {
|
| 35 |
+
if ($layer = Mage::getSingleton('catalog/layer')) {
|
| 36 |
+
$this->_productCollection = $layer->getProductCollection();
|
| 37 |
+
|
| 38 |
+
$limit = (int) $this->_getToolbar()->getLimit();
|
| 39 |
+
if ($limit) {
|
| 40 |
+
$this->_productCollection->setPageSize($limit);
|
| 41 |
+
}
|
| 42 |
+
}
|
| 43 |
+
|
| 44 |
+
return $this;
|
| 45 |
+
}
|
| 46 |
+
|
| 47 |
+
protected function _getToolbar() {
|
| 48 |
+
if (is_null($this->_toolbar)) {
|
| 49 |
+
$this->_toolbar = Mage::app()->getLayout()->createBlock('catalog/product_list_toolbar');
|
| 50 |
+
}
|
| 51 |
+
|
| 52 |
+
return $this->_toolbar;
|
| 53 |
+
}
|
| 54 |
+
|
| 55 |
+
/**
|
| 56 |
+
* Initialise the pager and toolbar etc
|
| 57 |
+
*
|
| 58 |
+
* @return Mage_Page_Block_Html_Pager
|
| 59 |
+
*/
|
| 60 |
+
protected function _getPager() {
|
| 61 |
+
return Mage::app()->getLayout()->createBlock('page/html_pager')
|
| 62 |
+
->setLimit($this->_getToolbar()->getLimit())
|
| 63 |
+
->setCollection($this->_productCollection);
|
| 64 |
+
}
|
| 65 |
+
|
| 66 |
+
/**
|
| 67 |
+
* Create the next and prev rel links. There are 3 possible scenarios:
|
| 68 |
+
* 1. Both next and Prev to be output
|
| 69 |
+
* 2. Only next to be output
|
| 70 |
+
* 3. Only prev to be output
|
| 71 |
+
*
|
| 72 |
+
* So, decide here what should be output
|
| 73 |
+
*
|
| 74 |
+
* @return GPMD_SEOPack_Model_Paginator
|
| 75 |
+
*/
|
| 76 |
+
public function createLinks() {
|
| 77 |
+
$pager = $this->_getPager();
|
| 78 |
+
$numPages = count($pager->getPages());
|
| 79 |
+
|
| 80 |
+
//Need this to add the links to later on
|
| 81 |
+
$headBlock = Mage::app()->getLayout()->getBlock('head');
|
| 82 |
+
|
| 83 |
+
//Determine exactly what needs to be output and
|
| 84 |
+
//add to the head block
|
| 85 |
+
if (!$pager->isFirstPage() && !$pager->isLastPage() && $numPages > 2) {
|
| 86 |
+
$headBlock->addLinkRel('prev', $pager->getPreviousPageUrl());
|
| 87 |
+
$headBlock->addLinkRel('next', $pager->getNextPageUrl());
|
| 88 |
+
} elseif ($pager->isFirstPage() && $numPages > 1) {
|
| 89 |
+
$headBlock->addLinkRel('next', $pager->getNextPageUrl());
|
| 90 |
+
} elseif ($pager->isLastPage() && $numPages > 1) {
|
| 91 |
+
$headBlock->addLinkRel('prev', $pager->getPreviousPageUrl());
|
| 92 |
+
}
|
| 93 |
+
|
| 94 |
+
return $this;
|
| 95 |
+
}
|
| 96 |
+
|
| 97 |
+
}
|
app/code/community/GPMD/SEOPack/Model/Resource/Eav/Mysql4/Setup.php
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
<?php
|
| 2 |
|
| 3 |
/**
|
| 4 |
-
* GPMD SEOPack
|
| 5 |
* @copyright Copyright (c) 2012 GPMD Ltd (http://www.gpmd.co.uk)
|
| 6 |
*/
|
| 7 |
|
| 1 |
<?php
|
| 2 |
|
| 3 |
/**
|
| 4 |
+
* GPMD SEOPack V0.1.1
|
| 5 |
* @copyright Copyright (c) 2012 GPMD Ltd (http://www.gpmd.co.uk)
|
| 6 |
*/
|
| 7 |
|
app/code/community/GPMD/SEOPack/etc/config.xml
CHANGED
|
@@ -4,41 +4,43 @@
|
|
| 4 |
* @category GPMD
|
| 5 |
* @package GPMD_SEOPack
|
| 6 |
* @license http://www.gpmd.co.uk
|
|
|
|
| 7 |
*/
|
| 8 |
-->
|
| 9 |
<config>
|
| 10 |
<modules>
|
| 11 |
<GPMD_SEOPack>
|
| 12 |
-
<version>1.1
|
| 13 |
</GPMD_SEOPack>
|
| 14 |
</modules>
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
|
|
|
| 26 |
<global>
|
| 27 |
<models>
|
| 28 |
<seopack>
|
| 29 |
<class>GPMD_SEOPack_Model</class>
|
| 30 |
</seopack>
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
</models>
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
<resources>
|
| 43 |
<seopack_setup>
|
| 44 |
<setup>
|
|
@@ -60,18 +62,26 @@
|
|
| 60 |
</connection>
|
| 61 |
</seopack_read>
|
| 62 |
</resources>
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 75 |
</global>
|
| 76 |
<adminhtml>
|
| 77 |
<acl>
|
| 4 |
* @category GPMD
|
| 5 |
* @package GPMD_SEOPack
|
| 6 |
* @license http://www.gpmd.co.uk
|
| 7 |
+
* @author Adrian Duke <adrian@gpmd.co.uk>, Martin Dines <mdines@gpmd.co.uk>
|
| 8 |
*/
|
| 9 |
-->
|
| 10 |
<config>
|
| 11 |
<modules>
|
| 12 |
<GPMD_SEOPack>
|
| 13 |
+
<version>1.2.1</version>
|
| 14 |
</GPMD_SEOPack>
|
| 15 |
</modules>
|
| 16 |
+
<default>
|
| 17 |
+
<seopack>
|
| 18 |
+
<activated>
|
| 19 |
+
<site_enabled>1</site_enabled>
|
| 20 |
+
<filter_enabled>1</filter_enabled>
|
| 21 |
+
<category_enabled>1</category_enabled>
|
| 22 |
+
<product_enabled>1</product_enabled>
|
| 23 |
+
<ga_ignore>1</ga_ignore>
|
| 24 |
+
<rel_pagination_enabled>1</rel_pagination_enabled>
|
| 25 |
+
</activated>
|
| 26 |
+
</seopack>
|
| 27 |
+
</default>
|
| 28 |
<global>
|
| 29 |
<models>
|
| 30 |
<seopack>
|
| 31 |
<class>GPMD_SEOPack_Model</class>
|
| 32 |
</seopack>
|
| 33 |
+
<catalog>
|
| 34 |
+
<rewrite>
|
| 35 |
+
<product_visibility>GPMD_SEOPack_Model_Product_Visibility</product_visibility>
|
| 36 |
+
</rewrite>
|
| 37 |
+
</catalog>
|
| 38 |
</models>
|
| 39 |
+
<helpers>
|
| 40 |
+
<seopack>
|
| 41 |
+
<class>GPMD_SEOPack_Helper</class>
|
| 42 |
+
</seopack>
|
| 43 |
+
</helpers>
|
| 44 |
<resources>
|
| 45 |
<seopack_setup>
|
| 46 |
<setup>
|
| 62 |
</connection>
|
| 63 |
</seopack_read>
|
| 64 |
</resources>
|
| 65 |
+
<events>
|
| 66 |
+
<controller_action_layout_generate_blocks_after>
|
| 67 |
+
<observers>
|
| 68 |
+
<seopack_controller_layout_generate_blocks_after>
|
| 69 |
+
<type>singleton</type>
|
| 70 |
+
<class>seopack/observer</class>
|
| 71 |
+
<method>setMetaRobots</method>
|
| 72 |
+
</seopack_controller_layout_generate_blocks_after>
|
| 73 |
+
</observers>
|
| 74 |
+
</controller_action_layout_generate_blocks_after>
|
| 75 |
+
<controller_action_layout_render_before_catalog_category_view>
|
| 76 |
+
<observers>
|
| 77 |
+
<seopack_controller_layout_render_before_catalog_category_view>
|
| 78 |
+
<type>singleton</type>
|
| 79 |
+
<class>seopack/observer</class>
|
| 80 |
+
<method>doPagination</method>
|
| 81 |
+
</seopack_controller_layout_render_before_catalog_category_view>
|
| 82 |
+
</observers>
|
| 83 |
+
</controller_action_layout_render_before_catalog_category_view>
|
| 84 |
+
</events>
|
| 85 |
</global>
|
| 86 |
<adminhtml>
|
| 87 |
<acl>
|
app/code/community/GPMD/SEOPack/etc/system.xml
CHANGED
|
@@ -4,6 +4,7 @@
|
|
| 4 |
* @category GPMD
|
| 5 |
* @package GPMD_SEOPack
|
| 6 |
* @license http://www.gpmd.co.uk
|
|
|
|
| 7 |
*/
|
| 8 |
-->
|
| 9 |
<config>
|
|
@@ -13,90 +14,108 @@
|
|
| 13 |
<sort_order>10000</sort_order>
|
| 14 |
</GPMD>
|
| 15 |
</tabs>
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
<![CDATA[<span class="notice">Enable / Disable custom meta robots across whole site</span>]]>
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
|
|
|
|
|
|
| 50 |
<![CDATA[Enable / Disable filtered category pages custom meta robots across site]]>
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
|
|
|
|
|
|
| 63 |
<![CDATA[Enable / Disable product custom meta robots across site]]>
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
|
|
|
|
|
|
| 76 |
<![CDATA[Enable / Disable custom category meta robots across site]]>
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
|
| 88 |
<![CDATA[Remove 'Top Site' requests from google analytics (Safari, Opera & Firefox)]]>
|
| 89 |
-
|
| 90 |
-
|
| 91 |
-
|
| 92 |
-
|
| 93 |
-
|
| 94 |
-
|
| 95 |
-
|
| 96 |
-
|
| 97 |
-
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
|
| 101 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 102 |
</config>
|
| 4 |
* @category GPMD
|
| 5 |
* @package GPMD_SEOPack
|
| 6 |
* @license http://www.gpmd.co.uk
|
| 7 |
+
* @author Martin Dines <mdines@gpmd.co.uk>, Adrian Duke <adrian@gpmd.co.uk>
|
| 8 |
*/
|
| 9 |
-->
|
| 10 |
<config>
|
| 14 |
<sort_order>10000</sort_order>
|
| 15 |
</GPMD>
|
| 16 |
</tabs>
|
| 17 |
+
<sections>
|
| 18 |
+
<seopack translate="label">
|
| 19 |
+
<label>SEOPack</label>
|
| 20 |
+
<tab>GPMD</tab>
|
| 21 |
+
<frontend_type>text</frontend_type>
|
| 22 |
+
<sort_order>0</sort_order>
|
| 23 |
+
<show_in_default>1</show_in_default>
|
| 24 |
+
<show_in_website>1</show_in_website>
|
| 25 |
+
<show_in_store>1</show_in_store>
|
| 26 |
+
<groups>
|
| 27 |
+
<activated translate="label">
|
| 28 |
+
<label>Enable / Disable</label>
|
| 29 |
+
<frontend_type>text</frontend_type>
|
| 30 |
+
<sort_order>100</sort_order>
|
| 31 |
+
<show_in_default>1</show_in_default>
|
| 32 |
+
<show_in_website>1</show_in_website>
|
| 33 |
+
<show_in_store>1</show_in_store>
|
| 34 |
+
<fields>
|
| 35 |
+
<site_enabled translate="label">
|
| 36 |
+
<label>All Meta Robots</label>
|
| 37 |
+
<comment>
|
| 38 |
<![CDATA[<span class="notice">Enable / Disable custom meta robots across whole site</span>]]>
|
| 39 |
+
</comment>
|
| 40 |
+
<frontend_type>select</frontend_type>
|
| 41 |
+
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
| 42 |
+
<sort_order>1</sort_order>
|
| 43 |
+
<show_in_default>1</show_in_default>
|
| 44 |
+
<show_in_website>0</show_in_website>
|
| 45 |
+
<show_in_store>0</show_in_store>
|
| 46 |
+
</site_enabled>
|
| 47 |
+
<filter_enabled translate="label">
|
| 48 |
+
<depends>
|
| 49 |
+
<site_enabled>1</site_enabled>
|
| 50 |
+
</depends>
|
| 51 |
+
<label>Filter Page Meta Robots</label>
|
| 52 |
+
<comment>
|
| 53 |
<![CDATA[Enable / Disable filtered category pages custom meta robots across site]]>
|
| 54 |
+
</comment>
|
| 55 |
+
<frontend_type>select</frontend_type>
|
| 56 |
+
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
| 57 |
+
<sort_order>10</sort_order>
|
| 58 |
+
<show_in_default>1</show_in_default>
|
| 59 |
+
<show_in_website>0</show_in_website>
|
| 60 |
+
<show_in_store>0</show_in_store>
|
| 61 |
+
</filter_enabled>
|
| 62 |
+
<product_enabled translate="label">
|
| 63 |
+
<depends>
|
| 64 |
+
<site_enabled>1</site_enabled>
|
| 65 |
+
</depends>
|
| 66 |
+
<label>Product Meta Robots</label>
|
| 67 |
+
<comment>
|
| 68 |
<![CDATA[Enable / Disable product custom meta robots across site]]>
|
| 69 |
+
</comment>
|
| 70 |
+
<frontend_type>select</frontend_type>
|
| 71 |
+
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
| 72 |
+
<sort_order>20</sort_order>
|
| 73 |
+
<show_in_default>1</show_in_default>
|
| 74 |
+
<show_in_website>0</show_in_website>
|
| 75 |
+
<show_in_store>0</show_in_store>
|
| 76 |
+
</product_enabled>
|
| 77 |
+
<category_enabled translate="label">
|
| 78 |
+
<depends>
|
| 79 |
+
<site_enabled>1</site_enabled>
|
| 80 |
+
</depends>
|
| 81 |
+
<label>Category Meta Robots</label>
|
| 82 |
+
<comment>
|
| 83 |
<![CDATA[Enable / Disable custom category meta robots across site]]>
|
| 84 |
+
</comment>
|
| 85 |
+
<frontend_type>select</frontend_type>
|
| 86 |
+
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
| 87 |
+
<sort_order>30</sort_order>
|
| 88 |
+
<show_in_default>1</show_in_default>
|
| 89 |
+
<show_in_website>0</show_in_website>
|
| 90 |
+
<show_in_store>0</show_in_store>
|
| 91 |
+
</category_enabled>
|
| 92 |
+
<ga_ignore translate="label">
|
| 93 |
+
<label>GA Ignore 'Top Sites'</label>
|
| 94 |
+
<comment>
|
| 95 |
<![CDATA[Remove 'Top Site' requests from google analytics (Safari, Opera & Firefox)]]>
|
| 96 |
+
</comment>
|
| 97 |
+
<frontend_type>select</frontend_type>
|
| 98 |
+
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
| 99 |
+
<sort_order>40</sort_order>
|
| 100 |
+
<show_in_default>1</show_in_default>
|
| 101 |
+
<show_in_website>0</show_in_website>
|
| 102 |
+
<show_in_store>0</show_in_store>
|
| 103 |
+
</ga_ignore>
|
| 104 |
+
<rel_pagination_enabled translate="label">
|
| 105 |
+
<label>Rel Meta Pagination</label>
|
| 106 |
+
<comment>
|
| 107 |
+
<![CDATA[Enable / Disable rel="next" and rel="prev" meta tags in paginated pages]]>
|
| 108 |
+
</comment>
|
| 109 |
+
<frontend_type>select</frontend_type>
|
| 110 |
+
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
| 111 |
+
<sort_order>50</sort_order>
|
| 112 |
+
<show_in_default>1</show_in_default>
|
| 113 |
+
<show_in_website>0</show_in_website>
|
| 114 |
+
<show_in_store>0</show_in_store>
|
| 115 |
+
</rel_pagination_enabled>
|
| 116 |
+
</fields>
|
| 117 |
+
</activated>
|
| 118 |
+
</groups>
|
| 119 |
+
</seopack>
|
| 120 |
+
</sections>
|
| 121 |
</config>
|
app/code/community/GPMD/SEOPack/sql/seopack_setup/{mysql4-install-1.1.3.php → mysql4-install-0.1.1.php}
RENAMED
|
File without changes
|
package.xml
CHANGED
|
@@ -1,30 +1,20 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>gpmd_seopack</name>
|
| 4 |
-
<version>1.1
|
| 5 |
<stability>stable</stability>
|
| 6 |
-
<license uri="http://opensource.org/licenses/osl-3.0.php">OSL
|
| 7 |
<channel>community</channel>
|
| 8 |
<extends/>
|
| 9 |
-
<summary>
|
| 10 |
-
<description>The
|
| 11 |
-

|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
-
|
| 16 |
-
|
| 17 |
-
-
|
| 18 |
-

|
| 19 |
-
- Product orphaning
|
| 20 |
-

|
| 21 |
-
- Top sites analytics protection
|
| 22 |
-

|
| 23 |
-
- Fix for missing meta robots attribute</notes>
|
| 24 |
-
<authors><author><name>Adrian Duke</name><user>adrianduke</user><email>adrian@gpmd.co.uk</email></author></authors>
|
| 25 |
-
<date>2012-09-21</date>
|
| 26 |
-
<time>11:18:09</time>
|
| 27 |
-
<contents><target name="magecommunity"><dir name="GPMD"><dir name="SEOPack"><dir name="Helper"><file name="Data.php" hash="4749540fe128e3d288753f08ab2ec20a"/></dir><dir name="Model"><dir name="Attribute"><dir name="Source"><file name="Robots.php" hash="07555ae7a79dd8d99ebe3a13cc3f5d83"/></dir></dir><file name="Observer.php" hash="c2fa3bf58eb9633f5d43ea8146be0e75"/><dir name="Product"><file name="Visibility.php" hash="6130c925e1a030662fd060d094ae40cc"/></dir><dir name="Resource"><dir name="Eav"><dir name="Mysql4"><file name="Setup.php" hash="ac8c08ad8e708d2b6994a9935f14896e"/></dir></dir></dir></dir><dir name="etc"><file name="config.xml" hash="445cba19340c0165abeba910fffbf63a"/><file name="system.xml" hash="8894108af6c8951f6bdc8a8b4446dc86"/></dir><dir name="sql"><dir name="seopack_setup"><file name="mysql4-install-1.1.3.php" hash="b87ea79a6da95e8782731d4d8d8ea52b"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="GPMD_SEOPack.xml" hash="96a18610be60b7c18a8d9a40e9468d82"/></dir></target></contents>
|
| 28 |
<compatible/>
|
| 29 |
-
<dependencies><required><php><min>5.
|
| 30 |
</package>
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>gpmd_seopack</name>
|
| 4 |
+
<version>1.2.1</version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
+
<license uri="http://opensource.org/licenses/osl-3.0.php">OSL 3.0</license>
|
| 7 |
<channel>community</channel>
|
| 8 |
<extends/>
|
| 9 |
+
<summary>The SEO Pack module will help to improve your search engine rankings.</summary>
|
| 10 |
+
<description>The SEO Pack module will help to improve your search engine rankings by allowing you to assign custom meta robots tags, orphaning / discontinuing products (products only available via direct URL) and assigning meta robots rules to filtered category pages / layered navigation pages. This gives you added control over the indexation of product pages, category pages and filter pages. This module will eliminate several often fatal ecommerce SEO issues.</description>
|
| 11 |
+
<notes>Bug Fix
|
| 12 |
+
----------
|
| 13 |
+
Bug causing meta robots to be incorrect on filtered category pages</notes>
|
| 14 |
+
<authors><author><name>GPMD</name><user>gpmd</user><email>dev@gpmd.co.uk</email></author></authors>
|
| 15 |
+
<date>2013-05-29</date>
|
| 16 |
+
<time>16:41:37</time>
|
| 17 |
+
<contents><target name="magecommunity"><dir name="GPMD"><dir name="SEOPack"><dir name="Helper"><file name="Data.php" hash="4749540fe128e3d288753f08ab2ec20a"/></dir><dir name="Model"><dir name="Attribute"><dir name="Source"><file name="Robots.php" hash="07555ae7a79dd8d99ebe3a13cc3f5d83"/></dir></dir><file name="Observer.php" hash="2b5e6c45b885f64bdc80bfc6772d6f8d"/><file name="Paginator.php" hash="4a0201d0e79d715e4c179dea5ebafa28"/><dir name="Product"><file name="Visibility.php" hash="6130c925e1a030662fd060d094ae40cc"/></dir><dir name="Resource"><dir name="Eav"><dir name="Mysql4"><file name="Setup.php" hash="a3be71150e5568cc000495edf466200a"/></dir></dir></dir></dir><dir name="etc"><file name="config.xml" hash="afd851350ebd3964fced03c38be8c725"/><file name="system.xml" hash="cb7d5b7cc8335e0b134d8244ac3c33e9"/></dir><dir name="sql"><dir name="seopack_setup"><file name="mysql4-install-0.1.1.php" hash="b87ea79a6da95e8782731d4d8d8ea52b"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="GPMD_SEOPack.xml" hash="96a18610be60b7c18a8d9a40e9468d82"/></dir></target></contents>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
<compatible/>
|
| 19 |
+
<dependencies><required><php><min>5.3.0</min><max>6.0.0</max></php><package><name>Mage_GoogleAnalytics</name><channel>community</channel><min></min><max></max></package><package><name>Mage_Catalog</name><channel>community</channel><min></min><max></max></package><package><name>Mage_Core</name><channel>community</channel><min></min><max></max></package></required></dependencies>
|
| 20 |
</package>
|
