Compare commits
40 Commits
Author | SHA1 | Date | |
---|---|---|---|
881b04db94 | |||
8fddcc0162 | |||
16d659c887 | |||
905a4e6288 | |||
9fc06d0d81 | |||
fddfcd04fa | |||
5c07e8f2b6 | |||
4e38855e1c | |||
908fafb49d | |||
a81e0ae2f6 | |||
4ded832d2d | |||
62e45dc11a | |||
c04d177d15 | |||
41a006f142 | |||
2f4b024ddb | |||
f6348ec357 | |||
7fac96f61c | |||
ddb8af4e20 | |||
62e2b527b5 | |||
96c1249622 | |||
9a5f66fc9d | |||
aedcf4b412 | |||
550f068003 | |||
5e10cca094 | |||
b2aad6c775 | |||
326748b6d9 | |||
3a24da19ed | |||
49573d6549 | |||
661ab945ef | |||
7749aa64f4 | |||
6423764956 | |||
aad212271e | |||
d40e60cb24 | |||
16786897ad | |||
6099e9915b | |||
b5035edaa3 | |||
f647fbbf9b | |||
2d1659a0be | |||
b1576141d1 | |||
df8efcf448 |
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<extension type="plugin" version="3.10" group="content" method="upgrade">
|
||||
<extension type="plugin" version="5.0" group="content" method="upgrade">
|
||||
<name>PLG_CONTENT_COMPONENTBUILDERCUSTOMADMINHEADERSTABS</name>
|
||||
<creationDate>7th November, 2024</creationDate>
|
||||
<author>Llewellyn van der Merwe</author>
|
||||
@ -7,7 +7,8 @@
|
||||
<authorUrl>https://dev.vdm.io</authorUrl>
|
||||
<copyright>Copyright (C) 2015 Vast Development Method. All rights reserved.</copyright>
|
||||
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
|
||||
<version>2.0.2</version>
|
||||
<version>4.0.0</version>
|
||||
<namespace path="src">VDM\Plugin\Content\ComponentbuilderCustomAdminHeadersTabs</namespace>
|
||||
<description>PLG_CONTENT_COMPONENTBUILDERCUSTOMADMINHEADERSTABS_XML_DESCRIPTION</description>
|
||||
|
||||
<!-- Scripts to run on installation -->
|
||||
@ -15,15 +16,16 @@
|
||||
|
||||
<!-- Language files -->
|
||||
<languages folder="language">
|
||||
<language tag="en-GB">en-GB/en-GB.plg_content_componentbuildercustomadminheaderstabs.ini</language>
|
||||
<language tag="en-GB">en-GB/en-GB.plg_content_componentbuildercustomadminheaderstabs.sys.ini</language>
|
||||
<language tag="en-GB">en-GB/plg_content_componentbuildercustomadminheaderstabs.ini</language>
|
||||
<language tag="en-GB">en-GB/plg_content_componentbuildercustomadminheaderstabs.sys.ini</language>
|
||||
</languages>
|
||||
|
||||
<!-- Plugin files -->
|
||||
<files>
|
||||
<filename plugin="componentbuildercustomadminheaderstabs">componentbuildercustomadminheaderstabs.php</filename>
|
||||
<folder plugin="componentbuildercustomadminheaderstabs">services</folder>
|
||||
<filename>index.html</filename>
|
||||
<folder>language</folder>
|
||||
<folder>forms</folder>
|
||||
<folder>services</folder>
|
||||
<folder>src</folder>
|
||||
</files>
|
||||
</extension>
|
@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- default paths of custom_admin_view form points to componentbuilder -->
|
||||
<form
|
||||
addrulepath="/administrator/components/com_componentbuilder/models/rules"
|
||||
addfieldpath="/administrator/components/com_componentbuilder/models/fields"
|
||||
addruleprefix="VDM\Component\Componentbuilder\Administrator\Rule"
|
||||
addfieldprefix="VDM\Component\Componentbuilder\Administrator\Field"
|
||||
>
|
||||
<fields name="params">
|
||||
<fieldset name="custom_admin_view_headers" label="PLG_CONTENT_COMPONENTBUILDERCUSTOMADMINHEADERSTABS_CLASS_HEADERS">
|
||||
|
@ -1,6 +1,6 @@
|
||||
PLG_CONTENT_COMPONENTBUILDERCUSTOMADMINHEADERSTABS="Content - Componentbuilder Custom Admin Headers Tabs"
|
||||
PLG_CONTENT_COMPONENTBUILDERCUSTOMADMINHEADERSTABS_DESCRIPTION="This plugin is used to set custom admin class custom headers."
|
||||
PLG_CONTENT_COMPONENTBUILDERCUSTOMADMINHEADERSTABS_XML_DESCRIPTION="<h1>Content - Componentbuilder Custom Admin Headers Tabs (v.2.0.2)</h1> <div style='clear: both;'></div><p>This plugin is used to set custom admin class custom headers.</p><p>Created by <a href='https://dev.vdm.io' target='_blank'>Llewellyn van der Merwe</a><br /><small>Development started 8th December, 2020</small></p>"
|
||||
PLG_CONTENT_COMPONENTBUILDERCUSTOMADMINHEADERSTABS_XML_DESCRIPTION="<h1>Content - Componentbuilder Custom Admin Headers Tabs (v.4.0.0)</h1> <div style='clear: both;'></div><p>This plugin is used to set custom admin class custom headers.</p><p>Created by <a href='https://dev.vdm.io' target='_blank'>Llewellyn van der Merwe</a><br /><small>Development started 10th March, 2024</small></p>"
|
||||
PLG_CONTENT_COMPONENTBUILDERCUSTOMADMINHEADERSTABS_CLASS_HEADERS="Class Headers"
|
||||
PLG_CONTENT_COMPONENTBUILDERCUSTOMADMINHEADERSTABS_ADD_CUSTOM_ADMIN_VIEW_MODEL_LABEL="Target Custom Admin View<br />Model Header"
|
||||
PLG_CONTENT_COMPONENTBUILDERCUSTOMADMINHEADERSTABS_ADD_CUSTOM_ADMIN_VIEW_MODEL_DESCRIPTION="Only use this option if you have a <b>getItem</b> as your <b>Main Get</b>."
|
@ -1,6 +1,6 @@
|
||||
PLG_CONTENT_COMPONENTBUILDERCUSTOMADMINHEADERSTABS="Content - Componentbuilder Custom Admin Headers Tabs"
|
||||
PLG_CONTENT_COMPONENTBUILDERCUSTOMADMINHEADERSTABS_DESCRIPTION="This plugin is used to set custom admin class custom headers."
|
||||
PLG_CONTENT_COMPONENTBUILDERCUSTOMADMINHEADERSTABS_XML_DESCRIPTION="<h1>Content - Componentbuilder Custom Admin Headers Tabs (v.2.0.2)</h1> <div style='clear: both;'></div><p>This plugin is used to set custom admin class custom headers.</p><p>Created by <a href='https://dev.vdm.io' target='_blank'>Llewellyn van der Merwe</a><br /><small>Development started 8th December, 2020</small></p>"
|
||||
PLG_CONTENT_COMPONENTBUILDERCUSTOMADMINHEADERSTABS_XML_DESCRIPTION="<h1>Content - Componentbuilder Custom Admin Headers Tabs (v.4.0.0)</h1> <div style='clear: both;'></div><p>This plugin is used to set custom admin class custom headers.</p><p>Created by <a href='https://dev.vdm.io' target='_blank'>Llewellyn van der Merwe</a><br /><small>Development started 10th March, 2024</small></p>"
|
||||
PLG_CONTENT_COMPONENTBUILDERCUSTOMADMINHEADERSTABS_CLASS_HEADERS="Class Headers"
|
||||
PLG_CONTENT_COMPONENTBUILDERCUSTOMADMINHEADERSTABS_ADD_CUSTOM_ADMIN_VIEW_MODEL_LABEL="Target Custom Admin View<br />Model Header"
|
||||
PLG_CONTENT_COMPONENTBUILDERCUSTOMADMINHEADERSTABS_ADD_CUSTOM_ADMIN_VIEW_MODEL_DESCRIPTION="Only use this option if you have a <b>getItem</b> as your <b>Main Get</b>."
|
150
script.php
150
script.php
@ -13,83 +13,129 @@
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
use Joomla\CMS\Factory;
|
||||
use Joomla\CMS\Version;
|
||||
use Joomla\CMS\Installer\InstallerAdapter;
|
||||
use Joomla\CMS\Language\Text;
|
||||
use Joomla\CMS\Filesystem\File;
|
||||
use Joomla\CMS\Filesystem\Folder;
|
||||
use Joomla\Filesystem\File;
|
||||
use Joomla\Filesystem\Folder;
|
||||
|
||||
/**
|
||||
* Content - Componentbuilder Custom Admin Headers Tabs script file.
|
||||
*
|
||||
* @package PlgContentComponentbuilderCustomAdminHeadersTabs
|
||||
* @package ComponentbuilderCustomAdminHeadersTabs
|
||||
*/
|
||||
class plgContentComponentbuilderCustomAdminHeadersTabsInstallerScript
|
||||
{
|
||||
/**
|
||||
* The CMS Application.
|
||||
*
|
||||
* @since 4.4.2
|
||||
*/
|
||||
protected $app;
|
||||
|
||||
/**
|
||||
* A list of files to be deleted
|
||||
*
|
||||
* @var array
|
||||
* @since 3.6
|
||||
*/
|
||||
protected array $deleteFiles = [];
|
||||
|
||||
/**
|
||||
* A list of folders to be deleted
|
||||
*
|
||||
* @var array
|
||||
* @since 3.6
|
||||
*/
|
||||
protected array $deleteFolders = [];
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param InstallerAdapter $adapter The object responsible for running this script
|
||||
*/
|
||||
public function __construct($adapter)
|
||||
{
|
||||
// get application
|
||||
$this->app = Factory::getApplication();
|
||||
|
||||
if (is_file(JPATH_ROOT . '/plugins/content/componentbuildercustomadminheaderstabs/componentbuildercustomadminheaderstabs.php'))
|
||||
{
|
||||
$this->deleteFiles[] = '/plugins/content/componentbuildercustomadminheaderstabs/componentbuildercustomadminheaderstabs.php';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Called before any type of action
|
||||
*
|
||||
* @param string $route Which action is happening (install|uninstall|discover_install|update)
|
||||
* @param Joomla\CMS\Installer\InstallerAdapter $adapter The object responsible for running this script
|
||||
* @param InstallerAdapter $adapter The object responsible for running this script
|
||||
*
|
||||
* @return boolean True on success
|
||||
*/
|
||||
public function preflight($route, $adapter)
|
||||
{
|
||||
// get application
|
||||
$app = Factory::getApplication();
|
||||
// set application to local method var, just use $this->app in future [we will drop $app in J6]
|
||||
$app = $this->app;
|
||||
|
||||
// the default for both install and update
|
||||
$jversion = new JVersion();
|
||||
if (!$jversion->isCompatible('3.8.0'))
|
||||
$jversion = new Version();
|
||||
if (!$jversion->isCompatible('5.0.0'))
|
||||
{
|
||||
$app->enqueueMessage('Please upgrade to at least Joomla! 3.8.0 before continuing!', 'error');
|
||||
$app->enqueueMessage('Please upgrade to at least Joomla! 5.0.0 before continuing!', 'error');
|
||||
return false;
|
||||
}
|
||||
|
||||
if ('install' === $route)
|
||||
{
|
||||
|
||||
// check that componentbuilder is installed
|
||||
$pathToCore = JPATH_ADMINISTRATOR . '/components/com_componentbuilder/helpers/componentbuilder.php';
|
||||
if (!is_file($pathToCore))
|
||||
{
|
||||
$app->enqueueMessage('Joomla Component Builder must first be installed from <a href="https://www.joomlacomponentbuilder.com/ " target="_blank">Joomla Component Builder</a>.', 'error');
|
||||
return false;
|
||||
}
|
||||
|
||||
// load the helper class
|
||||
JLoader::register('ComponentbuilderHelper', JPATH_ADMINISTRATOR . '/components/com_componentbuilder/helpers/componentbuilder.php');
|
||||
|
||||
// block install
|
||||
$blockInstall = true;
|
||||
|
||||
// check the version of JCB
|
||||
$manifest = ComponentbuilderHelper::manifest();
|
||||
if (isset($manifest->version) && strpos($manifest->version, '.') !== false)
|
||||
{
|
||||
// get the version
|
||||
$jcbVersion = explode('.', $manifest->version);
|
||||
// check that we have JCB 3.0.14 or higher installed
|
||||
if (count($jcbVersion) == 3 && $jcbVersion[0] >= 3 &&
|
||||
(
|
||||
($jcbVersion[0] == 3 && $jcbVersion[1] == 0 && $jcbVersion[2] >= 14) ||
|
||||
($jcbVersion[0] == 3 && $jcbVersion[1] > 0) ||
|
||||
$jcbVersion[0] > 3)
|
||||
)
|
||||
{
|
||||
$blockInstall = false;
|
||||
}
|
||||
}
|
||||
|
||||
// allow install if all conditions are met
|
||||
if ($blockInstall)
|
||||
{
|
||||
$app->enqueueMessage('Please upgrade to JCB v3.0.14 or higher before installing this plugin.', 'error');
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
// remove old files and folders
|
||||
$this->removeFiles();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called before any type of action
|
||||
*
|
||||
* @param string $route Which action is happening (install|uninstall|discover_install|update)
|
||||
* @param InstallerAdapter $adapter The object responsible for running this script
|
||||
*
|
||||
* @return boolean True on success
|
||||
*/
|
||||
public function postflight($route, $adapter)
|
||||
{
|
||||
// set application to local method var, just use $this->app in future [we will drop $app in J6]
|
||||
$app = $this->app;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the files and folders in the given array from
|
||||
*
|
||||
* @return void
|
||||
* @since 5.0.2
|
||||
*/
|
||||
protected function removeFiles()
|
||||
{
|
||||
if (!empty($this->deleteFiles))
|
||||
{
|
||||
foreach ($this->deleteFiles as $file)
|
||||
{
|
||||
if (is_file(JPATH_ROOT . $file) && !File::delete(JPATH_ROOT . $file))
|
||||
{
|
||||
echo Text::sprintf('JLIB_INSTALLER_ERROR_FILE_FOLDER', $file) . '<br>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($this->deleteFolders))
|
||||
{
|
||||
foreach ($this->deleteFolders as $folder)
|
||||
{
|
||||
if (is_dir(JPATH_ROOT . $folder) && !Folder::delete(JPATH_ROOT . $folder))
|
||||
{
|
||||
echo Text::sprintf('JLIB_INSTALLER_ERROR_FILE_FOLDER', $folder) . '<br>';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
1
services/index.html
Normal file
1
services/index.html
Normal file
@ -0,0 +1 @@
|
||||
<html><body bgcolor="#FFFFFF"></body></html>
|
47
services/provider.php
Normal file
47
services/provider.php
Normal file
@ -0,0 +1,47 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Joomla.Component.Builder
|
||||
*
|
||||
* @created 30th April, 2015
|
||||
* @author Llewellyn van der Merwe <https://dev.vdm.io>
|
||||
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
|
||||
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
use Joomla\CMS\Factory;
|
||||
use Joomla\CMS\Plugin\PluginHelper;
|
||||
use Joomla\CMS\Extension\PluginInterface;
|
||||
use Joomla\Event\DispatcherInterface;
|
||||
use Joomla\DI\ServiceProviderInterface;
|
||||
use Joomla\DI\Container;
|
||||
use VDM\Plugin\Content\ComponentbuilderCustomAdminHeadersTabs\Extension\ComponentbuilderCustomAdminHeadersTabs;
|
||||
|
||||
return new class () implements ServiceProviderInterface {
|
||||
/**
|
||||
* Registers the service provider with a DI container.
|
||||
*
|
||||
* @param Container $container The DI container.
|
||||
*
|
||||
* @return void
|
||||
* @since 4.3.0
|
||||
*/
|
||||
public function register(Container $container)
|
||||
{
|
||||
$container->set(
|
||||
PluginInterface::class,
|
||||
function (Container $container) {
|
||||
$plugin = new ComponentbuilderCustomAdminHeadersTabs(
|
||||
$container->get(DispatcherInterface::class),
|
||||
(array) PluginHelper::getPlugin('content', 'componentbuildercustomadminheaderstabs')
|
||||
);
|
||||
$plugin->setApplication(Factory::getApplication());
|
||||
|
||||
return $plugin;
|
||||
}
|
||||
);
|
||||
}
|
||||
};
|
@ -8,28 +8,27 @@
|
||||
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
JLoader::register('ComponentbuilderHelper', JPATH_ADMINISTRATOR . '/components/com_componentbuilder/helpers/componentbuilder.php');
|
||||
namespace VDM\Plugin\Content\ComponentbuilderCustomAdminHeadersTabs\Extension;
|
||||
|
||||
use Joomla\CMS\Form\Form;
|
||||
use Joomla\CMS\Plugin\CMSPlugin;
|
||||
use VDM\Joomla\Utilities\ArrayHelper;
|
||||
use Joomla\CMS\Component\ComponentHelper;
|
||||
use VDM\Joomla\Utilities\ArrayHelper;
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
/**
|
||||
* Content - Componentbuilder Custom Admin Headers Tabs plugin.
|
||||
*
|
||||
* @package ComponentbuilderCustomAdminHeadersTabs
|
||||
* @since 2.0.2
|
||||
* @since 4.0.0
|
||||
*/
|
||||
class PlgContentComponentbuilderCustomAdminHeadersTabs extends CMSPlugin
|
||||
final class ComponentbuilderCustomAdminHeadersTabs extends CMSPlugin
|
||||
{
|
||||
|
||||
/**
|
||||
* Affects constructor behavior. If true, language files will be loaded automatically.
|
||||
* Affects constructor behaviour. If true, language files will be loaded automatically.
|
||||
*
|
||||
* @var boolean
|
||||
* @since 1.0
|
||||
@ -39,8 +38,8 @@ class PlgContentComponentbuilderCustomAdminHeadersTabs extends CMSPlugin
|
||||
/**
|
||||
* Runs on content preparation of form.
|
||||
*
|
||||
* @param JForm $form The form
|
||||
* @param stdClass $data The data
|
||||
* @param Form $form The form
|
||||
* @param \stdClass $data The data
|
||||
*
|
||||
* @return boolean
|
||||
*
|
||||
@ -54,7 +53,7 @@ class PlgContentComponentbuilderCustomAdminHeadersTabs extends CMSPlugin
|
||||
if (strpos($context, 'com_componentbuilder.custom_admin_view') === 0)
|
||||
{
|
||||
// Add the forms path
|
||||
Form::addFormPath(__DIR__ . '/forms');
|
||||
Form::addFormPath(__DIR__ . '/../../forms');
|
||||
// add the admin view params for privacy integration
|
||||
$form->loadFile('custom_admin_view');
|
||||
// update all editors to use this components global editor
|
1
src/Extension/index.html
Normal file
1
src/Extension/index.html
Normal file
@ -0,0 +1 @@
|
||||
<html><body bgcolor="#FFFFFF"></body></html>
|
Loading…
Reference in New Issue
Block a user