กำหนดลายเซ็นสมาชิกตามกลุ่ม (Membergroup Signature Limits)

หัวข้อกระทู้ ใน 'ความรู้ SMF' เริ่มโพสต์โดย jormthepcyber, 19 ธันวาคม 2016.

  1. jormthepcyber

    jormthepcyber Administrator Staff Member

    สมัครเมื่อ:
    16 ธันวาคม 2016
    ข้อความโพสต์:
    81
    คำชอบใจ:
    0
    ถ้วยรางวัลสะสม:
    6
    แก้ไขไฟล์:

    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" => '''&#039' => '\''));
           
    // Too long?
           
    if (!empty($sig_limits[1]) && $smcFunc['strlen']($unparsed_signature) > $sig_limits[1])
           {
               
    $_POST['signature'] = trim(htmlspecialchars($smcFunc['substr']($unparsed_signature0$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" => '''&#039' => '\''));
           
    // Too long?
           
    if (!empty($mg_sig_limits['chars']) && $smcFunc['strlen']($unparsed_signature) > $mg_sig_limits['chars'])
           {
               
    $_POST['signature'] = trim(htmlspecialchars($smcFunc['substr']($unparsed_signature0$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'] != $row['sig_max_lines'] : $sig_limits[2],
           
    'chars' => isset($row['sig_max_chars']) && $row['sig_max_lines'] != $row['sig_max_chars'] : $sig_limits[1],
       );

       return 
    $mg_sig_limits;
    }
    ไฟล์ $sourcedir/ManageMembergroups.php

    ค้นหา -->>

    PHP:
    $_POST['group_inherit'] = $_REQUEST['group'] > && $_REQUEST['group'] != ? (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_namedescriptionmin_postsonline_colormax_messagesstarsgroup_typehiddenid_parent
    แก้เป็น -->>

    PHP:
    SELECT group_namedescriptionmin_postsonline_colormax_messagesstarsgroup_typehiddenid_parentsig_max_linessig_max_chars
    ค้นหา -->>

    PHP:
    'allow_delete' => $_REQUEST['group'] == || $_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');

    ?>
     

แบ่งปันหน้านี้