Fooman_Common - Version 1.2.5

Version Notes

1.1.15 release

Download this release

Release Info

Developer Magento Core Team
Extension Fooman_Common
Version 1.2.5
Comparing to
See all releases


Code changes from version 1.1.17 to 1.2.5

app/code/community/Fooman/Common/Helper/Data.php CHANGED
@@ -8,9 +8,11 @@
8
  * For the full copyright and license information, please view the LICENSE
9
  * file that was distributed with this source code.
10
  */
11
-
12
  class Fooman_Common_Helper_Data extends Mage_Core_Helper_Abstract
13
  {
 
 
 
14
  /**
15
  * Helper function to create a hash from a base64 Fooman serial number
16
  *
@@ -31,9 +33,9 @@ class Fooman_Common_Helper_Data extends Mage_Core_Helper_Abstract
31
  public function getOverlayFileName()
32
  {
33
  if (file_exists($this->_getNewOverlayFileLocation())) {
34
- return 'lib/prototype/windows/themes/magento.css';
35
  } else {
36
- return 'prototype/windows/themes/magento.css';
37
  }
38
  }
39
 
@@ -61,4 +63,4 @@ class Fooman_Common_Helper_Data extends Mage_Core_Helper_Abstract
61
  return BP . DS . 'skin' . DS . 'adminhtml' . DS . 'default' . DS . 'default'
62
  . DS . 'lib' . DS . 'prototype' . DS . 'windows' . DS . 'themes' . DS . 'magento.css';
63
  }
64
- }
8
  * For the full copyright and license information, please view the LICENSE
9
  * file that was distributed with this source code.
10
  */
 
11
  class Fooman_Common_Helper_Data extends Mage_Core_Helper_Abstract
12
  {
13
+ const NEW_MAGENTO_CSS_LOCATION = 'lib/prototype/windows/themes/magento.css';
14
+ const OLD_MAGENTO_CSS_LOCATION = 'prototype/windows/themes/magento.css';
15
+
16
  /**
17
  * Helper function to create a hash from a base64 Fooman serial number
18
  *
33
  public function getOverlayFileName()
34
  {
35
  if (file_exists($this->_getNewOverlayFileLocation())) {
36
+ return self::NEW_MAGENTO_CSS_LOCATION;
37
  } else {
38
+ return self::OLD_MAGENTO_CSS_LOCATION;
39
  }
40
  }
41
 
63
  return BP . DS . 'skin' . DS . 'adminhtml' . DS . 'default' . DS . 'default'
64
  . DS . 'lib' . DS . 'prototype' . DS . 'windows' . DS . 'themes' . DS . 'magento.css';
65
  }
66
+ }
app/code/community/Fooman/Common/Model/Selftester.php CHANGED
@@ -19,25 +19,28 @@ class Fooman_Common_Model_Selftester extends Fooman_Common_Model_Selftester_Abst
19
  /**
20
  * Start the selftest
21
  *
 
 
22
  * @return $this
23
  */
24
- public function main ()
25
  {
26
  $this->messages[] = 'Starting ' . get_class($this);
27
  $failed = false;
 
28
  try {
29
  if (!$this->selfCheckLocation()) {
30
  $failed = true;
31
  }
32
- if (Mage::app()->getRequest()->getParam('fix') == 'true') {
33
- $this->_fix = true;
34
- }
35
  if (!$this->checkFileLocations()) {
36
  $failed = true;
37
  }
38
  if (!$this->magentoRewrites()) {
39
  $failed = true;
40
  }
 
 
 
41
  if (!$this->dbCheck()) {
42
  $failed = true;
43
  }
@@ -66,15 +69,9 @@ class Fooman_Common_Model_Selftester extends Fooman_Common_Model_Selftester_Abst
66
  */
67
  public function selfCheckLocation()
68
  {
69
- if (file_exists('app' . DIRECTORY_SEPARATOR . 'Mage.php')) {
70
- require_once 'app' . DIRECTORY_SEPARATOR . 'Mage.php';
71
- Mage::app();
72
- $this->messages[] = "Default store loaded";
73
- $this->_getVersions();
74
- } else {
75
- $this->messages[] = 'Can\'t instantiate Magento. Is the file uploaded to your root Magento folder?';
76
- throw new Exception();
77
- }
78
  return true;
79
  }
80
 
@@ -120,6 +117,13 @@ class Fooman_Common_Model_Selftester extends Fooman_Common_Model_Selftester_Abst
120
  );
121
  }
122
  fclose($handleExtFile);
 
 
 
 
 
 
 
123
  } catch (Exception $e) {
124
  $this->messages[] = $e->getMessage();
125
  $returnVal = false;
@@ -165,6 +169,30 @@ class Fooman_Common_Model_Selftester extends Fooman_Common_Model_Selftester_Abst
165
  return $dbCheckModel->dbCheck($this);
166
  }
167
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
168
  /**
169
  * retrieve current database info relevant for debugging
170
  *
19
  /**
20
  * Start the selftest
21
  *
22
+ * @param bool $fix
23
+ *
24
  * @return $this
25
  */
26
+ public function main ($fix = false)
27
  {
28
  $this->messages[] = 'Starting ' . get_class($this);
29
  $failed = false;
30
+ $this->_fix = $fix;
31
  try {
32
  if (!$this->selfCheckLocation()) {
33
  $failed = true;
34
  }
 
 
 
35
  if (!$this->checkFileLocations()) {
36
  $failed = true;
37
  }
38
  if (!$this->magentoRewrites()) {
39
  $failed = true;
40
  }
41
+ if (!$this->cronCheck()) {
42
+ $failed = true;
43
+ }
44
  if (!$this->dbCheck()) {
45
  $failed = true;
46
  }
69
  */
70
  public function selfCheckLocation()
71
  {
72
+ Mage::app();
73
+ $this->messages[] = "Default store loaded";
74
+ $this->_getVersions();
 
 
 
 
 
 
75
  return true;
76
  }
77
 
117
  );
118
  }
119
  fclose($handleExtFile);
120
+
121
+ if (!filesize($currentRow)) {
122
+ throw new Exception(
123
+ 'Can\'t read file contents ' . $currentRow
124
+ . ' - please check if the file got corrupted in the upload process.'
125
+ );
126
+ }
127
  } catch (Exception $e) {
128
  $this->messages[] = $e->getMessage();
129
  $returnVal = false;
169
  return $dbCheckModel->dbCheck($this);
170
  }
