ยกเลิก Class ชื่อ JDocumentRendererHead ในเวอร์ชั่น 3.8.0 ขึ้นไป ทำให้เกิด Error ที่หน้าเว็บไซต์

ถามตอบ ปัญหาการพัฒนา Extension ไม่ว่าจะเป็น Module plugin Component หรือ แม้แต่ template การปรับแต่งโค้ด Joomla ต่างๆ ทุกเวอร์ชั่น 1.5 2.5 หรือ 3.x

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
tsukasaz
PHP VIP Members
PHP VIP Members
โพสต์: 6487
ลงทะเบียนเมื่อ: 18/04/2012 9:39 am

ยกเลิก Class ชื่อ JDocumentRendererHead ในเวอร์ชั่น 3.8.0 ขึ้นไป ทำให้เกิด Error ที่หน้าเว็บไซต์

โพสต์โดย tsukasaz » 18/10/2017 3:58 pm

หากอัพเดท Joomla เป็นเวอร์ชั่น 3.8.0 ขึ้นไป หลังจากนั้นเข้าหน้าที่ไม่มีในเว็บ หรือ ทำ Error ที่หน้าเว็บ คุณอาจจะเจอข้อความแจ้งแบบด้านล่าง

โค้ด: เลือกทั้งหมด

Warning: require_once(/***.com/httpdocs/libraries/joomla/document/html/renderer/head.php): failed to open stream: No such file or directory in /***.com/httpdocs/templates/vina_erida/error.php on line 27

Fatal error: require_once(): Failed opening required '/***.com/httpdocs/libraries/joomla/document/html/renderer/head.php' (include_path='.:/opt/plesk/php/7.0/share/pear') in /***.com/httpdocs/templates/vina_erida/error.php on line 27


เป็นเพราะใน Joomla เวอร์ชั่น 3.8.0 มีการปรับโครงสร้างของ Class ใหม่ ไปใช้ Namespace ทำให้มีปัญหาหา Class ไม่เจอ

จาก Error ด้านบนเกิดจากหา Class ชื่อ JDocumentRendererHead ไม่เจอ ในไฟล์ชื่อ error.php ในโฟลเดอร์ templates ที่ใช้อยู่

แก้จาก

โค้ด: เลือกทั้งหมด

require_once(JPATH_LIBRARIES.'/joomla/document/html/renderer/head.php');
$header_renderer = new JDocumentRendererHead($doc);
$header_contents = $header_renderer->render(null);


เป็น

โค้ด: เลือกทั้งหมด

$header_renderer = new Joomla\CMS\Document\Renderer\Html\HeadRenderer($doc);
$header_contents = $header_renderer->render(null)
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)



  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 6 และ บุคคลทั่วไป 0 ท่าน