ยกเลิก 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
โพสต์: 7559
ลงทะเบียนเมื่อ: 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)


ภาพประจำตัวสมาชิก
nuattawoot
PHP VIP Members
PHP VIP Members
โพสต์: 1725
ลงทะเบียนเมื่อ: 05/06/2017 9:34 am

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

โพสต์โดย nuattawoot » 03/05/2018 12:06 am

แก้แล้ว เจอ error ต่อครับ
ที่ใช้ PHP version: 7.2.5

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

Error: syntax error, unexpected '$error_bg' (T_VARIABLE): The GD extension for PHP is not available.
First Bug Love you

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

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

โพสต์โดย tsukasaz » 03/05/2018 11:25 am

เป็นปัญหาคนละเรื่องกันแล้วครับ อันนั้นต้องไปติดตั้ง Extension ใน PHP เพิ่ม http://php.net/manual/en/image.installation.php
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)

ภาพประจำตัวสมาชิก
nuattawoot
PHP VIP Members
PHP VIP Members
โพสต์: 1725
ลงทะเบียนเมื่อ: 05/06/2017 9:34 am

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

โพสต์โดย nuattawoot » 04/05/2018 10:57 pm

tsukasaz เขียน:เป็นปัญหาคนละเรื่องกันแล้วครับ อันนั้นต้องไปติดตั้ง Extension ใน PHP เพิ่ม http://php.net/manual/en/image.installation.php

ขอบคุณครับแก้ไขได้แล้วครับ
First Bug Love you


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

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

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

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