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

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

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

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
ขอบคุณครับแก้ไขได้แล้วครับ

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

โดย tsukasaz » 03/05/2018 11:25 am

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

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.

ยกเลิก 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)

ข้างบน