Skip to content

Commit f2bd9da

Browse files
committed
Change one line in config.xml / cronjob
2 parents ef9adcb + 82fa433 commit f2bd9da

12 files changed

Lines changed: 405 additions & 260 deletions

File tree

app/code/community/Firegento/AdminLogger/Block/Adminhtml/History/Grid.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,6 @@ public function showOldContent($oldContent) {
211211
* @return string
212212
*/
213213
private function wrapColor($string, $color) {
214-
return '<span style="font-weight: bold; color: ' . $color . '">' . $string . '</span>';
214+
return '<div style="font-weight: bold; color: ' . $color . '; overflow: auto; max-height: 100px; max-width: 400px;">' . $string . '</div>';
215215
}
216216
}

app/code/community/Firegento/AdminLogger/Model/Observer.php

Lines changed: 0 additions & 207 deletions
Original file line numberDiff line numberDiff line change
@@ -1,214 +1,7 @@
11
<?php
22
class Firegento_AdminLogger_Model_Observer {
3-
const ACTION_SAVE = 'save';
4-
const ACTION_DELETE = 'delete';
53
const XML_PATH_ADMINLOGGER_CLEAN_ENABLED = 'admin/firegento_adminlogger/enable_cleaning';
64

7-
/**
8-
* @var Firegento_AdminLogger_Model_History_Diff
9-
*/
10-
private $diffModel;
11-
12-
/**
13-
* @var Firegento_AdminLogger_Model_History_Data
14-
*/
15-
private $dataModel;
16-
17-
/**
18-
* @var string is either self::ACTION_SAVE or self::ACTION_DELETE;
19-
*/
20-
private $modelAction = '';
21-
/**
22-
* @param Varien_Event_Observer $observer
23-
*/
24-
public function modelSaveAfter(Varien_Event_Observer $observer) {
25-
$this->modelAction = self::ACTION_SAVE;
26-
$this->storeByObserver($observer);
27-
}
28-
29-
private $modelSaveBeforeIds = array();
30-
/**
31-
* @param Varien_Event_Observer $observer
32-
*/
33-
public function modelSaveBefore(Varien_Event_Observer $observer) {
34-
/**
35-
* @var $savedObject Mage_Core_Model_Abstract
36-
*/
37-
$savedObject = $observer->getObject();
38-
$this->modelSaveBeforeIds[$this->getObjectHash($savedObject)] = $savedObject->getId();
39-
}
40-
41-
/**
42-
* @param Varien_Event_Observer $observer
43-
*/
44-
public function modelDeleteAfter(Varien_Event_Observer $observer) {
45-
$this->modelAction = self::ACTION_DELETE;
46-
$this->storeByObserver($observer);
47-
}
48-
49-
/**
50-
* @param object $savedObject
51-
* @return string
52-
*/
53-
protected function getObjectHash ($savedObject) {
54-
return spl_object_hash($savedObject);
55-
}
56-
57-
/**
58-
* @return int
59-
*/
60-
private function getUserId() {
61-
if ($this->getUser()) {
62-
$userId = $this->getUser()
63-
->getUserId();
64-
} else {
65-
$userId = 0;
66-
}
67-
return $userId;
68-
}
69-
70-
/**
71-
* @return string
72-
*/
73-
private function getUserName() {
74-
if ($this->getUser()) {
75-
$userName = $this->getUser()
76-
->getUsername();
77-
} else {
78-
$userName = '';
79-
}
80-
return $userName;
81-
}
82-
83-
/**
84-
* @return Mage_Admin_Model_User|NULL
85-
*/
86-
private function getUser() {
87-
/**
88-
* @var $session Mage_Admin_Model_Session
89-
*/
90-
$session = Mage::getSingleton('admin/session');
91-
return $session->getUser();
92-
}
93-
94-
/**
95-
* @return string
96-
*/
97-
private function getUserAgent() {
98-
return (isset($_SERVER['HTTP_USER_AGENT']) ? (string)$_SERVER['HTTP_USER_AGENT'] : '');
99-
}
100-
101-
/**
102-
* @return MageTest_Core_Helper_Http
103-
*/
104-
private function getRemoteAddr() {
105-
return Mage::helper('core/http')
106-
->getRemoteAddr();
107-
}
108-
109-
/**
110-
* @param Mage_Core_Model_Abstract $savedModel
111-
* @return int
112-
*/
113-
private function getAction(Mage_Core_Model_Abstract $savedModel) {
114-
if ($this->modelAction == self::ACTION_DELETE) {
115-
return Firegento_AdminLogger_Helper_Data::ACTION_DELETE;
116-
}
117-
if (
118-
isset($this->modelSaveBeforeIds[$this->getObjectHash($savedModel)])
119-
AND $this->modelSaveBeforeIds[$this->getObjectHash($savedModel)]
120-
) {
121-
return Firegento_AdminLogger_Helper_Data::ACTION_UPDATE;
122-
} else {
123-
return Firegento_AdminLogger_Helper_Data::ACTION_INSERT;
124-
}
125-
}
126-
127-
/**
128-
* @param Mage_Core_Model_Abstract $savedModel
129-
*/
130-
private function createHistoryForModelAction(Mage_Core_Model_Abstract $savedModel) {
131-
Mage::dispatchEvent(
132-
'firegento_adminlogger_log',
133-
array(
134-
'object_id' => $this->dataModel->getObjectId(),
135-
'object_type' => $this->dataModel->getObjectType(),
136-
'content' => $this->dataModel->getSerializedContent(),
137-
'content_diff' => $this->diffModel->getSerializedDiff(),
138-
'action' => $this->getAction($savedModel),
139-
)
140-
);
141-
}
142-
143-
/**
144-
* @param Varien_Event_Observer $observer
145-
*/
146-
public function log(Varien_Event_Observer $observer) {
147-
/**
148-
* @var $history Firegento_AdminLogger_Model_History
149-
*/
150-
$history = Mage::getModel('firegento_adminlogger/history');
151-
$history->setData(
152-
array(
153-
'object_id' => $observer->getObjectId(),
154-
'object_type' => $observer->getObjectType(),
155-
'content' => $observer->getContent(),
156-
'content_diff' => $observer->getContentDiff(),
157-
'user_agent' => $this->getUserAgent(),
158-
'ip' => $this->getRemoteAddr(),
159-
'user_id' => $this->getUserId(),
160-
'user_name' => $this->getUserName(),
161-
'action' => $observer->getAction(),
162-
'created_at' => now(),
163-
)
164-
);
165-
$history->save();
166-
167-
}
168-
169-
/**
170-
* @param Varien_Event_Observer $observer
171-
*/
172-
private function storeByObserver(Varien_Event_Observer $observer) {
173-
/**
174-
* @var $savedModel Mage_Core_Model_Abstract
175-
*/
176-
$savedModel = $observer->getObject();
177-
if (
178-
!$this->isExcludedClass($savedModel)
179-
) {
180-
$this->dataModel = Mage::getModel('firegento_adminlogger/history_data', $savedModel);
181-
$this->diffModel = Mage::getModel('firegento_adminlogger/history_diff', $this->dataModel);
182-
if (!$this->isUpdate($savedModel) OR $this->diffModel->hasChanged()) {
183-
$this->createHistoryForModelAction($savedModel);
184-
}
185-
}
186-
}
187-
188-
/**
189-
* @param Mage_Core_Model_Abstract $savedModel
190-
* @return bool
191-
*/
192-
private function isExcludedClass(Mage_Core_Model_Abstract $savedModel) {
193-
// skip logging for some classes
194-
$objectTypeExcludes = array_keys(Mage::getStoreConfig('firegento_adminlogger_config/exclude/object_types'));
195-
$objectTypeExcludesFiltered = array_filter(
196-
$objectTypeExcludes,
197-
function ($className) use($savedModel) {
198-
return is_a($savedModel, $className);
199-
}
200-
);
201-
return (count($objectTypeExcludesFiltered) > 0);
202-
}
203-
204-
/**
205-
* @param Mage_Core_Model_Abstract $savedModel
206-
* @return bool
207-
*/
208-
private function isUpdate (Mage_Core_Model_Abstract $savedModel) {
209-
return $this->getAction($savedModel) == Firegento_AdminLogger_Helper_Data::ACTION_UPDATE;
210-
}
211-
2125
/**
2136
* Cleaning Database Entries
2147
*
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
<?php
2+
class Firegento_AdminLogger_Model_Observer_Log {
3+
/**
4+
* @param Varien_Event_Observer $observer
5+
*/
6+
public function log(Varien_Event_Observer $observer) {
7+
/**
8+
* @var $history Firegento_AdminLogger_Model_History
9+
*/
10+
$history = Mage::getModel('firegento_adminlogger/history');
11+
$history->setData(
12+
array(
13+
'object_id' => $observer->getObjectId(),
14+
'object_type' => $observer->getObjectType(),
15+
'content' => $observer->getContent(),
16+
'content_diff' => $observer->getContentDiff(),
17+
'user_agent' => $this->getUserAgent(),
18+
'ip' => $this->getRemoteAddr(),
19+
'user_id' => $this->getUserId(),
20+
'user_name' => $this->getUserName(),
21+
'action' => $observer->getAction(),
22+
'created_at' => now(),
23+
)
24+
);
25+
$history->save();
26+
}
27+
28+
/**
29+
* @return int
30+
*/
31+
private function getUserId() {
32+
if ($this->getUser()) {
33+
$userId = $this->getUser()
34+
->getUserId();
35+
} else {
36+
$userId = 0;
37+
}
38+
return $userId;
39+
}
40+
41+
/**
42+
* @return string
43+
*/
44+
private function getUserName() {
45+
if ($this->getUser()) {
46+
$userName = $this->getUser()
47+
->getUsername();
48+
} else {
49+
$userName = '';
50+
}
51+
return $userName;
52+
}
53+
54+
/**
55+
* @return Mage_Admin_Model_User|NULL
56+
*/
57+
private function getUser() {
58+
/**
59+
* @var $session Mage_Admin_Model_Session
60+
*/
61+
$session = Mage::getSingleton('admin/session');
62+
return $session->getUser();
63+
}
64+
65+
/**
66+
* @return string
67+
*/
68+
private function getUserAgent() {
69+
return (isset($_SERVER['HTTP_USER_AGENT']) ? (string)$_SERVER['HTTP_USER_AGENT'] : '');
70+
}
71+
72+
/**
73+
* @return MageTest_Core_Helper_Http
74+
*/
75+
private function getRemoteAddr() {
76+
return Mage::helper('core/http')
77+
->getRemoteAddr();
78+
}
79+
80+
}
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
<?php
2+
abstract class Firegento_AdminLogger_Model_Observer_Model_Abstract {
3+
/**
4+
* @var Mage_Core_Model_Abstract
5+
*/
6+
protected $savedModel;
7+
8+
/**
9+
* @var Firegento_AdminLogger_Model_History_Diff
10+
*/
11+
private $diffModel;
12+
13+
/**
14+
* @var Firegento_AdminLogger_Model_History_Data
15+
*/
16+
private $dataModel;
17+
18+
/**
19+
* @return int
20+
*/
21+
abstract protected function getAction();
22+
23+
/**
24+
* @param Varien_Event_Observer $observer
25+
*/
26+
public function modelAfter(Varien_Event_Observer $observer) {
27+
$this->storeByObserver($observer);
28+
}
29+
30+
/**
31+
* @return bool
32+
*/
33+
protected function hasChanged() {
34+
return $this->diffModel->hasChanged();
35+
}
36+
37+
/**
38+
* @param Varien_Event_Observer $observer
39+
*/
40+
protected function storeByObserver(Varien_Event_Observer $observer) {
41+
/**
42+
* @var $savedModel Mage_Core_Model_Abstract
43+
*/
44+
$savedModel = $observer->getObject();
45+
$this->savedModel = $savedModel;
46+
if (
47+
!$this->isExcludedClass($savedModel)
48+
) {
49+
$this->dataModel = Mage::getModel('firegento_adminlogger/history_data', $savedModel);
50+
$this->diffModel = Mage::getModel('firegento_adminlogger/history_diff', $this->dataModel);
51+
if ($this->hasChanged()) {
52+
$this->createHistoryForModelAction();
53+
}
54+
}
55+
}
56+
57+
/**
58+
*/
59+
private function createHistoryForModelAction() {
60+
Mage::dispatchEvent(
61+
'firegento_adminlogger_log',
62+
array(
63+
'object_id' => $this->dataModel->getObjectId(),
64+
'object_type' => $this->dataModel->getObjectType(),
65+
'content' => $this->dataModel->getSerializedContent(),
66+
'content_diff' => $this->diffModel->getSerializedDiff(),
67+
'action' => $this->getAction(),
68+
)
69+
);
70+
}
71+
72+
/**
73+
* @return bool
74+
*/
75+
private function isExcludedClass() {
76+
$savedModel = $this->savedModel;
77+
// skip logging for some classes
78+
$objectTypeExcludes = array_keys(Mage::getStoreConfig('firegento_adminlogger_config/exclude/object_types'));
79+
$objectTypeExcludesFiltered = array_filter(
80+
$objectTypeExcludes,
81+
function ($className) use($savedModel) {
82+
return is_a($savedModel, $className);
83+
}
84+
);
85+
return (count($objectTypeExcludesFiltered) > 0);
86+
}
87+
88+
}

0 commit comments

Comments
 (0)