วันพฤหัสบดีที่ 3 พฤศจิกายน พ.ศ. 2554

วิธีแก้ไขเวลาที่แสดงผิดเพี้ยนใน Jcomment ของ Joomla!

       คนที่ใช้ตัว Comment ของ “JComment” จะเจอปัญหาเดียวกันหรือเปล่านะคะ เรื่อง “เวลาที่แสดงของ comment ไม่ถูกต้อง” ทีแรกใช้ๆ ไปก็ไม่ได้สังเกตเรื่องเวลา เพราะเราไม่ได้เป็นคน comment แต่พอไปตอบ comment ก็เอ๊ะเวลามันแปลกๆ
        ถ้าเจอปัญหาเดียวกัน ก็แก้ตามวิธีการด้านล่างเลยค่ะ
ตอนที่เรากำหนดค่าเวลาใน Global Configuration ของ Joomla! ให้เป็นเวลาของประเทศไทย ตรงแท็บ Server ส่วนของ Local Settings (Time Zone) ได้เลือกเป็น UTC+7 Bangkok เอาไว้
แต่เวลาคนมาเขียน comment มันเก็บค่าเป็น เวลาตอนนั้น + 7 ทำให้ได้ค่าเวลามากเกินไป
วิธีแก้ไขเวลาที่ผิดเพี้ยน ให้แก้ไข code ใน 2 ไฟล์ มี 2 วิธี ดังนี้ค่ะ
วิธีที่ 1 based on server/hosting timezone
1. ไฟล์ components\com_jcomments\jcomments.class.php
ค้นหาบรรทัด
$comment_date = date(‘Y-m-d H:i:s’, time() + $mainframe->getCfg(‘offset’) * 60 * 60);
แก้ไขเป็น
$comment->date = date(‘Y-m-d H:i:s’, time());
2. ไฟล์ components\com_jcomments\jcomments.ajax.php
ค้นหาบรรทัด
$comment->date = date(‘Y-m-d H:i:s’, time() + $mainframe->getCfg(‘offset’) * 60 * 60);
แก้ไขเป็น
$comment_date = date( ‘Y-m-d H:i:s’, time());
บันทึกค่าแล้ว upload ขึ้นไปทับไฟล์เดิม ทีนี้พอมี comment ใหม่ๆ เวลาก็จะบันทึตามเวลาของเครื่อง Server ส่วนเวลาที่ผิดไปแล้ว ถ้าอยากแก้ไขให้ใช้ phpMyAdmin เข้าไปแก้แต่ละ record โดยตรงค่ะ


วิธีที่ 2 base on Joomla date time
1. ไฟล์ components\com_jcomments\jcomments.class.php
ค้นหาบรรทัด

$comment_date = date(‘Y-m-d H:i:s’, time() + $mainframe->getCfg(‘offset’) * 60 * 60);
แก้ไขเป็น
$createdate = JFactory::getDate();
$createdate = $createdate->toMySQL();
$jdate = new JDate($createdate);
$jdate->setOffset($mainframe->getCfg(‘offset’));
$formatDate = $jdate->toFormat(“%Y-%m-%d %H:%M:%S”);
$comment->date = $formatDate;
2. ไฟล์ components\com_jcomments\jcomments.ajax.php
ค้นหาบรรทัด
$comment->date = date(‘Y-m-d H:i:s’, time() + $mainframe->getCfg(‘offset’) * 60 * 60);
แก้ไขเป็น
$createdate = JFactory::getDate();
$createdate = $createdate->toMySQL();
$jdate = new JDate($createdate);
$jdate->setOffset($mainframe->getCfg(‘offset’));
$formatDate = $jdate->toFormat(“%Y-%m-%d %H:%M:%S”);
$comment_date = $formatDate;
ref : http://www.joomlatune.com/forum/index.php?topic=271.0

ไม่มีความคิดเห็น:

แสดงความคิดเห็น