From 0857101371f1716d0bcc935cb691058e49881b77 Mon Sep 17 00:00:00 2001 From: Llewellyn van der Merwe Date: Mon, 23 Apr 2018 02:42:41 +0200 Subject: [PATCH] Tweaked the field database area to insure that users are forced to set the database values --- README.md | 8 +- admin/README.txt | 8 +- admin/config.xml | 107 +++++++++++++++++- admin/helpers/compiler/a_Get.php | 3 +- admin/helpers/compiler/c_Fields.php | 4 +- .../en-GB/en-GB.com_componentbuilder.ini | 28 +++++ admin/layouts/field/data_base_fullwidth.php | 48 ++++++++ admin/models/fields.php | 1 + admin/models/fields/component.php | 37 +++--- admin/models/fieldtype.php | 1 + admin/models/forms/field.js | 49 ++++++++ admin/models/forms/field.xml | 80 ++++++------- admin/sql/install.mysql.utf8.sql | 2 +- admin/views/field/tmpl/edit.php | 9 ++ componentbuilder.xml | 2 +- script.php | 6 +- 16 files changed, 315 insertions(+), 78 deletions(-) create mode 100644 admin/layouts/field/data_base_fullwidth.php diff --git a/README.md b/README.md index ee72fba30..74e626d04 100644 --- a/README.md +++ b/README.md @@ -126,13 +126,13 @@ Component Builder is mapped as a component in itself on my local development env + *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com) + *Name*: [Component Builder](http://joomlacomponentbuilder.com) + *First Build*: 30th April, 2015 -+ *Last Build*: 20th April, 2018 ++ *Last Build*: 23rd April, 2018 + *Version*: 2.7.6 + *Copyright*: Copyright (C) 2015. All Rights Reserved + *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html -+ *Line count*: **183326** -+ *Field count*: **1013** -+ *File count*: **1200** ++ *Line count*: **183707** ++ *Field count*: **1024** ++ *File count*: **1201** + *Folder count*: **193** > This **component** was build with a Joomla [Automated Component Builder](http://joomlacomponentbuilder.com). diff --git a/admin/README.txt b/admin/README.txt index ee72fba30..74e626d04 100644 --- a/admin/README.txt +++ b/admin/README.txt @@ -126,13 +126,13 @@ Component Builder is mapped as a component in itself on my local development env + *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com) + *Name*: [Component Builder](http://joomlacomponentbuilder.com) + *First Build*: 30th April, 2015 -+ *Last Build*: 20th April, 2018 ++ *Last Build*: 23rd April, 2018 + *Version*: 2.7.6 + *Copyright*: Copyright (C) 2015. All Rights Reserved + *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html -+ *Line count*: **183326** -+ *Field count*: **1013** -+ *File count*: **1200** ++ *Line count*: **183707** ++ *Field count*: **1024** ++ *File count*: **1201** + *Folder count*: **193** > This **component** was build with a Joomla [Automated Component Builder](http://joomlacomponentbuilder.com). diff --git a/admin/config.xml b/admin/config.xml index 6032371c5..8dc88dc04 100644 --- a/admin/config.xml +++ b/admin/config.xml @@ -61,6 +61,10 @@ + + + + - - + + COM_COMPONENTBUILDER_CONFIG_SIMPLEXMLELEMENT_CLASS - - + + COM_COMPONENTBUILDER_CONFIG_NEVER_UPDATE - - + + +
+ + + + + + + + + + + + + +
diff --git a/admin/helpers/compiler/a_Get.php b/admin/helpers/compiler/a_Get.php index b9c17d696..d11230710 100644 --- a/admin/helpers/compiler/a_Get.php +++ b/admin/helpers/compiler/a_Get.php @@ -972,6 +972,7 @@ class Get $array['view'] = $array['adminview']; // get the admin settings/data $array['settings'] = $this->getAdminViewData($array['view']); + return $array; }, array_values($component->addadmin_views)); } @@ -1456,7 +1457,7 @@ class Get $view->fields = array_map(function($field) use($name_single, $name_list) { // set hash - static $hash = 1; + static $hash = 123467890; // (TODO) I found this making duplicates // load hash $field['hash'] = md5($field['field'] . $hash); // increment hash diff --git a/admin/helpers/compiler/c_Fields.php b/admin/helpers/compiler/c_Fields.php index 3e944137f..2b80724fc 100644 --- a/admin/helpers/compiler/c_Fields.php +++ b/admin/helpers/compiler/c_Fields.php @@ -2355,7 +2355,7 @@ class Fields extends Structure // set tags for this view but don't load to DB $this->tagsBuilder[$view_name_single] = $view_name_single; } - else + elseif (isset($field['settings']->datatype)) { // insure default not none if number type $intKeys = array('INT', 'TINYINT', 'BIGINT', 'FLOAT', 'DECIMAL', 'DOUBLE'); @@ -2474,7 +2474,7 @@ class Fields extends Structure $this->hiddenFieldsBuilder[$view_name_single] .= ',"' . $name . '"'; } // set all int fields of this view - if ($dbSwitch && ($field['settings']->datatype === 'INT' || $field['settings']->datatype === 'TINYINT' || $field['settings']->datatype === 'BIGINT')) + if ($dbSwitch && isset($field['settings']->datatype) && ($field['settings']->datatype === 'INT' || $field['settings']->datatype === 'TINYINT' || $field['settings']->datatype === 'BIGINT')) { if (!isset($this->intFieldsBuilder[$view_name_single])) { diff --git a/admin/language/en-GB/en-GB.com_componentbuilder.ini b/admin/language/en-GB/en-GB.com_componentbuilder.ini index 7f78bf580..d27188ffd 100644 --- a/admin/language/en-GB/en-GB.com_componentbuilder.ini +++ b/admin/language/en-GB/en-GB.com_componentbuilder.ini @@ -2272,6 +2272,7 @@ function getCronPath(getType, token){ } " COM_COMPONENTBUILDER_CONFIG_BACKUPCRONJOB_NOTE_LABEL="Backup JCB Mapped Components" +COM_COMPONENTBUILDER_CONFIG_BACKUP_DESCRIPTION="Should the zipped package of the component be moved to the local backup and remote sales server? This is only applicable if this component has those values set." COM_COMPONENTBUILDER_CONFIG_BACKUP_EMAIL_DESCRIPTION="Enter the email where the backup key should be send. It will only send an email if a key change is detected, and not on every backup." COM_COMPONENTBUILDER_CONFIG_BACKUP_EMAIL_HINT="Email Address Here" COM_COMPONENTBUILDER_CONFIG_BACKUP_EMAIL_LABEL="Email (backup key)" @@ -2280,6 +2281,7 @@ COM_COMPONENTBUILDER_CONFIG_BACKUP_FOLDER_PATH_DESCRIPTION="Here you can set the COM_COMPONENTBUILDER_CONFIG_BACKUP_FOLDER_PATH_HINT="/home/user/backup" COM_COMPONENTBUILDER_CONFIG_BACKUP_FOLDER_PATH_LABEL="Backup Folder Path" COM_COMPONENTBUILDER_CONFIG_BACKUP_FOLDER_PATH_MESSAGE="Error! Please add folder path here." +COM_COMPONENTBUILDER_CONFIG_BACKUP_LABEL="Add to Backup Folder & Sales Server (if set)" COM_COMPONENTBUILDER_CONFIG_BACKUP_PACKAGE_NAME_DESCRIPTION="Enter Package Name Here" COM_COMPONENTBUILDER_CONFIG_BACKUP_PACKAGE_NAME_HINT="JCB_Backup_[YEAR]_[MONTH]_[DAY]" COM_COMPONENTBUILDER_CONFIG_BACKUP_PACKAGE_NAME_LABEL="Package Name" @@ -2303,6 +2305,8 @@ COM_COMPONENTBUILDER_CONFIG_COMPILER_FOLDER_PATH_DESCRIPTION="Here you can set t COM_COMPONENTBUILDER_CONFIG_COMPILER_FOLDER_PATH_HINT="/home/user/compiler" COM_COMPONENTBUILDER_CONFIG_COMPILER_FOLDER_PATH_LABEL="Compiler Folder Path" COM_COMPONENTBUILDER_CONFIG_COMPILER_FOLDER_PATH_MESSAGE="Error! Please add some text here." +COM_COMPONENTBUILDER_CONFIG_COMPONENT="Component" +COM_COMPONENTBUILDER_CONFIG_COMPONENT_LABEL="Component" COM_COMPONENTBUILDER_CONFIG_CRONJOB="CronJob" COM_COMPONENTBUILDER_CONFIG_CRONJOB_BACKUP_FOLDER_PATH_DESCRIPTION="Here you can set the path to where all components are backed up to." COM_COMPONENTBUILDER_CONFIG_CRONJOB_BACKUP_FOLDER_PATH_HINT="/home/user/fullbackup" @@ -2316,6 +2320,10 @@ COM_COMPONENTBUILDER_CONFIG_CUSTOM_FOLDER_PATH_DESCRIPTION="Here you can set the COM_COMPONENTBUILDER_CONFIG_CUSTOM_FOLDER_PATH_HINT="/home/user/custom" COM_COMPONENTBUILDER_CONFIG_CUSTOM_FOLDER_PATH_LABEL="Custom Folder Path" COM_COMPONENTBUILDER_CONFIG_CUSTOM_FOLDER_PATH_MESSAGE="Error! Please add folder path here." +COM_COMPONENTBUILDER_CONFIG_DEFAULT="Default" +COM_COMPONENTBUILDER_CONFIG_DEVELOPMENT_METHOD="Development Method" +COM_COMPONENTBUILDER_CONFIG_DEVELOPMENT_METHOD_DESCRIPTION="Select what development method you would like to use." +COM_COMPONENTBUILDER_CONFIG_DEVELOPMENT_METHOD_LABEL="Development Method" COM_COMPONENTBUILDER_CONFIG_DKIM="DKIM" COM_COMPONENTBUILDER_CONFIG_DKIM_DESCRIPTION="Set this option to Yes if you want to sign your emails using DKIM." COM_COMPONENTBUILDER_CONFIG_DKIM_DOMAIN_DESCRIPTION="Set the domain. Eg. domain.com" @@ -2349,6 +2357,7 @@ COM_COMPONENTBUILDER_CONFIG_EMAILREPLY_HINT="Email Address Here" COM_COMPONENTBUILDER_CONFIG_EMAILREPLY_LABEL=" Reply to Email" COM_COMPONENTBUILDER_CONFIG_ENCRYPTION_DESC="The encryption key for the field encryption is set here." COM_COMPONENTBUILDER_CONFIG_ENCRYPTION_LABEL="Encryption Settings" +COM_COMPONENTBUILDER_CONFIG_EVENT_LABEL="Trigger Event" COM_COMPONENTBUILDER_CONFIG_EVERY_DAY="Every Day" COM_COMPONENTBUILDER_CONFIG_EVERY_FIFTEEN_MINUTES="Every 15 Minutes" COM_COMPONENTBUILDER_CONFIG_EVERY_FIVE_HOURS="Every 5 Hours" @@ -2360,6 +2369,9 @@ COM_COMPONENTBUILDER_CONFIG_EVERY_TEN_HOURS="Every 10 Hours" COM_COMPONENTBUILDER_CONFIG_EVERY_THIRTY_MINUTES="Every 30 Minutes" COM_COMPONENTBUILDER_CONFIG_EVERY_THIRTY_SECONDS="Every 30 Seconds" COM_COMPONENTBUILDER_CONFIG_EVERY_WEEK="Every Week" +COM_COMPONENTBUILDER_CONFIG_EXPANSION="Expansion" +COM_COMPONENTBUILDER_CONFIG_EXPANSION_DESCRIPTION="Properties for this field" +COM_COMPONENTBUILDER_CONFIG_EXPANSION_LABEL="Expansion" COM_COMPONENTBUILDER_CONFIG_EXPORT_BUY_LINK_DESCRIPTION="Enter link where your JCB package key can be bought." COM_COMPONENTBUILDER_CONFIG_EXPORT_BUY_LINK_HINT="http://www.example.com/buy-keys" COM_COMPONENTBUILDER_CONFIG_EXPORT_BUY_LINK_LABEL="Buy Link
(to get key)" @@ -2419,6 +2431,10 @@ COM_COMPONENTBUILDER_CONFIG_NOTE_COMPILER_FOLDER_PATH_DESCRIPTION="The compiler COM_COMPONENTBUILDER_CONFIG_NOTE_COMPILER_FOLDER_PATH_LABEL="Moving The Compiler Folder" COM_COMPONENTBUILDER_CONFIG_NOTE_CUSTOM_FOLDER_PATH_DESCRIPTION="The custom folder is where all files and folders that you would like to include in your components are stored, the default location is [administrator/components/com_componentbuilder/custom]. You can move this folder by adding your own path here. Remember to move the content of the default custom folder to this new location." COM_COMPONENTBUILDER_CONFIG_NOTE_CUSTOM_FOLDER_PATH_LABEL="Moving The Custom Folder" +COM_COMPONENTBUILDER_CONFIG_NOTE_DEVELOPMENT_METHOD_DEFAULT_DESCRIPTION="

This method is basically the way JCB has always worked by default.

You have a compiler area, once you have made changes you go to the compiler view and compile your component. Then you have the option to install and/or distribute the Joomla install package.

This can also be called the manual development method.

" +COM_COMPONENTBUILDER_CONFIG_NOTE_DEVELOPMENT_METHOD_DEFAULT_LABEL="Default Development Method" +COM_COMPONENTBUILDER_CONFIG_NOTE_DEVELOPMENT_METHOD_EXPANSION_DESCRIPTION="

This method adds auto expansion to the current Joomla automatically.

Below you setup events that trigger auto build and install of a selected set of components. So you do not need to manually compile and install those components any more, the system does all that automatically for you.

So your experience is that you change the field, view or something else in JCB and then the component in Joomla moments later, based on your events and the size of your component, reflect those changed automatically.

This can also be called the automatic development method.

" +COM_COMPONENTBUILDER_CONFIG_NOTE_DEVELOPMENT_METHOD_EXPANSION_LABEL="Expansion Development Method" COM_COMPONENTBUILDER_CONFIG_NOTE_DKIM_USE_DESCRIPTION="

Using the below details, you need to configure your DNS by adding a TXT record on your domain: