Механизм выражений fetch_action_id () не разбирается - PullRequest
3 голосов
/ 11 октября 2011

Итак, я попытался получить идентификатор действия двумя способами:

$ACT_ID = $this->EE->functions->fetch_action_id("classname", "function");
$ACT_ID = $FNS->fetch_action_id("classname", "function");

но это все равно дает мне это как вывод:

{AID:classname:function} 

и не анализирует его при выводе в представление. Есть ли что-то еще, что мне нужно сделать?

Ответы [ 2 ]

15 голосов
/ 25 октября 2012

Для EE2 есть два способа получения ACT ID, в зависимости от того, где вы собираетесь его использовать.

Если вы используете его в font-end / templates, используйте $this->EE->functions->fetch_action_id('class', 'method');, который вернет {AID:class:method} в шаблоне, который в свою очередь заменит синтаксический анализатор на фактический ACT ID.Это сделано из соображений производительности;нужен только 1 запрос для всех идентификаторов ACT.Если действительный идентификатор ACT не найден, строка AID останется такой же, как в шаблоне.

Если вы используете ее в серверной части / панели управления, используйте $this->EE->cp->fetch_action_id('class', 'method');, которая возвращает фактический ACTЯ БЫ.Объект $this->EE->cp доступен только на панели управления (например, файл mcp.your_module.php).Если действительный идентификатор ACT не найден, он вернет FALSE.

9 голосов
/ 25 октября 2012

Существует недокументированный метод "insert_action_ids" в библиотеке функций, который анализирует action_id в шаблонах.Итак, из вашего аддона, если вы хотите просто иметь идентификационный номер действия, вы можете сделать следующее:

$ACT_ID = $this->EE->functions->insert_action_ids($this->EE->functions->fetch_action_id('classname', 'method'));

Обновление

Я должен добавить, что этот метод будет работать где угодно - фронтенд какну как в КП.Но, как некоторые уже упоминали, когда в шаблонах для производительности лучше всего использовать метод "insert_action_ids" и заставить синтаксический анализатор шаблонов заменить их на правильные идентификаторы действий.

...