Version Notes
- Ability to define custom robots value on sorted category pages
- Ability to define custom robots value on categories filtered by category
- Ability to define custom robots value on search pages
- Ability to define custom robots value on CMS pages
- Uninstallation script updated
- Housekeeping
Download this release
Release Info
Developer | Adrian Duke |
Extension | gpmd_seopack |
Version | 1.3.0 |
Comparing to | |
See all releases |
Code changes from version 1.2.3 to 1.3.0
- app/code/community/GPMD/SEOPack/Helper/Data.php +3 -1
- app/code/community/GPMD/SEOPack/Model/Attribute/Source/Robots.php +2 -2
- app/code/community/GPMD/SEOPack/Model/Observer.php +95 -18
- app/code/community/GPMD/SEOPack/Model/Product/Visibility.php +8 -8
- app/code/community/GPMD/SEOPack/etc/config.xml +34 -6
- app/code/community/GPMD/SEOPack/etc/system.xml +96 -26
- app/code/community/GPMD/SEOPack/sql/seopack_setup/mysql4-uninstall.php +2 -1
- app/code/community/GPMD/SEOPack/sql/seopack_setup/mysql4-upgrade-1.2.3-1.3.0.php +7 -0
- package.xml +13 -8
app/code/community/GPMD/SEOPack/Helper/Data.php
CHANGED
@@ -9,4 +9,6 @@
|
|
9 |
*
|
10 |
* @author Adrian Duke
|
11 |
*/
|
12 |
-
class GPMD_SEOPack_Helper_Data extends Mage_Core_Helper_Abstract
|
|
|
|
9 |
*
|
10 |
* @author Adrian Duke
|
11 |
*/
|
12 |
+
class GPMD_SEOPack_Helper_Data extends Mage_Core_Helper_Abstract
|
13 |
+
{
|
14 |
+
}
|
app/code/community/GPMD/SEOPack/Model/Attribute/Source/Robots.php
CHANGED
@@ -15,10 +15,10 @@ class GPMD_SEOPack_Model_Attribute_Source_Robots extends Mage_Eav_Model_Entity_A
|
|
15 |
{
|
16 |
if (!$this->_options) {
|
17 |
$this->_options = array(
|
18 |
-
|
19 |
'value' => '',
|
20 |
'label' => Mage::helper('seopack')->__('-- Magento Default --'),
|
21 |
-
|
22 |
array(
|
23 |
'value' => 'NOINDEX,FOLLOW',
|
24 |
'label' => Mage::helper('seopack')->__('NOINDEX, FOLLOW'),
|
15 |
{
|
16 |
if (!$this->_options) {
|
17 |
$this->_options = array(
|
18 |
+
array(
|
19 |
'value' => '',
|
20 |
'label' => Mage::helper('seopack')->__('-- Magento Default --'),
|
21 |
+
),
|
22 |
array(
|
23 |
'value' => 'NOINDEX,FOLLOW',
|
24 |
'label' => Mage::helper('seopack')->__('NOINDEX, FOLLOW'),
|
app/code/community/GPMD/SEOPack/Model/Observer.php
CHANGED
@@ -6,12 +6,18 @@
|
|
6 |
*/
|
7 |
class GPMD_SEOPack_Model_Observer
|
8 |
{
|
9 |
-
const XML_PATH_METAROBOTS_SITEENABLED = 'seopack/
|
10 |
-
const
|
11 |
-
const
|
12 |
-
const
|
13 |
-
const
|
14 |
-
const
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
|
16 |
static $_matches = array(
|
17 |
'HTTP_X_PURPOSE' => array(
|
@@ -57,7 +63,10 @@ class GPMD_SEOPack_Model_Observer
|
|
57 |
foreach ($intersect as $match => $values) {
|
58 |
foreach ($values as $value) {
|
59 |
if ($_SERVER[$match] == $value) {
|
60 |
-
$layout->getBlock('after_body_start')
|
|
|
|
|
|
|
61 |
break 2;
|
62 |
}
|
63 |
}
|
@@ -79,6 +88,22 @@ class GPMD_SEOPack_Model_Observer
|
|
79 |
$this->_filterEnabled = Mage::getStoreConfig(self::XML_PATH_METAROBOTS_FILTERENABLED);
|
80 |
}
|
81 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
if ($head = $layout->getBlock('head')) {
|
83 |
if ($this->_productEnabled && $action instanceof Mage_Catalog_ProductController) {
|
84 |
$product = Mage::registry('current_product');
|
@@ -86,32 +111,67 @@ class GPMD_SEOPack_Model_Observer
|
|
86 |
if ($robots = $product->getMetaRobots()) {
|
87 |
$head->setData('robots', $robots);
|
88 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
} elseif ($this->_categoryEnabled && $action instanceof Mage_Catalog_CategoryController) {
|
90 |
$category = Mage::registry('current_category');
|
91 |
-
|
92 |
// Set meta robots if set in category
|
93 |
if ($robots = $category->getMetaRobots()) {
|
94 |
$head->setData('robots', $robots);
|
95 |
}
|
96 |
-
|
97 |
-
if ($this->_filterEnabled) {
|
98 |
$layer = Mage::getModel('catalog/layer')->setCurrentCategory($category);
|
99 |
$attributes = $layer->getFilterableAttributes();
|
100 |
|
101 |
-
// Iterate over filterable attributes. Check if attribute is present in
|
102 |
foreach ($attributes as $attribute) {
|
103 |
$attributeCode = $attribute->getAttributeCode();
|
104 |
if (array_key_exists($attributeCode, $action->getRequest()->getParams())) {
|
105 |
-
// Set NOINDEX,FOLLOW when a filter is applied
|
106 |
-
$head->setData('robots', 'NOINDEX,FOLLOW');
|
107 |
break;
|
108 |
}
|
109 |
}
|
110 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
}
|
112 |
}
|
113 |
}
|
114 |
-
|
115 |
/**
|
116 |
* doPagination() - kick off the process of adding the next and prev rel links to category pages where necessary
|
117 |
*
|
@@ -123,11 +183,10 @@ class GPMD_SEOPack_Model_Observer
|
|
123 |
if (empty($this->_relPaginationEnabled)) {
|
124 |
$this->_relPaginationEnabled = Mage::getStoreConfig(self::XML_PATH_RELPAGINATION_ENABLED);
|
125 |
}
|
126 |
-
|
127 |
try {
|
128 |
if ($this->_relPaginationEnabled) {
|
129 |
-
|
130 |
-
$paginator->createLinks();
|
131 |
}
|
132 |
} catch (Exception $e) {
|
133 |
Mage::logException($e);
|
@@ -135,4 +194,22 @@ class GPMD_SEOPack_Model_Observer
|
|
135 |
|
136 |
return $this;
|
137 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
138 |
}
|
6 |
*/
|
7 |
class GPMD_SEOPack_Model_Observer
|
8 |
{
|
9 |
+
const XML_PATH_METAROBOTS_SITEENABLED = 'seopack/metarobots/site_enabled';
|
10 |
+
const XML_PATH_METAROBOTS_PRODUCTENABLED = 'seopack/metarobots/product_enabled';
|
11 |
+
const XML_PATH_METAROBOTS_CATEGORYENABLED = 'seopack/metarobots/category_enabled';
|
12 |
+
const XML_PATH_METAROBOTS_FILTERENABLED = 'seopack/metarobots/filter_enabled';
|
13 |
+
const XML_PATH_METAROBOTS_TREATCATEGORYASFILTER = 'seopack/metarobots/treat_category_as_filter';
|
14 |
+
const XML_PATH_METAROBOTS_TREATSORTASFILTER = 'seopack/metarobots/treat_sort_as_filter';
|
15 |
+
const XML_PATH_METAROBOTS_SEARCHENABLED = 'seopack/metarobots/search_enabled';
|
16 |
+
const XML_PATH_METAROBOTS_CMSPAGEENABLED = 'seopack/metarobots/cms_page_enabled';
|
17 |
+
const XML_PATH_RELPAGINATION_ENABLED = 'seopack/misc/rel_pagination_enabled';
|
18 |
+
const XML_PATH_GA_IGNORE = 'seopack/misc/ga_ignore';
|
19 |
+
|
20 |
+
const ADMIN_CMS_PAGE_ROBOTS_FIELD_NAME = 'meta_robots';
|
21 |
|
22 |
static $_matches = array(
|
23 |
'HTTP_X_PURPOSE' => array(
|
63 |
foreach ($intersect as $match => $values) {
|
64 |
foreach ($values as $value) {
|
65 |
if ($_SERVER[$match] == $value) {
|
66 |
+
$block = $layout->getBlock('after_body_start');
|
67 |
+
if ($block){
|
68 |
+
$block->unsetChild('google_analytics');
|
69 |
+
}
|
70 |
break 2;
|
71 |
}
|
72 |
}
|
88 |
$this->_filterEnabled = Mage::getStoreConfig(self::XML_PATH_METAROBOTS_FILTERENABLED);
|
89 |
}
|
90 |
|
91 |
+
if (empty($this->_treatCategoryAsFilter)) {
|
92 |
+
$this->_treatCategoryAsFilter = Mage::getStoreConfig(self::XML_PATH_METAROBOTS_TREATCATEGORYASFILTER);
|
93 |
+
}
|
94 |
+
|
95 |
+
if (empty($this->treatSortAsFilter)) {
|
96 |
+
$this->_treatSortAsFilter = Mage::getStoreConfig(self::XML_PATH_METAROBOTS_TREATSORTASFILTER);
|
97 |
+
}
|
98 |
+
|
99 |
+
if (empty($this->_searchEnabled)) {
|
100 |
+
$this->_searchEnabled = Mage::getStoreConfig(self::XML_PATH_METAROBOTS_SEARCHENABLED);
|
101 |
+
}
|
102 |
+
|
103 |
+
if (empty($this->_cmsPageEnabled)) {
|
104 |
+
$this->_cmsPageEnabled = Mage::getStoreConfig(self::XML_PATH_METAROBOTS_CMSPAGEENABLED);
|
105 |
+
}
|
106 |
+
|
107 |
if ($head = $layout->getBlock('head')) {
|
108 |
if ($this->_productEnabled && $action instanceof Mage_Catalog_ProductController) {
|
109 |
$product = Mage::registry('current_product');
|
111 |
if ($robots = $product->getMetaRobots()) {
|
112 |
$head->setData('robots', $robots);
|
113 |
}
|
114 |
+
|
115 |
+
if ($action->getRequest()->getParam('options') && $action->getRequest()->getParam('options') === 'cart') {
|
116 |
+
$head->setData('robots', 'NOINDEX, FOLLOW');
|
117 |
+
}
|
118 |
+
} elseif ($this->_searchEnabled
|
119 |
+
&& ($action instanceof Mage_CatalogSearch_ResultController
|
120 |
+
|| ($action instanceof Mage_CatalogSearch_AdvancedController
|
121 |
+
&& $action->getRequest()->getActionName() === 'result'))
|
122 |
+
) {
|
123 |
+
// Set custom meta robots if viewing a search page displaying results
|
124 |
+
$head->setData('robots', 'NOINDEX, FOLLOW');
|
125 |
} elseif ($this->_categoryEnabled && $action instanceof Mage_Catalog_CategoryController) {
|
126 |
$category = Mage::registry('current_category');
|
127 |
+
|
128 |
// Set meta robots if set in category
|
129 |
if ($robots = $category->getMetaRobots()) {
|
130 |
$head->setData('robots', $robots);
|
131 |
}
|
132 |
+
|
133 |
+
if ($this->_filterEnabled) {
|
134 |
$layer = Mage::getModel('catalog/layer')->setCurrentCategory($category);
|
135 |
$attributes = $layer->getFilterableAttributes();
|
136 |
|
137 |
+
// Iterate over filterable attributes. Check if attribute is present in parameters
|
138 |
foreach ($attributes as $attribute) {
|
139 |
$attributeCode = $attribute->getAttributeCode();
|
140 |
if (array_key_exists($attributeCode, $action->getRequest()->getParams())) {
|
141 |
+
// Set NOINDEX, FOLLOW when a filter is applied
|
142 |
+
$head->setData('robots', 'NOINDEX, FOLLOW');
|
143 |
break;
|
144 |
}
|
145 |
}
|
146 |
+
|
147 |
+
// Treat category sort as a filters
|
148 |
+
if ($this->_treatSortAsFilter) {
|
149 |
+
$sortParams = array('dir', 'mode', 'limit', 'order');
|
150 |
+
if (count(array_intersect($sortParams, array_keys($action->getRequest()->getParams()))) > 0) {
|
151 |
+
$head->setData('robots', 'NOINDEX, FOLLOW');
|
152 |
+
}
|
153 |
+
}
|
154 |
+
|
155 |
+
// Treat category as a filterable attribute
|
156 |
+
if ($this->_treatCategoryAsFilter) {
|
157 |
+
if (array_key_exists('cat', $action->getRequest()->getParams())) {
|
158 |
+
$head->setData('robots', 'NOINDEX, FOLLOW');
|
159 |
+
}
|
160 |
+
}
|
161 |
+
}
|
162 |
+
} elseif ($this->_cmsPageEnabled && $action instanceof Mage_Cms_PageController) {
|
163 |
+
$pageId = $action->getRequest()->getParam('page_id');
|
164 |
+
$page = Mage::getModel('cms/page')->load($pageId);
|
165 |
+
|
166 |
+
if ($page->getId()) {
|
167 |
+
if ($robots = $page->getMetaRobots()) {
|
168 |
+
$head->setData('robots', $robots);
|
169 |
+
}
|
170 |
+
}
|
171 |
}
|
172 |
}
|
173 |
}
|
174 |
+
|
175 |
/**
|
176 |
* doPagination() - kick off the process of adding the next and prev rel links to category pages where necessary
|
177 |
*
|
183 |
if (empty($this->_relPaginationEnabled)) {
|
184 |
$this->_relPaginationEnabled = Mage::getStoreConfig(self::XML_PATH_RELPAGINATION_ENABLED);
|
185 |
}
|
186 |
+
|
187 |
try {
|
188 |
if ($this->_relPaginationEnabled) {
|
189 |
+
Mage::getModel('seopack/paginator')->createLinks();
|
|
|
190 |
}
|
191 |
} catch (Exception $e) {
|
192 |
Mage::logException($e);
|
194 |
|
195 |
return $this;
|
196 |
}
|
197 |
+
|
198 |
+
public function addRobotsToCmsPages(Varien_Event_Observer $observer)
|
199 |
+
{
|
200 |
+
$model = Mage::registry('cms_page');
|
201 |
+
$form = $observer->getForm();
|
202 |
+
|
203 |
+
$form->getElement('meta_fieldset')->addField(self::ADMIN_CMS_PAGE_ROBOTS_FIELD_NAME, 'select', array(
|
204 |
+
'name' => self::ADMIN_CMS_PAGE_ROBOTS_FIELD_NAME,
|
205 |
+
'label' => Mage::helper('cms')->__('Meta Robots'),
|
206 |
+
'title' => Mage::helper('cms')->__('Meta Robots'),
|
207 |
+
'values' => Mage::getModel('seopack/attribute_source_robots')->getAllOptions(),
|
208 |
+
'value' => $model->getMetaRobots()
|
209 |
+
));
|
210 |
+
}
|
211 |
+
|
212 |
+
public function saveRobotsToCmsPages(Varien_Event_Observer $observer)
|
213 |
+
{
|
214 |
+
}
|
215 |
}
|
app/code/community/GPMD/SEOPack/Model/Product/Visibility.php
CHANGED
@@ -11,8 +11,8 @@
|
|
11 |
*/
|
12 |
class GPMD_SEOPack_Model_Product_Visibility extends Mage_Catalog_Model_Product_Visibility
|
13 |
{
|
14 |
-
|
15 |
-
|
16 |
/**
|
17 |
* Retrieve visible in site ids array
|
18 |
*
|
@@ -22,7 +22,7 @@ class GPMD_SEOPack_Model_Product_Visibility extends Mage_Catalog_Model_Product_V
|
|
22 |
{
|
23 |
return array(self::VISIBILITY_IN_SEARCH, self::VISIBILITY_IN_CATALOG, self::VISIBILITY_BOTH, self::VISIBILITY_ORPHANED);
|
24 |
}
|
25 |
-
|
26 |
/**
|
27 |
* Retrieve option array
|
28 |
*
|
@@ -38,7 +38,7 @@ class GPMD_SEOPack_Model_Product_Visibility extends Mage_Catalog_Model_Product_V
|
|
38 |
self::VISIBILITY_BOTH => Mage::helper('catalog')->__('Catalog, Search')
|
39 |
);
|
40 |
}
|
41 |
-
|
42 |
/**
|
43 |
* Retrieve all options
|
44 |
*
|
@@ -47,7 +47,7 @@ class GPMD_SEOPack_Model_Product_Visibility extends Mage_Catalog_Model_Product_V
|
|
47 |
static public function getAllOption()
|
48 |
{
|
49 |
$options = self::getOptionArray();
|
50 |
-
array_unshift($options, array('value'=>'', 'label'=>''));
|
51 |
return $options;
|
52 |
}
|
53 |
|
@@ -59,11 +59,11 @@ class GPMD_SEOPack_Model_Product_Visibility extends Mage_Catalog_Model_Product_V
|
|
59 |
static public function getAllOptions()
|
60 |
{
|
61 |
$res = array();
|
62 |
-
$res[] = array('value'=>'', 'label'=> Mage::helper('catalog')->__('-- Please Select --'));
|
63 |
foreach (self::getOptionArray() as $index => $value) {
|
64 |
$res[] = array(
|
65 |
-
|
66 |
-
|
67 |
);
|
68 |
}
|
69 |
return $res;
|
11 |
*/
|
12 |
class GPMD_SEOPack_Model_Product_Visibility extends Mage_Catalog_Model_Product_Visibility
|
13 |
{
|
14 |
+
const VISIBILITY_ORPHANED = 5;
|
15 |
+
|
16 |
/**
|
17 |
* Retrieve visible in site ids array
|
18 |
*
|
22 |
{
|
23 |
return array(self::VISIBILITY_IN_SEARCH, self::VISIBILITY_IN_CATALOG, self::VISIBILITY_BOTH, self::VISIBILITY_ORPHANED);
|
24 |
}
|
25 |
+
|
26 |
/**
|
27 |
* Retrieve option array
|
28 |
*
|
38 |
self::VISIBILITY_BOTH => Mage::helper('catalog')->__('Catalog, Search')
|
39 |
);
|
40 |
}
|
41 |
+
|
42 |
/**
|
43 |
* Retrieve all options
|
44 |
*
|
47 |
static public function getAllOption()
|
48 |
{
|
49 |
$options = self::getOptionArray();
|
50 |
+
array_unshift($options, array('value' => '', 'label' => ''));
|
51 |
return $options;
|
52 |
}
|
53 |
|
59 |
static public function getAllOptions()
|
60 |
{
|
61 |
$res = array();
|
62 |
+
$res[] = array('value' => '', 'label' => Mage::helper('catalog')->__('-- Please Select --'));
|
63 |
foreach (self::getOptionArray() as $index => $value) {
|
64 |
$res[] = array(
|
65 |
+
'value' => $index,
|
66 |
+
'label' => $value
|
67 |
);
|
68 |
}
|
69 |
return $res;
|
app/code/community/GPMD/SEOPack/etc/config.xml
CHANGED
@@ -10,19 +10,25 @@
|
|
10 |
<config>
|
11 |
<modules>
|
12 |
<GPMD_SEOPack>
|
13 |
-
<version>1.
|
14 |
</GPMD_SEOPack>
|
15 |
</modules>
|
16 |
<default>
|
17 |
<seopack>
|
18 |
-
<
|
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 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
<rel_pagination_enabled>1</rel_pagination_enabled>
|
25 |
-
|
|
|
26 |
</seopack>
|
27 |
</default>
|
28 |
<global>
|
@@ -62,6 +68,8 @@
|
|
62 |
</connection>
|
63 |
</seopack_read>
|
64 |
</resources>
|
|
|
|
|
65 |
<events>
|
66 |
<controller_action_layout_generate_blocks_after>
|
67 |
<observers>
|
@@ -87,8 +95,28 @@
|
|
87 |
</observers>
|
88 |
</controller_action_layout_render_before_catalog_category_view>
|
89 |
</events>
|
90 |
-
</
|
91 |
<adminhtml>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
92 |
<acl>
|
93 |
<resources>
|
94 |
<admin>
|
10 |
<config>
|
11 |
<modules>
|
12 |
<GPMD_SEOPack>
|
13 |
+
<version>1.3.0</version>
|
14 |
</GPMD_SEOPack>
|
15 |
</modules>
|
16 |
<default>
|
17 |
<seopack>
|
18 |
+
<metarobots>
|
19 |
<site_enabled>1</site_enabled>
|
|
|
20 |
<category_enabled>1</category_enabled>
|
21 |
<product_enabled>1</product_enabled>
|
22 |
+
<filter_enabled>1</filter_enabled>
|
23 |
+
<treat_category_as_filter>1</treat_category_as_filter>
|
24 |
+
<treat_sort_as_filter>1</treat_sort_as_filter>
|
25 |
+
<search_enabled>1</search_enabled>
|
26 |
+
<cms_page_enabled>1</cms_page_enabled>
|
27 |
+
</metarobots>
|
28 |
+
<misc>
|
29 |
<rel_pagination_enabled>1</rel_pagination_enabled>
|
30 |
+
<ga_ignore>1</ga_ignore>
|
31 |
+
</misc>
|
32 |
</seopack>
|
33 |
</default>
|
34 |
<global>
|
68 |
</connection>
|
69 |
</seopack_read>
|
70 |
</resources>
|
71 |
+
</global>
|
72 |
+
<frontend>
|
73 |
<events>
|
74 |
<controller_action_layout_generate_blocks_after>
|
75 |
<observers>
|
95 |
</observers>
|
96 |
</controller_action_layout_render_before_catalog_category_view>
|
97 |
</events>
|
98 |
+
</frontend>
|
99 |
<adminhtml>
|
100 |
+
<events>
|
101 |
+
<adminhtml_cms_page_edit_tab_meta_prepare_form>
|
102 |
+
<observers>
|
103 |
+
<gpmd_seopack_cms_page_edit_tab_meta>
|
104 |
+
<type>singleton</type>
|
105 |
+
<class>seopack/observer</class>
|
106 |
+
<method>addRobotsToCmsPages</method>
|
107 |
+
</gpmd_seopack_cms_page_edit_tab_meta>
|
108 |
+
</observers>
|
109 |
+
</adminhtml_cms_page_edit_tab_meta_prepare_form>
|
110 |
+
<cms_page_prepare_save>
|
111 |
+
<observers>
|
112 |
+
<gpmd_seopack_cms_page_form_save>
|
113 |
+
<type>singleton</type>
|
114 |
+
<class>seopack/observer</class>
|
115 |
+
<method>saveRobotsToCmsPages</method>
|
116 |
+
</gpmd_seopack_cms_page_form_save>
|
117 |
+
</observers>
|
118 |
+
</cms_page_prepare_save>
|
119 |
+
</events>
|
120 |
<acl>
|
121 |
<resources>
|
122 |
<admin>
|
app/code/community/GPMD/SEOPack/etc/system.xml
CHANGED
@@ -24,8 +24,8 @@
|
|
24 |
<show_in_website>1</show_in_website>
|
25 |
<show_in_store>1</show_in_store>
|
26 |
<groups>
|
27 |
-
<
|
28 |
-
<label>
|
29 |
<frontend_type>text</frontend_type>
|
30 |
<sort_order>100</sort_order>
|
31 |
<show_in_default>1</show_in_default>
|
@@ -35,86 +35,156 @@
|
|
35 |
<site_enabled translate="label">
|
36 |
<label>All Meta Robots</label>
|
37 |
<comment>
|
38 |
-
|
39 |
</comment>
|
40 |
<frontend_type>select</frontend_type>
|
41 |
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
42 |
-
<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 |
-
|
54 |
</comment>
|
55 |
<frontend_type>select</frontend_type>
|
56 |
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
57 |
-
<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 |
-
<
|
63 |
<depends>
|
64 |
-
<
|
65 |
</depends>
|
66 |
-
<label>
|
67 |
<comment>
|
68 |
-
|
69 |
</comment>
|
70 |
<frontend_type>select</frontend_type>
|
71 |
-
<source_model>adminhtml/
|
72 |
-
<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 |
-
</
|
77 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
<depends>
|
79 |
<site_enabled>1</site_enabled>
|
80 |
</depends>
|
81 |
-
<label>
|
82 |
<comment>
|
83 |
-
|
84 |
</comment>
|
85 |
<frontend_type>select</frontend_type>
|
86 |
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
87 |
-
<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 |
-
</
|
92 |
-
<
|
93 |
-
<
|
|
|
|
|
|
|
94 |
<comment>
|
95 |
-
|
96 |
</comment>
|
97 |
<frontend_type>select</frontend_type>
|
98 |
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
99 |
-
<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 |
-
</
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
104 |
<rel_pagination_enabled translate="label">
|
105 |
<label>Rel Meta Pagination</label>
|
106 |
<comment>
|
107 |
-
|
108 |
</comment>
|
109 |
<frontend_type>select</frontend_type>
|
110 |
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
111 |
-
<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 |
-
</
|
118 |
</groups>
|
119 |
</seopack>
|
120 |
</sections>
|
24 |
<show_in_website>1</show_in_website>
|
25 |
<show_in_store>1</show_in_store>
|
26 |
<groups>
|
27 |
+
<metarobots translate="label">
|
28 |
+
<label>Meta Robots</label>
|
29 |
<frontend_type>text</frontend_type>
|
30 |
<sort_order>100</sort_order>
|
31 |
<show_in_default>1</show_in_default>
|
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>1000</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 |
+
<product_enabled translate="label">
|
48 |
+
<depends>
|
49 |
+
<site_enabled>1</site_enabled>
|
50 |
+
</depends>
|
51 |
+
<label>Product Meta Robots</label>
|
52 |
+
<comment>
|
53 |
+
<![CDATA[Enable / Disable product 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>1100</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 |
+
</product_enabled>
|
62 |
+
<category_enabled translate="label">
|
63 |
+
<depends>
|
64 |
+
<site_enabled>1</site_enabled>
|
65 |
+
</depends>
|
66 |
+
<label>Category Meta Robots</label>
|
67 |
+
<comment>
|
68 |
+
<![CDATA[Enable / Disable custom category 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>1300</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 |
+
</category_enabled>
|
77 |
<filter_enabled translate="label">
|
78 |
<depends>
|
79 |
<site_enabled>1</site_enabled>
|
80 |
</depends>
|
81 |
<label>Filter Page Meta Robots</label>
|
82 |
<comment>
|
83 |
+
<![CDATA[Once enabled filtered category pages robots will be NOINDEX, FOLLOW]]>
|
84 |
</comment>
|
85 |
<frontend_type>select</frontend_type>
|
86 |
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
87 |
+
<sort_order>1400</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 |
</filter_enabled>
|
92 |
+
<treat_category_as_filter translate="label">
|
93 |
<depends>
|
94 |
+
<filter_enabled>1</filter_enabled>
|
95 |
</depends>
|
96 |
+
<label>Treat Category As Filter</label>
|
97 |
<comment>
|
98 |
+
<![CDATA[Apply custom meta robots when filtering a category page by a child category]]>
|
99 |
</comment>
|
100 |
<frontend_type>select</frontend_type>
|
101 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
102 |
+
<sort_order>1410</sort_order>
|
103 |
<show_in_default>1</show_in_default>
|
104 |
<show_in_website>0</show_in_website>
|
105 |
<show_in_store>0</show_in_store>
|
106 |
+
</treat_category_as_filter>
|
107 |
+
<treat_sort_as_filter translate="label">
|
108 |
+
<depends>
|
109 |
+
<filter_enabled>1</filter_enabled>
|
110 |
+
</depends>
|
111 |
+
<label>Treat Sort As Filter</label>
|
112 |
+
<comment>
|
113 |
+
<![CDATA[Apply custom meta robots when sorting a category page]]>
|
114 |
+
</comment>
|
115 |
+
<frontend_type>select</frontend_type>
|
116 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
117 |
+
<sort_order>1420</sort_order>
|
118 |
+
<show_in_default>1</show_in_default>
|
119 |
+
<show_in_website>0</show_in_website>
|
120 |
+
<show_in_store>0</show_in_store>
|
121 |
+
</treat_sort_as_filter>
|
122 |
+
<search_enabled translate="label">
|
123 |
<depends>
|
124 |
<site_enabled>1</site_enabled>
|
125 |
</depends>
|
126 |
+
<label>Search Meta Robots</label>
|
127 |
<comment>
|
128 |
+
<![CDATA[Once enabled search result pages robots will be NOINDEX, FOLLOW]]>
|
129 |
</comment>
|
130 |
<frontend_type>select</frontend_type>
|
131 |
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
132 |
+
<sort_order>1500</sort_order>
|
133 |
<show_in_default>1</show_in_default>
|
134 |
<show_in_website>0</show_in_website>
|
135 |
<show_in_store>0</show_in_store>
|
136 |
+
</search_enabled>
|
137 |
+
<cms_page_enabled translate="label">
|
138 |
+
<depends>
|
139 |
+
<site_enabled>1</site_enabled>
|
140 |
+
</depends>
|
141 |
+
<label>CMS Page Meta Robots</label>
|
142 |
<comment>
|
143 |
+
<![CDATA[Enable / Disable custom cms page meta robots across site]]>
|
144 |
</comment>
|
145 |
<frontend_type>select</frontend_type>
|
146 |
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
147 |
+
<sort_order>1600</sort_order>
|
148 |
<show_in_default>1</show_in_default>
|
149 |
<show_in_website>0</show_in_website>
|
150 |
<show_in_store>0</show_in_store>
|
151 |
+
</cms_page_enabled>
|
152 |
+
</fields>
|
153 |
+
</metarobots>
|
154 |
+
<misc translate="label">
|
155 |
+
<label>Miscellaneous</label>
|
156 |
+
<frontend_type>text</frontend_type>
|
157 |
+
<sort_order>200</sort_order>
|
158 |
+
<show_in_default>1</show_in_default>
|
159 |
+
<show_in_website>1</show_in_website>
|
160 |
+
<show_in_store>1</show_in_store>
|
161 |
+
<fields>
|
162 |
<rel_pagination_enabled translate="label">
|
163 |
<label>Rel Meta Pagination</label>
|
164 |
<comment>
|
165 |
+
<![CDATA[Enable / Disable rel="next" and rel="prev" meta tags in paginated pages]]>
|
166 |
</comment>
|
167 |
<frontend_type>select</frontend_type>
|
168 |
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
169 |
+
<sort_order>1000</sort_order>
|
170 |
<show_in_default>1</show_in_default>
|
171 |
<show_in_website>0</show_in_website>
|
172 |
<show_in_store>0</show_in_store>
|
173 |
</rel_pagination_enabled>
|
174 |
+
<ga_ignore translate="label">
|
175 |
+
<label>GA Ignore 'Top Sites'</label>
|
176 |
+
<comment>
|
177 |
+
<![CDATA[Remove 'Top Site' requests from google analytics (Safari, Opera & Firefox)]]>
|
178 |
+
</comment>
|
179 |
+
<frontend_type>select</frontend_type>
|
180 |
+
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
181 |
+
<sort_order>2000</sort_order>
|
182 |
+
<show_in_default>1</show_in_default>
|
183 |
+
<show_in_website>0</show_in_website>
|
184 |
+
<show_in_store>0</show_in_store>
|
185 |
+
</ga_ignore>
|
186 |
</fields>
|
187 |
+
</misc>
|
188 |
</groups>
|
189 |
</seopack>
|
190 |
</sections>
|
app/code/community/GPMD/SEOPack/sql/seopack_setup/mysql4-uninstall.php
CHANGED
@@ -1,10 +1,11 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
* GPMD SEOPack V1.
|
4 |
* @copyright Copyright (c) 2013 GPMD Ltd (http://www.gpmd.co.uk)
|
5 |
*/
|
6 |
|
7 |
$installer = $this;
|
8 |
$installer->startSetup();
|
9 |
$installer->run("DELETE FROM `{$installer->getTable('eav_attribute')}` WHERE `source_model` = 'seopack/attribute_source_robots'");
|
|
|
10 |
$installer->endSetup();
|
1 |
<?php
|
2 |
/**
|
3 |
+
* GPMD SEOPack V1.3.0
|
4 |
* @copyright Copyright (c) 2013 GPMD Ltd (http://www.gpmd.co.uk)
|
5 |
*/
|
6 |
|
7 |
$installer = $this;
|
8 |
$installer->startSetup();
|
9 |
$installer->run("DELETE FROM `{$installer->getTable('eav_attribute')}` WHERE `source_model` = 'seopack/attribute_source_robots'");
|
10 |
+
$installer->run("ALTER TABLE `{$installer->getTable('cms_page')}` DROP 'meta_robots'");
|
11 |
$installer->endSetup();
|
app/code/community/GPMD/SEOPack/sql/seopack_setup/mysql4-upgrade-1.2.3-1.3.0.php
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$installer = $this;
|
4 |
+
|
5 |
+
$installer->startSetup();
|
6 |
+
$installer->getConnection()->addColumn($this->getTable('cms_page'), 'meta_robots', 'VARCHAR(40) CHARACTER SET utf8 DEFAULT NULL');
|
7 |
+
$installer->endSetup();
|
package.xml
CHANGED
@@ -1,19 +1,24 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>gpmd_seopack</name>
|
4 |
-
<version>1.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>Our SEOPack is designed to improve the on-page optimisation of your website. Features include: custom meta robots tags, meta robots rules for filter pages, rel meta tags for pagination, product orphaning and top sites protection.</summary>
|
10 |
-
<description>The SEOPack module will help to improve your search engine rankings by allowing you to assign custom meta robots tags, enable rel meta tags for paginated pages, 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.
|
11 |
-
This module will eliminate several often fatal ecommerce SEO issues
|
12 |
-
<notes
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
|
|
|
|
|
|
|
|
|
|
17 |
<compatible/>
|
18 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
19 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>gpmd_seopack</name>
|
4 |
+
<version>1.3.0</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>Our SEOPack is designed to improve the on-page optimisation of your website. Features include: custom meta robots tags, meta robots rules for filter pages, rel meta tags for pagination, product orphaning and top sites protection.</summary>
|
10 |
+
<description>"The SEOPack module will help to improve your search engine rankings by allowing you to assign custom meta robots tags, enable rel meta tags for paginated pages, 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.
|
11 |
+
This module will eliminate several often fatal ecommerce SEO issues."</description>
|
12 |
+
<notes>- Ability to define custom robots value on sorted category pages
|
13 |
+
- Ability to define custom robots value on categories filtered by category
|
14 |
+
- Ability to define custom robots value on search pages
|
15 |
+
- Ability to define custom robots value on CMS pages
|
16 |
+
- Uninstallation script updated
|
17 |
+
- Housekeeping</notes>
|
18 |
+
<authors><author><name>Adrian Duke</name><user>adrianduke</user><email>adrian@gpmd.co.uk</email></author><author><name>Martin Dines</name><user>martindines</user><email>martin.dines@live.co.uk</email></author></authors>
|
19 |
+
<date>2014-03-14</date>
|
20 |
+
<time>10:40:12</time>
|
21 |
+
<contents><target name="magecommunity"><dir name="GPMD"><dir name="SEOPack"><dir name="Helper"><file name="Data.php" hash="82abca549cd3b0b2a6798edea5116619"/></dir><dir name="Model"><dir name="Attribute"><dir name="Source"><file name="Robots.php" hash="50d8e9f2f3e85884b5ec2cebb3222e3d"/></dir></dir><file name="Observer.php" hash="ab93adde5b1c4b9f660fb69a4ca4a970"/><file name="Paginator.php" hash="b4a213182e32f081ceff8f00517147d7"/><dir name="Product"><file name="Visibility.php" hash="c454a5115d5a63245bafbefdf8a50493"/></dir><dir name="Resource"><dir name="Eav"><dir name="Mysql4"><file name="Setup.php" hash="3e0d7b2033d5f67e49c592aa3df9cc4f"/></dir></dir></dir></dir><dir name="etc"><file name="config.xml" hash="8661862f9d14f90c8b784ca96bdea2f1"/><file name="system.xml" hash="6b354686d0cbbe13bd810a49b4737206"/></dir><dir name="sql"><dir name="seopack_setup"><file name="mysql4-install-0.1.1.php" hash="b87ea79a6da95e8782731d4d8d8ea52b"/><file name="mysql4-uninstall.php" hash="4e1f4a77fda832bc95f06eff2e0b0e63"/><file name="mysql4-upgrade-1.2.3-1.3.0.php" hash="1f1b90376bced8b694013784f9510a5f"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="GPMD_SEOPack.xml" hash="cc7942149d25a5a05bc4835ec7afa286"/></dir></target></contents>
|
22 |
<compatible/>
|
23 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
24 |
</package>
|