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 class acp_mchat_module
{ {
public $tpl_name;
public $page_title;
public $u_action; public $u_action;
public function main($id, $mode) 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"> <div class="errorbox">
<h3>{L_WARNING}</h3> <h3>{{ lang('WARNING') }}</h3>
<p>{MCHAT_ERROR}</p> <p>{{ MCHAT_ERROR }}</p>
</div> </div>
<!-- ENDIF --> {% endif %}
<form id="acp_mchat" method="post" action="{U_ACTION}"> <form id="acp_mchat" method="post" action="{{ U_ACTION }}">
<fieldset> <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> <dl>
<dt><label for="mchat_index_height">{L_MCHAT_INDEX_HEIGHT}{L_COLON}</label><br /> <dt><label for="mchat_index_height">{{ lang('MCHAT_INDEX_HEIGHT') ~ lang('COLON') }}</label><br />
<span>{L_MCHAT_INDEX_HEIGHT_EXPLAIN}</span></dt> <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>{L_PIXEL}</span></dd> <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>
<dl> <dl>
<dt><label for="mchat_message_num_index">{L_MCHAT_MESSAGE_NUM_INDEX}{L_COLON}</label><br /> <dt><label for="mchat_message_num_index">{{ lang('MCHAT_MESSAGE_NUM_INDEX') ~ lang('COLON') }}</label><br />
<span>{L_MCHAT_MESSAGE_NUM_INDEX_EXPLAIN}</span></dt> <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>{L_MCHAT_ACP_MESSAGES}</span></dd> <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> </dl>
<!-- EVENT dmzx_mchat_acp_message_num_index_after --> {% EVENT dmzx_mchat_acp_message_num_index_after %}
</fieldset> </fieldset>
<!-- EVENT acp_dmzx_mchat_globalsettings_index_after --> {% EVENT acp_dmzx_mchat_globalsettings_index_after %}
<fieldset> <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> <dl>
<dt><label for="mchat_custom_page">{L_MCHAT_CUSTOM_PAGE}{L_COLON}</label></dt> <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 --> /> {L_YES}</label> <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 --> /> {L_NO}</label></dd> <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>
<dl> <dl>
<dt><label for="mchat_custom_height">{L_MCHAT_CUSTOM_HEIGHT}{L_COLON}</label><br /> <dt><label for="mchat_custom_height">{{ lang('MCHAT_CUSTOM_HEIGHT') ~ lang('COLON') }}</label><br />
<span>{L_MCHAT_CUSTOM_HEIGHT_EXPLAIN}</span></dt> <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>{L_PIXEL}</span></dd> <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>
<dl> <dl>
<dt><label for="mchat_message_num_custom">{L_MCHAT_MESSAGE_NUM_CUSTOM}{L_COLON}</label><br /> <dt><label for="mchat_message_num_custom">{{ lang('MCHAT_MESSAGE_NUM_CUSTOM') ~ lang('COLON') }}</label><br />
<span>{L_MCHAT_MESSAGE_NUM_CUSTOM_EXPLAIN}</span></dt> <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>{L_MCHAT_ACP_MESSAGES}</span></dd> <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>
<dl> <dl>
<dt><label for="mchat_navbar_link">{L_MCHAT_NAVBAR_LINK}{L_COLON}</label></dt> <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 --> /> {L_YES}</label> <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 --> /> {L_NO}</label></dd> <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>
<dl> <dl>
<dt><label for="mchat_navbar_link_count">{L_MCHAT_NAVBAR_LINK_COUNT}{L_COLON}</label></dt> <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 --> /> {L_YES}</label> <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 --> /> {L_NO}</label></dd> <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> </dl>
<!-- EVENT dmzx_mchat_acp_navbar_link_count_after --> {% EVENT dmzx_mchat_acp_navbar_link_count_after %}
</fieldset> </fieldset>
<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> <dl>
<dt><label for="mchat_message_num_archive">{L_MCHAT_MESSAGE_NUM_ARCHIVE}{L_COLON}</label><br /> <dt><label for="mchat_message_num_archive">{{ lang('MCHAT_MESSAGE_NUM_ARCHIVE') ~ lang('COLON') }}</label><br />
<span>{L_MCHAT_MESSAGE_NUM_ARCHIVE_EXPLAIN}</span></dt> <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>{L_MCHAT_ACP_MESSAGES}</span></dd> <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> </dl>
<!-- EVENT dmzx_mchat_acp_message_num_archive_after --> {% EVENT dmzx_mchat_acp_message_num_archive_after %}
<dl> <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> <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="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 --> /> {L_MCHAT_ARCHIVE_SORT_BOTTOM_TOP}</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 --> /> {L_MCHAT_ARCHIVE_SORT_USER}</label> <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> </dd>
</dl> </dl>
</fieldset> </fieldset>
<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> <dl>
<dt><label for="mchat_timeout">{L_MCHAT_TIMEOUT}{L_COLON}</label><br /> <dt><label for="mchat_timeout">{{ lang('MCHAT_TIMEOUT') ~ lang('COLON') }}</label><br />
<span>{L_MCHAT_TIMEOUT_EXPLAIN}</span></dt> <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>{L_MCHAT_ACP_SECONDS}</span></dd> <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>
<dl> <dl>
<dt><label for="mchat_refresh">{L_MCHAT_REFRESH}{L_COLON}</label><br /> <dt><label for="mchat_refresh">{{ lang('MCHAT_REFRESH') ~ lang('COLON') }}</label><br />
<span>{L_MCHAT_REFRESH_EXPLAIN}</span></dt> <span>{{ lang('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> <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>
<dl> <dl>
<dt><label for="mchat_edit_delete_limit">{L_MCHAT_EDIT_DELETE_LIMIT}{L_COLON}</label><br /> <dt><label for="mchat_edit_delete_limit">{{ lang('MCHAT_EDIT_DELETE_LIMIT') ~ lang('COLON') }}</label><br />
<span>{L_MCHAT_EDIT_DELETE_LIMIT_EXPLAIN}</span> <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>{L_MCHAT_ACP_SECONDS}</dd> <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>
<dl> <dl>
<dt><label for="mchat_live_updates">{L_MCHAT_LIVE_UPDATES}{L_COLON}</label><br /> <dt><label for="mchat_live_updates">{{ lang('MCHAT_LIVE_UPDATES') ~ lang('COLON') }}</label><br />
<span>{L_MCHAT_LIVE_UPDATES_EXPLAIN}</span></dt> <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 --> /> {L_YES}</label> <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 --> /> {L_NO}</label></dd> <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>
<dl> <dl>
<dt><label for="mchat_flood_time">{L_MCHAT_FLOOD_TIME}{L_COLON}</label><br /> <dt><label for="mchat_flood_time">{{ lang('MCHAT_FLOOD_TIME') ~ lang('COLON') }}</label><br />
<span>{L_MCHAT_FLOOD_TIME_EXPLAIN}</span></dt> <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>{L_MCHAT_ACP_SECONDS}</dd> <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>
<dl> <dl>
<dt><label for="mchat_max_message_lngth">{L_MCHAT_MAX_MESSAGE_LENGTH}{L_COLON}</label><br /> <dt><label for="mchat_max_message_lngth">{{ lang('MCHAT_MAX_MESSAGE_LENGTH') ~ lang('COLON') }}</label><br />
<span>{L_MCHAT_MAX_MESSAGE_LENGTH_EXPLAIN}</span></dt> <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>{L_MCHAT_ACP_CHARACTERS}</dd> <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>
<dl> <dl>
<dt><label for="mchat_override_min_post_chars">{L_MCHAT_OVERRIDE_MIN_POST_CHARS}{L_COLON}</label><br /> <dt><label for="mchat_override_min_post_chars">{{ lang('MCHAT_OVERRIDE_MIN_POST_CHARS') ~ lang('COLON') }}</label><br />
<span>{L_MCHAT_OVERRIDE_MIN_POST_CHARS_EXPLAIN}</span></dt> <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 --> /> {L_YES}</label> <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 --> /> {L_NO}</label></dd> <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>
<dl> <dl>
<dt><label for="mchat_override_smilie_limit">{L_MCHAT_OVERRIDE_SMILIE_LIMIT}{L_COLON}</label><br /> <dt><label for="mchat_override_smilie_limit">{{ lang('MCHAT_OVERRIDE_SMILIE_LIMIT') ~ lang('COLON') }}</label><br />
<span>{L_MCHAT_OVERRIDE_SMILIE_LIMIT_EXPLAIN}</span></dt> <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 --> /> {L_YES}</label> <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 --> /> {L_NO}</label></dd> <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>
<dl> <dl>
<dt><label for="mchat_bbcode_disallowed">{L_MCHAT_BBCODES_DISALLOWED}{L_COLON}</label><br /> <dt><label for="mchat_bbcode_disallowed">{{ lang('MCHAT_BBCODES_DISALLOWED') ~ lang('COLON') }}</label><br />
<span>{L_MCHAT_BBCODES_DISALLOWED_EXPLAIN}</span></dt> <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> <dd><textarea name="mchat_bbcode_disallowed" id="mchat_bbcode_disallowed" rows="3" cols="40">{{ MCHAT_BBCODE_DISALLOWED }}</textarea></dd>
</dl> </dl>
<dl> <dl>
<dt><label for="mchat_rules">{L_MCHAT_RULES}{L_COLON}</label><br /> <dt><label for="mchat_rules">{{ lang('MCHAT_RULES') ~ lang('COLON') }}</label><br />
<span>{L_MCHAT_RULES_EXPLAIN}</span></dt> <span>{{ lang('MCHAT_RULES_EXPLAIN') }}</span></dt>
<dd><textarea name="mchat_rules" id="mchat_rules" rows="5" cols="40">{MCHAT_RULES}</textarea></dd> <dd><textarea name="mchat_rules" id="mchat_rules" rows="5" cols="40">{{ MCHAT_RULES }}</textarea></dd>
</dl> </dl>
<dl> <dl>
<dt><label for="mchat_static_message">{L_MCHAT_STATIC_MESSAGE}{L_COLON}</label><br /> <dt><label for="mchat_static_message">{{ lang('MCHAT_STATIC_MESSAGE') ~ lang('COLON') }}</label><br />
<span>{L_MCHAT_STATIC_MESSAGE_EXPLAIN}</span></dt> <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> <dd><textarea name="mchat_static_message" id="mchat_static_message" rows="5" cols="40">{{ MCHAT_STATIC_MESSAGE }}</textarea></dd>
</dl> </dl>
<!-- EVENT dmzx_mchat_acp_static_message_after --> {% EVENT dmzx_mchat_acp_static_message_after %}
</fieldset> </fieldset>
<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> <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> <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="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 --> /> {L_NO}</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> </dd>
</dl> </dl>
<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> <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="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 --> /> {L_NO}</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> </dd>
</dl> </dl>
<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> <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="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 --> /> {L_NO}</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> </dd>
</dl> </dl>
<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> <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="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 --> /> {L_NO}</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> </dd>
</dl> </dl>
<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> <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="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 --> /> {L_NO}</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> </dd>
</dl> </dl>
<!-- EVENT dmzx_mchat_acp_posts_login_after --> {% EVENT dmzx_mchat_acp_posts_login_after %}
</fieldset> </fieldset>
<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> <dl>
<dt><label for="mchat_whois_refresh">{L_MCHAT_WHOIS_REFRESH}{L_COLON}</label><br /> <dt><label for="mchat_whois_refresh">{{ lang('MCHAT_WHOIS_REFRESH') ~ lang('COLON') }}</label><br />
<span>{L_MCHAT_WHOIS_REFRESH_EXPLAIN}</span></dt> <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>{L_MCHAT_ACP_SECONDS}</dd> <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> </dl>
<!-- EVENT dmzx_mchat_acp_whois_refresh_after --> {% EVENT dmzx_mchat_acp_whois_refresh_after %}
</fieldset> </fieldset>
<!-- IF MCHAT_FOUNDER --> {% if MCHAT_FOUNDER %}
<fieldset> <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> <dl>
<dt><label for="mchat_prune">{L_MCHAT_PRUNE}{L_COLON}</label></dt> <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 --> /> {L_YES}</label> <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 --> /> {L_NO}</label></dd> <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>
<dl> <dl>
<dt><label for="mchat_prune_gc">{L_MCHAT_PRUNE_GC}{L_COLON}</label><br /> <dt><label for="mchat_prune_gc">{{ lang('MCHAT_PRUNE_GC') ~ lang('COLON') }}</label><br />
<span>{L_MCHAT_PRUNE_GC_EXPLAIN}</span></dt> <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>{L_MCHAT_ACP_SECONDS}</dd> <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>
<dl> <dl>
<dt><label for="mchat_prune_num">{L_MCHAT_PRUNE_NUM}{L_COLON}</label><br /> <dt><label for="mchat_prune_num">{{ lang('MCHAT_PRUNE_NUM') ~ lang('COLON') }}</label><br />
<span>{L_MCHAT_PRUNE_NUM_EXPLAIN}</span></dt> <span>{{ lang('MCHAT_PRUNE_NUM_EXPLAIN') }}</span></dt>
<dd> <dd>
<input type="text" name="mchat_prune_num" size="10" id="mchat_prune_num" value="{MCHAT_PRUNE_NUM}" /> <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}"> <select name="mchat_prune_mode" id="mchat_prune_mode" title="{{ lang('MCHAT_PRUNE_NUM') }}">
{S_MCHAT_PRUNE_MODE_OPTIONS} {{ S_MCHAT_PRUNE_MODE_OPTIONS }}
</select> </select>
</dd> </dd>
</dl> </dl>
<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> <dd>
<input class="button1" type="submit" id="mchat_prune_now" name="mchat_prune_now" value="{L_MCHAT_PRUNE_NOW}" /> <input class="button1" type="submit" id="mchat_prune_now" name="mchat_prune_now" value="{{ lang('MCHAT_PRUNE_NOW') }}" />
<label>{L_MCHAT_PRUNE_NOW_CONFIRM}{L_COLON}</label> <label>{{ lang('MCHAT_PRUNE_NOW_CONFIRM') ~ lang('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="1" /> {{ lang('YES') }}</label>
<label><input type="radio" name="mchat_prune_now_confirm" value="0" id="mchat_prune_now_confirm" checked="checked" /> {L_NO}</label> <label><input type="radio" name="mchat_prune_now_confirm" value="0" id="mchat_prune_now_confirm" checked="checked" /> {{ lang('NO') }}</label>
</dd> </dd>
</dl> </dl>
<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> <dd>
<input class="button1" type="submit" id="mchat_purge" name="mchat_purge" value="{L_MCHAT_PURGE}" /> <input class="button1" type="submit" id="mchat_purge" name="mchat_purge" value="{{ lang('MCHAT_PURGE') }}" />
<label>{L_MCHAT_PURGE_CONFIRM}{L_COLON}</label> <label>{{ lang('MCHAT_PURGE_CONFIRM') ~ lang('COLON') }}</label>
<label><input type="radio" name="mchat_purge_confirm" value="1" /> {L_YES}</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" /> {L_NO}</label> <label><input type="radio" name="mchat_purge_confirm" value="0" id="mchat_purge_confirm" checked="checked" /> {{ lang('NO') }}</label>
</dd> </dd>
</dl> </dl>
<!-- EVENT dmzx_mchat_acp_purge_after --> {% EVENT dmzx_mchat_acp_purge_after %}
</fieldset> </fieldset>
<!-- ENDIF --> {% endif %}
<!-- EVENT acp_dmzx_mchat_globalsettings_after --> {% EVENT acp_dmzx_mchat_globalsettings_after %}
<p class="submit-buttons"> <fieldset>
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />&nbsp; <legend>{{ lang('ACP_SUBMIT_CHANGES') }}</legend>
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" /> <p class="submit-buttons">
{S_FORM_TOKEN} <input class="button1" type="submit" id="submit" name="submit" value="{{ lang('SUBMIT') }}" />&nbsp;
</p> <input class="button2" type="reset" id="reset" name="reset" value="{{ lang('RESET') }}" />
</p>
{{ S_FORM_TOKEN }}
</fieldset>
</form> </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"> <div class="errorbox">
<h3>{L_WARNING}</h3> <h3>{{ lang('WARNING') }}</h3>
<p>{MCHAT_ERROR}</p> <p>{{ MCHAT_ERROR }}</p>
</div> </div>
<!-- ENDIF --> {% endif %}
<form id="acp_mchat" method="post" action="{U_ACTION}"> <form id="acp_mchat" method="post" action="{{ U_ACTION }}">
<fieldset> <fieldset>
<legend>{L_ACP_MCHAT_GLOBALUSERSETTINGS}</legend> <legend>{{ lang('ACP_MCHAT_GLOBALUSERSETTINGS') }}</legend>
<!-- INCLUDE @dmzx_mchat/acp_mchat_globalusersettings_content.html --> {% INCLUDE '@dmzx_mchat/acp_mchat_globalusersettings_content.html' %}
</fieldset> </fieldset>
<fieldset> <fieldset>
<legend>{L_MCHAT_GLOBALUSERSETTINGS_OVERWRITE}</legend> <legend>{{ lang('MCHAT_GLOBALUSERSETTINGS_OVERWRITE') }}</legend>
<dl> <dl>
<dt><label for="mchat_overwrite">{L_MCHAT_GLOBALUSERSETTINGS_OVERWRITE}{L_COLON}</label><br /><span>{L_MCHAT_GLOBALUSERSETTINGS_OVERWRITE_EXPLAIN}</span></dt> <dt><label for="mchat_overwrite">{{ lang('MCHAT_GLOBALUSERSETTINGS_OVERWRITE') ~ lang('COLON') }}</label><br /><span>{{ lang('MCHAT_GLOBALUSERSETTINGS_OVERWRITE_EXPLAIN') }}</span></dt>
<dd> <dd>
<label><input type="radio" name="mchat_overwrite" value="1" /> {L_YES}</label> <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" /> {L_NO}</label> <label><input type="radio" name="mchat_overwrite" value="0" id="mchat_overwrite" checked="checked" /> {{ lang('NO') }}</label>
</dd> </dd>
</dl> </dl>
<dl> <dl>
<dt><label for="mchat_overwrite_confirm">{L_MCHAT_GLOBALUSERSETTINGS_OVERWRITE_CONFIRM}{L_COLON}</label></dt> <dt><label for="mchat_overwrite_confirm">{{ lang('MCHAT_GLOBALUSERSETTINGS_OVERWRITE_CONFIRM') ~ lang('COLON') }}</label></dt>
<dd> <dd>
<label><input type="radio" name="mchat_overwrite_confirm" value="1" /> {L_YES}</label> <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" /> {L_NO}</label> <label><input type="radio" name="mchat_overwrite_confirm" value="0" id="mchat_overwrite_confirm" checked="checked" /> {{ lang('NO') }}</label>
</dd> </dd>
</dl> </dl>
</fieldset> </fieldset>
<fieldset>
<legend>{{ lang('ACP_SUBMIT_CHANGES') }}</legend>
<p class="submit-buttons"> <p class="submit-buttons">
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />&nbsp; <input class="button1" type="submit" id="submit" name="submit" value="{{ lang('SUBMIT') }}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" /> <input class="button2" type="reset" id="reset" name="reset" value="{{ lang('RESET') }}" />
{S_FORM_TOKEN}
</p> </p>
{{ S_FORM_TOKEN }}
</fieldset>
</form> </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> <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> <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="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 --> /> {L_NO}</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> </dd>
</dl> </dl>
<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> <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="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 --> /> {L_NO}</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> </dd>
</dl> </dl>
<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> <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="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 --> /> {L_NO}</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> </dd>
</dl> </dl>
<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> <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="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 --> /> {L_MCHAT_BOTTOM}</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> </dd>
</dl> </dl>
<!-- EVENT dmzx_mchat_acp_location_after --> {% EVENT dmzx_mchat_acp_location_after %}
<hr /> <hr />
<!-- EVENT dmzx_mchat_acp_message_top_before --> {% EVENT dmzx_mchat_acp_message_top_before %}
<dl> <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> <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="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 --> /> {L_MCHAT_BOTTOM}</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> </dd>
</dl> </dl>
<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> <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="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 --> /> {L_NO}</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> </dd>
</dl> </dl>
<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> <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="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 --> /> {L_NO}</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> </dd>
</dl> </dl>
<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> <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="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 --> /> {L_NO}</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> </dd>
</dl> </dl>
<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> <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="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 --> /> {L_MCHAT_TEXT_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> </dd>
</dl> </dl>
<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> <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="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 --> /> {L_NO}</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> </dd>
</dl> </dl>
<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> <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="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 --> /> {L_NO}</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> </dd>
</dl> </dl>
<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> <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 -->> <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} {{ S_MCHAT_DATEFORMAT_OPTIONS }}
</select> </select>
</dd> </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>
<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> <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="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 --> /> {L_NO}</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> </dd>
</dl> </dl>
<!-- EVENT dmzx_mchat_acp_relative_time_after --> {% EVENT dmzx_mchat_acp_relative_time_after %}
<hr /> <hr />
<!-- EVENT dmzx_mchat_acp_posts_before --> {% EVENT dmzx_mchat_acp_posts_before %}
<dl> <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> <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="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 --> /> {L_NO}</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> </dd>
</dl> </dl>
<!-- EVENT dmzx_mchat_acp_posts_after --> {% EVENT dmzx_mchat_acp_posts_after %}

View File

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

View File

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

View File

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

View File

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

View File

@@ -56,6 +56,9 @@ class functions
/** @var string */ /** @var string */
protected $mchat_sessions_table; protected $mchat_sessions_table;
/** @var array */
protected $active_users;
/** @var array */ /** @var array */
public $log_types = array( public $log_types = array(
1 => 'edit', 1 => 'edit',
@@ -177,10 +180,16 @@ class functions
/** /**
* Returns data about users who are currently chatting * Returns data about users who are currently chatting
* *
* @param bool $cached Whether to return possibly cached data
* @return array * @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(); $check_time = time() - $this->mchat_session_time();
$sql_array = array( $sql_array = array(
@@ -258,6 +267,8 @@ class functions
); );
extract($this->dispatcher->trigger_event('dmzx.mchat.active_users_after', compact($vars))); extract($this->dispatcher->trigger_event('dmzx.mchat.active_users_after', compact($vars)));
$this->active_users = $active_users;
return $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( $sql = 'INSERT INTO ' . $this->mchat_sessions_table . ' ' . $this->db->sql_build_array('INSERT', array(
'user_id' => (int) $this->user->data['user_id'], 'user_id' => (int) $this->user->data['user_id'],
'user_ip' => $this->user->data['user_ip'], 'user_ip' => $this->user->ip,
'user_lastupdate' => time(), 'user_lastupdate' => time(),
)); ));
$this->db->sql_query($sql); $this->db->sql_query($sql);
@@ -349,9 +360,23 @@ class functions
$offset = 0; $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); $sql = $this->db->sql_build_query('SELECT', $sql_array);
$result = $this->db->sql_query_limit($sql, 0, $offset); $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); $this->db->sql_freeresult($result);
$prune_ids = array(); $prune_ids = array();
@@ -366,7 +391,7 @@ class functions
* *
* @event dmzx.mchat.prune_before * @event dmzx.mchat.prune_before
* @var array prune_ids Array of message IDs that are about to be pruned * @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 * @since 2.0.0-RC6
* @changed 2.0.1 Added user_ids * @changed 2.0.1 Added user_ids
*/ */
@@ -395,7 +420,7 @@ class functions
/** /**
* Returns the total number of messages * Returns the total number of messages
* *
* @return string * @return int
*/ */
public function mchat_total_message_count() public function mchat_total_message_count()
{ {
@@ -757,7 +782,7 @@ class functions
'login' => 'mchat_posts_login', '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 // Special treatment for login notifications
if ($mode === 'login') if ($mode === 'login')
@@ -770,7 +795,7 @@ class functions
'forum_id' => (int) $forum_id, 'forum_id' => (int) $forum_id,
'post_id' => (int) $post_id, 'post_id' => (int) $post_id,
'user_id' => (int) $this->user->data['user_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' => 'MCHAT_NEW_' . strtoupper($mode),
'message_time' => time(), 'message_time' => time(),
); );

View File

@@ -71,9 +71,6 @@ class mchat
/** @var boolean */ /** @var boolean */
protected $remove_disallowed_bbcodes = false; protected $remove_disallowed_bbcodes = false;
/** @var array */
protected $active_users = null;
/** @var array */ /** @var array */
protected $foes = null; protected $foes = null;
@@ -155,8 +152,6 @@ class mchat
$this->assign_bbcodes_smilies(); $this->assign_bbcodes_smilies();
$this->render_page('index'); $this->render_page('index');
$this->template->assign_var('MCHAT_IS_INDEX', true);
} }
/** /**
@@ -189,8 +184,6 @@ class mchat
$this->assign_bbcodes_smilies(); $this->assign_bbcodes_smilies();
$this->template->assign_var('MCHAT_IS_CUSTOM_PAGE', true);
$this->render_page('custom'); $this->render_page('custom');
// Add to navlinks // Add to navlinks
@@ -221,8 +214,6 @@ class mchat
throw new http_exception(403, 'MCHAT_NOACCESS_ARCHIVE'); throw new http_exception(403, 'MCHAT_NOACCESS_ARCHIVE');
} }
$this->template->assign_var('MCHAT_IS_ARCHIVE_PAGE', true);
$this->render_page('archive'); $this->render_page('archive');
// Add to navlinks // Add to navlinks
@@ -291,7 +282,7 @@ class mchat
$lang_rules = $this->user->lang('MCHAT_RULES_MESSAGE'); $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'); throw new http_exception(404, 'MCHAT_NO_RULES');
} }
@@ -332,7 +323,7 @@ class mchat
* User submits a message * User submits a message
* *
* @param bool $return_raw * @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) public function action_add($return_raw = false)
{ {
@@ -354,7 +345,7 @@ class mchat
$message_data = array_merge($message_data, array( $message_data = array_merge($message_data, array(
'user_id' => $this->user->data['user_id'], 'user_id' => $this->user->data['user_id'],
'user_ip' => $this->user->data['session_ip'], 'user_ip' => $this->user->ip,
'message_time' => time(), 'message_time' => time(),
)); ));
@@ -408,7 +399,7 @@ class mchat
* User edits a message * User edits a message
* *
* @param bool $return_raw * @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) public function action_edit($return_raw = false)
{ {
@@ -434,7 +425,7 @@ class mchat
throw new http_exception(403, 'NO_AUTH_OPERATION'); 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); $message = $this->request->variable('message', '', true);
$sql_ary = $this->process_message($message); $sql_ary = $this->process_message($message);
@@ -474,7 +465,7 @@ class mchat
* User deletes a message * User deletes a message
* *
* @param bool $return_raw * @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) public function action_del($return_raw = false)
{ {
@@ -528,7 +519,7 @@ class mchat
* User checks for new messages * User checks for new messages
* *
* @param bool $return_raw * @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) public function action_refresh($return_raw = false)
{ {
@@ -693,7 +684,7 @@ class mchat
* User requests who is chatting * User requests who is chatting
* *
* @param bool $return_raw * @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) public function action_whois($return_raw = false)
{ {
@@ -701,12 +692,18 @@ class mchat
$this->assign_whois(); $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['container'] = $this->render_template('mchat_whois.html');
$response['navlink_title'] = strip_tags($this->active_users['users_total']); }
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 ($navbar_link && $custom_page && $this->settings->cfg('mchat_navbar_link_count'))
{ {
if ($this->active_users === null) $active_users = $this->functions->mchat_active_users();
{ $template_data['MCHAT_TITLE'] = $active_users['users_count_title'];
$this->active_users = $this->functions->mchat_active_users(); $template_data['MCHAT_TITLE_HINT'] = strip_tags($active_users['users_total']);
}
$template_data['MCHAT_TITLE'] = $this->active_users['users_count_title'];
$template_data['MCHAT_TITLE_HINT'] = strip_tags($this->active_users['users_total']);
} }
$this->template->assign_vars($template_data); $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 // 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'); $lang_static_message = $this->user->lang('MCHAT_STATIC_MESSAGE');
$static_message = $lang_static_message ?: $this->settings->cfg('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( $this->template->assign_vars(array(
'MCHAT_PAGE' => $page, 'MCHAT_PAGE' => $page,
@@ -803,17 +797,16 @@ class mchat
'MCHAT_PAUSE_ON_INPUT' => $this->settings->cfg('mchat_pause_on_input'), 'MCHAT_PAUSE_ON_INPUT' => $this->settings->cfg('mchat_pause_on_input'),
'MCHAT_MESSAGE_LNGTH' => $this->settings->cfg('mchat_max_message_lngth'), 'MCHAT_MESSAGE_LNGTH' => $this->settings->cfg('mchat_max_message_lngth'),
'MCHAT_WHOIS_INDEX' => $this->settings->cfg('mchat_whois_index'), '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_REFRESH_JS' => $this->settings->cfg('mchat_refresh') * 1000,
'MCHAT_ARCHIVE' => $this->auth->acl_get('u_mchat_archive'), 'MCHAT_ARCHIVE' => $this->auth->acl_get('u_mchat_archive'),
'MCHAT_RULES' => $this->user->lang('MCHAT_RULES_MESSAGE') || $this->settings->cfg('mchat_rules'), '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_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_LOG_ID' => $this->functions->get_latest_log_id(),
'MCHAT_STATIC_MESS' => htmlspecialchars_decode($static_message), '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'))), 'MCHAT_MAX_MESSAGE_LENGTH' => $this->settings->cfg('mchat_max_message_lngth'),
'A_MCHAT_REFRESH_YES' => addslashes($this->user->lang('MCHAT_REFRESH_YES', $this->settings->cfg('mchat_refresh'))), 'MCHAT_REFRESH_RATE' => $this->settings->cfg('mchat_refresh'),
'A_COOKIE_NAME' => addslashes($this->settings->cfg('cookie_name', true) . '_'), 'COOKIE_NAME' => $this->settings->cfg('cookie_name', true) . '_',
'U_MCHAT_CUSTOM_PAGE' => $this->helper->route('dmzx_mchat_page_custom_controller'), '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_RULES' => $this->helper->route('dmzx_mchat_page_rules_controller'),
'U_MCHAT_ARCHIVE_URL' => $this->helper->route('dmzx_mchat_page_archive_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 // The template needs some language variables if we display relative time for messages
if ($this->settings->cfg('mchat_relative_time')) if ($this->settings->cfg('mchat_relative_time'))
{ {
$minutes_limit = $this->get_relative_minutes_limit(); $this->template->assign_var('MCHAT_MINUTES_AGO_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,
));
}
} }
// Get actions which the user is allowed to perform on the current page // 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()), 'del' => $this->auth_message('delete', true, time()),
'refresh' => $page !== 'archive' && $this->auth->acl_get('u_mchat_view'), 'refresh' => $page !== 'archive' && $this->auth->acl_get('u_mchat_view'),
'add' => $page !== 'archive' && $this->auth->acl_get('u_mchat_use'), '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( $this->template->assign_block_vars('mchaturl', array(
'ACTION' => $action, 'ACTION' => $action,
'URL' => $this->helper->route('dmzx_mchat_action_' . $action . '_controller', array(), false), '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() 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_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_ALLOW_DEL' => $this->auth_message('delete', $row['user_id'], $row['message_time']),
'MCHAT_USER_AVATAR' => $user_avatars[$row['user_id']], '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_POSTER' => $is_poster,
'MCHAT_IS_NOTIFICATION' => (bool) $row['post_id'], '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_EDIT' => $message_for_edit['text'],
'MCHAT_MESSAGE_ID' => $row['message_id'], 'MCHAT_MESSAGE_ID' => $row['message_id'],
'MCHAT_USERNAME_FULL' => $username_full, '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_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_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_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_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_TIME' => $minutes_ago === -1 ? $datetime : $this->user->lang('MCHAT_MINUTES_AGO', $minutes_ago),
'MCHAT_DATETIME' => $absolute_datetime, '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 * @param array $row
* @return bool * @return bool
@@ -1355,7 +1339,7 @@ class mchat
$this->template->assign_var($option['template_var'], !$is_disallowed); $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')) 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->settings->cfg('mchat_whois_index') || $this->settings->cfg('mchat_stats_index'))
{ {
if ($this->active_users === null) $active_users = $this->functions->mchat_active_users();
{
$this->active_users = $this->functions->mchat_active_users();
}
$this->template->assign_vars(array( $this->template->assign_vars(array(
'MCHAT_STATS_INDEX' => $this->settings->cfg('mchat_stats_index'), 'MCHAT_STATS_INDEX' => $this->settings->cfg('mchat_stats_index'),
'MCHAT_USERS_TOTAL' => $this->active_users['users_total'], 'MCHAT_USERS_TOTAL' => $active_users['users_total'],
'MCHAT_USERS_LIST' => $this->active_users['online_userlist'] ?: '', 'MCHAT_USERS_LIST' => $active_users['online_userlist'] ?: '',
'MCHAT_ONLINE_EXPLAIN' => $this->active_users['refresh_message'], '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 string $mode One of edit|delete
* @param int $author_id The user id of the message * @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\auth\auth;
use phpbb\config\config; use phpbb\config\config;
use phpbb\config\db_text;
use phpbb\event\dispatcher_interface; use phpbb\event\dispatcher_interface;
use phpbb\user; use phpbb\user;
@@ -24,6 +25,9 @@ class settings
/** @var config */ /** @var config */
protected $config; protected $config;
/** @var db_text */
protected $config_text;
/** @var auth */ /** @var auth */
protected $auth; protected $auth;
@@ -38,6 +42,21 @@ class settings
*/ */
protected $global_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 * Keys for user-specific settings for which the administrator can set default
* values as well as adjust permissions to allow users to customize them. * values as well as adjust permissions to allow users to customize them.
@@ -80,18 +99,21 @@ class settings
* *
* @param user $user * @param user $user
* @param config $config * @param config $config
* @param db_text $config_text
* @param auth $auth * @param auth $auth
* @param dispatcher_interface $dispatcher * @param dispatcher_interface $dispatcher
*/ */
public function __construct( public function __construct(
user $user, user $user,
config $config, config $config,
db_text $config_text,
auth $auth, auth $auth,
dispatcher_interface $dispatcher dispatcher_interface $dispatcher
) )
{ {
$this->user = $user; $this->user = $user;
$this->config = $config; $this->config = $config;
$this->config_text = $config_text;
$this->auth = $auth; $this->auth = $auth;
$this->dispatcher = $dispatcher; $this->dispatcher = $dispatcher;
@@ -121,6 +143,7 @@ class settings
'mchat_navbar_link_count' => array('default' => 1), 'mchat_navbar_link_count' => array('default' => 1),
'mchat_override_min_post_chars' => array('default' => 0), 'mchat_override_min_post_chars' => array('default' => 0),
'mchat_override_smilie_limit' => 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_edit' => array('default' => 0),
'mchat_posts_quote' => array('default' => 0), 'mchat_posts_quote' => array('default' => 0),
'mchat_posts_reply' => array('default' => 0), 'mchat_posts_reply' => array('default' => 0),
@@ -131,8 +154,6 @@ class settings
'mchat_prune_mode' => array('default' => 0), 'mchat_prune_mode' => array('default' => 0),
'mchat_prune_num' => array('default' => 0), 'mchat_prune_num' => array('default' => 0),
'mchat_refresh' => array('default' => 10, 'validation' => array('num', false, 5, 60)), '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_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)), 'mchat_whois_refresh' => array('default' => 60, 'validation' => array('num', false, 10, 300)),
); );
@@ -152,6 +173,31 @@ class settings
return $global_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 * @return array
*/ */
@@ -202,6 +248,46 @@ class settings
return $this->global_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 * @return array
*/ */
@@ -234,23 +320,48 @@ class settings
*/ */
public function cfg_user($config, $user_data, $auth, $force_global = false) public function cfg_user($config, $user_data, $auth, $force_global = false)
{ {
$ucp_settings = $this->ucp_settings(); if (!$force_global)
if (!$force_global && isset($ucp_settings[$config]) && $auth->acl_get('u_' . $config))
{ {
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]; return $this->config[$config];
} }
/** /**
* @param $config * @param string $config
* @param $value * @param mixed $value
* @param bool $volatile * @param bool $volatile
*/ */
public function set_cfg($config, $value, $volatile = false) 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) if ($volatile)
{ {
$this->config[$config] = $value; $this->config[$config] = $value;
@@ -290,7 +401,7 @@ class settings
return array( return array(
'S_MCHAT_DATEFORMAT_OPTIONS' => $dateformat_options, '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, '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')); $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(); $auth = new auth();
$userdata = $auth->obtain_user_data($user_id); $userdata = $auth->obtain_user_data($user_id);

View File

@@ -13,9 +13,9 @@ namespace dmzx\mchat\event;
use dmzx\mchat\core\mchat; use dmzx\mchat\core\mchat;
use phpbb\controller\helper; use phpbb\controller\helper;
use phpbb\event\data;
use phpbb\request\request_interface; use phpbb\request\request_interface;
use phpbb\user; use phpbb\user;
use Symfony\Component\EventDispatcher\Event;
use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class main_listener implements 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) 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) 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 * 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(); $this->mchat->render_page_header_link();
} }
/** /**
* Check if mchat should be displayed on index. * 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(); $this->mchat->page_index();
} }
/** /**
* @param Event $event * @param data $event
*/ */
public function insert_posting($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) 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) 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) 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); $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(); $this->mchat->session_gc();
} }

View File

@@ -52,7 +52,7 @@ class ext extends \phpbb\extension\base
} }
$php_ext = $this->container->getParameter('core.php_ext'); $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); 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. * 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. * 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 * @return array
*/ */
protected function get_old_module_ids($table_prefix) protected function get_old_module_ids($table_prefix)
@@ -84,7 +84,7 @@ class ext extends \phpbb\extension\base
FROM ' . $table_prefix . 'modules FROM ' . $table_prefix . 'modules
WHERE ' . $db->sql_in_set('module_langname', $mchat_30x_module_langnames); WHERE ' . $db->sql_in_set('module_langname', $mchat_30x_module_langnames);
$result = $db->sql_query($sql); $result = $db->sql_query($sql);
$rows = $db->sql_fetchrowset(); $rows = $db->sql_fetchrowset($result);
$db->sql_freeresult($result); $db->sql_freeresult($result);
$module_ids = array(); $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 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_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_MCHAT_TABLE_PURGED' => '<strong>mChat messages purged</strong><br />» %1$s',
'LOG_DELETED_MCHAT' => '<strong>mChat message deleted</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', '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' => 'Number of messages to display on the archive page',
'MCHAT_MESSAGE_NUM_ARCHIVE_EXPLAIN' => 'The maximum number of messages to show per page on the archive page.<br /><em>You are limited from 10 to 100. Default is 25.</em>', 'MCHAT_MESSAGE_NUM_ARCHIVE_EXPLAIN' => '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' => 'Message sorting',
'MCHAT_ARCHIVE_SORT_TOP_BOTTOM' => 'Always sort messages top to bottom', 'MCHAT_ARCHIVE_SORT_TOP_BOTTOM' => 'Always sort messages oldest to newest',
'MCHAT_ARCHIVE_SORT_BOTTOM_TOP' => 'Always sort messages bottom to top', '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_ARCHIVE_SORT_USER' => 'Sort messages depending on the users <em>Location of new messages</em> preference',
'MCHAT_FLOOD_TIME' => 'Flood time', '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>', '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' => 'Override minimum characters limit',
'MCHAT_OVERRIDE_MIN_POST_CHARS_EXPLAIN' => 'Set to yes to override the forums minimum characters setting for chat messages', 'MCHAT_OVERRIDE_MIN_POST_CHARS_EXPLAIN' => 'Set to yes to override the forums minimum characters setting for chat messages',
'MCHAT_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' => '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_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', '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.css' %}
<!-- INCLUDECSS @dmzx_mchat/mchat_custom.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.css' %}
<!-- INCLUDECSS @dmzx_mchat/mchat_custom.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 // Support Opera
if (typeof document.hasFocus === 'undefined') { if (typeof document.hasFocus === 'undefined') {
document.hasFocus = function() { document.hasFocus = function() {
return document.visibilityState == 'visible'; return document.visibilityState === 'visible';
}; };
} }
@@ -29,7 +29,7 @@ if (!Array.prototype.min) {
} }
Array.prototype.removeValue = function(value) { Array.prototype.removeValue = function(value) {
var index = -1; var index;
var elementsRemoved = 0; var elementsRemoved = 0;
while ((index = this.indexOf(value)) !== -1) { while ((index = this.indexOf(value)) !== -1) {
this.splice(index, 1); this.splice(index, 1);
@@ -44,7 +44,7 @@ String.prototype.format = function() {
return str; return str;
} }
var type = typeof arguments[0]; 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) { for (var arg in args) {
if (args.hasOwnProperty(arg)) { if (args.hasOwnProperty(arg)) {
str = str.replace(new RegExp("\\{" + arg + "\\}", "gi"), args[arg]); str = str.replace(new RegExp("\\{" + arg + "\\}", "gi"), args[arg]);
@@ -69,7 +69,7 @@ RegExp.escape = function(s) {
}; };
jQuery.fn.reverse = function(reverse) { 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) { function StorageWrapper(storage, prefix) {
@@ -102,6 +102,9 @@ jQuery(function($) {
$.extend(mChat, { $.extend(mChat, {
storage: new StorageWrapper('localStorage', mChat.cookie + 'mchat_'), storage: new StorageWrapper('localStorage', mChat.cookie + 'mchat_'),
ajaxRequest: function(mode, sendHiddenFields, data) { ajaxRequest: function(mode, sendHiddenFields, data) {
if (mChat.pageIsUnloading) {
return;
}
var deferred = $.Deferred(); var deferred = $.Deferred();
if (sendHiddenFields) { if (sendHiddenFields) {
$.extend(data, mChat.hiddenFields); $.extend(data, mChat.hiddenFields);
@@ -113,7 +116,7 @@ jQuery(function($) {
type: 'POST', type: 'POST',
dataType: 'json', dataType: 'json',
data: data, data: data,
additionalData: { context: {
mode: mode, mode: mode,
deferred: deferred deferred: deferred
} }
@@ -122,7 +125,7 @@ jQuery(function($) {
}, },
ajaxDone: function(json, status, xhr) { ajaxDone: function(json, status, xhr) {
var data = { var data = {
mode: this.additionalData.mode, mode: this.mode,
json: json, json: json,
status: status, status: status,
xhr: xhr, xhr: xhr,
@@ -130,10 +133,10 @@ jQuery(function($) {
}; };
$(mChat).trigger('mchat_ajax_done_before', [data]); $(mChat).trigger('mchat_ajax_done_before', [data]);
if (data.handle) { if (data.handle) {
if (json[this.additionalData.mode]) { if (json[this.mode]) {
this.additionalData.deferred.resolve(data.json, data.status, data.xhr); this.deferred.resolve(data.json, data.status, data.xhr);
} else { } 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 + ')'); console.log('AJAX error. status: ' + textStatus + ', message: ' + errorThrown + ' (' + xhr.responseText + ')');
} }
var data = { var data = {
mode: this.additionalData.mode, mode: this.mode,
xhr: xhr, xhr: xhr,
textStatus: textStatus, textStatus: textStatus,
errorThrown: errorThrown, errorThrown: errorThrown,
updateSession: function() { updateSession: function() {
if (this.xhr.status == 403) { if (this.xhr.status === 403) {
mChat.endSession(true); mChat.endSession(true);
} else if (this.xhr.status == 400) { } else if (this.xhr.status === 400) {
mChat.resetSession(); mChat.resetSession();
} }
} }
@@ -219,8 +222,8 @@ jQuery(function($) {
$input.focus().val('').val(value); $input.focus().val('').val(value);
} }
}, 1); }, 1);
phpbb.confirm(data.container.show(), function() { phpbb.confirm(data.container.show(), function(success) {
if (typeof data.confirm === 'function') { if (success && typeof data.confirm === 'function') {
data.confirm.apply(this, fields); data.confirm.apply(this, fields);
} }
}); });
@@ -272,7 +275,7 @@ jQuery(function($) {
mChat.ajaxRequest('edit', true, { mChat.ajaxRequest('edit', true, {
message_id: $message.data('mchat-id'), message_id: $message.data('mchat-id'),
message: $textarea.val(), message: $textarea.val(),
archive: mChat.archivePage ? 1 : 0 page: mChat.page
}).done(function(json) { }).done(function(json) {
mChat.updateMessages($(json.edit)); mChat.updateMessages($(json.edit));
mChat.resetSession(); mChat.resetSession();
@@ -289,7 +292,7 @@ jQuery(function($) {
$container.find('p').text(mChat.lang.delConfirm) $container.find('p').text(mChat.lang.delConfirm)
]; ];
}, },
confirm: function($p) { confirm: function() {
mChat.ajaxRequest('del', true, { mChat.ajaxRequest('del', true, {
message_id: delId message_id: delId
}).done(function() { }).done(function() {
@@ -339,14 +342,14 @@ jQuery(function($) {
}); });
}, },
whois: function() { whois: function() {
if (mChat.customPage) { if (mChat.page === 'custom') {
mChat.cached('refresh-pending').show(); mChat.cached('refresh-pending').show();
mChat.cached('refresh-explain').hide(); mChat.cached('refresh-explain').hide();
} }
mChat.ajaxRequest('whois', false, {}).done(mChat.handleWhoisResponse); mChat.ajaxRequest('whois', false, {}).done(mChat.handleWhoisResponse);
}, },
handleWhoisResponse: function(json) { handleWhoisResponse: function(json) {
var $whois = $(json.whois); var $whois = $(json.container);
var $userlist = $whois.find('#mchat-userlist'); var $userlist = $whois.find('#mchat-userlist');
if (mChat.storage.get('show_userlist')) { if (mChat.storage.get('show_userlist')) {
$userlist.show(); $userlist.show();
@@ -354,7 +357,7 @@ jQuery(function($) {
mChat.cached('whois').replaceWith($whois); mChat.cached('whois').replaceWith($whois);
mChat.cache.whois = $whois; mChat.cache.whois = $whois;
mChat.cache.userlist = $userlist; mChat.cache.userlist = $userlist;
if (mChat.customPage) { if (mChat.page === 'custom') {
mChat.cached('refresh-pending').hide(); mChat.cached('refresh-pending').hide();
mChat.cached('refresh-explain').show(); mChat.cached('refresh-explain').show();
} }
@@ -533,7 +536,7 @@ jQuery(function($) {
} }
}, },
resetSession: function() { resetSession: function() {
if (!mChat.archivePage) { if (mChat.page !== 'archive') {
clearInterval(mChat.refreshInterval); clearInterval(mChat.refreshInterval);
mChat.refreshInterval = setInterval(mChat.refresh, mChat.refreshTime); mChat.refreshInterval = setInterval(mChat.refresh, mChat.refreshTime);
if (mChat.timeout) { if (mChat.timeout) {
@@ -592,12 +595,14 @@ jQuery(function($) {
var $container = $(this).closest('.mchat-message'); var $container = $(this).closest('.mchat-message');
var username = $container.data('mchat-username'); var username = $container.data('mchat-username');
if (mChat.allowBBCodes) { if (mChat.allowBBCodes) {
var usercolor = $container.data('mchat-usercolor');
var profileUrl = $container.find(".mchat-message-header a[class^='username']").prop('href'); var profileUrl = $container.find(".mchat-message-header a[class^='username']").prop('href');
if (usercolor) { if (profileUrl) {
username = '[url=' + profileUrl + '][b][color=' + usercolor + ']' + username + '[/color][/b][/url]'; var usercolor = $container.data('mchat-usercolor');
} else { if (usercolor) {
username = '[url=' + profileUrl + '][b]' + username + '[/b][/url]'; 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})); insert_text(mChat.lang.mention.format({username: username}));
@@ -643,7 +648,7 @@ jQuery(function($) {
mChat.isPaused = false; mChat.isPaused = false;
if (!mChat.archivePage) { if (mChat.page !== 'archive') {
mChat.resetSession(); mChat.resetSession();
if (!mChat.messageTop) { if (!mChat.messageTop) {
@@ -665,7 +670,7 @@ jQuery(function($) {
'=': '-', '=': '-',
'*': 'asterisk' '*': 'asterisk'
}); });
$('#format-buttons').find(bbCodeClass).remove(); mChat.cached('body').find(bbCodeClass).remove();
}); });
var $colourPalette = $('#colour_palette'); var $colourPalette = $('#colour_palette');
@@ -682,7 +687,7 @@ jQuery(function($) {
mChat.cached('form').submit(function(e){ mChat.cached('form').submit(function(e){
e.preventDefault(); e.preventDefault();
}).keypress(function(e) { }).keypress(function(e) {
if ((e.which == 10 || e.which == 13) && (!mChat.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(); mChat.add();
} }
}); });

View File

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

View File

@@ -1,2 +1,2 @@
<!-- INCLUDECSS @dmzx_mchat/mchat.css --> {% INCLUDECSS '@dmzx_mchat/mchat.css' %}
<!-- INCLUDECSS @dmzx_mchat/mchat_custom.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.css' %}
<!-- INCLUDECSS @dmzx_mchat/mchat_custom.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 --> {% if MCHAT_INDEX and MCHAT_LOCATION %}
<!-- INCLUDE @dmzx_mchat/mchat_body.html --> {% INCLUDE '@dmzx_mchat/mchat_body.html' %}
<!-- ENDIF --> {% endif %}

View File

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

View File

@@ -1,2 +1,2 @@
<!-- INCLUDECSS @dmzx_mchat/mchat.css --> {% INCLUDECSS '@dmzx_mchat/mchat.css' %}
<!-- INCLUDECSS @dmzx_mchat/mchat_custom.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.css' %}
<!-- INCLUDECSS @dmzx_mchat/mchat_custom.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.css' %}
<!-- INCLUDECSS @dmzx_mchat/mchat_custom.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.css' %}
<!-- INCLUDECSS @dmzx_mchat/mchat_custom.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 --> {% if MCHAT_INDEX and MCHAT_LOCATION %}
<!-- INCLUDE @dmzx_mchat/mchat_body.html --> {% INCLUDE '@dmzx_mchat/mchat_body.html' %}
<!-- ENDIF --> {% endif %}

View File

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

View File

@@ -1,3 +1,11 @@
<div class="collapse-box"> <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> </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.css' %}
<!-- INCLUDECSS @dmzx_mchat/mchat_custom.css --> {% INCLUDECSS '@dmzx_mchat/mchat_custom.css' %}

View File

@@ -1,3 +1,11 @@
<div class="collapse-box"> <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> </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> </p>
</div> </div>
<div class="stat-block online-list mchat-stats-index"> <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> <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} <p>{{ MCHAT_USERS_TOTAL }} {{ MCHAT_ONLINE_EXPLAIN }}<br />{{ MCHAT_USERS_LIST }}
<!-- ENDIF --> {% endif %}

View File

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

View File

@@ -1,3 +1,3 @@
<!-- IF MCHAT_INDEX and MCHAT_LOCATION --> {% if MCHAT_INDEX and MCHAT_LOCATION %}
<!-- INCLUDE @dmzx_mchat/mchat_body.html --> {% INCLUDE '@dmzx_mchat/mchat_body.html' %}
<!-- ENDIF --> {% 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 /> <br />
<span>{MCHAT_DISPLAY_NAME} &copy; {L_POST_BY_AUTHOR} {MCHAT_AUTHOR_HOMEPAGES}</span> <span>{{ MCHAT_DISPLAY_NAME }} &copy; {{ lang('POST_BY_AUTHOR') }} {{ MCHAT_AUTHOR_HOMEPAGES }}</span>
<!-- ENDIF --> {% 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 --> {% if MCHAT_CUSTOM_PAGE and MCHAT_NAVBAR_LINK %}
<!-- INCLUDE @dmzx_mchat/mchat_navlink.html --> {% INCLUDE '@dmzx_mchat/mchat_navlink.html' %}
<!-- ENDIF --> {% 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> <style>
#mchat-messages { #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> </style>
<!-- ENDIF --> {% endif %}

View File

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

View File

@@ -1,4 +1,12 @@
<dl class="row-item"> <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> <dd></dd>
</dl> </dl>

View File

@@ -1,29 +1,29 @@
<!-- EVENT dmzx_mchat_messages_before --> {% EVENT dmzx_mchat_messages_before %}
<!-- EVENT dmzx_mchat_messages_define_icons --> {% EVENT dmzx_mchat_messages_define_icons %}
<!-- BEGIN mchatrow --> {% 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 -->> <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 --> {% if S_MCHAT_AVATARS %}
<div class="mchat-avatar"> <div class="mchat-avatar">
<!-- IF mchatrow.U_VIEWPROFILE --><a href="{mchatrow.U_VIEWPROFILE}" title="{L_READ_PROFILE}"><!-- 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="{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="{{ lang('READ_PROFILE') }}" />{% endif %}
<!-- IF mchatrow.U_VIEWPROFILE --></a><!-- ENDIF --> {% if mchatrow.U_VIEWPROFILE %}</a>{% endif %}
</div> </div>
<!-- ENDIF --> {% endif %}
<div class="mchat-message-wrapper"> <div class="mchat-message-wrapper">
<!-- INCLUDE @dmzx_mchat/mchat_messages_icons.html --> {% INCLUDE '@dmzx_mchat/mchat_messages_icons.html' %}
<div class="mchat-message-header"> <div class="mchat-message-header">
<!-- EVENT dmzx_mchat_messages_header_before --> {% 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> {{ 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_after %}
</div> </div>
<div class="mchat-text"> <div class="mchat-text">
<!-- EVENT dmzx_mchat_messages_text_before --> {% EVENT dmzx_mchat_messages_text_before %}
{mchatrow.MCHAT_MESSAGE} {{ mchatrow.MCHAT_MESSAGE }}
<!-- EVENT dmzx_mchat_messages_text_after --> {% EVENT dmzx_mchat_messages_text_after %}
</div> </div>
</div> </div>
</li> </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 --> {% 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_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 not MCHAT_IS_ARCHIVE_PAGE --> {% 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 not MCHAT_IS_ARCHIVE_PAGE and not mchatrow.MCHAT_IS_POSTER --> {% 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_PM = MCHAT_ALLOW_PM and mchatrow.MCHAT_PM and mchatrow.U_VIEWPROFILE %}
<!-- DEFINE $MCHAT_ALLOW_IP = MCHAT_ALLOW_IP and TRUE --> {% DEFINE MCHAT_ALLOW_IP = MCHAT_ALLOW_IP and TRUE %}
<!-- DEFINE $MCHAT_ALLOW_PERMISSIONS = MCHAT_ALLOW_PERMISSIONS 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_EDIT = mchatrow.MCHAT_ALLOW_EDIT and not mchatrow.MCHAT_IS_NOTIFICATION %}
<!-- DEFINE $MCHAT_ALLOW_DEL = mchatrow.MCHAT_ALLOW_DEL --> {% 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 --> {% 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 $MCHAT_USE_WHITE_MESSAGE_ICONS -->mchat-icons-white<!-- ELSE -->mchat-icons-black<!-- ENDIF -->"> <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 --> {% 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 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 $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 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 $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 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 $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 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 $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_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 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 $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 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 $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 --> {% 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 --> {% EVENT dmzx_mchat_messages_icons_add_after %}
</ul> </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"> <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"> <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> <i{% if IS_PHPBB32 %} class="icon fa fa-weixin fa-fw"{% endif %} aria-hidden="true"></i><span class="mchat-nav-link">{{ MCHAT_TITLE }}</span>
<span class="mchat-nav-link">{MCHAT_TITLE}</span>
</a> </a>
</li> </li>

View File

@@ -1,76 +1,76 @@
<div id="mchat-panel" class="panel cp-mini<!-- IF MCHAT_IS_ARCHIVE_PAGE --> hidden<!-- ENDIF -->"> <div id="mchat-panel" class="panel cp-mini{% if MCHAT_PAGE == 'archive' %} hidden{% endif %}">
<!-- IF MCHAT_IS_INDEX and MCHAT_WHOIS_REFRESH and MCHAT_WHOIS_INDEX --> {% if MCHAT_PAGE == 'index' and MCHAT_WHOIS_REFRESH and MCHAT_WHOIS_INDEX %}
<!-- INCLUDE @dmzx_mchat/mchat_whois.html --> {% INCLUDE '@dmzx_mchat/mchat_whois.html' %}
<!-- ENDIF --> {% endif %}
<!-- IF MCHAT_CHARACTER_COUNT and not MCHAT_IS_ARCHIVE_PAGE --> {% if MCHAT_CHARACTER_COUNT and MCHAT_PAGE != 'archive' %}
<div id="mchat-character-count" class="invisible">{MCHAT_CHARACTER_COUNT}</div> <div id="mchat-character-count" class="invisible">{{ MCHAT_CHARACTER_COUNT }}</div>
<!-- ENDIF --> {% endif %}
<form id="mchat-form" name="postform" action="{U_MCHAT_CUSTOM_PAGE}" method="POST"> <form id="mchat-form" name="postform" action="{{ U_MCHAT_CUSTOM_PAGE }}" method="POST">
{S_FORM_TOKEN} {{ S_FORM_TOKEN }}
<!-- IF not MCHAT_IS_ARCHIVE_PAGE --> {% if MCHAT_PAGE != 'archive' %}
<noscript><div class="error">{L_MCHAT_NOJAVASCRIPT}</div></noscript> <noscript><div class="error">{{ lang('MCHAT_NOJAVASCRIPT') }}</div></noscript>
<!-- IF MCHAT_ALLOW_USE --> {% if MCHAT_ALLOW_USE %}
<!-- IF MCHAT_INPUT_AREA --> {% if MCHAT_INPUT_AREA %}
<input id="mchat-input" type="text" name="message" class="inputbox medium" autocomplete="off" /> <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> <textarea id="mchat-input" name="message" class="inputbox no-auto-resize"></textarea>
<!-- ENDIF --> {% endif %}
<!-- ENDIF --> {% endif %}
<!-- EVENT dmzx_mchat_buttons_container_before --> {% EVENT dmzx_mchat_buttons_container_before %}
<div id="mchat-buttons"> <div id="mchat-buttons">
<!-- EVENT dmzx_mchat_buttons_before --> {% EVENT dmzx_mchat_buttons_before %}
<!-- IF MCHAT_ALLOW_USE --> {% 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}" /> <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 .smiley --> {% 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="{L_MCHAT_SMILES}" /> <input type="button" class="{% if IS_PHPBB31 %}button2{% elseif IS_PHPBB32 %}button{% endif %}" data-mchat-toggle="smilies" value="{{ lang('MCHAT_SMILES') }}" />
<!-- ENDIF --> {% endif %}
<!-- IF S_BBCODE_ALLOWED --> {% 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}" /> <input type="button" class="{% if IS_PHPBB31 %}button2{% elseif IS_PHPBB32 %}button{% endif %}" data-mchat-toggle="bbcodes" value="{{ lang('MCHAT_BBCODES') }}" />
<!-- ENDIF --> {% endif %}
<!-- IF MCHAT_RULES --> {% 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}" /> <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 %}
<!-- ENDIF --> {% endif %}
<!-- EVENT dmzx_mchat_buttons_mid --> {% EVENT dmzx_mchat_buttons_mid %}
<!-- IF MCHAT_ARCHIVE --> {% 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}" /> <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 --> {% endif %}
<!-- EVENT dmzx_mchat_buttons_after --> {% EVENT dmzx_mchat_buttons_after %}
</div> </div>
<!-- EVENT dmzx_mchat_buttons_container_after --> {% EVENT dmzx_mchat_buttons_container_after %}
<!-- IF MCHAT_ALLOW_USE and S_BBCODE_ALLOWED --> {% if MCHAT_ALLOW_USE and S_BBCODE_ALLOWED %}
<div id="mchat-bbcodes"> <div id="mchat-bbcodes">
<!-- INCLUDE posting_buttons.html --> {% INCLUDE 'posting_buttons.html' %}
</div> </div>
<!-- ENDIF --> {% endif %}
<!-- IF MCHAT_ALLOW_USE and MCHAT_ALLOW_SMILES and .smiley --> {% if MCHAT_ALLOW_USE and MCHAT_ALLOW_SMILES and loops.smiley|length %}
<div id="mchat-smilies" class="hidden"> <div id="mchat-smilies" class="hidden">
<!-- BEGIN smiley --> {% 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> <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 --> {% endfor %}
<!-- IF S_SHOW_SMILEY_LINK --> {% if S_SHOW_SMILEY_LINK %}
<a href="{U_MORE_SMILIES}" onclick="popup(this.href, 300, 350, '_phpbbsmilies'); return false;">{L_MORE_SMILIES}</a> <a href="{{ U_MORE_SMILIES }}" onclick="popup(this.href, 300, 350, '_phpbbsmilies'); return false;">{{ lang('MORE_SMILIES') }}</a>
<!-- ENDIF --> {% endif %}
</div> </div>
<!-- ENDIF --> {% endif %}
<!-- EVENT dmzx_mchat_body_smiley_after --> {% EVENT dmzx_mchat_body_smiley_after %}
<div id="mchat-status"> <div id="mchat-status">
<ul class="mchat-footer"> <ul class="mchat-footer">
<li> <li>
<span id="mchat-status-icons"> <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-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="{L_MCHAT_OK}"></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="{L_MCHAT_PAUSE}"></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="{L_ERROR}"></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>
<span id="mchat-refresh-text">{MCHAT_REFRESH_YES}</span> <span id="mchat-refresh-text">{{ MCHAT_REFRESH_YES }}</span>
</li> </li>
<!-- IF MCHAT_TIMEOUT --><li><span id="mchat-session">{MCHAT_SESSION_TIMELEFT}</span></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">{L_MCHAT_USESOUND}</label></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> </ul>
</div> </div>
<!-- ENDIF --> {% endif %}
</form> </form>
</div> </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="rules">
<div class="inner"> <div class="inner">
{MCHAT_RULES} {{ MCHAT_RULES }}
</div> </div>
</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"> <div id="mchat-whois">
<span title="{MCHAT_ONLINE_EXPLAIN}"> <span title="{{ MCHAT_ONLINE_EXPLAIN }}">
<!-- IF MCHAT_USERS_LIST --> {% if MCHAT_USERS_LIST %}
<a href="#" data-mchat-toggle="userlist">{MCHAT_USERS_TOTAL}</a> <a href="#" data-mchat-toggle="userlist">{{ MCHAT_USERS_TOTAL }}</a>
<!-- ELSE --> {% else %}
{MCHAT_USERS_TOTAL} {{ MCHAT_USERS_TOTAL }}
<!-- ENDIF --> {% endif %}
</span> </span>
<div id="mchat-userlist" class="hidden">{MCHAT_USERS_LIST}</div> <div id="mchat-userlist" class="hidden">{{ MCHAT_USERS_LIST }}</div>
</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="panel">
<div class="inner"> <div class="inner">
<!-- IF ERROR or MCHAT_AUTH_COUNT == 0 --> {% if ERROR or MCHAT_AUTH_COUNT == 0 %}
<fieldset> <fieldset>
<!-- IF ERROR --><p class="error">{ERROR}</p><!-- ENDIF --> {% if ERROR %}<p class="error">{{ ERROR }}</p>{% endif %}
<!-- IF MCHAT_AUTH_COUNT == 0 --><p class="error">{L_MCHAT_NO_SETTINGS}</p><!-- ENDIF --> {% if MCHAT_AUTH_COUNT == 0 %}<p class="error">{{ lang('MCHAT_NO_SETTINGS') }}</p>{% endif %}
</fieldset> </fieldset>
<!-- ENDIF --> {% endif %}
<!-- IF MCHAT_AUTH_COUNT > 0 --> {% if MCHAT_AUTH_COUNT > 0 %}
<fieldset> <fieldset>
<!-- EVENT dmzx_mchat_ucp_index_before --> {% EVENT dmzx_mchat_ucp_index_before %}
<!-- IF MCHAT_INDEX_AUTH --> {% if MCHAT_INDEX_AUTH %}
<dl> <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> <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="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 --> /> {L_NO}</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> </dd>
</dl> </dl>
<!-- ENDIF --> {% endif %}
<!-- IF MCHAT_WHOIS_INDEX_AUTH --> {% if MCHAT_WHOIS_INDEX_AUTH %}
<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> <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="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 --> /> {L_NO}</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> </dd>
</dl> </dl>
<!-- ENDIF --> {% endif %}
<!-- IF MCHAT_STATS_INDEX_AUTH --> {% if MCHAT_STATS_INDEX_AUTH %}
<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> <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="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 --> /> {L_NO}</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> </dd>
</dl> </dl>
<!-- ENDIF --> {% endif %}
<!-- IF MCHAT_LOCATION_AUTH --> {% if MCHAT_LOCATION_AUTH %}
<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> <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="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 --> /> {L_MCHAT_BOTTOM}</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> </dd>
</dl> </dl>
<!-- ENDIF --> {% endif %}
<!-- EVENT dmzx_mchat_ucp_location_after --> {% EVENT dmzx_mchat_ucp_location_after %}
<hr /> <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> <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> <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="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 --> /> {L_MCHAT_BOTTOM}</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> </dd>
</dl> </dl>
<!-- ENDIF --> {% endif %}
<!-- IF MCHAT_CAPITAL_LETTER_AUTH --> {% if MCHAT_CAPITAL_LETTER_AUTH and MCHAT_ALLOW_USE %}
<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> <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="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 --> /> {L_NO}</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> </dd>
</dl> </dl>
<!-- ENDIF --> {% endif %}
<!-- IF MCHAT_SOUND_AUTH --> {% if MCHAT_SOUND_AUTH %}
<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> <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="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 --> /> {L_NO}</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> </dd>
</dl> </dl>
<!-- ENDIF --> {% endif %}
<!-- IF MCHAT_AVATARS_AUTH --> {% if MCHAT_AVATARS_AUTH %}
<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> <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="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 --> /> {L_NO}</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> </dd>
</dl> </dl>
<!-- ENDIF --> {% endif %}
<!-- IF MCHAT_INPUT_AREA_AUTH --> {% if MCHAT_INPUT_AREA_AUTH and MCHAT_ALLOW_USE %}
<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> <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="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 --> /> {L_MCHAT_TEXT_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> </dd>
</dl> </dl>
<!-- ENDIF --> {% endif %}
<!-- IF MCHAT_CHARACTER_COUNT_AUTH --> {% if MCHAT_CHARACTER_COUNT_AUTH and MCHAT_ALLOW_USE %}
<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> <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="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 --> /> {L_NO}</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> </dd>
</dl> </dl>
<!-- ENDIF --> {% endif %}
<!-- IF MCHAT_PAUSE_ON_INPUT_AUTH --> {% if MCHAT_PAUSE_ON_INPUT_AUTH and MCHAT_ALLOW_USE %}
<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> <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="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 --> /> {L_NO}</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> </dd>
</dl> </dl>
<!-- ENDIF --> {% endif %}
<!-- IF MCHAT_DATE_AUTH --> {% if MCHAT_DATE_AUTH %}
<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> <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;"> <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} {{ S_MCHAT_DATEFORMAT_OPTIONS }}
</select> </select>
</dd> </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> </dl>
<!-- ENDIF --> {% endif %}
<!-- IF MCHAT_RELATIVE_TIME_AUTH --> {% if MCHAT_RELATIVE_TIME_AUTH %}
<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> <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="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 --> /> {L_NO}</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> </dd>
</dl> </dl>
<!-- ENDIF --> {% endif %}
<!-- EVENT dmzx_mchat_ucp_relative_time_after --> {% EVENT dmzx_mchat_ucp_relative_time_after %}
<hr /> <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> <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> <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="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 --> /> {L_NO}</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> </dd>
</dl> </dl>
<!-- ENDIF --> {% endif %}
<!-- EVENT dmzx_mchat_ucp_posts_after --> {% EVENT dmzx_mchat_ucp_posts_after %}
</fieldset> </fieldset>
<!-- ENDIF --> {% endif %}
</div> </div>
</div> </div>
<!-- IF MCHAT_AUTH_COUNT > 0 --> {% if MCHAT_AUTH_COUNT > 0 %}
<fieldset class="submit-buttons"> <fieldset class="submit-buttons">
{S_HIDDEN_FIELDS}<input type="reset" value="{L_RESET}" name="reset" class="button2" />&nbsp; {{ S_HIDDEN_FIELDS }}<input type="reset" value="{{ lang('RESET') }}" name="reset" class="button2" />&nbsp;
<input type="submit" name="submit" value="{L_SUBMIT}" class="button1" /> <input type="submit" name="submit" value="{{ lang('SUBMIT') }}" class="button1" />
{S_FORM_TOKEN} {{ S_FORM_TOKEN }}
</fieldset> </fieldset>
<!-- ENDIF --> {% endif %}
</form> </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.css' %}
<!-- INCLUDECSS @dmzx_mchat/mchat_custom.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 class ucp_mchat_module
{ {
public $tpl_name;
public $page_title;
public $u_action; public $u_action;
public function main($id, $mode) public function main($id, $mode)