Доступ к библиотеке CodeIgniter через ExpressionEngine - PullRequest
2 голосов
/ 09 января 2012

Я не уверен, возможно ли это, но различные посты на форумах ExpressionEngine и в документации предполагают, что я должен быть в состоянии сообщить ExpressionEngine, что происходит в фундаменте CodeIgniter, на котором он построен.

Итак, в свете этого у меня есть приложение CodeIgniter и сайт ExpressionEngine. Каталог / system имеет следующую структуру:

/ система

  • / система / CodeIgniter
  • / system / codeigniter / application (это мое существующее приложение CodeIgniter)
  • / system / codeigniter / system (это та же папка CI, из которой запускается EE)

  • / система / ExpressionEngine

  • ... (это обычный EE - шаблоны, дополнения и т. Д.)

Я довольно новичок в ExpressionEngine, но, насколько я понимаю, я мог использовать эту настройку для создания модуля EE, который бы хорошо интегрировался с CodeIgniter.

В настоящее время у меня есть настройка модуля и метод, который делает это, просто в качестве отправной точки:

function __construct()
{
    $this->EE =& get_instance();
    $this->CI =& get_instance();
    $this->auth =& $this->CI->load->library('mylibrary');
}

Но тогда он не распознает библиотеку, когда я загружаю модуль (на данный момент все это происходит внутри панели управления EE, просто чтобы я мог установить связь между ними). Говорит, что его не существует. Что я могу сделать, чтобы установить эту связь, или я иду в неправильном направлении?

Спасибо, Jonathan

Ответы [ 3 ]

2 голосов
/ 12 января 2012

Хорошо, спасибо http://expressionengine.com/forums/viewthread/208140/ У меня есть ответ, который, я думаю, я могу использовать.

Вот как это работает, ради потомков:

EE и ваш модуль вообще не знают о вашей папке system / codeigniter / application. Попробуйте, это> может работать:

$this->EE =& get_instance();
$this->EE->load->add_package_path(BASEPATH.'../application/');
$this->EE->load->library('mylibrary');
$this->EE->mylibrary->do_stuff();

Оттуда я смог загрузить свою библиотеку, но у нее были проблемы с загрузкой ее языкового файла. Тот же поток дал ответ и на это. Этот код входит в файл библиотеки CI, и EE переводит его при загрузке.

$this->ci->lang->load('mylangfile', '', FALSE, TRUE, BASEPATH.'../application/');  
0 голосов
/ 10 января 2012

Вы должны просто поместить свою библиотеку в папку /third_party/my_addon/libraries/, а затем загрузить ее так:

function __construct()
{
    $this->EE =& get_instance();
    $this->auth = $this->EE->load->library('../third_party/mhy_addon/libraries/mylibrary');
}
0 голосов
/ 09 января 2012

В прошлом я писал простые надстройки для EE для доступа к помощникам CodeIgniter и т. Д. Вот пример простого надстройки для оболочки .

Другой вариант, это должно быть возможно с PHP, что означает, что вам нужно включить PHP в вашем шаблоне. Короче говоря, вы загружаете помощник / библиотеку / etc и затем вызываете нужный метод. Подробнее о том, как это сделать, в документации по EE .

...