52
0
plg_content_componentbuilde.../componentbuilderadminheaderstabs.php

76 lines
2.2 KiB
PHP
Raw Normal View History

2021-10-14 14:30:31 +00:00
<?php
2021-12-03 02:45:17 +00:00
/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <https://dev.vdm.io>
2022-08-20 16:38:51 +00:00
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
2021-12-03 02:45:17 +00:00
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
2021-10-14 14:30:31 +00:00
*/
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
use Joomla\CMS\Form\Form;
use Joomla\CMS\Plugin\CMSPlugin;
use VDM\Joomla\Utilities\ArrayHelper;
2021-10-14 14:30:31 +00:00
JLoader::register('ComponentbuilderHelper', JPATH_ADMINISTRATOR . '/components/com_componentbuilder/helpers/componentbuilder.php');
/**
* Content - Componentbuilder Admin Headers Tabs plugin.
*
* @package ComponentbuilderAdminHeadersTabs
* @since 2.0.3
2021-10-14 14:30:31 +00:00
*/
class PlgContentComponentbuilderAdminHeadersTabs extends CMSPlugin
{
2022-01-10 14:10:29 +00:00
2021-10-14 14:30:31 +00:00
/**
* Affects constructor behavior. If true, language files will be loaded automatically.
*
* @var boolean
* @since 1.0
*/
protected $autoloadLanguage = true;
/**
* Runs on content preparation of form.
*
* @param JForm $form The form
* @param stdClass $data The data
*
* @return boolean
*
* @since 1.0
*/
public function onContentPrepareForm(Form $form, $data)
{
$context = $form->getName();
2022-01-10 14:10:29 +00:00
// When this is componentbuilder admin_view
2021-10-14 14:30:31 +00:00
if (strpos($context, 'com_componentbuilder.admin_view') === 0)
{
// Add the forms path
Form::addFormPath(__DIR__ . '/forms');
// add the admin view params for privacy integration
$form->loadFile('admin_view');
// update all editors to use this components global editor
$global_editor = JComponentHelper::getParams('com_componentbuilder')->get('editor', 'none');
// set the field editor value (with none as fallback)
$editors = $form->getXml()->xpath('descendant::fields[@name="admin_view_headers"]//field[@type="editor"]');
// check if we found any
if (ArrayHelper::check($editors))
2021-10-14 14:30:31 +00:00
{
foreach ($editors as $editor)
{
// set the editor to the global option
$editor['editor'] = $global_editor . '|none';
}
}
}
return true;
}
}