Где хранить ваши настройки
Взамен помещения ваших настроек в корневую папку компонента Widgetkit, разработчики предложили альтернативу в целях избежания проблем, которые могу возникнуть в процессе обновления Warp Framework.
Папка шаблона
Используя Warp Framework 7, вы можете помещать настройки в подпапкуTHEME-NAME/widgetkit/
. Widgetkit автоматически определит, есть ли в ней провайдеры контента или виджеты.
- Поместите собственный провайдер контента в
THEME-NAME/widgetkit/content/PROVIDER-NAME/
- Поместите собственный виджет в
THEME-NAME/widgetkit/widgets/WIDGETPLUGIN-NAME/
Отдельный плагин
Помещение настроек вашего собственного плагина Widgetkit позволяет сохранить их ваши настройки в безопасности от изменений шаблона или компонента. Ваш плагин должен загружать приложение Widgetkit и регистрировать ваши собственные плагины Widgetkit в течение процесса загрузки.WordPress
В WordPress собственный плагин требует лишь одного php файла, размещенного в/wp-content/plugins/WP-PLUGIN-NAME
. В целях этого урока поместим собственный виджет в папку/wp-content/plugins/WP-PLUGIN-NAME/plugins
, но вы можете изменить это так, как душе будет угодно. Вся вместе структура файлов выглдяит так.
+-- plugins/ // Your custom Widgetkit plugins folder
+----- content/ // Content provider plugins folder
| WK-CONTENT-PLUGIN-NAME/
+----- widgets/ // Widgets plugins folder
| WK-WIDGET-PLUGIN-NAME/
|-- PLUGIN-NAME.php // The main Wordpress plugin file
В нашем плагине нам нужно исполнить код после исполнения основного плагина Widgetkit, в порядке чего мы сошлемся на действие 'plugins_loaded' . Давайте посмотрим, как выглядит код.СОВЕТ: В WordPress главный файл требует установить только имя плагина комментарии Заголовка, но есть другая полезная информация, например версия или автор. Убедитесь, что вы изучили документацию Wordpress на этот счет.
<?php
/*
Plugin Name: PLUGIN-NAME
*/
use YOOtheme\Widgetkit\Application;
add_action('plugins_loaded', function() {
if (!class_exists('YOOtheme\Widgetkit\Application')) {
return;
}
$app = Application::getInstance();
// Register plugin path
$app['plugins']->addPath(__DIR__.'/plugin/plugin.php');
$app['locator']->addPath('plugins/content/wkcustom', __DIR__.'/plugin');
});
Joomla
В Joomla ваш собственный плагин требует двух файлов, главного PHP файла и главного XML файла, которые должны быть расположены в папке/plugins/system/JOOMLA-PLUGIN-NAME
. В целях этого урока поместим собственный плагин Widgetkit в папку /plugins/system/JOOMLA-PLUGIN-NAME/plugins
, но это можно изменить так, как вам будет угодно.Вся вместе структура файлов выглядит так:
+-- plugins/ // Your custom Widgetkit plugins folder
+----- content/ // Content provider plugins folder
| WK-CONTENT-PLUGIN-NAME/
+----- widgets/ // Widgets plugins folder
| WK-WIDGET-PLUGIN-NAME/
|-- PLUGIN-NAME.php // The main Joomla plugin file
|-- PLUGIN-NAME.xml // The main Joomla plugin xml file
В вашем плагине нам нужно внести код в событие Joomla onAfterInitialise
. В порядке чего, мы сошлемся на систему плагинов. Давайте посмотрим, как должен выглядеть код.СОВЕТ: В Joomla плагин должен быть установлен через админпанель до того, как будет изменен. Убедитесь, что вы сделаете это после того, как завершите основную структуру.
<?php class plgSystemPLUGIN-NAME extends JPlugin
{
public function onAfterInitialise()
{
// Load Widgetkit App
if (!$app = @include JPATH_ADMINISTRATOR.'/components/com_widgetkit/widgetkit-app.php') {
return;
} // Register all plugins
$app['plugins']->addPath(__DIR__.'/plugins/*/*/plugin.php'); // Register each CONTENT provider plugin path
$app['locator']->addPath('plugins/content/PLUGIN-NAME', __DIR__.'/plugins/content/PLUGIN-NAME'); // Register each WIDGET plugin path
$app['locator']->addPath('plugins/widgets/PLUGIN-NAME', __DIR__.'/plugins/widgets/PLUGIN-NAME');
}
}
Файл-манифест PLUGIN-NAME.xml должен быть представлен как есть. Есть много опций, которые здесь доступны, поэтому вы можете изучить документацию Joomla. В целях урока, мы установим следующие параметры.
<?xml version="1.0" encoding="utf-8"?>
<extension type="plugin" version="3.1" group="system" method="upgrade">
<name>System - PLUGIN-NAME</name>
<version>VERSION</version>
<description>DESCRIPTION</description>
<files>
<filename plugin="PLUGIN-NAME">PLUGIN-NAME.php</filename>
<folder>plugins</folder>
</files>
</extension>