From cb6bb146fd18385069a2bfdf8f13cfd5aceb0464 Mon Sep 17 00:00:00 2001 From: Llewellyn van der Merwe Date: Wed, 18 May 2022 13:08:14 +0200 Subject: [PATCH] update - v2.0.0 --- componentbuildercomponentheaderstabs.php | 2 +- componentbuildercomponentheaderstabs.xml | 6 +- fields/index.html | 1 - fields/powers.php | 184 -------------- forms/joomla_component.xml | 235 +++++++++++++++--- ...t_componentbuildercomponentheaderstabs.ini | 11 +- ...mponentbuildercomponentheaderstabs.sys.ini | 11 +- rules/code.php | 53 ---- rules/index.html | 1 - script.php | 6 +- 10 files changed, 219 insertions(+), 291 deletions(-) delete mode 100644 fields/index.html delete mode 100644 fields/powers.php delete mode 100644 rules/code.php delete mode 100644 rules/index.html diff --git a/componentbuildercomponentheaderstabs.php b/componentbuildercomponentheaderstabs.php index 1e13446..13b887b 100644 --- a/componentbuildercomponentheaderstabs.php +++ b/componentbuildercomponentheaderstabs.php @@ -21,7 +21,7 @@ JLoader::register('ComponentbuilderHelper', JPATH_ADMINISTRATOR . '/components/c * Content - Componentbuilder Component Headers Tabs plugin. * * @package ComponentbuilderComponentHeadersTabs - * @since 1.0.3 + * @since 2.0.0 */ class PlgContentComponentbuilderComponentHeadersTabs extends CMSPlugin { diff --git a/componentbuildercomponentheaderstabs.xml b/componentbuildercomponentheaderstabs.xml index 882ed29..cbb0429 100644 --- a/componentbuildercomponentheaderstabs.xml +++ b/componentbuildercomponentheaderstabs.xml @@ -1,13 +1,13 @@ PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS - 9th May, 2022 + 18th May, 2022 Llewellyn van der Merwe joomla@vdm.io https://dev.vdm.io Copyright (C) 2015 Vast Development Method. All rights reserved. GNU General Public License version 2 or later; see LICENSE.txt - 1.0.3 + 2.0.0 PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_XML_DESCRIPTION @@ -24,8 +24,6 @@ componentbuildercomponentheaderstabs.php index.html language - fields forms - rules \ No newline at end of file diff --git a/fields/index.html b/fields/index.html deleted file mode 100644 index fa6d84e..0000000 --- a/fields/index.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/fields/powers.php b/fields/powers.php deleted file mode 100644 index 37c857a..0000000 --- a/fields/powers.php +++ /dev/null @@ -1,184 +0,0 @@ - - * @git 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'); - -// import the list field type -jimport('joomla.form.helper'); -JFormHelper::loadFieldClass('list'); - -/** - * Powers Form Field class for the Componentbuilder component - */ -class JFormFieldPowers extends JFormFieldList -{ - /** - * The powers field type. - * - * @var string - */ - public $type = 'powers'; - - /** - * Override to add new button - * - * @return string The field input markup. - * - * @since 3.2 - */ - protected function getInput() - { - // see if we should add buttons - $set_button = $this->getAttribute('button'); - // get html - $html = parent::getInput(); - // if true set button - if ($set_button === 'true') - { - $button = array(); - $script = array(); - $button_code_name = $this->getAttribute('name'); - // get the input from url - $app = JFactory::getApplication(); - $jinput = $app->input; - // get the view name & id - $values = $jinput->getArray(array( - 'id' => 'int', - 'view' => 'word' - )); - // check if new item - $ref = ''; - $refJ = ''; - if (!is_null($values['id']) && strlen($values['view'])) - { - // only load referral if not new item. - $ref = '&ref=' . $values['view'] . '&refid=' . $values['id']; - $refJ = '&ref=' . $values['view'] . '&refid=' . $values['id']; - // get the return value. - $_uri = (string) JUri::getInstance(); - $_return = urlencode(base64_encode($_uri)); - // load return value. - $ref .= '&return=' . $_return; - $refJ .= '&return=' . $_return; - } - // get button label - $button_label = trim($button_code_name); - $button_label = preg_replace('/_+/', ' ', $button_label); - $button_label = preg_replace('/\s+/', ' ', $button_label); - $button_label = preg_replace("/[^A-Za-z ]/", '', $button_label); - $button_label = ucfirst(strtolower($button_label)); - // get user object - $user = JFactory::getUser(); - // only add if user allowed to create power - if ($user->authorise('power.create', 'com_componentbuilder') && $app->isAdmin()) // TODO for now only in admin area. - { - // build Create button - $button[] = ' - '; - } - // only add if user allowed to edit power - if ($user->authorise('power.edit', 'com_componentbuilder') && $app->isAdmin()) // TODO for now only in admin area. - { - // build edit button - $button[] = ''; - // build script - $script[] = " - jQuery(document).ready(function() { - jQuery('#adminForm').on('change', '#jform_".$button_code_name."',function (e) { - e.preventDefault(); - var ".$button_code_name."Value = jQuery('#jform_".$button_code_name."').val(); - ".$button_code_name."Button(".$button_code_name."Value); - }); - var ".$button_code_name."Value = jQuery('#jform_".$button_code_name."').val(); - ".$button_code_name."Button(".$button_code_name."Value); - }); - function ".$button_code_name."Button(value) { - if (value > 0) { - // hide the create button - jQuery('#".$button_code_name."Create').hide(); - // show edit button - jQuery('#".$button_code_name."Edit').show(); - var url = 'index.php?option=com_componentbuilder&view=powers&task=power.edit&id='+value+'".$refJ."'; - jQuery('#".$button_code_name."Edit').attr('href', url); - } else { - // show the create button - jQuery('#".$button_code_name."Create').show(); - // hide edit button - jQuery('#".$button_code_name."Edit').hide(); - } - }"; - } - // check if button was created for power field. - if (is_array($button) && count($button) > 0) - { - // Load the needed script. - $document = JFactory::getDocument(); - $document->addScriptDeclaration(implode(' ',$script)); - // return the button attached to input field. - return '
' .$html . implode('',$button).'
'; - } - } - return $html; - } - - /** - * Method to get a list of options for a list input. - * - * @return array An array of JHtml options. - */ - protected function getOptions() - { - // Get the user object. - $user = JFactory::getUser(); - // Get the databse object. - $db = JFactory::getDBO(); - $query = $db->getQuery(true); - $query->select($db->quoteName(array('a.guid','a.system_name','a.name','a.type','a.power_version'),array('guid','power_admin_component_system_name','name','type','version'))); - $query->from($db->quoteName('#__componentbuilder_power', 'a')); - $query->where($db->quoteName('a.published') . ' >= 1'); - $query->order('a.system_name ASC'); - $query->order('a.type ASC'); - // Implement View Level Access (if set in table) - if (!$user->authorise('core.options', 'com_componentbuilder')) - { - $columns = $db->getTableColumns('#__componentbuilder_power'); - if(isset($columns['access'])) - { - $groups = implode(',', $user->getAuthorisedViewLevels()); - $query->where('a.access IN (' . $groups . ')'); - } - } - $db->setQuery((string)$query); - $items = $db->loadObjectList(); - $options = array(); - // if none was found, we add this to set an alternative to set custom - if (!$items) - { - $options[] = JHtml::_('select.option', '', JText::_('PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_NONE_FOUND')); - } - if ($items) - { - if ($this->multiple === false) - { - $options[] = JHtml::_('select.option', '', JText::_('PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_SELECT_AN_OPTION')); - } - foreach($items as $item) - { - $options[] = JHtml::_('select.option', $item->guid, $item->power_admin_component_system_name . ' [' . $item->type . ' ' . $item->name . '] (v' . $item->version . ')'); - } - } - return $options; - - } -} diff --git a/forms/joomla_component.xml b/forms/joomla_component.xml index f6b925a..0713990 100644 --- a/forms/joomla_component.xml +++ b/forms/joomla_component.xml @@ -1,12 +1,11 @@ -
+ - -
+
- + + buttons="add,remove,move" + icon="list" + max="50" + showon="add_admin_component:1"> + + + + + + + + + + + + + + - + + buttons="add,remove,move" + icon="list" + max="50" + showon="add_site_component:1"> +
diff --git a/language/en-GB/en-GB.plg_content_componentbuildercomponentheaderstabs.ini b/language/en-GB/en-GB.plg_content_componentbuildercomponentheaderstabs.ini index ac8f0cd..d30381c 100644 --- a/language/en-GB/en-GB.plg_content_componentbuildercomponentheaderstabs.ini +++ b/language/en-GB/en-GB.plg_content_componentbuildercomponentheaderstabs.ini @@ -1,6 +1,6 @@ PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS="Content - Componentbuilder Component Headers Tabs" PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_DESCRIPTION="This plugin is used to set component class custom headers." -PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_XML_DESCRIPTION="