171
 
172
+ public function cronCheck()
173
+ {
174
+
175
+ if ($this->_needsCron()) {
176
+ $schedulesPending = Mage::getModel('cron/schedule')->getCollection()
177
+ ->addFieldToFilter('status', Mage_Cron_Model_Schedule::STATUS_PENDING)
178
+ ->addFieldToFilter('created_at', array('from' => strtotime('-1 day', time())))
179
+ ->load();
180
+ $schedulesComplete = Mage::getModel('cron/schedule')->getCollection()
181
+ ->addFieldToFilter('status', Mage_Cron_Model_Schedule::STATUS_SUCCESS)
182
+ ->addFieldToFilter('created_at', array('from' => strtotime('-1 day', time())))
183
+ ->load();
184
+
185
+ if (sizeof($schedulesPending) == 0
186
+ || sizeof($schedulesComplete) == 0
187
+ ) {
188
+ $this->messages[] = 'No cron job was run in the last 24 hours';
189
+ return false;
190
+ }
191
+ }
192
+
193
+ return true;
194
+ }
195
+
196
  /**
197
  * retrieve current database info relevant for debugging
198
  *
app/code/community/Fooman/Common/Model/Selftester/Abstract.php CHANGED
@@ -29,7 +29,7 @@ class Fooman_Common_Model_Selftester_Abstract extends Mage_Core_Model_Abstract
29
  $model = Mage::getResourceModel($currentRow[1]);
30
  if (get_class($model) != $currentRow[2]) {
31
  throw new Exception(
32
- 'Trying to load class ' . $currentRow[2] . 'returns ' . get_class($model)
33
  . '. Please refresh your Magento configuration cache and check
34
  if you have any conflicting extensions installed.'
35
  );
@@ -121,4 +121,14 @@ class Fooman_Common_Model_Selftester_Abstract extends Mage_Core_Model_Abstract
121
  return array();
122
  }
123
 
 
 
 
 
 
 
 
 
 
 
124
  }
29
  $model = Mage::getResourceModel($currentRow[1]);
30
  if (get_class($model) != $currentRow[2]) {
31
  throw new Exception(
32
+ 'Trying to load class ' . $currentRow[2] . ' returns ' . get_class($model)
33
  . '. Please refresh your Magento configuration cache and check
34
  if you have any conflicting extensions installed.'
35
  );
121
  return array();
122
  }
123
 
124
+ /**
125
+ * determine if cron is needed for functionality
126
+ *
127
+ * @return bool
128
+ */
129
+ public function _needsCron()
130
+ {
131
+ return false;
132
+ }
133
+
134
  }
