52
0

Compare commits

..

40 Commits
3.x ... 5.x

Author SHA1 Message Date
881b04db94
Update on v4.0.0 (changes towards the next release)
Here's an update on the current version, which includes changes towards the next release still in development.
2024-11-07 10:55:30 +02:00
8fddcc0162
Update on v4.0.0 (changes towards the next release)
Here's an update on the current version, which includes changes towards the next release still in development.
2024-10-13 22:54:01 +02:00
16d659c887
Update on v4.0.0 (changes towards the next release)
Here's an update on the current version, which includes changes towards the next release still in development.
2024-10-08 00:33:55 +02:00
905a4e6288
Update on v4.0.0 (changes towards the next release)
Here's an update on the current version, which includes changes towards the next release still in development.
2024-09-30 01:56:42 +02:00
9fc06d0d81
Update on v4.0.0 (changes towards the next release)
Here's an update on the current version, which includes changes towards the next release still in development.
2024-09-20 03:01:45 +02:00
fddfcd04fa
Update on v4.0.0 (changes towards the next release)
Here's an update on the current version, which includes changes towards the next release still in development.
2024-09-19 05:50:09 +02:00
5c07e8f2b6
Update on v4.0.0 (changes towards the next release)
Here's an update on the current version, which includes changes towards the next release still in development.
2024-09-18 04:40:33 +02:00
4e38855e1c
Update on v4.0.0 (changes towards the next release)
Here's an update on the current version, which includes changes towards the next release still in development.
2024-08-23 20:00:42 +02:00
908fafb49d
Update on v4.0.0 (changes towards the next release)
Here's an update on the current version, which includes changes towards the next release still in development.
2024-08-21 21:38:38 +02:00
a81e0ae2f6
Update on v4.0.0 (changes towards the next release)
Here's an update on the current version, which includes changes towards the next release still in development.
2024-08-20 22:34:47 +02:00
4ded832d2d
Update on v4.0.0 (changes towards the next release)
Here's an update on the current version, which includes changes towards the next release still in development.
2024-08-16 19:22:12 +02:00
62e45dc11a
Release of v4.0.0 2024-08-15 01:35:23 +02:00
c04d177d15
Release of v3.0.0 2024-07-27 22:57:55 +02:00
41a006f142
Release of v3.0.0 2024-07-26 15:37:49 +02:00
2f4b024ddb
Release of v3.0.0 2024-07-20 22:42:56 +02:00
f6348ec357
Release of v3.0.0 2024-07-18 15:00:31 +02:00
7fac96f61c
Release of v3.0.0 2024-07-17 02:33:13 +02:00
ddb8af4e20
Release of v3.0.0 2024-07-08 22:57:32 +02:00
62e2b527b5
Release of v3.0.0 2024-06-28 03:53:11 +02:00
96c1249622
Release of v3.0.0 2024-06-21 03:28:00 +02:00
9a5f66fc9d
Release of v3.0.0 2024-06-07 23:23:22 +02:00
aedcf4b412
Release of v3.0.0 2024-06-05 17:11:31 +02:00
550f068003
Release of v3.0.0 2024-05-16 16:09:22 +02:00
5e10cca094
Release of v3.0.0 2024-05-13 12:23:22 +02:00
b2aad6c775
Release of v3.0.0 2024-05-10 18:17:06 +02:00
326748b6d9
Release of v3.0.0 2024-05-06 07:50:59 +02:00
3a24da19ed
Release of v3.0.0 2024-05-03 07:49:52 +02:00
49573d6549
Release of v3.0.0 2024-04-30 12:31:45 +02:00
661ab945ef
Release of v3.0.0 2024-04-27 16:02:41 +02:00
7749aa64f4
Release of v3.0.0 2024-04-24 21:40:18 +02:00
6423764956
Release of v3.0.0 2024-04-22 01:17:09 +02:00
aad212271e
Release of v3.0.0 2024-04-16 20:28:52 +02:00
d40e60cb24
Release of v3.0.0 2024-04-09 13:57:23 +02:00
16786897ad
Release of v3.0.0 2024-04-07 12:03:35 +02:00
6099e9915b
Release of v3.0.0 2024-04-06 23:44:00 +02:00
b5035edaa3
Release of v3.0.0 2024-03-26 22:34:48 +02:00
f647fbbf9b
Release of v3.0.0 2024-03-20 14:24:16 +02:00
2d1659a0be
Release of v3.0.0 2024-03-15 12:28:38 +02:00
b1576141d1
Release of v3.0.0 2024-03-12 12:58:43 +02:00
df8efcf448
Release of v3.0.0 2024-03-11 18:32:59 +02:00
9 changed files with 171 additions and 75 deletions

View File

@ -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>

View File

@ -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">

View File

@ -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>."

View File

@ -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>."

View File

@ -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
View File

@ -0,0 +1 @@
<html><body bgcolor="#FFFFFF"></body></html>

47
services/provider.php Normal file
View 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;
}
);
}
};

View File

@ -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
*/
namespace VDM\Plugin\Content\ComponentbuilderCustomAdminHeadersTabs\Extension;
use Joomla\CMS\Form\Form;
use Joomla\CMS\Plugin\CMSPlugin;
use Joomla\CMS\Component\ComponentHelper;
use VDM\Joomla\Utilities\ArrayHelper;
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
JLoader::register('ComponentbuilderHelper', JPATH_ADMINISTRATOR . '/components/com_componentbuilder/helpers/componentbuilder.php');
use Joomla\CMS\Form\Form;
use Joomla\CMS\Plugin\CMSPlugin;
use VDM\Joomla\Utilities\ArrayHelper;
use Joomla\CMS\Component\ComponentHelper;
/**
* 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
View File

@ -0,0 +1 @@
<html><body bgcolor="#FFFFFF"></body></html>