Version 2.0.2

This commit is contained in:
dmzx
2017-12-09 08:09:57 +01:00
parent 6405c7c7ab
commit 0addbac5c0
92 changed files with 1051 additions and 776 deletions

View File

@@ -13,6 +13,8 @@ namespace dmzx\mchat\acp;
class acp_mchat_module
{
public $tpl_name;
public $page_title;
public $u_action;
public function main($id, $mode)

View File

@@ -1,277 +1,288 @@
<!-- INCLUDE overall_header.html -->
{% INCLUDE 'overall_header.html' %}
<h1>{L_MCHAT_TITLE}</h1>
<h1>{{ lang('MCHAT_TITLE') }}</h1>
{L_MCHAT_VERSION}{L_COLON} <em>{MCHAT_VERSION}</em>
{{ lang('MCHAT_VERSION') ~ lang('COLON') }} <em>{{ MCHAT_VERSION }}</em>
<!-- IF MCHAT_ERROR -->
{% if MCHAT_ERROR %}
<div class="errorbox">
<h3>{L_WARNING}</h3>
<p>{MCHAT_ERROR}</p>
<h3>{{ lang('WARNING') }}</h3>
<p>{{ MCHAT_ERROR }}</p>
</div>
<!-- ENDIF -->
{% endif %}
<form id="acp_mchat" method="post" action="{U_ACTION}">
<form id="acp_mchat" method="post" action="{{ U_ACTION }}">
<fieldset>
<legend>{L_MCHAT_SETTINGS_INDEX}</legend>
<legend>{{ lang('MCHAT_SETTINGS_INDEX') }}</legend>
<!-- EVENT dmzx_mchat_acp_index_height_before -->
{% EVENT dmzx_mchat_acp_index_height_before %}
<dl>
<dt><label for="mchat_index_height">{L_MCHAT_INDEX_HEIGHT}{L_COLON}</label><br />
<span>{L_MCHAT_INDEX_HEIGHT_EXPLAIN}</span></dt>
<dd><input type="text" name="mchat_index_height" id="mchat_index_height" size="10" maxlength="4" value="{MCHAT_INDEX_HEIGHT}" />&nbsp;<span>{L_PIXEL}</span></dd>
<dt><label for="mchat_index_height">{{ lang('MCHAT_INDEX_HEIGHT') ~ lang('COLON') }}</label><br />
<span>{{ lang('MCHAT_INDEX_HEIGHT_EXPLAIN') }}</span></dt>
<dd><input type="text" name="mchat_index_height" id="mchat_index_height" size="10" maxlength="4" value="{{ MCHAT_INDEX_HEIGHT }}" />&nbsp;<span>{{ lang('PIXEL') }}</span></dd>
</dl>
<dl>
<dt><label for="mchat_message_num_index">{L_MCHAT_MESSAGE_NUM_INDEX}{L_COLON}</label><br />
<span>{L_MCHAT_MESSAGE_NUM_INDEX_EXPLAIN}</span></dt>
<dd><input type="text" name="mchat_message_num_index" id="mchat_message_num_index" size="10" maxlength="4" value="{MCHAT_MESSAGE_NUM_INDEX}" />&nbsp;<span>{L_MCHAT_ACP_MESSAGES}</span></dd>
<dt><label for="mchat_message_num_index">{{ lang('MCHAT_MESSAGE_NUM_INDEX') ~ lang('COLON') }}</label><br />
<span>{{ lang('MCHAT_MESSAGE_NUM_INDEX_EXPLAIN') }}</span></dt>
<dd><input type="text" name="mchat_message_num_index" id="mchat_message_num_index" size="10" maxlength="4" value="{{ MCHAT_MESSAGE_NUM_INDEX }}" />&nbsp;<span>{{ lang('MCHAT_ACP_MESSAGES') }}</span></dd>
</dl>
<!-- EVENT dmzx_mchat_acp_message_num_index_after -->
{% EVENT dmzx_mchat_acp_message_num_index_after %}
</fieldset>
<!-- EVENT acp_dmzx_mchat_globalsettings_index_after -->
{% EVENT acp_dmzx_mchat_globalsettings_index_after %}
<fieldset>
<legend>{L_MCHAT_SETTINGS_CUSTOM}</legend>
<legend>{{ lang('MCHAT_SETTINGS_CUSTOM') }}</legend>
<!-- EVENT dmzx_mchat_acp_custom_page_before -->
{% EVENT dmzx_mchat_acp_custom_page_before %}
<dl>
<dt><label for="mchat_custom_page">{L_MCHAT_CUSTOM_PAGE}{L_COLON}</label></dt>
<dd><label><input type="radio" class="radio" name="mchat_custom_page" value="1"<!-- IF MCHAT_CUSTOM_PAGE --> id="mchat_custom_page" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="mchat_custom_page" value="0"<!-- IF not MCHAT_CUSTOM_PAGE --> id="mchat_custom_page" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
<dt><label for="mchat_custom_page">{{ lang('MCHAT_CUSTOM_PAGE') ~ lang('COLON') }}</label></dt>
<dd><label><input type="radio" class="radio" name="mchat_custom_page" value="1"{% if MCHAT_CUSTOM_PAGE %} id="mchat_custom_page" checked="checked"{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" class="radio" name="mchat_custom_page" value="0"{% if not MCHAT_CUSTOM_PAGE %} id="mchat_custom_page" checked="checked"{% endif %} /> {{ lang('NO') }}</label></dd>
</dl>
<dl>
<dt><label for="mchat_custom_height">{L_MCHAT_CUSTOM_HEIGHT}{L_COLON}</label><br />
<span>{L_MCHAT_CUSTOM_HEIGHT_EXPLAIN}</span></dt>
<dd><input type="text" name="mchat_custom_height" id="mchat_custom_height" size="10" maxlength="4" value="{MCHAT_CUSTOM_HEIGHT}" />&nbsp;<span>{L_PIXEL}</span></dd>
<dt><label for="mchat_custom_height">{{ lang('MCHAT_CUSTOM_HEIGHT') ~ lang('COLON') }}</label><br />
<span>{{ lang('MCHAT_CUSTOM_HEIGHT_EXPLAIN') }}</span></dt>
<dd><input type="text" name="mchat_custom_height" id="mchat_custom_height" size="10" maxlength="4" value="{{ MCHAT_CUSTOM_HEIGHT }}" />&nbsp;<span>{{ lang('PIXEL') }}</span></dd>
</dl>
<dl>
<dt><label for="mchat_message_num_custom">{L_MCHAT_MESSAGE_NUM_CUSTOM}{L_COLON}</label><br />
<span>{L_MCHAT_MESSAGE_NUM_CUSTOM_EXPLAIN}</span></dt>
<dd><input type="text" name="mchat_message_num_custom" id="mchat_message_num_custom" size="10" value="{MCHAT_MESSAGE_NUM_CUSTOM}" />&nbsp;<span>{L_MCHAT_ACP_MESSAGES}</span></dd>
<dt><label for="mchat_message_num_custom">{{ lang('MCHAT_MESSAGE_NUM_CUSTOM') ~ lang('COLON') }}</label><br />
<span>{{ lang('MCHAT_MESSAGE_NUM_CUSTOM_EXPLAIN') }}</span></dt>
<dd><input type="text" name="mchat_message_num_custom" id="mchat_message_num_custom" size="10" value="{{ MCHAT_MESSAGE_NUM_CUSTOM }}" />&nbsp;<span>{{ lang('MCHAT_ACP_MESSAGES') }}</span></dd>
</dl>
<dl>
<dt><label for="mchat_navbar_link">{L_MCHAT_NAVBAR_LINK}{L_COLON}</label></dt>
<dd><label><input type="radio" class="radio" name="mchat_navbar_link" value="1"<!-- IF MCHAT_NAVBAR_LINK --> id="mchat_navbar_link" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="mchat_navbar_link" value="0"<!-- IF not MCHAT_NAVBAR_LINK --> id="mchat_navbar_link" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
<dt><label for="mchat_navbar_link">{{ lang('MCHAT_NAVBAR_LINK') ~ lang('COLON') }}</label></dt>
<dd><label><input type="radio" class="radio" name="mchat_navbar_link" value="1"{% if MCHAT_NAVBAR_LINK %} id="mchat_navbar_link" checked="checked"{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" class="radio" name="mchat_navbar_link" value="0"{% if not MCHAT_NAVBAR_LINK %} id="mchat_navbar_link" checked="checked"{% endif %} /> {{ lang('NO') }}</label></dd>
</dl>
<dl>
<dt><label for="mchat_navbar_link_count">{L_MCHAT_NAVBAR_LINK_COUNT}{L_COLON}</label></dt>
<dd><label><input type="radio" class="radio" name="mchat_navbar_link_count" value="1"<!-- IF MCHAT_NAVBAR_LINK_COUNT --> id="mchat_navbar_link_count" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="mchat_navbar_link_count" value="0"<!-- IF not MCHAT_NAVBAR_LINK_COUNT --> id="mchat_navbar_link_count" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
<dt><label for="mchat_navbar_link_count">{{ lang('MCHAT_NAVBAR_LINK_COUNT') ~ lang('COLON') }}</label></dt>
<dd><label><input type="radio" class="radio" name="mchat_navbar_link_count" value="1"{% if MCHAT_NAVBAR_LINK_COUNT %} id="mchat_navbar_link_count" checked="checked"{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" class="radio" name="mchat_navbar_link_count" value="0"{% if not MCHAT_NAVBAR_LINK_COUNT %} id="mchat_navbar_link_count" checked="checked"{% endif %} /> {{ lang('NO') }}</label></dd>
</dl>
<!-- EVENT dmzx_mchat_acp_navbar_link_count_after -->
{% EVENT dmzx_mchat_acp_navbar_link_count_after %}
</fieldset>
<fieldset>
<legend>{L_MCHAT_SETTINGS_ARCHIVE}</legend>
<legend>{{ lang('MCHAT_SETTINGS_ARCHIVE') }}</legend>
<!-- EVENT dmzx_mchat_acp_message_num_archive_before -->
{% EVENT dmzx_mchat_acp_message_num_archive_before %}
<dl>
<dt><label for="mchat_message_num_archive">{L_MCHAT_MESSAGE_NUM_ARCHIVE}{L_COLON}</label><br />
<span>{L_MCHAT_MESSAGE_NUM_ARCHIVE_EXPLAIN}</span></dt>
<dd><input type="text" name="mchat_message_num_archive" id="mchat_message_num_archive" size="10" value="{MCHAT_MESSAGE_NUM_ARCHIVE}" />&nbsp;<span>{L_MCHAT_ACP_MESSAGES}</span></dd>
<dt><label for="mchat_message_num_archive">{{ lang('MCHAT_MESSAGE_NUM_ARCHIVE') ~ lang('COLON') }}</label><br />
<span>{{ lang('MCHAT_MESSAGE_NUM_ARCHIVE_EXPLAIN') }}</span></dt>
<dd><input type="text" name="mchat_message_num_archive" id="mchat_message_num_archive" size="10" value="{{ MCHAT_MESSAGE_NUM_ARCHIVE }}" />&nbsp;<span>{{ lang('MCHAT_ACP_MESSAGES') }}</span></dd>
</dl>
<!-- EVENT dmzx_mchat_acp_message_num_archive_after -->
{% EVENT dmzx_mchat_acp_message_num_archive_after %}
<dl>
<dt><label for="mchat_archive_sort">{L_MCHAT_ARCHIVE_SORT}{L_COLON}</label></dt>
<dt><label for="mchat_archive_sort">{{ lang('MCHAT_ARCHIVE_SORT') ~ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" class="radio" name="mchat_archive_sort" value="0"<!-- IF MCHAT_ARCHIVE_SORT == 0 --> id="mchat_archive_sort" checked="checked"<!-- ENDIF --> /> {L_MCHAT_ARCHIVE_SORT_TOP_BOTTOM}</label><br />
<label><input type="radio" class="radio" name="mchat_archive_sort" value="1"<!-- IF MCHAT_ARCHIVE_SORT == 1 --> id="mchat_archive_sort" checked="checked"<!-- ENDIF --> /> {L_MCHAT_ARCHIVE_SORT_BOTTOM_TOP}</label><br />
<label><input type="radio" class="radio" name="mchat_archive_sort" value="2"<!-- IF MCHAT_ARCHIVE_SORT == 2 --> id="mchat_archive_sort" checked="checked"<!-- ENDIF --> /> {L_MCHAT_ARCHIVE_SORT_USER}</label>
<label><input type="radio" class="radio" name="mchat_archive_sort" value="0"{% if MCHAT_ARCHIVE_SORT == 0 %} id="mchat_archive_sort" checked="checked"{% endif %} /> {{ lang('MCHAT_ARCHIVE_SORT_TOP_BOTTOM') }}</label><br />
<label><input type="radio" class="radio" name="mchat_archive_sort" value="1"{% if MCHAT_ARCHIVE_SORT == 1 %} id="mchat_archive_sort" checked="checked"{% endif %} /> {{ lang('MCHAT_ARCHIVE_SORT_BOTTOM_TOP') }}</label><br />
<label><input type="radio" class="radio" name="mchat_archive_sort" value="2"{% if MCHAT_ARCHIVE_SORT == 2 %} id="mchat_archive_sort" checked="checked"{% endif %} /> {{ lang('MCHAT_ARCHIVE_SORT_USER') }}</label>
</dd>
</dl>
</fieldset>
<fieldset>
<legend>{L_MCHAT_SETTINGS_MESSAGES}</legend>
<legend>{{ lang('MCHAT_SETTINGS_MESSAGES') }}</legend>
<!-- EVENT dmzx_mchat_acp_timeout_before -->
{% EVENT dmzx_mchat_acp_timeout_before %}
<dl>
<dt><label for="mchat_timeout">{L_MCHAT_TIMEOUT}{L_COLON}</label><br />
<span>{L_MCHAT_TIMEOUT_EXPLAIN}</span></dt>
<dd><input type="text" name="mchat_timeout" id="mchat_timeout" size="10" maxlength="4" value="{MCHAT_TIMEOUT}" />&nbsp;<span>{L_MCHAT_ACP_SECONDS}</span></dd>
<dt><label for="mchat_timeout">{{ lang('MCHAT_TIMEOUT') ~ lang('COLON') }}</label><br />
<span>{{ lang('MCHAT_TIMEOUT_EXPLAIN') }}</span></dt>
<dd><input type="text" name="mchat_timeout" id="mchat_timeout" size="10" maxlength="4" value="{{ MCHAT_TIMEOUT }}" />&nbsp;<span>{{ lang('MCHAT_ACP_SECONDS') }}</span></dd>
</dl>
<dl>
<dt><label for="mchat_refresh">{L_MCHAT_REFRESH}{L_COLON}</label><br />
<span>{L_MCHAT_REFRESH_EXPLAIN}</span></dt>
<dd><input type="text" name="mchat_refresh" id="mchat_refresh" size="10" value="{MCHAT_REFRESH}" />&nbsp;<span>{L_MCHAT_ACP_SECONDS}</dd>
<dt><label for="mchat_refresh">{{ lang('MCHAT_REFRESH') ~ lang('COLON') }}</label><br />
<span>{{ lang('MCHAT_REFRESH_EXPLAIN') }}</span></dt>
<dd><input type="text" name="mchat_refresh" id="mchat_refresh" size="10" value="{{ MCHAT_REFRESH }}" />&nbsp;<span>{{ lang('MCHAT_ACP_SECONDS') }}</span></dd>
</dl>
<dl>
<dt><label for="mchat_edit_delete_limit">{L_MCHAT_EDIT_DELETE_LIMIT}{L_COLON}</label><br />
<span>{L_MCHAT_EDIT_DELETE_LIMIT_EXPLAIN}</span>
<dd><input type="text" name="mchat_edit_delete_limit" id="mchat_edit_delete_limit" size="10" value="{MCHAT_EDIT_DELETE_LIMIT}" />&nbsp;<span>{L_MCHAT_ACP_SECONDS}</dd>
<dt><label for="mchat_edit_delete_limit">{{ lang('MCHAT_EDIT_DELETE_LIMIT') ~ lang('COLON') }}</label><br />
<span>{{ lang('MCHAT_EDIT_DELETE_LIMIT_EXPLAIN') }}</span>
<dd><input type="text" name="mchat_edit_delete_limit" id="mchat_edit_delete_limit" size="10" value="{{ MCHAT_EDIT_DELETE_LIMIT }}" />&nbsp;<span>{{ lang('MCHAT_ACP_SECONDS') }}</span></dd>
</dl>
<dl>
<dt><label for="mchat_live_updates">{L_MCHAT_LIVE_UPDATES}{L_COLON}</label><br />
<span>{L_MCHAT_LIVE_UPDATES_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="mchat_live_updates" value="1"<!-- IF MCHAT_LIVE_UPDATES --> id="mchat_live_updates" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="mchat_live_updates" value="0"<!-- IF not MCHAT_LIVE_UPDATES --> id="mchat_live_updates" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
<dt><label for="mchat_live_updates">{{ lang('MCHAT_LIVE_UPDATES') ~ lang('COLON') }}</label><br />
<span>{{ lang('MCHAT_LIVE_UPDATES_EXPLAIN') }}</span></dt>
<dd><label><input type="radio" class="radio" name="mchat_live_updates" value="1"{% if MCHAT_LIVE_UPDATES %} id="mchat_live_updates" checked="checked"{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" class="radio" name="mchat_live_updates" value="0"{% if not MCHAT_LIVE_UPDATES %} id="mchat_live_updates" checked="checked"{% endif %} /> {{ lang('NO') }}</label></dd>
</dl>
<dl>
<dt><label for="mchat_flood_time">{L_MCHAT_FLOOD_TIME}{L_COLON}</label><br />
<span>{L_MCHAT_FLOOD_TIME_EXPLAIN}</span></dt>
<dd><input type="text" name="mchat_flood_time" id="mchat_flood_time" size="10" value="{MCHAT_FLOOD_TIME}" />&nbsp;<span>{L_MCHAT_ACP_SECONDS}</dd>
<dt><label for="mchat_flood_time">{{ lang('MCHAT_FLOOD_TIME') ~ lang('COLON') }}</label><br />
<span>{{ lang('MCHAT_FLOOD_TIME_EXPLAIN') }}</span></dt>
<dd><input type="text" name="mchat_flood_time" id="mchat_flood_time" size="10" value="{{ MCHAT_FLOOD_TIME }}" />&nbsp;<span>{{ lang('MCHAT_ACP_SECONDS') }}</span></dd>
</dl>
<dl>
<dt><label for="mchat_max_message_lngth">{L_MCHAT_MAX_MESSAGE_LENGTH}{L_COLON}</label><br />
<span>{L_MCHAT_MAX_MESSAGE_LENGTH_EXPLAIN}</span></dt>
<dd><input type="text" name="mchat_max_message_lngth" id="mchat_max_message_lngth" size="10" value="{MCHAT_MAX_MESSAGE_LNGTH}" />&nbsp;<span>{L_MCHAT_ACP_CHARACTERS}</dd>
<dt><label for="mchat_max_message_lngth">{{ lang('MCHAT_MAX_MESSAGE_LENGTH') ~ lang('COLON') }}</label><br />
<span>{{ lang('MCHAT_MAX_MESSAGE_LENGTH_EXPLAIN') }}</span></dt>
<dd><input type="text" name="mchat_max_message_lngth" id="mchat_max_message_lngth" size="10" value="{{ MCHAT_MAX_MESSAGE_LNGTH }}" />&nbsp;<span>{{ lang('MCHAT_ACP_CHARACTERS') }}</span></dd>
</dl>
<dl>
<dt><label for="mchat_override_min_post_chars">{L_MCHAT_OVERRIDE_MIN_POST_CHARS}{L_COLON}</label><br />
<span>{L_MCHAT_OVERRIDE_MIN_POST_CHARS_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="mchat_override_min_post_chars" value="1"<!-- IF MCHAT_OVERRIDE_MIN_POST_CHARS --> id="mchat_override_min_post_chars" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="mchat_override_min_post_chars" value="0"<!-- IF not MCHAT_OVERRIDE_MIN_POST_CHARS --> id="mchat_override_min_post_chars" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
<dt><label for="mchat_override_min_post_chars">{{ lang('MCHAT_OVERRIDE_MIN_POST_CHARS') ~ lang('COLON') }}</label><br />
<span>{{ lang('MCHAT_OVERRIDE_MIN_POST_CHARS_EXPLAIN') }}</span></dt>
<dd><label><input type="radio" class="radio" name="mchat_override_min_post_chars" value="1"{% if MCHAT_OVERRIDE_MIN_POST_CHARS %} id="mchat_override_min_post_chars" checked="checked"{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" class="radio" name="mchat_override_min_post_chars" value="0"{% if not MCHAT_OVERRIDE_MIN_POST_CHARS %} id="mchat_override_min_post_chars" checked="checked"{% endif %} /> {{ lang('NO') }}</label></dd>
</dl>
<dl>
<dt><label for="mchat_override_smilie_limit">{L_MCHAT_OVERRIDE_SMILIE_LIMIT}{L_COLON}</label><br />
<span>{L_MCHAT_OVERRIDE_SMILIE_LIMIT_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="mchat_override_smilie_limit" value="1"<!-- IF MCHAT_OVERRIDE_SMILIE_LIMIT --> id="mchat_override_smilie_limit" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="mchat_override_smilie_limit" value="0"<!-- IF not MCHAT_OVERRIDE_SMILIE_LIMIT --> id="mchat_override_smilie_limit" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
<dt><label for="mchat_override_smilie_limit">{{ lang('MCHAT_OVERRIDE_SMILIE_LIMIT') ~ lang('COLON') }}</label><br />
<span>{{ lang('MCHAT_OVERRIDE_SMILIE_LIMIT_EXPLAIN') }}</span></dt>
<dd><label><input type="radio" class="radio" name="mchat_override_smilie_limit" value="1"{% if MCHAT_OVERRIDE_SMILIE_LIMIT %} id="mchat_override_smilie_limit" checked="checked"{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" class="radio" name="mchat_override_smilie_limit" value="0"{% if not MCHAT_OVERRIDE_SMILIE_LIMIT %} id="mchat_override_smilie_limit" checked="checked"{% endif %} /> {{ lang('NO') }}</label></dd>
</dl>
<dl>
<dt><label for="mchat_bbcode_disallowed">{L_MCHAT_BBCODES_DISALLOWED}{L_COLON}</label><br />
<span>{L_MCHAT_BBCODES_DISALLOWED_EXPLAIN}</span></dt>
<dd><textarea name="mchat_bbcode_disallowed" id="mchat_bbcode_disallowed" rows="3" cols="40">{MCHAT_BBCODE_DISALLOWED}</textarea></dd>
<dt><label for="mchat_bbcode_disallowed">{{ lang('MCHAT_BBCODES_DISALLOWED') ~ lang('COLON') }}</label><br />
<span>{{ lang('MCHAT_BBCODES_DISALLOWED_EXPLAIN') }}</span></dt>
<dd><textarea name="mchat_bbcode_disallowed" id="mchat_bbcode_disallowed" rows="3" cols="40">{{ MCHAT_BBCODE_DISALLOWED }}</textarea></dd>
</dl>
<dl>
<dt><label for="mchat_rules">{L_MCHAT_RULES}{L_COLON}</label><br />
<span>{L_MCHAT_RULES_EXPLAIN}</span></dt>
<dd><textarea name="mchat_rules" id="mchat_rules" rows="5" cols="40">{MCHAT_RULES}</textarea></dd>
<dt><label for="mchat_rules">{{ lang('MCHAT_RULES') ~ lang('COLON') }}</label><br />
<span>{{ lang('MCHAT_RULES_EXPLAIN') }}</span></dt>
<dd><textarea name="mchat_rules" id="mchat_rules" rows="5" cols="40">{{ MCHAT_RULES }}</textarea></dd>
</dl>
<dl>
<dt><label for="mchat_static_message">{L_MCHAT_STATIC_MESSAGE}{L_COLON}</label><br />
<span>{L_MCHAT_STATIC_MESSAGE_EXPLAIN}</span></dt>
<dd><textarea name="mchat_static_message" id="mchat_static_message" rows="5" cols="40">{MCHAT_STATIC_MESSAGE}</textarea></dd>
<dt><label for="mchat_static_message">{{ lang('MCHAT_STATIC_MESSAGE') ~ lang('COLON') }}</label><br />
<span>{{ lang('MCHAT_STATIC_MESSAGE_EXPLAIN') }}</span></dt>
<dd><textarea name="mchat_static_message" id="mchat_static_message" rows="5" cols="40">{{ MCHAT_STATIC_MESSAGE }}</textarea></dd>
</dl>
<!-- EVENT dmzx_mchat_acp_static_message_after -->
{% EVENT dmzx_mchat_acp_static_message_after %}
</fieldset>
<fieldset>
<legend>{L_MCHAT_SETTINGS_POSTS}</legend>
<legend>{{ lang('MCHAT_SETTINGS_POSTS') }}</legend>
<!-- EVENT dmzx_mchat_acp_posts_topic_before -->
{% EVENT dmzx_mchat_acp_posts_topic_before %}
<dl>
<dt><label for="mchat_posts_topic">{L_MCHAT_POSTS_TOPIC}{L_COLON}</label></dt>
<dt><label for="mchat_posts_topic">{{ lang('MCHAT_POSTS_TOPIC') ~ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" name="mchat_posts_topic" value="1"<!-- IF MCHAT_POSTS_TOPIC --> id="mchat_posts_topic" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" name="mchat_posts_topic" value="0"<!-- IF not MCHAT_POSTS_TOPIC --> id="mchat_posts_topic" checked="checked"<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" name="mchat_posts_topic" value="1"{% if MCHAT_POSTS_TOPIC %} id="mchat_posts_topic" checked="checked"{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" name="mchat_posts_topic" value="0"{% if not MCHAT_POSTS_TOPIC %} id="mchat_posts_topic" checked="checked"{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<dl>
<dt><label for="mchat_posts_reply">{L_MCHAT_POSTS_REPLY}{L_COLON}</label></dt>
<dt><label for="mchat_posts_reply">{{ lang('MCHAT_POSTS_REPLY') ~ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" name="mchat_posts_reply" value="1"<!-- IF MCHAT_POSTS_REPLY --> id="mchat_posts_reply" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" name="mchat_posts_reply" value="0"<!-- IF not MCHAT_POSTS_REPLY --> id="mchat_posts_reply" checked="checked"<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" name="mchat_posts_reply" value="1"{% if MCHAT_POSTS_REPLY %} id="mchat_posts_reply" checked="checked"{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" name="mchat_posts_reply" value="0"{% if not MCHAT_POSTS_REPLY %} id="mchat_posts_reply" checked="checked"{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<dl>
<dt><label for="mchat_posts_edit">{L_MCHAT_POSTS_EDIT}{L_COLON}</label></dt>
<dt><label for="mchat_posts_edit">{{ lang('MCHAT_POSTS_EDIT') ~ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" name="mchat_posts_edit" value="1"<!-- IF MCHAT_POSTS_EDIT --> id="mchat_posts_edit" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" name="mchat_posts_edit" value="0"<!-- IF not MCHAT_POSTS_EDIT --> id="mchat_posts_edit" checked="checked"<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" name="mchat_posts_edit" value="1"{% if MCHAT_POSTS_EDIT %} id="mchat_posts_edit" checked="checked"{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" name="mchat_posts_edit" value="0"{% if not MCHAT_POSTS_EDIT %} id="mchat_posts_edit" checked="checked"{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<dl>
<dt><label for="mchat_posts_quote">{L_MCHAT_POSTS_QUOTE}{L_COLON}</label></dt>
<dt><label for="mchat_posts_quote">{{ lang('MCHAT_POSTS_QUOTE') ~ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" name="mchat_posts_quote" value="1"<!-- IF MCHAT_POSTS_QUOTE --> id="mchat_posts_quote" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" name="mchat_posts_quote" value="0"<!-- IF not MCHAT_POSTS_QUOTE --> id="mchat_posts_quote" checked="checked"<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" name="mchat_posts_quote" value="1"{% if MCHAT_POSTS_QUOTE %} id="mchat_posts_quote" checked="checked"{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" name="mchat_posts_quote" value="0"{% if not MCHAT_POSTS_QUOTE %} id="mchat_posts_quote" checked="checked"{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<dl>
<dt><label for="mchat_posts_login">{L_MCHAT_POSTS_LOGIN}{L_COLON}</label></dt>
<dt><label for="mchat_posts_login">{{ lang('MCHAT_POSTS_LOGIN') ~ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" name="mchat_posts_login" value="1"<!-- IF MCHAT_POSTS_LOGIN --> id="mchat_posts_login" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" name="mchat_posts_login" value="0"<!-- IF not MCHAT_POSTS_LOGIN --> id="mchat_posts_login" checked="checked"<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" name="mchat_posts_login" value="1"{% if MCHAT_POSTS_LOGIN %} id="mchat_posts_login" checked="checked"{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" name="mchat_posts_login" value="0"{% if not MCHAT_POSTS_LOGIN %} id="mchat_posts_login" checked="checked"{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<dl>
<dt><label for="mchat_posts_auth_check">{{ lang('MCHAT_POSTS_AUTH_CHECK') ~ lang('COLON') }}</label><br />
<span>{{ lang('MCHAT_POSTS_AUTH_CHECK_EXPLAIN') }}</span></dt>
<dd>
<label><input type="radio" name="mchat_posts_auth_check" value="1"{% if MCHAT_POSTS_AUTH_CHECK %} id="mchat_posts_auth_check" checked="checked"{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" name="mchat_posts_auth_check" value="0"{% if not MCHAT_POSTS_AUTH_CHECK %} id="mchat_posts_auth_check" checked="checked"{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<!-- EVENT dmzx_mchat_acp_posts_login_after -->
{% EVENT dmzx_mchat_acp_posts_login_after %}
</fieldset>
<fieldset>
<legend>{L_MCHAT_SETTINGS_STATS}</legend>
<legend>{{ lang('MCHAT_SETTINGS_STATS') }}</legend>
<!-- EVENT dmzx_mchat_acp_whois_refresh_before -->
{% EVENT dmzx_mchat_acp_whois_refresh_before %}
<dl>
<dt><label for="mchat_whois_refresh">{L_MCHAT_WHOIS_REFRESH}{L_COLON}</label><br />
<span>{L_MCHAT_WHOIS_REFRESH_EXPLAIN}</span></dt>
<dd><input type="text" name="mchat_whois_refresh" id="mchat_whois_refresh" size="10" value="{MCHAT_WHOIS_REFRESH}" />&nbsp;<span>{L_MCHAT_ACP_SECONDS}</dd>
<dt><label for="mchat_whois_refresh">{{ lang('MCHAT_WHOIS_REFRESH') ~ lang('COLON') }}</label><br />
<span>{{ lang('MCHAT_WHOIS_REFRESH_EXPLAIN') }}</span></dt>
<dd><input type="text" name="mchat_whois_refresh" id="mchat_whois_refresh" size="10" value="{{ MCHAT_WHOIS_REFRESH }}" />&nbsp;<span>{{ lang('MCHAT_ACP_SECONDS') }}</span></dd>
</dl>
<!-- EVENT dmzx_mchat_acp_whois_refresh_after -->
{% EVENT dmzx_mchat_acp_whois_refresh_after %}
</fieldset>
<!-- IF MCHAT_FOUNDER -->
{% if MCHAT_FOUNDER %}
<fieldset>
<legend>{L_MCHAT_SETTINGS_PRUNE}</legend>
<legend>{{ lang('MCHAT_SETTINGS_PRUNE') }}</legend>
<!-- EVENT dmzx_mchat_acp_prune_before -->
{% EVENT dmzx_mchat_acp_prune_before %}
<dl>
<dt><label for="mchat_prune">{L_MCHAT_PRUNE}{L_COLON}</label></dt>
<dd><label><input type="radio" class="radio" name="mchat_prune" value="1"<!-- IF MCHAT_PRUNE --> id="mchat_prune" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="mchat_prune" value="0"<!-- IF not MCHAT_PRUNE --> id="mchat_prune" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
<dt><label for="mchat_prune">{{ lang('MCHAT_PRUNE') ~ lang('COLON') }}</label></dt>
<dd><label><input type="radio" class="radio" name="mchat_prune" value="1"{% if MCHAT_PRUNE %} id="mchat_prune" checked="checked"{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" class="radio" name="mchat_prune" value="0"{% if not MCHAT_PRUNE %} id="mchat_prune" checked="checked"{% endif %} /> {{ lang('NO') }}</label></dd>
</dl>
<dl>
<dt><label for="mchat_prune_gc">{L_MCHAT_PRUNE_GC}{L_COLON}</label><br />
<span>{L_MCHAT_PRUNE_GC_EXPLAIN}</span></dt>
<dd><input type="text" name="mchat_prune_gc" id="mchat_prune_gc" size="10" value="{MCHAT_PRUNE_GC}" />&nbsp;<span>{L_MCHAT_ACP_SECONDS}</dd>
<dt><label for="mchat_prune_gc">{{ lang('MCHAT_PRUNE_GC') ~ lang('COLON') }}</label><br />
<span>{{ lang('MCHAT_PRUNE_GC_EXPLAIN') }}</span></dt>
<dd><input type="text" name="mchat_prune_gc" id="mchat_prune_gc" size="10" value="{{ MCHAT_PRUNE_GC }}" />&nbsp;<span>{{ lang('MCHAT_ACP_SECONDS') }}</span></dd>
</dl>
<dl>
<dt><label for="mchat_prune_num">{L_MCHAT_PRUNE_NUM}{L_COLON}</label><br />
<span>{L_MCHAT_PRUNE_NUM_EXPLAIN}</span></dt>
<dt><label for="mchat_prune_num">{{ lang('MCHAT_PRUNE_NUM') ~ lang('COLON') }}</label><br />
<span>{{ lang('MCHAT_PRUNE_NUM_EXPLAIN') }}</span></dt>
<dd>
<input type="text" name="mchat_prune_num" size="10" id="mchat_prune_num" value="{MCHAT_PRUNE_NUM}" />
<select name="mchat_prune_mode" id="mchat_prune_mode" title="{L_MCHAT_PRUNE_NUM}">
{S_MCHAT_PRUNE_MODE_OPTIONS}
<input type="text" name="mchat_prune_num" size="10" id="mchat_prune_num" value="{{ MCHAT_PRUNE_NUM }}" />
<select name="mchat_prune_mode" id="mchat_prune_mode" title="{{ lang('MCHAT_PRUNE_NUM') }}">
{{ S_MCHAT_PRUNE_MODE_OPTIONS }}
</select>
</dd>
</dl>
<dl>
<dt><label for="mchat_prune_now">{L_MCHAT_PRUNE_NOW}{L_COLON}</label></dt>
<dt><label for="mchat_prune_now">{{ lang('MCHAT_PRUNE_NOW') ~ lang('COLON') }}</label></dt>
<dd>
<input class="button1" type="submit" id="mchat_prune_now" name="mchat_prune_now" value="{L_MCHAT_PRUNE_NOW}" />
<label>{L_MCHAT_PRUNE_NOW_CONFIRM}{L_COLON}</label>
<label><input type="radio" name="mchat_prune_now_confirm" value="1" /> {L_YES}</label>
<label><input type="radio" name="mchat_prune_now_confirm" value="0" id="mchat_prune_now_confirm" checked="checked" /> {L_NO}</label>
<input class="button1" type="submit" id="mchat_prune_now" name="mchat_prune_now" value="{{ lang('MCHAT_PRUNE_NOW') }}" />
<label>{{ lang('MCHAT_PRUNE_NOW_CONFIRM') ~ lang('COLON') }}</label>
<label><input type="radio" name="mchat_prune_now_confirm" value="1" /> {{ lang('YES') }}</label>
<label><input type="radio" name="mchat_prune_now_confirm" value="0" id="mchat_prune_now_confirm" checked="checked" /> {{ lang('NO') }}</label>
</dd>
</dl>
<dl>
<dt><label for="mchat_purge">{L_MCHAT_PURGE}{L_COLON}</label></dt>
<dt><label for="mchat_purge">{{ lang('MCHAT_PURGE') ~ lang('COLON') }}</label></dt>
<dd>
<input class="button1" type="submit" id="mchat_purge" name="mchat_purge" value="{L_MCHAT_PURGE}" />
<label>{L_MCHAT_PURGE_CONFIRM}{L_COLON}</label>
<label><input type="radio" name="mchat_purge_confirm" value="1" /> {L_YES}</label>
<label><input type="radio" name="mchat_purge_confirm" value="0" id="mchat_purge_confirm" checked="checked" /> {L_NO}</label>
<input class="button1" type="submit" id="mchat_purge" name="mchat_purge" value="{{ lang('MCHAT_PURGE') }}" />
<label>{{ lang('MCHAT_PURGE_CONFIRM') ~ lang('COLON') }}</label>
<label><input type="radio" name="mchat_purge_confirm" value="1" /> {{ lang('YES') }}</label>
<label><input type="radio" name="mchat_purge_confirm" value="0" id="mchat_purge_confirm" checked="checked" /> {{ lang('NO') }}</label>
</dd>
</dl>
<!-- EVENT dmzx_mchat_acp_purge_after -->
{% EVENT dmzx_mchat_acp_purge_after %}
</fieldset>
<!-- ENDIF -->
{% endif %}
<!-- EVENT acp_dmzx_mchat_globalsettings_after -->
{% EVENT acp_dmzx_mchat_globalsettings_after %}
<p class="submit-buttons">
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
{S_FORM_TOKEN}
</p>
<fieldset>
<legend>{{ lang('ACP_SUBMIT_CHANGES') }}</legend>
<p class="submit-buttons">
<input class="button1" type="submit" id="submit" name="submit" value="{{ lang('SUBMIT') }}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{{ lang('RESET') }}" />
</p>
{{ S_FORM_TOKEN }}
</fieldset>
</form>
<!-- INCLUDE overall_footer.html -->
{% INCLUDE 'overall_footer.html' %}

View File

@@ -1,45 +1,48 @@
<!-- INCLUDE overall_header.html -->
{% INCLUDE 'overall_header.html' %}
<h1>{L_MCHAT_TITLE}</h1>
<h1>{{ lang('MCHAT_TITLE') }}</h1>
{L_MCHAT_VERSION}{L_COLON} <em>{MCHAT_VERSION}</em>
{{ lang('MCHAT_VERSION') ~ lang('COLON') }} <em>{{ MCHAT_VERSION }}</em>
<div class="successbox notice">{L_MCHAT_GLOBALUSERSETTINGS_EXPLAIN}</div>
<div class="successbox notice">{{ lang('MCHAT_GLOBALUSERSETTINGS_EXPLAIN') }}</div>
<!-- IF MCHAT_ERROR -->
{% if MCHAT_ERROR %}
<div class="errorbox">
<h3>{L_WARNING}</h3>
<p>{MCHAT_ERROR}</p>
<h3>{{ lang('WARNING') }}</h3>
<p>{{ MCHAT_ERROR }}</p>
</div>
<!-- ENDIF -->
{% endif %}
<form id="acp_mchat" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_ACP_MCHAT_GLOBALUSERSETTINGS}</legend>
<!-- INCLUDE @dmzx_mchat/acp_mchat_globalusersettings_content.html -->
</fieldset>
<fieldset>
<legend>{L_MCHAT_GLOBALUSERSETTINGS_OVERWRITE}</legend>
<dl>
<dt><label for="mchat_overwrite">{L_MCHAT_GLOBALUSERSETTINGS_OVERWRITE}{L_COLON}</label><br /><span>{L_MCHAT_GLOBALUSERSETTINGS_OVERWRITE_EXPLAIN}</span></dt>
<dd>
<label><input type="radio" name="mchat_overwrite" value="1" /> {L_YES}</label>
<label><input type="radio" name="mchat_overwrite" value="0" id="mchat_overwrite" checked="checked" /> {L_NO}</label>
</dd>
</dl>
<dl>
<dt><label for="mchat_overwrite_confirm">{L_MCHAT_GLOBALUSERSETTINGS_OVERWRITE_CONFIRM}{L_COLON}</label></dt>
<dd>
<label><input type="radio" name="mchat_overwrite_confirm" value="1" /> {L_YES}</label>
<label><input type="radio" name="mchat_overwrite_confirm" value="0" id="mchat_overwrite_confirm" checked="checked" /> {L_NO}</label>
</dd>
</dl>
</fieldset>
<form id="acp_mchat" method="post" action="{{ U_ACTION }}">
<fieldset>
<legend>{{ lang('ACP_MCHAT_GLOBALUSERSETTINGS') }}</legend>
{% INCLUDE '@dmzx_mchat/acp_mchat_globalusersettings_content.html' %}
</fieldset>
<fieldset>
<legend>{{ lang('MCHAT_GLOBALUSERSETTINGS_OVERWRITE') }}</legend>
<dl>
<dt><label for="mchat_overwrite">{{ lang('MCHAT_GLOBALUSERSETTINGS_OVERWRITE') ~ lang('COLON') }}</label><br /><span>{{ lang('MCHAT_GLOBALUSERSETTINGS_OVERWRITE_EXPLAIN') }}</span></dt>
<dd>
<label><input type="radio" name="mchat_overwrite" value="1" /> {{ lang('YES') }}</label>
<label><input type="radio" name="mchat_overwrite" value="0" id="mchat_overwrite" checked="checked" /> {{ lang('NO') }}</label>
</dd>
</dl>
<dl>
<dt><label for="mchat_overwrite_confirm">{{ lang('MCHAT_GLOBALUSERSETTINGS_OVERWRITE_CONFIRM') ~ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" name="mchat_overwrite_confirm" value="1" /> {{ lang('YES') }}</label>
<label><input type="radio" name="mchat_overwrite_confirm" value="0" id="mchat_overwrite_confirm" checked="checked" /> {{ lang('NO') }}</label>
</dd>
</dl>
</fieldset>
<fieldset>
<legend>{{ lang('ACP_SUBMIT_CHANGES') }}</legend>
<p class="submit-buttons">
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
{S_FORM_TOKEN}
<input class="button1" type="submit" id="submit" name="submit" value="{{ lang('SUBMIT') }}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{{ lang('RESET') }}" />
</p>
{{ S_FORM_TOKEN }}
</fieldset>
</form>
<!-- INCLUDE overall_footer.html -->
{% INCLUDE 'overall_footer.html' %}

View File

@@ -1,118 +1,118 @@
<!-- EVENT dmzx_mchat_acp_index_before -->
{% EVENT dmzx_mchat_acp_index_before %}
<dl>
<dt><label for="user_mchat_index">{L_MCHAT_INDEX}{L_COLON}</label></dt>
<dt><label for="user_mchat_index">{{ lang('MCHAT_INDEX') ~ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" name="user_mchat_index" value="1"<!-- IF MCHAT_INDEX --> id="user_mchat_index" checked="checked"<!-- ENDIF --><!-- IF MCHAT_INDEX_NOAUTH --> disabled<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" name="user_mchat_index" value="0"<!-- IF not MCHAT_INDEX --> id="user_mchat_index" checked="checked"<!-- ENDIF --><!-- IF MCHAT_INDEX_NOAUTH --> disabled<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" name="user_mchat_index" value="1"{% if MCHAT_INDEX %} id="user_mchat_index" checked="checked"{% endif %}{% if MCHAT_INDEX_NOAUTH %} disabled{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" name="user_mchat_index" value="0"{% if not MCHAT_INDEX %} id="user_mchat_index" checked="checked"{% endif %}{% if MCHAT_INDEX_NOAUTH %} disabled{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<dl>
<dt><label for="user_mchat_whois_index">{L_MCHAT_WHOIS_INDEX}{L_COLON}</label></dt>
<dt><label for="user_mchat_whois_index">{{ lang('MCHAT_WHOIS_INDEX') ~ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" name="user_mchat_whois_index" value="1"<!-- IF MCHAT_WHOIS_INDEX --> id="user_mchat_whois_index" checked="checked"<!-- ENDIF --><!-- IF MCHAT_WHOIS_INDEX_NOAUTH --> disabled<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" name="user_mchat_whois_index" value="0"<!-- IF not MCHAT_WHOIS_INDEX --> id="user_mchat_whois_index" checked="checked"<!-- ENDIF --><!-- IF MCHAT_WHOIS_INDEX_NOAUTH --> disabled<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" name="user_mchat_whois_index" value="1"{% if MCHAT_WHOIS_INDEX %} id="user_mchat_whois_index" checked="checked"{% endif %}{% if MCHAT_WHOIS_INDEX_NOAUTH %} disabled{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" name="user_mchat_whois_index" value="0"{% if not MCHAT_WHOIS_INDEX %} id="user_mchat_whois_index" checked="checked"{% endif %}{% if MCHAT_WHOIS_INDEX_NOAUTH %} disabled{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<dl>
<dt><label for="user_mchat_stats_index">{L_MCHAT_STATS_INDEX}{L_COLON}</label><br /><span>{L_MCHAT_STATS_INDEX_EXPLAIN}</span></dt>
<dt><label for="user_mchat_stats_index">{{ lang('MCHAT_STATS_INDEX') ~ lang('COLON') }}</label><br /><span>{{ lang('MCHAT_STATS_INDEX_EXPLAIN') }}</span></dt>
<dd>
<label><input type="radio" name="user_mchat_stats_index" value="1"<!-- IF MCHAT_STATS_INDEX --> id="user_mchat_stats_index" checked="checked"<!-- ENDIF --><!-- IF MCHAT_STATS_INDEX_NOAUTH --> disabled<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" name="user_mchat_stats_index" value="0"<!-- IF not MCHAT_STATS_INDEX --> id="user_mchat_stats_index" checked="checked"<!-- ENDIF --><!-- IF MCHAT_STATS_INDEX_NOAUTH --> disabled<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" name="user_mchat_stats_index" value="1"{% if MCHAT_STATS_INDEX %} id="user_mchat_stats_index" checked="checked"{% endif %}{% if MCHAT_STATS_INDEX_NOAUTH %} disabled{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" name="user_mchat_stats_index" value="0"{% if not MCHAT_STATS_INDEX %} id="user_mchat_stats_index" checked="checked"{% endif %}{% if MCHAT_STATS_INDEX_NOAUTH %} disabled{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<dl>
<dt><label for="user_mchat_location">{L_MCHAT_LOCATION}{L_COLON}</label></dt>
<dt><label for="user_mchat_location">{{ lang('MCHAT_LOCATION') ~ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" name="user_mchat_location" value="1"<!-- IF MCHAT_LOCATION --> id="user_mchat_location" checked="checked"<!-- ENDIF --><!-- IF MCHAT_LOCATION_NOAUTH --> disabled<!-- ENDIF --> /> {L_MCHAT_TOP}</label>
<label><input type="radio" name="user_mchat_location" value="0"<!-- IF not MCHAT_LOCATION --> id="user_mchat_location" checked="checked"<!-- ENDIF --><!-- IF MCHAT_LOCATION_NOAUTH --> disabled<!-- ENDIF --> /> {L_MCHAT_BOTTOM}</label>
<label><input type="radio" name="user_mchat_location" value="1"{% if MCHAT_LOCATION %} id="user_mchat_location" checked="checked"{% endif %}{% if MCHAT_LOCATION_NOAUTH %} disabled{% endif %} /> {{ lang('MCHAT_TOP') }}</label>
<label><input type="radio" name="user_mchat_location" value="0"{% if not MCHAT_LOCATION %} id="user_mchat_location" checked="checked"{% endif %}{% if MCHAT_LOCATION_NOAUTH %} disabled{% endif %} /> {{ lang('MCHAT_BOTTOM') }}</label>
</dd>
</dl>
<!-- EVENT dmzx_mchat_acp_location_after -->
{% EVENT dmzx_mchat_acp_location_after %}
<hr />
<!-- EVENT dmzx_mchat_acp_message_top_before -->
{% EVENT dmzx_mchat_acp_message_top_before %}
<dl>
<dt><label for="user_mchat_message_top">{L_MCHAT_MESSAGE_TOP}{L_COLON}</label><br /><span>{L_MCHAT_MESSAGE_TOP_EXPLAIN}</span></dt>
<dt><label for="user_mchat_message_top">{{ lang('MCHAT_MESSAGE_TOP') ~ lang('COLON') }}</label><br /><span>{{ lang('MCHAT_MESSAGE_TOP_EXPLAIN') }}</span></dt>
<dd>
<label><input type="radio" name="user_mchat_message_top" value="1"<!-- IF MCHAT_MESSAGE_TOP --> id="user_mchat_message_top" checked="checked"<!-- ENDIF --><!-- IF MCHAT_MESSAGE_TOP_NOAUTH --> disabled<!-- ENDIF --> /> {L_MCHAT_TOP}</label>
<label><input type="radio" name="user_mchat_message_top" value="0"<!-- IF not MCHAT_MESSAGE_TOP --> id="user_mchat_message_top" checked="checked"<!-- ENDIF --><!-- IF MCHAT_MESSAGE_TOP_NOAUTH --> disabled<!-- ENDIF --> /> {L_MCHAT_BOTTOM}</label>
<label><input type="radio" name="user_mchat_message_top" value="1"{% if MCHAT_MESSAGE_TOP %} id="user_mchat_message_top" checked="checked"{% endif %}{% if MCHAT_MESSAGE_TOP_NOAUTH %} disabled{% endif %} /> {{ lang('MCHAT_TOP') }}</label>
<label><input type="radio" name="user_mchat_message_top" value="0"{% if not MCHAT_MESSAGE_TOP %} id="user_mchat_message_top" checked="checked"{% endif %}{% if MCHAT_MESSAGE_TOP_NOAUTH %} disabled{% endif %} /> {{ lang('MCHAT_BOTTOM') }}</label>
</dd>
</dl>
<dl>
<dt><label for="user_mchat_capital_letter">{L_MCHAT_CAPITAL_LETTER}{L_COLON}</label></dt>
<dt><label for="user_mchat_capital_letter">{{ lang('MCHAT_CAPITAL_LETTER') ~ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" name="user_mchat_capital_letter" value="1"<!-- IF MCHAT_CAPITAL_LETTER --> id="user_mchat_capital_letter" checked="checked"<!-- ENDIF --><!-- IF MCHAT_CAPITAL_LETTER_NOAUTH --> disabled<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" name="user_mchat_capital_letter" value="0"<!-- IF not MCHAT_CAPITAL_LETTER --> id="user_mchat_capital_letter" checked="checked"<!-- ENDIF --><!-- IF MCHAT_CAPITAL_LETTER_NOAUTH --> disabled<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" name="user_mchat_capital_letter" value="1"{% if MCHAT_CAPITAL_LETTER %} id="user_mchat_capital_letter" checked="checked"{% endif %}{% if MCHAT_CAPITAL_LETTER_NOAUTH %} disabled{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" name="user_mchat_capital_letter" value="0"{% if not MCHAT_CAPITAL_LETTER %} id="user_mchat_capital_letter" checked="checked"{% endif %}{% if MCHAT_CAPITAL_LETTER_NOAUTH %} disabled{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<dl>
<dt><label for="user_mchat_sound">{L_MCHAT_SOUND}{L_COLON}</label></dt>
<dt><label for="user_mchat_sound">{{ lang('MCHAT_SOUND') ~ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" name="user_mchat_sound" value="1"<!-- IF MCHAT_SOUND --> id="user_mchat_sound" checked="checked"<!-- ENDIF --><!-- IF MCHAT_SOUND_NOAUTH --> disabled<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" name="user_mchat_sound" value="0"<!-- IF not MCHAT_SOUND --> id="user_mchat_sound" checked="checked"<!-- ENDIF --><!-- IF MCHAT_SOUND_NOAUTH --> disabled<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" name="user_mchat_sound" value="1"{% if MCHAT_SOUND %} id="user_mchat_sound" checked="checked"{% endif %}{% if MCHAT_SOUND_NOAUTH %} disabled{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" name="user_mchat_sound" value="0"{% if not MCHAT_SOUND %} id="user_mchat_sound" checked="checked"{% endif %}{% if MCHAT_SOUND_NOAUTH %} disabled{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<dl>
<dt><label for="user_mchat_avatars">{L_MCHAT_AVATARS}{L_COLON}</label></dt>
<dt><label for="user_mchat_avatars">{{ lang('MCHAT_AVATARS') ~ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" name="user_mchat_avatars" value="1"<!-- IF MCHAT_AVATARS --> id="user_mchat_avatars" checked="checked"<!-- ENDIF --><!-- IF MCHAT_AVATARS_NOAUTH --> disabled<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" name="user_mchat_avatars" value="0"<!-- IF not MCHAT_AVATARS --> id="user_mchat_avatars" checked="checked"<!-- ENDIF --><!-- IF MCHAT_AVATARS_NOAUTH --> disabled<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" name="user_mchat_avatars" value="1"{% if MCHAT_AVATARS %} id="user_mchat_avatars" checked="checked"{% endif %}{% if MCHAT_AVATARS_NOAUTH %} disabled{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" name="user_mchat_avatars" value="0"{% if not MCHAT_AVATARS %} id="user_mchat_avatars" checked="checked"{% endif %}{% if MCHAT_AVATARS_NOAUTH %} disabled{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<dl>
<dt><label for="user_mchat_input_area">{L_MCHAT_CHAT_AREA}{L_COLON}</label></dt>
<dt><label for="user_mchat_input_area">{{ lang('MCHAT_CHAT_AREA') ~ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" name="user_mchat_input_area" value="1"<!-- IF MCHAT_INPUT_AREA --> id="user_mchat_input_area" checked="checked"<!-- ENDIF --><!-- IF MCHAT_INPUT_AREA_NOAUTH --> disabled<!-- ENDIF --> /> {L_MCHAT_INPUT_AREA}</label>
<label><input type="radio" name="user_mchat_input_area" value="0"<!-- IF not MCHAT_INPUT_AREA --> id="user_mchat_input_area" checked="checked"<!-- ENDIF --><!-- IF MCHAT_INPUT_AREA_NOAUTH --> disabled<!-- ENDIF --> /> {L_MCHAT_TEXT_AREA}</label>
<label><input type="radio" name="user_mchat_input_area" value="1"{% if MCHAT_INPUT_AREA %} id="user_mchat_input_area" checked="checked"{% endif %}{% if MCHAT_INPUT_AREA_NOAUTH %} disabled{% endif %} /> {{ lang('MCHAT_INPUT_AREA') }}</label>
<label><input type="radio" name="user_mchat_input_area" value="0"{% if not MCHAT_INPUT_AREA %} id="user_mchat_input_area" checked="checked"{% endif %}{% if MCHAT_INPUT_AREA_NOAUTH %} disabled{% endif %} /> {{ lang('MCHAT_TEXT_AREA') }}</label>
</dd>
</dl>
<dl>
<dt><label for="user_mchat_character_count">{L_MCHAT_DISPLAY_CHARACTER_COUNT}{L_COLON}</label></dt>
<dt><label for="user_mchat_character_count">{{ lang('MCHAT_DISPLAY_CHARACTER_COUNT') ~ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" name="user_mchat_character_count" value="1"<!-- IF MCHAT_CHARACTER_COUNT --> id="user_mchat_character_count" checked="checked"<!-- ENDIF --><!-- IF MCHAT_CHARACTER_COUNT_NOAUTH --> disabled<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" name="user_mchat_character_count" value="0"<!-- IF not MCHAT_CHARACTER_COUNT --> id="user_mchat_character_count" checked="checked"<!-- ENDIF --><!-- IF MCHAT_CHARACTER_COUNT_NOAUTH --> disabled<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" name="user_mchat_character_count" value="1"{% if MCHAT_CHARACTER_COUNT %} id="user_mchat_character_count" checked="checked"{% endif %}{% if MCHAT_CHARACTER_COUNT_NOAUTH %} disabled{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" name="user_mchat_character_count" value="0"{% if not MCHAT_CHARACTER_COUNT %} id="user_mchat_character_count" checked="checked"{% endif %}{% if MCHAT_CHARACTER_COUNT_NOAUTH %} disabled{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<dl>
<dt><label for="user_mchat_pause_on_input">{L_MCHAT_PAUSE_ON_INPUT}{L_COLON}</label><br /><span>{L_MCHAT_PAUSE_ON_INPUT_EXPLAIN}</span></dt>
<dt><label for="user_mchat_pause_on_input">{{ lang('MCHAT_PAUSE_ON_INPUT') ~ lang('COLON') }}</label><br /><span>{{ lang('MCHAT_PAUSE_ON_INPUT_EXPLAIN') }}</span></dt>
<dd>
<label><input type="radio" name="user_mchat_pause_on_input" value="1"<!-- IF MCHAT_PAUSE_ON_INPUT --> id="user_mchat_pause_on_input" checked="checked"<!-- ENDIF --><!-- IF MCHAT_PAUSE_ON_INPUT_NOAUTH --> disabled<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" name="user_mchat_pause_on_input" value="0"<!-- IF not MCHAT_PAUSE_ON_INPUT --> id="user_mchat_pause_on_input" checked="checked"<!-- ENDIF --><!-- IF MCHAT_PAUSE_ON_INPUT_NOAUTH --> disabled<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" name="user_mchat_pause_on_input" value="1"{% if MCHAT_PAUSE_ON_INPUT %} id="user_mchat_pause_on_input" checked="checked"{% endif %}{% if MCHAT_PAUSE_ON_INPUT_NOAUTH %} disabled{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" name="user_mchat_pause_on_input" value="0"{% if not MCHAT_PAUSE_ON_INPUT %} id="user_mchat_pause_on_input" checked="checked"{% endif %}{% if MCHAT_PAUSE_ON_INPUT_NOAUTH %} disabled{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<dl>
<dt><label for="user_mchat_dateoptions">{L_MCHAT_DATE_FORMAT}{L_COLON}</label><br /><span>{L_MCHAT_DATE_FORMAT_EXPLAIN}</span></dt>
<dt><label for="user_mchat_dateoptions">{{ lang('MCHAT_DATE_FORMAT') ~ lang('COLON') }}</label><br /><span>{{ lang('MCHAT_DATE_FORMAT_EXPLAIN') }}</span></dt>
<dd>
<select name="user_mchat_dateoptions" id="user_mchat_dateoptions" onchange="phpbb.toggleDisplay('user_mchat_custom_date', this.value == 'custom' ? 1 : -1); document.getElementById('user_mchat_date').value = this.value == 'custom' ? '{A_MCHAT_DEFAULT_DATEFORMAT}' : this.value;"<!-- IF MCHAT_DATE_NOAUTH --> disabled<!-- ENDIF -->>
{S_MCHAT_DATEFORMAT_OPTIONS}
<select name="user_mchat_dateoptions" id="user_mchat_dateoptions" onchange="phpbb.toggleDisplay('user_mchat_custom_date', this.value == 'custom' ? 1 : -1); document.getElementById('user_mchat_date').value = this.value == 'custom' ? '{{ MCHAT_DEFAULT_DATEFORMAT | escape('js') }}' : this.value;"{% if MCHAT_DATE_NOAUTH %} disabled{% endif %}>
{{ S_MCHAT_DATEFORMAT_OPTIONS }}
</select>
</dd>
<dd><div id="user_mchat_custom_date"<!-- IF not S_MCHAT_CUSTOM_DATEFORMAT --> style="display:none;"<!-- ENDIF -->><input type="text" name="user_mchat_date" id="user_mchat_date" value="{MCHAT_DATE}"<!-- IF MCHAT_DATE_NOAUTH --> disabled<!-- ENDIF --> /></div></dd>
<dd><div id="user_mchat_custom_date"{% if not S_MCHAT_CUSTOM_DATEFORMAT %} style="display:none;"{% endif %}><input type="text" name="user_mchat_date" id="user_mchat_date" value="{{ MCHAT_DATE }}"{% if MCHAT_DATE_NOAUTH %} disabled{% endif %} /></div></dd>
</dl>
<dl>
<dt><label for="user_mchat_relative_time">{L_MCHAT_RELATIVE_TIME}{L_COLON}</label><br /><span>{L_MCHAT_RELATIVE_TIME_EXPLAIN}</span></dt>
<dt><label for="user_mchat_relative_time">{{ lang('MCHAT_RELATIVE_TIME') ~ lang('COLON') }}</label><br /><span>{{ lang('MCHAT_RELATIVE_TIME_EXPLAIN') }}</span></dt>
<dd>
<label><input type="radio" name="user_mchat_relative_time" value="1"<!-- IF MCHAT_RELATIVE_TIME --> id="user_mchat_relative_time" checked="checked"<!-- ENDIF --><!-- IF MCHAT_RELATIVE_TIME_NOAUTH --> disabled<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" name="user_mchat_relative_time" value="0"<!-- IF not MCHAT_RELATIVE_TIME --> id="user_mchat_relative_time" checked="checked"<!-- ENDIF --><!-- IF MCHAT_RELATIVE_TIME_NOAUTH --> disabled<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" name="user_mchat_relative_time" value="1"{% if MCHAT_RELATIVE_TIME %} id="user_mchat_relative_time" checked="checked"{% endif %}{% if MCHAT_RELATIVE_TIME_NOAUTH %} disabled{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" name="user_mchat_relative_time" value="0"{% if not MCHAT_RELATIVE_TIME %} id="user_mchat_relative_time" checked="checked"{% endif %}{% if MCHAT_RELATIVE_TIME_NOAUTH %} disabled{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<!-- EVENT dmzx_mchat_acp_relative_time_after -->
{% EVENT dmzx_mchat_acp_relative_time_after %}
<hr />
<!-- EVENT dmzx_mchat_acp_posts_before -->
{% EVENT dmzx_mchat_acp_posts_before %}
<dl>
<dt><label for="user_mchat_posts"><!-- IF MCHAT_POSTS_ENABLED_LANG -->{MCHAT_POSTS_ENABLED_LANG}<!-- ELSE -->{L_MCHAT_POSTS}<!-- ENDIF -->{L_COLON}</label></dt>
<dt><label for="user_mchat_posts">{% if MCHAT_POSTS_ENABLED_LANG %}{{ MCHAT_POSTS_ENABLED_LANG }}{% else %}{{ lang('MCHAT_POSTS') }}{% endif %}{{ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" name="user_mchat_posts" value="1"<!-- IF MCHAT_POSTS --> id="user_mchat_posts" checked="checked"<!-- ENDIF --><!-- IF MCHAT_POSTS_NOAUTH --> disabled<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" name="user_mchat_posts" value="0"<!-- IF not MCHAT_POSTS --> id="user_mchat_posts" checked="checked"<!-- ENDIF --><!-- IF MCHAT_POSTS_NOAUTH --> disabled<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" name="user_mchat_posts" value="1"{% if MCHAT_POSTS %} id="user_mchat_posts" checked="checked"{% endif %}{% if MCHAT_POSTS_NOAUTH %} disabled{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" name="user_mchat_posts" value="0"{% if not MCHAT_POSTS %} id="user_mchat_posts" checked="checked"{% endif %}{% if MCHAT_POSTS_NOAUTH %} disabled{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<!-- EVENT dmzx_mchat_acp_posts_after -->
{% EVENT dmzx_mchat_acp_posts_after %}

View File

@@ -1,5 +1,5 @@
<fieldset>
<p class="successbox notice">{L_MCHAT_ACP_USER_PREFS_EXPLAIN}</p>
<legend>{L_MCHAT_PREFERENCES}</legend>
<!-- INCLUDE @dmzx_mchat/acp_mchat_globalusersettings_content.html -->
<p class="successbox notice">{{ lang('MCHAT_ACP_USER_PREFS_EXPLAIN') }}</p>
<legend>{{ lang('MCHAT_PREFERENCES') }}</legend>
{% INCLUDE '@dmzx_mchat/acp_mchat_globalusersettings_content.html' %}
</fieldset>

View File

@@ -67,6 +67,7 @@ services:
arguments:
- '@user'
- '@config'
- '@config_text'
- '@auth'
- '@dispatcher'
dmzx.mchat.acp.listener:

View File

@@ -123,11 +123,13 @@ class acp_controller
$is_founder = $this->user->data['user_type'] == USER_FOUNDER;
$settings = array_merge($this->settings->global_settings(), $this->settings->global_text_settings());
if ($this->request->is_set_post('submit'))
{
$mchat_new_config = array();
$validation = array();
foreach ($this->settings->global_settings() as $config_name => $config_data)
foreach ($settings as $config_name => $config_data)
{
$default = $this->settings->cfg($config_name);
settype($default, gettype($config_data['default']));
@@ -221,7 +223,7 @@ class acp_controller
'U_ACTION' => $u_action,
);
foreach (array_keys($this->settings->global_settings()) as $key)
foreach (array_keys($settings) as $key)
{
$template_data[strtoupper($key)] = $this->settings->cfg($key);
}
@@ -364,8 +366,8 @@ class acp_controller
}
/**
* @param $selected
* @return array
* @param int $selected
* @return string
*/
protected function get_prune_mode_options($selected)
{

View File

@@ -176,6 +176,7 @@ class ucp_controller
}
$template_data = array_merge($template_data, array(
'MCHAT_ALLOW_USE' => $this->auth->acl_get('u_mchat_use'),
'MCHAT_POSTS_ENABLED_LANG' => $this->settings->get_enabled_post_notifications_lang(),
'ERROR' => sizeof($error) ? implode('<br />', $error) : '',
'MCHAT_AUTH_COUNT' => $auth_count,

View File

@@ -56,6 +56,9 @@ class functions
/** @var string */
protected $mchat_sessions_table;
/** @var array */
protected $active_users;
/** @var array */
public $log_types = array(
1 => 'edit',
@@ -177,10 +180,16 @@ class functions
/**
* Returns data about users who are currently chatting
*
* @param bool $cached Whether to return possibly cached data
* @return array
*/
public function mchat_active_users()
public function mchat_active_users($cached = true)
{
if ($cached && $this->active_users)
{
return $this->active_users;
}
$check_time = time() - $this->mchat_session_time();
$sql_array = array(
@@ -258,6 +267,8 @@ class functions
);
extract($this->dispatcher->trigger_event('dmzx.mchat.active_users_after', compact($vars)));
$this->active_users = $active_users;
return $active_users;
}
@@ -284,7 +295,7 @@ class functions
{
$sql = 'INSERT INTO ' . $this->mchat_sessions_table . ' ' . $this->db->sql_build_array('INSERT', array(
'user_id' => (int) $this->user->data['user_id'],
'user_ip' => $this->user->data['user_ip'],
'user_ip' => $this->user->ip,
'user_lastupdate' => time(),
));
$this->db->sql_query($sql);
@@ -349,9 +360,23 @@ class functions
$offset = 0;
}
/**
* Allow modifying SQL query before message ids to be pruned are retrieved.
*
* @event dmzx.mchat.prune_sql_before
* @var array user_ids Array of user IDs that are being pruned, empty when pruning via cron
* @var array sql_array SQL query data
* @since 2.0.2
*/
$vars = array(
'user_ids',
'sql_array',
);
extract($this->dispatcher->trigger_event('dmzx.mchat.prune_sql_before', compact($vars)));
$sql = $this->db->sql_build_query('SELECT', $sql_array);
$result = $this->db->sql_query_limit($sql, 0, $offset);
$rows = $this->db->sql_fetchrowset();
$rows = $this->db->sql_fetchrowset($result);
$this->db->sql_freeresult($result);
$prune_ids = array();
@@ -366,7 +391,7 @@ class functions
*
* @event dmzx.mchat.prune_before
* @var array prune_ids Array of message IDs that are about to be pruned
* @var array user_ids Array of user IDs that are being pruned
* @var array user_ids Array of user IDs that are being pruned, empty when pruning via cron
* @since 2.0.0-RC6
* @changed 2.0.1 Added user_ids
*/
@@ -395,7 +420,7 @@ class functions
/**
* Returns the total number of messages
*
* @return string
* @return int
*/
public function mchat_total_message_count()
{
@@ -757,7 +782,7 @@ class functions
'login' => 'mchat_posts_login',
);
$is_mode_enabled = !empty($mode_config[$mode]) && $this->settings->cfg($mode_config[$mode]);
$is_mode_enabled = !empty($mode_config[$mode]) && $this->settings->cfg($mode_config[$mode]) && (!$this->settings->cfg('mchat_posts_auth_check') || $this->auth->acl_get('u_mchat_use'));
// Special treatment for login notifications
if ($mode === 'login')
@@ -770,7 +795,7 @@ class functions
'forum_id' => (int) $forum_id,
'post_id' => (int) $post_id,
'user_id' => (int) $this->user->data['user_id'],
'user_ip' => $this->user->data['session_ip'],
'user_ip' => $this->user->ip,
'message' => 'MCHAT_NEW_' . strtoupper($mode),
'message_time' => time(),
);

View File

@@ -71,9 +71,6 @@ class mchat
/** @var boolean */
protected $remove_disallowed_bbcodes = false;
/** @var array */
protected $active_users = null;
/** @var array */
protected $foes = null;
@@ -155,8 +152,6 @@ class mchat
$this->assign_bbcodes_smilies();
$this->render_page('index');
$this->template->assign_var('MCHAT_IS_INDEX', true);
}
/**
@@ -189,8 +184,6 @@ class mchat
$this->assign_bbcodes_smilies();
$this->template->assign_var('MCHAT_IS_CUSTOM_PAGE', true);
$this->render_page('custom');
// Add to navlinks
@@ -221,8 +214,6 @@ class mchat
throw new http_exception(403, 'MCHAT_NOACCESS_ARCHIVE');
}
$this->template->assign_var('MCHAT_IS_ARCHIVE_PAGE', true);
$this->render_page('archive');
// Add to navlinks
@@ -291,7 +282,7 @@ class mchat
$lang_rules = $this->user->lang('MCHAT_RULES_MESSAGE');
if (!$this->settings->cfg('mchat_rules') && !$lang_rules)
if (!$lang_rules && !$this->settings->cfg('mchat_rules'))
{
throw new http_exception(404, 'MCHAT_NO_RULES');
}
@@ -332,7 +323,7 @@ class mchat
* User submits a message
*
* @param bool $return_raw
* @return array data sent to client as JSON
* @return array|JsonResponse data sent to client as JSON
*/
public function action_add($return_raw = false)
{
@@ -354,7 +345,7 @@ class mchat
$message_data = array_merge($message_data, array(
'user_id' => $this->user->data['user_id'],
'user_ip' => $this->user->data['session_ip'],
'user_ip' => $this->user->ip,
'message_time' => time(),
));
@@ -408,7 +399,7 @@ class mchat
* User edits a message
*
* @param bool $return_raw
* @return array data sent to client as JSON
* @return array|JsonResponse data sent to client as JSON
*/
public function action_edit($return_raw = false)
{
@@ -434,7 +425,7 @@ class mchat
throw new http_exception(403, 'NO_AUTH_OPERATION');
}
$this->template->assign_var('MCHAT_IS_ARCHIVE_PAGE', $this->request->variable('archive', false));
$this->template->assign_var('MCHAT_PAGE', $this->request->variable('page', ''));
$message = $this->request->variable('message', '', true);
$sql_ary = $this->process_message($message);
@@ -474,7 +465,7 @@ class mchat
* User deletes a message
*
* @param bool $return_raw
* @return array data sent to client as JSON
* @return array|JsonResponse data sent to client as JSON
*/
public function action_del($return_raw = false)
{
@@ -528,7 +519,7 @@ class mchat
* User checks for new messages
*
* @param bool $return_raw
* @return array sent to client as JSON
* @return array|JsonResponse sent to client as JSON
*/
public function action_refresh($return_raw = false)
{
@@ -693,7 +684,7 @@ class mchat
* User requests who is chatting
*
* @param bool $return_raw
* @return array data sent to client as JSON
* @return array|JsonResponse data sent to client as JSON
*/
public function action_whois($return_raw = false)
{
@@ -701,12 +692,18 @@ class mchat
$this->assign_whois();
$response = array('whois' => $this->render_template('mchat_whois.html'));
$response = array('whois' => true);
if ($this->settings->cfg('mchat_navbar_link_count') && $this->settings->cfg('mchat_navbar_link') && $this->settings->cfg('mchat_custom_page') && $this->active_users)
if ($this->settings->cfg('mchat_whois_index'))
{
$response['navlink'] = $this->active_users['users_count_title'];
$response['navlink_title'] = strip_tags($this->active_users['users_total']);
$response['container'] = $this->render_template('mchat_whois.html');
}
if ($this->settings->cfg('mchat_custom_page') && $this->settings->cfg('mchat_navbar_link') && $this->settings->cfg('mchat_navbar_link_count'))
{
$active_users = $this->functions->mchat_active_users();
$response['navlink'] = $active_users['users_count_title'];
$response['navlink_title'] = strip_tags($active_users['users_total']);
}
/**
@@ -749,13 +746,9 @@ class mchat
if ($navbar_link && $custom_page && $this->settings->cfg('mchat_navbar_link_count'))
{
if ($this->active_users === null)
{
$this->active_users = $this->functions->mchat_active_users();
}
$template_data['MCHAT_TITLE'] = $this->active_users['users_count_title'];
$template_data['MCHAT_TITLE_HINT'] = strip_tags($this->active_users['users_total']);
$active_users = $this->functions->mchat_active_users();
$template_data['MCHAT_TITLE'] = $active_users['users_count_title'];
$template_data['MCHAT_TITLE_HINT'] = strip_tags($active_users['users_total']);
}
$this->template->assign_vars($template_data);
@@ -786,6 +779,7 @@ class mchat
// If the static message is defined in the language file use it, else the entry in the database is used
$lang_static_message = $this->user->lang('MCHAT_STATIC_MESSAGE');
$static_message = $lang_static_message ?: $this->settings->cfg('mchat_static_message');
$whois_refresh = $this->settings->cfg('mchat_whois_index') || ($this->settings->cfg('mchat_custom_page') && $this->settings->cfg('mchat_navbar_link') && $this->settings->cfg('mchat_navbar_link_count'));
$this->template->assign_vars(array(
'MCHAT_PAGE' => $page,
@@ -803,17 +797,16 @@ class mchat
'MCHAT_PAUSE_ON_INPUT' => $this->settings->cfg('mchat_pause_on_input'),
'MCHAT_MESSAGE_LNGTH' => $this->settings->cfg('mchat_max_message_lngth'),
'MCHAT_WHOIS_INDEX' => $this->settings->cfg('mchat_whois_index'),
'MCHAT_WHOIS_REFRESH' => $this->settings->cfg('mchat_whois_index') || $this->settings->cfg('mchat_stats_index') ? $this->settings->cfg('mchat_whois_refresh') * 1000 : 0,
'MCHAT_WHOIS_REFRESH' => $whois_refresh ? $this->settings->cfg('mchat_whois_refresh') * 1000 : 0,
'MCHAT_REFRESH_JS' => $this->settings->cfg('mchat_refresh') * 1000,
'MCHAT_ARCHIVE' => $this->auth->acl_get('u_mchat_archive'),
'MCHAT_RULES' => $this->user->lang('MCHAT_RULES_MESSAGE') || $this->settings->cfg('mchat_rules'),
'MCHAT_WHOIS_REFRESH_EXPLAIN' => $this->user->lang('MCHAT_WHO_IS_REFRESH_EXPLAIN', $this->settings->cfg('mchat_whois_refresh')),
'MCHAT_SESSION_TIMELEFT' => $this->user->lang('MCHAT_SESSION_ENDS', gmdate($this->settings->cfg('mchat_timeout') >= 3600 ? 'H:i:s' : 'i:s', $this->settings->cfg('mchat_timeout'))),
'MCHAT_LOG_ID' => $this->functions->get_latest_log_id(),
'MCHAT_STATIC_MESS' => htmlspecialchars_decode($static_message),
'A_MCHAT_MESS_LONG' => addslashes($this->user->lang('MCHAT_MESS_LONG', $this->settings->cfg('mchat_max_message_lngth'))),
'A_MCHAT_REFRESH_YES' => addslashes($this->user->lang('MCHAT_REFRESH_YES', $this->settings->cfg('mchat_refresh'))),
'A_COOKIE_NAME' => addslashes($this->settings->cfg('cookie_name', true) . '_'),
'MCHAT_MAX_MESSAGE_LENGTH' => $this->settings->cfg('mchat_max_message_lngth'),
'MCHAT_REFRESH_RATE' => $this->settings->cfg('mchat_refresh'),
'COOKIE_NAME' => $this->settings->cfg('cookie_name', true) . '_',
'U_MCHAT_CUSTOM_PAGE' => $this->helper->route('dmzx_mchat_page_custom_controller'),
'U_MCHAT_RULES' => $this->helper->route('dmzx_mchat_page_rules_controller'),
'U_MCHAT_ARCHIVE_URL' => $this->helper->route('dmzx_mchat_page_archive_controller'),
@@ -822,15 +815,7 @@ class mchat
// The template needs some language variables if we display relative time for messages
if ($this->settings->cfg('mchat_relative_time'))
{
$minutes_limit = $this->get_relative_minutes_limit();
for ($i = 0; $i < $minutes_limit; $i++)
{
$this->template->assign_block_vars('mchattime', array(
'KEY' => $i,
'A_LANG' => addslashes($this->user->lang('MCHAT_MINUTES_AGO', $i)),
'IS_LAST' => $i + 1 === $minutes_limit,
));
}
$this->template->assign_var('MCHAT_MINUTES_AGO_LIMIT', $this->get_relative_minutes_limit());
}
// Get actions which the user is allowed to perform on the current page
@@ -839,15 +824,14 @@ class mchat
'del' => $this->auth_message('delete', true, time()),
'refresh' => $page !== 'archive' && $this->auth->acl_get('u_mchat_view'),
'add' => $page !== 'archive' && $this->auth->acl_get('u_mchat_use'),
'whois' => $page !== 'archive' && ($this->settings->cfg('mchat_whois_index') || $this->settings->cfg('mchat_stats_index')),
'whois' => $page !== 'archive' && $whois_refresh,
)));
foreach ($actions as $i => $action)
foreach ($actions as $action)
{
$this->template->assign_block_vars('mchaturl', array(
'ACTION' => $action,
'URL' => $this->helper->route('dmzx_mchat_action_' . $action . '_controller', array(), false),
'IS_LAST' => $i + 1 === count($actions),
));
}
@@ -994,7 +978,7 @@ class mchat
*/
protected function display_avatars()
{
return $this->settings->cfg('mchat_avatars') && $this->user->optionget('viewavatars') && $this->settings->cfg('mchat_avatars');
return $this->settings->cfg('mchat_avatars') && $this->user->optionget('viewavatars');
}
/**
@@ -1099,10 +1083,10 @@ class mchat
'MCHAT_ALLOW_EDIT' => $this->auth_message('edit', $row['user_id'], $row['message_time']),
'MCHAT_ALLOW_DEL' => $this->auth_message('delete', $row['user_id'], $row['message_time']),
'MCHAT_USER_AVATAR' => $user_avatars[$row['user_id']],
'U_VIEWPROFILE' => $row['user_id'] != ANONYMOUS ? append_sid("{$board_url}{$this->root_path}memberlist.{$this->php_ext}", 'mode=viewprofile&amp;u=' . $row['user_id']) : '',
'U_VIEWPROFILE' => $row['user_id'] != ANONYMOUS ? append_sid("{$board_url}memberlist.{$this->php_ext}", 'mode=viewprofile&amp;u=' . $row['user_id']) : '',
'MCHAT_IS_POSTER' => $is_poster,
'MCHAT_IS_NOTIFICATION' => (bool) $row['post_id'],
'MCHAT_PM' => !$is_poster && $this->settings->cfg('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("{$board_url}{$this->root_path}ucp.{$this->php_ext}", 'i=pm&amp;mode=compose&amp;mchat_pm_quote_message=' . (int) $row['message_id'] . '&amp;u=' . $row['user_id']) : '',
'MCHAT_PM' => !$is_poster && $this->settings->cfg('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("{$board_url}ucp.{$this->php_ext}", 'i=pm&amp;mode=compose&amp;mchat_pm_quote_message=' . (int) $row['message_id'] . '&amp;u=' . $row['user_id']) : '',
'MCHAT_MESSAGE_EDIT' => $message_for_edit['text'],
'MCHAT_MESSAGE_ID' => $row['message_id'],
'MCHAT_USERNAME_FULL' => $username_full,
@@ -1110,7 +1094,7 @@ class mchat
'MCHAT_USERNAME_COLOR' => get_username_string('colour', $row['user_id'], $row['username'], $row['user_colour'], $this->user->lang('GUEST')),
'MCHAT_WHOIS_USER' => $this->user->lang('MCHAT_WHOIS_USER', $row['user_ip']),
'MCHAT_U_IP' => $this->helper->route('dmzx_mchat_page_whois_controller', array('ip' => $row['user_ip'])),
'MCHAT_U_PERMISSIONS' => append_sid("{$board_url}{$this->root_path}adm/index.{$this->php_ext}", 'i=permissions&amp;mode=setting_user_global&amp;user_id%5B0%5D=' . $row['user_id'], true, $this->user->session_id),
'MCHAT_U_PERMISSIONS' => append_sid("{$board_url}adm/index.{$this->php_ext}", 'i=permissions&amp;mode=setting_user_global&amp;user_id%5B0%5D=' . $row['user_id'], true, $this->user->session_id),
'MCHAT_MESSAGE' => generate_text_for_display($row['message'], $row['bbcode_uid'], $row['bbcode_bitfield'], $row['bbcode_options']),
'MCHAT_TIME' => $minutes_ago === -1 ? $datetime : $this->user->lang('MCHAT_MINUTES_AGO', $minutes_ago),
'MCHAT_DATETIME' => $absolute_datetime,
@@ -1152,7 +1136,7 @@ class mchat
}
/**
* Returns true of the user is allowed to read the given message row
* Returns true if the user is allowed to read the given message row
*
* @param array $row
* @return bool
@@ -1355,7 +1339,7 @@ class mchat
$this->template->assign_var($option['template_var'], !$is_disallowed);
}
$this->template->assign_var('A_MCHAT_DISALLOWED_BBCODES', addslashes($this->settings->cfg('mchat_bbcode_disallowed')));
$this->template->assign_var('MCHAT_DISALLOWED_BBCODES', $this->settings->cfg('mchat_bbcode_disallowed'));
if (!function_exists('display_custom_bbcodes'))
{
@@ -1472,22 +1456,19 @@ class mchat
{
if ($this->settings->cfg('mchat_whois_index') || $this->settings->cfg('mchat_stats_index'))
{
if ($this->active_users === null)
{
$this->active_users = $this->functions->mchat_active_users();
}
$active_users = $this->functions->mchat_active_users();
$this->template->assign_vars(array(
'MCHAT_STATS_INDEX' => $this->settings->cfg('mchat_stats_index'),
'MCHAT_USERS_TOTAL' => $this->active_users['users_total'],
'MCHAT_USERS_LIST' => $this->active_users['online_userlist'] ?: '',
'MCHAT_ONLINE_EXPLAIN' => $this->active_users['refresh_message'],
'MCHAT_USERS_TOTAL' => $active_users['users_total'],
'MCHAT_USERS_LIST' => $active_users['online_userlist'] ?: '',
'MCHAT_ONLINE_EXPLAIN' => $active_users['refresh_message'],
));
}
}
/**
* Checks whether an author has edit or delete permissions for a message
* Checks whether the current user has edit or delete permissions for a message written by $author_id
*
* @param string $mode One of edit|delete
* @param int $author_id The user id of the message

View File

@@ -13,6 +13,7 @@ namespace dmzx\mchat\core;
use phpbb\auth\auth;
use phpbb\config\config;
use phpbb\config\db_text;
use phpbb\event\dispatcher_interface;
use phpbb\user;
@@ -24,6 +25,9 @@ class settings
/** @var config */
protected $config;
/** @var db_text */
protected $config_text;
/** @var auth */
protected $auth;
@@ -38,6 +42,21 @@ class settings
*/
protected $global_settings;
/**
* Keys for global text settings that only the administrator is allowed to modify.
* The values are stored in the phpbb_config_text table.
*
* @var array
*/
protected $global_text_settings;
/**
* Values for global text settings.
*
* @var array
*/
protected $global_text_values;
/**
* Keys for user-specific settings for which the administrator can set default
* values as well as adjust permissions to allow users to customize them.
@@ -80,18 +99,21 @@ class settings
*
* @param user $user
* @param config $config
* @param db_text $config_text
* @param auth $auth
* @param dispatcher_interface $dispatcher
*/
public function __construct(
user $user,
config $config,
db_text $config_text,
auth $auth,
dispatcher_interface $dispatcher
)
{
$this->user = $user;
$this->config = $config;
$this->config_text = $config_text;
$this->auth = $auth;
$this->dispatcher = $dispatcher;
@@ -121,6 +143,7 @@ class settings
'mchat_navbar_link_count' => array('default' => 1),
'mchat_override_min_post_chars' => array('default' => 0),
'mchat_override_smilie_limit' => array('default' => 0),
'mchat_posts_auth_check' => array('default' => 0),
'mchat_posts_edit' => array('default' => 0),
'mchat_posts_quote' => array('default' => 0),
'mchat_posts_reply' => array('default' => 0),
@@ -131,8 +154,6 @@ class settings
'mchat_prune_mode' => array('default' => 0),
'mchat_prune_num' => array('default' => 0),
'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_timeout' => array('default' => 0, 'validation' => array('num', false, 0, (int) $this->cfg('session_length'))),
'mchat_whois_refresh' => array('default' => 60, 'validation' => array('num', false, 10, 300)),
);
@@ -152,6 +173,31 @@ class settings
return $global_settings;
}
/**
* @return array
*/
public function initialize_global_text_settings()
{
$global_text_settings = array(
'mchat_rules' => array('default' => ''),
'mchat_static_message' => array('default' => ''),
);
/**
* Event to modify global text settings data
*
* @event dmzx.mchat.global_text_settings_modify
* @var array global_text_settings Array containing global text settings data
* @since 2.0.2
*/
$vars = array(
'global_text_settings',
);
extract($this->dispatcher->trigger_event('dmzx.mchat.global_text_settings_modify', compact($vars)));
return $global_text_settings;
}
/**
* @return array
*/
@@ -202,6 +248,46 @@ class settings
return $this->global_settings;
}
/**
* @return array
*/
public function global_text_settings()
{
if (empty($this->global_text_settings))
{
$this->global_text_settings = $this->initialize_global_text_settings();
}
return $this->global_text_settings;
}
/**
* @return array
*/
public function global_text_values()
{
if (empty($this->global_text_values))
{
$global_text_values = $this->config_text->get_array(array_keys($this->global_text_settings()));
/**
* Event to modify global text values
*
* @event dmzx.mchat.global_text_values_modify
* @var array global_text_values Array containing global text values
* @since 2.0.2
*/
$vars = array(
'global_text_values',
);
extract($this->dispatcher->trigger_event('dmzx.mchat.global_text_values_modify', compact($vars)));
$this->global_text_values = $global_text_values;
}
return $this->global_text_values;
}
/**
* @return array
*/
@@ -234,23 +320,48 @@ class settings
*/
public function cfg_user($config, $user_data, $auth, $force_global = false)
{
$ucp_settings = $this->ucp_settings();
if (!$force_global && isset($ucp_settings[$config]) && $auth->acl_get('u_' . $config))
if (!$force_global)
{
return $user_data['user_' . $config];
$ucp_settings = $this->ucp_settings();
if (isset($ucp_settings[$config]) && $auth->acl_get('u_' . $config))
{
return $user_data['user_' . $config];
}
}
$global_text_settings = $this->global_text_settings();
if (isset($global_text_settings[$config]))
{
$global_text_values = $this->global_text_values();
return $global_text_values[$config];
}
return $this->config[$config];
}
/**
* @param $config
* @param $value
* @param string $config
* @param mixed $value
* @param bool $volatile
*/
public function set_cfg($config, $value, $volatile = false)
{
$global_text_settings = $this->global_text_settings();
if (isset($global_text_settings[$config]))
{
$this->global_text_values[$config] = $value;
if (!$volatile)
{
$this->config_text->set($config, $value);
}
return;
}
if ($volatile)
{
$this->config[$config] = $value;
@@ -290,7 +401,7 @@ class settings
return array(
'S_MCHAT_DATEFORMAT_OPTIONS' => $dateformat_options,
'A_MCHAT_DEFAULT_DATEFORMAT' => addslashes($ucp_settings['mchat_date']['default']),
'MCHAT_DEFAULT_DATEFORMAT' => $ucp_settings['mchat_date']['default'],
'S_MCHAT_CUSTOM_DATEFORMAT' => $s_custom,
);
}

View File

@@ -187,7 +187,7 @@ class acp_listener implements EventSubscriberInterface
{
$this->user->add_lang_ext('dmzx/mchat', array('mchat_acp', 'mchat_ucp'));
$user_id = $event['user_row']['user_id'];
$user_id = (int) $event['user_row']['user_id'];
$auth = new auth();
$userdata = $auth->obtain_user_data($user_id);

View File

@@ -13,9 +13,9 @@ namespace dmzx\mchat\event;
use dmzx\mchat\core\mchat;
use phpbb\controller\helper;
use phpbb\event\data;
use phpbb\request\request_interface;
use phpbb\user;
use Symfony\Component\EventDispatcher\Event;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class main_listener implements EventSubscriberInterface
@@ -78,7 +78,7 @@ class main_listener implements EventSubscriberInterface
}
/**
* @param Event $event
* @param data $event
*/
public function add_page_viewonline($event)
{
@@ -90,7 +90,7 @@ class main_listener implements EventSubscriberInterface
}
/**
* @param Event $event
* @param data $event
*/
public function load_language_on_setup($event)
{
@@ -104,26 +104,22 @@ class main_listener implements EventSubscriberInterface
/**
* Create a URL to the mchat controller file for the header linklist
*
* @param Event $event
*/
public function add_page_header_link($event)
public function add_page_header_link()
{
$this->mchat->render_page_header_link();
}
/**
* Check if mchat should be displayed on index.
*
* @param Event $event
*/
public function display_mchat_on_index($event)
public function display_mchat_on_index()
{
$this->mchat->page_index();
}
/**
* @param Event $event
* @param data $event
*/
public function insert_posting($event)
{
@@ -131,7 +127,7 @@ class main_listener implements EventSubscriberInterface
}
/**
* @param Event $event
* @param data $event
*/
public function remove_disallowed_bbcodes($event)
{
@@ -139,7 +135,7 @@ class main_listener implements EventSubscriberInterface
}
/**
* @param Event $event
* @param data $event
*/
public function user_registration_set_default_values($event)
{
@@ -147,7 +143,7 @@ class main_listener implements EventSubscriberInterface
}
/**
* @param Event $event
* @param data $event
*/
public function user_login_success($event)
{
@@ -158,9 +154,9 @@ class main_listener implements EventSubscriberInterface
}
/**
* @param Event $event
*
*/
public function pm_compose_add_quote($event)
public function pm_compose_add_quote()
{
$mchat_message_id = $this->request->variable('mchat_pm_quote_message', 0);
@@ -171,9 +167,9 @@ class main_listener implements EventSubscriberInterface
}
/**
* @param Event $event
*
*/
public function session_gc($event)
public function session_gc()
{
$this->mchat->session_gc();
}

View File

@@ -52,7 +52,7 @@ class ext extends \phpbb\extension\base
}
$php_ext = $this->container->getParameter('core.php_ext');
$error_msg = $lang->lang('MCHAT_30X_REMNANTS', $table_prefix, implode(', ', $module_ids)) . adm_back_link(append_sid('index.' . $php_ext, 'i=acp_extensions&amp;mode=main'));
$error_msg = $lang->lang('MCHAT_30X_REMNANTS', $table_prefix, implode($lang->lang('COMMA_SEPARATOR'), $module_ids)) . adm_back_link(append_sid('index.' . $php_ext, 'i=acp_extensions&amp;mode=main'));
trigger_error($error_msg, E_USER_WARNING);
}
@@ -65,7 +65,7 @@ class ext extends \phpbb\extension\base
* This method checks whether the phpbb_modules table contains remnants of the 3.0 MOD.
* It returns an array of the modules' IDs, or an empty array if no old modules are found.
*
* @var string $table_prefix
* @param string $table_prefix
* @return array
*/
protected function get_old_module_ids($table_prefix)
@@ -84,7 +84,7 @@ class ext extends \phpbb\extension\base
FROM ' . $table_prefix . 'modules
WHERE ' . $db->sql_in_set('module_langname', $mchat_30x_module_langnames);
$result = $db->sql_query($sql);
$rows = $db->sql_fetchrowset();
$rows = $db->sql_fetchrowset($result);
$db->sql_freeresult($result);
$module_ids = array();

View File

@@ -43,7 +43,7 @@ $lang = array_merge($lang, array(
// Log entries (%1$s is replaced with the user name who triggered the event)
'LOG_MCHAT_CONFIG_UPDATE' => '<strong>mChat configuration updated</strong><br />» %1$s',
'LOG_MCHAT_TABLE_PRUNED' => '<strong>mChat messages pruned: %2$d</strong><br />» %1$s',
'LOG_MCHAT_TABLE_PRUNED' => '<strong>mChat messages pruned: %2$d</strong>',
'LOG_MCHAT_TABLE_PURGED' => '<strong>mChat messages purged</strong><br />» %1$s',
'LOG_DELETED_MCHAT' => '<strong>mChat message deleted</strong><br />» %1$s',
'LOG_EDITED_MCHAT' => '<strong>mChat message edited</strong><br />» %1$s',

View File

@@ -92,8 +92,8 @@ $lang = array_merge($lang, array(
'MCHAT_MESSAGE_NUM_ARCHIVE' => 'Number of messages to display on the archive page',
'MCHAT_MESSAGE_NUM_ARCHIVE_EXPLAIN' => 'The maximum number of messages to show per page on the archive page.<br /><em>You are limited from 10 to 100. Default is 25.</em>',
'MCHAT_ARCHIVE_SORT' => 'Message sorting',
'MCHAT_ARCHIVE_SORT_TOP_BOTTOM' => 'Always sort messages top to bottom',
'MCHAT_ARCHIVE_SORT_BOTTOM_TOP' => 'Always sort messages bottom to top',
'MCHAT_ARCHIVE_SORT_TOP_BOTTOM' => 'Always sort messages oldest to newest',
'MCHAT_ARCHIVE_SORT_BOTTOM_TOP' => 'Always sort messages newest to oldest',
'MCHAT_ARCHIVE_SORT_USER' => 'Sort messages depending on the users <em>Location of new messages</em> preference',
'MCHAT_FLOOD_TIME' => 'Flood time',
'MCHAT_FLOOD_TIME_EXPLAIN' => 'The number of seconds a user must wait before posting another message in the chat.<br /><em>You are limited from 0 to 60 seconds. Default is 0. Set to 0 to disable.</em>',
@@ -115,6 +115,9 @@ $lang = array_merge($lang, array(
'MCHAT_OVERRIDE_MIN_POST_CHARS' => 'Override minimum characters limit',
'MCHAT_OVERRIDE_MIN_POST_CHARS_EXPLAIN' => 'Set to yes to override the forums minimum characters setting for chat messages',
'MCHAT_POSTS_AUTH_CHECK' => 'Require user permission',
'MCHAT_POSTS_AUTH_CHECK_EXPLAIN' => 'If set to yes, users who can not use mChat will not generate any post/login notification messages.',
'MCHAT_WHOIS_REFRESH' => 'Who is chatting refresh interval',
'MCHAT_WHOIS_REFRESH_EXPLAIN' => 'Number of seconds before who is chatting refreshes.<br /><em>You are limited from 10 to 300 seconds. Default is 60.</em>',
'MCHAT_SOUND' => 'Play sounds for new, edited and deleted messages',

View File

@@ -0,0 +1,39 @@
<?php
/**
*
* @package phpBB Extension - mChat
* @copyright (c) 2017 kasimi - https://kasimi.net
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
namespace dmzx\mchat\migrations;
use phpbb\db\migration\migration;
class mchat_2_0_2 extends migration
{
static public function depends_on()
{
return array(
'\dmzx\mchat\migrations\mchat_2_0_1',
);
}
public function update_data()
{
return array(
array('config.update', array('mchat_version', '2.0.2')),
array('config.add', array('mchat_posts_auth_check', 0)),
// Move rules and static message from config to config_text table
array('config_text.add', array('mchat_rules', $this->config['mchat_rules'])),
array('config_text.add', array('mchat_static_message', $this->config['mchat_static_message'])),
array('config.remove', array('mchat_rules')),
array('config.remove', array('mchat_static_message')),
);
}
}

View File

@@ -1 +1 @@
<!-- DEFINE $MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE -->
{% DEFINE MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE %}

View File

@@ -1 +1 @@
<!-- DEFINE $MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE -->
{% DEFINE MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE %}

View File

@@ -1 +1 @@
<!-- DEFINE $MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE -->
{% DEFINE MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE %}

View File

@@ -1 +1 @@
<!-- DEFINE $MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE -->
{% DEFINE MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE %}

View File

@@ -1 +1 @@
<!-- DEFINE $MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE -->
{% DEFINE MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE %}

View File

@@ -1 +1 @@
<!-- DEFINE $MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE -->
{% DEFINE MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE %}

View File

@@ -0,0 +1,2 @@
{% INCLUDECSS '@dmzx_mchat/mchat.css' %}
{% INCLUDECSS '@dmzx_mchat/mchat_custom.css' %}

Binary file not shown.

After

Width:  |  Height:  |  Size: 528 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -0,0 +1,6 @@
.mchat-icon:before {
background-image: url("./images/message_icons_orange.png") !important;
}
.icon-mchat {
background-image: url("./images/icon_mchat.png");
}

View File

@@ -1,2 +1,2 @@
<!-- INCLUDECSS @dmzx_mchat/mchat.css -->
<!-- INCLUDECSS @dmzx_mchat/mchat_custom.css -->
{% INCLUDECSS '@dmzx_mchat/mchat.css' %}
{% INCLUDECSS '@dmzx_mchat/mchat_custom.css' %}

View File

@@ -0,0 +1,2 @@
{% INCLUDECSS '@dmzx_mchat/mchat.css' %}
{% INCLUDECSS '@dmzx_mchat/mchat_custom.css' %}

View File

@@ -0,0 +1,12 @@
.mchat-wrapper .row-item {
top: -10px;
}
.mchat-wrapper .header {
padding-left: 15px;
padding-top: 10px;
}
#mchat-panel {
border-bottom: 1px solid #ccc;
border-left: 1px solid #ccc;
border-right: 1px solid #ccc;
}

View File

@@ -1 +1 @@
<!-- DEFINE $MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE -->
{% DEFINE MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE %}

View File

@@ -1 +1 @@
<!-- DEFINE $MCHAT_USE_WHITE_MESSAGE_ICONS = SOP_SKDARK_SW or FALSE -->
{% DEFINE MCHAT_USE_WHITE_MESSAGE_ICONS = SOP_SKDARK_SW | default(false) %}

View File

@@ -1,2 +1,2 @@
<!-- INCLUDECSS @dmzx_mchat/mchat.css -->
<!-- INCLUDECSS @dmzx_mchat/mchat_custom.css -->
{% INCLUDECSS '@dmzx_mchat/mchat.css' %}
{% INCLUDECSS '@dmzx_mchat/mchat_custom.css' %}

View File

@@ -1 +1 @@
<li class="li-mchat"><a href="{U_MCHAT}" title="{MCHAT_TITLE_HINT}" class="mchat-nav-link-title"><i class="icon-mchat"></i><span class="mchat-nav-link">{MCHAT_TITLE}</span></a></li>
<li class="li-mchat"><a href="{{ U_MCHAT }}" title="{{ MCHAT_TITLE_HINT }}" class="mchat-nav-link-title"><i class="icon-mchat"></i><span class="mchat-nav-link">{{ MCHAT_TITLE }}</span></a></li>

View File

@@ -12,7 +12,7 @@
// Support Opera
if (typeof document.hasFocus === 'undefined') {
document.hasFocus = function() {
return document.visibilityState == 'visible';
return document.visibilityState === 'visible';
};
}
@@ -29,7 +29,7 @@ if (!Array.prototype.min) {
}
Array.prototype.removeValue = function(value) {
var index = -1;
var index;
var elementsRemoved = 0;
while ((index = this.indexOf(value)) !== -1) {
this.splice(index, 1);
@@ -44,7 +44,7 @@ String.prototype.format = function() {
return str;
}
var type = typeof arguments[0];
var args = 'string' == type || 'number' == type ? arguments : arguments[0];
var args = 'string' === type || 'number' === type ? arguments : arguments[0];
for (var arg in args) {
if (args.hasOwnProperty(arg)) {
str = str.replace(new RegExp("\\{" + arg + "\\}", "gi"), args[arg]);
@@ -69,7 +69,7 @@ RegExp.escape = function(s) {
};
jQuery.fn.reverse = function(reverse) {
return reverse === 'undefined' || reverse ? jQuery(this.toArray().reverse()) : this;
return typeof reverse === 'undefined' || reverse ? jQuery(this.toArray().reverse()) : this;
};
function StorageWrapper(storage, prefix) {
@@ -102,6 +102,9 @@ jQuery(function($) {
$.extend(mChat, {
storage: new StorageWrapper('localStorage', mChat.cookie + 'mchat_'),
ajaxRequest: function(mode, sendHiddenFields, data) {
if (mChat.pageIsUnloading) {
return;
}
var deferred = $.Deferred();
if (sendHiddenFields) {
$.extend(data, mChat.hiddenFields);
@@ -113,7 +116,7 @@ jQuery(function($) {
type: 'POST',
dataType: 'json',
data: data,
additionalData: {
context: {
mode: mode,
deferred: deferred
}
@@ -122,7 +125,7 @@ jQuery(function($) {
},
ajaxDone: function(json, status, xhr) {
var data = {
mode: this.additionalData.mode,
mode: this.mode,
json: json,
status: status,
xhr: xhr,
@@ -130,10 +133,10 @@ jQuery(function($) {
};
$(mChat).trigger('mchat_ajax_done_before', [data]);
if (data.handle) {
if (json[this.additionalData.mode]) {
this.additionalData.deferred.resolve(data.json, data.status, data.xhr);
if (json[this.mode]) {
this.deferred.resolve(data.json, data.status, data.xhr);
} else {
this.additionalData.deferred.reject(data.xhr, data.status, mChat.lang.parserErr);
this.deferred.reject(data.xhr, data.status, mChat.lang.parserErr);
}
}
},
@@ -145,14 +148,14 @@ jQuery(function($) {
console.log('AJAX error. status: ' + textStatus + ', message: ' + errorThrown + ' (' + xhr.responseText + ')');
}
var data = {
mode: this.additionalData.mode,
mode: this.mode,
xhr: xhr,
textStatus: textStatus,
errorThrown: errorThrown,
updateSession: function() {
if (this.xhr.status == 403) {
if (this.xhr.status === 403) {
mChat.endSession(true);
} else if (this.xhr.status == 400) {
} else if (this.xhr.status === 400) {
mChat.resetSession();
}
}
@@ -219,8 +222,8 @@ jQuery(function($) {
$input.focus().val('').val(value);
}
}, 1);
phpbb.confirm(data.container.show(), function() {
if (typeof data.confirm === 'function') {
phpbb.confirm(data.container.show(), function(success) {
if (success && typeof data.confirm === 'function') {
data.confirm.apply(this, fields);
}
});
@@ -272,7 +275,7 @@ jQuery(function($) {
mChat.ajaxRequest('edit', true, {
message_id: $message.data('mchat-id'),
message: $textarea.val(),
archive: mChat.archivePage ? 1 : 0
page: mChat.page
}).done(function(json) {
mChat.updateMessages($(json.edit));
mChat.resetSession();
@@ -289,7 +292,7 @@ jQuery(function($) {
$container.find('p').text(mChat.lang.delConfirm)
];
},
confirm: function($p) {
confirm: function() {
mChat.ajaxRequest('del', true, {
message_id: delId
}).done(function() {
@@ -339,14 +342,14 @@ jQuery(function($) {
});
},
whois: function() {
if (mChat.customPage) {
if (mChat.page === 'custom') {
mChat.cached('refresh-pending').show();
mChat.cached('refresh-explain').hide();
}
mChat.ajaxRequest('whois', false, {}).done(mChat.handleWhoisResponse);
},
handleWhoisResponse: function(json) {
var $whois = $(json.whois);
var $whois = $(json.container);
var $userlist = $whois.find('#mchat-userlist');
if (mChat.storage.get('show_userlist')) {
$userlist.show();
@@ -354,7 +357,7 @@ jQuery(function($) {
mChat.cached('whois').replaceWith($whois);
mChat.cache.whois = $whois;
mChat.cache.userlist = $userlist;
if (mChat.customPage) {
if (mChat.page === 'custom') {
mChat.cached('refresh-pending').hide();
mChat.cached('refresh-explain').show();
}
@@ -533,7 +536,7 @@ jQuery(function($) {
}
},
resetSession: function() {
if (!mChat.archivePage) {
if (mChat.page !== 'archive') {
clearInterval(mChat.refreshInterval);
mChat.refreshInterval = setInterval(mChat.refresh, mChat.refreshTime);
if (mChat.timeout) {
@@ -592,12 +595,14 @@ jQuery(function($) {
var $container = $(this).closest('.mchat-message');
var username = $container.data('mchat-username');
if (mChat.allowBBCodes) {
var usercolor = $container.data('mchat-usercolor');
var profileUrl = $container.find(".mchat-message-header a[class^='username']").prop('href');
if (usercolor) {
username = '[url=' + profileUrl + '][b][color=' + usercolor + ']' + username + '[/color][/b][/url]';
} else {
username = '[url=' + profileUrl + '][b]' + username + '[/b][/url]';
if (profileUrl) {
var usercolor = $container.data('mchat-usercolor');
if (usercolor) {
username = '[url=' + profileUrl + '][b][color=' + usercolor + ']' + username + '[/color][/b][/url]';
} else {
username = '[url=' + profileUrl + '][b]' + username + '[/b][/url]';
}
}
}
insert_text(mChat.lang.mention.format({username: username}));
@@ -643,7 +648,7 @@ jQuery(function($) {
mChat.isPaused = false;
if (!mChat.archivePage) {
if (mChat.page !== 'archive') {
mChat.resetSession();
if (!mChat.messageTop) {
@@ -665,7 +670,7 @@ jQuery(function($) {
'=': '-',
'*': 'asterisk'
});
$('#format-buttons').find(bbCodeClass).remove();
mChat.cached('body').find(bbCodeClass).remove();
});
var $colourPalette = $('#colour_palette');
@@ -682,7 +687,7 @@ jQuery(function($) {
mChat.cached('form').submit(function(e){
e.preventDefault();
}).keypress(function(e) {
if ((e.which == 10 || e.which == 13) && (!mChat.isTextarea || e.ctrlKey || e.metaKey) && mChat.cached('input').is(e.target)) {
if ((e.which === 10 || e.which === 13) && (!mChat.isTextarea || e.ctrlKey || e.metaKey) && mChat.cached('input').is(e.target)) {
mChat.add();
}
});

View File

@@ -1,10 +1,10 @@
<!-- IF MCHAT_IS_ARCHIVE_PAGE or not (MCHAT_ALLOW_USE and S_BBCODE_ALLOWED) -->
<!-- INCLUDEJS {T_ASSETS_PATH}/javascript/editor.js -->
<!-- ENDIF -->
{% if MCHAT_PAGE == 'archive' or not (MCHAT_ALLOW_USE and S_BBCODE_ALLOWED) %}
{% INCLUDEJS T_ASSETS_PATH ~ '/javascript/editor.js' %}
{% endif %}
<!-- INCLUDEJS @dmzx_mchat/javascript/jquery.autogrow-textarea.js -->
<!-- INCLUDEJS @dmzx_mchat/javascript/jquery.titlealert.min.js -->
<!-- INCLUDEJS @dmzx_mchat/javascript/mchat.js -->
{% INCLUDEJS '@dmzx_mchat/javascript/jquery.autogrow-textarea.js' %}
{% INCLUDEJS '@dmzx_mchat/javascript/jquery.titlealert.min.js' %}
{% INCLUDEJS '@dmzx_mchat/javascript/mchat.js' %}
<script type="text/javascript">
// <![CDATA[
@@ -13,52 +13,50 @@
var mChat = {
// General settings
actionUrls : {
<!-- BEGIN mchaturl -->
{mchaturl.ACTION}: '{mchaturl.URL}'<!-- IF not mchaturl.IS_LAST -->,<!-- ENDIF -->
<!-- END mchaturl -->
{% for mchaturl in loops.mchaturl %}
{{ mchaturl.ACTION }}: '{{ mchaturl.URL }}'{{ loop.last ? '' : ',' }}
{% endfor %}
},
page : '{MCHAT_PAGE}',
cookie : '{A_COOKIE_NAME}',
customPage : <!-- IF MCHAT_IS_CUSTOM_PAGE -->true<!-- ELSE -->false<!-- ENDIF -->,
archivePage : <!-- IF MCHAT_IS_ARCHIVE_PAGE -->true<!-- ELSE -->false<!-- ENDIF -->,
pause : <!-- IF MCHAT_PAUSE_ON_INPUT -->true<!-- ELSE -->false<!-- ENDIF -->,
playSound : <!-- IF MCHAT_SOUND -->true<!-- ELSE -->false<!-- ENDIF -->,
messageTop : <!-- IF MCHAT_MESSAGE_TOP -->true<!-- ELSE -->false<!-- ENDIF -->,
allowBBCodes : <!-- IF S_BBCODE_ALLOWED -->true<!-- ELSE -->false<!-- ENDIF -->,
liveUpdates : <!-- IF MCHAT_LIVE_UPDATES -->true<!-- ELSE -->false<!-- ENDIF -->,
relativeTime : <!-- IF MCHAT_RELATIVE_TIME -->true<!-- ELSE -->false<!-- ENDIF -->,
showCharCount : <!-- IF MCHAT_CHARACTER_COUNT -->true<!-- ELSE -->false<!-- ENDIF -->,
page : '{{ MCHAT_PAGE | escape('js') }}',
cookie : '{{ COOKIE_NAME | escape('js') }}',
pause : {{ MCHAT_PAUSE_ON_INPUT ? 'true' : 'false' }},
playSound : {{ MCHAT_SOUND ? 'true' : 'false' }},
messageTop : {{ MCHAT_MESSAGE_TOP ? 'true' : 'false' }},
allowBBCodes : {{ S_BBCODE_ALLOWED ? 'true' : 'false' }},
liveUpdates : {{ MCHAT_LIVE_UPDATES ? 'true' : 'false' }},
relativeTime : {{ MCHAT_RELATIVE_TIME ? 'true' : 'false' }},
showCharCount : {{ MCHAT_CHARACTER_COUNT ? 'true' : 'false' }},
// Limits & timeouts
refreshTime : {MCHAT_REFRESH_JS},
whoisRefresh : {MCHAT_WHOIS_REFRESH},
timeout : {MCHAT_TIMEOUT},
mssgLngth : {MCHAT_MESSAGE_LNGTH},
editDeleteLimit : {MCHAT_EDIT_DELETE_LIMIT},
logId : {MCHAT_LOG_ID},
removeBBCodes : '{A_MCHAT_DISALLOWED_BBCODES}',
refreshTime : {{ MCHAT_REFRESH_JS }},
whoisRefresh : {{ MCHAT_WHOIS_REFRESH }},
timeout : {{ MCHAT_TIMEOUT }},
mssgLngth : {{ MCHAT_MESSAGE_LNGTH }},
editDeleteLimit : {{ MCHAT_EDIT_DELETE_LIMIT }},
logId : {{ MCHAT_LOG_ID }},
removeBBCodes : '{{ MCHAT_DISALLOWED_BBCODES | escape('js') }}',
// Language
lang: {
minutesAgo : {
<!-- BEGIN mchattime -->
{mchattime.KEY}: '{mchattime.A_LANG}'<!-- IF not mchattime.IS_LAST -->,<!-- ENDIF -->
<!-- END mchattime -->
{% for minute in 0..MCHAT_MINUTES_AGO_LIMIT-1 %}
{{ minute }}: '{{ lang('MCHAT_MINUTES_AGO', minute) | escape('js') }}'{{ loop.last ? '' : ',' }}
{% endfor %}
},
err : '{LA_ERROR}',
parserErr : '{LA_AJAX_ERROR_TEXT_PARSERERROR}',
newMessageAlert : '{LA_MCHAT_NEW_CHAT}',
noMessageInput : '{LA_MCHAT_NOMESSAGEINPUT}',
editInfo : '{LA_MCHAT_EDITINFO}',
delConfirm : '{LA_MCHAT_DELCONFIRM}',
sessOut : '{LA_MCHAT_SESSION_OUT}',
sessEnds : '{LA_MCHAT_SESSION_ENDS_JS}',
mention : '{LA_MCHAT_MENTION}',
refreshYes : '{A_MCHAT_REFRESH_YES}',
refreshNo : '{LA_MCHAT_REFRESH_NO}',
charCount : '<!-- IF MCHAT_MESSAGE_LNGTH -->{LA_MCHAT_CHARACTER_COUNT_LIMIT}<!-- ELSE -->{LA_MCHAT_CHARACTER_COUNT}<!-- ENDIF -->',
mssgLngthLong : '{A_MCHAT_MESS_LONG}',
likes : '{LA_MCHAT_LIKES}'
err : '{{ lang('ERROR') | escape('js') }}',
parserErr : '{{ lang('AJAX_ERROR_TEXT_PARSERERROR') | escape('js') }}',
newMessageAlert : '{{ lang('MCHAT_NEW_CHAT') | escape('js') }}',
noMessageInput : '{{ lang('MCHAT_NOMESSAGEINPUT') | escape('js') }}',
editInfo : '{{ lang('MCHAT_EDITINFO') | escape('js') }}',
delConfirm : '{{ lang('MCHAT_DELCONFIRM') | escape('js') }}',
sessOut : '{{ lang('MCHAT_SESSION_OUT') | escape('js') }}',
sessEnds : '{{ lang('MCHAT_SESSION_ENDS_JS') | escape('js') }}',
mention : '{{ lang('MCHAT_MENTION') | escape('js') }}',
refreshYes : '{{ lang('MCHAT_REFRESH_YES', MCHAT_REFRESH_RATE) | escape('js') }}',
refreshNo : '{{ lang('MCHAT_REFRESH_NO') | escape('js') }}',
charCount : '{{ lang(MCHAT_MESSAGE_LNGTH ? 'MCHAT_CHARACTER_COUNT_LIMIT' : 'MCHAT_CHARACTER_COUNT') | escape('js') }}',
mssgLngthLong : '{{ lang('MCHAT_MESS_LONG', MCHAT_MAX_MESSAGE_LENGTH) | escape('js') }}',
likes : '{{ lang('MCHAT_LIKES') | escape('js') }}'
}
};
// ]]>

View File

@@ -1,2 +1,2 @@
<!-- INCLUDECSS @dmzx_mchat/mchat.css -->
<!-- INCLUDECSS @dmzx_mchat/mchat_custom.css -->
{% INCLUDECSS '@dmzx_mchat/mchat.css' %}
{% INCLUDECSS '@dmzx_mchat/mchat_custom.css' %}

View File

@@ -1 +1 @@
<li class="tab mchat" data-select-match="mchat" data-responsive-class="tab small-icon icon-mchat"><a class="nav-link" href="{U_MCHAT}" title="{MCHAT_TITLE_HINT}" class="mchat-nav-link mchat-nav-link-title" role="menuitem">{MCHAT_TITLE}</a></li>
<li class="tab mchat" data-select-match="mchat" data-responsive-class="tab small-icon icon-mchat"><a class="nav-link" href="{{ U_MCHAT }}" title="{{ MCHAT_TITLE_HINT }}" class="mchat-nav-link mchat-nav-link-title" role="menuitem">{{ MCHAT_TITLE }}</a></li>

View File

@@ -1 +1 @@
<!-- DEFINE $MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE -->
{% DEFINE MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE %}

View File

@@ -1,2 +1,2 @@
<!-- INCLUDECSS @dmzx_mchat/mchat.css -->
<!-- INCLUDECSS @dmzx_mchat/mchat_custom.css -->
{% INCLUDECSS '@dmzx_mchat/mchat.css' %}
{% INCLUDECSS '@dmzx_mchat/mchat_custom.css' %}

View File

@@ -1 +1 @@
<li class="tab mchat" data-select-match="mchat" data-responsive-class="tab small-icon icon-mchat"><a class="nav-link" href="{U_MCHAT}" title="{MCHAT_TITLE_HINT}" class="mchat-nav-link mchat-nav-link-title" role="menuitem">{MCHAT_TITLE}</a></li>
<li class="tab mchat" data-select-match="mchat" data-responsive-class="tab small-icon icon-mchat"><a class="nav-link" href="{{ U_MCHAT }}" title="{{ MCHAT_TITLE_HINT }}" class="mchat-nav-link mchat-nav-link-title" role="menuitem">{{ MCHAT_TITLE }}</a></li>

View File

@@ -1 +1 @@
<!-- DEFINE $MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE -->
{% DEFINE MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE %}

View File

@@ -1 +1 @@
<!-- DEFINE $MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE -->
{% DEFINE MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE %}

View File

@@ -1,3 +1,3 @@
<!-- IF MCHAT_INDEX and MCHAT_LOCATION -->
<!-- INCLUDE @dmzx_mchat/mchat_body.html -->
<!-- ENDIF -->
{% if MCHAT_INDEX and MCHAT_LOCATION %}
{% INCLUDE '@dmzx_mchat/mchat_body.html' %}
{% endif %}

View File

@@ -1,3 +1,3 @@
<!-- IF MCHAT_ALLOW_USE -->
{% if MCHAT_ALLOW_USE %}
<script>$.sceditor = false;</script>
<!-- ENDIF -->
{% endif %}

View File

@@ -1,2 +1,2 @@
<!-- INCLUDECSS @dmzx_mchat/mchat.css -->
<!-- INCLUDECSS @dmzx_mchat/mchat_custom.css -->
{% INCLUDECSS '@dmzx_mchat/mchat.css' %}
{% INCLUDECSS '@dmzx_mchat/mchat_custom.css' %}

View File

@@ -1 +1 @@
<!-- DEFINE $MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE -->
{% DEFINE MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE %}

View File

@@ -1 +1 @@
<!-- DEFINE $MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE -->
{% DEFINE MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE %}

View File

@@ -1 +1 @@
<!-- DEFINE $MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE -->
{% DEFINE MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE %}

View File

@@ -0,0 +1 @@
{% INCLUDEJS '@dmzx_mchat/javascript/mchat.collapse.js' %}

View File

@@ -1,2 +1,2 @@
<!-- INCLUDECSS @dmzx_mchat/mchat.css -->
<!-- INCLUDECSS @dmzx_mchat/mchat_custom.css -->
{% INCLUDECSS '@dmzx_mchat/mchat.css' %}
{% INCLUDECSS '@dmzx_mchat/mchat_custom.css' %}

View File

@@ -0,0 +1,49 @@
/**
*
* @package phpBB Extension - mChat
* @copyright (c) 2017 kasimi - https://kasimi.net
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
jQuery(function($) {
"use strict";
// Most code below copied from elegance/template/forum_fn.js for phpBB 3.2.1
var $this = $('.mchat-wrapper li.header'),
forum = $this.parent().next('#mchat-body'),
id = 'mchat',
toggled = false,
toggle;
// Add toggle code
$this.append('<a class="forum-toggle" href="#"></a>');
toggle = $this.find('.forum-toggle');
toggle.click(function(event) {
event.preventDefault();
$(mChat).trigger('mchat_collapse_toggle_before', [{collapsed: !toggle}]);
if (toggled) {
forum.stop(true, true).slideDown(200);
toggled = false;
toggle.removeClass('toggled');
phpbb.deleteCookie('toggled-' + id, styleConfig.cookieConfig);
$(mChat).trigger('mchat_collapse_toggle_after', [{collapsed: toggle}]);
return;
}
forum.stop(true, true).slideUp(200);
toggled = true;
toggle.addClass('toggled');
phpbb.setCookie('toggled-' + id, '1', styleConfig.cookieConfig);
$(mChat).trigger('mchat_collapse_toggle_after', [{collapsed: toggle}]);
});
// Check default state
if (phpbb.getCookie('toggled-' + id, styleConfig.cookieConfig) == '1') {
forum.stop(true, true).slideUp(0);
toggled = true;
toggle.addClass('toggled');
}
});

View File

@@ -1 +1 @@
<li class="tab mchat" data-select-match="mchat" data-responsive-class="tab small-icon icon-mchat"><a class="nav-link" href="{U_MCHAT}" title="{MCHAT_TITLE_HINT}" class="mchat-nav-link mchat-nav-link-title" role="menuitem">{MCHAT_TITLE}</a></li>
<li class="tab mchat" data-select-match="mchat" data-responsive-class="tab small-icon icon-mchat"><a class="nav-link" href="{{ U_MCHAT }}" title="{{ MCHAT_TITLE_HINT }}" class="mchat-nav-link mchat-nav-link-title" role="menuitem">{{ MCHAT_TITLE }}</a></li>

View File

@@ -1 +1 @@
<!-- DEFINE $MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE -->
{% DEFINE MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE %}

View File

@@ -1,2 +1,2 @@
<!-- INCLUDECSS @dmzx_mchat/mchat.css -->
<!-- INCLUDECSS @dmzx_mchat/mchat_custom.css -->
{% INCLUDECSS '@dmzx_mchat/mchat.css' %}
{% INCLUDECSS '@dmzx_mchat/mchat_custom.css' %}

View File

@@ -1 +1 @@
<li class="tab mchat" data-select-match="mchat" data-responsive-class="tab small-icon icon-mchat"><a class="nav-link" href="{U_MCHAT}" title="{MCHAT_TITLE_HINT}" class="mchat-nav-link mchat-nav-link-title" role="menuitem">{MCHAT_TITLE}</a></li>
<li class="tab mchat" data-select-match="mchat" data-responsive-class="tab small-icon icon-mchat"><a class="nav-link" href="{{ U_MCHAT }}" title="{{ MCHAT_TITLE_HINT }}" class="mchat-nav-link mchat-nav-link-title" role="menuitem">{{ MCHAT_TITLE }}</a></li>

View File

@@ -1 +1 @@
<!-- DEFINE $MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE -->
{% DEFINE MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE %}

View File

@@ -1,2 +1,2 @@
<!-- INCLUDECSS @dmzx_mchat/mchat.css -->
<!-- INCLUDECSS @dmzx_mchat/mchat_custom.css -->
{% INCLUDECSS '@dmzx_mchat/mchat.css' %}
{% INCLUDECSS '@dmzx_mchat/mchat_custom.css' %}

View File

@@ -1 +1 @@
<li class="small-icon icon-mchat" data-last-responsive="true"><a href="{U_MCHAT}" title="{MCHAT_TITLE_HINT}" class="mchat-nav-link-title" role="menuitem"><span class="mchat-nav-link">{MCHAT_TITLE}</span></a></li>
<li class="small-icon icon-mchat" data-last-responsive="true"><a href="{{ U_MCHAT }}" title="{{ MCHAT_TITLE_HINT }}" class="mchat-nav-link-title" role="menuitem"><span class="mchat-nav-link">{{ MCHAT_TITLE }}</span></a></li>

View File

@@ -1 +1 @@
<!-- DEFINE $MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE -->
{% DEFINE MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE %}

View File

@@ -1 +1 @@
<!-- DEFINE $MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE -->
{% DEFINE MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE %}

View File

@@ -1 +1 @@
<!-- DEFINE $MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE -->
{% DEFINE MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE %}

View File

@@ -1,3 +1,3 @@
<!-- IF MCHAT_INDEX and MCHAT_LOCATION -->
<!-- INCLUDE @dmzx_mchat/mchat_body.html -->
<!-- ENDIF -->
{% if MCHAT_INDEX and MCHAT_LOCATION %}
{% INCLUDE '@dmzx_mchat/mchat_body.html' %}
{% endif %}

View File

@@ -1,2 +1,2 @@
<!-- INCLUDECSS @dmzx_mchat/mchat.css -->
<!-- INCLUDECSS @dmzx_mchat/mchat_custom.css -->
{% INCLUDECSS '@dmzx_mchat/mchat.css' %}
{% INCLUDECSS '@dmzx_mchat/mchat_custom.css' %}

View File

@@ -1,3 +1,11 @@
<div class="collapse-box">
<h2><!-- IF MCHAT_IS_ARCHIVE_PAGE -->{L_MCHAT_ARCHIVE_PAGE}<!-- ELSEIF MCHAT_CUSTOM_PAGE --><a href="{U_MCHAT_CUSTOM_PAGE}" title="{L_MCHAT_TITLE}">{L_MCHAT_TITLE}</a><!-- ELSE -->{L_MCHAT_TITLE}<!-- ENDIF --></h2>
<h2>
{% if MCHAT_PAGE == 'archive' %}
{{ lang('MCHAT_ARCHIVE_PAGE') }}
{% elseif MCHAT_CUSTOM_PAGE %}
<a href="{{ U_MCHAT_CUSTOM_PAGE }}" title="{{ lang('MCHAT_TITLE') }}">{{ lang('MCHAT_TITLE') }}</a>
{% else %}
{{ lang('MCHAT_TITLE') }}
{% endif %}
</h2>
</div>

View File

@@ -1 +1 @@
<li class="small-icon icon-mchat"><a href="{U_MCHAT}" title="{MCHAT_TITLE_HINT}" class="mchat-nav-link mchat-nav-link-title" role="menuitem">{MCHAT_TITLE}</a></li>
<li class="small-icon icon-mchat"><a href="{{ U_MCHAT }}" title="{{ MCHAT_TITLE_HINT }}" class="mchat-nav-link mchat-nav-link-title" role="menuitem">{{ MCHAT_TITLE }}</a></li>

View File

@@ -1 +1 @@
<!-- DEFINE $MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE -->
{% DEFINE MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE %}

View File

@@ -1,2 +1,2 @@
<!-- INCLUDECSS @dmzx_mchat/mchat.css -->
<!-- INCLUDECSS @dmzx_mchat/mchat_custom.css -->
{% INCLUDECSS '@dmzx_mchat/mchat.css' %}
{% INCLUDECSS '@dmzx_mchat/mchat_custom.css' %}

View File

@@ -1,3 +1,11 @@
<div class="collapse-box">
<h2><!-- IF MCHAT_IS_ARCHIVE_PAGE -->{L_MCHAT_ARCHIVE_PAGE}<!-- ELSEIF MCHAT_CUSTOM_PAGE --><a href="{U_MCHAT_CUSTOM_PAGE}" title="{L_MCHAT_TITLE}">{L_MCHAT_TITLE}</a><!-- ELSE -->{L_MCHAT_TITLE}<!-- ENDIF --></h2>
<h2>
{% if MCHAT_PAGE == 'archive' %}
{{ lang('MCHAT_ARCHIVE_PAGE') }}
{% elseif MCHAT_CUSTOM_PAGE %}
<a href="{{ U_MCHAT_CUSTOM_PAGE }}" title="{{ lang('MCHAT_TITLE') }}">{{ lang('MCHAT_TITLE') }}</a>
{% else %}
{{ lang('MCHAT_TITLE') }}
{% endif %}
</h2>
</div>

View File

@@ -1 +1 @@
<li class="small-icon icon-mchat"><a href="{U_MCHAT}" title="{MCHAT_TITLE_HINT}" class="mchat-nav-link mchat-nav-link-title" role="menuitem">{MCHAT_TITLE}</a></li>
<li class="small-icon icon-mchat"><a href="{{ U_MCHAT }}" title="{{ MCHAT_TITLE_HINT }}" class="mchat-nav-link mchat-nav-link-title" role="menuitem">{{ MCHAT_TITLE }}</a></li>

View File

@@ -1 +1 @@
<!-- DEFINE $MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE -->
{% DEFINE MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE %}

View File

@@ -1 +1 @@
<!-- DEFINE $MCHAT_USE_WHITE_MESSAGE_ICONS = FALSE -->
{% DEFINE MCHAT_USE_WHITE_MESSAGE_ICONS = FALSE %}

View File

@@ -1,7 +1,7 @@
<!-- IF MCHAT_STATS_INDEX -->
{% if MCHAT_STATS_INDEX %}
</p>
</div>
<div class="stat-block online-list mchat-stats-index">
<h3><a href="<!-- IF MCHAT_CUSTOM_PAGE and not MCHAT_INDEX -->{U_MCHAT}<!-- ENDIF -->#mChat">{L_MCHAT_WHO_IS_CHATTING}</a></h3>
<p>{MCHAT_USERS_TOTAL} {MCHAT_ONLINE_EXPLAIN}<br />{MCHAT_USERS_LIST}
<!-- ENDIF -->
<h3><a href="{% if MCHAT_CUSTOM_PAGE and not MCHAT_INDEX %}{{ U_MCHAT }}{% endif %}#mChat">{{ lang('MCHAT_WHO_IS_CHATTING') }}</a></h3>
<p>{{ MCHAT_USERS_TOTAL }} {{ MCHAT_ONLINE_EXPLAIN }}<br />{{ MCHAT_USERS_LIST }}
{% endif %}

View File

@@ -1,3 +1,3 @@
<!-- IF MCHAT_INDEX and not MCHAT_LOCATION -->
<!-- INCLUDE @dmzx_mchat/mchat_body.html -->
<!-- ENDIF -->
{% if MCHAT_INDEX and not MCHAT_LOCATION %}
{% INCLUDE '@dmzx_mchat/mchat_body.html' %}
{% endif %}

View File

@@ -1,3 +1,3 @@
<!-- IF MCHAT_INDEX and MCHAT_LOCATION -->
<!-- INCLUDE @dmzx_mchat/mchat_body.html -->
<!-- ENDIF -->
{% if MCHAT_INDEX and MCHAT_LOCATION %}
{% INCLUDE '@dmzx_mchat/mchat_body.html' %}
{% endif %}

View File

@@ -1,4 +1,4 @@
<!-- IF MCHAT_IS_INDEX or MCHAT_IS_ARCHIVE_PAGE or MCHAT_IS_CUSTOM_PAGE -->
{% if MCHAT_PAGE %}
<br />
<span>{MCHAT_DISPLAY_NAME} &copy; {L_POST_BY_AUTHOR} {MCHAT_AUTHOR_HOMEPAGES}</span>
<!-- ENDIF -->
<span>{{ MCHAT_DISPLAY_NAME }} &copy; {{ lang('POST_BY_AUTHOR') }} {{ MCHAT_AUTHOR_HOMEPAGES }}</span>
{% endif %}

View File

@@ -1 +1 @@
<!-- INCLUDECSS @dmzx_mchat/mchat.css -->
{% INCLUDECSS '@dmzx_mchat/mchat.css' %}

View File

@@ -1,3 +1,3 @@
<!-- IF MCHAT_CUSTOM_PAGE and MCHAT_NAVBAR_LINK -->
<!-- INCLUDE @dmzx_mchat/mchat_navlink.html -->
<!-- ENDIF -->
{% if MCHAT_CUSTOM_PAGE and MCHAT_NAVBAR_LINK %}
{% INCLUDE '@dmzx_mchat/mchat_navlink.html' %}
{% endif %}

View File

@@ -1,7 +1,7 @@
<!-- IF (MCHAT_CUSTOM_HEIGHT or MCHAT_INDEX_HEIGHT) and not MCHAT_IS_ARCHIVE_PAGE -->
{% if (MCHAT_CUSTOM_HEIGHT or MCHAT_INDEX_HEIGHT) and MCHAT_PAGE != 'archive' %}
<style>
#mchat-messages {
height: <!-- IF MCHAT_IS_CUSTOM_PAGE -->{MCHAT_CUSTOM_HEIGHT}<!-- ELSE -->{MCHAT_INDEX_HEIGHT}<!-- ENDIF -->px;
height: {{ MCHAT_PAGE == 'custom' ? MCHAT_CUSTOM_HEIGHT : MCHAT_INDEX_HEIGHT }}px;
}
</style>
<!-- ENDIF -->
{% endif %}

View File

@@ -1,142 +1,142 @@
<!-- IF MCHAT_IS_ARCHIVE_PAGE or MCHAT_IS_CUSTOM_PAGE -->
<!-- INCLUDE overall_header.html -->
<!-- ENDIF -->
{% if MCHAT_PAGE in ['custom', 'archive'] %}
{% INCLUDE 'overall_header.html' %}
{% endif %}
<!-- EVENT dmzx_mchat_overall_header_after -->
{% EVENT dmzx_mchat_overall_header_after %}
<!-- EVENT dmzx_mchat_header_before -->
{% EVENT dmzx_mchat_header_before %}
<!-- IF MCHAT_IS_CUSTOM_PAGE -->
<h2>{L_MCHAT_CUSTOM_PAGE}</h2>
<!-- ELSEIF MCHAT_IS_ARCHIVE_PAGE -->
<h2>{L_MCHAT_ARCHIVE_PAGE}</h2>
<!-- ENDIF -->
{% if MCHAT_PAGE == 'custom' %}
<h2>{{ lang('MCHAT_CUSTOM_PAGE') }}</h2>
{% elseif MCHAT_PAGE == 'archive' %}
<h2>{{ lang('MCHAT_ARCHIVE_PAGE') }}</h2>
{% endif %}
<!-- EVENT dmzx_mchat_header_after -->
{% EVENT dmzx_mchat_header_after %}
<!-- INCLUDE @dmzx_mchat/mchat_script_data.html -->
{% INCLUDE '@dmzx_mchat/mchat_script_data.html' %}
<!-- IF MCHAT_IS_ARCHIVE_PAGE and (.pagination or MCHAT_TOTAL_MESSAGES) -->
{% if MCHAT_PAGE == 'archive' and (loops.pagination|length or MCHAT_TOTAL_MESSAGES) %}
<div class="action-bar bar-top">
<!-- EVENT dmzx_mchat_action_bar_top_before -->
{% EVENT dmzx_mchat_action_bar_top_before %}
<div class="pagination">
{MCHAT_TOTAL_MESSAGES}
<!-- IF .pagination -->
<!-- INCLUDE pagination.html -->
<!-- ELSE -->
&bull; {PAGE_NUMBER}
<!-- ENDIF -->
{{ MCHAT_TOTAL_MESSAGES }}
{% if loops.pagination|length %}
{% INCLUDE 'pagination.html' %}
{% else %}
&bull; {{ PAGE_NUMBER }}
{% endif %}
</div>
<!-- EVENT dmzx_mchat_action_bar_top_after -->
{% EVENT dmzx_mchat_action_bar_top_after %}
</div>
<!-- ENDIF -->
{% endif %}
<!-- EVENT dmzx_mchat_before -->
{% EVENT dmzx_mchat_before %}
<!-- IF MCHAT_IS_COLLAPSIBLE -->
<a class="category<!-- IF S_MCHAT_HIDDEN --> hidden-category<!-- ENDIF --> mchat-category"></a>
<!-- ENDIF -->
{% if MCHAT_IS_COLLAPSIBLE %}
<a class="category{% if S_MCHAT_HIDDEN %} hidden-category{% endif %} mchat-category"></a>
{% endif %}
<div class="forabg mchat-wrapper">
<a id="mChat"></a>
<div class="inner">
<ul class="topiclist">
<li class="header">
<!-- INCLUDE @dmzx_mchat/mchat_header.html -->
<!-- IF MCHAT_IS_COLLAPSIBLE -->
<a href="{U_MCHAT_COLLAPSE_URL}"
class="collapse-btn collapse-<!-- IF S_MCHAT_HIDDEN -->show<!-- ELSE -->hide<!-- ENDIF --> mchat-collapse"
data-hidden="{S_MCHAT_HIDDEN}"
{% INCLUDE '@dmzx_mchat/mchat_header.html' %}
{% if MCHAT_IS_COLLAPSIBLE %}
<a href="{{ U_MCHAT_COLLAPSE_URL }}"
class="collapse-btn collapse-{{ S_MCHAT_HIDDEN ? 'show' : 'hide' }} mchat-collapse"
data-hidden="{{ S_MCHAT_HIDDEN }}"
data-ajax="phpbb_collapse"
data-overlay="true"
title="{L_MCHAT_COLLAPSE_TITLE}"></a>
<!-- ENDIF -->
title="{{ lang('MCHAT_COLLAPSE_TITLE') }}"></a>
{% endif %}
</li>
</ul>
<!-- EVENT dmzx_mchat_body_before -->
{% EVENT dmzx_mchat_body_before %}
<div id="mchat-body"<!-- IF MCHAT_IS_COLLAPSIBLE --> class="collapsible"<!-- ENDIF -->>
<!-- IF not MCHAT_SOUND_DISABLED -->
<audio id="mchat-sound-add" class="hidden" src="{EXT_URL}sounds/add.mp3" preload="auto"></audio>
<audio id="mchat-sound-edit" class="hidden" src="{EXT_URL}sounds/edit.mp3" preload="auto"></audio>
<audio id="mchat-sound-del" class="hidden" src="{EXT_URL}sounds/del.mp3" preload="auto"></audio>
<audio id="mchat-sound-error" class="hidden" src="{EXT_URL}sounds/error.mp3" preload="auto"></audio>
<!-- ENDIF -->
<div id="mchat-body"{% if MCHAT_IS_COLLAPSIBLE %} class="collapsible"{% endif %}>
{% if not MCHAT_SOUND_DISABLED %}
<audio id="mchat-sound-add" class="hidden" src="{{ EXT_URL }}sounds/add.mp3" preload="auto"></audio>
<audio id="mchat-sound-edit" class="hidden" src="{{ EXT_URL }}sounds/edit.mp3" preload="auto"></audio>
<audio id="mchat-sound-del" class="hidden" src="{{ EXT_URL }}sounds/del.mp3" preload="auto"></audio>
<audio id="mchat-sound-error" class="hidden" src="{{ EXT_URL }}sounds/error.mp3" preload="auto"></audio>
{% endif %}
<div id="mchat-confirm" class="hidden">
<h3>{L_CONFIRM}</h3>
<h3>{{ lang('CONFIRM') }}</h3>
<div class="mchat-confirm-fields">
<p></p>
<textarea></textarea>
</div>
<fieldset class="submit-buttons">
<input type="button" name="confirm" value="{L_MCHAT_OK}" class="button2" />&nbsp;
<input type="button" name="cancel" value="{L_CANCEL}" class="button2" />
<input type="button" name="confirm" value="{{ lang('MCHAT_OK') }}" class="button2" />&nbsp;
<input type="button" name="cancel" value="{{ lang('CANCEL') }}" class="button2" />
</fieldset>
</div>
<div id="mchat-main"<!-- IF MCHAT_MESSAGE_TOP --> class="mchat-messages-top"<!-- ENDIF -->>
<!-- IF MCHAT_STATIC_MESS and not MCHAT_IS_ARCHIVE_PAGE -->
<div id="mchat-main"{% if MCHAT_MESSAGE_TOP %} class="mchat-messages-top"{% endif %}>
{% if MCHAT_STATIC_MESS and MCHAT_PAGE != 'archive' %}
<ul class="topiclist forums">
<li class="row mchat-static">{MCHAT_STATIC_MESS}</li>
<li class="row mchat-static">{{ MCHAT_STATIC_MESS }}</li>
</ul>
<!-- ENDIF -->
{% endif %}
<!-- EVENT dmzx_mchat_messages_container_before -->
{% EVENT dmzx_mchat_messages_container_before %}
<ul id="mchat-messages" class="topiclist forums">
<!-- IF .mchatrow -->
<!-- INCLUDE @dmzx_mchat/mchat_messages.html -->
<!-- ELSE -->
<li class="row mchat-static mchat-no-messages">{L_MCHAT_NOMESSAGE}</li>
<!-- ENDIF -->
{% if loops.mchatrow|length %}
{% INCLUDE '@dmzx_mchat/mchat_messages.html' %}
{% else %}
<li class="row mchat-static mchat-no-messages">{{ lang('MCHAT_NOMESSAGE') }}</li>
{% endif %}
</ul>
<!-- EVENT dmzx_mchat_messages_container_after -->
{% EVENT dmzx_mchat_messages_container_after %}
</div>
<!-- INCLUDE @dmzx_mchat/mchat_panel.html -->
{% INCLUDE '@dmzx_mchat/mchat_panel.html' %}
</div>
<!-- EVENT dmzx_mchat_body_after -->
{% EVENT dmzx_mchat_body_after %}
</div>
</div>
<!-- EVENT dmzx_mchat_after -->
{% EVENT dmzx_mchat_after %}
<!-- IF MCHAT_IS_ARCHIVE_PAGE -->
{% if MCHAT_PAGE == 'archive' %}
<div class="action-bar bottom">
<!-- EVENT dmzx_mchat_action_bar_bottom_before -->
{% EVENT dmzx_mchat_action_bar_bottom_before %}
<div class="pagination">
{MCHAT_TOTAL_MESSAGES}
<!-- IF .pagination -->
<!-- INCLUDE pagination.html -->
<!-- ELSE -->
&bull; {PAGE_NUMBER}
<!-- ENDIF -->
{{ MCHAT_TOTAL_MESSAGES }}
{% if loops.pagination|length %}
{% INCLUDE 'pagination.html' %}
{% else %}
&bull; {{ PAGE_NUMBER }}
{% endif %}
</div>
<!-- EVENT dmzx_mchat_action_bar_top_after -->
{% EVENT dmzx_mchat_action_bar_top_after %}
</div>
<!-- ENDIF -->
{% endif %}
<!-- IF MCHAT_IS_CUSTOM_PAGE and MCHAT_WHOIS_REFRESH -->
<h3>{L_MCHAT_WHO_IS_CHATTING}</h3>
<!-- INCLUDE @dmzx_mchat/mchat_whois.html -->
{% if MCHAT_PAGE == 'custom' and MCHAT_WHOIS_REFRESH %}
<h3>{{ lang('MCHAT_WHO_IS_CHATTING') }}</h3>
{% INCLUDE '@dmzx_mchat/mchat_whois.html' %}
<div id="mchat-refresh">
<span id="mchat-refresh-explain">{MCHAT_WHOIS_REFRESH_EXPLAIN}</span>
<span id="mchat-refresh-pending" class="hidden">{L_MCHAT_REFRESHING}</span>
<span id="mchat-refresh-explain">{{ lang('MCHAT_WHO_IS_REFRESH_EXPLAIN', MCHAT_WHOIS_REFRESH / 1000) }}</span>
<span id="mchat-refresh-pending" class="hidden">{{ lang('MCHAT_REFRESHING') }}</span>
</div>
<!-- ENDIF -->
{% endif %}
<!-- IF (MCHAT_IS_CUSTOM_PAGE or MCHAT_IS_ARCHIVE_PAGE) and LEGEND -->
{% if MCHAT_PAGE in ['custom', 'archive'] and LEGEND %}
<div id="mchat-legend">
<em>{L_LEGEND}{L_COLON} {LEGEND}</em>
<em>{{ lang('LEGEND') ~ lang('COLON') }} {{ LEGEND }}</em>
</div>
<!-- ENDIF -->
{% endif %}
<!-- EVENT dmzx_mchat_overall_footer_before -->
{% EVENT dmzx_mchat_overall_footer_before %}
<!-- IF MCHAT_IS_ARCHIVE_PAGE or MCHAT_IS_CUSTOM_PAGE -->
<!-- INCLUDE overall_footer.html -->
<!-- ENDIF -->
{% if MCHAT_PAGE in ['custom', 'archive'] %}
{% INCLUDE 'overall_footer.html' %}
{% endif %}

View File

@@ -1,4 +1,12 @@
<dl class="row-item">
<dt><!-- IF MCHAT_IS_ARCHIVE_PAGE -->{L_MCHAT_ARCHIVE_PAGE}<!-- ELSEIF MCHAT_CUSTOM_PAGE --><a href="{U_MCHAT_CUSTOM_PAGE}" title="{L_MCHAT_TITLE}">{L_MCHAT_TITLE}</a><!-- ELSE -->{L_MCHAT_TITLE}<!-- ENDIF --></dt>
<dt>
{% if MCHAT_PAGE == 'archive' %}
{{ lang('MCHAT_ARCHIVE_PAGE') }}
{% elseif MCHAT_CUSTOM_PAGE %}
<a href="{{ U_MCHAT_CUSTOM_PAGE }}" title="{{ lang('MCHAT_TITLE') }}">{{ lang('MCHAT_TITLE') }}</a>
{% else %}
{{ lang('MCHAT_TITLE') }}
{% endif %}
</dt>
<dd></dd>
</dl>

View File

@@ -1,29 +1,29 @@
<!-- EVENT dmzx_mchat_messages_before -->
<!-- EVENT dmzx_mchat_messages_define_icons -->
{% EVENT dmzx_mchat_messages_before %}
{% EVENT dmzx_mchat_messages_define_icons %}
<!-- BEGIN mchatrow -->
<li id="mchat-message-{mchatrow.MCHAT_MESSAGE_ID}" class="row mchat-message<!-- IF mchatrow.MCHAT_IS_NOTIFICATION --> mchat-notification-message<!-- ENDIF -->" data-mchat-id="{mchatrow.MCHAT_MESSAGE_ID}" data-mchat-username="{mchatrow.MCHAT_USERNAME}"<!-- IF mchatrow.MCHAT_USERNAME_COLOR --> data-mchat-usercolor="{mchatrow.MCHAT_USERNAME_COLOR}"<!-- ENDIF --> data-mchat-message="{mchatrow.MCHAT_MESSAGE_EDIT}" data-mchat-message-time="{mchatrow.MCHAT_MESSAGE_TIME}"<!-- IF MCHAT_EDIT_DELETE_LIMIT and not MCHAT_EDIT_DELETE_IGNORE and (mchatrow.MCHAT_ALLOW_EDIT or mchatrow.MCHAT_ALLOW_DEL) --> data-mchat-edit-delete-limit="1"<!-- ENDIF --> <!-- EVENT dmzx_mchat_message_attributes -->>
<!-- IF S_MCHAT_AVATARS -->
{% for mchatrow in loops.mchatrow %}
<li id="mchat-message-{{ mchatrow.MCHAT_MESSAGE_ID }}" class="row mchat-message{% if mchatrow.MCHAT_IS_NOTIFICATION %} mchat-notification-message{% endif %}" data-mchat-id="{{ mchatrow.MCHAT_MESSAGE_ID }}" data-mchat-username="{{ mchatrow.MCHAT_USERNAME }}"{% if mchatrow.MCHAT_USERNAME_COLOR %} data-mchat-usercolor="{{ mchatrow.MCHAT_USERNAME_COLOR }}"{% endif %} data-mchat-message="{{ mchatrow.MCHAT_MESSAGE_EDIT }}" data-mchat-message-time="{{ mchatrow.MCHAT_MESSAGE_TIME }}"{% if MCHAT_EDIT_DELETE_LIMIT and not MCHAT_EDIT_DELETE_IGNORE and (mchatrow.MCHAT_ALLOW_EDIT or mchatrow.MCHAT_ALLOW_DEL) %} data-mchat-edit-delete-limit="1"{% endif %} {% EVENT dmzx_mchat_message_attributes %}>
{% if S_MCHAT_AVATARS %}
<div class="mchat-avatar">
<!-- IF mchatrow.U_VIEWPROFILE --><a href="{mchatrow.U_VIEWPROFILE}" title="{L_READ_PROFILE}"><!-- ENDIF -->
<!-- IF mchatrow.MCHAT_USER_AVATAR -->{mchatrow.MCHAT_USER_AVATAR}<!-- ELSE --><img src="{STYLE_PATH}/theme/images/no_avatar.gif" class="mchat-avatar" alt="{L_READ_PROFILE}" /><!-- ENDIF -->
<!-- IF mchatrow.U_VIEWPROFILE --></a><!-- ENDIF -->
{% if mchatrow.U_VIEWPROFILE %}<a href="{{ mchatrow.U_VIEWPROFILE }}" title="{{ lang('READ_PROFILE') }}">{% endif %}
{% if mchatrow.MCHAT_USER_AVATAR %}{{ mchatrow.MCHAT_USER_AVATAR }}{% else %}<img src="{{ STYLE_PATH }}/theme/images/no_avatar.gif" class="mchat-avatar" alt="{{ lang('READ_PROFILE') }}" />{% endif %}
{% if mchatrow.U_VIEWPROFILE %}</a>{% endif %}
</div>
<!-- ENDIF -->
{% endif %}
<div class="mchat-message-wrapper">
<!-- INCLUDE @dmzx_mchat/mchat_messages_icons.html -->
{% INCLUDE '@dmzx_mchat/mchat_messages_icons.html' %}
<div class="mchat-message-header">
<!-- EVENT dmzx_mchat_messages_header_before -->
{mchatrow.MCHAT_USERNAME_FULL} &bull; <span class="mchat-time" title="{mchatrow.MCHAT_DATETIME}"<!-- IF mchatrow.MCHAT_MINUTES_AGO != -1 --> data-mchat-minutes-ago="{mchatrow.MCHAT_MINUTES_AGO}" data-mchat-relative-update="{mchatrow.MCHAT_RELATIVE_UPDATE}"<!-- ENDIF -->>{mchatrow.MCHAT_TIME}</span>
<!-- EVENT dmzx_mchat_messages_header_after -->
{% EVENT dmzx_mchat_messages_header_before %}
{{ mchatrow.MCHAT_USERNAME_FULL }} &bull; <span class="mchat-time" title="{{ mchatrow.MCHAT_DATETIME }}"{% if mchatrow.MCHAT_MINUTES_AGO != -1 %} data-mchat-minutes-ago="{{ mchatrow.MCHAT_MINUTES_AGO }}" data-mchat-relative-update="{{ mchatrow.MCHAT_RELATIVE_UPDATE }}"{% endif %}>{{ mchatrow.MCHAT_TIME }}</span>
{% EVENT dmzx_mchat_messages_header_after %}
</div>
<div class="mchat-text">
<!-- EVENT dmzx_mchat_messages_text_before -->
{mchatrow.MCHAT_MESSAGE}
<!-- EVENT dmzx_mchat_messages_text_after -->
{% EVENT dmzx_mchat_messages_text_before %}
{{ mchatrow.MCHAT_MESSAGE }}
{% EVENT dmzx_mchat_messages_text_after %}
</div>
</div>
</li>
<!-- END mchatrow -->
{% endfor %}
<!-- EVENT dmzx_mchat_messages_after -->
{% EVENT dmzx_mchat_messages_after %}

View File

@@ -1,28 +1,28 @@
<!-- EVENT dmzx_mchat_messages_icons_before -->
{% EVENT dmzx_mchat_messages_icons_before %}
<!-- IF not S_IS_BOT -->
<!-- DEFINE $MCHAT_ALLOW_MENTION = MCHAT_ALLOW_USE and not mchatrow.MCHAT_IS_POSTER and not MCHAT_IS_ARCHIVE_PAGE -->
<!-- DEFINE $MCHAT_ALLOW_QUOTE = MCHAT_ALLOW_USE and S_BBCODE_ALLOWED and MCHAT_ALLOW_QUOTE and not MCHAT_IS_ARCHIVE_PAGE -->
<!-- DEFINE $MCHAT_ALLOW_LIKE = MCHAT_ALLOW_USE and S_BBCODE_ALLOWED and MCHAT_ALLOW_LIKE and not MCHAT_IS_ARCHIVE_PAGE and not mchatrow.MCHAT_IS_POSTER -->
<!-- DEFINE $MCHAT_ALLOW_PM = MCHAT_ALLOW_PM and mchatrow.MCHAT_PM and mchatrow.U_VIEWPROFILE -->
<!-- DEFINE $MCHAT_ALLOW_IP = MCHAT_ALLOW_IP and TRUE -->
<!-- DEFINE $MCHAT_ALLOW_PERMISSIONS = MCHAT_ALLOW_PERMISSIONS and TRUE -->
<!-- DEFINE $MCHAT_ALLOW_EDIT = mchatrow.MCHAT_ALLOW_EDIT and not mchatrow.MCHAT_IS_NOTIFICATION -->
<!-- DEFINE $MCHAT_ALLOW_DEL = mchatrow.MCHAT_ALLOW_DEL -->
<!-- IF $MCHAT_ALLOW_MENTION or $MCHAT_ALLOW_QUOTE or $MCHAT_ALLOW_LIKE or $MCHAT_ALLOW_PM or MCHAT_ALLOW_IP or MCHAT_ALLOW_PERMISSIONS or $MCHAT_ALLOW_EDIT or $MCHAT_ALLOW_DEL or $MCHAT_ADD_CUSTOM_BUTTON -->
<ul class="mchat-buttons <!-- IF $MCHAT_USE_WHITE_MESSAGE_ICONS -->mchat-icons-white<!-- ELSE -->mchat-icons-black<!-- ENDIF -->">
<!-- EVENT dmzx_mchat_messages_icons_add_before -->
<!-- IF $MCHAT_ALLOW_MENTION --><li><a href="#" title="{L_MCHAT_RESPOND}" data-mchat-action="mention"><i class="<!-- IF IS_PHPBB31 -->mchat-icon mchat-icon-mention<!-- ELSEIF IS_PHPBB32 -->fa fa-at<!-- ENDIF -->"><span>{L_MCHAT_RESPOND}</span></i></a></li><!-- ENDIF -->
<!-- IF $MCHAT_ALLOW_QUOTE --><li><a href="#" title="{L_REPLY_WITH_QUOTE}" data-mchat-action="quote"><i class="<!-- IF IS_PHPBB31 -->mchat-icon mchat-icon-quote<!-- ELSEIF IS_PHPBB32 -->fa fa-quote-left<!-- ENDIF -->"><span>{L_REPLY_WITH_QUOTE}</span></i></a></li><!-- ENDIF -->
<!-- IF $MCHAT_ALLOW_LIKE --><li><a href="#" title="{L_MCHAT_LIKE}" data-mchat-action="like"><i class="<!-- IF IS_PHPBB31 -->mchat-icon mchat-icon-like<!-- ELSEIF IS_PHPBB32 -->fa fa-thumbs-o-up<!-- ENDIF -->"><span>{L_MCHAT_LIKE}</span></i></a></li><!-- ENDIF -->
<!-- IF $MCHAT_ALLOW_PM --><li><a href="{mchatrow.MCHAT_PM}" title="{L_MCHAT_SEND_PM}"><i class="<!-- IF IS_PHPBB31 -->mchat-icon mchat-icon-pm<!-- ELSEIF IS_PHPBB32 -->fa fa-envelope-o<!-- ENDIF -->"><span>{L_MCHAT_SEND_PM}</span></i></a></li><!-- ENDIF -->
<!-- IF $MCHAT_ALLOW_IP --><li><a href="{mchatrow.MCHAT_U_IP}" title="{mchatrow.MCHAT_WHOIS_USER}" data-mchat-action="ip"><i class="<!-- IF IS_PHPBB31 -->mchat-icon mchat-icon-ip<!-- ELSEIF IS_PHPBB32 -->fa fa-wifi<!-- ENDIF -->"><span>{mchatrow.MCHAT_WHOIS_USER}</span></i></a></li><!-- ENDIF -->
<!-- IF $MCHAT_ALLOW_PERMISSIONS --><li><a href="{mchatrow.MCHAT_U_PERMISSIONS}" title="{L_MCHAT_PERMISSIONS}"><i class="<!-- IF IS_PHPBB31 -->mchat-icon mchat-icon-permissions<!-- ELSEIF IS_PHPBB32 -->fa fa-exclamation-triangle<!-- ENDIF -->"><span>{L_MCHAT_PERMISSIONS}</span></i></a></li><!-- ENDIF -->
<!-- IF $MCHAT_ALLOW_EDIT --><li><a href="#" title="{L_MCHAT_EDIT}" data-mchat-action="edit"><i class="<!-- IF IS_PHPBB31 -->mchat-icon mchat-icon-edit<!-- ELSEIF IS_PHPBB32 -->fa fa-pencil<!-- ENDIF -->"><span>{L_MCHAT_EDIT}</span></i></a></li><!-- ENDIF -->
<!-- IF $MCHAT_ALLOW_DEL --><li><a href="#" title="{L_DELETE}" data-mchat-action="del"><i class="<!-- IF IS_PHPBB31 -->mchat-icon mchat-icon-delete<!-- ELSEIF IS_PHPBB32 -->fa fa-trash-o<!-- ENDIF -->"><span>{L_DELETE}</span></i></a></li><!-- ENDIF -->
<!-- EVENT dmzx_mchat_messages_icons_add_after -->
{% if not S_IS_BOT %}
{% DEFINE MCHAT_ALLOW_MENTION = MCHAT_ALLOW_USE and not mchatrow.MCHAT_IS_POSTER and MCHAT_PAGE != 'archive' %}
{% DEFINE MCHAT_ALLOW_QUOTE = MCHAT_ALLOW_USE and S_BBCODE_ALLOWED and MCHAT_ALLOW_QUOTE and MCHAT_PAGE != 'archive' %}
{% DEFINE MCHAT_ALLOW_LIKE = MCHAT_ALLOW_USE and S_BBCODE_ALLOWED and MCHAT_ALLOW_LIKE and MCHAT_PAGE != 'archive' and not mchatrow.MCHAT_IS_POSTER %}
{% DEFINE MCHAT_ALLOW_PM = MCHAT_ALLOW_PM and mchatrow.MCHAT_PM and mchatrow.U_VIEWPROFILE %}
{% DEFINE MCHAT_ALLOW_IP = MCHAT_ALLOW_IP and TRUE %}
{% DEFINE MCHAT_ALLOW_PERMISSIONS = MCHAT_ALLOW_PERMISSIONS and TRUE %}
{% DEFINE MCHAT_ALLOW_EDIT = mchatrow.MCHAT_ALLOW_EDIT and not mchatrow.MCHAT_IS_NOTIFICATION %}
{% DEFINE MCHAT_ALLOW_DEL = mchatrow.MCHAT_ALLOW_DEL %}
{% if definition.MCHAT_ALLOW_MENTION or definition.MCHAT_ALLOW_QUOTE or definition.MCHAT_ALLOW_LIKE or definition.MCHAT_ALLOW_PM or MCHAT_ALLOW_IP or MCHAT_ALLOW_PERMISSIONS or definition.MCHAT_ALLOW_EDIT or definition.MCHAT_ALLOW_DEL or definition.MCHAT_ADD_CUSTOM_BUTTON %}
<ul class="mchat-buttons {% if definition.MCHAT_USE_WHITE_MESSAGE_ICONS %}mchat-icons-white{% else %}mchat-icons-black{% endif %}">
{% EVENT dmzx_mchat_messages_icons_add_before %}
{% if definition.MCHAT_ALLOW_MENTION %}<li><a href="#" title="{{ lang('MCHAT_RESPOND') }}" data-mchat-action="mention"><i class="{% if IS_PHPBB31 %}mchat-icon mchat-icon-mention{% elseif IS_PHPBB32 %}fa fa-at{% endif %}"><span>{{ lang('MCHAT_RESPOND') }}</span></i></a></li>{% endif %}
{% if definition.MCHAT_ALLOW_QUOTE %}<li><a href="#" title="{{ lang('REPLY_WITH_QUOTE') }}" data-mchat-action="quote"><i class="{% if IS_PHPBB31 %}mchat-icon mchat-icon-quote{% elseif IS_PHPBB32 %}fa fa-quote-left{% endif %}"><span>{{ lang('REPLY_WITH_QUOTE') }}</span></i></a></li>{% endif %}
{% if definition.MCHAT_ALLOW_LIKE %}<li><a href="#" title="{{ lang('MCHAT_LIKE') }}" data-mchat-action="like"><i class="{% if IS_PHPBB31 %}mchat-icon mchat-icon-like{% elseif IS_PHPBB32 %}fa fa-thumbs-o-up{% endif %}"><span>{{ lang('MCHAT_LIKE') }}</span></i></a></li>{% endif %}
{% if definition.MCHAT_ALLOW_PM %}<li><a href="{{ mchatrow.MCHAT_PM }}" title="{{ lang('MCHAT_SEND_PM') }}"><i class="{% if IS_PHPBB31 %}mchat-icon mchat-icon-pm{% elseif IS_PHPBB32 %}fa fa-envelope-o{% endif %}"><span>{{ lang('MCHAT_SEND_PM') }}</span></i></a></li>{% endif %}
{% if definition.MCHAT_ALLOW_IP %}<li><a href="{{ mchatrow.MCHAT_U_IP }}" title="{{ mchatrow.MCHAT_WHOIS_USER }}" data-mchat-action="ip"><i class="{% if IS_PHPBB31 %}mchat-icon mchat-icon-ip{% elseif IS_PHPBB32 %}fa fa-wifi{% endif %}"><span>{{ mchatrow.MCHAT_WHOIS_USER }}</span></i></a></li>{% endif %}
{% if definition.MCHAT_ALLOW_PERMISSIONS %}<li><a href="{{ mchatrow.MCHAT_U_PERMISSIONS }}" title="{{ lang('MCHAT_PERMISSIONS') }}"><i class="{% if IS_PHPBB31 %}mchat-icon mchat-icon-permissions{% elseif IS_PHPBB32 %}fa fa-exclamation-triangle{% endif %}"><span>{{ lang('MCHAT_PERMISSIONS') }}</span></i></a></li>{% endif %}
{% if definition.MCHAT_ALLOW_EDIT %}<li><a href="#" title="{{ lang('MCHAT_EDIT') }}" data-mchat-action="edit"><i class="{% if IS_PHPBB31 %}mchat-icon mchat-icon-edit{% elseif IS_PHPBB32 %}fa fa-pencil{% endif %}"><span>{{ lang('MCHAT_EDIT') }}</span></i></a></li>{% endif %}
{% if definition.MCHAT_ALLOW_DEL %}<li><a href="#" title="{{ lang('DELETE') }}" data-mchat-action="del"><i class="{% if IS_PHPBB31 %}mchat-icon mchat-icon-delete{% elseif IS_PHPBB32 %}fa fa-trash-o{% endif %}"><span>{{ lang('DELETE') }}</span></i></a></li>{% endif %}
{% EVENT dmzx_mchat_messages_icons_add_after %}
</ul>
<!-- ENDIF -->
<!-- ENDIF -->
{% endif %}
{% endif %}
<!-- EVENT dmzx_mchat_messages_icons_after -->
{% EVENT dmzx_mchat_messages_icons_after %}

View File

@@ -1,6 +1,5 @@
<li<!-- IF IS_PHPBB31 --> class="small-icon icon-mchat"<!-- ENDIF --> data-last-responsive="true">
<a href="{U_MCHAT}" title="{MCHAT_TITLE_HINT}" class="mchat-nav-link-title" role="menuitem">
<i<!-- IF IS_PHPBB32 --> class="icon fa fa-weixin"<!-- ENDIF --> aria-hidden="true"></i>
<span class="mchat-nav-link">{MCHAT_TITLE}</span>
<li{% if IS_PHPBB31 %} class="small-icon icon-mchat"{% endif %} data-last-responsive="true">
<a href="{{ U_MCHAT }}" title="{{ MCHAT_TITLE_HINT }}" class="mchat-nav-link-title" role="menuitem">
<i{% if IS_PHPBB32 %} class="icon fa fa-weixin fa-fw"{% endif %} aria-hidden="true"></i><span class="mchat-nav-link">{{ MCHAT_TITLE }}</span>
</a>
</li>

View File

@@ -1,76 +1,76 @@
<div id="mchat-panel" class="panel cp-mini<!-- IF MCHAT_IS_ARCHIVE_PAGE --> hidden<!-- ENDIF -->">
<!-- IF MCHAT_IS_INDEX and MCHAT_WHOIS_REFRESH and MCHAT_WHOIS_INDEX -->
<!-- INCLUDE @dmzx_mchat/mchat_whois.html -->
<!-- ENDIF -->
<div id="mchat-panel" class="panel cp-mini{% if MCHAT_PAGE == 'archive' %} hidden{% endif %}">
{% if MCHAT_PAGE == 'index' and MCHAT_WHOIS_REFRESH and MCHAT_WHOIS_INDEX %}
{% INCLUDE '@dmzx_mchat/mchat_whois.html' %}
{% endif %}
<!-- IF MCHAT_CHARACTER_COUNT and not MCHAT_IS_ARCHIVE_PAGE -->
<div id="mchat-character-count" class="invisible">{MCHAT_CHARACTER_COUNT}</div>
<!-- ENDIF -->
{% if MCHAT_CHARACTER_COUNT and MCHAT_PAGE != 'archive' %}
<div id="mchat-character-count" class="invisible">{{ MCHAT_CHARACTER_COUNT }}</div>
{% endif %}
<form id="mchat-form" name="postform" action="{U_MCHAT_CUSTOM_PAGE}" method="POST">
{S_FORM_TOKEN}
<!-- IF not MCHAT_IS_ARCHIVE_PAGE -->
<noscript><div class="error">{L_MCHAT_NOJAVASCRIPT}</div></noscript>
<!-- IF MCHAT_ALLOW_USE -->
<!-- IF MCHAT_INPUT_AREA -->
<form id="mchat-form" name="postform" action="{{ U_MCHAT_CUSTOM_PAGE }}" method="POST">
{{ S_FORM_TOKEN }}
{% if MCHAT_PAGE != 'archive' %}
<noscript><div class="error">{{ lang('MCHAT_NOJAVASCRIPT') }}</div></noscript>
{% if MCHAT_ALLOW_USE %}
{% if MCHAT_INPUT_AREA %}
<input id="mchat-input" type="text" name="message" class="inputbox medium" autocomplete="off" />
<!-- ELSE -->
{% else %}
<textarea id="mchat-input" name="message" class="inputbox no-auto-resize"></textarea>
<!-- ENDIF -->
<!-- ENDIF -->
<!-- EVENT dmzx_mchat_buttons_container_before -->
{% endif %}
{% endif %}
{% EVENT dmzx_mchat_buttons_container_before %}
<div id="mchat-buttons">
<!-- EVENT dmzx_mchat_buttons_before -->
<!-- IF MCHAT_ALLOW_USE -->
<input id="mchat-add" class="<!-- IF IS_PHPBB31 -->button2<!-- ELSEIF IS_PHPBB32 -->button<!-- ENDIF -->" type="button" data-mchat-action="add" value="{L_MCHAT_ADD}" />
<!-- IF MCHAT_ALLOW_SMILES and .smiley -->
<input type="button" class="<!-- IF IS_PHPBB31 -->button2<!-- ELSEIF IS_PHPBB32 -->button<!-- ENDIF -->" data-mchat-toggle="smilies" value="{L_MCHAT_SMILES}" />
<!-- ENDIF -->
<!-- IF S_BBCODE_ALLOWED -->
<input type="button" class="<!-- IF IS_PHPBB31 -->button2<!-- ELSEIF IS_PHPBB32 -->button<!-- ENDIF -->" data-mchat-toggle="bbcodes" value="{L_MCHAT_BBCODES}" />
<!-- ENDIF -->
<!-- IF MCHAT_RULES -->
<input type="button" class="<!-- IF IS_PHPBB31 -->button2<!-- ELSEIF IS_PHPBB32 -->button<!-- ENDIF -->" onclick="popup('{U_MCHAT_RULES}', 450, 275); return false;" value="{L_MCHAT_RULES}" />
<!-- ENDIF -->
<!-- ENDIF -->
<!-- EVENT dmzx_mchat_buttons_mid -->
<!-- IF MCHAT_ARCHIVE -->
<input type="button" class="<!-- IF IS_PHPBB31 -->button2<!-- ELSEIF IS_PHPBB32 -->button<!-- ENDIF -->" onclick="window.location.href = '{U_MCHAT_ARCHIVE_URL}';" value="{L_MCHAT_ARCHIVE}" />
<!-- ENDIF -->
<!-- EVENT dmzx_mchat_buttons_after -->
{% EVENT dmzx_mchat_buttons_before %}
{% if MCHAT_ALLOW_USE %}
<input id="mchat-add" class="{% if IS_PHPBB31 %}button2{% elseif IS_PHPBB32 %}button{% endif %}" type="button" data-mchat-action="add" value="{{ lang('MCHAT_ADD') }}" />
{% if MCHAT_ALLOW_SMILES and loops.smiley|length %}
<input type="button" class="{% if IS_PHPBB31 %}button2{% elseif IS_PHPBB32 %}button{% endif %}" data-mchat-toggle="smilies" value="{{ lang('MCHAT_SMILES') }}" />
{% endif %}
{% if S_BBCODE_ALLOWED %}
<input type="button" class="{% if IS_PHPBB31 %}button2{% elseif IS_PHPBB32 %}button{% endif %}" data-mchat-toggle="bbcodes" value="{{ lang('MCHAT_BBCODES') }}" />
{% endif %}
{% if MCHAT_RULES %}
<input type="button" class="{% if IS_PHPBB31 %}button2{% elseif IS_PHPBB32 %}button{% endif %}" onclick="popup('{{ U_MCHAT_RULES }}', 450, 275); return false;" value="{{ lang('MCHAT_RULES') }}" />
{% endif %}
{% endif %}
{% EVENT dmzx_mchat_buttons_mid %}
{% if MCHAT_ARCHIVE %}
<input type="button" class="{% if IS_PHPBB31 %}button2{% elseif IS_PHPBB32 %}button{% endif %}" onclick="window.location.href = '{{ U_MCHAT_ARCHIVE_URL }}';" value="{{ lang('MCHAT_ARCHIVE') }}" />
{% endif %}
{% EVENT dmzx_mchat_buttons_after %}
</div>
<!-- EVENT dmzx_mchat_buttons_container_after -->
<!-- IF MCHAT_ALLOW_USE and S_BBCODE_ALLOWED -->
{% EVENT dmzx_mchat_buttons_container_after %}
{% if MCHAT_ALLOW_USE and S_BBCODE_ALLOWED %}
<div id="mchat-bbcodes">
<!-- INCLUDE posting_buttons.html -->
{% INCLUDE 'posting_buttons.html' %}
</div>
<!-- ENDIF -->
<!-- IF MCHAT_ALLOW_USE and MCHAT_ALLOW_SMILES and .smiley -->
{% endif %}
{% if MCHAT_ALLOW_USE and MCHAT_ALLOW_SMILES and loops.smiley|length %}
<div id="mchat-smilies" class="hidden">
<!-- BEGIN smiley -->
<a href="#" onclick="insert_text('{smiley.A_SMILEY_CODE}', true); return false;"><img src="{smiley.SMILEY_IMG}" width="{smiley.SMILEY_WIDTH}" height="{smiley.SMILEY_HEIGHT}" alt="{smiley.SMILEY_CODE}" title="{smiley.SMILEY_DESC}" /></a>
<!-- END smiley -->
<!-- IF S_SHOW_SMILEY_LINK -->
<a href="{U_MORE_SMILIES}" onclick="popup(this.href, 300, 350, '_phpbbsmilies'); return false;">{L_MORE_SMILIES}</a>
<!-- ENDIF -->
{% for smiley in loops.smiley %}
<a href="#" onclick="insert_text('{{ smiley.A_SMILEY_CODE }}', true); return false;"><img src="{{ smiley.SMILEY_IMG }}" width="{{ smiley.SMILEY_WIDTH }}" height="{{ smiley.SMILEY_HEIGHT }}" alt="{{ smiley.SMILEY_CODE }}" title="{{ smiley.SMILEY_DESC }}" /></a>
{% endfor %}
{% if S_SHOW_SMILEY_LINK %}
<a href="{{ U_MORE_SMILIES }}" onclick="popup(this.href, 300, 350, '_phpbbsmilies'); return false;">{{ lang('MORE_SMILIES') }}</a>
{% endif %}
</div>
<!-- ENDIF -->
<!-- EVENT dmzx_mchat_body_smiley_after -->
{% endif %}
{% EVENT dmzx_mchat_body_smiley_after %}
<div id="mchat-status">
<ul class="mchat-footer">
<li>
<span id="mchat-status-icons">
<i id="mchat-status-load" class="<!-- IF IS_PHPBB31 -->mchat-status-load<!-- ELSEIF IS_PHPBB32 -->fa fa-refresh fa-spin icon icon-blue<!-- ENDIF -->" title="{L_LOADING}"></i>
<i id="mchat-status-ok" class="<!-- IF IS_PHPBB31 -->mchat-status-ok<!-- ELSEIF IS_PHPBB32 -->fa fa-check icon icon-green<!-- ENDIF -->" title="{L_MCHAT_OK}"></i>
<i id="mchat-status-paused" class="<!-- IF IS_PHPBB31 -->mchat-status-paused<!-- ELSEIF IS_PHPBB32 -->fa fa-pause icon icon-orange<!-- ENDIF -->" title="{L_MCHAT_PAUSE}"></i>
<i id="mchat-status-error" class="<!-- IF IS_PHPBB31 -->mchat-status-error<!-- ELSEIF IS_PHPBB32 -->fa fa-times icon icon-red<!-- ENDIF -->" title="{L_ERROR}"></i>
<i id="mchat-status-load" class="{% if IS_PHPBB31 %}mchat-status-load{% elseif IS_PHPBB32 %}fa fa-refresh fa-spin icon icon-blue{% endif %}" title="{{ lang('LOADING') }}"></i>
<i id="mchat-status-ok" class="{% if IS_PHPBB31 %}mchat-status-ok{% elseif IS_PHPBB32 %}fa fa-check icon icon-green{% endif %}" title="{{ lang('MCHAT_OK') }}"></i>
<i id="mchat-status-paused" class="{% if IS_PHPBB31 %}mchat-status-paused{% elseif IS_PHPBB32 %}fa fa-pause icon icon-orange{% endif %}" title="{{ lang('MCHAT_PAUSE') }}"></i>
<i id="mchat-status-error" class="{% if IS_PHPBB31 %}mchat-status-error{% elseif IS_PHPBB32 %}fa fa-times icon icon-red{% endif %}" title="{{ lang('ERROR') }}"></i>
</span>
<span id="mchat-refresh-text">{MCHAT_REFRESH_YES}</span>
<span id="mchat-refresh-text">{{ MCHAT_REFRESH_YES }}</span>
</li>
<!-- IF MCHAT_TIMEOUT --><li><span id="mchat-session">{MCHAT_SESSION_TIMELEFT}</span></li><!-- ENDIF -->
<!-- IF not MCHAT_SOUND_DISABLED --><li class="mchat-sound"><input type="checkbox" id="mchat-user-sound"<!-- IF MCHAT_SOUND --> checked="checked"<!-- ENDIF --> /><label for="mchat-user-sound">{L_MCHAT_USESOUND}</label></li><!-- ENDIF -->
{% if MCHAT_TIMEOUT %}<li><span id="mchat-session">{{ MCHAT_SESSION_TIMELEFT }}</span></li>{% endif %}
{% if not MCHAT_SOUND_DISABLED %}<li class="mchat-sound"><input type="checkbox" id="mchat-user-sound"{% if MCHAT_SOUND %} checked="checked"{% endif %} /><label for="mchat-user-sound">{{ lang('MCHAT_USESOUND') }}</label></li>{% endif %}
</ul>
</div>
<!-- ENDIF -->
{% endif %}
</form>
</div>

View File

@@ -1,11 +1,11 @@
<!-- INCLUDE simple_header.html -->
{% INCLUDE 'simple_header.html' %}
<h2>{L_MCHAT_RULES}</h2>
<h2>{{ lang('MCHAT_RULES') }}</h2>
<div class="rules">
<div class="inner">
{MCHAT_RULES}
{{ MCHAT_RULES }}
</div>
</div>
<a href="#" onclick="window.close(); return false;">{L_CLOSE_WINDOW}</a>
<a href="#" onclick="window.close(); return false;">{{ lang('CLOSE_WINDOW') }}</a>
<!-- INCLUDE simple_footer.html -->
{% INCLUDE 'simple_footer.html' %}

View File

@@ -1,10 +1,10 @@
<div id="mchat-whois">
<span title="{MCHAT_ONLINE_EXPLAIN}">
<!-- IF MCHAT_USERS_LIST -->
<a href="#" data-mchat-toggle="userlist">{MCHAT_USERS_TOTAL}</a>
<!-- ELSE -->
{MCHAT_USERS_TOTAL}
<!-- ENDIF -->
<span title="{{ MCHAT_ONLINE_EXPLAIN }}">
{% if MCHAT_USERS_LIST %}
<a href="#" data-mchat-toggle="userlist">{{ MCHAT_USERS_TOTAL }}</a>
{% else %}
{{ MCHAT_USERS_TOTAL }}
{% endif %}
</span>
<div id="mchat-userlist" class="hidden">{MCHAT_USERS_LIST}</div>
<div id="mchat-userlist" class="hidden">{{ MCHAT_USERS_LIST }}</div>
</div>

View File

@@ -1,179 +1,179 @@
<!-- INCLUDE ucp_header.html -->
{% INCLUDE 'ucp_header.html' %}
<h2>{L_MCHAT_PREFERENCES}</h2>
<h2>{{ lang('MCHAT_PREFERENCES') }}</h2>
<form id="ucp" class="mchat-ucp" method="post" action="{S_UCP_ACTION}">
<form id="ucp" class="mchat-ucp" method="post" action="{{ S_UCP_ACTION }}">
<div class="panel">
<div class="inner">
<!-- IF ERROR or MCHAT_AUTH_COUNT == 0 -->
{% if ERROR or MCHAT_AUTH_COUNT == 0 %}
<fieldset>
<!-- IF ERROR --><p class="error">{ERROR}</p><!-- ENDIF -->
<!-- IF MCHAT_AUTH_COUNT == 0 --><p class="error">{L_MCHAT_NO_SETTINGS}</p><!-- ENDIF -->
{% if ERROR %}<p class="error">{{ ERROR }}</p>{% endif %}
{% if MCHAT_AUTH_COUNT == 0 %}<p class="error">{{ lang('MCHAT_NO_SETTINGS') }}</p>{% endif %}
</fieldset>
<!-- ENDIF -->
{% endif %}
<!-- IF MCHAT_AUTH_COUNT > 0 -->
{% if MCHAT_AUTH_COUNT > 0 %}
<fieldset>
<!-- EVENT dmzx_mchat_ucp_index_before -->
{% EVENT dmzx_mchat_ucp_index_before %}
<!-- IF MCHAT_INDEX_AUTH -->
{% if MCHAT_INDEX_AUTH %}
<dl>
<dt><label for="user_mchat_index">{L_MCHAT_INDEX}{L_COLON}</label></dt>
<dt><label for="user_mchat_index">{{ lang('MCHAT_INDEX') ~ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" name="user_mchat_index" value="1"<!-- IF MCHAT_INDEX --> id="user_mchat_index" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" name="user_mchat_index" value="0"<!-- IF not MCHAT_INDEX --> id="user_mchat_index" checked="checked"<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" name="user_mchat_index" value="1"{% if MCHAT_INDEX %} id="user_mchat_index" checked="checked"{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" name="user_mchat_index" value="0"{% if not MCHAT_INDEX %} id="user_mchat_index" checked="checked"{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<!-- ENDIF -->
<!-- IF MCHAT_WHOIS_INDEX_AUTH -->
{% endif %}
{% if MCHAT_WHOIS_INDEX_AUTH %}
<dl>
<dt><label for="user_mchat_whois_index">{L_MCHAT_WHOIS_INDEX}{L_COLON}</label></dt>
<dt><label for="user_mchat_whois_index">{{ lang('MCHAT_WHOIS_INDEX') ~ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" name="user_mchat_whois_index" value="1"<!-- IF MCHAT_WHOIS_INDEX --> id="user_mchat_whois_index" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" name="user_mchat_whois_index" value="0"<!-- IF not MCHAT_WHOIS_INDEX --> id="user_mchat_whois_index" checked="checked"<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" name="user_mchat_whois_index" value="1"{% if MCHAT_WHOIS_INDEX %} id="user_mchat_whois_index" checked="checked"{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" name="user_mchat_whois_index" value="0"{% if not MCHAT_WHOIS_INDEX %} id="user_mchat_whois_index" checked="checked"{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<!-- ENDIF -->
<!-- IF MCHAT_STATS_INDEX_AUTH -->
{% endif %}
{% if MCHAT_STATS_INDEX_AUTH %}
<dl>
<dt><label for="user_mchat_stats_index">{L_MCHAT_STATS_INDEX}{L_COLON}</label><br /><span>{L_MCHAT_STATS_INDEX_EXPLAIN}</span></dt>
<dt><label for="user_mchat_stats_index">{{ lang('MCHAT_STATS_INDEX') ~ lang('COLON') }}</label><br /><span>{{ lang('MCHAT_STATS_INDEX_EXPLAIN') }}</span></dt>
<dd>
<label><input type="radio" name="user_mchat_stats_index" value="1"<!-- IF MCHAT_STATS_INDEX --> id="user_mchat_stats_index" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" name="user_mchat_stats_index" value="0"<!-- IF not MCHAT_STATS_INDEX --> id="user_mchat_stats_index" checked="checked"<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" name="user_mchat_stats_index" value="1"{% if MCHAT_STATS_INDEX %} id="user_mchat_stats_index" checked="checked"{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" name="user_mchat_stats_index" value="0"{% if not MCHAT_STATS_INDEX %} id="user_mchat_stats_index" checked="checked"{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<!-- ENDIF -->
<!-- IF MCHAT_LOCATION_AUTH -->
{% endif %}
{% if MCHAT_LOCATION_AUTH %}
<dl>
<dt><label for="user_mchat_location">{L_MCHAT_LOCATION}{L_COLON}</label></dt>
<dt><label for="user_mchat_location">{{ lang('MCHAT_LOCATION') ~ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" name="user_mchat_location" value="1"<!-- IF MCHAT_LOCATION --> id="user_mchat_location" checked="checked"<!-- ENDIF --> /> {L_MCHAT_TOP}</label>
<label><input type="radio" name="user_mchat_location" value="0"<!-- IF not MCHAT_LOCATION --> id="user_mchat_location" checked="checked"<!-- ENDIF --> /> {L_MCHAT_BOTTOM}</label>
<label><input type="radio" name="user_mchat_location" value="1"{% if MCHAT_LOCATION %} id="user_mchat_location" checked="checked"{% endif %} /> {{ lang('MCHAT_TOP') }}</label>
<label><input type="radio" name="user_mchat_location" value="0"{% if not MCHAT_LOCATION %} id="user_mchat_location" checked="checked"{% endif %} /> {{ lang('MCHAT_BOTTOM') }}</label>
</dd>
</dl>
<!-- ENDIF -->
{% endif %}
<!-- EVENT dmzx_mchat_ucp_location_after -->
{% EVENT dmzx_mchat_ucp_location_after %}
<hr />
<!-- EVENT dmzx_mchat_ucp_message_top_before -->
{% EVENT dmzx_mchat_ucp_message_top_before %}
<!-- IF MCHAT_MESSAGE_TOP_AUTH -->
{% if MCHAT_MESSAGE_TOP_AUTH %}
<dl>
<dt><label for="user_mchat_message_top">{L_MCHAT_MESSAGE_TOP}{L_COLON}</label><br /><span>{L_MCHAT_MESSAGE_TOP_EXPLAIN}</span></dt>
<dt><label for="user_mchat_message_top">{{ lang('MCHAT_MESSAGE_TOP') ~ lang('COLON') }}</label><br /><span>{{ lang('MCHAT_MESSAGE_TOP_EXPLAIN') }}</span></dt>
<dd>
<label><input type="radio" name="user_mchat_message_top" value="1"<!-- IF MCHAT_MESSAGE_TOP --> id="user_mchat_message_top" checked="checked"<!-- ENDIF --> /> {L_MCHAT_TOP}</label>
<label><input type="radio" name="user_mchat_message_top" value="0"<!-- IF not MCHAT_MESSAGE_TOP --> id="user_mchat_message_top" checked="checked"<!-- ENDIF --> /> {L_MCHAT_BOTTOM}</label>
<label><input type="radio" name="user_mchat_message_top" value="1"{% if MCHAT_MESSAGE_TOP %} id="user_mchat_message_top" checked="checked"{% endif %} /> {{ lang('MCHAT_TOP') }}</label>
<label><input type="radio" name="user_mchat_message_top" value="0"{% if not MCHAT_MESSAGE_TOP %} id="user_mchat_message_top" checked="checked"{% endif %} /> {{ lang('MCHAT_BOTTOM') }}</label>
</dd>
</dl>
<!-- ENDIF -->
<!-- IF MCHAT_CAPITAL_LETTER_AUTH -->
{% endif %}
{% if MCHAT_CAPITAL_LETTER_AUTH and MCHAT_ALLOW_USE %}
<dl>
<dt><label for="user_mchat_capital_letter">{L_MCHAT_CAPITAL_LETTER}{L_COLON}</label></dt>
<dt><label for="user_mchat_capital_letter">{{ lang('MCHAT_CAPITAL_LETTER') ~ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" name="user_mchat_capital_letter" value="1"<!-- IF MCHAT_CAPITAL_LETTER --> id="user_mchat_capital_letter" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" name="user_mchat_capital_letter" value="0"<!-- IF not MCHAT_CAPITAL_LETTER --> id="user_mchat_capital_letter" checked="checked"<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" name="user_mchat_capital_letter" value="1"{% if MCHAT_CAPITAL_LETTER %} id="user_mchat_capital_letter" checked="checked"{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" name="user_mchat_capital_letter" value="0"{% if not MCHAT_CAPITAL_LETTER %} id="user_mchat_capital_letter" checked="checked"{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<!-- ENDIF -->
<!-- IF MCHAT_SOUND_AUTH -->
{% endif %}
{% if MCHAT_SOUND_AUTH %}
<dl>
<dt><label for="user_mchat_sound">{L_MCHAT_SOUND}{L_COLON}</label></dt>
<dt><label for="user_mchat_sound">{{ lang('MCHAT_SOUND') ~ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" name="user_mchat_sound" value="1"<!-- IF MCHAT_SOUND --> id="user_mchat_sound" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" name="user_mchat_sound" value="0"<!-- IF not MCHAT_SOUND --> id="user_mchat_sound" checked="checked"<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" name="user_mchat_sound" value="1"{% if MCHAT_SOUND %} id="user_mchat_sound" checked="checked"{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" name="user_mchat_sound" value="0"{% if not MCHAT_SOUND %} id="user_mchat_sound" checked="checked"{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<!-- ENDIF -->
<!-- IF MCHAT_AVATARS_AUTH -->
{% endif %}
{% if MCHAT_AVATARS_AUTH %}
<dl>
<dt><label for="user_mchat_avatars">{L_MCHAT_AVATARS}{L_COLON}</label></dt>
<dt><label for="user_mchat_avatars">{{ lang('MCHAT_AVATARS') ~ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" name="user_mchat_avatars" value="1"<!-- IF MCHAT_AVATARS --> id="user_mchat_avatars" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" name="user_mchat_avatars" value="0"<!-- IF not MCHAT_AVATARS --> id="user_mchat_avatars" checked="checked"<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" name="user_mchat_avatars" value="1"{% if MCHAT_AVATARS %} id="user_mchat_avatars" checked="checked"{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" name="user_mchat_avatars" value="0"{% if not MCHAT_AVATARS %} id="user_mchat_avatars" checked="checked"{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<!-- ENDIF -->
<!-- IF MCHAT_INPUT_AREA_AUTH -->
{% endif %}
{% if MCHAT_INPUT_AREA_AUTH and MCHAT_ALLOW_USE %}
<dl>
<dt><label for="user_mchat_input_area">{L_MCHAT_CHAT_AREA}{L_COLON}</label></dt>
<dt><label for="user_mchat_input_area">{{ lang('MCHAT_CHAT_AREA') ~ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" name="user_mchat_input_area" value="1"<!-- IF MCHAT_INPUT_AREA --> id="user_mchat_input_area" checked="checked"<!-- ENDIF --> /> {L_MCHAT_INPUT_AREA}</label>
<label><input type="radio" name="user_mchat_input_area" value="0"<!-- IF not MCHAT_INPUT_AREA --> id="user_mchat_input_area" checked="checked"<!-- ENDIF --> /> {L_MCHAT_TEXT_AREA}</label>
<label><input type="radio" name="user_mchat_input_area" value="1"{% if MCHAT_INPUT_AREA %} id="user_mchat_input_area" checked="checked"{% endif %} /> {{ lang('MCHAT_INPUT_AREA') }}</label>
<label><input type="radio" name="user_mchat_input_area" value="0"{% if not MCHAT_INPUT_AREA %} id="user_mchat_input_area" checked="checked"{% endif %} /> {{ lang('MCHAT_TEXT_AREA') }}</label>
</dd>
</dl>
<!-- ENDIF -->
<!-- IF MCHAT_CHARACTER_COUNT_AUTH -->
{% endif %}
{% if MCHAT_CHARACTER_COUNT_AUTH and MCHAT_ALLOW_USE %}
<dl>
<dt><label for="user_mchat_character_count">{L_MCHAT_DISPLAY_CHARACTER_COUNT}{L_COLON}</label></dt>
<dt><label for="user_mchat_character_count">{{ lang('MCHAT_DISPLAY_CHARACTER_COUNT') ~ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" name="user_mchat_character_count" value="1"<!-- IF MCHAT_CHARACTER_COUNT --> id="user_mchat_character_count" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" name="user_mchat_character_count" value="0"<!-- IF not MCHAT_CHARACTER_COUNT --> id="user_mchat_character_count" checked="checked"<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" name="user_mchat_character_count" value="1"{% if MCHAT_CHARACTER_COUNT %} id="user_mchat_character_count" checked="checked"{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" name="user_mchat_character_count" value="0"{% if not MCHAT_CHARACTER_COUNT %} id="user_mchat_character_count" checked="checked"{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<!-- ENDIF -->
<!-- IF MCHAT_PAUSE_ON_INPUT_AUTH -->
{% endif %}
{% if MCHAT_PAUSE_ON_INPUT_AUTH and MCHAT_ALLOW_USE %}
<dl>
<dt><label for="user_mchat_pause_on_input">{L_MCHAT_PAUSE_ON_INPUT}{L_COLON}</label><br /><span>{L_MCHAT_PAUSE_ON_INPUT_EXPLAIN}</span></dt>
<dt><label for="user_mchat_pause_on_input">{{ lang('MCHAT_PAUSE_ON_INPUT') ~ lang('COLON') }}</label><br /><span>{{ lang('MCHAT_PAUSE_ON_INPUT_EXPLAIN') }}</span></dt>
<dd>
<label><input type="radio" name="user_mchat_pause_on_input" value="1"<!-- IF MCHAT_PAUSE_ON_INPUT --> id="user_mchat_pause_on_input" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" name="user_mchat_pause_on_input" value="0"<!-- IF not MCHAT_PAUSE_ON_INPUT --> id="user_mchat_pause_on_input" checked="checked"<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" name="user_mchat_pause_on_input" value="1"{% if MCHAT_PAUSE_ON_INPUT %} id="user_mchat_pause_on_input" checked="checked"{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" name="user_mchat_pause_on_input" value="0"{% if not MCHAT_PAUSE_ON_INPUT %} id="user_mchat_pause_on_input" checked="checked"{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<!-- ENDIF -->
<!-- IF MCHAT_DATE_AUTH -->
{% endif %}
{% if MCHAT_DATE_AUTH %}
<dl>
<dt><label for="user_mchat_dateoptions">{L_MCHAT_DATE_FORMAT}{L_COLON}</label><br /><span>{L_MCHAT_DATE_FORMAT_EXPLAIN}</span></dt>
<dt><label for="user_mchat_dateoptions">{{ lang('MCHAT_DATE_FORMAT') ~ lang('COLON') }}</label><br /><span>{{ lang('MCHAT_DATE_FORMAT_EXPLAIN') }}</span></dt>
<dd>
<select name="user_mchat_dateoptions" id="user_mchat_dateoptions" onchange="phpbb.toggleDisplay('user_mchat_custom_date', this.value == 'custom' ? 1 : -1); document.getElementById('user_mchat_date').value = this.value == 'custom' ? '{A_MCHAT_DEFAULT_DATEFORMAT}' : this.value;">
{S_MCHAT_DATEFORMAT_OPTIONS}
<select name="user_mchat_dateoptions" id="user_mchat_dateoptions" onchange="phpbb.toggleDisplay('user_mchat_custom_date', this.value == 'custom' ? 1 : -1); document.getElementById('user_mchat_date').value = this.value == 'custom' ? '{{ MCHAT_DEFAULT_DATEFORMAT | escape('js') }}' : this.value;">
{{ S_MCHAT_DATEFORMAT_OPTIONS }}
</select>
</dd>
<dd><div id="user_mchat_custom_date"<!-- IF not S_MCHAT_CUSTOM_DATEFORMAT --> style="display:none;"<!-- ENDIF -->><input type="text" name="user_mchat_date" id="user_mchat_date" value="{MCHAT_DATE}" maxlength="64" /></div></dd>
<dd><div id="user_mchat_custom_date"{% if not S_MCHAT_CUSTOM_DATEFORMAT %} style="display:none;"{% endif %}><input type="text" name="user_mchat_date" id="user_mchat_date" value="{{ MCHAT_DATE }}" maxlength="64" /></div></dd>
</dl>
<!-- ENDIF -->
<!-- IF MCHAT_RELATIVE_TIME_AUTH -->
{% endif %}
{% if MCHAT_RELATIVE_TIME_AUTH %}
<dl>
<dt><label for="user_mchat_relative_time">{L_MCHAT_RELATIVE_TIME}{L_COLON}</label><br /><span>{L_MCHAT_RELATIVE_TIME_EXPLAIN}</span></dt>
<dt><label for="user_mchat_relative_time">{{ lang('MCHAT_RELATIVE_TIME') ~ lang('COLON') }}</label><br /><span>{{ lang('MCHAT_RELATIVE_TIME_EXPLAIN') }}</span></dt>
<dd>
<label><input type="radio" name="user_mchat_relative_time" value="1"<!-- IF MCHAT_RELATIVE_TIME --> id="user_mchat_relative_time" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" name="user_mchat_relative_time" value="0"<!-- IF not MCHAT_RELATIVE_TIME --> id="user_mchat_relative_time" checked="checked"<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" name="user_mchat_relative_time" value="1"{% if MCHAT_RELATIVE_TIME %} id="user_mchat_relative_time" checked="checked"{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" name="user_mchat_relative_time" value="0"{% if not MCHAT_RELATIVE_TIME %} id="user_mchat_relative_time" checked="checked"{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<!-- ENDIF -->
{% endif %}
<!-- EVENT dmzx_mchat_ucp_relative_time_after -->
{% EVENT dmzx_mchat_ucp_relative_time_after %}
<hr />
<!-- EVENT dmzx_mchat_ucp_posts_before -->
{% EVENT dmzx_mchat_ucp_posts_before %}
<!-- IF MCHAT_POSTS_AUTH and MCHAT_POSTS_ENABLED_LANG -->
{% if MCHAT_POSTS_AUTH and MCHAT_POSTS_ENABLED_LANG %}
<dl>
<dt><label for="user_mchat_posts">{MCHAT_POSTS_ENABLED_LANG}{L_COLON}</label></dt>
<dt><label for="user_mchat_posts">{{ MCHAT_POSTS_ENABLED_LANG ~ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" name="user_mchat_posts" value="1"<!-- IF MCHAT_POSTS --> id="user_mchat_posts" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" name="user_mchat_posts" value="0"<!-- IF not MCHAT_POSTS --> id="user_mchat_posts" checked="checked"<!-- ENDIF --> /> {L_NO}</label>
<label><input type="radio" name="user_mchat_posts" value="1"{% if MCHAT_POSTS %} id="user_mchat_posts" checked="checked"{% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" name="user_mchat_posts" value="0"{% if not MCHAT_POSTS %} id="user_mchat_posts" checked="checked"{% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<!-- ENDIF -->
{% endif %}
<!-- EVENT dmzx_mchat_ucp_posts_after -->
{% EVENT dmzx_mchat_ucp_posts_after %}
</fieldset>
<!-- ENDIF -->
{% endif %}
</div>
</div>
<!-- IF MCHAT_AUTH_COUNT > 0 -->
{% if MCHAT_AUTH_COUNT > 0 %}
<fieldset class="submit-buttons">
{S_HIDDEN_FIELDS}<input type="reset" value="{L_RESET}" name="reset" class="button2" />&nbsp;
<input type="submit" name="submit" value="{L_SUBMIT}" class="button1" />
{S_FORM_TOKEN}
{{ S_HIDDEN_FIELDS }}<input type="reset" value="{{ lang('RESET') }}" name="reset" class="button2" />&nbsp;
<input type="submit" name="submit" value="{{ lang('SUBMIT') }}" class="button1" />
{{ S_FORM_TOKEN }}
</fieldset>
<!-- ENDIF -->
{% endif %}
</form>
<!-- INCLUDE ucp_footer.html -->
{% INCLUDE 'ucp_footer.html' %}

View File

@@ -1 +1 @@
<!-- DEFINE $MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE -->
{% DEFINE MCHAT_USE_WHITE_MESSAGE_ICONS = TRUE %}

View File

@@ -1,2 +1,2 @@
<!-- INCLUDECSS @dmzx_mchat/mchat.css -->
<!-- INCLUDECSS @dmzx_mchat/mchat_custom.css -->
{% INCLUDECSS '@dmzx_mchat/mchat.css' %}
{% INCLUDECSS '@dmzx_mchat/mchat_custom.css' %}

View File

@@ -1 +1 @@
<li class="tab mchat" data-select-match="mchat" data-responsive-class="tab small-icon icon-mchat"><a class="nav-link mchat-nav-link mchat-nav-link-title" href="{U_MCHAT}" title="{MCHAT_TITLE_HINT}" role="menuitem">{MCHAT_TITLE}</a></li>
<li class="tab mchat" data-select-match="mchat" data-responsive-class="tab small-icon icon-mchat"><a class="nav-link mchat-nav-link mchat-nav-link-title" href="{{ U_MCHAT }}" title="{{ MCHAT_TITLE_HINT }}" role="menuitem">{{ MCHAT_TITLE }}</a></li>

View File

@@ -13,6 +13,8 @@ namespace dmzx\mchat\ucp;
class ucp_mchat_module
{
public $tpl_name;
public $page_title;
public $u_action;
public function main($id, $mode)