Magedebugger - Version 0.1.0

Version Notes

Version 0.1.0

Download this release

Release Info

Developer Magento Core Team
Extension Magedebugger
Version 0.1.0
Comparing to
See all releases


Version 0.1.0

app/code/local/Magestore/Magedebuger/Block/Adminhtml/Magedebuger.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Magestore_Magedebuger_Block_Adminhtml_Magedebuger extends Mage_Adminhtml_Block_Widget_Form
3
+ {
4
+ public function _prepareLayout()
5
+ {
6
+ parent::_prepareLayout();
7
+ $this->setTemplate('magedebuger/magedebuger.phtml');
8
+ return $this;
9
+ }
10
+
11
+ public function getBugFiles()
12
+ {
13
+ if (!$this->hasData('bug_files')) {
14
+ $bug_files = Mage::getModel('magedebuger/file')
15
+ ->getBugFiles();
16
+ $this->setData('bug_files', $bug_files);
17
+ }
18
+ return $this->getData('bug_files');
19
+ }
20
+ }
app/code/local/Magestore/Magedebuger/Block/Magedebuger.php ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Magestore_Magedebuger_Block_Magedebuger extends Mage_Core_Block_Template
3
+ {
4
+ public function _prepareLayout()
5
+ {
6
+ return parent::_prepareLayout();
7
+ }
8
+
9
+ public function getMageBugs()
10
+ {
11
+ if (!$this->hasData('magebugs')) {
12
+ $this->setData('magebugs', Mage::registry('magebugs'));
13
+ }
14
+ return $this->getData('magebugs');
15
+ }
16
+ }
app/code/local/Magestore/Magedebuger/Helper/Data.php ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Magestore_Magedebuger_Helper_Data extends Mage_Core_Helper_Abstract
4
+ {
5
+ public function getIpAddress()
6
+ {
7
+ return $_SERVER['REMOTE_ADDR'];
8
+ }
9
+
10
+ public function is_allowedIP()
11
+ {
12
+ $allowed_ips = Mage::getStoreConfig('magedebuger/general/allowed_ips');
13
+ $allowed_ips = explode(',',$allowed_ips);
14
+ if(!count($allowed_ips))
15
+ return false;
16
+ $ip = $this->getIpAddress();
17
+ if(in_array($ip,$allowed_ips))
18
+ return true;
19
+ else
20
+ return false;
21
+ }
22
+
23
+ public function var_dump($value,$name=null)
24
+ {
25
+ Mage::getSingleton('magedebuger/magedebuger')->call('var_dump',$value,$name);
26
+ }
27
+
28
+ public function print_r($value,$name=null)
29
+ {
30
+ Mage::getSingleton('magedebuger/magedebuger')->call('print_r',$value,$name);
31
+ }
32
+
33
+ public function echo_m($value,$name=null)
34
+ {
35
+ Mage::getSingleton('magedebuger/magedebuger')->call('echo',$value,$name);
36
+ }
37
+
38
+ public function print_m($value,$name=null)
39
+ {
40
+ Mage::getSingleton('magedebuger/magedebuger')->call('print',$value,$name);
41
+ }
42
+ }
app/code/local/Magestore/Magedebuger/Model/File.php ADDED
@@ -0,0 +1,90 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Magestore_Magedebuger_Model_File extends Varien_Object{
4
+
5
+ private $_file = null;
6
+ private $_filepath = null;
7
+
8
+ public function open($fileId,$mode = 'w')
9
+ {
10
+ $this->_createFolder();
11
+ $this->_filepath = $this->_getFolder().DS.$fileId.".mbg";
12
+ $this->_file = fopen($this->_filepath,$mode);
13
+ return $this;
14
+ }
15
+
16
+ public function save($content)
17
+ {
18
+ if(!$this->_file)
19
+ return $this;
20
+ try{
21
+ fwrite($this->_file,$content);
22
+ return $this;
23
+ } catch(Exception $e){
24
+ return $this;
25
+ }
26
+ }
27
+
28
+ public function getContent()
29
+ {
30
+ if(!$this->_file)
31
+ return $this;
32
+ try{
33
+ $contents = file_get_contents($this->_filepath);
34
+ return $contents;
35
+ } catch(Exception $e){
36
+ return null;
37
+ }
38
+ }
39
+
40
+ public function close()
41
+ {
42
+ if($this->_file)
43
+ fclose($this->_file);
44
+
45
+ return $this;
46
+ }
47
+
48
+ public function getBugFiles()
49
+ {
50
+ return $this->_readdir($this->_getFolder());
51
+ }
52
+
53
+ protected function _readdir($dir)
54
+ {
55
+ $files = array();
56
+ if(!is_dir($dir))
57
+ return $files;
58
+ foreach( scandir( $dir ) as $item ){
59
+ if( !strcmp( $item, '.' ) || !strcmp( $item, '..' ) )
60
+ continue;
61
+ $size = filesize($dir.DS.$item);
62
+ $files[] = new Varien_Object(array('name'=>$item,'size'=>$size));
63
+ }
64
+ return $files;
65
+ }
66
+
67
+ protected function _createFolder()
68
+ {
69
+ if(!is_dir($this->_getFolder()))
70
+ {
71
+ try{
72
+ mkdir($this->_getFolder());
73
+ chmod($this->_getFolder(),0755);
74
+ return true;
75
+ }catch(Exception $e){
76
+ return false;
77
+ }
78
+ }
79
+ }
80
+
81
+ protected function _getFolder()
82
+ {
83
+ if(!$this->getData('folder'))
84
+ {
85
+ $folder = Mage::getBaseDir('var').DS.'magedebuger';
86
+ $this->setData('folder',$folder);
87
+ }
88
+ return $this->getData('folder');
89
+ }
90
+ }
app/code/local/Magestore/Magedebuger/Model/Magedebuger.php ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Magestore_Magedebuger_Model_Magedebuger extends Varien_Object
4
+ {
5
+ public function var_dump($value,$name=null)
6
+ {
7
+ $this->call('var_dump',$value,$name);
8
+ }
9
+
10
+ public function print_r($value,$name=null)
11
+ {
12
+ $this->call('print_r',$value,$name);
13
+ }
14
+
15
+ public function echo_m($value,$name=null)
16
+ {
17
+ $this->call('echo',$value,$name);
18
+ }
19
+
20
+ public function print_m($value,$name=null)
21
+ {
22
+ $this->call('print',$value,$name);
23
+ }
24
+
25
+ public function call($fval,$value,$name=null)
26
+ {
27
+ if(!Mage::helper('magedebuger')->is_allowedIP())
28
+ return $this;
29
+ $this->save($fval,$value,$name);
30
+ return $this;
31
+ }
32
+
33
+ public function getBugSession()
34
+ {
35
+ if(!Mage::getSingleton('magedebuger/session')->getData('bug_session'))
36
+ {
37
+ $bug_session = Mage::helper('magedebuger')->getIpAddress();
38
+ $bug_session .= '_'.md5(time());
39
+ Mage::getSingleton('magedebuger/session')->setData('bug_session',$bug_session);
40
+ }
41
+ return Mage::getSingleton('magedebuger/session')->getData('bug_session');
42
+ }
43
+
44
+ public function loadBugs($params = array())
45
+ {
46
+ $bug_session = Mage::getSingleton('magedebuger/session')
47
+ ->getData('bug_session');
48
+ if(!$bug_session)
49
+ return array();
50
+ $file = Mage::getModel('magedebuger/file');
51
+ $file->open($bug_session,'a');
52
+ $serialized_bug = $file->getContent();
53
+ $file->close();
54
+ return $this->_parse($serialized_bug);
55
+ }
56
+
57
+ public function clear()
58
+ {
59
+ $bug_session = Mage::getSingleton('magedebuger/session')
60
+ ->getData('bug_session');
61
+ if(!$bug_session)
62
+ return $this;
63
+ $file = Mage::getModel('magedebuger/file');
64
+ $file->open($bug_session,'w');
65
+ $file->save(null);
66
+ $file->close();
67
+ return $this;
68
+ }
69
+
70
+ public function save($fval,$value,$name=null)
71
+ {
72
+ $serialized_value = serialize($value);
73
+ $bug = $fval."****".$serialized_value."****".$name."\n";
74
+ $file = Mage::getModel('magedebuger/file');
75
+ $file->open($this->getBugSession(),'a');
76
+ $file->save($bug);
77
+ $file->close();
78
+ return $this;
79
+ }
80
+
81
+ protected function _parse($serialized_bug)
82
+ {
83
+ $bugs = array();
84
+ $bugArr = explode("\n",$serialized_bug);
85
+ if(! count($bugArr))
86
+ return $this;
87
+
88
+ $i = 0;
89
+ foreach($bugArr as $bug)
90
+ {
91
+ $bugs[$i++] = explode('****',$bug);
92
+ }
93
+ return $bugs;
94
+ }
95
+ }
app/code/local/Magestore/Magedebuger/Model/Session.php ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Magestore_Magedebuger_Model_Session extends Mage_Core_Model_Session
4
+ {
5
+
6
+ }
app/code/local/Magestore/Magedebuger/controllers/Adminhtml/MagedebugerController.php ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Magestore_Magedebuger_Adminhtml_MagedebugerController extends Mage_Adminhtml_Controller_Action
4
+ {
5
+ protected function _initAction() {
6
+ $this->loadLayout()
7
+ ->_setActiveMenu('system/magedebuger')
8
+ ->_addBreadcrumb(Mage::helper('adminhtml')->__('Cache Magebugs'), Mage::helper('adminhtml')->__('Cache Magebugs'));
9
+
10
+ return $this;
11
+ }
12
+
13
+ public function indexAction() {
14
+ $this->_initAction()
15
+ ->renderLayout();
16
+ }
17
+
18
+ public function clearAction()
19
+ {
20
+ $cache_path = Mage::getBaseDir('var').DS.'magedebuger';
21
+ $ioFile = new Varien_Io_File();
22
+ try{
23
+ $ioFile->rmdir($cache_path,true);
24
+ Mage::getSingleton('core/session')
25
+ ->addSuccess(Mage::helper('adminhtml')->__('removed successful'));
26
+ $this->_redirect('*/*/index');
27
+ } catch(Exception $e){
28
+ Mage::getSingleton('core/session')
29
+ ->addSuccess(Mage::helper('adminhtml')->__('removed failed'));
30
+ $this->_redirect('*/*/index');
31
+ }
32
+ }
33
+ }
app/code/local/Magestore/Magedebuger/controllers/IndexController.php ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Magestore_Magedebuger_IndexController extends Mage_Core_Controller_Front_Action
3
+ {
4
+ public function indexAction()
5
+ {
6
+ if(!Mage::helper('magedebuger')->is_allowedIP())
7
+ {
8
+ $this->_redirect('');
9
+ return;
10
+ }
11
+
12
+ $debugger = Mage::getModel('magedebuger/magedebuger');
13
+
14
+ $magebugs = $debugger->loadBugs();
15
+
16
+ Mage::register('magebugs',$magebugs);
17
+
18
+ $this->loadLayout();
19
+ $this->renderLayout();
20
+ }
21
+
22
+ public function clearAction()
23
+ {
24
+ if(!Mage::helper('magedebuger')->is_allowedIP())
25
+ {
26
+ $this->_redirect('');
27
+ return;
28
+ }
29
+ Mage::getModel('magedebuger/magedebuger')->clear();
30
+ $this->_redirect('*/*/index',array());
31
+ }
32
+ }
app/code/local/Magestore/Magedebuger/etc/config.xml ADDED
@@ -0,0 +1,119 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <Magestore_Magedebuger>
5
+ <version>0.1.0</version>
6
+ </Magestore_Magedebuger>
7
+ </modules>
8
+ <frontend>
9
+ <routers>
10
+ <magedebuger>
11
+ <use>standard</use>
12
+ <args>
13
+ <module>Magestore_Magedebuger</module>
14
+ <frontName>magedebugger</frontName>
15
+ </args>
16
+ </magedebuger>
17
+ </routers>
18
+ <layout>
19
+ <updates>
20
+ <magedebuger>
21
+ <file>magedebuger.xml</file>
22
+ </magedebuger>
23
+ </updates>
24
+ </layout>
25
+ </frontend>
26
+ <admin>
27
+ <routers>
28
+ <magedebuger>
29
+ <use>admin</use>
30
+ <args>
31
+ <module>Magestore_Magedebuger</module>
32
+ <frontName>magedebuger</frontName>
33
+ </args>
34
+ </magedebuger>
35
+ </routers>
36
+ </admin>
37
+ <adminhtml>
38
+ <menu>
39
+ <system>
40
+ <children>
41
+ <magedebuger module="magedebuger">
42
+ <title>Magebugger Cache</title>
43
+ <sort_order>100</sort_order>
44
+ <action>magedebuger/adminhtml_magedebuger</action>
45
+ </magedebuger>
46
+ </children>
47
+ </system>
48
+ </menu>
49
+ <acl>
50
+ <resources>
51
+ <all>
52
+ <title>Allow Everything</title>
53
+ </all>
54
+ <admin>
55
+ <children>
56
+ <Magestore_Magedebuger>
57
+ <title>Magedebugger Module</title>
58
+ <sort_order>10</sort_order>
59
+ </Magestore_Magedebuger>
60
+ </children>
61
+ </admin>
62
+ </resources>
63
+ </acl>
64
+ <acl>
65
+ <resources>
66
+ <all>
67
+ <title>Allow Everything</title>
68
+ </all>
69
+ <admin>
70
+ <children>
71
+ <system>
72
+ <children>
73
+ <config>
74
+ <children>
75
+ <magedebuger translate="title" module="magedebuger">
76
+ <title>Magede bugger</title>
77
+ <sort_order>50</sort_order>
78
+ </magedebuger>
79
+ </children>
80
+ </config>
81
+ </children>
82
+ </system>
83
+ </children>
84
+ </admin>
85
+ </resources>
86
+ </acl>
87
+ <layout>
88
+ <updates>
89
+ <magedebuger>
90
+ <file>magedebuger.xml</file>
91
+ </magedebuger>
92
+ </updates>
93
+ </layout>
94
+ </adminhtml>
95
+ <global>
96
+ <models>
97
+ <magedebuger>
98
+ <class>Magestore_Magedebuger_Model</class>
99
+ </magedebuger>
100
+ </models>
101
+ <blocks>
102
+ <magedebuger>
103
+ <class>Magestore_Magedebuger_Block</class>
104
+ </magedebuger>
105
+ </blocks>
106
+ <helpers>
107
+ <magedebuger>
108
+ <class>Magestore_Magedebuger_Helper</class>
109
+ </magedebuger>
110
+ </helpers>
111
+ </global>
112
+ <default>
113
+ <magedebuger>
114
+ <general>
115
+ <allowed_ips>127.0.0.1,127.0.0.1</allowed_ips>
116
+ </general>
117
+ </magedebuger>
118
+ </default>
119
+ </config>
app/code/local/Magestore/Magedebuger/etc/system.xml ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <tabs>
4
+ <magestore translate="label">
5
+ <label>Magestore Extension</label>
6
+ <sort_order>400</sort_order>
7
+ </magestore>
8
+ </tabs>
9
+ <sections>
10
+ <magedebuger translate="label" module="magedebuger">
11
+ <class>separator-top</class>
12
+ <label>Mage debugger</label>
13
+ <tab>magestore</tab>
14
+ <frontend_type>text</frontend_type>
15
+ <sort_order>299</sort_order>
16
+ <show_in_default>1</show_in_default>
17
+ <show_in_website>1</show_in_website>
18
+ <show_in_store>1</show_in_store>
19
+ <groups>
20
+ <general translate="label">
21
+ <label>General Infomation</label>
22
+ <frontend_type>text</frontend_type>
23
+ <sort_order>1</sort_order>
24
+ <show_in_default>1</show_in_default>
25
+ <show_in_website>1</show_in_website>
26
+ <show_in_store>1</show_in_store>
27
+ <fields>
28
+ <allowed_ips translate="label">
29
+ <label>Allowed IP Address</label>
30
+ <frontend_type>textarea</frontend_type>
31
+ <sort_order>0</sort_order>
32
+ <show_in_default>1</show_in_default>
33
+ <show_in_website>1</show_in_website>
34
+ <show_in_store>1</show_in_store>
35
+ </allowed_ips>
36
+ </fields>
37
+ </general>
38
+ </groups>
39
+ </magedebuger>
40
+ </sections>
41
+ </config>
app/design/adminhtml/default/default/layout/magedebuger.xml ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <layout version="0.1.0">
3
+ <magedebuger_adminhtml_magedebuger_index>
4
+ <reference name="content">
5
+ <block type="magedebuger/adminhtml_magedebuger" name="magedebuger" />
6
+ </reference>
7
+ </magedebuger_adminhtml_magedebuger_index>
8
+ </layout>
app/design/adminhtml/default/default/template/magedebuger/magedebuger.phtml ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ <?php $bugFiles = $this->getBugFiles() ?>
3
+ <div class="entry-edit">
4
+ <div class="entry-edit-head">
5
+ <h4 class="icon-head head-account"><?php echo $this->__('Magebugger Cache Information')?></h4>
6
+ </div>
7
+ <div class="fieldset">
8
+ <table class="magebug-files-bound" ><tr><td>
9
+ <div id="magebug-files">
10
+ <?php if(count($bugFiles)):?>
11
+ <table class="magebug-files" cellpadding="0" cellspacing="0" >
12
+ <tr><th class="title"><?php echo $this->__('File Name')?></th>
13
+ <th class="value"><?php echo $this->__('Size')?></th></tr>
14
+ <?php foreach($bugFiles as $file): ?>
15
+ <tr><td class="title"><?php echo $file->getName() ?></td>
16
+ <td class="value"><?php echo $file->getSize() ?></td></tr>
17
+ <?php endforeach; ?>
18
+ </table>
19
+ <?php else: ?>
20
+ <div class="notice-msg" style="width:600px;font-weight:bold;padding:5px 20px 5px 50px;margin:0 0 10px 0;">
21
+ <?php echo $this->__('There are no bugs cache.') ?>
22
+ </div>
23
+ <?php endif; ?>
24
+ </div>
25
+ </td></tr>
26
+ <tr><td>
27
+ <form action="<?php echo $this->getUrl('*/*/clear') ?>" method="post" >
28
+ <button type="submit" >
29
+ <span>Clear Magebug Cache</span>
30
+ </button>
31
+ <input type="hidden" name="form_key" value="<?php echo $this->getFormKey()?>" />
32
+ </form>
33
+ </td></tr>
34
+ </table>
35
+ </div>
36
+ </div>
37
+ <style>
38
+ .magebug-files-bound{
39
+ margin:0 0 0 150px;
40
+ }
41
+ #magebug-files table.magebug-files{
42
+ width:600px;
43
+ margin:10px 0 10px 0;
44
+ border-top:1px solid #7f7f7f;
45
+ border-left:1px solid #7f7f7f;
46
+ }
47
+ .magebug-files th{
48
+ padding:5px 20px 5px 20px;
49
+ }
50
+ .magebug-files td{
51
+ padding:2px 20px 2px 20px;
52
+ }
53
+ .magebug-files th, .magebug-files td{
54
+ border-bottom:1px solid #7f7f7f;
55
+ border-right:1px solid #7f7f7f;
56
+ }
57
+ </style>
app/design/frontend/default/default/layout/magedebuger.xml ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <layout version="0.1.0">
3
+ <default>
4
+ <reference name="head">
5
+ <action method="addCss"><styleSheet>css/magestore/magedebuger.css</styleSheet></action>
6
+ </reference>
7
+ </default>
8
+ <magedebuger_index_index>
9
+ <remove name="header"/>
10
+ <remove name="footer"/>
11
+ <reference name="root">
12
+ <action method="setTemplate"><template>page/1column.phtml</template></action>
13
+ </reference>
14
+ <reference name="content">
15
+ <block type="magedebuger/magedebuger" name="magedebug" template="magedebuger/magedebuger.phtml" />
16
+ </reference>
17
+ </magedebuger_index_index>
18
+ </layout>
app/design/frontend/default/default/template/magedebuger/magedebuger.phtml ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ <?php $magebugs = $this->getMageBugs() ?>
3
+ <div id="magebugs">
4
+ <h2><?php echo $this->__('Mage Debugger')?></h2>
5
+ <?php if(!count($magebugs)):?>
6
+ <div class="note-msg">
7
+ <?php echo $this->__('The debug content is empty now.') ?>
8
+ </div>
9
+ <?php else: ?>
10
+ <table cellpadding="0" cellspacing="0">
11
+ <tr>
12
+ <th class="num"><?php echo $this->__('No')?></th>
13
+ <th class="title"><?php echo $this->__('Variable Name') ?></th>
14
+ <th class="value"><?php echo $this->__('Debug Value') ?></th>
15
+ </tr>
16
+ <?php $i=0 ?>
17
+ <?php for($j=count($magebugs);$j>0;$j--): ?>
18
+ <?php $bug = $magebugs[$j-1] ?>
19
+ <?php if(isset($bug[0]) && isset($bug[1])):?>
20
+ <?php $var_name = isset($bug[2]) ? $bug[2] : 'var' ?>
21
+ <?php $fval = $bug[0] ?>
22
+ <?php $value = unserialize($bug[1])?>
23
+ <?php $i++ ?>
24
+ <tr>
25
+ <td class="num"><?php echo $j?></td>
26
+ <td class="title"><?php echo $var_name?></td>
27
+ <td class="value">
28
+ <?php switch($fval) {
29
+ case 'var_dump':
30
+ var_dump($value);
31
+ break;
32
+ case 'echo':
33
+ echo($value);
34
+ break;
35
+ case 'print':
36
+ print($value);
37
+ break;
38
+ case 'print_r':
39
+ print_r($value);
40
+ break;
41
+ default:
42
+ var_dump($value);
43
+ } ?>
44
+ </td>
45
+ </tr>
46
+ <?php endif; ?>
47
+ <?php endfor; ?>
48
+ </table>
49
+
50
+ <?php endif;?>
51
+ <div id="bound-button-clear-magebug">
52
+ <span><a href="<?php echo $this->getUrl('*/*/clear',array())?>">
53
+ <button type="button" class="form-button button">
54
+ <span><?php echo $this->__('Clear')?></span></a>
55
+ </button>
56
+ </a></span>
57
+ <span>
58
+ <a href="<?php echo $this->getUrl('*/*/*',array())?>">
59
+ <button type="button" class="form-button button">
60
+ <span><?php echo $this->__('Refresh')?></span></a>
61
+ </button>
62
+ </a><span>
63
+ </div>
64
+ </div>
65
+ <div id="magestore-power">
66
+ <div class="magestore-line right">&nbsp;</div>
67
+ <div class="clear fix">&nbsp;</div>
68
+ <span><?php echo $this->__('Power by')?></span>
69
+ <a href="http://www.magestore.com" target="_blank" >Magestore</a>
70
+ </div>
app/etc/modules/Magestore_Magedebuger.xml ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <Magestore_Magedebuger>
5
+ <active>true</active>
6
+ <codePool>local</codePool>
7
+ </Magestore_Magedebuger>
8
+ </modules>
9
+ </config>
package.xml ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <package>
3
+ <name>Magedebugger</name>
4
+ <version>0.1.0</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>
8
+ <extends/>
9
+ <summary>Our developers sometimes fell crazy when debug on customer live store. It's very hard to debug in silence. Now our Mage Debugger extension is a real magic. You can debug and see the result in your own screen, not the screen of store.</summary>
10
+ <description>Our developers sometimes fell crazy when debug on customer live store. It's very hard to debug in silence. Now our Mage Debugger extension is a real magic. You can debug and see the result in your own screen, not the screen of store.
11
+
12
+ Features:
13
+ + Easy to install
14
+ + Easy to use with a simple set of method
15
+ + Supported method: var_dump, print, print_r, echo.
16
+ Frontend screen url {your_base_url}magedebugger</description>
17
+ <notes>Version 0.1.0</notes>
18
+ <authors><author><name>Magestore.com</name><user>auto-converted</user><email>magestore@gmail.com</email></author></authors>
19
+ <date>2010-04-13</date>
20
+ <time>10:04:00</time>
21
+ <contents><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="magedebuger.xml" hash="9daf9e9eb6e5d8d96726425171713295"/></dir><dir name="template"><dir name="magedebuger"><file name="magedebuger.phtml" hash="9da03329541e3132c8394d22e96740b6"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="default"><dir name="default"><dir name="layout"><file name="magedebuger.xml" hash="b56dd9a9a48c664f45170f4cea2ce6aa"/></dir><dir name="template"><dir name="magedebuger"><file name="magedebuger.phtml" hash="a516a888215fd5b6e16631b8d08d84a1"/></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="default"><dir name="default"><dir name="css"><dir name="magestore"><file name="magedebuger.css" hash="e03f2e62658663ad91c09d8666e4f843"/></dir></dir></dir></dir></dir></target><target name="magelocal"><dir name="Magestore"><dir name="Magedebuger"><dir name="Block"><file name="Magedebuger.php" hash="b6b190796da2c28ba283d944c2586af2"/><dir name="Adminhtml"><file name="Magedebuger.php" hash="61a648b89054a5500bac753428d2a16d"/></dir></dir><dir name="controllers"><file name="IndexController.php" hash="19cb01018f6efee378b145891b96dd68"/><dir name="Adminhtml"><file name="MagedebugerController.php" hash="e69e082b8038e82eaf43bfdc33e0a919"/></dir></dir><dir name="etc"><file name="config.xml" hash="7c6951e1766c336fe01011a18c578ebd"/><file name="system.xml" hash="7d7cd995d313cc94472f8ec405876b63"/></dir><dir name="Helper"><file name="Data.php" hash="bdd3f524ea7f56fe5cc7fa647d921687"/></dir><dir name="Model"><file name="File.php" hash="b2023d1eca6ec21d436036848442ad7a"/><file name="Magedebuger.php" hash="d5fcc83ae0d27ecf52fdb6a99347e526"/><file name="Session.php" hash="6b9afb6c24791e4c6abb57d68aeda7e7"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Magestore_Magedebuger.xml" hash="96dc1d911bf04c02b2388ca58e71cad6"/></dir></target></contents>
22
+ <compatible/>
23
+ <dependencies/>
24
+ </package>
skin/frontend/default/default/css/magestore/magedebuger.css ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ #magebugs{
3
+ width:100%;
4
+ }
5
+
6
+ #magebugs table{
7
+ margin:20px auto;
8
+ border-top:1px solid #1f1f1f;
9
+ border-right:1px solid #1f1f1f;
10
+ width:100%;
11
+ }
12
+
13
+ #magebugs th{
14
+ padding:5px 20px 5px 20px;
15
+ }
16
+
17
+ #magebugs td{
18
+ padding:3px 20px 3px 20px;
19
+ }
20
+
21
+ #magebugs td.num{
22
+ width:5%;
23
+ }
24
+
25
+ #magebugs td.title{
26
+ width:25%;
27
+ }
28
+
29
+ #magebugs td.value{
30
+ width:70%;
31
+ }
32
+
33
+ #magebugs td, th{
34
+ border-bottom:1px solid #1f1f1f;
35
+ border-left:1px solid #1f1f1f;
36
+ text-align:left;
37
+ }
38
+
39
+ #bound-button-clear-magebug,#magestore-power{
40
+ width:100%;
41
+ text-align:right;
42
+ }
43
+
44
+ #bound-button-clear-magebug a{
45
+ text-decoration:none;
46
+ }
47
+
48
+ #magestore-power{
49
+ margin:10px 0 0 0;
50
+ font-family:tahoma;
51
+ font-size:12px;
52
+ }
53
+ #magestore-power span{
54
+ color:7f7f7f;
55
+ }
56
+ #magestore-power a{
57
+ font-weight:bold;
58
+ font-size:11px;
59
+ text-decoration:none;
60
+ }
61
+
62
+ .magestore-line{
63
+ border-top:1px solid #afafaf;
64
+ width:350px;
65
+ height:0px;
66
+ margin:30px 0 0 0;
67
+ }