Discuz Thai

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

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

Discuz! X3.4 Thai R20211022 (REV.70) พร้อมให้ลิ้มลอง ระบบเว็บบอร์ดที่ครบครัน ดาวน์โหลด Discuz! X3.4 ภาษาไทยล่าสุดที่นี่

บัญชีถูกแช่แข็ง (Freeze) แจ้งความประสงค์ได้ที่นี่ เปิดระบบ Verified Account - ระบบยืนยันตัวตน ถามอย่างไรจึงจะได้คำตอบ - ตั้งกระทู้เนื้อหาครอบคลุม

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

[x2.5] แก้ปัญหาความยาวของชื่อกระทู้ ให้นับตัวอักษรไทยเป็น 1 ตัวอักษร และมีความยาว 80 ตัวอักษรไทย

  [คัดลอกลิงก์]
โปรดสำรองไฟล์ทุกไฟล์ที่แก้ไข - ไม่รับผิดชอบต่อความเสียหายที่เกิดขึ้นทุกกรณี

โดยปกติแล้ว ใน Discuz เวอร์ชั่นก่อน สมาชิกหลายท่านคงแก้ไขด้วยการเพิ่มความยาวของชื่อกระทู้เป็น 250 ตัวอักษร
และแก้ฐานข้อมูล เพราะใน Discuz นับตัวอักษรเป็น 3 ไบท์ เมื่อเราใส่ตัวอักษรไทย 80 ตัวอักษร discuz จะนับเป็น 240 ตัวอักษร

วันนี้อย่างแชร์อีกวิธีการที่สะดวกกว่า โดยใช้ความยาว 80 ตัวอักษรเท่าเดิม แต่จะแก้ให้ Discuz นับตัวอักษรไทย แค่ 1 ไบท์
ทำให้เราใช้ชื่อเป็นภาษาไทยได้ยาว 80 ตัวอักษรจริงๆ...


ตัวอย่าง





คะแนน

4

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

คลังกระทู้ที่เกี่ยวข้อง:

  • · Mod|หัวข้อ: 1, ติดตาม: 0
  • · MOD|หัวข้อ: 2, ติดตาม: 0
 เจ้าของ| โพสต์ 2012-5-21 21:29:41 | ดูโพสต์ทั้งหมด
แก้ไขครั้งสุดท้าย 2012-5-21 21:34 โดย admins

static/js/common.js

#แก้ไขให้นับตัวอักษรไทยเป็น 1 ตัวอักษร จากปกตินับเป็น 3 ตัวอักษร
ค้นหาและลบ
  1.         for(var i = 0; i < v.length; i++) {
  2.                 if(v.charCodeAt(i) < 0 || v.charCodeAt(i) > 255) {
  3.                         curlen -= charset == 'utf-8' ? 2 : 1;
  4.                 }
  5.         }
คัดลอกไปที่คลิปบอร์ด
แก้ไข
  1.                 obj.value = mb_cutstr(v, maxlen, 0);
คัดลอกไปที่คลิปบอร์ด
เป็น
  1. obj.value = obj.value.substr(v, maxlen);
คัดลอกไปที่คลิปบอร์ด
 เจ้าของ| โพสต์ 2012-5-21 21:30:45 | ดูโพสต์ทั้งหมด
static\js\forum_post.js

ค้นหา
  1. } else if(mb_strlen(theform.subject.value) > 80) {
คัดลอกไปที่คลิปบอร์ด
แก้ไข
  1. } else if(theform.subject.value.length > 80) {
คัดลอกไปที่คลิปบอร์ด
 เจ้าของ| โพสต์ 2012-5-21 21:31:13 | ดูโพสต์ทั้งหมด
source\function\function_core.php

ค้นหา
  1. function dstrlen($str) {
  2.         if(strtolower(CHARSET) != 'utf-8') {
  3.                 return strlen($str);
  4.         }
คัดลอกไปที่คลิปบอร์ด
เพิ่มด้านล่าง
  1.         return mb_strlen($str,'utf-8');
คัดลอกไปที่คลิปบอร์ด
ค้นหาและลบออก
  1.         $count = 0;
  2.         for($i = 0; $i < strlen($str); $i++){
  3.                 $value = ord($str[$i]);
  4.                 if($value > 127) {
  5.                         $count++;
  6.                         if($value >= 192 && $value <= 223) $i++;
  7.                         elseif($value >= 224 && $value <= 239) $i = $i + 2;
  8.                         elseif($value >= 240 && $value <= 247) $i = $i + 3;
  9.                     }
  10.                     $count++;
  11.         }
  12.         return $count;
คัดลอกไปที่คลิปบอร์ด
ค้นหา
  1. function cutstr($string, $length, $dot = ' ...') {
  2.         if(strlen($string) <= $length) {
คัดลอกไปที่คลิปบอร์ด
แก้เป็น
  1. function cutstr($string, $length, $dot = ' ...') {
  2.         if(dstrlen($string) <= $length) {
คัดลอกไปที่คลิปบอร์ด
 เจ้าของ| โพสต์ 2012-5-21 21:33:17 | ดูโพสต์ทั้งหมด
ชื่อบอร์ด ให้ยาว 50 ตัวอักษรไทย
source\admincp\admincp_forums.php

ค้น
  1.                 if(strlen($_GET['namenew']) > 50) {
คัดลอกไปที่คลิปบอร์ด
แก้เป็น
  1.                 if(dstrlen($_GET['namenew']) > 50) {
คัดลอกไปที่คลิปบอร์ด
โพสต์ 2012-5-25 18:52:45 | ดูโพสต์ทั้งหมด
ขอบคุณมากๆครับ {:9986gag:}
โพสต์ 2012-5-28 20:06:21 | ดูโพสต์ทั้งหมด
ขอบคุณครับ ; )
โพสต์ 2012-5-31 18:26:35 | ดูโพสต์ทั้งหมด
แก้ไข เยอะมากครับ

เวลาอัพแพทช์ครั้งใหม่ คงมานั่งไล่โค๊ดกันอีกยาว

ขอบคุณสำหรับทริปดีๆ ครับ น่าเอาไปสานต่อครับ
โพสต์ 2012-6-4 18:33:29 | ดูโพสต์ทั้งหมด
ขอบคุณมากนะครับก็ดีเหมือนกันนะครับแต่เวลามีแพทใหม่มานั่งแก้โค้ตอีกคิคิ
โพสต์ 2012-6-7 19:25:09 | ดูโพสต์ทั้งหมด


แล้วถ้าจะให้ชื่อกระทู้แสดงที่หน้าที่ต้องการทั้งหมด (DIY) แบบไม่ตัดคำ ต้องปรับอะไรบ้าง...ขอรับ

ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | สมัครสมาชิก

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

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

GMT+7, 2021-11-29 21:17

Powered by Discuz! X3.4, Rev.66

Copyright © 2001-2021 Tencent Cloud. Licensed

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