ยกเลิก Class ชื่อ JDocumentRendererHead ในเวอร์ชั่น 3.8.0 ขึ้นไป ทำให้เกิด Error ที่หน้าเว็บไซต์
โพสต์แล้ว: 18/10/2017 3:58 pm
หากอัพเดท Joomla เป็นเวอร์ชั่น 3.8.0 ขึ้นไป หลังจากนั้นเข้าหน้าที่ไม่มีในเว็บ หรือ ทำ Error ที่หน้าเว็บ คุณอาจจะเจอข้อความแจ้งแบบด้านล่าง
เป็นเพราะใน Joomla เวอร์ชั่น 3.8.0 มีการปรับโครงสร้างของ Class ใหม่ ไปใช้ Namespace ทำให้มีปัญหาหา Class ไม่เจอ
จาก Error ด้านบนเกิดจากหา Class ชื่อ JDocumentRendererHead ไม่เจอ ในไฟล์ชื่อ error.php ในโฟลเดอร์ templates ที่ใช้อยู่
แก้จาก
เป็น
โค้ด: เลือกทั้งหมด
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
จาก 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)