Как создавать плагины для windows

Плагин своими руками

Функциональность программ зачастую могут улучшать не только их непосредственные разработчики, но и другие люди. Они, как правило, являются пользователями тех программ, которые хотят улучшить. Возможно это в тех случаях, когда программа поддерживает различные дополнения. Дополнения эти обычно реализуются в виде плагинов.

Конечно, возможны всякие вариации, но обычно под плагином понимается какая-то динамически компонуемая библиотека (DLL — Dynamic Link Library) специального формата, которая благодаря находящимся в ней функциям расширяет возможности «родительского» приложения. Конечно, в широком смысле слова под плагинами можно понимать не только DLL’ки, а, например, и такие комплексные вещи, как дополнения к Mozilla Firefox. Но обычно плагин — это именно специальная динамическая библиотека.

Чем же эта динамическая библиотека такая вся из себя специальная? Всё дело в том, какие функции она экспортирует. Чтобы приложение могло загрузить эту библиотеку и использовать содержащиеся в ней функции, ему должен быть известен их вид — в общем-то, это всегда так с динамической компоновкой. Поэтому все плагины для одной программы имеют одинаковые имена и форматы функций, используемых в приложении. Конечно, среди экспортируемых функций могут быть и другие, но тогда спрашивается, зачем они там нужны.

Универсального формата плагинов, который подходил бы всем приложениям, не существует. Причина этого проста: очень разные функции выполняют разные программы, и было бы странно пользоваться плагинами к Adobe Photoshop из Sound Forge. Но, тем не менее, свои стандарты есть, а потому приложения, выполняющие сходные функции, часто «понимают» плагины своих конкурентов. Например, среди графических приложений стандартом де-факто стали уже упоминавшиеся плагины к Photoshop, а среди приложений для работы со звуком распространён формат VST.

Плагин зачастую включает в себя такое множество сложных вещей, что его можно считать самостоятельным программным продуктом. В первую очередь, это относится к профессиональным плагинам для сложных программ — например, к тому же 3D Studio MAX. Чтобы создавать такие плагины, нужна не только высокая программистская квалификация разработчика, но и хорошие знания в той области, в которой работает программа. Как правило, над графическими и звуковыми фильтрами работают команды из нескольких человек, и большая часть времени уходит не на написание кода, а на математическое моделирование преобразований, реализуемых в плагине.

Но для некоторых программ плагины можно писать и не будучи докой по части эффектов Photoshop и гармонического анализа. Множество энтузиастов пишет свои плагины к популярным пользовательским программам — таким, как известная программа для мгновенного обмена сообщениями Miranda. Откровенно говоря, «Мирандой» без плагинов вообще пользоваться довольно-таки затруднительно. Чтобы написать свой плагин для неё, зачастую достаточно знаний школьника, интересующегося программированием, да и вообще любого человека, для которого программирование — не основная работа, а просто хобби.

Чтобы продемонстрировать вам основные принципы написания плагинов на практике, я расскажу, как написать собственный полнофункциональный плагин для популярного файлового менеджера Total Commander. Почему именно для него? Потому что писать к нему плагины достаточно просто, а сам Total Commander я считаю лучшей из программ этого класса.

Писать плагины можно на любом языке программирования, код на котором можно скомпилировать и скомпоновать в динамическую библиотеку. Но сейчас для простоты и наглядности я буду пользоваться Delphi, поскольку с этим языком может работать практически каждый, кто в школе научился Паскалю. Да и сам Total Commander, как известно, написан именно на Delphi.

Плагины к «Командиру» бывают разные. Очень разные, я бы даже сказал. Всего их, на сегодняшний день, четыре типа: плагины встроенного архиватора, плагины встроенного просмотрщика (Lister’а), расширения файловой системы и контент-плагины. Плагины для архиватора позволяют работать через Total Commander с новыми форматами архивов как с обычными папками, плагины Lister’а позволяют просматривать по нажатию на кнопку F3 файлы новых форматов. Плагины файловой системы позволяют работать со структурированными хранилищами данных как с обычными каталогами и файлами, лежащими на диске. В принципе, они чем-то похожи на архивные плагины. Контент-плагины появились в Total Commander’е сравнительно недавно, начиная с версии 6.50 (на момент написания статьи самой новой была версия 7.01). Они позволяют отображать дополнительную информацию о разных файлах в главном окне программы.