Content - Componentbuilder Component Headers Tabs (v.1.0.3)

This plugin is used to set component class custom headers.

Created by Llewellyn van der Merwe
Development started 26th December, 2020

" +PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_XML_DESCRIPTION="

Content - Componentbuilder Component Headers Tabs (v.2.0.0)

This plugin is used to set component class custom headers.

Created by Llewellyn van der Merwe
Development started 26th December, 2020

" PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_CLASS_HEADERS="Class Headers" PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_ADD_ADMIN_COMPONENT_LABEL="Admin Component
Header" PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_YES="Yes" @@ -9,8 +9,13 @@ PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_ADMIN_COMPONENT_LABEL="Header(admin.component)" PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_POWER_ADMIN_COMPONENT_LABEL="Power Header
(admin.component)" -PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_NONE_FOUND="None found" -PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_SELECT_AN_OPTION="Select an option" +PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_POWER_LABEL="use" +PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_POWER="Power" +PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_AS_LABEL="as" +PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_BUILD_LABEL="build" +PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_ALWAYS="Always" +PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_BASED_ON_COMPONENT="Based on Component" +PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_EXCLUDE="Exclude" PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_ADD_SITE_COMPONENT_LABEL="Site Component
Header" PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_SITE_COMPONENT_LABEL="Header
(site.component)" diff --git a/language/en-GB/en-GB.plg_content_componentbuildercomponentheaderstabs.sys.ini b/language/en-GB/en-GB.plg_content_componentbuildercomponentheaderstabs.sys.ini index ac8f0cd..d30381c 100644 --- a/language/en-GB/en-GB.plg_content_componentbuildercomponentheaderstabs.sys.ini +++ b/language/en-GB/en-GB.plg_content_componentbuildercomponentheaderstabs.sys.ini @@ -1,6 +1,6 @@ PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS="Content - Componentbuilder Component Headers Tabs" PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_DESCRIPTION="This plugin is used to set component class custom headers." -PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_XML_DESCRIPTION="

