SleePy Public Git Projects
Repositories
Main Site
GitHub Profile
smfmod_a2ebg
Code
Commits
Branches
Tags
Search
Tree:
124dd63
Branches
Tags
master
v2.0
smfmod_a2ebg
add_to_existing_ban_group-21x.xml
Improvement on the UI
jdarwood007
commited
124dd63
at 2017-09-17 13:02:21
add_to_existing_ban_group-21x.xml
Blame
History
Raw
<?xml version="1.0"?> <!DOCTYPE modification SYSTEM "http://www.simplemachines.org/xml/modification"> <!-- This package was generated by SleePys Modification Maker at https://sleepycode.com --> <modification xmlns="http://www.simplemachines.org/xml/modification" xmlns:smf="http://www.simplemachines.org/"> <id>SleePy:Add_to_existing_ban_group</id> <version>1.1</version> <file name="$languagedir/Modifications.english.php" error="skip"> <operation> <search position="end" /> <add><![CDATA[ $txt['aebg_add_existing'] = 'Add to existing ban group'; $txt['aebg_new_ban_group'] = 'Create New Ban Group'; $txt['aebg_ban_group'] = 'Allow quick ban?'; $txt['aebg_ban_group_desc'] = 'Quick bans are done via ban link from profiles'; $txt['aebg_auto_select'] = 'Easy Ban Auto select ban options'; ]]></add> </operation> </file> <file name="$sourcedir/ManageSettings.php"> <operation> <search position="before"><![CDATA[ $config_vars = array( // Mod authors, add any settings UNDER this line. Include a comma at the end of the line and don't remove this statement!! ]]></search> <add><![CDATA[ array( 'select', 'aebg_auto_select', array('main_ip_check' => $txt['ban_on_ip'], 'hostname_check' => $txt['ban_on_hostname'], 'email_check' => $txt['ban_on_email'], 'user_check' => $txt['ban_on_username']), 'multiple' => true, ), ]]></add> </operation> </file> <file name="$sourcedir/ManageBans.php"> <operation> <search position="before"><![CDATA[ $ban_info['cannot']['login'] = !empty($ban_info['full_ban']) || empty($_POST['cannot_login']) ? 0 : 1; ]]></search> <add><![CDATA[ $ban_info['easy_ban_group'] = empty($_POST['easy_ban_group']) ? '0' : '1'; ]]></add> </operation> <operation> <search position="after"><![CDATA[ $context['ban']['from_user'] = true; } } } loadJavaScriptFile('suggest.js', array(), 'smf_suggest'); ]]></search> <add><![CDATA[ $context['ban']['from_user'] = true; } // Find our ban groups we can append. $request = $smcFunc['db_query']('', ' SELECT id_ban_group, name FROM {db_prefix}ban_groups WHERE easy_bg = {int:one} ORDER BY name', array( 'one' => '1', ) ); while ($row = $smcFunc['db_fetch_assoc']($request)) $context['ban_group_suggestions'][$row['id_ban_group']] = $row['name']; $smcFunc['db_free_result']($request); $context['ban_group_auto_selects'] = is_array($modSettings['aebg_auto_select']) ? $modSettings['aebg_auto_select'] : $smcFunc['json_decode']($modSettings['aebg_auto_select']); } } loadJavaScriptFile('suggest.js', array(), 'smf_suggest'); ]]></add> </operation> <operation> <search position="replace"><![CDATA[ // Yes yes, we're ready to add now. $ban_info['id'] = $smcFunc['db_insert']('', '{db_prefix}ban_groups', array( 'name' => 'string-20', 'ban_time' => 'int', 'expire_time' => 'raw', 'cannot_access' => 'int', 'cannot_register' => 'int', 'cannot_post' => 'int', 'cannot_login' => 'int', 'reason' => 'string-255', 'notes' => 'string-65534', ), array( $ban_info['name'], time(), $ban_info['db_expiration'], $ban_info['cannot']['access'], $ban_info['cannot']['register'], $ban_info['cannot']['post'], $ban_info['cannot']['login'], $ban_info['reason'], $ban_info['notes'], ), array('id_ban_group'), 1 ); ]]></search> <add><![CDATA[ // No No, we're not adding yet another group. if (!empty($_REQUEST['ban_group'])) { // Make sure the ban group exists. $request = $smcFunc['db_query']('', ' SELECT id_ban_group FROM {db_prefix}ban_groups WHERE id_ban_group = {int:ban_group}', array( 'ban_group' => $_REQUEST['ban_group'], ) ); if ($smcFunc['db_num_rows']($request) != 1) unset($_REQUEST['ban_group']); else $ban_info['id'] = (int) $_REQUEST['ban_group']; $smcFunc['db_free_result']($request); } // Yes yes, we're ready to add now. if (empty($ban_info['id'])) { $ban_info['id'] = $smcFunc['db_insert']('', '{db_prefix}ban_groups', array( 'name' => 'string-20', 'ban_time' => 'int', 'expire_time' => 'raw', 'cannot_access' => 'int', 'cannot_register' => 'int', 'cannot_post' => 'int', 'cannot_login' => 'int', 'reason' => 'string-255', 'notes' => 'string-65534', 'easy_bg' => 'int', ), array( $ban_info['name'], time(), $ban_info['db_expiration'], $ban_info['cannot']['access'], $ban_info['cannot']['register'], $ban_info['cannot']['post'], $ban_info['cannot']['login'], $ban_info['reason'], $ban_info['notes'], $ban_info['easy_ban_group'], ), array('id_ban_group'), 1 ); }]]></add> </operation> <operation> <search position="replace"><![CDATA[ cannot_login = {int:cannot_login} WHERE id_ban_group = {int:id_ban_group}', array( 'expiration' => $ban_info['db_expiration'], ]]></search> <add><![CDATA[ cannot_login = {int:cannot_login}, easy_bg = {int:easy_bg} WHERE id_ban_group = {int:id_ban_group}', array( 'easy_bg' => $ban_info['easy_ban_group'], 'expiration' => $ban_info['db_expiration'], ]]></add> </operation> <operation> <search position="replace"><![CDATA[ COALESCE(mem.id_member, 0) AS id_member, mem.member_name, mem.real_name FROM {db_prefix}ban_groups AS bg LEFT JOIN {db_prefix}ban_items AS bi ON (bi.id_ban_group = bg.id_ban_group) ]]></search> <add><![CDATA[ COALESCE(mem.id_member, 0) AS id_member, mem.member_name, mem.real_name, bg.easy_bg FROM {db_prefix}ban_groups AS bg LEFT JOIN {db_prefix}ban_items AS bi ON (bi.id_ban_group = bg.id_ban_group) ]]></add> </operation> <operation> <search position="replace"><![CDATA[ 'reason' => $row['reason'], 'notes' => $row['notes'], 'cannot' => array( ]]></search> <add><![CDATA[ 'reason' => $row['reason'], 'notes' => $row['notes'], 'easy_bg' => $row['easy_bg'], 'cannot' => array( ]]></add> </operation> </file> <file name="$themedir/ManageBans.template.php"> <operation> <search position="replace"><![CDATA[ echo ' <div class="windowbg2 noup"> <dl class="settings"> <dt id="ban_name_label"> <strong>', $txt['ban_name'], ':</strong> ]]></search> <add><![CDATA[ // Only allow selecting a ban group if it is new. if ($context['ban']['is_new'] && !empty($context['ban_group_suggestions'])) { echo ' <div class="information noup"> <legend>', $txt['aebg_add_existing'], '</legend> <select name="ban_group" onchange="disableOtherFields();" id="ban_group"> <option value="-1" selected="selected">', $txt['aebg_new_ban_group'], '</option>'; foreach ($context['ban_group_suggestions'] as $id_ban_group => $ban_name) echo ' <option value="', $id_ban_group, '" onselect="disableOtherFields();">', $ban_name, '</option>'; echo ' </select> </div>'; } echo ' <div class="windowbg2 noup"> <dl id="ban_info" class="settings"> <dt id="ban_name_label"> <strong>', $txt['ban_name'], ':</strong> ]]></add> </operation> <operation> <search position="before"><![CDATA[ if (isset($context['ban']['reason'])) echo ' <dt> <strong><label for="reason">', $txt['ban_reason'], ':</label></strong><br> <span class="smalltext">', $txt['ban_reason_desc'], '</span> </dt> <dd> <textarea name="reason" id="reason" cols="40" rows="3" style="min-height: 64px; max-height: 64px; min-width: 50%; max-width: 99%;">', $context['ban']['reason'], '</textarea> </dd>'; ]]></search> <add><![CDATA[ echo ' <dt id="aebg_select"> <strong>', $txt['aebg_ban_group'], ':</strong><br /> <span class="smalltext">', $txt['aebg_ban_group_desc'], '</span> </dt> <dd> <input type="checkbox" name="easy_ban_group" value="1" class="input_check"', !empty($context['ban']['easy_bg']) ? ' checked="checked"' : '', ' /> </dd>'; ]]></add> </operation> <operation> <search position="replace"><![CDATA[ <fieldset class="ban_settings floatleft"> <legend> ', $txt['ban_expiration'], ' ]]></search> <add><![CDATA[ <fieldset id="ban_expire" class="ban_settings floatleft"> <legend> ', $txt['ban_expiration'], ' ]]></add> </operation> <operation> <search position="replace"><![CDATA[ <fieldset class="ban_settings floatright"> <legend> ', $txt['ban_restriction'], ' ]]></search> <add><![CDATA[ <fieldset id="ban_restrict" class="ban_settings floatright"> <legend> ', $txt['ban_restriction'], ' ]]></add> </operation> <operation> <search position="after"><![CDATA[ var fUpdateStatus = function () { document.getElementById("expire_date").disabled = !document.getElementById("expires_one_day").checked; ]]></search> <add><![CDATA['; // Only allow selecting a ban group if it is new. if ($context['ban']['is_new'] && !empty($context['ban_group_suggestions'])) { echo ' function disableOtherFields() { var display_value = document.getElementById("ban_group").value == "-1" ? "" : "none"; document.getElementById("ban_info").style.display = display_value; document.getElementById("ban_expire").style.display = display_value; document.getElementById("ban_restrict").style.display = display_value;'; // Do we want to auto select some options? if (!empty($modSettings['aebg_auto_select'])) { // Incase it isn't an array. $allOptions = array_flip(array('main_ip_check', 'hostname_check', 'email_check', 'user_check')); if (!empty($modSettings['disableHostnameLookup'])) unset($allOptions['hostname_check']); $autoSelects = is_array($modSettings['aebg_auto_select']) ? $modSettings['aebg_auto_select'] : safe_unserialize($modSettings['aebg_auto_select']); foreach ($autoSelects as $elID) { unset($allOptions[$elID]); echo ' document.getElementById("', $elID, '").checked = "checked";'; } foreach ($allOptions as $elID => $dummy) echo ' document.getElementById("', $elID, '").checked = "";'; } echo ' }'; } echo ']]></add> </operation> </file> </modification>