Release of v3.2.1-alpha1

Add power path override option on component level. Fix the sql build feature. #1032.
This commit is contained in:
Robot 2024-04-06 19:48:58 +02:00
parent ddb07c79d9
commit 94bc92357e
Signed by untrusted user: Robot
GPG Key ID: 14DECD44E7E1BB95
754 changed files with 1520 additions and 1179 deletions

View File

@ -1,3 +1,8 @@
# v3.2.1-alpha1
- Add power path override option on component level.
- Fix the sql build feature. #1032
# v3.2.0
- Fix #1053 so that the right and left tabs display correctly in Joomla 4&5

View File

@ -9,7 +9,7 @@ The Component Builder for [Joomla](https://extensions.joomla.org/extension/compo
Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/component-builder/) developer, or have just started, Component Builder will save you lots of time and money. A real must have!
You can install it quite easily and with no limitations. On [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (3.2.0) with **ALL** its features and **ALL** concepts totally open-source and free!
You can install it quite easily and with no limitations. On [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (3.2.1-alpha1) with **ALL** its features and **ALL** concepts totally open-source and free!
> Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
@ -144,13 +144,13 @@ TODO
+ *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io)
+ *Name*: [Component Builder](https://git.vdm.dev/joomla/Component-Builder)
+ *First Build*: 30th April, 2015
+ *Last Build*: 27th March, 2024
+ *Version*: 3.2.0
+ *Last Build*: 6th April, 2024
+ *Version*: 3.2.1-alpha1
+ *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved.
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
+ *Line count*: **738967**
+ *Field count*: **2078**
+ *File count*: **5201**
+ *Line count*: **739628**
+ *Field count*: **2080**
+ *File count*: **5207**
+ *Folder count*: **459**
> This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](https://www.joomlacomponentbuilder.com).

View File

@ -9,7 +9,7 @@ The Component Builder for [Joomla](https://extensions.joomla.org/extension/compo
Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/component-builder/) developer, or have just started, Component Builder will save you lots of time and money. A real must have!
You can install it quite easily and with no limitations. On [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (3.2.0) with **ALL** its features and **ALL** concepts totally open-source and free!
You can install it quite easily and with no limitations. On [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (3.2.1-alpha1) with **ALL** its features and **ALL** concepts totally open-source and free!
> Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
@ -144,13 +144,13 @@ TODO
+ *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io)
+ *Name*: [Component Builder](https://git.vdm.dev/joomla/Component-Builder)
+ *First Build*: 30th April, 2015
+ *Last Build*: 27th March, 2024
+ *Version*: 3.2.0
+ *Last Build*: 6th April, 2024
+ *Version*: 3.2.1-alpha1
+ *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved.
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
+ *Line count*: **738967**
+ *Field count*: **2078**
+ *File count*: **5201**
+ *Line count*: **739628**
+ *Field count*: **2080**
+ *File count*: **5207**
+ *Folder count*: **459**
> This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](https://www.joomlacomponentbuilder.com).

View File

@ -23,12 +23,12 @@ if (file_exists($composer_autoloader))
\spl_autoload_register(function ($class) {
// project-specific base directories and namespace prefix
$search = [
'libraries/jcb_powers/VDM.Joomla.Openai' => 'VDM\\Joomla\\Openai',
'libraries/jcb_powers/VDM.Joomla.Gitea' => 'VDM\\Joomla\\Gitea',
'libraries/jcb_powers/VDM.Joomla.FOF' => 'VDM\\Joomla\\FOF',
'libraries/jcb_powers/VDM.Joomla' => 'VDM\\Joomla',
'libraries/jcb_powers/VDM.Minify' => 'VDM\\Minify',
'libraries/jcb_powers/VDM.Psr' => 'VDM\\Psr'
'libraries/vendor_jcb/VDM.Joomla.Openai' => 'VDM\\Joomla\\Openai',
'libraries/vendor_jcb/VDM.Joomla.Gitea' => 'VDM\\Joomla\\Gitea',
'libraries/vendor_jcb/VDM.Joomla.FOF' => 'VDM\\Joomla\\FOF',
'libraries/vendor_jcb/VDM.Joomla' => 'VDM\\Joomla',
'libraries/vendor_jcb/VDM.Minify' => 'VDM\\Minify',
'libraries/vendor_jcb/VDM.Psr' => 'VDM\\Psr'
];
// Start the search and load if found
$found = false;

View File

@ -23,12 +23,12 @@ if (file_exists($composer_autoloader))
\spl_autoload_register(function ($class) {
// project-specific base directories and namespace prefix
$search = [
'libraries/jcb_powers/VDM.Joomla.Openai' => 'VDM\\Joomla\\Openai',
'libraries/jcb_powers/VDM.Joomla.Gitea' => 'VDM\\Joomla\\Gitea',
'libraries/jcb_powers/VDM.Joomla.FOF' => 'VDM\\Joomla\\FOF',
'libraries/jcb_powers/VDM.Joomla' => 'VDM\\Joomla',
'libraries/jcb_powers/VDM.Minify' => 'VDM\\Minify',
'libraries/jcb_powers/VDM.Psr' => 'VDM\\Psr'
'libraries/vendor_jcb/VDM.Joomla.Openai' => 'VDM\\Joomla\\Openai',
'libraries/vendor_jcb/VDM.Joomla.Gitea' => 'VDM\\Joomla\\Gitea',
'libraries/vendor_jcb/VDM.Joomla.FOF' => 'VDM\\Joomla\\FOF',
'libraries/vendor_jcb/VDM.Joomla' => 'VDM\\Joomla',
'libraries/vendor_jcb/VDM.Minify' => 'VDM\\Minify',
'libraries/vendor_jcb/VDM.Psr' => 'VDM\\Psr'
];
// Start the search and load if found
$found = false;
@ -2257,7 +2257,7 @@ abstract class ComponentbuilderHelper
* @return array on success
*
*/
public static function getFieldTypeProperties($value, $type, $settings = array(), $xml = null, $dbDefaults = false)
public static function getFieldTypeProperties($value, $type, $settings = [], $xml = null, $dbDefaults = false)
{
// Get a db connection.
$db = Factory::getDbo();

View File

@ -5642,6 +5642,8 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_FOOTABLE_V3="Add FooTable V3"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_GIT_FOLDER_PATH_DESCRIPTION="Would you like to override the global git folder path for this component?"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_GIT_FOLDER_PATH_LABEL="Git Folder Path"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_JAVASCRIPT_LABEL="Add Javascript"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_JCB_POWERS_PATH_DESCRIPTION="Would you like to override the global jcb powers path for this component?"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_JCB_POWERS_PATH_LABEL="JCB Powers Path"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_LICENSE_DESCRIPTION="Add the option to use the whmcs license add-on in the component."
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_LICENSE_LABEL="Add WHMCS<br /><small>(license add-on)</small>"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_MENU_PREFIX_DESCRIPTION="Would you like to add a prefix to the Joomla menu name of this component"
@ -5746,7 +5748,7 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DESCRIPTION_LABEL="Description"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DETAILS="Details"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DO_NOT_ADD_FIX_EVER="Do not add fix ever"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DYNAMIC="Dynamic"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DYNAMIC_BUILD_BETA="Dynamic Build (beta)"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DYNAMIC_BUILD="Dynamic Build"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DYNAMIC_INTEGRATION="Dynamic Integration"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EDIT="Editing the Joomla Component"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EMAIL="Email"
@ -5787,6 +5789,10 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JAVASCRIPT_DESCRIPTION="Add JavaScript for
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JAVASCRIPT_LABEL="Javascript"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JCB_EXPORT_PACKAGE_NOTE_DESCRIPTION="The settings below are used when you export this component as a JCB Package, for more info on how this works please review the following tutorial (<a href='https://youtu.be/lkE0ZiSWufg' target='_blank'>https://youtu.be/lkE0ZiSWufg</a>)."
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JCB_EXPORT_PACKAGE_NOTE_LABEL="JCB Package Export Settings"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JCB_POWERS_PATH_DESCRIPTION="Here you can set the path to the powers folder. Recommended that you always place it inside the <b>libraries</b>. You don't need to add a full path here, so <b>libraries/jcb_powers</b> will mean <i>/home/username/public_html/libraries/jcb_powers</i> when installed. You should always use two folders here, libraries + one more for example: <br /><code>libraries/jcb_powers</code>"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JCB_POWERS_PATH_HINT="libraries/jcb_powers"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JCB_POWERS_PATH_LABEL="JCB Powers Path<br /><small>example: <code>libraries/jcb_powers</code></small>"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JCB_POWERS_PATH_MESSAGE="Error! Please add folder path here."
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JOOMLA_SOURCE_LINK_DESCRIPTION="Enter link where this Joomla component's source code can be found on gitHub. Where those who want to use this package, can review and contribute to the code."
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JOOMLA_SOURCE_LINK_HINT="https://github.com/vdm-io/Joomla-Component-Builder"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JOOMLA_SOURCE_LINK_LABEL="Joomla Source Link<br /><small>(where the Joomla source code is found)</small>"
@ -5834,8 +5840,8 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_BACKUP_FOLDER_PATH_DESCRIPTION="You c
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_BACKUP_FOLDER_PATH_LABEL="Adding a backup folder export option"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_BOTTON_COMPONENT_DASHBOARD_DESCRIPTION="<p>The default dashboard has all the icons of the views you have selected as <b>Dashboard (add record)</b> or <b>Dashboard (list of records)</b>, to expand it you can add more tabs.</p><span id='jform_button_component_dashboard'></span>"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_BOTTON_COMPONENT_DASHBOARD_LABEL="Default Dashboard Option"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_BUILDCOMP_DYNAMIC_MYSQL_DESCRIPTION="You can dynamically build the components back-end views and fields by adding a mySql table dump, that has all the tables, or some more tables with its columns and data types. A very basic and generic set of fields and tables will be created, and added to the existing fields and tables of this component."
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_BUILDCOMP_DYNAMIC_MYSQL_LABEL="Dynamic Builder (mySql) Option"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_BUILDCOMP_DYNAMIC_MYSQL_DESCRIPTION="<p>You can dynamically build the components back-end views and fields by adding a MySQL table dump that includes all or additional tables with their respective columns and data types. A basic and generic set of fields and tables will be created and integrated with the existing fields and tables of this component.</p><p>It is critical that the SQL provided be valid; otherwise, the process will fail. Additionally, you have the option to specify the field type and other properties directly in the MySQL column <b>COMMENT</b>. This is done using JSON formatting in the comments section of each column/field.</p><p>For example, to define a field as a list with predefined options, use the following comment format:<br><code>COMMENT '{&quot;type&quot;:&quot;List&quot;, &quot;label&quot;:&quot;Name&quot;}'</code></p><p>This JSON format allows you to specify various field properties, such as &quot;type&quot;, &quot;label&quot;, and &quot;option&quot;, which will be used to generate corresponding fields in the JCB Field configuration area.</p>"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_BUILDCOMP_DYNAMIC_MYSQL_LABEL="Dynamic Builder (MySql) Option"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_COMPONENT_FILES_FOLDERS_DESCRIPTION="You can add custom files and folders to the component, simply add the files to the administrator/components/com_componentbuilder/custom folder and then select them here.<span id='jform_button_component_files_folders'></span>"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_COMPONENT_FILES_FOLDERS_LABEL="Adding Custom Files & Folder"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_CROWDIN_DESCRIPTION="<div class='alert alert-warning'><h4>Feature not ready?</h4><p>We are still working on this integration, so it is not fully ready.</p></div><div id='crowdin_information_box'><div class='alert alert-info'><h4>How to use Crowdin with JCB?</h4><p>You will need an account with Crowdin https://crowdin.com/, then setup a project following these steps https://support.crowdin.com/creating-project/<br />Once your project is created get the project API key following these steps https://support.crowdin.com/api/api-integration-setup/<br />Then add the Project API key and identifier details below, and your done! Next time you compile this component JCB will automatically sync your project with Crowdin.</p></div></div><div id='crowdin_success_box'></div><div id='crowdin_error_box'></div>"
@ -7542,7 +7548,6 @@ COM_COMPONENTBUILDER_NO_COMPONENTS_FOUND="No Components Found"
COM_COMPONENTBUILDER_NO_COMPONENTS_WERE_SELECTED_PLEASE_MAKE_A_SELECTION_AND_TRY_AGAIN="No components were selected, please make a selection and try again!"
COM_COMPONENTBUILDER_NO_COMPONENT_DETAILS_FOUND_SO_IT_IS_NOT_SAFE_TO_CONTINUE="No component details found, so it is not safe to continue!"
COM_COMPONENTBUILDER_NO_COMPONENT_WAS_SELECTED_PLEASE_MAKE_A_SELECTION_OF_ONE_COMPONENT_AND_TRY_AGAIN="No component was selected, please make a selection of one component and try again!"
COM_COMPONENTBUILDER_NO_CREATE_TABLE_WERE_FOUND_PLEASE_CHECK_YOUR_SQL="No "CREATE TABLE.." were found, please check your sql."
COM_COMPONENTBUILDER_NO_CRONJOB_PATH_FOUND_FOR_S="No cronjob path found for (%s)"
COM_COMPONENTBUILDER_NO_CRONJOB_PATH_FOUND_SINCE_INCORRECT_TYPE_REQUESTED="No cronjob path found since incorrect type requested."
COM_COMPONENTBUILDER_NO_DESCRIPTION_FOUND="No description found."
@ -7680,7 +7685,7 @@ COM_COMPONENTBUILDER_PLEASE_FIRST_MAKE_A_SELECTION_FROM_THE_LIST="Please first m
COM_COMPONENTBUILDER_PLEASE_NOTE_THAT_THIS_PACKAGE_BHAS_NOB_CHECKSUM_VALIDATION="Please note that this package <b>has no</b> checksum validation!"
COM_COMPONENTBUILDER_PLEASE_SELECT_A_COMPONENT_THAT_YOU_WOULD_LIKE_TO_COMPILE="Please select a component that you would like to compile."
COM_COMPONENTBUILDER_PLEASE_TRY_AGAIN_LATER="Please try again later"
COM_COMPONENTBUILDER_PLEASE_TRY_AGAIN_THIS_ERROR_USUALY_HAPPENS_IF_IT_IS_A_NEW_COMPONENT_BEACUES_WE_NEED_A_COMPONENT_ID_TO_DO_THIS_BUILD_WITH_YOUR_SQL_DUMP="Please try again, this error usualy happens if it is a new component, beacues we need a component ID to do this build with your sql dump."
COM_COMPONENTBUILDER_PLEASE_TRY_AGAIN_THIS_ERROR_USUALLY_HAPPENS_IF_IT_IS_A_NEW_COMPONENT_BECAUSE_WE_NEED_A_COMPONENT_ID_TO_DO_THIS_BUILD_WITH_YOUR_SQL_DUMP="Please try again, this error usually happens if it is a new component, because we need a component ID to do this build with your sql dump."
COM_COMPONENTBUILDER_PLEASE_WAIT="Please wait!"
COM_COMPONENTBUILDER_PLEASE_WAIT_LOADING="Please wait, loading"
COM_COMPONENTBUILDER_PLUGIN="Plugin"

View File

@ -40,7 +40,9 @@ $fields = $displayData->get($fields_tab_layout) ?: array(
'backup_folder_path',
'add_git_folder_path',
'note_git_folder_path',
'git_folder_path'
'git_folder_path',
'add_jcb_powers_path',
'jcb_powers_path'
);
$hiddenFields = $displayData->get('hidden_fields') ?: [];

View File

@ -157,32 +157,21 @@
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPANYNAME_MESSAGE"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPANYNAME_HINT"
/>
<!-- Buildcompsql Field. Type: Textarea. (joomla) -->
<!-- Note_buildcomp_dynamic_mysql Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_buildcomp_dynamic_mysql" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_BUILDCOMP_DYNAMIC_MYSQL_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_BUILDCOMP_DYNAMIC_MYSQL_DESCRIPTION" heading="h4" class="alert alert-info note_buildcomp_dynamic_mysql" />
<!-- Add_jcb_powers_path Field. Type: Radio. (joomla) -->
<field
type="textarea"
name="buildcompsql"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BUILDCOMPSQL_LABEL"
rows="30"
cols="15"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BUILDCOMPSQL_DESCRIPTION"
class="text_area span12"
filter="raw"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BUILDCOMPSQL_HINT"
required="true"
/>
<!-- Translation_tool Field. Type: List. (joomla) -->
<field
type="list"
name="translation_tool"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_TRANSLATION_TOOL_LABEL"
class="list_class"
multiple="false"
default="0">
type="radio"
name="add_jcb_powers_path"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_JCB_POWERS_PATH_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_JCB_POWERS_PATH_DESCRIPTION"
class="btn-group btn-group-yesno"
default="">
<!-- Option Set. -->
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NONE</option>
<option value="">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_GLOBAL</option>
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN</option>
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_OVERRIDE</option>
</field>
<!-- Add_sales_server Field. Type: Radio. (joomla) -->
<field
@ -198,14 +187,25 @@
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NO</option>
</field>
<!-- Note_readme Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_readme" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_README_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_README_DESCRIPTION" heading="h4" class="note_readme" />
<!-- Php_method_uninstall Field. Type: Editor. (joomla) -->
<!-- Sql_uninstall Field. Type: Textarea. (joomla) -->
<field
type="textarea"
name="sql_uninstall"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SQL_UNINSTALL_LABEL"
rows="30"
cols="15"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SQL_UNINSTALL_DESCRIPTION"
class="text_area span12"
filter="raw"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SQL_UNINSTALL_HINT"
required="true"
/>
<!-- Php_postflight_install Field. Type: Editor. (joomla) -->
<field
type="editor"
name="php_method_uninstall"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_METHOD_UNINSTALL_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_METHOD_UNINSTALL_DESCRIPTION"
name="php_postflight_install"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_POSTFLIGHT_INSTALL_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_POSTFLIGHT_INSTALL_DESCRIPTION"
width="100%"
height="450px"
cols="15"
@ -216,12 +216,14 @@
filter="raw"
validate="code"
/>
<!-- Php_preflight_install Field. Type: Editor. (joomla) -->
<!-- Note_dynamic_dashboard Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_dynamic_dashboard" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_DYNAMIC_DASHBOARD_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_DYNAMIC_DASHBOARD_DESCRIPTION" heading="h4" class="alert alert-info note_dynamic_dashboard" />
<!-- Php_site_event Field. Type: Editor. (joomla) -->
<field
type="editor"
name="php_preflight_install"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_PREFLIGHT_INSTALL_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_PREFLIGHT_INSTALL_DESCRIPTION"
name="php_site_event"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_SITE_EVENT_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_SITE_EVENT_DESCRIPTION"
width="100%"
height="450px"
cols="15"
@ -232,22 +234,6 @@
filter="raw"
validate="code"
/>
<!-- Css_admin Field. Type: Editor. (joomla) -->
<field
type="editor"
name="css_admin"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CSS_ADMIN_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CSS_ADMIN_DESCRIPTION"
width="100%"
height="450px"
cols="15"
rows="30"
buttons="no"
syntax="css"
editor="codemirror|none"
filter="raw"
validate="code"
/>
<!-- Note_version_options_3 Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_version_options_3" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_VERSION_OPTIONS_3_DESCRIPTION" class="alert alert-info note_version_options_3" showon="mvc_versiondate:3" />
<!-- Note_version_options_2 Field. Type: Note. A None Database Field. (joomla) -->
@ -305,27 +291,28 @@
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NO</option>
</field>
<!-- Debug_linenr Field. Type: Radio. (joomla) -->
<field
type="radio"
name="debug_linenr"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DEBUG_LINENR_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DEBUG_LINENR_DESCRIPTION"
class="btn-group btn-group-yesno"
default="0"
required="true">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NO</option>
</field>
<!-- Php_site_event Field. Type: Editor. (joomla) -->
<!-- Php_helper_both Field. Type: Editor. (joomla) -->
<field
type="editor"
name="php_site_event"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_SITE_EVENT_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_SITE_EVENT_DESCRIPTION"
name="php_helper_both"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_HELPER_BOTH_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_HELPER_BOTH_DESCRIPTION"
width="100%"
height="550px"
cols="15"
rows="80"
buttons="no"
syntax="php"
editor="codemirror|none"
filter="raw"
validate="code"
/>
<!-- Php_admin_event Field. Type: Editor. (joomla) -->
<field
type="editor"
name="php_admin_event"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_ADMIN_EVENT_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_ADMIN_EVENT_DESCRIPTION"
width="100%"
height="450px"
cols="15"
@ -348,8 +335,22 @@
filter="HTML"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DESCRIPTION_HINT"
/>
<!-- Note_dynamic_dashboard Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_dynamic_dashboard" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_DYNAMIC_DASHBOARD_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_DYNAMIC_DASHBOARD_DESCRIPTION" heading="h4" class="alert alert-info note_dynamic_dashboard" />
<!-- Css_admin Field. Type: Editor. (joomla) -->
<field
type="editor"
name="css_admin"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CSS_ADMIN_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CSS_ADMIN_DESCRIPTION"
width="100%"
height="450px"
cols="15"
rows="30"
buttons="no"
syntax="css"
editor="codemirror|none"
filter="raw"
validate="code"
/>
<!-- Author Field. Type: Text. (joomla) -->
<field
type="text"
@ -366,12 +367,12 @@
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_AUTHOR_MESSAGE"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_AUTHOR_HINT"
/>
<!-- Php_postflight_install Field. Type: Editor. (joomla) -->
<!-- Php_preflight_install Field. Type: Editor. (joomla) -->
<field
type="editor"
name="php_postflight_install"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_POSTFLIGHT_INSTALL_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_POSTFLIGHT_INSTALL_DESCRIPTION"
name="php_preflight_install"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_PREFLIGHT_INSTALL_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_PREFLIGHT_INSTALL_DESCRIPTION"
width="100%"
height="450px"
cols="15"
@ -397,18 +398,21 @@
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EMAIL_MESSAGE"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EMAIL_HINT"
/>
<!-- Sql_uninstall Field. Type: Textarea. (joomla) -->
<!-- Php_method_uninstall Field. Type: Editor. (joomla) -->
<field
type="textarea"
name="sql_uninstall"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SQL_UNINSTALL_LABEL"
rows="30"
type="editor"
name="php_method_uninstall"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_METHOD_UNINSTALL_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_METHOD_UNINSTALL_DESCRIPTION"
width="100%"
height="450px"
cols="15"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SQL_UNINSTALL_DESCRIPTION"
class="text_area span12"
rows="30"
buttons="no"
syntax="php"
editor="codemirror|none"
filter="raw"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SQL_UNINSTALL_HINT"
required="true"
validate="code"
/>
<!-- Website Field. Type: Url. (joomla) -->
<field
@ -426,8 +430,21 @@
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WEBSITE_MESSAGE"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WEBSITE_HINT"
/>
<!-- Note_update_server_note_ftp Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_update_server_note_ftp" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_UPDATE_SERVER_NOTE_FTP_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_UPDATE_SERVER_NOTE_FTP_DESCRIPTION" heading="h4" class="alert alert-success note_update_server_note_ftp" />
<!-- Debug_linenr Field. Type: Radio. (joomla) -->
<field
type="radio"
name="debug_linenr"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DEBUG_LINENR_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DEBUG_LINENR_DESCRIPTION"
class="btn-group btn-group-yesno"
default="0"
required="true">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NO</option>
</field>
<!-- Add_license Field. Type: Radio. (joomla) -->
<field
type="radio"
@ -461,52 +478,6 @@
autocomplete="on"
showon="add_backup_folder_path:1"
/>
<!-- Php_helper_both Field. Type: Editor. (joomla) -->
<field
type="editor"
name="php_helper_both"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_HELPER_BOTH_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_HELPER_BOTH_DESCRIPTION"
width="100%"
height="550px"
cols="15"
rows="80"
buttons="no"
syntax="php"
editor="codemirror|none"
filter="raw"
validate="code"
/>
<!-- Crowdin_username Field. Type: Text. (joomla) -->
<field
type="text"
name="crowdin_username"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_USERNAME_LABEL"
size="50"
maxlength="150"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_USERNAME_DESCRIPTION"
class="text_area"
required="true"
filter="CMD"
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_USERNAME_MESSAGE"
autocomplete="off"
/>
<!-- Php_admin_event Field. Type: Editor. (joomla) -->
<field
type="editor"
name="php_admin_event"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_ADMIN_EVENT_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_ADMIN_EVENT_DESCRIPTION"
width="100%"
height="450px"
cols="15"
rows="30"
buttons="no"
syntax="php"
editor="codemirror|none"
filter="raw"
validate="code"
/>
<!-- License_type Field. Type: List. (joomla) -->
<field
type="list"
@ -528,54 +499,32 @@
<option value="4">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CUSTOM_USED_IN_CUSTOM_CODE</option>
</field>
<!-- Component_version Field. Type: Text. (joomla) -->
<!-- Crowdin_project_identifier Field. Type: Text. (joomla) -->
<field
type="text"
name="component_version"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPONENT_VERSION_LABEL"
size="40"
maxlength="50"
default="1.0.0"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPONENT_VERSION_DESCRIPTION"
name="crowdin_project_identifier"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_PROJECT_IDENTIFIER_LABEL"
size="50"
maxlength="150"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_PROJECT_IDENTIFIER_DESCRIPTION"
class="text_area"
required="true"
filter="CMD"
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPONENT_VERSION_MESSAGE"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPONENT_VERSION_HINT"
/>
<!-- Php_helper_admin Field. Type: Editor. (joomla) -->
<field
type="editor"
name="php_helper_admin"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_HELPER_ADMIN_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_HELPER_ADMIN_DESCRIPTION"
width="100%"
height="550px"
cols="15"
rows="80"
buttons="no"
syntax="php"
editor="codemirror|none"
filter="raw"
validate="code"
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_PROJECT_IDENTIFIER_MESSAGE"
autocomplete="off"
onchange="getTranslationToolDetails()"
/>
<!-- Note_whmcs_lisencing_note Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_whmcs_lisencing_note" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_WHMCS_LISENCING_NOTE_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_WHMCS_LISENCING_NOTE_DESCRIPTION" heading="h4" class="alert alert-success note_whmcs_lisencing_note" />
<!-- Php_helper_site Field. Type: Editor. (joomla) -->
<!-- Created Field. Type: Calendar. (joomla) -->
<field
type="editor"
name="php_helper_site"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_HELPER_SITE_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_HELPER_SITE_DESCRIPTION"
width="100%"
height="550px"
cols="15"
rows="80"
buttons="no"
syntax="php"
editor="codemirror|none"
filter="raw"
validate="code"
type="calendar"
name="created"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CREATED_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CREATED_DESCRIPTION"
format="%Y-%m-%d %H:%M:%S"
filter="user_utc"
size="22"
/>
<!-- Whmcs_key Field. Type: Text. (joomla) -->
<field
@ -590,18 +539,18 @@
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WHMCS_KEY_MESSAGE"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WHMCS_KEY_HINT"
/>
<!-- Javascript Field. Type: Editor. (joomla) -->
<!-- Php_helper_admin Field. Type: Editor. (joomla) -->
<field
type="editor"
name="javascript"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JAVASCRIPT_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JAVASCRIPT_DESCRIPTION"
name="php_helper_admin"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_HELPER_ADMIN_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_HELPER_ADMIN_DESCRIPTION"
width="100%"
height="450px"
height="550px"
cols="15"
rows="30"
rows="80"
buttons="no"
syntax="javascript"
syntax="php"
editor="codemirror|none"
filter="raw"
validate="code"
@ -621,18 +570,18 @@
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WHMCS_URL_MESSAGE"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WHMCS_URL_HINT"
/>
<!-- Css_site Field. Type: Editor. (joomla) -->
<!-- Php_helper_site Field. Type: Editor. (joomla) -->
<field
type="editor"
name="css_site"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CSS_SITE_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CSS_SITE_DESCRIPTION"
name="php_helper_site"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_HELPER_SITE_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_HELPER_SITE_DESCRIPTION"
width="100%"
height="450px"
height="550px"
cols="15"
rows="30"
rows="80"
buttons="no"
syntax="css"
syntax="php"
editor="codemirror|none"
filter="raw"
validate="code"
@ -652,8 +601,22 @@
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WHMCS_BUY_LINK_MESSAGE"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WHMCS_BUY_LINK_HINT"
/>
<!-- Note_botton_component_dashboard Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_botton_component_dashboard" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_BOTTON_COMPONENT_DASHBOARD_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_BOTTON_COMPONENT_DASHBOARD_DESCRIPTION" heading="h4" class="alert alert-info note_botton_component_dashboard" />
<!-- Javascript Field. Type: Editor. (joomla) -->
<field
type="editor"
name="javascript"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JAVASCRIPT_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JAVASCRIPT_DESCRIPTION"
width="100%"
height="450px"
cols="15"
rows="30"
buttons="no"
syntax="javascript"
editor="codemirror|none"
filter="raw"
validate="code"
/>
<!-- License Field. Type: Textarea. (joomla) -->
<field
type="textarea"
@ -668,6 +631,44 @@
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LICENSE_HINT"
required="true"
/>
<!-- Css_site Field. Type: Editor. (joomla) -->
<field
type="editor"
name="css_site"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CSS_SITE_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CSS_SITE_DESCRIPTION"
width="100%"
height="450px"
cols="15"
rows="30"
buttons="no"
syntax="css"
editor="codemirror|none"
filter="raw"
validate="code"
/>
<!-- Bom Field. Type: Filelist. (joomla) -->
<field
type="filelist"
name="bom"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BOM_LABEL"
directory="administrator/components/com_componentbuilder/compiler"
default="default.txt"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BOM_DESCRIPTION"
filter="\.txt"
hide_none="true"
hide_default="true"
/>
<!-- Note_botton_component_dashboard Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_botton_component_dashboard" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_BOTTON_COMPONENT_DASHBOARD_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_BOTTON_COMPONENT_DASHBOARD_DESCRIPTION" heading="h4" class="alert alert-info note_botton_component_dashboard" />
<!-- Image Field. Type: Media. (joomla) -->
<field
type="media"
name="image"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_IMAGE_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_IMAGE_DESCRIPTION"
directory=""
/>
<!-- Php_preflight_update Field. Type: Editor. (joomla) -->
<field
type="editor"
@ -684,17 +685,19 @@
filter="raw"
validate="code"
/>
<!-- Bom Field. Type: Filelist. (joomla) -->
<!-- Copyright Field. Type: Textarea. (joomla) -->
<field
type="filelist"
name="bom"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BOM_LABEL"
directory="administrator/components/com_componentbuilder/compiler"
default="default.txt"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BOM_DESCRIPTION"
filter="\.txt"
hide_none="true"
hide_default="true"
type="textarea"
name="copyright"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COPYRIGHT_LABEL"
rows="7"
cols="10"
default="Copyright (C) 2015. All Rights Reserved"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COPYRIGHT_DESCRIPTION"
class="text_area span12"
filter="SAFEHTML"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COPYRIGHT_HINT"
required="true"
/>
<!-- Php_postflight_update Field. Type: Editor. (joomla) -->
<field
@ -712,14 +715,8 @@
filter="raw"
validate="code"
/>
<!-- Image Field. Type: Media. (joomla) -->
<field
type="media"
name="image"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_IMAGE_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_IMAGE_DESCRIPTION"
directory=""
/>
<!-- Note_readme Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_readme" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_README_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_README_DESCRIPTION" heading="h4" class="note_readme" />
<!-- Sql Field. Type: Textarea. (joomla) -->
<field
type="textarea"
@ -733,20 +730,8 @@
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SQL_HINT"
required="true"
/>
<!-- Copyright Field. Type: Textarea. (joomla) -->
<field
type="textarea"
name="copyright"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COPYRIGHT_LABEL"
rows="7"
cols="10"
default="Copyright (C) 2015. All Rights Reserved"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COPYRIGHT_DESCRIPTION"
class="text_area span12"
filter="SAFEHTML"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COPYRIGHT_HINT"
required="true"
/>
<!-- Note_update_server_note_ftp Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_update_server_note_ftp" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_UPDATE_SERVER_NOTE_FTP_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_UPDATE_SERVER_NOTE_FTP_DESCRIPTION" heading="h4" class="alert alert-success note_update_server_note_ftp" />
<!-- Addreadme Field. Type: Radio. (joomla) -->
<field
type="radio"
@ -760,16 +745,20 @@
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NO</option>
</field>
<!-- Preferred_joomla_version Field. Type: Number. (joomla) -->
<!-- Component_version Field. Type: Text. (joomla) -->
<field
type="number"
name="preferred_joomla_version"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PREFERRED_JOOMLA_VERSION_LABEL"
default="3"
type="text"
name="component_version"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPONENT_VERSION_LABEL"
size="40"
maxlength="50"
default="1.0.0"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPONENT_VERSION_DESCRIPTION"
class="text_area"
min="3"
max="5"
step="1"
required="true"
filter="CMD"
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPONENT_VERSION_MESSAGE"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPONENT_VERSION_HINT"
/>
<!-- Update_server_url Field. Type: Url. (joomla) -->
<field
@ -786,6 +775,19 @@
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_UPDATE_SERVER_URL_MESSAGE"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_UPDATE_SERVER_URL_HINT"
/>
<!-- Preferred_joomla_version Field. Type: Number. (joomla) -->
<field
type="number"
name="preferred_joomla_version"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PREFERRED_JOOMLA_VERSION_LABEL"
default="3"
class="text_area"
min="3"
max="5"
step="1"
/>
<!-- Note_update_server_note_other Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_update_server_note_other" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_UPDATE_SERVER_NOTE_OTHER_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_UPDATE_SERVER_NOTE_OTHER_DESCRIPTION" heading="h4" class="alert alert-success note_update_server_note_other" />
<!-- Add_powers Field. Type: Radio. (joomla) -->
<field
type="radio"
@ -801,14 +803,6 @@
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NO</option>
</field>
<!-- Note_update_server_note_other Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_update_server_note_other" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_UPDATE_SERVER_NOTE_OTHER_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_UPDATE_SERVER_NOTE_OTHER_DESCRIPTION" heading="h4" class="alert alert-success note_update_server_note_other" />
<!-- Not_required Field. Type: Hidden. (joomla) -->
<field
type="hidden"
name="not_required"
default="一_一"
/>
<!-- Add_backup_folder_path Field. Type: Radio. (joomla) -->
<field
type="radio"
@ -823,59 +817,65 @@
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_OVERRIDE</option>
</field>
<!-- Note_moved_views Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_moved_views" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_MOVED_VIEWS_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_MOVED_VIEWS_DESCRIPTION" heading="h4" class="alert alert-info note_moved_views" />
<!-- Not_required Field. Type: Hidden. (joomla) -->
<field
type="hidden"
name="not_required"
default="一_一"
/>
<!-- Note_git_folder_path Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_git_folder_path" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_GIT_FOLDER_PATH_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_GIT_FOLDER_PATH_DESCRIPTION" heading="h4" class="alert alert-info note_git_folder_path" showon="add_git_folder_path:1" />
<!-- Note_moved_views Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_moved_views" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_MOVED_VIEWS_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_MOVED_VIEWS_DESCRIPTION" heading="h4" class="alert alert-info note_moved_views" />
<!-- Translation_tool Field. Type: List. (joomla) -->
<field
type="list"
name="translation_tool"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_TRANSLATION_TOOL_LABEL"
class="list_class"
multiple="false"
default="0">
<!-- Option Set. -->
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NONE</option>
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN</option>
</field>
<!-- Spacer_hr_1 Field. Type: Spacer. A None Database Field. (joomla) -->
<field type="spacer" name="spacer_hr_1" hr="true" class="spacer_hr_1" />
<!-- Crowdin_project_identifier Field. Type: Text. (joomla) -->
<!-- Crowdin_username Field. Type: Text. (joomla) -->
<field
type="text"
name="crowdin_project_identifier"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_PROJECT_IDENTIFIER_LABEL"
name="crowdin_username"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_USERNAME_LABEL"
size="50"
maxlength="150"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_PROJECT_IDENTIFIER_DESCRIPTION"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_USERNAME_DESCRIPTION"
class="text_area"
required="true"
filter="CMD"
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_PROJECT_IDENTIFIER_MESSAGE"
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_USERNAME_MESSAGE"
autocomplete="off"
onchange="getTranslationToolDetails()"
/>
<!-- Note_mysql_tweak_options Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_mysql_tweak_options" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_MYSQL_TWEAK_OPTIONS_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_MYSQL_TWEAK_OPTIONS_DESCRIPTION" heading="h4" class="alert alert-info note_mysql_tweak_options" />
<!-- Note_buildcomp_dynamic_mysql Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_buildcomp_dynamic_mysql" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_BUILDCOMP_DYNAMIC_MYSQL_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_BUILDCOMP_DYNAMIC_MYSQL_DESCRIPTION" heading="h4" class="alert alert-info note_buildcomp_dynamic_mysql" />
<!-- Buildcompsql Field. Type: Textarea. (joomla) -->
<field
type="textarea"
name="buildcompsql"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BUILDCOMPSQL_LABEL"
rows="30"
cols="15"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BUILDCOMPSQL_DESCRIPTION"
class="text_area span12"
filter="raw"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BUILDCOMPSQL_HINT"
required="true"
/>
<!-- Spacer_hr_2 Field. Type: Spacer. A None Database Field. (joomla) -->
<field type="spacer" name="spacer_hr_2" hr="true" class="spacer_hr_2" />
<!-- Created Field. Type: Calendar. (joomla) -->
<field
type="calendar"
name="created"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CREATED_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CREATED_DESCRIPTION"
format="%Y-%m-%d %H:%M:%S"
filter="user_utc"
size="22"
/>
<!-- Note_add_custom_menus Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_add_custom_menus" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_ADD_CUSTOM_MENUS_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_ADD_CUSTOM_MENUS_DESCRIPTION" heading="h4" class="alert alert-info note_add_custom_menus" />
<!-- Add_php_helper_both Field. Type: Radio. (joomla) -->
<field
type="radio"
name="add_php_helper_both"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_PHP_HELPER_BOTH_LABEL"
class="btn-group btn-group-yesno"
default="0"
required="true">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NO</option>
</field>
<!-- Spacer_hr_3 Field. Type: Spacer. A None Database Field. (joomla) -->
<field type="spacer" name="spacer_hr_3" hr="true" class="spacer_hr_3" />
<!-- Add_php_helper_admin Field. Type: Radio. (joomla) -->
@ -1509,25 +1509,25 @@
/>
<!-- Note_on_custom_admin_views Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_on_custom_admin_views" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_ON_CUSTOM_ADMIN_VIEWS_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_ON_CUSTOM_ADMIN_VIEWS_DESCRIPTION" heading="h4" class="alert alert-info note_on_custom_admin_views" />
<!-- Note_crowdin Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_crowdin" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_CROWDIN_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_CROWDIN_DESCRIPTION" heading="h2" class="note_crowdin" />
<!-- Note_display_component_custom_admin_views Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_display_component_custom_admin_views" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_DISPLAY_COMPONENT_CUSTOM_ADMIN_VIEWS_DESCRIPTION" class="note_display_component_custom_admin_views" />
<!-- Crowdin_project_api_key Field. Type: Text. (joomla) -->
<!-- Jcb_powers_path Field. Type: Text. (joomla) -->
<field
type="text"
name="crowdin_project_api_key"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_PROJECT_API_KEY_LABEL"
size="50"
name="jcb_powers_path"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JCB_POWERS_PATH_LABEL"
size="70"
maxlength="150"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_PROJECT_API_KEY_DESCRIPTION"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JCB_POWERS_PATH_DESCRIPTION"
class="text_area"
required="true"
filter="ALNUM"
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_PROJECT_API_KEY_MESSAGE"
autocomplete="off"
onchange="getTranslationToolDetails()"
filter="PATH"
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JCB_POWERS_PATH_MESSAGE"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JCB_POWERS_PATH_HINT"
autocomplete="on"
showon="add_jcb_powers_path:1"
/>
<!-- Note_display_component_custom_admin_views Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_display_component_custom_admin_views" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_DISPLAY_COMPONENT_CUSTOM_ADMIN_VIEWS_DESCRIPTION" class="note_display_component_custom_admin_views" />
<!-- Note_crowdin Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_crowdin" label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_CROWDIN_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_CROWDIN_DESCRIPTION" heading="h2" class="note_crowdin" />
<!-- Creatuserhelper Field. Type: Radio. (joomla) -->
<field
type="radio"
@ -1542,18 +1542,20 @@
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NO</option>
</field>
<!-- Crowdin_account_api_key Field. Type: Text. (joomla) -->
<!-- Crowdin_project_api_key Field. Type: Text. (joomla) -->
<field
type="text"
name="crowdin_account_api_key"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_ACCOUNT_API_KEY_LABEL"
name="crowdin_project_api_key"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_PROJECT_API_KEY_LABEL"
size="50"
maxlength="150"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_ACCOUNT_API_KEY_DESCRIPTION"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_PROJECT_API_KEY_DESCRIPTION"
class="text_area"
required="true"
filter="ALNUM"
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_ACCOUNT_API_KEY_MESSAGE"
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_PROJECT_API_KEY_MESSAGE"
autocomplete="off"
onchange="getTranslationToolDetails()"
/>
<!-- Adduikit Field. Type: List. (joomla) -->
<field
@ -1573,21 +1575,19 @@
<option value="3">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_UIKIT_V3</option>
</field>
<!-- Buildcomp Field. Type: Radio. (joomla) -->
<!-- Crowdin_account_api_key Field. Type: Text. (joomla) -->
<field
type="radio"
name="buildcomp"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BUILDCOMP_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BUILDCOMP_DESCRIPTION"
class="btn-group btn-group-yesno"
default="0"
required="true">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NO</option>
</field>
type="text"
name="crowdin_account_api_key"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_ACCOUNT_API_KEY_LABEL"
size="50"
maxlength="150"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_ACCOUNT_API_KEY_DESCRIPTION"
class="text_area"
filter="ALNUM"
message="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CROWDIN_ACCOUNT_API_KEY_MESSAGE"
autocomplete="off"
/>
<!-- Addfootable Field. Type: List. (joomla) -->
<field
type="list"
@ -1606,6 +1606,36 @@
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_FOOTABLE_V2</option>
</field>
<!-- Buildcomp Field. Type: Radio. (joomla) -->
<field
type="radio"
name="buildcomp"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BUILDCOMP_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BUILDCOMP_DESCRIPTION"
class="btn-group btn-group-yesno"
default="0"
required="true">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NO</option>
</field>
<!-- Add_email_helper Field. Type: Radio. (joomla) -->
<field
type="radio"
name="add_email_helper"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_EMAIL_HELPER_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_EMAIL_HELPER_DESCRIPTION"
class="btn-group btn-group-yesno"
default="0"
required="true">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NO</option>
</field>
<!-- Guid Field. Type: Text. (joomla) -->
<field
type="text"
@ -1620,12 +1650,11 @@
validate="guid"
hint="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_GUID_HINT"
/>
<!-- Add_email_helper Field. Type: Radio. (joomla) -->
<!-- Add_php_helper_both Field. Type: Radio. (joomla) -->
<field
type="radio"
name="add_email_helper"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_EMAIL_HELPER_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_EMAIL_HELPER_DESCRIPTION"
name="add_php_helper_both"
label="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_PHP_HELPER_BOTH_LABEL"
class="btn-group btn-group-yesno"
default="0"
required="true">

View File

@ -83,7 +83,7 @@ class ComponentbuilderModelJoomla_component extends AdminModel
'not_required'
)
),
'dynamic_build_beta' => array(
'dynamic_build' => array(
'fullwidth' => array(
'note_buildcomp_dynamic_mysql',
'buildcomp',
@ -106,7 +106,9 @@ class ComponentbuilderModelJoomla_component extends AdminModel
'backup_folder_path',
'add_git_folder_path',
'note_git_folder_path',
'git_folder_path'
'git_folder_path',
'add_jcb_powers_path',
'jcb_powers_path'
),
'right' => array(
'translation_tool',
@ -117,13 +119,13 @@ class ComponentbuilderModelJoomla_component extends AdminModel
'crowdin_account_api_key'
)
),
'readme' => array(
'left' => array(
'addreadme',
'readme'
),
'right' => array(
'note_readme'
'mysql' => array(
'fullwidth' => array(
'add_sql',
'sql',
'add_sql_uninstall',
'sql_uninstall',
'assets_table_fix'
)
),
'dash_install' => array(
@ -172,13 +174,13 @@ class ComponentbuilderModelJoomla_component extends AdminModel
'css_site'
)
),
'mysql' => array(
'fullwidth' => array(
'add_sql',
'sql',
'add_sql_uninstall',
'sql_uninstall',
'assets_table_fix'
'readme' => array(
'left' => array(
'addreadme',
'readme'
),
'right' => array(
'note_readme'
)
),
'settings' => array(
@ -366,34 +368,10 @@ class ComponentbuilderModelJoomla_component extends AdminModel
$item->metadata = $registry->toArray();
}
if (!empty($item->buildcompsql))
if (!empty($item->sql_uninstall))
{
// base64 Decode buildcompsql.
$item->buildcompsql = base64_decode($item->buildcompsql);
}
if (!empty($item->php_method_uninstall))
{
// base64 Decode php_method_uninstall.
$item->php_method_uninstall = base64_decode($item->php_method_uninstall);
}
if (!empty($item->php_preflight_install))
{
// base64 Decode php_preflight_install.
$item->php_preflight_install = base64_decode($item->php_preflight_install);
}
if (!empty($item->css_admin))
{
// base64 Decode css_admin.
$item->css_admin = base64_decode($item->css_admin);
}
if (!empty($item->php_site_event))
{
// base64 Decode php_site_event.
$item->php_site_event = base64_decode($item->php_site_event);
// base64 Decode sql_uninstall.
$item->sql_uninstall = base64_decode($item->sql_uninstall);
}
if (!empty($item->php_postflight_install))
@ -402,10 +380,10 @@ class ComponentbuilderModelJoomla_component extends AdminModel
$item->php_postflight_install = base64_decode($item->php_postflight_install);
}
if (!empty($item->sql_uninstall))
if (!empty($item->php_site_event))
{
// base64 Decode sql_uninstall.
$item->sql_uninstall = base64_decode($item->sql_uninstall);
// base64 Decode php_site_event.
$item->php_site_event = base64_decode($item->php_site_event);
}
if (!empty($item->php_helper_both))
@ -420,6 +398,24 @@ class ComponentbuilderModelJoomla_component extends AdminModel
$item->php_admin_event = base64_decode($item->php_admin_event);
}
if (!empty($item->css_admin))
{
// base64 Decode css_admin.
$item->css_admin = base64_decode($item->css_admin);
}
if (!empty($item->php_preflight_install))
{
// base64 Decode php_preflight_install.
$item->php_preflight_install = base64_decode($item->php_preflight_install);
}
if (!empty($item->php_method_uninstall))
{
// base64 Decode php_method_uninstall.
$item->php_method_uninstall = base64_decode($item->php_method_uninstall);
}
if (!empty($item->php_helper_admin))
{
// base64 Decode php_helper_admin.
@ -462,6 +458,12 @@ class ComponentbuilderModelJoomla_component extends AdminModel
$item->sql = base64_decode($item->sql);
}
if (!empty($item->buildcompsql))
{
// base64 Decode buildcompsql.
$item->buildcompsql = base64_decode($item->buildcompsql);
}
if (!empty($item->readme))
{
// base64 Decode readme.
@ -473,18 +475,18 @@ class ComponentbuilderModelJoomla_component extends AdminModel
// Get the encryption object.
$basic = new AES($basickey);
if (!empty($item->crowdin_username) && $basickey && !is_numeric($item->crowdin_username) && $item->crowdin_username === base64_encode(base64_decode($item->crowdin_username, true)))
{
// basic decrypt data crowdin_username.
$item->crowdin_username = rtrim($basic->decryptString($item->crowdin_username), "\0");
}
if (!empty($item->whmcs_key) && $basickey && !is_numeric($item->whmcs_key) && $item->whmcs_key === base64_encode(base64_decode($item->whmcs_key, true)))
{
// basic decrypt data whmcs_key.
$item->whmcs_key = rtrim($basic->decryptString($item->whmcs_key), "\0");
}
if (!empty($item->crowdin_username) && $basickey && !is_numeric($item->crowdin_username) && $item->crowdin_username === base64_encode(base64_decode($item->crowdin_username, true)))
{
// basic decrypt data crowdin_username.
$item->crowdin_username = rtrim($basic->decryptString($item->crowdin_username), "\0");
}
if (!empty($item->export_key) && $basickey && !is_numeric($item->export_key) && $item->export_key === base64_encode(base64_decode($item->export_key, true)))
{
// basic decrypt data export_key.
@ -1433,34 +1435,10 @@ class ComponentbuilderModelJoomla_component extends AdminModel
$data['addcontributors'] = '';
}
// Set the buildcompsql string to base64 string.
if (isset($data['buildcompsql']))
// Set the sql_uninstall string to base64 string.
if (isset($data['sql_uninstall']))
{
$data['buildcompsql'] = base64_encode($data['buildcompsql']);
}
// Set the php_method_uninstall string to base64 string.
if (isset($data['php_method_uninstall']))
{
$data['php_method_uninstall'] = base64_encode($data['php_method_uninstall']);
}
// Set the php_preflight_install string to base64 string.
if (isset($data['php_preflight_install']))
{
$data['php_preflight_install'] = base64_encode($data['php_preflight_install']);
}
// Set the css_admin string to base64 string.
if (isset($data['css_admin']))
{
$data['css_admin'] = base64_encode($data['css_admin']);
}
// Set the php_site_event string to base64 string.
if (isset($data['php_site_event']))
{
$data['php_site_event'] = base64_encode($data['php_site_event']);
$data['sql_uninstall'] = base64_encode($data['sql_uninstall']);
}
// Set the php_postflight_install string to base64 string.
@ -1469,10 +1447,10 @@ class ComponentbuilderModelJoomla_component extends AdminModel
$data['php_postflight_install'] = base64_encode($data['php_postflight_install']);
}
// Set the sql_uninstall string to base64 string.
if (isset($data['sql_uninstall']))
// Set the php_site_event string to base64 string.
if (isset($data['php_site_event']))
{
$data['sql_uninstall'] = base64_encode($data['sql_uninstall']);
$data['php_site_event'] = base64_encode($data['php_site_event']);
}
// Set the php_helper_both string to base64 string.
@ -1487,6 +1465,24 @@ class ComponentbuilderModelJoomla_component extends AdminModel
$data['php_admin_event'] = base64_encode($data['php_admin_event']);
}
// Set the css_admin string to base64 string.
if (isset($data['css_admin']))
{
$data['css_admin'] = base64_encode($data['css_admin']);
}
// Set the php_preflight_install string to base64 string.
if (isset($data['php_preflight_install']))
{
$data['php_preflight_install'] = base64_encode($data['php_preflight_install']);
}
// Set the php_method_uninstall string to base64 string.
if (isset($data['php_method_uninstall']))
{
$data['php_method_uninstall'] = base64_encode($data['php_method_uninstall']);
}
// Set the php_helper_admin string to base64 string.
if (isset($data['php_helper_admin']))
{
@ -1529,6 +1525,12 @@ class ComponentbuilderModelJoomla_component extends AdminModel
$data['sql'] = base64_encode($data['sql']);
}
// Set the buildcompsql string to base64 string.
if (isset($data['buildcompsql']))
{
$data['buildcompsql'] = base64_encode($data['buildcompsql']);
}
// Set the readme string to base64 string.
if (isset($data['readme']))
{
@ -1540,18 +1542,18 @@ class ComponentbuilderModelJoomla_component extends AdminModel
// Get the encryption object
$basic = new AES($basickey);
// Encrypt data crowdin_username.
if (isset($data['crowdin_username']) && $basickey)
{
$data['crowdin_username'] = $basic->encryptString($data['crowdin_username']);
}
// Encrypt data whmcs_key.
if (isset($data['whmcs_key']) && $basickey)
{
$data['whmcs_key'] = $basic->encryptString($data['whmcs_key']);
}
// Encrypt data crowdin_username.
if (isset($data['crowdin_username']) && $basickey)
{
$data['crowdin_username'] = $basic->encryptString($data['crowdin_username']);
}
// Encrypt data export_key.
if (isset($data['export_key']) && $basickey)
{

View File

@ -2694,38 +2694,31 @@ class ComponentbuilderModelJoomla_components extends ListModel
continue;
}
// decode buildcompsql
$item->buildcompsql = base64_decode($item->buildcompsql);
// decode php_method_uninstall
$item->php_method_uninstall = base64_decode($item->php_method_uninstall);
// decode php_preflight_install
$item->php_preflight_install = base64_decode($item->php_preflight_install);
// decode css_admin
$item->css_admin = base64_decode($item->css_admin);
// decode php_site_event
$item->php_site_event = base64_decode($item->php_site_event);
// decode php_postflight_install
$item->php_postflight_install = base64_decode($item->php_postflight_install);
// decode sql_uninstall
$item->sql_uninstall = base64_decode($item->sql_uninstall);
// decode php_postflight_install
$item->php_postflight_install = base64_decode($item->php_postflight_install);
// decode php_site_event
$item->php_site_event = base64_decode($item->php_site_event);
// decode php_helper_both
$item->php_helper_both = base64_decode($item->php_helper_both);
if ($basickey && !is_numeric($item->crowdin_username) && $item->crowdin_username === base64_encode(base64_decode($item->crowdin_username, true)))
{
// decrypt crowdin_username
$item->crowdin_username = $basic->decryptString($item->crowdin_username);
}
// decode php_admin_event
$item->php_admin_event = base64_decode($item->php_admin_event);
// decode php_helper_admin
$item->php_helper_admin = base64_decode($item->php_helper_admin);
// decode php_helper_site
$item->php_helper_site = base64_decode($item->php_helper_site);
// decode css_admin
$item->css_admin = base64_decode($item->css_admin);
// decode php_preflight_install
$item->php_preflight_install = base64_decode($item->php_preflight_install);
// decode php_method_uninstall
$item->php_method_uninstall = base64_decode($item->php_method_uninstall);
if ($basickey && !is_numeric($item->whmcs_key) && $item->whmcs_key === base64_encode(base64_decode($item->whmcs_key, true)))
{
// decrypt whmcs_key
$item->whmcs_key = $basic->decryptString($item->whmcs_key);
}
// decode php_helper_admin
$item->php_helper_admin = base64_decode($item->php_helper_admin);
// decode php_helper_site
$item->php_helper_site = base64_decode($item->php_helper_site);
// decode javascript
$item->javascript = base64_decode($item->javascript);
// decode css_site
@ -2736,6 +2729,13 @@ class ComponentbuilderModelJoomla_components extends ListModel
$item->php_postflight_update = base64_decode($item->php_postflight_update);
// decode sql
$item->sql = base64_decode($item->sql);
if ($basickey && !is_numeric($item->crowdin_username) && $item->crowdin_username === base64_encode(base64_decode($item->crowdin_username, true)))
{
// decrypt crowdin_username
$item->crowdin_username = $basic->decryptString($item->crowdin_username);
}
// decode buildcompsql
$item->buildcompsql = base64_decode($item->buildcompsql);
if ($basickey && !is_numeric($item->export_key) && $item->export_key === base64_encode(base64_decode($item->export_key, true)))
{
// decrypt export_key

View File

@ -8,6 +8,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_joomla_component` (
`add_email_helper` TINYINT(1) NOT NULL DEFAULT 0,
`add_git_folder_path` TINYINT(1) NOT NULL DEFAULT 0,
`add_javascript` TINYINT(1) NOT NULL DEFAULT 0,
`add_jcb_powers_path` TINYINT(1) NOT NULL DEFAULT 0,
`add_license` TINYINT(1) NOT NULL DEFAULT 0,
`add_menu_prefix` CHAR(1) NOT NULL DEFAULT '',
`add_namespace_prefix` CHAR(1) NOT NULL DEFAULT '',
@ -59,6 +60,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_joomla_component` (
`guid` VARCHAR(36) NOT NULL DEFAULT '',
`image` CHAR(64) NOT NULL DEFAULT '',
`javascript` TEXT NOT NULL,
`jcb_powers_path` VARCHAR(255) NOT NULL DEFAULT '',
`joomla_source_link` VARCHAR(255) NOT NULL DEFAULT '',
`license` VARCHAR(255) NOT NULL DEFAULT '',
`license_type` TINYINT(1) NOT NULL DEFAULT 0,
@ -112,7 +114,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_joomla_component` (
PRIMARY KEY (`id`),
KEY `idx_system_name` (`system_name`),
KEY `idx_name_code` (`name_code`),
KEY `idx_translation_tool` (`translation_tool`),
KEY `idx_add_jcb_powers_path` (`add_jcb_powers_path`),
KEY `idx_add_sales_server` (`add_sales_server`),
KEY `idx_mvc_versiondate` (`mvc_versiondate`),
KEY `idx_remove_line_breaks` (`remove_line_breaks`),
@ -123,7 +125,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_joomla_component` (
KEY `idx_addreadme` (`addreadme`),
KEY `idx_add_powers` (`add_powers`),
KEY `idx_add_backup_folder_path` (`add_backup_folder_path`),
KEY `idx_add_php_helper_both` (`add_php_helper_both`),
KEY `idx_translation_tool` (`translation_tool`),
KEY `idx_add_php_helper_admin` (`add_php_helper_admin`),
KEY `idx_add_admin_event` (`add_admin_event`),
KEY `idx_add_php_helper_site` (`add_php_helper_site`),
@ -150,8 +152,9 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_joomla_component` (
KEY `idx_creatuserhelper` (`creatuserhelper`),
KEY `idx_adduikit` (`adduikit`),
KEY `idx_addfootable` (`addfootable`),
KEY `idx_guid` (`guid`),
KEY `idx_add_email_helper` (`add_email_helper`),
KEY `idx_guid` (`guid`),
KEY `idx_add_php_helper_both` (`add_php_helper_both`),
KEY `idx_access` (`access`),
KEY `idx_checkout` (`checked_out`),
KEY `idx_createdby` (`created_by`),

View File

@ -0,0 +1,3 @@
ALTER TABLE `#__componentbuilder_joomla_component` ADD `add_jcb_powers_path` TINYINT(1) NOT NULL DEFAULT 0 AFTER `add_javascript`;
ALTER TABLE `#__componentbuilder_joomla_component` ADD `jcb_powers_path` VARCHAR(255) NOT NULL DEFAULT '' AFTER `javascript`;

View File

@ -162,12 +162,12 @@ $componentParams = $this->params; // will be removed just use $this->params inst
</div>
<?php echo Html::_('bootstrap.endTab'); ?>
<?php echo Html::_('bootstrap.addTab', 'joomla_componentTab', 'dynamic_build_beta', Text::_('COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DYNAMIC_BUILD_BETA', true)); ?>
<?php echo Html::_('bootstrap.addTab', 'joomla_componentTab', 'dynamic_build', Text::_('COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DYNAMIC_BUILD', true)); ?>
<div class="row-fluid form-horizontal-desktop">
</div>
<div class="row-fluid form-horizontal-desktop">
<div class="span12">
<?php echo LayoutHelper::render('joomla_component.dynamic_build_beta_fullwidth', $this); ?>
<?php echo LayoutHelper::render('joomla_component.dynamic_build_fullwidth', $this); ?>
</div>
</div>
<?php echo Html::_('bootstrap.endTab'); ?>

View File

@ -1,15 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="3.10" method="upgrade">
<name>COM_COMPONENTBUILDER</name>
<creationDate>27th March, 2024</creationDate>
<creationDate>6th April, 2024</creationDate>
<author>Llewellyn van der Merwe</author>
<authorEmail>joomla@vdm.io</authorEmail>
<authorUrl>https://dev.vdm.io</authorUrl>
<copyright>Copyright (C) 2015 Vast Development Method. All rights reserved.</copyright>
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
<version>3.2.0</version>
<version>3.2.1-alpha1</version>
<description><![CDATA[
<h1>Component Builder (v.3.2.0)</h1>
<h1>Component Builder (v.3.2.1-alpha1)</h1>
<div style="clear: both;"></div>
<p>The Component Builder for [Joomla](https://extensions.joomla.org/extension/component-builder/) is highly advanced tool that is truly able to build extremely complex components in a fraction of the time.

View File

@ -1559,4 +1559,22 @@
<maintainerurl>https://dev.vdm.io</maintainerurl>
<targetplatform name="joomla" version="3.*"/>
</update>
<update>
<name>Component Builder</name>
<description>Builds Complex Joomla Components</description>
<element>pkg_component_builder</element>
<type>component</type>
<client>site</client>
<version>3.2.1-alpha1</version>
<infourl title="Component Builder!">https://dev.vdm.io</infourl>
<downloads>
<downloadurl type="full" format="zip">https://git.vdm.dev/api/v1/repos/joomla/pkg-component-builder/archive/v3.2.1-alpha1.zip</downloadurl>
</downloads>
<tags>
<tag>alpha</tag>
</tags>
<maintainer>Llewellyn van der Merwe</maintainer>
<maintainerurl>https://dev.vdm.io</maintainerurl>
<targetplatform name="joomla" version="3.*"/>
</update>
</updates>

View File

@ -1,422 +0,0 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Extrusion\Helper;
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
// use Joomla\Database\DatabaseDriver; (for Joomla 4 and above)
use VDM\Joomla\Utilities\StringHelper;
use VDM\Joomla\Utilities\JsonHelper;
use VDM\Joomla\Utilities\GetHelper;
use VDM\Joomla\Utilities\ArrayHelper;
/**
* Mapping class
*
* @since 3.2.0
*/
class Mapping
{
/**
* Some default fields
*/
protected $buildcompsql;
public $id;
public $name_code;
public array $addadmin_views;
public array $addSql = [];
public array $source = [];
public array $sql = [];
/**
* The map of the needed fields and views
*/
public $map;
/**
* The app to load messages mostly
*/
public $app;
/**
* The needed set of keys needed to set
*/
protected array $setting = ['id' => 'default', 'buildcompsql' => 'base64', 'name_code' => 'safeString'];
/**
* The needed set of keys needed to set
*/
protected array $notRequiered = [
'id', 'asset_id', 'published',
'created_by', 'modified_by', 'created', 'modified', 'checked_out','checked_out_time',
'version', 'hits', 'access', 'ordering',
'metakey', 'metadesc', 'metadata', 'params'
];
/**
* The datatypes and it linked field types (basic)
* (TODO) We may need to set this dynamicly
*/
protected array $dataTypes = [
'VARCHAR' => 'Text', 'CHAR' => 'Text',
'MEDIUMTEXT' => 'Textarea', 'LONGTEXT' => 'Textarea',
'TEXT' => 'Textarea', 'DATETIME' => 'Calendar',
'DATE' => 'Text', 'TIME' => 'Text', 'TINYINT' => 'Text',
'BIGINT' => 'Text', 'INT' => 'Text', 'FLOAT' => 'Text',
'DECIMAL' => 'Text', 'DOUBLE' => 'Text'
];
/**
* The datasize identifiers
*/
protected array $dataSize = [
'CHAR', 'VARCHAR', 'INT', 'TINYINT',
'BIGINT', 'FLOAT', 'DECIMAL', 'DOUBLE'
];
/**
* The default identifiers
*/
protected $defaults = [
0, 1, "CURRENT_TIMESTAMP", "DATETIME"
]; // Other
/**
* The sizes identifiers
*/
protected $sizes = [
"1", "7", "10", "11", "50", "64", "100", "255", "1024", "2048"
]; // Other
/**
* Constructor
*/
public function __construct($data = false)
{
// set the app to insure messages can be set
$this->app = Factory::getApplication();
// check that we have data
if (ArrayHelper::check($data))
{
// make sure we have an id
if (isset($data['id']) && $data['id'] > 0)
{
if (isset($data['buildcomp']) && 1 == $data['buildcomp'] && isset($data['buildcompsql']))
{
foreach ($data as $key => $value)
{
if (isset($this->setting[$key]))
{
switch($this->setting[$key])
{
case 'base64':
// set needed value
$this->$key = base64_decode((string) $value);
break;
case 'json':
// set needed value
$this->$key = json_decode((string) $value, true);
break;
case 'safeString':
// set needed value
$this->$key = StringHelper::check($value);
break;
default :
$this->$key = $value;
break;
}
}
}
// get linked admin views
$addadmin_views = GetHelper::var('component_admin_views', $data['id'], 'joomla_component', 'addadmin_views');
if (JsonHelper::check($addadmin_views))
{
$this->addadmin_views = json_decode((string)$addadmin_views, true);
}
// set the map of the views needed
if ($this->setMap())
{
return true;
}
$this->app->enqueueMessage(
Text::_('COM_COMPONENTBUILDER_NO_CREATE_TABLE_WERE_FOUND_PLEASE_CHECK_YOUR_SQL'),
'Error'
);
return false;
}
return false; // not set so just return without any error
}
$this->app->enqueueMessage(
Text::_('COM_COMPONENTBUILDER_PLEASE_TRY_AGAIN_THIS_ERROR_USUALY_HAPPENS_IF_IT_IS_A_NEW_COMPONENT_BEACUES_WE_NEED_A_COMPONENT_ID_TO_DO_THIS_BUILD_WITH_YOUR_SQL_DUMP'),
'Error'
);
return false;
}
$this->app->enqueueMessage(
Text::_('COM_COMPONENTBUILDER_COULD_NOT_FIND_THE_DATA_NEEDED_TO_CONTINUE'),
'Error'
);
return false;
}
/**
* The mapping function
* To Map the views and fields that are needed
*/
protected function setMap()
{
// start parsing the sql dump data
$queries = \JDatabaseDriver::splitSql($this->buildcompsql);
if (ArrayHelper::check($queries))
{
foreach ($queries as $query)
{
// only use create table queries
if (strpos($query, 'CREATE TABLE IF NOT EXISTS') !== false ||
strpos($query, 'CREATE TABLE') !== false)
{
if ($tableName = $this->getTableName($query))
{
// now get the fields/columns of this view/table
if ($fields = $this->getFields($query))
{
// make sure it is all lower case from here on
$tableName = strtolower($tableName);
$this->map[$tableName] = $fields;
}
}
else
{
continue;
}
}
// get the insert data if set
if (strpos($query, 'INSERT INTO `') !== false)
{
if ($tableName = $this->getTableName($query))
{
$this->addSql[$tableName] = 1;
$this->source[$tableName] = 2;
$this->sql[$tableName] = $query;
}
}
}
// check if the mapping was done
if (ArrayHelper::check($this->map))
{
return true;
}
}
return false;
}
/**
* Get the table name
*/
protected function getTableName(&$query)
{
if (strpos($query, '`#__') !== false)
{
// get table name
$tableName = GetHelper::between($query, '`#__', "`");
}
elseif (strpos($query, "'#__") !== false)
{
// get table name
$tableName = GetHelper::between($query, "'#__", "'");
}
// if it still was not found
if (!isset($tableName) || !StringHelper::check($tableName))
{
// skip this query
return false;
}
// clean the table name (so only view name remain)
if (strpos($tableName, $this->name_code) !== false)
{
$tableName = trim(str_replace($this->name_code, '', $tableName), '_');
}
// if found
if (StringHelper::check($tableName))
{
return $tableName;
}
// skip this query
return false;
}
/**
* Get the field details
*/
protected function getFields(&$query)
{
$rows = array_map('trim', explode(PHP_EOL, $query));
$fields = array();
foreach ($rows as $row)
{
// make sure we have a lower case string
$row = strtoupper($row);
$field = array();
$name = '';
if (0 === strpos($row, '`'))
{
// get field name
$name = GetHelper::between($row, '`', '`');
}
if (0 === strpos($row, "'"))
{
// get field name
$name = GetHelper::between($row, "'", "'");
}
// check if the name was found
if (StringHelper::check($name))
{
// insure we have the name in lower case from here on
$name = strtolower($name);
// only continue if field is required
if (in_array($name, $this->notRequiered))
{
continue;
}
// check if the field type is found
if ($fieldType = $this->getType($row, $field, $name))
{
$field['row'] = $row;
$field['name'] = $name;
$field['label'] = StringHelper::check($name, 'W');
$field['fieldType'] = $fieldType;
$field['size'] = $this->getSize($row, $field);
$field['sizeOther'] = '';
if (!in_array($field['size'], $this->sizes))
{
if (StringHelper::check($field['size']))
{
$field['sizeOther'] = $field['size'];
$field['size'] = 'Other';
}
}
$field['default'] = $this->getDefault($row);
$field['defaultOther'] = '';
if (!in_array($field['default'], $this->defaults))
{
if (StringHelper::check($field['default']))
{
$field['defaultOther'] = $field['default'];
$field['default'] = 'Other';
}
}
$field['null'] = $this->getNullValue($row, $field);
// check if field is a key
$field['key'] = $this->getKeyStatus($rows, $name);
// load to fields
$fields[] = $field;
}
}
}
if (ArrayHelper::check($fields))
{
return $fields;
}
return false;
}
/**
* Get the field types
*/
protected function getType($row, &$field, &$name)
{
// first remove field name
$row = str_replace($name, '', $row);
// get the data type first
foreach ($this->dataTypes as $type => $fieldType)
{
if (strpos($row, $type) !== false)
{
$field['dataType'] = $type;
return $fieldType;
}
}
return false;
}
/**
* Get the field size
*/
protected function getSize(&$row, $field)
{
if (in_array($field['dataType'], $this->dataSize))
{
return GetHelper::between($row, $field['dataType'].'(', ')');
}
return '';
}
/**
* Get the field default
*/
protected function getDefault(&$row)
{
// get default value
if (strpos($row, 'DEFAULT "') !== false) // to sure it this is correct...
{
return GetHelper::between($row, 'DEFAULT "', '"');
}
// get default value
if (strpos($row, "DEFAULT '") !== false)
{
return GetHelper::between($row, "DEFAULT '", "'");
}
return '';
}
/**
* Get the field Null Value
*/
protected function getNullValue(&$row, &$field)
{
// get the result of null
if (strpos($row, 'NOT NULL') !== false)
{
return 'NOT NULL';
}
if (strpos($row, 'DEFAULT NULL') !== false)
{
$field['default'] = 'NULL';
return '';
}
return 'NULL';
}
/**
* Get the field key status
*/
protected function getKeyStatus(&$rows, &$name)
{
// get the data type first
foreach ($rows as $row)
{
if (strpos($row, 'UNIQUE KEY ') !== false && stripos($row, $name) !== false)
{
return 1;
}
if ((strpos($row, 'PRIMARY KEY ') !== false && stripos($row, $name) !== false) || (strpos($row, 'KEY ') !== false && stripos($row, $name) !== false))
{
return 2;
}
}
return 0;
}
}

Some files were not shown because too many files have changed in this diff Show More