Zero1_Seoredirects - Version 1.0.6

Version Notes

Changed getRequestString() to getRequestUri() to capture query strings.

Download this release

Release Info

Developer Arron Moss
Extension Zero1_Seoredirects
Version 1.0.6
Comparing to
See all releases


Code changes from version 1.0.1 to 1.0.6

app/code/community/Zero1/Seoredirects/Block/Manage.php CHANGED
@@ -1,26 +1,21 @@
1
- <?php //0046a
2
- if(!extension_loaded('ionCube Loader')){$__oc=strtolower(substr(php_uname(),0,3));$__ln='ioncube_loader_'.$__oc.'_'.substr(phpversion(),0,3).(($__oc=='win')?'.dll':'.so');if(function_exists('dl')){@dl($__ln);}if(function_exists('_il_exec')){return _il_exec();}$__ln='/ioncube/'.$__ln;$__oid=$__id=realpath(ini_get('extension_dir'));$__here=dirname(__FILE__);if(strlen($__id)>1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file <b>'.__FILE__.'</b> requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the <a href="http://www.ioncube.com/lw/">ionCube Loader Wizard</a> to assist with installation.');exit(199);
3
- ?>
4
- HR+cPv80T/TLwKlvDBNYrAi1jMtxxU2+JQ6YIxwiA4WFxOy4RmJbYgI3YdkZM6i2mYsdtipH0DaQ
5
- FYmUB+SIjPGLkJ/lIPLib1dCziVlTeFQmVaWtIpN8fQyPQ2Q+ryL6L3NuHO/2jlHanhHEcaiN20g
6
- 3p0gqyUMIhLnaUXp3gEbYf1Wy5SOBG0vO5Ax8RGqEEtHDHkmTG/l3I+tYs8zeBWpZHInAPHvX8a/
7
- wwhc6rwoT1rRd50Y/HKEHaaV9BufPFTDqSfpm1WpgPvU0PCeDqfm1HWKJOuHlzO5/+A23rniREND
8
- N6kSgHlfynf/Y1CXepSSgWKXp3JSEZX0YQgRk9kGegbQi1FntJNBq5u7741EKdLXQq7zX6c2XIh9
9
- VO0Y9grWgRCHz0FjBiBUp9LEuKdCttG1zaT7w+ZiXKALwEYVT5YuSlwLORU5HMqAwQuNNdIJ5Omh
10
- wmdh5UqPFaAUN0Q2C6XKXz7eSXz019p5km3eYFEM6oanEUK7aoJRxYIls1ffFbfPv6oIveallS1m
11
- hSbyBgDqSPDuhzrPPSzSdLV2EFjXHPFGLmdv+c/56F1veGxuDKeaoBxJ/u0RWU+gH7YMB/htcU4F
12
- KJHrH60dPpOPR37fX1blA+vkxah/lGiEQ02V8B4lzLlbdTnubfgdSxDepoA6PKm0XgM96B0WaniR
13
- O3AR+uhVOk3Cr8RUg44vIfV0kwNe3AM8O7M7BRs4O5EuxosZp31813OailCBMg38+gyn5I80tivX
14
- dwxT5bpW3bAoMcXFqWEXntlPIpWz0CuQd7OBSTFzCcL2Ev1YECIBwW7T1K0HCbsAR5ZrUv5rt4gz
15
- t8cfkyvCDgrLZOpYZU2BcauLSgHBbasv4cWYEVAVqo4u/L8MPVamBTew5AGE5qDA32ClLpPQ9GW5
16
- 8rFm/YYzUVkcKvJoLHKz14gEXDd7dEdtunbL+xQHItBmoyk4kU7aa8gl0t9s3lsmPg3TUu9vxwWY
17
- yxsn1dvkb4D2XPB5BznvWEPkpAArKUU8glfX8vkjRtbxYYppZFbsRDp1uVvYOIZ7DbzvQOirYdJV
18
- OZKa6pi/xBzMVqgnwxQDIM3YyXHpO0afS9vOmVq8sM0Et7n0wqPL2TCmfDSiiqUp4dVhlHw6Pbet
19
- TysbB3DqeJx/62+jCSr8Jw7GcydWdD42LUbA/2qdpgtrksf5W92bXjjFNgdnmaTU1yf7qK6B+Ioz
20
- NtydpkKV9jlbI6rKpUlW/sUYucSjc66D/EXPEjE15DXa6NkRYO+YoJMCHehKRSb+EjqJnJTzUAf0
21
- NcJsv1FEFPgX3p0McnkB/7z1jO9GTRnA/vOJ3s9ONJLqine3uwAt2fWvNXTuWk0VzlV2/WUXEums
22
- 1GunxnkjEHlTUoZqRxhLbgKw6qoSgmeNt83fGVvHvz52RYAJnbQqFIcGeWojSktjUgbr5c5icUko
23
- 9yKhxuDawFmiXNz6T/1pRWoTkfD1T4fQUEpZ6ObyPtMrKgY9E935h+if0XhLZJ7bHlWT9O/7cKr7
24
- Zwqb9NOCiAFjrKyNzWN02CaTE64jFxiuyo6II37yEzYVANk1iyfcejAwPEZaRTTZSQzATVcrYfR0
25
- DabIm26wl6t62mSHKqbGujRYEZuR1bRi2txff8G+fs0kA0vnV1lCJPSf09Rnel04sdP+DIC1ZwiA
26
- /cel
1
+ <?php
2
+ class Zero1_Seoredirects_Block_Manage extends Mage_Adminhtml_Block_Widget_Grid_Container
3
+ {
4
+ protected $_controller = 'seoredirects';
5
+
6
+ public function __construct()
7
+ {
8
+ $this->_controller = 'manage';
9
+ $this->_blockGroup = 'seoredirects';
10
+
11
+ $this->_headerText = Mage::helper('seoredirects')->__('SEO Redirection Management');
12
+ $this->_addButton('refresh', array(
13
+ 'label' => $this->__('Refresh from Google'),
14
+ 'onclick' => "setLocation('{$this->getUrl('*/*/update')}')",
15
+ 'class' => 'refresh'
16
+ ));
17
+
18
+ parent::__construct();
19
+ $this->_removeButton('add');
20
+ }
21
+ }
 
 
 
 
 
app/code/community/Zero1/Seoredirects/Block/Manage/Grid.php CHANGED
@@ -1,47 +1,61 @@
1
- <?php //0046a
2
- if(!extension_loaded('ionCube Loader')){$__oc=strtolower(substr(php_uname(),0,3));$__ln='ioncube_loader_'.$__oc.'_'.substr(phpversion(),0,3).(($__oc=='win')?'.dll':'.so');if(function_exists('dl')){@dl($__ln);}if(function_exists('_il_exec')){return _il_exec();}$__ln='/ioncube/'.$__ln;$__oid=$__id=realpath(ini_get('extension_dir'));$__here=dirname(__FILE__);if(strlen($__id)>1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file <b>'.__FILE__.'</b> requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the <a href="http://www.ioncube.com/lw/">ionCube Loader Wizard</a> to assist with installation.');exit(199);
3
- ?>
4
- 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
- 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
- 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
- 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
- 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
- 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
- 0L+iodmgKPrw1YL7zFDqKiNgBqxYfSYymbC4ypfQd7NfAHjL/Xo6n8mHTM087PNc28IMjBbZENv6
11
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 9jq8W+wmLQhgKENsofZXydg+odPQYAy4mVdAnh04Ynty3G1RYAm3SWxW6YFkNnMW0KzV3matcbQb
19
- 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
- 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
- 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
- tdGVXF+obxjByVUG1paZWNRbHn3crLOUPEh6QaPdFsLwFTnVM+pp9vC0DbmltvSYbw3Q8SA8DZeR
23
- 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
- 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
- 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
- EnIm+xT4M9Tv88ekPgdWK697NAZEIDf4vaOxd2qzygtd/irJf508NwHjsY8qW0+8USixzizleG8e
27
- vhdfkSkp2npz/ATgaB/RJtxyPfI1rzV7nfR09vcGloqr00y4bbE43b22JIsTYDqba0vGUHxR+FVw
28
- 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
- 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
- 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
- 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
- 6rAznXGBabyGcikkc/6IsdF0ZbvGiKjOqnYPp0ZRgCFCp/IHTJ5LB/gtM8VRFUmuCMUBjzCDMnU4
33
- RAKeYOl9Gs4kJ132CX4tocUOrTajzqR7T74HWmP7kEHOshckXEw0U17FBvBkdY+Jha3OLieTSP07
34
- 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
- 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
- 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
- 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
- Q9iDhi+TpnJsSlmbxrx7ZLjw+eRDswU6tOgFmUBklxcpsoZfrgEuvUMc+uSmQw7BzdvAWXvXyvz9
39
- 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
- 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
- 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
- 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
- DAUQ934tT8wMPQC5lDBIBYpfbyXFQXjhcx2rLAlc2N3b7SIJAuFgLDnCgXS25XCbH+WpngSME+u5
44
- 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
- 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
- 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
47
- CfjAuB4Tc6UtTUkwKLQoIVcGeernify=
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Zero1_Seoredirects_Block_Manage_Grid extends Mage_Adminhtml_Block_Widget_Grid
3
+ {
4
+ public function __construct()
5
+ {
6
+ parent::__construct();
7
+ $this->setId('manageGrid');
8
+ $this->setDefaultSort('entity_id');
9
+ }
10
+
11
+ protected function _getStore()
12
+ {
13
+ $storeId = (int)$this->getRequest()->getParam('store', 0);
14
+ return Mage::app()->getStore($storeId);
15
+ }
16
+
17
+ protected function _prepareCollection()
18
+ {
19
+ $store = $this->_getStore();
20
+
21
+ $collection = Mage::getModel('seoredirects/redirection')->getCollection();
22
+
23
+ if($store->getId())
24
+ {
25
+ $collection->addFieldToFilter('store', $store->getId());
26
+ }
27
+
28
+ $this->setCollection($collection);
29
+
30
+ return parent::_prepareCollection();
31
+ }
32
+
33
+ protected function _prepareColumns()
34
+ {
35
+ $this->addColumn('entity_id', array(
36
+ 'header' => Mage::helper('catalog')->__('ID'),
37
+ 'sortable' => true,
38
+ 'width' => '60',
39
+ 'index' => 'entity_id'
40
+ ));
41
+
42
+ $this->addColumn('redirect_from', array(
43
+ 'header' => Mage::helper('catalog')->__('From'),
44
+ 'index' => 'redirect_from'
45
+ ));
46
+
47
+ $this->addColumn('redirect_to', array(
48
+ 'header' => Mage::helper('catalog')->__('To'),
49
+ 'index' => 'redirect_to'
50
+ ));
51
+
52
+ $this->addColumn('store', array(
53
+ 'header' => Mage::helper('newsletter')->__('Store'),
54
+ 'index' => 'store',
55
+ 'type' => 'options',
56
+ 'options' => Mage::getModel('adminhtml/system_store')->getStoreOptionHash()
57
+ ));
58
+
59
+ return parent::_prepareColumns();
60
+ }
61
+ }
app/code/community/Zero1/Seoredirects/Helper/Data.php CHANGED
@@ -1,13 +1,5 @@
1
- <?php //0046a
2
- if(!extension_loaded('ionCube Loader')){$__oc=strtolower(substr(php_uname(),0,3));$__ln='ioncube_loader_'.$__oc.'_'.substr(phpversion(),0,3).(($__oc=='win')?'.dll':'.so');if(function_exists('dl')){@dl($__ln);}if(function_exists('_il_exec')){return _il_exec();}$__ln='/ioncube/'.$__ln;$__oid=$__id=realpath(ini_get('extension_dir'));$__here=dirname(__FILE__);if(strlen($__id)>1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file <b>'.__FILE__.'</b> requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the <a href="http://www.ioncube.com/lw/">ionCube Loader Wizard</a> to assist with installation.');exit(199);
3
- ?>
4
- HR+cPuEcEeu0Tf+XoHolhPHoHfCBin0vdLQov9Ii3G2Q3gQj+KbuUUaVrdKh0ABtXhvAChdKd9Vl
5
- u6hKnztcPDyUEtGu1VU0OLy/f4E5ekjEmSKXol8iTpJpg9UAL289AE0nbs0u8JIt8biJWaRttw+B
6
- EW67Te12kWT60T77Y3PUlW5oY5hTikA3bXhh8ojVwnyva+P8q+57ojN6mUq5HRSDnVYTP81ozyvw
7
- 8via9E4MMBEpgkq8HS8RHaaV9BufPFTDqSfpm1WpgHzX1+cQ/EQ9gZdEteunZ6Lc/zGxtk2kM02m
8
- buEOG4mBbm1UJbT6BaZqUTwDjNcT++rJztQq55aI8stPoUCfvpF0m8GF89umtnUI1St5vv5jT3FE
9
- c0juzN/oBUYGgXWqhjBhRCVGu8ptYcx0+dKIG2yGUBEkXAbM+lxqiiMmch0b4A6ORcrtx9Ve6yOR
10
- J13LNROIGQI+I12RcdEXDisRnIdfEnsILDWUPbm0iXwfKFtmmepcLPT/tW8mHecu7bF8LXnKR4rK
11
- HJVh1hpUzWEXXBbUeUD+8CpZvtBQiqEm91/j+LhZEtyjbBD/SvMvRUuxHWQZmAhNI7J5i/fb4jMw
12
- ZB9BGE0RNfm2ymnOk5aPzmIlJWe12uep6HuSzsQV90/cs5Pc8SLBOovsyj6ZE2sLBnoZii9yVY2x
13
- APCtJ0==
1
+ <?php
2
+ class Zero1_Seoredirects_Helper_Data extends Mage_Core_Helper_Abstract
3
+ {
4
+
5
+ }
 
 
 
 
 
 
 
 
app/code/community/Zero1/Seoredirects/Helper/License.php CHANGED
@@ -1,60 +1,73 @@
1
- <?php //0046a
2
- if(!extension_loaded('ionCube Loader')){$__oc=strtolower(substr(php_uname(),0,3));$__ln='ioncube_loader_'.$__oc.'_'.substr(phpversion(),0,3).(($__oc=='win')?'.dll':'.so');if(function_exists('dl')){@dl($__ln);}if(function_exists('_il_exec')){return _il_exec();}$__ln='/ioncube/'.$__ln;$__oid=$__id=realpath(ini_get('extension_dir'));$__here=dirname(__FILE__);if(strlen($__id)>1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file <b>'.__FILE__.'</b> requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the <a href="http://www.ioncube.com/lw/">ionCube Loader Wizard</a> to assist with installation.');exit(199);
3
- ?>
4
- HR+cPuMMwqg5Dj1jH5j+QQXNQ1Lx3BPXv9nzrvQigNhXh0/5Q9O5gphXvuR7HZKtkJfo3KbN2sGI
5
- s71DggIpWHIHaQz2kk+nC1HVZ+o7b8yGGzIBhKNFGBgAnIn3svBQt/3xAEcJJbwbLRfd2Itylxhd
6
- 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
- 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
- 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
- T7IvoVBA37oxla6TZkwelctW67jRdrVSe8a6gIaKXEocJ2nEdPJzZUMF6mUud4ZweUEZadLj5mVf
10
- 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
- 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
- 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
- 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
- 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
- RIfFmqaBamOWfWMmfWa5Ub6SvqoHjQgXKXecY6DLFKp3vf9vk90MlevhrRX2MDQbOGejvQIlzei0
16
- l4p5NxNRJqURsX8gCGWdI5bhZfnVqTkxfbo+A+wn+J3bzZCqu1O4ldi/FR/TJZ3MIqJ813x1gGu6
17
- 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
- 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
- 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
- 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
- r71IO5weLBB/QZqOwupSAs2OLRcuWVMfj9W9k5fdGLmacPm/R8MH14biNioCABmS9GQlf3RJ6+7d
22
- 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
- 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
- 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
- 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
- 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
- CetspFvQ6ZUjnxAl6dePCUC6Xa1ZMvSOiiZuJOtodhoEClpbWrlPyFNmLyJ3hCZQfRPiI7S3Os6b
28
- XlCrbU2UPtVsQHCedUPJFhVOmgtuoTR9304FvSauTxAZHfWgAHcEigY83OlSWaWAC7f0hNhbX0YY
29
- 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
- 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
- 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
- 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
- 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
- MZ0C5AT1SE57QHcSBWZTgFmMJSkNANz2t6pp/fGUupe0PqD0PNakny5eR601mgZRd0a32cIUYWI/
35
- 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
- 1C3Mh7QvRHfG90E+trM4FX0YEXYHZSzkYacRxAbkLamsu5Vyst/6r8lPKOgyh7/RLhBFIZ5bPvH2
37
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 3m7FO+AYYDTeWs0gRpbCwak26RlRUWZaNCGpXGRHTp9dKSEVEvcZeypQAUM5Fd4vsqI32GJVW8Mw
49
- f/5gaSDHjzuC87pPwSJ+iRWRnGpW1JajFbtJQcXage2610W+qyRfhbl3N4a9p5Ra/1JSYrwEXEGE
50
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- mxP3Hk9/Zew/sRW9d8AfeYw+BUA513MNBhRT7xJCNSWEZAGM6nlv4OU8sZOxeVZPBqddTrxtv1R2
60
- 0RDHf1PQbO0Ph7RH1Rt8RfDsXRsPps3Q
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Zero1_Seoredirects_Helper_License extends Mage_Core_Helper_Abstract
3
+ {
4
+ private $_license_required_for_community = true;
5
+ private $_license_required_for_enterprise = true;
6
+
7
+ public function isEnterprise()
8
+ {
9
+ if(method_exists('Mage', 'getEdition'))
10
+ {
11
+ // Mage::getEdition() exists so it is EE 1.12+ or CE 1.7+
12
+ if(Mage::getEdition() == Mage::EDITION_ENTERPRISE)
13
+ return true;
14
+ } else {
15
+ // Fallback on the old version number lookup
16
+ $version = Mage::getVersionInfo();
17
+
18
+ if($version['major'] == 1 && $version['minor'] >= 7)
19
+ return true;
20
+ }
21
+
22
+ return false;
23
+ }
24
+
25
+ public function isValid($store = null)
26
+ {
27
+ $data = $this->getData($store);
28
+
29
+ if($this->isEnterprise())
30
+ {
31
+ if($this->_license_required_for_enterprise && !isset($data['enterprise']))
32
+ return false;
33
+ } else {
34
+ if($this->_license_required_for_community && !isset($data['community']))
35
+ return false;
36
+ }
37
+
38
+ return true;
39
+ }
40
+
41
+ public function getData($store = null)
42
+ {
43
+ $store = ($store === null) ? Mage::app()->getStore() : $store;
44
+
45
+ $data = array();
46
+ $module_name = preg_replace('/^Zero1_([^_]*)_Helper_License$/si', '$1', get_class($this));
47
+ $module_name = strtolower($module_name);
48
+ $serial = base64_decode($store->getConfig($module_name.'/settings/serial'));
49
+ $url = $store->getConfig('web/unsecure/base_url');
50
+
51
+ if(!empty($url) && !empty($serial))
52
+ {
53
+ $hash = hash('sha256', '$4$W8DgMGQZ$Twn84iicE6FQo7wCrxnL4Aow5/w$'.$module_name.$url, true);
54
+ $iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB);
55
+ $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
56
+ $data = @unserialize(mcrypt_decrypt(MCRYPT_BLOWFISH, $hash, $serial, MCRYPT_MODE_ECB, $iv));
57
+ $data = (!is_array($data)) ? array() : $data;
58
+ }
59
+
60
+ return $data;
61
+ }
62
+
63
+ public function getRequestURL($store = null)
64
+ {
65
+ $store = ($store === null) ? Mage::app()->getStore() : $store;
66
+
67
+ $params = array();
68
+ $params['url'] = $store->getConfig('web/unsecure/base_url');
69
+ $params['enterprise'] = ($this->isEnterprise()) ? '1' : '0';
70
+
71
+ return 'http://www.zero1.co.uk/licence/index.php?'.http_build_query($params);
72
+ }
73
+ }
app/code/community/Zero1/Seoredirects/Model/Mysql4/Redirection.php CHANGED
@@ -1,16 +1,8 @@
1
- <?php //0046a
2
- if(!extension_loaded('ionCube Loader')){$__oc=strtolower(substr(php_uname(),0,3));$__ln='ioncube_loader_'.$__oc.'_'.substr(phpversion(),0,3).(($__oc=='win')?'.dll':'.so');if(function_exists('dl')){@dl($__ln);}if(function_exists('_il_exec')){return _il_exec();}$__ln='/ioncube/'.$__ln;$__oid=$__id=realpath(ini_get('extension_dir'));$__here=dirname(__FILE__);if(strlen($__id)>1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file <b>'.__FILE__.'</b> requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the <a href="http://www.ioncube.com/lw/">ionCube Loader Wizard</a> to assist with installation.');exit(199);
3
- ?>
4
- HR+cPt8mp6VY1pL8xujPH0AwQ+sPaNnP0vFbZQEiXE2UtL9DPJUs5JanLLiwPON+sWSitWj6uYHL
5
- VNeCzh7jOOZOJzhrzhTIciZKoGGNq0H4DyKg4/S7cjvUrq/w9OIkGbOzZzUWctC1clViDjOcXw7P
6
- 3dB2cSJMwPUzuKutBN59RSu4RGrm28zxMkMaVQXad1oTgS4A7P67OyXgGy4o8fTWKcK8iKpTq7Da
7
- smcl5aYZEgTMcqCI+WB/HaaV9BufPFTDqSfpm1WpgUjVxE5rRwNgMscmzBwXr5riYeYM3LQuuyt8
8
- ch4VA45rI7ehoE9AAMV99FBCvPxNI0CWllSjvgCJWFU/09jbiM7Kz8jWJi1HIKRw2jVTWQsFTYLa
9
- KNIWnJxzYUcLjP3m0+2g74PHTcYC+ReR4zrHravBbcPdbq1iwQkyhTivmJJpj3g0y4dwaYl0ArfK
10
- E4RhpDlKv4JEv8szSCrkBunRHtHDjMKAyjSkQWAdXoZn6uJyIA/3R97ze1ytZGRpimWmumP/toCH
11
- PrNcaPStbvcBMIJd/4KpyRqh9M6dFOri+Za15CGJatsNdtn0JopxYXatV1SzkDxGWscp5YSTi8ga
12
- 0RmS3AUzQ3WLpb1n4/az8bCmoeEO269Qvpb6LoZcplZxQp9t10lrrTUs0wc2n/wabFyuYnTjUOhm
13
- IG0xHy6HAU0gTh4N/T9WIz3b568P6WCdRMibC25ad9JFWyeVtMYNQLL003rJpWJlWxGeogMtVu1k
14
- WZrhSLQKHkvQOClMLIW7ut3AhcwPbQqeDVmInwNd1RCrys7Q+fcgWFxLpfeLHcuLZy19ohsi+QCq
15
- qVldrZDe6xkjUIjY8g1adhI0hord9WddWfKDn1wuEvEMeuXVMoypPzS3A6g961nFjLtR8/1ArSq0
16
- 0BU6jkNcsya=
1
+ <?php
2
+ class Zero1_Seoredirects_Model_Mysql4_Redirection extends Mage_Core_Model_Mysql4_Abstract
3
+ {
4
+ protected function _construct()
5
+ {
6
+ $this->_init('seoredirects/redirection', 'entity_id');
7
+ }
8
+ }
 
 
 
 
 
 
 
 
app/code/community/Zero1/Seoredirects/Model/Mysql4/Redirection/Collection.php CHANGED
@@ -1,16 +1,8 @@
1
- <?php //0046a
2
- if(!extension_loaded('ionCube Loader')){$__oc=strtolower(substr(php_uname(),0,3));$__ln='ioncube_loader_'.$__oc.'_'.substr(phpversion(),0,3).(($__oc=='win')?'.dll':'.so');if(function_exists('dl')){@dl($__ln);}if(function_exists('_il_exec')){return _il_exec();}$__ln='/ioncube/'.$__ln;$__oid=$__id=realpath(ini_get('extension_dir'));$__here=dirname(__FILE__);if(strlen($__id)>1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file <b>'.__FILE__.'</b> requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the <a href="http://www.ioncube.com/lw/">ionCube Loader Wizard</a> to assist with installation.');exit(199);
3
- ?>
4
- HR+cPqSlLsMg3gnAfvJ2HZb3bRdIXSQYe8jcxAoiQYmBsxjIrN8uHFkW6YPWrNOsH2i7vornj8eH
5
- JTreolUaSKQE44/nkwCQmFfxHXBnSLwwqwlKBPXjnH/eaYfHhWnIm5EykAuzwjK4ajzmmuhKfBxi
6
- OAfuxr0D9+cCDt+7nkXjkpumxa3/E0oUaRG/isJu4oQQq4awM9iKiF0DFMxfvLPwyqpasqiuAZIL
7
- OK6DrXfJJofaMXFEXYFSHaaV9BufPFTDqSfpm1WpgJDYhxTmdnzGNSzz/Ux1l+bnn0xFE2o6NVSb
8
- z8IeCEdyA04sOZIIcMYGzamOlsCMFi2vElhuy7tx16uUznIKqgEK9Nrc7/yrkc+mN89o9bYX5hSQ
9
- op1dYcgEY12ZAclSdlMWC769ClNsQCMnbSH2PweUqCNZYWBsQshS3yrrEGicwpew6SCMUtz1712w
10
- 9UOZD5MPRgjJu3gakrGknHVtNRYdbPn5EWAa+wLl2CE6+tUGwMUqtlAqvFIdSC7I3303JAQ6IrZA
11
- J081fiVe/3ibc4lfRUt/0P2HEsKwGNZnjgxdLpNi0v/hfh4q2Kc3hZPdzyLnsxU440a+Zpqi4HB+
12
- LkzfhZiogBd1AqH9RD2nv+hNOWzjE5NAGRoiALFGcJr3MKpPI+Kjg64WAhGe/Xugux7LOwZKkQf6
13
- zqGeamD0hUlJW1X+sk0bBj6oc0CElcgaEmxRiTM9eVCw5nVD6HqBK5dls+yVuDRJM3kdKbdG6isQ
14
- 0AXiMKr/ypqUDW7sN3uj5WwATMx0bMZDCknZOQcF3Kqir0c5gB8Z0hb2Aoc3ao6YZkHp/fiQAqi/
15
- zBOGwMkjMMBZbku44TILRS+g6RPZDqU41xmP8s5+vvyowfYdTljATkLKEZQ7283vJO6Dpc61aBR5
16
- uTiP
1
+ <?php
2
+ class Zero1_Seoredirects_Model_Mysql4_Redirection_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
3
+ {
4
+ protected function _construct()
5
+ {
6
+ $this->_init('seoredirects/redirection');
7
+ }
8
+ }
 
 
 
 
 
 
 
 
app/code/community/Zero1/Seoredirects/Model/Mysql4/Setup.php CHANGED
@@ -1,13 +1,5 @@
1
- <?php //0046a
2
- if(!extension_loaded('ionCube Loader')){$__oc=strtolower(substr(php_uname(),0,3));$__ln='ioncube_loader_'.$__oc.'_'.substr(phpversion(),0,3).(($__oc=='win')?'.dll':'.so');if(function_exists('dl')){@dl($__ln);}if(function_exists('_il_exec')){return _il_exec();}$__ln='/ioncube/'.$__ln;$__oid=$__id=realpath(ini_get('extension_dir'));$__here=dirname(__FILE__);if(strlen($__id)>1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file <b>'.__FILE__.'</b> requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the <a href="http://www.ioncube.com/lw/">ionCube Loader Wizard</a> to assist with installation.');exit(199);
3
- ?>
4
- HR+cPyCZ0MpOzVb3iPcKJt5VFjwbbnSoKInIF+Pz77J4byNkS2gcFyCa4Pa5XPLXbIDIVhwCruhH
5
- frdrVT2mpQEQcXh3SjRtry67od4cW0QIFRsLVLHlQEpGXEowrETD/he+o1EZYHMKHBeiWUPQ/wWt
6
- sA6Q3/9s+yeTHMnnYMC+LPe4jQQzsh+p2Q0TPgfHFQUD2lIAzm+XBnIyBYEnzaPFfK6/BzLWddIu
7
- yyGg40aRWg8MtBY/99ep8aP97oI+AMJtJT7ASy0OCwcPP0bA8d7aozym+VEkOMk2RFyX8jc/DHS7
8
- zIZsKpbWhaZ6Davy46/C1jr8jITe2Ifyx45HwdrNZPA8iW5HpS66dqeYSPkjHMPfME4pvuv6p2ZO
9
- L/M20xxmVPd/3IcLT7KIlkvn1Ls1ntSGMAx4VNWrMwbiPj/ZSr+NThX1BNz98P/bKglgsOXeLsV4
10
- gPXDdaUB5YuZVtZdPrDe2rDknylHrgTlzaDvf3y+o7A5HOIMX0QJVtCO3upzO0CAVTAgD/5z8ZgI
11
- yt3ySTVZfnV3PgT7yE/2/gS/wINxYK/PTySc8+szwSMXzN5rYunFX+YGBg8jGQNNjjZKKoyR0XZB
12
- 0k2pCBSM3+hHVAwPa1jnc6qCdMip0Z11anKfCsmSDFKfMxQHLeBMxNDmkEdwGyn2KOvfB8V8YHoT
13
- ILlu0YeRY5Mfz2bGYRgrm6xFPYLO5BOhciJ//m==
1
+ <?php
2
+ class Zero1_Seoredirects_Model_Mysql4_Setup extends Mage_Catalog_Model_Resource_Eav_Mysql4_Setup
3
+ {
4
+ }
5
+
 
 
 
 
 
 
 
 
app/code/community/Zero1/Seoredirects/Model/Observer.php CHANGED
@@ -1,126 +1,179 @@
1
- <?php //0046a
2
- if(!extension_loaded('ionCube Loader')){$__oc=strtolower(substr(php_uname(),0,3));$__ln='ioncube_loader_'.$__oc.'_'.substr(phpversion(),0,3).(($__oc=='win')?'.dll':'.so');if(function_exists('dl')){@dl($__ln);}if(function_exists('_il_exec')){return _il_exec();}$__ln='/ioncube/'.$__ln;$__oid=$__id=realpath(ini_get('extension_dir'));$__here=dirname(__FILE__);if(strlen($__id)>1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file <b>'.__FILE__.'</b> requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the <a href="http://www.ioncube.com/lw/">ionCube Loader Wizard</a> to assist with installation.');exit(199);
3
- ?>
4
- HR+cPml3TnHvaanS403YDyuYQKdhgoH2rON/fRAirS6REQwazutjHmtnN+5LIIO3bhMoP8zqRO26
5
- v+ulc2TPz2q4+pD3/zeVTjlfvZFzE6Sj87Ns/FhK8s1Em3v86+VtFV8u3Zt3Pr2lfw6YXe9ih1qw
6
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- +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
- 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
- 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
- 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
- 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
- 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
- nxw0QZBSb/PimPMLs+xR3usoPXwbQF90wnqSfuoIXe0ouvSADZN3jV+RHay3YOKCDjafZW32er8U
21
- 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
- 7laEAzpHZLN4NKAFBIdrPe8o6LB3LLp4avYDI1Rqe4CDL8GqmGXSI73z1NJLiU8VDuBjT8zXHLEJ
23
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- +zi3xclZ+2BoMWMmSac+GufJXUEMWh7qv49ICJHVwpdcaZsW7J6vzGFls1k9PEyjVHtKXwfXStdC
37
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- EaZ6cUXXBalpmivlvUV71D4Mv/KI8Ai/IRr2ImTfytZhBtdbwZx0Xpxn52Oaeg4Lc0qCzBln60kX
56
- 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
- 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
- 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
- 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
- 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
- 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
- e66nbh+Ia5KbiFPxK2cdIcD+CF1mDtVttwa6lf3mHWm0peK2X/CdyQc+5o0FTm+JsUaQBQuzZkkx
63
- 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
- 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
- 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
- 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
- 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
- zFUGfRTrp2bEyiOBwoI15AWgsUrJOhJXYS9ZHJFmhdQhZMcEsOt5rQ0wkQGmA/k1HkzN6G+zLsgT
69
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- iuMkJQn/ltN31ZaY+kvhx3dPCmwakJSkRT8mzr70pXdFQSd0qjzU7frBoVld7DBcwsaw7kc0KBBT
84
- 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
- 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
- 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
- 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
- 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
- MczlHyH4fMW/X89yoCwPQPckFHLHJUfvrg8n2NSdpcypqF58box89EWK8vWP1s9mqJhFp6ki/T7N
90
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- tXoGSAIPE+nfLkJ5MXonBnZ4QNrfsVvWSdOqgylls232cMywxQGQ7+HJmqEWO8HVT2tFHLcbZkuV
103
- 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
- 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
- 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
- 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
- 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
- l3SPWZtd1Yjbwi9lNsR/SVmp0Yz2ESe4M3zwwmuTqdY4nzh+9Ktb1rKnoGG/L3UPHehRR0pGH1Ge
109
- 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
- 3lOWpsn1PgOzSDQGenuMS6MBU73blZxhK7ZfOyZneMSNgOvSDjquIuv6fER0JlgEVAYK3q2Kr36m
111
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 2Iam3XIbPzaNY5c1R8mVK5pxE8L+nSWekxPosyu3zxYNRYCSP2Oi9d9/lQ3BviSMSfJa+5OmOlVs
126
- BUHK9puoDR2J9h2j
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Zero1_Seoredirects_Model_Observer
3
+ {
4
+ const DEFAULT_LIMIT = 50;
5
+
6
+ function controller_front_send_response_before(Varien_Event_Observer $observer)
7
+ {
8
+ $front = $observer->getFront();
9
+ $request = $front->getRequest();
10
+
11
+ if($request->getActionName() != 'noRoute')
12
+ return; // There is a valid route, nothing to do
13
+
14
+ $redirections = Mage::getModel('seoredirects/redirection')->getCollection();
15
+ $redirections->addFieldToFilter('store', Mage::app()->getStore()->getId());
16
+ $redirections->addFieldToFilter('redirect_from', $request->getRequestUri());
17
+
18
+ foreach($redirections as $redirection)
19
+ {
20
+ header('HTTP/1.1 301 Moved Permanently');
21
+ header('Location: '.$redirection->getRedirectTo());
22
+ die();
23
+ }
24
+
25
+ // No redirections
26
+ return;
27
+ }
28
+
29
+ function updateRedirectionsCronJob()
30
+ {
31
+ $dump_path = Mage::getBaseDir('var').'/seoredirects';
32
+ if(!file_exists($dump_path))
33
+ mkdir($dump_path);
34
+
35
+ $stores = Mage::getResourceModel('core/store_collection');
36
+ $results = array();
37
+
38
+ foreach($stores as $store)
39
+ {
40
+ $results[$store->getId()] = array(
41
+ 'updated' => 0,
42
+ 'deleted' => 0,
43
+ 'added' => 0,
44
+ 'loops' => 0,
45
+ 'limitation' => '',
46
+ );
47
+
48
+ $redirections = Mage::getModel('seoredirects/redirection')->getCollection();
49
+ $redirections->addFieldToFilter('store', $store->getId());
50
+
51
+ if(!Mage::getStoreConfig('seoredirects/settings/enabled', $store->getId()))
52
+ {
53
+ // Redirects are disabled for this store, delete them all
54
+ foreach($redirections as $redirection)
55
+ {
56
+ $redirection->delete();
57
+ $results[$store->getId()]['deleted']++;
58
+ }
59
+
60
+ continue; // Do not import anything now
61
+ }
62
+
63
+ $url = Mage::getStoreConfig('seoredirects/settings/url', $store->getId());
64
+
65
+ if(empty($url))
66
+ continue; // Invalid URL, do not update the existing data
67
+
68
+ $client = new Zend_Http_Client($url);
69
+
70
+ $filename = $store->getId().'-'.time().'.csv';
71
+ touch($dump_path.'/'.$filename);
72
+
73
+ $fp = fopen($dump_path.'/'.$filename, 'r+');
74
+ fwrite($fp, $client->request()->getBody());
75
+ fseek($fp, 0);
76
+
77
+ ////////////////////////////////////////////////
78
+ // Import the new redirections
79
+ $redirects = array();
80
+
81
+ while(($data = fgetcsv($fp, 4096)) !== false)
82
+ {
83
+ if(is_array($data) && count($data) >= 2)
84
+ $redirects[$data[0]] = $data[1];
85
+ }
86
+ fclose($fp);
87
+
88
+ // Detect the limit for this store
89
+ $license_data = array();
90
+ if(Mage::helper('seoredirects/license')->isValid($store))
91
+ $license_data = Mage::helper('seoredirects/license')->getData($store);
92
+
93
+ if(isset($license_data['limit']))
94
+ {
95
+ $limit = $license_data['limit'];
96
+ } else {
97
+ $limit = self::DEFAULT_LIMIT;
98
+ }
99
+
100
+ if($limit > 0)
101
+ {
102
+ $redirects = array_slice($redirects, 0, $limit);
103
+ $results[$store->getId()]['limitation'] = 'Limited to '.$limit.' rows by your current license. <a href="'.Mage::helper('seoredirects/license')->getRequestURL($store).'" target="_blank">Click here to increase this limit</a>';
104
+ }
105
+
106
+ // Add / update the redirections
107
+ foreach($redirects as $from => $to)
108
+ {
109
+ $found = false;
110
+
111
+ foreach($redirections as $redirection)
112
+ {
113
+ if($redirection->getRedirectFrom() == $from)
114
+ {
115
+ // Existing redirection, update
116
+ $redirection->setRedirectTo($to);
117
+ $redirection->setRedirectFrom($from);
118
+ $redirection->setStore($store->getId());
119
+ $redirection->save();
120
+ $found = true;
121
+ $results[$store->getId()]['updated']++;
122
+
123
+ //echo 'Updated <b>'.$from.'</b> = <b>'.$to.'</b> into store ID <b>'.$store->getId().'</b><br/>';
124
+ }
125
+ }
126
+
127
+ if(!$found)
128
+ {
129
+ // New redirection
130
+ $redirection = Mage::getModel('seoredirects/redirection');
131
+ $redirection->setRedirectTo($to);
132
+ $redirection->setRedirectFrom($from);
133
+ $redirection->setStore($store->getId());
134
+ $redirection->save();
135
+ $results[$store->getId()]['added']++;
136
+
137
+ //echo 'Added <b>'.$from.'</b> = <b>'.$to.'</b> into store ID <b>'.$store->getId().'</b><br/>';
138
+ }
139
+ }
140
+
141
+ // Remove all the unused redirections
142
+ $redirections = Mage::getModel('seoredirects/redirection')->getCollection();
143
+ $redirections->addFieldToFilter('store', $store->getId());
144
+ foreach($redirections as $redirection)
145
+ {
146
+ if(!array_key_exists($redirection->getRedirectFrom(), $redirects))
147
+ {
148
+ //echo 'Removed <b>'.$redirection->getRedirectFrom().'</b> from store ID <b>'.$store->getId().'</b><br/>';
149
+ $redirection->delete();
150
+ $results[$store->getId()]['deleted']++;
151
+ }
152
+ }
153
+
154
+ // Make sure there are no redirection loops
155
+ $redirections = Mage::getModel('seoredirects/redirection')->getCollection();
156
+ $redirections->addFieldToFilter('store', $store->getId());
157
+ foreach($redirections as $redirectionA)
158
+ {
159
+ foreach($redirections as $redirectionB)
160
+ {
161
+ if(!$redirectionA || !$redirectionB)
162
+ continue; // Invalid rediection, been deleted?
163
+
164
+ if($redirectionA == $redirectionB)
165
+ continue;
166
+
167
+ if($redirectionA->getRedirectTo() == $redirectionB->getRedirectFrom())
168
+ {
169
+ //echo 'Removed loop <b>'.$redirection->getRedirectFrom().'</b> from store ID <b>'.$store->getId().'</b><br/>';
170
+ $redirectionA->delete();
171
+ $results[$store->getId()]['loops']++;
172
+ }
173
+ }
174
+ }
175
+ }
176
+
177
+ Mage::register('seoredirects_results', $results);
178
+ }
179
+ }
app/code/community/Zero1/Seoredirects/Model/Redirection.php CHANGED
@@ -1,15 +1,8 @@
1
- <?php //0046a
2
- if(!extension_loaded('ionCube Loader')){$__oc=strtolower(substr(php_uname(),0,3));$__ln='ioncube_loader_'.$__oc.'_'.substr(phpversion(),0,3).(($__oc=='win')?'.dll':'.so');if(function_exists('dl')){@dl($__ln);}if(function_exists('_il_exec')){return _il_exec();}$__ln='/ioncube/'.$__ln;$__oid=$__id=realpath(ini_get('extension_dir'));$__here=dirname(__FILE__);if(strlen($__id)>1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file <b>'.__FILE__.'</b> requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the <a href="http://www.ioncube.com/lw/">ionCube Loader Wizard</a> to assist with installation.');exit(199);
3
- ?>
4
- HR+cPob3S1dWgaXVwVZbEa7/vdZr4DO5QSV0bgIie/t01Fh0qRwtbkHtUBU+mOMKIlIqyawb6Dei
5
- efICwn764YS2U6/mz8E4WuLNSYE/GiNSMfBAZfCK7qJMwYlOPig70qE5C8DgqqK+UTq4mkVnUr1D
6
- o6AoOkn5JqjZP0mZSfuI+BTJQ2bY+dY8Y7wtnQTWzC6Duf1tjAyI9juREHXFzVo4BB9yNuhiOIRW
7
- PzEhrtVhinKbYi7Ve4kQHaaV9BufPFTDqSfpm1WpgRLebz774o2ML7UTCQxX8fmzkPmnNT11PI29
8
- MCmIpJQx+XqWWcWazNpy1kduudyK3yXBmmCd8TBFNHVMmOkwEMDfyOKz4EALJpgpJFIykJt+mcwB
9
- UDqngxO0KQ/qW7Enkbd8UP2XM5fLdJTnf/wa5A+lp+ezD1ISyFJarEVCFMiuLSIKiKLcaqWsrMsp
10
- rsozwNQ6fEnHep9ROVUbt2N/skM2AHWpgFzQRavt/RPgDs047V4ZvXSCE1XdMMuuH/gg2LXPc1Yw
11
- BFRgYanvdLPfHQQifjalgg0Vdi+8DILG40pcJs+UjwJaKfTeDGftEJenPq0h8t+eOjAtOGt+0NNF
12
- Ny8ekqdGlzpbesyT+bEBr/y+ktgCW4sgdKXpLy7vpKbDmMgmNfrdbK9EJW48kDcldrP3ECa9Z3h4
13
- KwT6dseBsycKutAD8fhIoQnTjUzrdPQGwtVTe2neG+lEJkzEFpN/29NeMeB8kcnlLDerdyIQmust
14
- 0bmQzX8344wdP3iUnzs694bZ/4IqXW4miiv15gtMM8ruRk1xIb3lHU26QzQfmAtxDg0a+jnzLeyb
15
- pRZE6ntKmYQ5KOmIy3C1R+Izb8E454MwAThhC0==
1
+ <?php
2
+ class Zero1_Seoredirects_Model_Redirection extends Mage_Core_Model_Abstract
3
+ {
4
+ protected function _construct()
5
+ {
6
+ $this->_init('seoredirects/redirection');
7
+ }
8
+ }
 
 
 
 
 
 
 
app/code/community/Zero1/Seoredirects/controllers/Adminhtml/Seoredirects/ManageController.php CHANGED
@@ -1,68 +1,64 @@
1
- <?php //0046a
2
- if(!extension_loaded('ionCube Loader')){$__oc=strtolower(substr(php_uname(),0,3));$__ln='ioncube_loader_'.$__oc.'_'.substr(phpversion(),0,3).(($__oc=='win')?'.dll':'.so');if(function_exists('dl')){@dl($__ln);}if(function_exists('_il_exec')){return _il_exec();}$__ln='/ioncube/'.$__ln;$__oid=$__id=realpath(ini_get('extension_dir'));$__here=dirname(__FILE__);if(strlen($__id)>1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file <b>'.__FILE__.'</b> requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the <a href="http://www.ioncube.com/lw/">ionCube Loader Wizard</a> to assist with installation.');exit(199);
3
- ?>
4
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- yKO80EUKaMvsJxFKjMUCZ+SUCf4CYbjyfYggvMZQCyoUMKmmmBqlsHgAdga5FV3rogbITA09pM4l
16
- 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
- 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
- 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
- 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
- 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
- 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
- XH9wnmhAfa/Jk3qVpRkUj96so0f/Thea5WDkbIuWOyzAjCX1aCDWAF+lnDk/KEFhp4NNinacCr+e
23
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- +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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
68
- nYtldWvL2zGtk2BqKrp2Q7S8qYWcIFDBkWspO5u=
1
+ <?php
2
+ class Zero1_Seoredirects_Adminhtml_Seoredirects_ManageController extends Mage_Adminhtml_Controller_Action
3
+ {
4
+ public function indexAction()
5
+ {
6
+ $this->_title($this->__('SEO Redirects'))
7
+ ->_title($this->__('Manage Redirects'));
8
+
9
+ $this->loadLayout();
10
+ $this->_setActiveMenu('catalog/seoredirects');
11
+ $this->renderLayout();
12
+ }
13
+
14
+ public function updateAction()
15
+ {
16
+ Mage::getModel('seoredirects/observer')->updateRedirectionsCronJob();
17
+
18
+ $results = Mage::registry('seoredirects_results');
19
+ $stores = Mage::getResourceModel('core/store_collection');
20
+ $pad = '&nbsp;&nbsp;&nbsp;&nbsp;';
21
+
22
+ foreach($stores as $store)
23
+ {
24
+ if(($results[$store->getId()]['updated'] +
25
+ $results[$store->getId()]['added'] +
26
+ $results[$store->getId()]['deleted'] +
27
+ $results[$store->getId()]['loops']) == 0)
28
+ {
29
+ continue;
30
+ }
31
+
32
+ $this->_getSession()->addSuccess(
33
+ Mage::helper('seoredirects')->__($store->getName())
34
+ );
35
+
36
+ if($results[$store->getId()]['updated'] > 0)
37
+ $this->_getSession()->addSuccess(
38
+ Mage::helper('seoredirects')->__($pad.'Updated '.$results[$store->getId()]['updated'].' redirection(s).')
39
+ );
40
+
41
+ if($results[$store->getId()]['added'] > 0)
42
+ $this->_getSession()->addSuccess(
43
+ Mage::helper('seoredirects')->__($pad.'Added '.$results[$store->getId()]['added'].' redirection(s).')
44
+ );
45
+
46
+ if($results[$store->getId()]['deleted'] > 0)
47
+ $this->_getSession()->addSuccess(
48
+ Mage::helper('seoredirects')->__($pad.'Deleted '.$results[$store->getId()]['deleted'].' redirection(s).')
49
+ );
50
+
51
+ if($results[$store->getId()]['loops'] > 0)
52
+ $this->_getSession()->addSuccess(
53
+ Mage::helper('seoredirects')->__($pad.'Deleted '.$results[$store->getId()]['loops'].' looping redirection(s).')
54
+ );
55
+
56
+ if(!empty($results[$store->getId()]['limitation']))
57
+ $this->_getSession()->addSuccess(
58
+ Mage::helper('seoredirects')->__($pad.$results[$store->getId()]['limitation'])
59
+ );
60
+ }
61
+
62
+ $this->_redirect('*/*/index');
63
+ }
64
+ }
 
 
 
 
app/code/community/Zero1/Seoredirects/etc/config.xml CHANGED
@@ -84,8 +84,8 @@
84
  <default>
85
  <seoredirects>
86
  <settings>
87
- <seoredirects_enabled>0</seoredirects_enabled>
88
- <seoredirects_url></seoredirects_url>
89
  </settings>
90
  </seoredirects>
91
  </default>
84
  <default>
85
  <seoredirects>
86
  <settings>
87
+ <enabled>0</enabled>
88
+ <url></url>
89
  </settings>
90
  </seoredirects>
91
  </default>
app/code/community/Zero1/Seoredirects/etc/system.xml CHANGED
@@ -16,7 +16,7 @@
16
  <show_in_website>1</show_in_website>
17
  <show_in_store>1</show_in_store>
18
  <fields>
19
- <seoredirects_enabled translate="label">
20
  <label>Enabled</label>
21
  <frontend_type>select</frontend_type>
22
  <source_model>adminhtml/system_config_source_yesno</source_model>
@@ -24,9 +24,9 @@
24
  <show_in_default>0</show_in_default>
25
  <show_in_website>0</show_in_website>
26
  <show_in_store>1</show_in_store>
27
- </seoredirects_enabled>
28
 
29
- <seoredirects_url translate="label">
30
  <label>Google Docs URL</label>
31
  <frontend_type>text</frontend_type>
32
  <sort_order>1</sort_order>
@@ -34,9 +34,9 @@
34
  <show_in_website>0</show_in_website>
35
  <show_in_store>1</show_in_store>
36
  <comment>The above URL will be downloaded into Magento at 2am every morning</comment>
37
- </seoredirects_url>
38
 
39
- <seoredirects_serial translate="label">
40
  <label>Serial</label>
41
  <frontend_type>textarea</frontend_type>
42
  <sort_order>2</sort_order>
@@ -44,7 +44,7 @@
44
  <show_in_website>1</show_in_website>
45
  <show_in_store>0</show_in_store>
46
  <comment><![CDATA[Visit <a href="http://www.zero1.co.uk/" target="_blank">http://www.zero1.co.uk</a> if you require a serial.]]></comment>
47
- </seoredirects_serial>
48
  </fields>
49
  </settings>
50
  </groups>
16
  <show_in_website>1</show_in_website>
17
  <show_in_store>1</show_in_store>
18
  <fields>
19
+ <enabled translate="label">
20
  <label>Enabled</label>
21
  <frontend_type>select</frontend_type>
22
  <source_model>adminhtml/system_config_source_yesno</source_model>
24
  <show_in_default>0</show_in_default>
25
  <show_in_website>0</show_in_website>
26
  <show_in_store>1</show_in_store>
27
+ </enabled>
28
 
29
+ <url translate="label">
30
  <label>Google Docs URL</label>
31
  <frontend_type>text</frontend_type>
32
  <sort_order>1</sort_order>
34
  <show_in_website>0</show_in_website>
35
  <show_in_store>1</show_in_store>
36
  <comment>The above URL will be downloaded into Magento at 2am every morning</comment>
37
+ </url>
38
 
39
+ <serial translate="label">
40
  <label>Serial</label>
41
  <frontend_type>textarea</frontend_type>
42
  <sort_order>2</sort_order>
44
  <show_in_website>1</show_in_website>
45
  <show_in_store>0</show_in_store>
46
  <comment><![CDATA[Visit <a href="http://www.zero1.co.uk/" target="_blank">http://www.zero1.co.uk</a> if you require a serial.]]></comment>
47
+ </serial>
48
  </fields>
49
  </settings>
50
  </groups>
app/code/community/Zero1/Seoredirects/sql/seoredirects_setup/mysql4-install-1.0.0.php CHANGED
@@ -1,19 +1,19 @@
1
- <?php //0046a
2
- if(!extension_loaded('ionCube Loader')){$__oc=strtolower(substr(php_uname(),0,3));$__ln='ioncube_loader_'.$__oc.'_'.substr(phpversion(),0,3).(($__oc=='win')?'.dll':'.so');if(function_exists('dl')){@dl($__ln);}if(function_exists('_il_exec')){return _il_exec();}$__ln='/ioncube/'.$__ln;$__oid=$__id=realpath(ini_get('extension_dir'));$__here=dirname(__FILE__);if(strlen($__id)>1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file <b>'.__FILE__.'</b> requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the <a href="http://www.ioncube.com/lw/">ionCube Loader Wizard</a> to assist with installation.');exit(199);
3
- ?>
4
- HR+cPuAxBa6sWfDsMm+xOfpnpZ9/y0IuZXdF9UTBqN2mKkceya67f0UGLIKc0U0ilyGF4EJu8LrO
5
- OZbSc7QCmp1yvZFSU4Pd2/mTTcZWPTUnV8dCkVLuPgTYIiCt/kFyv+/TtHDQkQ8FrqlRZF3u+Zt8
6
- YXQsUyQfldWNeXuGZpDYWfxC+YE96XnUgcdoFS3n1IqELXzxPVt1D0ScoRNaiciQWaBf2Pq+8obC
7
- XsFmUGGperw2KuQa520k+7v6IHyalYbazqtHodF063Efi69Nye+aeWEsPhmU3XeUN5l/aDdSrWIv
8
- xZIrN/4f1nQTK/7FzxzpDUPqf9K92F4IeUv0HCQgNLVwVoGMgUpq9KODK0dlm+9YZ7QemCw17hB2
9
- DKTF+Ko4iz/imLdiOfQ3GWh02dNA0L0Q9YchCKzmpEqQLuHVMyiN3FHtrwGL+hsoOeALHCkIFsir
10
- hnJCQKLLopV9oRjuacWhQlaen9sspcFTnt9hHS8t9Ene2ZjgEvtuQlNFNNqsKvenoiuBXIU4aYVr
11
- DNiAMNNtq1gHURTsI4ii4+gy+FeJGWoFYXklJ22cnUGoINB8swwK6DWetZ98G54rTx2VH4QBQafH
12
- +aj6QxJP2IBZEYTxb4haKfDS501HLIkm41nrKKa0ZNr9ZSX9lQvl3sFborG5T6p5CFXwo7iYNkFC
13
- wtCxt3e13E1cbUG9qsHQTqlTpW5PVYKWp3lXZniWA3iYyeJ6ctbv0c3lasb8GRXs23P6Ii+r+4T7
14
- QH9x94PHzkgY56NV4hbUx7frj+JQTyHn2Bgeo+FBHlr25RuQglFrMUbaVKtEHcfVkRGdKSCMx6Cr
15
- gV5u3flmqSVSuFhElers0Eb2rkTCxDA20WKDKpOKQ4APX9pxCe7kFaAHIupH/hOE+miIIjkt6g4L
16
- fOTcEX3Z46JB2oONRawKU8TNoiqUNFG93qsIyAqxvCfKhXBUJCxbk5HlsPoj7Ouu2UE/v41ja3sx
17
- 5SDHf8BO15iXZH/+zN8/1T0A+fdDzIslnLCYh4TCb5Od9+0qwOSnVNk5qV/c9OB5VJ8/ZkI63qcy
18
- vRvBdfgknnbxzlO1zr9zPfRE9tLrzau74/2TZzSB1SHVAazbC7HKx4HFjHcM2umwQ18U+8Krc6G+
19
- LOCAyvgZmjrbCWVhacdeWEBjUtdWdgPwGyAadgorHMp3
1
+ <?php
2
+ $installer = $this;
3
+
4
+ $installer->startSetup();
5
+
6
+ $installer->run("
7
+
8
+ DROP TABLE IF EXISTS {$this->getTable('zero1_seoredirects_redirection')};
9
+ CREATE TABLE {$this->getTable('zero1_seoredirects_redirection')} (
10
+ `entity_id` int(11) unsigned NOT NULL auto_increment,
11
+ `redirect_from` varchar(2047) NOT NULL,
12
+ `redirect_to` varchar(2047) NOT NULL,
13
+ `store` int(4) NOT NULL,
14
+ PRIMARY KEY (`entity_id`)
15
+ ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
16
+
17
+ ");
18
+
19
+ $installer->endSetup();
app/code/community/Zero1/Seoredirects/sql/seoredirects_setup/mysql4-install-1.0.1.php CHANGED
@@ -1,19 +1,19 @@
1
- <?php //0046a
2
- if(!extension_loaded('ionCube Loader')){$__oc=strtolower(substr(php_uname(),0,3));$__ln='ioncube_loader_'.$__oc.'_'.substr(phpversion(),0,3).(($__oc=='win')?'.dll':'.so');if(function_exists('dl')){@dl($__ln);}if(function_exists('_il_exec')){return _il_exec();}$__ln='/ioncube/'.$__ln;$__oid=$__id=realpath(ini_get('extension_dir'));$__here=dirname(__FILE__);if(strlen($__id)>1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file <b>'.__FILE__.'</b> requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the <a href="http://www.ioncube.com/lw/">ionCube Loader Wizard</a> to assist with installation.');exit(199);
3
- ?>
4
- HR+cPqhYCcx5I8T1X5QdJTSYORgyUABbcdCZGeAiMUBMhaD3yVq7Py7ghw2iEMr9+2sZzRq3e+Cp
5
- r9oePyYuhKoc+ztuZHNnjQ8l+wrlbQBnQ4fNEJheC3AiqyRtrjpxGc9txBE5sWVdFZ68JCbklkT6
6
- Iihe+BbWMUxfNNMgRRD7omqnVYiVZ+Ce+RaS4SSuJIEgaiZHll10XWN/Ybn1vFmaAwFnnA0eAX5G
7
- to9+/jfmxdwRbu6a8ngxHaaV9BufPFTDqSfpm1WpgGXhK9j5GYdFZPaZs0vwhOeoZoLcDVGOr1gK
8
- prSAwW2eb8TR4w4KYa3emeUZVruuKSo2RWrkCtV3N4g6HwvCbuu+JPYpmTb9jUmCgefycpPQjYcY
9
- ZSukS1EpRWaJVbCpvicuHn7IDq4cnwy5eXVx/VTBu8NNG08qW0061Ld902m2u73mq7gfe2L+NEGa
10
- KRbrEe/VA0ibSF+WSCdKCXeqLnwLaX07JAdT2zSzrYax1egFTlZg8/DLYcyx3HBk/0MTB4UHcKgX
11
- nxHQ0UR4MbKOOAN4oSCL3xGQqholHsvCOuV6jr++zIK13tF8hpDyJGwvdm67j6KYXBCuN9pftuSe
12
- t/+lVHwc6awSZqJDXT3wl10a0m1NgzEsEKMSbzqkUtGZlms2YAaOhqHEIdsseKmC0uyhpf/rAzci
13
- 2zf6nNg05uoCGdAsniePRAyf5F1J7kTppl+Jua4H/duwAltYP5sSqP53NTsdgOlVEDTVagchhgp7
14
- DGF4O09KecCdIC8qB5IJb7OvGQP9dBmxru+FhUfeOYhwErhwEZatLrUYl2ZpRWsMNeG3rLdMMC3O
15
- gOTiXCEfAlhJnWpgXIDLNlpmGoVpgIPwa5t9UkU+oV9y54LFFt9Cl/NOpQRwy8CZ7L07I77ZXDTG
16
- 0ui5O8Zqg8weK4yaLaScmR6k1klXZXe5xac9TD+lqkKDEUm9ZY6vdwaK3d1Ce1x2BvRLL0YLRbe3
17
- O59iNf9OW7Fp5gWHW5fZ8pthdO8rJ8dNOR6NatDsQ5EmVDyx81XpIqyM/5gnAz6vVEnso2YzhCe6
18
- dmL57FA0YxjJHfuSKgudyuDCsguJVFKJJ50BIizQtoEnnoeoce5vDMfFbzn3zkSfTLEDxibB1JuM
19
- EOmvoYBwAx6omF8K5TSDpBX0TJab6dhPQ/gJIvJzmV8QriG2wQKTGkWt
1
+ <?php
2
+ $installer = $this;
3
+
4
+ $installer->startSetup();
5
+
6
+ $installer->run("
7
+
8
+ DROP TABLE IF EXISTS {$this->getTable('zero1_seoredirects_redirection')};
9
+ CREATE TABLE {$this->getTable('zero1_seoredirects_redirection')} (
10
+ `entity_id` int(11) unsigned NOT NULL auto_increment,
11
+ `redirect_from` varchar(2047) NOT NULL,
12
+ `redirect_to` varchar(2047) NOT NULL,
13
+ `store` int(4) NOT NULL,
14
+ PRIMARY KEY (`entity_id`)
15
+ ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
16
+
17
+ ");
18
+
19
+ $installer->endSetup();
package.xml CHANGED
@@ -1,18 +1,18 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Zero1_Seoredirects</name>
4
- <version>1.0.1</version>
5
  <stability>stable</stability>
6
  <license uri="http://shop.zero1.co.uk/LICENSE.txt">Commercial</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Manage you SEO redirects using a Google Doc</summary>
10
  <description>Manage you SEO redirects using a Google Doc</description>
11
- <notes>Added enterprise support.</notes>
12
  <authors><author><name>Arron Moss</name><user>zero1limited</user><email>arron.moss@zero1.co.uk</email></author></authors>
13
- <date>2012-06-06</date>
14
- <time>15:49:43</time>
15
- <contents><target name="magecommunity"><dir name="Zero1"><dir name="Seoredirects"><dir name="Block"><dir name="Manage"><file name="Grid.php" hash="b06399e81b30ef592805277595061b38"/></dir><file name="Manage.php" hash="1ed89ca5e60aeec11a5c225bcce8e124"/></dir><dir name="Helper"><file name="Data.php" hash="36474aca2c8e7dce3f30c398bd9c0ce0"/><file name="License.php" hash="f3a07c022c7320f4bc54e0924987b033"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Redirection"><file name="Collection.php" hash="73bf6b8f2ddff49dac520a6f71f72502"/></dir><file name="Redirection.php" hash="21d829342e13727de44bd3c821054bd9"/><file name="Setup.php" hash="e97a5f05e8459f367c14e98e7a0b03c6"/></dir><file name="Observer.php" hash="68a7421e20114ab36189c652126833a9"/><file name="Redirection.php" hash="8d26f395bf5b33679b032c160152e24a"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Seoredirects"><file name="ManageController.php" hash="bf497a1ce5f202abd024a5736a0e8a9a"/></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="7e8d3a4c8dff9b4df9f380c284225393"/><file name="config.xml" hash="ae97954390f310a297c9318763779dae"/><file name="system.xml" hash="f57542075fa866da0b34f1e93f7627c1"/></dir><dir name="sql"><dir name="seoredirects_setup"><file name="mysql4-install-1.0.0.php" hash="918bc1dee6bb2388e78b7346929916c9"/><file name="mysql4-install-1.0.1.php" hash="918bc1dee6bb2388e78b7346929916c9"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Zero1_Seoredirects.xml" hash="dd176346dbb2abf0e20d8ea087abe2ce"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="seoredirects.xml" hash="84e2381a4d12eb22fa5e6b5b092ddef7"/></dir></dir></dir></dir></target></contents>
16
  <compatible/>
17
- <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php><extension><name>ionCube Loader</name><min></min><max></max></extension><extension><name>mcrypt</name><min></min><max></max></extension></required></dependencies>
18
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Zero1_Seoredirects</name>
4
+ <version>1.0.6</version>
5
  <stability>stable</stability>
6
  <license uri="http://shop.zero1.co.uk/LICENSE.txt">Commercial</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Manage you SEO redirects using a Google Doc</summary>
10
  <description>Manage you SEO redirects using a Google Doc</description>
11
+ <notes>Changed getRequestString() to getRequestUri() to capture query strings.</notes>
12
  <authors><author><name>Arron Moss</name><user>zero1limited</user><email>arron.moss@zero1.co.uk</email></author></authors>
13
+ <date>2012-09-05</date>
14
+ <time>11:21:55</time>
15
+ <contents><target name="magecommunity"><dir name="Zero1"><dir name="Seoredirects"><dir name="Block"><dir name="Manage"><file name="Grid.php" hash="b06399e81b30ef592805277595061b38"/></dir><file name="Manage.php" hash="1ed89ca5e60aeec11a5c225bcce8e124"/></dir><dir name="Helper"><file name="Data.php" hash="36474aca2c8e7dce3f30c398bd9c0ce0"/><file name="License.php" hash="479affaec1ba20aa6b916dec4e055b4b"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Redirection"><file name="Collection.php" hash="73bf6b8f2ddff49dac520a6f71f72502"/></dir><file name="Redirection.php" hash="21d829342e13727de44bd3c821054bd9"/><file name="Setup.php" hash="e97a5f05e8459f367c14e98e7a0b03c6"/></dir><file name="Observer.php" hash="3aca40cf7cb66d1a449fb9861fac0029"/><file name="Redirection.php" hash="8d26f395bf5b33679b032c160152e24a"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Seoredirects"><file name="ManageController.php" hash="bf497a1ce5f202abd024a5736a0e8a9a"/></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="7e8d3a4c8dff9b4df9f380c284225393"/><file name="config.xml" hash="47fc4b68738ae8fc9e171ea8e1190fb8"/><file name="system.xml" hash="063dab03c71e04400c1f469b4f15ad61"/></dir><dir name="sql"><dir name="seoredirects_setup"><file name="mysql4-install-1.0.0.php" hash="918bc1dee6bb2388e78b7346929916c9"/><file name="mysql4-install-1.0.1.php" hash="918bc1dee6bb2388e78b7346929916c9"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Zero1_Seoredirects.xml" hash="dd176346dbb2abf0e20d8ea087abe2ce"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="seoredirects.xml" hash="84e2381a4d12eb22fa5e6b5b092ddef7"/></dir></dir></dir></dir></target></contents>
16
  <compatible/>
17
+ <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
18
  </package>