[Update#3] วิธีแก้ไข prestashop ให้ support SEF URL ภาษาไทยได้

เริ่มโดย barco, 22 กันยายน 2009, 23:42:40

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

mrdreamer

อ้างถึงจาก: kawpiyasup ใน 03 ตุลาคม 2009, 22:02:01
อ้างถึงจาก: barco ใน 22 กันยายน 2009, 23:42:40
Update: ไฟล์สำหรับขั้นตอนที่ 1 และ 3 ครับเพื่อความสะดวก
http://www.mediafire.com/?2znymv2tymm  
------------------------------------------------
Credit การทำมั่วๆ by ผมเอง  ;D
1. เข้าไปใน folder js หาไฟล์ที่ชื่อว่า admin.js
หา function str2url
แล้วหาบรรทัดที่เขียนว่า
str = str.replace(/[^a-z0-9\s\'\:\/\[\]-]/g,'');

จากนั้นแทนที่ด้วย
str = str.replace(/[^a-z0-9ก-๙\s\'\:\/\[\]-]/g,'');

2.  แก้ไฟล์ .htaccess แบบมักง่ายที่สุด
replace คำว่า [_a-zA-Z0-9-] และ [a-zA-Z0-9-]  เป็น . ใน RewriteRule แต่ละอัน

3.  Folder Class หา Validate.php แล้วหา function ชื่อว่า isLinkRewrite

จากนั้นแก้
return empty($link) OR preg_match('/^[_a-z0-9-]+$/ui', $link);
เป็น
return empty($link) OR preg_match('/^[_a-z0-9ก-๙-]+$/ui', $link);

ก็เสร็จเรียบร้อยแล้วครับ  ก็จะได้ SEF url ที่สวยงามดังภาพ  :-[
แต่ต้องไปเซ็ตในสินค้าก่อนด้วยนะครับ  :P

ลองทำดูครับถ้าไม่ได้แสดงว่าอาจทำผิดวิธีไม่ก็แสดงว่าผมจำผิด  ;D

ป.ล. แนะนำว่าให้แก้บนคอมเราก่อนแล้วค่อยอัพขึ้นโฮสนะครับเพื่อป้องกันอักขระผิดพลาด

ทำหมดแล้วครับ พิมพ์ไทยได้ แต่พอคลิกที่สินค้านั้นมันเกิด error แบบนี้ครับ

พบข้อผิดพลาด 1 ข้อผิดพลาด :

ไม่พบหมวดหมู่สินค้า

ผมก็เคยเจอตอนทำดันแก้ไม่หมด

ลองเช็คดูที่ ข้อ
2.  แก้ไฟล์ .htaccess แบบมักง่ายที่สุด
replace คำว่า [_a-zA-Z0-9-] และ [a-zA-Z0-9-]  เป็น . ใน RewriteRule แต่ละอัน

[_a-zA-Z0-9-] และ [a-zA-Z0-9-] มันมีอยู่หลายอันอยู่นะ ไม่ใช่อันเดียวแก้ให้หมดทุกอัน

Tip

ทำไม่ได้เหมือนกันค่ะ  :wanwan031: ไฟล์ .htaccess ต้องเจนยังไงคะ ของเรามันมีอยู่แล้วแค่เข้าไปเปลี่ยนชื่อไฟล์ htaccess.txt เฉยๆถูกหรือเปล่าคะ
:wanwan017:

barco

อ้างถึงจาก: Tip ใน 12 ตุลาคม 2009, 10:14:00
ทำไม่ได้เหมือนกันค่ะ  :wanwan031: ไฟล์ .htaccess ต้องเจนยังไงคะ ของเรามันมีอยู่แล้วแค่เข้าไปเปลี่ยนชื่อไฟล์ htaccess.txt เฉยๆถูกหรือเปล่าคะ
:wanwan017:

เปลี่ยนชื่อไฟล์ htaccess.txt ให้เป็น .htaccess แล้วตั้ง chmod ไว้ที่ 777 ครับจากนั้น เข้าไปที่ back office > preferences ปรับให้เปิด friendly url เป็น ใช่ หลังจากกดตกลง แล้วสามารถไป gen .htaccess ได้ตรง menu tool ครับ

Tip

ใช้เวอร์ชั่น 1 อยู่อ่ะค่ะ มันไม่มี generator ที่ tool จะทำยังไงได้บ้างคะ

barco

อ้างถึงจาก: Tip ใน 12 ตุลาคม 2009, 11:13:50
ใช้เวอร์ชั่น 1 อยู่อ่ะค่ะ มันไม่มี generator ที่ tool จะทำยังไงได้บ้างคะ

ลองใช้อันนี้ก๊อปไปทับดูครับ

อ้างถึง
# URL rewriting module activation
RewriteEngine on

# URL rewriting rules
RewriteRule ^([a-z0-9]+)\-([a-z0-9]+)(\-.*)/(.*)\.jpg$ /img/p/$1-$2$3.jpg [L,E]
RewriteRule ^([0-9]+)(\-.*)/(.*)\.jpg$ /img/c/$1$2.jpg [L,E]
RewriteRule ^lang-([a-z]{2})/(.*)/([0-9]+)\-(.*)\.html(.*)$ /product.php?id_product=$3&isolang=$1$5 [L,E]
RewriteRule ^lang-([a-z]{2})/([0-9]+)\-(.*)\.html(.*)$ /product.php?id_product=$2&isolang=$1$4 [L,E]
RewriteRule ^lang-([a-z]{2})/([0-9]+)\-(.*)(.*)$ /category.php?id_category=$2&isolang=$1 [QSA,L,E]
RewriteRule ^(.*)/([0-9]+)\-(.*)\.html(.*)$ /product.php?id_product=$2$4 [L,E]
RewriteRule ^([0-9]+)\-(.*)\.html(.*)$ /product.php?id_product=$1$3 [L,E]
RewriteRule ^([0-9]+)\-(.*)(.*)$ /category.php?id_category=$1 [QSA,L,E]
RewriteRule ^content/([0-9]+)\-(.*)(.*)$ /cms.php?id_cms=$1 [QSA,L,E]
RewriteRule ^([0-9]+)__(.*)(.*)$ /supplier.php?id_supplier=$1$3 [QSA,L,E]
RewriteRule ^([0-9]+)_(.*)(.*)$ /manufacturer.php?id_manufacturer=$1$3 [QSA,L,E]
RewriteRule ^lang-([a-z]{2})/(.*)$ /$2?isolang=$1 [QSA,L,E]


# Catch 404 errors
ErrorDocument 404 /404.php

PAGE

สิ่งที่ดีที่สุดในชีวิตคือความสงบ

raimai

ขอถามหน่อยครับว่าทำตามที่บอกหมดแล้ว (พิม friendly url ) เป็นไทยไม่ได้นะ แต่เลือกจากที่เคยพิมไว้ได้ แต่พอจะไปเพิ่มสินค้า มันบอกว่าต้องการภาษาไทย ในช่อง friendly url อยู่ดีอะครับ ยังไงก็เพิ่มสินค้าไม่ได้ ไม่ทราบว่าจะต้องแก้อย่างไรรึเปล่าครับ ใช่ 1.2.4 ครับ

เกย์

ขอบคุณมากครับ กำลังทดสอบอยู่เลย
นู๋ไม่ใช่เกย์ค่ะ

barco

อ้างถึงจาก: raimai ใน 13 ตุลาคม 2009, 13:20:36
ขอถามหน่อยครับว่าทำตามที่บอกหมดแล้ว (พิม friendly url ) เป็นไทยไม่ได้นะ แต่เลือกจากที่เคยพิมไว้ได้ แต่พอจะไปเพิ่มสินค้า มันบอกว่าต้องการภาษาไทย ในช่อง friendly url อยู่ดีอะครับ ยังไงก็เพิ่มสินค้าไม่ได้ ไม่ทราบว่าจะต้องแก้อย่างไรรึเปล่าครับ ใช่ 1.2.4 ครับ

อธิบายแล้วผม งง จังเลยแฮะ ถ้าไม่รังเกียจสร้าง account ให้ผม login เข้าไปหลังร้าน เพื่อดูให้ได้มั้ยครับ

Tip

รบกวนอีกรอบค่ะ ตอนนี้เปลี่ยนเวอร์ชั่นใหม่เรียบร้อย เจนไฟล์ .htaccess เรียบร้อย แก้ตามหมดเลยค่ะ แล้วก้อเอาไฟล์ที่โหลดมา 2 ไฟล์ใส่ทับไปเรียบร้อยค่ะ แต่ก็ยังพิมพ์ไทยไม่ได้อยู่ดี พอลองเข้าไปดูไฟล์ที่เราพิมพ์ ก-๙ มันกลายเป็นตัวอักษรอื่นแทนอ่ะค่ะ ลองแก้ด้วย dreamweaver เวลาเปิดมาดูในเครื่องมันก็ถูกต้องดีแต่พอดูจากโฮสต์มันกลายเป็นอักษรอื่นค่ะ  :-X แก้ยังไงดีคะ

barco

อ้างถึงจาก: Tip ใน 13 ตุลาคม 2009, 17:52:13
รบกวนอีกรอบค่ะ ตอนนี้เปลี่ยนเวอร์ชั่นใหม่เรียบร้อย เจนไฟล์ .htaccess เรียบร้อย แก้ตามหมดเลยค่ะ แล้วก้อเอาไฟล์ที่โหลดมา 2 ไฟล์ใส่ทับไปเรียบร้อยค่ะ แต่ก็ยังพิมพ์ไทยไม่ได้อยู่ดี พอลองเข้าไปดูไฟล์ที่เราพิมพ์ ก-๙ มันกลายเป็นตัวอักษรอื่นแทนอ่ะค่ะ ลองแก้ด้วย dreamweaver เวลาเปิดมาดูในเครื่องมันก็ถูกต้องดีแต่พอดูจากโฮสต์มันกลายเป็นอักษรอื่นค่ะ  :-X แก้ยังไงดีคะ

สร้าง acc หลังร้านแล้ว PM มาให้ทีครับขอเข้าไปดูนิดซ์

ming0189


Tip

ทำได้แล้วค๊า  :wanwan013: :wanwan013: กลับไปแก้ ก-๙ อีกทีแล้วมันก้อใช้ได้เฉยเลย ดีใจมากมาก

ขอบคุณมากมากค่ะ  :wanwan017: :wanwan017: barco ใจดีที่สุดในโลกเลย  :wanwan008:

*UPDATE*

ปัญหาใหม่ค่ะ ปุ่มรูปธงที่ไว้กดเวลาจะเปลี่ยนภาษาใช้ไม่ได้ซะแล้วค่ะ เฮ้อ เหนื่อยใจจัง

Normaderm

หลังจากที่เคยทำได้แล้ว


พอลงอีกเว็บ กลับมาทำไม่ได้อีกครั้ง ทั้งๆ ที่ใช้ ไฟล์ เก่าอัพเข้าไป   :P :P :P

นั่งอยุ่ สอง ชั่วโมงตอนนี้ทำได้ละครับ

  • เจนไฟล์  .htaccess ขึ้นมาใหม่
  • แก้ไขตามกระทู้หน้าแรก แล้วอัพขึ้นไปทับ

:wanwan003:
[direct=https://www.facebook.com/aiunlockedvip]สอน AI[/direct]| [direct=https://aiunlock.co/]คอร์ส AI[/direct] | [direct=https://aiunlock.co/]สอน n8n[/direct]  | [direct=https://www.aiunlockinnovations.com/]สอน AI เชียงใหม่[/direct]

barco

อ้างถึงจาก: Tip ใน 13 ตุลาคม 2009, 19:54:38

ปัญหาใหม่ค่ะ ปุ่มรูปธงที่ไว้กดเวลาจะเปลี่ยนภาษาใช้ไม่ได้ซะแล้วค่ะ เฮ้อ เหนื่อยใจจัง

ใช้ไม่ได้นี่คือยังไงครับผม ไม่โผล่ หรือกดแล้วไม่มีอะไรเปลี่ยน

maycy04



อร๊ายยยยยยยยยยยยยยยยยย ทำได้แล้วคะ ดีใจๆๆๆๆๆๆๆๆๆๆๆๆๆๆ

ขอบคุณมากเลยนะคร๊าาาาาาาาาาาา   :wanwan014: :wanwan014: :wanwan019: :wanwan019: :wanwan020: :wanwan020:

Step9

ความเดิมจากตอนที่แล้ว..

ไม่ได้ทำอะไรต่อเลย  แต่เมื่อครู่ทดลองใส่อักษรไทยที่ช่องดังกล่าว คราวนี้ไม่ถูกลบแล้วแหะ 

อ่า หวังว่าคงไม่เป็นๆหายๆนะครับ

:'(
[direct=http://www.thaiseoboard.com/index.php/topic,315485]รับจ้างโพสเว็บ ขายสินค้าและบริการ, ขายบ้าน อสังหาริมทรัพย์[/direct] | [direct=http://www.thaiseoboard.com/index.php/topic,372074]ขายอะไรดี คำแนะนำจาก คุรุเทพ[/direct]
  |  [direct=http://www.iseehomecomplex.com/]ถ้าเพียงเรา.. มีบ้านอยู่...[/direct]

shallowsleep

ไม่รู้ว่าเป็นกันมั่งรึป่าวคับ
คือผมใช้กับ 1.2.4 กับโมดูล wiznav
พอไปเปลี่ยนเป็น friendly url ปั้บ
ทำตามหมดทุกอย่าง
เข้าหน้าสินค้าไรได้เหมือนเดิมหมด (url เปลี่ยนไปแล้ว)
แต่พอมาเข้าหน้าพวก info ทั้งหลาย About us / delivery

ตรงwiznav มันไม่เห็นรูปเลยอ่ะครับ

งงเลย
ทั้งที่ถ้าเข้าตรงบาร์ wiznav เข้าได้ปกติ :wanwan035:
เคสไอโฟน4s www.backtoservice.com เคสไอโฟน5s
Case iPhone 4s เคส iPhone 5

barco

อ่ามันไม่เกี่ยวกับการตั้ง friendly url เป็นภาษาไทยนะครับ

แต่ถ้าเซ็ต friendly url ปุ๊บไม่ว่าไทยหรืออังกฤษ มันจะเป็นทันทีอันเนื่องมาจากหน้า info มันจะใช้ friendly แบบ /cms/topic

ทำให้บาง module เช่น wiznav เป็นต้นครับ ใช้ลักษณะของ address เป็น modules/wiznav/img/ไฟล์ภาพ

ทำให้ มันพยายามหาภาพใย folder /cms/modules ซึ่งหาให้ตายก็ไม่เจอครับ  ฉะนั้นลอง เปลี่ยน url ภาพต่างๆ ใน module wiznav หรือ module อื่นๆ ที่มีปัญหา โดยใช้  ../ นำหน้า url เดิมครับ
เช่น จาก
modules/wiznav/img/home.png
ก็เป็น
../modules/wiznav/img/home.png

หรือ
{$base_dir}/modules/wiznav/img/home.png ก็ได้ครับ

ครับ

shallowsleep

อ้างถึงจาก: barco ใน 20 ตุลาคม 2009, 17:38:19
อ่ามันไม่เกี่ยวกับการตั้ง friendly url เป็นภาษาไทยนะครับ

แต่ถ้าเซ็ต friendly url ปุ๊บไม่ว่าไทยหรืออังกฤษ มันจะเป็นทันทีอันเนื่องมาจากหน้า info มันจะใช้ friendly แบบ /cms/topic

ทำให้บาง module เช่น wiznav เป็นต้นครับ ใช้ลักษณะของ address เป็น modules/wiznav/img/ไฟล์ภาพ

ทำให้ มันพยายามหาภาพใย folder /cms/modules ซึ่งหาให้ตายก็ไม่เจอครับ  ฉะนั้นลอง เปลี่ยน url ภาพต่างๆ ใน module wiznav หรือ module อื่นๆ ที่มีปัญหา โดยใช้  ../ นำหน้า url เดิมครับ
เช่น จาก
modules/wiznav/img/home.png
ก็เป็น
../modules/wiznav/img/home.png

หรือ
{$base_dir}/modules/wiznav/img/home.png ก็ได้ครับ

ครับ

ขอบคุณมากครับ เจ๋งไปเลย :wanwan011: ผมงมอยู่ตั้งนาน
เคสไอโฟน4s www.backtoservice.com เคสไอโฟน5s
Case iPhone 4s เคส iPhone 5