app/code/community/Fooman/Common/Model/Selftester/Db.php CHANGED
@@ -43,7 +43,7 @@ class Fooman_Common_Model_Selftester_Db extends Mage_Core_Model_Abstract
43
  $localError = $this->_dbCheckSqlTable($selftester, $field, $installer, $localError);
44
  break;
45
  case 'constraint':
46
- $localError = $this->_dbCheckConstraint($selftester, $field, $installer, $localError);
47
  break;
48
  case 'row-data':
49
  $localError = $this->_dbCheckDbRow($selftester, $field, $installer, $localError);
@@ -81,7 +81,6 @@ class Fooman_Common_Model_Selftester_Db extends Mage_Core_Model_Abstract
81
  try {
82
  $attribute = Mage::getModel('eav/entity_attribute')->loadByCode($field[1], $field[2]);
83
  if (!$attribute->getId() > 0) {
84
- $localError = true;
85
  throw new Exception('eav attribute ' . $field[2] . ' is not installed');
86
  }
87
  $selftester->messages[] = "[OK] eav attribute " . $field[2]." with id ".$attribute->getId()."";
@@ -177,26 +176,14 @@ class Fooman_Common_Model_Selftester_Db extends Mage_Core_Model_Abstract
177
  $selftester->messages[] = "[OK] Table " . $fields[1]."";
178
  } catch (Exception $e) {
179
  if ($selftester->shouldFix()) {
180
- $selftester->messages[] = "Attempting fix for table " . $fields[1]."";
181
-
182
- $keys = array();
183
- $columns = array();
184
 
185
  foreach ($fields[2] as $item) {
186
- switch ($item[0]) {
187
- case 'sql-column':
188
- $columns[] = '`'.$item[1].'` '.$item[2];
189
- break;
190
- case 'key':
191
- $keys[] = $item[1] .' (`'.$item[2].'`)';
192
- break;
193
- }
194
  }
195
- $tableDetails = implode(",", array_merge($columns, $keys));
196
- $sql ="CREATE TABLE `{$installer->getTable( $fields[1])}` ("
197
- .$tableDetails.") ENGINE=InnoDB DEFAULT CHARSET=utf8;";
198
  try {
199
- $installer->run($sql);
 
200
  $selftester->messages[] = "[FIX OK] table " . $fields[1]." fixed";
201
  } catch (Exception $e) {
202
  $selftester->messages[] = "[FAILED] fixing table " . $fields[1]."";
@@ -225,10 +212,10 @@ class Fooman_Common_Model_Selftester_Db extends Mage_Core_Model_Abstract
225
  *
226
  * @return bool
227
  */
228
- protected function _dbCheckConstraint(Fooman_Common_Model_Selftester $selftester, $fields, $installer, $localError)
229
  {
230
  try {
231
- $constraints = $installer->getConnection()->getKeyList($installer->getTable($fields[2]));
232
  if (!(isset($constraints[$installer->getTable($fields[1])]))) {
233
  throw new Exception(
234
  sprintf('Did not find constraint %s', $installer->getTable($fields[1]))
@@ -275,13 +262,15 @@ class Fooman_Common_Model_Selftester_Db extends Mage_Core_Model_Abstract
275
  protected function _dbCheckDbRow(Fooman_Common_Model_Selftester $selftester, $fields, $installer, $localError)
276
  {
277
  try {
278
- $where = array();
 
 
279
  foreach ($fields[2] as $key => $value) {
280
- $where[] = "`" . $key . "`='" . $value . "'";
 
281
  }
282
- $sql ="SELECT * FROM `{$installer->getTable( $fields[1])}` WHERE ".implode(' AND ', $where).";";
283
 
284
- $result = $installer->getConnection()->fetchOne($sql);
285
  if (!$result) {
286
  throw new Exception(
287
  sprintf('Did not find content in %s', $installer->getTable($fields[1]))
43
  $localError = $this->_dbCheckSqlTable($selftester, $field, $installer, $localError);
44
  break;
45
  case 'constraint':
46
+ $localError = $this->_dbCheckForeignKeyConstraint($selftester, $field, $installer, $localError);
47
  break;
48
  case 'row-data':
49
  $localError = $this->_dbCheckDbRow($selftester, $field, $installer, $localError);
81
  try {
82
  $attribute = Mage::getModel('eav/entity_attribute')->loadByCode($field[1], $field[2]);
83
  if (!$attribute->getId() > 0) {
 
84
  throw new Exception('eav attribute ' . $field[2] . ' is not installed');
85
  }
86
  $selftester->messages[] = "[OK] eav attribute " . $field[2]." with id ".$attribute->getId()."";
176
  $selftester->messages[] = "[OK] Table " . $fields[1]."";
177
  } catch (Exception $e) {
178
  if ($selftester->shouldFix()) {
179
+ $table = $installer->getConnection() ->newTable($installer->getTable($fields[1]));
 
 
 
180
 
181
  foreach ($fields[2] as $item) {
182
+ $table->addColumn($item[0], $item[1], $item[2], $item[3], $item[4]);
 
 
 
 
 
 
 
183
  }
 
 
 
184
  try {
185
+ $selftester->messages[] = "Attempting fix for table " . $fields[1]."";
186
+ $installer->getConnection()->createTable($table);
187
  $selftester->messages[] = "[FIX OK] table " . $fields[1]." fixed";
188
  } catch (Exception $e) {
189
  $selftester->messages[] = "[FAILED] fixing table " . $fields[1]."";
212
  *
213
  * @return bool
214
  */
215
+ protected function _dbCheckForeignKeyConstraint(Fooman_Common_Model_Selftester $selftester, $fields, $installer, $localError)
216
  {
217
  try {
218
+ $constraints = $installer->getConnection()->getForeignKeys($installer->getTable($fields[2]));
219
  if (!(isset($constraints[$installer->getTable($fields[1])]))) {
220
  throw new Exception(
221
  sprintf('Did not find constraint %s', $installer->getTable($fields[1]))
262
  protected function _dbCheckDbRow(Fooman_Common_Model_Selftester $selftester, $fields, $installer, $localError)
263
  {
264
  try {
265
+ $select = $installer->getConnection()->select()
266
+ ->from($installer->getTable($fields[1]));
267
+ $bind = array();
268
  foreach ($fields[2] as $key => $value) {
269
+ $bind[$key] = $value;
270
+ $select->where($installer->getConnection()->quoteIdentifier($key) . '= :' . $key);
271
  }
 
272
 
273
+ $result = $installer->getConnection()->fetchRow($select, $bind);
274
  if (!$result) {
275
  throw new Exception(
276
  sprintf('Did not find content in %s', $installer->getTable($fields[1]))
app/code/community/Fooman/Common/controllers/Adminhtml/SelftesterController.php CHANGED
@@ -22,7 +22,9 @@ class Fooman_Common_Adminhtml_SelftesterController extends Mage_Adminhtml_Contro
22
  {
23
 
24
  $module = $this->getRequest()->getParam('module');
25
- $selftester = Mage::getModel($module . '/selftester')->main();
 
 
26
  //Here we get db version of the given module code
27
  if (Mage::getModel('core/mysql4_resource')->getDbVersion($module . '_setup')) {
28
  $dbVersion = Mage::getModel('core/mysql4_resource')->getDbVersion($module . '_setup');
@@ -64,4 +66,4 @@ class Fooman_Common_Adminhtml_SelftesterController extends Mage_Adminhtml_Contro
64
  //of duplicates from the previous page loads.
65
  Mage::getSingleton('core/session')->getMesssages(true);
66
  }
67
- }
22
  {
23
 
24
  $module = $this->getRequest()->getParam('module');
25
+ $selftester = Mage::getModel($module . '/selftester')->main(
26
+ $this->getRequest()->getParam('fix') == 'true'
27
+ );
28
  //Here we get db version of the given module code
29
  if (Mage::getModel('core/mysql4_resource')->getDbVersion($module . '_setup')) {
30
  $dbVersion = Mage::getModel('core/mysql4_resource')->getDbVersion($module . '_setup');
66
  //of duplicates from the previous page loads.
67
  Mage::getSingleton('core/session')->getMesssages(true);
68
  }
69
+ }
app/code/community/Fooman/Common/etc/adminhtml.xml ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <adminhtml>
4
+ <layout>
5
+ <updates>
6
+ <foomancommon>
7
+ <file>fooman_common.xml</file>
8
+ </foomancommon>
9
+ </updates>
10
+ </layout>
11
+ <acl>
12
+ <resources>
13
+ <admin>
14
+ <children>
15
+ <foomancommon translate="title" module="foomancommon">
16
+ <title>Fooman Selftests</title>
17
+ <sort_order>-100</sort_order>
18
+ </foomancommon>
19
+ <system>
20
+ <children>
21
+ <config>
22
+ <children>
23
+ <foomancommon translate="title" module="foomancommon">
24
+ <title>Fooman</title>
25
+ <sort_order>50</sort_order>
26
+ </foomancommon>
27
+ </children>
28
+ </config>
29
+ </children>
30
+ </system>
31
+ </children>
32
+ </admin>
33
+ </resources>
34
+ </acl>
35
+ </adminhtml>
36
+ </config>
app/code/community/Fooman/Common/etc/config.xml CHANGED
@@ -9,7 +9,7 @@
9
  <config>
10
  <modules>
11
  <Fooman_Common>
12
- <version>1.1.15</version>
13
  </Fooman_Common>
14
  </modules>
15
  <global>
@@ -39,38 +39,12 @@
39
  </args>
40
  </adminhtml>
41
  </routers>
42
- </admin>
43
- <adminhtml>
44
- <layout>
45
- <updates>
46
- <foomancommon>
47
- <file>fooman_common.xml</file>
48
- </foomancommon>
49
- </updates>
50
- </layout>
51
- <acl>
52
- <resources>
53
- <admin>
54
- <children>
55
- <foomancommon translate="title" module="foomancommon">
56
- <title>Fooman Selftests</title>
57
- <sort_order>-100</sort_order>
58
- </foomancommon>
59
- <system>
60
- <children>
61
- <config>
62
- <children>
63
- <foomancommon translate="title" module="foomancommon">
64
- <title>Fooman</title>
65
- <sort_order>50</sort_order>
66
- </foomancommon>
67
- </children>
68
- </config>
69
- </children>
70
- </system>
71
- </children>
72
- </admin>
73
- </resources>
74
- </acl>
75
- </adminhtml>
76
- </config>
9
  <config>
10
  <modules>
11
  <Fooman_Common>
12
+ <version>1.2.4</version>
13
  </Fooman_Common>
14
  </modules>
15
  <global>
39
  </args>
40
  </adminhtml>
41
  </routers>
42
+ </admin>
43
+ <phpunit>
44
+ <suite>
45
+ <modules>
46
+ <Fooman_Common/>
47
+ </modules>
48
+ </suite>
49
+ </phpunit>
50
+ </config>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Fooman/Common/modman CHANGED
@@ -2,4 +2,6 @@
2
  ../../../../../app/design/adminhtml/default/default/layout/fooman_common.xml /app/design/adminhtml/default/default/layout/fooman_common.xml
3
  ../../../../../app/design/adminhtml/default/default/template/fooman/common/ /app/design/adminhtml/default/default/template/fooman/common/
4
  ../../../../../app/etc/modules/Fooman_Common.xml /app/etc/modules/Fooman_Common.xml
5
- ../../../../../app/locale/en_US/Fooman_Common.csv /app/locale/en_US/Fooman_Common.csv
 
 
2
  ../../../../../app/design/adminhtml/default/default/layout/fooman_common.xml /app/design/adminhtml/default/default/layout/fooman_common.xml
3
  ../../../../../app/design/adminhtml/default/default/template/fooman/common/ /app/design/adminhtml/default/default/template/fooman/common/
4
  ../../../../../app/etc/modules/Fooman_Common.xml /app/etc/modules/Fooman_Common.xml
5
+ ../../../../../app/locale/de_De/Fooman_Common.csv /app/locale/de_De/Fooman_Common.csv
6
+ ../../../../../app/locale/en_US/Fooman_Common.csv /app/locale/en_US/Fooman_Common.csv
7
+ ../../../../../app/locale/it_IT/Fooman_Common.csv /app/locale/it_IT/Fooman_Common.csv
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Fooman_Common</name>
4
- <version>1.1.17</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
7
  <channel>community</channel>
@@ -10,9 +10,9 @@
10
  <description>add Fooman section to back-end, provide base selftest</description>
11
  <notes>1.1.15 release</notes>
12
  <authors><author><name>Kristof Ringleff</name><user>auto-converted</user><email>kristof@fooman.co.nz</email></author><author><name>Kristof Ringleff</name><user>auto-converted</user><email>kristof@fooman.co.nz</email></author></authors>
13
- <date>2014-07-18</date>
14
- <time>04:08:18</time>
15
- <contents><target name="magecommunity"><dir name="Fooman"><dir name="Common"><dir name="Block"><dir name="Adminhtml"><file name="Extensioninfo.php" hash="48a6de0af77c57b5c1a4f62a7b8c717c"/></dir></dir><dir name="Helper"><file name="Data.php" hash="27625b371977689df6ff51cbe80c236d"/></dir><dir name="Model"><dir name="Selftester"><file name="Abstract.php" hash="b6cf37236718450bdfd7d2d7c0b106f5"/><file name="Db.php" hash="5f5a01cc1f642640c37b86feccbee961"/></dir><file name="Selftester.php" hash="3cd38b42062004004b50052d2b2efa60"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="SelftesterController.php" hash="67963c4d09fa95b389e8de4742f317dd"/></dir></dir><dir name="etc"><file name="config.xml" hash="28c85d634bdb4c87e9dfc7de4a19d4f7"/><file name="system.xml" hash="062afadb28b77803a0cf5fbdb472f23b"/></dir><file name="LICENSE.txt" hash="34410d4f566fdc33f094525a2d9865fa"/><file name="modman" hash="aa860cf2bae93db339b48ffc27d10955"/></dir></dir></target><target name="mage"><dir name="app"><dir name="etc"><dir name="modules"><file name="Fooman_Common.xml" hash="2555b2dd668865790df287b5cca61e35"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="fooman_common.xml" hash="a7e4ac18fcfcac0080b1aef960fe9c94"/></dir><dir name="template"><dir name="fooman"><dir name="common"><file name="selftester.phtml" hash="12c4225cfb71490f2b297f50650d1185"/></dir></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="Fooman_Common.csv" hash="d15584a4da95d0a802e048a99a844723"/></dir></target></contents>
16
  <compatible/>
17
  <dependencies/>
18
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Fooman_Common</name>
4
+ <version>1.2.5</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
7
  <channel>community</channel>
10
  <description>add Fooman section to back-end, provide base selftest</description>
11
  <notes>1.1.15 release</notes>
12
  <authors><author><name>Kristof Ringleff</name><user>auto-converted</user><email>kristof@fooman.co.nz</email></author><author><name>Kristof Ringleff</name><user>auto-converted</user><email>kristof@fooman.co.nz</email></author></authors>
13
+ <date>2014-11-05</date>
14
+ <time>06:48:56</time>
15
+ <contents><target name="magecommunity"><dir name="Fooman"><dir name="Common"><dir name="Block"><dir name="Adminhtml"><file name="Extensioninfo.php" hash="48a6de0af77c57b5c1a4f62a7b8c717c"/></dir></dir><dir name="Helper"><file name="Data.php" hash="e6d3700e8926d50abdc0d590b66d3aea"/></dir><dir name="Model"><dir name="Selftester"><file name="Abstract.php" hash="9c733a5af8f6f7068761beb5ae4a2955"/><file name="Db.php" hash="f28cc3d28bb98cd0b982ae79eb5263d2"/></dir><file name="Selftester.php" hash="f716efea116bb949895f3f783f023c65"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="SelftesterController.php" hash="10ab323884db2d9215eae703c3d1ca50"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="f8d8e76a8e8f9a20be6e8d8dae8043f1"/><file name="config.xml" hash="ae40b1ff299f7188f7c07b261fbfb252"/><file name="system.xml" hash="062afadb28b77803a0cf5fbdb472f23b"/></dir><file name="LICENSE.txt" hash="34410d4f566fdc33f094525a2d9865fa"/><file name="modman" hash="d0df72f800327ae8436bbb6bf76bde5a"/></dir></dir></target><target name="mage"><dir name="app"><dir name="etc"><dir name="modules"><file name="Fooman_Common.xml" hash="2555b2dd668865790df287b5cca61e35"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="fooman_common.xml" hash="a7e4ac18fcfcac0080b1aef960fe9c94"/></dir><dir name="template"><dir name="fooman"><dir name="common"><file name="selftester.phtml" hash="12c4225cfb71490f2b297f50650d1185"/></dir></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="Fooman_Common.csv" hash="d15584a4da95d0a802e048a99a844723"/></dir></target></contents>
16
  <compatible/>
17
  <dependencies/>
18
  </package>