Skip to content

Commit 40d45bb

Browse files
authored
Merge pull request #709 from AgelxNash/events
OnBeforeMinifyCss
2 parents 0194621 + bbefb5a commit 40d45bb

5 files changed

Lines changed: 61 additions & 18 deletions

File tree

install/setup.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1102,6 +1102,7 @@ REPLACE INTO `{PREFIX}system_eventnames`
11021102
('214','OnManagerMenuPrerender','2',''),
11031103
('215','OnManagerTopPrerender','2',''),
11041104
('224','OnDocFormTemplateRender','1','Documents'),
1105+
('225','OnBeforeMinifyCss', '1', ''),
11051106
('999','OnPageUnauthorized','1',''),
11061107
('1000','OnPageNotFound','1',''),
11071108
('1001','OnFileBrowserUpload','1','File Browser Events');

manager/includes/document.parser.class.inc.php

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ public function __construct()
203203

204204
$this->q = self::_getCleanQueryString();
205205
}
206-
206+
207207
final public function __clone()
208208
{
209209
}
@@ -5442,8 +5442,8 @@ public function invokeEvent($evtName, $extParams = array())
54425442
$this->pluginsCode .= '</fieldset><br />';
54435443
$this->pluginsTime["{$evtName} / {$pluginName}"] += $eventtime;
54445444
}
5445-
if ($e->_output != '') {
5446-
$results[] = $e->_output;
5445+
if ($e->getOutput() != '') {
5446+
$results[] = $e->getOutput();
54475447
}
54485448
if ($e->_propagate != true) {
54495449
break;
@@ -6704,7 +6704,11 @@ class SystemEvent
67046704
{
67056705
public $name = '';
67066706
public $_propagate = true;
6707-
public $_output = '';
6707+
/**
6708+
* @deprecated use setOutput(), getOutput()
6709+
* @var string
6710+
*/
6711+
public $_output;
67086712
public $activated = false;
67096713
public $activePlugin = '';
67106714
public $params = array();
@@ -6743,12 +6747,29 @@ public function alert($msg)
67436747
* Output
67446748
*
67456749
* @param string $msg
6750+
* @deprecated see addOutput
67466751
*/
67476752
public function output($msg)
67486753
{
67496754
$this->_output .= $msg;
67506755
}
67516756

6757+
/**
6758+
* @param mixed $data
6759+
*/
6760+
public function setOutput($data)
6761+
{
6762+
$this->_output = $data;
6763+
}
6764+
6765+
/**
6766+
* @return mixed
6767+
*/
6768+
public function getOutput()
6769+
{
6770+
return $this->_output;
6771+
}
6772+
67526773
/**
67536774
* Stop event propogation
67546775
*/
@@ -6761,7 +6782,7 @@ public function _resetEventObject()
67616782
{
67626783
unset ($this->returnedValues);
67636784
$this->name = "";
6764-
$this->_output = "";
6785+
$this->setOutput(null);
67656786
$this->_propagate = true;
67666787
$this->activated = false;
67676788
}

manager/includes/header.inc.php

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,19 +30,36 @@
3030
if ($modx->config['manager_theme'] == 'default') {
3131
if (!file_exists(MODX_MANAGER_PATH . 'media/style/' . $modx->config['manager_theme'] . '/css/styles.min.css')
3232
&& is_writable(MODX_MANAGER_PATH . 'media/style/' . $modx->config['manager_theme'] . '/css')) {
33+
$files = array(
34+
'bootstrap' => MODX_MANAGER_PATH . 'media/style/common/bootstrap/css/bootstrap.min.css',
35+
'font-awesome' => MODX_MANAGER_PATH . 'media/style/common/font-awesome/css/font-awesome.min.css',
36+
'fonts' => MODX_MANAGER_PATH . 'media/style/' . $modx->config['manager_theme'] . '/css/fonts.css',
37+
'forms' => MODX_MANAGER_PATH . 'media/style/' . $modx->config['manager_theme'] . '/css/forms.css',
38+
'mainmenu' => MODX_MANAGER_PATH . 'media/style/' . $modx->config['manager_theme'] . '/css/mainmenu.css',
39+
'tree' => MODX_MANAGER_PATH . 'media/style/' . $modx->config['manager_theme'] . '/css/tree.css',
40+
'custom' => MODX_MANAGER_PATH . 'media/style/' . $modx->config['manager_theme'] . '/css/custom.css',
41+
'tabpane' => MODX_MANAGER_PATH . 'media/style/' . $modx->config['manager_theme'] . '/css/tabpane.css',
42+
'contextmenu' => MODX_MANAGER_PATH . 'media/style/' . $modx->config['manager_theme'] . '/css/contextmenu.css',
43+
'index' => MODX_MANAGER_PATH . 'media/style/' . $modx->config['manager_theme'] . '/css/index.css',
44+
'main' => MODX_MANAGER_PATH . 'media/style/' . $modx->config['manager_theme'] . '/css/main.css'
45+
);
46+
$evtOut = $modx->invokeEvent('OnBeforeMinifyCss', array(
47+
'files' => $files,
48+
'source' => 'manager',
49+
'theme' => $modx->config['manager_theme']
50+
));
51+
switch (true) {
52+
case empty($evtOut):
53+
case is_array($evtOut) && count($evtOut) === 0:
54+
break;
55+
case is_array($evtOut) && count($evtOut) === 1:
56+
$files = $evtOut[0];
57+
break;
58+
default:
59+
$modx->webAlertAndQuit(sprintf($_lang['invalid_event_response'], 'OnBeforeMinifyManagerCss'));
60+
}
3361
require_once MODX_BASE_PATH . 'assets/lib/Formatter/CSSMinify.php';
34-
$minifier = new Formatter\CSSMinify();
35-
$minifier->addFile(MODX_MANAGER_PATH . 'media/style/common/bootstrap/css/bootstrap.min.css');
36-
$minifier->addFile(MODX_MANAGER_PATH . 'media/style/common/font-awesome/css/font-awesome.min.css');
37-
$minifier->addFile(MODX_MANAGER_PATH . 'media/style/' . $modx->config['manager_theme'] . '/css/fonts.css');
38-
$minifier->addFile(MODX_MANAGER_PATH . 'media/style/' . $modx->config['manager_theme'] . '/css/forms.css');
39-
$minifier->addFile(MODX_MANAGER_PATH . 'media/style/' . $modx->config['manager_theme'] . '/css/mainmenu.css');
40-
$minifier->addFile(MODX_MANAGER_PATH . 'media/style/' . $modx->config['manager_theme'] . '/css/tree.css');
41-
$minifier->addFile(MODX_MANAGER_PATH . 'media/style/' . $modx->config['manager_theme'] . '/css/custom.css');
42-
$minifier->addFile(MODX_MANAGER_PATH . 'media/style/' . $modx->config['manager_theme'] . '/css/tabpane.css');
43-
$minifier->addFile(MODX_MANAGER_PATH . 'media/style/' . $modx->config['manager_theme'] . '/css/contextmenu.css');
44-
$minifier->addFile(MODX_MANAGER_PATH . 'media/style/' . $modx->config['manager_theme'] . '/css/index.css');
45-
$minifier->addFile(MODX_MANAGER_PATH . 'media/style/' . $modx->config['manager_theme'] . '/css/main.css');
62+
$minifier = new Formatter\CSSMinify($files);
4663
$css = $minifier->minify();
4764
file_put_contents(
4865
MODX_MANAGER_PATH . 'media/style/' . $modx->config['manager_theme'] . '/css/styles.min.css',

manager/includes/lang/english.inc.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1503,3 +1503,5 @@
15031503
$_lang['manager_menu_position_title'] = 'Main menu position';
15041504
$_lang['manager_menu_position_top'] = 'top';
15051505
$_lang['manager_menu_position_left'] = 'left';
1506+
1507+
$_lang['invalid_event_response'] = 'The %s event has ivalid output';

manager/includes/lang/russian-UTF8.inc.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1474,4 +1474,6 @@
14741474

14751475
$_lang['manager_menu_position_title'] = 'Расположение основного меню';
14761476
$_lang['manager_menu_position_top'] = 'вверху';
1477-
$_lang['manager_menu_position_left'] = 'слева';
1477+
$_lang['manager_menu_position_left'] = 'слева';
1478+
1479+
$_lang['invalid_event_response'] = 'Событие %s вернуло неверный результат';

0 commit comments

Comments
 (0)