Content - Componentbuilder Component Headers Tabs (v.1.0.3)

This plugin is used to set component class custom headers.

Created by Llewellyn van der Merwe
Development started 26th December, 2020

" +PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_XML_DESCRIPTION="

Content - Componentbuilder Component Headers Tabs (v.2.0.0)

This plugin is used to set component class custom headers.

Created by Llewellyn van der Merwe
Development started 26th December, 2020

" PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_CLASS_HEADERS="Class Headers" PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_ADD_ADMIN_COMPONENT_LABEL="Admin Component
Header" PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_YES="Yes" @@ -9,8 +9,13 @@ PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_ADMIN_COMPONENT_LABEL="Header(admin.component)" PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_POWER_ADMIN_COMPONENT_LABEL="Power Header
(admin.component)" -PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_NONE_FOUND="None found" -PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_SELECT_AN_OPTION="Select an option" +PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_POWER_LABEL="use" +PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_POWER="Power" +PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_AS_LABEL="as" +PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_BUILD_LABEL="build" +PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_ALWAYS="Always" +PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_BASED_ON_COMPONENT="Based on Component" +PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_EXCLUDE="Exclude" PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_ADD_SITE_COMPONENT_LABEL="Site Component
Header" PLG_CONTENT_COMPONENTBUILDERCOMPONENTHEADERSTABS_SITE_COMPONENT_LABEL="Header
(site.component)" diff --git a/rules/code.php b/rules/code.php deleted file mode 100644 index 8101f79..0000000 --- a/rules/code.php +++ /dev/null @@ -1,53 +0,0 @@ - - * @git 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('JPATH_PLATFORM') or die; - -use Joomla\CMS\Form\Form; -use Joomla\CMS\Form\FormRule; -use Joomla\Registry\Registry; - -/** - * Form Rule (Code) class for the Joomla Platform. - */ -class JFormRuleCode extends FormRule -{ - /** - * Method to test the value. - * - * @param \SimpleXMLElement $element The SimpleXMLElement object representing the `` tag for the form field object. - * @param mixed $value The form field value to validate. - * @param string $group The field name group control value. This acts as an array container for the field. - * For example if the field has name="foo" and the group value is set to "bar" then the - * full field name would end up being "bar[foo]". - * @param Registry $input An optional Registry object with the entire data set to validate against the entire form. - * @param Form $form The form object for which the field is being tested. - * - * @return boolean True if the value is valid, false otherwise. - */ - public function test(\SimpleXMLElement $element, $value, $group = null, Registry $input = null, Form $form = null) - { - // This removes all validation (is dangerous) but needed to submit code via JCB - return true; - - /** - * My idea is to add some kind of validation to improve JCB code (per/language) - * - * So at this time this code validation is used for JavaScript,CSS,HTML and PHP. - * We can see what language is being worked on with the syntax property in the $element. (in JCB) - * What complicates things is the placeholders, of both custom code, component, and view names. - * Ideally we could strip them and then validate the code to being syntactically correct. - * But since some of the placeholders form part of the class/function names and the more, it seems like we are pressed for a much more advance solution. - * If you have any ideas to how we can go about to do this, then please open an issue on github and lets begin. (this is a nice to have, so don't break a leg...) - */ - } -} diff --git a/rules/index.html b/rules/index.html deleted file mode 100644 index fa6d84e..0000000 --- a/rules/index.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/script.php b/script.php index 2868887..525a321 100644 --- a/script.php +++ b/script.php @@ -61,10 +61,10 @@ class plgContentComponentbuilderComponentHeadersTabsInstallerScript { // get the version $jcbVersion = explode('.', $manifest->version); - // check that we have JCB 3.0.11 or higher installed + // 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] >= 11) || + ($jcbVersion[0] == 3 && $jcbVersion[1] == 0 && $jcbVersion[2] >= 14) || ($jcbVersion[0] == 3 && $jcbVersion[1] > 0) || $jcbVersion[0] > 3) ) @@ -75,7 +75,7 @@ class plgContentComponentbuilderComponentHeadersTabsInstallerScript // allow install if all conditions are met if ($blockInstall) { - $app->enqueueMessage('Please upgrade to JCB-Pro v3.0.11 or higher before installing this plugin.', 'error'); + $app->enqueueMessage('Please upgrade to JCB-Pro v3.0.14 or higher before installing this plugin.', 'error'); return false; } }