Создание простейшего SPIP плагина

В этой статье я опишу как создать элементарный SPIP плагин, который позволит в удобной форме изменять контактную информацию, и потом так же удобно выводить ее в нужном месте. Информация — это 4 текстовых поля (Контакты вверху, Контакты Внизу, Контакты в колонке, Бегущая строка). Доступ к заданию этой информации должен осуществляться через кнопку в меню «Редактор сайта».

Создание файла plugin.xml

Создаем в папке plugins подпапку voltaire. Если папка plugins еще не создана, то ее нужно создать.

Создаем файл 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

Так как наш плагин своих табличек создавать не будет, а хранить информацию будет в мета табличке, и работать будет с ней через плагин CFG, то первым делом создаем папку fonds. В этой папке создаем файл cfg_voltaire.html. Название файла очень важно для правильной его подхватки плагином CFG. Как видите в его название участвует префикс нашего плагина. Содержимое   этого файла будет приблизительно следующим:

<!-- Следующие коменты это не просто коменты, а служебная информация для плагина CFG -->
<!-- titre=Voltaire -->
<!-- autoriser=configurer -->
#CACHE{0}
<div> <!-- При желании можно убрать класс 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 ENGINE="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}

Все! Теперь наш простой плагин готов к использованию.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>