Discuz Thai

 ลืมรหัสผ่าน
 สมัครสมาชิก

ข้อตกลงการใช้งานกระดานข่าวดิสคัสไทย DiscuzThai Agreement (English Version) ประกาศดิสคัสไทย - ทำเนียบดิสคัสภาษาไทย

Discuz! X3.5 Thai R20231001 Rev.8 (NEW) [วิดีโอช่วยสอน] อัปเกรด Discuz! X3.4 เป็น X3.5 Discord ของ Discuz! Thai Community อย่างเป็นทางการ

Discuz! X3.4 Thai R20220811 (REV.75) สิ้นสุดการสนับสนุน Discuz! X3.4 ภาษาไทยตั้งแต่วันนี้เป็นต้นไป (ขอแนะนำให้อัปเกรดเป็น X3.5 แทน)

ค้นหา
แท็กยอดนิยม: ดิสคัสภาษาไทย Discuz Thai
ดู: 5737|ตอบกลับ: 3

[X2] สมัครชื่อภาษาไทยให้ยาวๆๆ ใน Discuz X2

  [คัดลอกลิงก์]
thaifeed โพสต์ 2012-2-9 11:51:31 |โหมดอ่าน
แก้ไขครั้งสุดท้ายโดย thaifeed เมื่อ 2012-2-9 11:53

พอดีผมเพิ่งลองใช้ Discuz นะครับ มีอะไรผิดพลาดก็ขออภัยล่วงหน้าด้วยนะครับ

พอดีผมอยากทำให้สมัครชื่อภาษาไทยยาว ๆ ได้ ก็เลยลองหาข้อมูลจากบอร์ดนี้ ก็ได้ตามลิ้งค์ด้านล่าง

http://forum.discuzthai.com/foru ... id=21719&page=1

http://forum.discuzthai.com/foru ... id=26940&page=1

ลองดูแล้วก็ยังไม่ได้ผลเพราะว่ามันใช้กับ 1.5 ก็เลยลอง งม ๆ เอง ก็จะได้การแก้ไขดังต่อไปนี้นะครับ


1. source/class/class_member.php

ค้นหา >>
  1. } elseif($usernamelen > 15) {
คัดลอกไปที่คลิปบอร์ด
แก้เลข  15  เป็น ตัวเลขความยาวที่ต้องการเช่น 200


2. source/module/forum/forum_ajax.php

ค้นหา >>
  1. elseif($usernamelen > 15)
คัดลอกไปที่คลิปบอร์ด
แก้เลข  15  เป็น ตัวเลขความยาวที่ต้องการเช่น 200


3. static/js/register.js

ค้นหา >>
  1. if(unlen < 3 || unlen > 15) {
คัดลอกไปที่คลิปบอร์ด
แก้เลข  15  เป็น ตัวเลขความยาวที่ต้องการเช่น 200


4. template/default/member/register.htm

ค้นหา >>
  1. maxlength="15"
คัดลอกไปที่คลิปบอร์ด
แก้เลข  15  เป็น ตัวเลขความยาวที่ต้องการเช่น 200


5. uc_server/model/user.php
    uc_client/model/user.php

ค้นหา >>
  1. if($len > 15 || $len < 3 ||
คัดลอกไปที่คลิปบอร์ด
แก้เลข  15  เป็น ตัวเลขความยาวที่ต้องการเช่น 200


6. แก้ไขตัวเลข username ในฐานข้อมูล pre_common_members และ pre_ucenter_members   

แก้เลข  15  เป็น ตัวเลขความยาวที่ต้องการเช่น 200


เท่าที่ลองแล้วได้ผลนะครับ สมัครได้ ใช้งานได้ แต่ไม่แน่ใจจะมีปัญหาอื่นตามมาหรือไม่ ยังไงก็ช่วยชี้แนะด้วยนะครับ

คะแนน

จำนวนผู้เข้าร่วม 1จิตพิศัย +1 ย่อ เหตุผล
S¡|€n7 + 1 เนื้อหาดีมีสาระ.

ดูบันทึกคะแนน

bonparadorn โพสต์ 2012-5-6 17:57:58
แก้ไขครั้งสุดท้าย 2012-5-6 18:15 โดย bonparadorn

แก้ไขครั้งสุดท้าย 2012-5-6 18:05 โดย bonparadorn

แก้ไขครั้งสุดท้าย 2012-5-6 18:04 โดย bonparadorn

ความยาว 15 เหมาะแล้วครับ แต่ปัญหาคือภาษาไทย utf-8 ใช้พื้นที่ 3ไบท์ แม้ฟังชั่น function dstrlen($str) ของDiscuz
จะช่วยแล้ว แต่ผมอ่านๆดูแล้วเป็นการช่วยแบบจีน ควรเปลี่ยนฟังชั่นนี้จาก strlen($string) เป็น
mb_strlen($string, 'utf-8')
และเปลี่ยนเงื่อนไขอักษรบนล่างใหม่ของเดิมเป็นเงื่อนไขแบบจีน เป็น
if(!( $ascii == 209 ||  ($ascii >= 212 && $ascii <= 218 ) || ($ascii >= 231 && $ascii <= 238 )))
.....
...
บู้อี้ << จะมีค่าแค่2
  1.         function strlenth($str)
  2.     {
  3.        $arr = str_split($str);
  4.        $count = 0;
  5.           foreach($arr as $val)
  6.           {
  7.                 $ascii = ord($val);
  8.                 if(!( $ascii == 209 ||  ($ascii >= 212 && $ascii <= 218 ) || ($ascii >= 231 && $ascii <= 238 )))
  9.                         $count += 1;
  10.           }
  11.           return $count;
  12.     }
คัดลอกไปที่คลิปบอร์ด
มันไปติดที่ผมเขียน java ไม่เป็น ไม่งั้นคงจะช่วยได้มากกว่านี้ครับ

เวิคที่สุด ให้ input รับมา 15 อักษร แล้วแก้ไขฟังชั้นข้างในเป็น 45 ให้หมดครับ ต้องแก้ดาต้าเบสด้วย char(45) เพื่อสละบนล่าง

คะแนน

จำนวนผู้เข้าร่วม 1จิตพิศัย +5 Money +5 ย่อ เหตุผล
jaideejung007 + 5 + 5 ไอเดียบรรเจิด

ดูบันทึกคะแนน

lahu โพสต์ 2012-2-9 17:20:39
จริงหรอครับขอบคุณมาก
seedmix โพสต์ 2012-6-4 18:31:43
ขอบคุณครับ
ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | สมัครสมาชิก

รายละเอียดเครดิต

รายชื่อผู้กระทำผิด|Archiver|ดิสคัส ไทย Follow us: Become a fan on facebook. Follow us on Twitter.

GMT+7, 2024-3-29 03:53

Powered by Discuz! X3.4, Rev.66

Copyright © 2001-2021 Tencent Cloud. Licensed

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้