我在opencart中遇到问题,启动用户面板以显示这样的错误。我是安装主题但显示错误。但默认情况下主题运行是好的。
Fatal error: Call to undefined method Loader::library() in C:\xampp\htdocs\shopify\catalog\controller\journal2\settings.php on line 20
并且代码是setting.php文件是
<?php
class ControllerJournal2Settings extends Controller {
private static $CACHEABLE = null;
private $css_settings = array();
private $js_settings = array();
protected $data = array();
protected function render() {
return Front::$IS_OC2 ? $this->load->view($this->template, $this->data) : parent::render();
}
public function index() {
$this->load->model('journal2/db');
$this->load->model('tool/image');
// admin mode
$this->load->library('user');
$this->user = new User($this->registry);
if ($this->user->isLogged()) {
$this->journal2->html_classes->addClass('is-admin');
}
// customer
if ($this->customer->isLogged()) {
$this->journal2->html_classes->addClass('is-customer');
} else {
$this->journal2->html_classes->addClass('is-guest');
}
// get current store config settings
$db_config_settings = $this->model_journal2_db->getConfigSettings();
foreach ($db_config_settings as $key => $value) {
$this->journal2->settings->set('config_' . $key, $value);
}
// get active skin
$skin_id = $this->journal2->settings->get('config_active_skin', 1);
if (!$this->model_journal2_db->skinExists($skin_id)) {
$skin_id = 1;
}
如何解决它。 请帮忙。
答案 0 :(得分:3)
我遇到了同样的问题,尝试过Journal 2.3,2.4.8和2.5.5;全部使用opencart 2.1.0。
感谢本教程: http://code.tutsplus.com/tutorials/understand-registry-and-loader-objects-in-opencart--cms-23702
我注意到库没有函数定义来调用$ this-&gt; load-&gt; library();所以我在下面定义了我的节目:
public function library($library) {
$file = DIR_SYSTEM . 'library/' . str_replace('../', '', (string)$library) . '.php';
if (file_exists($file)) {
include_once($file);
} else {
trigger_error('Error: Could not load library ' . $file . '!');
exit();
}
}
它对我有用,你也可以尝试一下。
答案 1 :(得分:1)
问题是由代码引起的:
$this->load->library('user');
只能运行版本&lt; 2.1
OpenCart版本随时都会进行代码更改,您应该始终更新到最新的主题版本,该版本始终修复此类错误。
答案 2 :(得分:1)
此方法已从2.1.0.1中删除,更容易通过编辑核心文件手动将其添加回来。
<?xml version="1.0" encoding="utf-8"?>
<modification>
<file path="system/engine/loader.php">
<operation>
<search index="0">
<![CDATA[final class Loader {]]>
</search>
<ignoreif>
<![CDATA[function library(]]>
</ignoreif>
<add position="after">
<![CDATA[ public function library($library) {
$file = DIR_SYSTEM . 'library/' . $library . '.php';
if (file_exists($file)) {
include_once($file);
} else {
trigger_error('Error: Could not load library ' . $file . '!');
exit();
}
}]]>
</add>
</operation>
</file>
</modification>
答案 3 :(得分:0)
启用OpenBayPro和eBay扩展程序时,您可能会因以下错误而导致网站崩溃:
致命错误:在第146行的/xyz/system/library/openbay/ebay.php中调用未定义的方法Loader :: library()
日志记录类存在问题我尚未跟踪,但如果您希望自己的网站快速恢复,只需打开文件system/library/openbay/ebay.php
并注释掉第27行,这只会关闭对此扩展程序的日志记录的调用:
代码(全选):
if ($this->logging == 1) {
//$this->setLogger();
}
<强>来源:强>