Создание простейшего SPIP плагина. Название плагина: voltaire.
Нужно создать плагин, который бы позволил в удобно изменять контактную информацию, и потом так же удобно выводить ее в нужном месте. Информация - это 4 текстовых поля (Контакты вверху, Контакты Внизу, Контакты в колонке, Бегущая строка). N/t/ фактически надо добавить 4 новых поля в базе CMS.
Доступ к заданию этой информации должен осуществляться через кнопку в меню "Редактор сайта".
Создаем папку /plugins/voltaire в которой будет идти разработка.
Создаем файл plugin.xml - файл с информацией про плагин. Без него существование плагина невозможно.Вносим в этот файл минимальный набор данных для нашего плагина:
<plugin>
<nom>Voltaire</nom><!-- Имя плагина -->
<auteur>Aleksey Yaroshchuk (a.yaroshuk@aloha.org.ua)</auteur><!-- Автор плагина -->
<licence>GNU/GLP</licence><!-- Лицензия -->
<version>1.0.0</version><!-- Версия плагина -->
<description> <!-- Описание на разных языках -->
<multi>
[en] This plugin provides simple adding of contact information
[ru] Этот плагин позволяет легко добавлять контактную информацию
</multi>
</description>
<etat>test</etat><!-- Состояние плагина. Может еще быть dev и stable -->
<prefix>voltaire</prefix><!-- Префикс плагина. Желательно сделать таким же как и название папки, чтобы не было путаницы -->
<icon>img/voltaire_128x128.png</icon><!-- Ссылка на иконку плагина, которую ложим в папку img плагина -->
<bouton id='voltaire_button' parent='naviguer'><!-- Добавляем кнопку в раздел "Редактор сайта", ведущую на редактирование конфигурации плагина -->
<icone>img/voltaire_24x24.png</icone>
<titre>Контакты</titre>
<url>cfg&cfg=voltaire</url>
</bouton>
<necessite id="cfg" version="[1.15.2;]" /><!-- Указываем что наш плагин не сможет работать без плагина cfg версии >= 1.15.2 -->
</plugin>
Так как наш плагин своих табличек в базе данных создавать не будет, а хранить информацию будет в мета табличке, и работать будет с ней через плагин CFG, то первым делом создаем папку fonds. В этой папке создаем файл cfg_voltaire.html. Название файла очень важно для правильной его подхватки плагином CFG. Как видите в его название участвует префикс нашего плагина. Содержимое этого файла будет приблизительно следующим:
<!-- Следующие коменты это не просто коменты, а служебная информация для плагина CFG -->
<!-- titre=Voltaire -->
<!-- autoriser=configurer -->
#CACHE{0}
<div class="ajax"> <!-- При желании можно убрать класс ajax и тогда форма не будет обрабатываться через ajax -->
#FORMULAIRE_CONFIGURER_VOLTAIRE
</div>
Как видите суть этого файла в том, чтобы вставить форму конфигурации плагина и прописать некоторую служебную информацию (которую как вы увидите можно вставлять и в самой форме).
После этого создаем папку formulaires, а в ней файл configurer_voltaire.html - для той самой формы конфигурации. В этом файле мы пропишем все поля, которые мы хотим хранить в мета таблице в БД, а плагин CFG позаботится о их сохранении. Содержимое этого файла будет таким:
<!-- Еще чуток служебной информации для плагина CFG -->
<!-- autoriser=configurer -->
<!-- refus=<:cfg:refus_configuration_administrateur:> -->
<!-- nom=voltaire -->
<div class='formulaire_spip formulaire_configurer formulaire_configurer_#FORM' id='formulaire_configurer_#FORM'>
<h3 class='titrem'>Конфигурация плагина Voltaire</h3>
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
<form method="post" action="#ENV{action}">
<div>
#ACTION_FORMULAIRE{#ENV{action}}
<ul>
<li class="editer_header_contacts">
<label for="header_contacts">Контакты вверху</label>
<input type="text" name="header_contacts" class="text" id="header_contacts" size="60" value="#ENV{header_contacts}" />
</li>
<li class="editer_footer_contacts">
<label for="footer_contacts">Контакты внизу</label>
<input type="text" name="footer_contacts" class="text" id="footer_contacts" size="60" value="#ENV{footer_contacts}" />
</li>
<li class="editer_column_contacts">
<label for="column_contacts">Контакты в колонке</label>
<input type="text" name="column_contacts" class="text" id="column_contacts" size="60" value="#ENV{column_contacts}" />
</li>
<li class="editer_creeping_line">
<label for="creeping_line">Бегущая строка</label>
<input type="text" name="creeping_line" class="text" id="creeping_line" size="60" value="#ENV{creeping_line}" />
</li>
</ul>
<p class='boutons'><input class='submit' type="submit" name="_cfg_ok" value="<:bouton_enregistrer:>" /></p>
</div>
</form>
</div>
Теперь самое время зайти в админпанель, установить плагин, и убедиться, что кнопка "Контакты" в разделе "Редактор сайта" ведет на страницу редактирования плагина, так как мы это прописали в файле plugin.xml. Также убедимся что введенные данные сохраняются в БД.
В принципе я мог бы рассказать как создавать теги для вывода нужной информации. Но поскольку для этого плагина хватит стандартного тега #CONFIG, то чудить и создавать ненужного кода я не буду. А о создании тегов расскажу в какой то другой статье. Итак для вывода информации достаточно будет воспользоваться одной из следующих конструкций:
#CONFIG{voltaire/header_contacts}
#CONFIG{voltaire/footer_contacts}
#CONFIG{voltaire/column_contacts}
#CONFIG{voltaire/creeping_line}
Все! Теперь наш простой плагин готов к использованию.