Version Notes
Download this release
Release Info
Developer | Alan Storm |
Extension | System_Configuration_Search |
Version | 0.7.0 |
Comparing to | |
See all releases |
Code changes from version 0.6.3 to 0.7.0
- app/code/{local → community}/Alanstormdotcom/Systemsearch/Block/Searchresults.php +34 -34
- app/code/community/Alanstormdotcom/Systemsearch/Block/Template.php +48 -0
- app/code/{local → community}/Alanstormdotcom/Systemsearch/Helper/Data.php +31 -32
- app/code/community/Alanstormdotcom/Systemsearch/Helper/Jsonconfigsearch.php +127 -0
- app/code/{local/Alanstormdotcom/Systemsearch/Block/Template.php → community/Alanstormdotcom/Systemsearch/Helper/Simplexml.php} +41 -34
- app/code/community/Alanstormdotcom/Systemsearch/Model/Configsearch.php +153 -0
- app/code/community/Alanstormdotcom/Systemsearch/Model/Observer.php +60 -0
- app/code/{local → community}/Alanstormdotcom/Systemsearch/controllers/Adminhtml/AlanstormdotcomsystemsearchController.php +1 -1
- app/code/{local → community}/Alanstormdotcom/Systemsearch/etc/config.xml +1 -1
- app/code/{local → community}/Alanstormdotcom/Systemsearch/images/left.gif +0 -0
- app/code/{local → community}/Alanstormdotcom/Systemsearch/images/right.gif +0 -0
- app/code/{local → community}/Alanstormdotcom/Systemsearch/phtml/prototype.phtml +0 -0
- app/code/{local → community}/Alanstormdotcom/Systemsearch/phtml/results.phtml +0 -0
- app/code/{local → community}/Alanstormdotcom/Systemsearch/phtml/searchform.phtml +0 -0
- app/code/local/Alanstormdotcom/Systemsearch/Helper/Jsonconfigsearch.php +0 -127
- app/code/local/Alanstormdotcom/Systemsearch/Helper/Simplexml.php +0 -55
- app/code/local/Alanstormdotcom/Systemsearch/Model/Configsearch.php +0 -153
- app/code/local/Alanstormdotcom/Systemsearch/Model/Observer.php +0 -60
- app/design/adminhtml/default/default/images/alanstormdotcom/left.gif +0 -0
- app/design/adminhtml/default/default/images/alanstormdotcom/right.gif +0 -0
- app/etc/modules/Alanstormdotcom_Systemsearch.xml +1 -1
- package.xml +1 -17
app/code/{local → community}/Alanstormdotcom/Systemsearch/Block/Searchresults.php
RENAMED
@@ -3,7 +3,7 @@
|
|
3 |
* Open Source Initiative OSI - The MIT License (MIT):Licensing
|
4 |
*
|
5 |
* The MIT License (MIT)
|
6 |
-
* Copyright (c) 2009 -
|
7 |
*
|
8 |
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
9 |
*
|
@@ -11,36 +11,36 @@
|
|
11 |
*
|
12 |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
13 |
*/
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
3 |
* Open Source Initiative OSI - The MIT License (MIT):Licensing
|
4 |
*
|
5 |
* The MIT License (MIT)
|
6 |
+
* Copyright (c) 2009 - 2013 Pulse Storm LLC
|
7 |
*
|
8 |
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
9 |
*
|
11 |
*
|
12 |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
13 |
*/
|
14 |
+
class Alanstormdotcom_Systemsearch_Block_Searchresults extends Alanstormdotcom_Systemsearch_Block_Template
|
15 |
+
{
|
16 |
+
protected $_resultsArray;
|
17 |
+
|
18 |
+
const ARROW_SEP = ' <span style="font-family:fixed">-></span> ';
|
19 |
+
public function __construct()
|
20 |
+
{
|
21 |
+
$this->setTemplate('results.phtml');
|
22 |
+
}
|
23 |
+
|
24 |
+
public function addResultsArray($array)
|
25 |
+
{
|
26 |
+
$array = array_unique($array);
|
27 |
+
sort($array);
|
28 |
+
$this->assignResultsArray($array);
|
29 |
+
return $this;
|
30 |
+
}
|
31 |
+
|
32 |
+
protected function assignResultsArray($array)
|
33 |
+
{
|
34 |
+
$this->_resultsArray = $array;
|
35 |
+
}
|
36 |
+
|
37 |
+
protected function fetchResultsArray()
|
38 |
+
{
|
39 |
+
return $this->_resultsArray;
|
40 |
+
}
|
41 |
+
|
42 |
+
protected function fetchStyledResultsArray()
|
43 |
+
{
|
44 |
+
return str_replace('/',self::ARROW_SEP,$this->fetchResultsArray());
|
45 |
+
}
|
46 |
+
}
|
app/code/community/Alanstormdotcom/Systemsearch/Block/Template.php
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Open Source Initiative OSI - The MIT License (MIT):Licensing
|
4 |
+
*
|
5 |
+
* The MIT License (MIT)
|
6 |
+
* Copyright (c) 2009 - 2013 Pulse Storm LLC
|
7 |
+
*
|
8 |
+
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
9 |
+
*
|
10 |
+
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
11 |
+
*
|
12 |
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
13 |
+
*/
|
14 |
+
class Alanstormdotcom_Systemsearch_Block_Template extends Mage_Core_Block_Template
|
15 |
+
{
|
16 |
+
protected function _checkValidScriptPath($scriptPath)
|
17 |
+
{
|
18 |
+
$paths_to_check = array(Mage::getBaseDir('design'),Mage::getModuleDir('', 'Alanstormdotcom_Systemsearch'));
|
19 |
+
$valid = false;
|
20 |
+
foreach($paths_to_check as $path)
|
21 |
+
{
|
22 |
+
if(strpos($scriptPath, realpath($path)) === 0)
|
23 |
+
{
|
24 |
+
$valid = true;
|
25 |
+
}
|
26 |
+
}
|
27 |
+
return $valid;
|
28 |
+
}
|
29 |
+
|
30 |
+
public function setScriptPath($dir)
|
31 |
+
{
|
32 |
+
$scriptPath = realpath($dir);
|
33 |
+
if ($this->_checkValidScriptPath($scriptPath)) {
|
34 |
+
$this->_viewDir = $dir;
|
35 |
+
} else {
|
36 |
+
Mage::log('Not valid script path:' . $dir, Zend_Log::CRIT, null, null, true);
|
37 |
+
}
|
38 |
+
return $this;
|
39 |
+
}
|
40 |
+
|
41 |
+
public function fetchView($fileName)
|
42 |
+
{
|
43 |
+
//ignores file name, just uses a simple include with template name
|
44 |
+
$this->setScriptPath(Mage::getConfig()->getModuleDir('','Alanstormdotcom_Systemsearch') . '/phtml');
|
45 |
+
return parent::fetchView($this->getTemplate());
|
46 |
+
}
|
47 |
+
|
48 |
+
}
|
app/code/{local → community}/Alanstormdotcom/Systemsearch/Helper/Data.php
RENAMED
@@ -3,7 +3,7 @@
|
|
3 |
* Open Source Initiative OSI - The MIT License (MIT):Licensing
|
4 |
*
|
5 |
* The MIT License (MIT)
|
6 |
-
* Copyright (c) 2009 -
|
7 |
*
|
8 |
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
9 |
*
|
@@ -11,34 +11,33 @@
|
|
11 |
*
|
12 |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
13 |
*/
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
3 |
* Open Source Initiative OSI - The MIT License (MIT):Licensing
|
4 |
*
|
5 |
* The MIT License (MIT)
|
6 |
+
* Copyright (c) 2009 - 2013 Pulse Storm LLC
|
7 |
*
|
8 |
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
9 |
*
|
11 |
*
|
12 |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
13 |
*/
|
14 |
+
class Alanstormdotcom_Systemsearch_Helper_Data extends Mage_Core_Helper_Abstract
|
15 |
+
{
|
16 |
+
public function reverseTranslate($word)
|
17 |
+
{
|
18 |
+
$translated = $this->__($word);
|
19 |
+
$reverse_legend = array_flip(Mage::app()->getTranslator()->getData());
|
20 |
+
if(array_key_exists($translated, $reverse_legend))
|
21 |
+
{
|
22 |
+
return $reverse_legend[$translated];
|
23 |
+
}
|
24 |
+
return $word;
|
25 |
+
}
|
26 |
+
|
27 |
+
public function isModuleOutputEnabled($moduleName = null)
|
28 |
+
{
|
29 |
+
if(is_callable(array(Mage::helper('core'),'isModuleOutputEnabled')))
|
30 |
+
{
|
31 |
+
return parent::isModuleOutputEnabled();
|
32 |
+
}
|
33 |
+
|
34 |
+
if ($moduleName === null) {
|
35 |
+
$moduleName = $this->_getModuleName();
|
36 |
+
}
|
37 |
+
if (Mage::getStoreConfigFlag('advanced/modules_disable_output/' . $moduleName)) {
|
38 |
+
return false;
|
39 |
+
}
|
40 |
+
return true;
|
41 |
+
}
|
42 |
+
}
|
43 |
+
|
|
app/code/community/Alanstormdotcom/Systemsearch/Helper/Jsonconfigsearch.php
ADDED
@@ -0,0 +1,127 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Open Source Initiative OSI - The MIT License (MIT):Licensing
|
4 |
+
*
|
5 |
+
* The MIT License (MIT)
|
6 |
+
* Copyright (c) 2009 - 2013 Pulse Storm LLC
|
7 |
+
*
|
8 |
+
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
9 |
+
*
|
10 |
+
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
11 |
+
*
|
12 |
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
13 |
+
*/
|
14 |
+
class Alanstormdotcom_Systemsearch_Helper_Jsonconfigsearch extends Mage_Core_Helper_Abstract
|
15 |
+
{
|
16 |
+
public function prepareAndSendResponse($nodes, $terms)
|
17 |
+
{
|
18 |
+
$response = new stdClass();
|
19 |
+
$response->responseText = array();
|
20 |
+
$response->results = array();
|
21 |
+
$response->search_terms = $terms;
|
22 |
+
$helper = Mage::helper('adminhtml');
|
23 |
+
foreach($nodes as $type=>$all_of_type)
|
24 |
+
{
|
25 |
+
foreach($all_of_type as $value)
|
26 |
+
{
|
27 |
+
$value = $this->fetchSimpleXmlHelper()->switchFromCommentToLabel($value);
|
28 |
+
|
29 |
+
if($type == Alanstormdotcom_Systemsearch_Model_Configsearch::TYPE_SYSTEM_CONFIG_SECTION)
|
30 |
+
{
|
31 |
+
$response->responseText[] = 'Configuration/' . (string) $value;
|
32 |
+
|
33 |
+
$result = new stdClass();
|
34 |
+
$result->found = true;
|
35 |
+
$result->found_type = 'nav'; //other option is 'group'
|
36 |
+
$result->found_label = $helper->__((string) $value);
|
37 |
+
$result->type = $type;
|
38 |
+
$response->results[] = $result;
|
39 |
+
}
|
40 |
+
else if($type == Alanstormdotcom_Systemsearch_Model_Configsearch::TYPE_SYSTEM_CONFIG_GROUP)
|
41 |
+
{
|
42 |
+
$result = new stdClass();
|
43 |
+
$result->found = true;
|
44 |
+
$result->found_type = 'group'; //other option is 'group'
|
45 |
+
$result->found_label = $helper->__((string) $value);
|
46 |
+
$label_group = $result->found_label;
|
47 |
+
$result->type = $type;
|
48 |
+
$result->path = $this->fetchSimpleXmlHelper()->getPathExpression($value);
|
49 |
+
|
50 |
+
$response->results[] = $result;
|
51 |
+
|
52 |
+
//hop up three nodes to get the nav section
|
53 |
+
$parent = $this->fetchSimpleXmlHelper()->getParentNode($value);
|
54 |
+
$parent = $this->fetchSimpleXmlHelper()->getParentNode($parent);
|
55 |
+
$parent = $this->fetchSimpleXmlHelper()->getParentNode($parent);
|
56 |
+
$result = new stdClass();
|
57 |
+
$result->found = true;
|
58 |
+
$result->found_type = 'nav'; //other option is 'group'
|
59 |
+
$result->found_label = $helper->__((string) $parent->label);
|
60 |
+
$label_nav = $result->found_label;
|
61 |
+
$result->type = $type;
|
62 |
+
$response->results[] = $result;
|
63 |
+
|
64 |
+
//and also point out the nav
|
65 |
+
$response->responseText[] = 'Configuration/' .
|
66 |
+
$label_nav .
|
67 |
+
'/' .
|
68 |
+
$label_group .
|
69 |
+
'';
|
70 |
+
}
|
71 |
+
else if($type == Alanstormdotcom_Systemsearch_Model_Configsearch::TYPE_SYSTEM_CONFIG_FIELD)
|
72 |
+
{
|
73 |
+
//hop up to group
|
74 |
+
$parent = $this->fetchSimpleXmlHelper()->getParentNode($value);
|
75 |
+
$parent = $this->fetchSimpleXmlHelper()->getParentNode($parent);
|
76 |
+
$parent = $this->fetchSimpleXmlHelper()->getParentNode($parent);
|
77 |
+
|
78 |
+
$result = new stdClass();
|
79 |
+
$result->found = true;
|
80 |
+
$result->found_type = 'group'; //other option is 'group'
|
81 |
+
$result->found_label = $helper->__((string) $parent->label);
|
82 |
+
$label_group = $result->found_label;
|
83 |
+
$result->type = $type;
|
84 |
+
$response->results[] = $result;
|
85 |
+
|
86 |
+
// //hope up to section
|
87 |
+
$parent = $this->fetchSimpleXmlHelper()->getParentNode($parent);
|
88 |
+
$parent = $this->fetchSimpleXmlHelper()->getParentNode($parent);
|
89 |
+
|
90 |
+
$result = new stdClass();
|
91 |
+
$result->found = true;
|
92 |
+
$result->found_type = 'nav'; //other option is 'group'
|
93 |
+
$result->found_label = $helper->__((string) $parent->label);
|
94 |
+
$label_nav = $result->found_label;
|
95 |
+
$result->type = $type;
|
96 |
+
$response->results[] = $result;
|
97 |
+
|
98 |
+
$response->responseText[] = 'Configuration/' .
|
99 |
+
$label_nav .
|
100 |
+
'/' .
|
101 |
+
$label_group .
|
102 |
+
'/' .
|
103 |
+
(string) $value;
|
104 |
+
}
|
105 |
+
}
|
106 |
+
}
|
107 |
+
|
108 |
+
$response->responseText = $this->fetchLayout()->createBlock('alanstormdotcomsystemsearch/searchresults')
|
109 |
+
->addResultsArray($response->responseText)
|
110 |
+
->toHtml();
|
111 |
+
|
112 |
+
header('Content-Type: application/json');
|
113 |
+
echo json_encode($response);
|
114 |
+
exit;
|
115 |
+
}
|
116 |
+
|
117 |
+
protected function fetchSimpleXmlHelper()
|
118 |
+
{
|
119 |
+
return Mage::helper('alanstormdotcomsystemsearch/simplexml');
|
120 |
+
}
|
121 |
+
|
122 |
+
private function fetchLayout()
|
123 |
+
{
|
124 |
+
return Mage::getSingleton('core/layout');;
|
125 |
+
}
|
126 |
+
|
127 |
+
}
|
app/code/{local/Alanstormdotcom/Systemsearch/Block/Template.php → community/Alanstormdotcom/Systemsearch/Helper/Simplexml.php}
RENAMED
@@ -3,7 +3,7 @@
|
|
3 |
* Open Source Initiative OSI - The MIT License (MIT):Licensing
|
4 |
*
|
5 |
* The MIT License (MIT)
|
6 |
-
* Copyright (c) 2009 -
|
7 |
*
|
8 |
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
9 |
*
|
@@ -11,38 +11,45 @@
|
|
11 |
*
|
12 |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
13 |
*/
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
$valid = false;
|
20 |
-
foreach($paths_to_check as $path)
|
21 |
-
{
|
22 |
-
if(strpos($scriptPath, realpath($path)) === 0)
|
23 |
-
{
|
24 |
-
$valid = true;
|
25 |
-
}
|
26 |
-
}
|
27 |
-
return $valid;
|
28 |
-
}
|
29 |
-
|
30 |
-
public function setScriptPath($dir)
|
31 |
-
{
|
32 |
-
$scriptPath = realpath($dir);
|
33 |
-
if ($this->_checkValidScriptPath($scriptPath)) {
|
34 |
-
$this->_viewDir = $dir;
|
35 |
-
} else {
|
36 |
-
Mage::log('Not valid script path:' . $dir, Zend_Log::CRIT, null, null, true);
|
37 |
-
}
|
38 |
-
return $this;
|
39 |
-
}
|
40 |
-
|
41 |
-
public function fetchView($fileName)
|
42 |
{
|
43 |
-
|
44 |
-
$this->setScriptPath(Mage::getConfig()->getModuleDir('','Alanstormdotcom_Systemsearch') . '/phtml');
|
45 |
-
return parent::fetchView($this->getTemplate());
|
46 |
}
|
47 |
-
|
48 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
* Open Source Initiative OSI - The MIT License (MIT):Licensing
|
4 |
*
|
5 |
* The MIT License (MIT)
|
6 |
+
* Copyright (c) 2009 - 2013 Pulse Storm LLC
|
7 |
*
|
8 |
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
9 |
*
|
11 |
*
|
12 |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
13 |
*/
|
14 |
+
class Alanstormdotcom_Systemsearch_Helper_Simplexml extends Mage_Core_Helper_Abstract
|
15 |
+
{
|
16 |
+
public function switchFromCommentToLabel($node)
|
17 |
+
{
|
18 |
+
if($node->getName() != 'comment')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
{
|
20 |
+
return $node;
|
|
|
|
|
21 |
}
|
22 |
+
$nodes = $node->xpath('../label');
|
23 |
+
$node = count($nodes) ? $nodes[0] : $node;
|
24 |
+
return $node;
|
25 |
+
}
|
26 |
+
|
27 |
+
public function getPathExpression($node)
|
28 |
+
{
|
29 |
+
$reverse = $this->getReversePathExpression($node);
|
30 |
+
return implode('/',array_reverse(explode('/', $reverse)));
|
31 |
+
}
|
32 |
+
|
33 |
+
public function getParentNode($node)
|
34 |
+
{
|
35 |
+
$nodes = $node->xpath('..');
|
36 |
+
if(count($nodes) > 0)
|
37 |
+
{
|
38 |
+
return $nodes[0];
|
39 |
+
}
|
40 |
+
return false;
|
41 |
+
}
|
42 |
+
|
43 |
+
public function getReversePathExpression($node,$fragment='')
|
44 |
+
{
|
45 |
+
$parent = $this->getParentNode($node);
|
46 |
+
if($parent)
|
47 |
+
{
|
48 |
+
//recursion, HO!
|
49 |
+
$fragment .= $parent->getName() . '/';
|
50 |
+
return $this->getReversePathExpression($parent, $fragment);
|
51 |
+
}
|
52 |
+
return $fragment;
|
53 |
+
}
|
54 |
+
|
55 |
+
}
|
app/code/community/Alanstormdotcom/Systemsearch/Model/Configsearch.php
ADDED
@@ -0,0 +1,153 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Open Source Initiative OSI - The MIT License (MIT):Licensing
|
4 |
+
*
|
5 |
+
* The MIT License (MIT)
|
6 |
+
* Copyright (c) 2009 - 2013 Pulse Storm LLC
|
7 |
+
*
|
8 |
+
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
9 |
+
*
|
10 |
+
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
11 |
+
*
|
12 |
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
13 |
+
*/
|
14 |
+
class Alanstormdotcom_Systemsearch_Model_Configsearch
|
15 |
+
{
|
16 |
+
public function searchSystemConfigForTerms($terms)
|
17 |
+
{
|
18 |
+
return $this->xPathTextSearch($terms);
|
19 |
+
}
|
20 |
+
|
21 |
+
public function xPathTextSearch($search_for = 'advanced')
|
22 |
+
{
|
23 |
+
#$search_for = Mage::helper('alanstormdotcomsystemsearch')->reverseTranslate($search_for); //more complicated
|
24 |
+
$sections = Mage::getConfig()
|
25 |
+
->loadModulesConfiguration('system.xml')
|
26 |
+
->getNode('sections');
|
27 |
+
|
28 |
+
// header('Content-Type: text/xml');
|
29 |
+
// echo $sections->asXml();
|
30 |
+
// exit;
|
31 |
+
$nodes = $this->getNodesWithText($search_for, $sections);
|
32 |
+
$nodes_by_type = array();
|
33 |
+
foreach($nodes as $node)
|
34 |
+
{
|
35 |
+
$type = $this->getTypeOfSystemConfigNode($node);
|
36 |
+
$nodes_by_type[$type] = array_key_exists($type, $nodes_by_type) ? $nodes_by_type[$type] : array();
|
37 |
+
$nodes_by_type[$type][] = $node;
|
38 |
+
}
|
39 |
+
|
40 |
+
return $nodes_by_type;
|
41 |
+
}
|
42 |
+
|
43 |
+
const TYPE_SYSTEM_CONFIG_UNKNOWN = 'UNKNOWN';
|
44 |
+
const TYPE_SYSTEM_CONFIG_TAB = 'TAB';
|
45 |
+
const TYPE_SYSTEM_CONFIG_SECTION = 'SECTION';
|
46 |
+
const TYPE_SYSTEM_CONFIG_GROUP = 'GROUP';
|
47 |
+
const TYPE_SYSTEM_CONFIG_FIELD = 'FIELD';
|
48 |
+
protected function getTypeOfSystemConfigNode($node)
|
49 |
+
{
|
50 |
+
$path = $this->fetchSimpleXmlHelper()->getPathExpression($node);
|
51 |
+
// var_dump($path);
|
52 |
+
|
53 |
+
$parts = explode('/',$path);
|
54 |
+
// var_dump($parts);
|
55 |
+
|
56 |
+
$parent_name = $parts[count($parts)-2];
|
57 |
+
// var_dump($parent_name);
|
58 |
+
|
59 |
+
switch($parent_name)
|
60 |
+
{
|
61 |
+
case 'sections':
|
62 |
+
return self::TYPE_SYSTEM_CONFIG_SECTION;
|
63 |
+
case 'groups':
|
64 |
+
return self::TYPE_SYSTEM_CONFIG_GROUP;
|
65 |
+
case 'fields':
|
66 |
+
return self::TYPE_SYSTEM_CONFIG_FIELD;
|
67 |
+
case 'tabs':
|
68 |
+
return self::TYPE_SYSTEM_CONFIG_TAB;
|
69 |
+
default:
|
70 |
+
return self::TYPE_SYSTEM_CONFIG_UNKNOWN;
|
71 |
+
}
|
72 |
+
}
|
73 |
+
|
74 |
+
protected function getNodesWithText($search_for, $xml)
|
75 |
+
{
|
76 |
+
$nodes = array();
|
77 |
+
#only works with us_EN, bad americano!
|
78 |
+
// $nodes = array_merge($nodes, $this->getSpecificNodeWithText('label',$search_for, $xml));
|
79 |
+
// $nodes = array_merge($nodes, $this->getSpecificNodeWithText('comment',$search_for, $xml));
|
80 |
+
|
81 |
+
//get the nodes
|
82 |
+
$nodes = array_merge($nodes,$xml->xpath('//label'));
|
83 |
+
$nodes = array_merge($nodes,$xml->xpath('//comment'));
|
84 |
+
|
85 |
+
//filter the nodes
|
86 |
+
$found = array();
|
87 |
+
$helper = Mage::helper('adminhtml');
|
88 |
+
foreach($nodes as $node)
|
89 |
+
{
|
90 |
+
if( mb_stristr($helper->__((string) $node),$search_for) !== false)
|
91 |
+
{
|
92 |
+
$found[] = $node;
|
93 |
+
}
|
94 |
+
}
|
95 |
+
|
96 |
+
return $found;
|
97 |
+
}
|
98 |
+
|
99 |
+
protected function getSpecificNodeWithText($node_name, $search_for, $xml)
|
100 |
+
{
|
101 |
+
$expression = $this->createXpathQuery($node_name, $search_for);
|
102 |
+
return $xml->xpath($expression);
|
103 |
+
}
|
104 |
+
|
105 |
+
//oh xpath 1, how I love thee
|
106 |
+
protected function createXpathQuery($node, $search_for)
|
107 |
+
{
|
108 |
+
return sprintf(
|
109 |
+
"//%s[contains(translate(.,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),translate('%s','ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'))]",
|
110 |
+
$node,
|
111 |
+
$search_for
|
112 |
+
);
|
113 |
+
}
|
114 |
+
|
115 |
+
public function showAllConfigDebug() {
|
116 |
+
$sections = Mage::getConfig()
|
117 |
+
->loadModulesConfiguration('system.xml')
|
118 |
+
->getNode('sections');
|
119 |
+
|
120 |
+
$sections = $sections->xpath('//sections');
|
121 |
+
$sections = $sections[0];
|
122 |
+
|
123 |
+
foreach($sections as $section)
|
124 |
+
{
|
125 |
+
$label_section = (string) $section->label;
|
126 |
+
var_dump('Section: ' . $label_section);
|
127 |
+
$groups = $section->xpath('groups');
|
128 |
+
$groups = $groups[0];
|
129 |
+
foreach($groups as $group)
|
130 |
+
{
|
131 |
+
$label_group = (string) $group->label;
|
132 |
+
var_dump(' Group: ' . $label_group);
|
133 |
+
$fields = $group->xpath('fields');
|
134 |
+
$fields = count($fields) > 0 ? $fields[0] : array();
|
135 |
+
foreach($fields as $field)
|
136 |
+
{
|
137 |
+
$label_field = (string) $field->label;
|
138 |
+
$comment_field = (string) $field->comment;
|
139 |
+
var_dump(' Field: ' . $label_field);
|
140 |
+
if($comment_field)
|
141 |
+
{
|
142 |
+
var_dump(' Comment: ' . $comment_field);
|
143 |
+
}
|
144 |
+
}
|
145 |
+
}
|
146 |
+
}
|
147 |
+
}
|
148 |
+
|
149 |
+
protected function fetchSimpleXmlHelper()
|
150 |
+
{
|
151 |
+
return Mage::helper('alanstormdotcomsystemsearch/simplexml');
|
152 |
+
}
|
153 |
+
}
|
app/code/community/Alanstormdotcom/Systemsearch/Model/Observer.php
ADDED
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Open Source Initiative OSI - The MIT License (MIT):Licensing
|
4 |
+
*
|
5 |
+
* The MIT License (MIT)
|
6 |
+
* Copyright (c) 2009 - 2013 Pulse Storm LLC
|
7 |
+
*
|
8 |
+
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
9 |
+
*
|
10 |
+
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
11 |
+
*
|
12 |
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
13 |
+
*/
|
14 |
+
class Alanstormdotcom_Systemsearch_Model_Observer
|
15 |
+
{
|
16 |
+
public function addSystemsearchInit($observer)
|
17 |
+
{
|
18 |
+
if(!Mage::helper('alanstormdotcomsystemsearch')->isModuleOutputEnabled())
|
19 |
+
{
|
20 |
+
return;
|
21 |
+
}
|
22 |
+
|
23 |
+
$this->addFormToSystemConfigPage($observer);
|
24 |
+
}
|
25 |
+
|
26 |
+
//questionable way to inject things into the
|
27 |
+
//document, but anything to avoid Layout
|
28 |
+
protected function addFormToSystemConfigPage($observer)
|
29 |
+
{
|
30 |
+
$response = $observer->getResponse();
|
31 |
+
$block = $this->getLayout()->createBlock('alanstormdotcomsystemsearch/template')
|
32 |
+
->setTemplate('prototype.phtml')->toHtml();
|
33 |
+
$response->setBody(
|
34 |
+
str_replace('</body>',$block.'</body>',$response->getBody(false))
|
35 |
+
);
|
36 |
+
|
37 |
+
if($this->isSystemConfigPage() && stripos($response->getBody(false),'<html') !== false)
|
38 |
+
{
|
39 |
+
$block = $this->getLayout()->createBlock('alanstormdotcomsystemsearch/template')
|
40 |
+
->setTemplate('searchform.phtml')->toHtml();
|
41 |
+
$response->setBody(
|
42 |
+
str_replace('<div id="page:main-container">','<div id="page:main-container">'.$block,$response->getBody(false))
|
43 |
+
);
|
44 |
+
}
|
45 |
+
}
|
46 |
+
|
47 |
+
protected function isSystemConfigPage()
|
48 |
+
{
|
49 |
+
$parts = explode('/',$_SERVER['REQUEST_URI']);
|
50 |
+
return in_array('system_config',$parts);
|
51 |
+
return true;
|
52 |
+
}
|
53 |
+
|
54 |
+
private function getLayout()
|
55 |
+
{
|
56 |
+
return Mage::getSingleton('core/layout');;
|
57 |
+
}
|
58 |
+
|
59 |
+
|
60 |
+
}
|
app/code/{local → community}/Alanstormdotcom/Systemsearch/controllers/Adminhtml/AlanstormdotcomsystemsearchController.php
RENAMED
@@ -3,7 +3,7 @@
|
|
3 |
* Open Source Initiative OSI - The MIT License (MIT):Licensing
|
4 |
*
|
5 |
* The MIT License (MIT)
|
6 |
-
* Copyright (c) 2009 -
|
7 |
*
|
8 |
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
9 |
*
|
3 |
* Open Source Initiative OSI - The MIT License (MIT):Licensing
|
4 |
*
|
5 |
* The MIT License (MIT)
|
6 |
+
* Copyright (c) 2009 - 2013 Pulse Storm LLC
|
7 |
*
|
8 |
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
9 |
*
|
app/code/{local → community}/Alanstormdotcom/Systemsearch/etc/config.xml
RENAMED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Alanstormdotcom_Systemsearch>
|
5 |
-
<version>0.
|
6 |
</Alanstormdotcom_Systemsearch>
|
7 |
</modules>
|
8 |
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Alanstormdotcom_Systemsearch>
|
5 |
+
<version>0.7.0</version>
|
6 |
</Alanstormdotcom_Systemsearch>
|
7 |
</modules>
|
8 |
|
app/code/{local → community}/Alanstormdotcom/Systemsearch/images/left.gif
RENAMED
File without changes
|
app/code/{local → community}/Alanstormdotcom/Systemsearch/images/right.gif
RENAMED
File without changes
|
app/code/{local → community}/Alanstormdotcom/Systemsearch/phtml/prototype.phtml
RENAMED
File without changes
|
app/code/{local → community}/Alanstormdotcom/Systemsearch/phtml/results.phtml
RENAMED
File without changes
|
app/code/{local → community}/Alanstormdotcom/Systemsearch/phtml/searchform.phtml
RENAMED
File without changes
|
app/code/local/Alanstormdotcom/Systemsearch/Helper/Jsonconfigsearch.php
DELETED
@@ -1,127 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Open Source Initiative OSI - The MIT License (MIT):Licensing
|
4 |
-
*
|
5 |
-
* The MIT License (MIT)
|
6 |
-
* Copyright (c) 2009 - 2011 Pulse Storm LLC
|
7 |
-
*
|
8 |
-
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
9 |
-
*
|
10 |
-
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
11 |
-
*
|
12 |
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
13 |
-
*/
|
14 |
-
class Alanstormdotcom_Systemsearch_Helper_Jsonconfigsearch extends Mage_Core_Helper_Abstract
|
15 |
-
{
|
16 |
-
public function prepareAndSendResponse($nodes, $terms)
|
17 |
-
{
|
18 |
-
$response = new stdClass();
|
19 |
-
$response->responseText = array();
|
20 |
-
$response->results = array();
|
21 |
-
$response->search_terms = $terms;
|
22 |
-
$helper = Mage::helper('adminhtml');
|
23 |
-
foreach($nodes as $type=>$all_of_type)
|
24 |
-
{
|
25 |
-
foreach($all_of_type as $value)
|
26 |
-
{
|
27 |
-
$value = $this->fetchSimpleXmlHelper()->switchFromCommentToLabel($value);
|
28 |
-
|
29 |
-
if($type == Alanstormdotcom_Systemsearch_Model_Configsearch::TYPE_SYSTEM_CONFIG_SECTION)
|
30 |
-
{
|
31 |
-
$response->responseText[] = 'Configuration/' . (string) $value;
|
32 |
-
|
33 |
-
$result = new stdClass();
|
34 |
-
$result->found = true;
|
35 |
-
$result->found_type = 'nav'; //other option is 'group'
|
36 |
-
$result->found_label = $helper->__((string) $value);
|
37 |
-
$result->type = $type;
|
38 |
-
$response->results[] = $result;
|
39 |
-
}
|
40 |
-
else if($type == Alanstormdotcom_Systemsearch_Model_Configsearch::TYPE_SYSTEM_CONFIG_GROUP)
|
41 |
-
{
|
42 |
-
$result = new stdClass();
|
43 |
-
$result->found = true;
|
44 |
-
$result->found_type = 'group'; //other option is 'group'
|
45 |
-
$result->found_label = $helper->__((string) $value);
|
46 |
-
$label_group = $result->found_label;
|
47 |
-
$result->type = $type;
|
48 |
-
$result->path = $this->fetchSimpleXmlHelper()->getPathExpression($value);
|
49 |
-
|
50 |
-
$response->results[] = $result;
|
51 |
-
|
52 |
-
//hop up three nodes to get the nav section
|
53 |
-
$parent = $this->fetchSimpleXmlHelper()->getParentNode($value);
|
54 |
-
$parent = $this->fetchSimpleXmlHelper()->getParentNode($parent);
|
55 |
-
$parent = $this->fetchSimpleXmlHelper()->getParentNode($parent);
|
56 |
-
$result = new stdClass();
|
57 |
-
$result->found = true;
|
58 |
-
$result->found_type = 'nav'; //other option is 'group'
|
59 |
-
$result->found_label = $helper->__((string) $parent->label);
|
60 |
-
$label_nav = $result->found_label;
|
61 |
-
$result->type = $type;
|
62 |
-
$response->results[] = $result;
|
63 |
-
|
64 |
-
//and also point out the nav
|
65 |
-
$response->responseText[] = 'Configuration/' .
|
66 |
-
$label_nav .
|
67 |
-
'/' .
|
68 |
-
$label_group .
|
69 |
-
'';
|
70 |
-
}
|
71 |
-
else if($type == Alanstormdotcom_Systemsearch_Model_Configsearch::TYPE_SYSTEM_CONFIG_FIELD)
|
72 |
-
{
|
73 |
-
//hop up to group
|
74 |
-
$parent = $this->fetchSimpleXmlHelper()->getParentNode($value);
|
75 |
-
$parent = $this->fetchSimpleXmlHelper()->getParentNode($parent);
|
76 |
-
$parent = $this->fetchSimpleXmlHelper()->getParentNode($parent);
|
77 |
-
|
78 |
-
$result = new stdClass();
|
79 |
-
$result->found = true;
|
80 |
-
$result->found_type = 'group'; //other option is 'group'
|
81 |
-
$result->found_label = $helper->__((string) $parent->label);
|
82 |
-
$label_group = $result->found_label;
|
83 |
-
$result->type = $type;
|
84 |
-
$response->results[] = $result;
|
85 |
-
|
86 |
-
// //hope up to section
|
87 |
-
$parent = $this->fetchSimpleXmlHelper()->getParentNode($parent);
|
88 |
-
$parent = $this->fetchSimpleXmlHelper()->getParentNode($parent);
|
89 |
-
|
90 |
-
$result = new stdClass();
|
91 |
-
$result->found = true;
|
92 |
-
$result->found_type = 'nav'; //other option is 'group'
|
93 |
-
$result->found_label = $helper->__((string) $parent->label);
|
94 |
-
$label_nav = $result->found_label;
|
95 |
-
$result->type = $type;
|
96 |
-
$response->results[] = $result;
|
97 |
-
|
98 |
-
$response->responseText[] = 'Configuration/' .
|
99 |
-
$label_nav .
|
100 |
-
'/' .
|
101 |
-
$label_group .
|
102 |
-
'/' .
|
103 |
-
(string) $value;
|
104 |
-
}
|
105 |
-
}
|
106 |
-
}
|
107 |
-
|
108 |
-
$response->responseText = $this->fetchLayout()->createBlock('alanstormdotcomsystemsearch/searchresults')
|
109 |
-
->addResultsArray($response->responseText)
|
110 |
-
->toHtml();
|
111 |
-
|
112 |
-
header('Content-Type: application/json');
|
113 |
-
echo json_encode($response);
|
114 |
-
exit;
|
115 |
-
}
|
116 |
-
|
117 |
-
protected function fetchSimpleXmlHelper()
|
118 |
-
{
|
119 |
-
return Mage::helper('alanstormdotcomsystemsearch/simplexml');
|
120 |
-
}
|
121 |
-
|
122 |
-
private function fetchLayout()
|
123 |
-
{
|
124 |
-
return Mage::getSingleton('core/layout');;
|
125 |
-
}
|
126 |
-
|
127 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/local/Alanstormdotcom/Systemsearch/Helper/Simplexml.php
DELETED
@@ -1,55 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Open Source Initiative OSI - The MIT License (MIT):Licensing
|
4 |
-
*
|
5 |
-
* The MIT License (MIT)
|
6 |
-
* Copyright (c) 2009 - 2011 Pulse Storm LLC
|
7 |
-
*
|
8 |
-
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
9 |
-
*
|
10 |
-
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
11 |
-
*
|
12 |
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
13 |
-
*/
|
14 |
-
class Alanstormdotcom_Systemsearch_Helper_Simplexml extends Mage_Core_Helper_Abstract
|
15 |
-
{
|
16 |
-
public function switchFromCommentToLabel($node)
|
17 |
-
{
|
18 |
-
if($node->getName() != 'comment')
|
19 |
-
{
|
20 |
-
return $node;
|
21 |
-
}
|
22 |
-
$nodes = $node->xpath('../label');
|
23 |
-
$node = count($nodes) ? $nodes[0] : $node;
|
24 |
-
return $node;
|
25 |
-
}
|
26 |
-
|
27 |
-
public function getPathExpression($node)
|
28 |
-
{
|
29 |
-
$reverse = $this->getReversePathExpression($node);
|
30 |
-
return implode('/',array_reverse(explode('/', $reverse)));
|
31 |
-
}
|
32 |
-
|
33 |
-
public function getParentNode($node)
|
34 |
-
{
|
35 |
-
$nodes = $node->xpath('..');
|
36 |
-
if(count($nodes) > 0)
|
37 |
-
{
|
38 |
-
return $nodes[0];
|
39 |
-
}
|
40 |
-
return false;
|
41 |
-
}
|
42 |
-
|
43 |
-
public function getReversePathExpression($node,$fragment='')
|
44 |
-
{
|
45 |
-
$parent = $this->getParentNode($node);
|
46 |
-
if($parent)
|
47 |
-
{
|
48 |
-
//recursion, HO!
|
49 |
-
$fragment .= $parent->getName() . '/';
|
50 |
-
return $this->getReversePathExpression($parent, $fragment);
|
51 |
-
}
|
52 |
-
return $fragment;
|
53 |
-
}
|
54 |
-
|
55 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/local/Alanstormdotcom/Systemsearch/Model/Configsearch.php
DELETED
@@ -1,153 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Open Source Initiative OSI - The MIT License (MIT):Licensing
|
4 |
-
*
|
5 |
-
* The MIT License (MIT)
|
6 |
-
* Copyright (c) 2009 - 2011 Pulse Storm LLC
|
7 |
-
*
|
8 |
-
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
9 |
-
*
|
10 |
-
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
11 |
-
*
|
12 |
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
13 |
-
*/
|
14 |
-
class Alanstormdotcom_Systemsearch_Model_Configsearch
|
15 |
-
{
|
16 |
-
public function searchSystemConfigForTerms($terms)
|
17 |
-
{
|
18 |
-
return $this->xPathTextSearch($terms);
|
19 |
-
}
|
20 |
-
|
21 |
-
public function xPathTextSearch($search_for = 'advanced')
|
22 |
-
{
|
23 |
-
#$search_for = Mage::helper('alanstormdotcomsystemsearch')->reverseTranslate($search_for); //more complicated
|
24 |
-
$sections = Mage::getConfig()
|
25 |
-
->loadModulesConfiguration('system.xml')
|
26 |
-
->getNode('sections');
|
27 |
-
|
28 |
-
// header('Content-Type: text/xml');
|
29 |
-
// echo $sections->asXml();
|
30 |
-
// exit;
|
31 |
-
$nodes = $this->getNodesWithText($search_for, $sections);
|
32 |
-
$nodes_by_type = array();
|
33 |
-
foreach($nodes as $node)
|
34 |
-
{
|
35 |
-
$type = $this->getTypeOfSystemConfigNode($node);
|
36 |
-
$nodes_by_type[$type] = array_key_exists($type, $nodes_by_type) ? $nodes_by_type[$type] : array();
|
37 |
-
$nodes_by_type[$type][] = $node;
|
38 |
-
}
|
39 |
-
|
40 |
-
return $nodes_by_type;
|
41 |
-
}
|
42 |
-
|
43 |
-
const TYPE_SYSTEM_CONFIG_UNKNOWN = 'UNKNOWN';
|
44 |
-
const TYPE_SYSTEM_CONFIG_TAB = 'TAB';
|
45 |
-
const TYPE_SYSTEM_CONFIG_SECTION = 'SECTION';
|
46 |
-
const TYPE_SYSTEM_CONFIG_GROUP = 'GROUP';
|
47 |
-
const TYPE_SYSTEM_CONFIG_FIELD = 'FIELD';
|
48 |
-
protected function getTypeOfSystemConfigNode($node)
|
49 |
-
{
|
50 |
-
$path = $this->fetchSimpleXmlHelper()->getPathExpression($node);
|
51 |
-
// var_dump($path);
|
52 |
-
|
53 |
-
$parts = explode('/',$path);
|
54 |
-
// var_dump($parts);
|
55 |
-
|
56 |
-
$parent_name = $parts[count($parts)-2];
|
57 |
-
// var_dump($parent_name);
|
58 |
-
|
59 |
-
switch($parent_name)
|
60 |
-
{
|
61 |
-
case 'sections':
|
62 |
-
return self::TYPE_SYSTEM_CONFIG_SECTION;
|
63 |
-
case 'groups':
|
64 |
-
return self::TYPE_SYSTEM_CONFIG_GROUP;
|
65 |
-
case 'fields':
|
66 |
-
return self::TYPE_SYSTEM_CONFIG_FIELD;
|
67 |
-
case 'tabs':
|
68 |
-
return self::TYPE_SYSTEM_CONFIG_TAB;
|
69 |
-
default:
|
70 |
-
return self::TYPE_SYSTEM_CONFIG_UNKNOWN;
|
71 |
-
}
|
72 |
-
}
|
73 |
-
|
74 |
-
protected function getNodesWithText($search_for, $xml)
|
75 |
-
{
|
76 |
-
$nodes = array();
|
77 |
-
#only works with us_EN, bad americano!
|
78 |
-
// $nodes = array_merge($nodes, $this->getSpecificNodeWithText('label',$search_for, $xml));
|
79 |
-
// $nodes = array_merge($nodes, $this->getSpecificNodeWithText('comment',$search_for, $xml));
|
80 |
-
|
81 |
-
//get the nodes
|
82 |
-
$nodes = array_merge($nodes,$xml->xpath('//label'));
|
83 |
-
$nodes = array_merge($nodes,$xml->xpath('//comment'));
|
84 |
-
|
85 |
-
//filter the nodes
|
86 |
-
$found = array();
|
87 |
-
$helper = Mage::helper('adminhtml');
|
88 |
-
foreach($nodes as $node)
|
89 |
-
{
|
90 |
-
if( mb_stristr($helper->__((string) $node),$search_for) !== false)
|
91 |
-
{
|
92 |
-
$found[] = $node;
|
93 |
-
}
|
94 |
-
}
|
95 |
-
|
96 |
-
return $found;
|
97 |
-
}
|
98 |
-
|
99 |
-
protected function getSpecificNodeWithText($node_name, $search_for, $xml)
|
100 |
-
{
|
101 |
-
$expression = $this->createXpathQuery($node_name, $search_for);
|
102 |
-
return $xml->xpath($expression);
|
103 |
-
}
|
104 |
-
|
105 |
-
//oh xpath 1, how I love thee
|
106 |
-
protected function createXpathQuery($node, $search_for)
|
107 |
-
{
|
108 |
-
return sprintf(
|
109 |
-
"//%s[contains(translate(.,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),translate('%s','ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'))]",
|
110 |
-
$node,
|
111 |
-
$search_for
|
112 |
-
);
|
113 |
-
}
|
114 |
-
|
115 |
-
public function showAllConfigDebug() {
|
116 |
-
$sections = Mage::getConfig()
|
117 |
-
->loadModulesConfiguration('system.xml')
|
118 |
-
->getNode('sections');
|
119 |
-
|
120 |
-
$sections = $sections->xpath('//sections');
|
121 |
-
$sections = $sections[0];
|
122 |
-
|
123 |
-
foreach($sections as $section)
|
124 |
-
{
|
125 |
-
$label_section = (string) $section->label;
|
126 |
-
var_dump('Section: ' . $label_section);
|
127 |
-
$groups = $section->xpath('groups');
|
128 |
-
$groups = $groups[0];
|
129 |
-
foreach($groups as $group)
|
130 |
-
{
|
131 |
-
$label_group = (string) $group->label;
|
132 |
-
var_dump(' Group: ' . $label_group);
|
133 |
-
$fields = $group->xpath('fields');
|
134 |
-
$fields = count($fields) > 0 ? $fields[0] : array();
|
135 |
-
foreach($fields as $field)
|
136 |
-
{
|
137 |
-
$label_field = (string) $field->label;
|
138 |
-
$comment_field = (string) $field->comment;
|
139 |
-
var_dump(' Field: ' . $label_field);
|
140 |
-
if($comment_field)
|
141 |
-
{
|
142 |
-
var_dump(' Comment: ' . $comment_field);
|
143 |
-
}
|
144 |
-
}
|
145 |
-
}
|
146 |
-
}
|
147 |
-
}
|
148 |
-
|
149 |
-
protected function fetchSimpleXmlHelper()
|
150 |
-
{
|
151 |
-
return Mage::helper('alanstormdotcomsystemsearch/simplexml');
|
152 |
-
}
|
153 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/local/Alanstormdotcom/Systemsearch/Model/Observer.php
DELETED
@@ -1,60 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Open Source Initiative OSI - The MIT License (MIT):Licensing
|
4 |
-
*
|
5 |
-
* The MIT License (MIT)
|
6 |
-
* Copyright (c) 2009 - 2011 Pulse Storm LLC
|
7 |
-
*
|
8 |
-
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
9 |
-
*
|
10 |
-
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
11 |
-
*
|
12 |
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
13 |
-
*/
|
14 |
-
class Alanstormdotcom_Systemsearch_Model_Observer
|
15 |
-
{
|
16 |
-
public function addSystemsearchInit($observer)
|
17 |
-
{
|
18 |
-
if(!Mage::helper('alanstormdotcomsystemsearch')->isModuleOutputEnabled())
|
19 |
-
{
|
20 |
-
return;
|
21 |
-
}
|
22 |
-
|
23 |
-
$this->addFormToSystemConfigPage($observer);
|
24 |
-
}
|
25 |
-
|
26 |
-
//questionable way to inject things into the
|
27 |
-
//document, but anything to avoid Layout
|
28 |
-
protected function addFormToSystemConfigPage($observer)
|
29 |
-
{
|
30 |
-
$response = $observer->getResponse();
|
31 |
-
$block = $this->getLayout()->createBlock('alanstormdotcomsystemsearch/template')
|
32 |
-
->setTemplate('prototype.phtml')->toHtml();
|
33 |
-
$response->setBody(
|
34 |
-
str_replace('</body>',$block.'</body>',$response->getBody(false))
|
35 |
-
);
|
36 |
-
|
37 |
-
if($this->isSystemConfigPage() && stripos($response->getBody(false),'<html') !== false)
|
38 |
-
{
|
39 |
-
$block = $this->getLayout()->createBlock('alanstormdotcomsystemsearch/template')
|
40 |
-
->setTemplate('searchform.phtml')->toHtml();
|
41 |
-
$response->setBody(
|
42 |
-
str_replace('<div id="page:main-container">','<div id="page:main-container">'.$block,$response->getBody(false))
|
43 |
-
);
|
44 |
-
}
|
45 |
-
}
|
46 |
-
|
47 |
-
protected function isSystemConfigPage()
|
48 |
-
{
|
49 |
-
$parts = explode('/',$_SERVER['REQUEST_URI']);
|
50 |
-
return in_array('system_config',$parts);
|
51 |
-
return true;
|
52 |
-
}
|
53 |
-
|
54 |
-
private function getLayout()
|
55 |
-
{
|
56 |
-
return Mage::getSingleton('core/layout');;
|
57 |
-
}
|
58 |
-
|
59 |
-
|
60 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/design/adminhtml/default/default/images/alanstormdotcom/left.gif
ADDED
Binary file
|
app/design/adminhtml/default/default/images/alanstormdotcom/right.gif
ADDED
Binary file
|
app/etc/modules/Alanstormdotcom_Systemsearch.xml
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
<modules>
|
4 |
<Alanstormdotcom_Systemsearch>
|
5 |
<active>true</active>
|
6 |
-
<codePool>
|
7 |
</Alanstormdotcom_Systemsearch>
|
8 |
</modules>
|
9 |
</config>
|
3 |
<modules>
|
4 |
<Alanstormdotcom_Systemsearch>
|
5 |
<active>true</active>
|
6 |
+
<codePool>community</codePool>
|
7 |
</Alanstormdotcom_Systemsearch>
|
8 |
</modules>
|
9 |
</config>
|
package.xml
CHANGED
@@ -1,18 +1,2 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
-
<package>
|
3 |
-
<name>System_Configuration_Search</name>
|
4 |
-
<version>0.6.3</version>
|
5 |
-
<stability>stable</stability>
|
6 |
-
<license>MIT</license>
|
7 |
-
<channel>community</channel>
|
8 |
-
<extends/>
|
9 |
-
<summary>This extension installs a search form that allows you to quickly find System Configuration fields.</summary>
|
10 |
-
<description>This extension installs a search form that allows you to quickly find System Configuration fields.</description>
|
11 |
-
<notes>Compile mode bug fix.</notes>
|
12 |
-
<authors><author><name>Alan Storm</name><user>auto-converted</user><email>astorm@alanstorm.com</email></author></authors>
|
13 |
-
<date>2012-07-04</date>
|
14 |
-
<time>00:09:37</time>
|
15 |
-
<contents><target name="magelocal"><dir name="Alanstormdotcom"><dir name="Systemsearch"><dir name="Block"><file name="Searchresults.php" hash="21941ec0d6d7a34a794c01d314c4d7db"/><file name="Template.php" hash="b6877cdafd960b4bf00708205108cb96"/></dir><dir name="Helper"><file name="Data.php" hash="6f36455f6f82dcc71376f692a6b7219d"/><file name="Jsonconfigsearch.php" hash="ca54f296459a78eaabfe13b5e1978608"/><file name="Simplexml.php" hash="7f537b7a30b9c3c17382d0aa108e7f0c"/></dir><dir name="Model"><file name="Configsearch.php" hash="a07be252fbb112e42b2313916555234f"/><file name="Observer.php" hash="76980697dac5ee9de397a7d445b861b2"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="AlanstormdotcomsystemsearchController.php" hash="f80b12dc0b1ae7bd7bec8c336a76b80e"/></dir></dir><dir name="etc"><file name="config.xml" hash="6f62dd0b238ddf9abc6d2e181affb17b"/></dir><dir name="images"><file name="left.gif" hash="c1da3e89cc4fb46463e32f9ca6a66d3e"/><file name="right.gif" hash="1214f3e4f3689a5bc4b8468f2a757910"/></dir><dir name="phtml"><file name="prototype.phtml" hash="ed9b4dfaf14915693c209ee9aefb2d32"/><file name="results.phtml" hash="127f2400470f47a2b0b3c021a19a83ef"/><file name="searchform.phtml" hash="6d50fc769c3d046cd12d463385e5e57c"/></dir></dir></dir></target><target name="mage"><dir name="app"><dir name="etc"><dir name="modules"><file name="Alanstormdotcom_Systemsearch.xml" hash="974e2e20ab0a6d2993dc196930136ddb"/></dir></dir></dir><dir name="skin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="images"><dir name="alanstormdotcom"><file name="left.gif" hash="c1da3e89cc4fb46463e32f9ca6a66d3e"/><file name="right.gif" hash="1214f3e4f3689a5bc4b8468f2a757910"/></dir></dir></dir></dir></dir></dir></target></contents>
|
16 |
-
<compatible/>
|
17 |
-
<dependencies/>
|
18 |
-
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
+
<package><name>System_Configuration_Search</name><version>0.7.0</version><stability>stable</stability><license>MIT</license><channel>community</channel><extends></extends><summary>This extension installs a search form that allows you to quickly find System Configuration fields.</summary><description>This extension installs a search form that allows you to quickly find System Configuration fields.</description><notes></notes><authors><author><name>Alan Storm</name><user>alanstorm</user><email>astorm@alanstorm.com</email></author></authors><date>2014-05-27</date><time>18:17:11</time><compatible></compatible><dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies><contents><target name="mage"><dir name="app"><dir name="code"><dir name="community"><dir name="Alanstormdotcom"><dir name="Systemsearch"><dir name="Block"><file name="Searchresults.php" hash="a118a2b8d1b530f05cecbfa887250abd"/><file name="Template.php" hash="0ce5888928775c63e7e26ec23ac6560c"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="AlanstormdotcomsystemsearchController.php" hash="8921a4cde58aa9d6c8a0e9b79f685191"/></dir></dir><dir name="etc"><file name="config.xml" hash="d3789f830fc93359819b200c123477b0"/></dir><dir name="Helper"><file name="Data.php" hash="21dd9b858158926e228c8f57df128c2b"/><file name="Jsonconfigsearch.php" hash="eb9c3f8690188e15775ed2e1f5c9f507"/><file name="Simplexml.php" hash="2563e53dc53cc2968b0ab6c3c7ec6863"/></dir><dir name="images"><file name="left.gif" hash="c1da3e89cc4fb46463e32f9ca6a66d3e"/><file name="right.gif" hash="1214f3e4f3689a5bc4b8468f2a757910"/></dir><dir name="Model"><file name="Configsearch.php" hash="93d310d0a4797de9f7c5948451f2a690"/><file name="Observer.php" hash="64e877ae11facc0ec498d3e55aa2741d"/></dir><dir name="phtml"><file name="prototype.phtml" hash="ed9b4dfaf14915693c209ee9aefb2d32"/><file name="results.phtml" hash="127f2400470f47a2b0b3c021a19a83ef"/><file name="searchform.phtml" hash="6d50fc769c3d046cd12d463385e5e57c"/></dir></dir></dir></dir></dir><dir name="design"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="images"><dir name="alanstormdotcom"><file name="left.gif" hash="c1da3e89cc4fb46463e32f9ca6a66d3e"/><file name="right.gif" hash="1214f3e4f3689a5bc4b8468f2a757910"/></dir></dir></dir></dir></dir></dir><dir name="etc"><dir name="modules"><file name="Alanstormdotcom_Systemsearch.xml" hash="d62f4bce7220a4345d9d22a15dafcae6"/></dir></dir></dir><dir name="skin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="images"><dir name="alanstormdotcom"><file name="left.gif" hash="c1da3e89cc4fb46463e32f9ca6a66d3e"/><file name="right.gif" hash="1214f3e4f3689a5bc4b8468f2a757910"/></dir></dir></dir></dir></dir></dir></target></contents></package>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|