Читайте также:  Как убрать аваст с автозагрузки windows 10

Естественно, разные виды плагинов имеют разные принципы работы и разную внутреннюю структуру. Поэтому для дальнейших действий стоит определиться с тем, какой именно плагин мы с вами будем писать. Все плагины хороши, но лично мне кажется, что лучше всего показать на примере плагин для Lister’а, потому что всех форматов файлов не перечислишь, да и новые постоянно появляются. В общем, написание плагинов к Lister’у — полезный практический навык, который может пригодиться в жизни.

Чтобы особо не мучиться с идеей для нашего плагина, будем писать плагин для показа RTF-файлов. Хоть «Командир» это умеет и без того, сейчас наша цель — научиться, а не сотворить нечто поражающее воображение.

Для того, чтобы писать плагин, нужна сначала некоторая предварительная подготовка. Для начала, наверное, неплохо бы установить Delphi. Если она уже установлена, то удалять и ставить по-новому не надо. Кроме самой Delphi, нужны заголовочные файлы, чтобы экспортировать правильные функции и найти, таким образом, общий язык с Total Commander’ом. Скачать их нужно с сайта Total Commander’а (ghisler.com/plugins.htm), называется это «LS-Plugin writer’s guide». Прямая ссылка такая: ghisler.fileburst.com/lsplugins/listplughelp1.5.zip, но она, как видите, содержит в себе номер версии, который может измениться.

Ну вот, если вы всё скачали, то можно переходить непосредственно к действиям. Запустите среду Delphi и в окне создания нового проекта выберите «DLL» (в некоторых версиях Delphi это называется «DLL Wizard», но это не принципиально: главная идея такова, что проект должен быть проектом динамически компонуемой библиотеки).

Один небольшой нюанс: поскольку типов плагинов к TC несколько, им всем принято давать разные расширения. Плагины для Lister’а традиционно имеют расширение WLX. Поэтому лучше заранее сменить расширение выходного файла в настройках проекта.

В разделе uses главного файла проекта нужно добавить модули Windows, поскольку нам понадобятся некоторые типы данных оттуда для экспорта функций нашим плагином. Всего же функций, которые нам необходимо экспортировать, три. Вот как они выглядят:

Первая из них вызывает плагин для работы. Её параметры — это дескриптор окна Lister’а (с его помощью мы будем поддерживать связь между окном плагина и окном Lister’а), имя загружаемого файла и комбинацию настроек Lister’а. Но настройки нам пока что не понадобятся, так что на ShowFlags сейчас можно не обращать внимания. Вторая функция (вернее, в терминах Delphi это процедура) вызывается, когда завершается работа приложения, и требуется закрытие окна. Её параметр — тоже дескриптор окна Lister’а. Третья функция позволяет Lister’у определить, может ли плагин правильно разобраться с переданным ему файлом, или лучше его отобразить с помощью какого-то другого плагина. В общем-то, можно обойтись и без второй по счёту функции, поскольку в случае её отсутствия окно плагина будет само уничтожено стандартными средствами Windows API.

Добавьте в проект форму («File»->»New»->Form) и удалите из файла формы глобальную переменную Form1: TForm1. Особенности написания DLL на Delphi таковы, что глобальные переменные во время этого процесса под запретом. На форму положите компонент RichEdit (он находится на вкладке «Win32» палитры компонентов Delphi). Установите его свойство Align на alClient (для этого нужно использовать окно Object Inspector, находящееся в левой части среды).

Окно нашего плагина не должно иметь рамки и заголовка, иначе окно Lister’а будет выглядеть, мягко говоря, странновато. Поэтому для создания окна мы должны переопределить одну процедуру. В секции Protected класса окна нужно записать следующее:

Читайте также:  Running applications mac os

В теле процедуры пишем следующее:

Первая строчка вызывает унаследованный стандартный метод. Вторая обрезает рамку окна, чтобы оно не выглядывало из окна Lister’а неподобающим образом. Третья резервирует место для того, чтобы мы могли потом уничтожить окно (глобальными переменными пользоваться нельзя — помните?).

