Использование плагинов
ExpressionEngine разработана так, что новые возможности могут быть легко добавлены с помощью плагинов. Раздел ExpressionEngine Plugins на сайте разработчика содержит список всех доступных плагинов, а так же инструкции по установке и использованию для каждого. Ниже приводятся общие инструкции, которые подходят для большинства плагинов. Необходимо внимательно читать примечания для каждого плагина, который вы желаете использовать.
Установка
Установка плагина в ExpressionEngine крайне проста:
Если вы работаете с EE версии 1.2.1. или выше, и вы выполнили все требования для работы менеджера плагинов, то вы можете просто щелкнуть по ссылке "Установить" для нужного плагина в списке доступных плагинов в менеджере плагинов. Плагин будет автоматически установлен.
Плагины можно устанавливать вручную, используя следующую простую инструкцию. (Примечание: некоторые плагины могут требовать выполнения дополнительных — или — необязательных шагов. Убедитесь, что ознакомились с примечаниями по установке плагина).
- Скачайте плагин на локальный компьютер. Как правило, необходимо разархивировать файл.
- Зайдите на ваш сервер через FTP и выберите директорию system/plugins/.
- Закачайте новый файл плагина .php. Убедитесь, что закачиваете файлы в режиме ASCII ("text").
Когда плагин установлен, вы должны увидеть, что он присутствует в списке в менеджере плагинов в панели управления ExpressionEngine.
Примечание: Некоторые плагины требуют выполнения дополнительных действий при установке. Убедитесь, что выполнили все инструкции, приведенные в файле readme, и т.д. который должен идти в комплекте с плагином.
Основы применения
В ваших шаблонах вы обычно будете обрамлять элемент, который вы желаете обработать с помощью плагина:
{exp:xml_encode}
некоторое содержимое
{/exp:xml_encode}
В вышеупомянутом примере, содержимое было бы обработано плагином XML Encoded.
Вложенные плагины
Есть возможность вкладывать плагины, если необходимо выполнить обработку содержимого, более чем одним плагином. Например, вы можете сделать так:
{exp:word_limit total="35"}
{exp:xml_encode}
some content
{/exp:xml_encode}
{/exp:word_limit}
По умолчанию, ExpressionEngine сначала обрабатывает самый внутренний плагин, потом следующий плагин, и так далее пока все плагины, обрамляющие данную часть содержимого, не будут обработаны. В примере, приведенном выше, содержимое сначала закодируется в XML, а затем результат ограничиться 35 словами.
Изменение порядка обработки
Вы можете изменить порядок обработки и указать ExpressionEngine, обрабатывать первым внешний плагин. Это можно сделать, добавляя параметр parse="inward" в открывающий тег плагина. Использование этого параметра укажет EE, что необходимо выполнить анализ этого плагина, перед анализом любых плагинов внутри него.
parse="inward"
Примеры
Вот некоторые примеры, для иллюстрации изменения порядка обработки.
{exp:magpie url="http://some-site.com" parse="inward"}
{items}
<a href="{link}">{title}</a><br />
{exp:word_limit total="20"}{content}{/exp:word_limit}<br />
{/items}
{/exp:magpie}
В примере выше первым будет обработан плагин "magpie". Это позволит содержимому переменной {content} быть доступным для другого вложенного плагина: "word_limit".
Приведем немного более сложный пример, который демонстрирует двойной порядок обработки в действии.
{exp:magpie url="http://some-site.com" limit="15" refresh="720" parse="inward"}
<ul>
{items}
<li><a href="{link}">{title}</a><br />
{exp:word_limit total="35"}
{exp:xml_encode}
{content}
{/exp:xml_encode}
{/exp:word_limit}
</li>
{/items}
</ul>
{/exp:magpie}
Внешнему плагину "magpie" установлен параметр parse="inward", поэтому он обрабатывается первым. Это делает содержимое переменной {content} доступным для других плагинов. Затем обрабатывается плагин "word_limit". Однако так как по умолчанию EE разбирает плагины, изнутри, то сначала будет обработан плагин "xml_encode" а затем "word_limit". Таким образом, "word_limit" никогда не будет стирать закрывающий тег плагина "xml_encode".