แก้ไขไฟล์: file $sourcedir/Profile-Modify.php ค้นหา -->> PHP: $context['signature_enabled'] = isset($sig_limits[0]) ? $sig_limits[0] : 0; เพิ่มไว้ก่อน -->> PHP: // Figure out how many characters and lines this membergroup may use in its signature. $mg_sig_limits = membergroupSigLimits($cur_profile['id_group']); ค้นหา -->> PHP: 'max_length' => isset($sig_limits[1]) ? $sig_limits[1] : 0, 'max_lines' => isset($sig_limits[2]) ? $sig_limits[2] : 0, แก้เป็น -->> PHP: 'max_length' => isset($mg_sig_limits['chars']) ? $mg_sig_limits['chars'] : 0, 'max_lines' => isset($mg_sig_limits['lines']) ? $mg_sig_limits['lines'] : 0, ค้นหา -->> PHP: global $sourcedir, $modSettings, $smcFunc, $txt; เพิ่มไว้หลัง -->> PHP: global $sourcedir, $modSettings, $smcFunc, $txt, $cur_profile; ค้นหา -->> PHP: $unparsed_signature = strtr(un_htmlspecialchars($value), array("\r" => '', ''' => '\'')); // Too long? if (!empty($sig_limits[1]) && $smcFunc['strlen']($unparsed_signature) > $sig_limits[1]) { $_POST['signature'] = trim(htmlspecialchars($smcFunc['substr']($unparsed_signature, 0, $sig_limits[1]), ENT_QUOTES)); $txt['profile_error_signature_max_length'] = sprintf($txt['profile_error_signature_max_length'], $sig_limits[1]); return 'signature_max_length'; } // Too many lines? if (!empty($sig_limits[2]) && substr_count($unparsed_signature, "\n") >= $sig_limits[2]) { $txt['profile_error_signature_max_lines'] = sprintf($txt['profile_error_signature_max_lines'], $sig_limits[2]); return 'signature_max_lines'; } แก้เป็น -->> PHP: // Figure out how many characters and lines this membergroup may use in its signature. $mg_sig_limits = membergroupSigLimits($cur_profile['id_group']); $unparsed_signature = strtr(un_htmlspecialchars($value), array("\r" => '', ''' => '\'')); // Too long? if (!empty($mg_sig_limits['chars']) && $smcFunc['strlen']($unparsed_signature) > $mg_sig_limits['chars']) { $_POST['signature'] = trim(htmlspecialchars($smcFunc['substr']($unparsed_signature, 0, $mg_sig_limits['chars']), ENT_QUOTES)); $txt['profile_error_signature_max_length'] = sprintf($txt['profile_error_signature_max_length'], $mg_sig_limits['chars']); return 'signature_max_length'; } // Too many lines? if (!empty($mg_sig_limits['lines']) && substr_count($unparsed_signature, "\n") >= $mg_sig_limits['lines']) { $txt['profile_error_signature_max_lines'] = sprintf($txt['profile_error_signature_max_lines'], $mg_sig_limits['lines']); return 'signature_max_lines'; } ค้นหา -->> PHP: ?> เพิ่มไว้ก่อน -->> PHP: function membergroupSigLimits($id_group){ global $smcFunc, $modSettings; // Default limits list ($sig_limits, $sig_bbc) = explode(':', $modSettings['signature_settings']); $sig_limits = explode(',', $sig_limits); // Make sure we've got something. If not, just fall back to zero. $sig_limits[1] = isset($sig_limits[1]) ? $sig_limits[1] : 0; $sig_limits[2] = isset($sig_limits[2]) ? $sig_limits[2] : 0; // Fetch the membergroup limits $request = $smcFunc['db_query']('', ' SELECT id_group, sig_max_lines, sig_max_chars FROM {db_prefix}membergroups WHERE id_group = {int:id_group} LIMIT 1', array( 'id_group' => $id_group, ) ); $row = $smcFunc['db_fetch_assoc']($request); // Store them. If one of them is empty, fall back to the defaults we set erlier. $mg_sig_limits = array( 'lines' => isset($row['sig_max_lines']) && $row['sig_max_lines'] != 0 ? $row['sig_max_lines'] : $sig_limits[2], 'chars' => isset($row['sig_max_chars']) && $row['sig_max_lines'] != 0 ? $row['sig_max_chars'] : $sig_limits[1], ); return $mg_sig_limits;} ไฟล์ $sourcedir/ManageMembergroups.php ค้นหา -->> PHP: $_POST['group_inherit'] = $_REQUEST['group'] > 1 && $_REQUEST['group'] != 3 ? (int) $_POST['group_inherit'] : -2; เพิ่มไว้หลัง -->> PHP: $_POST['sig_max_lines'] = isset($_POST['sig_max_lines']) ? (int) $_POST['sig_max_lines'] : 0; $_POST['sig_max_chars'] = isset($_POST['sig_max_chars']) ? (int) $_POST['sig_max_chars'] : 0; ค้นหา -->> PHP: 'group_desc' => $_POST['group_desc'], เพิ่มไว้หลัง -->> PHP: 'sig_max_lines' => $_POST['sig_max_lines'], 'sig_max_chars' => $_POST['sig_max_chars'], ค้นหา -->> PHP: SELECT group_name, description, min_posts, online_color, max_messages, stars, group_type, hidden, id_parent แก้เป็น -->> PHP: SELECT group_name, description, min_posts, online_color, max_messages, stars, group_type, hidden, id_parent, sig_max_lines, sig_max_chars ค้นหา -->> PHP: 'allow_delete' => $_REQUEST['group'] == 2 || $_REQUEST['group'] > 4, เพิ่มไว้หลัง -->> PHP: 'sig_max_lines' => isset($row['sig_max_lines']) ? $row['sig_max_lines'] : 0, 'sig_max_chars' => isset($row['sig_max_chars']) ? $row['sig_max_chars'] : 0, ค้นหา -->> PHP: id_parent = {int:group_inherit} แก้เป็น -->> PHP: id_parent = {int:group_inherit}, sig_max_chars = {int:sig_max_chars}, sig_max_lines = {int:sig_max_lines} ไฟล์ $themedir/ManageMembergroups.template.php ค้นหา -->> PHP: <dd> <input type="text" name="max_messages" id="max_messages_input" value="', $context['group']['id'] == 1 ? 0 : $context['group']['max_messages'], '" size="6"', $context['group']['id'] == 1 ? ' disabled="disabled"' : '', ' class="input_text" /> </dd>'; แก้เป็น -->> PHP: <dd> <input type="text" name="max_messages" id="max_messages_input" value="', $context['group']['id'] == 1 ? 0 : $context['group']['max_messages'], '" size="6"', $context['group']['id'] == 1 ? ' disabled="disabled"' : '', ' class="input_text" /> </dd> <dt> <label for="sig_max_chars_input"><strong>', $txt['mgsiglimit_max_chars'], ':</strong></label><br /> <span class="smalltext">', $txt['mgsiglimit_max_chars_note'], '</span> </dt> <dd> <input type="text" name="sig_max_chars" id="sig_max_chars_input" value="', $context['group']['id'] == 1 ? 0 : $context['group']['sig_max_chars'], '" size="6"', $context['group']['id'] == 1 ? ' disabled="disabled"' : '', ' class="input_text" /> </dd> <dt> <label for="sig_max_lines_input"><strong>', $txt['mgsiglimit_max_lines'], ':</strong></label><br /> <span class="smalltext">', $txt['mgsiglimit_max_lines_note'], '</span> </dt> <dd> <input type="text" name="sig_max_lines" id="sig_max_lines_input" value="', $context['group']['id'] == 1 ? 0 : $context['group']['sig_max_lines'], '" size="6"', $context['group']['id'] == 1 ? ' disabled="disabled"' : '', ' class="input_text" /> </dd>'; ไฟล์ ./Themes/default/languages/Modifications.english.php ค้นหา PHP: ?> เพิ่มก่อน PHP: // Membergroup signature limit by Nas$txt['mgsiglimit_max_chars'] = 'Max signature characters';$txt['mgsiglimit_max_lines'] = 'Max signature lines';$txt['mgsiglimit_max_chars_note'] = 'The max amount of characters this group can have in their signatures. 0 to use the default limit.';$txt['mgsiglimit_max_lines_note'] = 'The max amount of lines this group can have in their signatures. 0 to use the default limit.'; ไฟล์ $languagedir/Modifications.thai-utf8.php ค้นหา PHP: ?> เพิ่มก่อน PHP: // Membergroup signature limit by Nas$txt['mgsiglimit_max_chars'] = 'จำนวนอักษรสูงสุดที่อนุญาตในลายเซ็น';$txt['mgsiglimit_max_lines'] = 'จำนวนบรรทัดสูงสุดที่อนุญาตในลายเซ็น';$txt['mgsiglimit_max_chars_note'] = 'The max amount of characters this group can have in their signatures. 0 to use the default limit.';$txt['mgsiglimit_max_lines_note'] = 'The max amount of lines this group can have in their signatures. 0 to use the default limit.'; สร้างไฟล์: dbModification_2.0.php เพื่อสร้างฐานข้อมูล ไว้ใน $boarddir รัน http://www.your_url.xxx/$boarddir/dbModification_2.0.php -->> Enter เสร็จแล้วลบทิ้ง ไฟล์ dbModification_2.0.php PHP: <?php// We have to either be in the admin center, or use SSI. If none of those are possible, throws an error on this silly user.if (file_exists(dirname(__FILE__) . '/SSI.php') && !defined('SMF')) require_once(dirname(__FILE__) . '/SSI.php');elseif (!defined('SMF')) die('SSI.php is required. Please make sure you placed this file in your SMF root folder.');// We'll need some extras here.db_extend('packages');$smcFunc['db_add_column']('{db_prefix}membergroups',array('name' => 'sig_max_lines', 'type' => 'int(10)'), array(), 'do_nothing', 'Added sig_max_lines to smf_membergroups');$smcFunc['db_add_column']('{db_prefix}membergroups',array('name' => 'sig_max_chars', 'type' => 'int(10)'), array(), 'do_nothing', 'Added sig_max_chars to smf_membergroups');?>