Теперь можно перейти к непосредственному заполнению тела экспортируемых функций. Тело процедуры ListDetectString будет коротким:

Эта функция копирует строку «FORCE | EXT=»RTF»» в переменную DetectString. А строка сообщает Lister’у, что мы будем открывать своим плагином файлы с расширением «RTF» и при этом переопределяем стандартную функциональность просмотрщика.

Тело ListLoad будет уже гораздо более длинным:

Переменная Form1 — это и есть, собственно, окно плагина. Мы проверяем расширение подсунутого плагину файла, загружаем его, показываем окно, сохраняем указатель на него, чтобы при случае изничтожить. Потом устанавливаем фокус на наш RichEdit и возвращаем дескриптор окна плагина. Поскольку код находится в DLL-библиотеку, помещаем всё внутрь блока try. except, чтобы сбой плагина не привёл к сбою «командира».

Код ListerCloseWindow таков:

Получаем сохранённый адрес формы, закрываем её и освобождаем память. Нужно только не забыть объявить переменную Form1 и «обернуть» всё, что происходит внутри процедуры try. except’ом.

Как создать плагин для WordPress за пять простых шагов

Еще несколько лет назад я не писал ни одного плагина WordPress. Я создавал и настраивал множество тем для наших клиентов, но по какой-то причине продолжал говорить себе, что создание плагина выходит за рамки моих возможностей.

Оглядываясь назад, я понимаю насколько не прав я был тогда.

Если вы когда-нибудь чувствовали себя также, я вам кое-что скажу. Создание плагина WordPress не выходит за рамки ваших возможностей. Любой, у кого достаточно навыков, чтобы написать базовый PHP и изменить тему, может создать плагин.

Для чего нужно создать плагин?

Если вы такие же, как и я был когда-то, вы, вероятно, добавляли функциональность в свою тему вместо создания плагина. Есть много случаев, когда такой подход хорош, но есть также случаи, когда пользовательские функции лучше добавлять в плагин. Спросите почему?

Представьте такую ситуацию.

Вы добавили функциональность в свою тему, которая меняет аватар по умолчанию на ваш собственный аватар. Единственная проблема в том, что если вы смените тему, то ваш аватар сбросится. Но если бы вы добавили код в плагин, то аватар бы остался, даже если бы вы решили сменить тему.

Создание первого плагина за пять простых шагов

Я не шучу. Вы можете создать WordPress плагин за пять коротких шагов. И я покажу как.

1. Подключиться по FTP к сайту

Если Ваш сайт находится на локальном компьютере, то есть еще не запущен в интернет, то можете пропустить данный пункт, так как у вас уже должен быть доступ к сайту.

А если ваш сайт уже находится в сети, то читаем дальше.

И так, первое, что вы должны сделать — это получить доступ к вашему сайту через FTP с помощью выбранной вами программы FTP (у меня это WinSCP). Если вы не знакомы с FTP, то рекомендую вам прочитать об этом прежде, чем двигаться вперед.

2. Перейдите в папку плагинов WordPress

После того, как вы зашли на ваш сайт через FTP, вам нужно перейти в папку плагинов WordPress. Эта папка почти всегда находится в / wp-content / plugins.

3. Создайте новую папку для вашего плагина

Теперь, когда вы находитесь в папке с плагинами, пришло время создать папку для вашего плагина! Создайте новую папку, присвоив ей уникальное имя, используя строчные буквы и тире. Пример: my-first-plugin. Как только вы это сделаете, зайдите в вашу новую папку и перейдите к следующему шагу.

4. Создайте основной файл PHP для вашего плагина

Далее вам нужно создать основной файл для вашего плагина. Для этого создайте файл PHP в новой папке плагина и присвойте ему такое же имя, как my-first-plugin.php. После того, как вы это сделаете, откройте основной файл вашего плагина и приготовьтесь к редактированию.

5. Настройте информацию вашего плагина

Наконец, скопируйте и вставьте информацию о плагине ниже в ваш основной файл плагина. Не забудьте отредактировать детали, такие как имя плагина и URI плагина, поскольку они относится к вашему плагину.

Читайте также:  Linux копирование файла переименование

Привожу перевод полей из описания плагина:

  • Plugin Name — Название созданного плагина
  • Plugin URI — Ссылка на плагин
  • Description — Описание плагина
  • Version — Версия плагина
  • Author — Имя автора
  • Author URI — Ссылка на сайт автора

Вот и все! Вы только что выполнили минимальное количество шагов, необходимое для создания плагина WordPress. Теперь вы можете активировать его в админке WordPress.

Что теперь?

На данный момент вы, вероятно, задаетесь вопросом, что этот плагин должен делать ?

Ну, конкретно этот — ничего! Я сказал, что покажу вам, как создать плагин, но не говорил, что покажу вам, как создать плагин, который делает хоть что-нибудь.

Шутки в сторону, цель этого поста — показать, насколько просто начать создавать плагины для WordPress.

Заставьте ваш плагин сделать что-то простое

Теперь, когда у вас есть плагин, давайте заставим его что-то делать.

Самый простой способ добиться успеха в WordPress — это действия и фильтры. Давайте ознакомимся с этой темой, создав простое действие, которое добавляет строку текста под всеми публикациями на вашем сайте. Скопируйте и вставьте этот код в ваш основной файл плагина (под информацией о плагине) и сохраните его.

Этот код подключается к действию «the_content», которое запускается, когда WordPress отображает содержимое публикации для вашего сайта. Когда это действие сработает, WordPress вызовет нашу функцию «thank_you_for_readingt», которая написана ниже «add_action».

Выход за рамки простого плагина

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

Действия и фильтры в WordPress

Если вы собираетесь начать создавать свои собственные плагины, я настоятельно рекомендую вам ознакомиться с тем, как работают действия и фильтры и какие из них доступны для использования.

Все это, вы можете почитать в кодексе WordPress.

Вот некоторые ссылки на кодекс wordpress:

WordPress функции

Во время разработки своих плагинов, часто приходится зайти в кодексе wordpress, для того чтобы вспомнить или узнать какую-то новую функцию. Тут очень много основных функций, что я даже не ожидаю, что вы будете знать для чего нужна каждая из них. Кодекс WordPress этот как справочник. Поэтому рекомендуется часто посещать данный кодекс, чтобы освежить память и ускорить разработку. Вот для чего и нужно использовать Кодекс!

Если вы еще этого не сделали, создайте ваш первый плагин!

Создание плагинов WordPress — это чрезвычайно полезный способ, позволяющий глубже понять, как работает WordPress. Если вы этого еще не сделали, я настоятельно призываю вас попробовать свои силы в создании плагина. Если вы это сделаете и придумаете что-нибудь полезное, не забывайте, что вы можете свободно распространять его среди других через каталог плагинов WordPress.

Вы уже создали свой первый плагин или планируете создать его в ближайшее время? Если это так, напишите об этом в комментариях ниже!

Задачи

  1. Создайте свой плагин для WordPress

Видео десерт: Шокирующее интервью с разработчиком сайтов

Похожие статьи:

Понравилась статья?

Тогда поделитесь ею с друзьями и подпишитесь на новые интересные статьи.

Поделиться с друзьями:

Подписаться на новые статьи:

Поддержите пожалуйста мой проект!

Если у Вас есть какие-то вопросы или предложения, то можете писать их в комментариях или мне на почту sergiu1607@gmail.com. И если Вы заметили какую-то ошибку в статье, то прошу Вас, сообщите мне об этом, и в ближайшее время я всё исправлю.

Добавляйтесь ко мне в друзья в:

  • — ВКонтакте
  • — Facebook
  • — Одноклассниках

Добавляйтесь в мои группы:

  • — Группа в ВКонтакте
  • — Группа в Facebook
  • — Группа в Одноклассниках

Подпишитесь на мои каналы:

  • — Мой канал на Youtube
  • — Мой канал на Google+

Автор статьи: Мунтян Сергей

Копирование материалов с сайта sozdatisite.ru ЗАПРЕЩЕНО.

Дата добавления: 2019-09-14 09:15:35

Оцените статью