Textpattern - на русском языке

форум общения русскоязычных пользователей CMS Текстпаттерн

Вы не зашли.

#1 05-05-2005 12:23:30

Evgeny
ять
Зарегистрирован: 15-03-2005
Сообщений: 1869

Как написать для Textpattern плагин

Как написать плагин для Textpattern.

Автор: Rob Sable aka wilshire (США)
перевод. оригинал на английском - здесь


В ответ на многочисленные запросы, которые я видел на Textpattern Forums
я решил написать небольшое руководство по написанию плагинов к Textpattern.
Хотя я еще относительно недавний пользователь TXP, менее  6 месяцев,
я уже написал  8 textpattern плагинов и хаков.
Мой процесс обучения заключался в изучении как подсказок на форумах,
так и сайтов единомышленников на TXP.
Имейте в  виду, что нижеприведенное - это только мой опыт по написанию плагинов и это не официальное руководство для авторов плагинов
или единственно правильный путь их создания. Более того, я 100% уверен что многие из сообщества (community) имеют больше меня навыков в PHP.
Тем не менее, нижеприведенное работает у меня, и, будем надеяться, будет полезным для начинающих авторов плагинов.

Компиляция плагина.
Первым делом вам потребуется средство для создания и компилирования вашего плагина.
Я рекомендую воспользоваться j|g plugin creator-ом.
Этот плагин/хак дает возможность вам компилировать плагины через веб интерфейс TXP. Все что вы должны сделать- это заполнить форму,
скопировав ваш код и документацию и - плагин готов.
Если хотите,  вы можете воспользоваться  "родным" Texpattern Plugin Template.
Кроме того, существует созданный zem-ом усовершенствованный plugin template,
в который добавлено несколько приятных улучшений.

Глобальные переменные.
Далее вам необходимо ознакомиться с глобальными переменными и функциями, которые существенно облегчат вашу работу.
Первые отлично и подробно описаны ob1 в статье Глобальные переменные в Textpattern.
Вам понадобится использовать их для доступа к глобальным установкам и пользовательским настройкам, переменным типов страниц и статей.
Вид необходимых вам переменных будет зависеть от создаваемого вами типа плагина.
Я надеюсь, что вы уже имеете некоторые базовые знания в PHP перед попыткой написать плагин.


Следующий пункт - это исходный код Textpattern.
Если вам понадобятся обращения к таблицам базы TXP, прочитайте txplib_db.php и воспользуйтесь разнообразными вспомогательными функциями.
Для получения хорошего понимания сущности плагинов, обратите внимание на taghandlers.php.
Каждый их встроенных в Textpattern тэгов по сути - тот же самый плагин.
Например, вы можете найти вызов функции function linklist($atts) {...} код которой стоит за тэгом <txp:linklist />.
Обратите внимание на соглашения по кодированию, опреденными Dean-ом, чтобы вы могли написать понятный, краткий и стройный код.
Кроме того,  вы можете использовать вызов некоторых функций (например, такой как функции permalink) из вашего плагина, чтобы сократить себе работу.
И еще… Просмотрите исходники уже написанных плагинов, там вы можете видеть как авторы применяют преимущества использования вышеупомянутых функций и переменных. Возьмите несколько плагинов, инсталлируйте их и кликните на имя плагина, чтобы увидеть исходный код.
Перед тем, как вы решитесь стать автором задуманного вами плагина, проверьте сайт ресурсов Textpattern и Основной список плагинов и удостоверьтесь в том,
что никто не опередил вас.
Так же вы можете воспользоваться поиском подсказок на форуме Textpattern, там же можно задать свои вопросы.

Пример плагина.
А теперь приведем пример и проанализируем простейший плагин.

Код:

function rss_hello_world($atts) {

  extract($atts);
  $name = isset($name) ? $name : "Anonymous";
  $msg = 'Hello World, my name is' . $name;
  return $msg;
}

Обращение к плагину подобно этому: <txp:rss_hello_world name="Rob" /> осуществит вывод "Hello World, my name is Rob".
Этот тэг открывается и закрывается в одном вызове плагина.
Первое, на что вы должны обратить внимание, что массив, обозначенный $atts содержит атрибуты, которые передаются внутри тэга.
Хороший стиль - начальная проверка на нулевые значения атрибутов после извлечения из архива.
Каждый атрибут затем использует то же самое имя, которое определено при вызове тэга.
В нашем случае, если name не определено, будет использоваться "Anonymous".

Пример еще одного плагина.
А теперь пример другого типа плагина.

Код:

function rss_if_this($atts, $enclosed) {

  extract($atts);
  $that = isset($that) ? $that: "that";
  return ($that == "hello") ? parse($enclosed) : '';
}

Обращение к плагину будет <txp:rss_if_this that="hello">Hello World</txp:rss_if_this>.
Различие между этим примером и предыдущим в том, что если условие в коде плагина принимает значение true, текст или код,
расположенный внутри тэга, ( в нашем случае "Hello World" ) будет отображено.
Если условие не выполняется - отображаться ничего не будет.

Последний штрих.
Ваш последний шаг - создать HTML документацию, собрать все это вместе и скомпилировать ваш плагин.
Затем, полученный закодированный в base64 результат, сохраните в вашем плагин-файле.


Надеюсь, этот краткий экскурс поможет вам на вашем пути по созданию очередных великолепных плагинов для Textpattern.

----------------------------------------------------------------------------------------------------------------------------------------------
замечания и вопросы по переводу рассматриваются - здесь

Отредактированно Evgeny (07-05-2005 18:23:33)

Неактивен

 

#2 03-02-2008 02:17:35

bons
есть
Зарегистрирован: 10-07-2006
Сообщений: 66

Re: Как написать для Textpattern плагин

Вот еще можно добавить, он-лайн компилятор:
http://www.gopherwood.info/txplugincreator/

Неактивен

 

#3 03-02-2008 13:51:48

Evgeny
ять
Зарегистрирован: 15-03-2005
Сообщений: 1869

Re: Как написать для Textpattern плагин

bons написал:

Вот еще можно добавить, он-лайн компилятор:

о! какая удобная штука.
Спасибо, bons!

Неактивен

 

#4 06-01-2009 16:06:23

Calm
добро
Зарегистрирован: 03-01-2009
Сообщений: 41

Re: Как написать для Textpattern плагин

Сейчас ссылка не работает. Нельзя ли выложить "удобную штуку" еще разок?

Неактивен

 

#5 06-01-2009 20:51:42

the_ghost
ять
Откуда: Минск
Зарегистрирован: 01-05-2007
Сообщений: 1957
Вебсайт

Re: Как написать для Textpattern плагин

судя по всему online редактор заброшен своим автором. Воспользуйтесь обычным плагином ied_plugin_composer


.      Создание шаблонов для Textpatern http://textpattern.ru/forum/viewtopic.php?id=1665 (<txp:make_template quality="best" />)
КОНСУЛЬТАЦИИ по Textpattern - ICQ#8458496, nemiga@gmail.com <txp:if_question><txp:pay /></txp:if_question>
       Список всех тегов - http://textbook.textpattern.net/wiki/in … _Reference

Неактивен

 

Board footer

RSS   Rambler's Top100
Powered by PunBB
Textpattern.ru