mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-05-01 00:02:21 +09:00
commit
e1341584d3
42 changed files with 1693 additions and 730 deletions
|
|
@ -34,8 +34,8 @@ class addonController extends addon
|
|||
$site_module_info = Context::get('site_module_info');
|
||||
$site_srl = $site_module_info->site_srl;
|
||||
|
||||
$addon_path = _XE_PATH_ . 'files/cache/addons/';
|
||||
$addon_file = $addon_path . $site_srl . $type . '.acivated_addons.cache.php';
|
||||
$addon_path = RX_BASEDIR . 'files/cache/addons/';
|
||||
$addon_file = $addon_path . 'addons.' . intval($site_srl) . '.' . $type . '.php';
|
||||
|
||||
if($this->addon_file_called)
|
||||
{
|
||||
|
|
@ -46,7 +46,7 @@ class addonController extends addon
|
|||
|
||||
FileHandler::makeDir($addon_path);
|
||||
|
||||
if(!file_exists($addon_file))
|
||||
if(!file_exists($addon_file) || filemtime($addon_file) < filemtime(__FILE__))
|
||||
{
|
||||
$this->makeCacheFile($site_srl, $type);
|
||||
}
|
||||
|
|
@ -88,57 +88,78 @@ class addonController extends addon
|
|||
|| ($type == "pc" && $val->is_used != 'Y')
|
||||
|| ($type == "mobile" && $val->is_used_m != 'Y')
|
||||
|| ($gtype == 'global' && $val->is_fixed != 'Y')
|
||||
|| !is_dir(_XE_PATH_ . 'addons/' . $addon))
|
||||
|| !is_dir(RX_BASEDIR . 'addons/' . $addon))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
$extra_vars = unserialize($val->extra_vars);
|
||||
if(!$extra_vars)
|
||||
{
|
||||
$extra_vars = new stdClass;
|
||||
}
|
||||
|
||||
$mid_list = $extra_vars->mid_list;
|
||||
if(!is_array($mid_list) || count($mid_list) < 1)
|
||||
if(!is_array($mid_list))
|
||||
{
|
||||
$mid_list = NULL;
|
||||
$mid_list = array();
|
||||
}
|
||||
|
||||
|
||||
// Initialize
|
||||
$buff[] = '$before_time = microtime(true);';
|
||||
$buff[] = '$rm = \'' . $extra_vars->xe_run_method . "';";
|
||||
$buff[] = '$ml = array(';
|
||||
if($mid_list)
|
||||
|
||||
// Run method and mid list
|
||||
$run_method = $extra_vars->xe_run_method ?: 'run_selected';
|
||||
$buff[] = '$rm = \'' . $run_method . "';";
|
||||
$buff[] = '$ml = ' . var_export(array_fill_keys($mid_list, true), true) . ';';
|
||||
|
||||
// Addon filename
|
||||
$buff[] = sprintf('$addon_file = RX_BASEDIR . \'addons/%s/%s.addon.php\';', $addon, $addon);
|
||||
|
||||
// Addon configuration
|
||||
$buff[] = '$addon_info = unserialize(' . var_export(serialize($extra_vars), true) . ');';
|
||||
|
||||
// Decide whether to run in this mid
|
||||
if ($run_method === 'no_run_selected')
|
||||
{
|
||||
foreach($mid_list as $mid)
|
||||
{
|
||||
$buff[] = "'$mid' => 1,";
|
||||
}
|
||||
$buff[] = '$run = !isset($ml[$_m]);';
|
||||
}
|
||||
$buff[] = ');';
|
||||
$buff[] = sprintf('$addon_file = \'./addons/%s/%s.addon.php\';', $addon, $addon);
|
||||
|
||||
if($val->extra_vars)
|
||||
elseif (!count($mid_list))
|
||||
{
|
||||
unset($extra_vars);
|
||||
$extra_vars = base64_encode($val->extra_vars);
|
||||
$buff[] = '$run = true;';
|
||||
}
|
||||
$addon_include = sprintf('unset($addon_info); $addon_info = unserialize(base64_decode(\'%s\')); @include($addon_file);', $extra_vars);
|
||||
|
||||
$buff[] = 'if(file_exists($addon_file)){';
|
||||
$buff[] = 'if($rm === \'no_run_selected\'){';
|
||||
$buff[] = 'if(!isset($ml[$_m])){';
|
||||
$buff[] = $addon_include;
|
||||
$buff[] = '}}else{';
|
||||
$buff[] = 'if(isset($ml[$_m]) || count($ml) === 0){';
|
||||
$buff[] = $addon_include;
|
||||
$buff[] = '}}}';
|
||||
$buff[] = '$after_time = microtime(true);';
|
||||
$buff[] = '$addon_time_log = new stdClass();';
|
||||
$buff[] = '$addon_time_log->caller = $called_position;';
|
||||
$buff[] = '$addon_time_log->called = "' . $addon . '";';
|
||||
$buff[] = '$addon_time_log->called_extension = "' . $addon . '";';
|
||||
$buff[] = 'writeSlowlog("addon",$after_time-$before_time,$addon_time_log);';
|
||||
else
|
||||
{
|
||||
$buff[] = '$run = isset($ml[$_m]);';
|
||||
}
|
||||
|
||||
// Write debug info
|
||||
$buff[] = 'if ($run && file_exists($addon_file)):';
|
||||
$buff[] = ' include($addon_file);';
|
||||
$buff[] = ' $after_time = microtime(true);';
|
||||
$buff[] = ' if (class_exists("Rhymix\\\\Framework\\\\Debug")):';
|
||||
$buff[] = ' Rhymix\\Framework\\Debug::addTrigger(array(';
|
||||
$buff[] = ' "name" => "addon." . $called_position,';
|
||||
$buff[] = ' "target" => "' . $addon . '",';
|
||||
$buff[] = ' "target_plugin" => "' . $addon . '",';
|
||||
$buff[] = ' "elapsed_time" => $after_time - $before_time,';
|
||||
$buff[] = ' ));';
|
||||
$buff[] = ' endif;';
|
||||
$buff[] = 'endif;';
|
||||
$buff[] = '';
|
||||
}
|
||||
$addon_path = _XE_PATH_ . 'files/cache/addons/';
|
||||
FileHandler::makeDir($addon_path);
|
||||
$addon_file = $addon_path . ($gtype == 'site' ? $site_srl : '') . $type . '.acivated_addons.cache.php';
|
||||
|
||||
// Write file in new location
|
||||
$addon_path = RX_BASEDIR . 'files/cache/addons/';
|
||||
$addon_file = $addon_path . 'addons.' . ($gtype == 'site' ? intval($site_srl) : 'G') . '.' . $type . '.php';
|
||||
FileHandler::writeFile($addon_file, join(PHP_EOL, $buff));
|
||||
|
||||
// Remove file from old location
|
||||
$old_addon_file = $addon_path . ($gtype == 'site' ? $site_srl : '') . $type . '.acivated_addons.cache.php';
|
||||
if (file_exists($old_addon_file))
|
||||
{
|
||||
FileHandler::removeFile($old_addon_file);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -176,12 +197,17 @@ class addonController extends addon
|
|||
*/
|
||||
function removeAddonConfig($site_srl)
|
||||
{
|
||||
$addon_path = _XE_PATH_ . 'files/cache/addons/';
|
||||
$addon_file = $addon_path . $site_srl . '.acivated_addons.cache.php';
|
||||
$addon_path = RX_BASEDIR . 'files/cache/addons/';
|
||||
$addon_file = $addon_path . 'addons.' . intval($site_srl) . '.' . $type . '.php';
|
||||
if(file_exists($addon_file))
|
||||
{
|
||||
FileHandler::removeFile($addon_file);
|
||||
}
|
||||
$old_addon_file = $addon_path . ($gtype == 'site' ? $site_srl : '') . $type . '.acivated_addons.cache.php';
|
||||
if (file_exists($old_addon_file))
|
||||
{
|
||||
FileHandler::removeFile($old_addon_file);
|
||||
}
|
||||
|
||||
$args = new stdClass();
|
||||
$args->site_srl = $site_srl;
|
||||
|
|
|
|||
|
|
@ -693,6 +693,62 @@ class adminAdminController extends admin
|
|||
$this->setRedirectUrl(Context::get('success_return_url') ?: getNotEncodedUrl('', 'act', 'dispAdminConfigAdvanced'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update debug configuration.
|
||||
*/
|
||||
function procAdminUpdateDebug()
|
||||
{
|
||||
$vars = Context::getRequestVars();
|
||||
|
||||
// Debug settings
|
||||
Rhymix\Framework\Config::set('debug.enabled', $vars->debug_enabled === 'Y');
|
||||
Rhymix\Framework\Config::set('debug.log_errors', $vars->debug_log_errors === 'Y');
|
||||
Rhymix\Framework\Config::set('debug.log_queries', $vars->debug_log_queries === 'Y');
|
||||
Rhymix\Framework\Config::set('debug.log_slow_queries', max(0, floatval($vars->debug_log_slow_queries)));
|
||||
Rhymix\Framework\Config::set('debug.log_slow_triggers', max(0, floatval($vars->debug_log_slow_triggers)));
|
||||
Rhymix\Framework\Config::set('debug.log_slow_widgets', max(0, floatval($vars->debug_log_slow_widgets)));
|
||||
Rhymix\Framework\Config::set('debug.display_type', strval($vars->debug_display_type) ?: 'comment');
|
||||
Rhymix\Framework\Config::set('debug.display_to', strval($vars->debug_display_to) ?: 'admin');
|
||||
|
||||
// Log filename
|
||||
$log_filename = strval($vars->debug_log_filename);
|
||||
$log_filename_today = str_replace(array('YYYY', 'YY', 'MM', 'DD'), array(
|
||||
getInternalDateTime(RX_TIME, 'Y'),
|
||||
getInternalDateTime(RX_TIME, 'y'),
|
||||
getInternalDateTime(RX_TIME, 'm'),
|
||||
getInternalDateTime(RX_TIME, 'd'),
|
||||
), $log_filename);
|
||||
if (file_exists(RX_BASEDIR . $log_filename_today) && !is_writable(RX_BASEDIR . $log_filename_today))
|
||||
{
|
||||
return new Object(-1, 'msg_debug_log_filename_not_writable');
|
||||
}
|
||||
if (!file_exists(dirname(RX_BASEDIR . $log_filename)) && !FileHandler::makeDir(dirname(RX_BASEDIR . $log_filename)))
|
||||
{
|
||||
return new Object(-1, 'msg_debug_log_filename_not_writable');
|
||||
}
|
||||
if (!is_writable(dirname(RX_BASEDIR . $log_filename)))
|
||||
{
|
||||
return new Object(-1, 'msg_debug_log_filename_not_writable');
|
||||
}
|
||||
Rhymix\Framework\Config::set('debug.log_filename', $log_filename);
|
||||
|
||||
// IP access control
|
||||
$allowed_ip = array_map('trim', preg_split('/[\r\n]/', $vars->debug_allowed_ip));
|
||||
$allowed_ip = array_unique(array_filter($allowed_ip, function($item) {
|
||||
return $item !== '';
|
||||
}));
|
||||
if (!IpFilter::validate($whitelist)) {
|
||||
return new Object(-1, 'msg_invalid_ip');
|
||||
}
|
||||
Rhymix\Framework\Config::set('debug.allow', array_values($allowed_ip));
|
||||
|
||||
// Save
|
||||
Rhymix\Framework\Config::save();
|
||||
|
||||
$this->setMessage('success_updated');
|
||||
$this->setRedirectUrl(Context::get('success_return_url') ?: getNotEncodedUrl('', 'act', 'dispAdminConfigDebug'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update sitelock configuration.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -483,6 +483,31 @@ class adminAdminView extends admin
|
|||
$this->setTemplateFile('config_advanced');
|
||||
}
|
||||
|
||||
/**
|
||||
* Display Debug Settings page
|
||||
* @return void
|
||||
*/
|
||||
function dispAdminConfigDebug()
|
||||
{
|
||||
// Load debug settings.
|
||||
Context::set('debug_enabled', Rhymix\Framework\Config::get('debug.enabled'));
|
||||
Context::set('debug_log_errors', Rhymix\Framework\Config::get('debug.log_errors'));
|
||||
Context::set('debug_log_queries', Rhymix\Framework\Config::get('debug.log_queries'));
|
||||
Context::set('debug_log_slow_queries', Rhymix\Framework\Config::get('debug.log_slow_queries'));
|
||||
Context::set('debug_log_slow_triggers', Rhymix\Framework\Config::get('debug.log_slow_triggers'));
|
||||
Context::set('debug_log_slow_widgets', Rhymix\Framework\Config::get('debug.log_slow_widgets'));
|
||||
Context::set('debug_log_filename', Rhymix\Framework\Config::get('debug.log_filename') ?: 'files/debug/YYYYMMDD.php');
|
||||
Context::set('debug_display_type', Rhymix\Framework\Config::get('debug.display_type'));
|
||||
Context::set('debug_display_to', Rhymix\Framework\Config::get('debug.display_to'));
|
||||
|
||||
// IP access control
|
||||
$allowed_ip = Rhymix\Framework\Config::get('debug.allow');
|
||||
Context::set('debug_allowed_ip', implode(PHP_EOL, $allowed_ip));
|
||||
Context::set('remote_addr', RX_CLIENT_IP);
|
||||
|
||||
$this->setTemplateFile('config_debug');
|
||||
}
|
||||
|
||||
/**
|
||||
* Display Sitelock Settings page
|
||||
* @return void
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
<action name="dispAdminConfigGeneral" type="view" menu_name="adminConfigurationGeneral" menu_index="true" />
|
||||
<action name="dispAdminConfigSecurity" type="view" menu_name="adminConfigurationGeneral" />
|
||||
<action name="dispAdminConfigAdvanced" type="view" menu_name="adminConfigurationGeneral" />
|
||||
<action name="dispAdminConfigDebug" type="view" menu_name="adminConfigurationGeneral" />
|
||||
<action name="dispAdminConfigSitelock" type="view" menu_name="adminConfigurationGeneral" />
|
||||
<action name="dispAdminConfigFtp" type="view" menu_name="adminConfigurationFtp" menu_index="true" />
|
||||
<action name="dispAdminSetup" type="view" menu_name="adminMenuSetup" menu_index="true" />
|
||||
|
|
@ -24,6 +25,7 @@
|
|||
<action name="procAdminUpdateConfigGeneral" type="controller" />
|
||||
<action name="procAdminUpdateSecurity" type="controller" />
|
||||
<action name="procAdminUpdateAdvanced" type="controller" />
|
||||
<action name="procAdminUpdateDebug" type="controller" />
|
||||
<action name="procAdminUpdateSitelock" type="controller" />
|
||||
<action name="procAdminUpdateFTPInfo" type="controller" />
|
||||
<action name="procAdminRemoveFTPInfo" type="controller" />
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ $lang->cmd_configure = 'Configure';
|
|||
$lang->subtitle_primary = 'General Settings';
|
||||
$lang->subtitle_security = 'Security Settings';
|
||||
$lang->subtitle_advanced = 'Advanced Settings';
|
||||
$lang->subtitle_debug = 'Debug Settings';
|
||||
$lang->subtitle_etc = 'Other Settings';
|
||||
$lang->current_state = 'Current state';
|
||||
$lang->latest_documents = 'Latest Documents';
|
||||
|
|
@ -108,6 +109,25 @@ $lang->use_ftp_passive_mode = 'Use FTP Passive Mode';
|
|||
$lang->use_sftp_support = 'Use SFTP';
|
||||
$lang->disable_sftp_support = 'You should install ssh2 PHP module to use SFTP.';
|
||||
$lang->msg_self_restart_cache_engine = 'Please restart Memcached or cache daemon.';
|
||||
$lang->debug_enabled = 'Enable Debugging';
|
||||
$lang->debug_log_errors = 'Log Errors';
|
||||
$lang->debug_log_queries = 'Log Queries';
|
||||
$lang->debug_log_slow_queries = 'Log Slow Queries';
|
||||
$lang->debug_log_slow_triggers = 'Log Slow Triggers';
|
||||
$lang->debug_log_slow_widgets = 'Log Slow Widgets';
|
||||
$lang->debug_seconds = 'seconds or longer';
|
||||
$lang->debug_display_type = 'Display Debug Info As';
|
||||
$lang->debug_display_type_comment = 'HTML source comment';
|
||||
$lang->debug_display_type_panel = 'On-screen panel';
|
||||
$lang->debug_display_type_file = 'Write to file';
|
||||
$lang->debug_display_to = 'Display Debug Info To';
|
||||
$lang->debug_display_to_admin = 'Administrator only';
|
||||
$lang->debug_display_to_ip = 'Visitors from IP adresses listed below';
|
||||
$lang->debug_display_to_everyone = 'Everyone';
|
||||
$lang->debug_log_filename = 'Log filename';
|
||||
$lang->about_debug_log_filename = 'YYYYMMDD in the filename will be replaced with the current date.<br>It is recommended to split the log file by date to prevent it from getting too large.';
|
||||
$lang->msg_debug_log_filename_not_writable = 'Rhymix cannot write log files in the specified path.';
|
||||
$lang->debug_allowed_ip = 'Allowed IP addresses';
|
||||
$lang->autoinstall = 'EasyInstall';
|
||||
$lang->last_week = 'Last Week';
|
||||
$lang->this_week = 'This Week';
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ $lang->cmd_configure = '설정하기';
|
|||
$lang->subtitle_primary = '기본 설정';
|
||||
$lang->subtitle_security = '보안 설정';
|
||||
$lang->subtitle_advanced = '고급 설정';
|
||||
$lang->subtitle_debug = '디버그 설정';
|
||||
$lang->subtitle_etc = '기타';
|
||||
$lang->current_state = '현황';
|
||||
$lang->latest_documents = '최근 글';
|
||||
|
|
@ -105,6 +106,25 @@ $lang->use_ftp_passive_mode = 'Passive 모드 사용';
|
|||
$lang->use_sftp_support = 'SFTP 사용';
|
||||
$lang->disable_sftp_support = 'SFTP를 사용하려면 PHP에 ssh2 모듈이 설치되어 있어야 합니다.';
|
||||
$lang->msg_self_restart_cache_engine = 'Memcached 또는 캐시 서비스를 재시작해 주세요.';
|
||||
$lang->debug_enabled = '디버그 기능 사용';
|
||||
$lang->debug_log_errors = '에러 기록';
|
||||
$lang->debug_log_queries = '쿼리 기록';
|
||||
$lang->debug_log_slow_queries = '느린 쿼리 기록';
|
||||
$lang->debug_log_slow_triggers = '느린 트리거 기록';
|
||||
$lang->debug_log_slow_widgets = '느린 위젯 기록';
|
||||
$lang->debug_seconds = '초 이상 소요시 기록';
|
||||
$lang->debug_display_type = '디버그 정보 표시 방법';
|
||||
$lang->debug_display_type_comment = 'HTML 소스에 표시 (주석)';
|
||||
$lang->debug_display_type_panel = '화면에 표시 (패널)';
|
||||
$lang->debug_display_type_file = '파일에 기록';
|
||||
$lang->debug_display_to = '디버그 정보 표시 대상';
|
||||
$lang->debug_display_to_admin = '관리자에게만 표시';
|
||||
$lang->debug_display_to_ip = '아래 IP의 방문자에게만 표시';
|
||||
$lang->debug_display_to_everyone = '모두에게 표시';
|
||||
$lang->debug_log_filename = '디버그 정보 기록 파일';
|
||||
$lang->about_debug_log_filename = '파일명에 YYYYMMDD가 포함된 경우 날짜별로 파일을 분리하여 기록합니다.<br>파일을 분리하지 않으면 용량이 매우 커질 수 있으니 주의하십시오.';
|
||||
$lang->msg_debug_log_filename_not_writable = '지정한 경로에 로그 파일을 작성할 수 없습니다.';
|
||||
$lang->debug_allowed_ip = '디버그 허용 IP';
|
||||
$lang->autoinstall = '쉬운 설치';
|
||||
$lang->last_week = '지난주';
|
||||
$lang->this_week = '이번주';
|
||||
|
|
|
|||
87
modules/admin/tpl/config_debug.html
Normal file
87
modules/admin/tpl/config_debug.html
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
<include target="config_header.html" />
|
||||
<div cond="$XE_VALIDATOR_MESSAGE && $XE_VALIDATOR_ID == 'modules/admin/tpl/config_debug/1'" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||||
<p>{$XE_VALIDATOR_MESSAGE}</p>
|
||||
</div>
|
||||
<section class="section">
|
||||
<form action="./" method="post" class="x_form-horizontal">
|
||||
<input type="hidden" name="module" value="admin" />
|
||||
<input type="hidden" name="act" value="procAdminUpdateDebug" />
|
||||
<input type="hidden" name="xe_validator_id" value="modules/admin/tpl/config_debug/1" />
|
||||
<div class="x_control-group">
|
||||
<label class="x_control-label">{$lang->debug_enabled}</label>
|
||||
<div class="x_controls">
|
||||
<label for="debug_enabled_y" class="x_inline"><input type="radio" name="debug_enabled" id="debug_enabled_y" value="Y" checked="checked"|cond="$debug_enabled" /> {$lang->cmd_yes}</label>
|
||||
<label for="debug_enabled_n" class="x_inline"><input type="radio" name="debug_enabled" id="debug_enabled_n" value="N" checked="checked"|cond="!$debug_enabled" /> {$lang->cmd_no}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="x_control-group">
|
||||
<label class="x_control-label">{$lang->debug_log_errors}</label>
|
||||
<div class="x_controls">
|
||||
<label for="debug_log_errors_y" class="x_inline"><input type="radio" name="debug_log_errors" id="debug_log_errors_y" value="Y" checked="checked"|cond="$debug_log_errors" /> {$lang->cmd_yes}</label>
|
||||
<label for="debug_log_errors_n" class="x_inline"><input type="radio" name="debug_log_errors" id="debug_log_errors_n" value="N" checked="checked"|cond="!$debug_log_errors" /> {$lang->cmd_no}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="x_control-group">
|
||||
<label class="x_control-label">{$lang->debug_log_queries}</label>
|
||||
<div class="x_controls">
|
||||
<label for="debug_log_queries_y" class="x_inline"><input type="radio" name="debug_log_queries" id="debug_log_queries_y" value="Y" checked="checked"|cond="$debug_log_queries" /> {$lang->cmd_yes}</label>
|
||||
<label for="debug_log_queries_n" class="x_inline"><input type="radio" name="debug_log_queries" id="debug_log_queries_n" value="N" checked="checked"|cond="!$debug_log_queries" /> {$lang->cmd_no}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="x_control-group">
|
||||
<label class="x_control-label" for="debug_log_slow_queries">{$lang->debug_log_slow_queries}</label>
|
||||
<div class="x_controls">
|
||||
<input type="text" name="debug_log_slow_queries" id="debug_log_slow_queries" size="5" value="{$debug_log_slow_queries}" />
|
||||
{$lang->debug_seconds}
|
||||
</div>
|
||||
</div>
|
||||
<div class="x_control-group">
|
||||
<label class="x_control-label" for="debug_log_slow_triggers">{$lang->debug_log_slow_triggers}</label>
|
||||
<div class="x_controls">
|
||||
<input type="text" name="debug_log_slow_triggers" id="debug_log_slow_triggers" size="5" value="{$debug_log_slow_triggers}" />
|
||||
{$lang->debug_seconds}
|
||||
</div>
|
||||
</div>
|
||||
<div class="x_control-group">
|
||||
<label class="x_control-label" for="debug_log_slow_widgets">{$lang->debug_log_slow_widgets}</label>
|
||||
<div class="x_controls">
|
||||
<input type="text" name="debug_log_slow_widgets" id="debug_log_slow_widgets" size="5" value="{$debug_log_slow_widgets}" />
|
||||
{$lang->debug_seconds}
|
||||
</div>
|
||||
</div>
|
||||
<div class="x_control-group">
|
||||
<label class="x_control-label" for="debug_log_slow_widgets">{$lang->debug_display_type}</label>
|
||||
<div class="x_controls">
|
||||
<label for="debug_display_type_comment" class="x_inline"><input type="radio" name="debug_display_type" id="debug_display_type_comment" value="comment" checked="checked"|cond="$debug_display_type=='comment'" /> {$lang->debug_display_type_comment}</label>
|
||||
<label for="debug_display_type_panel" class="x_inline"><input type="radio" name="debug_display_type" id="debug_display_type_panel" value="panel" checked="checked"|cond="$debug_display_type=='panel'" /> {$lang->debug_display_type_panel}</label>
|
||||
<label for="debug_display_type_file" class="x_inline"><input type="radio" name="debug_display_type" id="debug_display_type_file" value="file" checked="checked"|cond="$debug_display_type=='file'" /> {$lang->debug_display_type_file}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="x_control-group">
|
||||
<label class="x_control-label" for="debug_log_filename">{$lang->debug_log_filename}</label>
|
||||
<div class="x_controls">
|
||||
<input type="text" name="debug_log_filename" id="debug_log_filename" value="{$debug_log_filename}" />
|
||||
<p class="x_help-block">{$lang->about_debug_log_filename}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="x_control-group">
|
||||
<label class="x_control-label" for="debug_log_slow_widgets">{$lang->debug_display_to}</label>
|
||||
<div class="x_controls">
|
||||
<label for="debug_display_to_admin" class="x_inline"><input type="radio" name="debug_display_to" id="debug_display_to_admin" value="admin" checked="checked"|cond="$debug_display_to=='admin'" /> {$lang->debug_display_to_admin}</label>
|
||||
<label for="debug_display_to_ip" class="x_inline"><input type="radio" name="debug_display_to" id="debug_display_to_ip" value="ip" checked="checked"|cond="$debug_display_to=='ip'" /> {$lang->debug_display_to_ip}</label>
|
||||
<label for="debug_display_to_everyone" class="x_inline"><input type="radio" name="debug_display_to" id="debug_display_to_everyone" value="everyone" checked="checked"|cond="$debug_display_to=='everyone'" /> {$lang->debug_display_to_everyone}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="x_control-group">
|
||||
<label class="x_control-label" for="debug_allowed_ip">{$lang->debug_allowed_ip}</label>
|
||||
<div class="x_controls">
|
||||
<textarea name="debug_allowed_ip" id="debug_allowed_ip" rows="4" cols="42" placeholder="{$remote_addr} ({$lang->local_ip_address})" style="margin-right:10px">{$debug_allowed_ip}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="x_clearfix btnArea">
|
||||
<div class="x_pull-right">
|
||||
<button type="submit" class="x_btn x_btn-primary">{$lang->cmd_save}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</section>
|
||||
|
|
@ -7,5 +7,6 @@
|
|||
<li class="x_active"|cond="$act == 'dispAdminConfigGeneral'"><a href="{getUrl('', 'module', 'admin', 'act', 'dispAdminConfigGeneral')}">{$lang->subtitle_primary}</a></li>
|
||||
<li class="x_active"|cond="$act == 'dispAdminConfigSecurity'"><a href="{getUrl('', 'module', 'admin', 'act', 'dispAdminConfigSecurity')}">{$lang->subtitle_security}</a></li>
|
||||
<li class="x_active"|cond="$act == 'dispAdminConfigAdvanced'"><a href="{getUrl('', 'module', 'admin', 'act', 'dispAdminConfigAdvanced')}">{$lang->subtitle_advanced}</a></li>
|
||||
<li class="x_active"|cond="$act == 'dispAdminConfigDebug'"><a href="{getUrl('', 'module', 'admin', 'act', 'dispAdminConfigDebug')}">{$lang->subtitle_debug}</a></li>
|
||||
<li class="x_active"|cond="$act == 'dispAdminConfigSitelock'"><a href="{getUrl('', 'module', 'admin', 'act', 'dispAdminConfigSitelock')}">{$lang->subtitle_sitelock}</a></li>
|
||||
</ul>
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ class messageView extends message
|
|||
/**
|
||||
* @brief Display messages
|
||||
*/
|
||||
function dispMessage()
|
||||
function dispMessage($detail = null)
|
||||
{
|
||||
// Get configurations (using module model object)
|
||||
$oModuleModel = getModel('module');
|
||||
|
|
@ -58,9 +58,10 @@ class messageView extends message
|
|||
{
|
||||
if(strncasecmp('https://', Context::getRequestUri(), 8) === 0) $ssl_mode = true;
|
||||
}
|
||||
Context::set('ssl_mode',$ssl_mode);
|
||||
|
||||
Context::set('ssl_mode', $ssl_mode);
|
||||
Context::set('system_message', nl2br($this->getMessage()));
|
||||
Context::set('system_message_detail', nl2br($detail));
|
||||
|
||||
$this->setTemplateFile('system_message');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
<div id="access">
|
||||
<div class="login-header">
|
||||
<h1><i class="icon-user"></i> {$system_message}</h1>
|
||||
<div class="message" cond="defined('_XE_SITELOCK_MESSAGE_')">{constant('_XE_SITELOCK_MESSAGE_')}</div>
|
||||
<div class="message" cond="$system_message_detail">{$system_message_detail}</div>
|
||||
</div>
|
||||
<div class="login-body">
|
||||
<div cond="$XE_VALIDATOR_MESSAGE && $XE_VALIDATOR_ID == 'modules/message/skins/default/system_message/1'" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<div id="access">
|
||||
<div class="login-header">
|
||||
<h1>{$system_message}</h1>
|
||||
<div class="message" cond="defined('_XE_SITELOCK_MESSAGE_')">{constant('_XE_SITELOCK_MESSAGE_')}</div>
|
||||
<div class="message" cond="$system_message_detail">{$system_message_detail}</div>
|
||||
</div>
|
||||
<div cond="!$is_logged">
|
||||
<div class="login-body">
|
||||
|
|
@ -21,13 +21,13 @@
|
|||
<input type="text" name="user_id" id="uid" title="{$lang->user_id}" placeholder="{$lang->user_id}" required autofocus cond="$member_config->identifier != 'email_address'" />
|
||||
<input type="email" name="user_id" id="uid" title="{$lang->email_address}" placeholder="{$lang->email_address}" required autofocus cond="$member_config->identifier == 'email_address'" />
|
||||
<input type="password" name="password" id="upw" title="{$lang->password}" placeholder="{$lang->password}" required />
|
||||
<label for="keepid" cond="!defined('_XE_SITELOCK_MESSAGE_')">
|
||||
<label for="keepid" cond="!$system_message_detail">
|
||||
<input type="checkbox" name="keep_signed" id="keepid" class="inputCheck" value="Y" onclick="jQuery('#warning')[(jQuery('#keepid:checked').size()>0?'addClass':'removeClass')]('open');" />
|
||||
{$lang->keep_signed}
|
||||
</label>
|
||||
</div>
|
||||
<p><button type="submit" class="button" href="#" onclick="$('#message_login_form').submit()">
|
||||
<!--@if(defined('_XE_SITELOCK_MESSAGE_'))-->
|
||||
<!--@if($system_message_detail)-->
|
||||
{$lang->msg_administrator_login}
|
||||
<!--@else-->
|
||||
{$lang->cmd_login}
|
||||
|
|
@ -35,7 +35,7 @@
|
|||
</button></p>
|
||||
</form>
|
||||
</div>
|
||||
<div class="login-footer" cond="!defined('_XE_SITELOCK_MESSAGE_')">
|
||||
<div class="login-footer" cond="!$system_message_detail">
|
||||
<a href="{getUrl('', 'act', 'dispMemberFindAccount')}">{$lang->cmd_find_member_account}</a>
|
||||
<span class="bar">|</span>
|
||||
<a href="{getUrl('', 'act', 'dispMemberSignUpForm')}">{$lang->cmd_signup}</a>
|
||||
|
|
|
|||
|
|
@ -442,8 +442,8 @@ class widgetController extends widget
|
|||
function execute($widget, $args, $javascript_mode = false, $escaped = true)
|
||||
{
|
||||
// Save for debug run-time widget
|
||||
if(__DEBUG__==3) $start = microtime(true);
|
||||
$before = microtime(true);
|
||||
$start = microtime(true);
|
||||
|
||||
// urldecode the value of args haejum
|
||||
$object_vars = get_object_vars($args);
|
||||
if(count($object_vars))
|
||||
|
|
@ -640,18 +640,14 @@ class widgetController extends widget
|
|||
if($args->widgetstyle) $widget_content_body = $this->compileWidgetStyle($args->widgetstyle,$widget, $widget_content_body, $args, $javascript_mode);
|
||||
|
||||
$output = $widget_content_header . $widget_content_body . $widget_content_footer;
|
||||
|
||||
// Debug widget creation time information added to the results
|
||||
if(__DEBUG__==3) $GLOBALS['__widget_excute_elapsed__'] += microtime(true) - $start;
|
||||
|
||||
$after = microtime(true);
|
||||
|
||||
$elapsed_time = $after - $before;
|
||||
|
||||
$slowlog = new stdClass;
|
||||
$slowlog->caller = "widget.execute";
|
||||
$slowlog->called = $widget;
|
||||
$slowlog->called_extension = $widget;
|
||||
writeSlowlog('widget', $elapsed_time, $slowlog);
|
||||
$elapsed_time = microtime(true) - $start;
|
||||
$GLOBALS['__widget_excute_elapsed__'] += $elapsed_time;
|
||||
Rhymix\Framework\Debug::addWidget(array(
|
||||
'name' => $widget,
|
||||
'elapsed_time' => $elapsed_time,
|
||||
));
|
||||
|
||||
// Return result
|
||||
return $output;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue