Статьи

Создание плагина JFusion с нуля

Сценарий

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

Ограничения «безграничного расширения»

Чтобы преодолеть эту проблему, наиболее распространенный подход — иметь одну платформу и создавать или расширять ее для удовлетворения потребностей. С помощью таких программ, как Joomla или WordPress, этого можно достичь с помощью плагинов / расширений. Несмотря на это, сложная функциональность, которая может потребоваться некоторым предприятиям, может быть недоступна в качестве плагина и может потребовать больших инвестиций в собственный плагин или расширение, создание и обслуживание которых требуют больших затрат. И может устареть по функциональности или вызвать проблемы для дальнейшего расширения бизнеса.

Зависимость от оплаты за существующие коммерческие дополнения также может вызвать некоторые негативные последствия, когда дело доходит до настройки платного кода. Из-за отсутствия законного выбора, из-за задействованных лицензий, или из-за того, что разработчики не предоставляют прямой способ достижения ваших настроек, если их надстройки слишком упрощены и соответствуют стандарту черного ящика (служат легко определяемой цели, но никто не знает как это на самом деле функционирует).

Сочетание программного обеспечения «специально для определенной цели»

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

В частности, основными областями, которые владельцы сайтов считают «бесшовными», являются:

  • Темы / шаблоны
  • Учетные данные пользователя и личная информация
  • Общие пользовательские действия

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

Где приходит JFusion

На данный момент JFusion является самым популярным расширением интеграции пользователей для Joomla, позволяющим легко интегрировать пользователей с Joomla из другого программного обеспечения PHP путем синхронизации пользовательских данных. Расширение использует свою собственную систему плагинов (известную как плагины JFusion), которую можно создать для поддержки любого другого программного обеспечения, при условии, что вы сможете выяснить внутреннюю работу другого программного обеспечения. Скорее всего, от просмотра документации, комментариев к коду и старого доброго взлома. Для разработчика, который хочет связать пользователей из Joomla с другим программным обеспечением, не беспокоясь о создании собственной инфраструктуры с нуля, это расширение является лучшим в своем роде в пространстве с открытым исходным кодом и сэкономит вам время написания кода.

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

  • Двойной вход (SSO)
  • Двойной выход
  • Двойная регистрация
  • Интеграция шаблонов
  • Интеграция деятельности
  • Синхронизация пользователя
  • Удалить несколько экземпляров пользователя
  • Изменить пароль от нескольких экземпляров пользователя

Установка JFusion

Чтобы установить JFusion, зайдите на сайт JFusion . Оказавшись там, вы можете скачать его напрямую.

Когда будете готовы, зайдите на свой сайт Joomla (желательно на тестовый сервер, а не на производственный), на котором вы чувствуете себя комфортно тестировать на этапах разработки вашего плагина JFusion. Обязательно подготовьте свои учетные данные администратора и перейдите на страницу администратора Joomla (http://yoursite.com/joomla/administrator) и войдите в систему.

После того, как вы вошли в систему, щелкните логотип менеджера расширений (значок ниже) или выберите его в главном меню, перейдя к расширениям, затем «менеджер расширений».

Это приведет вас к странице менеджера расширений, где есть несколько вариантов установки расширений. Найдите «Upload Package File», внутри этого поля есть поле загрузки для добавления и установки расширений Joomla. Не распаковывая только что загруженный архив, нажмите «выбрать», найдите загрузку jfusion и подтвердите загрузку.

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

Наряду с этим вы должны увидеть список установленных компонентов, от которых зависит этот плагин (см. Скриншот ниже). Убедитесь, что каждый элемент в списке соответствует галочке для подтверждения успешной установки элементов. Если рядом с ними есть крестики, переустановите их или запросите поддержку на сайте JFusion.

Теперь, когда все установлено, вы можете настроить основной плагин, известный как мастер. Это должно быть сконфигурировано, чтобы позволить всем другим плагинам функционировать и распределять, какое программное обеспечение выполняет пользовательские действия до запуска эффектов на другое программное обеспечение.

Настройка мастер-плагина

Чтобы настроить основной плагин, выберите «Параметры Joomla» в меню JFusion, которое представляет собой меню компонентов (компоненты> JFusion> Параметры Joomla), или перейдите к компонентам> cPanel и выберите «Параметры Joomla».

Это приведет вас к странице, которая позволяет вам редактировать конфигурацию (которая в настоящее время) единственного мастер-плагина (мастер-плагин применяется к текущей установке joomla), который может быть включен в JFusion из-за текущих ограничений инфраструктуры.

По умолчанию, благодаря настройкам, JFusion может автоматически определить, что вам на самом деле не нужно настраивать какие-либо особые требования к сайту на этом этапе, и вы можете просто нажать «Применить» или «Сохранить», и плагин теперь должен быть готов к включению.

Выберите «Настроить плагины» в меню JFusion. На этой странице вы увидите таблицу, заполненную списком плагинов, которые вы можете использовать по умолчанию с JFusion. На этом этапе все поля должны быть недоступны, кроме строки с плагином joomla_int (внутренний плагин Joomla, с которым мы только что работали). Эта строка должна быть заполнена в основном красными крестиками в каждом поле и несколькими серыми полями, за исключением одного столбца, помеченного как «Статус», который должен содержать зеленую галочку со словами «хорошая конфигурация», написанными рядом с ним, если конфигурация была автоматически определяется.

Нажмите на красный крестик в строке «joomla_int», которая соответствует столбцу «Master», и вы должны увидеть строку настроек конфигурации, подобную скриншоту ниже:

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

Что JFusion предлагает по умолчанию

Текущие разработчики и участники JFusion уже создали плагины, которые включены (но не настроены) в расширение по умолчанию.

Начиная с JFusion 1.6, текущие плагины доступны для различного программного обеспечения, с которым вы можете установить JFusion, без какого-либо кодирования в течение нескольких минут. Эти папки плагинов (с файлами плагинов внутри) можно найти в папке joomla / administrator / components / com_jfusion / plugins.

  • DokuWiki
  • eFront
  • Elgg
  • Gallery2
  • Внешний сайт Joomla (синхронизация пользователей из одного Joomla в другой)
  • Внутренний сайт Joomla (ВАЖНО: Это позволяет операциям JFusion, которые происходят в Joomla)
  • Magento
  • Обсуждение MediaWiki
  • Мудл
  • MyBB
  • OSCommerce
  • phpBB3
  • PrestaShop
  • SMF
  • SMF2
  • форума
  • WordPress

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

Эти плагины ограничиваются только поддержкой авторов, если автор выбирает, и нет никаких гарантий того, что плагин работает, не содержит ошибок или безопасен. Тем не менее, опция всегда есть, и большинство сторонних плагинов, таких как JFusion, имеют открытый исходный код и свободны для внесения изменений или внесения кода.

Создание собственного плагина

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

Как создать пустой плагин

Всякий раз, когда вы создаете новый плагин для JFusion, вы всегда должны использовать следующую структуру, следя за тем, чтобы также имитировать имена файлов точно так, как указано. Эта папка и содержащиеся в ней файлы находятся внутри каталога joomla / administrator / components / com_jfusion / plugins /:

скоросшиватель

nameofyourplugin

(Замените nameofyourplugin фактическим названием вашего программного обеспечения в стиле, представленном выше, который состоит только из букв, строчных букв, без пробелов или специальных символов).

Внутри папки

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

admin.php

Он содержит функции, специфичные для администрирования JFusion и вашего плагина, такие как удаление пользователей и настройка аспектов интеграции.

auth.php

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

index.html

Просто статический html-файл с очень простым текстом, чтобы отразить попадание людей в ваши каталоги разработки.

jfusion.xml

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

public.php

Файл, содержащий коллекцию функций для использования в любой другой функции этого плагина PHP-файлов
(включаемый файл).

user.php

Этот файл содержит функции, относящиеся к операциям пользовательской синхронизации, которые вы хотите выполнить.

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

Быстрая заметка

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

Что дальше?

Этот урок является частью серии, и он будет продолжен в следующей части на следующей неделе.