PyroCMS自定义库和CI SuperObject

时间:2011-11-16 22:04:33

标签: codeigniter pyrocms

应该很简单,但事实并非如此。

我有一个希望使用其他库的库,但有些东西不是jiving。

两个lib都存在于system / cms / libraries中,因为据我所知,addons / shared_addons / libraries完全没用,而且库需要自动加载(似乎system / cms本质上是系统/应用程序,但请更正我错了)旁白:只是为了踢,我把一个库放在shared_addons / libaries中,看看我是否可以从一个模块调用;我不能。为什么会这样?

LIB1
- 需要db
- 需要lib2

LIB2
- 需要会议

这是发生了什么。控制器[模块]加载;调用lib1,调用lib2会引发错误。 Lib1将由所有模块控制器调用。 Lib2使用先前设置的会话数据,仅由lib1调用。

在lib2中,我使用$ CI = get_instance()来假设启用CI库(例如数据库,会话)。但是,我无法通过“致命错误:在非对象上调用成员函数userdata()”;由

调用
//system/cms/libraries/lib2.php
$this->CI =& get_instance();
//$this->load->library('database'); == "can't find class database"
$ekeyLoc = $this->CI->session->userdata('ronery'); 

现在,如果我在模块控制器中运行它,它会按预期工作。

所以用谷歌搜索那个错误,很多“db not loaded”出现了。只是为了确保,我试图加载数据库,但因为我,它找不到类'数据库'NB:数据库正在自动加载。

当你分配CodeIgniter超级对象时,我假设它抓住了整个jabloney,对吧?我是这么想的。但为了确保,我决定尝试在模块/控制器中加载数据库类,事实证明,因为找不到我。

我试着通过pyroCMS文档来了解任何诡计,但没有太多,也没有对我的情况有所帮助。

为什么我不能从模块控制器加载核心库?

为什么我不能将核心库加载到system / cms / libraries中的自定义库中?

为什么我指定的CodeIgniter超级对象不包含session / db crap?

为什么我无法从/ addons / shared_addons / library加载库?

为什么调用$this->session->userdata()可以从模块控制器工作,但不能从system / cms / libraries文件夹中的库工作,即使已经分配了CodeIgniter超级对象?

感谢。


在没有回答的2天之后,我发现继续寻求帮助既令人沮丧又欢闹,这不可避免地导致这个问题成为google的最佳结果。 FML。

1 个答案:

答案 0 :(得分:0)

首先要做的事情:

$this->load->library('database');

这不是有效的CodeIgniter代码,就像他们的文档说它应该是:

$this->load->database();

正如您已经指出的那样,虽然这是自动加载的,但无论如何都没有必要这样做。

为什么我无法从模块控制器加载核心库?

你可以。

为什么我不能将核心库加载到system / cms / libraries中的自定义库中?

你可以。

为什么我指定的CodeIgniter超级对象不包含session / db废话?

确实如此。

为什么我无法从/ addons / shared_addons / library加载库?

这在1.3.x中是不可能的,但应该已经在1.3.2中修复,如果在2.0中没有修复的话。

我不知道你在做什么或为什么会遇到这样的问题,但是如果没有任何示例代码或者你正在使用的PyroCMS版本的描述我就无法继续帮助。

如果你被困了两天,你为什么不在我们的论坛上发帖?如果您已在我们的论坛上发布(我没有看到任何相关内容),您应该在此帖子中添加一个链接到您的论坛帖子,以帮助其他人回答问题。

这不是第一次有人被困在互联网上,但你表现得像是这样。来吧,你知道这是如何工作的! :)