From f2b2228dd7798ba7e7c99eded2a8e04b25539cba Mon Sep 17 00:00:00 2001
From: Llewellyn van der Merwe
Date: Fri, 29 May 2020 03:01:07 +0200
Subject: [PATCH 01/14] Fixed gh-565 by removing the old PHPExcel_IOFactory and
adding the new. Updated the subform layout for verious subforms in JCB for
beter display. Change the helper category naming conventions for better
integration with Joomla fields. gh-561
---
README.md | 6 +-
admin/README.txt | 6 +-
.../joomla_3/Helper_category_view.php | 4 +-
admin/helpers/compiler/e_Interpretation.php | 16 +--
.../en-GB/en-GB.com_componentbuilder.ini | 3 +
admin/layouts/repeatablejcb.php | 95 ++++++++++++++++++
admin/layouts/sectionjcb.php | 62 ++++++++++++
.../fields/adminlistvieworderfields.php | 99 +++++++++++++++++++
.../models/fields/linkedviewsorderfields.php | 99 +++++++++++++++++++
admin/models/forms/admin_custom_tabs.xml | 2 +-
admin/models/forms/admin_fields.xml | 2 +-
.../models/forms/admin_fields_conditions.xml | 2 +-
admin/models/forms/admin_fields_relations.xml | 2 +-
admin/models/forms/component_admin_views.xml | 2 +-
.../forms/component_custom_admin_views.xml | 2 +-
admin/models/forms/component_site_views.xml | 2 +-
admin/models/import_language_translations.php | 10 +-
admin/sql/install.mysql.utf8.sql | 2 +-
admin/views/admin_custom_tabs/view.html.php | 8 +-
admin/views/admin_fields/view.html.php | 7 +-
.../admin_fields_conditions/view.html.php | 8 +-
.../admin_fields_relations/view.html.php | 6 ++
admin/views/admin_view/view.html.php | 7 +-
admin/views/class_extends/view.html.php | 7 +-
admin/views/class_method/view.html.php | 7 +-
admin/views/class_property/view.html.php | 7 +-
admin/views/compiler/view.html.php | 28 +++++-
.../views/component_admin_views/view.html.php | 8 +-
.../view.html.php | 8 +-
.../view.html.php | 8 +-
admin/views/component_dashboard/view.html.php | 7 +-
.../views/component_site_views/view.html.php | 8 +-
admin/views/custom_admin_view/view.html.php | 7 +-
admin/views/custom_code/view.html.php | 7 +-
admin/views/dynamic_get/view.html.php | 7 +-
admin/views/field/view.html.php | 7 +-
.../import_joomla_components/view.html.php | 7 +-
admin/views/joomla_component/view.html.php | 7 +-
admin/views/joomla_module/view.html.php | 7 +-
admin/views/joomla_plugin/view.html.php | 7 +-
admin/views/layout/view.html.php | 7 +-
admin/views/library/view.html.php | 7 +-
admin/views/placeholder/view.html.php | 7 +-
admin/views/site_view/view.html.php | 7 +-
admin/views/template/view.html.php | 7 +-
admin/views/validation_rule/view.html.php | 7 +-
componentbuilder.xml | 2 +-
site/helpers/category.php | 8 +-
.../{categoryfields.php => categoryfield.php} | 4 +-
...ryfieldtypes.php => categoryfieldtype.php} | 4 +-
50 files changed, 571 insertions(+), 85 deletions(-)
create mode 100644 admin/layouts/repeatablejcb.php
create mode 100644 admin/layouts/sectionjcb.php
create mode 100644 admin/models/fields/adminlistvieworderfields.php
create mode 100644 admin/models/fields/linkedviewsorderfields.php
rename site/helpers/{categoryfields.php => categoryfield.php} (86%)
rename site/helpers/{categoryfieldtypes.php => categoryfieldtype.php} (85%)
diff --git a/README.md b/README.md
index 4c365b20b..b60e50426 100644
--- a/README.md
+++ b/README.md
@@ -144,13 +144,13 @@ TODO
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
+ *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder)
+ *First Build*: 30th April, 2015
-+ *Last Build*: 25th May, 2020
++ *Last Build*: 29th May, 2020
+ *Version*: 2.11.2
+ *Copyright*: Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved.
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
-+ *Line count*: **282168**
++ *Line count*: **282456**
+ *Field count*: **1522**
-+ *File count*: **1783**
++ *File count*: **1785**
+ *Folder count*: **295**
> This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](http://joomlacomponentbuilder.com).
diff --git a/admin/README.txt b/admin/README.txt
index 4c365b20b..b60e50426 100644
--- a/admin/README.txt
+++ b/admin/README.txt
@@ -144,13 +144,13 @@ TODO
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
+ *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder)
+ *First Build*: 30th April, 2015
-+ *Last Build*: 25th May, 2020
++ *Last Build*: 29th May, 2020
+ *Version*: 2.11.2
+ *Copyright*: Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved.
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
-+ *Line count*: **282168**
++ *Line count*: **282456**
+ *Field count*: **1522**
-+ *File count*: **1783**
++ *File count*: **1785**
+ *Folder count*: **295**
> This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](http://joomlacomponentbuilder.com).
diff --git a/admin/compiler/joomla_3/Helper_category_view.php b/admin/compiler/joomla_3/Helper_category_view.php
index e02ee4b00..46524c443 100644
--- a/admin/compiler/joomla_3/Helper_category_view.php
+++ b/admin/compiler/joomla_3/Helper_category_view.php
@@ -20,7 +20,7 @@ defined('_JEXEC') or die('Restricted access');
/**
* ###Component### ###View### Component Category Tree
*/
-class ###Component######Views###Categories extends JCategories
+class ###Component######View###Categories extends JCategories
{
/**
* Class constructor
@@ -31,7 +31,7 @@ class ###Component######Views###Categories extends JCategories
public function __construct($options = array())
{
$options['table'] = '#__###component###_###view###';
- $options['extension'] = 'com_###component###.###views###';
+ $options['extension'] = 'com_###component###.###view###';
parent::__construct($options);
}
diff --git a/admin/helpers/compiler/e_Interpretation.php b/admin/helpers/compiler/e_Interpretation.php
index 8072c1fc0..f687a3b93 100644
--- a/admin/helpers/compiler/e_Interpretation.php
+++ b/admin/helpers/compiler/e_Interpretation.php
@@ -17461,24 +17461,24 @@ class Interpretation extends Fields
}
// load the category helper details in not already loaded
if (!isset(
- $this->fileContentDynamic['category' . $otherViews][$this->hhh
+ $this->fileContentDynamic['category' . $otherView][$this->hhh
. 'view' . $this->hhh]
))
{
// lets also set the category helper for this view
- $target = array('site' => 'category' . $viewName_list);
+ $target = array('site' => 'category' . $otherView);
$this->buildDynamique($target, 'category');
// insure the file gets updated
- $this->fileContentDynamic['category' . $otherViews][$this->hhh
+ $this->fileContentDynamic['category' . $otherView][$this->hhh
. 'view' . $this->hhh]
= $otherView;
- $this->fileContentDynamic['category' . $otherViews][$this->hhh
+ $this->fileContentDynamic['category' . $otherView][$this->hhh
. 'View' . $this->hhh]
= ucfirst($otherView);
- $this->fileContentDynamic['category' . $otherViews][$this->hhh
+ $this->fileContentDynamic['category' . $otherView][$this->hhh
. 'views' . $this->hhh]
= $otherViews;
- $this->fileContentDynamic['category' . $otherViews][$this->hhh
+ $this->fileContentDynamic['category' . $otherView][$this->hhh
. 'Views' . $this->hhh]
= ucfirst($otherViews);
// set script to global helper file
@@ -17486,12 +17486,12 @@ class Interpretation extends Fields
$includeHelper[] = "\n//" . $this->setLine(__LINE__)
. "Insure this view category file is loaded.";
$includeHelper[] = "\$classname = '" . ucfirst($component)
- . ucfirst($viewName_list) . "Categories';";
+ . ucfirst($otherView) . "Categories';";
$includeHelper[] = "if (!class_exists(\$classname))";
$includeHelper[] = "{";
$includeHelper[] = $this->_t(1)
. "\$path = JPATH_SITE . '/components/com_" . $component
- . "/helpers/category" . $viewName_list . ".php';";
+ . "/helpers/category" . $otherView . ".php';";
$includeHelper[] = $this->_t(1) . "if (is_file(\$path))";
$includeHelper[] = $this->_t(1) . "{";
$includeHelper[] = $this->_t(2) . "include_once \$path;";
diff --git a/admin/language/en-GB/en-GB.com_componentbuilder.ini b/admin/language/en-GB/en-GB.com_componentbuilder.ini
index de38067e9..f30834db6 100644
--- a/admin/language/en-GB/en-GB.com_componentbuilder.ini
+++ b/admin/language/en-GB/en-GB.com_componentbuilder.ini
@@ -7,6 +7,7 @@ COM_COMPONENTBUILDER_ACCESS="Access"
COM_COMPONENTBUILDER_ACCESS_BULK_TOOLS="Access Bulk Tools"
COM_COMPONENTBUILDER_ACCESS_DENIED="Access denied!"
COM_COMPONENTBUILDER_ACTIVE_ONLY_FOUR_TEXT_FIELD="Active (only 4 text_field)"
+COM_COMPONENTBUILDER_ADD="Add"
COM_COMPONENTBUILDER_ADD_ACCESS="Add Access"
COM_COMPONENTBUILDER_ADD_CORRESPONDING_LINE_NUMBERS_TO_THE_DYNAMIC_COMMENTS_SO_TO_SEE_WHERE_IN_THE_COMPILER_THE_LINES_OF_CODE_WAS_BUILD_THIS_WILL_HELP_IF_YOU_NEED_TO_GET_MORE_TECHNICAL_WITH_AN_ISSUE_ON_GITHUB_OR_EVEN_FOR_YOUR_OWN_DEBUGGING="Add corresponding line numbers to the dynamic comments, so to see where in the compiler the lines of code was build. This will help if you need to get more technical with an issue on github, or even for your own debugging."
COM_COMPONENTBUILDER_ADD_CUSTOM_CODE_PLACEHOLDERS="Add Custom Code Placeholders"
@@ -7717,6 +7718,7 @@ COM_COMPONENTBUILDER_MODEL_AFTER_MODELLING="Model (after modelling)"
COM_COMPONENTBUILDER_MODEL_BEFORE_MODELLING="Model (before modelling)"
COM_COMPONENTBUILDER_MODULE="Module"
COM_COMPONENTBUILDER_MODULES="Modules"
+COM_COMPONENTBUILDER_MOVE="Move"
COM_COMPONENTBUILDER_NAME="Name"
COM_COMPONENTBUILDER_NAME_ASC="Name (Asc)"
COM_COMPONENTBUILDER_NAME_DESC="Name (Desc)"
@@ -7913,6 +7915,7 @@ COM_COMPONENTBUILDER_PUBLISHING="Publishing"
COM_COMPONENTBUILDER_READY_TO_COMPILE_A_COMPONENT="Ready to compile a component"
COM_COMPONENTBUILDER_REFRESH="Refresh"
COM_COMPONENTBUILDER_RELEASED_THIS="released this"
+COM_COMPONENTBUILDER_REMOVE="Remove"
COM_COMPONENTBUILDER_RENAME="Rename"
COM_COMPONENTBUILDER_REPORT_AN_ISSUE_BSB="Report an issue: %s"
COM_COMPONENTBUILDER_REQUIRES_THE_VALUE_ENTERED_BE_ONE_OF_THE_OPTIONS_IN_AN_ELEMENT_OF_TYPEQUOTLISTQUOT_THAT_IS_THAT_THE_ELEMENT_IS_A_SELECT_LIST="Requires the value entered be one of the options in an element of type="list": that is, that the element is a select list."
diff --git a/admin/layouts/repeatablejcb.php b/admin/layouts/repeatablejcb.php
new file mode 100644
index 000000000..53d215068
--- /dev/null
+++ b/admin/layouts/repeatablejcb.php
@@ -0,0 +1,95 @@
+
+ * @github Joomla Component Builder
+ * @copyright Copyright (C) 2015 - 2020 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_BASE') or die('Restricted access');
+
+/**
+ * Make thing clear
+ *
+ * @var JForm $tmpl The Empty form for template
+ * @var array $forms Array of JForm instances for render the rows
+ * @var bool $multiple The multiple state for the form field
+ * @var int $min Count of minimum repeating in multiple mode
+ * @var int $max Count of maximum repeating in multiple mode
+ * @var string $fieldname The field name
+ * @var string $control The forms control
+ * @var string $label The field label
+ * @var string $description The field description
+ * @var array $buttons Array of the buttons that will be rendered
+ * @var bool $groupByFieldset Whether group the subform fields by it`s fieldset
+ */
+extract($displayData);
+
+// Add script
+JHtml::_('jquery.ui', array('core', 'sortable'));
+JHtml::_('script', 'system/subform-repeatable.js', array('version' => 'auto', 'relative' => true));
+
+$sublayout = 'sectionjcb';
+
+?>
+
diff --git a/admin/layouts/sectionjcb.php b/admin/layouts/sectionjcb.php
new file mode 100644
index 000000000..bbcc14347
--- /dev/null
+++ b/admin/layouts/sectionjcb.php
@@ -0,0 +1,62 @@
+
+ * @github Joomla Component Builder
+ * @copyright Copyright (C) 2015 - 2020 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_BASE') or die('Restricted access');
+
+/**
+ * Make thing clear
+ *
+ * @var JForm $form The form instance for render the section
+ * @var string $basegroup The base group name
+ * @var string $group Current group name
+ * @var array $buttons Array of the buttons that will be rendered
+ */
+extract($displayData);
+
+?>
+
diff --git a/admin/models/fields/adminlistvieworderfields.php b/admin/models/fields/adminlistvieworderfields.php
new file mode 100644
index 000000000..710ddf443
--- /dev/null
+++ b/admin/models/fields/adminlistvieworderfields.php
@@ -0,0 +1,99 @@
+
+ * @github Joomla Component Builder
+ * @copyright Copyright (C) 2015 - 2020 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');
+
+/**
+ * Adminlistvieworderfields Form Field class for the Componentbuilder component
+ */
+class JFormFieldAdminlistvieworderfields extends JFormFieldList
+{
+ /**
+ * The adminlistvieworderfields field type.
+ *
+ * @var string
+ */
+ public $type = 'adminlistvieworderfields';
+
+ /**
+ * Method to get a list of options for a list input.
+ *
+ * @return array An array of JHtml options.
+ */
+ protected function getOptions()
+ {
+ // load the db object
+ $db = JFactory::getDBO();
+ // get the input from url
+ $jinput = JFactory::getApplication()->input;
+ // get the id
+ $adminView = $jinput->getInt('id', 0);
+ // check if we have an admin view
+ if (is_numeric($adminView) && $adminView >= 1)
+ {
+ // get all the fields linked to the admin view
+ if ($addFields = ComponentbuilderHelper::getVar('admin_fields', (int) $adminView, 'admin_view', 'addfields'))
+ {
+ if (ComponentbuilderHelper::checkJson($addFields))
+ {
+ $addFields = json_decode($addFields, true);
+ if (ComponentbuilderHelper::checkArray($addFields))
+ {
+ foreach($addFields as $addField)
+ {
+ // admin list view and ordering
+ if (isset($addField['field']) && isset($addField['list']) && ($addField['list'] == 1 || $addField['list'] == 3)
+ && isset($addField['sort']) && $addField['sort'])
+ {
+ $fieldIds[] = (int) $addField['field'];
+ }
+ }
+ }
+ }
+ }
+ // filter by fields linked
+ if (ComponentbuilderHelper::checkArray($fieldIds))
+ {
+ $query = $db->getQuery(true);
+ $query->select($db->quoteName(array('a.id','a.name', 'a.xml', 'b.name'),array('id','name', 'xml', 'type')));
+ $query->from($db->quoteName('#__componentbuilder_field', 'a'));
+ $query->join('LEFT', '#__componentbuilder_fieldtype AS b ON b.id = a.fieldtype');
+ $query->where($db->quoteName('a.published') . ' >= 1');
+ // only load these fields
+ $query->where($db->quoteName('a.id') . ' IN (' . implode(',', $fieldIds) . ')');
+ $query->order('a.name ASC');
+ $db->setQuery((string)$query);
+ $items = $db->loadObjectList();
+ $options = array();
+ if ($items)
+ {
+ $options[] = JHtml::_('select.option', '', JText::_('PLG_CONTENT_COMPONENTBUILDERFIELDORDERINGTABS_SELECT_AN_OPTION'));
+ $options[] = JHtml::_('select.option', -1, JText::_('PLG_CONTENT_COMPONENTBUILDERFIELDORDERINGTABS_ID'). ' [ id - text ]');
+ $options[] = JHtml::_('select.option', -2, JText::_('PLG_CONTENT_COMPONENTBUILDERFIELDORDERINGTABS_ORDERING'). ' [ ordering - number ]');
+ $options[] = JHtml::_('select.option', -3, JText::_('PLG_CONTENT_COMPONENTBUILDERFIELDORDERINGTABS_STATUS'). ' [ published - list ]');
+ foreach($items as $item)
+ {
+ // get the field name (TODO this could slow down the system so we will need to improve on this)
+ $field_name = ComponentbuilderHelper::safeFieldName(ComponentbuilderHelper::getBetween(json_decode($item->xml),'name="','"'));
+ $options[] = JHtml::_('select.option', $item->id, $item->name . ' [ ' . $field_name . ' - ' . $item->type . ' ]');
+ }
+ }
+ return $options;
+ }
+ }
+ return false;
+ }
+}
diff --git a/admin/models/fields/linkedviewsorderfields.php b/admin/models/fields/linkedviewsorderfields.php
new file mode 100644
index 000000000..d9194bb41
--- /dev/null
+++ b/admin/models/fields/linkedviewsorderfields.php
@@ -0,0 +1,99 @@
+
+ * @github Joomla Component Builder
+ * @copyright Copyright (C) 2015 - 2020 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');
+
+/**
+ * Linkedviewsorderfields Form Field class for the Componentbuilder component
+ */
+class JFormFieldLinkedviewsorderfields extends JFormFieldList
+{
+ /**
+ * The linkedviewsorderfields field type.
+ *
+ * @var string
+ */
+ public $type = 'linkedviewsorderfields';
+
+ /**
+ * Method to get a list of options for a list input.
+ *
+ * @return array An array of JHtml options.
+ */
+ protected function getOptions()
+ {
+ // load the db object
+ $db = JFactory::getDBO();
+ // get the input from url
+ $jinput = JFactory::getApplication()->input;
+ // get the id
+ $adminView = $jinput->getInt('id', 0);
+ // check if we have an admin view
+ if (is_numeric($adminView) && $adminView >= 1)
+ {
+ // get all the fields linked to the admin view
+ if ($addFields = ComponentbuilderHelper::getVar('admin_fields', (int) $adminView, 'admin_view', 'addfields'))
+ {
+ if (ComponentbuilderHelper::checkJson($addFields))
+ {
+ $addFields = json_decode($addFields, true);
+ if (ComponentbuilderHelper::checkArray($addFields))
+ {
+ foreach($addFields as $addField)
+ {
+ // linked list views and ordering
+ if (isset($addField['field']) && isset($addField['list']) && ($addField['list'] == 1 || $addField['list'] == 4)
+ && isset($addField['sort']) && $addField['sort'])
+ {
+ $fieldIds[] = (int) $addField['field'];
+ }
+ }
+ }
+ }
+ }
+ // filter by fields linked
+ if (ComponentbuilderHelper::checkArray($fieldIds))
+ {
+ $query = $db->getQuery(true);
+ $query->select($db->quoteName(array('a.id','a.name', 'a.xml', 'b.name'),array('id','name', 'xml', 'type')));
+ $query->from($db->quoteName('#__componentbuilder_field', 'a'));
+ $query->join('LEFT', '#__componentbuilder_fieldtype AS b ON b.id = a.fieldtype');
+ $query->where($db->quoteName('a.published') . ' >= 1');
+ // only load these fields
+ $query->where($db->quoteName('a.id') . ' IN (' . implode(',', $fieldIds) . ')');
+ $query->order('a.name ASC');
+ $db->setQuery((string)$query);
+ $items = $db->loadObjectList();
+ $options = array();
+ if ($items)
+ {
+ $options[] = JHtml::_('select.option', '', JText::_('PLG_CONTENT_COMPONENTBUILDERFIELDORDERINGTABS_SELECT_AN_OPTION'));
+ $options[] = JHtml::_('select.option', -1, JText::_('PLG_CONTENT_COMPONENTBUILDERFIELDORDERINGTABS_ID'). ' [ id - text ]');
+ $options[] = JHtml::_('select.option', -2, JText::_('PLG_CONTENT_COMPONENTBUILDERFIELDORDERINGTABS_ORDERING'). ' [ ordering - number ]');
+ $options[] = JHtml::_('select.option', -3, JText::_('PLG_CONTENT_COMPONENTBUILDERFIELDORDERINGTABS_STATUS'). ' [ published - list ]');
+ foreach($items as $item)
+ {
+ // get the field name (TODO this could slow down the system so we will need to improve on this)
+ $field_name = ComponentbuilderHelper::safeFieldName(ComponentbuilderHelper::getBetween(json_decode($item->xml),'name="','"'));
+ $options[] = JHtml::_('select.option', $item->id, $item->name . ' [ ' . $field_name . ' - ' . $item->type . ' ]');
+ }
+ }
+ return $options;
+ }
+ }
+ return false;
+ }
+}
diff --git a/admin/models/forms/admin_custom_tabs.xml b/admin/models/forms/admin_custom_tabs.xml
index 786c03827..8153f3f82 100644
--- a/admin/models/forms/admin_custom_tabs.xml
+++ b/admin/models/forms/admin_custom_tabs.xml
@@ -103,7 +103,7 @@
type="subform"
name="tabs"
label="COM_COMPONENTBUILDER_ADMIN_CUSTOM_TABS_TABS_LABEL"
- layout="joomla.form.field.subform.repeatable-table"
+ layout="joomla.form.field.subform.repeatable"
multiple="true"
buttons="add,remove,move"
description="COM_COMPONENTBUILDER_ADMIN_CUSTOM_TABS_TABS_DESCRIPTION"
diff --git a/admin/models/forms/admin_fields.xml b/admin/models/forms/admin_fields.xml
index b94b9b6cf..29917814f 100644
--- a/admin/models/forms/admin_fields.xml
+++ b/admin/models/forms/admin_fields.xml
@@ -103,7 +103,7 @@
type="subform"
name="addfields"
label="COM_COMPONENTBUILDER_ADMIN_FIELDS_ADDFIELDS_LABEL"
- layout="joomla.form.field.subform.repeatable-table"
+ layout="repeatablejcb"
multiple="true"
description="COM_COMPONENTBUILDER_ADMIN_FIELDS_ADDFIELDS_DESCRIPTION"
default=""
diff --git a/admin/models/forms/admin_fields_conditions.xml b/admin/models/forms/admin_fields_conditions.xml
index ec148c220..1423d0631 100644
--- a/admin/models/forms/admin_fields_conditions.xml
+++ b/admin/models/forms/admin_fields_conditions.xml
@@ -103,7 +103,7 @@
type="subform"
name="addconditions"
label="COM_COMPONENTBUILDER_ADMIN_FIELDS_CONDITIONS_ADDCONDITIONS_LABEL"
- layout="joomla.form.field.subform.repeatable"
+ layout="repeatablejcb"
multiple="true"
description="COM_COMPONENTBUILDER_ADMIN_FIELDS_CONDITIONS_ADDCONDITIONS_DESCRIPTION"
default=""
diff --git a/admin/models/forms/admin_fields_relations.xml b/admin/models/forms/admin_fields_relations.xml
index 46d660b6c..6b243214e 100644
--- a/admin/models/forms/admin_fields_relations.xml
+++ b/admin/models/forms/admin_fields_relations.xml
@@ -103,7 +103,7 @@
type="subform"
name="addrelations"
label="COM_COMPONENTBUILDER_ADMIN_FIELDS_RELATIONS_ADDRELATIONS_LABEL"
- layout="joomla.form.field.subform.repeatable"
+ layout="repeatablejcb"
multiple="true"
description="COM_COMPONENTBUILDER_ADMIN_FIELDS_RELATIONS_ADDRELATIONS_DESCRIPTION"
default=""
diff --git a/admin/models/forms/component_admin_views.xml b/admin/models/forms/component_admin_views.xml
index 7236ff821..a7c6fd334 100644
--- a/admin/models/forms/component_admin_views.xml
+++ b/admin/models/forms/component_admin_views.xml
@@ -103,7 +103,7 @@
type="subform"
name="addadmin_views"
label="COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ADDADMIN_VIEWS_LABEL"
- layout="joomla.form.field.subform.repeatable-table"
+ layout="repeatablejcb"
multiple="true"
description="COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ADDADMIN_VIEWS_DESCRIPTION"
default="[{"submenu":"1","checkin":"1","history":"1","access":"1","port":"1"}]"
diff --git a/admin/models/forms/component_custom_admin_views.xml b/admin/models/forms/component_custom_admin_views.xml
index d4bb68794..720ad7f95 100644
--- a/admin/models/forms/component_custom_admin_views.xml
+++ b/admin/models/forms/component_custom_admin_views.xml
@@ -103,7 +103,7 @@
type="subform"
name="addcustom_admin_views"
label="COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ADDCUSTOM_ADMIN_VIEWS_LABEL"
- layout="joomla.form.field.subform.repeatable-table"
+ layout="repeatablejcb"
multiple="true"
default=""
icon="list">
diff --git a/admin/models/forms/component_site_views.xml b/admin/models/forms/component_site_views.xml
index 69519b668..86989bcc6 100644
--- a/admin/models/forms/component_site_views.xml
+++ b/admin/models/forms/component_site_views.xml
@@ -103,7 +103,7 @@
type="subform"
name="addsite_views"
label="COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_ADDSITE_VIEWS_LABEL"
- layout="joomla.form.field.subform.repeatable-table"
+ layout="repeatablejcb"
multiple="true"
description="COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_ADDSITE_VIEWS_DESCRIPTION"
default=""
diff --git a/admin/models/import_language_translations.php b/admin/models/import_language_translations.php
index 9d2745852..a98a7e9e5 100644
--- a/admin/models/import_language_translations.php
+++ b/admin/models/import_language_translations.php
@@ -419,8 +419,8 @@ class ComponentbuilderModelImport_language_translations extends JModelLegacy
{
if (ComponentbuilderHelper::checkArray($target_headers))
{
- // make sure the file is loaded
- JLoader::import('PHPExcel', JPATH_COMPONENT_ADMINISTRATOR . '/helpers');
+ // make sure the file is loaded
+ ComponentbuilderHelper::composerAutoload('phpspreadsheet');
$jinput = JFactory::getApplication()->input;
foreach($target_headers as $header)
{
@@ -429,14 +429,14 @@ class ComponentbuilderModelImport_language_translations extends JModelLegacy
// set the data
if(isset($package['dir']))
{
- $inputFileType = PHPExcel_IOFactory::identify($package['dir']);
- $excelReader = PHPExcel_IOFactory::createReader($inputFileType);
+ $inputFileType = IOFactory::identify($package['dir']);
+ $excelReader = IOFactory::createReader($inputFileType);
$excelReader->setReadDataOnly(true);
$excelObj = $excelReader->load($package['dir']);
$data['array'] = $excelObj->getActiveSheet()->toArray(null, true,true,true);
$excelObj->disconnectWorksheets();
unset($excelObj);
- return $this->save($data,$table);
+ return $this->save($data, $table);
}
}
return false;
diff --git a/admin/sql/install.mysql.utf8.sql b/admin/sql/install.mysql.utf8.sql
index 2feb16036..c4681421c 100644
--- a/admin/sql/install.mysql.utf8.sql
+++ b/admin/sql/install.mysql.utf8.sql
@@ -2139,7 +2139,7 @@ INSERT INTO `#__componentbuilder_fieldtype` (`id`, `catid`, `description`, `name
(8, '', 'The Editor field type provides a WYSIWYG editor.', 'Editor', '{\"properties0\":{\"name\":\"type\",\"example\":\"editor\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be editor.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mytextblock\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Test Field\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"Some text\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties4\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the label.\"},\"properties5\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties6\":{\"name\":\"width\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) defines the width (in pixels) of the wysiwyg editor and defaults to 100%.\"},\"properties7\":{\"name\":\"height\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) defines the height (in pixels) of the wysiwyg editor and defaults to 250px.\"},\"properties8\":{\"name\":\"cols\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) defines the width of the editor (in columns).\"},\"properties9\":{\"name\":\"rows\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) defines the height of the editor (in rows).\"},\"properties10\":{\"name\":\"buttons\",\"example\":\"no\",\"adjustable\":\"1\",\"description\":\"(optional) can be an array of plugin buttons to be excluded or set to false. The default editors-xtd are: article, image, pagebreak and readmore.\"},\"properties11\":{\"name\":\"syntax\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) can be used to set the code syntax matching for this field.\"},\"properties12\":{\"name\":\"hide\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) array of plugin buttons to be hidden. eg... set buttons=\\\"true\\\" hide=\\\"readmore,pagebreak\\\"\"},\"properties13\":{\"name\":\"editor\",\"example\":\"codemirror|none\",\"adjustable\":\"1\",\"description\":\"specifies the editor to be used and can include two options (editor=\\\"desired|alternative\\\")\"},\"properties14\":{\"name\":\"filter\",\"example\":\"safehtml\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties15\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties16\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties17\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'provides an editor area field.', '', 1, 11, '', '', '51f288d2-6eaa-42bc-a182-a6f69b3032b8'),
(9, '', 'The hidden form field type provides a hidden field for saving a field whose value cannot be altered directly by a user in the Administrator (it can be altered in code or by editing the params.ini file). If the parameter has a saved value this is entered i', 'Hidden', '{\"properties0\":{\"name\":\"type\",\"example\":\"hidden\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be hidden.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mysecretvariable\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"default\",\"example\":\"1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the data which needs to be collected.\"},\"properties5\":{\"name\":\"filter\",\"example\":\"STRING\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties4\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"}}', 'provides a hidden field for saving a form field whose value cannot be altered directly by a user.', '', 1, 2, '', '', '82f1b5ca-bb9b-44d7-9a7a-9a03fb2a31dd'),
(10, '', 'The integer form field type provides a select box with a range of integer values. If the field has a value saved, this value is displayed when the page is first loaded. If not, the default value (if any) is selected.', 'Integer', '{\"properties0\":{\"name\":\"type\",\"example\":\"integer\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be integer.\"},\"properties1\":{\"name\":\"name\",\"example\":\"size\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Size\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default value.\"},\"properties4\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties5\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties6\":{\"name\":\"class\",\"example\":\"text_area\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties7\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties8\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties9\":{\"name\":\"first\",\"example\":\"1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) this value is the lowest on the list.\"},\"properties10\":{\"name\":\"last\",\"example\":\"20\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) this value is the highest on the list.\"},\"properties11\":{\"name\":\"step\",\"example\":\"5\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) each option will be the previous option incremented by this integer, starting with the first value until the last value is reached.\"},\"properties12\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties13\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'provides a drop down list of integers between a minimum and maximum.', '', 1, 6, '', '', 'fdbb50ea-35d2-45b2-a0bc-076fdf1544b8'),
-(11, '', 'The list form field type provides a drop down list or a list box of custom-defined entries. If the field has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.', 'List', '{\"properties0\":{\"name\":\"type\",\"example\":\"list\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be list.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mylist\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select an option\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties5\":{\"name\":\"class\",\"example\":\"list_class\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties6\":{\"name\":\"multiple\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) is whether multiple items can be selected at the same time (true or false).\"},\"properties7\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) filter options\"},\"properties8\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties9\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties10\":{\"name\":\"option\",\"example\":\"0|Option 1,1|Option 2,2|Option 1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties11\":{\"name\":\"useglobal\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) if set to true, it will show the value that is set in the global configuration if found in the database.\"},\"properties12\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) is the default list item value.\"},\"properties13\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties14\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'provides a drop down list of custom-defined entries.', '', 1, 9, '', '', 'a51dfc06-1b9b-4d0a-86ba-f705bcd40d4d'),
+(11, '', 'The list form field type provides a drop down list or a list box of custom-defined entries. If the field has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.', 'List', '{\"properties0\":{\"name\":\"type\",\"example\":\"list\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be list.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mylist\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select an option\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties5\":{\"name\":\"class\",\"example\":\"list_class\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties6\":{\"name\":\"multiple\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) is whether multiple items can be selected at the same time (true or false).\"},\"properties7\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) filter options\"},\"properties8\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties9\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties10\":{\"name\":\"option\",\"example\":\"0|Option 1,1|Option 2,2|Option 1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties11\":{\"name\":\"useglobal\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) if set to true, it will show the value that is set in the global configuration if found in the database.\"},\"properties12\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) is the default list item value.\"},\"properties13\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties14\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'provides a drop down list of custom-defined entries.', '', 1, 10, '', '', 'a51dfc06-1b9b-4d0a-86ba-f705bcd40d4d'),
(12, '', 'The media form field type provides modal access to the media manager for the choice of an image. Users with appropriate permissions will be able to upload files.', 'Media', '{\"properties0\":{\"name\":\"type\",\"example\":\"media\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be media.\"},\"properties1\":{\"name\":\"name\",\"example\":\"media\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Media\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"directory\",\"example\":\"\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the directory from which the user will be able to choose a file. This attribute should be relative to the top level \\/images\\/ folder.\"},\"properties5\":{\"name\":\"preview\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) shows or hides the preview of the currently chosen image. (\\\"true\\\": Show always, \\\"tooltip\\\": Show as tooltip, \\\"false\\\": Show never) (since Joomla! 2.5.5)\"},\"properties6\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'provides modal access to the media manager for insertion of images with upload for users with appropriate permissions.', '', 1, 4, '', '', '69957007-e3d4-4976-a32b-611d02dbad71'),
(13, '', 'Provides a meter to show value in a range, updated with jQuery if needed or simply a fixed value.', 'Meter', '{\"properties0\":{\"name\":\"type\",\"example\":\"meter\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be meter.\"},\"properties1\":{\"name\":\"name\",\"example\":\"meter\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Meter\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"width\",\"example\":\"330px\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of meter box\"},\"properties4\":{\"name\":\"color\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The background color\"},\"properties5\":{\"name\":\"default\",\"example\":\"9\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties6\":{\"name\":\"animated\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(optional) lets the bar have strips\"},\"properties7\":{\"name\":\"active\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(optional) lets the strips on the bar move\"},\"properties8\":{\"name\":\"description\",\"example\":\"Enter some description\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties9\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties10\":{\"name\":\"min\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(mandatory) this value is the min on the meter.\"},\"properties11\":{\"name\":\"max\",\"example\":\"20\",\"adjustable\":\"1\",\"description\":\"(mandatory) this value is the max on meter.\"},\"properties12\":{\"name\":\"step\",\"example\":\"1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) each option will be the previous option incremented by this integer, starting with the first value until the last value is reached.\"},\"properties13\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Provides a meter to show value in a range.', '', 1, 3, '', '', '81668284-e572-4e17-927b-ba697fc64bd0'),
(14, '', 'This form field makes it possible to create titles, texts, descriptions and even alert boxes. It also allows you to bring order in the settings for extensions, by separating them with useful titles. Or adding descriptions for certain settings (without having to rely on the tooltips). Or adding any other text you want.', 'Note', '{\"properties0\":{\"name\":\"type\",\"example\":\"note\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be note\"},\"properties1\":{\"name\":\"name\",\"example\":\"note_one\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"The notice\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory or optional if using description) (translatable) is the descriptive title of the note \"},\"properties3\":{\"name\":\"description\",\"example\":\"The notice description\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional if using label)(translatable) the description\\/text of the note \"},\"properties4\":{\"name\":\"heading\",\"example\":\"h4\",\"adjustable\":\"1\",\"description\":\"(optional) the type of heading element to use for the label (default: h4)\"},\"properties5\":{\"name\":\"class\",\"example\":\"alert\",\"adjustable\":\"1\",\"description\":\"(optional) a class name (or class names), like these examples ( alert, alert alert-info, alert alert-success, alert alert-error )\"},\"properties6\":{\"name\":\"close\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) a value of \'true\' (for alerts) or the value for the data-dismiss of the bootstrap close icon\"},\"properties7\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'supports a one line text field.', '', 1, 5, '', '', 'f9ecacd0-8481-4157-8c71-d7aaefc2b7c3'),
diff --git a/admin/views/admin_custom_tabs/view.html.php b/admin/views/admin_custom_tabs/view.html.php
index a5c26fcfb..ecb664470 100644
--- a/admin/views/admin_custom_tabs/view.html.php
+++ b/admin/views/admin_custom_tabs/view.html.php
@@ -189,7 +189,13 @@ class ComponentbuilderViewAdmin_custom_tabs extends JViewLegacy
$this->document->setTitle(JText::_($isNew ? 'COM_COMPONENTBUILDER_ADMIN_CUSTOM_TABS_NEW' : 'COM_COMPONENTBUILDER_ADMIN_CUSTOM_TABS_EDIT'));
$this->document->addStyleSheet(JURI::root() . "administrator/components/com_componentbuilder/assets/css/admin_custom_tabs.css", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
- $this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/admin_custom_tabs/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+ $this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/admin_custom_tabs/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
+ // add the Uikit v2 style sheets
+ $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
+ // add Uikit v2 JavaScripts
+ $this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
JText::script('view not acceptable. Error');
}
}
diff --git a/admin/views/admin_fields/view.html.php b/admin/views/admin_fields/view.html.php
index 2782639a6..a8c811eca 100644
--- a/admin/views/admin_fields/view.html.php
+++ b/admin/views/admin_fields/view.html.php
@@ -191,12 +191,15 @@ class ComponentbuilderViewAdmin_fields extends JViewLegacy
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
$this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/admin_fields/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
// add the Uikit v2 style sheets
$this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
- $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
-
// add Uikit v2 JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
+ // add the Uikit v2 extra style sheets
+ $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
+ // add Uikit v2 extra JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/lightbox.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/notify.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
JText::script('COM_COMPONENTBUILDER_THE_BNONE_DBB_OPTION_WILL_REMOVE_THIS_FIELD_FROM_BEING_SAVED_IN_THE_DATABASE');
diff --git a/admin/views/admin_fields_conditions/view.html.php b/admin/views/admin_fields_conditions/view.html.php
index 6edc2d910..73eceb8cf 100644
--- a/admin/views/admin_fields_conditions/view.html.php
+++ b/admin/views/admin_fields_conditions/view.html.php
@@ -191,7 +191,13 @@ class ComponentbuilderViewAdmin_fields_conditions extends JViewLegacy
// Add Ajax Token
$this->document->addScriptDeclaration("var token = '".JSession::getFormToken()."';");
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
- $this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/admin_fields_conditions/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+ $this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/admin_fields_conditions/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
+ // add the Uikit v2 style sheets
+ $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
+ // add Uikit v2 JavaScripts
+ $this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
JText::script('view not acceptable. Error');
}
}
diff --git a/admin/views/admin_fields_relations/view.html.php b/admin/views/admin_fields_relations/view.html.php
index d6750ca21..4c387ddb2 100644
--- a/admin/views/admin_fields_relations/view.html.php
+++ b/admin/views/admin_fields_relations/view.html.php
@@ -192,6 +192,12 @@ class ComponentbuilderViewAdmin_fields_relations extends JViewLegacy
$this->document->addScriptDeclaration("var token = '".JSession::getFormToken()."';");
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
$this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/admin_fields_relations/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
+ // add the Uikit v2 style sheets
+ $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
+ // add Uikit v2 JavaScripts
+ $this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
// add var key
$this->document->addScriptDeclaration("var vastDevMod = '" . $this->get('VDM') . "';");
// add return_here
diff --git a/admin/views/admin_view/view.html.php b/admin/views/admin_view/view.html.php
index 7f39b3ec9..92aca99af 100644
--- a/admin/views/admin_view/view.html.php
+++ b/admin/views/admin_view/view.html.php
@@ -193,12 +193,15 @@ class ComponentbuilderViewAdmin_view extends JViewLegacy
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
$this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/admin_view/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
// add the Uikit v2 style sheets
$this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
- $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
-
// add Uikit v2 JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
+ // add the Uikit v2 extra style sheets
+ $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
+ // add Uikit v2 extra JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/lightbox.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/notify.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
// add var key
diff --git a/admin/views/class_extends/view.html.php b/admin/views/class_extends/view.html.php
index 7e2f938fc..c758cac0b 100644
--- a/admin/views/class_extends/view.html.php
+++ b/admin/views/class_extends/view.html.php
@@ -193,12 +193,15 @@ class ComponentbuilderViewClass_extends extends JViewLegacy
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
$this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/class_extends/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
// add the Uikit v2 style sheets
$this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
- $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
-
// add Uikit v2 JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
+ // add the Uikit v2 extra style sheets
+ $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
+ // add Uikit v2 extra JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/lightbox.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/notify.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
// add var key
diff --git a/admin/views/class_method/view.html.php b/admin/views/class_method/view.html.php
index 3d70d2a97..bef921b04 100644
--- a/admin/views/class_method/view.html.php
+++ b/admin/views/class_method/view.html.php
@@ -193,12 +193,15 @@ class ComponentbuilderViewClass_method extends JViewLegacy
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
$this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/class_method/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
// add the Uikit v2 style sheets
$this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
- $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
-
// add Uikit v2 JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
+ // add the Uikit v2 extra style sheets
+ $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
+ // add Uikit v2 extra JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/lightbox.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/notify.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
// add var key
diff --git a/admin/views/class_property/view.html.php b/admin/views/class_property/view.html.php
index 90f99f6d5..6db978037 100644
--- a/admin/views/class_property/view.html.php
+++ b/admin/views/class_property/view.html.php
@@ -193,12 +193,15 @@ class ComponentbuilderViewClass_property extends JViewLegacy
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
$this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/class_property/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
// add the Uikit v2 style sheets
$this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
- $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
-
// add Uikit v2 JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
+ // add the Uikit v2 extra style sheets
+ $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
+ // add Uikit v2 extra JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/lightbox.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/notify.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
// add var key
diff --git a/admin/views/compiler/view.html.php b/admin/views/compiler/view.html.php
index 4d726a446..12c562fc4 100644
--- a/admin/views/compiler/view.html.php
+++ b/admin/views/compiler/view.html.php
@@ -59,6 +59,10 @@ class ComponentbuilderViewCompiler extends JViewLegacy
parent::display($tpl);
}
+ // These are subform layouts used in JCB
+ // JLayoutHelper::render('sectionjcb', [?]); // added to ensure the layout is loaded
+ // JLayoutHelper::render('repeatablejcb', [?]); // added to ensure the layout is loaded
+
public function setForm()
{
if(ComponentbuilderHelper::checkArray($this->Components))
@@ -192,8 +196,30 @@ class ComponentbuilderViewCompiler extends JViewLegacy
$this->document->addScript(JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit'.$size.'.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
}
+ // Load the script to find all uikit components needed.
+ if ($uikit != 2)
+ {
+ // Set the default uikit components in this view.
+ $uikitComp = array();
+ $uikitComp[] = 'data-uk-grid';
+
+ // Get field uikit components needed in this view.
+ $uikitFieldComp = $this->get('UikitComp');
+ if (isset($uikitFieldComp) && ComponentbuilderHelper::checkArray($uikitFieldComp))
+ {
+ if (isset($uikitComp) && ComponentbuilderHelper::checkArray($uikitComp))
+ {
+ $uikitComp = array_merge($uikitComp, $uikitFieldComp);
+ $uikitComp = array_unique($uikitComp);
+ }
+ else
+ {
+ $uikitComp = $uikitFieldComp;
+ }
+ }
+ }
+
// Load the needed uikit components in this view.
- $uikitComp = $this->get('UikitComp');
if ($uikit != 2 && isset($uikitComp) && ComponentbuilderHelper::checkArray($uikitComp))
{
// load just in case.
diff --git a/admin/views/component_admin_views/view.html.php b/admin/views/component_admin_views/view.html.php
index d7e89df0b..f8f62b6a2 100644
--- a/admin/views/component_admin_views/view.html.php
+++ b/admin/views/component_admin_views/view.html.php
@@ -189,7 +189,13 @@ class ComponentbuilderViewComponent_admin_views extends JViewLegacy
$this->document->setTitle(JText::_($isNew ? 'COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_NEW' : 'COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_EDIT'));
$this->document->addStyleSheet(JURI::root() . "administrator/components/com_componentbuilder/assets/css/component_admin_views.css", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
- $this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/component_admin_views/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+ $this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/component_admin_views/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
+ // add the Uikit v2 style sheets
+ $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
+ // add Uikit v2 JavaScripts
+ $this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
JText::script('view not acceptable. Error');
}
}
diff --git a/admin/views/component_custom_admin_menus/view.html.php b/admin/views/component_custom_admin_menus/view.html.php
index 2df89ad51..72df3bdad 100644
--- a/admin/views/component_custom_admin_menus/view.html.php
+++ b/admin/views/component_custom_admin_menus/view.html.php
@@ -189,7 +189,13 @@ class ComponentbuilderViewComponent_custom_admin_menus extends JViewLegacy
$this->document->setTitle(JText::_($isNew ? 'COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_NEW' : 'COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_EDIT'));
$this->document->addStyleSheet(JURI::root() . "administrator/components/com_componentbuilder/assets/css/component_custom_admin_menus.css", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
- $this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/component_custom_admin_menus/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+ $this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/component_custom_admin_menus/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
+ // add the Uikit v2 style sheets
+ $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
+ // add Uikit v2 JavaScripts
+ $this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
JText::script('view not acceptable. Error');
}
}
diff --git a/admin/views/component_custom_admin_views/view.html.php b/admin/views/component_custom_admin_views/view.html.php
index 7a9c3063a..aa193a104 100644
--- a/admin/views/component_custom_admin_views/view.html.php
+++ b/admin/views/component_custom_admin_views/view.html.php
@@ -189,7 +189,13 @@ class ComponentbuilderViewComponent_custom_admin_views extends JViewLegacy
$this->document->setTitle(JText::_($isNew ? 'COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_NEW' : 'COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_EDIT'));
$this->document->addStyleSheet(JURI::root() . "administrator/components/com_componentbuilder/assets/css/component_custom_admin_views.css", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
- $this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/component_custom_admin_views/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+ $this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/component_custom_admin_views/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
+ // add the Uikit v2 style sheets
+ $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
+ // add Uikit v2 JavaScripts
+ $this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
JText::script('view not acceptable. Error');
}
}
diff --git a/admin/views/component_dashboard/view.html.php b/admin/views/component_dashboard/view.html.php
index dc9e2d092..c81cf8f83 100644
--- a/admin/views/component_dashboard/view.html.php
+++ b/admin/views/component_dashboard/view.html.php
@@ -193,12 +193,15 @@ class ComponentbuilderViewComponent_dashboard extends JViewLegacy
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
$this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/component_dashboard/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
// add the Uikit v2 style sheets
$this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
- $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
-
// add Uikit v2 JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
+ // add the Uikit v2 extra style sheets
+ $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
+ // add Uikit v2 extra JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/lightbox.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/notify.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
// add var key
diff --git a/admin/views/component_site_views/view.html.php b/admin/views/component_site_views/view.html.php
index ff1c47e82..66f45e8a0 100644
--- a/admin/views/component_site_views/view.html.php
+++ b/admin/views/component_site_views/view.html.php
@@ -189,7 +189,13 @@ class ComponentbuilderViewComponent_site_views extends JViewLegacy
$this->document->setTitle(JText::_($isNew ? 'COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_NEW' : 'COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_EDIT'));
$this->document->addStyleSheet(JURI::root() . "administrator/components/com_componentbuilder/assets/css/component_site_views.css", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
- $this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/component_site_views/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+ $this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/component_site_views/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
+ // add the Uikit v2 style sheets
+ $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
+ // add Uikit v2 JavaScripts
+ $this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
JText::script('view not acceptable. Error');
}
}
diff --git a/admin/views/custom_admin_view/view.html.php b/admin/views/custom_admin_view/view.html.php
index 23b625269..0348ac11c 100644
--- a/admin/views/custom_admin_view/view.html.php
+++ b/admin/views/custom_admin_view/view.html.php
@@ -193,12 +193,15 @@ class ComponentbuilderViewCustom_admin_view extends JViewLegacy
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
$this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/custom_admin_view/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
// add the Uikit v2 style sheets
$this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
- $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
-
// add Uikit v2 JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
+ // add the Uikit v2 extra style sheets
+ $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
+ // add Uikit v2 extra JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/lightbox.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/notify.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
// add var key
diff --git a/admin/views/custom_code/view.html.php b/admin/views/custom_code/view.html.php
index 78d2be551..9603ee62b 100644
--- a/admin/views/custom_code/view.html.php
+++ b/admin/views/custom_code/view.html.php
@@ -193,12 +193,15 @@ class ComponentbuilderViewCustom_code extends JViewLegacy
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
$this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/custom_code/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
// add the Uikit v2 style sheets
$this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
- $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
-
// add Uikit v2 JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
+ // add the Uikit v2 extra style sheets
+ $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
+ // add Uikit v2 extra JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/lightbox.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/notify.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
// add var key
diff --git a/admin/views/dynamic_get/view.html.php b/admin/views/dynamic_get/view.html.php
index 8ae84b76f..eb7231da3 100644
--- a/admin/views/dynamic_get/view.html.php
+++ b/admin/views/dynamic_get/view.html.php
@@ -193,12 +193,15 @@ class ComponentbuilderViewDynamic_get extends JViewLegacy
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
$this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/dynamic_get/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
// add the Uikit v2 style sheets
$this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
- $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
-
// add Uikit v2 JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
+ // add the Uikit v2 extra style sheets
+ $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
+ // add Uikit v2 extra JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/lightbox.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/notify.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
// add var key
diff --git a/admin/views/field/view.html.php b/admin/views/field/view.html.php
index 859e5ea36..213bcb753 100644
--- a/admin/views/field/view.html.php
+++ b/admin/views/field/view.html.php
@@ -193,12 +193,15 @@ class ComponentbuilderViewField extends JViewLegacy
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
$this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/field/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
// add the Uikit v2 style sheets
$this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
- $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
-
// add Uikit v2 JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
+ // add the Uikit v2 extra style sheets
+ $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
+ // add Uikit v2 extra JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/lightbox.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/notify.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
// add var key
diff --git a/admin/views/import_joomla_components/view.html.php b/admin/views/import_joomla_components/view.html.php
index 4c8563b26..9efee96d0 100644
--- a/admin/views/import_joomla_components/view.html.php
+++ b/admin/views/import_joomla_components/view.html.php
@@ -156,12 +156,15 @@ class ComponentbuilderViewImport_joomla_components extends JViewLegacy
// add a token on the page for javascript
$this->document->addScriptDeclaration("var token = '".JSession::getFormToken()."';");
+
// add the Uikit v2 style sheets
$this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
- $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
-
// add Uikit v2 JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
+ // add the Uikit v2 extra style sheets
+ $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
+ // add Uikit v2 extra JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/lightbox.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/notify.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
}
diff --git a/admin/views/joomla_component/view.html.php b/admin/views/joomla_component/view.html.php
index b78328334..37640592a 100644
--- a/admin/views/joomla_component/view.html.php
+++ b/admin/views/joomla_component/view.html.php
@@ -193,12 +193,15 @@ class ComponentbuilderViewJoomla_component extends JViewLegacy
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
$this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/joomla_component/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
// add the Uikit v2 style sheets
$this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
- $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
-
// add Uikit v2 JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
+ // add the Uikit v2 extra style sheets
+ $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
+ // add Uikit v2 extra JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/lightbox.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/notify.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
// add var key
diff --git a/admin/views/joomla_module/view.html.php b/admin/views/joomla_module/view.html.php
index cf16779cc..dd1a2026b 100644
--- a/admin/views/joomla_module/view.html.php
+++ b/admin/views/joomla_module/view.html.php
@@ -193,12 +193,15 @@ class ComponentbuilderViewJoomla_module extends JViewLegacy
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
$this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/joomla_module/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
// add the Uikit v2 style sheets
$this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
- $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
-
// add Uikit v2 JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
+ // add the Uikit v2 extra style sheets
+ $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
+ // add Uikit v2 extra JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/lightbox.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/notify.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
// Add the JavaScript for JStore
diff --git a/admin/views/joomla_plugin/view.html.php b/admin/views/joomla_plugin/view.html.php
index 8b83c69bb..3a03654e5 100644
--- a/admin/views/joomla_plugin/view.html.php
+++ b/admin/views/joomla_plugin/view.html.php
@@ -193,12 +193,15 @@ class ComponentbuilderViewJoomla_plugin extends JViewLegacy
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
$this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/joomla_plugin/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
// add the Uikit v2 style sheets
$this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
- $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
-
// add Uikit v2 JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
+ // add the Uikit v2 extra style sheets
+ $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
+ // add Uikit v2 extra JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/lightbox.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/notify.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
// Add the JavaScript for JStore
diff --git a/admin/views/layout/view.html.php b/admin/views/layout/view.html.php
index c4dd87ee4..9d3be7ca6 100644
--- a/admin/views/layout/view.html.php
+++ b/admin/views/layout/view.html.php
@@ -193,12 +193,15 @@ class ComponentbuilderViewLayout extends JViewLegacy
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
$this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/layout/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
// add the Uikit v2 style sheets
$this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
- $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
-
// add Uikit v2 JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
+ // add the Uikit v2 extra style sheets
+ $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
+ // add Uikit v2 extra JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/lightbox.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/notify.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
// add var key
diff --git a/admin/views/library/view.html.php b/admin/views/library/view.html.php
index 1a4d9a567..d4734bbe2 100644
--- a/admin/views/library/view.html.php
+++ b/admin/views/library/view.html.php
@@ -193,12 +193,15 @@ class ComponentbuilderViewLibrary extends JViewLegacy
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
$this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/library/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
// add the Uikit v2 style sheets
$this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
- $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
-
// add Uikit v2 JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
+ // add the Uikit v2 extra style sheets
+ $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
+ // add Uikit v2 extra JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/lightbox.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/notify.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
// add var key
diff --git a/admin/views/placeholder/view.html.php b/admin/views/placeholder/view.html.php
index d6843ce01..20b1abd02 100644
--- a/admin/views/placeholder/view.html.php
+++ b/admin/views/placeholder/view.html.php
@@ -193,12 +193,15 @@ class ComponentbuilderViewPlaceholder extends JViewLegacy
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
$this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/placeholder/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
// add the Uikit v2 style sheets
$this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
- $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
-
// add Uikit v2 JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
+ // add the Uikit v2 extra style sheets
+ $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
+ // add Uikit v2 extra JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/lightbox.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/notify.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
// add some language strings
diff --git a/admin/views/site_view/view.html.php b/admin/views/site_view/view.html.php
index 72ef6159d..689722c6c 100644
--- a/admin/views/site_view/view.html.php
+++ b/admin/views/site_view/view.html.php
@@ -193,12 +193,15 @@ class ComponentbuilderViewSite_view extends JViewLegacy
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
$this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/site_view/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
// add the Uikit v2 style sheets
$this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
- $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
-
// add Uikit v2 JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
+ // add the Uikit v2 extra style sheets
+ $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
+ // add Uikit v2 extra JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/lightbox.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/notify.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
// add var key
diff --git a/admin/views/template/view.html.php b/admin/views/template/view.html.php
index 94df9687d..574a3a8af 100644
--- a/admin/views/template/view.html.php
+++ b/admin/views/template/view.html.php
@@ -193,12 +193,15 @@ class ComponentbuilderViewTemplate extends JViewLegacy
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
$this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/template/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
// add the Uikit v2 style sheets
$this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
- $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
-
// add Uikit v2 JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
+ // add the Uikit v2 extra style sheets
+ $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
+ // add Uikit v2 extra JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/lightbox.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/notify.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
// add var key
diff --git a/admin/views/validation_rule/view.html.php b/admin/views/validation_rule/view.html.php
index 9dc0aed8f..6a78444d6 100644
--- a/admin/views/validation_rule/view.html.php
+++ b/admin/views/validation_rule/view.html.php
@@ -193,12 +193,15 @@ class ComponentbuilderViewValidation_rule extends JViewLegacy
$this->document->addScript(JURI::root() . $this->script, (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
$this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/validation_rule/submitbutton.js", (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
// add the Uikit v2 style sheets
$this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/uikit.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
- $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
-
// add Uikit v2 JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/uikit.min.js' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript');
+
+ // add the Uikit v2 extra style sheets
+ $this->document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/css/components/notify.gradient.min.css' , (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/css');
+ // add Uikit v2 extra JavaScripts
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/lightbox.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
$this->document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit-v2/js/components/notify.min.js', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('version' => 'auto') : 'text/javascript', (ComponentbuilderHelper::jVersion()->isCompatible('3.8.0')) ? array('type' => 'text/javascript', 'async' => 'async') : true);
// add var key
diff --git a/componentbuilder.xml b/componentbuilder.xml
index 6e71467f8..f96061588 100644
--- a/componentbuilder.xml
+++ b/componentbuilder.xml
@@ -1,7 +1,7 @@
COM_COMPONENTBUILDER
- 25th May, 2020
+ 29th May, 2020
Llewellyn van der Merwe
llewellyn@joomlacomponentbuilder.com
http://www.joomlacomponentbuilder.com
diff --git a/site/helpers/category.php b/site/helpers/category.php
index ecead8458..6960fd59f 100644
--- a/site/helpers/category.php
+++ b/site/helpers/category.php
@@ -17,20 +17,20 @@ defined('_JEXEC') or die('Restricted access');
*/
//Insure this view category file is loaded.
-$classname = 'ComponentbuilderFieldsCategories';
+$classname = 'ComponentbuilderFieldCategories';
if (!class_exists($classname))
{
- $path = JPATH_SITE . '/components/com_componentbuilder/helpers/categoryfields.php';
+ $path = JPATH_SITE . '/components/com_componentbuilder/helpers/categoryfield.php';
if (is_file($path))
{
include_once $path;
}
}
//Insure this view category file is loaded.
-$classname = 'ComponentbuilderFieldtypesCategories';
+$classname = 'ComponentbuilderFieldtypeCategories';
if (!class_exists($classname))
{
- $path = JPATH_SITE . '/components/com_componentbuilder/helpers/categoryfieldtypes.php';
+ $path = JPATH_SITE . '/components/com_componentbuilder/helpers/categoryfieldtype.php';
if (is_file($path))
{
include_once $path;
diff --git a/site/helpers/categoryfields.php b/site/helpers/categoryfield.php
similarity index 86%
rename from site/helpers/categoryfields.php
rename to site/helpers/categoryfield.php
index 766030339..59387bd16 100644
--- a/site/helpers/categoryfields.php
+++ b/site/helpers/categoryfield.php
@@ -15,7 +15,7 @@ defined('_JEXEC') or die('Restricted access');
/**
* Componentbuilder Field Component Category Tree
*/
-class ComponentbuilderFieldsCategories extends JCategories
+class ComponentbuilderFieldCategories extends JCategories
{
/**
* Class constructor
@@ -26,7 +26,7 @@ class ComponentbuilderFieldsCategories extends JCategories
public function __construct($options = array())
{
$options['table'] = '#__componentbuilder_field';
- $options['extension'] = 'com_componentbuilder.fields';
+ $options['extension'] = 'com_componentbuilder.field';
parent::__construct($options);
}
diff --git a/site/helpers/categoryfieldtypes.php b/site/helpers/categoryfieldtype.php
similarity index 85%
rename from site/helpers/categoryfieldtypes.php
rename to site/helpers/categoryfieldtype.php
index 6dd7ff9f4..ba3a88b35 100644
--- a/site/helpers/categoryfieldtypes.php
+++ b/site/helpers/categoryfieldtype.php
@@ -15,7 +15,7 @@ defined('_JEXEC') or die('Restricted access');
/**
* Componentbuilder Fieldtype Component Category Tree
*/
-class ComponentbuilderFieldtypesCategories extends JCategories
+class ComponentbuilderFieldtypeCategories extends JCategories
{
/**
* Class constructor
@@ -26,7 +26,7 @@ class ComponentbuilderFieldtypesCategories extends JCategories
public function __construct($options = array())
{
$options['table'] = '#__componentbuilder_fieldtype';
- $options['extension'] = 'com_componentbuilder.fieldtypes';
+ $options['extension'] = 'com_componentbuilder.fieldtype';
parent::__construct($options);
}
--
2.40.1
From 70635ff6f06b3d6123060ff18430a584cf26f529 Mon Sep 17 00:00:00 2001
From: Llewellyn van der Merwe
Date: Sat, 30 May 2020 20:49:13 +0200
Subject: [PATCH 02/14] Added notice to the compiler where it detects
mismatching category view target names. Added the update script for
categories in JCB. Made adjustments all across JCB to act according to gh-561
implementation.
---
README.md | 4 +-
admin/README.txt | 4 +-
admin/helpers/compiler/c_Fields.php | 30 +++++-
admin/helpers/compiler/e_Interpretation.php | 34 +++---
admin/helpers/componentbuilder.php | 4 +-
admin/layouts/fieldtype/fields_fullwidth.php | 4 +-
admin/models/forms/field.xml | 3 +-
admin/models/forms/fieldtype.xml | 2 +-
admin/views/fields/tmpl/default_body.php | 4 +-
admin/views/fields/view.html.php | 4 +-
admin/views/fieldtypes/tmpl/default_body.php | 4 +-
admin/views/fieldtypes/view.html.php | 4 +-
componentbuilder.xml | 2 +-
script.php | 105 +++++++++++++++----
site/helpers/route.php | 4 +-
15 files changed, 154 insertions(+), 58 deletions(-)
diff --git a/README.md b/README.md
index b60e50426..b4c6b07c4 100644
--- a/README.md
+++ b/README.md
@@ -144,11 +144,11 @@ TODO
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
+ *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder)
+ *First Build*: 30th April, 2015
-+ *Last Build*: 29th May, 2020
++ *Last Build*: 30th May, 2020
+ *Version*: 2.11.2
+ *Copyright*: Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved.
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
-+ *Line count*: **282456**
++ *Line count*: **282524**
+ *Field count*: **1522**
+ *File count*: **1785**
+ *Folder count*: **295**
diff --git a/admin/README.txt b/admin/README.txt
index b60e50426..b4c6b07c4 100644
--- a/admin/README.txt
+++ b/admin/README.txt
@@ -144,11 +144,11 @@ TODO
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
+ *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder)
+ *First Build*: 30th April, 2015
-+ *Last Build*: 29th May, 2020
++ *Last Build*: 30th May, 2020
+ *Version*: 2.11.2
+ *Copyright*: Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved.
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
-+ *Line count*: **282456**
++ *Line count*: **282524**
+ *Field count*: **1522**
+ *File count*: **1785**
+ *Folder count*: **295**
diff --git a/admin/helpers/compiler/c_Fields.php b/admin/helpers/compiler/c_Fields.php
index a6f365590..bb99927e2 100644
--- a/admin/helpers/compiler/c_Fields.php
+++ b/admin/helpers/compiler/c_Fields.php
@@ -4112,7 +4112,7 @@ class Fields extends Structure
{
$this->setScriptMediaSwitch[$typeName] = $typeName;
}
- // setup gategory for this view
+ // setup category for this view
if ($dbSwitch && $typeName === 'category')
{
if (isset($this->catOtherName[$view_name_list])
@@ -4134,13 +4134,37 @@ class Fields extends Structure
$field['settings']->xml, 'extension="', '"'
), $this->placeholders
);
- // if they left out the extention for some reason
+ // if they left out the extension for some reason
if (!ComponentbuilderHelper::checkString($_extension))
{
$_extension = 'com_' . $this->componentCodeName . '.'
. $otherView;
}
- // load the category builder
+ // check the context (does our target match)
+ if (strpos($_extension, '.') !== false)
+ {
+ $target_view = trim(explode('.', $_extension)[1]);
+ // from my understanding the target extension view and the otherView must align
+ // so I will here check that it does, and if not raise an error message to fix this
+ if ($target_view !== $otherView)
+ {
+ $target_extension = trim(explode('.', $_extension)[0]);
+ $correction = $target_extension . '.' . $otherView;
+ $this->app->enqueueMessage(
+ JText::sprintf('
Category targeting view mismatch
+ The
+ category field in (%s) admin view has a mismatching target view.
+
To correct the mismatch, the extension value %s
in the
+ field must be changed to %s
+ for
+ best category integration with Joomla.
+
Please watch
+ this tutorial before proceeding!!!,
+ code fix
', $field['field'], $view_name_single, $_extension, $field['field'], $correction), 'Error'
+ );
+ }
+ }
+ // load the category builder - TODO must move all to single view
$this->categoryBuilder[$view_name_list] = array('code' => $name,
'name' => $listLangName,
'extension' => $_extension);
diff --git a/admin/helpers/compiler/e_Interpretation.php b/admin/helpers/compiler/e_Interpretation.php
index f687a3b93..1cbc5af5a 100644
--- a/admin/helpers/compiler/e_Interpretation.php
+++ b/admin/helpers/compiler/e_Interpretation.php
@@ -8476,19 +8476,21 @@ class Interpretation extends Fields
public function getCategoryContentType($view, $views, $component)
{
+ // get the other view
+ $otherView = $this->catCodeBuilder[$view]['view'];
$category = $this->catCodeBuilder[$view]['code'];
$Component = ComponentbuilderHelper::safeString($component, 'F');
$View = ComponentbuilderHelper::safeString($view, 'F');
// build uninstall script for content types
$this->uninstallScriptBuilder[$View . ' ' . $category] = 'com_'
- . $component . '.' . $views . '.category';
+ . $component . '.' . $otherView . '.category';
$this->uninstallScriptContent[$View . ' ' . $category] = $View . ' '
. $category;
// set the title
$array['type_title'] = $Component . ' ' . $View . ' '
. ComponentbuilderHelper::safeString($category, 'F');
// set the alias
- $array['type_alias'] = 'com_' . $component . '.' . $views . '.category';
+ $array['type_alias'] = 'com_' . $component . '.' . $otherView . '.category';
// set the table
$array['table']
= '{"special":{"dbtable":"#__categories","key":"id","type":"Category","prefix":"JTable","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"JTable","config":"array()"}}';
@@ -11450,13 +11452,10 @@ class Interpretation extends Fields
// if to be linked
if ($item['type'] === 'category' && !$item['title'])
{
- // get the other view
- $otherViews = $this->catCodeBuilder[$viewName_single]['views'];
-
// return the link to category
return 'index.php?option=com_categories&task=category.edit&id='
- . $item['code'] . '; ?>&extension=com_'
- . $this->componentCodeName . '.' . $otherViews;
+ . $item['code'] . '; ?>&extension='
+ . $this->categoryBuilder[$viewName_list]['extension'];
}
elseif ($item['type'] === 'user' && !$item['title'])
{
@@ -11517,11 +11516,10 @@ class Interpretation extends Fields
if ($item['type'] === 'category' && !$item['title'])
{
// get the other view
- $otherViews = $this->catCodeBuilder[$viewName_single]['views'];
-
+ $otherView = $this->catCodeBuilder[$viewName_single]['view'];
// return the authority to category
return $user . "->authorise('core.edit', 'com_"
- . $this->componentCodeName . "." . $otherViews
+ . $this->componentCodeName . "." . $otherView
. ".category.' . (int)\$item->" . $item['code'] . ")";
}
elseif ($item['type'] === 'user' && !$item['title'])
@@ -17459,6 +17457,10 @@ class Interpretation extends Fields
$otherViews = $viewName_list;
$otherView = $viewName_single;
}
+ // set the OtherView value
+ $this->fileContentDynamic['category' . $otherView][$this->hhh
+ . 'otherview' . $this->hhh]
+ = $otherView;
// load the category helper details in not already loaded
if (!isset(
$this->fileContentDynamic['category' . $otherView][$this->hhh
@@ -17593,7 +17595,7 @@ class Interpretation extends Fields
. " If the category has been passed in the URL check it.";
$allow[] = $this->_t(3)
. "\$allow = \$user->authorise('core.create', \$this->option . '."
- . $otherViews . ".category.' . \$categoryId);";
+ . $otherView . ".category.' . \$categoryId);";
$allow[] = $this->_t(2) . "}";
$allow[] = PHP_EOL . $this->_t(2) . "if (\$allow === null)";
$allow[] = $this->_t(2) . "{";
@@ -18168,6 +18170,8 @@ class Interpretation extends Fields
) . " Check for existing item.";
$getForm[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " Modify the form based on Edit State access controls.";
+ // get the other view
+ $otherView = $this->catCodeBuilder[$viewName_single]['view'];
// check if the item has permissions.
if ($coreLoad && isset($core['core.edit.state'])
&& isset($this->permissionBuilder[$core['core.edit.state']])
@@ -18185,7 +18189,7 @@ class Interpretation extends Fields
. $viewName_single . ".' . (int) \$id))";
$getForm[] = $this->_t(3)
. "|| (isset(\$catid) && \$catid != 0 && !\$user->authorise('core.edit.state', 'com_"
- . $component . "." . $viewName_list
+ . $component . "." . $otherView
. ".category.' . (int) \$catid))";
$getForm[] = $this->_t(3)
. "|| (\$id == 0 && !\$user->authorise('"
@@ -18199,7 +18203,7 @@ class Interpretation extends Fields
. $component . "." . $viewName_single . ".' . (int) \$id))";
$getForm[] = $this->_t(3)
. "|| (isset(\$catid) && \$catid != 0 && !\$user->authorise('core.edit.state', 'com_"
- . $component . "." . $viewName_list
+ . $component . "." . $otherView
. ".category.' . (int) \$catid))";
$getForm[] = $this->_t(3)
. "|| (\$id == 0 && !\$user->authorise('core.edit.state', 'com_"
@@ -18728,7 +18732,7 @@ class Interpretation extends Fields
$allow[] = PHP_EOL . $this->_t(3) . "\$user = JFactory::getUser();";
$allow[] = $this->_t(3)
. "\$allow = \$user->authorise('core.delete', 'com_"
- . $component . "." . $otherViews
+ . $component . "." . $otherView
. ".category.' . (int) \$record->catid);";
// check if the item has permissions.
if ($coreLoad
@@ -18882,7 +18886,7 @@ class Interpretation extends Fields
$allow[] = $this->_t(2) . "{";
$allow[] = $this->_t(3)
. "\$catpermission = \$user->authorise('core.edit.state', 'com_"
- . $component . "." . $otherViews
+ . $component . "." . $otherView
. ".category.' . (int) \$record->catid);";
$allow[] = $this->_t(3)
. "if (!\$catpermission && !is_null(\$catpermission))";
diff --git a/admin/helpers/componentbuilder.php b/admin/helpers/componentbuilder.php
index cf7d9cd02..433fc969a 100644
--- a/admin/helpers/componentbuilder.php
+++ b/admin/helpers/componentbuilder.php
@@ -6033,12 +6033,12 @@ abstract class ComponentbuilderHelper
if ($user->authorise('field.access', 'com_componentbuilder') && $user->authorise('field.submenu', 'com_componentbuilder'))
{
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_SUBMENU_FIELDS'), 'index.php?option=com_componentbuilder&view=fields', $submenu === 'fields');
- JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_FIELD_FIELDS_CATEGORIES'), 'index.php?option=com_categories&view=categories&extension=com_componentbuilder.fields', $submenu === 'categories.fields');
+ JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_FIELD_FIELDS_CATEGORIES'), 'index.php?option=com_categories&view=categories&extension=com_componentbuilder.field', $submenu === 'categories.field');
}
if ($user->authorise('fieldtype.access', 'com_componentbuilder') && $user->authorise('fieldtype.submenu', 'com_componentbuilder'))
{
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_SUBMENU_FIELDTYPES'), 'index.php?option=com_componentbuilder&view=fieldtypes', $submenu === 'fieldtypes');
- JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_FIELDTYPE_FIELDTYPES_CATEGORIES'), 'index.php?option=com_categories&view=categories&extension=com_componentbuilder.fieldtypes', $submenu === 'categories.fieldtypes');
+ JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_FIELDTYPE_FIELDTYPES_CATEGORIES'), 'index.php?option=com_categories&view=categories&extension=com_componentbuilder.fieldtype', $submenu === 'categories.fieldtype');
}
if ($user->authorise('language_translation.access', 'com_componentbuilder') && $user->authorise('language_translation.submenu', 'com_componentbuilder'))
{
diff --git a/admin/layouts/fieldtype/fields_fullwidth.php b/admin/layouts/fieldtype/fields_fullwidth.php
index 4ab41c6b1..b8fba47f6 100644
--- a/admin/layouts/fieldtype/fields_fullwidth.php
+++ b/admin/layouts/fieldtype/fields_fullwidth.php
@@ -118,8 +118,8 @@ $can = ComponentbuilderHelper::getActions('field');
store); ?>
- authorise('core.edit', 'com_componentbuilder.fields.category.' . (int)$item->catid)): ?>
- escape($item->category_title); ?>
+ authorise('core.edit', 'com_componentbuilder.field.category.' . (int)$item->catid)): ?>
+ escape($item->category_title); ?>
escape($item->category_title); ?>
diff --git a/admin/models/forms/field.xml b/admin/models/forms/field.xml
index 2f3a39fea..211698f6d 100644
--- a/admin/models/forms/field.xml
+++ b/admin/models/forms/field.xml
@@ -227,8 +227,7 @@
type="category"
name="catid"
label="COM_COMPONENTBUILDER_FIELD_CATID_LABEL"
- extension="com_componentbuilder.fields"
- default=""
+ extension="com_componentbuilder.field"
description="COM_COMPONENTBUILDER_FIELD_CATID_DESCRIPTION"
class="inputbox"
/>
diff --git a/admin/models/forms/fieldtype.xml b/admin/models/forms/fieldtype.xml
index ac00e85e6..e456efeb4 100644
--- a/admin/models/forms/fieldtype.xml
+++ b/admin/models/forms/fieldtype.xml
@@ -449,7 +449,7 @@
type="category"
name="catid"
label="COM_COMPONENTBUILDER_FIELDTYPE_CATID_LABEL"
- extension="com_componentbuilder.fieldtypes"
+ extension="com_componentbuilder.fieldtype"
default=""
description="COM_COMPONENTBUILDER_FIELDTYPE_CATID_DESCRIPTION"
class="inputbox"
diff --git a/admin/views/fields/tmpl/default_body.php b/admin/views/fields/tmpl/default_body.php
index e79c51bd9..382ce7d16 100644
--- a/admin/views/fields/tmpl/default_body.php
+++ b/admin/views/fields/tmpl/default_body.php
@@ -95,8 +95,8 @@ $edit = "index.php?option=com_componentbuilder&view=fields&task=field.edit";
|
- user->authorise('core.edit', 'com_componentbuilder.fields.category.' . (int)$item->catid)): ?>
- escape($item->category_title); ?>
+ user->authorise('core.edit', 'com_componentbuilder.field.category.' . (int)$item->catid)): ?>
+ escape($item->category_title); ?>
escape($item->category_title); ?>
diff --git a/admin/views/fields/view.html.php b/admin/views/fields/view.html.php
index 2beec06b4..3fc356eba 100644
--- a/admin/views/fields/view.html.php
+++ b/admin/views/fields/view.html.php
@@ -196,7 +196,7 @@ class ComponentbuilderViewFields extends JViewLegacy
JHtmlSidebar::addFilter(
JText::_('JOPTION_SELECT_CATEGORY'),
'filter_category_id',
- JHtml::_('select.options', JHtml::_('category.options', 'com_componentbuilder.fields'), 'value', 'text', $this->state->get('filter.category_id'))
+ JHtml::_('select.options', JHtml::_('category.options', 'com_componentbuilder.field'), 'value', 'text', $this->state->get('filter.category_id'))
);
if ($this->canBatch && $this->canCreate && $this->canEdit)
@@ -205,7 +205,7 @@ class ComponentbuilderViewFields extends JViewLegacy
JHtmlBatch_::addListSelection(
JText::_('COM_COMPONENTBUILDER_KEEP_ORIGINAL_CATEGORY'),
'batch[category]',
- JHtml::_('select.options', JHtml::_('category.options', 'com_componentbuilder.fields'), 'value', 'text')
+ JHtml::_('select.options', JHtml::_('category.options', 'com_componentbuilder.field'), 'value', 'text')
);
}
diff --git a/admin/views/fieldtypes/tmpl/default_body.php b/admin/views/fieldtypes/tmpl/default_body.php
index 0c4d65319..887e1812f 100644
--- a/admin/views/fieldtypes/tmpl/default_body.php
+++ b/admin/views/fieldtypes/tmpl/default_body.php
@@ -77,8 +77,8 @@ $edit = "index.php?option=com_componentbuilder&view=fieldtypes&task=fieldtype.ed
|
- user->authorise('core.edit', 'com_componentbuilder.fieldtypes.category.' . (int)$item->catid)): ?>
- escape($item->category_title); ?>
+ user->authorise('core.edit', 'com_componentbuilder.fieldtype.category.' . (int)$item->catid)): ?>
+ escape($item->category_title); ?>
escape($item->category_title); ?>
diff --git a/admin/views/fieldtypes/view.html.php b/admin/views/fieldtypes/view.html.php
index 075cdb23f..fac139380 100644
--- a/admin/views/fieldtypes/view.html.php
+++ b/admin/views/fieldtypes/view.html.php
@@ -191,7 +191,7 @@ class ComponentbuilderViewFieldtypes extends JViewLegacy
JHtmlSidebar::addFilter(
JText::_('JOPTION_SELECT_CATEGORY'),
'filter_category_id',
- JHtml::_('select.options', JHtml::_('category.options', 'com_componentbuilder.fieldtypes'), 'value', 'text', $this->state->get('filter.category_id'))
+ JHtml::_('select.options', JHtml::_('category.options', 'com_componentbuilder.fieldtype'), 'value', 'text', $this->state->get('filter.category_id'))
);
if ($this->canBatch && $this->canCreate && $this->canEdit)
@@ -200,7 +200,7 @@ class ComponentbuilderViewFieldtypes extends JViewLegacy
JHtmlBatch_::addListSelection(
JText::_('COM_COMPONENTBUILDER_KEEP_ORIGINAL_CATEGORY'),
'batch[category]',
- JHtml::_('select.options', JHtml::_('category.options', 'com_componentbuilder.fieldtypes'), 'value', 'text')
+ JHtml::_('select.options', JHtml::_('category.options', 'com_componentbuilder.fieldtype'), 'value', 'text')
);
}
}
diff --git a/componentbuilder.xml b/componentbuilder.xml
index f96061588..d4551f41b 100644
--- a/componentbuilder.xml
+++ b/componentbuilder.xml
@@ -1,7 +1,7 @@
COM_COMPONENTBUILDER
- 29th May, 2020
+ 30th May, 2020
Llewellyn van der Merwe
llewellyn@joomlacomponentbuilder.com
http://www.joomlacomponentbuilder.com
diff --git a/script.php b/script.php
index 817b584db..a6775ed6a 100644
--- a/script.php
+++ b/script.php
@@ -1516,7 +1516,7 @@ class com_componentbuilderInstallerScript
$query->select($db->quoteName('type_id'));
$query->from($db->quoteName('#__content_types'));
// Where Field catid alias is found
- $query->where( $db->quoteName('type_alias') . ' = '. $db->quote('com_componentbuilder.fields.category') );
+ $query->where( $db->quoteName('type_alias') . ' = '. $db->quote('com_componentbuilder.field.category') );
$db->setQuery($query);
// Execute query to see if alias is found
$db->execute();
@@ -1527,7 +1527,7 @@ class com_componentbuilderInstallerScript
// Since there are load the needed field_catid type ids
$field_catid_ids = $db->loadColumn();
// Remove Field catid from the content type table
- $field_catid_condition = array( $db->quoteName('type_alias') . ' = '. $db->quote('com_componentbuilder.fields.category') );
+ $field_catid_condition = array( $db->quoteName('type_alias') . ' = '. $db->quote('com_componentbuilder.field.category') );
// Create a new query object.
$query = $db->getQuery(true);
$query->delete($db->quoteName('#__content_types'));
@@ -1538,11 +1538,11 @@ class com_componentbuilderInstallerScript
if ($field_catid_done)
{
// If succesfully remove Field catid add queued success message.
- $app->enqueueMessage(JText::_('The (com_componentbuilder.fields.category) type alias was removed from the #__content_type table'));
+ $app->enqueueMessage(JText::_('The (com_componentbuilder.field.category) type alias was removed from the #__content_type table'));
}
// Remove Field catid items from the contentitem tag map table
- $field_catid_condition = array( $db->quoteName('type_alias') . ' = '. $db->quote('com_componentbuilder.fields.category') );
+ $field_catid_condition = array( $db->quoteName('type_alias') . ' = '. $db->quote('com_componentbuilder.field.category') );
// Create a new query object.
$query = $db->getQuery(true);
$query->delete($db->quoteName('#__contentitem_tag_map'));
@@ -1553,11 +1553,11 @@ class com_componentbuilderInstallerScript
if ($field_catid_done)
{
// If succesfully remove Field catid add queued success message.
- $app->enqueueMessage(JText::_('The (com_componentbuilder.fields.category) type alias was removed from the #__contentitem_tag_map table'));
+ $app->enqueueMessage(JText::_('The (com_componentbuilder.field.category) type alias was removed from the #__contentitem_tag_map table'));
}
// Remove Field catid items from the ucm content table
- $field_catid_condition = array( $db->quoteName('core_type_alias') . ' = ' . $db->quote('com_componentbuilder.fields.category') );
+ $field_catid_condition = array( $db->quoteName('core_type_alias') . ' = ' . $db->quote('com_componentbuilder.field.category') );
// Create a new query object.
$query = $db->getQuery(true);
$query->delete($db->quoteName('#__ucm_content'));
@@ -1568,7 +1568,7 @@ class com_componentbuilderInstallerScript
if ($field_catid_done)
{
// If succesfully remove Field catid add queued success message.
- $app->enqueueMessage(JText::_('The (com_componentbuilder.fields.category) type alias was removed from the #__ucm_content table'));
+ $app->enqueueMessage(JText::_('The (com_componentbuilder.field.category) type alias was removed from the #__ucm_content table'));
}
// Make sure that all the Field catid items are cleared from DB
@@ -1688,7 +1688,7 @@ class com_componentbuilderInstallerScript
$query->select($db->quoteName('type_id'));
$query->from($db->quoteName('#__content_types'));
// Where Fieldtype catid alias is found
- $query->where( $db->quoteName('type_alias') . ' = '. $db->quote('com_componentbuilder.fieldtypes.category') );
+ $query->where( $db->quoteName('type_alias') . ' = '. $db->quote('com_componentbuilder.fieldtype.category') );
$db->setQuery($query);
// Execute query to see if alias is found
$db->execute();
@@ -1699,7 +1699,7 @@ class com_componentbuilderInstallerScript
// Since there are load the needed fieldtype_catid type ids
$fieldtype_catid_ids = $db->loadColumn();
// Remove Fieldtype catid from the content type table
- $fieldtype_catid_condition = array( $db->quoteName('type_alias') . ' = '. $db->quote('com_componentbuilder.fieldtypes.category') );
+ $fieldtype_catid_condition = array( $db->quoteName('type_alias') . ' = '. $db->quote('com_componentbuilder.fieldtype.category') );
// Create a new query object.
$query = $db->getQuery(true);
$query->delete($db->quoteName('#__content_types'));
@@ -1710,11 +1710,11 @@ class com_componentbuilderInstallerScript
if ($fieldtype_catid_done)
{
// If succesfully remove Fieldtype catid add queued success message.
- $app->enqueueMessage(JText::_('The (com_componentbuilder.fieldtypes.category) type alias was removed from the #__content_type table'));
+ $app->enqueueMessage(JText::_('The (com_componentbuilder.fieldtype.category) type alias was removed from the #__content_type table'));
}
// Remove Fieldtype catid items from the contentitem tag map table
- $fieldtype_catid_condition = array( $db->quoteName('type_alias') . ' = '. $db->quote('com_componentbuilder.fieldtypes.category') );
+ $fieldtype_catid_condition = array( $db->quoteName('type_alias') . ' = '. $db->quote('com_componentbuilder.fieldtype.category') );
// Create a new query object.
$query = $db->getQuery(true);
$query->delete($db->quoteName('#__contentitem_tag_map'));
@@ -1725,11 +1725,11 @@ class com_componentbuilderInstallerScript
if ($fieldtype_catid_done)
{
// If succesfully remove Fieldtype catid add queued success message.
- $app->enqueueMessage(JText::_('The (com_componentbuilder.fieldtypes.category) type alias was removed from the #__contentitem_tag_map table'));
+ $app->enqueueMessage(JText::_('The (com_componentbuilder.fieldtype.category) type alias was removed from the #__contentitem_tag_map table'));
}
// Remove Fieldtype catid items from the ucm content table
- $fieldtype_catid_condition = array( $db->quoteName('core_type_alias') . ' = ' . $db->quote('com_componentbuilder.fieldtypes.category') );
+ $fieldtype_catid_condition = array( $db->quoteName('core_type_alias') . ' = ' . $db->quote('com_componentbuilder.fieldtype.category') );
// Create a new query object.
$query = $db->getQuery(true);
$query->delete($db->quoteName('#__ucm_content'));
@@ -1740,7 +1740,7 @@ class com_componentbuilderInstallerScript
if ($fieldtype_catid_done)
{
// If succesfully remove Fieldtype catid add queued success message.
- $app->enqueueMessage(JText::_('The (com_componentbuilder.fieldtypes.category) type alias was removed from the #__ucm_content table'));
+ $app->enqueueMessage(JText::_('The (com_componentbuilder.fieldtype.category) type alias was removed from the #__ucm_content table'));
}
// Make sure that all the Fieldtype catid items are cleared from DB
@@ -5890,6 +5890,75 @@ class com_componentbuilderInstallerScript
JFile::delete($wiki_menu);
}
}
+ // target version less then or equal to 2.11.2
+ if (count($this->JCBversion) == 3 && $this->JCBversion[0] <= 2 && ($this->JCBversion[1] < 11 || ($this->JCBversion[1] == 11 && $this->JCBversion[2] <= 2)))
+ {
+ // we need to make a database correction for the field categories and the fieldtype categories
+ $fix_categories = array(
+ 'com_componentbuilder.fields' => 'com_componentbuilder.field',
+ 'com_componentbuilder.fieldtypes' => 'com_componentbuilder.fieldtype'
+ );
+ // targeted tables (to fix all places categories are mapped into Joomla)
+ $fix_tables = array(
+ 'content_types' => array(
+ 'id' => 'type_id',
+ 'key' => 'type_alias',
+ 'suffix' => '.category'),
+ 'contentitem_tag_map' => array(
+ 'id' => 'type_id',
+ 'key' => 'type_alias',
+ 'suffix' => '.category'),
+ 'ucm_content' => array(
+ 'id' => 'core_content_id',
+ 'key' => 'core_type_alias',
+ 'suffix' => '.category'),
+ 'categories' => array(
+ 'id' => 'id',
+ 'key' => 'extension',
+ 'suffix' => '')
+ );
+
+ // the script that does the work
+ foreach ($fix_categories as $fix => $category)
+ {
+ // loop over the targeted tables
+ foreach ($fix_tables as $_table => $_update)
+ {
+ // Create a new query object.
+ $query = $db->getQuery(true);
+ // get all type_ids
+ $query->select($db->quoteName($_update['id']));
+ $query->from($db->quoteName('#__' . $_table));
+ $query->where( $db->quoteName($_update['key']) . ' = ' . $db->quote($fix . $_update['suffix']));
+ // Reset the query using our newly populated query object.
+ $db->setQuery($query);
+ $db->execute();
+ if ($db->getNumRows())
+ {
+
+ // all these must be updated
+ $ids = $db->loadColumn();
+ // Fields to update.
+ $fields = array(
+ $db->quoteName($_update['key']) . ' = ' . $db->quote($category . $_update['suffix'])
+ );
+ // Conditions for which records should be updated.
+ $conditions = array(
+ $db->quoteName($_update['id']) . ' IN (' . implode(', ', $ids) . ')'
+ );
+ $query->update($db->quoteName('#__' . $_table))->set($fields)->where($conditions);
+ $db->setQuery($query);
+ $result = $db->execute();
+ // on success
+ if ($result)
+ {
+ $app->enqueueMessage("Updated #__$_table - " . $_update['key'] . " from $fix" . $_update['suffix'] . " to $category" . $_update['suffix'] . "! ", 'Notice');
+ }
+
+ }
+ }
+ }
+ }
}
}
@@ -6136,7 +6205,7 @@ class com_componentbuilderInstallerScript
// Create the field category content type object.
$field_category = new stdClass();
$field_category->type_title = 'Componentbuilder Field Catid';
- $field_category->type_alias = 'com_componentbuilder.fields.category';
+ $field_category->type_alias = 'com_componentbuilder.field.category';
$field_category->table = '{"special":{"dbtable":"#__categories","key":"id","type":"Category","prefix":"JTable","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"JTable","config":"array()"}}';
$field_category->field_mappings = '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"published","core_alias":"alias","core_created_time":"created_time","core_modified_time":"modified_time","core_body":"description", "core_hits":"hits","core_publish_up":"null","core_publish_down":"null","core_access":"access", "core_params":"params", "core_featured":"null", "core_metadata":"metadata", "core_language":"language", "core_images":"null", "core_urls":"null", "core_version":"version", "core_ordering":"null", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"parent_id", "core_xreference":"null", "asset_id":"asset_id"}, "special":{"parent_id":"parent_id","lft":"lft","rgt":"rgt","level":"level","path":"path","extension":"extension","note":"note"}}';
$field_category->router = 'ComponentbuilderHelperRoute::getCategoryRoute';
@@ -6160,7 +6229,7 @@ class com_componentbuilderInstallerScript
// Create the fieldtype category content type object.
$fieldtype_category = new stdClass();
$fieldtype_category->type_title = 'Componentbuilder Fieldtype Catid';
- $fieldtype_category->type_alias = 'com_componentbuilder.fieldtypes.category';
+ $fieldtype_category->type_alias = 'com_componentbuilder.fieldtype.category';
$fieldtype_category->table = '{"special":{"dbtable":"#__categories","key":"id","type":"Category","prefix":"JTable","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"JTable","config":"array()"}}';
$fieldtype_category->field_mappings = '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"published","core_alias":"alias","core_created_time":"created_time","core_modified_time":"modified_time","core_body":"description", "core_hits":"hits","core_publish_up":"null","core_publish_down":"null","core_access":"access", "core_params":"params", "core_featured":"null", "core_metadata":"metadata", "core_language":"language", "core_images":"null", "core_urls":"null", "core_version":"version", "core_ordering":"null", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"parent_id", "core_xreference":"null", "asset_id":"asset_id"}, "special":{"parent_id":"parent_id","lft":"lft","rgt":"rgt","level":"level","path":"path","extension":"extension","note":"note"}}';
$fieldtype_category->router = 'ComponentbuilderHelperRoute::getCategoryRoute';
@@ -7850,7 +7919,7 @@ class com_componentbuilderInstallerScript
// Create the field category content type object.
$field_category = new stdClass();
$field_category->type_title = 'Componentbuilder Field Catid';
- $field_category->type_alias = 'com_componentbuilder.fields.category';
+ $field_category->type_alias = 'com_componentbuilder.field.category';
$field_category->table = '{"special":{"dbtable":"#__categories","key":"id","type":"Category","prefix":"JTable","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"JTable","config":"array()"}}';
$field_category->field_mappings = '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"published","core_alias":"alias","core_created_time":"created_time","core_modified_time":"modified_time","core_body":"description", "core_hits":"hits","core_publish_up":"null","core_publish_down":"null","core_access":"access", "core_params":"params", "core_featured":"null", "core_metadata":"metadata", "core_language":"language", "core_images":"null", "core_urls":"null", "core_version":"version", "core_ordering":"null", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"parent_id", "core_xreference":"null", "asset_id":"asset_id"}, "special":{"parent_id":"parent_id","lft":"lft","rgt":"rgt","level":"level","path":"path","extension":"extension","note":"note"}}';
$field_category->router = 'ComponentbuilderHelperRoute::getCategoryRoute';
@@ -7908,7 +7977,7 @@ class com_componentbuilderInstallerScript
// Create the fieldtype category content type object.
$fieldtype_category = new stdClass();
$fieldtype_category->type_title = 'Componentbuilder Fieldtype Catid';
- $fieldtype_category->type_alias = 'com_componentbuilder.fieldtypes.category';
+ $fieldtype_category->type_alias = 'com_componentbuilder.fieldtype.category';
$fieldtype_category->table = '{"special":{"dbtable":"#__categories","key":"id","type":"Category","prefix":"JTable","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"JTable","config":"array()"}}';
$fieldtype_category->field_mappings = '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"published","core_alias":"alias","core_created_time":"created_time","core_modified_time":"modified_time","core_body":"description", "core_hits":"hits","core_publish_up":"null","core_publish_down":"null","core_access":"access", "core_params":"params", "core_featured":"null", "core_metadata":"metadata", "core_language":"language", "core_images":"null", "core_urls":"null", "core_version":"version", "core_ordering":"null", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"parent_id", "core_xreference":"null", "asset_id":"asset_id"}, "special":{"parent_id":"parent_id","lft":"lft","rgt":"rgt","level":"level","path":"path","extension":"extension","note":"note"}}';
$fieldtype_category->router = 'ComponentbuilderHelperRoute::getCategoryRoute';
diff --git a/site/helpers/route.php b/site/helpers/route.php
index 341ed01c4..441972641 100644
--- a/site/helpers/route.php
+++ b/site/helpers/route.php
@@ -85,8 +85,8 @@ abstract class ComponentbuilderHelperRoute
}
$views = array(
- "com_componentbuilder.fields" => "field",
- "com_componentbuilder.fieldtypes" => "fieldtype");
+ "com_componentbuilder.field" => "field",
+ "com_componentbuilder.fieldtype" => "fieldtype");
$view = $views[$category->extension];
if ($id < 1 || !($category instanceof JCategoryNode))
--
2.40.1
From 90f48bd5fab24d540012a5bb3bbac5b973b631f3 Mon Sep 17 00:00:00 2001
From: Llewellyn van der Merwe
Date: Tue, 2 Jun 2020 00:49:30 +0200
Subject: [PATCH 03/14] Updated paypal donation link in readme note.
---
README.md | 2 +-
admin/README.txt | 2 +-
admin/language/en-GB/en-GB.com_componentbuilder.ini | 2 +-
admin/sql/install.mysql.utf8.sql | 4 ++--
componentbuilder.xml | 2 +-
script.php | 2 +-
6 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/README.md b/README.md
index b4c6b07c4..f42ef9898 100644
--- a/README.md
+++ b/README.md
@@ -144,7 +144,7 @@ TODO
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
+ *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder)
+ *First Build*: 30th April, 2015
-+ *Last Build*: 30th May, 2020
++ *Last Build*: 1st June, 2020
+ *Version*: 2.11.2
+ *Copyright*: Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved.
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/admin/README.txt b/admin/README.txt
index b4c6b07c4..f42ef9898 100644
--- a/admin/README.txt
+++ b/admin/README.txt
@@ -144,7 +144,7 @@ TODO
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
+ *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder)
+ *First Build*: 30th April, 2015
-+ *Last Build*: 30th May, 2020
++ *Last Build*: 1st June, 2020
+ *Version*: 2.11.2
+ *Copyright*: Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved.
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/admin/language/en-GB/en-GB.com_componentbuilder.ini b/admin/language/en-GB/en-GB.com_componentbuilder.ini
index f30834db6..3d23dd41b 100644
--- a/admin/language/en-GB/en-GB.com_componentbuilder.ini
+++ b/admin/language/en-GB/en-GB.com_componentbuilder.ini
@@ -5872,7 +5872,7 @@ Project duration: **###projectWeekTime### weeks** or **###projectMonthTime### mo
## Donations
If you want to support this project, please consider donating:
- * PayPal: [paypal.me/asseblief](https://www.paypal.me/asseblief) (Asseblief = Please) in Afrikaans
+ * PayPal: [paypal.me/donationgeek](https://www.paypal.me/donationgeek)
* Bitcoin: 18vURxYpPFjvNk8BnUy1ovCAyQmY3MzkSf
* Ethereum: 0x9548144662b47327c954f3e214edb96662d51218
"
diff --git a/admin/sql/install.mysql.utf8.sql b/admin/sql/install.mysql.utf8.sql
index c4681421c..546d2bc3d 100644
--- a/admin/sql/install.mysql.utf8.sql
+++ b/admin/sql/install.mysql.utf8.sql
@@ -1904,7 +1904,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_joomla_plugin_files_folders_urls
--
INSERT INTO `#__componentbuilder_joomla_component` (`id`, `add_license`, `license_type`, `mvc_versiondate`, `add_css_admin`, `add_css_site`, `add_email_helper`, `add_javascript`, `add_php_helper_admin`, `add_php_helper_both`, `add_php_helper_site`, `add_php_postflight_install`, `add_php_method_uninstall`, `add_php_postflight_update`, `add_php_preflight_install`, `add_php_preflight_update`, `add_placeholders`, `add_sql`, `add_sql_uninstall`, `addfootable`, `adduikit`, `add_admin_event`, `add_site_event`, `add_update_server`, `add_sales_server`, `sales_server`, `update_server`, `update_server_target`, `update_server_url`, `php_admin_event`, `php_site_event`, `addreadme`, `readme`, `author`, `bom`, `buildcomp`, `buildcompsql`, `companyname`, `component_version`, `copyright`, `creatuserhelper`, `css_admin`, `css_site`, `dashboard`, `dashboard_type`, `debug_linenr`, `description`, `email`, `emptycontributors`, `export_buy_link`, `joomla_source_link`, `export_key`, `image`, `javascript`, `license`, `name`, `system_name`, `toignore`, `name_code`, `number`, `php_helper_admin`, `php_helper_both`, `php_helper_site`, `php_postflight_install`, `php_method_uninstall`, `php_postflight_update`, `php_preflight_install`, `php_preflight_update`, `short_description`, `sql`, `sql_uninstall`, `website`, `published`, `created`, `modified`, `hits`, `ordering`, `whmcs_key`, `whmcs_url`, `guid`) VALUES
-(25, '', 1, '', '', '', '', '', '', '', 1, 1, '', '', '', '', '', '', '', '', 1, '', '', 1, '', '', '', 2, 'https://raw.githubusercontent.com/namibia/demo-joomla-3-component/master/demo_updateserver.xml', '', '', 1, 'IyAjIyNDb21wb25lbnRfbmFtZSMjIyAoIyMjVkVSU0lPTiMjIykNCg0KIVsjIyNDb21wb25lbnRfbmFtZSMjIyBpbWFnZV0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25hbWliaWEvZGVtby1qb29tbGEtMy1jb21wb25lbnQvbWFzdGVyL2FkbWluL2Fzc2V0cy9pbWFnZXMvdmRtLWNvbXBvbmVudC5qcGcgIlRoZSAjIyNDb21wb25lbnRfbmFtZSMjIyIpDQoNCiMjI0RFU0NSSVBUSU9OIyMjDQoNCiMgQnVpbGQgRGV0YWlscw0KDQorICpDb21wYW55KjogWyMjI0NPTVBBTllOQU1FIyMjXSgjIyNBVVRIT1JXRUJTSVRFIyMjKQ0KKyAqQXV0aG9yKjogWyMjI0FVVEhPUiMjI10obWFpbHRvOiMjI0FVVEhPUkVNQUlMIyMjKQ0KKyAqTmFtZSo6IFsjIyNDb21wb25lbnRfbmFtZSMjI10oIyMjQVVUSE9SV0VCU0lURSMjIykNCisgKkZpcnN0IEJ1aWxkKjogIyMjQ1JFQVRJT05EQVRFIyMjDQorICpMYXN0IEJ1aWxkKjogIyMjQlVJTEREQVRFIyMjDQorICpWZXJzaW9uKjogIyMjVkVSU0lPTiMjIw0KKyAqQ29weXJpZ2h0KjogIyMjQ09QWVJJR0hUIyMjDQorICpMaWNlbnNlKjogIyMjTElDRU5TRSMjIw0KDQojIyBCdWlsZCBUaW1lDQoNCioqIyMjdG90YWxIb3VycyMjIyBIb3VycyoqIG9yICoqIyMjdG90YWxEYXlzIyMjIEVpZ2h0IEhvdXIgRGF5cyoqIChhY3R1YWwgdGltZSB0aGUgYXV0aG9yIHNhdmVkIC0NCmR1ZSB0byBbQXV0b21hdGVkIENvbXBvbmVudCBCdWlsZGVyXShodHRwczovL3d3dy52ZG0uaW8vam9vbWxhLWNvbXBvbmVudC1idWlsZGVyKSkNCg0KPiAoaWYgY3JlYXRpbmcgYSBmb2xkZXIgYW5kIGZpbGUgdG9vayAqKjUgc2Vjb25kcyoqIGFuZCB3cml0aW5nIG9uZSBsaW5lIG9mIGNvZGUgdG9vayAqKjEwIHNlY29uZHMqKiwNCj4gbmV2ZXIgbWFraW5nIG9uZSBtaXN0YWtlIG9yIHRha2luZyBhbnkgY29mZmVlIGJyZWFrLikNCg0KKyAqTGluZSBjb3VudCo6ICoqIyMjTElORV9DT1VOVCMjIyoqDQorICpGaWxlIGNvdW50KjogKiojIyNGSUxFX0NPVU5UIyMjKioNCisgKkZvbGRlciBjb3VudCo6ICoqIyMjRk9MREVSX0NPVU5UIyMjKioNCg0KKiojIyNhY3R1YWxIb3Vyc1NwZW50IyMjIEhvdXJzKiogb3IgKiojIyNhY3R1YWxEYXlzU3BlbnQjIyMgRWlnaHQgSG91ciBEYXlzKiogKHRoZSBhY3R1YWwgdGltZSB0aGUgYXV0aG9yIHNwZW50KQ0KDQo+ICh3aXRoIHRoZSBmb2xsb3dpbmcgYnJlYWsgZG93bjoNCj4gKipkZWJ1Z2dpbmcgQCMjI2RlYnVnZ2luZ0hvdXJzIyMjaG91cnMqKiA9IGNvZGluZ3RpbWUgLyA0Ow0KPiAqKnBsYW5uaW5nIEAjIyNwbGFubmluZ0hvdXJzIyMjaG91cnMqKiA9IGNvZGluZ3RpbWUgLyA3Ow0KPiAqKm1hcHBpbmcgQCMjI21hcHBpbmdIb3VycyMjI2hvdXJzKiogPSBjb2Rpbmd0aW1lIC8gMTA7DQo+ICoqb2ZmaWNlIEAjIyNvZmZpY2VIb3VycyMjI2hvdXJzKiogPSBjb2Rpbmd0aW1lIC8gNjspDQoNCioqIyMjYWN0dWFsVG90YWxIb3VycyMjIyBIb3VycyoqIG9yICoqIyMjYWN0dWFsVG90YWxEYXlzIyMjIEVpZ2h0IEhvdXIgRGF5cyoqDQooYSB0b3RhbCBvZiB0aGUgcmVhbGlzdGljIHRpbWUgZnJhbWUgZm9yIHRoaXMgcHJvamVjdCkNCg0KPiAoaWYgY3JlYXRpbmcgYSBmb2xkZXIgYW5kIGZpbGUgdG9vayAqKjUgc2Vjb25kcyoqIGFuZCB3cml0aW5nIG9uZSBsaW5lIG9mIGNvZGUgdG9vayAqKjEwIHNlY29uZHMqKiwNCj4gd2l0aCB0aGUgbm9ybWFsIGV2ZXJ5ZGF5IHJlYWxpdGllcyBhdCB0aGUgb2ZmaWNlLCB0aGF0IGluY2x1ZGVzIHRoZSBjb21wb25lbnQgcGxhbm5pbmcsIG1hcHBpbmcgJiBkZWJ1Z2dpbmcuKQ0KDQpQcm9qZWN0IGR1cmF0aW9uOiAqKiMjI3Byb2plY3RXZWVrVGltZSMjIyB3ZWVrcyoqIG9yICoqIyMjcHJvamVjdE1vbnRoVGltZSMjIyBtb250aHMqKg0KDQo+IFRoaXMgKipjb21wb25lbnQqKiB3YXMgYnVpbGQgd2l0aCBhIEpvb21sYSBbQXV0b21hdGVkIENvbXBvbmVudCBCdWlsZGVyXShodHRwczovL3d3dy52ZG0uaW8vam9vbWxhLWNvbXBvbmVudC1idWlsZGVyKS4NCj4gRGV2ZWxvcGVkIGJ5IFtMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZV0obWFpbHRvOmpvb21sYUB2ZG0uaW8pDQoNCiMjIERvbmF0aW9ucw0KDQpJZiB5b3Ugd2FudCB0byBzdXBwb3J0IHRoaXMgcHJvamVjdCwgcGxlYXNlIGNvbnNpZGVyIGRvbmF0aW5nOg0KKiBQYXlQYWw6IFtwYXlwYWwubWUvcGF5dmRtXShodHRwczovL3d3dy5wYXlwYWwubWUvcGF5dmRtKQ0KKiBCaXRjb2luOiAxRkx4aVQ2d3l4Z1ozYm9ldmlMa1lKMURScHA0MXV6cHhhDQoqIEV0aGVyZXVtOiAweDI0MzM5MmRhYTNjOWM4YmM4NDFmY2FjZjdjN2Y3MjU0MWNiMTY4MjMg', 'Llewellyn van der Merwe', 'default.txt', '', '', 'Vast Development Method', '2.0.1', 'Copyright (C) 2015. All Rights Reserved', '', '', '', '', 1, '', 'Just a basic demo of the most basic implementations of the [Joomla](http://www.joomla.org) Component Builder\'s ability.', 'joomla@vdm.io', '', '', 'https://github.com/namibia/demo-joomla-3-component', 'ssoiRTgyHnjpbecX2FNhW3d1xwZw3anFWZAhImJtELo=', 'images/vdm/demo500.jpg', '', 'GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html', 'Demo', 'Demo', '.git', 'demo', 4, '', '', 'CS8qKg0KCSAqCUNoYW5nZSB0byBuaWNlIGZhbmN5IGRhdGUNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGZhbmN5RGF0ZSgkZGF0ZSkNCgl7DQoJCWlmICghc2VsZjo6aXNWYWxpZFRpbWVTdGFtcCgkZGF0ZSkpDQoJCXsNCgkJCSRkYXRlID0gc3RydG90aW1lKCRkYXRlKTsNCgkJfQ0KCQlyZXR1cm4gZGF0ZSgnalMgXG9cZiBGIFknLCRkYXRlKTsNCgl9DQoNCgkvKioNCgkgKglDaGFuZ2UgdG8gbmljZSBmYW5jeSB0aW1lIGFuZCBkYXRlDQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBmYW5jeURhdGVUaW1lKCR0aW1lKQ0KCXsNCgkJaWYgKCFzZWxmOjppc1ZhbGlkVGltZVN0YW1wKCR0aW1lKSkNCgkJew0KCQkJJHRpbWUgPSBzdHJ0b3RpbWUoJHRpbWUpOw0KCQl9DQoJCXJldHVybiBkYXRlKCcoRzppKSBqUyBcb1xmIEYgWScsJHRpbWUpOw0KCX0NCg0KCS8qKg0KCSAqCUNoYW5nZSB0byBuaWNlIGhvdXI6bWludXRlcyB0aW1lDQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBmYW5jeVRpbWUoJHRpbWUpDQoJew0KCQlpZiAoIXNlbGY6OmlzVmFsaWRUaW1lU3RhbXAoJHRpbWUpKQ0KCQl7DQoJCQkkdGltZSA9IHN0cnRvdGltZSgkdGltZSk7DQoJCX0NCgkJcmV0dXJuIGRhdGUoJ0c6aScsJHRpbWUpOw0KCX0NCg0KCS8qKg0KCSAqCUNoZWNrIGlmIHN0cmluZyBpcyBhIHZhbGlkIHRpbWUgc3RhbXANCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGlzVmFsaWRUaW1lU3RhbXAoJHRpbWVzdGFtcCkNCgl7DQoJCXJldHVybiAoKGludCkgJHRpbWVzdGFtcCA9PT0gJHRpbWVzdGFtcCkNCgkJJiYgKCR0aW1lc3RhbXAgPD0gUEhQX0lOVF9NQVgpDQoJCSYmICgkdGltZXN0YW1wID49IH5QSFBfSU5UX01BWCk7DQoJfQ0K', 'CQkvLyBHZXQgQXBwbGljYXRpb24gb2JqZWN0DQoJCSRhcHAgPSBKRmFjdG9yeTo6Z2V0QXBwbGljYXRpb24oKTsNCgkJJGFwcC0+ZW5xdWV1ZU1lc3NhZ2UoJ1RoaXMgaXMgYSBkZW1vIGNvbXBvbmVudCBkZXZlbG9wZWQgaW4gPGEgaHJlZj0iaHR0cDovL3ZkbS5iei9jb21wb25lbnQtYnVpbGRlciIgdGFnZXQ9Il9iYWxuayIgdGl0bGU9Ikpvb21sYSBDb21wb25lbnQgQnVpbGRlciI+SkNCPC9hPiEgWW91IGNhbiBidWlsZCBtb3JlIGNvbXBvbmVudHMgbGlrZSB0aGlzIHdpdGggSkNCLCBjaGVja291dCBvdXIgcGFnZSBvbiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdmRtLWlvL0pvb21sYS1Db21wb25lbnQtQnVpbGRlciIgdGFnZXQ9Il9iYWxuayIgdGl0bGU9Ikpvb21sYSBDb21wb25lbnQgQnVpbGRlciI+Z2l0aHViPC9hPiBmb3IgbW9yZSBpbmZvLiBUaGUgZnV0dXJlIG9mIDxhIGhyZWY9Imh0dHA6Ly92ZG0uYnovY29tcG9uZW50LWJ1aWxkZXIiIHRhZ2V0PSJfYmFsbmsiIHRpdGxlPSJKb29tbGEgQ29tcG9uZW50IEJ1aWxkZXIiPkpvb21sYSBDb21wb25lbnQgRGV2ZWxvcG1lbnQ8L2E+IGlzIEhlcmUhJywgJ0luZm8nKTs=', '', '', '', '', 'Demo Component', '', '', 'https://www.vdm.io/', 1, '2016-10-18 11:44:09', '2020-05-21 13:12:17', '', 3, '9K0W+p28QsHgdHuzrpCNpctEhN3vABrEKYTyV3qaQmg=', '', 'efde995e-60aa-4b39-b644-44349dfb660d');
+(25, '', 1, '', '', '', '', '', '', '', 1, 1, '', '', '', '', '', '', '', '', 1, '', '', 1, '', '', '', 2, 'https://raw.githubusercontent.com/namibia/demo-joomla-3-component/master/demo_updateserver.xml', '', '', 1, 'IyAjIyNDb21wb25lbnRfbmFtZSMjIyAoIyMjVkVSU0lPTiMjIykNCg0KIVsjIyNDb21wb25lbnRfbmFtZSMjIyBpbWFnZV0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25hbWliaWEvZGVtby1qb29tbGEtMy1jb21wb25lbnQvbWFzdGVyL2FkbWluL2Fzc2V0cy9pbWFnZXMvdmRtLWNvbXBvbmVudC5qcGcgIlRoZSAjIyNDb21wb25lbnRfbmFtZSMjIyIpDQoNCiMjI0RFU0NSSVBUSU9OIyMjDQoNCiMgQnVpbGQgRGV0YWlscw0KDQorICpDb21wYW55KjogWyMjI0NPTVBBTllOQU1FIyMjXSgjIyNBVVRIT1JXRUJTSVRFIyMjKQ0KKyAqQXV0aG9yKjogWyMjI0FVVEhPUiMjI10obWFpbHRvOiMjI0FVVEhPUkVNQUlMIyMjKQ0KKyAqTmFtZSo6IFsjIyNDb21wb25lbnRfbmFtZSMjI10oIyMjQVVUSE9SV0VCU0lURSMjIykNCisgKkZpcnN0IEJ1aWxkKjogIyMjQ1JFQVRJT05EQVRFIyMjDQorICpMYXN0IEJ1aWxkKjogIyMjQlVJTEREQVRFIyMjDQorICpWZXJzaW9uKjogIyMjVkVSU0lPTiMjIw0KKyAqQ29weXJpZ2h0KjogIyMjQ09QWVJJR0hUIyMjDQorICpMaWNlbnNlKjogIyMjTElDRU5TRSMjIw0KDQojIyBCdWlsZCBUaW1lDQoNCioqIyMjdG90YWxIb3VycyMjIyBIb3VycyoqIG9yICoqIyMjdG90YWxEYXlzIyMjIEVpZ2h0IEhvdXIgRGF5cyoqIChhY3R1YWwgdGltZSB0aGUgYXV0aG9yIHNhdmVkIC0NCmR1ZSB0byBbQXV0b21hdGVkIENvbXBvbmVudCBCdWlsZGVyXShodHRwczovL3d3dy52ZG0uaW8vam9vbWxhLWNvbXBvbmVudC1idWlsZGVyKSkNCg0KPiAoaWYgY3JlYXRpbmcgYSBmb2xkZXIgYW5kIGZpbGUgdG9vayAqKjUgc2Vjb25kcyoqIGFuZCB3cml0aW5nIG9uZSBsaW5lIG9mIGNvZGUgdG9vayAqKjEwIHNlY29uZHMqKiwNCj4gbmV2ZXIgbWFraW5nIG9uZSBtaXN0YWtlIG9yIHRha2luZyBhbnkgY29mZmVlIGJyZWFrLikNCg0KKyAqTGluZSBjb3VudCo6ICoqIyMjTElORV9DT1VOVCMjIyoqDQorICpGaWxlIGNvdW50KjogKiojIyNGSUxFX0NPVU5UIyMjKioNCisgKkZvbGRlciBjb3VudCo6ICoqIyMjRk9MREVSX0NPVU5UIyMjKioNCg0KKiojIyNhY3R1YWxIb3Vyc1NwZW50IyMjIEhvdXJzKiogb3IgKiojIyNhY3R1YWxEYXlzU3BlbnQjIyMgRWlnaHQgSG91ciBEYXlzKiogKHRoZSBhY3R1YWwgdGltZSB0aGUgYXV0aG9yIHNwZW50KQ0KDQo+ICh3aXRoIHRoZSBmb2xsb3dpbmcgYnJlYWsgZG93bjoNCj4gKipkZWJ1Z2dpbmcgQCMjI2RlYnVnZ2luZ0hvdXJzIyMjaG91cnMqKiA9IGNvZGluZ3RpbWUgLyA0Ow0KPiAqKnBsYW5uaW5nIEAjIyNwbGFubmluZ0hvdXJzIyMjaG91cnMqKiA9IGNvZGluZ3RpbWUgLyA3Ow0KPiAqKm1hcHBpbmcgQCMjI21hcHBpbmdIb3VycyMjI2hvdXJzKiogPSBjb2Rpbmd0aW1lIC8gMTA7DQo+ICoqb2ZmaWNlIEAjIyNvZmZpY2VIb3VycyMjI2hvdXJzKiogPSBjb2Rpbmd0aW1lIC8gNjspDQoNCioqIyMjYWN0dWFsVG90YWxIb3VycyMjIyBIb3VycyoqIG9yICoqIyMjYWN0dWFsVG90YWxEYXlzIyMjIEVpZ2h0IEhvdXIgRGF5cyoqDQooYSB0b3RhbCBvZiB0aGUgcmVhbGlzdGljIHRpbWUgZnJhbWUgZm9yIHRoaXMgcHJvamVjdCkNCg0KPiAoaWYgY3JlYXRpbmcgYSBmb2xkZXIgYW5kIGZpbGUgdG9vayAqKjUgc2Vjb25kcyoqIGFuZCB3cml0aW5nIG9uZSBsaW5lIG9mIGNvZGUgdG9vayAqKjEwIHNlY29uZHMqKiwNCj4gd2l0aCB0aGUgbm9ybWFsIGV2ZXJ5ZGF5IHJlYWxpdGllcyBhdCB0aGUgb2ZmaWNlLCB0aGF0IGluY2x1ZGVzIHRoZSBjb21wb25lbnQgcGxhbm5pbmcsIG1hcHBpbmcgJiBkZWJ1Z2dpbmcuKQ0KDQpQcm9qZWN0IGR1cmF0aW9uOiAqKiMjI3Byb2plY3RXZWVrVGltZSMjIyB3ZWVrcyoqIG9yICoqIyMjcHJvamVjdE1vbnRoVGltZSMjIyBtb250aHMqKg0KDQo+IFRoaXMgKipjb21wb25lbnQqKiB3YXMgYnVpbGQgd2l0aCBhIEpvb21sYSBbQXV0b21hdGVkIENvbXBvbmVudCBCdWlsZGVyXShodHRwczovL3d3dy52ZG0uaW8vam9vbWxhLWNvbXBvbmVudC1idWlsZGVyKS4NCj4gRGV2ZWxvcGVkIGJ5IFtMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZV0obWFpbHRvOmpvb21sYUB2ZG0uaW8pDQoNCiMjIERvbmF0aW9ucw0KDQpJZiB5b3Ugd2FudCB0byBzdXBwb3J0IHRoaXMgcHJvamVjdCwgcGxlYXNlIGNvbnNpZGVyIGRvbmF0aW5nOg0KICogUGF5UGFsOiBbcGF5cGFsLm1lL1tbW3BheXBhbG1lXV1dXShodHRwczovL3d3dy5wYXlwYWwubWUvW1tbcGF5cGFsbWVdXV0pDQogKiBCaXRjb2luOiBbW1tiaXRjb2luYWRkcmVzc11dXQ0KICogRXRoZXJldW06IFtbW2V0aGVyZXVtYWRkcmVzc11dXQ==', 'Llewellyn van der Merwe', 'default.txt', '', '', 'Vast Development Method', '2.0.2', 'Copyright (C) 2015. All Rights Reserved', '', '', '', '', 1, '', 'Just a basic demo of the most basic implementations of the [Joomla](http://www.joomla.org) Component Builder\'s ability.', 'joomla@vdm.io', '', '', 'https://github.com/namibia/demo-joomla-3-component', 'HFrCeQ/dZlNywC+BnkD7+Jznb1AoSMFkvlZvLrWJnP8=', 'images/vdm/demo500.jpg', '', 'GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html', 'Demo', 'Demo', '.git', 'demo', 4, '', '', 'CS8qKg0KCSAqCUNoYW5nZSB0byBuaWNlIGZhbmN5IGRhdGUNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGZhbmN5RGF0ZSgkZGF0ZSkNCgl7DQoJCWlmICghc2VsZjo6aXNWYWxpZFRpbWVTdGFtcCgkZGF0ZSkpDQoJCXsNCgkJCSRkYXRlID0gc3RydG90aW1lKCRkYXRlKTsNCgkJfQ0KCQlyZXR1cm4gZGF0ZSgnalMgXG9cZiBGIFknLCRkYXRlKTsNCgl9DQoNCgkvKioNCgkgKglDaGFuZ2UgdG8gbmljZSBmYW5jeSB0aW1lIGFuZCBkYXRlDQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBmYW5jeURhdGVUaW1lKCR0aW1lKQ0KCXsNCgkJaWYgKCFzZWxmOjppc1ZhbGlkVGltZVN0YW1wKCR0aW1lKSkNCgkJew0KCQkJJHRpbWUgPSBzdHJ0b3RpbWUoJHRpbWUpOw0KCQl9DQoJCXJldHVybiBkYXRlKCcoRzppKSBqUyBcb1xmIEYgWScsJHRpbWUpOw0KCX0NCg0KCS8qKg0KCSAqCUNoYW5nZSB0byBuaWNlIGhvdXI6bWludXRlcyB0aW1lDQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBmYW5jeVRpbWUoJHRpbWUpDQoJew0KCQlpZiAoIXNlbGY6OmlzVmFsaWRUaW1lU3RhbXAoJHRpbWUpKQ0KCQl7DQoJCQkkdGltZSA9IHN0cnRvdGltZSgkdGltZSk7DQoJCX0NCgkJcmV0dXJuIGRhdGUoJ0c6aScsJHRpbWUpOw0KCX0NCg0KCS8qKg0KCSAqCUNoZWNrIGlmIHN0cmluZyBpcyBhIHZhbGlkIHRpbWUgc3RhbXANCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGlzVmFsaWRUaW1lU3RhbXAoJHRpbWVzdGFtcCkNCgl7DQoJCXJldHVybiAoKGludCkgJHRpbWVzdGFtcCA9PT0gJHRpbWVzdGFtcCkNCgkJJiYgKCR0aW1lc3RhbXAgPD0gUEhQX0lOVF9NQVgpDQoJCSYmICgkdGltZXN0YW1wID49IH5QSFBfSU5UX01BWCk7DQoJfQ0K', 'CQkvLyBHZXQgQXBwbGljYXRpb24gb2JqZWN0DQoJCSRhcHAgPSBKRmFjdG9yeTo6Z2V0QXBwbGljYXRpb24oKTsNCgkJJGFwcC0+ZW5xdWV1ZU1lc3NhZ2UoJ1RoaXMgaXMgYSBkZW1vIGNvbXBvbmVudCBkZXZlbG9wZWQgaW4gPGEgaHJlZj0iaHR0cDovL3ZkbS5iei9jb21wb25lbnQtYnVpbGRlciIgdGFnZXQ9Il9iYWxuayIgdGl0bGU9Ikpvb21sYSBDb21wb25lbnQgQnVpbGRlciI+SkNCPC9hPiEgWW91IGNhbiBidWlsZCBtb3JlIGNvbXBvbmVudHMgbGlrZSB0aGlzIHdpdGggSkNCLCBjaGVja291dCBvdXIgcGFnZSBvbiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdmRtLWlvL0pvb21sYS1Db21wb25lbnQtQnVpbGRlciIgdGFnZXQ9Il9iYWxuayIgdGl0bGU9Ikpvb21sYSBDb21wb25lbnQgQnVpbGRlciI+Z2l0aHViPC9hPiBmb3IgbW9yZSBpbmZvLiBUaGUgZnV0dXJlIG9mIDxhIGhyZWY9Imh0dHA6Ly92ZG0uYnovY29tcG9uZW50LWJ1aWxkZXIiIHRhZ2V0PSJfYmFsbmsiIHRpdGxlPSJKb29tbGEgQ29tcG9uZW50IEJ1aWxkZXIiPkpvb21sYSBDb21wb25lbnQgRGV2ZWxvcG1lbnQ8L2E+IGlzIEhlcmUhJywgJ0luZm8nKTs=', '', '', '', '', 'Demo Component', '', '', 'https://www.vdm.io/', 1, '2016-10-18 11:44:09', '2020-06-01 22:30:51', '', 3, 'LqVjNz4RpFQus30hSwGAxD6C55z/W+xG/qO+0Ea2QUA=', '', 'efde995e-60aa-4b39-b644-44349dfb660d');
--
-- Dumping data for table `#__componentbuilder_admin_view`
@@ -2312,7 +2312,7 @@ INSERT INTO `#__componentbuilder_component_custom_admin_views` (`id`, `addcustom
--
INSERT INTO `#__componentbuilder_component_updates` (`id`, `joomla_component`, `version_update`, `published`, `created`, `modified`, `version`, `hits`, `ordering`) VALUES
-(27, 25, '{\"version_update0\":{\"version\":\"1.0.5\",\"mysql\":\"\",\"url\":\"https:\\/\\/github.com\\/namibia\\/demo-joomla-3-component\\/archive\\/v1.0.5.zip\"},\"version_update1\":{\"version\":\"2.0.0\",\"mysql\":\"ALTER TABLE `#__demo_look` ENGINE = InnoDB;\\n\\nALTER TABLE `#__demo_look` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\",\"url\":\"https:\\/\\/github.com\\/namibia\\/demo-joomla-3-component\\/archive\\/v2.0.0.zip\"},\"version_update2\":{\"version\":\"2.0.1\",\"mysql\":\"\",\"url\":\"http:\\/\\/domain.com\\/demo.zip\"}}', 1, '2017-10-28 03:56:26', '2020-05-21 13:12:17', 6, '', '');
+(27, 25, '{\"version_update1\":{\"version\":\"2.0.0\",\"mysql\":\"ALTER TABLE `#__demo_look` ENGINE = InnoDB;\\r\\n\\r\\nALTER TABLE `#__demo_look` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\",\"url\":\"https:\\/\\/github.com\\/namibia\\/demo-joomla-3-component\\/archive\\/v2.0.0.zip\"},\"version_update2\":{\"version\":\"2.0.2\",\"mysql\":\"\",\"url\":\"https:\\/\\/github.com\\/namibia\\/demo-joomla-3-component\\/archive\\/master.zip\"}}', 1, '2017-10-28 03:56:26', '2020-05-30 23:56:04', 7, '', '');
--
-- Dumping data for table `#__componentbuilder_component_mysql_tweaks`
diff --git a/componentbuilder.xml b/componentbuilder.xml
index d4551f41b..43dbca171 100644
--- a/componentbuilder.xml
+++ b/componentbuilder.xml
@@ -1,7 +1,7 @@
COM_COMPONENTBUILDER
- 30th May, 2020
+ 1st June, 2020
Llewellyn van der Merwe
llewellyn@joomlacomponentbuilder.com
http://www.joomlacomponentbuilder.com
diff --git a/script.php b/script.php
index a6775ed6a..021103f47 100644
--- a/script.php
+++ b/script.php
@@ -5898,6 +5898,7 @@ class com_componentbuilderInstallerScript
'com_componentbuilder.fields' => 'com_componentbuilder.field',
'com_componentbuilder.fieldtypes' => 'com_componentbuilder.fieldtype'
);
+
// targeted tables (to fix all places categories are mapped into Joomla)
$fix_tables = array(
'content_types' => array(
@@ -5917,7 +5918,6 @@ class com_componentbuilderInstallerScript
'key' => 'extension',
'suffix' => '')
);
-
// the script that does the work
foreach ($fix_categories as $fix => $category)
{
--
2.40.1
From e86ab88f5cdcf8cc0c247265edf21044d12d8598 Mon Sep 17 00:00:00 2001
From: Llewellyn van der Merwe
Date: Thu, 25 Jun 2020 21:22:30 +0200
Subject: [PATCH 04/14] Fixed gh-571 compiler path errors.
---
README.md | 4 +-
admin/README.txt | 4 +-
admin/compiler/joomla_3/Helper.php | 1 +
admin/compiler/joomla_3/Helper_site.php | 1 +
admin/compiler/joomla_3/edit_site.php | 5 +-
admin/compiler/joomla_3/layout_admin.php | 20 +++++++
admin/compiler/joomla_3/settings.json | 5 ++
admin/helpers/compiler/a_Get.php | 43 ++++++++++++++-
admin/helpers/compiler/b_Structure.php | 46 +++++++++++-----
admin/helpers/compiler/e_Interpretation.php | 53 +++++++++++++++----
admin/helpers/compiler/f_Infusion.php | 4 ++
admin/helpers/componentbuilder.php | 13 +++++
admin/models/admin_view.php | 13 +++--
admin/models/class_method.php | 13 +++--
admin/models/class_property.php | 13 +++--
admin/models/custom_admin_view.php | 13 +++--
admin/models/dynamic_get.php | 13 +++--
admin/models/field.php | 13 +++--
admin/models/fieldtype.php | 13 +++--
admin/models/forms/dynamic_get.xml | 4 +-
admin/models/import_language_translations.php | 2 +-
admin/models/joomla_component.php | 13 +++--
admin/models/joomla_module.php | 13 +++--
admin/models/joomla_plugin.php | 13 +++--
admin/models/library.php | 13 +++--
admin/models/site_view.php | 13 +++--
admin/models/snippet.php | 13 +++--
admin/sql/install.mysql.utf8.sql | 11 ++--
admin/views/admin_custom_tabs/tmpl/edit.php | 2 +-
admin/views/admin_fields/tmpl/edit.php | 2 +-
.../admin_fields_conditions/tmpl/edit.php | 2 +-
.../admin_fields_relations/tmpl/edit.php | 2 +-
admin/views/admin_view/tmpl/edit.php | 2 +-
admin/views/class_extends/tmpl/edit.php | 2 +-
admin/views/class_method/tmpl/edit.php | 2 +-
admin/views/class_property/tmpl/edit.php | 2 +-
.../views/component_admin_views/tmpl/edit.php | 2 +-
admin/views/component_config/tmpl/edit.php | 2 +-
.../tmpl/edit.php | 2 +-
.../tmpl/edit.php | 2 +-
admin/views/component_dashboard/tmpl/edit.php | 2 +-
.../component_files_folders/tmpl/edit.php | 2 +-
admin/views/component_modules/tmpl/edit.php | 2 +-
.../component_mysql_tweaks/tmpl/edit.php | 2 +-
.../component_placeholders/tmpl/edit.php | 2 +-
admin/views/component_plugins/tmpl/edit.php | 2 +-
.../views/component_site_views/tmpl/edit.php | 2 +-
admin/views/component_updates/tmpl/edit.php | 2 +-
admin/views/custom_admin_view/tmpl/edit.php | 2 +-
admin/views/custom_code/tmpl/edit.php | 2 +-
admin/views/dynamic_get/tmpl/edit.php | 2 +-
admin/views/field/tmpl/edit.php | 2 +-
admin/views/fieldtype/tmpl/edit.php | 2 +-
admin/views/help_document/tmpl/edit.php | 2 +-
admin/views/joomla_component/tmpl/edit.php | 2 +-
admin/views/joomla_module/tmpl/edit.php | 2 +-
.../tmpl/edit.php | 2 +-
.../views/joomla_module_updates/tmpl/edit.php | 2 +-
admin/views/joomla_plugin/tmpl/edit.php | 2 +-
.../tmpl/edit.php | 2 +-
admin/views/joomla_plugin_group/tmpl/edit.php | 2 +-
.../views/joomla_plugin_updates/tmpl/edit.php | 2 +-
admin/views/language/tmpl/edit.php | 2 +-
.../views/language_translation/tmpl/edit.php | 2 +-
admin/views/layout/tmpl/edit.php | 2 +-
admin/views/library/tmpl/edit.php | 2 +-
admin/views/library_config/tmpl/edit.php | 2 +-
.../library_files_folders_urls/tmpl/edit.php | 2 +-
admin/views/placeholder/tmpl/edit.php | 2 +-
admin/views/server/tmpl/edit.php | 2 +-
admin/views/site_view/tmpl/edit.php | 2 +-
admin/views/snippet/tmpl/edit.php | 2 +-
admin/views/snippet_type/tmpl/edit.php | 2 +-
admin/views/template/tmpl/edit.php | 2 +-
admin/views/validation_rule/tmpl/edit.php | 2 +-
componentbuilder.xml | 2 +-
site/helpers/componentbuilder.php | 13 +++++
77 files changed, 369 insertions(+), 125 deletions(-)
create mode 100644 admin/compiler/joomla_3/layout_admin.php
diff --git a/README.md b/README.md
index f42ef9898..8ab0e94ec 100644
--- a/README.md
+++ b/README.md
@@ -144,11 +144,11 @@ TODO
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
+ *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder)
+ *First Build*: 30th April, 2015
-+ *Last Build*: 1st June, 2020
++ *Last Build*: 24th June, 2020
+ *Version*: 2.11.2
+ *Copyright*: Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved.
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
-+ *Line count*: **282524**
++ *Line count*: **282642**
+ *Field count*: **1522**
+ *File count*: **1785**
+ *Folder count*: **295**
diff --git a/admin/README.txt b/admin/README.txt
index f42ef9898..8ab0e94ec 100644
--- a/admin/README.txt
+++ b/admin/README.txt
@@ -144,11 +144,11 @@ TODO
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
+ *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder)
+ *First Build*: 30th April, 2015
-+ *Last Build*: 1st June, 2020
++ *Last Build*: 24th June, 2020
+ *Version*: 2.11.2
+ *Copyright*: Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved.
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
-+ *Line count*: **282524**
++ *Line count*: **282642**
+ *Field count*: **1522**
+ *File count*: **1785**
+ *Folder count*: **295**
diff --git a/admin/compiler/joomla_3/Helper.php b/admin/compiler/joomla_3/Helper.php
index a33b227ea..5d0f8e464 100644
--- a/admin/compiler/joomla_3/Helper.php
+++ b/admin/compiler/joomla_3/Helper.php
@@ -18,6 +18,7 @@ defined('_JEXEC') or die('Restricted access');
defined('_JEXEC') or die('Restricted access');
use Joomla\CMS\Language\Language;
+use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;###ADMIN_HELPER_CLASS_HEADER###
diff --git a/admin/compiler/joomla_3/Helper_site.php b/admin/compiler/joomla_3/Helper_site.php
index 4faaf7a16..c3e36bd54 100644
--- a/admin/compiler/joomla_3/Helper_site.php
+++ b/admin/compiler/joomla_3/Helper_site.php
@@ -18,6 +18,7 @@ defined('_JEXEC') or die('Restricted access');
defined('_JEXEC') or die('Restricted access');
use Joomla\CMS\Language\Language;
+use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;###SITE_HELPER_CLASS_HEADER###
diff --git a/admin/compiler/joomla_3/edit_site.php b/admin/compiler/joomla_3/edit_site.php
index f9362c09c..17f2e9277 100644
--- a/admin/compiler/joomla_3/edit_site.php
+++ b/admin/compiler/joomla_3/edit_site.php
@@ -24,9 +24,10 @@ JHtml::_('formbehavior.chosen', 'select');
JHtml::_('behavior.keepalive');
JHtml::_('behavior.tabstate');
JHtml::_('behavior.calendar');
-$componentParams = $this->params; // will be removed just use $this->params instead
?>
+
toolbar->render(); ?>
###EDITBODYSCRIPT###
+
+ ###EDITBODYSCRIPT###
diff --git a/admin/compiler/joomla_3/layout_admin.php b/admin/compiler/joomla_3/layout_admin.php
new file mode 100644
index 000000000..b1c513391
--- /dev/null
+++ b/admin/compiler/joomla_3/layout_admin.php
@@ -0,0 +1,20 @@
+
+ * @github Joomla Component Builder
+ * @copyright Copyright (C) 2015 - 2018 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');
+?>
+###BOM###
+
+// No direct access to this file
+defined('JPATH_BASE') or die('Restricted access');###ADMIN_LAYOUT_CODE###
+
+?>###ADMIN_LAYOUT_BODY###
diff --git a/admin/compiler/joomla_3/settings.json b/admin/compiler/joomla_3/settings.json
index a012e154e..748bc7e17 100644
--- a/admin/compiler/joomla_3/settings.json
+++ b/admin/compiler/joomla_3/settings.json
@@ -376,6 +376,11 @@
"rename": "JFormRule",
"type": "rule"
},
+ "layout_admin.php": {
+ "path": "c0mp0n3nt/admin/layouts",
+ "rename": "layout_admin",
+ "type": "layout"
+ },
"layoutitems.php": {
"path": "c0mp0n3nt/admin/layouts/VIEW",
"rename": "layoutitems",
diff --git a/admin/helpers/compiler/a_Get.php b/admin/helpers/compiler/a_Get.php
index 7b0690610..3f3ffa46d 100644
--- a/admin/helpers/compiler/a_Get.php
+++ b/admin/helpers/compiler/a_Get.php
@@ -1413,6 +1413,8 @@ class Get
? json_decode($component->addadmin_views, true) : null;
if (ComponentbuilderHelper::checkArray($component->addadmin_views))
{
+ $this->lang = 'admin';
+ $this->target = 'admin';
// sort the views according to order
usort(
$component->addadmin_views, function ($a, $b) {
@@ -2923,6 +2925,10 @@ class Get
false,
$guiMapper
);
+
+ // check if we have template or layouts to load
+ $this->setTemplateAndLayoutData($view->{$scripter}, $name_single);
+
unset($view->{$scripter});
}
}
@@ -2953,6 +2959,9 @@ class Get
),
$guiMapper
);
+
+ // check if we have template or layouts to load
+ $this->setTemplateAndLayoutData($view->{$button_code_field}, $name_single);
}
}
// set the button array
@@ -3045,6 +3054,7 @@ class Get
$name_single,
$guiMapper
);
+
if ($addAjaxSite)
{
$this->setCustomScriptBuilder(
@@ -4988,6 +4998,8 @@ class Get
{
$script = $this->setGuiCodePlaceholder($script, $config);
}
+ // add base64 locking option of a string
+ $script = $this->setBase64LOCK($script);
// load the script
if ($first && $second && $third)
{
@@ -9851,7 +9863,7 @@ class Get
*/
protected function customCodeFactory(&$paths, &$today)
{
- // we must first store the current woking directory
+ // we must first store the current working directory
$joomla = getcwd();
$counter = array(1 => 0, 2 => 0);
// file types to get
@@ -10337,6 +10349,35 @@ class Get
}
}
+ /**
+ * Lock a string with bsae64 (basic)
+ *
+ * @param string $string The code string
+ *
+ * @return string
+ *
+ */
+ protected function setBase64LOCK($script)
+ {
+ if (strpos($script, 'LOCKBASE64((((') !== false)
+ {
+ // get the strings
+ $values = ComponentbuilderHelper::getAllBetween($script, 'LOCKBASE64((((', '))))');
+ $locker = array();
+ // convert them
+ foreach($values as $value)
+ {
+ $locker['LOCKBASE64((((' . $value . '))))'] = "base64_decode( preg_replace('/\s+/', ''," .
+ PHP_EOL . $this->_t(2) . "'" .
+ wordwrap(base64_encode($value), 64, PHP_EOL . $this->_t(2), true) .
+ "'));";
+ }
+ // update the script
+ return $this->setPlaceholders($script, $locker);
+ }
+ return $script;
+ }
+
/**
* Set the JCB GUI code placeholder
*
diff --git a/admin/helpers/compiler/b_Structure.php b/admin/helpers/compiler/b_Structure.php
index 735ce1e20..caea7cafb 100644
--- a/admin/helpers/compiler/b_Structure.php
+++ b/admin/helpers/compiler/b_Structure.php
@@ -2556,7 +2556,8 @@ class Structure extends Get
public function moveFieldsRules($field, $path)
{
// check if we have a subform or repeatable field
- if ($field['type_name'] === 'subform' || $field['type_name'] === 'repeatable')
+ if ($field['type_name'] === 'subform'
+ || $field['type_name'] === 'repeatable')
{
// since we could have a custom field or rule inside
$this->moveMultiFieldsRules($field, $path);
@@ -2624,7 +2625,7 @@ class Structure extends Get
* move the fields and Rules of multi fields
*
* @param array $multi_field The field data
- * @param string $path The path to move to
+ * @param string $path The path to move to
*
* @return void
*
@@ -2632,13 +2633,19 @@ class Structure extends Get
protected function moveMultiFieldsRules($multi_field, $path)
{
// get the fields ids
- $ids = array_map( 'trim', explode(',', ComponentbuilderHelper::getBetween($multi_field['settings']->xml, 'fields="', '"')));
+ $ids = array_map(
+ 'trim', explode(
+ ',', ComponentbuilderHelper::getBetween(
+ $multi_field['settings']->xml, 'fields="', '"'
+ )
+ )
+ );
if (ComponentbuilderHelper::checkArray($ids))
{
foreach ($ids as $id)
{
// setup the field
- $field = array();
+ $field = array();
$field['field'] = $id;
$this->setFieldDetails($field);
// move field and rules if needed
@@ -2835,10 +2842,24 @@ class Structure extends Get
{
$path = $details->path;
}
- $zipPath = str_replace('c0mp0n3nt/', '', $path);
- $path = str_replace(
- 'c0mp0n3nt/', $this->componentPath . '/', $path
- );
+ // make sure we have component to replace
+ if (strpos($path, 'c0mp0n3nt') !== false)
+ {
+ $zipPath = str_replace('c0mp0n3nt/', '', $path);
+ $path = str_replace(
+ 'c0mp0n3nt/', $this->componentPath . '/', $path
+ );
+ }
+ else
+ {
+ $this->app->enqueueMessage(
+ JText::sprintf(
+ '
c0mp0n3nt issue foundThe path (%s) could not be used. ',
+ $path
+ ), 'Error'
+ );
+ continue;
+ }
// setup the folder
if (!JFolder::exists($path))
@@ -2878,7 +2899,7 @@ class Structure extends Get
// move the file to its place
JFile::copy(
$this->templatePath . '/' . $item,
- $path . '/' . $new, '', true
+ $path . '/' . $new
);
// count the file created
$this->fileCount++;
@@ -2934,9 +2955,10 @@ class Structure extends Get
'rename' => 1);
$this->componentData->folders[] = $importView;
// move the phpspreadsheet Folder (TODO we must move this to a library package)
- $PHPExcel = array('folderpath' => 'JPATH_LIBRARIES/phpspreadsheet/vendor',
- 'path' => '/libraries/phpspreadsheet/',
- 'rename' => 0);
+ $PHPExcel
+ = array('folderpath' => 'JPATH_LIBRARIES/phpspreadsheet/vendor',
+ 'path' => '/libraries/phpspreadsheet/',
+ 'rename' => 0);
$this->componentData->folders[] = $PHPExcel;
}
if (2 == $this->uikit || 1 == $this->uikit)
diff --git a/admin/helpers/compiler/e_Interpretation.php b/admin/helpers/compiler/e_Interpretation.php
index 1cbc5af5a..14f012682 100644
--- a/admin/helpers/compiler/e_Interpretation.php
+++ b/admin/helpers/compiler/e_Interpretation.php
@@ -5260,7 +5260,10 @@ class Interpretation extends Fields
. " this is where you want to load your module position";
$addModule[] = $this->_t(3)
. "\$modules = JModuleHelper::getModules(\$position);";
- $addModule[] = $this->_t(3) . "if (\$modules)";
+ $addModule[] = $this->_t(3) . "if ("
+ . $this->fileContentStatic[$this->hhh . 'Component'
+ . $this->hhh]
+ . "Helper::checkArray(\$modules, true))";
$addModule[] = $this->_t(3) . "{";
$addModule[] = $this->_t(4) . "//" . $this->setLine(__LINE__)
. " set the place holder";
@@ -12622,10 +12625,11 @@ class Interpretation extends Fields
if ($items_one || $items_two)
{
// check if the item has permissions.
- $publishingPer = array();
- $allToBeChekced = array('core.delete', 'core.edit.created_by',
- 'core.edit.state', 'core.edit.created');
- foreach ($allToBeChekced as $core_permission)
+ $publishingPerOR = array();
+ $allToBeChekcedOR = array('core.edit.created_by',
+ 'core.edit.created',
+ 'core.edit.state');
+ foreach ($allToBeChekcedOR as $core_permission)
{
if ($coreLoad && isset($core[$core_permission])
&& isset($this->permissionBuilder['global'][$core[$core_permission]])
@@ -12638,13 +12642,38 @@ class Interpretation extends Fields
))
{
// set permissions.
- $publishingPer[] = "\$this->canDo->get('"
+ $publishingPerOR[] = "\$this->canDo->get('"
. $core[$core_permission] . "')";
}
else
{
// set permissions.
- $publishingPer[] = "\$this->canDo->get('" . $core_permission
+ $publishingPerOR[] = "\$this->canDo->get('" . $core_permission
+ . "')";
+ }
+ }
+ $publishingPerAND = array();
+ $allToBeChekcedAND = array('core.delete', 'core.edit.state');
+ foreach ($allToBeChekcedAND as $core_permission)
+ {
+ if ($coreLoad && isset($core[$core_permission])
+ && isset($this->permissionBuilder['global'][$core[$core_permission]])
+ && ComponentbuilderHelper::checkArray(
+ $this->permissionBuilder['global'][$core[$core_permission]]
+ )
+ && in_array(
+ $view_name_single,
+ $this->permissionBuilder['global'][$core[$core_permission]]
+ ))
+ {
+ // set permissions.
+ $publishingPerAND[] = "\$this->canDo->get('"
+ . $core[$core_permission] . "')";
+ }
+ else
+ {
+ // set permissions.
+ $publishingPerAND[] = "\$this->canDo->get('" . $core_permission
. "')";
}
}
@@ -12655,8 +12684,11 @@ class Interpretation extends Fields
{
$tabs .= $_customTabHTML;
}
+ // add the AND values to OR
+ $publishingPerOR[] = '(' . implode(' && ', $publishingPerAND) . ')';
+ // now build the complete showhide behaviour for the publishing area
$tabs .= PHP_EOL . PHP_EOL . $this->_t(1) . "";
// set the default publishing tab
$tabs .= PHP_EOL . $this->_t(1)
@@ -20821,7 +20853,7 @@ class Interpretation extends Fields
// move the image to its place
JFile::copy(
JPATH_SITE . '/' . $path,
- $imagePath . '/vdm-component.' . $type, '', true
+ $imagePath . '/vdm-component.' . $type
);
// now set the type to global for re-use
$this->componentImageType = $type;
@@ -21060,8 +21092,7 @@ class Interpretation extends Fields
}
// move the image to its place
JFile::copy(
- JPATH_SITE . '/' . $path, $imagePath . '/' . $imageName,
- '', true
+ JPATH_SITE . '/' . $path, $imagePath . '/' . $imageName
);
}
}
diff --git a/admin/helpers/compiler/f_Infusion.php b/admin/helpers/compiler/f_Infusion.php
index 6e2e3ca9d..f0f9689f4 100644
--- a/admin/helpers/compiler/f_Infusion.php
+++ b/admin/helpers/compiler/f_Infusion.php
@@ -1077,6 +1077,9 @@ class Infusion extends Interpretation
);
}
+ // setup the layouts
+ $this->setCustomViewLayouts();
+
// ADMIN_HELPER_CLASS_HEADER
$this->fileContentStatic[$this->hhh . 'ADMIN_HELPER_CLASS_HEADER'
. $this->hhh]
@@ -1760,6 +1763,7 @@ class Infusion extends Interpretation
&$this->placeholders, &$this->hhh)
);
}
+
// setup the layouts
$this->setCustomViewLayouts();
}
diff --git a/admin/helpers/componentbuilder.php b/admin/helpers/componentbuilder.php
index 433fc969a..7656d19ca 100644
--- a/admin/helpers/componentbuilder.php
+++ b/admin/helpers/componentbuilder.php
@@ -13,6 +13,7 @@
defined('_JEXEC') or die('Restricted access');
use Joomla\CMS\Language\Language;
+use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;
use PhpOffice\PhpSpreadsheet\IOFactory;
@@ -5787,6 +5788,18 @@ abstract class ComponentbuilderHelper
return date('Y' . $spacer . 'm' . $spacer . 'd', $date);
}
+ /**
+ * set the date as 03/05/2004
+ */
+ public static function setDayMonthYear($date, $spacer = '/')
+ {
+ if (!self::isValidTimeStamp($date))
+ {
+ $date = strtotime($date);
+ }
+ return date('d' . $spacer . 'm' . $spacer . 'Y', $date);
+ }
+
/**
* Check if string is a valid time stamp
*/
diff --git a/admin/models/admin_view.php b/admin/models/admin_view.php
index 0f469f420..abddb2482 100644
--- a/admin/models/admin_view.php
+++ b/admin/models/admin_view.php
@@ -800,8 +800,8 @@ class ComponentbuilderModelAdmin_view extends JModelAdmin
}
- // Only load the GUID if new item
- if (0 == $id)
+ // Only load the GUID if new item (or empty)
+ if (0 == $id || !($val = $form->getValue('guid')))
{
$form->setValue('guid', null, ComponentbuilderHelper::GUID());
}
@@ -1491,8 +1491,15 @@ class ComponentbuilderModelAdmin_view extends JModelAdmin
}
// Set the GUID if empty or not valid
- if (isset($data['guid']) && !ComponentbuilderHelper::validGUID($data['guid'], "admin_view", $data['id']))
+ if (empty($data['guid']) && $data['id'] > 0)
{
+ // get the existing one
+ $data['guid'] = (string) ComponentbuilderHelper::getVar('admin_view', $data['id'], 'id', 'guid');
+ }
+ // Set the GUID if empty or not valid
+ while (!ComponentbuilderHelper::validGUID($data['guid'], "admin_view", $data['id']))
+ {
+ // must always be set
$data['guid'] = (string) ComponentbuilderHelper::GUID();
}
diff --git a/admin/models/class_method.php b/admin/models/class_method.php
index 004874715..0ec5d128d 100644
--- a/admin/models/class_method.php
+++ b/admin/models/class_method.php
@@ -342,8 +342,8 @@ class ComponentbuilderModelClass_method extends JModelAdmin
}
- // Only load the GUID if new item
- if (0 == $id)
+ // Only load the GUID if new item (or empty)
+ if (0 == $id || !($val = $form->getValue('guid')))
{
$form->setValue('guid', null, ComponentbuilderHelper::GUID());
}
@@ -972,8 +972,15 @@ class ComponentbuilderModelClass_method extends JModelAdmin
$data['name'] = ComponentbuilderHelper::safeClassFunctionName($data['name']);
// Set the GUID if empty or not valid
- if (isset($data['guid']) && !ComponentbuilderHelper::validGUID($data['guid'], "class_method", $data['id']))
+ if (empty($data['guid']) && $data['id'] > 0)
{
+ // get the existing one
+ $data['guid'] = (string) ComponentbuilderHelper::getVar('class_method', $data['id'], 'id', 'guid');
+ }
+ // Set the GUID if empty or not valid
+ while (!ComponentbuilderHelper::validGUID($data['guid'], "class_method", $data['id']))
+ {
+ // must always be set
$data['guid'] = (string) ComponentbuilderHelper::GUID();
}
diff --git a/admin/models/class_property.php b/admin/models/class_property.php
index 6a6af7baf..a79d84a9b 100644
--- a/admin/models/class_property.php
+++ b/admin/models/class_property.php
@@ -333,8 +333,8 @@ class ComponentbuilderModelClass_property extends JModelAdmin
}
- // Only load the GUID if new item
- if (0 == $id)
+ // Only load the GUID if new item (or empty)
+ if (0 == $id || !($val = $form->getValue('guid')))
{
$form->setValue('guid', null, ComponentbuilderHelper::GUID());
}
@@ -963,8 +963,15 @@ class ComponentbuilderModelClass_property extends JModelAdmin
$data['name'] = ComponentbuilderHelper::safeClassFunctionName($data['name']);
// Set the GUID if empty or not valid
- if (isset($data['guid']) && !ComponentbuilderHelper::validGUID($data['guid'], "class_property", $data['id']))
+ if (empty($data['guid']) && $data['id'] > 0)
{
+ // get the existing one
+ $data['guid'] = (string) ComponentbuilderHelper::getVar('class_property', $data['id'], 'id', 'guid');
+ }
+ // Set the GUID if empty or not valid
+ while (!ComponentbuilderHelper::validGUID($data['guid'], "class_property", $data['id']))
+ {
+ // must always be set
$data['guid'] = (string) ComponentbuilderHelper::GUID();
}
diff --git a/admin/models/custom_admin_view.php b/admin/models/custom_admin_view.php
index a21f8c5c7..91af2d657 100644
--- a/admin/models/custom_admin_view.php
+++ b/admin/models/custom_admin_view.php
@@ -506,8 +506,8 @@ class ComponentbuilderModelCustom_admin_view extends JModelAdmin
}
- // Only load the GUID if new item
- if (0 == $id)
+ // Only load the GUID if new item (or empty)
+ if (0 == $id || !($val = $form->getValue('guid')))
{
$form->setValue('guid', null, ComponentbuilderHelper::GUID());
}
@@ -1125,8 +1125,15 @@ class ComponentbuilderModelCustom_admin_view extends JModelAdmin
}
// Set the GUID if empty or not valid
- if (isset($data['guid']) && !ComponentbuilderHelper::validGUID($data['guid'], "custom_admin_view", $data['id']))
+ if (empty($data['guid']) && $data['id'] > 0)
{
+ // get the existing one
+ $data['guid'] = (string) ComponentbuilderHelper::getVar('custom_admin_view', $data['id'], 'id', 'guid');
+ }
+ // Set the GUID if empty or not valid
+ while (!ComponentbuilderHelper::validGUID($data['guid'], "custom_admin_view", $data['id']))
+ {
+ // must always be set
$data['guid'] = (string) ComponentbuilderHelper::GUID();
}
diff --git a/admin/models/dynamic_get.php b/admin/models/dynamic_get.php
index d897a4af4..a5589053e 100644
--- a/admin/models/dynamic_get.php
+++ b/admin/models/dynamic_get.php
@@ -520,8 +520,8 @@ class ComponentbuilderModelDynamic_get extends JModelAdmin
}
- // Only load the GUID if new item
- if (0 == $id)
+ // Only load the GUID if new item (or empty)
+ if (0 == $id || !($val = $form->getValue('guid')))
{
$form->setValue('guid', null, ComponentbuilderHelper::GUID());
}
@@ -1148,8 +1148,15 @@ class ComponentbuilderModelDynamic_get extends JModelAdmin
// Set the GUID if empty or not valid
- if (isset($data['guid']) && !ComponentbuilderHelper::validGUID($data['guid'], "dynamic_get", $data['id']))
+ if (empty($data['guid']) && $data['id'] > 0)
{
+ // get the existing one
+ $data['guid'] = (string) ComponentbuilderHelper::getVar('dynamic_get', $data['id'], 'id', 'guid');
+ }
+ // Set the GUID if empty or not valid
+ while (!ComponentbuilderHelper::validGUID($data['guid'], "dynamic_get", $data['id']))
+ {
+ // must always be set
$data['guid'] = (string) ComponentbuilderHelper::GUID();
}
diff --git a/admin/models/field.php b/admin/models/field.php
index 5cc2eafb8..b0ca2e38d 100644
--- a/admin/models/field.php
+++ b/admin/models/field.php
@@ -419,8 +419,8 @@ class ComponentbuilderModelField extends JModelAdmin
}
- // Only load the GUID if new item
- if (0 == $id)
+ // Only load the GUID if new item (or empty)
+ if (0 == $id || !($val = $form->getValue('guid')))
{
$form->setValue('guid', null, ComponentbuilderHelper::GUID());
}
@@ -1144,8 +1144,15 @@ class ComponentbuilderModelField extends JModelAdmin
}
// Set the GUID if empty or not valid
- if (isset($data['guid']) && !ComponentbuilderHelper::validGUID($data['guid'], "field", $data['id']))
+ if (empty($data['guid']) && $data['id'] > 0)
{
+ // get the existing one
+ $data['guid'] = (string) ComponentbuilderHelper::getVar('field', $data['id'], 'id', 'guid');
+ }
+ // Set the GUID if empty or not valid
+ while (!ComponentbuilderHelper::validGUID($data['guid'], "field", $data['id']))
+ {
+ // must always be set
$data['guid'] = (string) ComponentbuilderHelper::GUID();
}
diff --git a/admin/models/fieldtype.php b/admin/models/fieldtype.php
index bc916c4f3..1693a7b6d 100644
--- a/admin/models/fieldtype.php
+++ b/admin/models/fieldtype.php
@@ -544,8 +544,8 @@ class ComponentbuilderModelFieldtype extends JModelAdmin
}
}
- // Only load the GUID if new item
- if (0 == $id)
+ // Only load the GUID if new item (or empty)
+ if (0 == $id || !($val = $form->getValue('guid')))
{
$form->setValue('guid', null, ComponentbuilderHelper::GUID());
}
@@ -1197,8 +1197,15 @@ class ComponentbuilderModelFieldtype extends JModelAdmin
// Set the GUID if empty or not valid
- if (isset($data['guid']) && !ComponentbuilderHelper::validGUID($data['guid'], "fieldtype", $data['id']))
+ if (empty($data['guid']) && $data['id'] > 0)
{
+ // get the existing one
+ $data['guid'] = (string) ComponentbuilderHelper::getVar('fieldtype', $data['id'], 'id', 'guid');
+ }
+ // Set the GUID if empty or not valid
+ while (!ComponentbuilderHelper::validGUID($data['guid'], "fieldtype", $data['id']))
+ {
+ // must always be set
$data['guid'] = (string) ComponentbuilderHelper::GUID();
}
diff --git a/admin/models/forms/dynamic_get.xml b/admin/models/forms/dynamic_get.xml
index 19fc6f35b..21d67915f 100644
--- a/admin/models/forms/dynamic_get.xml
+++ b/admin/models/forms/dynamic_get.xml
@@ -227,7 +227,7 @@
type="subform"
name="join_db_table"
label="COM_COMPONENTBUILDER_DYNAMIC_GET_JOIN_DB_TABLE_LABEL"
- layout="joomla.form.field.subform.repeatable-table"
+ layout="repeatablejcb"
multiple="true"
description="COM_COMPONENTBUILDER_DYNAMIC_GET_JOIN_DB_TABLE_DESCRIPTION"
icon="list">
@@ -1202,7 +1202,7 @@
type="subform"
name="join_view_table"
label="COM_COMPONENTBUILDER_DYNAMIC_GET_JOIN_VIEW_TABLE_LABEL"
- layout="joomla.form.field.subform.repeatable-table"
+ layout="repeatablejcb"
multiple="true"
description="COM_COMPONENTBUILDER_DYNAMIC_GET_JOIN_VIEW_TABLE_DESCRIPTION"
icon="list">
diff --git a/admin/models/import_language_translations.php b/admin/models/import_language_translations.php
index a98a7e9e5..9f36e3076 100644
--- a/admin/models/import_language_translations.php
+++ b/admin/models/import_language_translations.php
@@ -424,7 +424,7 @@ class ComponentbuilderModelImport_language_translations extends JModelLegacy
$jinput = JFactory::getApplication()->input;
foreach($target_headers as $header)
{
- $data['target_headers'][$header] = $jinput->getString($header, null);
+ $data['target_headers'][$header] = $jinput->getString(strtolower($header), null);
}
// set the data
if(isset($package['dir']))
diff --git a/admin/models/joomla_component.php b/admin/models/joomla_component.php
index d4063eb70..bdcc71305 100644
--- a/admin/models/joomla_component.php
+++ b/admin/models/joomla_component.php
@@ -694,8 +694,8 @@ class ComponentbuilderModelJoomla_component extends JModelAdmin
}
- // Only load the GUID if new item
- if (0 == $id)
+ // Only load the GUID if new item (or empty)
+ if (0 == $id || !($val = $form->getValue('guid')))
{
$form->setValue('guid', null, ComponentbuilderHelper::GUID());
}
@@ -1385,8 +1385,15 @@ class ComponentbuilderModelJoomla_component extends JModelAdmin
}
// Set the GUID if empty or not valid
- if (isset($data['guid']) && !ComponentbuilderHelper::validGUID($data['guid'], "joomla_component", $data['id']))
+ if (empty($data['guid']) && $data['id'] > 0)
{
+ // get the existing one
+ $data['guid'] = (string) ComponentbuilderHelper::getVar('joomla_component', $data['id'], 'id', 'guid');
+ }
+ // Set the GUID if empty or not valid
+ while (!ComponentbuilderHelper::validGUID($data['guid'], "joomla_component", $data['id']))
+ {
+ // must always be set
$data['guid'] = (string) ComponentbuilderHelper::GUID();
}
diff --git a/admin/models/joomla_module.php b/admin/models/joomla_module.php
index 313d937bd..714c8f9a8 100644
--- a/admin/models/joomla_module.php
+++ b/admin/models/joomla_module.php
@@ -514,8 +514,8 @@ class ComponentbuilderModelJoomla_module extends JModelAdmin
}
- // Only load the GUID if new item
- if (0 == $id)
+ // Only load the GUID if new item (or empty)
+ if (0 == $id || !($val = $form->getValue('guid')))
{
$form->setValue('guid', null, ComponentbuilderHelper::GUID());
}
@@ -1199,8 +1199,15 @@ class ComponentbuilderModelJoomla_module extends JModelAdmin
}
// Set the GUID if empty or not valid
- if (isset($data['guid']) && !ComponentbuilderHelper::validGUID($data['guid'], "joomla_module", $data['id']))
+ if (empty($data['guid']) && $data['id'] > 0)
{
+ // get the existing one
+ $data['guid'] = (string) ComponentbuilderHelper::getVar('joomla_module', $data['id'], 'id', 'guid');
+ }
+ // Set the GUID if empty or not valid
+ while (!ComponentbuilderHelper::validGUID($data['guid'], "joomla_module", $data['id']))
+ {
+ // must always be set
$data['guid'] = (string) ComponentbuilderHelper::GUID();
}
diff --git a/admin/models/joomla_plugin.php b/admin/models/joomla_plugin.php
index 4fac186d9..64ca2553e 100644
--- a/admin/models/joomla_plugin.php
+++ b/admin/models/joomla_plugin.php
@@ -479,8 +479,8 @@ class ComponentbuilderModelJoomla_plugin extends JModelAdmin
}
- // Only load the GUID if new item
- if (0 == $id)
+ // Only load the GUID if new item (or empty)
+ if (0 == $id || !($val = $form->getValue('guid')))
{
$form->setValue('guid', null, ComponentbuilderHelper::GUID());
}
@@ -1162,8 +1162,15 @@ class ComponentbuilderModelJoomla_plugin extends JModelAdmin
}
// Set the GUID if empty or not valid
- if (isset($data['guid']) && !ComponentbuilderHelper::validGUID($data['guid'], "joomla_plugin", $data['id']))
+ if (empty($data['guid']) && $data['id'] > 0)
{
+ // get the existing one
+ $data['guid'] = (string) ComponentbuilderHelper::getVar('joomla_plugin', $data['id'], 'id', 'guid');
+ }
+ // Set the GUID if empty or not valid
+ while (!ComponentbuilderHelper::validGUID($data['guid'], "joomla_plugin", $data['id']))
+ {
+ // must always be set
$data['guid'] = (string) ComponentbuilderHelper::GUID();
}
diff --git a/admin/models/library.php b/admin/models/library.php
index 7d3ce5578..e5f26141b 100644
--- a/admin/models/library.php
+++ b/admin/models/library.php
@@ -358,8 +358,8 @@ class ComponentbuilderModelLibrary extends JModelAdmin
}
}
- // Only load the GUID if new item
- if (0 == $id)
+ // Only load the GUID if new item (or empty)
+ if (0 == $id || !($val = $form->getValue('guid')))
{
$form->setValue('guid', null, ComponentbuilderHelper::GUID());
}
@@ -1048,8 +1048,15 @@ class ComponentbuilderModelLibrary extends JModelAdmin
// Set the GUID if empty or not valid
- if (isset($data['guid']) && !ComponentbuilderHelper::validGUID($data['guid'], "library", $data['id']))
+ if (empty($data['guid']) && $data['id'] > 0)
{
+ // get the existing one
+ $data['guid'] = (string) ComponentbuilderHelper::getVar('library', $data['id'], 'id', 'guid');
+ }
+ // Set the GUID if empty or not valid
+ while (!ComponentbuilderHelper::validGUID($data['guid'], "library", $data['id']))
+ {
+ // must always be set
$data['guid'] = (string) ComponentbuilderHelper::GUID();
}
diff --git a/admin/models/site_view.php b/admin/models/site_view.php
index a826d76dd..823a0a3dc 100644
--- a/admin/models/site_view.php
+++ b/admin/models/site_view.php
@@ -527,8 +527,8 @@ class ComponentbuilderModelSite_view extends JModelAdmin
}
- // Only load the GUID if new item
- if (0 == $id)
+ // Only load the GUID if new item (or empty)
+ if (0 == $id || !($val = $form->getValue('guid')))
{
$form->setValue('guid', null, ComponentbuilderHelper::GUID());
}
@@ -1146,8 +1146,15 @@ class ComponentbuilderModelSite_view extends JModelAdmin
}
// Set the GUID if empty or not valid
- if (isset($data['guid']) && !ComponentbuilderHelper::validGUID($data['guid'], "site_view", $data['id']))
+ if (empty($data['guid']) && $data['id'] > 0)
{
+ // get the existing one
+ $data['guid'] = (string) ComponentbuilderHelper::getVar('site_view', $data['id'], 'id', 'guid');
+ }
+ // Set the GUID if empty or not valid
+ while (!ComponentbuilderHelper::validGUID($data['guid'], "site_view", $data['id']))
+ {
+ // must always be set
$data['guid'] = (string) ComponentbuilderHelper::GUID();
}
diff --git a/admin/models/snippet.php b/admin/models/snippet.php
index 4439466cb..56602624b 100644
--- a/admin/models/snippet.php
+++ b/admin/models/snippet.php
@@ -243,8 +243,8 @@ class ComponentbuilderModelSnippet extends JModelAdmin
}
}
- // Only load the GUID if new item
- if (0 == $id)
+ // Only load the GUID if new item (or empty)
+ if (0 == $id || !($val = $form->getValue('guid')))
{
$form->setValue('guid', null, ComponentbuilderHelper::GUID());
}
@@ -852,8 +852,15 @@ class ComponentbuilderModelSnippet extends JModelAdmin
}
// Set the GUID if empty or not valid
- if (isset($data['guid']) && !ComponentbuilderHelper::validGUID($data['guid'], "snippet", $data['id']))
+ if (empty($data['guid']) && $data['id'] > 0)
{
+ // get the existing one
+ $data['guid'] = (string) ComponentbuilderHelper::getVar('snippet', $data['id'], 'id', 'guid');
+ }
+ // Set the GUID if empty or not valid
+ while (!ComponentbuilderHelper::validGUID($data['guid'], "snippet", $data['id']))
+ {
+ // must always be set
$data['guid'] = (string) ComponentbuilderHelper::GUID();
}
diff --git a/admin/sql/install.mysql.utf8.sql b/admin/sql/install.mysql.utf8.sql
index 546d2bc3d..737375ae9 100644
--- a/admin/sql/install.mysql.utf8.sql
+++ b/admin/sql/install.mysql.utf8.sql
@@ -1904,7 +1904,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_joomla_plugin_files_folders_urls
--
INSERT INTO `#__componentbuilder_joomla_component` (`id`, `add_license`, `license_type`, `mvc_versiondate`, `add_css_admin`, `add_css_site`, `add_email_helper`, `add_javascript`, `add_php_helper_admin`, `add_php_helper_both`, `add_php_helper_site`, `add_php_postflight_install`, `add_php_method_uninstall`, `add_php_postflight_update`, `add_php_preflight_install`, `add_php_preflight_update`, `add_placeholders`, `add_sql`, `add_sql_uninstall`, `addfootable`, `adduikit`, `add_admin_event`, `add_site_event`, `add_update_server`, `add_sales_server`, `sales_server`, `update_server`, `update_server_target`, `update_server_url`, `php_admin_event`, `php_site_event`, `addreadme`, `readme`, `author`, `bom`, `buildcomp`, `buildcompsql`, `companyname`, `component_version`, `copyright`, `creatuserhelper`, `css_admin`, `css_site`, `dashboard`, `dashboard_type`, `debug_linenr`, `description`, `email`, `emptycontributors`, `export_buy_link`, `joomla_source_link`, `export_key`, `image`, `javascript`, `license`, `name`, `system_name`, `toignore`, `name_code`, `number`, `php_helper_admin`, `php_helper_both`, `php_helper_site`, `php_postflight_install`, `php_method_uninstall`, `php_postflight_update`, `php_preflight_install`, `php_preflight_update`, `short_description`, `sql`, `sql_uninstall`, `website`, `published`, `created`, `modified`, `hits`, `ordering`, `whmcs_key`, `whmcs_url`, `guid`) VALUES
-(25, '', 1, '', '', '', '', '', '', '', 1, 1, '', '', '', '', '', '', '', '', 1, '', '', 1, '', '', '', 2, 'https://raw.githubusercontent.com/namibia/demo-joomla-3-component/master/demo_updateserver.xml', '', '', 1, 'IyAjIyNDb21wb25lbnRfbmFtZSMjIyAoIyMjVkVSU0lPTiMjIykNCg0KIVsjIyNDb21wb25lbnRfbmFtZSMjIyBpbWFnZV0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25hbWliaWEvZGVtby1qb29tbGEtMy1jb21wb25lbnQvbWFzdGVyL2FkbWluL2Fzc2V0cy9pbWFnZXMvdmRtLWNvbXBvbmVudC5qcGcgIlRoZSAjIyNDb21wb25lbnRfbmFtZSMjIyIpDQoNCiMjI0RFU0NSSVBUSU9OIyMjDQoNCiMgQnVpbGQgRGV0YWlscw0KDQorICpDb21wYW55KjogWyMjI0NPTVBBTllOQU1FIyMjXSgjIyNBVVRIT1JXRUJTSVRFIyMjKQ0KKyAqQXV0aG9yKjogWyMjI0FVVEhPUiMjI10obWFpbHRvOiMjI0FVVEhPUkVNQUlMIyMjKQ0KKyAqTmFtZSo6IFsjIyNDb21wb25lbnRfbmFtZSMjI10oIyMjQVVUSE9SV0VCU0lURSMjIykNCisgKkZpcnN0IEJ1aWxkKjogIyMjQ1JFQVRJT05EQVRFIyMjDQorICpMYXN0IEJ1aWxkKjogIyMjQlVJTEREQVRFIyMjDQorICpWZXJzaW9uKjogIyMjVkVSU0lPTiMjIw0KKyAqQ29weXJpZ2h0KjogIyMjQ09QWVJJR0hUIyMjDQorICpMaWNlbnNlKjogIyMjTElDRU5TRSMjIw0KDQojIyBCdWlsZCBUaW1lDQoNCioqIyMjdG90YWxIb3VycyMjIyBIb3VycyoqIG9yICoqIyMjdG90YWxEYXlzIyMjIEVpZ2h0IEhvdXIgRGF5cyoqIChhY3R1YWwgdGltZSB0aGUgYXV0aG9yIHNhdmVkIC0NCmR1ZSB0byBbQXV0b21hdGVkIENvbXBvbmVudCBCdWlsZGVyXShodHRwczovL3d3dy52ZG0uaW8vam9vbWxhLWNvbXBvbmVudC1idWlsZGVyKSkNCg0KPiAoaWYgY3JlYXRpbmcgYSBmb2xkZXIgYW5kIGZpbGUgdG9vayAqKjUgc2Vjb25kcyoqIGFuZCB3cml0aW5nIG9uZSBsaW5lIG9mIGNvZGUgdG9vayAqKjEwIHNlY29uZHMqKiwNCj4gbmV2ZXIgbWFraW5nIG9uZSBtaXN0YWtlIG9yIHRha2luZyBhbnkgY29mZmVlIGJyZWFrLikNCg0KKyAqTGluZSBjb3VudCo6ICoqIyMjTElORV9DT1VOVCMjIyoqDQorICpGaWxlIGNvdW50KjogKiojIyNGSUxFX0NPVU5UIyMjKioNCisgKkZvbGRlciBjb3VudCo6ICoqIyMjRk9MREVSX0NPVU5UIyMjKioNCg0KKiojIyNhY3R1YWxIb3Vyc1NwZW50IyMjIEhvdXJzKiogb3IgKiojIyNhY3R1YWxEYXlzU3BlbnQjIyMgRWlnaHQgSG91ciBEYXlzKiogKHRoZSBhY3R1YWwgdGltZSB0aGUgYXV0aG9yIHNwZW50KQ0KDQo+ICh3aXRoIHRoZSBmb2xsb3dpbmcgYnJlYWsgZG93bjoNCj4gKipkZWJ1Z2dpbmcgQCMjI2RlYnVnZ2luZ0hvdXJzIyMjaG91cnMqKiA9IGNvZGluZ3RpbWUgLyA0Ow0KPiAqKnBsYW5uaW5nIEAjIyNwbGFubmluZ0hvdXJzIyMjaG91cnMqKiA9IGNvZGluZ3RpbWUgLyA3Ow0KPiAqKm1hcHBpbmcgQCMjI21hcHBpbmdIb3VycyMjI2hvdXJzKiogPSBjb2Rpbmd0aW1lIC8gMTA7DQo+ICoqb2ZmaWNlIEAjIyNvZmZpY2VIb3VycyMjI2hvdXJzKiogPSBjb2Rpbmd0aW1lIC8gNjspDQoNCioqIyMjYWN0dWFsVG90YWxIb3VycyMjIyBIb3VycyoqIG9yICoqIyMjYWN0dWFsVG90YWxEYXlzIyMjIEVpZ2h0IEhvdXIgRGF5cyoqDQooYSB0b3RhbCBvZiB0aGUgcmVhbGlzdGljIHRpbWUgZnJhbWUgZm9yIHRoaXMgcHJvamVjdCkNCg0KPiAoaWYgY3JlYXRpbmcgYSBmb2xkZXIgYW5kIGZpbGUgdG9vayAqKjUgc2Vjb25kcyoqIGFuZCB3cml0aW5nIG9uZSBsaW5lIG9mIGNvZGUgdG9vayAqKjEwIHNlY29uZHMqKiwNCj4gd2l0aCB0aGUgbm9ybWFsIGV2ZXJ5ZGF5IHJlYWxpdGllcyBhdCB0aGUgb2ZmaWNlLCB0aGF0IGluY2x1ZGVzIHRoZSBjb21wb25lbnQgcGxhbm5pbmcsIG1hcHBpbmcgJiBkZWJ1Z2dpbmcuKQ0KDQpQcm9qZWN0IGR1cmF0aW9uOiAqKiMjI3Byb2plY3RXZWVrVGltZSMjIyB3ZWVrcyoqIG9yICoqIyMjcHJvamVjdE1vbnRoVGltZSMjIyBtb250aHMqKg0KDQo+IFRoaXMgKipjb21wb25lbnQqKiB3YXMgYnVpbGQgd2l0aCBhIEpvb21sYSBbQXV0b21hdGVkIENvbXBvbmVudCBCdWlsZGVyXShodHRwczovL3d3dy52ZG0uaW8vam9vbWxhLWNvbXBvbmVudC1idWlsZGVyKS4NCj4gRGV2ZWxvcGVkIGJ5IFtMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZV0obWFpbHRvOmpvb21sYUB2ZG0uaW8pDQoNCiMjIERvbmF0aW9ucw0KDQpJZiB5b3Ugd2FudCB0byBzdXBwb3J0IHRoaXMgcHJvamVjdCwgcGxlYXNlIGNvbnNpZGVyIGRvbmF0aW5nOg0KICogUGF5UGFsOiBbcGF5cGFsLm1lL1tbW3BheXBhbG1lXV1dXShodHRwczovL3d3dy5wYXlwYWwubWUvW1tbcGF5cGFsbWVdXV0pDQogKiBCaXRjb2luOiBbW1tiaXRjb2luYWRkcmVzc11dXQ0KICogRXRoZXJldW06IFtbW2V0aGVyZXVtYWRkcmVzc11dXQ==', 'Llewellyn van der Merwe', 'default.txt', '', '', 'Vast Development Method', '2.0.2', 'Copyright (C) 2015. All Rights Reserved', '', '', '', '', 1, '', 'Just a basic demo of the most basic implementations of the [Joomla](http://www.joomla.org) Component Builder\'s ability.', 'joomla@vdm.io', '', '', 'https://github.com/namibia/demo-joomla-3-component', 'HFrCeQ/dZlNywC+BnkD7+Jznb1AoSMFkvlZvLrWJnP8=', 'images/vdm/demo500.jpg', '', 'GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html', 'Demo', 'Demo', '.git', 'demo', 4, '', '', 'CS8qKg0KCSAqCUNoYW5nZSB0byBuaWNlIGZhbmN5IGRhdGUNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGZhbmN5RGF0ZSgkZGF0ZSkNCgl7DQoJCWlmICghc2VsZjo6aXNWYWxpZFRpbWVTdGFtcCgkZGF0ZSkpDQoJCXsNCgkJCSRkYXRlID0gc3RydG90aW1lKCRkYXRlKTsNCgkJfQ0KCQlyZXR1cm4gZGF0ZSgnalMgXG9cZiBGIFknLCRkYXRlKTsNCgl9DQoNCgkvKioNCgkgKglDaGFuZ2UgdG8gbmljZSBmYW5jeSB0aW1lIGFuZCBkYXRlDQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBmYW5jeURhdGVUaW1lKCR0aW1lKQ0KCXsNCgkJaWYgKCFzZWxmOjppc1ZhbGlkVGltZVN0YW1wKCR0aW1lKSkNCgkJew0KCQkJJHRpbWUgPSBzdHJ0b3RpbWUoJHRpbWUpOw0KCQl9DQoJCXJldHVybiBkYXRlKCcoRzppKSBqUyBcb1xmIEYgWScsJHRpbWUpOw0KCX0NCg0KCS8qKg0KCSAqCUNoYW5nZSB0byBuaWNlIGhvdXI6bWludXRlcyB0aW1lDQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBmYW5jeVRpbWUoJHRpbWUpDQoJew0KCQlpZiAoIXNlbGY6OmlzVmFsaWRUaW1lU3RhbXAoJHRpbWUpKQ0KCQl7DQoJCQkkdGltZSA9IHN0cnRvdGltZSgkdGltZSk7DQoJCX0NCgkJcmV0dXJuIGRhdGUoJ0c6aScsJHRpbWUpOw0KCX0NCg0KCS8qKg0KCSAqCUNoZWNrIGlmIHN0cmluZyBpcyBhIHZhbGlkIHRpbWUgc3RhbXANCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGlzVmFsaWRUaW1lU3RhbXAoJHRpbWVzdGFtcCkNCgl7DQoJCXJldHVybiAoKGludCkgJHRpbWVzdGFtcCA9PT0gJHRpbWVzdGFtcCkNCgkJJiYgKCR0aW1lc3RhbXAgPD0gUEhQX0lOVF9NQVgpDQoJCSYmICgkdGltZXN0YW1wID49IH5QSFBfSU5UX01BWCk7DQoJfQ0K', 'CQkvLyBHZXQgQXBwbGljYXRpb24gb2JqZWN0DQoJCSRhcHAgPSBKRmFjdG9yeTo6Z2V0QXBwbGljYXRpb24oKTsNCgkJJGFwcC0+ZW5xdWV1ZU1lc3NhZ2UoJ1RoaXMgaXMgYSBkZW1vIGNvbXBvbmVudCBkZXZlbG9wZWQgaW4gPGEgaHJlZj0iaHR0cDovL3ZkbS5iei9jb21wb25lbnQtYnVpbGRlciIgdGFnZXQ9Il9iYWxuayIgdGl0bGU9Ikpvb21sYSBDb21wb25lbnQgQnVpbGRlciI+SkNCPC9hPiEgWW91IGNhbiBidWlsZCBtb3JlIGNvbXBvbmVudHMgbGlrZSB0aGlzIHdpdGggSkNCLCBjaGVja291dCBvdXIgcGFnZSBvbiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdmRtLWlvL0pvb21sYS1Db21wb25lbnQtQnVpbGRlciIgdGFnZXQ9Il9iYWxuayIgdGl0bGU9Ikpvb21sYSBDb21wb25lbnQgQnVpbGRlciI+Z2l0aHViPC9hPiBmb3IgbW9yZSBpbmZvLiBUaGUgZnV0dXJlIG9mIDxhIGhyZWY9Imh0dHA6Ly92ZG0uYnovY29tcG9uZW50LWJ1aWxkZXIiIHRhZ2V0PSJfYmFsbmsiIHRpdGxlPSJKb29tbGEgQ29tcG9uZW50IEJ1aWxkZXIiPkpvb21sYSBDb21wb25lbnQgRGV2ZWxvcG1lbnQ8L2E+IGlzIEhlcmUhJywgJ0luZm8nKTs=', '', '', '', '', 'Demo Component', '', '', 'https://www.vdm.io/', 1, '2016-10-18 11:44:09', '2020-06-01 22:30:51', '', 3, 'LqVjNz4RpFQus30hSwGAxD6C55z/W+xG/qO+0Ea2QUA=', '', 'efde995e-60aa-4b39-b644-44349dfb660d');
+(25, '', 1, '', '', '', '', '', '', '', 1, 1, '', '', '', '', '', '', '', '', 1, '', '', 1, '', '', '', 2, 'https://raw.githubusercontent.com/namibia/demo-joomla-3-component/master/demo_updateserver.xml', '', '', 1, 'IyAjIyNDb21wb25lbnRfbmFtZSMjIyAoIyMjVkVSU0lPTiMjIykNCg0KIVsjIyNDb21wb25lbnRfbmFtZSMjIyBpbWFnZV0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25hbWliaWEvZGVtby1qb29tbGEtMy1jb21wb25lbnQvbWFzdGVyL2FkbWluL2Fzc2V0cy9pbWFnZXMvdmRtLWNvbXBvbmVudC5qcGcgIlRoZSAjIyNDb21wb25lbnRfbmFtZSMjIyIpDQoNCiMjI0RFU0NSSVBUSU9OIyMjDQoNCiMgQnVpbGQgRGV0YWlscw0KDQorICpDb21wYW55KjogWyMjI0NPTVBBTllOQU1FIyMjXSgjIyNBVVRIT1JXRUJTSVRFIyMjKQ0KKyAqQXV0aG9yKjogWyMjI0FVVEhPUiMjI10obWFpbHRvOiMjI0FVVEhPUkVNQUlMIyMjKQ0KKyAqTmFtZSo6IFsjIyNDb21wb25lbnRfbmFtZSMjI10oIyMjQVVUSE9SV0VCU0lURSMjIykNCisgKkZpcnN0IEJ1aWxkKjogIyMjQ1JFQVRJT05EQVRFIyMjDQorICpMYXN0IEJ1aWxkKjogIyMjQlVJTEREQVRFIyMjDQorICpWZXJzaW9uKjogIyMjVkVSU0lPTiMjIw0KKyAqQ29weXJpZ2h0KjogIyMjQ09QWVJJR0hUIyMjDQorICpMaWNlbnNlKjogIyMjTElDRU5TRSMjIw0KDQojIyBCdWlsZCBUaW1lDQoNCioqIyMjdG90YWxIb3VycyMjIyBIb3VycyoqIG9yICoqIyMjdG90YWxEYXlzIyMjIEVpZ2h0IEhvdXIgRGF5cyoqIChhY3R1YWwgdGltZSB0aGUgYXV0aG9yIHNhdmVkIC0NCmR1ZSB0byBbQXV0b21hdGVkIENvbXBvbmVudCBCdWlsZGVyXShodHRwczovL3d3dy52ZG0uaW8vam9vbWxhLWNvbXBvbmVudC1idWlsZGVyKSkNCg0KPiAoaWYgY3JlYXRpbmcgYSBmb2xkZXIgYW5kIGZpbGUgdG9vayAqKjUgc2Vjb25kcyoqIGFuZCB3cml0aW5nIG9uZSBsaW5lIG9mIGNvZGUgdG9vayAqKjEwIHNlY29uZHMqKiwNCj4gbmV2ZXIgbWFraW5nIG9uZSBtaXN0YWtlIG9yIHRha2luZyBhbnkgY29mZmVlIGJyZWFrLikNCg0KKyAqTGluZSBjb3VudCo6ICoqIyMjTElORV9DT1VOVCMjIyoqDQorICpGaWxlIGNvdW50KjogKiojIyNGSUxFX0NPVU5UIyMjKioNCisgKkZvbGRlciBjb3VudCo6ICoqIyMjRk9MREVSX0NPVU5UIyMjKioNCg0KKiojIyNhY3R1YWxIb3Vyc1NwZW50IyMjIEhvdXJzKiogb3IgKiojIyNhY3R1YWxEYXlzU3BlbnQjIyMgRWlnaHQgSG91ciBEYXlzKiogKHRoZSBhY3R1YWwgdGltZSB0aGUgYXV0aG9yIHNwZW50KQ0KDQo+ICh3aXRoIHRoZSBmb2xsb3dpbmcgYnJlYWsgZG93bjoNCj4gKipkZWJ1Z2dpbmcgQCMjI2RlYnVnZ2luZ0hvdXJzIyMjaG91cnMqKiA9IGNvZGluZ3RpbWUgLyA0Ow0KPiAqKnBsYW5uaW5nIEAjIyNwbGFubmluZ0hvdXJzIyMjaG91cnMqKiA9IGNvZGluZ3RpbWUgLyA3Ow0KPiAqKm1hcHBpbmcgQCMjI21hcHBpbmdIb3VycyMjI2hvdXJzKiogPSBjb2Rpbmd0aW1lIC8gMTA7DQo+ICoqb2ZmaWNlIEAjIyNvZmZpY2VIb3VycyMjI2hvdXJzKiogPSBjb2Rpbmd0aW1lIC8gNjspDQoNCioqIyMjYWN0dWFsVG90YWxIb3VycyMjIyBIb3VycyoqIG9yICoqIyMjYWN0dWFsVG90YWxEYXlzIyMjIEVpZ2h0IEhvdXIgRGF5cyoqDQooYSB0b3RhbCBvZiB0aGUgcmVhbGlzdGljIHRpbWUgZnJhbWUgZm9yIHRoaXMgcHJvamVjdCkNCg0KPiAoaWYgY3JlYXRpbmcgYSBmb2xkZXIgYW5kIGZpbGUgdG9vayAqKjUgc2Vjb25kcyoqIGFuZCB3cml0aW5nIG9uZSBsaW5lIG9mIGNvZGUgdG9vayAqKjEwIHNlY29uZHMqKiwNCj4gd2l0aCB0aGUgbm9ybWFsIGV2ZXJ5ZGF5IHJlYWxpdGllcyBhdCB0aGUgb2ZmaWNlLCB0aGF0IGluY2x1ZGVzIHRoZSBjb21wb25lbnQgcGxhbm5pbmcsIG1hcHBpbmcgJiBkZWJ1Z2dpbmcuKQ0KDQpQcm9qZWN0IGR1cmF0aW9uOiAqKiMjI3Byb2plY3RXZWVrVGltZSMjIyB3ZWVrcyoqIG9yICoqIyMjcHJvamVjdE1vbnRoVGltZSMjIyBtb250aHMqKg0KDQo+IFRoaXMgKipjb21wb25lbnQqKiB3YXMgYnVpbGQgd2l0aCBhIEpvb21sYSBbQXV0b21hdGVkIENvbXBvbmVudCBCdWlsZGVyXShodHRwczovL3d3dy52ZG0uaW8vam9vbWxhLWNvbXBvbmVudC1idWlsZGVyKS4NCj4gRGV2ZWxvcGVkIGJ5IFtMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZV0obWFpbHRvOmpvb21sYUB2ZG0uaW8pDQoNCiMjIERvbmF0aW9ucw0KDQpJZiB5b3Ugd2FudCB0byBzdXBwb3J0IHRoaXMgcHJvamVjdCwgcGxlYXNlIGNvbnNpZGVyIGRvbmF0aW5nOg0KICogUGF5UGFsOiBbcGF5cGFsLm1lL1tbW3BheXBhbG1lXV1dXShodHRwczovL3d3dy5wYXlwYWwubWUvW1tbcGF5cGFsbWVdXV0pDQogKiBCaXRjb2luOiBbW1tiaXRjb2luYWRkcmVzc11dXQ0KICogRXRoZXJldW06IFtbW2V0aGVyZXVtYWRkcmVzc11dXQ==', 'Llewellyn van der Merwe', 'default.txt', '', '', 'Vast Development Method', '2.0.3', 'Copyright (C) 2015. All Rights Reserved', '', '', '', '', 1, '', 'Just a basic demo of the most basic implementations of the [Joomla](http://www.joomla.org) Component Builder\'s ability.', 'joomla@vdm.io', '', '', 'https://github.com/namibia/demo-joomla-3-component', 'HFrCeQ/dZlNywC+BnkD7+Jznb1AoSMFkvlZvLrWJnP8=', 'images/vdm/demo500.jpg', '', 'GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html', 'Demo', 'Demo', '.git', 'demo', 4, '', '', 'CS8qKg0KCSAqCUNoYW5nZSB0byBuaWNlIGZhbmN5IGRhdGUNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGZhbmN5RGF0ZSgkZGF0ZSkNCgl7DQoJCWlmICghc2VsZjo6aXNWYWxpZFRpbWVTdGFtcCgkZGF0ZSkpDQoJCXsNCgkJCSRkYXRlID0gc3RydG90aW1lKCRkYXRlKTsNCgkJfQ0KCQlyZXR1cm4gZGF0ZSgnalMgXG9cZiBGIFknLCRkYXRlKTsNCgl9DQoNCgkvKioNCgkgKglDaGFuZ2UgdG8gbmljZSBmYW5jeSB0aW1lIGFuZCBkYXRlDQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBmYW5jeURhdGVUaW1lKCR0aW1lKQ0KCXsNCgkJaWYgKCFzZWxmOjppc1ZhbGlkVGltZVN0YW1wKCR0aW1lKSkNCgkJew0KCQkJJHRpbWUgPSBzdHJ0b3RpbWUoJHRpbWUpOw0KCQl9DQoJCXJldHVybiBkYXRlKCcoRzppKSBqUyBcb1xmIEYgWScsJHRpbWUpOw0KCX0NCg0KCS8qKg0KCSAqCUNoYW5nZSB0byBuaWNlIGhvdXI6bWludXRlcyB0aW1lDQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBmYW5jeVRpbWUoJHRpbWUpDQoJew0KCQlpZiAoIXNlbGY6OmlzVmFsaWRUaW1lU3RhbXAoJHRpbWUpKQ0KCQl7DQoJCQkkdGltZSA9IHN0cnRvdGltZSgkdGltZSk7DQoJCX0NCgkJcmV0dXJuIGRhdGUoJ0c6aScsJHRpbWUpOw0KCX0NCg0KCS8qKg0KCSAqCUNoZWNrIGlmIHN0cmluZyBpcyBhIHZhbGlkIHRpbWUgc3RhbXANCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGlzVmFsaWRUaW1lU3RhbXAoJHRpbWVzdGFtcCkNCgl7DQoJCXJldHVybiAoKGludCkgJHRpbWVzdGFtcCA9PT0gJHRpbWVzdGFtcCkNCgkJJiYgKCR0aW1lc3RhbXAgPD0gUEhQX0lOVF9NQVgpDQoJCSYmICgkdGltZXN0YW1wID49IH5QSFBfSU5UX01BWCk7DQoJfQ0K', 'CQkvLyBHZXQgQXBwbGljYXRpb24gb2JqZWN0DQoJCSRhcHAgPSBKRmFjdG9yeTo6Z2V0QXBwbGljYXRpb24oKTsNCgkJJGFwcC0+ZW5xdWV1ZU1lc3NhZ2UoJ1RoaXMgaXMgYSBkZW1vIGNvbXBvbmVudCBkZXZlbG9wZWQgaW4gPGEgaHJlZj0iaHR0cDovL3ZkbS5iei9jb21wb25lbnQtYnVpbGRlciIgdGFnZXQ9Il9iYWxuayIgdGl0bGU9Ikpvb21sYSBDb21wb25lbnQgQnVpbGRlciI+SkNCPC9hPiEgWW91IGNhbiBidWlsZCBtb3JlIGNvbXBvbmVudHMgbGlrZSB0aGlzIHdpdGggSkNCLCBjaGVja291dCBvdXIgcGFnZSBvbiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdmRtLWlvL0pvb21sYS1Db21wb25lbnQtQnVpbGRlciIgdGFnZXQ9Il9iYWxuayIgdGl0bGU9Ikpvb21sYSBDb21wb25lbnQgQnVpbGRlciI+Z2l0aHViPC9hPiBmb3IgbW9yZSBpbmZvLiBUaGUgZnV0dXJlIG9mIDxhIGhyZWY9Imh0dHA6Ly92ZG0uYnovY29tcG9uZW50LWJ1aWxkZXIiIHRhZ2V0PSJfYmFsbmsiIHRpdGxlPSJKb29tbGEgQ29tcG9uZW50IEJ1aWxkZXIiPkpvb21sYSBDb21wb25lbnQgRGV2ZWxvcG1lbnQ8L2E+IGlzIEhlcmUhJywgJ0luZm8nKTs=', '', '', '', '', 'Demo Component', '', '', 'https://www.vdm.io/', 1, '2016-10-18 11:44:09', '2020-06-24 22:43:55', '', 3, 'LqVjNz4RpFQus30hSwGAxD6C55z/W+xG/qO+0Ea2QUA=', '', 'efde995e-60aa-4b39-b644-44349dfb660d');
--
-- Dumping data for table `#__componentbuilder_admin_view`
@@ -2116,9 +2116,9 @@ INSERT INTO `#__componentbuilder_field` (`id`, `add_css_view`, `add_css_views`,
(23, '', '', '', '', '', '', '', '', '', 64, '', 'CHAR', '', '', '', 'Alias', 'NOT NULL', '', 24, '\"\"', 1, '2015-04-09 13:46:04', '2016-05-05 22:30:18', 2, '', 216, '335866ce-b81b-4329-901d-c20254135c9c'),
(84, '', '', '', '', '', '', '', '', '', '', '', 'TEXT', '', '', '', 'Description (full width)', 'NOT NULL', '', 25, '\"\"', 1, '2015-03-19 18:20:49', '2016-10-20 17:01:21', 4, '', 265, '749a9917-90c3-49c4-9e72-aa33b0683a87'),
(100, '', '', '', '', '', '', '', '', '', 255, '', 'VARCHAR', '', '', '', 'Email (required)', 'NOT NULL', '', 24, '\"\"', 1, '2015-05-05 23:44:32', '2016-02-07 22:43:18', 4, '', 285, '10c1eccb-b3c3-4325-a056-45a72d116fd8'),
-(158, '', '', '', '', '', '', '', '', '', 64, '', 'CHAR', '', '', '', 'Image', 'NOT NULL', '', 12, '\"\"', 1, '2015-04-29 14:00:56', '2015-08-25 21:15:22', 1, '', 45, '0d6970af-b361-4f65-84f6-0eb0c5f09bad'),
+(158, '', '', '', '', '', '', '', '', '', 255, '', 'VARCHAR', '', '', '', 'Image', 'NOT NULL', '', 12, '\"\"', 1, '2015-04-29 14:00:56', '2020-06-07 02:17:46', 2, '', 45, '0d6970af-b361-4f65-84f6-0eb0c5f09bad'),
(196, '', '', '', '', '', '', '', '', '', 64, '', 'VARCHAR', '', '', '', 'Mobile Phone', 'NOT NULL', '', 23, '\"\"', 1, '2015-04-07 22:12:58', '2016-03-28 14:00:02', 2, '', 7, '65933a19-243a-48b2-aae9-34e2da710051'),
-(199, '', '', '', '', '', '', '', '', '', 255, '', 'VARCHAR', 2, '', '', 'Name', 'NOT NULL', '', 24, '\"\"', 1, '2015-03-19 17:30:59', '2017-10-25 20:26:02', 8, '', 4, '5d3d34dd-4876-4c6a-86ab-b4e162f22c08'),
+(199, '', '', '', '', '', '', '', '', '', 255, '', 'VARCHAR', 2, '', '', 'Name (required)', 'NOT NULL', '', 24, '\"\"', 1, '2015-03-19 17:30:59', '2020-06-01 23:44:08', 9, '', 4, '5d3d34dd-4876-4c6a-86ab-b4e162f22c08'),
(203, '', '', '', '', '', '', '', '', '', 1, '', 'INT', '', '', '', 'Not Required', 'NOT NULL', '', 9, '\"\"', 1, '2015-05-08 16:19:16', '2020-02-27 20:17:33', 13, '', 19, 'da5e6901-6958-40e5-a4f5-6822d6fe57ac'),
(280, '', '', '', '', '', '', '', '', '', 255, '', 'VARCHAR', '', '', '', 'Website', 'NOT NULL', '', 27, '\"\"', 1, '2015-04-08 00:36:16', '2018-07-08 00:11:05', 2, '', 105, '6c3a6983-d1bf-4e5e-9e99-deea00b0cefd'),
(682, '', '', '', '', '', '', '', '', '', 1, '', 'TINYINT', 2, '', '', 'Add More', 'NOT NULL', '', 17, '\"\"', 1, '2015-08-05 01:18:20', '2018-03-30 09:30:45', 4, '', 196, 'a66389aa-2323-4f44-8c23-ff44969639be'),
@@ -2312,7 +2312,7 @@ INSERT INTO `#__componentbuilder_component_custom_admin_views` (`id`, `addcustom
--
INSERT INTO `#__componentbuilder_component_updates` (`id`, `joomla_component`, `version_update`, `published`, `created`, `modified`, `version`, `hits`, `ordering`) VALUES
-(27, 25, '{\"version_update1\":{\"version\":\"2.0.0\",\"mysql\":\"ALTER TABLE `#__demo_look` ENGINE = InnoDB;\\r\\n\\r\\nALTER TABLE `#__demo_look` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\",\"url\":\"https:\\/\\/github.com\\/namibia\\/demo-joomla-3-component\\/archive\\/v2.0.0.zip\"},\"version_update2\":{\"version\":\"2.0.2\",\"mysql\":\"\",\"url\":\"https:\\/\\/github.com\\/namibia\\/demo-joomla-3-component\\/archive\\/master.zip\"}}', 1, '2017-10-28 03:56:26', '2020-05-30 23:56:04', 7, '', '');
+(27, 25, '{\"version_update0\":{\"version\":\"2.0.0\",\"mysql\":\"ALTER TABLE `#__demo_look` ENGINE = InnoDB;\\r\\n\\r\\nALTER TABLE `#__demo_look` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\",\"url\":\"https:\\/\\/github.com\\/namibia\\/demo-joomla-3-component\\/archive\\/v2.0.0.zip\"},\"version_update1\":{\"version\":\"2.0.2\",\"mysql\":\"ALTER TABLE `#__demo_look` CHANGE `image` `image` VARCHAR(255) NOT NULL DEFAULT \'\';\",\"url\":\"https:\\/\\/github.com\\/namibia\\/demo-joomla-3-component\\/archive\\/master.zip\"},\"version_update2\":{\"version\":\"2.0.3\",\"mysql\":\"\",\"url\":\"http:\\/\\/domain.com\\/demo.zip\"}}', 1, '2017-10-28 03:56:26', '2020-06-24 22:43:55', 8, '', '');
--
-- Dumping data for table `#__componentbuilder_component_mysql_tweaks`
@@ -2414,7 +2414,8 @@ INSERT INTO `#__componentbuilder_library_files_folders_urls` (`id`, `addfiles`,
(3, '', '', '{\"addurls0\":{\"url\":\"https:\\/\\/cdnjs.cloudflare.com\\/ajax\\/libs\\/uikit\\/3.0.0-rc.16\\/js\\/uikit.min.js\",\"type\":\"2\"},\"addurls2\":{\"url\":\"https:\\/\\/cdnjs.cloudflare.com\\/ajax\\/libs\\/uikit\\/3.0.0-rc.16\\/js\\/uikit-icons.min.js\",\"type\":\"2\"},\"addurls4\":{\"url\":\"https:\\/\\/cdnjs.cloudflare.com\\/ajax\\/libs\\/uikit\\/3.0.0-rc.16\\/css\\/uikit.min.css\",\"type\":\"2\"}}', 3, '', 1, '2017-11-25 21:47:40', '2018-09-19 14:22:09', 10, '', 3),
(4, '{}', '{\"addfolders0\":{\"folder\":\"file_icon_vectors\",\"path\":\"\\/media\\/vector\",\"rename\":\"1\"}}', '{}', 7, '', 1, '2019-10-03 09:24:30', '2019-10-03 09:25:39', 2, '', 4),
(5, '{}', '{}', '{\"addurls0\":{\"url\":\"https:\\/\\/cdnjs.cloudflare.com\\/ajax\\/libs\\/grapesjs\\/0.14.15\\/css\\/grapes.min.css\",\"type\":2},\"addurls2\":{\"url\":\"https:\\/\\/cdnjs.cloudflare.com\\/ajax\\/libs\\/grapesjs\\/0.14.15\\/grapes.min.js\",\"type\":2}}', 8, '', 1, '2020-02-10 21:34:33', '2020-02-18 21:12:35', 5, '', 5),
-(6, '{}', '{}', '{\"addurls0\":{\"url\":\"https:\\/\\/raw.githubusercontent.com\\/artf\\/grapesjs-preset-webpage\\/master\\/dist\\/grapesjs-preset-webpage.min.css\",\"type\":2},\"addurls1\":{\"url\":\"https:\\/\\/raw.githubusercontent.com\\/artf\\/grapesjs-preset-webpage\\/master\\/dist\\/grapesjs-preset-webpage.min.js\",\"type\":2},\"addurls2\":{\"url\":\"https:\\/\\/static.filestackapi.com\\/v3\\/filestack-0.1.10.js\",\"type\":2}}', 9, '', 1, '2020-02-18 21:13:16', '2020-02-18 21:14:11', 2, '', 5);
+(6, '{}', '{}', '{\"addurls0\":{\"url\":\"https:\\/\\/raw.githubusercontent.com\\/artf\\/grapesjs-preset-webpage\\/master\\/dist\\/grapesjs-preset-webpage.min.css\",\"type\":2},\"addurls1\":{\"url\":\"https:\\/\\/raw.githubusercontent.com\\/artf\\/grapesjs-preset-webpage\\/master\\/dist\\/grapesjs-preset-webpage.min.js\",\"type\":2},\"addurls2\":{\"url\":\"https:\\/\\/static.filestackapi.com\\/v3\\/filestack-0.1.10.js\",\"type\":2}}', 9, '', 1, '2020-02-18 21:13:16', '2020-02-18 21:14:11', 2, '', 5),
+(7, '{}', '{}', '{\"addurls0\":{\"url\":\"https:\\/\\/cdn.jsdelivr.net\\/npm\\/vue\",\"type\":3}}', 10, '', 1, '2020-06-05 13:11:54', '0000-00-00 00:00:00', 1, '', 6);
CREATE TABLE IF NOT EXISTS `#__componentbuilder_external_code` (
diff --git a/admin/views/admin_custom_tabs/tmpl/edit.php b/admin/views/admin_custom_tabs/tmpl/edit.php
index 9203d773f..eb213b4fc 100644
--- a/admin/views/admin_custom_tabs/tmpl/edit.php
+++ b/admin/views/admin_custom_tabs/tmpl/edit.php
@@ -63,7 +63,7 @@ $componentParams = $this->params; // will be removed just use $this->params inst
tab_name = 'admin_custom_tabsTab'; ?>
- canDo->get('admin_custom_tabs.delete') || $this->canDo->get('admin_custom_tabs.edit.created_by') || $this->canDo->get('admin_custom_tabs.edit.state') || $this->canDo->get('admin_custom_tabs.edit.created')) : ?>
+ canDo->get('admin_custom_tabs.edit.created_by') || $this->canDo->get('admin_custom_tabs.edit.created') || $this->canDo->get('admin_custom_tabs.edit.state') || ($this->canDo->get('admin_custom_tabs.delete') && $this->canDo->get('admin_custom_tabs.edit.state'))) : ?>
|