<?xml version="1.0" encoding="UTF-8"?>
<plugin compatible="alto">
<id>similartopics</id>
<name>
<lang name="default">Similar Topics</lang>
</name>
<author>
<lang name="default">Alto CMS Team</lang>
</author>
<homepage>https://altocms.com</homepage>
<version>1.0.3</version>
<dirname>similartopics</dirname>
<requires>
<alto>
<version>1.0</version>
</alto>
<system>
<php>5.3.0</php>
</system>
</requires>
<description>
<lang name="default">Similar Topics (seeking by tags)</lang>
</description>
</plugin>
Здесь можно обратить внимание на следующие нововведения:1) Если плагин пишется непосредственно под Alto CMS, то рекомендуется в корневой узел добавить атрибут compatible="alto". Если это плагин под LS, но который может работать и под Alto, то этот атрибут указывать не нужно.
2) Добавлены элементы <id>...</id> и <dirname>...</dirname> — идентификатор плагина и название его директории. На сегодняшний день значения этих элементов совпадают, но, тем не менее, рекомендуется указывать их оба. Значения элементов id и dirname создаются от имени класса плагина. Чтоб не писать много букв о том, как эти значения формируются, лучше сразу приведу примеры:
- Если класс плагина называется PluginSimilartopics, то id и dirname будут similartopics
- А если класс плагина будет PluginSimilarTopics, то id и dirname будут similar_topics
Т.е. тут действует стандартное правило преобразования CamelCase -> underscore.
Как можно понять из названия, dirname — это название директории (папки) в /common/plugins/, куда должен быть размещен плагин. И, начиная с версии Альто 1.0.7, при установке плагина из админки, именно это название директории и будет браться при распаковывании архива плагина, независимо от того, как называется сам архив и корневая папка в нем.
Если я правильно понял, то можно ли убрать эту взаимосвязь между названием класса и каталога? Для меня удобно так: если я задал id=«a_h» и dirname=«ah», значит могу позволить указать имя класса равное «AH» и дать имя директории равное «ah».
/common/plugins/novabuild/core/ — это сам плагин
/common/plugins/novabuild/robokassa/ — это дополнение к нему
/common/plugins/novabuild/latte/ — еще дополнение
А id формировать так:
novabuild.core
novabuild.robokassa
novabuild.latte
Но это пока в задумке, реализации окончательной еще нет. Поэтому пока либо называть папку «a_h», либо название класса плагина — «PluginAh»