From 6a3cb1cd04e8a75f74263ebf399ebeee0dbbbf25 Mon Sep 17 00:00:00 2001 From: dmzx Date: Thu, 28 Jan 2016 20:54:41 +0100 Subject: [PATCH] Version 0.3.3 --- .travis.yml | 1 - adm/style/acp_mchat.html | 23 +- config/routing.yml | 12 +- config/services.yml | 24 +- config/tables.yml | 3 +- controller/admin_controller.php | 241 ++--- controller/main_controller.php | 62 ++ controller/mchat.php | 44 - core/functions_mchat.php | 540 ++++++----- core/mchat.php | 822 ++++++++++++++++ core/render_helper.php | 908 ------------------ event/listener.php | 88 +- language/de/common.php | 4 +- language/de/info_acp_mchat.php | 20 +- language/en/common.php | 14 +- language/en/info_acp_mchat.php | 8 +- language/es/common.php | 116 ++- language/es/info_acp_mchat.php | 214 +++-- language/et/common.php | 128 --- language/et/info_acp_mchat.php | 169 ---- language/fr/common.php | 128 --- language/fr/info_acp_mchat.php | 169 ---- language/it/common.php | 128 --- language/it/info_acp_mchat.php | 166 ---- language/nl/common.php | 128 --- language/nl/info_acp_mchat.php | 169 ---- language/pl/common.php | 128 --- language/pl/info_acp_mchat.php | 166 ---- language/pt-br/common.php | 128 --- language/pt-br/info_acp_mchat.php | 169 ---- language/pt/common.php | 128 --- language/pt/info_acp_mchat.php | 169 ---- language/ro/common.php | 131 --- language/ro/info_acp_mchat.php | 175 ---- migrations/install_mchat.php | 237 ++--- sounds/add.mp3 | Bin 0 -> 13210 bytes sounds/add.swf | Bin 1119 -> 0 bytes sounds/del.mp3 | Bin 0 -> 7254 bytes sounds/del.swf | Bin 1393 -> 0 bytes sounds/edit.mp3 | Bin 0 -> 13210 bytes sounds/error.mp3 | Bin 0 -> 13210 bytes sounds/error.swf | Bin 2498 -> 0 bytes .../event/index_body_block_online_append.html | 2 +- .../index_body_forumlist_body_after.html | 2 +- .../event/index_body_markforums_before.html | 2 +- .../event/overall_header_content_before.html | 1 - .../event/overall_header_head_append.html | 3 +- styles/prosilver/template/mchat.js | 401 ++++---- styles/prosilver/template/mchat.min.js | 4 +- styles/prosilver/template/mchat_body.html | 171 ++-- styles/prosilver/template/mchat_disabled.html | 5 - styles/prosilver/template/mchat_messages.html | 8 +- styles/prosilver/theme/mchat.css | 7 - ucp/ucp_mchat_module.php | 15 +- 54 files changed, 1906 insertions(+), 4475 deletions(-) create mode 100644 controller/main_controller.php delete mode 100644 controller/mchat.php create mode 100644 core/mchat.php delete mode 100644 core/render_helper.php delete mode 100644 language/et/common.php delete mode 100644 language/et/info_acp_mchat.php delete mode 100644 language/fr/common.php delete mode 100644 language/fr/info_acp_mchat.php delete mode 100644 language/it/common.php delete mode 100644 language/it/info_acp_mchat.php delete mode 100644 language/nl/common.php delete mode 100644 language/nl/info_acp_mchat.php delete mode 100644 language/pl/common.php delete mode 100644 language/pl/info_acp_mchat.php delete mode 100644 language/pt-br/common.php delete mode 100644 language/pt-br/info_acp_mchat.php delete mode 100644 language/pt/common.php delete mode 100644 language/pt/info_acp_mchat.php delete mode 100644 language/ro/common.php delete mode 100644 language/ro/info_acp_mchat.php create mode 100644 sounds/add.mp3 delete mode 100644 sounds/add.swf create mode 100644 sounds/del.mp3 delete mode 100644 sounds/del.swf create mode 100644 sounds/edit.mp3 create mode 100644 sounds/error.mp3 delete mode 100644 sounds/error.swf delete mode 100644 styles/prosilver/template/event/overall_header_content_before.html delete mode 100644 styles/prosilver/template/mchat_disabled.html diff --git a/.travis.yml b/.travis.yml index 148167c..fed516c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -50,7 +50,6 @@ before_install: - sudo cp phpbb-ext-acme-demo/phpunit.xml.dist ./ - sudo cp phpbb-ext-acme-demo/travis/prepare-phpbb.sh travis - sudo rm -rf phpbb-ext-acme-demo - - composer self-update install: - composer install --no-interaction --prefer-source diff --git a/adm/style/acp_mchat.html b/adm/style/acp_mchat.html index bc0f4a7..1b9bbd6 100644 --- a/adm/style/acp_mchat.html +++ b/adm/style/acp_mchat.html @@ -42,12 +42,6 @@
{L_MCHAT_MAIN} -
-

- {L_MCHAT_ENABLE_EXPLAIN}
-
-
-

{L_MCHAT_MESSAGE_TOP_EXPLAIN}
@@ -133,10 +127,10 @@
-

+

{L_MCHAT_PRUNE_EXPLAIN}
-
-
+
+

@@ -161,6 +155,12 @@ {L_MCHAT_ARCHIVE_LIMIT_EXPLAIN}
+
+

+ {L_MCHAT_LIVE_UPDATES_EXPLAIN}
+
+
+

{L_MCHAT_AVATARS_EXPLAIN}
@@ -185,6 +185,11 @@
+
+

+ {L_MCHAT_EDIT_DELETE_LIMIT_EXPLAIN}
+
+

{L_MCHAT_MAX_MESSAGE_LENGTH_EXPLAIN}
diff --git a/config/routing.yml b/config/routing.yml index 9838eee..bedd78d 100644 --- a/config/routing.yml +++ b/config/routing.yml @@ -1,3 +1,13 @@ dmzx_mchat_controller: path: /mchat - defaults: { _controller: dmzx.mchat.controller:handle } + defaults: { _controller: dmzx.mchat.main.controller:page, page: custom } +dmzx_mchat_page_controller: + path: /mchat/{page} + defaults: { _controller: dmzx.mchat.main.controller:page } + requirements: + action: 'archive|rules|whois' +dmzx_mchat_action_controller: + path: /mchat-{action} + defaults: { _controller: dmzx.mchat.main.controller:action } + requirements: + action: 'add|edit|del|clean|refresh|whois' diff --git a/config/services.yml b/config/services.yml index f78b14b..2d2bb43 100644 --- a/config/services.yml +++ b/config/services.yml @@ -5,63 +5,53 @@ services: dmzx.mchat.admin.controller: class: dmzx\mchat\controller\admin_controller arguments: - - '@dmzx.mchat.functions_mchat' - '@config' - '@template' - '@log' - '@user' - - '@dbal.conn' - '@cache' - '@request' - '@ext.manager' - '%core.root_path%' - '%core.php_ext%' - - '%dmzx.mchat.table.mchat_config%' - dmzx.mchat.controller: - class: dmzx\mchat\controller\mchat + dmzx.mchat.main.controller: + class: dmzx\mchat\controller\main_controller arguments: - - '@dmzx.mchat.render_helper' + - '@dmzx.mchat.core' - '@request' - dmzx.mchat.render_helper: - class: dmzx\mchat\core\render_helper + dmzx.mchat.core: + class: dmzx\mchat\core\mchat arguments: - '@dmzx.mchat.functions_mchat' - '@config' - '@controller.helper' - '@template' - - '@log' - '@user' - '@auth' - - '@dbal.conn' - '@pagination' - '@request' - '@dispatcher' - '%core.root_path%' - '%core.php_ext%' - - '%dmzx.mchat.table.mchat%' dmzx.mchat.functions_mchat: class: dmzx\mchat\core\functions_mchat arguments: - '@config' - - '@template' - '@user' - '@auth' - '@log' - '@dbal.conn' - - '@cache' + - '@cache.driver' - '%core.root_path%' - '%core.php_ext%' - '%dmzx.mchat.table.mchat%' - - '%dmzx.mchat.table.mchat_config%' - '%dmzx.mchat.table.mchat_sessions%' dmzx.mchat.listener: class: dmzx\mchat\event\listener arguments: - '@dmzx.mchat.functions_mchat' - - '@dmzx.mchat.render_helper' - - '@auth' + - '@dmzx.mchat.core' - '@controller.helper' - - '@template' - '@user' - '%core.php_ext%' tags: diff --git a/config/tables.yml b/config/tables.yml index 2e6748f..86813a7 100644 --- a/config/tables.yml +++ b/config/tables.yml @@ -1,4 +1,3 @@ parameters: dmzx.mchat.table.mchat: %core.table_prefix%mchat - dmzx.mchat.table.mchat_config: %core.table_prefix%mchat_config - dmzx.mchat.table.mchat_sessions: %core.table_prefix%mchat_sessions \ No newline at end of file + dmzx.mchat.table.mchat_sessions: %core.table_prefix%mchat_sessions diff --git a/controller/admin_controller.php b/controller/admin_controller.php index e61c520..b8181f7 100644 --- a/controller/admin_controller.php +++ b/controller/admin_controller.php @@ -11,9 +11,6 @@ namespace dmzx\mchat\controller; class admin_controller { - /** @var \dmzx\mchat\core\functions_mchat */ - protected $functions_mchat; - /** @var \phpbb\config\config */ protected $config; @@ -26,9 +23,6 @@ class admin_controller /** @var \phpbb\user */ protected $user; - /** @var \phpbb\db\driver\driver_interface */ - protected $db; - /** @var \phpbb\cache\service */ protected $cache; @@ -42,10 +36,7 @@ class admin_controller protected $phpbb_root_path; /** @var string */ - protected $phpEx; - - /** @var string */ - protected $mchat_config_table; + protected $php_ext; /** @var string */ public $u_action; @@ -53,33 +44,27 @@ class admin_controller /** * Constructor * - * @param \dmzx\mchat\core\functions_mchat $functions_mchat * @param \phpbb\config\config $config * @param \phpbb\template\template $template * @param \phpbb\log\log_interface $log * @param \phpbb\user $user - * @param \phpbb\db\driver\driver_interface $db * @param \phpbb\cache\service $cache * @param \phpbb\request\request $request * @param \phpbb\extension\manager $phpbb_extension_manager * @param string $phpbb_root_path - * @param string $phpEx - * @param string $mchat_config_table + * @param string $php_ext */ - public function __construct(\dmzx\mchat\core\functions_mchat $functions_mchat, \phpbb\config\config $config, \phpbb\template\template $template, \phpbb\log\log_interface $log, \phpbb\user $user, \phpbb\db\driver\driver_interface $db, \phpbb\cache\service $cache, \phpbb\request\request $request, \phpbb\extension\manager $phpbb_extension_manager, $phpbb_root_path, $phpEx, $mchat_config_table) + public function __construct(\phpbb\config\config $config, \phpbb\template\template $template, \phpbb\log\log_interface $log, \phpbb\user $user, \phpbb\cache\service $cache, \phpbb\request\request $request, \phpbb\extension\manager $phpbb_extension_manager, $phpbb_root_path, $php_ext) { - $this->functions_mchat = $functions_mchat; $this->config = $config; $this->template = $template; $this->log = $log; $this->user = $user; - $this->db = $db; $this->cache = $cache; $this->request = $request; $this->phpbb_extension_manager = $phpbb_extension_manager; $this->phpbb_root_path = $phpbb_root_path; - $this->php_ext = $phpEx; - $this->mchat_config_table = $mchat_config_table; + $this->php_ext = $php_ext; } /** @@ -92,30 +77,40 @@ class admin_controller { add_form_key('acp_mchat'); - $mchat_row = array( - 'location' => $this->request->variable('mchat_location', 0), - 'refresh' => $this->request->variable('mchat_refresh', 0), - 'message_limit' => $this->request->variable('mchat_message_limit', 0), - 'message_num' => $this->request->variable('mchat_message_num', 0), - 'archive_limit' => $this->request->variable('mchat_archive_limit', 0), - 'flood_time' => $this->request->variable('mchat_flood_time', 0), - 'max_message_lngth' => $this->request->variable('mchat_max_message_lngth', 0), - 'custom_page' => $this->request->variable('mchat_custom_page', 0), - 'date' => $this->request->variable('mchat_date', '', true), - 'whois' => $this->request->variable('mchat_whois', 0), - 'whois_refresh' => $this->request->variable('mchat_whois_refresh', 0), - 'bbcode_disallowed' => $this->request->variable('mchat_bbcode_disallowed', '', true), - 'prune_enable' => $this->request->variable('mchat_prune_enable', 0), - 'prune_num' => $this->request->variable('mchat_prune_num', 0), - 'index_height' => $this->request->variable('mchat_index_height', 0), - 'custom_height' => $this->request->variable('mchat_custom_height', 0), - 'static_message' => $this->request->variable('mchat_static_message', '', true), - 'override_min_post_chars' => $this->request->variable('mchat_override_min_post_chars', 0), - 'override_smilie_limit' => $this->request->variable('mchat_override_smilie_limit', 0), - 'timeout' => $this->request->variable('mchat_timeout', 0), - 'pause_on_input' => $this->request->variable('mchat_pause_on_input', 0), - 'rules' => $this->request->variable('mchat_rules', '', true), - 'avatars' => $this->request->variable('mchat_avatars', 0), + $mchat_config = array( + 'mchat_archive_limit' => array('default' => 25, 'validation' => array('num', false, 25, 50)), + 'mchat_avatars' => array('default' => 1, 'validation' => array()), + 'mchat_bbcode_disallowed' => array('default' => '', 'validation' => array('string', false, 0, 255)), + 'mchat_custom_height' => array('default' => 350, 'validation' => array('num', false, 50, 1000)), + 'mchat_custom_page' => array('default' => 1, 'validation' => array()), + 'mchat_date' => array('default' => 'D M d, Y g:i a', 'validation' => array('string', false, 0, 255)), + 'mchat_edit_delete_limit' => array('default' => 0, 'validation' => array()), + 'mchat_flood_time' => array('default' => 0, 'validation' => array('num', false, 0, 30)), + 'mchat_index_height' => array('default' => 250, 'validation' => array('num', false, 50, 1000)), + 'mchat_live_updates' => array('default' => 1, 'validation' => array()), + 'mchat_location' => array('default' => 0, 'validation' => array()), + 'mchat_max_message_lngth' => array('default' => 500, 'validation' => array('num', false, 0, 500)), + 'mchat_message_limit' => array('default' => 10, 'validation' => array('num', false, 10, 30)), + 'mchat_message_num' => array('default' => 10, 'validation' => array('num', false, 10, 50)), + 'mchat_message_top' => array('default' => 1, 'validation' => array()), + 'mchat_new_posts' => array('default' => 0, 'validation' => array()), + 'mchat_new_posts_edit' => array('default' => 0, 'validation' => array()), + 'mchat_new_posts_quote' => array('default' => 0, 'validation' => array()), + 'mchat_new_posts_reply' => array('default' => 0, 'validation' => array()), + 'mchat_new_posts_topic' => array('default' => 0, 'validation' => array()), + 'mchat_on_index' => array('default' => 1, 'validation' => array()), + 'mchat_override_min_post_chars' => array('default' => 0, 'validation' => array()), + 'mchat_override_smilie_limit' => array('default' => 0, 'validation' => array()), + 'mchat_pause_on_input' => array('default' => 0, 'validation' => array()), + 'mchat_prune' => array('default' => 0, 'validation' => array()), + 'mchat_prune_num' => array('default' => 0, 'validation' => array()), + 'mchat_refresh' => array('default' => 10, 'validation' => array('num', false, 5, 60)), + 'mchat_rules' => array('default' => '', 'validation' => array('string', false, 0, 255)), + 'mchat_static_message' => array('default' => '', 'validation' => array('string', false, 0, 255)), + 'mchat_stats_index' => array('default' => 0, 'validation' => array()), + 'mchat_timeout' => array('default' => 0, 'validation' => array('num', false, 0, (int) $this->config['session_length'])), + 'mchat_whois' => array('default' => 1, 'validation' => array()), + 'mchat_whois_refresh' => array('default' => 60, 'validation' => array('num', false, 30, 300)), ); if ($this->request->is_set_post('submit')) @@ -125,23 +120,18 @@ class admin_controller include($this->phpbb_root_path . 'includes/functions_user.' . $this->php_ext); } - // validate the entries...most of them anyway - $mchat_array = array( - 'static_message' => array('string', false, 0, 255), - 'index_height' => array('num', false, 50, 1000), - 'custom_height' => array('num', false, 50, 1000), - 'whois_refresh' => array('num', false, 30, 300), - 'refresh' => array('num', false, 5, 60), - 'message_limit' => array('num', false, 10, 30), - 'message_num' => array('num', false, 10, 50), - 'archive_limit' => array('num', false, 25, 50), - 'flood_time' => array('num', false, 0, 30), - 'max_message_lngth' => array('num', false, 0, 500), - 'timeout' => array('num', false, 0, (int) $this->config['session_length']), - 'rules' => array('string', false, 0, 255), - ); + $mchat_new_config = array(); + $validation = array(); + foreach ($mchat_config as $key => $value) + { + $mchat_new_config[$key] = $this->request->variable($key, $value['default'], is_string($value['default'])); + if (!empty($value['validation'])) + { + $validation[$key] = $value['validation']; + } + } - $error = validate_data($mchat_row, $mchat_array); + $error = validate_data($mchat_new_config, $validation); if (!check_form_key('acp_mchat')) { @@ -151,114 +141,53 @@ class admin_controller // Replace "error" strings with their real, localised form $error = preg_replace('#^([A-Z_]+)$#e', "(!empty(\$this->user->lang('\\1'))) ? \$this->user->lang('\\1') : '\\1'", $error); - if (!sizeof($error)) + if (empty($error)) { - foreach ($mchat_row as $config_name => $config_value) + // Set the options the user configured + foreach ($mchat_new_config as $config_name => $config_value) { - $sql = 'UPDATE ' . $this->mchat_config_table . " - SET config_value = '" . $this->db->sql_escape($config_value) . "' - WHERE config_name = '" . $this->db->sql_escape($config_name) . "'"; - $this->db->sql_query($sql); + $this->config->set($config_name, $config_value); } - // Set the options the user configured - $this->set_options(); - - // and an entry into the log table + // Add an entry into the log table $this->log->add('admin', $this->user->data['user_id'], $this->user->ip, 'LOG_MCHAT_CONFIG_UPDATE'); - // purge the cache - $this->cache->destroy('_mchat_config'); - - // rebuild the cache - $this->functions_mchat->mchat_cache(); - trigger_error($this->user->lang('MCHAT_CONFIG_SAVED') . adm_back_link($this->u_action)); } } - // let's get it on - $sql = 'SELECT * - FROM ' . $this->mchat_config_table; - $result = $this->db->sql_query($sql); - $mchat_config = array(); - while ($row = $this->db->sql_fetchrow($result)) - { - $mchat_config[$row['config_name']] = $row['config_value']; - } - $this->db->sql_freeresult($result); - - $mchat_enable = isset($this->config['mchat_enable']) ? $this->config['mchat_enable'] : 0; - $mchat_on_index = isset($this->config['mchat_on_index']) ? $this->config['mchat_on_index'] : 0; - $mchat_version = isset($this->config['mchat_version']) ? $this->config['mchat_version'] : ''; - $mchat_new_posts = isset($this->config['mchat_new_posts']) ? $this->config['mchat_new_posts'] : 0; - $mchat_new_posts_topic = isset($this->config['mchat_new_posts_topic']) ? $this->config['mchat_new_posts_topic'] : 0; - $mchat_new_posts_reply = isset($this->config['mchat_new_posts_reply']) ? $this->config['mchat_new_posts_reply'] : 0; - $mchat_new_posts_edit = isset($this->config['mchat_new_posts_edit']) ? $this->config['mchat_new_posts_edit'] : 0; - $mchat_new_posts_quote = isset($this->config['mchat_new_posts_quote']) ? $this->config['mchat_new_posts_quote'] : 0; - $mchat_stats_index = isset($this->config['mchat_stats_index']) ? $this->config['mchat_stats_index'] : 0; - $mchat_message_top = isset($this->config['mchat_message_top']) ? $this->config['mchat_message_top'] : 0; - $dateformat_options = ''; foreach ($this->user->lang['dateformats'] as $format => $null) { - $dateformat_options .= ''; } $s_custom = false; $dateformat_options .= ''; - $this->template->assign_vars(array( - 'MCHAT_ERROR' => isset($error) ? ((sizeof($error)) ? implode('
', $error) : '') : '', - 'MCHAT_VERSION' => $mchat_version, - 'MCHAT_PRUNE' => !empty($mchat_row['prune_enable']) ? $mchat_row['prune_enable'] : $mchat_config['prune_enable'], - 'MCHAT_PRUNE_NUM' => !empty($mchat_row['prune_num']) ? $mchat_row['prune_num'] : $mchat_config['prune_num'], - 'MCHAT_ENABLE' => ($mchat_enable) ? true : false, - 'MCHAT_ON_INDEX' => ($mchat_on_index) ? true : false, - 'MCHAT_MESSAGE_TOP' => ($mchat_message_top) ? true : false, - 'MCHAT_LOCATION' => !empty($mchat_row['location']) ? $mchat_row['location'] : $mchat_config['location'], - 'MCHAT_REFRESH' => !empty($mchat_row['refresh']) ? $mchat_row['refresh'] : $mchat_config['refresh'], - 'MCHAT_WHOIS_REFRESH' => !empty($mchat_row['whois_refresh']) ? $mchat_row['whois_refresh'] : $mchat_config['whois_refresh'], - 'MCHAT_MESSAGE_LIMIT' => !empty($mchat_row['message_limit']) ? $mchat_row['message_limit'] : $mchat_config['message_limit'], - 'MCHAT_MESSAGE_NUM' => !empty($mchat_row['message_num']) ? $mchat_row['message_num'] : $mchat_config['message_num'], - 'MCHAT_ARCHIVE_LIMIT' => !empty($mchat_row['archive_limit']) ? $mchat_row['archive_limit'] : $mchat_config['archive_limit'], - 'MCHAT_AVATARS' => !empty($mchat_row['avatars']) ? $mchat_row['avatars'] : $mchat_config['avatars'], - 'MCHAT_FLOOD_TIME' => !empty($mchat_row['flood_time']) ? $mchat_row['flood_time'] : $mchat_config['flood_time'], - 'MCHAT_MAX_MESSAGE_LNGTH' => !empty($mchat_row['max_message_lngth']) ? $mchat_row['max_message_lngth'] : $mchat_config['max_message_lngth'], - 'MCHAT_CUSTOM_PAGE' => !empty($mchat_row['custom_page']) ? $mchat_row['custom_page'] : $mchat_config['custom_page'], - 'MCHAT_DATE' => !empty($mchat_row['date']) ? $mchat_row['date'] : $mchat_config['date'], - 'MCHAT_DEFAULT_DATEFORMAT' => $this->config['default_dateformat'], - 'MCHAT_RULES' => !empty($mchat_row['rules']) ? $mchat_row['rules'] : $mchat_config['rules'], - 'MCHAT_WHOIS' => !empty($mchat_row['whois']) ? $mchat_row['whois'] : $mchat_config['whois'], - 'MCHAT_STATS_INDEX' => ($mchat_stats_index) ? true : false, - 'MCHAT_BBCODE_DISALLOWED' => !empty($mchat_row['bbcode_disallowed']) ? $mchat_row['bbcode_disallowed'] : $mchat_config['bbcode_disallowed'], - 'MCHAT_STATIC_MESSAGE' => !empty($mchat_row['static_message']) ? $mchat_row['static_message'] : $mchat_config['static_message'], - 'MCHAT_INDEX_HEIGHT' => !empty($mchat_row['index_height']) ? $mchat_row['index_height'] : $mchat_config['index_height'], - 'MCHAT_CUSTOM_HEIGHT' => !empty($mchat_row['custom_height']) ? $mchat_row['custom_height'] : $mchat_config['custom_height'], - 'MCHAT_OVERRIDE_SMILIE_LIMIT' => !empty($mchat_row['override_smilie_limit']) ? $mchat_row['override_smilie_limit'] : $mchat_config['override_smilie_limit'], - 'MCHAT_OVERRIDE_MIN_POST_CHARS' => !empty($mchat_row['override_min_post_chars']) ? $mchat_row['override_min_post_chars'] : $mchat_config['override_min_post_chars'], - 'MCHAT_TIMEOUT' => !empty($mchat_row['timeout']) ? $mchat_row['timeout'] : $mchat_config['timeout'], - 'MCHAT_NEW_POSTS' => ($mchat_new_posts) ? true : false, - 'MCHAT_NEW_POSTS_TOPIC' => ($mchat_new_posts_topic) ? true : false, - 'MCHAT_NEW_POSTS_REPLY' => ($mchat_new_posts_reply) ? true : false, - 'MCHAT_NEW_POSTS_EDIT' => ($mchat_new_posts_edit) ? true : false, - 'MCHAT_NEW_POSTS_QUOTE' => ($mchat_new_posts_quote) ? true : false, - 'MCHAT_PAUSE_ON_INPUT' => !empty($mchat_row['pause_on_input']) ? $mchat_row['pause_on_input'] : $mchat_config['pause_on_input'], - 'L_MCHAT_BBCODES_DISALLOWED_EXPLAIN' => sprintf($this->user->lang('MCHAT_BBCODES_DISALLOWED_EXPLAIN'), 'phpbb_root_path}adm/index.$this->php_ext", 'i=bbcodes', true, $this->user->session_id) . '">', ''), - 'L_MCHAT_TIMEOUT_EXPLAIN' => sprintf($this->user->lang('MCHAT_USER_TIMEOUT_EXPLAIN'),'phpbb_root_path}adm/index.$this->php_ext", 'i=board&mode=load', true, $this->user->session_id) . '">', '', $this->config['session_length']), - 'S_MCHAT_DATEFORMAT_OPTIONS' => $dateformat_options, - 'S_CUSTOM_DATEFORMAT' => $s_custom, + $template_variables = array(); + foreach ($mchat_config as $key => $value) + { + $template_variables[strtoupper($key)] = $this->config[$key]; + } - 'U_ACTION' => $this->u_action) - ); + $this->template->assign_vars(array_merge($template_variables, array( + 'MCHAT_ERROR' => !empty($error) ? implode('
', $error) : '', + 'MCHAT_VERSION' => $this->config['mchat_version'], + 'L_MCHAT_BBCODES_DISALLOWED_EXPLAIN' => sprintf($this->user->lang('MCHAT_BBCODES_DISALLOWED_EXPLAIN'), 'phpbb_root_path}adm/index.$this->php_ext", 'i=bbcodes', true, $this->user->session_id) . '">', ''), + 'L_MCHAT_TIMEOUT_EXPLAIN' => sprintf($this->user->lang('MCHAT_USER_TIMEOUT_EXPLAIN'),'phpbb_root_path}adm/index.$this->php_ext", 'i=board&mode=load', true, $this->user->session_id) . '">', '', $this->config['session_length']), + 'S_MCHAT_DATEFORMAT_OPTIONS' => $dateformat_options, + 'S_CUSTOM_DATEFORMAT' => $s_custom, + 'U_ACTION' => $this->u_action, + ))); // Version check $this->user->add_lang(array('install', 'acp/extensions', 'migrator')); @@ -290,39 +219,11 @@ class admin_controller { $this->template->assign_vars(array( 'S_VERSIONCHECK_STATUS' => $e->getCode(), - 'VERSIONCHECK_FAIL_REASON' => ($e->getMessage() !== $this->user->lang('VERSIONCHECK_FAIL')) ? $e->getMessage() : '', + 'VERSIONCHECK_FAIL_REASON' => $e->getMessage() !== $this->user->lang('VERSIONCHECK_FAIL') ? $e->getMessage() : '', )); } } - /** - * Set the options a user can configure - * - * @return null - * @access protected - */ - protected function set_options() - { - //update setting in config table for mod enabled or not - $this->config->set('mchat_enable', $this->request->variable('mchat_enable', 0)); - // update setting in config table for allowing on index or not - $this->config->set('mchat_on_index', $this->request->variable('mchat_on_index', 0)); - // update setting in config table to enable posts to display or not - $this->config->set('mchat_new_posts', $this->request->variable('mchat_new_posts', 0)); - // update setting in config table to allow topic to display or not - $this->config->set('mchat_new_posts_topic', $this->request->variable('mchat_new_posts_topic', 0)); - // update setting in config table to allow replies to display or not - $this->config->set('mchat_new_posts_reply', $this->request->variable('mchat_new_posts_reply', 0)); - // update setting in config table to allow edit posts to display or not - $this->config->set('mchat_new_posts_edit', $this->request->variable('mchat_new_posts_edit', 0)); - // update setting in config table to allow quoted posts to display or not - $this->config->set('mchat_new_posts_quote', $this->request->variable('mchat_new_posts_quote', 0)); - // update setting in config table for stats on index - $this->config->set('mchat_stats_index', $this->request->variable('mchat_stats_index', 0)); - // update setting in config table for message on top - $this->config->set('mchat_message_top', $this->request->variable('mchat_message_top', 0)); - } - protected function version_check(\phpbb\extension\metadata_manager $md_manager, $force_update = false, $force_cache = false) { $meta = $md_manager->get_metadata('all'); diff --git a/controller/main_controller.php b/controller/main_controller.php new file mode 100644 index 0000000..418efd4 --- /dev/null +++ b/controller/main_controller.php @@ -0,0 +1,62 @@ +mchat = $mchat; + $this->request = $request; + } + + /** + * Controller for mChat + * + * @param $page The page to render, one of custom|archive|rules|whois + * @return \Symfony\Component\HttpFoundation\Response A Symfony Response object + */ + public function page($page) + { + return call_user_func(array($this->mchat, 'page_' . $page)); + } + + /** + * Controller for mChat actions called with Ajax requests + * + * @param $action The action to perform, one of add|edit|del|clean|refresh|whois + * @return \Symfony\Component\HttpFoundation\JsonResponse A Symfony JsonResponse object + */ + public function action($action) + { + if (!$this->request->is_ajax()) + { + throw new \phpbb\exception\http_exception(403, 'NO_AUTH_OPERATION'); + } + + $data = call_user_func(array($this->mchat, 'action_' . $action)); + + return new JsonResponse($data); + } +} diff --git a/controller/mchat.php b/controller/mchat.php deleted file mode 100644 index 279c1a6..0000000 --- a/controller/mchat.php +++ /dev/null @@ -1,44 +0,0 @@ -render_helper = $render_helper; - $this->request = $request; - } - - /** - * Controller for mChat - * - * @return \Symfony\Component\HttpFoundation\Response A Symfony Response object - */ - public function handle() - { - $content = $this->render_helper->render_data_for_page(false); - return $this->request->is_ajax() ? new JsonResponse($content) : $content; - } -} diff --git a/core/functions_mchat.php b/core/functions_mchat.php index fa341b0..945cb4e 100644 --- a/core/functions_mchat.php +++ b/core/functions_mchat.php @@ -14,9 +14,6 @@ class functions_mchat /** @var \phpbb\config\config */ protected $config; - /** @var \phpbb\template\template */ - protected $template; - /** @var \phpbb\user */ protected $user; @@ -29,137 +26,103 @@ class functions_mchat /** @var \phpbb\db\driver\driver_interface */ protected $db; - /** @var \phpbb\cache\service */ + /** @var \phpbb\cache\driver\driver_interface */ protected $cache; /** @var string */ protected $phpbb_root_path; /** @var string */ - protected $phpEx; + protected $php_ext; /** @var string */ protected $mchat_table; - /** @var string */ - protected $mchat_config_table; - /** @var string */ protected $mchat_sessions_table; + /** @var array */ + protected $foes = null; + /** * Constructor * - * @param \phpbb\config\config $config - * @param \phpbb\template\template $template - * @param \phpbb\user $user - * @param \phpbb\auth\auth $auth - * @param \phpbb\log\log_interface $log - * @param \phpbb\db\driver\driver_interface $db - * @param \phpbb\cache\service $cache - * @param string $phpbb_root_path - * @param string $phpEx - * @param string $mchat_table - * @param string $mchat_config_table - * @param string $mchat_sessions_table + * @param \phpbb\config\config $config + * @param \phpbb\user $user + * @param \phpbb\auth\auth $auth + * @param \phpbb\log\log_interface $log + * @param \phpbb\db\driver\driver_interface $db + * @param \phpbb\cache\driver\driver_interface $cache + * @param string $phpbb_root_path + * @param string $php_ext + * @param string $mchat_table + * @param string $mchat_sessions_table */ - function __construct(\phpbb\config\config $config, \phpbb\template\template $template, \phpbb\user $user, \phpbb\auth\auth $auth, \phpbb\log\log_interface $log, \phpbb\db\driver\driver_interface $db, \phpbb\cache\service $cache, $phpbb_root_path, $phpEx, $mchat_table, $mchat_config_table, $mchat_sessions_table) + function __construct(\phpbb\config\config $config, \phpbb\user $user, \phpbb\auth\auth $auth, \phpbb\log\log_interface $log, \phpbb\db\driver\driver_interface $db, \phpbb\cache\driver\driver_interface $cache, $phpbb_root_path, $php_ext, $mchat_table, $mchat_sessions_table) { $this->config = $config; - $this->template = $template; $this->user = $user; $this->auth = $auth; $this->log = $log; $this->db = $db; $this->cache = $cache; $this->phpbb_root_path = $phpbb_root_path; - $this->phpEx = $phpEx; + $this->php_ext = $php_ext; $this->mchat_table = $mchat_table; - $this->mchat_config_table = $mchat_config_table; $this->mchat_sessions_table = $mchat_sessions_table; } /** - * Builds the cache if it doesn't exist + * Converts a number of seconds to a string in the format 'x hours y minutes z seconds' */ - function mchat_cache() + protected function mchat_format_seconds($time) { - // Grab the config entries in the ACP...and cache em :P - $config_mchat = $this->cache->get('_mchat_config'); + $times = array(); - if ($config_mchat === false) + $hours = floor($time / 3600); + if ($hours) { - $sql = 'SELECT * - FROM ' . $this->mchat_config_table; - $result = $this->db->sql_query($sql); - $rows = $this->db->sql_fetchrowset($result); - $this->db->sql_freeresult($result); - - $config_mchat = array(); - foreach ($rows as $row) - { - $config_mchat[$row['config_name']] = $row['config_value']; - } - - $this->cache->put('_mchat_config', $config_mchat); + $time -= $hours * 3600; + $times[] = $hours . ' ' . $this->user->lang($hours > 1 ? 'MCHAT_HOURS' : 'MCHAT_HOUR'); } - return $config_mchat; - } - - /** - * @param $time the amount of time to display - */ - function mchat_session_time($time) - { - // Fix the display of the time limit - $chat_session = ''; - $chat_timeout = (int) $time; - $hours = $minutes = $seconds = 0; - - if ($chat_timeout >= 3600) - { - $hours = floor($chat_timeout / 3600); - $chat_timeout = $chat_timeout - ($hours * 3600); - $chat_session .= $hours > 1 ? ($hours . ' ' . $this->user->lang('MCHAT_HOURS')) : ($hours . ' ' . $this->user->lang('MCHAT_HOUR')); - } - - $minutes = floor($chat_timeout / 60); + $minutes = floor($time / 60); if ($minutes) { - $minutes = $minutes > 1 ? ($minutes . ' ' . $this->user->lang('MCHAT_MINUTES')) : ($minutes . ' ' . $this->user->lang('MCHAT_MINUTE')); - $chat_timeout = $chat_timeout - ($minutes * 60); - $chat_session .= $minutes; + $time -= $minutes * 60; + $times[] = $minutes . ' ' . $this->user->lang($minutes > 1 ? 'MCHAT_MINUTES' : 'MCHAT_MINUTE'); } - $seconds = ceil($chat_timeout); + $seconds = ceil($time); if ($seconds) { - $seconds = $seconds > 1 ? ($seconds . ' ' . $this->user->lang('MCHAT_SECONDS')) : ($seconds . ' ' . $this->user->lang('MCHAT_SECOND')); - $chat_session .= $seconds; + $times[] = $seconds . ' ' . $this->user->lang($seconds > 1 ? 'MCHAT_SECONDS' : 'MCHAT_SECOND'); } - return sprintf($this->user->lang('MCHAT_ONLINE_EXPLAIN'), $chat_session); + return sprintf($this->user->lang('MCHAT_ONLINE_EXPLAIN'), implode(' ', $times)); } /** - * @param $session_time amount of time before a users session times out + * Returns the total session time in seconds */ - function mchat_users($session_time) + protected function mchat_session_time() { - $check_time = time() - (int) $session_time; + return !empty($this->config['mchat_timeout']) ? $this->config['mchat_timeout'] : (!empty($this->config['load_online_time']) ? $this->config['load_online_time'] * 60 : $this->config['session_length']); + } - $sql = 'DELETE FROM ' . $this->mchat_sessions_table . ' - WHERE user_lastupdate < ' . $check_time; - $this->db->sql_query($sql); + /** + * Returns data about users who are currently chatting + */ + public function mchat_active_users() + { + $mchat_users = array(); - $mchat_user_count = 0; - $mchat_user_list = ''; + $check_time = time() - $this->mchat_session_time(); $sql = 'SELECT m.user_id, u.username, u.user_type, u.user_allow_viewonline, u.user_colour FROM ' . $this->mchat_sessions_table . ' m LEFT JOIN ' . USERS_TABLE . ' u ON m.user_id = u.user_id - WHERE m.user_lastupdate > ' . $check_time . ' + WHERE m.user_lastupdate >= ' . (int) $check_time . ' ORDER BY u.username ASC'; $result = $this->db->sql_query($sql); $rows = $this->db->sql_fetchrowset($result); @@ -174,48 +137,31 @@ class functions_mchat { continue; } - else - { - $row['username'] = '' . $row['username'] . ''; - } + + $row['username'] = '' . $row['username'] . ''; } - $mchat_user_count++; - $mchat_user_online_link = get_username_string('full', $row['user_id'], $row['username'], $row['user_colour'], $this->user->lang('GUEST')); - $mchat_user_list .= ($mchat_user_list != '') ? $this->user->lang('COMMA_SEPARATOR') . $mchat_user_online_link : $mchat_user_online_link; + $mchat_users[] = get_username_string('full', $row['user_id'], $row['username'], $row['user_colour'], $this->user->lang('GUEST')); } - $refresh_message = $this->mchat_session_time($session_time); - - if (!$mchat_user_count) - { - return array( - 'online_userlist' => '', - 'mchat_users_count' => $this->user->lang('MCHAT_NO_CHATTERS'), - 'refresh_message' => $refresh_message, - ); - } - else - { - return array( - 'online_userlist' => $mchat_user_list, - 'mchat_users_count' => sprintf($this->user->lang($mchat_user_count > 1 ? 'MCHAT_ONLINE_USERS_TOTAL' : 'MCHAT_ONLINE_USER_TOTAL'), $mchat_user_count), - 'refresh_message' => $refresh_message, - ); - } + return array( + 'online_userlist' => implode($this->user->lang('COMMA_SEPARATOR'), $mchat_users), + 'mchat_users_count' => count($mchat_users) ? $this->user->lang(count($mchat_users) > 1 ? 'MCHAT_ONLINE_USERS_TOTAL' : 'MCHAT_ONLINE_USER_TOTAL', count($mchat_users)) : $this->user->lang('MCHAT_NO_CHATTERS'), + 'refresh_message' => $this->mchat_format_seconds($this->mchat_session_time()), + ); } /** - * @param mixed $session_time amount of time before a user is not shown as being in the chat + * Inserts the current user into the mchat_sessions table */ - function mchat_sessions($session_time) + public function mchat_add_user_session() { - $check_time = time() - (int) $session_time; + // Remove expired sessions from the database + $check_time = time() - $this->mchat_session_time(); $sql = 'DELETE FROM ' . $this->mchat_sessions_table . ' WHERE user_lastupdate < ' . $check_time; $this->db->sql_query($sql); - // Insert user into the mChat sessions table if ($this->user->data['user_type'] == USER_FOUNDER || $this->user->data['user_type'] == USER_NORMAL && $this->user->data['user_id'] != ANONYMOUS && !$this->user->data['is_bot']) { $sql = 'SELECT * @@ -225,12 +171,10 @@ class functions_mchat $row = $this->db->sql_fetchrow($result); $this->db->sql_freeresult($result); - $user_lastupdate = time(); - if ($row) { $sql = 'UPDATE ' . $this->mchat_sessions_table . ' - SET user_lastupdate = ' . $user_lastupdate . ' + SET user_lastupdate = ' . time() . ' WHERE user_id = ' . (int) $this->user->data['user_id']; } else @@ -238,7 +182,7 @@ class functions_mchat $sql = 'INSERT INTO ' . $this->mchat_sessions_table . ' ' . $this->db->sql_build_array('INSERT', array( 'user_id' => $this->user->data['user_id'], 'user_ip' => $this->user->data['user_ip'], - 'user_lastupdate' => $user_lastupdate, + 'user_lastupdate' => time(), )); } @@ -247,100 +191,44 @@ class functions_mchat } /** - * mChat add-on Topic Notification - * - * @param mixed $post_id limits deletion to a post_id in the forum + * Prune messages */ - function mchat_delete_topic($post_id) + public function mchat_prune() { - if ($post_id) + if ($this->config['mchat_prune']) { - $sql = 'DELETE FROM ' . $this->mchat_table . ' - WHERE post_id = ' . (int) $post_id; - $this->db->sql_query($sql); - } - } + $mchat_total_messages = $this->mchat_total_message_count(); - /** - * AutoPrune Chats - * - * @param mixed $mchat_prune_amount set from mchat config entry - */ - function mchat_prune($mchat_prune_amount) - { - // How many chats do we have? - $sql = 'SELECT COUNT(message_id) AS messages - FROM ' . $this->mchat_table; - $result = $this->db->sql_query($sql); - $mchat_total_messages = (int) $this->db->sql_fetchfield('messages'); - $this->db->sql_freeresult($result); - - if ($mchat_total_messages <= $mchat_prune_amount) - { - return; - } - - $result = $this->db->sql_query_limit('SELECT message_id - FROM '. $this->mchat_table . ' - ORDER BY message_id ASC', 1); - $first_id = (int) $this->db->sql_fetchfield('message_id'); - $this->db->sql_freeresult($result); - - // Compute the delete id - $delete_id = $mchat_total_messages - $mchat_prune_amount + $first_id; - - $sql = 'DELETE FROM ' . $this->mchat_table . ' - WHERE message_id < ' . (int) $delete_id; - $this->db->sql_query($sql); - - $this->log->add('admin', $this->user->data['user_id'], $this->user->ip, 'LOG_MCHAT_TABLE_PRUNED'); - } - - /** - * @param mixed $mchat_prune_amount set from mchat config entry - */ - function display_mchat_bbcodes() - { - $default_bbcodes = array('B', 'I', 'U', 'QUOTE', 'CODE', 'LIST', 'IMG', 'URL', 'SIZE', 'COLOR', 'EMAIL', 'FLASH'); - $disallowed_bbcode_array = $this->get_disallowed_bbcodes(); - - // Let's remove the default bbcodes - if (!empty($disallowed_bbcode_array)) - { - $disallowed_bbcode_array = array_map('strtoupper', $disallowed_bbcode_array); - foreach ($default_bbcodes as $default_bbcode) + if ($mchat_total_messages > $this->config['mchat_prune_num']) { - if (!in_array($default_bbcode, $disallowed_bbcode_array)) - { - $this->template->assign_vars(array( - 'S_MCHAT_BBCODE_' . $default_bbcode => true, - )); - } + $sql = 'SELECT message_id + FROM '. $this->mchat_table . ' + ORDER BY message_id ASC'; + $result = $this->db->sql_query_limit($sql, 1); + $first_id = (int) $this->db->sql_fetchfield('message_id'); + $this->db->sql_freeresult($result); + + // Compute new oldest message id + $delete_id = $mchat_total_messages - $this->config['mchat_prune_num'] + $first_id; + + // Delete older messages + $this->mchat_action('prune', null, $delete_id); } } - - display_custom_bbcodes(); } - public function get_disallowed_bbcodes() + /** + * Returns the total number of messages + */ + public function mchat_total_message_count() { - $config_mchat = $this->mchat_cache(); - $disallowed_bbcode = $config_mchat['bbcode_disallowed']; - $disallowed_bbcode_array = explode('|', $disallowed_bbcode); - return $disallowed_bbcode_array; + return $this->db->get_row_count($this->mchat_table); } - function mchat_avatar($row) - { - return phpbb_get_user_avatar(array( - 'avatar' => $row['user_avatar'], - 'avatar_type' => $row['user_avatar_type'], - 'avatar_width' => $row['user_avatar_width'] > $row['user_avatar_height'] ? 40 : (40 / $row['user_avatar_height']) * $row['user_avatar_width'], - 'avatar_height' => $row['user_avatar_height'] > $row['user_avatar_width'] ? 40 : (40 / $row['user_avatar_width']) * $row['user_avatar_height'], - )); - } - - function mchat_messages($sql_where, $total, $offset = 0) + /** + * Fetch messages from the database + */ + public function mchat_get_messages($sql_where, $total = 0, $offset = 0) { $sql_array = array( 'SELECT' => 'm.*, u.username, u.user_colour, u.user_avatar, u.user_avatar_type, u.user_avatar_width, u.user_avatar_height, u.user_allow_pm', @@ -363,7 +251,10 @@ class functions_mchat return $rows; } - function mchat_legend() + /** + * Generates the user legend markup + */ + public function mchat_legend() { // Grab group details for legend display for who is online on the custom page $order_legend = $this->config['legend_sort_groupname'] ? 'group_name' : 'group_legend'; @@ -399,69 +290,77 @@ class functions_mchat } else { - $legend[] = 'phpbb_root_path}memberlist.{$this->phpEx}", 'mode=group&g='.$row['group_id']) . '">' . $group_name . ''; + $legend[] = 'phpbb_root_path}memberlist.{$this->php_ext}", 'mode=group&g='.$row['group_id']) . '">' . $group_name . ''; } } return $legend; } - function mchat_truncate_messages() + /** + * Returns a list of all foes of the current user + */ + public function mchat_foes() { - $sql = 'TRUNCATE TABLE ' . $this->mchat_table; - $this->db->sql_query($sql); - - $this->log->add('admin', $this->user->data['user_id'], $this->user->ip, 'LOG_MCHAT_TABLE_PRUNED'); - } - - function mchat_foes() - { - $sql = 'SELECT * - FROM ' . ZEBRA_TABLE . ' - WHERE user_id = ' . (int) $this->user->data['user_id'] . ' - AND foe = 1'; - $result = $this->db->sql_query($sql); - $rows = $this->db->sql_fetchrowset($result); - $this->db->sql_freeresult($result); - - $foes = array(); - foreach ($rows as $row) + if (is_null($this->foes)) { - $foes[] = $row['zebra_id']; + $sql = 'SELECT * + FROM ' . ZEBRA_TABLE . ' + WHERE foe = 1 AND user_id = ' . (int) $this->user->data['user_id']; + $result = $this->db->sql_query($sql); + $rows = $this->db->sql_fetchrowset($result); + $this->db->sql_freeresult($result); + + $this->foes = array(); + foreach ($rows as $row) + { + $this->foes[] = $row['zebra_id']; + } } - return $foes; + return $this->foes; } - function mchat_insert_posting($mode, $data) + /** + * Adds forbidden BBCodes to the passed SQL where statement + */ + public function mchat_sql_append_forbidden_bbcodes($sql_where) { - if (empty($this->config['mchat_enable']) || empty($this->config['mchat_new_posts'])) + $disallowed_bbcodes = explode('|', strtoupper($this->config['mchat_bbcode_disallowed'])); + + if (!empty($disallowed_bbcodes)) + { + $sql_where .= ' AND ' . $this->db->sql_in_set('UPPER(b.bbcode_tag)', $disallowed_bbcodes, true); + } + + return $sql_where; + } + + /** + * Inserts a message with posting information into the database + */ + public function mchat_insert_posting($mode, $data) + { + if (!$this->config['mchat_new_posts']) { return; } - if ($mode == 'post' && !empty($this->config['mchat_new_posts_topic'])) - { - $mchat_new_data = $this->user->lang('MCHAT_NEW_TOPIC'); - } - else if ($mode == 'quote' && !empty($this->config['mchat_new_posts_quote'])) - { - $mchat_new_data = $this->user->lang('MCHAT_NEW_QUOTE'); - } - else if ($mode == 'edit' && !empty($this->config['mchat_new_posts_edit'])) - { - $mchat_new_data = $this->user->lang('MCHAT_NEW_EDIT'); - } - else if ($mode == 'reply' && !empty($this->config['mchat_new_posts_reply'])) - { - $mchat_new_data = $this->user->lang('MCHAT_NEW_REPLY'); - } - else + $mode_config = array( + 'post' => $this->config['mchat_new_posts_topic'], + 'quote' => $this->config['mchat_new_posts_quote'], + 'edit' => $this->config['mchat_new_posts_edit'], + 'reply' => $this->config['mchat_new_posts_reply'], + ); + + if (empty($mode_config[$mode])) { return; } - $message = utf8_normalize_nfc($mchat_new_data . ': [url=' . generate_board_url() . '/viewtopic.' . $this->phpEx . '?p=' . $data['post_id'] . '#p' . $data['post_id'] . ']' . $data['post_subject'] . '[/url] '. $this->user->lang('MCHAT_IN') . ' [url=' . generate_board_url() . '/viewforum.' . $this->phpEx . '?f=' . $data['forum_id'] . ']' . $data['forum_name'] . ' [/url] ' . $this->user->lang('MCHAT_IN_SECTION')); + $mchat_new_data = $this->user->lang('MCHAT_NEW_' . strtoupper($mode)); + + $message = utf8_normalize_nfc($mchat_new_data . ': [url=' . generate_board_url() . '/viewtopic.' . $this->php_ext . '?p=' . $data['post_id'] . '#p' . $data['post_id'] . ']' . $data['post_subject'] . '[/url] '. $this->user->lang('MCHAT_IN') . ' [url=' . generate_board_url() . '/viewforum.' . $this->php_ext . '?f=' . $data['forum_id'] . ']' . $data['forum_name'] . ' [/url] ' . $this->user->lang('MCHAT_IN_SECTION')); $uid = $bitfield = $options = ''; // will be modified by generate_text_for_storage generate_text_for_storage($message, $uid, $bitfield, $options, true, false, false); @@ -479,4 +378,171 @@ class functions_mchat $sql = 'INSERT INTO ' . $this->mchat_table . ' ' . $this->db->sql_build_array('INSERT', $sql_ary); $this->db->sql_query($sql); } + + /** + * Checks if the current user is flooding the chat + */ + public function mchat_is_user_flooding() + { + if (!$this->config['mchat_flood_time'] || $this->auth->acl_get('u_mchat_flood_ignore')) + { + return false; + } + + $sql = 'SELECT message_time + FROM ' . $this->mchat_table . ' + WHERE user_id = ' . (int) $this->user->data['user_id'] . ' + ORDER BY message_time DESC'; + $result = $this->db->sql_query_limit($sql, 1); + $message_time = (int) $this->db->sql_fetchfield('message_time'); + $this->db->sql_freeresult($result); + + return $message_time && time() - $message_time < $this->config['mchat_flood_time']; + } + + /** + * Returns user ID & name of the specified message + */ + public function mchat_author_for_message($message_id) + { + $sql = 'SELECT u.user_id, u.username, m.message_time + FROM ' . $this->mchat_table . ' m + LEFT JOIN ' . USERS_TABLE . ' u ON m.user_id = u.user_id + WHERE m.message_id = ' . (int) $message_id; + $result = $this->db->sql_query($sql); + $row = $this->db->sql_fetchrow($result); + $this->db->sql_freeresult($result); + + return $row; + } + + /** + * Returns an array of message IDs that have been deleted from the message table + */ + public function mchat_missing_ids($start_id, $end_id) + { + if ($this->config['mchat_edit_delete_limit']) + { + $sql_where = 'message_time < ' . (time() - $this->config['mchat_edit_delete_limit']); + $cache_ttl = 0; + } + else + { + $sql_where = 'message_id < ' . (int) $start_id; + $cache_ttl = 3600; + } + + $sql = 'SELECT message_id + FROM ' . $this->mchat_table . ' + WHERE ' . $sql_where . ' + ORDER BY message_id DESC'; + $result = $this->db->sql_query_limit($sql, 1, 0, $cache_ttl); + $earliest_id = (int) $this->db->sql_fetchfield('message_id'); + $this->db->sql_freeresult($result); + + if (!$earliest_id) + { + $sql = 'SELECT MIN(message_id) as earliest_id + FROM ' . $this->mchat_table; + $result = $this->db->sql_query($sql, 3600); + $earliest_id = $this->db->sql_fetchfield('earliest_id'); + $this->db->sql_freeresult($result); + } + + if (!$earliest_id) + { + return range($start_id, $end_id); + } + + $sql = 'SELECT (t1.message_id + 1) AS start, ( + SELECT MIN(t3.message_id) - 1 + FROM ' . $this->mchat_table . ' t3 + WHERE t3.message_id > t1.message_id + ) AS end + FROM ' . $this->mchat_table . ' t1 + WHERE t1.message_id > ' . (int) $earliest_id . ' AND NOT EXISTS ( + SELECT t2.message_id + FROM ' . $this->mchat_table . ' t2 + WHERE t2.message_id = t1.message_id + 1 + )'; + + $result = $this->db->sql_query($sql); + $rows = $this->db->sql_fetchrowset($result); + $this->db->sql_freeresult($result); + + $missing_ids = array(); + + if ($start_id < $earliest_id && !$this->config['mchat_edit_delete_limit']) + { + $missing_ids[] = range($start_id, $earliest_id - 1); + } + + foreach ($rows as $row) + { + if ($row['end']) + { + $missing_ids[] = range($row['start'], $row['end']); + } + else + { + $latest_message = $row['start'] - 1; + if ($end_id > $latest_message) + { + $missing_ids[] = range($latest_message + 1, $end_id); + } + } + } + + // Flatten + if (!empty($missing_ids)) + { + $missing_ids = call_user_func_array('array_merge', $missing_ids); + } + + return $missing_ids; + } + + /** + * Performs add|edit|del|clean|prune actions + */ + public function mchat_action($action, $sql_ary = null, $message_id = 0, $log_username = '') + { + switch ($action) + { + // User adds a message + case 'add': + $sql = 'INSERT INTO ' . $this->mchat_table . ' ' . $this->db->sql_build_array('INSERT', $sql_ary); + $this->mchat_add_user_session(); + break; + // User edits a message + case 'edit': + $sql = 'UPDATE ' . $this->mchat_table . ' SET ' . $this->db->sql_build_array('UPDATE', $sql_ary) . ' WHERE message_id = ' . (int) $message_id; + $this->mchat_add_user_session(); + $this->log->add('admin', $this->user->data['user_id'], $this->user->ip, 'LOG_EDITED_MCHAT', false, array($log_username)); + break; + // User deletes a message + case 'del': + $sql = 'DELETE FROM ' . $this->mchat_table . ' WHERE message_id = ' . (int) $message_id; + $this->mchat_add_user_session(); + $this->log->add('admin', $this->user->data['user_id'], $this->user->ip, 'LOG_DELETED_MCHAT', false, array($log_username)); + $this->cache->destroy('sql', $this->mchat_table); + break; + // Founder purges all messages + case 'clean': + $sql = 'TRUNCATE TABLE ' . $this->mchat_table; + $this->log->add('admin', $this->user->data['user_id'], $this->user->ip, 'LOG_MCHAT_TABLE_PRUNED'); + $this->cache->destroy('sql', $this->mchat_table); + break; + // User triggers messages to be pruned + case 'prune': + $sql = 'DELETE FROM ' . $this->mchat_table . ' WHERE message_id < ' . (int) $message_id; + $this->log->add('admin', $this->user->data['user_id'], $this->user->ip, 'LOG_MCHAT_TABLE_PRUNED'); + $this->cache->destroy('sql', $this->mchat_table); + break; + default: + return; + } + + $this->db->sql_query($sql); + } } diff --git a/core/mchat.php b/core/mchat.php new file mode 100644 index 0000000..0fdadfb --- /dev/null +++ b/core/mchat.php @@ -0,0 +1,822 @@ +functions_mchat = $functions_mchat; + $this->config = $config; + $this->helper = $helper; + $this->template = $template; + $this->user = $user; + $this->auth = $auth; + $this->pagination = $pagination; + $this->request = $request; + $this->dispatcher = $dispatcher; + $this->root_path = $root_path; + $this->php_ext = $php_ext; + } + + /** + * Render mChat on the index page + */ + public function page_index() + { + if (!$this->auth->acl_get('u_mchat_view')) + { + return; + } + + $this->assign_whois(); + + if (!$this->config['mchat_on_index']) + { + return; + } + + // If mChat is used on the index by a user without an avatar, a default avatar is used. + // However, T_THEME_PATH points to ./../styles/... because the controller at /mchat is called, but we need it to be ./styles... + // Setting this value to true solves this. + if (!defined('PHPBB_USE_BOARD_URL_PATH')) + { + define('PHPBB_USE_BOARD_URL_PATH', true); + } + + global $root_path; + $root_path = './'; + + $this->assign_bbcodes_smilies(); + + $this->render_page('index'); + } + + /** + * Render the mChat custom page + */ + public function page_custom() + { + if (!$this->auth->acl_get('u_mchat_view') || !$this->config['mchat_custom_page']) + { + throw new \phpbb\exception\http_exception(403, 'MCHAT_NO_CUSTOM_PAGE'); + } + + $this->functions_mchat->mchat_prune(); + + $this->functions_mchat->mchat_add_user_session(); + + $this->assign_whois(); + + $this->assign_bbcodes_smilies(); + + $this->template->assign_var('MCHAT_CUSTOM_PAGE', true); + + $this->render_page('custom'); + + // Add to navlinks + $this->template->assign_block_vars('navlinks', array( + 'FORUM_NAME' => $this->user->lang('MCHAT_TITLE'), + 'U_VIEW_FORUM' => $this->helper->route('dmzx_mchat_controller'), + )); + + return $this->helper->render('mchat_body.html', $this->user->lang('MCHAT_TITLE')); + } + + /** + * Render the mChat archive + */ + public function page_archive() + { + if (!$this->auth->acl_get('u_mchat_view') || !$this->auth->acl_get('u_mchat_archive')) + { + throw new \phpbb\exception\http_exception(403, 'MCHAT_NOACCESS_ARCHIVE'); + } + + $this->functions_mchat->mchat_prune(); + + $this->template->assign_var('MCHAT_ARCHIVE_PAGE', true); + + $this->render_page('archive'); + + // Add to navlinks + $this->template->assign_block_vars_array('navlinks', array( + array( + 'FORUM_NAME' => $this->user->lang('MCHAT_TITLE'), + 'U_VIEW_FORUM' => $this->helper->route('dmzx_mchat_controller'), + ), + array( + 'FORUM_NAME' => $this->user->lang('MCHAT_ARCHIVE'), + 'U_VIEW_FORUM' => $this->helper->route('dmzx_mchat_page_controller', array('page' => 'archive')), + ), + )); + + return $this->helper->render('mchat_body.html', $this->user->lang('MCHAT_ARCHIVE_PAGE')); + } + + /** + * Controller for mChat IP WHOIS + * + * @return \Symfony\Component\HttpFoundation\Response A Symfony Response object + */ + public function page_whois() + { + if (!$this->auth->acl_get('u_mchat_ip')) + { + throw new \phpbb\exception\http_exception(403, 'NO_AUTH_OPERATION'); + } + + if (!function_exists('user_ipwhois')) + { + include($this->root_path . 'includes/functions_user.' . $this->php_ext); + } + + $this->template->assign_var('WHOIS', user_ipwhois($this->request->variable('ip', ''))); + + return $this->helper->render('viewonline_whois.html', $this->user->lang('WHO_IS_ONLINE')); + } + + /** + * Controller for mChat Rules page + * + * @return \Symfony\Component\HttpFoundation\Response A Symfony Response object + */ + public function page_rules() + { + if (empty($this->config['mchat_rules']) && empty($this->user->lang['MCHAT_RULES'])) + { + throw new \phpbb\exception\http_exception(404, 'MCHAT_NO_RULES'); + } + + // If the rules are defined in the language file use them, else just use the entry in the database + $mchat_rules = isset($this->user->lang['MCHAT_RULES']) ? $this->user->lang('MCHAT_RULES') : $this->config['mchat_rules']; + $mchat_rules = explode("\n", $mchat_rules); + $mchat_rules = array_map('utf8_htmlspecialchars', $mchat_rules); + $mchat_rules = implode('
', $mchat_rules); + + $this->template->assign_var('MCHAT_RULES', $mchat_rules); + + return $this->helper->render('mchat_rules.html', $this->user->lang('MCHAT_HELP')); + } + + /** + * + */ + public function action_add() + { + if (!$this->auth->acl_get('u_mchat_use') || !check_form_key('mchat', -1)) + { + throw new \phpbb\exception\http_exception(403, 'MCHAT_NOACCESS'); + } + + if ($this->functions_mchat->mchat_is_user_flooding()) + { + throw new \phpbb\exception\http_exception(400, 'MCHAT_NOACCESS'); + } + + $message = $this->request->variable('message', '', true); + + $sql_ary = $this->process_message(utf8_ucfirst($message), array( + 'user_id' => $this->user->data['user_id'], + 'user_ip' => $this->user->data['session_ip'], + 'message_time' => time(), + )); + + $this->functions_mchat->mchat_action('add', $sql_ary); + + /** + * Event render_helper_add + * + * @event dmzx.mchat.core.render_helper_add + * @since 0.1.2 + */ + $this->dispatcher->dispatch('dmzx.mchat.core.render_helper_add'); + + return array('add' => true); + } + + /** + * + */ + public function action_edit() + { + if (!defined('PHPBB_USE_BOARD_URL_PATH')) + { + define('PHPBB_USE_BOARD_URL_PATH', true); + } + + $message_id = $this->request->variable('message_id', 0); + + if (!$message_id || !check_form_key('mchat', -1)) + { + throw new \phpbb\exception\http_exception(403, 'MCHAT_NOACCESS'); + } + + $author = $this->functions_mchat->mchat_author_for_message($message_id); + + if (!$author || !$this->auth_message('u_mchat_edit', $author['user_id'], $author['message_time'])) + { + throw new \phpbb\exception\http_exception(403, 'MCHAT_NOACCESS'); + } + + $message = $this->request->variable('message', '', true); + + $sql_ary = $this->process_message($message, array( + 'edit_time' => time(), + )); + + // TODO Don't update the message if the user submitted it unedited + $this->functions_mchat->mchat_action('edit', $sql_ary, $message_id, $author['username']); + + /** + * Event render_helper_edit + * + * @event dmzx.mchat.core.render_helper_edit + * @since 0.1.4 + */ + $this->dispatcher->dispatch('dmzx.mchat.core.render_helper_edit'); + + $sql_where = 'm.message_id = ' . (int) $message_id; + $rows = $this->functions_mchat->mchat_get_messages($sql_where, 1); + + $this->assign_global_template_data(); + $this->assign_messages($rows); + + return array('edit' => $this->render_template('mchat_messages.html')); + } + + /** + * + */ + public function action_del() + { + $message_id = $this->request->variable('message_id', 0); + + if (!$message_id || !check_form_key('mchat', -1)) + { + throw new \phpbb\exception\http_exception(403, 'MCHAT_NOACCESS'); + } + + $author = $this->functions_mchat->mchat_author_for_message($message_id); + + if (!$author || !$this->auth_message('u_mchat_delete', $author['user_id'], $author['message_time'])) + { + throw new \phpbb\exception\http_exception(403, 'MCHAT_NOACCESS'); + } + + /** + * Event render_helper_delete + * + * @event dmzx.mchat.core.render_helper_delete + * @since 0.1.4 + */ + $this->dispatcher->dispatch('dmzx.mchat.core.render_helper_delete'); + + $this->functions_mchat->mchat_action('del', null, $message_id, $author['username']); + + return array('del' => true); + } + + /** + * + */ + public function action_clean() + { + if ($this->user->data['user_type'] != USER_FOUNDER || !check_form_key('mchat', -1)) + { + throw new \phpbb\exception\http_exception(403, 'MCHAT_NOACCESS'); + } + + $this->functions_mchat->mchat_action('clean'); + + return array('clean' => true); + } + + /** + * + */ + public function action_refresh() + { + if (!defined('PHPBB_USE_BOARD_URL_PATH')) + { + define('PHPBB_USE_BOARD_URL_PATH', true); + } + + $message_first_id = $this->request->variable('message_first_id', 0); + $message_last_id = $this->request->variable('message_last_id', 0); + $message_edits = $this->request->variable('message_edits', array(0)); + + // Request new messages + $sql_where = 'm.message_id > ' . (int) $message_last_id; + + // Request edited messages + if ($this->config['mchat_live_updates'] && $message_last_id > 0) + { + $sql_time_limit = $this->config['mchat_edit_delete_limit'] ? sprintf(' AND m.message_time > %d', time() - $this->config['mchat_edit_delete_limit']) : ''; + $sql_where .= sprintf(' OR (m.message_id BETWEEN %d AND %d AND m.edit_time > 0%s)', (int) $message_first_id , (int) $message_last_id, $sql_time_limit); + } + + // Exclude post notifications + if (!$this->user->data['user_mchat_topics']) + { + $sql_where = '(' . $sql_where . ') AND m.forum_id = 0'; + } + + $rows = $this->functions_mchat->mchat_get_messages($sql_where); + $rows_refresh = array(); + $rows_edit = array(); + + foreach ($rows as $row) + { + $message_id = $row['message_id']; + if ($message_id > $message_last_id) + { + $rows_refresh[] = $row; + } + else if (!isset($message_edits[$message_id]) || $message_edits[$message_id] < $row['edit_time']) + { + $rows_edit[] = $row; + } + } + + // Assign new messages + $this->assign_global_template_data(); + $this->assign_messages($rows_refresh); + $response = array('refresh' => $this->render_template('mchat_messages.html')); + + // Assign edited messages + if (!empty($rows_edit)) + { + $response['edit'] = array(); + foreach ($rows_edit as $row) + { + $this->assign_messages(array($row)); + $response['edit'][$row['message_id']] = $this->render_template('mchat_messages.html'); + } + } + + // Request deleted messages + if ($this->config['mchat_live_updates'] && $message_last_id > 0) + { + $deleted_message_ids = $this->functions_mchat->mchat_missing_ids($message_first_id, $message_last_id); + if (!empty($deleted_message_ids)) + { + $response['del'] = $deleted_message_ids; + } + } + + return $response; + } + + /** + * + */ + public function action_whois() + { + $this->assign_whois(); + + return array('whois' => $this->render_template('mchat_whois.html')); + } + + /** + * + */ + public function render_page_header_link() + { + $this->template->assign_vars(array( + 'MCHAT_ALLOW_VIEW' => $this->auth->acl_get('u_mchat_view'), + 'S_MCHAT_CUSTOM_PAGE' => $this->config['mchat_custom_page'], + 'U_MCHAT' => $this->helper->route('dmzx_mchat_controller'), + )); + } + + /** + * + */ + public function remove_disallowed_bbcodes($sql_ary) + { + // Add disallowed BBCodes to the template only if we're rendering for mChat + if ($this->is_mchat_rendered) + { + $sql_ary['WHERE'] = $this->functions_mchat->mchat_sql_append_forbidden_bbcodes($sql_ary['WHERE']); + } + + return $sql_ary; + } + + /** + * Method to render the page data + * + * @var page The page we are rendering for, one of index|custom|archive + * @return null|array|string If we are rendering for the index, null is returned. For modes that are only + * called via AJAX, an array is returned, otherwise the rendered content is returned. + */ + protected function render_page($page) + { + // Add lang file + $this->user->add_lang('posting'); + + // If the static message is defined in the language file use it, else the entry in the database is used + if (isset($this->user->lang['STATIC_MESSAGE'])) + { + $this->config['mchat_static_message'] = $this->user->lang('STATIC_MESSAGE'); + } + + $this->template->assign_vars(array( + 'MCHAT_FILE_NAME' => $this->helper->route('dmzx_mchat_controller'), + 'MCHAT_REFRESH_JS' => 1000 * $this->config['mchat_refresh'], + 'MCHAT_INPUT_TYPE' => $this->user->data['user_mchat_input_area'], + 'MCHAT_RULES' => !empty($this->user->lang['MCHAT_RULES']) || !empty($this->config['mchat_rules']), + 'MCHAT_ALLOW_USE' => $this->auth->acl_get('u_mchat_use'), + 'MCHAT_ALLOW_SMILES' => $this->config['allow_smilies'] && $this->auth->acl_get('u_mchat_smilies'), + 'MCHAT_ALLOW_BBCODES' => $this->config['allow_bbcode'] && $this->auth->acl_get('u_mchat_bbcode'), + 'MCHAT_MESSAGE_TOP' => $this->config['mchat_message_top'], + 'MCHAT_ARCHIVE_URL' => $this->helper->route('dmzx_mchat_page_controller', array('page' => 'archive')), + 'MCHAT_INDEX_HEIGHT' => $this->config['mchat_index_height'], + 'MCHAT_CUSTOM_HEIGHT' => $this->config['mchat_custom_height'], + 'MCHAT_READ_ARCHIVE_BUTTON' => $this->auth->acl_get('u_mchat_archive'), + 'MCHAT_FOUNDER' => $this->user->data['user_type'] == USER_FOUNDER, + 'MCHAT_STATIC_MESS' => !empty($this->config['mchat_static_message']) ? htmlspecialchars_decode($this->config['mchat_static_message']) : '', + 'L_MCHAT_COPYRIGHT' => base64_decode('PGEgaHJlZj0iaHR0cDovL3JtY2dpcnI4My5vcmciPlJNY0dpcnI4MzwvYT4gJmNvcHk7IDxhIGhyZWY9Imh0dHA6Ly93d3cuZG16eC13ZWIubmV0IiB0aXRsZT0id3d3LmRtengtd2ViLm5ldCI+ZG16eDwvYT4='), + 'MCHAT_MESSAGE_LNGTH' => $this->config['mchat_max_message_lngth'], + 'MCHAT_MESS_LONG' => sprintf($this->user->lang('MCHAT_MESS_LONG'), $this->config['mchat_max_message_lngth']), + 'MCHAT_USER_TIMEOUT_TIME' => gmdate('H:i:s', (int) $this->config['mchat_timeout']), + 'MCHAT_WHOIS_REFRESH' => $this->config['mchat_whois'] ? 1000 * $this->config['mchat_whois_refresh'] : 0, + 'MCHAT_WHOIS_REFRESH_EXPLAIN' => sprintf($this->user->lang('WHO_IS_REFRESH_EXPLAIN'), $this->config['mchat_whois_refresh']), + 'MCHAT_PAUSE_ON_INPUT' => $this->config['mchat_pause_on_input'], + 'MCHAT_REFRESH_YES' => sprintf($this->user->lang('MCHAT_REFRESH_YES'), $this->config['mchat_refresh']), + 'MCHAT_LIVE_UPDATES' => $this->config['mchat_live_updates'], + 'S_MCHAT_LOCATION' => $this->config['mchat_location'], + 'S_MCHAT_SOUND_YES' => $this->user->data['user_mchat_sound'], + 'U_MORE_SMILIES' => generate_board_url() . append_sid("/{$this->root_path}/posting.{$this->php_ext}", 'mode=smilies'), + 'U_MCHAT_RULES' => $this->helper->route('dmzx_mchat_page_controller', array('page' => 'rules')), + 'S_MCHAT_ON_INDEX' => $this->config['mchat_on_index'] && !empty($this->user->data['user_mchat_index']), + )); + + $sql_where = $this->user->data['user_mchat_topics'] ? '' : 'm.forum_id = 0'; + $limit = $page == 'archive' ? $this->config['mchat_archive_limit'] : $this->config[$page == 'index' ? 'mchat_message_num' : 'mchat_message_limit']; + $start = $page == 'archive' ? $this->request->variable('start', 0) : 0; + $rows = $this->functions_mchat->mchat_get_messages($sql_where, $limit, $start); + + $this->assign_global_template_data(); + $this->assign_messages($rows); + + // Render pagination + if ($page == 'archive') + { + $archive_url = $this->helper->route('dmzx_mchat_page_controller', array('page' => 'archive')); + $total_messages = $this->functions_mchat->mchat_total_message_count(); + $this->pagination->generate_template_pagination($archive_url, 'pagination', 'start', $total_messages, $limit, $start); + $this->template->assign_var('MCHAT_TOTAL_MESSAGES', sprintf($this->user->lang('MCHAT_TOTALMESSAGES'), $total_messages)); + } + + // Render legend + if ($page != 'index' && $this->config['mchat_whois']) + { + $legend = $this->functions_mchat->mchat_legend(); + $this->template->assign_var('LEGEND', implode(', ', $legend)); + } + + if ($this->auth->acl_get('u_mchat_use')) + { + add_form_key('mchat'); + } + + $this->is_mchat_rendered = true; + + /** + * Event render_helper_aft + * + * @event dmzx.mchat.core.render_helper_aft + * @since 0.1.2 + */ + $this->dispatcher->dispatch('dmzx.mchat.core.render_helper_aft'); + } + + /** + * Assigns all message rows to the template + */ + protected function assign_global_template_data() + { + $this->template->assign_vars(array( + 'MCHAT_ALLOW_IP' => $this->auth->acl_get('u_mchat_ip'), + 'MCHAT_ALLOW_PM' => $this->auth->acl_get('u_mchat_pm'), + 'MCHAT_ALLOW_LIKE' => $this->auth->acl_get('u_mchat_like'), + 'MCHAT_ALLOW_QUOTE' => $this->auth->acl_get('u_mchat_quote'), + 'MCHAT_EDIT_DELETE_LIMIT' => 1000 * $this->config['mchat_edit_delete_limit'], + 'MCHAT_EDIT_DELETE_IGNORE' => $this->config['mchat_edit_delete_limit'] && $this->auth->acl_get('m_'), + 'MCHAT_USER_TIMEOUT' => 1000 * $this->config['mchat_timeout'], + 'S_MCHAT_AVATARS' => !empty($this->config['mchat_avatars']) && $this->user->optionget('viewavatars') && $this->user->data['user_mchat_avatars'], + 'EXT_URL' => generate_board_url() . '/ext/dmzx/mchat/', + 'STYLE_PATH' => generate_board_url() . '/styles/' . $this->user->style['style_path'], + )); + } + + /** + * Assigns all message rows to the template + */ + protected function assign_messages($rows) + { + if (empty($rows)) + { + return; + } + + // Reverse the array if messages appear at the bottom + if (!$this->config['mchat_message_top']) + { + $rows = array_reverse($rows); + } + + $foes = $this->functions_mchat->mchat_foes(); + + $this->template->destroy_block_vars('mchatrow'); + + foreach ($rows as $i => $row) + { + // Auth checks + if ($row['forum_id'] != 0 && !$this->auth->acl_get('f_read', $row['forum_id'])) + { + continue; + } + + $message_edit = $row['message']; + decode_message($message_edit, $row['bbcode_uid']); + $message_edit = str_replace('"', '"', $message_edit); + $message_edit = mb_ereg_replace("'", '’', $message_edit); + + if (in_array($row['user_id'], $foes)) + { + $row['message'] = sprintf($this->user->lang('MCHAT_FOE'), get_username_string('full', $row['user_id'], $row['username'], $row['user_colour'], $this->user->lang('GUEST'))); + } + + $row['username'] = mb_ereg_replace("'", "’", $row['username']); + $message = str_replace("'", '’', $row['message']); + + $user_avatar = !$row['user_avatar'] ? '' : phpbb_get_user_avatar(array( + 'avatar' => $row['user_avatar'], + 'avatar_type' => $row['user_avatar_type'], + 'avatar_width' => $row['user_avatar_width'] > $row['user_avatar_height'] ? 40 : (40 / $row['user_avatar_height']) * $row['user_avatar_width'], + 'avatar_height' => $row['user_avatar_height'] > $row['user_avatar_width'] ? 40 : (40 / $row['user_avatar_width']) * $row['user_avatar_height'], + )); + + $username_full = get_username_string('full', $row['user_id'], $row['username'], $row['user_colour'], $this->user->lang('GUEST')); + + // Remove root path if we render messages for the index page + if (strpos($this->user->data['session_page'], 'app.' . $this->php_ext) === false) + { + $username_full = str_replace('.' . $this->root_path, '', $username_full); + } + + $this->template->assign_block_vars('mchatrow', array( + 'S_ROW_COUNT' => $i, + 'MCHAT_ALLOW_BAN' => $this->auth->acl_get('a_authusers'), + 'MCHAT_ALLOW_EDIT' => $this->auth_message('u_mchat_edit', $row['user_id'], $row['message_time']), + 'MCHAT_ALLOW_DEL' => $this->auth_message('u_mchat_delete', $row['user_id'], $row['message_time']), + 'MCHAT_USER_AVATAR' => $user_avatar, + 'U_VIEWPROFILE' => $row['user_id'] != ANONYMOUS ? generate_board_url() . append_sid("/{$this->root_path}memberlist.{$this->php_ext}", 'mode=viewprofile&u=' . $row['user_id']) : '', + 'MCHAT_IS_POSTER' => $row['user_id'] != ANONYMOUS && $this->user->data['user_id'] == $row['user_id'], + 'MCHAT_PM' => $row['user_id'] != ANONYMOUS && $this->user->data['user_id'] != $row['user_id'] && $this->config['allow_privmsg'] && $this->auth->acl_get('u_sendpm') && ($row['user_allow_pm'] || $this->auth->acl_gets('a_', 'm_') || $this->auth->acl_getf_global('m_')) ? generate_board_url() . append_sid("/{$this->root_path}ucp.{$this->php_ext}", 'i=pm&mode=compose&u=' . $row['user_id']) : '', + 'MCHAT_MESSAGE_EDIT' => $message_edit, + 'MCHAT_MESSAGE_ID' => $row['message_id'], + 'MCHAT_USERNAME_FULL' => $username_full, + 'MCHAT_USERNAME' => get_username_string('username', $row['user_id'], $row['username'], $row['user_colour'], $this->user->lang('GUEST')), + 'MCHAT_USERNAME_COLOR' => get_username_string('colour', $row['user_id'], $row['username'], $row['user_colour'], $this->user->lang('GUEST')), + 'MCHAT_USER_IP' => $row['user_ip'], + 'MCHAT_U_IP' => $this->helper->route('dmzx_mchat_page_controller', array('page' => 'whois', 'ip' => $row['user_ip'])), + 'MCHAT_U_BAN' => generate_board_url() . append_sid("/{$this->root_path}adm/index.{$this->php_ext}" ,'i=permissions&mode=setting_user_global&user_id[0]=' . $row['user_id'], true, $this->user->session_id), + 'MCHAT_MESSAGE' => censor_text(generate_text_for_display($row['message'], $row['bbcode_uid'], $row['bbcode_bitfield'], $row['bbcode_options'])), + 'MCHAT_TIME' => $this->user->format_date($row['message_time'], $this->config['mchat_date']), + 'MCHAT_MESSAGE_TIME' => $row['message_time'], + 'MCHAT_EDIT_TIME' => $row['edit_time'], + )); + } + } + + /** + * Assigns BBCodes and smilies to the template + */ + protected function assign_bbcodes_smilies() + { + // Display custom bbcodes + if ($this->config['allow_bbcode'] && $this->auth->acl_get('u_mchat_bbcode')) + { + $default_bbcodes = array('B', 'I', 'U', 'QUOTE', 'CODE', 'LIST', 'IMG', 'URL', 'SIZE', 'COLOR', 'EMAIL', 'FLASH'); + + // Let's remove the default bbcodes + $disallowed_bbcode_array = explode('|', strtoupper($this->config['mchat_bbcode_disallowed'])); + + foreach ($default_bbcodes as $default_bbcode) + { + if (!in_array($default_bbcode, $disallowed_bbcode_array)) + { + $this->template->assign_vars(array( + 'S_MCHAT_BBCODE_' . $default_bbcode => true, + )); + } + } + + if (!function_exists('display_custom_bbcodes')) + { + include($this->root_path . 'includes/functions_display.' . $this->php_ext); + } + + display_custom_bbcodes(); + } + + // Smile row + if ($this->config['allow_smilies'] && $this->auth->acl_get('u_mchat_smilies')) + { + if (!function_exists('generate_smilies')) + { + include($this->root_path . 'includes/functions_posting.' . $this->php_ext); + } + + generate_smilies('inline', 0); + } + } + + /** + * Assigns whois and stats at the bottom of the index page + */ + protected function assign_whois() + { + if ($this->config['mchat_whois'] || $this->config['mchat_stats_index'] && $this->user->data['user_mchat_stats_index']) + { + $mchat_stats = $this->functions_mchat->mchat_active_users(); + $this->template->assign_vars(array( + 'MCHAT_INDEX_STATS' => $this->config['mchat_stats_index'] && $this->user->data['user_mchat_stats_index'], + 'MCHAT_USERS_COUNT' => $mchat_stats['mchat_users_count'], + 'MCHAT_USERS_LIST' => !empty($mchat_stats['online_userlist']) ? $mchat_stats['online_userlist'] : '', + 'MCHAT_ONLINE_EXPLAIN' => $mchat_stats['refresh_message'], + )); + } + } + + /** + * Checks whether an author has edit or delete permissions for a message + */ + protected function auth_message($permission, $author_id, $message_time) + { + if (!$this->auth->acl_get($permission)) + { + return false; + } + + if ($this->auth->acl_get('m_')) + { + return true; + } + + $can_edit_delete = $this->config['mchat_edit_delete_limit'] == 0 || $message_time >= time() - $this->config['mchat_edit_delete_limit']; + return $can_edit_delete && $this->user->data['user_id'] == $author_id && $this->user->data['is_registered']; + } + + /** + * Performs bound checks on the message and returns an array containing the message, + * BBCode options and additional data ready to be sent to the database + */ + protected function process_message($message, $merge_ary) + { + // Must have something other than bbcode in the message + $message_chars = trim(preg_replace('#\[/?[^\[\]]+\]#mi', '', $message)); + if (!$message || !utf8_strlen($message_chars)) + { + throw new \phpbb\exception\http_exception(501, 'MCHAT_NOACCESS'); + } + + // Must not exceed character limit, excluding whitespaces + $message_chars = preg_replace('#\s#m', '', $message); + if (utf8_strlen($message_chars) > $this->config['mchat_max_message_lngth']) + { + throw new \phpbb\exception\http_exception(413, 'MCHAT_MESS_LONG', array($this->config['mchat_max_message_lngth'])); + } + + // We override the $this->config['min_post_chars'] entry? + if ($this->config['mchat_override_min_post_chars']) + { + $old_cfg['min_post_chars'] = $this->config['min_post_chars']; + $this->config['min_post_chars'] = 0; + } + + // We do the same for the max number of smilies? + if ($this->config['mchat_override_smilie_limit']) + { + $old_cfg['max_post_smilies'] = $this->config['max_post_smilies']; + $this->config['max_post_smilies'] = 0; + } + + $mchat_bbcode = $this->config['allow_bbcode'] && $this->auth->acl_get('u_mchat_bbcode'); + $mchat_urls = $this->config['allow_post_links'] && $this->auth->acl_get('u_mchat_urls'); + $mchat_smilies = $this->config['allow_smilies'] && $this->auth->acl_get('u_mchat_smilies'); + + // Add function part code from http://wiki.phpbb.com/Parsing_text + $uid = $bitfield = $options = ''; + generate_text_for_storage($message, $uid, $bitfield, $options, $mchat_bbcode, $mchat_urls, $mchat_smilies); + + // Not allowed bbcodes + if (!$mchat_bbcode) + { + $message = preg_replace('#\[/?[^\[\]]+\]#Usi', '', $message); + } + + // Disallowed bbcodes + if ($this->config['mchat_bbcode_disallowed']) + { + $bbcode_replace = array( + '#\[(' . $this->config['mchat_bbcode_disallowed'] . ')[^\[\]]+\]#Usi', + '#\[/(' . $this->config['mchat_bbcode_disallowed'] . ')[^\[\]]+\]#Usi', + ); + + $message = preg_replace($bbcode_replace, '', $message); + } + + // Reset the config settings + if (isset($old_cfg['min_post_chars'])) + { + $this->config['min_post_chars'] = $old_cfg['min_post_chars']; + } + + if (isset($old_cfg['max_post_smilies'])) + { + $this->config['max_post_smilies'] = $old_cfg['max_post_smilies']; + } + + return array_merge($merge_ary, array( + 'message' => str_replace("'", ''', $message), + 'bbcode_bitfield' => $bitfield, + 'bbcode_uid' => $uid, + 'bbcode_options' => $options, + )); + } + + /** + * Renders a template file and returns it + * @return string + */ + protected function render_template($template_file) + { + $this->template->set_filenames(array('body' => $template_file)); + $content = $this->template->assign_display('body', '', true); + + return trim(str_replace(array("\r", "\n"), '', $content)); + } +} diff --git a/core/render_helper.php b/core/render_helper.php deleted file mode 100644 index 2d572b2..0000000 --- a/core/render_helper.php +++ /dev/null @@ -1,908 +0,0 @@ -functions_mchat = $functions_mchat; - $this->config = $config; - $this->helper = $helper; - $this->template = $template; - $this->log = $log; - $this->user = $user; - $this->auth = $auth; - $this->db = $db; - $this->pagination = $pagination; - $this->request = $request; - $this->dispatcher = $dispatcher; - $this->phpbb_root_path = $phpbb_root_path; - $this->phpEx = $phpEx; - $this->mchat_table = $mchat_table; - } - - /** - * Method to render the page data - * - * @var bool Bool if the rendering is only for index - * @return null|array|string If we are rendering for the index, null is returned. For modes that are only - * called via AJAX, an array is returned, otherwise the rendered content is returned. - */ - public function render_data_for_page($on_index) - { - // If mChat is used on the index by a user without an avatar, a default avatar is used. - // However, T_THEME_PATH points to ./../styles/... because the controller at /mchat is called, but we need it to be ./styles... - // Setting this value to true solves this. - if (!defined('PHPBB_USE_BOARD_URL_PATH')) - { - define('PHPBB_USE_BOARD_URL_PATH', true); - } - - $this->template->assign_vars(array( - 'MCHAT_ENABLE' => $this->config['mchat_enable'], - 'MCHAT_DISABLE' => !$this->config['mchat_enable'], - )); - - if (!$this->config['mchat_enable']) - { - if ($this->request->is_ajax()) - { - throw new \phpbb\exception\http_exception(403, 'MCHAT_NOACCESS'); - } - else if (!$on_index) - { - return $this->helper->render('mchat_body.html', $this->user->lang('MCHAT_TITLE')); - } - return; - } - - $mchat_view = $this->auth->acl_get('u_mchat_view'); - - if ($on_index && (!$this->config['mchat_on_index'] || !$mchat_view)) - { - return; - } - - if (!$mchat_view) - { - // Forbidden - throw new \phpbb\exception\http_exception(403, 'MCHAT_NOACCESS'); - } - - // Add lang file - $this->user->add_lang('posting'); - - $config_mchat = $this->functions_mchat->mchat_cache(); - - // Access rights - $mchat_allow_bbcode = $this->config['allow_bbcode'] && $this->auth->acl_get('u_mchat_bbcode'); - $mchat_smilies = $this->config['allow_smilies'] && $this->auth->acl_get('u_mchat_smilies'); - $mchat_urls = $this->config['allow_post_links'] && $this->auth->acl_get('u_mchat_urls'); - $mchat_ip = $this->auth->acl_get('u_mchat_ip'); - $mchat_pm = $this->auth->acl_get('u_mchat_pm'); - $mchat_use = $this->auth->acl_get('u_mchat_use'); - $mchat_no_flood = $this->auth->acl_get('u_mchat_flood_ignore'); - $mchat_read_archive = $this->auth->acl_get('u_mchat_archive'); - $mchat_founder = $this->user->data['user_type'] == USER_FOUNDER; - $mchat_session_time = !empty($config_mchat['timeout']) ? $config_mchat['timeout'] : (!empty($this->config['load_online_time']) ? $this->config['load_online_time'] * 60 : $this->config['session_length']); - $mchat_rules = !empty($config_mchat['rules']) || isset($this->user->lang['MCHAT_RULES']); - $mchat_avatars = !empty($config_mchat['avatars']) && $this->user->optionget('viewavatars') && $this->user->data['user_mchat_avatars']; - - $mchat_mode = $this->request->variable('mode', ''); - $in_archive = $mchat_mode == 'archive'; - - // Return early for all regular HTTP requests that don't require message rendering. No AJAX here! - switch ($mchat_mode) - { - case 'clean': - if (!$this->user->data['is_registered']) - { - // Login box - login_box('', $this->user->lang('LOGIN')); - } - - if (!$mchat_founder) - { - throw new \phpbb\exception\http_exception(403, 'NO_AUTH_OPERATION'); - } - - $mchat_redirect = $this->request->variable('redirect', ''); - $mchat_redirect = ($mchat_redirect == 'index' ? append_sid("{$this->phpbb_root_path}index.{$this->phpEx}") : $this->helper->route('dmzx_mchat_controller')) . '#mChat'; - - if (confirm_box(true)) - { - // Prune is confirmed - $this->functions_mchat->mchat_truncate_messages(); - - meta_refresh(3, $mchat_redirect); - trigger_error($this->user->lang('MCHAT_CLEANED'). '

' . sprintf($this->user->lang('RETURN_PAGE'), '', '')); - } - else - { - // Display confirm box - confirm_box(false, $this->user->lang('MCHAT_DELALLMESS')); - } - - return; - - case 'rules': - if (!$mchat_rules) - { - throw new \phpbb\exception\http_exception(404, 'MCHAT_NO_RULES'); - } - - // If the rules are defined in the language file use them, else just use the entry in the database - $mchat_rules = isset($this->user->lang['MCHAT_RULES']) ? $this->user->lang('MCHAT_RULES') : $config_mchat['rules']; - $mchat_rules = explode("\n", $mchat_rules); - $mchat_rules = array_map('utf8_htmlspecialchars', $mchat_rules); - $mchat_rules = implode('
', $mchat_rules); - - $this->template->assign_var('MCHAT_RULES', $mchat_rules); - - return $this->helper->render('mchat_rules.html', $this->user->lang('MCHAT_HELP')); - - case 'ip': - if (!$mchat_ip) - { - throw new \phpbb\exception\http_exception(403, 'NO_AUTH_OPERATION'); - } - - if (!function_exists('user_ipwhois')) - { - include($this->phpbb_root_path . 'includes/functions_user.' . $this->phpEx); - } - - $user_ip = $this->request->variable('ip', ''); - $this->template->assign_var('WHOIS', user_ipwhois($user_ip)); - - return $this->helper->render('viewonline_whois.html', $this->user->lang('WHO_IS_ONLINE')); - } - - $foes_array = $this->functions_mchat->mchat_foes(); - - // If the static message is defined in the language file use it, else the entry in the database is used - if (isset($this->user->lang['STATIC_MESSAGE'])) - { - $config_mchat['static_message'] = $this->user->lang('STATIC_MESSAGE'); - } - - // If the static message is defined in the language file use it, else the entry in the database is used - if (isset($this->user->lang['MCHAT_RULES'])) - { - $config_mchat['rules'] = $this->user->lang('MCHAT_RULES'); - } - - $this->template->assign_vars(array( - 'MCHAT_FILE_NAME' => $this->helper->route('dmzx_mchat_controller'), - 'MCHAT_REFRESH_JS' => 1000 * $config_mchat['refresh'], - 'MCHAT_ARCHIVE_MODE' => $in_archive, - 'MCHAT_INPUT_TYPE' => $this->user->data['user_mchat_input_area'], - 'MCHAT_RULES' => $mchat_rules, - 'MCHAT_ALLOW_VIEW' => $mchat_view, - 'MCHAT_ALLOW_USE' => $mchat_use, - 'MCHAT_ALLOW_SMILES' => $mchat_smilies, - 'MCHAT_ALLOW_IP' => $mchat_ip, - 'MCHAT_ALLOW_PM' => $mchat_pm, - 'MCHAT_ALLOW_LIKE' => $mchat_use && $this->auth->acl_get('u_mchat_like'), - 'MCHAT_ALLOW_QUOTE' => $mchat_use && $this->auth->acl_get('u_mchat_quote'), - 'MCHAT_ALLOW_BBCODES' => $mchat_allow_bbcode, - 'MCHAT_MESSAGE_TOP' => $this->config['mchat_message_top'], - 'MCHAT_ARCHIVE_URL' => $this->helper->route('dmzx_mchat_controller', array('mode' => 'archive')), - 'MCHAT_CUSTOM_PAGE' => !$on_index, - 'MCHAT_INDEX_HEIGHT' => $config_mchat['index_height'], - 'MCHAT_CUSTOM_HEIGHT' => $config_mchat['custom_height'], - 'MCHAT_READ_ARCHIVE_BUTTON' => $mchat_read_archive, - 'MCHAT_FOUNDER' => $mchat_founder, - 'MCHAT_CLEAN_URL' => $this->helper->route('dmzx_mchat_controller', array('mode' => 'clean', 'redirect' => $on_index ? 'index' : 'mchat')), - 'MCHAT_STATIC_MESS' => !empty($config_mchat['static_message']) ? htmlspecialchars_decode($config_mchat['static_message']) : '', - 'L_MCHAT_COPYRIGHT' => base64_decode('PGEgaHJlZj0iaHR0cDovL3JtY2dpcnI4My5vcmciPlJNY0dpcnI4MzwvYT4gJmNvcHk7IDxhIGhyZWY9Imh0dHA6Ly93d3cuZG16eC13ZWIubmV0IiB0aXRsZT0id3d3LmRtengtd2ViLm5ldCI+ZG16eDwvYT4='), - 'MCHAT_MESSAGE_LNGTH' => $config_mchat['max_message_lngth'], - //'MCHAT_MESSAGE_LNGTH_EXPLAIN' => $config_mchat['max_message_lngth']) ? sprintf($this->user->lang('MCHAT_MESSAGE_LNGTH_EXPLAIN'), $config_mchat['max_message_lngth']) : '', TODO not used - 'MCHAT_MESS_LONG' => sprintf($this->user->lang('MCHAT_MESS_LONG'), $config_mchat['max_message_lngth']), - 'MCHAT_USER_TIMEOUT' => 1000 * $config_mchat['timeout'], - 'MCHAT_WHOIS_REFRESH' => $config_mchat['whois'] ? 1000 * $config_mchat['whois_refresh'] : 0, - 'MCHAT_PAUSE_ON_INPUT' => $config_mchat['pause_on_input'], - 'MCHAT_REFRESH_YES' => sprintf($this->user->lang('MCHAT_REFRESH_YES'), $config_mchat['refresh']), - 'MCHAT_WHOIS_REFRESH_EXPLAIN' => sprintf($this->user->lang('WHO_IS_REFRESH_EXPLAIN'), $config_mchat['whois_refresh']), - 'S_MCHAT_AVATARS' => $mchat_avatars, - 'S_MCHAT_LOCATION' => $config_mchat['location'], - 'S_MCHAT_SOUND_YES' => $this->user->data['user_mchat_sound'], - 'U_MORE_SMILIES' => append_sid("{$this->phpbb_root_path}posting.{$this->phpEx}", 'mode=smilies'), - 'U_MCHAT_RULES' => $this->helper->route('dmzx_mchat_controller', array('mode' => 'rules')), - 'S_MCHAT_ON_INDEX' => $this->config['mchat_on_index'] && !empty($this->user->data['user_mchat_index']), - 'EXT_URL' => generate_board_url() . '/ext/dmzx/mchat/', - 'STYLE_PATH' => generate_board_url() . '/styles/' . $this->user->style['style_path'], - )); - - if (!$on_index) - { - $this->template->assign_block_vars('navlinks', array( - 'FORUM_NAME' => $this->user->lang('MCHAT_TITLE'), - 'U_VIEW_FORUM' => $this->helper->route('dmzx_mchat_controller'), - )); - } - - // Request mode - switch ($mchat_mode) - { - case 'archive': - if (!$mchat_read_archive) - { - // Redirect to correct page - $mchat_redirect = append_sid("{$this->phpbb_root_path}index.{$this->phpEx}"); - - // Redirect to previous page - meta_refresh(3, $mchat_redirect); - trigger_error($this->user->lang('MCHAT_NOACCESS_ARCHIVE'). '

' . sprintf($this->user->lang('RETURN_PAGE'), '', '')); - } - - // Prune the chats - if ($config_mchat['prune_enable'] && $config_mchat['prune_num'] > 0) - { - $this->functions_mchat->mchat_prune($config_mchat['prune_num']); - } - - break; - - case 'refresh': - // Request new messages - $mchat_message_last_id = $this->request->variable('message_last_id', 0); - $sql_where = 'm.message_id > ' . (int) $mchat_message_last_id . ($this->user->data['user_mchat_topics'] ? '' : ' AND m.forum_id = 0'); - $limit = (int) $config_mchat['message_limit']; - $rows = $this->functions_mchat->mchat_messages($sql_where, $limit); - - // Reverse the array if messages appear at the bottom - if (!$this->config['mchat_message_top']) - { - $rows = array_reverse($rows); - } - - foreach ($rows as $i => $row) - { - // Auth checks - if ($row['forum_id'] != 0 && !$this->auth->acl_get('f_read', $row['forum_id'])) - { - continue; - } - - if ($this->user->data['user_id'] == ANONYMOUS && $this->user->data['user_id'] == $row['user_id']) - { - $chat_auths = $this->user->data['session_ip'] == $row['user_ip']; - } - else - { - $chat_auths = $this->user->data['user_id'] == $row['user_id']; - } - - $mchat_ban = $this->auth->acl_get('a_authusers') && $this->user->data['user_id'] != $row['user_id']; - $mchat_edit = $this->auth->acl_get('u_mchat_edit') && ($this->auth->acl_get('m_') || $chat_auths); - $mchat_del = $this->auth->acl_get('u_mchat_delete') && ($this->auth->acl_get('m_') || $chat_auths); - $message_edit = $row['message']; - - decode_message($message_edit, $row['bbcode_uid']); - $message_edit = str_replace('"', '"', $message_edit); - $message_edit = mb_ereg_replace("'", "’", $message_edit); - - if (in_array($row['user_id'], $foes_array)) - { - $row['message'] = sprintf($this->user->lang('MCHAT_FOE'), get_username_string('full', $row['user_id'], $row['username'], $row['user_colour'], $this->user->lang('GUEST'))); - } - - $row['username'] = mb_ereg_replace("'", "’", $row['username']); - - $this->template->assign_block_vars('mchatrow', array( - 'S_ROW_COUNT' => $i, - 'MCHAT_ALLOW_BAN' => $mchat_ban, - 'MCHAT_ALLOW_EDIT' => $mchat_edit, - 'MCHAT_ALLOW_DEL' => $mchat_del, - 'MCHAT_USER_AVATAR' => $row['user_avatar'] ? $this->functions_mchat->mchat_avatar($row) : '', - 'U_VIEWPROFILE' => $row['user_id'] != ANONYMOUS ? append_sid("{$this->phpbb_root_path}memberlist.{$this->phpEx}", 'mode=viewprofile&u=' . $row['user_id']) : '', - 'MCHAT_IS_POSTER' => $row['user_id'] != ANONYMOUS && $this->user->data['user_id'] == $row['user_id'], - 'MCHAT_PM' => $row['user_id'] != ANONYMOUS && $this->user->data['user_id'] != $row['user_id'] && $this->config['allow_privmsg'] && $this->auth->acl_get('u_sendpm') && ($row['user_allow_pm'] || $this->auth->acl_gets('a_', 'm_') || $this->auth->acl_getf_global('m_')) ? append_sid("{$this->phpbb_root_path}ucp.{$this->phpEx}", 'i=pm&mode=compose&u=' . $row['user_id']) : '', - 'MCHAT_MESSAGE_EDIT' => $message_edit, - 'MCHAT_MESSAGE_ID' => $row['message_id'], - 'MCHAT_USERNAME_FULL' => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour'], $this->user->lang('GUEST')), - 'MCHAT_USERNAME' => get_username_string('username', $row['user_id'], $row['username'], $row['user_colour'], $this->user->lang('GUEST')), - 'MCHAT_USERNAME_COLOR' => get_username_string('colour', $row['user_id'], $row['username'], $row['user_colour'], $this->user->lang('GUEST')), - 'MCHAT_USER_IP' => $row['user_ip'], - 'MCHAT_U_IP' => $this->helper->route('dmzx_mchat_controller', array('mode' => 'ip', 'ip' => $row['user_ip'])), - 'MCHAT_U_BAN' => append_sid("{$this->phpbb_root_path}adm/index.{$this->phpEx}" ,'i=permissions&mode=setting_user_global&user_id[0]=' . $row['user_id'], true, $this->user->session_id), - 'MCHAT_MESSAGE' => censor_text(generate_text_for_display($row['message'], $row['bbcode_uid'], $row['bbcode_bitfield'], $row['bbcode_options'])), - 'MCHAT_TIME' => $this->user->format_date($row['message_time'], $config_mchat['date']), - )); - } - - return array( - 'refresh' => $this->render('mchat_messages.html'), - ); - - case 'whois': - if (!$config_mchat['whois']) - { - throw new \phpbb\exception\http_exception(403, 'NO_AUTH_OPERATION'); - } - - $this->assign_whois(); - - return array( - 'whois' => $this->render('mchat_whois.html'), - ); - - case 'add': - if (!$mchat_use || !check_form_key('mchat_posting', -1)) - { - // Forbidden (for jQ AJAX request) - throw new \phpbb\exception\http_exception(403, 'MCHAT_NOACCESS'); - } - - $message = utf8_ucfirst($this->request->variable('message', '', true)); - - // Must have something other than bbcode in the message - $message_chars = trim(preg_replace('#\[/?[^\[\]]+\]#mi', '', $message)); - if (!$message || !utf8_strlen($message_chars)) - { - // Not Implemented - throw new \phpbb\exception\http_exception(501, 'MCHAT_ERROR_NOT_IMPLEMENTED'); - } - - // Flood control - if (!$mchat_no_flood && $config_mchat['flood_time']) - { - $mchat_flood_current_time = time(); - - $sql = 'SELECT message_time - FROM ' . $this->mchat_table . ' - WHERE user_id = ' . (int) $this->user->data['user_id'] . ' - ORDER BY message_time DESC'; - $result = $this->db->sql_query_limit($sql, 1); - $message_time = (int) $this->db->sql_fetchfield('message_time'); - $this->db->sql_freeresult($result); - - if ($message_time && time() - $message_time < $config_mchat['flood_time']) - { - // Locked - throw new \phpbb\exception\http_exception(400, 'MCHAT_BAD_REQUEST'); - } - } - - // Insert user into the mChat sessions table - $this->functions_mchat->mchat_sessions($mchat_session_time); - - // We override the $this->config['min_post_chars'] entry? - if ($config_mchat['override_min_post_chars']) - { - $old_cfg['min_post_chars'] = $this->config['min_post_chars']; - $this->config['min_post_chars'] = 0; - } - - // We do the same for the max number of smilies? - if ($config_mchat['override_smilie_limit']) - { - $old_cfg['max_post_smilies'] = $this->config['max_post_smilies']; - $this->config['max_post_smilies'] = 0; - } - - // Add function part code from http://wiki.phpbb.com/Parsing_text - $uid = $bitfield = $options = ''; - generate_text_for_storage($message, $uid, $bitfield, $options, $mchat_allow_bbcode, $mchat_urls, $mchat_smilies); - - // Not allowed bbcodes - if (!$mchat_allow_bbcode) - { - $bbcode_remove = '#\[/?[^\[\]]+\]#Usi'; - $message = preg_replace($bbcode_remove, '', $message); - } - - // Disallowed bbcodes - if ($config_mchat['bbcode_disallowed']) - { - $bbcode_replace = array( - '#\[(' . $config_mchat['bbcode_disallowed'] . ')[^\[\]]+\]#Usi', - '#\[/(' . $config_mchat['bbcode_disallowed'] . ')[^\[\]]+\]#Usi', - ); - $message = preg_replace($bbcode_replace, '', $message); - } - - /** - * Event render_helper_add - * - * @event dmzx.mchat.core.render_helper_add - * @since 0.1.2 - */ - $this->dispatcher->trigger_event('dmzx.mchat.core.render_helper_add'); - - $sql_ary = array( - 'forum_id' => 0, - 'post_id' => 0, - 'user_id' => $this->user->data['user_id'], - 'user_ip' => $this->user->data['session_ip'], - 'message' => str_replace('\'', ''', $message), - 'bbcode_bitfield' => $bitfield, - 'bbcode_uid' => $uid, - 'bbcode_options' => $options, - 'message_time' => time(), - ); - - $sql = 'INSERT INTO ' . $this->mchat_table . ' ' . $this->db->sql_build_array('INSERT', $sql_ary); - $this->db->sql_query($sql); - - // Reset the config settings - if (isset($old_cfg['min_post_chars'])) - { - $this->config['min_post_chars'] = $old_cfg['min_post_chars']; - unset($old_cfg['min_post_chars']); - } - - if (isset($old_cfg['max_post_smilies'])) - { - $this->config['max_post_smilies'] = $old_cfg['max_post_smilies']; - unset($old_cfg['max_post_smilies']); - } - - return array( - 'add' => true, - ); - - case 'edit': - $message_id = $this->request->variable('message_id', 0); - - if (!$message_id) - { - // Forbidden - throw new \phpbb\exception\http_exception(403, 'MCHAT_NOACCESS'); - } - - // Check for the correct user - if ($this->auth->acl_get('m_')) - { - // Always allow users with 'm_' auth to edit and delete - $user_id = $this->user->data['user_id']; - } - else - { - $sql = 'SELECT user_id - FROM ' . $this->mchat_table . ' - WHERE message_id = ' . (int) $message_id; - $result = $this->db->sql_query($sql); - $user_id = (int) $this->db->sql_fetchfield('user_id'); - $this->db->sql_freeresult($result); - } - - // Edit and delete auths - $mchat_ban = $this->auth->acl_get('a_authusers') && $this->user->data['user_id'] != $user_id; - $mchat_edit = $this->auth->acl_get('u_mchat_edit') && $this->user->data['user_id'] == $user_id; - $mchat_del = $this->auth->acl_get('u_mchat_delete') && $this->user->data['user_id'] == $user_id; - - if (!$mchat_edit) - { - // Forbidden - throw new \phpbb\exception\http_exception(403, 'MCHAT_NOACCESS'); - } - - $message = $this->request->variable('message', '', true); - - // Must have something other than bbcode in the message - $message_chars = trim(preg_replace('#\[/?[^\[\]]+\]#mi', '', $message)); - if (!$message || !utf8_strlen($message_chars)) - { - // Not Implemented (for jQ AJAX request) - throw new \phpbb\exception\http_exception(501, 'MCHAT_ERROR_NOT_IMPLEMENTED'); - } - - // Message limit - $message = $config_mchat['max_message_lngth'] && utf8_strlen($message) >= $config_mchat['max_message_lngth'] + 3 ? utf8_substr($message, 0, $config_mchat['max_message_lngth']) . '...' : $message; - - // We override the $this->config['min_post_chars'] entry? - if ($config_mchat['override_min_post_chars']) - { - $old_cfg['min_post_chars'] = $this->config['min_post_chars']; - $this->config['min_post_chars'] = 0; - } - - // We do the same for the max number of smilies? - if ($config_mchat['override_smilie_limit']) - { - $old_cfg['max_post_smilies'] = $this->config['max_post_smilies']; - $this->config['max_post_smilies'] = 0; - } - - // Edit function part code from http://wiki.phpbb.com/Parsing_text - $uid = $bitfield = $options = ''; - generate_text_for_storage($message, $uid, $bitfield, $options, $mchat_allow_bbcode, $mchat_urls, $mchat_smilies); - - // Not allowed bbcodes - if (!$mchat_allow_bbcode) - { - $bbcode_remove = '#\[/?[^\[\]]+\]#Usi'; - $message = preg_replace($bbcode_remove, '', $message); - } - - // Disallowed bbcodes - if ($config_mchat['bbcode_disallowed']) - { - $bbcode_replace = array( - '#\[(' . $config_mchat['bbcode_disallowed'] . ')[^\[\]]+\]#Usi', - '#\[/(' . $config_mchat['bbcode_disallowed'] . ')[^\[\]]+\]#Usi', - ); - $message = preg_replace($bbcode_replace, '', $message); - } - - $sql_ary = array( - 'message' => str_replace('\'', ''', $message), - 'bbcode_bitfield' => $bitfield, - 'bbcode_uid' => $uid, - 'bbcode_options' => $options, - ); - - $sql = 'UPDATE ' . $this->mchat_table . ' SET ' . $this->db->sql_build_array('UPDATE', $sql_ary) . ' - WHERE message_id = ' . (int) $message_id; - $this->db->sql_query($sql); - - // Message edited...now read it - $sql_where = 'm.message_id = ' . (int) $message_id; - $rows = $this->functions_mchat->mchat_messages($sql_where, 1); - $row = $rows[0]; - - $message_edit = $row['message']; - - decode_message($message_edit, $row['bbcode_uid']); - $message_edit = str_replace('"', '"', $message_edit); - $message_edit = mb_ereg_replace("'", "’", $message_edit); - - $this->template->assign_block_vars('mchatrow', array( - 'S_ROW_COUNT' => 0, - 'MCHAT_ALLOW_BAN' => $mchat_ban, - 'MCHAT_ALLOW_EDIT' => $mchat_edit, - 'MCHAT_ALLOW_DEL' => $mchat_del, - 'MCHAT_MESSAGE_EDIT' => $message_edit, - 'MCHAT_USER_AVATAR' => $row['user_avatar'] ? $this->functions_mchat->mchat_avatar($row) : '', - 'U_VIEWPROFILE' => $row['user_id'] != ANONYMOUS ? append_sid("{$this->phpbb_root_path}memberlist.{$this->phpEx}", 'mode=viewprofile&u=' . $row['user_id']) : '', - 'MCHAT_IS_POSTER' => $row['user_id'] != ANONYMOUS && $this->user->data['user_id'] == $row['user_id'], - 'MCHAT_PM' => $row['user_id'] != ANONYMOUS && $this->user->data['user_id'] != $row['user_id'] && $this->config['allow_privmsg'] && $this->auth->acl_get('u_sendpm') && ($row['user_allow_pm'] || $this->auth->acl_gets('a_', 'm_') || $this->auth->acl_getf_global('m_')) ? append_sid("{$this->phpbb_root_path}ucp.{$this->phpEx}", 'i=pm&mode=compose&u=' . $row['user_id']) : '', - 'MCHAT_MESSAGE_ID' => $row['message_id'], - 'MCHAT_USERNAME_FULL' => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour'], $this->user->lang('GUEST')), - 'MCHAT_USERNAME' => get_username_string('username', $row['user_id'], $row['username'], $row['user_colour'], $this->user->lang('GUEST')), - 'MCHAT_USERNAME_COLOR' => get_username_string('colour', $row['user_id'], $row['username'], $row['user_colour'], $this->user->lang('GUEST')), - 'MCHAT_USER_IP' => $row['user_ip'], - 'MCHAT_U_IP' => $this->helper->route('dmzx_mchat_controller', array('mode' => 'ip', 'ip' => $row['user_ip'])), - 'MCHAT_U_BAN' => append_sid("{$this->phpbb_root_path}adm/index.{$this->phpEx}" ,'i=permissions&mode=setting_user_global&user_id[0]=' . $row['user_id'], true, $this->user->session_id), - 'MCHAT_MESSAGE' => censor_text(generate_text_for_display($row['message'], $row['bbcode_uid'], $row['bbcode_bitfield'], $row['bbcode_options'])), - 'MCHAT_TIME' => $this->user->format_date($row['message_time'], $config_mchat['date']), - )); - - // Reset the config settings - if (isset($old_cfg['min_post_chars'])) - { - $this->config['min_post_chars'] = $old_cfg['min_post_chars']; - unset($old_cfg['min_post_chars']); - } - - if (isset($old_cfg['max_post_smilies'])) - { - $this->config['max_post_smilies'] = $old_cfg['max_post_smilies']; - unset($old_cfg['max_post_smilies']); - } - - // Add a log - $this->log->add('admin', $this->user->data['user_id'], $this->user->ip, 'LOG_EDITED_MCHAT', false, array($row['username'])); - - $this->functions_mchat->mchat_sessions($mchat_session_time); - - /** - * Event render_helper_edit - * - * @event dmzx.mchat.core.render_helper_edit - * @since 0.1.4 - */ - $this->dispatcher->trigger_event('dmzx.mchat.core.render_helper_edit'); - - return array( - 'edit' => $this->render('mchat_messages.html'), - ); - - case 'del': - $message_id = $this->request->variable('message_id', 0); - - if (!$message_id) - { - // Forbidden - throw new \phpbb\exception\http_exception(403, 'MCHAT_NOACCESS'); - } - - // Check for the correct user - $sql = 'SELECT u.user_id, u.username - FROM ' . $this->mchat_table . ' m - LEFT JOIN ' . USERS_TABLE . ' u ON m.user_id = u.user_id - WHERE m.message_id = ' . (int) $message_id; - $result = $this->db->sql_query($sql); - $row = $this->db->sql_fetchrow($result); - $this->db->sql_freeresult($result); - - // Delete auths - $mchat_del = $this->auth->acl_get('u_mchat_delete') && ($this->auth->acl_get('m_') || $this->user->data['user_id'] == $row['user_id']); - - if (!$mchat_del) - { - // Forbidden - throw new \phpbb\exception\http_exception(403, 'MCHAT_NOACCESS'); - } - - /** - * Event render_helper_delete - * - * @event dmzx.mchat.core.render_helper_delete - * @since 0.1.4 - */ - $this->dispatcher->trigger_event('dmzx.mchat.core.render_helper_delete'); - - // Run delete - $sql = 'DELETE FROM ' . $this->mchat_table . ' - WHERE message_id = ' . (int) $message_id; - $this->db->sql_query($sql); - - // Add a log - $this->log->add('admin', $this->user->data['user_id'], $this->user->ip, 'LOG_DELETED_MCHAT', false, array($row['username'])); - - $this->functions_mchat->mchat_sessions($mchat_session_time); - - return array( - 'del' => true, - ); - } - - // If not include in index.php set mchat.php page true - if (!$on_index) - { - if (!$in_archive) - { - // If custom page false mchat.php page redirect to index... - if (!$config_mchat['custom_page']) - { - $mchat_redirect = append_sid("{$this->phpbb_root_path}index.{$this->phpEx}"); - meta_refresh(3, $mchat_redirect); - trigger_error($this->user->lang('MCHAT_NO_CUSTOM_PAGE'). '

' . sprintf($this->user->lang('RETURN_PAGE'), '', '')); - } - - $this->functions_mchat->mchat_sessions($mchat_session_time); - } - - if ($config_mchat['whois']) - { - $legend = $this->functions_mchat->mchat_legend(); - $this->template->assign_var('LEGEND', implode(', ', $legend)); - } - } - - $sql_where = $this->user->data['user_mchat_topics'] ? '' : 'm.forum_id = 0'; - $limit = $in_archive ? $config_mchat['archive_limit'] : $config_mchat[$on_index ? 'message_num' : 'message_limit']; - $start = $in_archive ? $this->request->variable('start', 0) : 0; - $rows = $this->functions_mchat->mchat_messages($sql_where, $limit, $start); - - // Reverse the array if messages appear at the bottom - if (!$this->config['mchat_message_top'] && !$in_archive) - { - $rows = array_reverse($rows, true); - } - - foreach ($rows as $i => $row) - { - // Auth checks - if ($row['forum_id'] && !$this->auth->acl_get('f_read', $row['forum_id'])) - { - continue; - } - - if ($this->user->data['user_id'] == ANONYMOUS && $this->user->data['user_id'] == $row['user_id']) - { - $chat_auths = $this->user->data['session_ip'] == $row['user_ip']; - } - else - { - $chat_auths = $this->user->data['user_id'] == $row['user_id']; - } - - $mchat_ban = $this->auth->acl_get('a_authusers'); - $mchat_edit = $this->auth->acl_get('u_mchat_edit') && ($this->auth->acl_get('m_') || $chat_auths); - $mchat_del = $this->auth->acl_get('u_mchat_delete') && ($this->auth->acl_get('m_') || $chat_auths); - $message_edit = $row['message']; - - decode_message($message_edit, $row['bbcode_uid']); - $message_edit = str_replace('"', '"', $message_edit); - $message_edit = mb_ereg_replace("'", "’", $message_edit); - - if (in_array($row['user_id'], $foes_array)) - { - $row['message'] = sprintf($this->user->lang('MCHAT_FOE'), get_username_string('full', $row['user_id'], $row['username'], $row['user_colour'], $this->user->lang('GUEST'))); - } - - $row['username'] = mb_ereg_replace("'", "’", $row['username']); - $message = str_replace('\'', '’', $row['message']); - - $this->template->assign_block_vars('mchatrow', array( - 'S_ROW_COUNT' => $i, - 'MCHAT_ALLOW_BAN' => $mchat_ban, - 'MCHAT_ALLOW_EDIT' => $mchat_edit, - 'MCHAT_ALLOW_DEL' => $mchat_del, - 'MCHAT_USER_AVATAR' => $row['user_avatar'] ? $this->functions_mchat->mchat_avatar($row) : '', - 'U_VIEWPROFILE' => $row['user_id'] != ANONYMOUS ? append_sid("{$this->phpbb_root_path}memberlist.{$this->phpEx}", 'mode=viewprofile&u=' . $row['user_id']) : '', - 'MCHAT_IS_POSTER' => $row['user_id'] != ANONYMOUS && $this->user->data['user_id'] == $row['user_id'], - 'MCHAT_PM' => $row['user_id'] != ANONYMOUS && $this->user->data['user_id'] != $row['user_id'] && $this->config['allow_privmsg'] && $this->auth->acl_get('u_sendpm') && ($row['user_allow_pm'] || $this->auth->acl_gets('a_', 'm_') || $this->auth->acl_getf_global('m_')) ? append_sid("{$this->phpbb_root_path}ucp.{$this->phpEx}", 'i=pm&mode=compose&u=' . $row['user_id']) : '', - 'MCHAT_MESSAGE_EDIT' => $message_edit, - 'MCHAT_MESSAGE_ID' => $row['message_id'], - 'MCHAT_USERNAME_FULL' => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour'], $this->user->lang('GUEST')), - 'MCHAT_USERNAME' => get_username_string('username', $row['user_id'], $row['username'], $row['user_colour'], $this->user->lang('GUEST')), - 'MCHAT_USERNAME_COLOR' => get_username_string('colour', $row['user_id'], $row['username'], $row['user_colour'], $this->user->lang('GUEST')), - 'MCHAT_USER_IP' => $row['user_ip'], - 'MCHAT_U_IP' => $this->helper->route('dmzx_mchat_controller', array('mode' => 'ip', 'ip' => $row['user_ip'])), - 'MCHAT_U_BAN' => append_sid("{$this->phpbb_root_path}adm/index.{$this->phpEx}" ,'i=permissions&mode=setting_user_global&user_id[0]=' . $row['user_id'], true, $this->user->session_id), - 'MCHAT_MESSAGE' => censor_text(generate_text_for_display($message, $row['bbcode_uid'], $row['bbcode_bitfield'], $row['bbcode_options'])), - 'MCHAT_TIME' => $this->user->format_date($row['message_time'], $config_mchat['date']), - )); - } - - if ($in_archive) - { - // Run query again to get the total number of message for pagination - $sql = 'SELECT COUNT(message_id) AS mess_id - FROM ' . $this->mchat_table; - $result = $this->db->sql_query($sql); - $mchat_total_message = (int) $this->db->sql_fetchfield('mess_id'); - $this->db->sql_freeresult($result); - - $pagination_url = $this->helper->route('dmzx_mchat_controller', array('mode' => 'archive')); - $this->pagination->generate_template_pagination($pagination_url, 'pagination', 'start', $mchat_total_message, $limit, $start); - - $this->template->assign_var('MCHAT_TOTAL_MESSAGES', sprintf($this->user->lang('MCHAT_TOTALMESSAGES'), $mchat_total_message)); - - // Add to navlinks - $this->template->assign_block_vars('navlinks', array( - 'FORUM_NAME' => $this->user->lang('MCHAT_ARCHIVE'), - 'U_VIEW_FORUM' => $this->helper->route('dmzx_mchat_controller', array('mode' => 'archive')), - )); - } - else - { - $this->assign_whois(); - - // Display custom bbcodes - if ($mchat_allow_bbcode) - { - if (!function_exists('display_custom_bbcodes')) - { - include($this->phpbb_root_path . 'includes/functions_display.' . $this->phpEx); - } - $this->functions_mchat->display_mchat_bbcodes(); - } - - // Smile row - if ($mchat_smilies) - { - if (!function_exists('generate_smilies')) - { - include($this->phpbb_root_path . 'includes/functions_posting.' . $this->phpEx); - } - generate_smilies('inline', 0); - } - - add_form_key('mchat_posting'); - } - - /** - * Event render_helper_aft - * - * @event dmzx.mchat.core.render_helper_aft - * @since 0.1.2 - */ - $this->dispatcher->trigger_event('dmzx.mchat.core.render_helper_aft'); - - // If we're on the index, we must not render anything - // here, only for the custom page and the archive - if (!$on_index) - { - return $this->helper->render('mchat_body.html', $this->user->lang($in_archive ? 'MCHAT_ARCHIVE_PAGE' : 'MCHAT_TITLE')); - } - } - - /** - * Renders the statistics for whois and at the bottom of the index page - */ - public function assign_whois() - { - if ($this->config['mchat_enable'] && $this->auth->acl_get('u_mchat_view') && !$this->is_mchat_rendered) - { - $this->is_mchat_rendered = true; - $config_mchat = $this->functions_mchat->mchat_cache(); - $mchat_session_time = !empty($config_mchat['timeout']) ? $config_mchat['timeout'] : (!empty($this->config['load_online_time']) ? $this->config['load_online_time'] * 60 : $this->config['session_length']); - $mchat_stats = $this->functions_mchat->mchat_users($mchat_session_time); - $this->template->assign_vars(array( - 'MCHAT_INDEX_STATS' => $this->config['mchat_stats_index'] && $this->user->data['user_mchat_stats_index'], - 'MCHAT_USERS_COUNT' => $mchat_stats['mchat_users_count'], - 'MCHAT_USERS_LIST' => !empty($mchat_stats['online_userlist']) ? $mchat_stats['online_userlist'] : '', - 'MCHAT_ONLINE_EXPLAIN' => $mchat_stats['refresh_message'], - )); - } - } - - /** - * Renders a template file and returns it - * @return string - */ - protected function render($template_file) - { - $this->template->set_filenames(array('body' => $template_file)); - $content = $this->template->assign_display('body', '', true); - - return trim(str_replace(array("\r", "\n"), '', $content)); - } -} diff --git a/event/listener.php b/event/listener.php index 1ee0a28..010b19d 100644 --- a/event/listener.php +++ b/event/listener.php @@ -16,44 +16,34 @@ class listener implements EventSubscriberInterface /** @var \dmzx\mchat\core\functions_mchat */ protected $functions_mchat; - /** @var \dmzx\mchat\core\render_helper */ - protected $render_helper; - - /** @var \phpbb\auth\auth */ - protected $auth; + /** @var \dmzx\mchat\core\mchat */ + protected $mchat; /** @var \phpbb\controller\helper */ - protected $controller_helper; - - /** @var \phpbb\template\template */ - protected $template; + protected $helper; /** @var \phpbb\user */ protected $user; /** @var string */ - protected $phpEx; + protected $php_ext; /** * Constructor * * @param \dmzx\mchat\core\functions_mchat $functions_mchat - * @param \dmzx\mchat\core\render_helper $render_helper - * @param \phpbb\auth\auth $auth - * @param \phpbb\controller\helper $controller_helper - * @param \phpbb\template\template $template + * @param \dmzx\mchat\core\mchat $mchat + * @param \phpbb\controller\helper $helper * @param \phpbb\user $user - * @param string $phpEx + * @param string $php_ext */ - public function __construct(\dmzx\mchat\core\functions_mchat $functions_mchat, \dmzx\mchat\core\render_helper $render_helper, \phpbb\auth\auth $auth, \phpbb\controller\helper $controller_helper, \phpbb\template\template $template, \phpbb\user $user, $phpEx) + public function __construct(\dmzx\mchat\core\functions_mchat $functions_mchat, \dmzx\mchat\core\mchat $mchat, \phpbb\controller\helper $helper, \phpbb\user $user, $php_ext) { - $this->functions_mchat = $functions_mchat; - $this->render_helper = $render_helper; - $this->auth = $auth; - $this->controller_helper = $controller_helper; - $this->template = $template; - $this->user = $user; - $this->phpEx = $phpEx; + $this->functions_mchat = $functions_mchat; + $this->mchat = $mchat; + $this->helper = $helper; + $this->user = $user; + $this->php_ext = $php_ext; } static public function getSubscribedEvents() @@ -69,15 +59,21 @@ class listener implements EventSubscriberInterface ); } + /** + * + */ public function add_page_viewonline($event) { - if (strrpos($event['row']['session_page'], 'app.' . $this->phpEx . '/mchat') === 0) + if (strrpos($event['row']['session_page'], 'app.' . $this->php_ext . '/mchat') === 0) { $event['location'] = $this->user->lang('MCHAT_TITLE'); - $event['location_url'] = $this->controller_helper->route('dmzx_mchat_controller'); + $event['location_url'] = $this->helper->route('dmzx_mchat_controller'); } } + /** + * + */ public function load_language_on_setup($event) { $lang_set_ext = $event['lang_set_ext']; @@ -97,13 +93,7 @@ class listener implements EventSubscriberInterface */ public function add_page_header_link($event) { - $allow_view = $this->auth->acl_get('u_mchat_view'); - $config_mchat = $allow_view ? $this->functions_mchat->mchat_cache() : array(); - $this->template->assign_vars(array( - 'MCHAT_ALLOW_VIEW' => $this->auth->acl_get('u_mchat_view'), - 'S_MCHAT_CUSTOM_PAGE' => !empty($config_mchat['custom_page']), - 'U_MCHAT' => $this->controller_helper->route('dmzx_mchat_controller'), - )); + $this->mchat->render_page_header_link(); } /** @@ -115,10 +105,12 @@ class listener implements EventSubscriberInterface */ public function display_mchat_on_index($event) { - $this->render_helper->render_data_for_page(true); - $this->render_helper->assign_whois(); + $this->mchat->page_index(); } + /** + * + */ public function posting_modify_submit_post_after($event) { $this->functions_mchat->mchat_insert_posting($event['mode'], array( @@ -129,6 +121,17 @@ class listener implements EventSubscriberInterface )); } + /** + * + */ + public function display_custom_bbcodes_modify_sql($event) + { + $event['sql_ary'] = $this->mchat->remove_disallowed_bbcodes($event['sql_ary']); + } + + /** + * + */ public function permissions($event) { $event['permissions'] = array_merge($event['permissions'], array( @@ -194,21 +197,4 @@ class listener implements EventSubscriberInterface 'mChat' => 'ACP_CAT_MCHAT', )); } - - public function display_custom_bbcodes_modify_sql($event) - { - // Add disallowed BBCodes to the template only if we're rendering for mChat - if ($this->render_helper->is_mchat_rendered) - { - $disallowed_bbcode_array = $this->functions_mchat->get_disallowed_bbcodes(); - - if (!empty($disallowed_bbcode_array)) - { - $disallowed_bbcode_array = array_map('strtoupper', $disallowed_bbcode_array); - $sql_ary = $event['sql_ary']; - $sql_ary['WHERE'] .= " AND UPPER(b.bbcode_tag) NOT IN ('" . implode("','", $disallowed_bbcode_array) . "')"; - $event['sql_ary'] = $sql_ary; - } - } - } } diff --git a/language/de/common.php b/language/de/common.php index 3bfab7d..33c17c3 100644 --- a/language/de/common.php +++ b/language/de/common.php @@ -49,7 +49,6 @@ $lang = array_merge($lang, array( 'MCHAT_DELITE' => 'Löschen', 'MCHAT_EDIT' => 'Bearbeiten', 'MCHAT_EDITINFO' => 'Bearbeite die Nachricht und klick auf OK', - 'MCHAT_ENABLE' => 'Entschuldigung, aber der mChat ist momentan nicht verfügbar', 'MCHAT_ERROR' => 'Fehler', 'MCHAT_FLOOD' => 'Du kannst keine Nachricht so schnell nach deiner letzten Nachricht schreiben', 'MCHAT_FOE' => 'Die Nachricht wurde von % 1 $ s gemacht, der derzeit auf der Ignorieren-Liste steht.', @@ -94,7 +93,7 @@ $lang = array_merge($lang, array( 'MCHAT_ONLINE_EXPLAIN' => '(basierend auf den aktiven Besuchern der letzten %s)', 'WHO_IS_CHATTING' => 'Wer ist im mChat', 'WHO_IS_REFRESH_EXPLAIN' => 'Aktualisieren alle %d Sekunden', - 'MCHAT_NEW_TOPIC' => 'Erstelle ein neues Thema', + 'MCHAT_NEW_POST' => 'Neues Thema', 'MCHAT_NEW_REPLY' => 'Erstelle eine neue Antwort', 'MCHAT_NEW_QUOTE' => 'Antworte mit einem Zitat', 'MCHAT_NEW_EDIT' => 'Bearbeite', @@ -118,7 +117,6 @@ $lang = array_merge($lang, array( 'ACP_USER_MCHAT' => 'mChat Einstellung', 'LOG_DELETED_MCHAT' => 'Lösche mChat Nachricht
» %1$en', 'LOG_EDITED_MCHAT' => 'Editiere mChat Nachricht
» %1$en', - 'MCHAT_MESSAGE_LNGTH_EXPLAIN' => 'Zeichen übrig: %d', 'MCHAT_TOP_POSTERS' => 'Top Poster', 'MCHAT_NEW_CHAT' => 'Neue mChat Nachricht!', 'MCHAT_SEND_PM' => 'Sende private Nachricht', diff --git a/language/de/info_acp_mchat.php b/language/de/info_acp_mchat.php index cb9b018..0730441 100644 --- a/language/de/info_acp_mchat.php +++ b/language/de/info_acp_mchat.php @@ -52,20 +52,20 @@ $lang = array_merge($lang, array( 'MCHAT_CONFIG_SAVED' => 'Die mChat-Konfiguration wurde erfolgreich geändert', 'MCHAT_TITLE' => 'Mini-Chat', 'MCHAT_VERSION' => 'Version:', - 'MCHAT_ENABLE' => 'mChat MOD aktivieren', - 'MCHAT_ENABLE_EXPLAIN' => 'Generelles Aktivieren oder Deaktivieren.', 'MCHAT_AVATARS' => 'Avatare anzeigen', - 'MCHAT_AVATARS_EXPLAIN' => 'Wenn JA eingestellt ist, werden Avatare angezeigt', + 'MCHAT_AVATARS_EXPLAIN' => 'Wenn ja gesetzt ist, wird ein in der Größe verändertes Benutzer Avatare angezeigt.', 'MCHAT_ON_INDEX' => 'mChat im Index', - 'MCHAT_ON_INDEX_EXPLAIN' => 'Erlaube die mChat Anzeige auf der Startseite.', - 'MCHAT_INDEX_HEIGHT' => 'Seitenhöhe im Index', - 'MCHAT_INDEX_HEIGHT_EXPLAIN' => 'Die Höhe der Chat Box in Pixeln auf der Index-Seite des Forums.
Du kannst nur von 50 bis 1000 Pixel einstellen.', + 'MCHAT_ON_INDEX_EXPLAIN' => 'Ermöglicht die Anzeige des MCHAT auf der Indexseite.', + 'MCHAT_INDEX_HEIGHT' => 'Index Seiten Höhe', + 'MCHAT_INDEX_HEIGHT_EXPLAIN' => 'Die Höhe der Chat Box in Pixeln auf der Index-Seite des Forums.
Du kannst nur von 50 bis 1000 Pixel einstellen.', 'MCHAT_LOCATION' => 'Platzierung im Forum', 'MCHAT_LOCATION_EXPLAIN' => 'Wähle die Position von mChat auf der Startseite.', 'MCHAT_TOP_OF_FORUM' => 'Oberhalb des Forums', 'MCHAT_BOTTOM_OF_FORUM' => 'Unterhalb des Forums', 'MCHAT_REFRESH' => 'Aktualisieren', - 'MCHAT_REFRESH_EXPLAIN' => 'Die Anzahl Sekunden, bis sich der mChat automatisch aktualisiert. Nicht unter 5 Sekunden einstellen..', + 'MCHAT_REFRESH_EXPLAIN' => 'Anzahl der Sekunden, bevor Chat automatisch aktualisiert wird.
Sie sind von 5 bis 60 Sekunden begrenzt.', + 'MCHAT_LIVE_UPDATES' => 'Live Updates von bearbeiteten und gelöschten Nachrichten', + 'MCHAT_LIVE_UPDATES_EXPLAIN' => 'Wenn ein Benutzer Nachrichten bearbeitet oder löscht, werden die Änderungen für alle anderen live aktualisiert, ohne dass sich die Seite zu aktualisiert. Deaktivieren Sie diese Option, wenn Leistungsprobleme auftreten.', 'MCHAT_PRUNE' => 'Automatisches Löschen erlauben', 'MCHAT_PRUNE_EXPLAIN' => 'Stelle JA ein, um die automatische Löschfunktion zu aktivieren.
Hat nur Auswirkung, wenn ein Benutzer die separate Seite oder das Archiv betrachtet. 'Anzahl verbleibender Nachrichten nach dem automatischem Löschen', @@ -78,6 +78,8 @@ $lang = array_merge($lang, array( 'MCHAT_ARCHIVE_LIMIT_EXPLAIN' => 'Die maximale Anzahl Nachrichten pro Seite im Archiv.
Empfohlen sind 25 bis 50 'Flood-Intervall', 'MCHAT_FLOOD_TIME_EXPLAIN' => 'Die Zeit in Sekunden, die ein Benutzer warten muß, bis er eine neue Nachricht im mChat absenden kann.
Empfohlen sind 5 bis 30, stelle 0 ein, um die Funktion zu deaktivieren 'Frist für die Bearbeitung und das Löschen von Nachrichten', + 'MCHAT_EDIT_DELETE_LIMIT_EXPLAIN' => 'Nachrichten, die älter als die angegebene Anzahl von Sekunden können vom Autor nicht mehr bearbeitet oder gelöscht werden.
Benutzer, die bearbeiten/löschen dürfen und von der Moderator Genehmigung befreit sind von dieser Frist.
Bei 0 wird unbegrenztes Bearbeiten und Löschen ermöglicht.', 'MCHAT_MAX_MESSAGE_LENGTH' => 'Maximale Nachrichtenlänge', 'MCHAT_MAX_MESSAGE_LENGTH_EXPLAIN' => 'Die maximal erlaubte Anzahl von Zeichen pro Nachricht.
Empfohlen sind 100 bis 500, stelle 0 ein, um die Funktion zu deaktivieren.', 'MCHAT_CUSTOM_PAGE' => 'Eigenständige Seite', @@ -100,7 +102,7 @@ $lang = array_merge($lang, array( 'MCHAT_OVERRIDE_SMILIE_LIMIT' => 'Smilielimit überschreiben?', 'MCHAT_OVERRIDE_SMILIE_LIMIT_EXPLAIN' => 'Falls JA eingestellt ist, wird das eingestellte Limit im Forum für Smilies im mChat aufgehoben.', 'MCHAT_OVERRIDE_MIN_POST_CHARS' => 'Minimale Anzahl von Zeichen aufheben?', - 'MCHAT_OVERRIDE_MIN_POST_CHARS_EXPLAIN' => 'Falls ja eingestellt ist, wird das Limit für die minimale Anzahl an Zeichen für mChat-Nachrichten aufgehoben.', + 'MCHAT_OVERRIDE_MIN_POST_CHARS_EXPLAIN' => 'Falls ja eingestellt ist, wird das Limit für die minimale Anzahl an Zeichen für mChat-Nachrichten aufgehoben.', 'MCHAT_NEW_POSTS' => 'Zeige aktivierte Beiträge an', 'MCHAT_NEW_POSTS_EXPLAIN' => 'Stelle auf Ja, und setze unter den Optionen, welche Nachricht im Chat-Nachrichtenbereich angezeigt werden können..', 'MCHAT_NEW_POSTS_TOPIC' => 'Zeige New Topic Beiträge an', @@ -111,7 +113,7 @@ $lang = array_merge($lang, array( 'MCHAT_NEW_POSTS_EDIT_EXPLAIN' => 'Stelle auf Ja, damit bearbeitete Beiträge aus dem Forum im Chat Nachrichtenbereich angezeigt werden.', 'MCHAT_NEW_POSTS_QUOTE' => 'Zeige zitierte Beiträge an', 'MCHAT_NEW_POSTS_QUOTE_EXPLAIN' => 'Stelle auf Ja, damit die zitierten Beiträge aus dem Forum im Chat Nachrichtenbereich angezeigt werden.', - 'MCHAT_MAIN' => 'Hauptkonfiguration', + 'MCHAT_MAIN' => 'Hauptkonfiguration', 'MCHAT_STATS' => 'Wer ist im mChat?', 'MCHAT_STATS_INDEX' => 'Anzeige auf dem Index', 'MCHAT_STATS_INDEX_EXPLAIN' => 'Zeigt auf dem Index an wer im Mini-Chat ist.', diff --git a/language/en/common.php b/language/en/common.php index af751af..95f2393 100644 --- a/language/en/common.php +++ b/language/en/common.php @@ -49,17 +49,16 @@ $lang = array_merge($lang, array( 'MCHAT_DELITE' => 'Delete', 'MCHAT_EDIT' => 'Edit', 'MCHAT_EDITINFO' => 'Edit the message and click OK', - 'MCHAT_ENABLE' => 'Sorry, the Mini-Chat is currently unavailable', 'MCHAT_ERROR' => 'Error', 'MCHAT_FLOOD' => 'You can not post another message so soon after your last', 'MCHAT_FOE' => 'This message was made by %1$s who is currently on your ignore list.', 'MCHAT_HELP' => 'mChat Rules', 'MCHAT_HIDE_LIST' => 'Hide List', - 'MCHAT_HOUR' => 'hour ', + 'MCHAT_HOUR' => 'hour', 'MCHAT_HOURS' => 'hours', 'MCHAT_IP' => 'IP whois for', - 'MCHAT_MINUTE' => 'minute ', - 'MCHAT_MINUTES' => 'minutes ', + 'MCHAT_MINUTE' => 'minute', + 'MCHAT_MINUTES' => 'minutes', 'MCHAT_MESS_LONG' => 'Your message is too long.\nPlease limit it to %s characters', 'MCHAT_NO_CUSTOM_PAGE' => 'The mChat custom page is not activated at this time!', 'MCHAT_NO_RULES' => 'The mChat rules page is not activated at this time!', @@ -82,8 +81,8 @@ $lang = array_merge($lang, array( 'MCHAT_RESET_QUESTION' => 'Clear the input area?', 'MCHAT_SESSION_OUT' => 'Chat session has expired', 'MCHAT_SHOW_LIST' => 'Show List', - 'MCHAT_SECOND' => 'second ', - 'MCHAT_SECONDS' => 'seconds ', + 'MCHAT_SECOND' => 'second', + 'MCHAT_SECONDS' => 'seconds', 'MCHAT_SESSION_ENDS' => 'Chat session ends in', 'MCHAT_SMILES' => 'Smilies', 'MCHAT_TOTALMESSAGES' => 'Total messages: %s', @@ -94,7 +93,7 @@ $lang = array_merge($lang, array( 'MCHAT_ONLINE_EXPLAIN' => 'based on users active over the past %s', 'WHO_IS_CHATTING' => 'Who is chatting', 'WHO_IS_REFRESH_EXPLAIN' => 'Refreshes every %d seconds', - 'MCHAT_NEW_TOPIC' => 'Made A New Topic', + 'MCHAT_NEW_POST' => 'Made A New Topic', 'MCHAT_NEW_REPLY' => 'Made A New Reply', 'MCHAT_NEW_QUOTE' => 'Replied with a Quote', 'MCHAT_NEW_EDIT' => 'Made A Edit', @@ -118,7 +117,6 @@ $lang = array_merge($lang, array( 'ACP_USER_MCHAT' => 'mChat Settings', 'LOG_DELETED_MCHAT' => 'Deleted mChat message
» %1$s', 'LOG_EDITED_MCHAT' => 'Edited mChat message
» %1$s', - 'MCHAT_MESSAGE_LNGTH_EXPLAIN' => 'Characters remaining: %d', 'MCHAT_TOP_POSTERS' => 'Top Spammers', 'MCHAT_NEW_CHAT' => 'New Chat Message!', 'MCHAT_SEND_PM' => 'Send Private Message', diff --git a/language/en/info_acp_mchat.php b/language/en/info_acp_mchat.php index cd50318..9c5f038 100644 --- a/language/en/info_acp_mchat.php +++ b/language/en/info_acp_mchat.php @@ -52,8 +52,6 @@ $lang = array_merge($lang, array( 'MCHAT_CONFIG_SAVED' => 'Mini Chat configuration has been updated', 'MCHAT_TITLE' => 'Mini-Chat', 'MCHAT_VERSION' => 'Version:', - 'MCHAT_ENABLE' => 'Enable mChat Extension', - 'MCHAT_ENABLE_EXPLAIN' => 'Enable or disable the extension globally.', 'MCHAT_AVATARS' => 'Display avatars', 'MCHAT_AVATARS_EXPLAIN' => 'If set yes, resized user avatars will be displayed', 'MCHAT_ON_INDEX' => 'mChat On Index', @@ -66,6 +64,8 @@ $lang = array_merge($lang, array( 'MCHAT_BOTTOM_OF_FORUM' => 'Bottom of Forum', 'MCHAT_REFRESH' => 'Refresh', 'MCHAT_REFRESH_EXPLAIN' => 'Number of seconds before chat automatically refreshes.
You are limited from 5 to 60 seconds.', + '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_PRUNE' => 'Enable Prune', 'MCHAT_PRUNE_EXPLAIN' => 'Set to yes to enable the prune feature.
Only occurs if a user views the custom or archive pages.', 'MCHAT_PRUNE_NUM' => 'Prune Number', @@ -78,12 +78,14 @@ $lang = array_merge($lang, array( 'MCHAT_ARCHIVE_LIMIT_EXPLAIN' => 'The maximum number of messages to show per page on the archive page.
Recommended from 25 to 50.', 'MCHAT_FLOOD_TIME' => 'Flood time', 'MCHAT_FLOOD_TIME_EXPLAIN' => 'The number of seconds a user must wait before posting another message in the chat.
Recommended 5 to 30, set to 0 to disable.', + '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.
Users who have edit/delete permission as well as moderator permission are exempt from this time limit.
Set to 0 to allow unlimited editing and deleting.', 'MCHAT_MAX_MESSAGE_LENGTH' => 'Max message length', 'MCHAT_MAX_MESSAGE_LENGTH_EXPLAIN' => 'Max number of characters allowed per message posted.
Recommended from 100 to 500, set to 0 to disable.', 'MCHAT_CUSTOM_PAGE' => 'Custom Page', 'MCHAT_CUSTOM_PAGE_EXPLAIN' => 'Allow the use of the custom page', 'MCHAT_CUSTOM_HEIGHT' => 'Custom Page Height', - 'MCHAT_CUSTOM_HEIGHT_EXPLAIN' => 'The height of the chat box in pixels on the seperate mChat page.
You are limited from 50 to 1000.', + 'MCHAT_CUSTOM_HEIGHT_EXPLAIN' => 'The height of the chat box in pixels on the separate mChat page.
You are limited from 50 to 1000.', 'MCHAT_DATE_FORMAT' => 'Date format', 'MCHAT_DATE_FORMAT_EXPLAIN' => 'The syntax used is identical to the PHP date() function.', 'MCHAT_CUSTOM_DATEFORMAT' => 'Custom…', diff --git a/language/es/common.php b/language/es/common.php index 440ebee..d130383 100644 --- a/language/es/common.php +++ b/language/es/common.php @@ -34,95 +34,93 @@ $lang = array_merge($lang, array( 'MCHAT_ADD' => 'Enviar', 'MCHAT_IN' => 'en', 'MCHAT_IN_SECTION' => 'sección', - 'MCHAT_LIKES' => 'Me gusta este mensaje', + 'MCHAT_LIKES' => 'Me Gusta este mensaje', 'MCHAT_ANNOUNCEMENT' => 'Anuncio', 'MCHAT_ARCHIVE' => 'Archivo', 'MCHAT_ARCHIVE_PAGE' => 'Archivo de Mini-Chat', 'MCHAT_BBCODES' => 'BBCodes', - 'MCHAT_CLEAN' => 'Purgar', - 'MCHAT_CLEANED' => 'Todos los mensajes han sido eliminados', - 'MCHAT_CLEAR_INPUT' => 'Limpiar', + 'MCHAT_CLEAN' => 'Purge', + 'MCHAT_CLEANED' => 'Todos los mensajes han sido eliminados correctamente', + 'MCHAT_CLEAR_INPUT' => 'Reiniciar', 'MCHAT_COPYRIGHT' => 'RMcGirr83 © dmzx', 'MCHAT_CUSTOM_BBCODES' => 'BBCodes personalizados', 'MCHAT_DELALLMESS' => '¿Eliminar todos los mensajes?', - 'MCHAT_DELCONFIRM' => '¿Confirmar la eliminación?', + 'MCHAT_DELCONFIRM' => '¿Quiere confirmar el borrado?', 'MCHAT_DELITE' => 'Borrar', 'MCHAT_EDIT' => 'Editar', - 'MCHAT_EDITINFO' => 'Editar el mensaje y clic en OK', - 'MCHAT_ENABLE' => 'Perdón, el Mini-Chat actualmente no está disponible', + 'MCHAT_EDITINFO' => 'Editar el mensaje y haga clic en OK', 'MCHAT_ERROR' => 'Error', - 'MCHAT_FLOOD' => 'No puede enviar otro mensaje tan pronto, después de enviar el último', - 'MCHAT_FOE' => 'Este mensaje ha sido creado por %1$s quien se encuentra actualmente en su lista de ignorados.', - 'MCHAT_HELP' => 'Normas', - 'MCHAT_HIDE_LIST' => 'Ocultar lista', - 'MCHAT_HOUR' => 'hora ', - 'MCHAT_HOURS' => 'horas ', - 'MCHAT_IP' => 'IP whois para %s', - 'MCHAT_MINUTE' => 'minuto ', - 'MCHAT_MINUTES' => 'minutos ', - 'MCHAT_MESS_LONG' => 'Su mensaje es demasiado largo.\nPor favor, el limite está en %s caracteres', - 'MCHAT_NO_CUSTOM_PAGE' => '¡La página personalizada de mChat no está activada en este momento!', - 'MCHAT_NOACCESS' => 'No tiene permisos para enviar mensajes al mChat', - 'MCHAT_NO_RULES' => 'The mChat rules page is not activated at this time!', - 'MCHAT_NOACCESS_ARCHIVE' => 'No tiene permisos para ver el archivo', - 'MCHAT_NOJAVASCRIPT' => 'Su navegador no soporta JavaScript o JavaScript esta desactivado', + 'MCHAT_FLOOD' => 'No puede enviar otro mensaje tan pronto después de su último mensaje', + 'MCHAT_FOE' => 'Este mensaje fue creado por %1$s que se encuentra actualmente en su lista de ignorados.', + 'MCHAT_HELP' => 'Normas de mChat', + 'MCHAT_HIDE_LIST' => 'Ocultar Lista', + 'MCHAT_HOUR' => 'hora', + 'MCHAT_HOURS' => 'horas', + 'MCHAT_IP' => 'IP whois de', + 'MCHAT_MINUTE' => 'minuto', + 'MCHAT_MINUTES' => 'minutos', + 'MCHAT_MESS_LONG' => 'Su mensaje es demasiado largo.\nPor favor, debe limitarlo a %s caracteres', + 'MCHAT_NO_CUSTOM_PAGE' => '¡La página personalizada de mChat no está habilitada en este momento!', + 'MCHAT_NO_RULES' => '¡Las normas de mChat no están habilitadas en este momento!', + 'MCHAT_NOACCESS' => 'Usted no tiene permiso para publicar en el mChat', + 'MCHAT_NOACCESS_ARCHIVE' => 'Usted no tiene permiso para ver el archivo', + 'MCHAT_NOJAVASCRIPT' => 'Su navegador no soporta JavaScript, o JavaScript está desactivado', 'MCHAT_NOMESSAGE' => 'No hay mensajes', - 'MCHAT_NOMESSAGEINPUT' => 'Debe introducir un mensaje', - 'MCHAT_NOSMILE' => 'No se encontraron emoticonos', - 'MCHAT_NOTINSTALLED_USER' => 'mChat no esta instalado. Por favor, avise al fundador del foro.', - 'MCHAT_NOT_INSTALLED' => 'Faltan entradas de mChat en la base de datos.
Por favor, ejecute el %sinstalador%s para crear los cambios de la modificación en la base de datos.', + 'MCHAT_NOMESSAGEINPUT' => 'No ha escrito ningún mensaje', + 'MCHAT_NOSMILE' => 'No se encontraron los Emoticonos', + 'MCHAT_NOTINSTALLED_USER' => 'mChat no está instalado. Por favor, notifique al fundador del foro.', + 'MCHAT_NOT_INSTALLED' => 'Faltan las entradas de mChat en la base de datos.
Por favor, ejecute el %sinstalador%s para hacer los cambios en la base de datos para está modificación.', 'MCHAT_OK' => 'OK', 'MCHAT_PAUSE' => 'Pausado', 'MCHAT_LOAD' => 'Cargando', - 'MCHAT_PERMISSIONS' => 'Cambiar permisos de usuario', + 'MCHAT_PERMISSIONS' => 'Change user’s permissions', 'MCHAT_REFRESHING' => 'Refrescando...', - 'MCHAT_REFRESH_NO' => 'Actualización automatica está apagada', - 'MCHAT_REFRESH_YES' => 'Actualización cada %d segundos', + 'MCHAT_REFRESH_NO' => 'La actualización automática está desactivada', + 'MCHAT_REFRESH_YES' => 'Actualización automática cada %d segundos', 'MCHAT_RESPOND' => 'Responder al usuario', - 'MCHAT_RESET_QUESTION' => '¿Vaciar el area de entrada?', - 'MCHAT_SESSION_OUT' => 'La sesión del Chat a finalizado', - 'MCHAT_SHOW_LIST' => 'Mostrar lista', - 'MCHAT_SECOND' => 'segundo ', - 'MCHAT_SECONDS' => 'segundos ', + 'MCHAT_RESET_QUESTION' => '¿Limpiar el área de entrada?', + 'MCHAT_SESSION_OUT' => 'La sesión de Chat ha expirado', + 'MCHAT_SHOW_LIST' => 'Mostrar Lista', + 'MCHAT_SECOND' => 'segundo', + 'MCHAT_SECONDS' => 'segundos', 'MCHAT_SESSION_ENDS' => 'La sesión del Chat finaliza en', 'MCHAT_SMILES' => 'Emoticonos', - 'MCHAT_TOTALMESSAGES' => 'Mensajes en total: %s', - 'MCHAT_USESOUND' => 'Habilitar sonido', - 'MCHAT_ONLINE_USERS_TOTAL' => 'En total hay %d usuarios chateando ', - 'MCHAT_ONLINE_USER_TOTAL' => 'En total hay %d usuario chateando ', - 'MCHAT_NO_CHATTERS' => 'No hay nadie chateando', - 'MCHAT_ONLINE_EXPLAIN' => '( basado en usuarios activos cada %s)', - 'WHO_IS_CHATTING' => 'Quien esta chateando', - 'WHO_IS_REFRESH_EXPLAIN' => 'Refrescando cada %d segundos', - 'MCHAT_NEW_TOPIC' => 'Nuevo Tema', - 'MCHAT_NEW_REPLY' => 'Nueva Respuesta', - 'MCHAT_NEW_QUOTE' => 'Respondió Citando', - 'MCHAT_NEW_EDIT' => 'Editado', + 'MCHAT_TOTALMESSAGES' => 'Mensajes Totales: %s', + 'MCHAT_USESOUND' => '¿Usar sonido?', + 'MCHAT_ONLINE_USERS_TOTAL' => 'En total hay %d usuarios chateando', + 'MCHAT_ONLINE_USER_TOTAL' => 'En total hay %d usuario chateando', + 'MCHAT_NO_CHATTERS' => 'Nadie está charlando', + 'MCHAT_ONLINE_EXPLAIN' => 'basado en usuarios activos en los últimos %s', + 'WHO_IS_CHATTING' => 'Quién está chateando', + 'WHO_IS_REFRESH_EXPLAIN' => 'Se refresca cada %d segundos', + 'MCHAT_NEW_POST' => 'Realizar un nuevo tema', + 'MCHAT_NEW_REPLY' => 'Realizar una nueva respuesta', + 'MCHAT_NEW_QUOTE' => 'Responder citando', + 'MCHAT_NEW_EDIT' => 'Realizar una edición', // UCP 'UCP_PROFILE_MCHAT' => 'Preferencias de mChat', - 'DISPLAY_MCHAT' => 'Mostrar mChat en el índice', - 'SOUND_MCHAT' => 'Activar sonido en mChat', - 'DISPLAY_STATS_INDEX' => 'Mostrar estadisticas de quien esta chateando en la página índice', - 'DISPLAY_NEW_TOPICS' => 'Mostrar nuevos temas en el Chat', - 'DISPLAY_AVATARS' => 'Mostrar avatars en el Chat', + 'DISPLAY_MCHAT' => 'Mostrar mChat en el índice', + 'SOUND_MCHAT' => 'Habilitar sonido en mChat', + 'DISPLAY_STATS_INDEX' => 'Mostrar quién está chateando en el índice', + 'DISPLAY_NEW_TOPICS' => 'Mostrar nuevos temas en el chat', + 'DISPLAY_AVATARS' => 'Mostrar avatares en el chat', 'CHAT_AREA' => 'Tipo de entrada', - 'CHAT_AREA_EXPLAIN' => 'Elija que tipo de área usar en la entrada del Chat:
Un texto de área o
un área de entrada (una línea).', - 'INPUT_AREA' => 'Área de entrada (línea)', - 'TEXT_AREA' => 'Área de texto', + 'CHAT_AREA_EXPLAIN' => 'Elija qué tipo de área va a utilizar para introducir en el chat:
Un área de texto o
un área de entrada', + 'INPUT_AREA' => 'Área de entrada (Input)', + 'TEXT_AREA' => 'Área de texto (Textarea)', 'UCP_CAT_MCHAT' => 'mChat', 'UCP_MCHAT_CONFIG' => 'mChat', // Preferences - 'LOG_MCHAT_TABLE_PRUNED' => 'La tabla de mChat ha sido limpiada', + 'LOG_MCHAT_TABLE_PRUNED' => 'La tabla de mChat ha sido purgada', 'ACP_USER_MCHAT' => 'Ajustes de mChat', 'LOG_DELETED_MCHAT' => 'Mensaje de mChat borrado
» %1$s', 'LOG_EDITED_MCHAT' => 'Mensaje de mChat editado
» %1$s', - 'MCHAT_MESSAGE_LNGTH_EXPLAIN' => 'Caracteres restantes: %d', 'MCHAT_TOP_POSTERS' => 'Top Spammers', - 'MCHAT_NEW_CHAT' => '¡Nuevo mensaje en el Chat!', - 'MCHAT_SEND_PM' => 'Enviar mensaje privado', + 'MCHAT_NEW_CHAT' => '¡Nuevo mensaje de Chat!', + 'MCHAT_SEND_PM' => 'Enviar mensaje privado', // Custom edits - 'REPLY_WITH_LIKE' => 'Me gusta este mensaje', + 'REPLY_WITH_LIKE' => 'Me Gusta este mensaje', )); diff --git a/language/es/info_acp_mchat.php b/language/es/info_acp_mchat.php index 86b044f..1c58f19 100644 --- a/language/es/info_acp_mchat.php +++ b/language/es/info_acp_mchat.php @@ -37,132 +37,134 @@ $lang = array_merge($lang, array( 'ACP_MCHAT_CONFIG' => 'Configuración', 'ACP_CAT_MCHAT' => 'mChat', 'ACP_MCHAT_TITLE' => 'Mini-Chat', - 'ACP_MCHAT_TITLE_EXPLAIN' => 'Un mini chat (también conocido como “Caja de texto”) de tu foro', - 'MCHAT_TABLE_DELETED' => 'La tabla mChat ha sido eliminada', - 'MCHAT_TABLE_CREATED' => 'La tabla mChat ha sido creada', - 'MCHAT_TABLE_UPDATED' => 'La tabla mChat ha sido actualizada', - 'MCHAT_NOTHING_TO_UPDATE' => 'Nada que ver... Contunia', + 'ACP_MCHAT_TITLE_EXPLAIN' => 'Un mini chat (aquí “cuadro de charla”) para su foro', + 'MCHAT_TABLE_DELETED' => 'La tabla de mChat ha sido borrada correctamente', + 'MCHAT_TABLE_CREATED' => 'La tabla de mChat ha sido creada correctamente', + 'MCHAT_TABLE_UPDATED' => 'La tabla de mChat ha sido actualizada correctamente', + 'MCHAT_NOTHING_TO_UPDATE' => 'Nada que ver.... Continuar', 'UCP_CAT_MCHAT' => 'Preferencias de mChat', - 'UCP_MCHAT_CONFIG' => 'Preferencias de usuario de mChat', + 'UCP_MCHAT_CONFIG' => 'Preferencias de Usuario de mChat', // ACP entries 'ACP_MCHAT_RULES' => 'Normas', - 'ACP_MCHAT_RULES_EXPLAIN' => 'Introduzca las Normas del foro aquí. Cada normas en una nueva línea.
Esto está limitado a 255 caracteres.
Este mensaje puede ser traducido. (hay que editar el archivo mchat_lang.php y lea las instrucciones).', - 'LOG_MCHAT_CONFIG_UPDATE' => 'Actualizada configuración de mChat ', - 'MCHAT_CONFIG_SAVED' => 'La configuración de Mini-Chat se ha actualizado', + 'ACP_MCHAT_RULES_EXPLAIN' => 'Introduzca las normas del foro aquí. Cada norma en una nueva línea.
Está limitado a 255 caracteres.
Este mensaje puede ser traducido. (debe editar el archivo mchat_lang.php y leer las instrucciones).', + 'LOG_MCHAT_CONFIG_UPDATE' => 'Updated mChat config ', + 'MCHAT_CONFIG_SAVED' => 'La configuración de Mini Chat ha sido actualizada', 'MCHAT_TITLE' => 'Mini-Chat', 'MCHAT_VERSION' => 'Versión:', - 'MCHAT_ENABLE' => 'Habilitar mChat MOD', - 'MCHAT_ENABLE_EXPLAIN' => 'Activar o desactivar el mod a nivel global.', - 'MCHAT_AVATARS' => 'Mostrar avatars', - 'MCHAT_AVATARS_EXPLAIN' => 'Si lo marca como si, los avatars serán mostrados a modo pequeño', - 'MCHAT_ON_INDEX' => 'mChat en el Index', - 'MCHAT_ON_INDEX_EXPLAIN' => 'Permitir la visualización de la mChat en la página prncipal.', - 'MCHAT_INDEX_HEIGHT' => 'Altura de la página índice', - 'MCHAT_INDEX_HEIGHT_EXPLAIN' => 'La altura del cuadro de charla en pixels en la página índice del foro.
Está limitado de 50 a 1000.', - 'MCHAT_LOCATION' => 'Ubicación en el Foro', - 'MCHAT_LOCATION_EXPLAIN' => 'Elegir la ubicación de mChat en la página prncipal.', - 'MCHAT_TOP_OF_FORUM' => 'Inicio del Foro', - 'MCHAT_BOTTOM_OF_FORUM' => 'Parte inferior del Foro', + 'MCHAT_AVATARS' => 'Mostrar avatares', + 'MCHAT_AVATARS_EXPLAIN' => 'Si se establece en Si, se mostrarán los avatares redimensionados de los usuarios', + 'MCHAT_ON_INDEX' => 'mChat en el índice', + 'MCHAT_ON_INDEX_EXPLAIN' => 'Permite mostrar el mChat en la página índice.', + 'MCHAT_INDEX_HEIGHT' => 'Altura en la página índice', + 'MCHAT_INDEX_HEIGHT_EXPLAIN' => 'La altura de la ventana del chat en píxeles en la página índice del foro.
Está limitado de 50 a 1000.', + 'MCHAT_LOCATION' => 'Ubicación en el foro', + 'MCHAT_LOCATION_EXPLAIN' => 'Elija la ubicación del mChat en la página índice.', + 'MCHAT_TOP_OF_FORUM' => 'Encima del foro', + 'MCHAT_BOTTOM_OF_FORUM' => 'Debajo del foro', 'MCHAT_REFRESH' => 'Refrescar', - 'MCHAT_REFRESH_EXPLAIN' => 'Número de segundos antes de que el chat se actualice automáticamente. No ponga menos de 5 segundos.', - 'MCHAT_PRUNE' => 'Habilitar purga', - 'MCHAT_PRUNE_EXPLAIN' => 'Se pone en SI para permitir la función purgar.
Sólo ocurre si un usuario visita habitualmente las páginas de archivo.', - 'MCHAT_PRUNE_NUM' => 'Numero de purga', - 'MCHAT_PRUNE_NUM_EXPLAIN' => 'El número de mensajes de retener en el chat.', - 'MCHAT_MESSAGE_LIMIT' => 'Limite de mensajes', - 'MCHAT_MESSAGE_LIMIT_EXPLAIN' => 'El número máximo de mensajes que se muestran en la página principal del foro.
Recomendado de 10 a 20.', - 'MCHAT_MESSAGE_NUM' => 'Límite de mensajes de la página Índice', - 'MCHAT_MESSAGE_NUM_EXPLAIN' => 'El número máximo de mensajes a mostrar en el area del Chat en la página índice.
Recomendado de 10 a 50.', - 'MCHAT_ARCHIVE_LIMIT' => 'Limite del Archivo', - 'MCHAT_ARCHIVE_LIMIT_EXPLAIN' => 'El número máximo de mensajes que se muestran en la página de Archivo.
Recomendado de 25 a 50.', - 'MCHAT_FLOOD_TIME' => 'Tiempo límite', - 'MCHAT_FLOOD_TIME_EXPLAIN' => 'El número de segundos que un usuario debe esperar antes de enviar otro mensaje en el chat.
Recomendado de 5 a 30, establece en 0 para deshabilitar.', - 'MCHAT_MAX_MESSAGE_LENGTH' => 'Máxima longitud del mensaje', - 'MCHAT_MAX_MESSAGE_LENGTH_EXPLAIN' => 'Número máximo de caracteres permitidos por mensaje enviado.
Recomendado de 100 a 500, establece en 0 para deshabilitar.', - 'MCHAT_CUSTOM_PAGE' => 'Página personalizada', - 'MCHAT_CUSTOM_PAGE_EXPLAIN' => 'Permitir el uso de la página personalizada.', - 'MCHAT_CUSTOM_HEIGHT' => 'Altura de página personalizada', - 'MCHAT_CUSTOM_HEIGHT_EXPLAIN' => 'La altura del cuadro de charla en pixels en la página por separado de mChat.
Está limitado de 50 a 1000.', + 'MCHAT_REFRESH_EXPLAIN' => 'Número de segundos antes de que el chat se actualice automáticamente.
Está limitado de 5 a 60 segundos.', + 'MCHAT_LIVE_UPDATES' => 'Actualizar en tiempo real los mensajes editados y eliminados', + 'MCHAT_LIVE_UPDATES_EXPLAIN' => 'Cuando un usuario edita o elimina los mensajes, los cambios se actualizan en vivo para todos los demás, sin que tengan que actualizar la página. Desactive esta opción si experimenta problemas de rendimiento.', + 'MCHAT_PRUNE' => 'Habilitar la limpieza (purga)', + 'MCHAT_PRUNE_EXPLAIN' => 'Establezca esto en Si, para activar la función de limpieza (purga).
Sólo se produce si un usuario visita páginas personalizadas o archivo.', + 'MCHAT_PRUNE_NUM' => 'Número de limpieza (purga)', + 'MCHAT_PRUNE_NUM_EXPLAIN' => 'El número de mensajes a retener en el chat.', + 'MCHAT_MESSAGE_LIMIT' => 'Límite de mensajes', + 'MCHAT_MESSAGE_LIMIT_EXPLAIN' => 'El número máximo de mensajes que se muestran en el área de chat.
Recomendado de 10 a 30.', + 'MCHAT_MESSAGE_NUM' => 'Límite de mensajes en la página índice', + 'MCHAT_MESSAGE_NUM_EXPLAIN' => 'El número máximo de mensajes que se muestran en el área de chat en la página índice.
Recomendado de 10 a 50.', + 'MCHAT_ARCHIVE_LIMIT' => 'Límite del archivo', + 'MCHAT_ARCHIVE_LIMIT_EXPLAIN' => 'El número máximo de mensajes a mostrar por página en la página del archivo.
Recomendado de 25 a 50.', + 'MCHAT_FLOOD_TIME' => 'Tiempo de flujo', + 'MCHAT_FLOOD_TIME_EXPLAIN' => 'El número de segundos que un usuario debe esperar antes de poder enviar otro mensaje en el chat.
Recomendado de 5 a 30, establezca esto en 0 para deshabilitar.', + 'MCHAT_EDIT_DELETE_LIMIT' => 'Tiempo límite para la edición de mensajes y su borrado', + 'MCHAT_EDIT_DELETE_LIMIT_EXPLAIN' => 'Los mensajes que superen el número de segundos especificado, no podrán ser editados o borrados por el autor tras dicho tiempo.
Los usuarios que tienen el permiso de editar/borrar, así como permiso de Moderador están exentos de este tiempo límite.
Establezca en 0 para permitir la edición y el borrado sin límite.', + 'MCHAT_MAX_MESSAGE_LENGTH' => 'Longitud máxima del mensaje', + 'MCHAT_MAX_MESSAGE_LENGTH_EXPLAIN' => 'Número máximo de caracteres permitidos por cada mensaje publicado.
Recomendado de 100 a 500, establezca esto en 0 para deshabilitar.', + 'MCHAT_CUSTOM_PAGE' => 'Página personalizada', + 'MCHAT_CUSTOM_PAGE_EXPLAIN' => 'Permitir el uso de página personalizada', + 'MCHAT_CUSTOM_HEIGHT' => 'Altura de la página personalizado', + 'MCHAT_CUSTOM_HEIGHT_EXPLAIN' => 'La altura de la ventana del chat en píxeles en la página separada de mChat.
Está límitado de 50 a 1000.', 'MCHAT_DATE_FORMAT' => 'Formato de fecha', - 'MCHAT_DATE_FORMAT_EXPLAIN' => 'La sintaxis usada es idéntica a la versión de ña función PHP date().', - 'MCHAT_CUSTOM_DATEFORMAT' => 'Personalizar...', - 'MCHAT_WHOIS' => 'Quienes', - 'MCHAT_WHOIS_EXPLAIN' => 'Permitir una visualización de los usuarios que están chateando.', - 'MCHAT_WHOIS_REFRESH' => 'Actualizar Quienes', - 'MCHAT_WHOIS_REFRESH_EXPLAIN' => 'Número de segundos antes de que actualiza las estadísticas Quienes.
No ponga menos de 30 segundos.', - 'MCHAT_BBCODES_DISALLOWED' => 'Deshabilitar BBCodes', - 'MCHAT_BBCODES_DISALLOWED_EXPLAIN' => 'Aquí puede introducir el tipo de bbcode que no se van a utilizar en un mensaje.
Separar BBcodes con una barra vertical, por ejemplo: b|u|code', - 'MCHAT_STATIC_MESSAGE' => 'Mensaje estatico', - 'MCHAT_STATIC_MESSAGE_EXPLAIN' => 'Aquí puede definir un mensaje estatico que se mostrara a los usuarios en el chat.
Dejelo vacio para desactivarlo. Está limitado a 255 caracteres.
Este mensaje puede ser traducido. (solo necesita editar el archivo mchat_lang.php y leer las instrucciones).', + 'MCHAT_DATE_FORMAT_EXPLAIN' => 'La sintaxis utilizada es idéntica a la función de PHP date().', + 'MCHAT_CUSTOM_DATEFORMAT' => 'Personalizada…', + 'MCHAT_WHOIS' => 'Quién es', + 'MCHAT_WHOIS_EXPLAIN' => 'Allow a display of users who are chatting', + 'MCHAT_WHOIS_REFRESH' => 'Refrescar Quien es', + 'MCHAT_WHOIS_REFRESH_EXPLAIN' => 'Number of seconds before whois stats refreshes.
Está límitado de 30 a 300 segundos.', + 'MCHAT_BBCODES_DISALLOWED' => 'BBCodes deshabilitados', + 'MCHAT_BBCODES_DISALLOWED_EXPLAIN' => 'Aquí puede introducir los BBCodes que no se pueden usar en los mensajes.
Separar los BBCodes con una barra vertical, por ejemplo:
b|i|u|code|list|list=|flash|quote y/o un %snombre de etiqueta de BBCode personalizado%s', + 'MCHAT_STATIC_MESSAGE' => 'Mensaje estático', + 'MCHAT_STATIC_MESSAGE_EXPLAIN' => 'Aquí puede definir un mensaje estático para mostrar a los usuarios de la chat. Código HTML está permitido.
Deje esto en blanco para deshabilitar esto. Está límitado a 255 caracteres.
Este mensaje puede ser traducido. (debe editar el archivo mchat_lang.php y leer las instrucciones).', 'MCHAT_USER_TIMEOUT' => 'Tiempo de espera del usuario', - 'MCHAT_USER_TIMEOUT_EXPLAIN' => 'Ajuste una cantidad de tiempo, en segundos, hasta que la sesión del usuario del chat finalice. Ponga 0 para no tener tiempo de espera.
Está limitado a %sAjustes de configuración de sesiones del foro%s que actualmente está en %s segundos', - 'MCHAT_OVERRIDE_SMILIE_LIMIT' => 'Reemplazar límite de emoticonos', - 'MCHAT_OVERRIDE_SMILIE_LIMIT_EXPLAIN' => 'Poner en Si, para reemplazar el ajuste del limite de emoticonos de los foros para los mensajes del chat', - 'MCHAT_OVERRIDE_MIN_POST_CHARS' => 'Reemplazar límite de caracteres minimos', - 'MCHAT_OVERRIDE_MIN_POST_CHARS_EXPLAIN' => 'Poner Si, para sobrescribir los ajustes de caracteres minimos del foro, en los mensajes del chat', - 'MCHAT_NEW_POSTS' => 'Mostrar nuevos mensajes', - 'MCHAT_NEW_POSTS_EXPLAIN' => 'Poner Si, para permitir nuevos mensajes del foro en el area de mensajes del chat.', - 'MCHAT_NEW_POSTS_TOPIC' => 'Mostrar nuevos mensajes en temas', - 'MCHAT_NEW_POSTS_TOPIC_EXPLAIN' => 'Poner Si, para permitir nuevos mensajes en temas del foro en el area de mensajes del chat.', - 'MCHAT_NEW_POSTS_REPLY' => 'Mostrar nuevos mensajes respondidos', - 'MCHAT_NEW_POSTS_REPLY_EXPLAIN' => 'Poner Si, para permitir nuevos mensajes respondidos del foro en el area de mensajes del chat.', + 'MCHAT_USER_TIMEOUT_EXPLAIN' => 'Establezca la cantidad de tiempo, en segundos, hasta que una sesión de usuario en el chat termina. Se establece en 0 para que no haya tiempo de espera.
Está límitado a %sconfiguración de sesiones del foro%s que está actualmente en %s segundos', + 'MCHAT_OVERRIDE_SMILIE_LIMIT' => 'Anular límite de emoticonos', + 'MCHAT_OVERRIDE_SMILIE_LIMIT_EXPLAIN' => 'Establezca en Sí, para anular el ajustes del límite de emoticonos en los foros, para mensajes del chat', + 'MCHAT_OVERRIDE_MIN_POST_CHARS' => 'Anular límite mínimo caracteres', + 'MCHAT_OVERRIDE_MIN_POST_CHARS_EXPLAIN' => 'Establezca en Sí, para anular el ajustes del límite mínimo de caracteres en los foros, para mensajes del chat', + 'MCHAT_NEW_POSTS' => 'Habilitar mostrar mensajes', + 'MCHAT_NEW_POSTS_EXPLAIN' => 'Establezca en Si, y podrá establecer debajo las opciones de cuál es el mensaje que se mostrará en el área de mensajes del chat.', + 'MCHAT_NEW_POSTS_TOPIC' => 'Mostrar mensaje de Nuevo Tema', + 'MCHAT_NEW_POSTS_TOPIC_EXPLAIN' => 'Establezca en Sí, para permitir que los nuevos temas del foro puedan ser publicados en el área de mensajes del chat.', + 'MCHAT_NEW_POSTS_REPLY' => 'Mostrar mensaje de Nueva Respuesta', + 'MCHAT_NEW_POSTS_REPLY_EXPLAIN' => 'Establezca en Sí, para permitir que las respuestas de mensajes del foro puedan ser publicadas en el área de mensajes del chat.', 'MCHAT_NEW_POSTS_EDIT' => 'Mostrar mensajes editados', - 'MCHAT_NEW_POSTS_EDIT_EXPLAIN' => 'Poner Si, para permitir mensajes editados del foro en el area de mensajes del chat.', + 'MCHAT_NEW_POSTS_EDIT_EXPLAIN' => 'Establezca en Sí, para permitir que los mensajes editados desde el foro sean publicados en el área de mensajes del chat.', 'MCHAT_NEW_POSTS_QUOTE' => 'Mostrar mensajes citados', - 'MCHAT_NEW_POSTS_QUOTE_EXPLAIN' => 'Poner Si, para permitir mensajes citados del foro en el area de mensajes del chat.', + 'MCHAT_NEW_POSTS_QUOTE_EXPLAIN' => 'Establezca en Sí, para permitir que los mensajes citados del foro sean publicados en el área de mensajes del chat.', 'MCHAT_MAIN' => 'Configuración principal', - 'MCHAT_STATS' => 'Quien esta chateando', - 'MCHAT_STATS_INDEX' => 'Estadisticas en el índice', - 'MCHAT_STATS_INDEX_EXPLAIN' => 'Muestar quien esta chateando en la sección de estadisticas del foro', - 'MCHAT_MESSAGE_TOP' => 'Mantenga el mensaje en la parte inferior/superior', - 'MCHAT_MESSAGE_TOP_EXPLAIN' => 'Esta publicará el mensaje en la parte inferior o superior del área de mensajes del chat.', - 'MCHAT_BOTTOM' => 'Abajo', - 'MCHAT_TOP' => 'Arriba', + 'MCHAT_STATS' => 'Quién está chateando', + 'MCHAT_STATS_INDEX' => 'Estadísticas en el Índice', + 'MCHAT_STATS_INDEX_EXPLAIN' => 'Mostrar quién está chateando en la sección de estadísticas del foro', + 'MCHAT_MESSAGE_TOP' => 'Mantener mensaje Debajo / Encima', + 'MCHAT_MESSAGE_TOP_EXPLAIN' => 'Esta publicará el mensaje en la parte inferior o superior en el área de mensajes del chat', + 'MCHAT_BOTTOM' => 'Debajo', + 'MCHAT_TOP' => 'Encima', 'MCHAT_MESSAGES' => 'Ajustes de mensaje', 'MCHAT_PAUSE_ON_INPUT' => 'Pausa en la entrada', - 'MCHAT_PAUSE_ON_INPUT_EXPLAIN' => 'Si pone Si, el chat no se actualizara automaticamente hasta que el usuario introduzca un mensaje', + 'MCHAT_PAUSE_ON_INPUT_EXPLAIN' => 'Si se establece en Si, el chat no actualizará automáticamente a un usuario al introducir un mensaje en el área de entrada', // Error reporting - 'TOO_LONG_DATE' => 'El formato de fecha que ha entrado es demasiado largo.', - 'TOO_SHORT_DATE' => 'El formato de fecha que ha introducido es demasiado corto.', - 'TOO_SMALL_REFRESH' => 'El valor de refresco es demasiado corto.', - 'TOO_LARGE_REFRESH' => 'El valor de refresco es demasiado largo.', - 'TOO_SMALL_MESSAGE_LIMIT' => 'El valor límite de mensajes es demasiado corto.', - 'TOO_LARGE_MESSAGE_LIMIT' => 'El valor límite de mensajes es demasiado largo.', - 'TOO_SMALL_ARCHIVE_LIMIT' => 'El valor límite de archivo es demasiado corto.', - 'TOO_LARGE_ARCHIVE_LIMIT' => 'El valor límite de archivo es demasiado largo.', - 'TOO_SMALL_FLOOD_TIME' => 'El valor de tiempo limite es demasiado corto.', - 'TOO_LARGE_FLOOD_TIME' => 'El valor de tiempo limite es demasiado largo.', - 'TOO_SMALL_MAX_MESSAGE_LNGTH' => 'El máximo valor de longitud de cada mensaje demasiado corto.', - 'TOO_LARGE_MAX_MESSAGE_LNGTH' => 'El máximo valor de longitud de cada mensaje demasiado largo.', - 'TOO_SMALL_MAX_WORDS_LNGTH' => 'El valor máximo de palabras es demasiado corto.', - 'TOO_LARGE_MAX_WORDS_LNGTH' => 'El valor máximo de palabras es demasiado largo.', - 'TOO_SMALL_WHOIS_REFRESH' => 'El valor de refresco de whois es demasiado corto.', - 'TOO_LARGE_WHOIS_REFRESH' => 'El valor de refresco de whois es demasiado largo.', - 'TOO_SMALL_INDEX_HEIGHT' => 'El valor de la altura del índice es demasiado corto.', - 'TOO_LARGE_INDEX_HEIGHT' => 'El valor de la altura del índice es demasiado largo.', - 'TOO_SMALL_CUSTOM_HEIGHT' => 'El valor de la altura personalizada es demasiado corto.', - 'TOO_LARGE_CUSTOM_HEIGHT' => 'El valor de la altura personalizada es demasiado largo.', - 'TOO_SHORT_STATIC_MESSAGE' => 'El valor del mensaje estatico es demasiado corto.', - 'TOO_LONG_STATIC_MESSAGE' => 'El valor del mensaje estatico es demasiado largo.', - 'TOO_SMALL_TIMEOUT' => 'El valor de tiempo de espera del usuario es demasiado corto.', - 'TOO_LARGE_TIMEOUT' => 'El valor de tiempo de espera del usuario es demasiado largo.', + 'TOO_LONG_DATE' => 'El formato de la fecha que ha escrito es demasiado largo.', + 'TOO_SHORT_DATE' => 'El formato de la fecha que ha escrito es demasiado corto.', + 'TOO_SMALL_REFRESH' => 'El valor de actualización es demasiado pequeño.', + 'TOO_LARGE_REFRESH' => 'El valor de actualización es demasiado grande.', + 'TOO_SMALL_MESSAGE_LIMIT' => 'El valor límite de mensajes es demasiado pequeño.', + 'TOO_LARGE_MESSAGE_LIMIT' => 'El valor límite de mensajes es demasiado grande.', + 'TOO_SMALL_ARCHIVE_LIMIT' => 'El valor límite de archivo es demasiado pequeño.', + 'TOO_LARGE_ARCHIVE_LIMIT' => 'El valor límite de archivo es demasiado grande.', + 'TOO_SMALL_FLOOD_TIME' => 'El valor de tiempo de flujo es demasiado pequeño.', + 'TOO_LARGE_FLOOD_TIME' => 'El valor de tiempo de flujo es demasiado grande.', + 'TOO_SMALL_MAX_MESSAGE_LNGTH' => 'El valor de longitud máxima de mensaje es demasiado pequeño.', + 'TOO_LARGE_MAX_MESSAGE_LNGTH' => 'El valor de longitud máxima de mensaje es demasiado grande.', + 'TOO_SMALL_MAX_WORDS_LNGTH' => 'El valor de la longitud de palabras máximas es demasiado pequeño.', + 'TOO_LARGE_MAX_WORDS_LNGTH' => 'El valor de la longitud de palabras máximas es demasiado grande.', + 'TOO_SMALL_WHOIS_REFRESH' => 'El valor de refresco whois es demasiado pequeño.', + 'TOO_LARGE_WHOIS_REFRESH' => 'El valor de refresco whois es demasiado grande.', + 'TOO_SMALL_INDEX_HEIGHT' => 'El valor de la altura de índice es demasiado pequeño.', + 'TOO_LARGE_INDEX_HEIGHT' => 'El valor de la altura de índice es demasiado grande.', + 'TOO_SMALL_CUSTOM_HEIGHT' => 'El valor de altura a medida es demasiado pequeña.', + 'TOO_LARGE_CUSTOM_HEIGHT' => 'El valor de altura a medida es demasiado grande.', + 'TOO_SHORT_STATIC_MESSAGE' => 'El valor de mensaje estático es demasiado corto.', + 'TOO_LONG_STATIC_MESSAGE' => 'El valor de mensaje estático es demasiado largo.', + 'TOO_SMALL_TIMEOUT' => 'El valor de tiempo de espera del usuario es demasiado pequeño.', + 'TOO_LARGE_TIMEOUT' => 'El valor de tiempo de espera del usuario es demasiado grande.', // User perms 'ACL_U_MCHAT_USE' => 'Puede usar mChat', 'ACL_U_MCHAT_VIEW' => 'Puede ver mChat', - 'ACL_U_MCHAT_EDIT' => 'Puede editar mensajes en mChat', - 'ACL_U_MCHAT_DELETE' => 'Puede borrar mensajes en mChat', - 'ACL_U_MCHAT_IP' => 'Puede ver direcciones IP en mChat', - 'ACL_U_MCHAT_PM' => 'Puede usar mensajes privados en mChat', - 'ACL_U_MCHAT_LIKE' => 'Puede usar, me gusta el mensaje en mChat', - 'ACL_U_MCHAT_QUOTE' => 'Puede citar mensajes en mChat', - 'ACL_U_MCHAT_FLOOD_IGNORE' => 'Puede ignorar tiempo limite de mChat', - 'ACL_U_MCHAT_ARCHIVE' => 'Puede ver el Archivo de mChat', - 'ACL_U_MCHAT_BBCODE' => 'Puede usar BBCodes en mChat', - 'ACL_U_MCHAT_SMILIES' => 'Puede usar emoticonos en mChat', - 'ACL_U_MCHAT_URLS' => 'Puede poner URLs en mChat', + 'ACL_U_MCHAT_EDIT' => 'Puede editar mensajes', + 'ACL_U_MCHAT_DELETE' => 'Puede borrar mensajes', + 'ACL_U_MCHAT_IP' => 'Puede ver direcciones IP', + 'ACL_U_MCHAT_PM' => 'Puede usar mensajes privados', + 'ACL_U_MCHAT_LIKE' => 'Puede usar Me Gusta en los mensajes', + 'ACL_U_MCHAT_QUOTE' => 'Puede usar citar un mensajee', + 'ACL_U_MCHAT_FLOOD_IGNORE' => 'Puede ignorar el flujo', + 'ACL_U_MCHAT_ARCHIVE' => 'Puede ver el archivo', + 'ACL_U_MCHAT_BBCODE' => 'Puede usar BBCode', + 'ACL_U_MCHAT_SMILIES' => 'Puede usar emoticonos', + 'ACL_U_MCHAT_URLS' => 'Puede publicar URLs', // Admin perms 'ACL_A_MCHAT' => 'Puede gestionar los ajustes de mChat', diff --git a/language/et/common.php b/language/et/common.php deleted file mode 100644 index 60a1e38..0000000 --- a/language/et/common.php +++ /dev/null @@ -1,128 +0,0 @@ - 'Mini Jututuba', - 'MCHAT_ADD' => 'Saada', - 'MCHAT_IN' => '', - 'MCHAT_IN_SECTION' => 'osa', - 'MCHAT_LIKES' => 'Postitus meeldib', - 'MCHAT_ANNOUNCEMENT' => 'Teadaanne', - 'MCHAT_ARCHIVE' => 'Arhiiv', - 'MCHAT_ARCHIVE_PAGE' => 'Mini Jututoa arhiiv', - 'MCHAT_BBCODES' => 'BBkoodid', - 'MCHAT_CLEAN' => 'Puhasta', - 'MCHAT_CLEANED' => 'Kõik sõnumid on edukalt eemaldatud', - 'MCHAT_CLEAR_INPUT' => 'Lähtesta', - 'MCHAT_COPYRIGHT' => 'RMcGirr83 © dmzx', - 'MCHAT_CUSTOM_BBCODES' => 'Kohandatud BBkoodid', - 'MCHAT_DELALLMESS' => 'Eemalda kõik sõnumid?', - 'MCHAT_DELCONFIRM' => 'Kas kinnitad eemaldamise?', - 'MCHAT_DELITE' => 'Kustuta', - 'MCHAT_EDIT' => 'Muuda', - 'MCHAT_EDITINFO' => 'Muuda sõnumit ja vajuta OK', - 'MCHAT_ENABLE' => 'Vabandame, kuid Mini-Jututuba on hetkel kättesaamatu', - 'MCHAT_ERROR' => 'Viga', - 'MCHAT_FLOOD' => 'Sa ei saa postitada oma järgmist postitust nii kiiresti', - 'MCHAT_FOE' => 'See sõnum on tehtud kasutaja %1$s, kes on sinu mustas nimekirjas.', - 'MCHAT_HELP' => 'mChat Reeglid', - 'MCHAT_HIDE_LIST' => 'Peida nimekiri', - 'MCHAT_HOUR' => 'tund ', - 'MCHAT_HOURS' => 'tundi', - 'MCHAT_IP' => 'Kelle IP aadress?', - 'MCHAT_MINUTE' => 'minut ', - 'MCHAT_MINUTES' => 'minutit ', - 'MCHAT_MESS_LONG' => 'Sinu sõnum on liiga pikk.\nPalun vähenda oma sõnum %s sümbolini', - 'MCHAT_NO_CUSTOM_PAGE' => 'mChati kohandatud lehekülg ei ole aktiveeritud hetkel!', - 'MCHAT_NO_RULES' => 'mChat reeglite lehekülg ei ole aktiveeritud hetkel!', - 'MCHAT_NOACCESS' => 'Sul ei ole jututuppa postitamiseks õigusi', - 'MCHAT_NOACCESS_ARCHIVE' => 'Sul ei ole jututoa arhiivi vaatamiseks õigusi', - 'MCHAT_NOJAVASCRIPT' => 'Sinu veebilehitseja ei toeta JavaScripti või JavaScript on keelatud', - 'MCHAT_NOMESSAGE' => 'Pole ühtegi sõnumit', - 'MCHAT_NOMESSAGEINPUT' => 'Sa ei sisestanud sõnumit', - 'MCHAT_NOSMILE' => 'Emotikone ei leitud', - 'MCHAT_NOTINSTALLED_USER' => 'mChat ei ole paigaldatud. Palun teavita sellest foorumi administraatorit.', - 'MCHAT_NOT_INSTALLED' => 'mChati andmebaasi sissekanded puuduvad.
Palun käivita %spaigaldaja%s, et teha andmebaasi muudatused antud laiendusele.', - 'MCHAT_OK' => 'OK', - 'MCHAT_PAUSE' => 'Peatatud', - 'MCHAT_LOAD' => 'Laadin', - 'MCHAT_PERMISSIONS' => 'Muuda kasutaja õigusi', - 'MCHAT_REFRESHING' => 'Värskendan...', - 'MCHAT_REFRESH_NO' => 'Automaatne uuendamine on väljas', - 'MCHAT_REFRESH_YES' => 'Automaatne uuendamine iga %d sekundi tagant', - 'MCHAT_RESPOND' => 'Vasta kasutajale', - 'MCHAT_RESET_QUESTION' => 'Puhasta tekstiväli?', - 'MCHAT_SESSION_OUT' => 'Jututoa sessioon on aegunud', - 'MCHAT_SHOW_LIST' => 'Näita nimekirja', - 'MCHAT_SECOND' => 'sekund ', - 'MCHAT_SECONDS' => 'sekundit ', - 'MCHAT_SESSION_ENDS' => 'Jututoa sessioon aegub', - 'MCHAT_SMILES' => 'Emotikonid', - 'MCHAT_TOTALMESSAGES' => 'Sõnumeid kokku: %s', - 'MCHAT_USESOUND' => 'Heli?', - 'MCHAT_ONLINE_USERS_TOTAL' => 'Kokku on %d kasutajat jututoas ', - 'MCHAT_ONLINE_USER_TOTAL' => 'Kokku on %d kasutaja jututoas ', - 'MCHAT_NO_CHATTERS' => 'Kedagi ei ole jututoas', - 'MCHAT_ONLINE_EXPLAIN' => 'põhineb viimase %s minuti aktiivsetel kasutajatel', - 'WHO_IS_CHATTING' => 'Kes on jututoas', - 'WHO_IS_REFRESH_EXPLAIN' => 'Värskendatakse iga %d sekundi tagant', - 'MCHAT_NEW_TOPIC' => 'Tegi uue teema', - 'MCHAT_NEW_REPLY' => 'Tegi uue vastuse', - 'MCHAT_NEW_QUOTE' => 'Vastas tsiteeringuga', - 'MCHAT_NEW_EDIT' => 'Tegi muudatuse', - - // UCP - 'UCP_PROFILE_MCHAT' => 'mChat eelistused', - 'DISPLAY_MCHAT' => 'Näita mChat esilehel', - 'SOUND_MCHAT' => 'Luba mChati heli', - 'DISPLAY_STATS_INDEX' => 'Näita "Kes on jututoas" statistikat esilehel', - 'DISPLAY_NEW_TOPICS' => 'Näita uusi teemasi jututoas', - 'DISPLAY_AVATARS' => 'Näita avatare jututoas', - 'CHAT_AREA' => 'Sisendi tüüp', - 'CHAT_AREA_EXPLAIN' => 'Vali, millist tüüpi ala soovid kastutada teksti sisestamiseks jutukasse:
Teksti ala või
sisend ala', - 'INPUT_AREA' => 'Sisend ala', - 'TEXT_AREA' => 'Teksti ala', - 'UCP_CAT_MCHAT' => 'mChat', - 'UCP_MCHAT_CONFIG' => 'mChat', - - // Preferences - 'LOG_MCHAT_TABLE_PRUNED' => 'mChat tabel on kärbitud', - 'ACP_USER_MCHAT' => 'mChat seaded', - 'LOG_DELETED_MCHAT' => 'Kustutatud mChatis sõnum
» %1$s', - 'LOG_EDITED_MCHAT' => 'Muudetud mChatis sõnumit
» %1$s', - 'MCHAT_MESSAGE_LNGTH_EXPLAIN' => 'Sümboleid jäänud: %d', - 'MCHAT_TOP_POSTERS' => 'Rämpspostitajate TOP', - 'MCHAT_NEW_CHAT' => 'Uus sõnum jututoas!', - 'MCHAT_SEND_PM' => 'Saada privaatsõnum', - - // Custom edits - 'REPLY_WITH_LIKE' => 'Asjalik postitus', -)); diff --git a/language/et/info_acp_mchat.php b/language/et/info_acp_mchat.php deleted file mode 100644 index 6e3ae26..0000000 --- a/language/et/info_acp_mchat.php +++ /dev/null @@ -1,169 +0,0 @@ - 'Seadistus', - 'ACP_CAT_MCHAT' => 'mChat', - 'ACP_MCHAT_TITLE' => 'Mini-jututuba', - 'ACP_MCHAT_TITLE_EXPLAIN' => 'Mini jututuba (aka “shoutbox”) foorumile', - 'MCHAT_TABLE_DELETED' => 'mChat tabel on edukalt kustutatud', - 'MCHAT_TABLE_CREATED' => 'mChat tabel on edukalt loodud', - 'MCHAT_TABLE_UPDATED' => 'mChat tabel on edukalt uuendatud', - 'MCHAT_NOTHING_TO_UPDATE' => 'Pole midagi teha....jätkan', - 'UCP_CAT_MCHAT' => 'mChat seaded', - 'UCP_MCHAT_CONFIG' => 'Liikme mChat seaded', - - // ACP entries => AJP lehekülg - 'ACP_MCHAT_RULES' => 'Reeglid', - 'ACP_MCHAT_RULES_EXPLAIN' => 'Sisesta siia oma foorumi jututoa reeglid.
Oled piiratud kirjutama kuni 255 sümbolit.
Kui soovid keelata selle funktsiooni, siis jäta see väli tühjaks.
Seda sõnumit on võimalik tõlkida. (Pead muutma faili mchat_lang.php ja loe juhendit).', - 'LOG_MCHAT_CONFIG_UPDATE' => 'mChat konfiguratsioon uuendatud ', - 'MCHAT_CONFIG_SAVED' => 'Mini-Jututoa konfiguratsioon on uuendatud', - 'MCHAT_TITLE' => 'Mini-jututuba', - 'MCHAT_VERSION' => 'Versioon:', - 'MCHAT_ENABLE' => 'Luba mChat laiendus', - 'MCHAT_ENABLE_EXPLAIN' => 'Luba või keela antud laiendus.', - 'MCHAT_AVATARS' => 'Näita avatare', - 'MCHAT_AVATARS_EXPLAIN' => 'Kui valitud jah, siis liikmete avatare näidatakse', - 'MCHAT_ON_INDEX' => 'mChat esilehel', - 'MCHAT_ON_INDEX_EXPLAIN' => 'Luba näidatata mChat jututuba foorumi esilehel.', - 'MCHAT_INDEX_HEIGHT' => 'Esilehe kõrgus', - 'MCHAT_INDEX_HEIGHT_EXPLAIN' => 'mChat jututoa kasti kõrgus pikslites foorumi esilehel.
Sa oled piiratud 50 kuni 1000.', - 'MCHAT_LOCATION' => 'Asukoht foorumil', - 'MCHAT_LOCATION_EXPLAIN' => 'Vali mChat jututuba asukoht foorumi esilehel.', - 'MCHAT_TOP_OF_FORUM' => 'Üleval', - 'MCHAT_BOTTOM_OF_FORUM' => 'All', - 'MCHAT_REFRESH' => 'Värskenda', - 'MCHAT_REFRESH_EXPLAIN' => 'Kui mitme sekundi tagant jututuba automaatselt värskendab sõnumeid.
Sa oled piiratud 5 kuni 60 sekundiga.', - 'MCHAT_PRUNE' => 'Luba kärped', - 'MCHAT_PRUNE_EXPLAIN' => 'Seadista jah, kui soovid lubada kärpimise funktsiooni.
', - 'MCHAT_PRUNE_NUM' => 'Kärpimise number', - 'MCHAT_PRUNE_NUM_EXPLAIN' => 'Sõnumite arv, mille peaks jututuppa alles jätma.', - 'MCHAT_MESSAGE_LIMIT' => 'Sõnumite limiit', - 'MCHAT_MESSAGE_LIMIT_EXPLAIN' => 'Maksimaalne sõnumite arv, mida näidatakse jututoas.
Soovituslik arv on 10 kuni 30.', - 'MCHAT_MESSAGE_NUM' => 'Esilehe sõnumite limiit', - 'MCHAT_MESSAGE_NUM_EXPLAIN' => 'Maksimaalne sõnumite arv, mida näidatakse esilehel jututoas.
Soovituslik arv on 10 kuni 50.', - 'MCHAT_ARCHIVE_LIMIT' => 'Arhiivi limiit', - 'MCHAT_ARCHIVE_LIMIT_EXPLAIN' => 'Maksimaalne sõnumite arv lehekülje kohta, mida näidatake arhiivis.
Soovituslik arv on 25 kuni 50.', - 'MCHAT_FLOOD_TIME' => 'Postitamise intervalli aeg', - 'MCHAT_FLOOD_TIME_EXPLAIN' => 'Sisesta sekundite arv, mil kasutaja peab enne ootama kui ta saab sisestada järgmist sõnumit jututoas.
Soovituslik piirang on 5 kuni 30, kui soovid keelata selle funktsiooni, siis sisesta väärtuseks 0.', - 'MCHAT_MAX_MESSAGE_LENGTH' => 'Maksimaalne sõnumi pikkus', - 'MCHAT_MAX_MESSAGE_LENGTH_EXPLAIN' => 'Maksimaalne sõnumi pikkus sümbolites, mis on lubatud ühele postitusele jututoas.
Soovituslik piirang on 100 kuni 500 sümbolit, kui soovid keelata selle funktsiooni, siis sisesta väärtuseks 0.', - 'MCHAT_CUSTOM_PAGE' => 'Kohandatud lehekülg', - 'MCHAT_CUSTOM_PAGE_EXPLAIN' => 'Luba kasutada kohandatud lehekülge', - 'MCHAT_CUSTOM_HEIGHT' => 'Kohandatud lehekülje kõrgus', - 'MCHAT_CUSTOM_HEIGHT_EXPLAIN' => 'Jututoa kõrgus pikslites.
Oled piiratud vahemikuga 50 kuni 1000.', - 'MCHAT_DATE_FORMAT' => 'Kuupäeva formaat', - 'MCHAT_DATE_FORMAT_EXPLAIN' => 'Süntaks mis on sarnane PHP date() funktsiooniga.', - 'MCHAT_CUSTOM_DATEFORMAT' => 'Kohandatud…', - 'MCHAT_WHOIS' => 'Kes on', - 'MCHAT_WHOIS_EXPLAIN' => 'Luba näidata kasutajaid, kes on jututoas', - 'MCHAT_WHOIS_REFRESH' => 'Kes on värskendus', - 'MCHAT_WHOIS_REFRESH_EXPLAIN' => 'Sekundid, millal "Kes on" statistikat värskendatakse.
Oled piiratud vahemikuga 30 kuni 300 sekundit.', - 'MCHAT_BBCODES_DISALLOWED' => 'Keelatud BBkoodid', - 'MCHAT_BBCODES_DISALLOWED_EXPLAIN' => 'Siia saad sisestada need BBkoodid, mis EI OLE lubatud kasutada sõnumites.
Eralda BBkoodid vertikaalse ribaga, näiteks:
b|i|u|code|list|list=|flash|quote ja/või %skohandatud BBkoodi märgendi nimi%s', - 'MCHAT_STATIC_MESSAGE' => 'Staatiline sõnum', - 'MCHAT_STATIC_MESSAGE_EXPLAIN' => 'Siia saad sisestada staatilise sõnumi, mida näidatakse kasutajatele jututoas. HTML kood on lubatud.
Kui soovid keelata selle funktsiooni, siis jäta see väli tühjaks. Sa oled piiratud kirjutama teksti kuni 255 sümbolini.
Seda sõnumit on võimalik tõlkida. (pead muutma mchat_lang.php faili, ning loe juhendit).', - 'MCHAT_USER_TIMEOUT' => 'Kasutaja session aegub', - 'MCHAT_USER_TIMEOUT_EXPLAIN' => 'Seadista aeg sekundites, mil kasutaja session jututoas aegub. Kui soovid selle funktsiooni keelata seadista väärtuseks 0.
Sa oled piiratud %sfoorumi seadete sessiooniga%s, mis hetkel on seadistatud %s sekundi peale', - 'MCHAT_OVERRIDE_SMILIE_LIMIT' => 'Kirjuta üle emotikonide limiit', - 'MCHAT_OVERRIDE_SMILIE_LIMIT_EXPLAIN' => 'Vali jah, kui soovid foorumi emotikoni limmiidi mini-jututoa sõnumites üle kirjutada', - 'MCHAT_OVERRIDE_MIN_POST_CHARS' => 'Kirjuta üle sümbolite limiit', - 'MCHAT_OVERRIDE_MIN_POST_CHARS_EXPLAIN' => 'Vali jah, kui soovid kirjutada üle foorumi miinimum sümbolite arvu mini-jututoa sõnumites', - 'MCHAT_NEW_POSTS' => 'Luba näidata postitusi', - 'MCHAT_NEW_POSTS_EXPLAIN' => 'Vali jah, kui soovid seadistada, milliseid postitusi foorumites soovid näidata mini-jututoas.', - 'MCHAT_NEW_POSTS_TOPIC' => 'Näita uusi teemasi', - 'MCHAT_NEW_POSTS_TOPIC_EXPLAIN' => 'Vali jah, kui soovid näidata uusi teemasi foorumites mini-jututoas.', - 'MCHAT_NEW_POSTS_REPLY' => 'Näita uusi vastuseid', - 'MCHAT_NEW_POSTS_REPLY_EXPLAIN' => 'Vali jah, kui soovid näidata uusi vastuseid foorumites teemades mini-jututoas.', - 'MCHAT_NEW_POSTS_EDIT' => 'Näita muudetud postitusi', - 'MCHAT_NEW_POSTS_EDIT_EXPLAIN' => 'Vali jah, kui soovid näidata uusi muudetuid postitusi foorumites mini-jututoas.', - 'MCHAT_NEW_POSTS_QUOTE' => 'Näita tsiteeritud postitusi', - 'MCHAT_NEW_POSTS_QUOTE_EXPLAIN' => 'Vali jah, kui soovid näidata uusi tsiteerituid postitusi foorumites mini-jututoas.', - 'MCHAT_MAIN' => 'Üldine seadistus', - 'MCHAT_STATS' => '"Kes on jututoas"', - 'MCHAT_STATS_INDEX' => 'Statistika esilehel', - 'MCHAT_STATS_INDEX_EXPLAIN' => 'Näita kes on jututoas statistikat', - 'MCHAT_MESSAGE_TOP' => 'Postita sõnumit üles või alla', - 'MCHAT_MESSAGE_TOP_EXPLAIN' => 'See seadistus määrab, kas sõnumit postitatakse üles või alla jututoas.', - 'MCHAT_BOTTOM' => 'Üles', - 'MCHAT_TOP' => 'Alla', - 'MCHAT_MESSAGES' => 'Sõnumi seaded', - 'MCHAT_PAUSE_ON_INPUT' => 'Sõnumi sisestamisel paus', - 'MCHAT_PAUSE_ON_INPUT_EXPLAIN' => 'Valik jah määrab, kas jututoa sõnumeid värskendatakse ajal, mil kasutaja sisestab uut sõnumit tekstiväljal', - - // Error reporting => Vigade teavitus - 'TOO_LONG_DATE' => 'Kuupäeva formaat mille oled sisestanud on liiga pikk.', - 'TOO_SHORT_DATE' => 'Kuupäeva formaat mille oled sisestanud on liiga lühike.', - 'TOO_SMALL_REFRESH' => 'Värskendamise väärtus on liiga väike.', - 'TOO_LARGE_REFRESH' => 'Värskendamise väärtus on liiga suur.', - 'TOO_SMALL_MESSAGE_LIMIT' => 'Sõnumi limiidi väärtus on liiga väike.', - 'TOO_LARGE_MESSAGE_LIMIT' => 'Sõnumi limiidi väärtus on liiga suur.', - 'TOO_SMALL_ARCHIVE_LIMIT' => 'Arhiivi limiidi väärtus on liiga väike.', - 'TOO_LARGE_ARCHIVE_LIMIT' => 'Arhiivi limiidi väärtus on liiga suur.', - 'TOO_SMALL_FLOOD_TIME' => 'Postitamise intervalli aeg on liiga väike.', - 'TOO_LARGE_FLOOD_TIME' => 'Postitamise intervalli aeg on liiga suur.', - 'TOO_SMALL_MAX_MESSAGE_LNGTH' => 'Maksimaalse sõnumi pikkuse väärtus on liiga väike.', - 'TOO_LARGE_MAX_MESSAGE_LNGTH' => 'Maksimaalse sõnumi pikkuse väärtus on liiga suur.', - 'TOO_SMALL_MAX_WORDS_LNGTH' => 'Maksimaalse sõnade arvu pikkuse väärtus on liiga väike.', - 'TOO_LARGE_MAX_WORDS_LNGTH' => 'Maksimaalse sõnade arvu pikkuse väärtus on liiga suur.', - 'TOO_SMALL_WHOIS_REFRESH' => 'Kes on värskenduse väärtus on liiga väike.', - 'TOO_LARGE_WHOIS_REFRESH' => 'Kes on värskenduse väärtus on liiga suur.', - 'TOO_SMALL_INDEX_HEIGHT' => 'Esilehe kõrguse väärtus on liiga väike.', - 'TOO_LARGE_INDEX_HEIGHT' => 'Esilehe kõrguse väärtus on liiga suur.', - 'TOO_SMALL_CUSTOM_HEIGHT' => 'Kohandatud kõrguse väärtus on liiga väike.', - 'TOO_LARGE_CUSTOM_HEIGHT' => 'Kohandatud kõrguse väärtus on liiga suur.', - 'TOO_SHORT_STATIC_MESSAGE' => 'Staatiline sõnum on liiga lühike.', - 'TOO_LONG_STATIC_MESSAGE' => 'Staatiline sõnum on liiga pikk.', - 'TOO_SMALL_TIMEOUT' => 'Kasutaja sessiooni aeg on liiga väike.', - 'TOO_LARGE_TIMEOUT' => 'Kasutaja sessiooni aeg on liiga suur.', - - // User perms => Kasutaja õigused - 'ACL_U_MCHAT_USE' => 'Saab kasutada mChat jututuba', - 'ACL_U_MCHAT_VIEW' => 'Saab vaadata mChat jututuba', - 'ACL_U_MCHAT_EDIT' => 'Saab muuta mChat jututoas sõnumeid', - 'ACL_U_MCHAT_DELETE' => 'Saab kustutada mChat jututoas sõnumeid', - 'ACL_U_MCHAT_IP' => 'Saab vaadata mChat jututoas IP aadresse', - 'ACL_U_MCHAT_PM' => 'Saab kasutada mChat jututoas privaatsõnumi funktsiooni', - 'ACL_U_MCHAT_LIKE' => 'Saab kasutada like message in mchat', - 'ACL_U_MCHAT_QUOTE' => 'Saab kasutada tsiteerimist mChat jututoas', - 'ACL_U_MCHAT_FLOOD_IGNORE' => 'Saab eirata postituste intervalli mChat jututoas', - 'ACL_U_MCHAT_ARCHIVE' => 'Saab vaadata arhiivi mChat jututoas', - 'ACL_U_MCHAT_BBCODE' => 'Saab kasutada BBkoode mChat jututoas', - 'ACL_U_MCHAT_SMILIES' => 'Saab kasutada emotikone mChat jututoas', - 'ACL_U_MCHAT_URLS' => 'Saab postitada URL\'e mChat jututoas', - - // Admin perms => Administraatori õigused - 'ACL_A_MCHAT' => 'Saab hallata mChat seadeid', -)); diff --git a/language/fr/common.php b/language/fr/common.php deleted file mode 100644 index 177ad4b..0000000 --- a/language/fr/common.php +++ /dev/null @@ -1,128 +0,0 @@ - 'Mini-TChat', - 'MCHAT_ADD' => 'Envoyer', - 'MCHAT_IN' => 'dans', - 'MCHAT_IN_SECTION' => '', - 'MCHAT_LIKES' => 'Aime ce message', - 'MCHAT_ANNOUNCEMENT' => 'Annonce', - 'MCHAT_ARCHIVE' => 'Archives', - 'MCHAT_ARCHIVE_PAGE' => 'Archives du mini-tchat', - 'MCHAT_BBCODES' => 'BBCodes', - 'MCHAT_CLEAN' => 'Vider le mini-tchat', - 'MCHAT_CLEANED' => 'Tous les messages ont été supprimés avec succès.', - 'MCHAT_CLEAR_INPUT' => 'Réinitialisation', - 'MCHAT_COPYRIGHT' => 'RMcGirr83 © dmzx', - 'MCHAT_CUSTOM_BBCODES' => 'BBCodes personnalisés', - 'MCHAT_DELALLMESS' => 'Supprimer tous les messages ?', - 'MCHAT_DELCONFIRM' => 'Confirmer la suppression ?', - 'MCHAT_DELITE' => 'Supprimer', - 'MCHAT_EDIT' => 'Éditer', - 'MCHAT_EDITINFO' => 'Éditez le message et cliquez sur OK.', - 'MCHAT_ENABLE' => 'Désolé, le mini-tchat est actuellement indisponible.', - 'MCHAT_ERROR' => 'Erreur', - 'MCHAT_FLOOD' => 'Vous ne pouvez pas poster un autre message si peu de temps après votre dernier message.', - 'MCHAT_FOE' => 'Ce message a été écrit par %1$s qui est actuellement dans votre liste des ignorés.', - 'MCHAT_HELP' => 'Règles du mChat', - 'MCHAT_HIDE_LIST' => 'Masquer la liste', - 'MCHAT_HOUR' => 'heure ', - 'MCHAT_HOURS' => 'heures', - 'MCHAT_IP' => 'Whois', - 'MCHAT_MINUTE' => 'minute ', - 'MCHAT_MINUTES' => 'minutes ', - 'MCHAT_MESS_LONG' => 'Votre message est trop long.\nLimité à %s caractères', - 'MCHAT_NO_CUSTOM_PAGE' => 'La page personnalisée du mChat n’est pas activée en ce moment!', - 'MCHAT_NO_RULES' => 'La page des règles de mChat n’est pas activée!', - 'MCHAT_NOACCESS' => 'Vous n’avez pas les permissions pour poster dans le mini-tchat.', - 'MCHAT_NOACCESS_ARCHIVE' => 'Vous n’avez pas les permissions pour voir les archives.', - 'MCHAT_NOJAVASCRIPT' => 'Votre navigateur ne supporte pas JavaScript ou JavaScript est désactivé.', - 'MCHAT_NOMESSAGE' => 'Aucun message', - 'MCHAT_NOMESSAGEINPUT' => 'Vous n’avez pas saisi de message.', - 'MCHAT_NOSMILE' => 'Aucun smiley n’a été trouvé.', - 'MCHAT_NOTINSTALLED_USER' => 'mChat n’est pas installé. Avertissez un fondateur du forum.', - 'MCHAT_NOT_INSTALLED' => 'La base de données de mChat saisie est introuvable.
Démarrez l’%sinstallation%s pour modifier la base de données du MOD.', - 'MCHAT_OK' => 'OK', - 'MCHAT_PAUSE' => 'En pause', - 'MCHAT_LOAD' => 'Chargement', - 'MCHAT_PERMISSIONS' => 'Modifier les permissions des utilisateurs', - 'MCHAT_REFRESHING' => 'Actualisation...', - 'MCHAT_REFRESH_NO' => 'La mise à jour automatique est désactivée', - 'MCHAT_REFRESH_YES' => 'Actualisation toutes les %d secondes', - 'MCHAT_RESPOND' => 'Répondez à l’utilisateur', - 'MCHAT_RESET_QUESTION' => 'Effacer la zone de saisie ?', - 'MCHAT_SESSION_OUT' => 'La session de tchat a expiré', - 'MCHAT_SHOW_LIST' => 'Afficher la liste', - 'MCHAT_SECOND' => 'seconde ', - 'MCHAT_SECONDS' => 'secondes ', - 'MCHAT_SESSION_ENDS' => 'La session de tchat se termine dans', - 'MCHAT_SMILES' => 'Smileys', - 'MCHAT_TOTALMESSAGES' => 'Total des messages: %s', - 'MCHAT_USESOUND' => 'Utiliser le son?', - 'MCHAT_ONLINE_USERS_TOTAL' => 'Au total, il y a %d utilisateurs qui discutent ', - 'MCHAT_ONLINE_USER_TOTAL' => 'Au total, il y a %d utilisateur qui discute ', - 'MCHAT_NO_CHATTERS' => 'Personne ne tchatte', - 'MCHAT_ONLINE_EXPLAIN' => 'basé sur l’activité des utilisateurs depuis %s', - 'WHO_IS_CHATTING' => 'Qui tchatche ?', - 'WHO_IS_REFRESH_EXPLAIN' => 'Actualisation toutes les %d secondes', - 'MCHAT_NEW_TOPIC' => 'A posté un nouveau sujet', - 'MCHAT_NEW_REPLY' => 'A posté une nouvelle réponse', - 'MCHAT_NEW_QUOTE' => 'A répondu en citant', - 'MCHAT_NEW_EDIT' => 'a modifié', - - // UCP - 'UCP_PROFILE_MCHAT' => 'Préférences du mini-TChat', - 'DISPLAY_MCHAT' => 'Afficher le mini-TChat sur l’accueil', - 'SOUND_MCHAT' => 'Activer le son du mini-TChat.', - 'DISPLAY_STATS_INDEX' => 'Afficher les statistiques de « Qui tchatte ? » sur la page d’index', - 'DISPLAY_NEW_TOPICS' => 'Afficher les nouveaux sujets dans le mini-TChat', - 'DISPLAY_AVATARS' => 'Afficher les avatars dans le mini-TChat.', - 'CHAT_AREA' => 'Type de saisie', - 'CHAT_AREA_EXPLAIN' => 'Choisissez le type de champ à utiliser pour saisir un message :
Une zone de zaisie ou
un champ de saisie', - 'INPUT_AREA' => 'Champ de saisie', - 'TEXT_AREA' => 'Zone de saisie', - 'UCP_CAT_MCHAT' => 'Mini-TChat', - 'UCP_MCHAT_CONFIG' => 'Mini-TCat', - - //Preferences - 'LOG_MCHAT_TABLE_PRUNED' => 'La table du mini-tchat a été délestée', - 'ACP_USER_MCHAT' => 'Paramètres du mini-tchat', - 'LOG_DELETED_MCHAT' => 'Les messages de mchat ont été supprimés
» %1$s', - 'LOG_EDITED_MCHAT' => 'Les messages de mchat ont été édités
» %1$s', - 'MCHAT_MESSAGE_LNGTH_EXPLAIN' => 'Caractères restants: %d', - 'MCHAT_TOP_POSTERS' => 'Top posteurs', - 'MCHAT_NEW_CHAT' => 'Nouveau message dans Mini-tchat!', - 'MCHAT_SEND_PM' => 'Envoyer un message privé', - - // Custom edits - 'REPLY_WITH_LIKE' => 'j’Aime', -)); diff --git a/language/fr/info_acp_mchat.php b/language/fr/info_acp_mchat.php deleted file mode 100644 index 82434a0..0000000 --- a/language/fr/info_acp_mchat.php +++ /dev/null @@ -1,169 +0,0 @@ - 'Configuration', - 'ACP_CAT_MCHAT' => 'mChat', - 'ACP_MCHAT_TITLE' => 'Mini-Chat', - 'ACP_MCHAT_TITLE_EXPLAIN' => 'Un mini-tchat pour votre forum', - 'MCHAT_TABLE_DELETED' => 'La table mChat a été supprimée', - 'MCHAT_TABLE_CREATED' => 'La table mChat a été créée', - 'MCHAT_TABLE_UPDATED' => 'La table mChat a été mise à jour', - 'MCHAT_NOTHING_TO_UPDATE' => 'Rien à faire....poursuivre', - 'UCP_CAT_MCHAT' => 'Préférences de mChat', - 'UCP_MCHAT_CONFIG' => 'Préférences de l’utilisateur de mChat', - - // ACP entries - 'ACP_MCHAT_RULES' => 'Règles', - 'ACP_MCHAT_RULES_EXPLAIN' => 'Saisissez les règles du forum ici. Chaque règle sur une nouvelle ligne.
Vous êtes limité à 255 caractères.
Ce message peut être traduit. (vous devez éditer le fichier mchat_lang.php et saisir les instructions).', - 'LOG_MCHAT_CONFIG_UPDATE' => 'Configuration de mChat mise à jour', - 'MCHAT_CONFIG_SAVED' => 'La configuration du Mini-Chat a été mise à jour.', - 'MCHAT_TITLE' => 'Mini-Chat', - 'MCHAT_VERSION' => 'Version :', - 'MCHAT_ENABLE' => 'Activer l’extension mChat', - 'MCHAT_ENABLE_EXPLAIN' => 'Activer ou désactiver l’extension.', - 'MCHAT_AVATARS' => 'Afficher les avatars', - 'MCHAT_AVATARS_EXPLAIN' => 'Si activé, les avatars redimensionnés des utilisateurs seront affichés.', - 'MCHAT_ON_INDEX' => 'mChat sur l’index', - 'MCHAT_ON_INDEX_EXPLAIN' => 'Permettre l’affichage de mChat sur la page d’index.', - 'MCHAT_INDEX_HEIGHT' => 'Hauteur sur la page d’index', - 'MCHAT_INDEX_HEIGHT_EXPLAIN' => 'La hauteur, en pixels, de mChat sur la page d’index de votre forum.
Vous êtes limité de 50 à 1000 pixels.', - 'MCHAT_LOCATION' => 'Emplacement sur le forum', - 'MCHAT_LOCATION_EXPLAIN' => 'Choisir l’emplacement de mChat sur la page d’index.', - 'MCHAT_TOP_OF_FORUM' => 'En haut du forum', - 'MCHAT_BOTTOM_OF_FORUM' => 'En bas du forum', - 'MCHAT_REFRESH' => 'Actualiser', - 'MCHAT_REFRESH_EXPLAIN' => 'Nombre de secondes avant que mChat ne soit automatiquement actualisé.
Vous êtes limité de 5 à 60 secondes.', - 'MCHAT_PRUNE' => 'Activer le délestage', - 'MCHAT_PRUNE_EXPLAIN' => 'Mettez Oui pour activer la fonction de délestage.
Survient seulement si un utilisateur affiche les pages personnalisées ou d’archives.', - 'MCHAT_PRUNE_NUM' => 'Nombre de messages', - 'MCHAT_PRUNE_NUM_EXPLAIN' => 'Le nombre de messages à retenir dans mChat.', - 'MCHAT_MESSAGE_LIMIT' => 'Limite de messages', - 'MCHAT_MESSAGE_LIMIT_EXPLAIN' => 'Le nombre maximum de messages à afficher dans la zone du mini-chat.
Recommandation : de 10 à 30 messages.', - 'MCHAT_MESSAGE_NUM' => 'Limite de messages sur la page d’index', - 'MCHAT_MESSAGE_NUM_EXPLAIN' => 'Le nombre maximum de messages à afficher dans la zone du mini-chat sur la page d’index.
Recommandation : de 10 à 50 messages.', - 'MCHAT_ARCHIVE_LIMIT' => 'Limite de l’archivage', - 'MCHAT_ARCHIVE_LIMIT_EXPLAIN' => 'Le nombre maximum de messages à afficher par page dans la page d’archives.
Recommandation : de 25 à 50 messages.', - 'MCHAT_FLOOD_TIME' => 'Intervalle de flood', - 'MCHAT_FLOOD_TIME_EXPLAIN' => 'Le nombre de secondes qu’un utilisateur doit attendre avant de poster un autre message dans le mini-chat.
Recommandation : de 5 à 30 secondes. Mettez 0 pour désactiver cette fonction.', - 'MCHAT_MAX_MESSAGE_LENGTH' => 'Longueur maximale des messages', - 'MCHAT_MAX_MESSAGE_LENGTH_EXPLAIN' => 'Le nombre maximum de caractères autorisés par message posté.
Recommandation : de 100 à 500 caractères. Mettez 0 pour désactiver cette fonction.', - 'MCHAT_CUSTOM_PAGE' => 'Page personnalisée', - 'MCHAT_CUSTOM_PAGE_EXPLAIN' => 'Permettre l’utilisation de la page personnalisée.', - 'MCHAT_CUSTOM_HEIGHT' => 'Hauteur de la page personnalisée', - 'MCHAT_CUSTOM_HEIGHT_EXPLAIN' => 'La hauteur du mini-chat, en pixels, sur la page personnalisée de mChat.
Vous êtes limité de 50 à 1000 pixels.', - 'MCHAT_DATE_FORMAT' => 'Format de la date', - 'MCHAT_DATE_FORMAT_EXPLAIN' => 'La syntaxe utilisée est identique à la fonction date() de PHP.', - 'MCHAT_CUSTOM_DATEFORMAT' => 'Personnaliser…', - 'MCHAT_WHOIS' => 'Qui est-ce ?', - 'MCHAT_WHOIS_EXPLAIN' => 'Permettre l’affichage des utilisateurs qui tchattent dans le mini-chat.', - 'MCHAT_WHOIS_REFRESH' => 'Actualisation du « Qui est-ce? »', - 'MCHAT_WHOIS_REFRESH_EXPLAIN' => 'Nombre de secondes avant que les statistiques du « Qui est-ce? » ne soient actualisées.
Vous êtes limité de 30 à 300 secondes.', - 'MCHAT_BBCODES_DISALLOWED' => 'Désactiver les BBcodes', - 'MCHAT_BBCODES_DISALLOWED_EXPLAIN' => 'Ici, vous pouvez saisir les BBCodes qui ne pourront pas être utilisés dans un message.
Séparez les BBcodes par une barre verticale. Par exemple:
b|i|u|code|list|list=|flash|quote et/ou des %sbbcodes personnalisés%s', - 'MCHAT_STATIC_MESSAGE' => 'Message statique', - 'MCHAT_STATIC_MESSAGE_EXPLAIN' => 'Ici, vous pouvez définir un message statique à afficher pour les utilisateurs du mini-chat. Le code HTML est autorisé.
Mettez rien pour désactiver cet affichage. Vous êtes limité à 255 caractères.
Ce message peut-être traduit (vous devez éditer le fichier mchat_lang.php et saisir les instructions).', - 'MCHAT_USER_TIMEOUT' => 'Délai d’attente de l’utilisateur', - 'MCHAT_USER_TIMEOUT_EXPLAIN' => 'Configurez la durée, en secondes, jusqu’à ce qu’une session d’utilisateur se termine dans le mini-chat. Mettez 0 pour désactiver cette fonction.
Vous êtes limité à l’%soption de configuration du forum pour les sessions%s, qui est actuellement fixée à %s secondes.', - 'MCHAT_OVERRIDE_SMILIE_LIMIT' => 'Outre-passer la limite des smileys', - 'MCHAT_OVERRIDE_SMILIE_LIMIT_EXPLAIN' => 'Mettez sur Oui pour outre-passer les paramètres de limitation de smileys des forums pour les messages du mini-chat.', - 'MCHAT_OVERRIDE_MIN_POST_CHARS' => 'Outre-passer la limite du nombre de caractères minimal', - 'MCHAT_OVERRIDE_MIN_POST_CHARS_EXPLAIN' => 'Mettez sur Oui pour outre-passer la limite du nombre de caractères minimal des forums, pour les messsages du mini-chat.', - 'MCHAT_NEW_POSTS' => 'Activer l’affichage des messages', - 'MCHAT_NEW_POSTS_EXPLAIN' => 'Mettre sur oui et vous pouvez définir dans les options ci-dessous, quel message doit être affiché dans mchat.', - 'MCHAT_NEW_POSTS_TOPIC' => 'Afficher un nouveau sujet Messages', - 'MCHAT_NEW_POSTS_TOPIC_EXPLAIN' => 'Mettre sur oui pour autoriser les nouveaux sujets du forum qui seront affichés dans mchat.', - 'MCHAT_NEW_POSTS_REPLY' => 'Activer les nouvelles réponses', - 'MCHAT_NEW_POSTS_REPLY_EXPLAIN' => 'Mettre sur oui pour permettre les nouvelles réponses a afficher dans mchat.', - 'MCHAT_NEW_POSTS_EDIT' => 'Afficher les messages édités', - 'MCHAT_NEW_POSTS_EDIT_EXPLAIN' => 'Mettre sur oui pour autoriser les messages édités depuis le forum a être affichés dans mchat.', - 'MCHAT_NEW_POSTS_QUOTE' => 'Afficher les messages cités', - 'MCHAT_NEW_POSTS_QUOTE_EXPLAIN' => 'Mettre sur oui pour autoriser les messages cités depuis le forum a être affichés dans mchat.', - 'MCHAT_MAIN' => 'Configuration principale', - 'MCHAT_STATS' => 'Qui tchatte ?', - 'MCHAT_STATS_INDEX' => 'Statistiques sur l’index', - 'MCHAT_STATS_INDEX_EXPLAIN' => 'Affiche les membres qui tchattent dans les statistiques du forum.', - 'MCHAT_MESSAGE_TOP' => 'Garder les messages en Bas / Haut', - 'MCHAT_MESSAGE_TOP_EXPLAIN' => 'Les nouveaux messages seront affichés en haut ou en bas des messages précédents.', - 'MCHAT_BOTTOM' => 'En bas', - 'MCHAT_TOP' => 'En haut', - 'MCHAT_MESSAGES' => 'Paramètres des messages', - 'MCHAT_PAUSE_ON_INPUT' => 'Pause sur la saisie', - 'MCHAT_PAUSE_ON_INPUT_EXPLAIN' => 'Si activée, le mini-chat ne sera pas mis à jour automatiquement lorsque l’utilisateur rédige un message dans la zone de saisie.', - - // Error reporting - 'TOO_LONG_DATE' => 'Le format de la date saisi est trop long.', - 'TOO_SHORT_DATE' => 'Le format de la date saisi est trop court.', - 'TOO_SMALL_REFRESH' => 'La valeur de l’actualisation est trop petite.', - 'TOO_LARGE_REFRESH' => 'La valeur de l’actualisation est trop importante.', - 'TOO_SMALL_MESSAGE_LIMIT' => 'La limite de messages est trop petite.', - 'TOO_LARGE_MESSAGE_LIMIT' => 'La limite de messages est trop grande.', - 'TOO_SMALL_ARCHIVE_LIMIT' => 'La limite de l’archive est trop petite.', - 'TOO_LARGE_ARCHIVE_LIMIT' => 'La limite de l’archive est trop grande.', - 'TOO_SMALL_FLOOD_TIME' => 'Le temps de flood est trop petit.', - 'TOO_LARGE_FLOOD_TIME' => 'Le temps de flood est trop grand.', - 'TOO_SMALL_MAX_MESSAGE_LNGTH' => 'La longueur maximale des messages est trop petite.', - 'TOO_LARGE_MAX_MESSAGE_LNGTH' => 'La longueur maximale des messages est trop grande.', - 'TOO_SMALL_MAX_WORDS_LNGTH' => 'La longueur maximale des mots est trop petite.', - 'TOO_LARGE_MAX_WORDS_LNGTH' => 'La longueur maximale des mots est trop grande.', - 'TOO_SMALL_WHOIS_REFRESH' => 'L’actualisation du Qui est-ce? es trop petite.', - 'TOO_LARGE_WHOIS_REFRESH' => 'L’actualisation du Qui est-ce? est trop grande.', - 'TOO_SMALL_INDEX_HEIGHT' => 'La hauteur du mini-chat sur l’index est trop petite.', - 'TOO_LARGE_INDEX_HEIGHT' => 'La hauteur du mini-chat sur l’index est trop grande.', - 'TOO_SMALL_CUSTOM_HEIGHT' => 'La hauteur du mini-chat dans la page personnalisé est trop petite.', - 'TOO_LARGE_CUSTOM_HEIGHT' => 'La hauteur du mini-chat dans la page personnalisé est trop grande.', - 'TOO_SHORT_STATIC_MESSAGE' => 'Le message statique est trop court.', - 'TOO_LONG_STATIC_MESSAGE' => 'Le message statique est trop long.', - 'TOO_SMALL_TIMEOUT' => 'Le délai d’attente de l’utilisateur est trop petit.', - 'TOO_LARGE_TIMEOUT' => 'Le délai d’attente de l’utilisateur est trop grand.', - - // User perms - 'ACL_U_MCHAT_USE' => 'Peut utiliser mChat', - 'ACL_U_MCHAT_VIEW' => 'Peut voir mChat', - 'ACL_U_MCHAT_EDIT' => 'Peut éditer les messages de mChat', - 'ACL_U_MCHAT_DELETE' => 'Peut supprimer les messages de mChat', - 'ACL_U_MCHAT_IP' => 'Peut voir les adresses IP sur mChat', - 'ACL_U_MCHAT_PM' => 'Peut utiliser les messages privés dans mChat', - 'ACL_U_MCHAT_LIKE' => 'Peut utiliser la fonction aimer un message dans mChat', - 'ACL_U_MCHAT_QUOTE' => 'Peut citer dans mChat', - 'ACL_U_MCHAT_FLOOD_IGNORE' => 'Peut ignorer le flood sur mChat', - 'ACL_U_MCHAT_ARCHIVE' => 'Peut voir les archives mChat', - 'ACL_U_MCHAT_BBCODE' => 'Peut utiliser les BBCodes sur mChat', - 'ACL_U_MCHAT_SMILIES' => 'Peut utiliser les smileys sur mChat', - 'ACL_U_MCHAT_URLS' => 'Peut poster des url’s sur mChat', - - // Admin perms - 'ACL_A_MCHAT' => 'Peut gérer les paramètres de mChat', -)); diff --git a/language/it/common.php b/language/it/common.php deleted file mode 100644 index 3b3cedd..0000000 --- a/language/it/common.php +++ /dev/null @@ -1,128 +0,0 @@ - 'Mini Chat', - 'MCHAT_ADD' => 'Invia', - 'MCHAT_IN' => 'in', - 'MCHAT_IN_SECTION' => '', - 'MCHAT_LIKES' => 'Mi Piace il messaggio: ', - 'MCHAT_ANNOUNCEMENT' => 'Annuncio', - 'MCHAT_ARCHIVE' => 'Archivio', - 'MCHAT_ARCHIVE_PAGE' => 'Archivio Chat', - 'MCHAT_BBCODES' => 'BBCode', - 'MCHAT_CLEAN' => 'Cancella', - 'MCHAT_CLEANED' => 'Tutti i messaggi sono stati rimossi', - 'MCHAT_CLEAR_INPUT' => 'Reset', - 'MCHAT_COPYRIGHT' => 'RMcGirr83 © dmzx', - 'MCHAT_CUSTOM_BBCODES' => 'Modifica BBCode', - 'MCHAT_DELALLMESS' => 'Rimuovere tutti i messaggi?', - 'MCHAT_DELCONFIRM' => 'Confermi la rimozione?', - 'MCHAT_DELITE' => 'Cancella', - 'MCHAT_EDIT' => 'Modifica', - 'MCHAT_EDITINFO' => 'Modifica il messaggio e premi Ok', - 'MCHAT_ENABLE' => 'Spiacente, mChat non è al momento disponibile', - 'MCHAT_ERROR' => 'Errore', - 'MCHAT_FLOOD' => 'Non puoi inviare un altro messaggio dopo così poco tempo', - 'MCHAT_FOE' => 'Questo messaggio è stato inviato da %1$s che è attualmente sulla tua lista di utenti ignorati.', - 'MCHAT_HELP' => 'Regole mChat', - 'MCHAT_HIDE_LIST' => 'Nascondi lista', - 'MCHAT_HOUR' => 'ora ', - 'MCHAT_HOURS' => 'ore', - 'MCHAT_IP' => 'dettagli IP di', - 'MCHAT_MINUTE' => 'minuto ', - 'MCHAT_MINUTES' => 'minuti ', - 'MCHAT_MESS_LONG' => 'Il tuo messaggio è troppo lungo.\n Il limite è di %s caratteri', - 'MCHAT_NO_CUSTOM_PAGE' => 'La pagina intera della mChat non è disponibile al momento!', - 'MCHAT_NO_RULES' => 'La pagina delle regole della mChat non è disponibile al momento!', - 'MCHAT_NOACCESS' => 'Non hai il permesso di inviare messaggi in mChat', - 'MCHAT_NOACCESS_ARCHIVE' => 'Non hai il permesso di visualizzare l’Archivio', - 'MCHAT_NOJAVASCRIPT' => 'Il tuo browser non supporta JavaScript oppure JavaScript è disabilitato', - 'MCHAT_NOMESSAGE' => 'Nessun messaggio', - 'MCHAT_NOMESSAGEINPUT' => 'Non hai inserito alcun messaggio', - 'MCHAT_NOSMILE' => 'Smile non trovato', - 'MCHAT_NOTINSTALLED_USER' => 'mChat non è installato. Si prega di comunicarlo all’Admin.', - 'MCHAT_NOT_INSTALLED' => 'Mancano delle voci nel database di mChat.
Eseguire l’%sinstaller%s per apportare le modifiche al database.', - 'MCHAT_OK' => 'Ok', - 'MCHAT_PAUSE' => 'Pausa', - 'MCHAT_LOAD' => 'Caricamento', - 'MCHAT_PERMISSIONS' => 'Cambia permessi utente', - 'MCHAT_REFRESHING' => 'Refresh...', - 'MCHAT_REFRESH_NO' => 'Il caricamento automatico è disabilitato', - 'MCHAT_REFRESH_YES' => 'Caricamento automatico ogni %d secondi', - 'MCHAT_RESPOND' => 'Rispondere', - 'MCHAT_RESET_QUESTION' => 'Cancellare il testo da inviare?', - 'MCHAT_SESSION_OUT' => 'Sessione della chat scaduta', - 'MCHAT_SHOW_LIST' => 'Mostra lista', - 'MCHAT_SECOND' => 'secondo ', - 'MCHAT_SECONDS' => 'secondi ', - 'MCHAT_SESSION_ENDS' => 'La sessione della chat termina tra ', - 'MCHAT_SMILES' => 'Smile', - 'MCHAT_TOTALMESSAGES' => 'Totale messaggi: %s', - 'MCHAT_USESOUND' => 'Usare i suoni?', - 'MCHAT_ONLINE_USERS_TOTAL' => 'Ci sono %d utenti in chat', - 'MCHAT_ONLINE_USER_TOTAL' => 'C’è un utente in chat ', - 'MCHAT_NO_CHATTERS' => 'Nessun utente in chat', - 'MCHAT_ONLINE_EXPLAIN' => 'basato sugli utenti attivi negli ultimi %s', - 'WHO_IS_CHATTING' => 'Chi è in chat', - 'WHO_IS_REFRESH_EXPLAIN' => 'Refresh ogni %d secondi', - 'MCHAT_NEW_TOPIC' => 'Nuovo Topic', - 'MCHAT_NEW_REPLY' => 'Nuovo Post', - 'MCHAT_NEW_QUOTE' => 'Citazione', - 'MCHAT_NEW_EDIT' => 'Ha modificato', - - // UCP - 'UCP_PROFILE_MCHAT' => 'Preferenze mChat', - 'DISPLAY_MCHAT' => 'Visualizza mChat nell’indice', - 'SOUND_MCHAT' => 'Abilita suoni mChat', - 'DISPLAY_STATS_INDEX' => 'Visualizza le statistiche di mChat nell’indice', - 'DISPLAY_NEW_TOPICS' => 'Visualizza nuovi topic nella chat', - 'DISPLAY_AVATARS' => 'Visualizza avatar nella chat', - 'CHAT_AREA' => 'Tipo di input', - 'CHAT_AREA_EXPLAIN' => 'Scegli quale tipo di input usare nella chat:
Una text-area o
un campo di input', - 'INPUT_AREA' => 'Input area', - 'TEXT_AREA' => 'Text area', - 'UCP_CAT_MCHAT' => 'mChat', - 'UCP_MCHAT_CONFIG' => 'Impostazioni mChat', - - // Preferences - 'LOG_MCHAT_TABLE_PRUNED' => 'Tabelle di mChat cancellate', - 'ACP_USER_MCHAT' => 'Opzioni mChat', - 'LOG_DELETED_MCHAT' => 'cancellato il messaggio della mChat
» %1$s', - 'LOG_EDITED_MCHAT' => 'modificato il messaggio della mChat
» %1$s', - 'MCHAT_MESSAGE_LNGTH_EXPLAIN' => 'Caratteri: %d', - 'MCHAT_TOP_POSTERS' => 'Utente più attivo in Chat', - 'MCHAT_NEW_CHAT' => 'Nuovo messaggio nella Chat!', - 'MCHAT_SEND_PM' => 'Invia messaggio privato', - - // Custom edits - 'REPLY_WITH_LIKE' => 'Mi Piace il messaggio ', -)); diff --git a/language/it/info_acp_mchat.php b/language/it/info_acp_mchat.php deleted file mode 100644 index 9b01667..0000000 --- a/language/it/info_acp_mchat.php +++ /dev/null @@ -1,166 +0,0 @@ - 'Configurazione', - 'ACP_CAT_MCHAT' => 'mChat', - 'ACP_MCHAT_TITLE' => 'Mini-Chat', - 'ACP_MCHAT_TITLE_EXPLAIN' => 'Una mini chat per il tuo forum', - 'MCHAT_TABLE_DELETED' => 'Le tabelle della mChat sono state cancellate', - 'MCHAT_TABLE_CREATED' => 'Le tabelle della mChat sono state create', - 'MCHAT_TABLE_UPDATED' => 'Le tabelle della mChat sono state aggiornate', - 'MCHAT_NOTHING_TO_UPDATE' => 'Niente da fare... continua', - 'UCP_CAT_MCHAT' => 'Preferenze mChat', - 'UCP_MCHAT_CONFIG' => 'Preferenze utenti mChat', - - // ACP entries - 'ACP_MCHAT_RULES' => 'Regole', - 'ACP_MCHAT_RULES_EXPLAIN' => 'Inserisci le regole della chat di questo forum. Ogni regola deve stare in una nuova linea.
Limite di 255 caratteri.
Questo messaggio può essere tradotto. (è necessario modificare il file mchat_lang.php e leggere le istruzioni).', - 'LOG_MCHAT_CONFIG_UPDATE' => 'Aggiornamento Configurazioni mChat ', - 'MCHAT_CONFIG_SAVED' => 'Configurazioni della mChat salvate', - 'MCHAT_TITLE' => 'Mini-Chat', - 'MCHAT_VERSION' => 'Versione in uso:', - 'MCHAT_ENABLE' => 'Abilita mChat', - 'MCHAT_ENABLE_EXPLAIN' => 'Abilita o disabilita globalmente questa estensione.', - 'MCHAT_AVATARS' => 'Visualizza avatar', - 'MCHAT_AVATARS_EXPLAIN' => 'Se impostato su sì, verranno visualizzati gli avatar ridimensionati degli utenti', - 'MCHAT_ON_INDEX' => 'mChat nell’indice', - 'MCHAT_ON_INDEX_EXPLAIN' => 'Consentire la visualizzazione di mChat nell’indice.', - 'MCHAT_INDEX_HEIGHT' => 'Altezza mChat nell’indice', - 'MCHAT_INDEX_HEIGHT_EXPLAIN' => 'Altezza della chat in pixel nell’indice del forum.
limite da 50 a 1000.', - 'MCHAT_LOCATION' => 'Posizione nel Forum', - 'MCHAT_LOCATION_EXPLAIN' => 'Scegliere la posizione di mChat nell’indice.', - 'MCHAT_TOP_OF_FORUM' => 'in alto nel forum', - 'MCHAT_BOTTOM_OF_FORUM' => 'in basso nel Forum', - 'MCHAT_REFRESH' => 'Aggiorna', - 'MCHAT_REFRESH_EXPLAIN' => 'Numero di secondi prima dell\'aggiornamento automatico della chat.
Limite da 5 a 60 secondi.', - 'MCHAT_PRUNE' => 'Abilita cancellazione automatica messaggi', - 'MCHAT_PRUNE_EXPLAIN' => 'Impostare su sì per abilitare la funzione di cancellazione automatica dei messaggi.
Si verifica solo se un utente visualizza le pagine personalizzate o l’archivio.', - 'MCHAT_PRUNE_NUM' => 'Numero messaggi cancellati automaticamente', - 'MCHAT_PRUNE_NUM_EXPLAIN' => 'Numero di messaggi da mantenere in chat.', - 'MCHAT_MESSAGE_LIMIT' => 'Limite messaggi', - 'MCHAT_MESSAGE_LIMIT_EXPLAIN' => 'Il numero massimo di messaggi da visualizzare nella chat.
Limite da 10 a 30.', - 'MCHAT_MESSAGE_NUM' => 'Limite messaggi nell’indice', - 'MCHAT_MESSAGE_NUM_EXPLAIN' => 'Il numero massimo di messaggi da visualizzare nel box della chat nell’indice
Limite da 10 a 50.', - 'MCHAT_ARCHIVE_LIMIT' => 'Limite Archivio', - 'MCHAT_ARCHIVE_LIMIT_EXPLAIN' => 'Il numero massimo di messaggi da visualizzare ogni pagina dell’Archivio.
Limite da 25 a 50.', - 'MCHAT_FLOOD_TIME' => 'Tempo', - 'MCHAT_FLOOD_TIME_EXPLAIN' => 'Il numero di secondi che un utente deve attendere prima di inviare un altro messaggio in chat.
Limite da 5 a 30, imposta 0 per disabilitare.', - 'MCHAT_MAX_MESSAGE_LENGTH' => 'Lunghezza massima messaggi', - 'MCHAT_MAX_MESSAGE_LENGTH_EXPLAIN' => 'Il numero massimo di caratteri consentiti nei messaggi inviati.
Limite da 100 a 500, imposta 0 per disabilitare.', - 'MCHAT_CUSTOM_PAGE' => 'Pagina personalizzata', - 'MCHAT_CUSTOM_PAGE_EXPLAIN' => 'Consentire utilizzo della pagina personalizzata', - 'MCHAT_CUSTOM_HEIGHT' => 'Altezza pagina personalizzata', - 'MCHAT_CUSTOM_HEIGHT_EXPLAIN' => 'Altezza della chat in pixel della pagina personalizzata mChat.
Limite da 50 a 1000.', - 'MCHAT_DATE_FORMAT' => 'Formato Data', - 'MCHAT_DATE_FORMAT_EXPLAIN' => 'La sintassi usata è quella di PHP date()', - 'MCHAT_CUSTOM_DATEFORMAT' => 'Quella normale…', - 'MCHAT_WHOIS' => 'Dettagli', - 'MCHAT_WHOIS_EXPLAIN' => 'Mostrare elenco utenti che sono in chat', - 'MCHAT_WHOIS_REFRESH' => 'Aggiornamento Dettagli', - 'MCHAT_WHOIS_REFRESH_EXPLAIN' => 'Numero di secondi prima di aggiornare i dettagli.
Limite da 30 a 300 secondi.', - 'MCHAT_BBCODES_DISALLOWED' => 'Disabilita BBcode', - 'MCHAT_BBCODES_DISALLOWED_EXPLAIN' => 'Qui è possibile inserire i BBCodes che non sarà possobile usare nei messaggi.
Separare i BBcode con una barra verticale, ad esempio:
b|i|u|code|list|list=|flash|quote e/o a %snome bbcode personalizzati%s', - 'MCHAT_STATIC_MESSAGE' => 'Messaggio fisso', - 'MCHAT_STATIC_MESSAGE_EXPLAIN' => 'Qui è possibile definire un messaggio fisso da visualizzare agli utenti della chat. È permesso usare codice html.
Lasciare vuoto per disattivare la visualizzazione. Limite di 255 caratteri.
Questo messaggio può essere tradotto. (modificando il file mchat_lang.php leggere le istruzioni).', - 'MCHAT_USER_TIMEOUT' => 'Timeout utente', - 'MCHAT_USER_TIMEOUT_EXPLAIN' => 'Impostare quanto tempo deve passare, in secondi, prima che finisca la sessione di un utente nella chat. Imposta su 0 per disabilitare questa funzione.
Limite attuale %sdi tempo nel forum%s prima del termine delle sessioni: %s secondi', - 'MCHAT_OVERRIDE_SMILIE_LIMIT' => 'Limite smile', - 'MCHAT_OVERRIDE_SMILIE_LIMIT_EXPLAIN' => 'Impostare su sì per ignorare le impostazioni del limite di smile nella chat', - 'MCHAT_OVERRIDE_MIN_POST_CHARS' => 'Ignora limite minimo di caratteri', - 'MCHAT_OVERRIDE_MIN_POST_CHARS_EXPLAIN' => 'Impostare su sì per ignorare i caratteri minimi dei messaggi della chat', - 'MCHAT_NEW_POSTS' => 'Abilita la visualizzazione dei nuovi Post', - 'MCHAT_NEW_POSTS_EXPLAIN' => 'Metti sì se vuoi visualizzare nella chat i nuovi Post del forum.', - 'MCHAT_NEW_POSTS_TOPIC' => 'Visualizza nuovi Post e nuovi Topic', - 'MCHAT_NEW_POSTS_TOPIC_EXPLAIN' => 'Impostare su sì per consentire a mChat di pubblicare i nuovi Post e Topic del forum nella chat.', - 'MCHAT_NEW_POSTS_REPLY' => 'Visualizza nuovi Post', - 'MCHAT_NEW_POSTS_REPLY_EXPLAIN' => 'Impostata su sì per consentire la visualizzazione delle risposte ai Topic del forum nella chat.', - 'MCHAT_NEW_POSTS_EDIT' => 'Visualizza i Post modificati', - 'MCHAT_NEW_POSTS_EDIT_EXPLAIN' => 'Impostare su sì per consentire che i messaggi modificati siano pubblicati nella chat.', - 'MCHAT_NEW_POSTS_QUOTE' => 'Visualizza Post con citazione', - 'MCHAT_NEW_POSTS_QUOTE_EXPLAIN' => 'Impostare su Sì per consentire che i messaggi modificati siano pubblicati nella chat', - 'MCHAT_MAIN' => 'Configurazioni', - 'MCHAT_STATS' => 'Dettagli Chat', - 'MCHAT_STATS_INDEX' => 'Statistiche nell\'indice', - 'MCHAT_STATS_INDEX_EXPLAIN' => 'Mostra chi è attivo in chat nella sezione statistiche del forum', - 'MCHAT_MESSAGE_TOP' => 'Nuovi messaggi Sopra / Sotto', - 'MCHAT_MESSAGE_TOP_EXPLAIN' => 'Questa opzione metterà i nuovi messaggi Sopra o Sotto nella chat', - 'MCHAT_BOTTOM' => 'Sotto', - 'MCHAT_TOP' => 'Sopra', - 'MCHAT_MESSAGES' => 'Opzioni Messaggi', - 'MCHAT_PAUSE_ON_INPUT' => 'Pausa durante scrittura messaggi', - 'MCHAT_PAUSE_ON_INPUT_EXPLAIN' => 'Se impostato sì, allora la chat non verrà aggiornata automaticamente mentre un utente inserisce un messaggio nella chat', - - // Error reporting - 'TOO_LONG_DATE' => 'Il formato della data immessa è troppo lunga.', - 'TOO_SHORT_DATE' => 'Il formato della data immessa è troppo corta.', - 'TOO_SMALL_REFRESH' => 'Il valore di auto-aggiornamento è troppo piccolo.', - 'TOO_LARGE_REFRESH' => 'Il valore di auto-aggiornamento è troppo grande.', - 'TOO_SMALL_MESSAGE_LIMIT' => 'Il valore del limite di messaggi è troppo piccolo.', - 'TOO_LARGE_MESSAGE_LIMIT' => 'Il valore del limite di messaggi è troppo grande.', - 'TOO_SMALL_ARCHIVE_LIMIT' => 'Il valore del limite dell\'archivio è troppo piccolo.', - 'TOO_LARGE_ARCHIVE_LIMIT' => 'Il valore del limite dell\'archivio è troppo grande.', - 'TOO_SMALL_FLOOD_TIME' => 'Il valore di tempo è troppo breve.', - 'TOO_LARGE_FLOOD_TIME' => 'Il valore di tempo è troppo grande.', - 'TOO_SMALL_MAX_MESSAGE_LNGTH' => 'Il valore massimo della lunghezza del messaggio è troppo piccolo.', - 'TOO_LARGE_MAX_MESSAGE_LNGTH' => 'Il valore massimo della lunghezza del messaggio è troppo grande.', - 'TOO_SMALL_MAX_WORDS_LNGTH' => 'Il valore della lunghezza massima delle parole è troppo piccolo.', - 'TOO_LARGE_MAX_WORDS_LNGTH' => 'Il valore della lunghezza massima delle parole è troppo grande.', - 'TOO_SMALL_WHOIS_REFRESH' => 'Il valore di aggiornamento dei dettagli è troppo piccolo.', - 'TOO_LARGE_WHOIS_REFRESH' => 'Il valore di aggiornamento dei dettagli è troppo grande.', - 'TOO_SMALL_INDEX_HEIGHT' => 'Il valore di altezza della chat nell’indice è troppo piccolo.', - 'TOO_LARGE_INDEX_HEIGHT' => 'Il valore di altezza della chat nell’indice è troppo grande.', - 'TOO_SMALL_CUSTOM_HEIGHT' => 'Il valore di altezza nella pagina personalizzata è troppo piccolo.', - 'TOO_LARGE_CUSTOM_HEIGHT' => 'Il valore di altezza nella pagina personalizzata è troppo grande.', - 'TOO_SHORT_STATIC_MESSAGE' => 'Il messaggio fisso è troppo corto.', - 'TOO_LONG_STATIC_MESSAGE' => 'Il messaggio fisso è troppo lungo.', - 'TOO_SMALL_TIMEOUT' => 'Il valore di timeout utente è troppo piccolo.', - 'TOO_LARGE_TIMEOUT' => 'Il valore di timeout utente è troppo grande.', - - // User perms - 'ACL_U_MCHAT_USE' => 'Può usare mchat', - 'ACL_U_MCHAT_VIEW' => 'Può vedere mChat', - 'ACL_U_MCHAT_EDIT' => 'Può modificare i messaggi in mChat', - 'ACL_U_MCHAT_DELETE' => 'Può cancellare i messaggi in mchat', - 'ACL_U_MCHAT_IP' => 'Può visualizzare indirizzi IP in mChat', - 'ACL_U_MCHAT_FLOOD_IGNORE' => 'Può ignorare limite flood in mChat', - 'ACL_U_MCHAT_ARCHIVE' => 'Può visualizzare l’Archivio di mchat', - 'ACL_U_MCHAT_BBCODE' => 'Può usare BBcode in mChat', - 'ACL_U_MCHAT_SMILIES' => 'Può usare smile in mChat', - 'ACL_U_MCHAT_URLS' => 'Può postare url in mChat', - - // Admin perms - 'ACL_A_MCHAT' => 'Può modificare impostazioni mChat', -)); diff --git a/language/nl/common.php b/language/nl/common.php deleted file mode 100644 index 7f7645d..0000000 --- a/language/nl/common.php +++ /dev/null @@ -1,128 +0,0 @@ - 'Mini-Chat', - 'MCHAT_ADD' => 'Versturen', - 'MCHAT_IN' => 'in', - 'MCHAT_IN_SECTION' => 'sectie', - 'MCHAT_LIKES' => 'Vindt dit bericht leuk', - 'MCHAT_ANNOUNCEMENT' => 'Aankondiging', - 'MCHAT_ARCHIVE' => 'Archief', - 'MCHAT_ARCHIVE_PAGE' => 'Mini-Chat Archief', - 'MCHAT_BBCODES' => 'BBCodes', - 'MCHAT_CLEAN' => 'Opschonen', - 'MCHAT_CLEANED' => 'Alle berichten zijn succesvol verwijderd', - 'MCHAT_CLEAR_INPUT' => 'Reset', - 'MCHAT_COPYRIGHT' => 'RMcGirr83 © dmzx', - 'MCHAT_CUSTOM_BBCODES' => 'gebruik BBCodes', - 'MCHAT_DELALLMESS' => 'Verwijder alle berichten?', - 'MCHAT_DELCONFIRM' => 'Ben je akkoord om te verwijderen?', - 'MCHAT_DELITE' => 'Verwijder', - 'MCHAT_EDIT' => 'Bewerk', - 'MCHAT_EDITINFO' => 'Bewerk het bericht en klik op OKE', - 'MCHAT_ENABLE' => 'Sorry, de Mini-Chat is momenteel niet beschikbaar', - 'MCHAT_ERROR' => 'Fout', - 'MCHAT_FLOOD' => 'Je kunt niet zo snel een bericht plaatsen, na jouw laatste bericht !!', - 'MCHAT_FOE' => 'Dit bericht was gemaakt door %1$s die momenteel op jouw negeerlijst staat.', - 'MCHAT_HELP' => 'mChat Regels', - 'MCHAT_HIDE_LIST' => 'Lijst verbergen', - 'MCHAT_HOUR' => 'uur ', - 'MCHAT_HOURS' => 'uren', - 'MCHAT_IP' => 'IP whois voor', - 'MCHAT_MINUTE' => 'minuut ', - 'MCHAT_MINUTES' => 'minuten ', - 'MCHAT_MESS_LONG' => 'Jou bericht is te lang.Beperk dit a.u.b. tot %s karakters', - 'MCHAT_NO_CUSTOM_PAGE' => 'De gebruikte mChat pagina is niet actief op dit moment!', - 'MCHAT_NO_RULES' => 'The mChat rules page is not activated at this time!', - 'MCHAT_NOACCESS' => 'Je hebt geen permissie om een bericht in mChat te plaatsen', - 'MCHAT_NOACCESS_ARCHIVE' => 'Je hebt geen permissie om het archief te bekijken', - 'MCHAT_NOJAVASCRIPT' => 'Je browser ondersteunt geen JavaScript of JavaScript is uitgeschakeld', - 'MCHAT_NOMESSAGE' => 'Geen berichten', - 'MCHAT_NOMESSAGEINPUT' => 'Je hebt geen bericht ingevoerd', - 'MCHAT_NOSMILE' => 'Smilies zijn niet gevonden', - 'MCHAT_NOTINSTALLED_USER' => 'mChat is niet geinstalleerd. Neem contact op met de beheerder van het forum.', - 'MCHAT_NOT_INSTALLED' => 'mChat database invoeringen ontbreken.
voer a.u.b. de %sinstaller%s om de database veranderingen te maken voor deze modificatie.', - 'MCHAT_OK' => 'OK', - 'MCHAT_PAUSE' => 'Pauze', - 'MCHAT_LOAD' => 'Laden', - 'MCHAT_PERMISSIONS' => 'Verander gebruikers permissie', - 'MCHAT_REFRESHING' => 'Verversen...', - 'MCHAT_REFRESH_NO' => 'Verversen is uit', - 'MCHAT_REFRESH_YES' => 'Ververs iedere %d seconden', - 'MCHAT_RESPOND' => 'Reageer naar gebruiker', - 'MCHAT_RESET_QUESTION' => 'Schoon het ingave veld op?', - 'MCHAT_SESSION_OUT' => 'Chat sessie is verlopen', - 'MCHAT_SHOW_LIST' => 'Toon lijst', - 'MCHAT_SECOND' => 'seconde ', - 'MCHAT_SECONDS' => 'seconden ', - 'MCHAT_SESSION_ENDS' => 'Chat sessie eindigdt in', - 'MCHAT_SMILES' => 'Smilies', - 'MCHAT_TOTALMESSAGES' => 'Totaal aantal berichten: %s', - 'MCHAT_USESOUND' => 'Gebruik geluid?', - 'MCHAT_ONLINE_USERS_TOTAL' => 'In totaal zijn er %d gebruikers aan het chatten ', - 'MCHAT_ONLINE_USER_TOTAL' => 'In total is er %d gebruiker aan het chatten ', - 'MCHAT_NO_CHATTERS' => 'Niemand is aan het chatten', - 'MCHAT_ONLINE_EXPLAIN' => 'gebaseerd op actieve gebruikers over de afgelopen %s', - 'WHO_IS_CHATTING' => 'Wie is aan het chatten', - 'WHO_IS_REFRESH_EXPLAIN' => 'ververst iedere %d seconden', - 'MCHAT_NEW_TOPIC' => 'Een nieuw Topic gemaakt', - 'MCHAT_NEW_REPLY' => 'Een nieuw antwoord gemaakt', - 'MCHAT_NEW_QUOTE' => 'Beantwoord met een Citaat', - 'MCHAT_NEW_EDIT' => 'Een bewerking gemaakt', - - // UCP - 'UCP_PROFILE_MCHAT' => 'mChat voorkeuren', - 'DISPLAY_MCHAT' => 'Toon mChat op de index pagina', - 'SOUND_MCHAT' => 'Inschakelen geluid mChat', - 'DISPLAY_STATS_INDEX' => 'Toon de wie is er aan het chatten op de index pagina', - 'DISPLAY_NEW_TOPICS' => 'Toon nieuwe topics in de chat', - 'DISPLAY_AVATARS' => 'Toon avatars in de chat', - 'CHAT_AREA' => 'Invoer type', - 'CHAT_AREA_EXPLAIN' => 'Kies welke type te gebruiken om een chat in te voeren:
een tekst gebied of
een invoerveld', - 'INPUT_AREA' => 'Invoerveld', - 'TEXT_AREA' => 'Tekst gebied', - 'UCP_CAT_MCHAT' => 'mChat', - 'UCP_MCHAT_CONFIG' => 'mChat', - - // Preferences - 'LOG_MCHAT_TABLE_PRUNED' => 'mChat tabel is ingekort', - 'ACP_USER_MCHAT' => 'mChat Instellingen', - 'LOG_DELETED_MCHAT' => 'Verwijder mChat berichten
» %1$s', - 'LOG_EDITED_MCHAT' => 'Bewerk mChat berichten
» %1$s', - 'MCHAT_MESSAGE_LNGTH_EXPLAIN' => 'Overgebleven karakters: %d', - 'MCHAT_TOP_POSTERS' => 'Top Spammers', - 'MCHAT_NEW_CHAT' => 'Nieuw Chat bericht!', - 'MCHAT_SEND_PM' => 'Stuur prive bericht', - - // Custom edits - 'REPLY_WITH_LIKE' => 'Vindt dit bericht leuk', -)); diff --git a/language/nl/info_acp_mchat.php b/language/nl/info_acp_mchat.php deleted file mode 100644 index 87c6f60..0000000 --- a/language/nl/info_acp_mchat.php +++ /dev/null @@ -1,169 +0,0 @@ - 'Configuratie', - 'ACP_CAT_MCHAT' => 'mChat', - 'ACP_MCHAT_TITLE' => 'Mini-Chat', - 'ACP_MCHAT_TITLE_EXPLAIN' => 'Een mini chat (aka “shout box”) voor gebruik op jouw forum', - 'MCHAT_TABLE_DELETED' => 'De mChat tabel is succesvol verwijderd', - 'MCHAT_TABLE_CREATED' => 'De mChat tabel is succesvol aangemaakt', - 'MCHAT_TABLE_UPDATED' => 'De mChat tabel is succesvol bijgewerkt.', - 'MCHAT_NOTHING_TO_UPDATE' => 'Niks te doen..... doorgaan', - 'UCP_CAT_MCHAT' => 'mChat voorkeuren', - 'UCP_MCHAT_CONFIG' => 'Gebruiker mChat voorkeuren', - - // ACP entries - 'ACP_MCHAT_RULES' => 'Regels', - 'ACP_MCHAT_RULES_EXPLAIN' => 'Verander hier de regels van het forum. Elke regel op een nieuwe lijn.
Je kunt maximaal 255 karakters gebruiken.
Deze boodschap kan worden vertaald.. (Je moet de mchat_lang.php file aanpassen en lees de instructies).', - 'LOG_MCHAT_CONFIG_UPDATE' => 'Update mChat configuratie ', - 'MCHAT_CONFIG_SAVED' => 'Mini Chat configuratie is bijgewerkt', - 'MCHAT_TITLE' => 'Mini-Chat', - 'MCHAT_VERSION' => 'Versie:', - 'MCHAT_ENABLE' => 'Inschakelen mChat Extensie', - 'MCHAT_ENABLE_EXPLAIN' => 'In- of Uitschakelen van deze extensie.', - 'MCHAT_AVATARS' => 'Toon avatars', - 'MCHAT_AVATARS_EXPLAIN' => 'Als je ja hebt aangevinkt, verkleinde gebruikers avatars zullen worden getoond', - 'MCHAT_ON_INDEX' => 'mChat Op de Index pagina', - 'MCHAT_ON_INDEX_EXPLAIN' => 'Toestaan om de mChat te tonen op de Index pagina.', - 'MCHAT_INDEX_HEIGHT' => 'Index pagina hoogte', - 'MCHAT_INDEX_HEIGHT_EXPLAIN' => 'De hoogte van de mChat box op de Index pagina uitgedrukt in pixels, kun je hier aanpassen.
Je bent gelimiteerd tussen de 50 en 1000.', - 'MCHAT_LOCATION' => 'Locatie op het Forum', - 'MCHAT_LOCATION_EXPLAIN' => 'Kies de locatie van de mChat op de Index pagina.', - 'MCHAT_TOP_OF_FORUM' => 'Bovenaan op het Forum', - 'MCHAT_BOTTOM_OF_FORUM' => 'Onderaan op het Forum', - 'MCHAT_REFRESH' => 'Vernieuwen', - 'MCHAT_REFRESH_EXPLAIN' => 'Aantal seconden dat de mChat automatische ververst wordt.
Je bent gelimiteerd tussen 5 en 60 seconden.', - 'MCHAT_PRUNE' => 'Inschakelen opschonen van berichten', - 'MCHAT_PRUNE_EXPLAIN' => 'Vink Ja aan als je het opschonen van berichten wilt inschakelen.
Werkt alleen als een gebruiker de gemaakte of archief pagina bekijkt.', - 'MCHAT_PRUNE_NUM' => 'Het aantal berichten welke bewaard moeten worden in de mChat', - 'MCHAT_PRUNE_NUM_EXPLAIN' => 'Geef hier het aantal in, van de berichten welke je bewaard wilt houden in de mChat.', - 'MCHAT_MESSAGE_LIMIT' => 'Berichten limiet', - 'MCHAT_MESSAGE_LIMIT_EXPLAIN' => 'Maximaal aantal berichten, welke getoond worden in de mChat.
Aanbevolen is tussen de 10 en 30 berichten.', - 'MCHAT_MESSAGE_NUM' => 'Index pagina berichten limiet', - 'MCHAT_MESSAGE_NUM_EXPLAIN' => 'Het maximale aantal berichten, welke getoond worden in de mChat op de Index pagina.
Aanbevolen is tussen de 10 en 50 berichten.', - 'MCHAT_ARCHIVE_LIMIT' => 'Archief limiet', - 'MCHAT_ARCHIVE_LIMIT_EXPLAIN' => 'Het maximale aantal berichten, welke getoond worden in de mChat op de Archief pagina.
Aanbevolen is tussen de 25 en 50 berichten.', - 'MCHAT_FLOOD_TIME' => 'Wachttijd plaatsen volgende bericht, na reeds geplaatst bericht', - 'MCHAT_FLOOD_TIME_EXPLAIN' => 'Het aantal seconden dat een gebruiker moet wachten om een volgend bericht te plaatsen in de mChat.
Aanbevolen is tussen de 5 en 30 seconden, 0 is uitschakelen van deze functie.', - 'MCHAT_MAX_MESSAGE_LENGTH' => 'Maximale berichten lengte', - 'MCHAT_MAX_MESSAGE_LENGTH_EXPLAIN' => 'Maximaal toegestane aantal karakters per gepost bericht.
anbevolen is tussen de 100 en 500 karakters, 0 is uitschakelen van deze functie.', - 'MCHAT_CUSTOM_PAGE' => 'Aangepaste pagina', - 'MCHAT_CUSTOM_PAGE_EXPLAIN' => 'Toestaan om gebruik te maken van de mChat op de aangepaste pagina', - 'MCHAT_CUSTOM_HEIGHT' => 'Aangepaste pagina hoogte', - 'MCHAT_CUSTOM_HEIGHT_EXPLAIN' => 'De hoogte van de mChat box in pixels op de aangepaste mChat pagina.
Je bent gelimiteerd tussen de 50 en 1000 pixels.', - 'MCHAT_DATE_FORMAT' => 'Datum weergave', - 'MCHAT_DATE_FORMAT_EXPLAIN' => 'De gebruikte syntax is identiek aan de PHP date() functie.', - 'MCHAT_CUSTOM_DATEFORMAT' => 'Aangepast…', - 'MCHAT_WHOIS' => 'Whois', - 'MCHAT_WHOIS_EXPLAIN' => 'Toestaan om gebruikers te laten zien die gebruik maken van de mChat', - 'MCHAT_WHOIS_REFRESH' => 'Whois vernieuwen', - 'MCHAT_WHOIS_REFRESH_EXPLAIN' => 'Aantal seconden voordat whois statistieken worden vernieuwd.
Je bent gelimiteerd tussen de 30 en 300 seconden.', - 'MCHAT_BBCODES_DISALLOWED' => 'Niet toegestane bbcodes', - 'MCHAT_BBCODES_DISALLOWED_EXPLAIN' => 'Hier kun je de bbcodes plaatsen, die nietzijn toegstaannot om te gebruiken in een bericht.
Aparte BBCodes met een verticale balk , bijvoorbeeld:
b|i|u|code|list|list=|flash|quote and/or a %scustom bbcode tag name%s', - 'MCHAT_STATIC_MESSAGE' => 'Statisch bericht', - 'MCHAT_STATIC_MESSAGE_EXPLAIN' => 'Hier kan je een statisch bericht definieren, welke getoond wordt aan de gebruikers van de mChat.
Stel 0 in om de vertoning uit te schakelen. Je bent gelimiteerd tot 255 karakters.
Deze boodschap kan worden vertaald.. (Je moet de mchat_lang.php file aanpassen en lees de instructies).', - 'MCHAT_USER_TIMEOUT' => 'Gebruiker timeout', - 'MCHAT_USER_TIMEOUT_EXPLAIN' => 'Stel hier de seconden in, wanneer de sessie van een gebruiker eindigd. Stel 0 om de timeout uit te schakelen.
Je bent gelimiteerd tot de %sforum instellingen voor de chat sessie, welke momenteel is ingesteld op %s seconden', - 'MCHAT_OVERRIDE_SMILIE_LIMIT' => 'Aantal smilie limiet', - 'MCHAT_OVERRIDE_SMILIE_LIMIT_EXPLAIN' => 'Stel hier het aantal smilie limiet in voor de chat berichten', - 'MCHAT_OVERRIDE_MIN_POST_CHARS' => 'Minimum karakters limit', - 'MCHAT_OVERRIDE_MIN_POST_CHARS_EXPLAIN' => 'Stel ja in om het aantal minimum karakters in te stellen voor een chat bericht', - 'MCHAT_NEW_POSTS' => 'Inschakelen van de berichten weergave', - 'MCHAT_NEW_POSTS_EXPLAIN' => 'Stel Ja in en je kan onder de opties instellen welke chat berichten worden weergegeven in de mChat.', - 'MCHAT_NEW_POSTS_TOPIC' => 'Weergave in mChat van nieuwe topic berichten', - 'MCHAT_NEW_POSTS_TOPIC_EXPLAIN' => 'Stel ja in om de nieuwe topic berichten van het forum te tonen in de mChat.', - 'MCHAT_NEW_POSTS_REPLY' => 'Weergave in mChat van nieuwe beantwoorde berichten', - 'MCHAT_NEW_POSTS_REPLY_EXPLAIN' => 'Stel ja in om de beantwoorde berichten van het forum te tonen in de mChat.', - 'MCHAT_NEW_POSTS_EDIT' => 'Weergave bewerkte berichten', - 'MCHAT_NEW_POSTS_EDIT_EXPLAIN' => 'Stel Ja in om de bewerkte berichten van het forum te tonen in de mChat.', - 'MCHAT_NEW_POSTS_QUOTE' => 'Weergave geciteerde berichten', - 'MCHAT_NEW_POSTS_QUOTE_EXPLAIN' => 'Stel Ja in om de geciteerde berichten van het forum te tonen in de mChat.', - 'MCHAT_MAIN' => 'Hoofd Configuratie', - 'MCHAT_STATS' => 'Wie is aan het chatten', - 'MCHAT_STATS_INDEX' => 'Statistieken op de Index pagina', - 'MCHAT_STATS_INDEX_EXPLAIN' => 'Laat zien wie aan het chatten is in de statistieken sectie op het forum', - 'MCHAT_MESSAGE_TOP' => 'Toon berichten boven of beneden in mChat', - 'MCHAT_MESSAGE_TOP_EXPLAIN' => 'Dit zal het geplaatste bericht boven of beneden laten zien in mChat.', - 'MCHAT_BOTTOM' => 'Beneden', - 'MCHAT_TOP' => 'Boven', - 'MCHAT_MESSAGES' => 'Berichten instellingen', - 'MCHAT_PAUSE_ON_INPUT' => 'Pauze op eventuele inactiviteit van mChat', - 'MCHAT_PAUSE_ON_INPUT_EXPLAIN' => 'Stel je ja in, dan wordt mChat niet automatisch vernieuwd, todat een gebruiker een bericht plaatst in mChat', - - // Error reporting - 'TOO_LONG_DATE' => 'De datum weergave die je hebt ingegeven is te lang.', - 'TOO_SHORT_DATE' => 'De datum weergave die je hebt ingegeven is te kort.', - 'TOO_SMALL_REFRESH' => 'De waarde voor het vernieuwen van de pagina is te klein.', - 'TOO_LARGE_REFRESH' => 'De waarde voor het vernieuwen van de pagina is te groot.', - 'TOO_SMALL_MESSAGE_LIMIT' => 'De waarde van de berichten limiet is te klein.', - 'TOO_LARGE_MESSAGE_LIMIT' => 'De waarde van de berichten limiet is te groot.', - 'TOO_SMALL_ARCHIVE_LIMIT' => 'De waarde van het archief limiet is te klein.', - 'TOO_LARGE_ARCHIVE_LIMIT' => 'De waarde van het archief limiet is te groot.', - 'TOO_SMALL_FLOOD_TIME' => 'De waarde van de hoeveelheid aan data in een bepaalde tijd is te klein.', - 'TOO_LARGE_FLOOD_TIME' => 'De waarde van de hoeveelheid aan data in een bepaalde tijd is te groot.', - 'TOO_SMALL_MAX_MESSAGE_LNGTH' => 'De waarde van de maximale lengte van berichten is te klein.', - 'TOO_LARGE_MAX_MESSAGE_LNGTH' => 'De waarde van de maximale lengte van berichten is te groot.', - 'TOO_SMALL_MAX_WORDS_LNGTH' => 'De waarde van de maximale lengte van het aantal woorden is te klein.', - 'TOO_LARGE_MAX_WORDS_LNGTH' => 'De waarde van de maximale lengte van het aantal woorden is te groot.', - 'TOO_SMALL_WHOIS_REFRESH' => 'De verversing van de whois waarde is te klein.', - 'TOO_LARGE_WHOIS_REFRESH' => 'De verversing van de whois waarde is te groot.', - 'TOO_SMALL_INDEX_HEIGHT' => 'De waarde van de index hoogte is te klein.', - 'TOO_LARGE_INDEX_HEIGHT' => 'De waarde van de index hoogte is te groot.', - 'TOO_SMALL_CUSTOM_HEIGHT' => 'De waarde van de gemaakte hoogte is te klein.', - 'TOO_LARGE_CUSTOM_HEIGHT' => 'De waarde van de gemaakte hoogte is te groot.', - 'TOO_SHORT_STATIC_MESSAGE' => 'De waarde van de statische berichten is te kort.', - 'TOO_LONG_STATIC_MESSAGE' => 'De waarde van de statische berichten is te lang.', - 'TOO_SMALL_TIMEOUT' => 'De waarde van de timeout voor gebruikers is te klein.', - 'TOO_LARGE_TIMEOUT' => 'De waarde van de timeout voor gebruikers is te groot.', - - // User perms - 'ACL_U_MCHAT_USE' => 'Je kunt mChat gebruiken', - 'ACL_U_MCHAT_VIEW' => 'Je kunt mChat bekijken', - 'ACL_U_MCHAT_EDIT' => 'Je kunt mchat berichten bewerken', - 'ACL_U_MCHAT_DELETE' => 'Je kunt mChat berichten verwijderen', - 'ACL_U_MCHAT_IP' => 'Je kunt mChat IP adressen bekijken', - 'ACL_U_MCHAT_FLOOD_IGNORE' => 'Je kunt mChat de hoeveelheid aan data negeren', - 'ACL_U_MCHAT_ARCHIVE' => 'Je kunt het archief van mChat bekijken', - 'ACL_U_MCHAT_BBCODE' => 'Je kunt de bbcode in mChat gebruiken', - 'ACL_U_MCHAT_SMILIES' => 'Je kunt de smilies in mChat gebruiken', - 'ACL_U_MCHAT_URLS' => 'Je kunt urls posten in mChat', - 'ACL_U_MCHAT_LIKE' => 'Je kunt de vindt ik leuk knop gebruiken in mChat', - 'ACL_U_MCHAT_PM' => 'Je kunt de berichten knop gebruiken in mChat', - 'ACL_U_MCHAT_QUOTE' => 'Je kunt de citeer berichten knop gebruiken in mChat', - - // Admin perms - 'ACL_A_MCHAT' => 'Kan mChat instellingen beheren', -)); diff --git a/language/pl/common.php b/language/pl/common.php deleted file mode 100644 index e4124eb..0000000 --- a/language/pl/common.php +++ /dev/null @@ -1,128 +0,0 @@ - 'Mini-Chat', - 'MCHAT_ADD' => 'Wyślij', - 'MCHAT_IN' => 'in', - 'MCHAT_IN_SECTION' => 'section', - 'MCHAT_LIKES' => 'Likes this post', - 'MCHAT_ANNOUNCEMENT' => 'Ogłoszenie', - 'MCHAT_ARCHIVE' => 'Archiwum', - 'MCHAT_ARCHIVE_PAGE' => 'Mini-Chat Archiwum', - 'MCHAT_BBCODES' => 'BBCodes', - 'MCHAT_CLEAN' => 'Wyczyść', - 'MCHAT_CLEANED' => 'Wszystkie wiadomości zostały pomyślnie usunięte', - 'MCHAT_CLEAR_INPUT' => 'Reset', - 'MCHAT_COPYRIGHT' => 'RMcGirr83 © dmzx', - 'MCHAT_CUSTOM_BBCODES' => 'Custom BBCodes', - 'MCHAT_DELALLMESS' => 'Usunąć wszystkie wiadomości ?', - 'MCHAT_DELCONFIRM' => 'Czy potwierdzasz usunięcie?', - 'MCHAT_DELITE' => 'Usuń', - 'MCHAT_EDIT' => 'Edytuj', - 'MCHAT_EDITINFO' => 'Edytuj wiadomość i wciśnij OK', - 'MCHAT_ENABLE' => 'Przepraszamy, Mini-Chat jest aktualnie niedostępny', - 'MCHAT_ERROR' => 'Błąd', - 'MCHAT_FLOOD' => 'Nie możesz wysłać kolejnej wiadomośći w tak krótkim czasie', - 'MCHAT_FOE' => 'Wiadomośc została wysłana przez użytkownika %1$s który znajduje się na Twojej liście osób ignorowanych.', - 'MCHAT_HELP' => 'mChat Reguamin', - 'MCHAT_HIDE_LIST' => 'ukryj listę', - 'MCHAT_HOUR' => 'godzina ', - 'MCHAT_HOURS' => 'godziny', - 'MCHAT_IP' => 'IP', - 'MCHAT_MINUTE' => 'minut ', - 'MCHAT_MINUTES' => 'minut ', - 'MCHAT_MESS_LONG' => 'Twoja wiadomość jest za długa.\Proszę ogranicz ją do %s znaków', - 'MCHAT_NO_CUSTOM_PAGE' => 'mChat w osobnym oknie jest aktualnie niedostępny!', - 'MCHAT_NO_RULES' => 'The mChat rules page is not activated at this time!', - 'MCHAT_NOACCESS' => 'Nie masz uprawnień do postowania na mChat', - 'MCHAT_NOACCESS_ARCHIVE' => 'Nie masz uprawnień do przeglądania archiwum', - 'MCHAT_NOJAVASCRIPT' => 'Twoja przeglądarka nie wspiera JavaScript albo JavaScript jest wyłączona', - 'MCHAT_NOMESSAGE' => 'Nie ma wiadomości', - 'MCHAT_NOMESSAGEINPUT' => 'Nie wprowadziłeś wiadomości', - 'MCHAT_NOSMILE' => 'Nie znaleziono emotikona', - 'MCHAT_NOTINSTALLED_USER' => 'mChat nie jest zainstalowany. Proszę skontaktuj się z administratorem.', - 'MCHAT_NOT_INSTALLED' => 'W bazie danych mChat brakuje.
Proszę uruchom %sinstalator%s aby wprowadzić zmiany w bazie danych rozszerzenia.', - 'MCHAT_OK' => 'OK', - 'MCHAT_PAUSE' => 'Wstrzymany', - 'MCHAT_LOAD' => 'Wczytuję', - 'MCHAT_PERMISSIONS' => 'Zmień uprawnienia użytkownika', - 'MCHAT_REFRESHING' => 'Odświeżanie...', - 'MCHAT_REFRESH_NO' => 'Auto-aktualizacja jest wyłączona', - 'MCHAT_REFRESH_YES' => 'Automatycznie-aktualizuj co %d sekund', - 'MCHAT_RESPOND' => 'Odpowiedz użytkownikowi', - 'MCHAT_RESET_QUESTION' => 'Wyczyściuć tabelę wprowadzania tekstu ?', - 'MCHAT_SESSION_OUT' => 'Sesja mChat wygasła', - 'MCHAT_SHOW_LIST' => 'Pokaż listę', - 'MCHAT_SECOND' => 'sekunda ', - 'MCHAT_SECONDS' => 'sekundy ', - 'MCHAT_SESSION_ENDS' => 'Sesja mChat zakończona w', - 'MCHAT_SMILES' => 'Emotikony', - 'MCHAT_TOTALMESSAGES' => 'Wszystkie wiadomości %s', - 'MCHAT_USESOUND' => 'Włączyć dźwięk ?', - 'MCHAT_ONLINE_USERS_TOTAL' => 'Aktualnie jest tutaj %d czatujących użytkowników ', - 'MCHAT_ONLINE_USER_TOTAL' => 'Aktualnie %d osoba korzysta z mChatu ', - 'MCHAT_NO_CHATTERS' => 'Nikt nie czatuje', - 'MCHAT_ONLINE_EXPLAIN' => 'Bazuje na użytkownikach aktywnych w ciągu ostatnich %s', - 'WHO_IS_CHATTING' => 'Kto czatuje', - 'WHO_IS_REFRESH_EXPLAIN' => 'Odświeżaj co %d sekund', - 'MCHAT_NEW_TOPIC' => 'Made A New Topic', - 'MCHAT_NEW_REPLY' => 'Made A New Reply', - 'MCHAT_NEW_QUOTE' => 'Replied with a Quote', - 'MCHAT_NEW_EDIT' => 'Made A Edit', - - // UCP - 'UCP_PROFILE_MCHAT' => 'mChat Preferences', - 'DISPLAY_MCHAT' => 'Wyświetlaj mChat na stronie głównej', - 'SOUND_MCHAT' => 'Włącz dźwięk mChatu', - 'DISPLAY_STATS_INDEX' => 'Wyświetlaj kto czatuje w statystykach strony głównej', - 'DISPLAY_NEW_TOPICS' => 'Wyświetlaj nowe tematy na mChacie', - 'DISPLAY_AVATARS' => 'Wyświetlaj avatary na mChacie', - 'CHAT_AREA' => 'Typ wprowadzania', - 'CHAT_AREA_EXPLAIN' => 'Wybierz jaki typ obszaru wybrać do wprowadzania tekstu:
A text area or
an input area', - 'INPUT_AREA' => 'Pasek', - 'TEXT_AREA' => 'Okno', - 'UCP_CAT_MCHAT' => 'mChat', - 'UCP_MCHAT_CONFIG' => 'mChat', - - //Preferences - 'LOG_MCHAT_TABLE_PRUNED' => 'Tabela mChat została wyczyszczona', - 'ACP_USER_MCHAT' => 'mChat Ustawienia', - 'LOG_DELETED_MCHAT' => 'Usuń wiadomości mChat
» %1$s', - 'LOG_EDITED_MCHAT' => 'Edytuj wiadomość mChat
» %1$s', - 'MCHAT_MESSAGE_LNGTH_EXPLAIN' => 'Pozostało znaków: %d', - 'MCHAT_TOP_POSTERS' => 'Top Spammerzy', - 'MCHAT_NEW_CHAT' => 'Nowa wiadomośc na mChacie!', - 'MCHAT_SEND_PM' => 'Wyślij prywatną wiadomość', - - //Custom edits - 'REPLY_WITH_LIKE' => 'Like This Post', -)); diff --git a/language/pl/info_acp_mchat.php b/language/pl/info_acp_mchat.php deleted file mode 100644 index c21ee9e..0000000 --- a/language/pl/info_acp_mchat.php +++ /dev/null @@ -1,166 +0,0 @@ - 'Ustawienia', - 'ACP_CAT_MCHAT' => 'mChat', - 'ACP_MCHAT_TITLE' => 'Mini-Chat', - 'ACP_MCHAT_TITLE_EXPLAIN' => 'Mini chat (aka “shout box”) dla Twojego forum', - 'MCHAT_TABLE_DELETED' => 'Tabela mChat została pomyślnie usunięta', - 'MCHAT_TABLE_CREATED' => 'Tabea mChat została pomyślnie stworzona', - 'MCHAT_TABLE_UPDATED' => 'mChat został pomyślnie zaktualizowany', - 'MCHAT_NOTHING_TO_UPDATE' => 'Nie ma nic do zrobienia....kontynuuj', - 'UCP_CAT_MCHAT' => 'mChat Preferencja', - 'UCP_MCHAT_CONFIG' => 'Preferencje użytkownika', - - // ACP entries - 'ACP_MCHAT_RULES' => 'Regulamin', - 'ACP_MCHAT_RULES_EXPLAIN' => 'Tutaj wprowadź regulamin mChat. Każdy podpunkt w oddzielnej lini.
Limit znaków wynosi 255.
', - 'LOG_MCHAT_CONFIG_UPDATE' => 'Aktualizuj konfigurację mChat', - 'MCHAT_CONFIG_SAVED' => 'Zaktualizowano konfigurację mChat', - 'MCHAT_TITLE' => 'Mini-Chat', - 'MCHAT_VERSION' => 'Wersja:', - 'MCHAT_ENABLE' => 'Włącz rozszerzenie mChat', - 'MCHAT_ENABLE_EXPLAIN' => 'Włącz lub wyłącz rozszerzenie globalnie.', - 'MCHAT_AVATARS' => 'Wyświetlaj avatary', - 'MCHAT_AVATARS_EXPLAIN' => 'Zaznacz TAK aby wyświetlać miniaturki avatarów', - 'MCHAT_ON_INDEX' => 'mChat na stronie głównej', - 'MCHAT_ON_INDEX_EXPLAIN' => 'Zezwól na wyświetlanie mChat na stronie głównej.', - 'MCHAT_INDEX_HEIGHT' => 'Wysokość na stronie głównej', - 'MCHAT_INDEX_HEIGHT_EXPLAIN' => 'Wysokość okna rozmowy w pikselach na stronie głównej.
Limit wynosi od 50 do 1000.', - 'MCHAT_LOCATION' => 'Lokalizacja na forum', - 'MCHAT_LOCATION_EXPLAIN' => 'Wybierz lokalizację mChat na stronie głównej.', - 'MCHAT_TOP_OF_FORUM' => 'Góra', - 'MCHAT_BOTTOM_OF_FORUM' => 'Dół', - 'MCHAT_REFRESH' => 'Odśwież', - 'MCHAT_REFRESH_EXPLAIN' => 'Po ilu sekundach nastąpi automatyczne odświeżanie.
Limit wynosi od 5 do 60 sekund.', - 'MCHAT_PRUNE' => 'Włącz opcję wyczyszczenia wiadomości', - 'MCHAT_PRUNE_EXPLAIN' => 'Jeśli zaznaczono tak, opcja wyczyszczenia wiadomości będzie dostępna.
Tylko wtedy, jeśli użytkownik wyświetli stronę niestandardową lub archiwum.', - 'MCHAT_PRUNE_NUM' => 'Ilość wyczyszczonych wiadomości', - 'MCHAT_PRUNE_NUM_EXPLAIN' => 'Wpisz liczbę', - 'MCHAT_MESSAGE_LIMIT' => 'Limit wiadomości', - 'MCHAT_MESSAGE_LIMIT_EXPLAIN' => 'Ilość wiadomości wyświetlana w oknie mChat.
Rekomendowane od 10 do 30.', - 'MCHAT_MESSAGE_NUM' => 'Limit wiadomości na stronie głównej', - 'MCHAT_MESSAGE_NUM_EXPLAIN' => 'Maksymalna ilość wiadomości wyświetlana w mChat na stronie głównej.
Rekomendowane od 10 do 30.', - 'MCHAT_ARCHIVE_LIMIT' => 'Limit Archiwum', - 'MCHAT_ARCHIVE_LIMIT_EXPLAIN' => 'Maksymalna ilość wiadomości wyświetlana na jednej stronie archiwum.
Rekomendowane od 25 do 50.', - 'MCHAT_FLOOD_TIME' => 'Czas blokady antyspamowej', - 'MCHAT_FLOOD_TIME_EXPLAIN' => 'Ilość sekund jaką musi odczekać użytkownik, aby wysłać następną wiadomość.
Rekomendowane od 5 do 30, ustaw 0 aby wyłączyć limit.', - 'MCHAT_MAX_MESSAGE_LENGTH' => 'Maksymalna długośc wiadomości', - 'MCHAT_MAX_MESSAGE_LENGTH_EXPLAIN' => 'Maksymalna ilość znaków jaką można użyć w jednej wiadomości.
Rekomendowane od 100 do 500, ustaw 0 aby wyłączyć limit.', - 'MCHAT_CUSTOM_PAGE' => 'Strona niestandardowa', - 'MCHAT_CUSTOM_PAGE_EXPLAIN' => 'Zewól na używanie strony niestandardowej', - 'MCHAT_CUSTOM_HEIGHT' => 'Wysokość strony niestandardowej', - 'MCHAT_CUSTOM_HEIGHT_EXPLAIN' => 'Wysokość okna rozmowy w pikselach na osobnej stronie mChat.
Limit wynosi od 50 do 1000.', - 'MCHAT_DATE_FORMAT' => 'Format Daty', - 'MCHAT_DATE_FORMAT_EXPLAIN' => 'Użyta składnia jest taka sama jak w PHP.', - 'MCHAT_CUSTOM_DATEFORMAT' => 'Niestandardowa…', - 'MCHAT_WHOIS' => 'Kto aktualnie czatuje', - 'MCHAT_WHOIS_EXPLAIN' => 'Pozwala na wyświetlanie użytkowników, którzy aktualnie korzystają z mChat', - 'MCHAT_WHOIS_REFRESH' => 'Odświeżanie czatujących użytkowników', - 'MCHAT_WHOIS_REFRESH_EXPLAIN' => 'Po ilu sekundach nastąpi automatyczne odświeżanie czatujących użytkowników.
Limit wynosi od 30 do 300 sekund.', - 'MCHAT_BBCODES_DISALLOWED' => 'Niedozwolone bbcodes', - 'MCHAT_BBCODES_DISALLOWED_EXPLAIN' => 'Tutaj umieść bbcodes których nie będzie można używać w wiadomościach.
Oddziel bbcodes pionową kreską, na przykład:
b|i|u|code|list|list=|flash|quote i/lub %wybierz z tych%s', - 'MCHAT_STATIC_MESSAGE' => 'Ogłoszenie', - 'MCHAT_STATIC_MESSAGE_EXPLAIN' => 'Tutaj możesz umieścić ogłoszenie które wyświetli się osobą korzystającym z mChat. kod HTML jest dozwolony.
Zostaw puste aby wyłączyć wyświetlanie. Limit wynosi max 255 znaków.
', - 'MCHAT_USER_TIMEOUT' => 'Limit czasu dla użytkownika', - 'MCHAT_USER_TIMEOUT_EXPLAIN' => 'Ustaw czas w sekundach do zakończenia sesji użytkownika. Ustaw 0 aby wyłączyć.
Limit znajdziesz %stutaj%s aktualnie jest ustawione na %s sekund', - 'MCHAT_OVERRIDE_SMILIE_LIMIT' => 'Limit emotikon', - 'MCHAT_OVERRIDE_SMILIE_LIMIT_EXPLAIN' => 'Zaznacz TAK aby włączyć limit emotikon używanych w wiadmościach mChat', - 'MCHAT_OVERRIDE_MIN_POST_CHARS' => 'Limit znaków', - 'MCHAT_OVERRIDE_MIN_POST_CHARS_EXPLAIN' => 'Zaznacz TAK aby włączyć limit znaków używanych w wiadomościach mChat', - 'MCHAT_NEW_POSTS' => 'Enable Posts Display', - 'MCHAT_NEW_POSTS_EXPLAIN' => 'Set to yes and you can set below the options what message to display in the chat message area.', - 'MCHAT_NEW_POSTS_TOPIC' => 'Display New Topic Posts', - 'MCHAT_NEW_POSTS_TOPIC_EXPLAIN' => 'Set to yes to allow new topic posts from the forum to be posted into the chat message area.', - 'MCHAT_NEW_POSTS_REPLY' => 'Display New Replied Posts', - 'MCHAT_NEW_POSTS_REPLY_EXPLAIN' => 'Set to yes to allow replied posts from the forum to be posted into the chat message area.', - 'MCHAT_NEW_POSTS_EDIT' => 'Display Edited Posts', - 'MCHAT_NEW_POSTS_EDIT_EXPLAIN' => 'Set to yes to allow edited posts from the forum to be posted into the chat message area.', - 'MCHAT_NEW_POSTS_QUOTE' => 'Display Quoted Posts', - 'MCHAT_NEW_POSTS_QUOTE_EXPLAIN' => 'Set to yes to allow quoted posts from the forum to be posted into the chat message area.', - 'MCHAT_MAIN' => 'Główne ustawienia', - 'MCHAT_STATS' => 'Kto czatuje ?', - 'MCHAT_STATS_INDEX' => 'Statystyki na stronie głównej', - 'MCHAT_STATS_INDEX_EXPLAIN' => 'Pokaż kto korzysta z mChat w dziale statystyki na stronie głównej', - 'MCHAT_MESSAGE_TOP' => 'Keep message on Bottom / Top', - 'MCHAT_MESSAGE_TOP_EXPLAIN' => 'This will post the message bottom or top in the chat message area.', - 'MCHAT_BOTTOM' => 'Bottom', - 'MCHAT_TOP' => 'Top', - 'MCHAT_MESSAGES' => 'Ustawienia wiadomości', - 'MCHAT_PAUSE_ON_INPUT' => 'Auto-aktuaizacja podczas pisania wiadomości', - 'MCHAT_PAUSE_ON_INPUT_EXPLAIN' => 'Zaznacz TAK aby nie auto-aktualizować mChatu gdy użytkownik pisze wiadomość', - - // Error reporting - 'TOO_LONG_DATE' => 'Format day który wpisałeś jest za długi.', - 'TOO_SHORT_DATE' => 'Format day który wpisałeś jest za krótki.', - 'TOO_SMALL_REFRESH' => 'Ustawiona wartość odświeżania jest za mała.', - 'TOO_LARGE_REFRESH' => 'Ustawiona wartość odświeżania jest za duża.', - 'TOO_SMALL_MESSAGE_LIMIT' => 'Ustawiona wartośc limitu wiadomości jest za mała.', - 'TOO_LARGE_MESSAGE_LIMIT' => 'Ustawiona wartośc limitu wiadomości jest za duża.', - 'TOO_SMALL_ARCHIVE_LIMIT' => 'Ustawiona wartość limitu archiwum jest za mała.', - 'TOO_LARGE_ARCHIVE_LIMIT' => 'Ustawiona wartość limitu archiwum jest za duża.', - 'TOO_SMALL_FLOOD_TIME' => 'Ustawiona wartośc limitu antyspamowego jest za mała.', - 'TOO_LARGE_FLOOD_TIME' => 'Ustawiona wartośc limitu antyspamowego jest za duża.', - 'TOO_SMALL_MAX_MESSAGE_LNGTH' => 'Ustawiona wartość długości wiadomości jest za mała.', - 'TOO_LARGE_MAX_MESSAGE_LNGTH' => 'Ustawiona wartość długości wiadomości jest za duża.', - 'TOO_SMALL_MAX_WORDS_LNGTH' => 'Ustawiona wartość długości słowa jest za mała.', - 'TOO_LARGE_MAX_WORDS_LNGTH' => 'Ustawiona wartość długości słowa jest za duża.', - 'TOO_SMALL_WHOIS_REFRESH' => 'Ustawiona wartość odświeżania osób czatujących jest za mała.', - 'TOO_LARGE_WHOIS_REFRESH' => 'Ustawiona wartość odświeżania osób czatujących jest za duża.', - 'TOO_SMALL_INDEX_HEIGHT' => 'Ustawiona wartość wysokości mChat na stronie głównej jest za mała.', - 'TOO_LARGE_INDEX_HEIGHT' => 'Ustawiona wartość wysokości mChat na stronie głównej jest za duża.', - 'TOO_SMALL_CUSTOM_HEIGHT' => 'Ustawiona wartość wysokości strony niestandardowej mChat jest za mała.', - 'TOO_LARGE_CUSTOM_HEIGHT' => 'Ustawiona wartość wysokości strony niestandardowej mChat jest za duża.', - 'TOO_SHORT_STATIC_MESSAGE' => 'Ustawiona wartość limitu czasu dla użytkownika jest za mała.', - 'TOO_LONG_STATIC_MESSAGE' => 'Ustawiona wartość limitu czasu dla użytkownika jest za duża.', - 'TOO_SMALL_TIMEOUT' => 'Ustawiona wartość ogłoszenia jest za mała.', - 'TOO_LARGE_TIMEOUT' => 'Ustawiona wartość ogłoszenia jest za duża.', - - // User perms - 'ACL_U_MCHAT_USE' => 'Może używać mChat', - 'ACL_U_MCHAT_VIEW' => 'Może przeglądać mChat', - 'ACL_U_MCHAT_EDIT' => 'Może edytować wiadomości mChat', - 'ACL_U_MCHAT_DELETE' => 'Może usuwać wiadomości mChat', - 'ACL_U_MCHAT_IP' => 'Może sprawdzać adres IP użytkownika mChat', - 'ACL_U_MCHAT_FLOOD_IGNORE' => 'Może ignorować mChat', - 'ACL_U_MCHAT_ARCHIVE' => 'Może przeglądać archiwum mChat', - 'ACL_U_MCHAT_BBCODE' => 'Może używać bbcode mChat', - 'ACL_U_MCHAT_SMILIES' => 'Może używać emotikony mChat', - 'ACL_U_MCHAT_URLS' => 'Może wprowadzać adresy url mChat', - - // Admin perms - 'ACL_A_MCHAT' => 'Może zarządzać ustawieniami Mchat', -)); diff --git a/language/pt-br/common.php b/language/pt-br/common.php deleted file mode 100644 index 596a7e8..0000000 --- a/language/pt-br/common.php +++ /dev/null @@ -1,128 +0,0 @@ - 'Chat', - 'MCHAT_ADD' => 'Enviar', - 'MCHAT_IN' => 'na seção', - 'MCHAT_IN_SECTION' => ' ', - 'MCHAT_LIKES' => 'Gostei desta mensagem', - 'MCHAT_ANNOUNCEMENT' => 'Anúncio', - 'MCHAT_ARCHIVE' => 'Histórico', - 'MCHAT_ARCHIVE_PAGE' => 'Histórico do mChat', - 'MCHAT_BBCODES' => 'BBCodes', - 'MCHAT_CLEAN' => 'Limpeza', - 'MCHAT_CLEANED' => 'Todas as mensagens foram removidas', - 'MCHAT_CLEAR_INPUT' => 'Reset', - 'MCHAT_COPYRIGHT' => 'RMcGirr83 © dmzx', - 'MCHAT_CUSTOM_BBCODES' => 'BBCodes personalizados', - 'MCHAT_DELALLMESS' => 'Remover todas as mensagens?', - 'MCHAT_DELCONFIRM' => 'Confirma a exclusão?', - 'MCHAT_DELITE' => 'Excluir', - 'MCHAT_EDIT' => 'Editar', - 'MCHAT_EDITINFO' => 'Edite a mensagem e clique OK', - 'MCHAT_ENABLE' => 'Desculpe, o mChat está indisponível no momento', - 'MCHAT_ERROR' => 'Erro', - 'MCHAT_FLOOD' => 'Você não pode postar uma mensagem logo após postar a última', - 'MCHAT_FOE' => 'Esta mensagem foi feita por %1$s o qual está atualmente na sua lista de ignorados.', - 'MCHAT_HELP' => 'Regras do mChat', - 'MCHAT_HIDE_LIST' => 'Lista de ignorados', - 'MCHAT_HOUR' => 'hora ', - 'MCHAT_HOURS' => 'horas', - 'MCHAT_IP' => 'Whois para', - 'MCHAT_MINUTE' => 'minuto ', - 'MCHAT_MINUTES' => 'minutos ', - 'MCHAT_MESS_LONG' => 'Sua mensagem é muito grande.\nO limite é de %s caracteres', - 'MCHAT_NO_CUSTOM_PAGE' => 'A página personalizada do mChat não está ativada neste momento!', - 'MCHAT_NO_RULES' => 'A página de regras do mChat não está ativa neste momento!', - 'MCHAT_NOACCESS' => 'Você não tem permissão para postar no mChat', - 'MCHAT_NOACCESS_ARCHIVE' => 'Você não tem permissão para ver o histórico', - 'MCHAT_NOJAVASCRIPT' => 'Seu browser não suporta JavaScript ou está desabilitado', - 'MCHAT_NOMESSAGE' => 'Não há mensagens', - 'MCHAT_NOMESSAGEINPUT' => 'Você não digitou uma mensagem', - 'MCHAT_NOSMILE' => 'Smilies não encontrados', - 'MCHAT_NOTINSTALLED_USER' => 'mChat não está instalado. Por favor avise um moderador.', - 'MCHAT_NOT_INSTALLED' => 'Estão faltando entradas no banco de dados.
Rode o %sinstalador%s para corrigir isso.', - 'MCHAT_OK' => 'OK', - 'MCHAT_PAUSE' => 'Pausado', - 'MCHAT_LOAD' => 'Carregando', - 'MCHAT_PERMISSIONS' => 'Altera as permissões do usuário', - 'MCHAT_REFRESHING' => 'Atualizando...', - 'MCHAT_REFRESH_NO' => 'Atualização automática está desligada', - 'MCHAT_REFRESH_YES' => 'Atualização automática a cada %d segundos', - 'MCHAT_RESPOND' => 'Responder ao usuário', - 'MCHAT_RESET_QUESTION' => 'Limpar a área de digitação?', - 'MCHAT_SESSION_OUT' => 'A sessão do mChat expirou', - 'MCHAT_SHOW_LIST' => 'Mostra Lista', - 'MCHAT_SECOND' => 'segundo ', - 'MCHAT_SECONDS' => 'segundos ', - 'MCHAT_SESSION_ENDS' => 'A sessão do mChat termina em', - 'MCHAT_SMILES' => 'Smilies', - 'MCHAT_TOTALMESSAGES' => 'Total de mensagens: %s', - 'MCHAT_USESOUND' => 'Ativar som:', - 'MCHAT_ONLINE_USERS_TOTAL' => 'No total há %d usuários conversando', - 'MCHAT_ONLINE_USER_TOTAL' => 'No total há %d usuário conversando', - 'MCHAT_NO_CHATTERS' => 'Ninguém conversando', - 'MCHAT_ONLINE_EXPLAIN' => 'baseado em usuários ativos em %s', - 'WHO_IS_CHATTING' => 'Quem está conversando', - 'WHO_IS_REFRESH_EXPLAIN' => 'Atualiza a cada %d segundos', - 'MCHAT_NEW_TOPIC' => 'Criou', - 'MCHAT_NEW_REPLY' => 'Respondeu', - 'MCHAT_NEW_QUOTE' => 'Respondeu citando', - 'MCHAT_NEW_EDIT' => 'Editou', - - // UCP - 'UCP_PROFILE_MCHAT' => 'Preferências do mChat', - 'DISPLAY_MCHAT' => 'Mostrar mChat no índice', - 'SOUND_MCHAT' => 'Ativar som no mChat', - 'DISPLAY_STATS_INDEX' => 'Mostrar "Quem está Conversando" no índice', - 'DISPLAY_NEW_TOPICS' => 'Mostrar novos tópicos e mensagens no mChat', - 'DISPLAY_AVATARS' => 'Mostrar avatares no mChat', - 'CHAT_AREA' => 'Tipo de entrada', - 'CHAT_AREA_EXPLAIN' => 'Escolhe como digitar no mChat:
Área de texto ou
Área de digitação', - 'INPUT_AREA' => 'Área de digitação', - 'TEXT_AREA' => 'Área de texto', - 'UCP_CAT_MCHAT' => 'mChat', - 'UCP_MCHAT_CONFIG' => 'mChat', - - // Preferences - 'LOG_MCHAT_TABLE_PRUNED' => 'Tabela mChat foi limpa', - 'ACP_USER_MCHAT' => 'Configurações do mChat', - 'LOG_DELETED_MCHAT' => 'Mensagem do mChat deletada
» %1$s', - 'LOG_EDITED_MCHAT' => 'Mensagem do mChat editada
» %1$s', - 'MCHAT_MESSAGE_LNGTH_EXPLAIN' => 'Caracteres restantes: %d', - 'MCHAT_TOP_POSTERS' => 'Top usuários', - 'MCHAT_NEW_CHAT' => 'Nova mensagem no mChat!', - 'MCHAT_SEND_PM' => 'Enviar mensagem privada', - - // Custom edits - 'REPLY_WITH_LIKE' => 'Gostei desta mensagem', -)); diff --git a/language/pt-br/info_acp_mchat.php b/language/pt-br/info_acp_mchat.php deleted file mode 100644 index 424b1e5..0000000 --- a/language/pt-br/info_acp_mchat.php +++ /dev/null @@ -1,169 +0,0 @@ - 'Configuração', - 'ACP_CAT_MCHAT' => 'mChat', - 'ACP_MCHAT_TITLE' => 'mChat', - 'ACP_MCHAT_TITLE_EXPLAIN' => 'Um mini chat para seu fórum', - 'MCHAT_TABLE_DELETED' => 'A tabela do mChat foi excluída com sucesso', - 'MCHAT_TABLE_CREATED' => 'A tabela do mChat foi criada com sucesso', - 'MCHAT_TABLE_UPDATED' => 'A tabela do mChat foi atualizada com sucesso', - 'MCHAT_NOTHING_TO_UPDATE' => 'Nada a atualizar... Continuando', - 'UCP_CAT_MCHAT' => 'Preferêncas do mChat', - 'UCP_MCHAT_CONFIG' => 'Preferêncas do usuário mChat', - - // ACP entries - 'ACP_MCHAT_RULES' => 'Regras do mChat', - 'ACP_MCHAT_RULES_EXPLAIN' => 'Digite as regras do mChat aqui. Cada regra em uma linha.
Limitado a 255 characters.
Esta mensagem pode ser traduzida. (edite o arquivo mchat_lang.php e leia as instruções).', - 'LOG_MCHAT_CONFIG_UPDATE' => 'Configurações atualizadas', - 'MCHAT_CONFIG_SAVED' => 'As configurações foram atualizadas', - 'MCHAT_TITLE' => 'mChat', - 'MCHAT_VERSION' => 'Versão:', - 'MCHAT_ENABLE' => 'Ativar o mChat', - 'MCHAT_ENABLE_EXPLAIN' => 'Ativa ou desativa o mChat completamente.', - 'MCHAT_AVATARS' => 'Mostrar avatares', - 'MCHAT_AVATARS_EXPLAIN' => 'Se SIM, mostra miniaturas dos avatares.', - 'MCHAT_ON_INDEX' => 'Mostrar mChat no índice', - 'MCHAT_ON_INDEX_EXPLAIN' => 'Se SIM, mostra o mChat no índice.', - 'MCHAT_INDEX_HEIGHT' => 'Altura do mChat no índice', - 'MCHAT_INDEX_HEIGHT_EXPLAIN' => 'Define a altura em pixels do mChat no índice.
Limitado entre 50 e 1000.', - 'MCHAT_LOCATION' => 'Localização no fórum', - 'MCHAT_LOCATION_EXPLAIN' => 'Defina a localização do mChat no índice.', - 'MCHAT_TOP_OF_FORUM' => 'Em cima', - 'MCHAT_BOTTOM_OF_FORUM' => 'Embaixo', - 'MCHAT_REFRESH' => 'Tempo de atualização', - 'MCHAT_REFRESH_EXPLAIN' => 'Número de segundos antes de atualizar automaticamente.
Limitado entre 5 e 60 segundos.', - 'MCHAT_PRUNE' => 'Habilitar a limpeza', - 'MCHAT_PRUNE_EXPLAIN' => 'Se SIM, habilita o recurso de limpeza.
Somente ocorre se o usuário visualiza a página personalizada ou o histórico.', - 'MCHAT_PRUNE_NUM' => 'Quantidade a manter', - 'MCHAT_PRUNE_NUM_EXPLAIN' => 'Define a quantidade de mensagens a manter no mChat.', - 'MCHAT_MESSAGE_LIMIT' => 'Limite de mensagens', - 'MCHAT_MESSAGE_LIMIT_EXPLAIN' => 'Define a quantidade máxima de mensagens a mostrar no mChat.
Recomendado de 10 a 30.', - 'MCHAT_MESSAGE_NUM' => 'Limite de mensagens no índice', - 'MCHAT_MESSAGE_NUM_EXPLAIN' => 'Define a quantidade máxima de mensagens a mostrar no índice.
Recomendado de 10 a 50.', - 'MCHAT_ARCHIVE_LIMIT' => 'Limite do histórico', - 'MCHAT_ARCHIVE_LIMIT_EXPLAIN' => 'Define o número máximo de mensagens por página a mostrar no histórico.
Recomendado de 25 a 50.', - 'MCHAT_FLOOD_TIME' => 'Tempo entre postagens', - 'MCHAT_FLOOD_TIME_EXPLAIN' => 'Define quantos segundos o usuário deve esperar entre uma nova mensagem e a última.
Recomendado de 5 a 30, 0 para desabilitar.', - 'MCHAT_MAX_MESSAGE_LENGTH' => 'Tamanho máximo da mensagem', - 'MCHAT_MAX_MESSAGE_LENGTH_EXPLAIN' => 'Define a quantidade máxima de caracteres por mensagem.
Recomendado de 100 a 500, 0 para desabilitar.', - 'MCHAT_CUSTOM_PAGE' => 'Página personalizada', - 'MCHAT_CUSTOM_PAGE_EXPLAIN' => 'Permite o uso de uma página personalizada.', - 'MCHAT_CUSTOM_HEIGHT' => 'Altura do mChat na página personalizada', - 'MCHAT_CUSTOM_HEIGHT_EXPLAIN' => 'Define a altura em pixels do mChat na página personalizada.
Limitado entre 50 e 1000.', - 'MCHAT_DATE_FORMAT' => 'Formato da data', - 'MCHAT_DATE_FORMAT_EXPLAIN' => 'A sintaxe é a mesma da função date() do PHP.', - 'MCHAT_CUSTOM_DATEFORMAT' => 'Personalizar formato da data', - 'MCHAT_WHOIS' => 'Mostrar Quem está conversando', - 'MCHAT_WHOIS_EXPLAIN' => 'Mostra Quem está conversando.', - 'MCHAT_WHOIS_REFRESH' => 'Atualiza Quem está conversando', - 'MCHAT_WHOIS_REFRESH_EXPLAIN' => 'Define o número de segundos entre as atualizações de Quem está conversando.
Limitado entre 30 e 300 segundos.', - 'MCHAT_BBCODES_DISALLOWED' => 'BBCodes desabilitados', - 'MCHAT_BBCODES_DISALLOWED_EXPLAIN' => 'Coloque aqui os BBCodes que NÃO estarão disponíveis para uso nas mensagens.
Separe os BBCodes com uma barra vertical, por exemplo:
b|i|u|code|list|list=|flash|quote', - 'MCHAT_STATIC_MESSAGE' => 'Anúncio', - 'MCHAT_STATIC_MESSAGE_EXPLAIN' => 'Define uma mensagem a ser mostrada em destaque no mChat.
Códigos HTML são permitidos. Deixe em branco para desabilitar.
Limitado a 255 characters.
Esta mensagem pode ser traduzida. (edite o arquivo mchat_lang.php e leia as instruções).', - 'MCHAT_USER_TIMEOUT' => 'Timeout do usuário', - 'MCHAT_USER_TIMEOUT_EXPLAIN' => 'Define a quantidade de segundos até a sessão do usuário expirar, 0 para desabilitar.
Limitado à %sconfiguração de sessões do fórum%s a qual atualmente é de %s segundos.', - 'MCHAT_OVERRIDE_SMILIE_LIMIT' => 'Ignorar limite de smilies', - 'MCHAT_OVERRIDE_SMILIE_LIMIT_EXPLAIN' => 'Se SIM, ignora o limite máximo de smilies definido para o fórum.', - 'MCHAT_OVERRIDE_MIN_POST_CHARS' => 'Ignorar limite mínimo de caracteres', - 'MCHAT_OVERRIDE_MIN_POST_CHARS_EXPLAIN' => 'Se SIM, ignora o limite mínimo de caracteres definido para o fórum.', - 'MCHAT_NEW_POSTS' => 'Habilitar o recurso de exibir as mensagens do fórum', - 'MCHAT_NEW_POSTS_EXPLAIN' => 'Se SIM, mostra tópicos e mensagens diretamente no mChat.', - 'MCHAT_NEW_POSTS_TOPIC' => 'Mostrar novos tópicos e mensagens', - 'MCHAT_NEW_POSTS_TOPIC_EXPLAIN' => 'Se SIM, mostra novos tópicos e mensagens diretamente no mChat.', - 'MCHAT_NEW_POSTS_REPLY' => 'Mostrar novas respostas', - 'MCHAT_NEW_POSTS_REPLY_EXPLAIN' => 'Se SIM, mostra novas respostas diretamente no mChat.', - 'MCHAT_NEW_POSTS_EDIT' => 'Mostrar mensagens editadas', - 'MCHAT_NEW_POSTS_EDIT_EXPLAIN' => 'Se SIM, mostra mensagens editadas diretamente no mChat.', - 'MCHAT_NEW_POSTS_QUOTE' => 'Mostrar mensagens com citação', - 'MCHAT_NEW_POSTS_QUOTE_EXPLAIN' => 'Se SIM, mostra mensagens com citação diretamente no mChat.', - 'MCHAT_MAIN' => 'Configuração principal', - 'MCHAT_STATS' => 'Quem está conversando', - 'MCHAT_STATS_INDEX' => 'Estatísticas no índice', - 'MCHAT_STATS_INDEX_EXPLAIN' => 'Mostra "Quem está conversando" nas estatísticas do índice.', - 'MCHAT_MESSAGE_TOP' => 'Posição das novas mensagens', - 'MCHAT_MESSAGE_TOP_EXPLAIN' => 'Define se novas mensagens aparecerão na parte de baixo ou de cima no mChat.', - 'MCHAT_BOTTOM' => 'Embaixo', - 'MCHAT_TOP' => 'Em cima', - 'MCHAT_MESSAGES' => 'Configurações das mensagens', - 'MCHAT_PAUSE_ON_INPUT' => 'Pausar durante a digitação', - 'MCHAT_PAUSE_ON_INPUT_EXPLAIN' => 'Se SIM, o mChat não atualiza durante a digitação de uma mensagem.', - - // Error reporting - 'TOO_LONG_DATE' => 'O formato da data é muito grande.', - 'TOO_SHORT_DATE' => 'O formato da data é muito pequeno.', - 'TOO_SMALL_REFRESH' => 'O valor da atualização é muito pequeno.', - 'TOO_LARGE_REFRESH' => 'O valor da atualização é muito grande.', - 'TOO_SMALL_MESSAGE_LIMIT' => 'As mensagens máximas são muito pequenas.', - 'TOO_LARGE_MESSAGE_LIMIT' => 'As mensagens máximas são muito grandes.', - 'TOO_SMALL_ARCHIVE_LIMIT' => 'O histórico é muito pequeno.', - 'TOO_LARGE_ARCHIVE_LIMIT' => 'O histórico é muito grande.', - 'TOO_SMALL_FLOOD_TIME' => 'O tempo entre postagens é muito pequeno.', - 'TOO_LARGE_FLOOD_TIME' => 'O tempo entre postagens é muito grande.', - 'TOO_SMALL_MAX_MESSAGE_LNGTH' => 'O tamanho das mensagens é muito pequeno.', - 'TOO_LARGE_MAX_MESSAGE_LNGTH' => 'O tamanho das mensagens é muito grande.', - 'TOO_SMALL_MAX_WORDS_LNGTH' => 'A quantidade máxima de caracteres é muito pequena.', - 'TOO_LARGE_MAX_WORDS_LNGTH' => 'A quantidade máxima de caracteres é muito grande.', - 'TOO_SMALL_WHOIS_REFRESH' => 'A atualização de Quem está conversando é muito pequena.', - 'TOO_LARGE_WHOIS_REFRESH' => 'A atualização de Quem está conversando é muito grande.', - 'TOO_SMALL_INDEX_HEIGHT' => 'A altura máxima no índice é muito pequena.', - 'TOO_LARGE_INDEX_HEIGHT' => 'A altura máxima no índice é muito grande.', - 'TOO_SMALL_CUSTOM_HEIGHT' => 'A altura máxima personalizada é muito pequena.', - 'TOO_LARGE_CUSTOM_HEIGHT' => 'A altura máxima personalizada é muito grande.', - 'TOO_SHORT_STATIC_MESSAGE' => 'O anúncio é muito pequeno.', - 'TOO_LONG_STATIC_MESSAGE' => 'O anúncio é muito grande.', - 'TOO_SMALL_TIMEOUT' => 'O timeout é muito pequeno.', - 'TOO_LARGE_TIMEOUT' => 'O timeout é muito grande.', - - // User perms - 'ACL_U_MCHAT_USE' => 'Pode usar o mChat', - 'ACL_U_MCHAT_VIEW' => 'Pode ver o mChat', - 'ACL_U_MCHAT_EDIT' => 'Pode editar mensagens no mChat', - 'ACL_U_MCHAT_DELETE' => 'Pode deletar mensagens no mChat', - 'ACL_U_MCHAT_IP' => 'Pode ver endereços IP no mChat', - 'ACL_U_MCHAT_PM' => 'Pode usar MPs no mChat', - 'ACL_U_MCHAT_LIKE' => 'Pode usar o "Gostei da mensagem" no mChat', - 'ACL_U_MCHAT_QUOTE' => 'Pode citar no mChat', - 'ACL_U_MCHAT_FLOOD_IGNORE' => 'Pode ignorar tempo de fllod no mChat', - 'ACL_U_MCHAT_ARCHIVE' => 'Pode ver o histórico do mChat', - 'ACL_U_MCHAT_BBCODE' => 'Pode usar BBCodes no mChat', - 'ACL_U_MCHAT_SMILIES' => 'Pode usar smilies no mChat', - 'ACL_U_MCHAT_URLS' => 'Pode postar URLs no mChat', - - // Admin perms - 'ACL_A_MCHAT' => 'Pode gerenciar as configurações do mChat', -)); diff --git a/language/pt/common.php b/language/pt/common.php deleted file mode 100644 index 0e60abe..0000000 --- a/language/pt/common.php +++ /dev/null @@ -1,128 +0,0 @@ - 'Mini-Chat', - 'MCHAT_ADD' => 'Enviar', - 'MCHAT_IN' => 'em', - 'MCHAT_IN_SECTION' => 'seção', - 'MCHAT_LIKES' => 'Eu gosta desta mensagem', - 'MCHAT_ANNOUNCEMENT' => 'Anuncio', - 'MCHAT_ARCHIVE' => 'Arquivo', - 'MCHAT_ARCHIVE_PAGE' => 'Arquivo de Mini-Chat', - 'MCHAT_BBCODES' => 'BBCodes', - 'MCHAT_CLEAN' => 'Purgar', - 'MCHAT_CLEANED' => 'Todas as mensagens foram apagados', - 'MCHAT_CLEAR_INPUT' => 'Reset', - 'MCHAT_COPYRIGHT' => 'RMcGirr83 © dmzx', - 'MCHAT_CUSTOM_BBCODES' => 'BBCodes personalizados', - 'MCHAT_DELALLMESS' => 'Apagar todas as mensagens?', - 'MCHAT_DELCONFIRM' => 'Confirmar a eliminacão?', - 'MCHAT_DELITE' => 'Excluir', - 'MCHAT_EDIT' => 'Editar', - 'MCHAT_EDITINFO' => 'Editar a mensagem e clik em OK', - 'MCHAT_ENABLE' => 'Perdão, o Mini-Chat actualmente no está disponível', - 'MCHAT_ERROR' => 'Error', - 'MCHAT_FLOOD' => 'Você não pode enviar outra mensagem tão rapido, depois de enviar a última', - 'MCHAT_FOE' => 'Esta mensagem foi criada por %1$s que se encontra actualmente na sua lista de ignorados.', - 'MCHAT_HELP' => 'mChat Regras', - 'MCHAT_HIDE_LIST' => 'Ocultar lista', - 'MCHAT_HOUR' => 'hora ', - 'MCHAT_HOURS' => 'horas ', - 'MCHAT_IP' => 'IP whois para', - 'MCHAT_MINUTE' => 'minuto ', - 'MCHAT_MINUTES' => 'minutos ', - 'MCHAT_MESS_LONG' => 'Sua mensagem é muito longo.\nPor favor, o limite está em %s caracteres', - 'MCHAT_NO_CUSTOM_PAGE' => 'A página personalizada de mChat não está activada neste momento!', - 'MCHAT_NOACCESS' => 'Nâo tem permissões para enviar mensagens no mChat', - 'MCHAT_NO_RULES' => 'A página de regras mChat não é ativado neste momento!', - 'MCHAT_NOACCESS_ARCHIVE' => 'Não tem permissões para ver o arquivo', - 'MCHAT_NOJAVASCRIPT' => 'O seu navegador não suporta JavaScript o JavaScript esta desactivado', - 'MCHAT_NOMESSAGE' => 'Não há mensagens', - 'MCHAT_NOMESSAGEINPUT' => 'Você deve digitar uma mensagem', - 'MCHAT_NOSMILE' => 'Nenhum emoticons encontrados', - 'MCHAT_NOTINSTALLED_USER' => 'mChat não esta instalado. Por favor, avise o fundador do fórum.', - 'MCHAT_NOT_INSTALLED' => 'Faltam entradas na base de dados do mChat .
Por favor, corra o %sinstalador%s para criar mudanças de modificação na base de dados.', - 'MCHAT_OK' => 'OK', - 'MCHAT_PAUSE' => 'Pausado', - 'MCHAT_LOAD' => 'Cargando', - 'MCHAT_PERMISSIONS' => 'Alterar permissões de usuario', - 'MCHAT_REFRESHING' => 'Recarregar...', - 'MCHAT_REFRESH_NO' => 'Atualização automatica está desligada', - 'MCHAT_REFRESH_YES' => 'Atualizar a cada %d segundos', - 'MCHAT_RESPOND' => 'Responder ao usuario', - 'MCHAT_RESET_QUESTION' => 'Limpar a area de entrada?', - 'MCHAT_SESSION_OUT' => 'A sessão do Chat expirou', - 'MCHAT_SHOW_LIST' => 'Mostrar lista', - 'MCHAT_SECOND' => 'segundo ', - 'MCHAT_SECONDS' => 'segundos ', - 'MCHAT_SESSION_ENDS' => 'A sessão do Chat finaliza em', - 'MCHAT_SMILES' => 'Emoções', - 'MCHAT_TOTALMESSAGES' => 'Total mensagens: %s', - 'MCHAT_USESOUND' => 'Activar som', - 'MCHAT_ONLINE_USERS_TOTAL' => 'No total há %d usuarios conversando ', - 'MCHAT_ONLINE_USER_TOTAL' => 'No total há %d usuario conversando ', - 'MCHAT_NO_CHATTERS' => 'Ninguém conversando', - 'MCHAT_ONLINE_EXPLAIN' => '( baseada em usuários ativos nos últimos %s)', - 'WHO_IS_CHATTING' => 'Quem esta conversando', - 'WHO_IS_REFRESH_EXPLAIN' => 'Recarregar a cada %d segundos', - 'MCHAT_NEW_TOPIC' => 'Novo Tópico ', - 'MCHAT_NEW_REPLY' => 'Nova Resposta', - 'MCHAT_NEW_QUOTE' => 'Resposta Citando', - 'MCHAT_NEW_EDIT' => 'Editado', - - // UCP - 'UCP_PROFILE_MCHAT' => 'Preferencias do mChat', - 'DISPLAY_MCHAT' => 'Mostrar mChat no índice', - 'SOUND_MCHAT' => 'Activar som no mChat', - 'DISPLAY_STATS_INDEX' => 'Mostrar estatísticas de quem esta conversando na página índice', - 'DISPLAY_NEW_TOPICS' => 'Mostrar novos topicos no Chat', - 'DISPLAY_AVATARS' => 'Mostrar avatars no Chat', - 'CHAT_AREA' => 'Tipo de entrada', - 'CHAT_AREA_EXPLAIN' => 'Escolher que tipo de área utilizada no bate-papo de entrada:
área de texto o
uma área de entrada (uma línha).', - 'INPUT_AREA' => 'Área de entrada (linha)', - 'TEXT_AREA' => 'Área de texto', - 'UCP_CAT_MCHAT' => 'mChat', - 'UCP_MCHAT_CONFIG' => 'mChat', - - // Preferences - 'LOG_MCHAT_TABLE_PRUNED' => 'A tabela do mChat foi apagada', - 'ACP_USER_MCHAT' => 'Ajustes do mChat', - 'LOG_DELETED_MCHAT' => 'Mensagem do mChat apagado
» %1$s', - 'LOG_EDITED_MCHAT' => 'Mensagem do mChat editado
» %1$s', - 'MCHAT_MESSAGE_LNGTH_EXPLAIN' => 'Caracteres restantes: %d', - 'MCHAT_TOP_POSTERS' => 'Top Spammers', - 'MCHAT_NEW_CHAT' => 'Nova mensagem no Chat!', - 'MCHAT_SEND_PM' => 'Enviar mensagem privado', - - // Custom edits - 'REPLY_WITH_LIKE' => 'Eu gosto desta mensagem', -)); diff --git a/language/pt/info_acp_mchat.php b/language/pt/info_acp_mchat.php deleted file mode 100644 index 84acbe4..0000000 --- a/language/pt/info_acp_mchat.php +++ /dev/null @@ -1,169 +0,0 @@ - 'Configuração', - 'ACP_CAT_MCHAT' => 'mChat', - 'ACP_MCHAT_TITLE' => 'Mini-Chat', - 'ACP_MCHAT_TITLE_EXPLAIN' => 'Um mini chat (aka “Caja de texto”) para o teu forum', - 'MCHAT_TABLE_DELETED' => 'A tabela mChat foi excluído com sucesso', - 'MCHAT_TABLE_CREATED' => 'A tabela mChat foi criado com sucesso', - 'MCHAT_TABLE_UPDATED' => 'A tabela mChat foi atualizado com sucesso', - 'MCHAT_NOTHING_TO_UPDATE' => 'Nada que ver... Contunia', - 'UCP_CAT_MCHAT' => 'Preferencias de mChat', - 'UCP_MCHAT_CONFIG' => 'Preferencias de usuario de mChat', - - // ACP entries - 'ACP_MCHAT_RULES' => 'Regras', - 'ACP_MCHAT_RULES_EXPLAIN' => 'Intruduzir as regras do forum aquí. Cada regra numa nova línha.
Está limitado a 255 caracteres.
Esta mensagem pode ser traduzida. (hay que editar el archivo mchat_lang.php y lea las instrucciones).', - 'LOG_MCHAT_CONFIG_UPDATE' => 'Atualizar configurações de mChat', - 'MCHAT_CONFIG_SAVED' => 'Configuração Mini Chat foi atualizado', - 'MCHAT_TITLE' => 'Mini-Chat', - 'MCHAT_VERSION' => 'Versión:', - 'MCHAT_ENABLE' => 'Activar mChat MOD', - 'MCHAT_ENABLE_EXPLAIN' => 'Activar o desactivar o mod a nivel global.', - 'MCHAT_AVATARS' => 'Mostrar avatars', - 'MCHAT_AVATARS_EXPLAIN' => 'Se marcar como sim, os avatars serão mostrados em modo pequeno', - 'MCHAT_ON_INDEX' => 'mChat no Index', - 'MCHAT_ON_INDEX_EXPLAIN' => 'Permitir a exibição do mChat na página de índice.', - 'MCHAT_INDEX_HEIGHT' => 'Altura da página índice', - 'MCHAT_INDEX_HEIGHT_EXPLAIN' => 'A altura da caixa de bate-papo em pixels na página de índice do fórum.
Está limitado de 50 a 1000.', - 'MCHAT_LOCATION' => 'Localização no Fórum', - 'MCHAT_LOCATION_EXPLAIN' => 'Escolha o local do mChat na página de índice.', - 'MCHAT_TOP_OF_FORUM' => 'Top do Forum', - 'MCHAT_BOTTOM_OF_FORUM' => 'Parte inferior do Forum', - 'MCHAT_REFRESH' => 'Recarregar', - 'MCHAT_REFRESH_EXPLAIN' => 'Número de segundos antes do chat se actualize automáticamente. Você está limitado a partir de 5 a 60 segundos.', - 'MCHAT_PRUNE' => 'Activar purga', - 'MCHAT_PRUNE_EXPLAIN' => 'Defina como sim para permitir la função purgar.
Só ocorre se o usuário visualiza as páginas personalizadas ou arquivo.', - 'MCHAT_PRUNE_NUM' => 'Numero de purga', - 'MCHAT_PRUNE_NUM_EXPLAIN' => 'O número de mensagens de reter no chat.', - 'MCHAT_MESSAGE_LIMIT' => 'Limite de mensagens', - 'MCHAT_MESSAGE_LIMIT_EXPLAIN' => 'O número máximo de mensagens para mostrar na área de bate-papo.
Recomendado de 10 a 30.', - 'MCHAT_MESSAGE_NUM' => 'Limite de mensagens página Index', - 'MCHAT_MESSAGE_NUM_EXPLAIN' => 'O número máximo de mensagens para mostrar na área de bate-papo na página de índice.
Recomendado de 10 a 50.', - 'MCHAT_ARCHIVE_LIMIT' => 'Limite de Archivo', - 'MCHAT_ARCHIVE_LIMIT_EXPLAIN' => 'O número máximo de mensagens para mostrar por página na página de arquivo.
Recomendado de 25 a 50.', - 'MCHAT_FLOOD_TIME' => 'Tiempo límite', - 'MCHAT_FLOOD_TIME_EXPLAIN' => 'O número de segundos que um usuário deve esperar antes de postar outra mensagem no chat.
Recomendado de 5 a 30, establecer em 0 para desabilitar.', - 'MCHAT_MAX_MESSAGE_LENGTH' => 'Maximo comprimento da mensagem', - 'MCHAT_MAX_MESSAGE_LENGTH_EXPLAIN' => 'Número máximo de caracteres permitidos por mensagem enviada.
Recomendado de 100 a 500, establece em 0 para desabilitar.', - 'MCHAT_CUSTOM_PAGE' => 'Página personalizada', - 'MCHAT_CUSTOM_PAGE_EXPLAIN' => 'Permitir o uso de de página personalizada.', - 'MCHAT_CUSTOM_HEIGHT' => 'Altura da página personalizada', - 'MCHAT_CUSTOM_HEIGHT_EXPLAIN' => 'A altura da mini- chat, em pixels, da página personalizada mChat.
Está limitado de 50 a 1000.', - 'MCHAT_DATE_FORMAT' => 'Formato da data', - 'MCHAT_DATE_FORMAT_EXPLAIN' => 'A sintaxe utilizada é idêntica à do PHP date().', - 'MCHAT_CUSTOM_DATEFORMAT' => 'Personalizar...', - 'MCHAT_WHOIS' => 'Quem É', - 'MCHAT_WHOIS_EXPLAIN' => 'Permitir a visualização de usuários que estão conversando.', - 'MCHAT_WHOIS_REFRESH' => 'Actualizar Quem É', - 'MCHAT_WHOIS_REFRESH_EXPLAIN' => 'Número de segundos antes de actualizar a estatísticas Quem É.
Esta limitado de 30 a 300 segundos.', - 'MCHAT_BBCODES_DISALLOWED' => 'Desabilitar BBCodes', - 'MCHAT_BBCODES_DISALLOWED_EXPLAIN' => 'Aqui você pode inserir os bbcodes que não se vão utilizar na mensagem.
Separar BBcodes com uma barra vertical, por ejemplo:
b|i|u|code|list|list=|flash|quote and/or a %scustom bbcode tag name%s', - 'MCHAT_STATIC_MESSAGE' => 'Mensagem estática', - 'MCHAT_STATIC_MESSAGE_EXPLAIN' => 'Aquí pode definir uma mensagem estatica que se mostrara aos usuarios do chat. Código HTML é permitido
Coloque nada para desligar essa visualização. Está limitado a 255 caracteres.
Esta mensagem pode ser traduzida. (só precisa editar o arquivo mchat_lang.phpe leia as instruções).', - 'MCHAT_USER_TIMEOUT' => 'Timeout do usuario', - 'MCHAT_USER_TIMEOUT_EXPLAIN' => 'Defina a quantidade de tempo, em segundos , até que, uma sessão de usuários termina no chat. Defina como 0 para nenhum tempo limite.
Está limitado a %s Ajustes de configuración da sessões do forum%s que actualmente está en %s segundos', - 'MCHAT_OVERRIDE_SMILIE_LIMIT' => 'Substituir limite de emocões', - 'MCHAT_OVERRIDE_SMILIE_LIMIT_EXPLAIN' => 'Por em Sim, para sustituir o ajuste do limite de emoções do fórum para as mensagem do chat', - 'MCHAT_OVERRIDE_MIN_POST_CHARS' => 'Sustituir límite de caracteres minimos', - 'MCHAT_OVERRIDE_MIN_POST_CHARS_EXPLAIN' => 'Por em Sim, para sustituir os ajustes de caracteres minimos do forum, nas mensagem do chat', - 'MCHAT_NEW_POSTS' => 'Ativar exibir mensagens', - 'MCHAT_NEW_POSTS_EXPLAIN' => 'Por Sim, para permitir novas mensagens do forum na area de mensagens do chat.', - 'MCHAT_NEW_POSTS_TOPIC' => 'Exibir novas mensagens e topicos ', - 'MCHAT_NEW_POSTS_TOPIC_EXPLAIN' => 'Por Sim, para permitir novas mensagens do Topico do Fórum na area de mensagens do chat.', - 'MCHAT_NEW_POSTS_REPLY' => 'Exibir novas mensagens respondidas', - 'MCHAT_NEW_POSTS_REPLY_EXPLAIN' => 'Por sim, para permitir novas mensagens respondidas do forum na area de mensagens do chat.', - 'MCHAT_NEW_POSTS_EDIT' => 'exibir mensagens editadas', - 'MCHAT_NEW_POSTS_EDIT_EXPLAIN' => 'Por sim, para permitir mensagens editadas do forum na area de mensagens do chat.', - 'MCHAT_NEW_POSTS_QUOTE' => 'Mostrar mensagens citados', - 'MCHAT_NEW_POSTS_QUOTE_EXPLAIN' => 'Por sim, para permitir mensagens citados do forum na area de mensagens do chat.', - 'MCHAT_MAIN' => 'Configuracão principal', - 'MCHAT_STATS' => 'Quem esta conversando', - 'MCHAT_STATS_INDEX' => 'Estatísticas no Index', - 'MCHAT_STATS_INDEX_EXPLAIN' => 'Mostre quem está conversando com na seção de estatísticas do fórum', - 'MCHAT_MESSAGE_TOP' => 'Mantenha a mensagem na parte inferior/superior', - 'MCHAT_MESSAGE_TOP_EXPLAIN' => 'Este publicar a mensagem na parte inferior ou superior da area de mensagens do chat.', - 'MCHAT_BOTTOM' => 'Abaixo', - 'MCHAT_TOP' => 'Top', - 'MCHAT_MESSAGES' => 'Ajustes da mensagem', - 'MCHAT_PAUSE_ON_INPUT' => 'Pausa de entrada', - 'MCHAT_PAUSE_ON_INPUT_EXPLAIN' => 'Se colocar Sim, o Chat nao se actualizara automaticamente, mediante um utilizador introduza uma mensagem na área de entrada', - - // Error reporting - 'TOO_LONG_DATE' => 'O formato da data que você inseriu é muito longa.', - 'TOO_SHORT_DATE' => 'O formato da data que você inseriu é muito curto.', - 'TOO_SMALL_REFRESH' => 'O valor de atualização é muito pequeno.', - 'TOO_LARGE_REFRESH' => 'O valor de atualização é muito grande.', - 'TOO_SMALL_MESSAGE_LIMIT' => 'O valor limite de mensagem é muito pequeno.', - 'TOO_LARGE_MESSAGE_LIMIT' => 'O valor limite de mensagem é muito longo.', - 'TOO_SMALL_ARCHIVE_LIMIT' => 'O valor limite do arquivo é muito curto.', - 'TOO_LARGE_ARCHIVE_LIMIT' => 'O valor limite do arquivo é muito longo.', - 'TOO_SMALL_FLOOD_TIME' => 'O valor do tempo limite é muito curto.', - 'TOO_LARGE_FLOOD_TIME' => 'O valor do tempo limite é muito longo.', - 'TOO_SMALL_MAX_MESSAGE_LNGTH' => 'O valor do máximo da mensagem é muito pequeno.', - 'TOO_LARGE_MAX_MESSAGE_LNGTH' => 'O valor do máximo da mensagem é muito longo.', - 'TOO_SMALL_MAX_WORDS_LNGTH' => 'O valor máximo de palavras é muito pequeno.', - 'TOO_LARGE_MAX_WORDS_LNGTH' => 'O valor máximo de palavras é muito grande.', - 'TOO_SMALL_WHOIS_REFRESH' => 'O valor de refresco de whois é demasiado corto.', - 'TOO_LARGE_WHOIS_REFRESH' => 'O valor de refresco de whois é demasiado largo.', - 'TOO_SMALL_INDEX_HEIGHT' => 'O valor da altura do índice é demasiado curto.', - 'TOO_LARGE_INDEX_HEIGHT' => 'O valor da altura do índice é demasiado largo.', - 'TOO_SMALL_CUSTOM_HEIGHT' => 'O valor da altura personalizada é demasiado curto.', - 'TOO_LARGE_CUSTOM_HEIGHT' => 'O valor da altura personalizada é demasiado largo.', - 'TOO_SHORT_STATIC_MESSAGE' => 'O valor da mensagem estatico é demasiado curto.', - 'TOO_LONG_STATIC_MESSAGE' => 'O valor da mensagem estatico é demasiado largo.', - 'TOO_SMALL_TIMEOUT' => 'O valor de tempo de espera do usuario é demasiado curto.', - 'TOO_LARGE_TIMEOUT' => 'O valor de tempo de espera do usuario é demasiado largo.', - - // User perms - 'ACL_U_MCHAT_USE' => 'Pode usar mChat', - 'ACL_U_MCHAT_VIEW' => 'Pode ver mChat', - 'ACL_U_MCHAT_EDIT' => 'Pode editar mensagens no mChat', - 'ACL_U_MCHAT_DELETE' => 'Pode apagar mensagens no mChat', - 'ACL_U_MCHAT_IP' => 'Pode ver Endereço IP no mChat', - 'ACL_U_MCHAT_PM' => 'Pode usar mensagens privadas no mChat', - 'ACL_U_MCHAT_LIKE' => 'Pode usar, Eu gosto da mensagem no mChat', - 'ACL_U_MCHAT_QUOTE' => 'Pode citar mensagens no mChat', - 'ACL_U_MCHAT_FLOOD_IGNORE' => 'Pode ignorar tiempo limite de mChat', - 'ACL_U_MCHAT_ARCHIVE' => 'Pode ver o Archivo do mChat', - 'ACL_U_MCHAT_BBCODE' => 'Pode usar BBCodes no mChat', - 'ACL_U_MCHAT_SMILIES' => 'Pode usar emocões no mChat', - 'ACL_U_MCHAT_URLS' => 'Pode colocár URLs no mChat', - - // Admin perms - 'ACL_A_MCHAT' => 'Pode gerir os ajustes do mChat', -)); diff --git a/language/ro/common.php b/language/ro/common.php deleted file mode 100644 index eafc2fb..0000000 --- a/language/ro/common.php +++ /dev/null @@ -1,131 +0,0 @@ - (Georgian Iordache) http://escritoriobase.com -* -*/ - -if (!defined('IN_PHPBB')) -{ - exit; -} - -if (empty($lang) || !is_array($lang)) -{ - $lang = array(); -} - -// DEVELOPERS PLEASE NOTE -// -// All language files should use UTF-8 as their encoding and the files must not contain a BOM. -// -// Placeholders can now contain order information, e.g. instead of -// 'Page %s of %s' you can (and should) write 'Page %1$s of %2$s', this allows -// translators to re-order the output of data while ensuring it remains correct -// -// You do not need this where single placeholders are used, e.g. 'Message %d' is fine -// equally where a string contains only two placeholders which are used to wrap text -// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine - -$lang = array_merge($lang, array( - 'MCHAT_TITLE' => 'Mini-Chat', - 'MCHAT_ADD' => 'Trimite', - 'MCHAT_IN' => 'în', - 'MCHAT_IN_SECTION' => 'secție', - 'MCHAT_LIKES' => 'Aprecieri acestui mesaj', - 'MCHAT_ANNOUNCEMENT' => 'Anunț', - 'MCHAT_ARCHIVE' => 'Arhivă', - 'MCHAT_ARCHIVE_PAGE' => 'Arhivă mini-Chat', - 'MCHAT_BBCODES' => 'Coduri BB', - 'MCHAT_CLEAN' => 'Curățenie', - 'MCHAT_CLEANED' => 'Toate mesajele s-au eliminat cu succes', - 'MCHAT_CLEAR_INPUT' => 'Ștergere', - 'MCHAT_COPYRIGHT' => 'RMcGirr83 © dmzx', - 'MCHAT_CUSTOM_BBCODES' => 'Coduri BB personalizate', - 'MCHAT_DELALLMESS' => 'Ștergi toate mesajele?', - 'MCHAT_DELCONFIRM' => 'Ești sigur?', - 'MCHAT_DELITE' => 'Șterge', - 'MCHAT_EDIT' => 'Modifică', - 'MCHAT_EDITINFO' => 'Editează mesaj și apoi apasă OK', - 'MCHAT_ENABLE' => 'Ne pare rău, momentan mini-Chat nu este disponibil', - 'MCHAT_ERROR' => 'Eroare', - 'MCHAT_FLOOD' => 'Nu poți trimite alt mesaj (chiar așa de repede de la ultimul)', - 'MCHAT_FOE' => 'Acest mesaj a fost trimis de %1$s. Se află blocat in lista ta.', - 'MCHAT_HELP' => 'Regulament mChat', - 'MCHAT_HIDE_LIST' => 'Ascunde lista', - 'MCHAT_HOUR' => 'oră ', - 'MCHAT_HOURS' => 'ore', - 'MCHAT_IP' => 'IP whois pentru', - 'MCHAT_MINUTE' => 'minut', - 'MCHAT_MINUTES' => 'minute', - 'MCHAT_MESS_LONG' => 'Mesajul tău este prea lung.\Te rog, limitează-l la %s characters', - 'MCHAT_NO_CUSTOM_PAGE' => 'Pagina pentru mChat nu este activată momentan!', - 'MCHAT_NO_RULES' => 'Regulile pentru pagina mChat momentan nu sunt disponibile!', - 'MCHAT_NOACCESS' => 'Nu ai acces să scrii pe mChat', - 'MCHAT_NOACCESS_ARCHIVE' => 'Nu ai acces să vezi arhiva', - 'MCHAT_NOJAVASCRIPT' => 'Browserul tău nu suportă JavaScript sau JavaScript nu este activat', - 'MCHAT_NOMESSAGE' => 'Nu sunt mesaje', - 'MCHAT_NOMESSAGEINPUT' => 'Nu ai scris nici un mesaj', - 'MCHAT_NOSMILE' => 'Nu sunt zâmbete', - 'MCHAT_NOTINSTALLED_USER' => 'mChat nu este instalat. Te rog anunță fundatorul comunității.', - 'MCHAT_NOT_INSTALLED' => 'Intrările in baza de date pentru mChat lipsesc.
Execută %sinstaller%s pentru a modifica baza de date a extensiei.', - 'MCHAT_OK' => 'OK', - 'MCHAT_PAUSE' => 'Pauză', - 'MCHAT_LOAD' => 'Se încarcă', - 'MCHAT_PERMISSIONS' => 'Schimbă accesul membrilor', - 'MCHAT_REFRESHING' => 'Reîmprospătare...', - 'MCHAT_REFRESH_NO' => 'Actualizarea automată nu este activată', - 'MCHAT_REFRESH_YES' => 'Actualizarea automată la fiecare %d secunde', - 'MCHAT_RESPOND' => 'Răspunde membrului', - 'MCHAT_RESET_QUESTION' => 'Ștergi mesajul de pe bara?', - 'MCHAT_SESSION_OUT' => 'Sesiunea de chat a expirat', - 'MCHAT_SHOW_LIST' => 'Arată lista', - 'MCHAT_SECOND' => 'secundă ', - 'MCHAT_SECONDS' => 'secunde ', - 'MCHAT_SESSION_ENDS' => 'Sesiunea de chat expiră în', - 'MCHAT_SMILES' => 'Zâmbete', - 'MCHAT_TOTALMESSAGES' => 'Număr total de mesaje: %s', - 'MCHAT_USESOUND' => 'Folosești sunet?', - 'MCHAT_ONLINE_USERS_TOTAL' => 'În total sunt %d membri pe chat ', - 'MCHAT_ONLINE_USER_TOTAL' => 'În total sunt %d membri activi ', - 'MCHAT_NO_CHATTERS' => 'Nu este activitate pe chat', - 'MCHAT_ONLINE_EXPLAIN' => 'bazat pe membri activi în ultimele %s', - 'WHO_IS_CHATTING' => 'Cine scrie pe chat', - 'WHO_IS_REFRESH_EXPLAIN' => 'Actualizare la fiecare %d secunde', - 'MCHAT_NEW_TOPIC' => 'A publicat un subiect', - 'MCHAT_NEW_REPLY' => 'A publicat un mesaj', - 'MCHAT_NEW_QUOTE' => 'A răspuns cu citat', - 'MCHAT_NEW_EDIT' => 'A făcut o modificare', - - // UCP - 'UCP_PROFILE_MCHAT' => 'Preferințe mChat', - 'DISPLAY_MCHAT' => 'Afișează mChat pe Index', - 'SOUND_MCHAT' => 'Permite sunet în mChat', - 'DISPLAY_STATS_INDEX' => 'Afișează cine scrie pe chat -who is chating- pe pagina de index', - 'DISPLAY_NEW_TOPICS' => 'Afișează subiecte noi pe chat', - 'DISPLAY_AVATARS' => 'Afișează avatare pe chat', - 'CHAT_AREA' => 'Tipul de intrare -bara de scriere-', - 'CHAT_AREA_EXPLAIN' => 'Alege una din metodele de a trimite mesaje în chat:
Suprafață de text sau
o zonă de intrare', - 'INPUT_AREA' => 'zonă de intrare', - 'TEXT_AREA' => 'suprafață de text', - 'UCP_CAT_MCHAT' => 'mChat', - 'UCP_MCHAT_CONFIG' => 'mChat', - - // Preferences - 'LOG_MCHAT_TABLE_PRUNED' => 'Tabla mChat s-a curățat', - 'ACP_USER_MCHAT' => 'Setări mChat', - 'LOG_DELETED_MCHAT' => 'Mesaje din mChat eliminate
» %1$s', - 'LOG_EDITED_MCHAT' => 'Mesaje din mChat modificate
» %1$s', - 'MCHAT_MESSAGE_LNGTH_EXPLAIN' => 'Caractere rămase: %d', - 'MCHAT_TOP_POSTERS' => 'Top Spameri', - 'MCHAT_NEW_CHAT' => 'Mesaj nou!', - 'MCHAT_SEND_PM' => 'Trimite mesaj privat', - - // Custom edits - 'REPLY_WITH_LIKE' => 'Îmi place mesajul', -)); diff --git a/language/ro/info_acp_mchat.php b/language/ro/info_acp_mchat.php deleted file mode 100644 index 0ae0029..0000000 --- a/language/ro/info_acp_mchat.php +++ /dev/null @@ -1,175 +0,0 @@ - (Georgian Iordache) http://escritoriobase.com -* -*/ - -if (!defined('IN_PHPBB')) -{ - exit; -} - -if (empty($lang) || !is_array($lang)) -{ - $lang = array(); -} - -// DEVELOPERS PLEASE NOTE -// -// All language files should use UTF-8 as their encoding and the files must not contain a BOM. -// -// Placeholders can now contain order information, e.g. instead of -// 'Page %s of %s' you can (and should) write 'Page %1$s of %2$s', this allows -// translators to re-order the output of data while ensuring it remains correct -// -// You do not need this where single placeholders are used, e.g. 'Message %d' is fine -// equally where a string contains only two placeholders which are used to wrap text -// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine -// -// Some characters for use -// ’ » “ ” … - -$lang = array_merge($lang, array( - // UMIL stuff - 'ACP_MCHAT_CONFIG' => 'Configurație', - 'ACP_CAT_MCHAT' => 'mChat', - 'ACP_MCHAT_TITLE' => 'Mini-Chat', - 'ACP_MCHAT_TITLE_EXPLAIN' => 'Un mini chat (adică “shout box”) pentru forumul tău', - 'MCHAT_TABLE_DELETED' => 'Tabla mChat s-a șters cu succes', - 'MCHAT_TABLE_CREATED' => 'Tabla mChat s-a creat cu succes', - 'MCHAT_TABLE_UPDATED' => 'Tabla mChat s-a actualizat cu succes', - 'MCHAT_NOTHING_TO_UPDATE' => 'Nu este nimic de făcut....continuăm', - 'UCP_CAT_MCHAT' => 'mChat Prefs', - 'UCP_MCHAT_CONFIG' => 'User mChat Prefs', - - // ACP entries - 'ACP_MCHAT_RULES' => 'Reguli', - 'ACP_MCHAT_RULES_EXPLAIN' => 'Introduceți regulile forumului aici. Fiecare regulă intr-o nouă linie.
Ai o limită de 255 de caractere.
Acest mesaj poate fi tradus. (modificând fișierul mchat_lang.php și citind instrucțiunile).', - 'LOG_MCHAT_CONFIG_UPDATE' => 'Configurație mChat actualizată ', - 'MCHAT_CONFIG_SAVED' => 'Configurația mini-Chat actualizată', - 'MCHAT_TITLE' => 'Mini-Chat', - 'MCHAT_VERSION' => 'Versiune:', - 'MCHAT_ENABLE' => 'Permite extensia mChat', - 'MCHAT_ENABLE_EXPLAIN' => 'Activare sau dezactivare a extensiei la nivel global.', - 'MCHAT_AVATARS' => 'Arată avatare', - 'MCHAT_AVATARS_EXPLAIN' => 'Dacă este setat -DA-, avatarele redimensionate utilizator vor fi afișate', - 'MCHAT_ON_INDEX' => 'mChat pe Index', - 'MCHAT_ON_INDEX_EXPLAIN' => 'Permite afișarea extensiei mChat pe pagina de Index.', - 'MCHAT_INDEX_HEIGHT' => 'Înăltimea mChat afișată pe Index', - 'MCHAT_INDEX_HEIGHT_EXPLAIN' => 'Înăltimea ferestrei de chat dată in pixeli pe pagina principală index a forumului.
Limita este începând de la 50 până la 1000.', - 'MCHAT_LOCATION' => 'Locația pe forum', - 'MCHAT_LOCATION_EXPLAIN' => 'Alege locația chatului pe pagina de index.', - 'MCHAT_TOP_OF_FORUM' => 'Partea de sus a forumului -top-', - 'MCHAT_BOTTOM_OF_FORUM' => 'Partea de jos a forumului -bottom-', - 'MCHAT_REFRESH' => 'Actualizare', - 'MCHAT_REFRESH_EXPLAIN' => 'Numărul de secunde înainte ca chatul să se actualizeze automat.
Limita este de la 5 la 60 de secunde.', - 'MCHAT_PRUNE' => 'Permite curățarea', - 'MCHAT_PRUNE_EXPLAIN' => 'Alege -DA- pentru a permite opțiunea de curățare.
Se produce doar atunci când utilizatorul vede pagina proprie și/sau arhiva chatului.', - 'MCHAT_PRUNE_NUM' => 'Cantitate a curăța', - 'MCHAT_PRUNE_NUM_EXPLAIN' => 'Numărul de mesaje păstrate în chat.', - 'MCHAT_MESSAGE_LIMIT' => 'Limitare mesaje', - 'MCHAT_MESSAGE_LIMIT_EXPLAIN' => 'Numărul maxim de mesaje ce poate fi arătat in fereastra chatului.
Recomandat între 10 și 30.', - 'MCHAT_MESSAGE_NUM' => 'Limitare mesaje la index', - 'MCHAT_MESSAGE_NUM_EXPLAIN' => 'Numărul maxim de mesaje ce poate fi arătat in fereastra chatului la pagina de index.
Recomandat între 10 și 50.', - 'MCHAT_ARCHIVE_LIMIT' => 'Limitare arhivă', - 'MCHAT_ARCHIVE_LIMIT_EXPLAIN' => 'Numărul maxim de mesaje ce poate fi arătat pentru fiecare pagină, la pagina arhivei.
Recomandat între 25 și 50.', - 'MCHAT_FLOOD_TIME' => 'Timpul de flood', - 'MCHAT_FLOOD_TIME_EXPLAIN' => 'Numărul de secunde ce trebuie să aștepte un utilizator înainte de a trimite alt mesaj pe chat.
Recomandat între 5 și 30, setează 0 pentru dezactivare.', - 'MCHAT_MAX_MESSAGE_LENGTH' => 'Lungimea maximă a mesajului', - 'MCHAT_MAX_MESSAGE_LENGTH_EXPLAIN' => 'Numărul maxim de caractere permis pentru fiecare mesaj trimis pe chat.
Recomandat între 100 și 500, setează 0 pentru dezactivare.', - 'MCHAT_CUSTOM_PAGE' => 'Pagina proprie', - 'MCHAT_CUSTOM_PAGE_EXPLAIN' => 'Permite utilizatorului a folosi pagina proprie a chatului.', - 'MCHAT_CUSTOM_HEIGHT' => 'Înăltimea paginii proprie', - 'MCHAT_CUSTOM_HEIGHT_EXPLAIN' => 'Înăltimea ferestrei de chat în pixeli în pagina proprie mChat.
Dimensiunile permise sunt cuprinse între 50 și 1000.', - 'MCHAT_DATE_FORMAT' => 'Format dată', - 'MCHAT_DATE_FORMAT_EXPLAIN' => 'Sintaxa utilizată este identică cu cea folosită din funcția PHP a datei date().', - 'MCHAT_CUSTOM_DATEFORMAT' => 'Personalizat...', - 'MCHAT_WHOIS' => 'Whois', - 'MCHAT_WHOIS_EXPLAIN' => 'Permite afișarea utilizatorilor activi pe chat', - 'MCHAT_WHOIS_REFRESH' => 'Actualizare whois', - 'MCHAT_WHOIS_REFRESH_EXPLAIN' => 'Numărul de secunde înainte ca statistica whois să se actualizeze.
Dimensiunile permise sunt cuprinse între 30 și 300 de secunde.', - 'MCHAT_BBCODES_DISALLOWED' => 'Coduri BB ne permise', - 'MCHAT_BBCODES_DISALLOWED_EXPLAIN' => 'Aici poți introduce coduri BB ce NU se pot folosi în chat.
Codurile BB pot fi separate cu o bară verticală, de exemplu:
b|i|u|code|list|list=|flash|quote și/sau/ un cod bb %scustom etichetat name%s', - 'MCHAT_STATIC_MESSAGE' => 'Mesaj static', - 'MCHAT_STATIC_MESSAGE_EXPLAIN' => 'Aici puteți defini un mesaj static pentru a afișa utilizatorilor din chat. Codul HTML este permis.
Lasă spațiul gol pentru a anula afișarea. Sun permise până la 255 de caractere.
Acest mesaj poate fi tradus. (trebuie modificat doar fișierul mchat_lang.php și a citii instrucțiunile).', - 'MCHAT_USER_TIMEOUT' => 'Limita de timp a utilizatorului', - 'MCHAT_USER_TIMEOUT_EXPLAIN' => 'Setați durata de timp, în secunde, până la încheierea sesiunii a utilizatorului pe chat. Setează 0 pentru a anula limita de timp.
Ești limitat la configurația forumului %sforum config. Setarea pentru o sesiune sessions%s ce actual este setată la %s secunde', - 'MCHAT_OVERRIDE_SMILIE_LIMIT' => 'Suprascrie limita de zîmbete', - 'MCHAT_OVERRIDE_SMILIE_LIMIT_EXPLAIN' => 'Setare la -DA- pentru a suprascrie setările folosite în forumuri zâmbetele, pentru mesajele din chat.', - 'MCHAT_OVERRIDE_MIN_POST_CHARS' => 'Suprascrie limita minimă de caractere', - 'MCHAT_OVERRIDE_MIN_POST_CHARS_EXPLAIN' => 'Setare la -DA- pentru a suprascrie setările folosite în forumuri la caracterele minime pentru mesajele din chat', - 'MCHAT_NEW_POSTS' => 'Activează afișarea mesajelor -posts-', - 'MCHAT_NEW_POSTS_EXPLAIN' => 'Setare la -DA- și mai jos putem alege ce mesaje se vor afișa pe spațiul de chat.', - 'MCHAT_NEW_POSTS_TOPIC' => 'Afișează subiecte noi', - 'MCHAT_NEW_POSTS_TOPIC_EXPLAIN' => 'Setează -DA- pentru a permite noilor subicte din forum să fie afișate pe spațiul de chat.', - 'MCHAT_NEW_POSTS_REPLY' => 'Afișează răspunsuri noi', - 'MCHAT_NEW_POSTS_REPLY_EXPLAIN' => 'Setează -DA- pentru a permite noilor răspunsuri din forum să fie afișate pe spațiul de chat.', - 'MCHAT_NEW_POSTS_EDIT' => 'Afișează răspunsuri modificate', - 'MCHAT_NEW_POSTS_EDIT_EXPLAIN' => 'Setează -DA- pentru a permite afișarea pe spațiul de chat a răspunsurilor modificate.', - 'MCHAT_NEW_POSTS_QUOTE' => 'Afișează răspunsuri citate', - 'MCHAT_NEW_POSTS_QUOTE_EXPLAIN' => 'Setează -DA- pentru a permite afișarea răspunsurilor citate din forumuri pe spațiul de chat.', - 'MCHAT_MAIN' => 'Configurația principală', - 'MCHAT_STATS' => 'Cine este pe chat -Whois-', - 'MCHAT_STATS_INDEX' => 'Statistici pe Index', - 'MCHAT_STATS_INDEX_EXPLAIN' => 'Arată cine scrie pe chat împreună cu secțiunea de statistici a forumului', - 'MCHAT_MESSAGE_TOP' => 'Păstrează mesaj în Jos / Sus', - 'MCHAT_MESSAGE_TOP_EXPLAIN' => 'Aceasta va publica mesajul de jos sau de sus în zona mesaj de discuții.', - 'MCHAT_BOTTOM' => 'Jos', - 'MCHAT_TOP' => 'Sus', - 'MCHAT_MESSAGES' => 'Setări mesaje', - 'MCHAT_PAUSE_ON_INPUT' => 'Pauză pe intrare', - 'MCHAT_PAUSE_ON_INPUT_EXPLAIN' => 'Dacă este setat -DA-, atunci chatul nu se va actualiza automat până când un utilizator nu va începe să scrie pe zona de intrare.', - - // Error reporting - 'MCHAT_NEEDS_UPDATING' => 'Extensia mChat trebuie actualizată. Anunță fundatorul forumului să viziteze această secție pentru a executa instalarea.', - 'MCHAT_WRONG_VERSION' => 'Versiunea greșită a extensiei este instalată. Te rog, execută %sinstaller%s pentru o nouă versiune a extensiei.', - 'WARNING' => 'Atenție', - 'TOO_LONG_DATE' => 'Formatul datei introdus este prea lung.', - 'TOO_SHORT_DATE' => 'Formatul datei introdus este prea scurt.', - 'TOO_SMALL_REFRESH' => 'Valoarea pentru reîmprospătare este prea mică.', - 'TOO_LARGE_REFRESH' => 'Valoarea pentru reîmprospătare este prea mare.', - 'TOO_SMALL_MESSAGE_LIMIT' => 'Valoarea limită mesaj este prea mică.', - 'TOO_LARGE_MESSAGE_LIMIT' => 'Valoarea limită mesaj este prea mare.', - 'TOO_SMALL_ARCHIVE_LIMIT' => 'Valoarea limită de arhivă este prea mică.', - 'TOO_LARGE_ARCHIVE_LIMIT' => 'Valoarea limită de arhivă este prea mare.', - 'TOO_SMALL_FLOOD_TIME' => 'Valoarea timpului de flood este prea mică.', - 'TOO_LARGE_FLOOD_TIME' => 'Valoarea timpului de flood este prea mică.', - 'TOO_SMALL_MAX_MESSAGE_LNGTH' => 'Valoarea maximă a lungimii unui mesaj este prea mică.', - 'TOO_LARGE_MAX_MESSAGE_LNGTH' => 'Valoarea maximă a lungimii unui mesaj este prea mare.', - 'TOO_SMALL_MAX_WORDS_LNGTH' => 'Valoarea maximă a lungimii cuvintelor este prea mică.', - 'TOO_LARGE_MAX_WORDS_LNGTH' => 'Valoarea maximă a lungimii cuvintelor este prea mare.', - 'TOO_SMALL_WHOIS_REFRESH' => 'Valoarea whois la reîmprospătare este prea mică.', - 'TOO_LARGE_WHOIS_REFRESH' => 'Valoarea whois la reîmprospătare este prea mare.', - 'TOO_SMALL_INDEX_HEIGHT' => 'Valoarea înălțimii de pe index este prea mică.', - 'TOO_LARGE_INDEX_HEIGHT' => 'Valoarea înălțimii de pe index este prea mare.', - 'TOO_SMALL_CUSTOM_HEIGHT' => 'Valoarea înălțimii a paginei proprii este prea mică.', - 'TOO_LARGE_CUSTOM_HEIGHT' => 'Valoarea înălțimii a paginei proprii este prea mare.', - 'TOO_SHORT_STATIC_MESSAGE' => 'Valoarea mesaj static este prea scurtă.', - 'TOO_LONG_STATIC_MESSAGE' => 'Valoarea mesaj static este prea lungă.', - 'TOO_SMALL_TIMEOUT' => 'Valoarea pentru limita de timp a utilizatorului este prea mică.', - 'TOO_LARGE_TIMEOUT' => 'Valoarea pentru limita de timp a utilizatorului este prea mare.', - - // User perms - 'ACL_U_MCHAT_USE' => 'Poate utiliza mChat', - 'ACL_U_MCHAT_VIEW' => 'Poate vizualiza mChat', - 'ACL_U_MCHAT_EDIT' => 'Poate modifica mesajele din mChat', - 'ACL_U_MCHAT_DELETE' => 'Poate șterge mesajele din mChat', - 'ACL_U_MCHAT_IP' => 'Poate utiliza vizualizarea adreselor IP în mChat', - 'ACL_U_MCHAT_PM' => 'Poate folosi mesaj privat în mchat', - 'ACL_U_MCHAT_LIKE' => 'Poate folosi like la mesaje în chat', - 'ACL_U_MCHAT_QUOTE' => 'Poate folosi răspunsuri citate în mChat', - 'ACL_U_MCHAT_FLOOD_IGNORE' => 'Poate ignora limita de timp -flood- în mChat', - 'ACL_U_MCHAT_ARCHIVE' => 'Poate vizualiza arhiva mChat', - 'ACL_U_MCHAT_BBCODE' => 'Poate folosi coduri bb în mChat', - 'ACL_U_MCHAT_SMILIES' => 'Poate folosi zâmbete în mChat', - 'ACL_U_MCHAT_URLS' => 'Poate folosi url în mChat', - - // Admin perms - 'ACL_A_MCHAT' => array('lang' => 'Pot gestiona setările din mChat', 'cat' => 'permissions'), // Using a phpBB category here -)); diff --git a/migrations/install_mchat.php b/migrations/install_mchat.php index 6bc94de..3739ad7 100644 --- a/migrations/install_mchat.php +++ b/migrations/install_mchat.php @@ -25,16 +25,40 @@ class install_mchat extends \phpbb\db\migration\migration { return array( // Add configs - array('config.add', array('mchat_enable', true)), - array('config.add', array('mchat_on_index', true)), - array('config.add', array('mchat_new_posts', false)), - array('config.add', array('mchat_new_posts_topic', false)), - array('config.add', array('mchat_new_posts_reply', false)), - array('config.add', array('mchat_new_posts_edit', false)), - array('config.add', array('mchat_new_posts_quote', false)), - array('config.add', array('mchat_message_top', true)), - array('config.add', array('mchat_stats_index', false)), array('config.add', array('mchat_version', '0.3.2')), + array('config.add', array('mchat_archive_limit', 25)), + array('config.add', array('mchat_avatars', 1)), + array('config.add', array('mchat_bbcode_disallowed', '')), + array('config.add', array('mchat_custom_height', 350)), + array('config.add', array('mchat_custom_page', 1)), + array('config.add', array('mchat_date', 'D M d, Y g:i a')), + array('config.add', array('mchat_edit_delete_limit', 0)), + array('config.add', array('mchat_flood_time', 0)), + array('config.add', array('mchat_index_height', 250)), + array('config.add', array('mchat_live_updates', 1)), + array('config.add', array('mchat_location', 0)), + array('config.add', array('mchat_max_message_lngth', 500)), + array('config.add', array('mchat_message_limit', 10)), + array('config.add', array('mchat_message_num', 10)), + array('config.add', array('mchat_message_top', 1)), + array('config.add', array('mchat_new_posts', 0)), + array('config.add', array('mchat_new_posts_edit', 0)), + array('config.add', array('mchat_new_posts_quote', 0)), + array('config.add', array('mchat_new_posts_reply', 0)), + array('config.add', array('mchat_new_posts_topic', 0)), + array('config.add', array('mchat_on_index', 1)), + array('config.add', array('mchat_override_min_post_chars', 0)), + array('config.add', array('mchat_override_smilie_limit', 0)), + array('config.add', array('mchat_pause_on_input', 0)), + array('config.add', array('mchat_prune', 0)), + array('config.add', array('mchat_prune_num', 0)), + array('config.add', array('mchat_refresh', 10)), + array('config.add', array('mchat_rules', '')), + array('config.add', array('mchat_static_message', '')), + array('config.add', array('mchat_stats_index', 0)), + array('config.add', array('mchat_timeout', 0)), + array('config.add', array('mchat_whois', 1)), + array('config.add', array('mchat_whois_refresh', 60)), // Add permissions array('permission.add', array('u_mchat_use', true)), @@ -88,9 +112,9 @@ class install_mchat extends \phpbb\db\migration\migration 'acp', 'ACP_CAT_MCHAT', array( - 'module_basename' => '\dmzx\mchat\acp\acp_mchat_module', - 'modes' => array('configuration'), - 'module_auth' => 'a_mchat', + 'module_basename' => '\dmzx\mchat\acp\acp_mchat_module', + 'modes' => array('configuration'), + 'module_auth' => 'a_mchat', ), )), @@ -99,12 +123,12 @@ class install_mchat extends \phpbb\db\migration\migration 'acp', 'ACP_CAT_USERS', array( - 'module_basename' => 'users', - 'module_enabled' => 1, - 'module_display' => 0, - 'module_langname' => 'ACP_USER_MCHAT', - 'module_mode' => 'mchat', - 'module_auth' => 'acl_a_user', + 'module_basename' => 'users', + 'module_enabled' => 1, + 'module_display' => 0, + 'module_langname' => 'ACP_USER_MCHAT', + 'module_mode' => 'mchat', + 'module_auth' => 'acl_a_user', ), ), @@ -120,9 +144,9 @@ class install_mchat extends \phpbb\db\migration\migration 'ucp', 'UCP_CAT_MCHAT', array( - 'module_basename' => 'mchat', - 'modes' => array('configuration'), - 'module_auth' => 'u_mchat_use', + 'module_basename' => 'mchat', + 'modes' => array('configuration'), + 'module_auth' => 'u_mchat_use', ), ), ), @@ -138,16 +162,11 @@ class install_mchat extends \phpbb\db\migration\migration 'ucp', 'UCP_MCHAT_CONFIG', array( - 'module_basename' => '\dmzx\mchat\ucp\ucp_mchat_module', - 'modes' => array('configuration'), - 'auth' => 'acl_u_mchat_use', + 'module_basename' => '\dmzx\mchat\ucp\ucp_mchat_module', + 'modes' => array('configuration'), + 'auth' => 'acl_u_mchat_use', ), )), - - // Insert sample data - array('custom', array( - array(&$this, 'insert_sample_data') - )), ); } @@ -155,35 +174,28 @@ class install_mchat extends \phpbb\db\migration\migration { return array( 'add_tables' => array( - $this->table_prefix . 'mchat_config' => array( - 'COLUMNS' => array( - 'config_name' => array('VCHAR', ''), - 'config_value' => array('VCHAR', ''), - ), - 'PRIMARY_KEY' => 'config_name', - ), - $this->table_prefix . 'mchat' => array( - 'COLUMNS' => array( - 'message_id' => array('UINT', null, 'auto_increment'), - 'user_id' => array('UINT', 0), - 'user_ip' => array('VCHAR:40', ''), - 'message' => array('MTEXT_UNI', ''), - 'bbcode_bitfield' => array('VCHAR', ''), - 'bbcode_uid' => array('VCHAR:8', ''), - 'bbcode_options' => array('BOOL', '7'), - 'message_time' => array('INT:11', 0), - 'forum_id' => array('UINT', 0), - 'post_id' => array('UINT', 0), + 'COLUMNS' => array( + 'message_id' => array('UINT', null, 'auto_increment'), + 'user_id' => array('UINT', 0), + 'user_ip' => array('VCHAR:40', ''), + 'message' => array('MTEXT_UNI', ''), + 'bbcode_bitfield' => array('VCHAR', ''), + 'bbcode_uid' => array('VCHAR:8', ''), + 'bbcode_options' => array('BOOL', '7'), + 'message_time' => array('INT:11', 0), + 'edit_time' => array('INT:11', 0), + 'forum_id' => array('UINT', 0), + 'post_id' => array('UINT', 0), ), 'PRIMARY_KEY' => 'message_id', ), $this->table_prefix . 'mchat_sessions' => array( - 'COLUMNS' => array( - 'user_id' => array('UINT', 0), - 'user_lastupdate' => array('TIMESTAMP', 0), - 'user_ip' => array('VCHAR:40', ''), + 'COLUMNS' => array( + 'user_id' => array('UINT', 0), + 'user_lastupdate' => array('TIMESTAMP', 0), + 'user_ip' => array('VCHAR:40', ''), ), 'PRIMARY_KEY' => 'user_id', ), @@ -191,12 +203,12 @@ class install_mchat extends \phpbb\db\migration\migration 'add_columns' => array( $this->table_prefix . 'users' => array( - 'user_mchat_index' => array('BOOL', '1'), - 'user_mchat_sound' => array('BOOL', '1'), - 'user_mchat_stats_index' => array('BOOL', '1'), - 'user_mchat_topics' => array('BOOL', '1'), - 'user_mchat_avatars' => array('BOOL', '1'), - 'user_mchat_input_area' => array('BOOL', '1'), + 'user_mchat_index' => array('BOOL', '1'), + 'user_mchat_sound' => array('BOOL', '1'), + 'user_mchat_stats_index' => array('BOOL', '1'), + 'user_mchat_topics' => array('BOOL', '1'), + 'user_mchat_avatars' => array('BOOL', '1'), + 'user_mchat_input_area' => array('BOOL', '1'), ), ), ); @@ -208,11 +220,10 @@ class install_mchat extends \phpbb\db\migration\migration 'drop_tables' => array( $this->table_prefix . 'mchat', $this->table_prefix . 'mchat_sessions', - $this->table_prefix . 'mchat_config', ), - 'drop_columns' => array( - $this->table_prefix . 'users' => array( + 'drop_columns' => array( + $this->table_prefix . 'users' => array( 'user_mchat_index', 'user_mchat_sound', 'user_mchat_stats_index', @@ -223,108 +234,4 @@ class install_mchat extends \phpbb\db\migration\migration ), ); } - - public function insert_sample_data() - { - if ($this->db_tools->sql_table_exists($this->table_prefix . 'mchat_config')) - { - $sql_ary = array( - array( - 'config_name' => 'refresh', - 'config_value' => '10', - ), - array( - 'config_name' => 'message_limit', - 'config_value' => '10', - ), - array( - 'config_name' => 'archive_limit', - 'config_value' => '25', - ), - array( - 'config_name' => 'flood_time', - 'config_value' => '0', - ), - array( - 'config_name' => 'max_message_lngth', - 'config_value' => '500', - ), - array( - 'config_name' => 'custom_page', - 'config_value' => '1', - ), - array( - 'config_name' => 'date', - 'config_value' => 'D M d, Y g:i a', - ), - array( - 'config_name' => 'whois', - 'config_value' => '1', - ), - array( - 'config_name' => 'bbcode_disallowed', - 'config_value' => '', - ), - array( - 'config_name' => 'prune_enable', - 'config_value' => '0', - ), - array( - 'config_name' => 'prune_num', - 'config_value' => '0', - ), - array( - 'config_name' => 'location', - 'config_value' => '1', - ), - array( - 'config_name' => 'whois_refresh', - 'config_value' => '30', - ), - array( - 'config_name' => 'static_message', - 'config_value' => '', - ), - array( - 'config_name' => 'index_height', - 'config_value' => '250', - ), - array( - 'config_name' => 'custom_height', - 'config_value' => '350', - ), - array( - 'config_name' => 'override_min_post_chars', - 'config_value' => '0', - ), - array( - 'config_name' => 'timeout', - 'config_value' => '0', - ), - array( - 'config_name' => 'override_smilie_limit', - 'config_value' => '0', - ), - array( - 'config_name' => 'pause_on_input', - 'config_value' => '0', - ), - array( - 'config_name' => 'rules', - 'config_value' => '', - ), - array( - 'config_name' => 'avatars', - 'config_value' => '1', - ), - array( - 'config_name' => 'message_num', - 'config_value' => '10', - ), - ); - - // Insert sample data - $this->db->sql_multi_insert($this->table_prefix . 'mchat_config', $sql_ary); - } - } } diff --git a/sounds/add.mp3 b/sounds/add.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..2df0d2e09556fe478186e1e98ae57c43fa6a98aa GIT binary patch literal 13210 zcmd^_RZtuO)2;^sK?1>oyIXK~cXyZI4nc!Mg1ZwuxVr@>A+or;g#_0G4GZj?CEv}t z_-_8IQ-7VU+TEF*so9ygp6-6TXOv`lkbuV*t*(xa9Q+##0G_D6^0njRW9Q*v=i=o2 zxAi|C;GM_+wf5f^mE7#y;agDPZ)O1CaRo3iaB+!qqnzrXlQtN zcye-nesy(qYinD7V8D5BP^MnJnLqyppPwj{ z^XpRef(V}9)@^X_#SjK(Sy^)!1J*zl*WXYm0+=CmD=7nl_Yf9I0F~O|t5vg+h`**5 z;?rkgT)c#c*xuawq&J7(6vCpj#kDp}LH4w?FaT4SJ}chggC-Lu-SYtD_fh;$9CUC} zs??ub{-o0#eyCdfN${7VIagkjG2$s+%f&dp)dY#O>*Yc@M$;Z1q*N|PJ+>R2J%=zM zb%?6i!%!HLTpQ(l=mh+=z(imViwi>vLj^LCJB}Zfe?p3d)JzY>O4eF&XQ&%97v)^v zi;#eo>C)_58Bpd+hp*pziMS*P24L>XEouKC0q;C*Pyxh#%GEQ`K@4sy;*ZCo2xuNc zW|hr!zt5l1&DTMGXcRVoplL9pPAyh`D!U+WQNqL2*!O3w<236)?whS_McMcE@RR!O$W zCATJe9mVa#KJK#`sm=UM&}E~k^gW;OIFIFg5qbuhs_!5qO^kSgu-+&O5zc``Zyn;2 zp;&z><%AS_6I-_#y+Wn?ttfV6r(R}iAw^g7Q6|R79lvbSlq__)-lZ5OyoGr_B8L`^+s3GKa6n?p^^=86?5$AD zZw`&V*~mW*tf-U~lnWhhfSg1ncUA&y7uZCL*Kp@ZpYf za;Drtgys@Qka7)%*NpBoxAHdD5=K?f>#7D^q}>f{o=LM&iA zXf41K4*=O-0PsTD_ac@_d&_;KX_h78?kqu%UPTgdMJ1|?U}G!H zaOGJALeSI5R@l$hboLkdZT+II=1nxPizDkwjWID^<`8th{7#FeXQ%ohUzdPoOP|O= zbM_0~S6qCozECG^eMdg@{K2mq?LFG$Jw^2={8B}d2u=qNlUJV+Dkn5$9d5Yj#O9RR zU&wo{1=A$S`eMn;j`5j&H*YI(dAisK3!1EjlbxQo-(apjb*gb z@|7H&+kzIa><60FnjQWfb?%F^3sEsA8%WB7r~&e8+<}6 z6EsrvK}MUt;GP#ncM@0Luzq{%P77a!UKuP)A(jby;i;J%A;a%P+y`&uN(?QOm0T8a&Lnv5-tiX*1Ue)9MDP4NaBct8rEW(1&!6_Mt~7#ab`x?1EvFUho$gRLalXOY3X5fu>(OAR6VxJ zauljRG1mJx?|-<0ozMqLP*e2>u7R=S-)8Ce6;e#aJf#g|HR|8Bt3S)COAaQ>gi9H` z8uOcBn$V;B({7EQZ!|_UvfgN}FaTPB=9A#%1N51GhU*mGz!44W?l%B*^(Y`1Ri#rR zB@&J$PDR>sL>Fl*V+(nB&joqbU~lkn2P?XRQYr)pOTaP^kivFcOHf*;kI-b4hUpS1 z^yjVf<~&J4-+KEHeT}oCmo}MS+0sYCMvF3ZKzt}1xCwm_e*jOxJCG??@&oZx5gV8E zTp!MXg!gNkWhl%!+YQYs7e}imG38CA9tf)Bz_Y;txCs3OsCX(7p}ZMIg(Yg7B;R!0 zQzbK`DYJ@KIHar=fW&F4WJ8#W9oKIg-m`V#ca#hP9Llbop~lK$Go(; z3A$fj2fRP3g<2ICa3q=>%6-Ak3`0VqGIt3RN455 zTYymT_^!$|qm?Loy~^x`jv?ZUac#jF;JLD~_!V^9omzDspM|V{oTzEDwPi8*Md+P~ zM1L8>yeMx#u-*qs0)(pKpCWS<_=0nf$k~S>yupy?lJ@81qyD&p>d5evlY{tCxklt| zZ|vUuZSVRQt(PufBgm((M=2FWtz@0mHiQ?H|G7>(^o9Is9z>k#oe5NZ1F_rwx-`PA@HYFz37Q zJEvfK9dYFQ!ITyxSBtPs74g$+mPw`W469YfasO5Q0fw{Nt2;RKd*tZl2q(WkEF z&y&%h3UFJo$xOYliY-9}O`bVX+V&Z6n%{n- zGqU?G_#5Vb9pQ{Q15La+?~UPmL@pITD8T#@Q!K^#Qp#{0m5~mamzkI$I{oKT0o8KiMoh{@PL%AFpBlV`{1-7g90pnzy{~H6el{ z@l)PsAN+HBk53hCCo|PKdJ_(dKsT_P@$A82{eGo#Dz9{*yPhb!9H(cV-}~xy@iS@h zz49A2b*tLeFN4dMte0jQ{mBob%I1TS+`bsE@l!oq!u_`tbfYRHe|#x2e#(oQ4)iP` zNv0lf&WRl$#R5oJS&Ct)1r`z5;|`?{s~aGwzu5z>U&HQh2M$&ci|>yo?(e0M12353 z9C_c&Yf}1i>@Smi_VCW_!;*-henf5%9U*sCr)RD<)bCt$tUSpbwI zsomJ6p-{PcfBPlLNBWfof0hxc)NGSw#CLKpl8jFqWw>jIHN$EG*+{_2c+8Agy`iqHe=RfR zp!qNZRjfKZ1_R}2e_q#%Ul@8-udkiIMUc#Yf9iFcy(jXm!hCh1%+xWj3tFh{H93%z zOWLyf7S+hYf_cOuYx`*C!qEQ_xu4-&BO0=j)VRNS2T?tcq}|Zym@&eUY+|28Qh%U| zNgIM9PixWXkV{h&b_K@N^&tpL0-gITGBr>X|6kII4f7(PURD=1(G$ zz5VnmT$+iFSb7B0OM3s~v{X$yy=wc`On46Rizxu0l&@J%$4PzJ{p77b@eXX|A#}jR z=e|O~YO{B=bZzaMNZK>~(siwuRx)jemyU_OAa^6H{f|NWp9TqyYjoGcSV{l_P$T_v zLZj!yj=02CXXCMQaA1}@Xl#(9Jywyi(~@bNWS>I5;Z~liSERFnIb?@a5aiZTO`LZV zKKV!RC@yYatMr>T5fRGVY1aB|xlq58xh!Ug|EE#$){8qE4%dsbg*`M0HpA<}MbI(3 zZQ^6a-X{TWvnv%ephS?QV*DXQjtUQM2*Lw6>Y8sZzj zD%{nc=s~tjDsuJI^sJYd@c~D0;4C})LE-{dlmV&+QVa{NC5(g^Ot;L;rZaCQ-%O=CA=<(@JB{6U={Y?i{qd){OWm5Q%6aMD zO6p(lT3Li}goxN>8=dI20~#QY$eo63Gs(zEO5y&LQ(SUDqA^wC3dW>HavdgWcqNIQ z*cB-?DWYGY@FvsW*nl3Jlv6ZYcPHyKWHkQvzIt&|;_QAxq1%YqA}6=a#@3J4tlj@o znqaf|%=f@-(ofz`%_-Qdx)?Hh$jr3BOtI(2oa^W$Ny%_)^u4IwnJlxp*SQS_y<5vx z^#RO;&VyX{zg2a99QQHv*nGg{Sr5G~=%rczCUHR^KH;#lwB=EtGT{X_b~jKVAp!`@ zq-jDExMR%_6maX0Jq=X-llvuq0P^xY-nd4u43^c%dHt};5-$woiPu6uj^h&4$ zU%axJ?F$YoU4t{h;;@_XRtit#BXY;#Gs>1Sim&iIWfL4Uk!ameGovwq2sOxUeQ^YK zY*()7@Yj}iPN_sq7gB;3_f0`L{ovi5o^HA508c0g+u7@OAEMm#qt&_Xom;j^_D%;G zUnY@v?1;r$k&VSUyCp?hkNePnr*=tO)SNkCrJ{yMYrtVei&m!9&S`9D$Ux(TH!QPa zU~;2B;Y6Qy(<+ld&sZ@+&(&#U&nuOi7CU;Pp-P_ze|g5_8||bwB#Gy;$9$zlH zaO8Qaykx`MB=gX5vqIYjX>iqRq z+4H+{N?*9;3@_Gs67PL>)EI@Fq~NdI=yISuR2YYxtLh=d0Ms5>%Z5p^ji&9$e_-AA zrxUBIm75PCmkot;rOU$HbBD62^JuiqF$Z>3D{HJlClU|HI|5m4>N`{fcLr3Ra@Y~r z5kPGqhSA8n=f$mmZ^r$=;*In070dFO+G1IT_lZT$hP~^^g(JKrX{C0jEh$(w(mg9~ z)B1{$&PrMJ)_iI?3<#s-%ULJhpO}{5of%^J6SS?(G2sl}1qD8co<|v6Kd7&(NHb}k zK+4MEZp_JO@tSkE5+9K}eS%A82oF{~PldQDc(9r))ki*NxnYv#tq<6VAF0jR+Z`1P zEBm3{MW=u~He{GI(&F=B=&vzGPq%Bt={MlV2T}&CRx%hM25ls&7gN zWoO>aV++|g)pXP+zUgMwdLL8sbKJ;JtSaqQaVBr^6Y4F9(Sqg-5QZScQ&U&5a9(I3 zDB9p;I&e^G&yCQQO*BK<_p3_4^TM_G3o4UlK=s#X~gy4CiRnI?X zrPOOlyNx=Cs0*M}#FuuloLkol;btuI8`v0Y2F~wZH-I~}0php~R! zWQSg7BeFKN*JS^M+YiTmAv?50jr&uEeA z>sLPW$|cW5)tik^hj!?Edtb7ct&vf&vvQZ$wubT&>W!=;2&uhlEdrEPDwYK{_D2eW zE2i(3uk|}lwyWE^+H6D$k0VgGn`A1Qww>4Mn0E1eaIe3p7=KjI7JdImjpt-8Z7_@? zt0H1UIe7Uh6++Km1iiU}b^E1mg5!Qd>jnq@0Tn&fI_^FFe%zU-C%!BCdNPx;W5MeQ z^SUp(Q<_pGQ8q@}Z9_(iY~xgllJ9$CT|VBiig*vGRi92=%IO;gaF0Po3~C0hQo4(A z1B)ku84|38A7k|pczp)QDpKQlD6qW$N1PB3ygaB3GjJ9^mIv;ak>PRkbQ$ldL(8C( zh4L|qXsn)j+&(P7D}t`BuDDs~Rv+9pXEyDQcf@k8j#dgFS%H1(+-cu*?E@&R3>*8< z8`nvtPTY-@2Tnv9$pZI(qmv6P;fmd+!O*^L%kUL#&s=>QB+dzbfLZMQIUpR?;9Z_% zu&|Lx4+zkY@E+yxK|Uug)R#V|GS=^5O;a?mi&3RMBQk)9!8dpyL*uB1SGX#45qCg*s=bKkhy;3wWQ`WTU(AY z_ElMf5A<@M4&N|7wN2Aj;=ga9@-H(F9$-nm&2QX$);99Fk~UAue*V09qaoXyJ&sf?<(a))2aq3S@LU@^66h%9JW5^y)YN+|O`G85|W*}_i zQdzg!H~aWOP5IL#V@1v7E4Av(D0{l2qN`c*N#1VM>8o7&c|WAtgOh?8R>t4i!LZQz z!26ESqshL|tL^}|(@wLF9u+;0{IBR`s5S2%GH{cO9NnGaAnr$Zgl=+PLZ{PeqOk zQFZgV#3ORYSlSw9aN$TjhMeUEdY*Oo80la&9fZUWAo)1^6ElF z`&BPjXMEf7+tJJZewW^>+u~AtFm!D)^1IH+O&7TUQ)3ly}7>MZy__*!|_oUg?&*X!1-oLb}H5Zs+&)999C*axC*)ch>1#eMaB|Fo<1wLZdv zwRai-MDIX#hs?uPcbhj?!JNlICur|g1>Kxn{kom0V&3zy-W}gBZeZbv8`W&IoX&~2mrvUBk@)ob9N2WN%i|S? zBN=$dZGA27=l%Gnte zdNDNV^}}WwYK)vWZauC~nw@d7tf!iBzq5zI`dh_wWUnXyMLT`xCcUaQeOR}<9b zB|-RrO1U#)GO-;8=2RF_u_f3|;x&o~zbx>y%n(V={iA#Hj63b;|WG%OT*> z07HsWM1b63j2^r^D7HO;TRBTKs%m&$jrA{+W|vbC@(E_@>3TMoP+DSUI@ZR8smL`K z1|ZP$F!K-`9~HIvaNIP)4&$%SV0o(>R_7Gk0_z7x{wDhsImVN|%Doevy1C<4dd7lo z?ZZy6;%2)}g_QvO6w(hAELsYtFC7*V%S;s^U-CGIwt9$aHW}!x^?Oo+A#WC9+ z9G_?Ygbh$+m975p?{cEN5|s^V1g|yb9S=6`^`^jyg{9g+zVhW%g0aIn+Md4rm>M}_ zF&C#R?RScTx$k2~nu+SjmkTlmivjg&`vq0eu0YluiQYcrkkriiK8F4Hf!2e79L2*? zNAh&D;PhbPKJ_w|KKq7WY&i_n(~Cq4)~a&)Y?=747U-gA-o8Sm0>bVVs%n!{9S4dw z7yKGq@9@TT!I=xTTNi3cVYNGo1e%%zK`bcRTz*588qz!0NW02rcxTG``(gg0{vbw zy>UP=^k(4ZWMD@?LNG#=t~EaGa;H=K?hC1`jl{&>=Yj~KG}hg>#e&s}n7-P3vg)sR zXL8BYIj3uU?i-w+yANMrG5Fp8?OQ1@SiIg1z}>Z}ou1dWvr1_*Q5+tqWe->;&uo;h z=^-L*{UB16xK`5AWALdpWLCmkIGQFKc+%js!Y)M;cKFc?`oL>ap1s+wCa`GuGB|CQ z0lHG9iX8b>84G!cY8W_@M~GZ_^Zc!G6gAZlDy|d|mb6oA+cmSV0*NzH8MSzO3+_yA z3SEI5my6nmo~aghs~N+Z17^_rfIb2C?VvsMjPb;j1HVV)j-KFB>kh#?)^i1yH;?rJ zb(|1BBvFawVti$Zo#;Ow??99-Z6U@;wf4SHDbKsX${y6;H_iMsdVjHuGZmJf5yYp=dNEI1L+}(=A?PI z&Yv^1h0GkqLcSIu?D9GeLL=Z3njw{@!C|Wte8leGIPULWFljY;x1l0-o24YCc)=ap zwHZ1?Oc0~j!fh0XZUNJgMlsH^|JFfTc2qAqtMl9lF}(a~Jb?zEh}?{D{$aC%L~Cdm zIQb5|dRZxY%u%o?daR!M6Q^td2{(qi3_y*0E=Gm=28q@j zwb&7!6`vuOqI-@+C_lE8d5PASrIq8+~uAzKb~DMS8xv7^kq90-vu2AJ!17 zW}h=QUAVvB9w#@YW~E;I8RrwnG8^jxImX_DSp(gmppSlV!3zT;IJne zR}jD=5V$w%?Ia$o9F$ifzpQ3PXDs0I)xEV@b^q`Yxx**tN|ta-0&n$?AdjuSqN@+a zhX~hC&p5Wi;H`dMCiZD%TZh%8M|RO3*Fc+hQu9ylzepX0CZF!kZ+h>Mi}rr^-mQ(E zsc>8;$&J`%XK*v=DOrijjU;Kt=J$C1tf>5sOlj%d&V|BfO_QNBjY7_J+tFx%*0P2j zl}fM2^ki+1S?<{PSj)$4LI_>Q@5WJn-utQ+Po=;2)adWfsoV}-fNs?*G$njK_eu`E z%+t-uM&a{RVw2}V<(Uy+kKMO|(=J<3J@m3C^KP$FnCP_>)^JSj-<5Y%c6&JU1#8!= z+m4zKePYQ>>4KLv77VDn+*wqJme0yrCK~krMEfpkPhgDQ_`F}qn<8*uHA^43?wxGO zG@H2^>!!`YvQ?R@l&fc@*;DYGN|?@Po0^D_Q~g(1k#Sj#{t2h#9OLpBtEmQX6Ra{! z%CZGV&L8_orT{Thutz~JArmLJ`FBPRp@{Ik+~!2Kv)VYX6J=YM{pLAy(a^oJyRqrO91L0&6tnE z*Yom|wiud?0T_-mO`cYeI#`{DlaO4z&EtB@TIJ_O~tbUVm!J`1a7KChRE>{Z{0WY2I>dFCW#EnVyv<%8&ynKE1g%KVmXw zs~)2X*6PpVvG%LqoniI;{S4P%iEIyt8?*kqSs(`%wht>tyr>|j!?~-aESeED@SC~y zjHlsxD=f0XW@sQM`C4Zux33Zwx|8`(u8w2ljF}8Ocq`gZ?hu_fcEV~JFZjg_=Hvqt z!k>4Uq03O(Bi2q-LBWXIGn@KOR7SZO;4K+;Td+U3V%{u}?-;x_6-x2Ep*g3l=Su6B;J<|w+7jK>e8cb1N#F&PQpT&CeFmjZyR#u5W=_Dc9I%X5wZ{j8c+o>_&3 z9@Ep%v+GuuxRuj*=DCV(PnH_mg1T&F9GtfVjgwM6^fd&wW3D@=aLdE-xPQWiraz>tN=u z_))IzGNw@eh#Y*nMD?E;x}+q$u)?QH;ac$W;5>}azLfzl4|4}7y37H`!Qxk6L}%F` zr36OV7^>{4>G40SLj7kmDo3+N3`Rk^a~Q|jM*PkZR1dG*#PoP^X1+iOF;kt^*_JLL zm!_Ihy~B#x=ujX1KwxvOi8&Kl5&)7*PR%Y;TIX(e#<+JQI~nt?2B5}6d*Xy%X`l~m zndCU~#NBViELlSPFWfCCgr;c}ezVCx6PKFx=87`7>h_QK-?_`!6E{Df$!ScuPi~YD zOSG4WE`m8S-W~9L_TT&di>&iYHn#VN!!qUX#pL7YC^IupWv1V)pb4a#F2(F=Ow*RD zzk4rO{4I+PXP@i_ZK$pM7rxzh_HpyN8ewdd0J@C`O+N2+dg(%?5|k$Ghq5&iw5DI5 z>$RTzL+%|ep_&X6+{;NzqWZ(@13DVq1xL6-PU`;6&_8&L&(VFTRmmeTrJ@M~bkAvY z1X@0g((E*p-{yrdqh{&IO^0^V_|4bx?3kIgKfIV%GqKkrHxarq5(v~O+oP#aPf~Cw zvXLdfE(mP3fMCA}lf=eiOw#I-d%NLW@ZcSs${^o5><_jzsvO@1=&3KXR2*6Br5+y1 z8F%~nNJFae@wMe#9KQOf=^L&s;^s)HjpFW(4}54uf_p}fw)#ijV78jD*$_8~## zPM8T~XE*cWxF2!a_87g19>qM!p`P$_m)pT0^=jo6^b;eS+57bqw?1;jK%|wFG&1(> zn3T|-n~W|}*pnax;7-UX`1rg?Ti9T&;&09gO;s+On z)cmEafkborJ8yHa;QZoj{n@C-S-o&tB&>_Y_x$MlW`2cozYbG{U9?vGW2~Ma;0hYb z7*gYTN({np6w&}_$npP@948C)qa&g7fpl=AAg%p!k46iks;y(0eExuvE!bUeslYHkMCyIBFQ!mpUb7`Or?(oqpM7 zG79Kf?y7Hke8!i;$wAI(zdFg>;(ZrICzZ0rU)w_Spj$J-&E2lamt&pV{LyzXcQ6=( zbUp~;zwza(?y8DveIzpyE;e3+d{PDKg6V;!-;Yx^KZcmUr^>n8_dm=-dahEyGjJXh z2`b;xu$|n&JL(^4!voY%!rgD8&yS4e~31#7FfbY1c28)wA99m0jqYQn?=I1+}`mDJv`*?+HH^#NV%DrFzY&=fQ|A6 z@%oIt>jO5`iaIhu=ewscKE5&Mn~dp*-ujfSli_sx>d(oi*!TI=Sbrlpz8#Jy*OVJv z{H?vI{dNU{37>QIWeGlM>iwj0xKJ-N%}_@FWb}&gW$ET4au?y;sn*f}TsgHmK}ooB z3VjxsR1s>QP@1SM;mAD=uiTL`tzz*tB++C!7UGOxkv1Me=l#~mhIxLQVE>@3-BMFi zQ>~paHWuV$LfKFYg2e51cEU9l52iI4)~f^a9EUaF9S`R#1vC(hrz$D`^AY?UpTfkV zDy1gJ!!9Jm&Idoh|E|{~a;M0ig1|tP6cM6YW%ebKm8l|A$vF_=D8ry4j`2b-mGAXGhqP(1NY0`vp=pfp3FDgxm#+1CBp|kh6gMlO+X+Z zA$;a&d#3}#`a^dZ8z1So{ufNT|Fh}l`~R&E`gjvPg#Q2GzS1)%!ubD>4K|67<^TWh z*!a6U`BSB&{r~@u4*MAP+nzB7y6T%Clfs094;8jGIoL2an1IX%I>ed(^rOQ^7BGZA zs^RSyOw#|+E%yJ6*!lWD`YZ+6Tn^L!KZskB^623F|3@1i^Gp2y|HrlePPF{w6DNTt zib*B*RK81`4`goGV54HtFk!A}*UDL$$I=W~m>d)$Of}}@{#WG4NN5uLsnf8eF)!le zqYo!0zBE{1CX#r9mE{FLON=rv5A!A7DU9N&yG|))Kl~_^BrvO}v(2I5C^xs8ScXv5 z!gN*PDT_{aXP9M#Eh<&x$k-Y5%kPzw!YXGgNs;8nl>$EOr&OavBPNPI5Eo!GDOl7c?_G zeBP*Z$!z^K->vd;W&$H9A(4SiCE;FOTFW#e=hNrTm`s^a+FbbOYlFa)w)NICCNR~{ z%b4D^a(1f$0|e~7eLv~{L;XrdCa%f4Axo@JxR@@D(*EnS{)_nkwa?yd`1o7z|EgC? zvNwToKjjXih0(dj;)eAFwQRD=o3yUQOt`GU+BD&Sxske%k9BsBSEuUL^7#Lsy=Qe8 zcVCT_<~w+=u+p@2-P?Aqn=zw(j;*I{y2_9G z|6uSp)=KWWk8O6*Ijc#UT19Ku?JAC$xYBlNsIkGDBMl6~n^*H*S$C&ZaKjcgOONt3 zYmJo_a$MM1AW{4)_MpL;UAsHlj3n}++gzG`fAoCTJA6|&_Pz4Eoo`yMUhneuxZJ+N z&EwT9O^1DY_y6*%8u)Qv_I=~x`!CykbxFSa;tV(5g%3Eno;+EeZu7YM+3c`ccb?B# z3v`t8ev`X0cOIpiWnS)kF4M3_y<2x@X~>5+9109vN-q*$%$F+XJntVI>@Yca?w^1Jj<9zkxYCG5R-8&=yrD?YcxIjn0<&rVAt+ z4hjgTZ4unC^R=7*B>zdBTEW8eRo13vU3?iZX~VCa?`zAh#hlqP)zPBT#%}FA87~GN zZ~my*v$pHjcAWfe`sTVE(|<9hNt|crbg+mfFzyI8Zsg)xa@N5|W5)6DSBx@iLbk7t z()$*hajMrQG$56G+oOPax-31%qx4?eK3Cro^L2W)-XX7#0lOX-F$@?`7;p$G;_5(7 l@rJmFGXYF7>Oi=v4THj!BNsCKXJ%#q*Dek~3IISH|0wkuPTc?i diff --git a/sounds/del.mp3 b/sounds/del.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..c576493d5202c4bf0026f90fd1f3bfa9cde6845b GIT binary patch literal 7254 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 literal 0 HcmV?d00001 diff --git a/sounds/del.swf b/sounds/del.swf deleted file mode 100644 index e306cc446a6822d5037b2e55c2759d4cc5b1c7d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1393 zcmV-%1&;bdS5pXT2mk_LK0<+8Zb~mun;s{kuz8-Apzu6kOY+x z8z3Tw7DQSBE4~RLM?fJ)1T2(jI0Z!nO96){N`$lpp+-S;fGQ5)O!2^a#MuV@sqG)& z4?f?SeRk%%JM-*(W_OunPz}rx;Ika)#6=;5K1-JArd~KyH|m2PoC6U61UM$>18|A} z-xaeLSArnD4@MGH1F%H zdMfD9RvUW%tqoMlPefx-B~QyZzW)VOVFyTxjwc@Q^*jyHX5^P&IshS!lkY%}omY|s z^IoueBkoWygu^sT6j+EU(a3~wT68UJA`V4lqzNn@v7KKwsnrVc>6>8D`qk2-Txcxr zUuoQ`f+dJ@hs`aIL8uaRkgbCEmm7M)XDL+wa(yQoqP(F8I$-%%4C;Ma!(_VSks0oW zglxasgHEE^2{u}`CflCHB!l;`aDvXl8h&;>fReOIbI> zmDVIhKr62-^VIGLHJmZEt*A}c0TRRjLIf}B+sr0ee*F21gM4gh0}_6<9iymn6A!kv zpksRvlJzUxsE@`TL>1m!O?NMlA3p4XyX;b5mwn2bdK1_(MIo+9DFy2 z3F>><_qQ^WSvBP}T8Dz*OhK}h=Ry^i%SIV_L(xY{#8a!tIA>TA8)NDlq!@%noNJz& zWCJ;lP{j<+b*VC55hWz%LHMMA?sv=hB!g+U3TjO=6ft=ulo+B`ZutJsjMStcD^+EP zBTdaME;u1;YrUV^sx_gd5Z6{DJ~Zt@yoWWt^1E^P(!206S8=EPNN4}VnVVS*_Sc~Cx1(DZO$7nxE;9JBdr=?0}@C<0{u6AbJl{M{KU3i^F!b7 z9vge<_%qxPn9FjC?9ATf{qQf{B`CWYoQVyA<@yd<{Bt#FgIg8)oPV`wS629z@WU$G z@2CXF10Fjq?BET*lDAZadBl++!#h-;s>iRVJSXD@X8AssrJ~nq&tjE3#=G9jJ@fZu zeI>jI0G_o7h=HLw?js|5+*cbc8JWxk7s>W#Tt5S6V|%l;@q$8}`vl%GEF~2vG(HSj zypf^5hDU$YYBpc?qERmxzAs-reIzqK%_gnLP1OEoUgzt z>rmysITztV)@8RIGpEyV=z0&N^Q%;5{0LXqTus6@%l=(~qdQ~)tv+M45bEf1(kapU ztx1Z2DeIxefsvxU(fFOEPWPnS!=;RZctA3dK47nCXh6u#fzEu5>vYdMzPPgnwig8y z%F5O*bix?0 z=+hzhU(qJHU7>S{d5hV$*ps$AF1*Au)XB(5;(l{~*p}Hw=y@Wd%S^lnM!;;*X0sE;Jaka&#a{-9ME%MO){yO^yd7Nc`RU(`U diff --git a/sounds/edit.mp3 b/sounds/edit.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..a87118760586e3398033307fd8b604ec8bab7e17 GIT binary patch literal 13210 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 QARGWN{zq^0|Jz0X1ziV)RR910 literal 0 HcmV?d00001 diff --git a/sounds/error.mp3 b/sounds/error.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..af9a34ccce80cab546bd2174f807a85f39cfc47e GIT binary patch literal 13210 zcmd_RbyO68{QtXjw;z;e>oSoT;J#%KB=kbc?&U-XfM9@Kx6N`zlvFgJ&5eS5)9o^ z2)~e^;D1N|X93*4{J(7d?^iW_Uidy7!FrgvKp+us5I#OBDJ3N(Jv}QcD>t{GprE+8 zjEu6fvZkiKzP_ocwY9aQqpPc{w|785NJt1692*;(l$4Q?k(*moR8dh;SNHMb$Ij0F z{{F9D$HvBHW|o%L*Vljl-rwIpK8C?ya5w<`Z?Bj2e}8@dkL-OAP6Y%)c@3J{Kvw_> zGvf4?;Dc~zLu{xrK`5-mM^S2*X9Z$(`NXIbpbuSs z7mWb`&KR9IZqkIv#@W5IlsgkrHzXk#>@S9_CU056>?}2LkoY8Gx5(~rf;dQ}&9&E* zU3|*rOlvm+6;tr=Fo&oYl9u=t1h2{bs}i~k08x8&EhsZND@-w}+uK9VAe}109y}Q{aq434P{O^y}F9s$m z4 z`i3r!+^GF?27z%@@2@7%VXZQamVay_;9TQ>&r&JcXoZPjhM{`mdj5 zI;I+JWxuL)G=I?zrdMM`VT6EqJJ~zTJ)Ps-@LTc}tgT=ERa1pZX>yaMkT`inl96Bt za1yY$ts@P(wyz}tDR>;M5?)w?o&NZ;daTsFD-8hXI)GF`_Iu~8V>^UDmS*Spl4#Q8 z4WL$I5tL$4cbEV*h=UE$zfu3Ea*%;PcA$J_DhP+jxL3X}i^E>V5)c`gF-nDf7(^5z zctN5d6bY9=pB)TLuC))wIo}dbs8!8y%lxp>zGFunq(Qh1UBV29=)dSA~ z**e?!(;TBI8K@#HCI7`$mUsg_tAd6sz1o?qN}Hpip>&%fd;g)wPsXJ+!!utRIJPE& zY>e9D#zJ6POFEJP=sppG5{y~#)hswALnSW6UcNwuH)Q{C=VHgrm~Wx-8&WsqGrkm< zotgabqkJ;}IBzHsQ?jewm*&{T3k}%}2m^0jv77JT1mJ>r&BW4F`AsUhEx00H$g&kF z`-Rn0(|DOXf3Yq_E7LW#vVDy*tz6Z?IejWrtL%gd10T%MSDx9N@#CCSv)Sw)1@8ig zJ4eYs@7n+94f&c$Bsd&@iMC_Js%9>hWF5B{WM{B!)Y{khHy{&cU30Po*qa&fG1T5E z2?~E=k1>zjGmkW}tEk!EmMc6WhXq1q68P!9Z{(%Q(!1g4 zs)fy2?ARctX-Jd7-BDG@X%q6HG9`eNLQv;BCQFo%n1)f5uWjeA@0$Sy0q2dgt?^4f zabWPcd^3^B)se5<7I0Gz5Cpye;WMHINpy}+O!2*p+n-;_Y?%d(Bwi{aqP*&^UUnTq zUYzrr931&qAPTWD=2R12G4>i0;hu;0i_IMRWY^EzuG;UEfhgh`yBA)%7+Ul9t7w<| z+aPv-dP$R-^YD*2SFDYTEq`*M{)CzMDfetKui5M>)zbX?tufO4S#!f)70YKh1l z8VI*)qr*ou_c!)?W|X|7bwV^!lx0Jz85IZk(D*s+wrHgSTEDm1eT4L4G_R7}7Bq32 z_FpHnArc-|Az4k)cW`{~F$-b_VII2otm70D3Vz(R(j0k24hJ-(th{_gAbp^ynqc64 zsDu5tQKMl%GlH51icwYjva)Z3pCknX9ZD$A#Nl>X(75;4q$jabO@9gK+P&TmVK zdad33wl?1Wx6Q~`-S~xJm)e zppegw&#}5coQjgg{b8C^p^y>%z{|}!#S~#+`cu`wuRx8&c;a6htXYkppqJHQL1qL& z#JPcstiKrq;2eN4pgnk|^_dbxd~)_dr(wlGj#3%;4><@byTF3BfV6|cF5=ixT?hMM z&@iqaTFU&iX1A+Qko`hLyJG3Pc4q~KkvHA-nXC-cO26-?(uK`5lfmqiuDv(X`G~uU zQt&k8hFSpa$;v(d$({XYyowCoV(_p>lL~d622mF2S@TQuIF*crLfynfwJhl@iODQ& z*o=&XfT4iG=JA_ZiJ}tgCHEHXdw*c^4>>XK z9MiyY@6Aon*)HSC$h{?Xvp8nXU8(!0lM5#EtE6c|4#yG`DfAad6}e?K~teH*7fjaVnA%nU!?-6ma-`F?)L z7zj)^pQl_c9%=hwkpeKWQ?#}eDcUrsS)Emmcss|`c)A1fPemGw=}D1FUI^C z+hX!o!U&g1vW>s(MHVIWt!Rhq0Hx=kxiw%8!7~=>vP-e*ryl>htDDu1Nl2THXHJ0s z19~LB$h22fD#tO!k9RRx9w?1&XHRxnQ)ymOZE(atGZZtpbI7y2;ToEE#5WFRO2c)~ z4gR4V|Jtzzg;^teTa!tIDy*mmx60`eIcyLrvxGVHSo*K>a6+;phc0$a zvvpiMwB;#Homf<1;JJ6{%f(!>=bDFWwl(*r`Jt`O+`4Lm0@P@_G!o1kegYTv`f&Z~ zJ`b6LlKix7(`P^E_oP9Tnrxz0X<8*u38hU?y!9ZeBS<_fQ3yOlx-&c#2B2!o7iqWEY@D+#Hgl5JtmQU_VL*d@bamU#*J~TNkx!wg^#>1#zi5 zi;l5Tn?}MpL%$4Tsc`w}oy7v>d(KG@2AWw8bH6W*Lf>=hPwO|U_4t6vAlcg4;`;J% zIcsE*C6Kw3bK{!-Sq6pcjz`PX&MHrlX}C!fDc|y6mV=<2OBibNN&kAbhb!f_uY)z3 zs@fo{sc@EG8x)ll=)wjO#XCrzV5jDzTGFwpaW`7)vNl|MLR9JVDtNtI*L@Qx-O8c@ z?!X8^e9%*XU@^Gzq3lt*rP-AYsbQjdjf**}Ji*MQu#s~itP17gN(I~segMtoUq$7o zFEWuPUDMj$<`?ZCK@f^i4``%SLoMx&fpcA?{Aw~Uq3slNPm{Ggpjjf@m*ZFMQU$sE z8D;RAqOtXQITOt~#hNl?@VemM078mRYT`{S)OoPLQWMI!Jwf94%Y8LhuuRU1QGn!- z{|peX)u*Jo34E(OdQXSaf|S2_^Ev_msP1VEBhf}gu~Fmk#lt9flBiW=8hXnNG8mZX zQ%FxcM=3Y`HY~x}3W7_nB&(X{!%F{RhlZ;jk)wj3oU-cGi%1(tN8#*x@YRnEkfG~3i+Y#SD6c_2g=+K`@S+Q`YO=-MYbhf$w-hK*q zHWkL=A+rx{^6b6)oIINI^|Apupe2Y+^G@eFTxL z!I>Mg&j;b2=|jWJ0tr+m%y^cGib6Wb8YCXsYjPU@zheG|tq2lU?4baOV2Qthw;uVC~XZy0UXm;{I** zZ69FnXVMadf+F3DQW79dMtDmcpE7hhO^Wu295)DMS7P3MU;39EdJn`WSqm$3KsiYi zS^|H(AipJ}|NhX$&_v zDl(3*!2&S@_&&llf;Cbu>=-f>30hjuDX9ZUt2fJEU?M;9oYbRMtEbY|vM)EEr^>JP zie8%?YL|K~UC#pJXI2my&?X=>mOY-3N~@y6J@4@yrG-leHS+BS`i*Z%JzF>HRnc|f z^HQS?BOX3_7?6&%eh)>0%?lS#PL{X`O_>1%QF_LVVZJi9lOUSgjRWnr8~Lcd;9TLo zbEV~7&|5cO;EyboQr88{v}>R4u5&o(5jiOc%09>R1h%w+L@aKhTdsl6OQ7b_hMi~=j<&eO|(!~61f`kFZ z9n!cQG2W~k;*sei23#^)`93SpWTWDssE|S5S3uWQd@>Xc4jkOKn4?+0wR-7 z#}7WERPji5WmhNBoTomU_GyS*n^6sLvJ1ZL0_-m?De*PP-hIKky_BAhuZtc3n2IKv zpU~@`!fAx?A6S#l`Mm<5%Rx66(ClVg+_uh0&nV7>PxTjK>kENI za_mfa)lzYZq_O-CxTBI5ppd~*@ z*%TWJITh`Xq)7@EoG=gOEM@?)R9ab`1MLNY#ghrSjKOOFu)qCEOh@s2SP(|8B518` zpVK6D_7zhjZh41{>5A@L(|0xuM0Pe(vEN?`4iR3E4L`TP*S{N(#PP4`>quroP>A4L zJ7QKb4UK0DtWrAk@S3g_|K-ETfy|Zn~o@o3}Fn@o9?%iLb)a;Su)QEsxBq0kmKUH9Zgb; zyF{3C)}u1ejVy^}cAfvAk>A*%S$f#9uEiRcYtkLJq8f(wpKR=q&KB=_Mtg%wg@o{o7to{?@ zLB3n;bB`w|Jat@QEm=qntgvn@wLoX6vS1&Fn&2l}P?LC-u`qS(uBy~{JbjmOxapg= z3~4bRTc}jQQz^5<;FNKOK{5uQOJG9o#2UD_9=vc(iKXQ4$NKDy6Gh$thY-bguq)iz zvgoe91>`xd-WBrX%PZv^BWy7^C40{XxucxiLwA0-Htah0!x zh*}yoR=LCTjWnb+r#_^R!0abahdf_lGwDwJc|{58$24Dl#1pfR!Td?{zZGt%<};p- zEsROCLYtbSgBz}q=7o{MJEAUArC~Qo6t(IB-&wiFtT!;~vd?Xed+ZN^Hss0u(?4=L zAQUv`-K8|F`Y!}_K4>(oQ!t5)WIagiRh)n1?39}R`)T6?WEM!HOmvPFZ#{KyLGf+t zXZ=JaN+#pZ)qdIr#EaO$^GD<&AgEvg?IR*12bM^<*OM|S9Gz0J{Q*sf976U$#&^8o zK6uT(5o+W+K0!tEgX8hOzt{Elb1i>lIoGLeDnolj#kur9@ga+W**X=@?&m2Qb0Cj| zH1PpCoKG;5+1HLefAhPDDH_QM1i)aOH++TVu2-`-iAiY+13jWTHD59&DQ@1TM2Zs} zG4dC*h&j!y1BtLx%ztK=%EReP%f^I!j^q2>%X3ZMU{$$dv&1=bWb|ycx3)hs@lLiS zs{^s~1+@B%=>jqYPjqhr~mK*v209@9gu&F43?5@{_=E*F# zc$H+l((v*u6=V#mT4lwKmf^RK4sn4!k%6w+T{77-V4!ERBg?{g*=*b5%d4Oon={J7 zme`o5CAu@eM+5vFj2%q29+CS1K{cZNz93*_z*+I`9$Q^IKFyE%uS~5%Ga<(XOBTNY zbg;ziX1`-DNZS~vPzc)bcYhFBc2~cC0RYyY#;=TTjT#kk$(~U$ribpGDxYtdKjGEu z)^2?#d*8Td3CI6Bsp=UM8>-^cw0awS4@TA_?kgLR$JFJArWGKP@eHMSw9yC&j4w}u zOn;pk*}G8eyosgaex_{hpZMMh(HTArzJK@=uWP~>T_JCLT?6M+=R2GYY3vz$=J4L* zMc*apZ#7QNpiS1*p1;eBN#H@?qUR;D7#bR4*NCI5kViqQBL_&g6-*|3AcSX4b^Pbbl1d*h;hi z5%3DA-ns=ZRBx@_hdwygm(Fb8TkpBkk2;C(FSFlm}Rni$PpotFn!_?i@Ybng7Gu$2#>I3)1%N?OV3v=rv3>rFj zEmr~0RUniYl@)b9QN^JT(rSBV01n&lLk`Y8T|w3!+s^|%vSv+V<#s3OUF9AJlRen$ zJ4WQJZ$vA*ho#1+#8T3iq>|EVlwl%Hs0vYEUYX!nkP~Xtl@zT^sjOSJ@(4q%eG=OA zJ7!*(+*2PGn;f$pEv+s&+nTG_r!m)o->e!YRJ`=>UF{lT5y5eBMJG!yA;O6uAk~y8 z<{*B8ZQ&t9U^vBBK7EpB;I=zjKM%i!BJ1x>3vN5N!g{L`-aI?mTIH-}51;qqweP$7 zRGVuAOhC0nHiPf`mAW5ebryp1o>G18kmNIeRQ$e-k`|VfFU3f-?&kq?mYOH=23iK1 z^D#e}Ja!WI8?_h=_48H*uIePhKOJg?*O}*CECmOeN^uW{_S%+YHK?esLW2g#Tg$Vw2sm>QpfG=wRyJw1Q-u=Socn|t@$sA zU|Kn;rU&G&8N^3@K_A}L(U8mJ{m725q4oE9yDQ0Nwz!5f!HOv}Iz)*E8w5(zh>rB9 zqA$B@^E>oEI@@cTD24~$OSO9Y&v+r_CJm6}`DIE!4zgg9>VC15{|c0K8h0a2rnk2D z%}8_FJxi6PbC1TsrL2r>nIV~M&>$GUUuF~kw(ePHqks6DYXT=bo~MQ)=sawWZ24Z2 zIyjQ_D`S$X!K{3Y&l9awPNDAMcK#RkG6{U?X9U)*d6PaiVjBKD}jkz4ijpq*B1T;W9ol_07 z5W{$)rMU>@mAi}oVzUuZR;{ZUdiTXMQxLWS#1>(>vPeE7KW(!-(2^2Jly7df7kllrTAE$t7SN2FU4WzM=rfj%>1-n)||{(PP~VUcI#R4;zZR|XJE2P zE6bO>N~FL)6T5ORN(K2Q_34glf$4<(LII2YtoxN?;o8l@R)pwkN7)=*UdOAA2IU@j zmhEK1ZQ2?pr`VPM!S386axg5?c*h}#B8|WHM6L@ui;wyu8WAX30fktgjFI?VPxg7s zYTg8IwW?vG<*2YA8;;YD9X%$mOm*qC7|r@Kz=+1B4ZhU#re&5HWdy;mH1^Ewt^&XNZu2&!%v~INTS_7c~*wrHn|zZ6<r3&8pC@<=`}i}LRn^BK|GHA| zE^SHk>x}Q}Ho+P(vf7Wx{X-$uGXDCRiTYeMiSy-yavHiZgeB3sV-IGCl{mS(!3pw3 zNA8;mys_^lS~MExh^NPyI*$YfznrSj^cBiwV&SV&Qopt3j6Yd2m2kbNeZMN&c40-e zG45O_!P*omuB@{s8CyBJ#&+^_N$983xH!`sHG4b?#M(u?+N{S#nC0Xg>5|3J13q4N zIziep)QgX)9}7=5izYc|b@G_f4Th~~uPxC@)9!>E828eJ%BiYT!(bCzp8G&(IkJAG zZvXCh&t|<90B!7?OR``U;mcTg)|6z!F_W%6xo+eYI=QH9f%QkG)dN$|$g#{Y&3? zV5bJuexoZ8CgZ6Pj^4p$?qpjAci}z@~ zpKj&Pqu(O0FN}Eo z(_EqmKu)T{gvZxLb@DQ@@Lzm?Tw3p{i($ZI|KCP1YpnWec!656TpqbJ(%w>En9%)- zmR)W(bQLB?`iR^S3Mr1`H-!h~)IaNSp-H`En=R@wPABEcP`& ztP>x6EMD8?#RMA=)^dOujug2^Dkc)amZj6SfOz;6Y#CHKKqLgrS=t12@g#BV^g@S~* zhGe@?PAcBm-xiOG7cJ*pT@8o%Exe_ub#@uvm2p&SMRA2TDnl#ou65Kwwe0P6WQIm2 zAad7dav=;n#VqOMMO(Sn6Z5@@@Ouh`xN~c78C2M^-AuPrj2pIu$Xi`4@-&OZJX|0v z(0!p+^^*JOZ2#vh$$`rEw5)79!mB|yDDKkbwzBd5AGV^^CYtz*<; z0!L>y8n4xq#!53{N0ZKqW#V1#+wH}9daHeOiT*tM`=)!Xz*81uNlg3{jn4hAF-HbS zsSK~`g1U=L$;rUOk~T3mtZz%+oArb5Xzk6U<1jqP(5^^r_!A`X^RtDGoXa9mspJ1c zE&`RzQ5nKS{S%A*$qp@oLsNCo(#Hj)l4Cw6sDvdZqJ@=lu>w~?6J14vqVQ~p^atgbt>dza2KAfaM+S@T9x&AJ*i$9I!J(T-w(Wb}mMZVe;m!vk^9uU4(>>&d?JR{KL&4L7tb_r~|PudD>D@~@Uom~IW} z+iQE-iZ*;(NT|}qLwg0q7Fwm-N_Nr)bBV6GA`(X!afLw`W5&1VAtgpD(_zB43r1!)K zYZq(}^GYQ9us=?qS7jO!{xiQwusa zID6&`@Jj~_hU|@8(OA4Xot%%Jti60bYtUBc`+`zGmSr%0Vzdl`Py|({1+6 z{;{@1Lqi86gt#!v06^wevh;Im3K+xAl+6K_f`H zOurdCD5rua`R)NZ^-&b!hr;?rT*wjfpqz(AU~M50f1qv$zptXlXPN3P)(O#lo6%1` zce`A@kgzIKiNhjz7H|kx>f6N)_&rpStuCpKCrlepR%$C8t5U7=Mf*EnZTt;+Qnpi6 zt?JD`AFC%n|23uvEur9}W+P;MjB?8F!E&0UFRB4xO9ZI=dWW=uhV8GNGxP=fsrd8C zWHGno)9>zL{H%!{E{aXR(zT~8qblWUf^18Txo1VAe zdtr)L@B90KM`wI255LEjWZo`jgd&dI9kJ+jcJLdPNjLNy*wgT3_-E5bEG}`{^Mm5E zqhx4|Iq6~RLj?C%VPkla$K zYA}&}R)##pDhmil_rF*j<7r`f5Uv}<=zRDvjO2?!InDEzt>2%3~h{Fn6a zOu5hcLKxvR$mxoZ0tzrNJtQhOGyh|JF>w-RJE=%B7|CZZnCSF<#uCqXh^{iUB>~fh znRQi_RPu(6x5}0(98Y?ZG5+g#?h{s&zpd`%>3QjSuP)VqOVVqo%~&)17_S&Mxo2mW zBLn*rnJ2@-sa<-UboaLbojZ?h`s!Nn=5e%IcxA&L_H#RfI_Naqg?Zl z-gpyA1#R0zk549OrkMBHII?dt`O70W`DHk3yW5W5vsfP7 z4sIrmG91h^O?5V*+vmpr8jcn!HK9fa!N)c47ZgHp&~|>H8ITAKKO%RA@n9dmVl&aa zGSGhQg0AeN-he_{67BsN266gG91l_rK`-ETx>$`ZHb*C@Q2Q@mMT3v>8P%MEHW=UsXiF!wUupZm50Li zp|YXW;ft`z4))R0&(0fStn!$Z&r}snZIgqsgouJv&%;^^d= zs)=V%yasJB5^6cr20dA22}ANef2KsQVY}ihwt<`4QC)C*Bv7WyYW|4aKNO=_bR z$Z6n9Iy@RLUNkbsXa~>*#OVnr38cv47I+RbAPNh&&}kp<5h-t~Aq#reN(Izk_MC~y-U#d{{n zRZr4pp4o@*nC6K4kM^&8>GLL&Z|ytV2s;cuPj6;oSiQ}p%Mqfls|`BX3sj<7B%XX{ z+`sJ;OI5S$f%gj1Q|BDzPml%yLHOtmy7|HydzpXaXrrpHT)(QiIxMyW3jot0fzaU} zV=19;nMZ4ngp0X48Qbi18{#_p&soydrn>D+*oK<|9pMa$pj;o@yWbGi!ScebdgSv# zU<0A}b}9q#1Jpfl0sDJoK;?i+*Rpk3=g8E=dYr;xHD@ym8vGHt2mA2OZs@TiF-iPk z@Q7Ri8X4$8xNVS=^Fv2+S5fEs^IL!^%fRMm`BQdy?&u|MJqoiHo^%%oX% z949e6dxG_x2#SwSwWPML<@hAlMp4(!OXx`Y{~t+1^B4fE8cJ#U9>IPuW;jlD3F`tf)5 z>)e6Ew*dhKGpAszJ5CS?8=JPm*k}dAr+T&c+Ln@R&&D!X?rj$f)FrQHexhQ;_rV9I zY*dcbyTXytZ%JMssx{3C%{z1?y_2XMoz-qW!#@_^S{ZhxR6viHm@KKkme1f-Vem9F z0~a}K48nfjhJ>$(cg9cGDtE#U)r?&6ihA~5ga`-DLLZU)8$-%v`Sr02*3qVPdr(fJ z`_bz=U?ce-9P7L8>xKk2^o2jE2{&=`J=rzpjGNq8Mf7uSmBg3@KdB}9Y_=MY-U64r z^=%@Bx3Ihkk)F~SSVlUqr%q(qYM;_mvHkX)arWSjw&yNhqn0r$6_$|@J4BB zN%byF?|#21gasE?e6mwtdDq2yOFR>k9k9a>pQzP=QiR9a2Ylz@IR05MS^E@9977fQ z!dH8Uwml$fJ(24hr-yp3#5_wZW<1*ZF29kSh;UxV(Oq?z{q5h>+q`oZcy*oW~SkM=<`!kggH zKH$}tEAhN+ipul*_=Y=7isJLMF_Ogd7Ne`4PAZW~PkIn5kgD-mIt zNN~tW9uPR?p)VhrD?V+}Yw%$`Tje#J?32R3_S*$s8S$sP#Z_avBVuFFFD~zyC6&H* zYj_ylJq*z$qn$o993#twWx^*1_4H=sjTG1I24*K%U_ABLuddC!y$-XEd(u5D@xSNg zCN-7nv+l5QeTbyf=l-cRIwr9^xt!U8n`a5C!C<5vW9Fhd(;I?o!j}Edx(WG2`1N2w z@%8T=n_Z79doHbpa|83>>@BwQ(GC&+|E&IA1S;?UxCdpfAMxnSb{e)kB%o;R(OnR8 z#RG9pOK6QTEm`=MxTDScKfNZ`&vC`X3!CY)&sj}SP^r{hbVzxZTu!#sg}ICNLYS^E zVc><$RkO}#zUpd9B>CnlMwa$Vg;_rizp2-W{c96j$imNl`L{YRNTQ}mNx0m={Fpn# z;ODz8Y8BL2S+l9^7cHYsmC2oYUp@8QUrETWUpE~i++lppv&D(^)vr9RSd`43dzDzZ zgD}#UTqAw6d-r9{Z{2@{glEY&f4YC;Yu~Zlv0Ohu3hqO6g_`?%n>RLEE%=>0WlwZ( zz)?U2{j;Wp(|p@!-WBR@M{uEY3pP}>Ztu^8AZO2uhIc&r2azxN_`aQ!{8RnIvA!NQ zxot!v>F~Stw@l=6(~b|@$K?(_Vvm}~SbfNH#tsjTmBwG|FXiipCRnr3^FPPR$i>V{ z{4S(&VXbJxVLT0&&A@-sfa(y>t^o<-IumKD8td)tov;q`^!Wg6G01yxGw)7(dfrmx z`YIL5uq@dAxBR%UDxR@vv(_}9D(lUwt`P2r0mBgE+Oz<9Ep#HAyr<4nv*$Khea0){ z%P)ei{?=K}EjYWs$vbF*wQW=^cBo%Va|xSOE4L6iE+6L#kCONoXFwu%YnCg#zL|Sp@l3=u(w9V2|>c)9xKItmE!#~+V1EbdHz2v znXf3(mAGm1L}Zh_GN-RJOrmj_P$*nF4C!BngxpBYjDd4nd^|aT0ZXgZ4;PEIwt=2g zxdU0!rZqLYddG*xbV*mvp#~G^kL6(pL;?n>9WW7tB#*Eg9)!bXOMQ&hFC?W-4@u4s zy?n~u9c{|&7iR*ZhY4mY57yoqa*%XJyyz&(*@9BJ;PLylh11FBO-S*&jaXAp1)>J#qx@dIZ-8cPBkmtr@bcKDrP8a9*JIRI%izp-Aj)5 z>SO|j3j0ew|F!;){blP)L-oJ$zGX@c);zQ~2W5MEh9ObN5p!9qz54SEgtR;lxqOTLTk`g_(#lPSY|*TF)KD#~7m{*}mW z!~Re$^p5UhM$%dA*;RS$H?4j;Ot{g^Kg^NDiEm?WCS4HCXQjX`H=?dK_>Xw?rO7~E zUhWmZ2lf%6bul$vsYXt2-Ta4K%(=Re^5+NNrOo?49SL0jK{@R&lr5!?_Q8-F_nX4v zF?p0BiNm&w78ArehTxrzj8jSN5-G0?`7>z(-(SlXZ*$HOG)vI)&0MBdPMG+NLUSf5W+-RrVL#< zMOU)JUQ+l6iuU}10kQq{(2@M#xx4>Qi1L4Q!;i=X5uJiS?x2Up2m~Tve0UM!;ZyOj T`LHSq0fEr}k52Uew;%m4K77w* literal 0 HcmV?d00001 diff --git a/sounds/error.swf b/sounds/error.swf deleted file mode 100644 index d05b7efa1f530550952b6e87b2b91d7b61f471b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2498 zcmV;z2|e~hS5pYA3jhFkob6WoJJe|#f4<+D!I&||7>BTo^ElNQa@y3)7%@&c=8z&w zC5MRBN%_tY3gu9C=wQ%Vw7n~|sl;F^L>R4>QqHT|Ev>C6`o3e|_qyKyV1Ig_`?{X{ zey;2J;ePJV{dw*WLlKC8E(EwLK(<_96h*lNWm&id1Iu=K(2hwW004mv0Tckv%b}kO zS!*|eC+=^Dj}!r*NbdUTmK*{Jf118&MuPw%MpzC+EEXUvpiJg!ZxFX>4s=T32b+wd z?3WG*S~SjnAc#Aal~<0PJy=E$M;BdhW1f|utIWwNx!=%90Ut?6zxYlbVYr}6#LXfG z7KR{19LXYM0a&m$0)zO4_z>N{PRQ{WFzyS=;u%!AMKCpuCN1LtQ*SAKijXgCl(#{< z`Q@%1F?ki}pDlALoJx7qeiZ#nOQ4|fa8CBn@5s^5U#D=l$U@e$!@ycr3J9=(KK+ze z!r-H z7PAgDr$C#aI4It=kd}K}$1L+1g?vBSHU$qC31XlWp1XC4lFs-UC#?AOHERj?>;V%srvq9r}K!Dq5)kv5& zn2-lm@y1yc_s&(H8_a~&&lX{&c?mI_?!<_)1^B9OZ2X3|*rQ7fb+bpNK@p&M&6YH~ik_S<;`QucU{nTJPi4{+dMHf`(M&uamx`Z&sFZ_e<)y+hDnm z4p1(n04xTE0ML%rZ}*iD9@KEs&G%#(6?cc6#ER=uqu~LqxmGEw3M?>ZlnnKMb)4Z* zXUY=tPEJ*3tXzEf3hlY4?(RtY38iJWwlw+61*0o1%*=*vNrho|xgNS4dD^nJJlDx9 zoC`ZpU8M(anKS^v5G!=Br_~WYE1ko*H31&fQczOho9&vh8&y;y z1^N#8yJjPk0lDoi+Uz#Y#E+$JPGpe~6*TQT?AF{gvuLGE~yqt_lK($w!L0JPx z0bq3OMn+;qSv&XcAM3Xz=MSC=y7hy=&r@OlRl5a`0l8_irDE|fnU>r?2Go4_bR0l@ zi7^)LCns#>$m=tM=>`$58!nWaKdND$6DXMP%Rz1Zsbv4e;*5D(xNRz#A-Y2L{1QNh zFf_iPa?4u@X-@<8GLUsom%vvHMYLysP+8%9GDUP2ccC%1ahMUR+OzDVw;li~ z$4lTJ%UFL*#*;1%Us7`lc2F$L9SX7&vupdxTy)%T%?Vp_m$2BF@P2Ebr{+wc$7x;- z)_dqbHjr@J^L3u|xz!1)y^q`CG*H6Im^3Qm&p+Zg9j+%`w!2{X({`!^80h!hRtKcK zOCo@A#6m(E+$lWbY0T`A-Vo7a&t<`RA?t(!TqavzIqKzi);`sKo;q3v(zY5`EB56F zfkn~R+ux_O<2*$o->vB$v+0FC-^*&EV};Fg53#@`BeE~gRQ|%+48j9gMK|b8Bnx|t z_vvcBtKX!P`fP;K|mZp8l{*zYK#728-9rX1(dEs~2k4ifT~xc?Xi;}m&1%O^ z-uGejsweM{yC<}dn?AlV@+$08+Dn7tf}*gJ#yxWbB}9^=-~1;8=yS;;3M`xP3bzC$ zPVb6D8}s)b-0IJ80+HfBig(}LK4LMF_#~L&O#e~7p#1H%oJ!UZdv{DWyE5huWwdbg zbLQ_EwQAmsPck8J!ZGbR%q8t6t@ofyD{AtN;8gvRnQIIp0?bRd{@_hwSeI>9_ZtF8 zAwSp4U+KvWz@BGWE3re9@e6dH?d7hN+$xEnG?toC#WL8zobeNI>wfb#$fFFid4Ufp zMoqj}5yjzKN280m9+ss;R<@@t-AjWUDGteI`+qRB)V+?KE7cCR-4Y0Dx|v$K0Olw_$h4Ao>T|6=Qt${8LJWE~9E$XAmeP5ikut)(|DEv>}IwyJMaXTO6q zkG`mEIqhRv-RJzWrqBjmwKlJ>H7SqHQVQfe9`<6Y1qE(HS7K|*+4c4HFKdc7dRjL0 zxZsFHa?+WbXs2;dP=L4XAPxM}w#FdGzf~OguZsKIL6-kH8q0|GkLUD%`=0?6gIU7^ MfHkrGZy$U!`*v#Ra{vGU diff --git a/styles/prosilver/template/event/index_body_block_online_append.html b/styles/prosilver/template/event/index_body_block_online_append.html index 6ada4a8..89c96c5 100644 --- a/styles/prosilver/template/event/index_body_block_online_append.html +++ b/styles/prosilver/template/event/index_body_block_online_append.html @@ -1,4 +1,4 @@ -

{L_WHO_IS_CHATTING}

+

{L_WHO_IS_CHATTING}

{MCHAT_USERS_COUNT} {MCHAT_ONLINE_EXPLAIN}
{MCHAT_USERS_LIST}

diff --git a/styles/prosilver/template/event/index_body_forumlist_body_after.html b/styles/prosilver/template/event/index_body_forumlist_body_after.html index ca8b367..97619f3 100644 --- a/styles/prosilver/template/event/index_body_forumlist_body_after.html +++ b/styles/prosilver/template/event/index_body_forumlist_body_after.html @@ -1 +1 @@ - + diff --git a/styles/prosilver/template/event/index_body_markforums_before.html b/styles/prosilver/template/event/index_body_markforums_before.html index f91ac1a..9e6870e 100644 --- a/styles/prosilver/template/event/index_body_markforums_before.html +++ b/styles/prosilver/template/event/index_body_markforums_before.html @@ -1 +1 @@ - + diff --git a/styles/prosilver/template/event/overall_header_content_before.html b/styles/prosilver/template/event/overall_header_content_before.html deleted file mode 100644 index 63542bc..0000000 --- a/styles/prosilver/template/event/overall_header_content_before.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/styles/prosilver/template/event/overall_header_head_append.html b/styles/prosilver/template/event/overall_header_head_append.html index 4c1e76f..be48246 100644 --- a/styles/prosilver/template/event/overall_header_head_append.html +++ b/styles/prosilver/template/event/overall_header_head_append.html @@ -1 +1,2 @@ - + + diff --git a/styles/prosilver/template/mchat.js b/styles/prosilver/template/mchat.js index 6dcba31..f5078a1 100644 --- a/styles/prosilver/template/mchat.js +++ b/styles/prosilver/template/mchat.js @@ -1,7 +1,7 @@ /** * * @package mChat JavaScript Code mini - * @version 1.4.4 of 2013-11-03 + * @version 1.5.1 of 2016-01-17 * @copyright (c) 2009 By Shapoval Andrey Vladimirovich (AllCity) ~ http://allcity.net.ru/ * @copyright (c) 2013 By Rich McGirr (RMcGirr83) http://rmcgirr83.org * @copyright (c) 2015 By dmzx - http://www.dmzx-web.net @@ -9,19 +9,6 @@ * @license http://opensource.org/licenses/gpl-license.php GNU Public License * */ -if (!String.prototype.startsWith) { - String.prototype.startsWith = function(searchString, position) { - position = position || 0; - return this.indexOf(searchString, position) === position; - }; -} - -if (!String.prototype.capitalize) { - String.prototype.capitalize = function() { - return this.charAt(0).toUpperCase() + this.slice(1); - }; -} - // Support Opera if (typeof document.hasFocus === 'undefined') { document.hasFocus = function() { @@ -30,46 +17,66 @@ if (typeof document.hasFocus === 'undefined') { } jQuery(function($) { - var ajaxOptions = { - url: mChat.file, - timeout: 10000, - type: 'POST', - error: function(xhr, textStatus, errorThrown) { - if (xhr.status == 400) { + var ajaxRequest = function(mode, sendHiddenFields, data) { + var deferred = $.Deferred(); + var promise = deferred.promise(); + if (sendHiddenFields) { + $.extend(data, mChat.hiddenFields); + } + $.ajax({ + url: mChat.file.replace('mchat', 'mchat-' + mode), + timeout: 5000, + type: 'POST', + dataType: 'json', + data: data + }).success(function(json, status, xhr) { + if (json.hasOwnProperty(mode)) { + deferred.resolve(json, status, xhr); + } else { + deferred.reject(xhr, status, xhr.responseJSON ? 'session' : 'format'); + } + }).error(function(xhr, status, error) { + deferred.reject(xhr, status, error); + }); + return promise.fail(function(xhr, textStatus, errorThrown) { + mChat.sound('error'); + mChat.$$('refresh-load', 'refresh-ok', 'refresh-paused').hide(); + mChat.$$('refresh-error').show(); + if (errorThrown == 'format') { + // Unexpected format + } else if (errorThrown == 'session') { + mChat.endSession(); + alert(mChat.sessOut); + } else if (xhr.status == 400) { alert(mChat.flood); } else if (xhr.status == 403) { alert(mChat.noAccess); + } else if (xhr.status == 413) { + alert(mChat.mssgLngthLong); } else if (xhr.status == 501) { alert(mChat.noMessageInput); } else if (typeof console !== 'undefined' && console.log) { console.log('AJAX error. status: ' + textStatus + ', message: ' + errorThrown); } - } - }; - - var formatRemainingSessionTime = function(time) { - return (new Date(time * 1000)).toUTCString().match(/(\d\d:\d\d:\d\d)/)[0]; + }); }; $.extend(mChat, { clear: function() { if (mChat.$$('input').val() !== '') { if (confirm(mChat.clearConfirm)) { - mChat.resetSession(); + mChat.resetSession(true); mChat.$$('input').val(''); } mChat.$$('input').focus(); } }, sound: function(file) { - if (Cookies.get('mChatNoSound')) { - return; - } - file = mChat.extUrl + 'sounds/' + file + '.swf'; - if (navigator.userAgent.match(/MSIE ([0-9]+)\./) || navigator.userAgent.match(/Trident\/7.0; rv 11.0/)) { - mChat.$$('sound').html(''); - } else { - mChat.$$('sound').html(''); + if (!Cookies.get('mchat_no_sound')) { + var audio = mChat.$$('sound-' + file).get(0); + audio.pause(); + audio.currentTime = 0; + audio.play(); } }, notice: function() { @@ -80,7 +87,7 @@ jQuery(function($) { toggle: function(name) { var $elem = mChat.$$(name); $elem.stop().slideToggle(function() { - var cookieName = 'mChatShow' + name.capitalize(); + var cookieName = 'mchat_show_' + name; if ($elem.is(':visible')) { Cookies.set(cookieName, 'yes'); } else { @@ -89,65 +96,45 @@ jQuery(function($) { }); }, add: function() { - if (mChat.submitting) { + if (mChat.$$('add').prop('disabled')) { return; } - if (mChat.$$('input').val() === '') { + if ($.trim(mChat.$$('input').val()) === '') { return; } - var messChars = mChat.$$('input').val().replace(/ /g, ''); - if (mChat.mssgLngth && messChars.length > mChat.mssgLngth) { + var messChars = mChat.$$('input').val().replace(/\s/g, ''); + if (messChars.length > mChat.mssgLngth) { alert(mChat.mssgLngthLong); return; } - var $formElems = $('#' + form_name + ' :input[name]').filter(function(i, elem) { - return !elem.name.startsWith('addbbcode'); + mChat.pauseSession(); + mChat.$$('add').prop('disabled', true); + ajaxRequest('add', true, { + message: mChat.$$('input').val() + }).done(function(json) { + mChat.$$('input').val(''); + mChat.refresh(); + }).always(function() { + mChat.$$('input').focus(); + mChat.$$('add').prop('disabled', false); + mChat.resetSession(false); }); - $.ajax($.extend({}, ajaxOptions, { - data: $formElems.serialize(), - beforeSend: function() { - mChat.$$('add').attr('disabled', 'disabled'); - mChat.pauseSession(); - }, - success: function(json) { - if (json.add) { - mChat.$$('input').val(''); - mChat.refresh(); - } - }, - complete: function() { - mChat.resetSession(); - mChat.$$('input').focus(); - mChat.$$('add').removeAttr('disabled'); - } - })); }, edit: function() { var $container = $(this).closest('.mchat-message'); - var $message = mChat.$$('confirm').find('textarea').show().val($container.data('edit')); + var $message = mChat.$$('confirm').find('textarea').show().val($container.data('message')); mChat.$$('confirm').find('p').text(mChat.editInfo); phpbb.confirm(mChat.$$('confirm'), function() { - $.ajax($.extend({}, ajaxOptions, { - data: { - mode: 'edit', - message_id: $container.data('id'), - message: $message.val() - }, - success: function(json) { - $container.fadeOut('slow', function() { - $container.replaceWith($(json.edit).hide().fadeIn('slow')); - }); - }, - complete: function() { - $message.val(''); - mChat.resetSession(); - if (!mChat.archiveMode && !mChat.messageTop) { - setTimeout(function() { - mChat.$$('main').animate({scrollTop: mChat.$$('main')[0].scrollHeight}, 'slow', 'swing'); - }, 250); - } - } - })); + ajaxRequest('edit', true, { + message_id: $container.data('id'), + message: $message.val() + }).done(function(json) { + mChat.sound('edit'); + $container.fadeOut('slow', function() { + $container.replaceWith($(json.edit).hide().fadeIn('slow')); + }); + mChat.resetSession(true); + }); }); }, del: function() { @@ -155,100 +142,146 @@ jQuery(function($) { mChat.$$('confirm').find('textarea').hide(); mChat.$$('confirm').find('p').text(mChat.delConfirm); phpbb.confirm(mChat.$$('confirm'), function() { - $.ajax($.extend({}, ajaxOptions, { - data: { - mode: 'del', - message_id: $container.data('id') - }, - success: function(json) { - if (json.del) { - mChat.sound('del'); + ajaxRequest('del', true, { + message_id: $container.data('id') + }).done(function(json) { + mChat.sound('del'); + $container.fadeOut('slow', function() { + $container.remove(); + }); + mChat.resetSession(true); + }); + }); + }, + refresh: function() { + var $messages = mChat.$$('messages').children(); + var data = { + message_last_id: $messages.filter(mChat.messageTop ? ':first' : ':last').data('id') + }; + if (mChat.liveUpdates) { + data.message_first_id = $messages.filter(mChat.messageTop ? ':last' : ':first').data('id'); + data.message_edits = {}; + var now = Math.floor(Date.now() / 1000); + $.each($messages, function() { + var $message = $(this); + var editTime = $message.data('edit-time'); + if (editTime && (!mChat.editDeleteLimit || $message.data('message-time') >= now - mChat.editDeleteLimit / 1000)) { + data.message_edits[$message.data('id')] = editTime; + } + }); + } + mChat.$$('refresh-ok', 'refresh-error', 'refresh-paused').hide(); + mChat.$$('refresh-load').show(); + ajaxRequest('refresh', false, data).done(function(json) { + var $html = $(json.refresh); + if ($html.length) { + mChat.sound('add'); + mChat.notice(); + mChat.$$('no-messages').remove(); + $html.hide().each(function(i) { + var $message = $(this); + setTimeout(function() { + if (mChat.messageTop) { + mChat.$$('messages').prepend($message); + } else { + mChat.$$('messages').append($message); + } + $message.css('opacity', 0).slideDown('slow').animate({opacity: 1}, {queue: false, duration: 'slow'}); + mChat.$$('main').animate({scrollTop: mChat.messageTop ? 0 : mChat.$$('main')[0].scrollHeight}, 'slow'); + }, i * 600); + if (mChat.editDeleteLimit && $message.data('edit-delete-limit') && $message.find('[data-mchat-action="edit"], [data-mchat-action="del"]').length > 0) { + var id = $message.attr('id'); + setTimeout(function() { + $('#' + id).find('[data-mchat-action="edit"], [data-mchat-action="del"]').fadeOut('slow', function() { + $(this).remove(); + }); + }, mChat.editDeleteLimit); + } + }); + } + if (json.hasOwnProperty('edit')) { + var isFirstEdit = true; + $.each(json.edit, function(id, content) { + var $container = $('#mchat-message-' + id); + if ($container.length) { + if (isFirstEdit) { + isFirstEdit = false; + mChat.sound('edit'); + } + $container.fadeOut('slow', function() { + $container.replaceWith($(content).hide().fadeIn('slow')); + }); + } + }); + } + if (json.hasOwnProperty('del')) { + var isFirstDelete = true; + $.each(json.del, function(i, id) { + var $container = $('#mchat-message-' + id); + if ($container.length) { + if (isFirstDelete) { + isFirstDelete = false; + mChat.sound('del'); + } $container.fadeOut('slow', function() { $container.remove(); }); } - }, - complete: mChat.resetSession - })); - }); - }, - refresh: function() { - var firstLastSelector = mChat.messageTop ? ':first' : ':last'; - var id = mChat.$$('messages').children(firstLastSelector).data('id'); - $.ajax($.extend({}, ajaxOptions, { - data: { - mode: 'refresh', - message_last_id: id - }, - beforeSend: function() { - mChat.$$('refresh-ok', 'refresh-error', 'refresh-paused').hide(); - mChat.$$('refresh-load').show(); - }, - success: function(json) { - var $html = $(json.refresh); - if ($html.length) { - mChat.$$('no-messages').remove(); - mChat.$$('messages')[mChat.messageTop ? 'prepend' : 'append']($html.hide()); - $html.css('opacity', 0).slideDown('slow').animate({opacity: 1}, {queue: false, duration: 'slow'}); - mChat.$$('main').animate({scrollTop: mChat.messageTop ? 0 : mChat.$$('main')[0].scrollHeight}, 'slow'); - mChat.sound('add'); - mChat.notice(); - } - setTimeout(function() { + }); + } + setTimeout(function() { + if (mChat.refreshInterval) { mChat.$$('refresh-load', 'refresh-error', 'refresh-paused').hide(); mChat.$$('refresh-ok').show(); - mChat.$$('refresh-text').html(mChat.refreshYes); - }, 250); - }, - error: function() { - mChat.$$('refresh-load', 'refresh-ok', 'refresh-paused').hide(); - mChat.$$('refresh-error').show(); - mChat.sound('error'); - } - })); + } + }, 250); + }); }, whois: function() { - $.ajax($.extend({}, ajaxOptions, { - data: { - mode: 'whois' - }, - beforeSend: function() { - if (mChat.customPage) { - mChat.$$('refresh-pending').show(); - mChat.$$('refresh').hide(); - } - }, - success: function(json) { - var $whois = $(json.whois); - var $userlist = $whois.find('#mchat-userlist'); - if (Cookies.get('mChatShowUserlist')) { - $userlist.show(); - } - mChat.$$('whois').replaceWith($whois); - mChat.cache['whois'] = $whois; - mChat.cache['userlist'] = $userlist; - if (mChat.customPage) { - setTimeout(function() { - mChat.$$('refresh-pending').hide(); - mChat.$$('refresh').show(); - }, 250); - } - }, - error: function() { - mChat.sound('error'); + if (mChat.customPage) { + mChat.$$('refresh-pending').show(); + mChat.$$('refresh').hide(); + } + ajaxRequest('whois', false, {}).done(function(json) { + var $whois = $(json.whois); + var $userlist = $whois.find('#mchat-userlist'); + if (Cookies.get('mchat_show_userlist')) { + $userlist.show(); } - })); + mChat.$$('whois').replaceWith($whois); + mChat.cache.whois = $whois; + mChat.cache.userlist = $userlist; + if (mChat.customPage) { + setTimeout(function() { + mChat.$$('refresh-pending').hide(); + mChat.$$('refresh').show(); + }, 250); + } + }); + }, + clean: function() { + mChat.$$('confirm').find('textarea').hide(); + mChat.$$('confirm').find('p').text(mChat.cleanConfirm); + phpbb.confirm(mChat.$$('confirm'), function() { + ajaxRequest('clean', true, {}).done(function() { + phpbb.alert('mChat', mChat.cleanDone); + setTimeout(function() { + location.reload(); + }, 2000); + }); + }); + }, + timeLeft: function(sessionTime) { + return (new Date(sessionTime * 1000)).toUTCString().match(/(\d\d:\d\d:\d\d)/)[0]; }, countDown: function() { mChat.sessionTime -= 1; - var timeLeft = formatRemainingSessionTime(mChat.sessionTime); - mChat.$$('session').html(mChat.sessEnds + ' ' + timeLeft); - if (mChat.sessionTime <= 0) { + mChat.$$('session').html(mChat.sessEnds + ' ' + mChat.timeLeft(mChat.sessionTime)); + if (mChat.sessionTime < 1) { mChat.endSession(); } }, pauseSession: function() { - mChat.submitting = true; clearInterval(mChat.refreshInterval); if (mChat.userTimeout) { clearInterval(mChat.sessionCountdown); @@ -257,14 +290,14 @@ jQuery(function($) { clearInterval(mChat.whoisInterval); } }, - resetSession: function() { + resetSession: function(updateUi) { clearInterval(mChat.refreshInterval); mChat.refreshInterval = setInterval(mChat.refresh, mChat.refreshTime); if (mChat.userTimeout) { mChat.sessionTime = mChat.userTimeout / 1000; clearInterval(mChat.sessionCountdown); + mChat.$$('session').html(mChat.sessEnds + ' ' + mChat.timeLeft(mChat.sessionTime)); mChat.sessionCountdown = setInterval(mChat.countDown, 1000); - mChat.$$('session').html(mChat.sessEnds + ' ' + formatRemainingSessionTime(mChat.sessionTime)); } if (mChat.whoisRefresh) { clearInterval(mChat.whoisInterval); @@ -273,24 +306,26 @@ jQuery(function($) { if (mChat.pause) { mChat.$$('input').one('keypress', mChat.endSession); } - mChat.$$('refresh-ok').show(); - mChat.$$('refresh-load', 'refresh-error', 'refresh-paused').hide(); - mChat.$$('refresh-text').html(mChat.refreshYes); - mChat.submitting = false; + if (updateUi) { + mChat.$$('refresh-ok').show(); + mChat.$$('refresh-load', 'refresh-error', 'refresh-paused').hide(); + mChat.$$('refresh-text').html(mChat.refreshYes); + } }, endSession: function() { clearInterval(mChat.refreshInterval); + mChat.refreshInterval = false; if (mChat.userTimeout) { clearInterval(mChat.sessionCountdown); mChat.$$('session').html(mChat.sessOut); } if (mChat.whoisRefresh) { clearInterval(mChat.whoisInterval); + mChat.whois(); } mChat.$$('refresh-load', 'refresh-ok', 'refresh-error').hide(); mChat.$$('refresh-paused').show(); mChat.$$('refresh-text').html(mChat.refreshNo); - mChat.whois(); }, mention: function() { var $container = $(this).closest('.mchat-message'); @@ -306,13 +341,13 @@ jQuery(function($) { quote: function() { var $container = $(this).closest('.mchat-message'); var username = mChat.entityDecode($container.data('username')); - var quote = mChat.entityDecode($container.data('edit')); + var quote = mChat.entityDecode($container.data('message')); insert_text('[quote="' + username + '"] ' + quote + '[/quote]'); }, like: function() { var $container = $(this).closest('.mchat-message'); var username = mChat.entityDecode($container.data('username')); - var quote = mChat.entityDecode($container.data('edit')); + var quote = mChat.entityDecode($container.data('message')); insert_text(mChat.likes + '[quote="' + username + '"] ' + quote + '[/quote]'); }, entityDecode: function(text) { @@ -340,6 +375,11 @@ jQuery(function($) { mChat.cache = {}; mChat.$$('confirm').detach().show(); + mChat.hiddenFields = {}; + $('#' + form_name).find('input[type=hidden]').each(function() { + mChat.hiddenFields[this.name] = this.value; + }); + if (!mChat.archiveMode) { $.fn.autoGrowInput = function() { this.filter('input:text').each(function() { @@ -374,32 +414,27 @@ jQuery(function($) { return this; }; - mChat.resetSession(); + mChat.resetSession(true); if (!mChat.messageTop) { mChat.$$('main').animate({scrollTop: mChat.$$('main')[0].scrollHeight}, 'slow', 'swing'); } - if (mChat.playSound && Cookies.get('mChatNoSound')) { - mChat.$$('user-sound').removeAttr('checked'); - } else { - mChat.$$('user-sound').attr('checked', 'checked'); - Cookies.remove('mChatNoSound'); - } + mChat.$$('user-sound').prop('checked', mChat.playSound && !Cookies.get('mchat_no_sound')); - if (Cookies.get('mChatShowSmilies')) { + if (Cookies.get('mchat_show_smilies')) { mChat.$$('smilies').slideToggle('slow'); } - if (Cookies.get('mChatShowBbcodes')) { + if (Cookies.get('mchat_show_bbcodes')) { mChat.$$('bbcodes').slideToggle('slow', function() { - if (Cookies.get('mChatShowColour')) { + if (Cookies.get('mchat_show_colour')) { mChat.$$('colour').slideToggle('slow'); } }); } - if (Cookies.get('mChatShowUserlist')) { + if (Cookies.get('mchat_show_userlist')) { mChat.$$('userlist').slideToggle('slow'); } @@ -411,13 +446,13 @@ jQuery(function($) { mChat.$$('user-sound').change(function() { if (this.checked) { - Cookies.remove('mChatNoSound'); + Cookies.remove('mchat_no_sound'); } else { - Cookies.set('mChatNoSound', 'yes'); + Cookies.set('mchat_no_sound', 'yes'); } }); - $('#postform').on('keypress', function(e) { + $('#' + form_name).on('keypress', function(e) { if (e.which == 13) { mChat.add(); e.preventDefault(); @@ -427,7 +462,7 @@ jQuery(function($) { mChat.$$('input').autoGrowInput(); } - $('#page-body').on('click', '[data-mchat-action]', function(e) { + $('#phpbb').on('click', '[data-mchat-action]', function(e) { var action = $(this).data('mchat-action'); mChat[action].call(this); e.preventDefault(); diff --git a/styles/prosilver/template/mchat.min.js b/styles/prosilver/template/mchat.min.js index 0b49118..fe07130 100644 --- a/styles/prosilver/template/mchat.min.js +++ b/styles/prosilver/template/mchat.min.js @@ -1,7 +1,7 @@ /** * * @package mChat JavaScript Code mini - * @version 1.5.0 of 2015-12-27 + * @version 1.5.1 of 2016-01-17 * @copyright (c) 2009 By Shapoval Andrey Vladimirovich (AllCity) ~ http://allcity.net.ru/ * @copyright (c) 2013 By Rich McGirr (RMcGirr83) http://rmcgirr83.org * @copyright (c) 2015 By dmzx - http://www.dmzx-web.net @@ -9,4 +9,4 @@ * @license http://opensource.org/licenses/gpl-license.php GNU Public License * */ -String.prototype.startsWith||(String.prototype.startsWith=function(e,t){return t=t||0,this.indexOf(e,t)===t}),String.prototype.capitalize||(String.prototype.capitalize=function(){return this.charAt(0).toUpperCase()+this.slice(1)}),"undefined"==typeof document.hasFocus&&(document.hasFocus=function(){return"visible"==document.visibilityState}),jQuery(function(e){var t={url:mChat.file,timeout:1e4,type:"POST",error:function(e,t,a){400==e.status?alert(mChat.flood):403==e.status?alert(mChat.noAccess):501==e.status?alert(mChat.noMessageInput):"undefined"!=typeof console&&console.log&&console.log("AJAX error. status: "+t+", message: "+a)}},a=function(e){return new Date(1e3*e).toUTCString().match(/(\d\d:\d\d:\d\d)/)[0]};e.extend(mChat,{clear:function(){""!==mChat.$$("input").val()&&(confirm(mChat.clearConfirm)&&(mChat.resetSession(),mChat.$$("input").val("")),mChat.$$("input").focus())},sound:function(e){Cookies.get("mChatNoSound")||(e=mChat.extUrl+"sounds/"+e+".swf",navigator.userAgent.match(/MSIE ([0-9]+)\./)||navigator.userAgent.match(/Trident\/7.0; rv 11.0/)?mChat.$$("sound").html(''):mChat.$$("sound").html(''))},notice:function(){document.hasFocus()||e.titleAlert(mChat.newMessageAlert,{interval:1e3})},toggle:function(e){var t=mChat.$$(e);t.stop().slideToggle(function(){var a="mChatShow"+e.capitalize();t.is(":visible")?Cookies.set(a,"yes"):Cookies.remove(a)})},add:function(){if(!mChat.submitting&&""!==mChat.$$("input").val()){var a=mChat.$$("input").val().replace(/ /g,"");if(mChat.mssgLngth&&a.length>mChat.mssgLngth)return void alert(mChat.mssgLngthLong);var s=e("#"+form_name+" :input[name]").filter(function(e,t){return!t.name.startsWith("addbbcode")});e.ajax(e.extend({},t,{data:s.serialize(),beforeSend:function(){mChat.$$("add").attr("disabled","disabled"),mChat.pauseSession()},success:function(e){e.add&&(mChat.$$("input").val(""),mChat.refresh())},complete:function(){mChat.resetSession(),mChat.$$("input").focus(),mChat.$$("add").removeAttr("disabled")}}))}},edit:function(){var a=e(this).closest(".mchat-message"),s=mChat.$$("confirm").find("textarea").show().val(a.data("edit"));mChat.$$("confirm").find("p").text(mChat.editInfo),phpbb.confirm(mChat.$$("confirm"),function(){e.ajax(e.extend({},t,{data:{mode:"edit",message_id:a.data("id"),message:s.val()},success:function(t){a.fadeOut("slow",function(){a.replaceWith(e(t.edit).hide().fadeIn("slow"))})},complete:function(){s.val(""),mChat.resetSession(),mChat.archiveMode||mChat.messageTop||setTimeout(function(){mChat.$$("main").animate({scrollTop:mChat.$$("main")[0].scrollHeight},"slow","swing")},250)}}))})},del:function(){var a=e(this).closest(".mchat-message");mChat.$$("confirm").find("textarea").hide(),mChat.$$("confirm").find("p").text(mChat.delConfirm),phpbb.confirm(mChat.$$("confirm"),function(){e.ajax(e.extend({},t,{data:{mode:"del",message_id:a.data("id")},success:function(e){e.del&&(mChat.sound("del"),a.fadeOut("slow",function(){a.remove()}))},complete:mChat.resetSession}))})},refresh:function(){var a=mChat.messageTop?":first":":last",s=mChat.$$("messages").children(a).data("id");e.ajax(e.extend({},t,{data:{mode:"refresh",message_last_id:s},beforeSend:function(){mChat.$$("refresh-ok","refresh-error","refresh-paused").hide(),mChat.$$("refresh-load").show()},success:function(t){var a=e(t.refresh);a.length&&(mChat.$$("no-messages").remove(),mChat.$$("messages")[mChat.messageTop?"prepend":"append"](a.hide()),a.css("opacity",0).slideDown("slow").animate({opacity:1},{queue:!1,duration:"slow"}),mChat.$$("main").animate({scrollTop:mChat.messageTop?0:mChat.$$("main")[0].scrollHeight},"slow"),mChat.sound("add"),mChat.notice()),setTimeout(function(){mChat.$$("refresh-load","refresh-error","refresh-paused").hide(),mChat.$$("refresh-ok").show(),mChat.$$("refresh-text").html(mChat.refreshYes)},250)},error:function(){mChat.$$("refresh-load","refresh-ok","refresh-paused").hide(),mChat.$$("refresh-error").show(),mChat.sound("error")}}))},whois:function(){e.ajax(e.extend({},t,{data:{mode:"whois"},beforeSend:function(){mChat.customPage&&(mChat.$$("refresh-pending").show(),mChat.$$("refresh").hide())},success:function(t){var a=e(t.whois),s=a.find("#mchat-userlist");Cookies.get("mChatShowUserlist")&&s.show(),mChat.$$("whois").replaceWith(a),mChat.cache.whois=a,mChat.cache.userlist=s,mChat.customPage&&setTimeout(function(){mChat.$$("refresh-pending").hide(),mChat.$$("refresh").show()},250)},error:function(){mChat.sound("error")}}))},countDown:function(){mChat.sessionTime-=1;var e=a(mChat.sessionTime);mChat.$$("session").html(mChat.sessEnds+" "+e),mChat.sessionTime<=0&&mChat.endSession()},pauseSession:function(){mChat.submitting=!0,clearInterval(mChat.refreshInterval),mChat.userTimeout&&clearInterval(mChat.sessionCountdown),mChat.whoisRefresh&&clearInterval(mChat.whoisInterval)},resetSession:function(){clearInterval(mChat.refreshInterval),mChat.refreshInterval=setInterval(mChat.refresh,mChat.refreshTime),mChat.userTimeout&&(mChat.sessionTime=mChat.userTimeout/1e3,clearInterval(mChat.sessionCountdown),mChat.sessionCountdown=setInterval(mChat.countDown,1e3),mChat.$$("session").html(mChat.sessEnds+" "+a(mChat.sessionTime))),mChat.whoisRefresh&&(clearInterval(mChat.whoisInterval),mChat.whoisInterval=setInterval(mChat.whois,mChat.whoisRefresh)),mChat.pause&&mChat.$$("input").one("keypress",mChat.endSession),mChat.$$("refresh-ok").show(),mChat.$$("refresh-load","refresh-error","refresh-paused").hide(),mChat.$$("refresh-text").html(mChat.refreshYes),mChat.submitting=!1},endSession:function(){clearInterval(mChat.refreshInterval),mChat.userTimeout&&(clearInterval(mChat.sessionCountdown),mChat.$$("session").html(mChat.sessOut)),mChat.whoisRefresh&&clearInterval(mChat.whoisInterval),mChat.$$("refresh-load","refresh-ok","refresh-error").hide(),mChat.$$("refresh-paused").show(),mChat.$$("refresh-text").html(mChat.refreshNo),mChat.whois()},mention:function(){var t=e(this).closest(".mchat-message"),a=mChat.entityDecode(t.data("username")),s=t.data("usercolor");s?a="[b][color="+s+"]"+a+"[/color][/b]":mChat.allowBBCodes&&(a="[b]"+a+"[/b]"),insert_text("@ "+a+", ")},quote:function(){var t=e(this).closest(".mchat-message"),a=mChat.entityDecode(t.data("username")),s=mChat.entityDecode(t.data("edit"));insert_text('[quote="'+a+'"] '+s+"[/quote]")},like:function(){var t=e(this).closest(".mchat-message"),a=mChat.entityDecode(t.data("username")),s=mChat.entityDecode(t.data("edit"));insert_text(mChat.likes+'[quote="'+a+'"] '+s+"[/quote]")},entityDecode:function(e){var t=decodeURIComponent(e.toString().replace(/\+/g," "));return t=t.replace(/</g,"<"),t=t.replace(/>/g,">"),t=t.replace(/:/g,":"),t=t.replace(/./g,"."),t=t.replace(/&/g,"&"),t=t.replace(/"/g,"'")},$$:function(){return e(e.map(arguments,function(t){return mChat.cache[t]||(mChat.cache[t]=e("#mchat-"+t)),mChat.cache[t]})).map(function(){return this.toArray()})}}),mChat.cache={},mChat.$$("confirm").detach().show(),mChat.archiveMode||(e.fn.autoGrowInput=function(){return this.filter("input:text").each(function(){var t=20,a=e(this).width(),s="",o=e(this),h=e("
").css({position:"absolute",top:-9999,left:-9999,width:"auto",fontSize:o.css("fontSize"),fontFamily:o.css("fontFamily"),fontWeight:o.css("fontWeight"),letterSpacing:o.css("letterSpacing"),whiteSpace:"nowrap"});h.insertAfter(o),e(this).on("keypress blur change submit focus",function(){if(s!==(s=o.val())){var n=s.replace(/&/g,"&").replace(/\s/g," ").replace(//g,">"),r=h.html(n).width(),i=r+t>=a?r+t:a;(i=a||i>a&&imChat.mssgLngth)return void alert(mChat.mssgLngthLong);mChat.pauseSession(),mChat.$$("add").prop("disabled",!0),t("add",!0,{message:mChat.$$("input").val()}).done(function(e){mChat.$$("input").val(""),mChat.refresh()}).always(function(){mChat.$$("input").focus(),mChat.$$("add").prop("disabled",!1),mChat.resetSession(!1)})}},edit:function(){var a=e(this).closest(".mchat-message"),s=mChat.$$("confirm").find("textarea").show().val(a.data("message"));mChat.$$("confirm").find("p").text(mChat.editInfo),phpbb.confirm(mChat.$$("confirm"),function(){t("edit",!0,{message_id:a.data("id"),message:s.val()}).done(function(t){mChat.sound("edit"),a.fadeOut("slow",function(){a.replaceWith(e(t.edit).hide().fadeIn("slow"))}),mChat.resetSession(!0)})})},del:function(){var a=e(this).closest(".mchat-message");mChat.$$("confirm").find("textarea").hide(),mChat.$$("confirm").find("p").text(mChat.delConfirm),phpbb.confirm(mChat.$$("confirm"),function(){t("del",!0,{message_id:a.data("id")}).done(function(e){mChat.sound("del"),a.fadeOut("slow",function(){a.remove()}),mChat.resetSession(!0)})})},refresh:function(){var a=mChat.$$("messages").children(),s={message_last_id:a.filter(mChat.messageTop?":first":":last").data("id")};if(mChat.liveUpdates){s.message_first_id=a.filter(mChat.messageTop?":last":":first").data("id"),s.message_edits={};var o=Math.floor(Date.now()/1e3);e.each(a,function(){var t=e(this),a=t.data("edit-time");a&&(!mChat.editDeleteLimit||t.data("message-time")>=o-mChat.editDeleteLimit/1e3)&&(s.message_edits[t.data("id")]=a)})}mChat.$$("refresh-ok","refresh-error","refresh-paused").hide(),mChat.$$("refresh-load").show(),t("refresh",!1,s).done(function(t){var a=e(t.refresh);if(a.length&&(mChat.sound("add"),mChat.notice(),mChat.$$("no-messages").remove(),a.hide().each(function(t){var a=e(this);if(setTimeout(function(){mChat.messageTop?mChat.$$("messages").prepend(a):mChat.$$("messages").append(a),a.css("opacity",0).slideDown("slow").animate({opacity:1},{queue:!1,duration:"slow"}),mChat.$$("main").animate({scrollTop:mChat.messageTop?0:mChat.$$("main")[0].scrollHeight},"slow")},600*t),mChat.editDeleteLimit&&a.data("edit-delete-limit")&&a.find('[data-mchat-action="edit"], [data-mchat-action="del"]').length>0){var s=a.attr("id");setTimeout(function(){e("#"+s).find('[data-mchat-action="edit"], [data-mchat-action="del"]').fadeOut("slow",function(){e(this).remove()})},mChat.editDeleteLimit)}})),t.hasOwnProperty("edit")){var s=!0;e.each(t.edit,function(t,a){var o=e("#mchat-message-"+t);o.length&&(s&&(s=!1,mChat.sound("edit")),o.fadeOut("slow",function(){o.replaceWith(e(a).hide().fadeIn("slow"))}))})}if(t.hasOwnProperty("del")){var o=!0;e.each(t.del,function(t,a){var s=e("#mchat-message-"+a);s.length&&(o&&(o=!1,mChat.sound("del")),s.fadeOut("slow",function(){s.remove()}))})}setTimeout(function(){mChat.refreshInterval&&(mChat.$$("refresh-load","refresh-error","refresh-paused").hide(),mChat.$$("refresh-ok").show())},250)})},whois:function(){mChat.customPage&&(mChat.$$("refresh-pending").show(),mChat.$$("refresh").hide()),t("whois",!1,{}).done(function(t){var a=e(t.whois),s=a.find("#mchat-userlist");Cookies.get("mchat_show_userlist")&&s.show(),mChat.$$("whois").replaceWith(a),mChat.cache.whois=a,mChat.cache.userlist=s,mChat.customPage&&setTimeout(function(){mChat.$$("refresh-pending").hide(),mChat.$$("refresh").show()},250)})},clean:function(){mChat.$$("confirm").find("textarea").hide(),mChat.$$("confirm").find("p").text(mChat.cleanConfirm),phpbb.confirm(mChat.$$("confirm"),function(){t("clean",!0,{}).done(function(){phpbb.alert("mChat",mChat.cleanDone),setTimeout(function(){location.reload()},2e3)})})},timeLeft:function(e){return new Date(1e3*e).toUTCString().match(/(\d\d:\d\d:\d\d)/)[0]},countDown:function(){mChat.sessionTime-=1,mChat.$$("session").html(mChat.sessEnds+" "+mChat.timeLeft(mChat.sessionTime)),mChat.sessionTime<1&&mChat.endSession()},pauseSession:function(){clearInterval(mChat.refreshInterval),mChat.userTimeout&&clearInterval(mChat.sessionCountdown),mChat.whoisRefresh&&clearInterval(mChat.whoisInterval)},resetSession:function(e){clearInterval(mChat.refreshInterval),mChat.refreshInterval=setInterval(mChat.refresh,mChat.refreshTime),mChat.userTimeout&&(mChat.sessionTime=mChat.userTimeout/1e3,clearInterval(mChat.sessionCountdown),mChat.$$("session").html(mChat.sessEnds+" "+mChat.timeLeft(mChat.sessionTime)),mChat.sessionCountdown=setInterval(mChat.countDown,1e3)),mChat.whoisRefresh&&(clearInterval(mChat.whoisInterval),mChat.whoisInterval=setInterval(mChat.whois,mChat.whoisRefresh)),mChat.pause&&mChat.$$("input").one("keypress",mChat.endSession),e&&(mChat.$$("refresh-ok").show(),mChat.$$("refresh-load","refresh-error","refresh-paused").hide(),mChat.$$("refresh-text").html(mChat.refreshYes))},endSession:function(){clearInterval(mChat.refreshInterval),mChat.refreshInterval=!1,mChat.userTimeout&&(clearInterval(mChat.sessionCountdown),mChat.$$("session").html(mChat.sessOut)),mChat.whoisRefresh&&(clearInterval(mChat.whoisInterval),mChat.whois()),mChat.$$("refresh-load","refresh-ok","refresh-error").hide(),mChat.$$("refresh-paused").show(),mChat.$$("refresh-text").html(mChat.refreshNo)},mention:function(){var t=e(this).closest(".mchat-message"),a=mChat.entityDecode(t.data("username")),s=t.data("usercolor");s?a="[b][color="+s+"]"+a+"[/color][/b]":mChat.allowBBCodes&&(a="[b]"+a+"[/b]"),insert_text("@ "+a+", ")},quote:function(){var t=e(this).closest(".mchat-message"),a=mChat.entityDecode(t.data("username")),s=mChat.entityDecode(t.data("message"));insert_text('[quote="'+a+'"] '+s+"[/quote]")},like:function(){var t=e(this).closest(".mchat-message"),a=mChat.entityDecode(t.data("username")),s=mChat.entityDecode(t.data("message"));insert_text(mChat.likes+'[quote="'+a+'"] '+s+"[/quote]")},entityDecode:function(e){var t=decodeURIComponent(e.toString().replace(/\+/g," "));return t=t.replace(/</g,"<"),t=t.replace(/>/g,">"),t=t.replace(/:/g,":"),t=t.replace(/./g,"."),t=t.replace(/&/g,"&"),t=t.replace(/"/g,"'")},$$:function(){return e(e.map(arguments,function(t){return mChat.cache[t]||(mChat.cache[t]=e("#mchat-"+t)),mChat.cache[t]})).map(function(){return this.toArray()})}}),mChat.cache={},mChat.$$("confirm").detach().show(),mChat.hiddenFields={},e("#"+form_name).find("input[type=hidden]").each(function(){mChat.hiddenFields[this.name]=this.value}),mChat.archiveMode||(e.fn.autoGrowInput=function(){return this.filter("input:text").each(function(){var t=20,a=e(this).width(),s="",o=e(this),n=e("
").css({position:"absolute",top:-9999,left:-9999,width:"auto",fontSize:o.css("fontSize"),fontFamily:o.css("fontFamily"),fontWeight:o.css("fontWeight"),letterSpacing:o.css("letterSpacing"),whiteSpace:"nowrap"});n.insertAfter(o),e(this).on("keypress blur change submit focus",function(){if(s!==(s=o.val())){var h=s.replace(/&/g,"&").replace(/\s/g," ").replace(//g,">"),i=n.html(h).width(),r=i+t>=a?i+t:a;(r=a||r>a&&r + - - - +