Version 2.1.2
This commit is contained in:
@@ -3,9 +3,13 @@
|
|||||||
"type": "phpbb-extension",
|
"type": "phpbb-extension",
|
||||||
"description": "mChat",
|
"description": "mChat",
|
||||||
"homepage": "https://www.phpbb.com/customise/db/extension/mchat_extension/",
|
"homepage": "https://www.phpbb.com/customise/db/extension/mchat_extension/",
|
||||||
"version": "2.1.1",
|
"version": "2.1.2",
|
||||||
"time": "2018-09-01",
|
"time": "2018-12-25",
|
||||||
"keywords": ["phpbb", "extension", "mchat"],
|
"keywords": [
|
||||||
|
"phpbb",
|
||||||
|
"extension",
|
||||||
|
"mchat"
|
||||||
|
],
|
||||||
"license": "GPL-2.0-only",
|
"license": "GPL-2.0-only",
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
@@ -28,7 +32,8 @@
|
|||||||
],
|
],
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=5.4.7",
|
"php": ">=5.4.7",
|
||||||
"composer/installers": "~1.0"
|
"composer/installers": "~1.0.0",
|
||||||
|
"phpbb/phpbb": ">=3.2.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phpbb/epv": "dev-master"
|
"phpbb/epv": "dev-master"
|
||||||
@@ -44,4 +49,4 @@
|
|||||||
"filename": "version_check"
|
"filename": "version_check"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
40
core/log.php
40
core/log.php
@@ -104,19 +104,48 @@ class log
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $log_type The log type, one of edit|del
|
* @param string $log_type The log type, one of edit|del or a custom type
|
||||||
* @param int $message_id The ID of the message to which this log entry belongs
|
* @param int $message_id The ID of the message to which this log entry belongs
|
||||||
* @return int The ID of the newly added log row
|
* @return int The ID of the newly added log row, or 0 if no log row was added
|
||||||
*/
|
*/
|
||||||
public function add_log($log_type, $message_id)
|
public function add_log($log_type, $message_id)
|
||||||
{
|
{
|
||||||
$this->db->sql_query('INSERT INTO ' . $this->mchat_settings->get_table_mchat_log() . ' ' . $this->db->sql_build_array('INSERT', [
|
$log_row = [
|
||||||
'log_type' => $this->get_type_id($log_type),
|
'log_type' => $this->get_type_id($log_type),
|
||||||
'user_id' => (int) $this->user->data['user_id'],
|
'user_id' => (int) $this->user->data['user_id'],
|
||||||
'message_id' => (int) $message_id,
|
'message_id' => (int) $message_id,
|
||||||
'log_ip' => $this->user->ip,
|
'log_ip' => $this->user->ip,
|
||||||
'log_time' => time(),
|
'log_time' => time(),
|
||||||
]));
|
];
|
||||||
|
|
||||||
|
$insert_log = true;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Event that allows adding log types
|
||||||
|
*
|
||||||
|
* @event dmzx.mchat.log_add_before
|
||||||
|
* @var string log_type The log type, one of edit|del or a custom type
|
||||||
|
* @var int message_id ID of the message to which this log entry belongs
|
||||||
|
* @var array log_row Array that is about to be added to the mchat_log table
|
||||||
|
* @var bool insert_log Whether or not to add the log_row
|
||||||
|
* @since 2.1.2
|
||||||
|
*/
|
||||||
|
$vars = [
|
||||||
|
'log_type',
|
||||||
|
'message_id',
|
||||||
|
'log_row',
|
||||||
|
'insert_log',
|
||||||
|
];
|
||||||
|
extract($this->dispatcher->trigger_event('dmzx.mchat.log_add_before', compact($vars)));
|
||||||
|
|
||||||
|
if (!$insert_log)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql = 'INSERT INTO ' . $this->mchat_settings->get_table_mchat_log() . ' ' . $this->db->sql_build_array('INSERT', $log_row);
|
||||||
|
|
||||||
|
$this->db->sql_query($sql);
|
||||||
|
|
||||||
$log_id = (int) $this->db->sql_nextid();
|
$log_id = (int) $this->db->sql_nextid();
|
||||||
|
|
||||||
@@ -171,12 +200,11 @@ class log
|
|||||||
* Event that allows processing log messages
|
* Event that allows processing log messages
|
||||||
*
|
*
|
||||||
* @event dmzx.mchat.action_refresh_process_log_row
|
* @event dmzx.mchat.action_refresh_process_log_row
|
||||||
* @var array response The data that is sent back to the user (still incomplete at this point)
|
|
||||||
* @var array log_row The log data (read only)
|
* @var array log_row The log data (read only)
|
||||||
* @since 2.0.0-RC6
|
* @since 2.0.0-RC6
|
||||||
|
* @changed 2.1.2 Removed response
|
||||||
*/
|
*/
|
||||||
$vars = [
|
$vars = [
|
||||||
'response',
|
|
||||||
'log_row',
|
'log_row',
|
||||||
];
|
];
|
||||||
extract($this->dispatcher->trigger_event('dmzx.mchat.action_refresh_process_log_row', compact($vars)));
|
extract($this->dispatcher->trigger_event('dmzx.mchat.action_refresh_process_log_row', compact($vars)));
|
||||||
|
|||||||
@@ -571,6 +571,7 @@ class mchat
|
|||||||
unset($logs['latest']);
|
unset($logs['latest']);
|
||||||
|
|
||||||
$log_edit_del_ids = $logs;
|
$log_edit_del_ids = $logs;
|
||||||
|
unset($logs);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -761,18 +762,17 @@ class mchat
|
|||||||
$is_archive = $page == 'archive';
|
$is_archive = $page == 'archive';
|
||||||
$jump_to_id = $is_archive ? $this->request->variable('jumpto', 0) : 0;
|
$jump_to_id = $is_archive ? $this->request->variable('jumpto', 0) : 0;
|
||||||
|
|
||||||
// If the static message is not empty in the language file, use it, else ise the static message in the database
|
// If the static message is not empty in the language file, use it, else use the static message in the database
|
||||||
$static_message = $this->lang->lang('MCHAT_STATIC_MESSAGE') ?: $this->mchat_settings->cfg('mchat_static_message');
|
$static_message = $this->lang->lang('MCHAT_STATIC_MESSAGE') ?: $this->mchat_settings->cfg('mchat_static_message');
|
||||||
$whois_refresh = $this->mchat_settings->cfg('mchat_whois_index') || $this->mchat_settings->cfg('mchat_navbar_link_count');
|
$whois_refresh = $this->mchat_settings->cfg('mchat_whois_index') || $this->mchat_settings->cfg('mchat_navbar_link_count');
|
||||||
|
|
||||||
$template_data = [
|
$template_data = [
|
||||||
'MCHAT_PAGE' => $page,
|
'MCHAT_PAGE' => $page,
|
||||||
'MCHAT_CURRENT_URL' => '.' . $this->user->page['script_path'] . $this->user->page['page'],
|
'MCHAT_CURRENT_URL' => $this->mchat_settings->get_current_page(),
|
||||||
'MCHAT_ALLOW_SMILES' => $this->mchat_settings->cfg('allow_smilies') && $this->auth->acl_get('u_mchat_smilies'),
|
'MCHAT_ALLOW_SMILES' => $this->mchat_settings->cfg('allow_smilies') && $this->auth->acl_get('u_mchat_smilies'),
|
||||||
'MCHAT_MESSAGE_TOP' => $this->mchat_settings->cfg('mchat_message_top'),
|
'MCHAT_MESSAGE_TOP' => $this->mchat_settings->cfg('mchat_message_top'),
|
||||||
'MCHAT_INDEX_HEIGHT' => $this->mchat_settings->cfg('mchat_index_height'),
|
'MCHAT_INDEX_HEIGHT' => $this->mchat_settings->cfg('mchat_index_height'),
|
||||||
'MCHAT_CUSTOM_HEIGHT' => $this->mchat_settings->cfg('mchat_custom_height'),
|
'MCHAT_CUSTOM_HEIGHT' => $this->mchat_settings->cfg('mchat_custom_height'),
|
||||||
'MCHAT_LIVE_UPDATES' => $this->mchat_settings->cfg('mchat_live_updates'),
|
|
||||||
'MCHAT_LOCATION' => $this->mchat_settings->cfg('mchat_location'),
|
'MCHAT_LOCATION' => $this->mchat_settings->cfg('mchat_location'),
|
||||||
'MCHAT_CHARACTER_COUNT' => $this->mchat_settings->cfg('mchat_character_count'),
|
'MCHAT_CHARACTER_COUNT' => $this->mchat_settings->cfg('mchat_character_count'),
|
||||||
'MCHAT_SOUND' => $this->mchat_settings->cfg('mchat_sound'),
|
'MCHAT_SOUND' => $this->mchat_settings->cfg('mchat_sound'),
|
||||||
@@ -1096,7 +1096,7 @@ class mchat
|
|||||||
'MCHAT_USERNAME' => get_username_string('username', $row['user_id'], $row['username'], $row['user_colour'], $this->lang->lang('GUEST')),
|
'MCHAT_USERNAME' => get_username_string('username', $row['user_id'], $row['username'], $row['user_colour'], $this->lang->lang('GUEST')),
|
||||||
'MCHAT_USERNAME_COLOR' => get_username_string('colour', $row['user_id'], $row['username'], $row['user_colour'], $this->lang->lang('GUEST')),
|
'MCHAT_USERNAME_COLOR' => get_username_string('colour', $row['user_id'], $row['username'], $row['user_colour'], $this->lang->lang('GUEST')),
|
||||||
'MCHAT_WHOIS_USER' => $this->lang->lang('MCHAT_WHOIS_USER', $row['user_ip']),
|
'MCHAT_WHOIS_USER' => $this->lang->lang('MCHAT_WHOIS_USER', $row['user_ip']),
|
||||||
'MCHAT_U_IP' => $this->helper->route('dmzx_mchat_page_whois_controller', ['ip' => $row['user_ip']]),
|
'MCHAT_U_IP' => $this->auth->acl_get('u_mchat_ip') ? $this->helper->route('dmzx_mchat_page_whois_controller', ['ip' => $row['user_ip']]) : false,
|
||||||
'MCHAT_U_PERMISSIONS' => append_sid($this->mchat_settings->url('adm/index', true), ['i' => 'permissions', 'mode' => 'setting_user_global', rawurlencode('user_id[0]') => $row['user_id']], true, $this->user->session_id),
|
'MCHAT_U_PERMISSIONS' => append_sid($this->mchat_settings->url('adm/index', true), ['i' => 'permissions', 'mode' => 'setting_user_global', rawurlencode('user_id[0]') => $row['user_id']], true, $this->user->session_id),
|
||||||
'MCHAT_MESSAGE' => generate_text_for_display($row['message'], $row['bbcode_uid'], $row['bbcode_bitfield'], $row['bbcode_options']),
|
'MCHAT_MESSAGE' => generate_text_for_display($row['message'], $row['bbcode_uid'], $row['bbcode_bitfield'], $row['bbcode_options']),
|
||||||
'MCHAT_TIME' => $minutes_ago === -1 ? $datetime : $this->lang->lang('MCHAT_MINUTES_AGO', $minutes_ago),
|
'MCHAT_TIME' => $minutes_ago === -1 ? $datetime : $this->lang->lang('MCHAT_MINUTES_AGO', $minutes_ago),
|
||||||
|
|||||||
@@ -168,10 +168,10 @@ class settings
|
|||||||
'mchat_live_updates' => ['default' => 1],
|
'mchat_live_updates' => ['default' => 1],
|
||||||
'mchat_log_enabled' => ['default' => 1],
|
'mchat_log_enabled' => ['default' => 1],
|
||||||
'mchat_max_input_height' => ['default' => 150, 'validation' => ['num', false, 0, 1000]],
|
'mchat_max_input_height' => ['default' => 150, 'validation' => ['num', false, 0, 1000]],
|
||||||
'mchat_max_message_lngth' => ['default' => 500, 'validation' => ['num', false, 0, 1000]],
|
'mchat_max_message_lngth' => ['default' => 500],
|
||||||
'mchat_message_num_archive' => ['default' => 25, 'validation' => ['num', false, 10, 100]],
|
'mchat_message_num_archive' => ['default' => 25, 'validation' => ['num', false, 10, 100]],
|
||||||
'mchat_message_num_custom' => ['default' => 10, 'validation' => ['num', false, 5, 50]],
|
'mchat_message_num_custom' => ['default' => 10],
|
||||||
'mchat_message_num_index' => ['default' => 10, 'validation' => ['num', false, 5, 50]],
|
'mchat_message_num_index' => ['default' => 10],
|
||||||
'mchat_navbar_link_count' => ['default' => 1],
|
'mchat_navbar_link_count' => ['default' => 1],
|
||||||
'mchat_override_min_post_chars' => ['default' => 0],
|
'mchat_override_min_post_chars' => ['default' => 0],
|
||||||
'mchat_override_smilie_limit' => ['default' => 0],
|
'mchat_override_smilie_limit' => ['default' => 0],
|
||||||
@@ -185,7 +185,7 @@ class settings
|
|||||||
'mchat_prune_gc' => ['default' => strtotime('1 day', 0)],
|
'mchat_prune_gc' => ['default' => strtotime('1 day', 0)],
|
||||||
'mchat_prune_mode' => ['default' => 0],
|
'mchat_prune_mode' => ['default' => 0],
|
||||||
'mchat_prune_num' => ['default' => 0],
|
'mchat_prune_num' => ['default' => 0],
|
||||||
'mchat_refresh' => ['default' => 10, 'validation' => ['num', false, 5, 60]],
|
'mchat_refresh' => ['default' => 10, 'validation' => ['num', false, 2, 3600]],
|
||||||
'mchat_timeout' => ['default' => 0, 'validation' => ['num', false, 0, (int) $this->cfg('session_length')]],
|
'mchat_timeout' => ['default' => 0, 'validation' => ['num', false, 0, (int) $this->cfg('session_length')]],
|
||||||
'mchat_whois_refresh' => ['default' => 60, 'validation' => ['num', false, 10, 300]],
|
'mchat_whois_refresh' => ['default' => 60, 'validation' => ['num', false, 10, 300]],
|
||||||
];
|
];
|
||||||
@@ -479,6 +479,27 @@ class settings
|
|||||||
return implode($this->lang->lang('COMMA_SEPARATOR'), $enabled_notifications_lang);
|
return implode($this->lang->lang('COMMA_SEPARATOR'), $enabled_notifications_lang);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function get_current_page()
|
||||||
|
{
|
||||||
|
$page = $this->user->page['page_name'];
|
||||||
|
|
||||||
|
// Remove app.php if URL rewriting is enabled in the ACP
|
||||||
|
if ($this->config['enable_mod_rewrite'])
|
||||||
|
{
|
||||||
|
$app_php = 'app.' . $this->php_ext . '/';
|
||||||
|
|
||||||
|
if (($app_position = strpos($page, $app_php)) !== false)
|
||||||
|
{
|
||||||
|
$page = substr($page, $app_position + strlen($app_php));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return generate_board_url() . '/' . $page;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $path
|
* @param string $path
|
||||||
* @param bool $absolute_url
|
* @param bool $absolute_url
|
||||||
|
|||||||
@@ -66,31 +66,31 @@ $lang = array_merge($lang, [
|
|||||||
'MCHAT_RULES_EXPLAIN' => 'Enter the rules here. HTML code is allowed. Set to empty to disable the display.<br>This message can be translated: edit the MCHAT_RULES_MESSAGE language key in /ext/dmzx/mchat/language/XX/mchat.php.',
|
'MCHAT_RULES_EXPLAIN' => 'Enter the rules here. HTML code is allowed. Set to empty to disable the display.<br>This message can be translated: edit the MCHAT_RULES_MESSAGE language key in /ext/dmzx/mchat/language/XX/mchat.php.',
|
||||||
'MCHAT_CONFIG_SAVED' => 'mChat configuration has been updated',
|
'MCHAT_CONFIG_SAVED' => 'mChat configuration has been updated',
|
||||||
'MCHAT_AVATARS' => 'Display avatars',
|
'MCHAT_AVATARS' => 'Display avatars',
|
||||||
'MCHAT_AVATARS_EXPLAIN' => 'If set to yes, resized user avatars will be displayed',
|
'MCHAT_AVATARS_EXPLAIN' => 'If set to yes, resized user avatars will be displayed.',
|
||||||
'MCHAT_INDEX' => 'Display mChat on the index page',
|
'MCHAT_INDEX' => 'Display mChat on the index page',
|
||||||
'MCHAT_INDEX_HEIGHT' => 'Index page height',
|
'MCHAT_INDEX_HEIGHT' => 'Index page height',
|
||||||
'MCHAT_INDEX_HEIGHT_EXPLAIN' => 'The height of the chat box in pixels on the index page.<br><em>You are limited from 50 to 1000. Default is 250.</em>',
|
'MCHAT_INDEX_HEIGHT_EXPLAIN' => '<em>You are limited from 50 to 1000. Default is 250.</em>',
|
||||||
'MCHAT_TOP_OF_FORUM' => 'Top',
|
'MCHAT_TOP_OF_FORUM' => 'Top',
|
||||||
'MCHAT_BOTTOM_OF_FORUM' => 'Bottom',
|
'MCHAT_BOTTOM_OF_FORUM' => 'Bottom',
|
||||||
'MCHAT_REFRESH' => 'Refresh interval',
|
'MCHAT_REFRESH' => 'Refresh interval',
|
||||||
'MCHAT_REFRESH_EXPLAIN' => 'Number of seconds between refreshing messages.<br><em>You are limited from 5 to 60 seconds. Default is 10.</em>',
|
'MCHAT_REFRESH_EXPLAIN' => 'Number of seconds between refreshing messages.<br><em>You are limited from 2 to 3600 seconds. Default is 10.</em>',
|
||||||
'MCHAT_LIVE_UPDATES' => 'Live updates of edited and deleted messages',
|
'MCHAT_LIVE_UPDATES' => 'Live updates of edited and deleted messages',
|
||||||
'MCHAT_LIVE_UPDATES_EXPLAIN' => 'When a user edits or deletes messages, the changes are updated live for all others, without them having to refresh the page. Disable this if you experience performance issues.',
|
'MCHAT_LIVE_UPDATES_EXPLAIN' => 'When a user edits or deletes messages, the changes are updated live for all others, without them having to refresh the page. Disable this if you experience performance issues.',
|
||||||
'MCHAT_PRUNE' => 'Enable message pruning',
|
'MCHAT_PRUNE' => 'Enable message pruning',
|
||||||
'MCHAT_PRUNE_GC' => 'Message prune task interval',
|
'MCHAT_PRUNE_GC' => 'Message prune task interval',
|
||||||
'MCHAT_PRUNE_GC_EXPLAIN' => 'The time in seconds that needs to pass before the next message pruning is triggered. Note: this setting controls <em>when</em> messages are checked if they can be deleted. It does <em>not</em> control <em>which</em> messages are deleted. <em>Default is 86400 = 24 hours.</em>',
|
'MCHAT_PRUNE_GC_EXPLAIN' => 'The time that needs to pass before the next message pruning is triggered. Note: this setting controls <em>when</em> messages are checked if they can be deleted. It does <em>not</em> control <em>which</em> messages are deleted. <em>Default is 86400 seconds = 24 hours.</em>',
|
||||||
'MCHAT_PRUNE_NUM' => 'Messages to retain when pruning',
|
'MCHAT_PRUNE_NUM' => 'Messages to retain when pruning',
|
||||||
'MCHAT_PRUNE_NUM_EXPLAIN' => 'When using ’messages’ a fixed number of messages will be kept. When using ’hours’, ’days’ or ’weeks’ all messages older than the specified time period at the time of pruning will be deleted.',
|
'MCHAT_PRUNE_NUM_EXPLAIN' => 'When using ’messages’ a fixed number of messages will be kept. When using ’hours’, ’days’ or ’weeks’ all messages older than the specified time period at the time of pruning will be deleted.',
|
||||||
'MCHAT_PRUNE_NOW' => 'Prune messages now',
|
'MCHAT_PRUNE_NOW' => 'Prune messages now',
|
||||||
'MCHAT_PRUNE_NOW_CONFIRM' => 'Confirm pruning messages',
|
'MCHAT_PRUNE_NOW_CONFIRM' => 'Confirm pruning messages',
|
||||||
'MCHAT_PRUNED' => '%1$d mChat messages have been pruned',
|
'MCHAT_PRUNED' => '%1$d mChat messages have been pruned',
|
||||||
'MCHAT_NAVBAR_LINK_COUNT' => 'Display number of active chat sessions in the navbar link',
|
'MCHAT_NAVBAR_LINK_COUNT' => 'Display number of active chat sessions in the navbar',
|
||||||
'MCHAT_MESSAGE_NUM_CUSTOM' => 'Initial number of messages to display on the mChat page',
|
'MCHAT_MESSAGE_NUM_CUSTOM' => 'Initial number of messages to display on the mChat page',
|
||||||
'MCHAT_MESSAGE_NUM_CUSTOM_EXPLAIN' => '<em>You are limited from 5 to 50. Default is 10.</em>',
|
'MCHAT_MESSAGE_NUM_CUSTOM_EXPLAIN' => '<em>Default is 10.</em>',
|
||||||
'MCHAT_MESSAGE_NUM_INDEX' => 'Initial number of messages to display on the index page',
|
'MCHAT_MESSAGE_NUM_INDEX' => 'Initial number of messages to display on the index page',
|
||||||
'MCHAT_MESSAGE_NUM_INDEX_EXPLAIN' => '<em>You are limited from 5 to 50. Default is 10.</em>',
|
'MCHAT_MESSAGE_NUM_INDEX_EXPLAIN' => '<em>Default is 10.</em>',
|
||||||
'MCHAT_MESSAGE_NUM_ARCHIVE' => 'Number of messages to display on the archive page',
|
'MCHAT_MESSAGE_NUM_ARCHIVE' => 'Number of messages to display on the archive page',
|
||||||
'MCHAT_MESSAGE_NUM_ARCHIVE_EXPLAIN' => 'The maximum number of messages to show per page on the archive page.<br><em>You are limited from 10 to 100. Default is 25.</em>',
|
'MCHAT_MESSAGE_NUM_ARCHIVE_EXPLAIN' => '<em>You are limited from 10 to 100. Default is 25.</em>',
|
||||||
'MCHAT_ARCHIVE_SORT' => 'Message sorting',
|
'MCHAT_ARCHIVE_SORT' => 'Message sorting',
|
||||||
'MCHAT_ARCHIVE_SORT_TOP_BOTTOM' => 'Always sort messages oldest to newest',
|
'MCHAT_ARCHIVE_SORT_TOP_BOTTOM' => 'Always sort messages oldest to newest',
|
||||||
'MCHAT_ARCHIVE_SORT_BOTTOM_TOP' => 'Always sort messages newest to oldest',
|
'MCHAT_ARCHIVE_SORT_BOTTOM_TOP' => 'Always sort messages newest to oldest',
|
||||||
@@ -100,22 +100,22 @@ $lang = array_merge($lang, [
|
|||||||
'MCHAT_EDIT_DELETE_LIMIT' => 'Time limit for editing and deleting messages',
|
'MCHAT_EDIT_DELETE_LIMIT' => 'Time limit for editing and deleting messages',
|
||||||
'MCHAT_EDIT_DELETE_LIMIT_EXPLAIN' => 'Messages older than the specified number of seconds cannot be edited or deleted by the author any more.<br>Users who have <em>edit/delete permission as well as moderator permission are exempt</em> from this time limit.<br>Set to 0 to allow unlimited editing and deleting.',
|
'MCHAT_EDIT_DELETE_LIMIT_EXPLAIN' => 'Messages older than the specified number of seconds cannot be edited or deleted by the author any more.<br>Users who have <em>edit/delete permission as well as moderator permission are exempt</em> from this time limit.<br>Set to 0 to allow unlimited editing and deleting.',
|
||||||
'MCHAT_MAX_MESSAGE_LENGTH' => 'Maximum message length',
|
'MCHAT_MAX_MESSAGE_LENGTH' => 'Maximum message length',
|
||||||
'MCHAT_MAX_MESSAGE_LENGTH_EXPLAIN' => 'Maximum number of characters allowed per message posted.<br><em>You are limited from 0 to 1000. Default is 500. Set to 0 to disable.</em>',
|
'MCHAT_MAX_MESSAGE_LENGTH_EXPLAIN' => 'Maximum number of characters allowed per message posted.<br><em>Default is 500. Set to 0 to disable.</em>',
|
||||||
'MCHAT_MAX_INPUT_HEIGHT' => 'Maximum input field height',
|
'MCHAT_MAX_INPUT_HEIGHT' => 'Maximum input field height',
|
||||||
'MCHAT_MAX_INPUT_HEIGHT_EXPLAIN' => 'The input field will not expand beyond this number of pixels.<br><em>You are limited from 0 to 1000. Default is 150. Set to 0 to not allow multi-line messages.</em>',
|
'MCHAT_MAX_INPUT_HEIGHT_EXPLAIN' => 'The input field will not expand beyond this number of pixels.<br><em>You are limited from 0 to 1000. Default is 150. Set to 0 to not allow multi-line messages.</em>',
|
||||||
'MCHAT_CUSTOM_PAGE' => 'Enable mChat page',
|
'MCHAT_CUSTOM_PAGE' => 'Enable mChat page',
|
||||||
'MCHAT_CUSTOM_HEIGHT' => 'mChat page height',
|
'MCHAT_CUSTOM_HEIGHT' => 'mChat page height',
|
||||||
'MCHAT_CUSTOM_HEIGHT_EXPLAIN' => 'The height of the chat box in pixels on the mChat page.<br><em>You are limited from 50 to 1000. Default is 350.</em>',
|
'MCHAT_CUSTOM_HEIGHT_EXPLAIN' => '<em>You are limited from 50 to 1000. Default is 350.</em>',
|
||||||
'MCHAT_BBCODES_DISALLOWED' => 'Disallowed bbcodes',
|
'MCHAT_BBCODES_DISALLOWED' => 'Disallowed BBCdes',
|
||||||
'MCHAT_BBCODES_DISALLOWED_EXPLAIN' => 'Here you can input the bbcodes that are <strong>not</strong> to be used in a message.<br>Separate bbcodes with a vertical bar, for example:<br>b|i|u|code|list|list=|flash|quote and/or a %1$scustom bbcode tag name%2$s',
|
'MCHAT_BBCODES_DISALLOWED_EXPLAIN' => 'Here you can input the BBCodes that are <strong>not</strong> to be used in a message.<br>Separate BBCodes with a vertical bar, for example:<br>b|i|u|code|list|list=|flash|quote and/or a %1$scustom BBCode tag name%2$s.',
|
||||||
'MCHAT_STATIC_MESSAGE' => 'Static message',
|
'MCHAT_STATIC_MESSAGE' => 'Static message',
|
||||||
'MCHAT_STATIC_MESSAGE_EXPLAIN' => 'Here you can define a static message to display to users of the chat. HTML code is allowed. Set to empty to disable the display.<br>This message can be translated: edit the MCHAT_STATIC_MESSAGE language key in /ext/dmzx/mchat/language/XX/mchat.php.',
|
'MCHAT_STATIC_MESSAGE_EXPLAIN' => 'Here you can define a static message. HTML code is allowed. Set to empty to disable the display.<br>This message can be translated: edit the MCHAT_STATIC_MESSAGE language key in /ext/dmzx/mchat/language/XX/mchat.php.',
|
||||||
'MCHAT_TIMEOUT' => 'Session timeout',
|
'MCHAT_TIMEOUT' => 'Session timeout',
|
||||||
'MCHAT_TIMEOUT_EXPLAIN' => 'Set the number of seconds until a session in the chat ends.<br>Set to 0 for no timeout. Careful, the session of a user reading mChat will never expire!<br><em>You are limited to the %1$sforum config setting for sessions%2$s which is currently set to %3$d seconds</em>',
|
'MCHAT_TIMEOUT_EXPLAIN' => 'Set the number of seconds until a session in the chat ends.<br>Set to 0 for no timeout. Careful, the session of a user reading mChat will never expire!<br><em>You are limited to the %1$sforum config setting for sessions%2$s which is currently set to %3$d seconds.</em>',
|
||||||
'MCHAT_OVERRIDE_SMILIE_LIMIT' => 'Override smilie limit',
|
'MCHAT_OVERRIDE_SMILIE_LIMIT' => 'Override smilie limit',
|
||||||
'MCHAT_OVERRIDE_SMILIE_LIMIT_EXPLAIN' => 'Set to yes to override the forums smilie limit setting for chat messages',
|
'MCHAT_OVERRIDE_SMILIE_LIMIT_EXPLAIN' => 'Set to yes to override the forums smilie limit setting for chat messages.',
|
||||||
'MCHAT_OVERRIDE_MIN_POST_CHARS' => 'Override minimum characters limit',
|
'MCHAT_OVERRIDE_MIN_POST_CHARS' => 'Override minimum characters limit',
|
||||||
'MCHAT_OVERRIDE_MIN_POST_CHARS_EXPLAIN' => 'Set to yes to override the forums minimum characters setting for chat messages',
|
'MCHAT_OVERRIDE_MIN_POST_CHARS_EXPLAIN' => 'Set to yes to override the forums minimum characters setting for chat messages.',
|
||||||
'MCHAT_LOG_ENABLED' => 'Add entries to the admin log',
|
'MCHAT_LOG_ENABLED' => 'Add entries to the admin log',
|
||||||
'MCHAT_LOG_ENABLED_EXPLAIN' => 'This affects message editing, deleting, pruning and purging.',
|
'MCHAT_LOG_ENABLED_EXPLAIN' => 'This affects message editing, deleting, pruning and purging.',
|
||||||
|
|
||||||
@@ -134,7 +134,7 @@ $lang = array_merge($lang, [
|
|||||||
'MCHAT_DELETE_MESSAGES' => '%1$s and delete mChat messages',
|
'MCHAT_DELETE_MESSAGES' => '%1$s and delete mChat messages',
|
||||||
|
|
||||||
// Error reporting
|
// Error reporting
|
||||||
'TOO_LONG_MCHAT_BBCODE_DISALLOWED' => 'The disallowed bbcodes value is too long.',
|
'TOO_LONG_MCHAT_BBCODE_DISALLOWED' => 'The disallowed BBCodes value is too long.',
|
||||||
'TOO_SMALL_MCHAT_CUSTOM_HEIGHT' => 'The mChat page height value is too small.',
|
'TOO_SMALL_MCHAT_CUSTOM_HEIGHT' => 'The mChat page height value is too small.',
|
||||||
'TOO_LARGE_MCHAT_CUSTOM_HEIGHT' => 'The mChat page height value is too large.',
|
'TOO_LARGE_MCHAT_CUSTOM_HEIGHT' => 'The mChat page height value is too large.',
|
||||||
'TOO_LONG_MCHAT_DATE' => 'The date format you entered is too long.',
|
'TOO_LONG_MCHAT_DATE' => 'The date format you entered is too long.',
|
||||||
@@ -142,12 +142,7 @@ $lang = array_merge($lang, [
|
|||||||
'TOO_LARGE_MCHAT_FLOOD_TIME' => 'The flood time value is too large.',
|
'TOO_LARGE_MCHAT_FLOOD_TIME' => 'The flood time value is too large.',
|
||||||
'TOO_SMALL_MCHAT_INDEX_HEIGHT' => 'The index height value is too small.',
|
'TOO_SMALL_MCHAT_INDEX_HEIGHT' => 'The index height value is too small.',
|
||||||
'TOO_LARGE_MCHAT_INDEX_HEIGHT' => 'The index height value is too large.',
|
'TOO_LARGE_MCHAT_INDEX_HEIGHT' => 'The index height value is too large.',
|
||||||
'TOO_LARGE_MCHAT_MAX_MESSAGE_LNGTH' => 'The max message length value is too large.',
|
|
||||||
'TOO_LARGE_MCHAT_MAX_INPUT_HEIGHT' => 'The max input height value is too large.',
|
'TOO_LARGE_MCHAT_MAX_INPUT_HEIGHT' => 'The max input height value is too large.',
|
||||||
'TOO_SMALL_MCHAT_MESSAGE_NUM_CUSTOM' => 'The number of messages to display on the mChat page is too small.',
|
|
||||||
'TOO_LARGE_MCHAT_MESSAGE_NUM_CUSTOM' => 'The number of messages to display on the mChat page is too large.',
|
|
||||||
'TOO_SMALL_MCHAT_MESSAGE_NUM_INDEX' => 'The number of messages to display on the index page is too small.',
|
|
||||||
'TOO_LARGE_MCHAT_MESSAGE_NUM_INDEX' => 'The number of messages to display on the index page is too large.',
|
|
||||||
'TOO_SMALL_MCHAT_MESSAGE_NUM_ARCHIVE' => 'The number of messages to display on the archive page is too small.',
|
'TOO_SMALL_MCHAT_MESSAGE_NUM_ARCHIVE' => 'The number of messages to display on the archive page is too small.',
|
||||||
'TOO_LARGE_MCHAT_MESSAGE_NUM_ARCHIVE' => 'The number of messages to display on the archive page is too large.',
|
'TOO_LARGE_MCHAT_MESSAGE_NUM_ARCHIVE' => 'The number of messages to display on the archive page is too large.',
|
||||||
'TOO_SMALL_MCHAT_REFRESH' => 'The refresh value is too small.',
|
'TOO_SMALL_MCHAT_REFRESH' => 'The refresh value is too small.',
|
||||||
|
|||||||
30
migrations/mchat_2_1_2.php
Normal file
30
migrations/mchat_2_1_2.php
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @package phpBB Extension - mChat
|
||||||
|
* @copyright (c) 2018 kasimi - https://kasimi.net
|
||||||
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace dmzx\mchat\migrations;
|
||||||
|
|
||||||
|
use phpbb\db\migration\migration;
|
||||||
|
|
||||||
|
class mchat_2_1_2 extends migration
|
||||||
|
{
|
||||||
|
public static function depends_on()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'\dmzx\mchat\migrations\mchat_2_1_1',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update_data()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
['config.update', ['mchat_version', '2.1.2']],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
sounds/add.mp3
BIN
sounds/add.mp3
Binary file not shown.
BIN
sounds/del.mp3
BIN
sounds/del.mp3
Binary file not shown.
BIN
sounds/edit.mp3
BIN
sounds/edit.mp3
Binary file not shown.
BIN
sounds/error.mp3
BIN
sounds/error.mp3
Binary file not shown.
@@ -0,0 +1 @@
|
|||||||
|
{% INCLUDECSS '@dmzx_mchat/mchat_cleansilver.css' %}
|
||||||
26
styles/CleanSilver/theme/mchat_cleansilver.css
Normal file
26
styles/CleanSilver/theme/mchat_cleansilver.css
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
/**
|
||||||
|
*
|
||||||
|
* mChat CSS for CleanSilver
|
||||||
|
*
|
||||||
|
* @package phpBB Extension - mChat
|
||||||
|
* @copyright (c) 2017 MannixMD
|
||||||
|
* @copyright (c) 2018 kasimi - https://kasimi.net
|
||||||
|
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
.mchat-panel-buttons .icon.fa.fa-smile-o {
|
||||||
|
padding: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mchat-wrapper li.header dd {
|
||||||
|
width: 95px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mchat-wrapper li.header dd.lastpost {
|
||||||
|
width: 250px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mchat-button-is-down {
|
||||||
|
border-style: none;
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{% INCLUDECSS '@dmzx_mchat/mchat_hexagonreborn.css' %}
|
||||||
26
styles/HexagonReborn/theme/mchat_hexagonreborn.css
Normal file
26
styles/HexagonReborn/theme/mchat_hexagonreborn.css
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
/**
|
||||||
|
*
|
||||||
|
* mChat CSS for Hexagon Reborn
|
||||||
|
*
|
||||||
|
* @package phpBB Extension - mChat
|
||||||
|
* @copyright (c) 2017 MannixMD
|
||||||
|
* @copyright (c) 2018 kasimi - https://kasimi.net
|
||||||
|
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
.mchat-button-down {
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mchat-button-down .icon {
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mchat-button-is-down {
|
||||||
|
border-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mchat-input-control button:hover .icon {
|
||||||
|
color: #de7300;
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{% INCLUDECSS '@dmzx_mchat/mchat_projectdurango.css' %}
|
||||||
78
styles/Project_Durango/theme/mchat_projectdurango.css
Normal file
78
styles/Project_Durango/theme/mchat_projectdurango.css
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
/**
|
||||||
|
*
|
||||||
|
* mChat CSS for Project Durango
|
||||||
|
*
|
||||||
|
* @package phpBB Extension - mChat
|
||||||
|
* @copyright (c) 2017 MannixMD
|
||||||
|
* @copyright (c) 2018 kasimi - https://kasimi.net
|
||||||
|
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
.mchat-panel-buttons .button {
|
||||||
|
border-color: #3a3a3a;
|
||||||
|
background: #3a3a3a;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mchat-panel-buttons .button:hover {
|
||||||
|
background: #5dc21e;
|
||||||
|
border-color: #5dc21e;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mchat-panel-button .button .icon {
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mchat-panel-buttons .icon {
|
||||||
|
color: #5dc21e;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mchat-input-control button:hover .icon {
|
||||||
|
color: #5dc21e;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul#mchat-messages {
|
||||||
|
background: #c2c2c2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mchat-messages-top .row {
|
||||||
|
border-bottom-color: #107c10;
|
||||||
|
border-bottom-width: 4px;
|
||||||
|
border-top-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mchat-text {
|
||||||
|
color: #3a3a3a;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.mchat-buttons .fa {
|
||||||
|
color: #107c10;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mchat-wrapper .mchat-buttons li {
|
||||||
|
opacity: .5;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mchat-main {
|
||||||
|
border-top: 4px solid #107c10;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mchat-messages li.row:hover {
|
||||||
|
background: #c2c2c2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mchat-message-header {
|
||||||
|
color: #3a3a3a;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mchat-button-add .icon {
|
||||||
|
color: #107c10;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mchat-confirm textarea {
|
||||||
|
color: #f1f1f1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mchat-panel {
|
||||||
|
background-color: #6b6b6b;
|
||||||
|
}
|
||||||
@@ -335,6 +335,9 @@ jQuery(function($) {
|
|||||||
mChat.resetSession();
|
mChat.resetSession();
|
||||||
},
|
},
|
||||||
refresh: function(message) {
|
refresh: function(message) {
|
||||||
|
if (mChat.pageIsUnloading) {
|
||||||
|
return $.when();
|
||||||
|
}
|
||||||
var isAdd = typeof message !== 'undefined';
|
var isAdd = typeof message !== 'undefined';
|
||||||
if (!isAdd) {
|
if (!isAdd) {
|
||||||
mChat.sessionLength += mChat.refreshTime;
|
mChat.sessionLength += mChat.refreshTime;
|
||||||
@@ -348,7 +351,7 @@ jQuery(function($) {
|
|||||||
}
|
}
|
||||||
var data = {
|
var data = {
|
||||||
last: mChat.messageIds.length ? mChat.messageIds.max() : 0,
|
last: mChat.messageIds.length ? mChat.messageIds.max() : 0,
|
||||||
log: mChat.liveUpdates ? mChat.logId : undefined,
|
log: mChat.logId,
|
||||||
message: isAdd ? message : undefined
|
message: isAdd ? message : undefined
|
||||||
};
|
};
|
||||||
mChat.status('load');
|
mChat.status('load');
|
||||||
@@ -597,7 +600,6 @@ jQuery(function($) {
|
|||||||
},
|
},
|
||||||
updateCharCount: function() {
|
updateCharCount: function() {
|
||||||
var count = mChat.cleanMessage(mChat.cached('input').val()).length;
|
var count = mChat.cleanMessage(mChat.cached('input').val()).length;
|
||||||
var exceedCount = Math.max(mChat.mssgLngth - count, -999);
|
|
||||||
if (mChat.showCharCount) {
|
if (mChat.showCharCount) {
|
||||||
var charCount = mChat.lang.charCount.format({current: count, max: mChat.mssgLngth});
|
var charCount = mChat.lang.charCount.format({current: count, max: mChat.mssgLngth});
|
||||||
var $elem = mChat.cached('character-count').html(charCount).toggleClass('invisible', count === 0);
|
var $elem = mChat.cached('character-count').html(charCount).toggleClass('invisible', count === 0);
|
||||||
@@ -605,9 +607,12 @@ jQuery(function($) {
|
|||||||
$elem.toggleClass('error', count > mChat.mssgLngth);
|
$elem.toggleClass('error', count > mChat.mssgLngth);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mChat.cached('exceed-character-count').text(exceedCount).toggleClass('hidden', exceedCount >= 0);
|
if (mChat.mssgLngth) {
|
||||||
mChat.cached('input').parent().toggleClass('mchat-input-error', exceedCount < 0);
|
var exceedCount = mChat.mssgLngth - count;
|
||||||
mChat.cached('add').toggleClass('hidden', exceedCount < 0);
|
mChat.cached('exceed-character-count').text(exceedCount).toggleClass('hidden', exceedCount >= 0);
|
||||||
|
mChat.cached('input').parent().toggleClass('mchat-input-error', exceedCount < 0);
|
||||||
|
mChat.cached('add').toggleClass('hidden', exceedCount < 0);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
cleanMessage: function(message) {
|
cleanMessage: function(message) {
|
||||||
if (!mChat.maxInputHeight) {
|
if (!mChat.maxInputHeight) {
|
||||||
@@ -773,20 +778,38 @@ jQuery(function($) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var toggleRememberColor = function() {
|
||||||
|
var $this = $(this);
|
||||||
|
var newColor = $this.data('color');
|
||||||
|
if (mChat.storage.get('color') === newColor) {
|
||||||
|
mChat.storage.remove('color');
|
||||||
|
} else {
|
||||||
|
mChat.storage.set('color', newColor);
|
||||||
|
mChat.cached('colour').find('.colour-palette a').removeClass('remember-color');
|
||||||
|
}
|
||||||
|
$this.toggleClass('remember-color');
|
||||||
|
};
|
||||||
|
|
||||||
|
var toggleRememberColorTimer = 0;
|
||||||
|
var isToggledRememberColor = false;
|
||||||
mChat.cached('colour').find('.colour-palette').on('click', 'a', function(e) {
|
mChat.cached('colour').find('.colour-palette').on('click', 'a', function(e) {
|
||||||
if (e.ctrlKey || e.metaKey) {
|
if (isToggledRememberColor) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
e.stopImmediatePropagation();
|
e.stopImmediatePropagation();
|
||||||
var $this = $(this);
|
isToggledRememberColor = false;
|
||||||
var newColor = $this.data('color');
|
} else if (e.ctrlKey || e.metaKey) {
|
||||||
if (mChat.storage.get('color') === newColor) {
|
e.preventDefault();
|
||||||
mChat.storage.remove('color');
|
e.stopImmediatePropagation();
|
||||||
} else {
|
toggleRememberColor.call(this);
|
||||||
mChat.storage.set('color', newColor);
|
|
||||||
mChat.cached('colour').find('.colour-palette a').removeClass('remember-color');
|
|
||||||
}
|
|
||||||
$this.toggleClass('remember-color');
|
|
||||||
}
|
}
|
||||||
|
}).on('mousedown touchstart', 'a', function() {
|
||||||
|
var that = this;
|
||||||
|
toggleRememberColorTimer = setTimeout(function() {
|
||||||
|
toggleRememberColor.call(that);
|
||||||
|
isToggledRememberColor = true;
|
||||||
|
}, 500);
|
||||||
|
}).on('mouseup touchend', 'a', function() {
|
||||||
|
clearTimeout(toggleRememberColorTimer);
|
||||||
});
|
});
|
||||||
|
|
||||||
var color = mChat.storage.get('color');
|
var color = mChat.storage.get('color');
|
||||||
@@ -794,6 +817,10 @@ jQuery(function($) {
|
|||||||
mChat.cached('colour').find('.colour-palette a[data-color="' + color + '"]').addClass('remember-color');
|
mChat.cached('colour').find('.colour-palette a[data-color="' + color + '"]').addClass('remember-color');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mChat.cached('colour').find('.colour-palette a').each(function() {
|
||||||
|
$(this).removeAttr('href');
|
||||||
|
});
|
||||||
|
|
||||||
if (mChat.maxInputHeight) {
|
if (mChat.maxInputHeight) {
|
||||||
mChat.cached('input').one('focus', function() {
|
mChat.cached('input').one('focus', function() {
|
||||||
autosize(this);
|
autosize(this);
|
||||||
@@ -803,7 +830,8 @@ jQuery(function($) {
|
|||||||
mChat.cached('form').submit(function(e) {
|
mChat.cached('form').submit(function(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
}).keypress(function(e) {
|
}).keypress(function(e) {
|
||||||
if ((e.which === 10 || e.which === 13) && mChat.cached('input').is(e.target)) {
|
var isEnter = e.which === 10 || e.which === 13;
|
||||||
|
if (isEnter && mChat.cached('input').is(e.target)) {
|
||||||
var isCtrl = e.ctrlKey || e.metaKey;
|
var isCtrl = e.ctrlKey || e.metaKey;
|
||||||
if (!mChat.maxInputHeight || !isCtrl === !mChat.storage.get('no_enter')) {
|
if (!mChat.maxInputHeight || !isCtrl === !mChat.storage.get('no_enter')) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
@@ -829,6 +857,9 @@ jQuery(function($) {
|
|||||||
|
|
||||||
$(window).on('beforeunload', function() {
|
$(window).on('beforeunload', function() {
|
||||||
mChat.pageIsUnloading = true;
|
mChat.pageIsUnloading = true;
|
||||||
|
if (mChat.page !== 'archive') {
|
||||||
|
mChat.pauseSession();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#phpbb').on('click', '[data-mchat-action]', function(e) {
|
$('#phpbb').on('click', '[data-mchat-action]', function(e) {
|
||||||
|
|||||||
@@ -23,7 +23,6 @@
|
|||||||
playSound : {{ MCHAT_SOUND ? 'true' : 'false' }},
|
playSound : {{ MCHAT_SOUND ? 'true' : 'false' }},
|
||||||
messageTop : {{ MCHAT_MESSAGE_TOP ? 'true' : 'false' }},
|
messageTop : {{ MCHAT_MESSAGE_TOP ? 'true' : 'false' }},
|
||||||
allowBBCodes : {{ S_BBCODE_ALLOWED ? 'true' : 'false' }},
|
allowBBCodes : {{ S_BBCODE_ALLOWED ? 'true' : 'false' }},
|
||||||
liveUpdates : {{ MCHAT_LIVE_UPDATES ? 'true' : 'false' }},
|
|
||||||
relativeTime : {{ MCHAT_RELATIVE_TIME ? 'true' : 'false' }},
|
relativeTime : {{ MCHAT_RELATIVE_TIME ? 'true' : 'false' }},
|
||||||
showCharCount : {{ MCHAT_CHARACTER_COUNT ? 'true' : 'false' }},
|
showCharCount : {{ MCHAT_CHARACTER_COUNT ? 'true' : 'false' }},
|
||||||
jumpTo : {{ MCHAT_JUMP_TO }},
|
jumpTo : {{ MCHAT_JUMP_TO }},
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{% if MCHAT_PAGE %}
|
{% if MCHAT_PAGE %}
|
||||||
<br>
|
<p class="footer-row mchat-copyright">
|
||||||
<span>{{ MCHAT_DISPLAY_NAME }} © {{ lang('POST_BY_AUTHOR') }} {{ MCHAT_AUTHOR_HOMEPAGES }}</span>
|
<span>{{ MCHAT_DISPLAY_NAME }} © {{ lang('POST_BY_AUTHOR') }} {{ MCHAT_AUTHOR_HOMEPAGES }}</span>
|
||||||
|
</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
<div class="mchat-input-container inputbox">
|
<div class="mchat-input-container inputbox">
|
||||||
<textarea id="mchat-input" name="message" class="no-auto-resize {{ MCHAT_MAX_INPUT_HEIGHT ? 'mchat-multi-line' : 'mchat-single-line' }}" rows="1" autocomplete="off"></textarea>
|
<textarea id="mchat-input" name="message" class="no-auto-resize {{ MCHAT_MAX_INPUT_HEIGHT ? 'mchat-multi-line' : 'mchat-single-line' }}" rows="1" autocomplete="off"></textarea>
|
||||||
<div class="mchat-input-control">
|
<div class="mchat-input-control">
|
||||||
<button class="mchat-button-add" id="mchat-add" data-mchat-action="add" title="{{ lang('MCHAT_ADD') }}">
|
<button type="button" class="mchat-button-add" id="mchat-add" data-mchat-action="add" title="{{ lang('MCHAT_ADD') }}">
|
||||||
<i class="icon icon-lightgray fa fa-chevron-right fa-fw" aria-hidden="true"></i><span class="sr-only">{{ lang('MCHAT_ADD') }}</span>
|
<i class="icon icon-lightgray fa fa-chevron-right fa-fw" aria-hidden="true"></i><span class="sr-only">{{ lang('MCHAT_ADD') }}</span>
|
||||||
</button>
|
</button>
|
||||||
{% if MCHAT_MAX_MESSAGE_LENGTH %}
|
{% if MCHAT_MAX_MESSAGE_LENGTH %}
|
||||||
@@ -22,13 +22,13 @@
|
|||||||
<div class="mchat-panel-buttons">
|
<div class="mchat-panel-buttons">
|
||||||
{% EVENT dmzx_mchat_buttons_before %}
|
{% EVENT dmzx_mchat_buttons_before %}
|
||||||
{% if MCHAT_ALLOW_SMILES and loops.smiley|length %}
|
{% if MCHAT_ALLOW_SMILES and loops.smiley|length %}
|
||||||
<button class="button mchat-button-smilies mchat-button-down" data-mchat-action="toggle" data-mchat-element="smilies" title="{{ lang('MCHAT_SMILES') }}">
|
<button type="button" class="button mchat-button-smilies mchat-button-down" data-mchat-action="toggle" data-mchat-element="smilies" title="{{ lang('MCHAT_SMILES') }}">
|
||||||
<i class="icon fa fa-smile-o" aria-hidden="true"></i><span class="sr-only">{{ lang('MCHAT_SMILES') }}</span>
|
<i class="icon fa fa-smile-o" aria-hidden="true"></i><span class="sr-only">{{ lang('MCHAT_SMILES') }}</span>
|
||||||
</button>
|
</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% EVENT dmzx_mchat_buttons_mid %}
|
{% EVENT dmzx_mchat_buttons_mid %}
|
||||||
{% if S_BBCODE_ALLOWED %}
|
{% if S_BBCODE_ALLOWED %}
|
||||||
<button class="button mchat-button-bbcodes mchat-button-down" data-mchat-action="toggle" data-mchat-element="bbcodes" title="{{ lang('MCHAT_BBCODES') }}">
|
<button type="button" class="button mchat-button-bbcodes mchat-button-down" data-mchat-action="toggle" data-mchat-element="bbcodes" title="{{ lang('MCHAT_BBCODES') }}">
|
||||||
<i class="icon fa fa-code fa-fw" aria-hidden="true"></i><span class="sr-only">{{ lang('MCHAT_BBCODES') }}</span>
|
<i class="icon fa fa-code fa-fw" aria-hidden="true"></i><span class="sr-only">{{ lang('MCHAT_BBCODES') }}</span>
|
||||||
</button>
|
</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -22,9 +22,15 @@
|
|||||||
|
|
||||||
.mchat-header .list-inner {
|
.mchat-header .list-inner {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -ms-flexbox;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
-webkit-box-align: center;
|
||||||
justify-content: left;
|
-ms-flex-align: center;
|
||||||
|
align-items: center;
|
||||||
|
-webkit-box-pack: left;
|
||||||
|
-ms-flex-pack: left;
|
||||||
|
justify-content: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mchat-wrapper li.header dd {
|
.mchat-wrapper li.header dd {
|
||||||
@@ -38,7 +44,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
#mchat-body * {
|
#mchat-body * {
|
||||||
box-sizing: border-box;
|
-webkit-box-sizing: border-box;
|
||||||
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
#mchat-main {
|
#mchat-main {
|
||||||
@@ -72,13 +79,29 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.mchat-message-flash {
|
.mchat-message-flash {
|
||||||
animation-name: flash-message;
|
-webkit-animation-name: flash-message;
|
||||||
animation-duration: .4s;
|
animation-name: flash-message;
|
||||||
animation-timing-function: ease-out;
|
-webkit-animation-duration: .4s;
|
||||||
|
animation-duration: .4s;
|
||||||
|
-webkit-animation-timing-function: ease-out;
|
||||||
|
animation-timing-function: ease-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mchat-message-flash:target {
|
.mchat-message-flash:target {
|
||||||
animation-duration: 2s;
|
-webkit-animation-duration: 2s;
|
||||||
|
animation-duration: 2s;
|
||||||
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes flash-message {
|
||||||
|
|
||||||
|
0% {
|
||||||
|
background-color: #FFDC95;
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes flash-message {
|
@keyframes flash-message {
|
||||||
@@ -149,6 +172,10 @@
|
|||||||
display: unset;
|
display: unset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.mchat-text .text-strong {
|
||||||
|
color: unset;
|
||||||
|
}
|
||||||
|
|
||||||
.mchat-notification-message .mchat-text {
|
.mchat-notification-message .mchat-text {
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
}
|
}
|
||||||
@@ -228,6 +255,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.mchat-controls {
|
.mchat-controls {
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -ms-flexbox;
|
||||||
display: flex;
|
display: flex;
|
||||||
margin: 5px 0;
|
margin: 5px 0;
|
||||||
}
|
}
|
||||||
@@ -237,7 +266,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.mchat-input-container {
|
.mchat-input-container {
|
||||||
flex: 1;
|
-webkit-box-flex: 1;
|
||||||
|
-ms-flex: 1;
|
||||||
|
flex: 1;
|
||||||
position: relative;
|
position: relative;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
@@ -270,9 +301,15 @@
|
|||||||
|
|
||||||
.mchat-input-control {
|
.mchat-input-control {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -ms-flexbox;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
-webkit-box-pack: center;
|
||||||
align-items: center;
|
-ms-flex-pack: center;
|
||||||
|
justify-content: center;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-ms-flex-align: center;
|
||||||
|
align-items: center;
|
||||||
width: 30px;
|
width: 30px;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
top: 0;
|
top: 0;
|
||||||
@@ -297,7 +334,9 @@
|
|||||||
.mchat-status {
|
.mchat-status {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: calc(50% - 1px);
|
top: calc(50% - 1px);
|
||||||
transform: translateY(-50%);
|
-webkit-transform: translateY(-50%);
|
||||||
|
-ms-transform: translateY(-50%);
|
||||||
|
transform: translateY(-50%);
|
||||||
text-indent: 0;
|
text-indent: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -320,6 +359,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.mchat-panel-buttons {
|
.mchat-panel-buttons {
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -ms-flexbox;
|
||||||
display: flex;
|
display: flex;
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
}
|
}
|
||||||
@@ -354,6 +395,13 @@
|
|||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#mchat-bbcodes #colour_palette {
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
#mchat-bbcodes #colour_palette label {
|
#mchat-bbcodes #colour_palette label {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
@@ -362,8 +410,14 @@
|
|||||||
margin: 0 auto 5px;
|
margin: 0 auto 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#mchat-bbcodes #colour_palette a {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
#mchat-bbcodes #colour_palette td a.remember-color {
|
#mchat-bbcodes #colour_palette td a.remember-color {
|
||||||
box-shadow: 0 0 0 1px #F00;
|
position: relative;
|
||||||
|
-webkit-box-shadow: 0 0 2px 2px #F00;
|
||||||
|
box-shadow: 0 0 2px 2px #F00;
|
||||||
}
|
}
|
||||||
|
|
||||||
#mchat-smilies {
|
#mchat-smilies {
|
||||||
@@ -384,12 +438,14 @@
|
|||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mchat-copyright {
|
.mchat-copyright.footer-row {
|
||||||
position: relative;
|
font-size: 10px;
|
||||||
top: 1px;
|
line-height: 1.8;
|
||||||
font-weight: bold;
|
margin: 0;
|
||||||
font-size: 1.1em;
|
}
|
||||||
cursor: help;
|
|
||||||
|
.footer-row + br {
|
||||||
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mchat-static {
|
.mchat-static {
|
||||||
@@ -411,7 +467,10 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.mchat-controls {
|
.mchat-controls {
|
||||||
flex-direction: column;
|
-webkit-box-orient: vertical;
|
||||||
|
-webkit-box-direction: normal;
|
||||||
|
-ms-flex-direction: column;
|
||||||
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mchat-panel-buttons {
|
.mchat-panel-buttons {
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
{% if U_MCHAT_CUSTOM_PAGE or MCHAT_PAGE %}
|
||||||
|
{% INCLUDE '@dmzx_mchat/mchat_navlink.html' %}
|
||||||
|
{% endif %}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
{% if U_MCHAT_CUSTOM_PAGE or MCHAT_PAGE %}
|
||||||
|
{% INCLUDE '@dmzx_mchat/mchat_navlink.html' %}
|
||||||
|
{% endif %}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{% INCLUDECSS '@dmzx_mchat/mchat_we_universal.css' %}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{# empty #}
|
||||||
21
styles/we_universal/theme/mchat_we_universal.css
Normal file
21
styles/we_universal/theme/mchat_we_universal.css
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
/**
|
||||||
|
*
|
||||||
|
* mChat CSS for we_universal
|
||||||
|
*
|
||||||
|
* @package phpBB Extension - mChat
|
||||||
|
* @copyright (c) 2018 kasimi - https://kasimi.net
|
||||||
|
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
.mchat-nav {
|
||||||
|
float: right !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mchat-nav::before {
|
||||||
|
content: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mchat-panel .inputbox {
|
||||||
|
height: unset;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user