Compare commits

...

55 Commits

Author SHA1 Message Date
c484306d21 addedd the xml update server url 2017-10-06 20:29:35 +02:00
3d1ba0321a Added Wiki to JCB. Resolved gh-125 to insure phone numbers are treated as strings. Resolved gh-128 by adding field to Joomla Component View that allows javascript to be added globaly. Converted a few more repeatable fields to subform fields, this is an ongoing project to remove repeatable fields from JCB. 2017-10-06 20:28:28 +02:00
5bb5e3e909 Updated the readme to link to the new Quick Build of a [Hello World component in JCB video on Youtube](https://youtu.be/1KBBtQUxMTc) 2017-09-20 16:49:38 +02:00
9e140b40da convert repeatable properties field in the field types view to subform field 2017-09-18 04:20:50 +02:00
06416e665d Fixed gh-120 that allows export of component with language translations 2017-09-18 02:18:23 +02:00
72c6136bfb Resolved gh-118 to insure JCB loads the needed language strings to the system language file during compilation 2017-09-13 13:59:58 +02:00
5d3e93c560 Fixed gh-117 to allow custom sql strings to be addedas a value key. 2017-09-13 12:15:14 +02:00
8ccb13f3e0 resolve gh-115 to allow excluding of folders and files in the repository folder 2017-09-13 02:37:43 +02:00
4b3bc9bd03 Moved FTP signature to its own table, so we can use it more securely around JCB (even in the global settings). Improved the Linked view option in admin-views. 2017-08-25 02:56:05 +01:00
8501e37b3e updated some of the component import script, resolved gh-113 to improve assets rules setting for components 2017-08-23 21:38:28 +01:00
1c37f13820 fixed component import issue, to insure mysql dump data in admin-view gets imported correctly 2017-08-23 15:52:31 +01:00
e6b3c2391d fixed function button bug that loaded it to all views, instead of only the owner view 2017-08-22 23:44:53 +01:00
cfc1af2b69 added site-view switch to allow default public access if access is set on the site view as explained in gh-113 2017-08-22 23:17:19 +01:00
9c1ee3e88a updated the donation info 2017-08-21 02:24:30 +01:00
e3528344af Major upgrade, to initiate front-end development for JCB. Little steps at a time forward. 2017-08-20 22:18:16 +01:00
0ccc84e2ff fixed the getVars backward compatibility issue, Added replyto and replytoname to email helper, renamed the email helper class that builds the email table to setTableBody 2017-08-20 21:47:14 +01:00
e0730d3bf6 added JCB initial API frontend to run backups of JCB components, setup automated backup system with cronjob 2017-08-20 18:52:35 +01:00
ddeb02de74 version upgrade 2017-08-12 19:00:05 +01:00
e003be492c Fixed gh-108 to insure that all fields get added if multiple zeros are found. Improved the default value options in global config to allow for array of default values. Fixed typo forward slash. 2017-08-12 12:51:28 +01:00
fb7b5027c2 improved the answer for gh-106 to insure the correct form is submitted on compile 2017-08-05 12:28:24 +01:00
7a902d454a fixed gh-106 to insure the correct form is submitted on compile, also some other minor bug fixes 2017-08-05 12:10:08 +01:00
bd716ae7ef Stable Release 2017-07-24 04:28:27 +01:00
e074d3b5ce added Joomla to the header in the readme since it has become know as JCB 2017-07-21 00:38:35 +01:00
f1a054c0e7 Imporved the Adding of Custom Config Fields, added some shields.io icons to the JCB readme 2017-07-21 00:26:48 +01:00
e037d29935 version upgrade 2017-07-03 01:41:25 +01:00
b60803ef7b added timeago lib to repo for jQuery, and added dates to issue and release info on dash 2017-06-29 23:23:06 +01:00
aceda7bae2 Fixed a bug with the automated update sql that ensured that the sql for new fields gets added. 2017-06-29 22:03:53 +01:00
111aa4a3de donation info updated 2017-06-28 21:02:04 +01:00
9742991690 improved the dashboard of JCB to include releases and better item display of each issue and release 2017-06-28 11:05:31 +01:00
2c1903508c added the subform and custom and other fields to the demo 2017-06-18 11:47:10 +01:00
384c403ae4 Add new release with subform field now also available 2017-06-18 08:38:12 +01:00
6e0bcc0ae2 Resolves gh-96 by adding the feature to auto create the update SQL. Also fixes gh-100 Field Length Issue. 2017-06-16 13:38:06 +01:00
3ad9ae8b8f resolves gh-91 to insure that int and floats are not set as strings in SQL defaults 2017-06-05 21:18:32 +01:00
Dev
5e36ede2ac fixed gh-85 to insure parameter 2 is an array 2017-05-28 23:44:15 +02:00
cb355feaf4 fixed import of components selection 2017-05-20 09:36:26 +02:00
9b1f111251 fix gh-78 to ensure the field options get loaded in the repeatable conditions 2017-05-08 11:09:24 +03:00
4cead46ac4 Fixed gh-75 to insure the column names are loaded as before. Fix gh-76 by adding more checks to insure that the correct date is used in the getLastModifiedDate method. 2017-05-04 23:34:28 +01:00
25c632065a updated the readme 2017-04-26 17:30:09 +01:00
ea1edebc05 Resolves gh-71 bug, so that admin views that has no fields are still accessible. Fixed gh-72 to insure all components on Joomla version 3.7.0 works and looks correctly. Please just recompile your components for Joomla v3.7.0 2017-04-26 09:56:17 +01:00
498c75dfcf Next stable release with improvments and fixes 2017-04-08 22:58:53 +01:00
f39a877db2 fixed double // in file path when exporting a component and its images 2017-04-08 21:52:51 +01:00
7afbb131ce fixes gh-68 where the wrong name is used in searching for the alias, it must be the table name, and this is not always the same as the view. 2017-04-08 19:52:09 +01:00
6bba258fec Improved the import feature to insure that we don't have language conflicts with multiple strings for one language. 2017-04-08 14:44:41 +01:00
1cf259a54d Resolves gh-60 with complete implementation of the language manager/translator feature. Added a purge function the clear unused language strings from the database and unlike them from the related component during compilation. 2017-04-07 21:33:35 +01:00
d113d7b91b Added the new language feature to the export and import of Components, so that their related translations can also be linked to the exported package. 2017-04-06 22:40:22 +01:00
dev
2f90f9359c fixed typo 2017-04-06 09:51:46 +01:00
dev
b1d9b672ab Added the global switch to set the percentage a language should be translated before it is automatically added to the component during compilation. Force language to be added when the debug lines are set to be added. 2017-04-06 09:47:51 +01:00
dev
d9b2e51f8c Fix redirect during creation of new language from translation view. 2017-04-05 21:14:29 +01:00
dev
2caaa1a1e3 added the translation to the component view, also adding lang tags of ready translated languages 2017-04-05 17:26:17 +01:00
dev
1b3cb2bfdd fixed the search in translation view 2017-04-05 16:21:56 +01:00
dev
5a6ef33c5b removed button for now 2017-04-05 15:07:48 +01:00
dev
7eb5a2473c include fix for the a.* error 2017-04-05 14:49:11 +01:00
dev
34d14ed95d gh-60 language translation component added, basic implementation 2017-04-05 14:21:10 +01:00
d31b0b6c0c fixed gh-53 the database error call on a.*, very strange 2017-04-05 07:27:39 +01:00
dev
f3f91f492f added the UI for the new Language Manager gh-60 2017-04-03 11:58:41 +01:00
577 changed files with 34745 additions and 8595 deletions

View File

@ -1,14 +1,17 @@
# Component Builder (2.4.1)
# Joomla Component Builder (JCB)
[![GitHub release](https://img.shields.io/github/release/vdm-io/Joomla-Component-Builder.svg)](https://github.com/vdm-io/Joomla-Component-Builder/releases) [![Total Downloads](https://img.shields.io/github/downloads/vdm-io/Joomla-Component-Builder/total.svg)](https://github.com/vdm-io/Joomla-Component-Builder/releases)
This is a [Joomla 3.x](http://www.joomla.org/) component.
This is a [Joomla 3.x](https://extensions.joomla.org/extension/component-builder/) component. [__See In Action__](https://youtu.be/1KBBtQUxMTc)
![Component Builder image](https://raw.githubusercontent.com/vdm-io/Joomla-Component-Builder/master/admin/assets/images/component-300.jpg "The Component Builder")
![Component Builder image](https://raw.githubusercontent.com/vdm-io/Joomla-Component-Builder/master/admin/assets/images/vdm-component.jpg "The Component Builder")
The Component Builder for [Joomla](http://www.joomla.org/) that is highly advanced, truly able to build extremely complex components in a fraction of the time.
The Component Builder for [Joomla](https://extensions.joomla.org/extension/component-builder/) that is highly advanced, truly able to build extremely complex components in a fraction of the time.
Whether you're a seasoned [Joomla](http://www.joomla.org/) developer, or have just started, Component Builder will safe you lots of time and money. A real must have!
Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/component-builder/) developer, or have just started, Component Builder will safe you lots of time and money. A real must have!
You can install it quite easily and with no limitations. On [github](https://github.com/vdm-io/Joomla-Component-Builder/releases) is the latest release (2.4.1) with **ALL** its features and **ALL** concepts totally open-source and free!
You can install it quite easily and with no limitations. On [github](https://github.com/vdm-io/Joomla-Component-Builder/releases) is the latest release (2.5.6) 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://youtu.be/1KBBtQUxMTc)
Once installed upgrades are quick and easy via the default Joomla upgrade area.
@ -75,12 +78,14 @@ Once installed upgrades are quick and easy via the default Joomla upgrade area.
# Get Access to Video Tutorials
> **You can purchase more demo content for Component Builder including access to training & help video tutorials:**
> **You can purchase more [demo content](http://vdm.bz/jcb-packages) for Component Builder including access to training & help video tutorials:**
+ Demo Component* see the build on [github](https://github.com/namibia/demo-joomla-3-component)
+ Sermon Distributor* see the build on [github](https://github.com/SermonDistributor/Joomla-3-Component)
+ Help View Integration*
+ Training & Help Videos* tutorials in the component included.
+ *Demo Component* see the build on [github](https://github.com/namibia/demo-joomla-3-component) or get the [JCB Package](https://github.com/vdm-io/JCB-Packages/raw/master/JCB_demo.zip) _(free)_
+ *Advance Demo Component* get the [JCB Package](https://github.com/vdm-io/JCB-Packages/raw/master/JCB_demoAdvanced.zip) _([buy key](http://vdm.bz/get-advance-demo-key))_
+ *Sermon Distributor* see the build on [github](https://github.com/SermonDistributor/Joomla-3-Component) or get the [JCB Package](https://github.com/vdm-io/JCB-Packages/raw/master/JCB_sermondistributor.zip) _([buy key](http://vdm.bz/get-sermon-distributor-key))_
+ *Location Data* see the build on [github](https://github.com/vdm-io/Joomla-Location-Data) or get the [JCB Package](https://github.com/vdm-io/JCB-Packages/raw/master/JCB_locationData.zip) _([buy key](http://vdm.bz/get-location-data-key))_
+ *Help View Integration*
+ *Training & Help Videos* tutorials in the component included.
[**GET ACCESS NOW!**](http://vdm.bz/component-builder)
@ -105,13 +110,13 @@ Component Builder is mapped as a component in itself on my local development env
+ *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io)
+ *Name*: [Component Builder](http://vdm.bz/component-builder)
+ *First Build*: 30th April, 2015
+ *Last Build*: 1st April, 2017
+ *Version*: 2.4.1
+ *Last Build*: 6th October, 2017
+ *Version*: 2.5.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*: **96852**
+ *File count*: **581**
+ *Folder count*: **107**
+ *Line count*: **120884**
+ *File count*: **702**
+ *Folder count*: **121**
> This **component** was build with a Joomla [Automated Component Builder](http://vdm.bz/component-builder).
> Developed by [Llewellyn van der Merwe](mailto:joomla@vdm.io)
@ -119,5 +124,6 @@ Component Builder is mapped as a component in itself on my local development env
## Donations
Come on buy me a coffee :)
* PayPal: pay@vdm.io
* Bitcoin: 3H35PYwikEosvcjxHXGPLS1GufZ4b4iFu3
* PayPal: [paypal.me/payvdm](https://www.paypal.me/payvdm)
* Bitcoin: 1FLxiT6wyxgZ3boeviLkYJ1DRpp41uzpxa
* Ethereum: 0x243392daa3c9c8bc841fcacf7c7f72541cb16823

View File

@ -1,14 +1,17 @@
# Component Builder (2.4.1)
# Joomla Component Builder (JCB)
[![GitHub release](https://img.shields.io/github/release/vdm-io/Joomla-Component-Builder.svg)](https://github.com/vdm-io/Joomla-Component-Builder/releases) [![Total Downloads](https://img.shields.io/github/downloads/vdm-io/Joomla-Component-Builder/total.svg)](https://github.com/vdm-io/Joomla-Component-Builder/releases)
This is a [Joomla 3.x](http://www.joomla.org/) component.
This is a [Joomla 3.x](https://extensions.joomla.org/extension/component-builder/) component. [__See In Action__](https://youtu.be/1KBBtQUxMTc)
![Component Builder image](https://raw.githubusercontent.com/vdm-io/Joomla-Component-Builder/master/admin/assets/images/component-300.jpg "The Component Builder")
![Component Builder image](https://raw.githubusercontent.com/vdm-io/Joomla-Component-Builder/master/admin/assets/images/vdm-component.jpg "The Component Builder")
The Component Builder for [Joomla](http://www.joomla.org/) that is highly advanced, truly able to build extremely complex components in a fraction of the time.
The Component Builder for [Joomla](https://extensions.joomla.org/extension/component-builder/) that is highly advanced, truly able to build extremely complex components in a fraction of the time.
Whether you're a seasoned [Joomla](http://www.joomla.org/) developer, or have just started, Component Builder will safe you lots of time and money. A real must have!
Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/component-builder/) developer, or have just started, Component Builder will safe you lots of time and money. A real must have!
You can install it quite easily and with no limitations. On [github](https://github.com/vdm-io/Joomla-Component-Builder/releases) is the latest release (2.4.1) with **ALL** its features and **ALL** concepts totally open-source and free!
You can install it quite easily and with no limitations. On [github](https://github.com/vdm-io/Joomla-Component-Builder/releases) is the latest release (2.5.6) 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://youtu.be/1KBBtQUxMTc)
Once installed upgrades are quick and easy via the default Joomla upgrade area.
@ -75,12 +78,14 @@ Once installed upgrades are quick and easy via the default Joomla upgrade area.
# Get Access to Video Tutorials
> **You can purchase more demo content for Component Builder including access to training & help video tutorials:**
> **You can purchase more [demo content](http://vdm.bz/jcb-packages) for Component Builder including access to training & help video tutorials:**
+ Demo Component* see the build on [github](https://github.com/namibia/demo-joomla-3-component)
+ Sermon Distributor* see the build on [github](https://github.com/SermonDistributor/Joomla-3-Component)
+ Help View Integration*
+ Training & Help Videos* tutorials in the component included.
+ *Demo Component* see the build on [github](https://github.com/namibia/demo-joomla-3-component) or get the [JCB Package](https://github.com/vdm-io/JCB-Packages/raw/master/JCB_demo.zip) _(free)_
+ *Advance Demo Component* get the [JCB Package](https://github.com/vdm-io/JCB-Packages/raw/master/JCB_demoAdvanced.zip) _([buy key](http://vdm.bz/get-advance-demo-key))_
+ *Sermon Distributor* see the build on [github](https://github.com/SermonDistributor/Joomla-3-Component) or get the [JCB Package](https://github.com/vdm-io/JCB-Packages/raw/master/JCB_sermondistributor.zip) _([buy key](http://vdm.bz/get-sermon-distributor-key))_
+ *Location Data* see the build on [github](https://github.com/vdm-io/Joomla-Location-Data) or get the [JCB Package](https://github.com/vdm-io/JCB-Packages/raw/master/JCB_locationData.zip) _([buy key](http://vdm.bz/get-location-data-key))_
+ *Help View Integration*
+ *Training & Help Videos* tutorials in the component included.
[**GET ACCESS NOW!**](http://vdm.bz/component-builder)
@ -105,13 +110,13 @@ Component Builder is mapped as a component in itself on my local development env
+ *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io)
+ *Name*: [Component Builder](http://vdm.bz/component-builder)
+ *First Build*: 30th April, 2015
+ *Last Build*: 1st April, 2017
+ *Version*: 2.4.1
+ *Last Build*: 6th October, 2017
+ *Version*: 2.5.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*: **96852**
+ *File count*: **581**
+ *Folder count*: **107**
+ *Line count*: **120884**
+ *File count*: **702**
+ *Folder count*: **121**
> This **component** was build with a Joomla [Automated Component Builder](http://vdm.bz/component-builder).
> Developed by [Llewellyn van der Merwe](mailto:joomla@vdm.io)
@ -119,5 +124,6 @@ Component Builder is mapped as a component in itself on my local development env
## Donations
Come on buy me a coffee :)
* PayPal: pay@vdm.io
* Bitcoin: 3H35PYwikEosvcjxHXGPLS1GufZ4b4iFu3
* PayPal: [paypal.me/payvdm](https://www.paypal.me/payvdm)
* Bitcoin: 1FLxiT6wyxgZ3boeviLkYJ1DRpp41uzpxa
* Ethereum: 0x243392daa3c9c8bc841fcacf7c7f72541cb16823

View File

@ -19,6 +19,83 @@
<action name="admin_view.batch" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_BATCH_USE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_BATCH_USE_DESC" />
<action name="admin_view.dashboard_add" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_DASHBOARD_ADD" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_DASHBOARD_ADD_DESC" />
<action name="admin_view.dashboard_list" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_DASHBOARD_LIST_DESC" />
<action name="admin_view.edit.add_css_view" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_CSS_VIEW" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_CSS_VIEW_DESC" />
<action name="admin_view.edit.add_css_views" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_CSS_VIEWS" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_CSS_VIEWS_DESC" />
<action name="admin_view.edit.add_custom_button" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_CUSTOM_BUTTON" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_CUSTOM_BUTTON_DESC" />
<action name="admin_view.edit.add_custom_import" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_CUSTOM_IMPORT" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_CUSTOM_IMPORT_DESC" />
<action name="admin_view.edit.add_fadein" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_FADEIN" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_FADEIN_DESC" />
<action name="admin_view.edit.add_javascript_view_file" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_JAVASCRIPT_VIEW_FILE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_JAVASCRIPT_VIEW_FILE_DESC" />
<action name="admin_view.edit.add_javascript_view_footer" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_JAVASCRIPT_VIEW_FOOTER" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_JAVASCRIPT_VIEW_FOOTER_DESC" />
<action name="admin_view.edit.add_javascript_views_file" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_JAVASCRIPT_VIEWS_FILE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_JAVASCRIPT_VIEWS_FILE_DESC" />
<action name="admin_view.edit.add_javascript_views_footer" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_JAVASCRIPT_VIEWS_FOOTER" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_JAVASCRIPT_VIEWS_FOOTER_DESC" />
<action name="admin_view.edit.add_php_after_delete" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_AFTER_DELETE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_AFTER_DELETE_DESC" />
<action name="admin_view.edit.add_php_after_publish" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_AFTER_PUBLISH" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_AFTER_PUBLISH_DESC" />
<action name="admin_view.edit.add_php_ajax" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_AJAX" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_AJAX_DESC" />
<action name="admin_view.edit.add_php_allowedit" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_ALLOWEDIT" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_ALLOWEDIT_DESC" />
<action name="admin_view.edit.add_php_batchcopy" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_BATCHCOPY" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_BATCHCOPY_DESC" />
<action name="admin_view.edit.add_php_batchmove" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_BATCHMOVE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_BATCHMOVE_DESC" />
<action name="admin_view.edit.add_php_before_delete" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_BEFORE_DELETE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_BEFORE_DELETE_DESC" />
<action name="admin_view.edit.add_php_before_publish" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_BEFORE_PUBLISH" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_BEFORE_PUBLISH_DESC" />
<action name="admin_view.edit.add_php_before_save" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_BEFORE_SAVE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_BEFORE_SAVE_DESC" />
<action name="admin_view.edit.add_php_document" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_DOCUMENT" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_DOCUMENT_DESC" />
<action name="admin_view.edit.add_php_getitem" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_GETITEM" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_GETITEM_DESC" />
<action name="admin_view.edit.add_php_getitems" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_GETITEMS" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_GETITEMS_DESC" />
<action name="admin_view.edit.add_php_getitems_after_all" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_GETITEMS_AFTER_ALL" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_GETITEMS_AFTER_ALL_DESC" />
<action name="admin_view.edit.add_php_getlistquery" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_GETLISTQUERY" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_GETLISTQUERY_DESC" />
<action name="admin_view.edit.add_php_postsavehook" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_POSTSAVEHOOK" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_POSTSAVEHOOK_DESC" />
<action name="admin_view.edit.add_php_save" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_SAVE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_SAVE_DESC" />
<action name="admin_view.edit.add_sql" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_SQL" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_SQL_DESC" />
<action name="admin_view.edit.addconditions" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADDCONDITIONS" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADDCONDITIONS_DESC" />
<action name="admin_view.edit.addfields" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADDFIELDS" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADDFIELDS_DESC" />
<action name="admin_view.edit.addlinked_views" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADDLINKED_VIEWS" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADDLINKED_VIEWS_DESC" />
<action name="admin_view.edit.addpermissions" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADDPERMISSIONS" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADDPERMISSIONS_DESC" />
<action name="admin_view.edit.addtables" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADDTABLES" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADDTABLES_DESC" />
<action name="admin_view.edit.addtabs" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADDTABS" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADDTABS_DESC" />
<action name="admin_view.edit.ajax_input" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_AJAX_INPUT" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_AJAX_INPUT_DESC" />
<action name="admin_view.edit.css_view" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_CSS_VIEW" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_CSS_VIEW_DESC" />
<action name="admin_view.edit.css_views" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_CSS_VIEWS" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_CSS_VIEWS_DESC" />
<action name="admin_view.edit.custom_button" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_CUSTOM_BUTTON" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_CUSTOM_BUTTON_DESC" />
<action name="admin_view.edit.description" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_DESCRIPTION" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_DESCRIPTION_DESC" />
<action name="admin_view.edit.html_import_view" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_HTML_IMPORT_VIEW" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_HTML_IMPORT_VIEW_DESC" />
<action name="admin_view.edit.icon" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ICON" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ICON_DESC" />
<action name="admin_view.edit.icon_add" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ICON_ADD" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ICON_ADD_DESC" />
<action name="admin_view.edit.icon_category" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ICON_CATEGORY" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ICON_CATEGORY_DESC" />
<action name="admin_view.edit.javascript_view_file" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_JAVASCRIPT_VIEW_FILE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_JAVASCRIPT_VIEW_FILE_DESC" />
<action name="admin_view.edit.javascript_view_footer" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_JAVASCRIPT_VIEW_FOOTER" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_JAVASCRIPT_VIEW_FOOTER_DESC" />
<action name="admin_view.edit.javascript_views_file" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_JAVASCRIPT_VIEWS_FILE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_JAVASCRIPT_VIEWS_FILE_DESC" />
<action name="admin_view.edit.javascript_views_footer" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_JAVASCRIPT_VIEWS_FOOTER" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_JAVASCRIPT_VIEWS_FOOTER_DESC" />
<action name="admin_view.edit.name_list" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_NAME_LIST" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_NAME_LIST_DESC" />
<action name="admin_view.edit.name_single" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_NAME_SINGLE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_NAME_SINGLE_DESC" />
<action name="admin_view.edit.php_after_delete" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_AFTER_DELETE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_AFTER_DELETE_DESC" />
<action name="admin_view.edit.php_after_publish" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_AFTER_PUBLISH" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_AFTER_PUBLISH_DESC" />
<action name="admin_view.edit.php_ajaxmethod" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_AJAXMETHOD" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_AJAXMETHOD_DESC" />
<action name="admin_view.edit.php_allowedit" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_ALLOWEDIT" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_ALLOWEDIT_DESC" />
<action name="admin_view.edit.php_batchcopy" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_BATCHCOPY" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_BATCHCOPY_DESC" />
<action name="admin_view.edit.php_batchmove" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_BATCHMOVE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_BATCHMOVE_DESC" />
<action name="admin_view.edit.php_before_delete" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_BEFORE_DELETE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_BEFORE_DELETE_DESC" />
<action name="admin_view.edit.php_before_publish" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_BEFORE_PUBLISH" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_BEFORE_PUBLISH_DESC" />
<action name="admin_view.edit.php_before_save" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_BEFORE_SAVE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_BEFORE_SAVE_DESC" />
<action name="admin_view.edit.php_controller" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_CONTROLLER" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_CONTROLLER_DESC" />
<action name="admin_view.edit.php_controller_list" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_CONTROLLER_LIST" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_CONTROLLER_LIST_DESC" />
<action name="admin_view.edit.php_document" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_DOCUMENT" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_DOCUMENT_DESC" />
<action name="admin_view.edit.php_getitem" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_GETITEM" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_GETITEM_DESC" />
<action name="admin_view.edit.php_getitems" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_GETITEMS" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_GETITEMS_DESC" />
<action name="admin_view.edit.php_getitems_after_all" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_GETITEMS_AFTER_ALL" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_GETITEMS_AFTER_ALL_DESC" />
<action name="admin_view.edit.php_getlistquery" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_GETLISTQUERY" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_GETLISTQUERY_DESC" />
<action name="admin_view.edit.php_import" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_IMPORT" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_IMPORT_DESC" />
<action name="admin_view.edit.php_import_display" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_IMPORT_DISPLAY" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_IMPORT_DISPLAY_DESC" />
<action name="admin_view.edit.php_import_ext" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_IMPORT_EXT" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_IMPORT_EXT_DESC" />
<action name="admin_view.edit.php_import_save" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_IMPORT_SAVE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_IMPORT_SAVE_DESC" />
<action name="admin_view.edit.php_import_setdata" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_IMPORT_SETDATA" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_IMPORT_SETDATA_DESC" />
<action name="admin_view.edit.php_model" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_MODEL" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_MODEL_DESC" />
<action name="admin_view.edit.php_model_list" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_MODEL_LIST" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_MODEL_LIST_DESC" />
<action name="admin_view.edit.php_postsavehook" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_POSTSAVEHOOK" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_POSTSAVEHOOK_DESC" />
<action name="admin_view.edit.php_save" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_SAVE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_SAVE_DESC" />
<action name="admin_view.edit.short_description" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_SHORT_DESCRIPTION" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_SHORT_DESCRIPTION_DESC" />
<action name="admin_view.edit.source" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_SOURCE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_SOURCE_DESC" />
<action name="admin_view.edit.sql" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_SQL" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_SQL_DESC" />
<action name="admin_view.edit.system_name" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_SYSTEM_NAME" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_SYSTEM_NAME_DESC" />
<action name="admin_view.edit.type" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_TYPE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_TYPE_DESC" />
<action name="admin_view.version" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_VERSION" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_VERSION_DESC" />
<action name="admin_view.export" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EXPORT" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EXPORT_DESC" />
<action name="admin_view.import" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_IMPORT" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_IMPORT_DESC" />
@ -82,12 +159,32 @@
<action name="fieldtype.dashboard_list" title="COM_COMPONENTBUILDER_FIELDTYPES_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_FIELDTYPES_DASHBOARD_LIST_DESC" />
<action name="fieldtype.delete" title="COM_COMPONENTBUILDER_FIELDTYPES_DELETE" description="COM_COMPONENTBUILDER_FIELDTYPES_DELETE_DESC" />
<action name="fieldtype.edit" title="COM_COMPONENTBUILDER_FIELDTYPES_EDIT" description="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_DESC" />
<action name="fieldtype.edit.description" title="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_DESCRIPTION" description="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_DESCRIPTION_DESC" />
<action name="fieldtype.edit.name" title="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_NAME" description="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_NAME_DESC" />
<action name="fieldtype.edit.own" title="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_OWN" description="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_OWN_DESC" />
<action name="fieldtype.edit.properties" title="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_PROPERTIES" description="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_PROPERTIES_DESC" />
<action name="fieldtype.edit.short_description" title="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_SHORT_DESCRIPTION" description="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_SHORT_DESCRIPTION_DESC" />
<action name="fieldtype.edit.state" title="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_STATE" description="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_STATE_DESC" />
<action name="fieldtype.version" title="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_VERSION" description="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_VERSION_DESC" />
<action name="fieldtype.export" title="COM_COMPONENTBUILDER_FIELDTYPES_EXPORT" description="COM_COMPONENTBUILDER_FIELDTYPES_EXPORT_DESC" />
<action name="fieldtype.import" title="COM_COMPONENTBUILDER_FIELDTYPES_IMPORT" description="COM_COMPONENTBUILDER_FIELDTYPES_IMPORT_DESC" />
<action name="fieldtype.submenu" title="COM_COMPONENTBUILDER_FIELDTYPES_SUBMENU" description="COM_COMPONENTBUILDER_FIELDTYPES_SUBMENU_DESC" />
<action name="ftp.access" title="COM_COMPONENTBUILDER_FTPS_ACCESS" description="COM_COMPONENTBUILDER_FTPS_ACCESS_DESC" />
<action name="ftp.batch" title="COM_COMPONENTBUILDER_FTPS_BATCH_USE" description="COM_COMPONENTBUILDER_FTPS_BATCH_USE_DESC" />
<action name="ftp.create" title="COM_COMPONENTBUILDER_FTPS_CREATE" description="COM_COMPONENTBUILDER_FTPS_CREATE_DESC" />
<action name="ftp.dashboard_list" title="COM_COMPONENTBUILDER_FTPS_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_FTPS_DASHBOARD_LIST_DESC" />
<action name="ftp.delete" title="COM_COMPONENTBUILDER_FTPS_DELETE" description="COM_COMPONENTBUILDER_FTPS_DELETE_DESC" />
<action name="ftp.edit" title="COM_COMPONENTBUILDER_FTPS_EDIT" description="COM_COMPONENTBUILDER_FTPS_EDIT_DESC" />
<action name="ftp.edit.created_by" title="COM_COMPONENTBUILDER_FTPS_EDIT_CREATED_BY" description="COM_COMPONENTBUILDER_FTPS_EDIT_CREATED_BY_DESC" />
<action name="ftp.edit.created" title="COM_COMPONENTBUILDER_FTPS_EDIT_CREATED_DATE" description="COM_COMPONENTBUILDER_FTPS_EDIT_CREATED_DATE_DESC" />
<action name="ftp.edit.name" title="COM_COMPONENTBUILDER_FTPS_EDIT_NAME" description="COM_COMPONENTBUILDER_FTPS_EDIT_NAME_DESC" />
<action name="ftp.edit.own" title="COM_COMPONENTBUILDER_FTPS_EDIT_OWN" description="COM_COMPONENTBUILDER_FTPS_EDIT_OWN_DESC" />
<action name="ftp.edit.signature" title="COM_COMPONENTBUILDER_FTPS_EDIT_SIGNATURE" description="COM_COMPONENTBUILDER_FTPS_EDIT_SIGNATURE_DESC" />
<action name="ftp.edit.state" title="COM_COMPONENTBUILDER_FTPS_EDIT_STATE" description="COM_COMPONENTBUILDER_FTPS_EDIT_STATE_DESC" />
<action name="ftp.version" title="COM_COMPONENTBUILDER_FTPS_EDIT_VERSION" description="COM_COMPONENTBUILDER_FTPS_EDIT_VERSION_DESC" />
<action name="ftp.export" title="COM_COMPONENTBUILDER_FTPS_EXPORT" description="COM_COMPONENTBUILDER_FTPS_EXPORT_DESC" />
<action name="ftp.import" title="COM_COMPONENTBUILDER_FTPS_IMPORT" description="COM_COMPONENTBUILDER_FTPS_IMPORT_DESC" />
<action name="ftp.submenu" title="COM_COMPONENTBUILDER_FTPS_SUBMENU" description="COM_COMPONENTBUILDER_FTPS_SUBMENU_DESC" />
<action name="help_document.access" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_ACCESS" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_ACCESS_DESC" />
<action name="help_document.batch" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_BATCH_USE" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_BATCH_USE_DESC" />
<action name="help_document.create" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_CREATE" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_CREATE_DESC" />
@ -101,18 +198,119 @@
<action name="help_document.export" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_EXPORT" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_EXPORT_DESC" />
<action name="help_document.import" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_IMPORT" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_IMPORT_DESC" />
<action name="help_document.submenu" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_SUBMENU" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_SUBMENU_DESC" />
<action name="joomla_component.backup" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BACKUP_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BACKUP_BUTTON_ACCESS_DESC" />
<action name="joomla_component.export_components" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_COMPONENTS_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_COMPONENTS_BUTTON_ACCESS_DESC" />
<action name="joomla_component.import_components" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_IMPORT_COMPONENTS_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_IMPORT_COMPONENTS_BUTTON_ACCESS_DESC" />
<action name="joomla_component.access" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_ACCESS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_ACCESS_DESC" />
<action name="joomla_component.batch" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_BATCH_USE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_BATCH_USE_DESC" />
<action name="joomla_component.dashboard_add" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_DASHBOARD_ADD" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_DASHBOARD_ADD_DESC" />
<action name="joomla_component.dashboard_list" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_DASHBOARD_LIST_DESC" />
<action name="joomla_component.edit.add_admin_event" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_ADMIN_EVENT" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_ADMIN_EVENT_DESC" />
<action name="joomla_component.edit.add_css" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_CSS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_CSS_DESC" />
<action name="joomla_component.edit.add_email_helper" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_EMAIL_HELPER" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_EMAIL_HELPER_DESC" />
<action name="joomla_component.edit.add_javascript" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_JAVASCRIPT" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_JAVASCRIPT_DESC" />
<action name="joomla_component.edit.add_license" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_LICENSE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_LICENSE_DESC" />
<action name="joomla_component.edit.add_php_dashboard_methods" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_DASHBOARD_METHODS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_DASHBOARD_METHODS_DESC" />
<action name="joomla_component.edit.add_php_helper_admin" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_HELPER_ADMIN" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_HELPER_ADMIN_DESC" />
<action name="joomla_component.edit.add_php_helper_both" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_HELPER_BOTH" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_HELPER_BOTH_DESC" />
<action name="joomla_component.edit.add_php_helper_site" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_HELPER_SITE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_HELPER_SITE_DESC" />
<action name="joomla_component.edit.add_php_method_uninstall" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_METHOD_UNINSTALL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_METHOD_UNINSTALL_DESC" />
<action name="joomla_component.edit.add_php_postflight_install" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_POSTFLIGHT_INSTALL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_POSTFLIGHT_INSTALL_DESC" />
<action name="joomla_component.edit.add_php_postflight_update" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_POSTFLIGHT_UPDATE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_POSTFLIGHT_UPDATE_DESC" />
<action name="joomla_component.edit.add_php_preflight_install" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_PREFLIGHT_INSTALL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_PREFLIGHT_INSTALL_DESC" />
<action name="joomla_component.edit.add_php_preflight_update" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_PREFLIGHT_UPDATE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_PREFLIGHT_UPDATE_DESC" />
<action name="joomla_component.edit.add_sales_server" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_SALES_SERVER" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_SALES_SERVER_DESC" />
<action name="joomla_component.edit.add_site_event" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_SITE_EVENT" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_SITE_EVENT_DESC" />
<action name="joomla_component.edit.add_sql" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_SQL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_SQL_DESC" />
<action name="joomla_component.edit.add_update_server" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_UPDATE_SERVER" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_UPDATE_SERVER_DESC" />
<action name="joomla_component.edit.addadmin_views" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDADMIN_VIEWS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDADMIN_VIEWS_DESC" />
<action name="joomla_component.edit.addconfig" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDCONFIG" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDCONFIG_DESC" />
<action name="joomla_component.edit.addcontributors" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDCONTRIBUTORS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDCONTRIBUTORS_DESC" />
<action name="joomla_component.edit.addcustom_admin_views" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDCUSTOM_ADMIN_VIEWS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDCUSTOM_ADMIN_VIEWS_DESC" />
<action name="joomla_component.edit.addcustommenus" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDCUSTOMMENUS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDCUSTOMMENUS_DESC" />
<action name="joomla_component.edit.addfiles" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDFILES" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDFILES_DESC" />
<action name="joomla_component.edit.addfolders" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDFOLDERS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDFOLDERS_DESC" />
<action name="joomla_component.edit.addfootable" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDFOOTABLE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDFOOTABLE_DESC" />
<action name="joomla_component.edit.addreadme" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDREADME" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDREADME_DESC" />
<action name="joomla_component.edit.addsite_views" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDSITE_VIEWS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDSITE_VIEWS_DESC" />
<action name="joomla_component.edit.adduikit" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDUIKIT" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDUIKIT_DESC" />
<action name="joomla_component.edit.author" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_AUTHOR" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_AUTHOR_DESC" />
<action name="joomla_component.edit.bom" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_BOM" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_BOM_DESC" />
<action name="joomla_component.edit.buildcomp" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_BUILDCOMP" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_BUILDCOMP_DESC" />
<action name="joomla_component.edit.buildcompsql" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_BUILDCOMPSQL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_BUILDCOMPSQL_DESC" />
<action name="joomla_component.edit.companyname" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_COMPANYNAME" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_COMPANYNAME_DESC" />
<action name="joomla_component.edit.component_version" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_COMPONENT_VERSION" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_COMPONENT_VERSION_DESC" />
<action name="joomla_component.edit.copyright" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_COPYRIGHT" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_COPYRIGHT_DESC" />
<action name="joomla_component.edit.creatuserhelper" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_CREATUSERHELPER" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_CREATUSERHELPER_DESC" />
<action name="joomla_component.edit.css" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_CSS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_CSS_DESC" />
<action name="joomla_component.edit.dashboard_tab" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_DASHBOARD_TAB" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_DASHBOARD_TAB_DESC" />
<action name="joomla_component.edit.debug_linenr" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_DEBUG_LINENR" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_DEBUG_LINENR_DESC" />
<action name="joomla_component.edit.description" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_DESCRIPTION" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_DESCRIPTION_DESC" />
<action name="joomla_component.edit.email" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_EMAIL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_EMAIL_DESC" />
<action name="joomla_component.edit.emptycontributors" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_EMPTYCONTRIBUTORS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_EMPTYCONTRIBUTORS_DESC" />
<action name="joomla_component.edit.export_buy_link" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_EXPORT_BUY_LINK" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_EXPORT_BUY_LINK_DESC" />
<action name="joomla_component.edit.export_key" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_EXPORT_KEY" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_EXPORT_KEY_DESC" />
<action name="joomla_component.edit.export_package_link" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_EXPORT_PACKAGE_LINK" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_EXPORT_PACKAGE_LINK_DESC" />
<action name="joomla_component.edit.image" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_IMAGE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_IMAGE_DESC" />
<action name="joomla_component.edit.javascript" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_JAVASCRIPT" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_JAVASCRIPT_DESC" />
<action name="joomla_component.edit.license" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_LICENSE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_LICENSE_DESC" />
<action name="joomla_component.edit.license_type" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_LICENSE_TYPE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_LICENSE_TYPE_DESC" />
<action name="joomla_component.edit.mvc_versiondate" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_MVC_VERSIONDATE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_MVC_VERSIONDATE_DESC" />
<action name="joomla_component.edit.name" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_NAME" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_NAME_DESC" />
<action name="joomla_component.edit.name_code" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_NAME_CODE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_NAME_CODE_DESC" />
<action name="joomla_component.edit.number" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_NUMBER" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_NUMBER_DESC" />
<action name="joomla_component.edit.php_admin_event" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_ADMIN_EVENT" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_ADMIN_EVENT_DESC" />
<action name="joomla_component.edit.php_dashboard_methods" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_DASHBOARD_METHODS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_DASHBOARD_METHODS_DESC" />
<action name="joomla_component.edit.php_helper_admin" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_HELPER_ADMIN" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_HELPER_ADMIN_DESC" />
<action name="joomla_component.edit.php_helper_both" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_HELPER_BOTH" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_HELPER_BOTH_DESC" />
<action name="joomla_component.edit.php_helper_site" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_HELPER_SITE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_HELPER_SITE_DESC" />
<action name="joomla_component.edit.php_method_uninstall" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_METHOD_UNINSTALL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_METHOD_UNINSTALL_DESC" />
<action name="joomla_component.edit.php_postflight_install" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_POSTFLIGHT_INSTALL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_POSTFLIGHT_INSTALL_DESC" />
<action name="joomla_component.edit.php_postflight_update" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_POSTFLIGHT_UPDATE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_POSTFLIGHT_UPDATE_DESC" />
<action name="joomla_component.edit.php_preflight_install" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_PREFLIGHT_INSTALL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_PREFLIGHT_INSTALL_DESC" />
<action name="joomla_component.edit.php_preflight_update" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_PREFLIGHT_UPDATE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_PREFLIGHT_UPDATE_DESC" />
<action name="joomla_component.edit.php_site_event" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_SITE_EVENT" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_SITE_EVENT_DESC" />
<action name="joomla_component.edit.readme" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_README" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_README_DESC" />
<action name="joomla_component.edit.sales_server_ftp" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_SALES_SERVER_FTP" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_SALES_SERVER_FTP_DESC" />
<action name="joomla_component.edit.short_description" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_SHORT_DESCRIPTION" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_SHORT_DESCRIPTION_DESC" />
<action name="joomla_component.edit.sql" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_SQL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_SQL_DESC" />
<action name="joomla_component.edit.sql_tweak" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_SQL_TWEAK" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_SQL_TWEAK_DESC" />
<action name="joomla_component.edit.system_name" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_SYSTEM_NAME" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_SYSTEM_NAME_DESC" />
<action name="joomla_component.edit.toignore" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_TOIGNORE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_TOIGNORE_DESC" />
<action name="joomla_component.edit.update_server" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_UPDATE_SERVER" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_UPDATE_SERVER_DESC" />
<action name="joomla_component.edit.update_server_ftp" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_UPDATE_SERVER_FTP" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_UPDATE_SERVER_FTP_DESC" />
<action name="joomla_component.edit.update_server_target" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_UPDATE_SERVER_TARGET" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_UPDATE_SERVER_TARGET_DESC" />
<action name="joomla_component.version" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_VERSION" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_VERSION_DESC" />
<action name="joomla_component.edit.version_update" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_VERSION_UPDATE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_VERSION_UPDATE_DESC" />
<action name="joomla_component.edit.website" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_WEBSITE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_WEBSITE_DESC" />
<action name="joomla_component.edit.whmcs_key" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_WHMCS_KEY" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_WHMCS_KEY_DESC" />
<action name="joomla_component.edit.whmcs_url" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_WHMCS_URL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_WHMCS_URL_DESC" />
<action name="joomla_component.export" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EXPORT" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EXPORT_DESC" />
<action name="joomla_component.import" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_IMPORT" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_IMPORT_DESC" />
<action name="joomla_component.submenu" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_SUBMENU" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_SUBMENU_DESC" />
<action name="language_translation.access" title="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_ACCESS" description="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_ACCESS_DESC" />
<action name="language_translation.batch" title="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_BATCH_USE" description="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_BATCH_USE_DESC" />
<action name="language_translation.create" title="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_CREATE" description="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_CREATE_DESC" />
<action name="language_translation.dashboard_list" title="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_DASHBOARD_LIST_DESC" />
<action name="language_translation.delete" title="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_DELETE" description="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_DELETE_DESC" />
<action name="language_translation.edit" title="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_EDIT" description="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_EDIT_DESC" />
<action name="language_translation.edit.own" title="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_EDIT_OWN" description="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_EDIT_OWN_DESC" />
<action name="language_translation.edit.state" title="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_EDIT_STATE" description="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_EDIT_STATE_DESC" />
<action name="language_translation.version" title="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_EDIT_VERSION" description="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_EDIT_VERSION_DESC" />
<action name="language_translation.export" title="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_EXPORT" description="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_EXPORT_DESC" />
<action name="language_translation.import" title="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_IMPORT" description="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_IMPORT_DESC" />
<action name="language_translation.submenu" title="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_SUBMENU" description="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_SUBMENU_DESC" />
<action name="language.access" title="COM_COMPONENTBUILDER_LANGUAGES_ACCESS" description="COM_COMPONENTBUILDER_LANGUAGES_ACCESS_DESC" />
<action name="language.batch" title="COM_COMPONENTBUILDER_LANGUAGES_BATCH_USE" description="COM_COMPONENTBUILDER_LANGUAGES_BATCH_USE_DESC" />
<action name="language.create" title="COM_COMPONENTBUILDER_LANGUAGES_CREATE" description="COM_COMPONENTBUILDER_LANGUAGES_CREATE_DESC" />
<action name="language.delete" title="COM_COMPONENTBUILDER_LANGUAGES_DELETE" description="COM_COMPONENTBUILDER_LANGUAGES_DELETE_DESC" />
<action name="language.edit" title="COM_COMPONENTBUILDER_LANGUAGES_EDIT" description="COM_COMPONENTBUILDER_LANGUAGES_EDIT_DESC" />
<action name="language.edit.own" title="COM_COMPONENTBUILDER_LANGUAGES_EDIT_OWN" description="COM_COMPONENTBUILDER_LANGUAGES_EDIT_OWN_DESC" />
<action name="language.edit.state" title="COM_COMPONENTBUILDER_LANGUAGES_EDIT_STATE" description="COM_COMPONENTBUILDER_LANGUAGES_EDIT_STATE_DESC" />
<action name="language.version" title="COM_COMPONENTBUILDER_LANGUAGES_EDIT_VERSION" description="COM_COMPONENTBUILDER_LANGUAGES_EDIT_VERSION_DESC" />
<action name="language.export" title="COM_COMPONENTBUILDER_LANGUAGES_EXPORT" description="COM_COMPONENTBUILDER_LANGUAGES_EXPORT_DESC" />
<action name="language.import" title="COM_COMPONENTBUILDER_LANGUAGES_IMPORT" description="COM_COMPONENTBUILDER_LANGUAGES_IMPORT_DESC" />
<action name="language.submenu" title="COM_COMPONENTBUILDER_LANGUAGES_SUBMENU" description="COM_COMPONENTBUILDER_LANGUAGES_SUBMENU_DESC" />
<action name="layout.access" title="COM_COMPONENTBUILDER_LAYOUTS_ACCESS" description="COM_COMPONENTBUILDER_LAYOUTS_ACCESS_DESC" />
<action name="layout.batch" title="COM_COMPONENTBUILDER_LAYOUTS_BATCH_USE" description="COM_COMPONENTBUILDER_LAYOUTS_BATCH_USE_DESC" />
<action name="layout.dashboard_add" title="COM_COMPONENTBUILDER_LAYOUTS_DASHBOARD_ADD" description="COM_COMPONENTBUILDER_LAYOUTS_DASHBOARD_ADD_DESC" />
@ -147,8 +345,85 @@
<action name="template.submenu" title="COM_COMPONENTBUILDER_TEMPLATES_SUBMENU" description="COM_COMPONENTBUILDER_TEMPLATES_SUBMENU_DESC" />
</section>
<section name="joomla_component">
<action name="joomla_component.edit.system_name" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_SYSTEM_NAME" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_SYSTEM_NAME_DESC" />
<action name="joomla_component.edit.name_code" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_NAME_CODE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_NAME_CODE_DESC" />
<action name="joomla_component.edit.component_version" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_COMPONENT_VERSION" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_COMPONENT_VERSION_DESC" />
<action name="joomla_component.edit.short_description" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_SHORT_DESCRIPTION" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_SHORT_DESCRIPTION_DESC" />
<action name="joomla_component.edit.companyname" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_COMPANYNAME" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_COMPANYNAME_DESC" />
<action name="joomla_component.edit.author" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_AUTHOR" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_AUTHOR_DESC" />
<action name="joomla_component.edit.sql" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_SQL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_SQL_DESC" />
<action name="joomla_component.edit.add_css" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_CSS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_CSS_DESC" />
<action name="joomla_component.edit.description" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_DESCRIPTION" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_DESCRIPTION_DESC" />
<action name="joomla_component.edit.add_admin_event" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_ADMIN_EVENT" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_ADMIN_EVENT_DESC" />
<action name="joomla_component.edit.copyright" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_COPYRIGHT" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_COPYRIGHT_DESC" />
<action name="joomla_component.edit.php_preflight_update" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_PREFLIGHT_UPDATE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_PREFLIGHT_UPDATE_DESC" />
<action name="joomla_component.edit.debug_linenr" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_DEBUG_LINENR" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_DEBUG_LINENR_DESC" />
<action name="joomla_component.edit.mvc_versiondate" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_MVC_VERSIONDATE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_MVC_VERSIONDATE_DESC" />
<action name="joomla_component.edit.add_site_event" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_SITE_EVENT" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_SITE_EVENT_DESC" />
<action name="joomla_component.edit.name" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_NAME" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_NAME_DESC" />
<action name="joomla_component.edit.dashboard_tab" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_DASHBOARD_TAB" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_DASHBOARD_TAB_DESC" />
<action name="joomla_component.edit.creatuserhelper" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_CREATUSERHELPER" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_CREATUSERHELPER_DESC" />
<action name="joomla_component.edit.php_postflight_update" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_POSTFLIGHT_UPDATE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_POSTFLIGHT_UPDATE_DESC" />
<action name="joomla_component.edit.add_php_helper_both" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_HELPER_BOTH" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_HELPER_BOTH_DESC" />
<action name="joomla_component.edit.version_update" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_VERSION_UPDATE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_VERSION_UPDATE_DESC" />
<action name="joomla_component.edit.email" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_EMAIL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_EMAIL_DESC" />
<action name="joomla_component.edit.sales_server_ftp" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_SALES_SERVER_FTP" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_SALES_SERVER_FTP_DESC" />
<action name="joomla_component.edit.website" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_WEBSITE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_WEBSITE_DESC" />
<action name="joomla_component.edit.export_package_link" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_EXPORT_PACKAGE_LINK" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_EXPORT_PACKAGE_LINK_DESC" />
<action name="joomla_component.edit.add_license" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_LICENSE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_LICENSE_DESC" />
<action name="joomla_component.edit.addfootable" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDFOOTABLE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDFOOTABLE_DESC" />
<action name="joomla_component.edit.license_type" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_LICENSE_TYPE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_LICENSE_TYPE_DESC" />
<action name="joomla_component.edit.add_php_helper_admin" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_HELPER_ADMIN" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_HELPER_ADMIN_DESC" />
<action name="joomla_component.edit.add_php_helper_site" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_HELPER_SITE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_HELPER_SITE_DESC" />
<action name="joomla_component.edit.whmcs_key" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_WHMCS_KEY" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_WHMCS_KEY_DESC" />
<action name="joomla_component.edit.add_javascript" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_JAVASCRIPT" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_JAVASCRIPT_DESC" />
<action name="joomla_component.edit.whmcs_url" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_WHMCS_URL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_WHMCS_URL_DESC" />
<action name="joomla_component.edit.add_php_dashboard_methods" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_DASHBOARD_METHODS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_DASHBOARD_METHODS_DESC" />
<action name="joomla_component.edit.license" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_LICENSE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_LICENSE_DESC" />
<action name="joomla_component.edit.php_preflight_install" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_PREFLIGHT_INSTALL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_PREFLIGHT_INSTALL_DESC" />
<action name="joomla_component.edit.bom" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_BOM" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_BOM_DESC" />
<action name="joomla_component.edit.php_postflight_install" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_POSTFLIGHT_INSTALL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_POSTFLIGHT_INSTALL_DESC" />
<action name="joomla_component.edit.image" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_IMAGE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_IMAGE_DESC" />
<action name="joomla_component.edit.php_method_uninstall" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_METHOD_UNINSTALL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_METHOD_UNINSTALL_DESC" />
<action name="joomla_component.edit.add_update_server" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_UPDATE_SERVER" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_UPDATE_SERVER_DESC" />
<action name="joomla_component.edit.readme" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_README" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_README_DESC" />
<action name="joomla_component.edit.update_server_target" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_UPDATE_SERVER_TARGET" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_UPDATE_SERVER_TARGET_DESC" />
<action name="joomla_component.edit.update_server_ftp" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_UPDATE_SERVER_FTP" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_UPDATE_SERVER_FTP_DESC" />
<action name="joomla_component.edit.addadmin_views" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDADMIN_VIEWS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDADMIN_VIEWS_DESC" />
<action name="joomla_component.edit.buildcomp" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_BUILDCOMP" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_BUILDCOMP_DESC" />
<action name="joomla_component.edit.addcustom_admin_views" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDCUSTOM_ADMIN_VIEWS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDCUSTOM_ADMIN_VIEWS_DESC" />
<action name="joomla_component.edit.export_key" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_EXPORT_KEY" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_EXPORT_KEY_DESC" />
<action name="joomla_component.edit.addsite_views" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDSITE_VIEWS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDSITE_VIEWS_DESC" />
<action name="joomla_component.edit.export_buy_link" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_EXPORT_BUY_LINK" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_EXPORT_BUY_LINK_DESC" />
<action name="joomla_component.edit.adduikit" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDUIKIT" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDUIKIT_DESC" />
<action name="joomla_component.edit.add_email_helper" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_EMAIL_HELPER" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_EMAIL_HELPER_DESC" />
<action name="joomla_component.edit.sql_tweak" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_SQL_TWEAK" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_SQL_TWEAK_DESC" />
<action name="joomla_component.edit.php_helper_both" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_HELPER_BOTH" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_HELPER_BOTH_DESC" />
<action name="joomla_component.edit.php_helper_admin" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_HELPER_ADMIN" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_HELPER_ADMIN_DESC" />
<action name="joomla_component.edit.php_admin_event" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_ADMIN_EVENT" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_ADMIN_EVENT_DESC" />
<action name="joomla_component.edit.addcustommenus" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDCUSTOMMENUS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDCUSTOMMENUS_DESC" />
<action name="joomla_component.edit.php_helper_site" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_HELPER_SITE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_HELPER_SITE_DESC" />
<action name="joomla_component.edit.php_site_event" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_SITE_EVENT" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_SITE_EVENT_DESC" />
<action name="joomla_component.edit.javascript" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_JAVASCRIPT" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_JAVASCRIPT_DESC" />
<action name="joomla_component.edit.addconfig" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDCONFIG" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDCONFIG_DESC" />
<action name="joomla_component.edit.css" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_CSS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_CSS_DESC" />
<action name="joomla_component.edit.php_dashboard_methods" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_DASHBOARD_METHODS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_PHP_DASHBOARD_METHODS_DESC" />
<action name="joomla_component.edit.addcontributors" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDCONTRIBUTORS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDCONTRIBUTORS_DESC" />
<action name="joomla_component.edit.add_php_preflight_install" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_PREFLIGHT_INSTALL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_PREFLIGHT_INSTALL_DESC" />
<action name="joomla_component.edit.emptycontributors" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_EMPTYCONTRIBUTORS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_EMPTYCONTRIBUTORS_DESC" />
<action name="joomla_component.edit.add_php_preflight_update" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_PREFLIGHT_UPDATE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_PREFLIGHT_UPDATE_DESC" />
<action name="joomla_component.edit.number" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_NUMBER" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_NUMBER_DESC" />
<action name="joomla_component.edit.add_php_postflight_install" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_POSTFLIGHT_INSTALL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_POSTFLIGHT_INSTALL_DESC" />
<action name="joomla_component.edit.add_php_postflight_update" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_POSTFLIGHT_UPDATE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_POSTFLIGHT_UPDATE_DESC" />
<action name="joomla_component.edit.add_php_method_uninstall" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_METHOD_UNINSTALL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_PHP_METHOD_UNINSTALL_DESC" />
<action name="joomla_component.edit.addfiles" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDFILES" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDFILES_DESC" />
<action name="joomla_component.edit.add_sql" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_SQL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_SQL_DESC" />
<action name="joomla_component.edit.addreadme" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDREADME" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDREADME_DESC" />
<action name="joomla_component.edit.addfolders" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDFOLDERS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADDFOLDERS_DESC" />
<action name="joomla_component.edit.update_server" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_UPDATE_SERVER" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_UPDATE_SERVER_DESC" />
<action name="joomla_component.edit.toignore" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_TOIGNORE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_TOIGNORE_DESC" />
<action name="joomla_component.edit.add_sales_server" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_SALES_SERVER" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_ADD_SALES_SERVER_DESC" />
<action name="joomla_component.edit.buildcompsql" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_BUILDCOMPSQL" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_BUILDCOMPSQL_DESC" />
<action name="joomla_component.version" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_VERSION" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_VERSION_DESC" />
</section>
<section name="admin_view">
@ -158,6 +433,83 @@
<action name="core.create" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_CREATE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_CREATE_DESC" />
<action name="core.delete" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_DELETE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_DELETE_DESC" />
<action name="admin_view.access" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_ACCESS" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_ACCESS_DESC" />
<action name="admin_view.edit.system_name" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_SYSTEM_NAME" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_SYSTEM_NAME_DESC" />
<action name="admin_view.edit.name_single" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_NAME_SINGLE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_NAME_SINGLE_DESC" />
<action name="admin_view.edit.name_list" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_NAME_LIST" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_NAME_LIST_DESC" />
<action name="admin_view.edit.short_description" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_SHORT_DESCRIPTION" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_SHORT_DESCRIPTION_DESC" />
<action name="admin_view.edit.php_batchmove" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_BATCHMOVE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_BATCHMOVE_DESC" />
<action name="admin_view.edit.type" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_TYPE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_TYPE_DESC" />
<action name="admin_view.edit.php_save" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_SAVE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_SAVE_DESC" />
<action name="admin_view.edit.description" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_DESCRIPTION" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_DESCRIPTION_DESC" />
<action name="admin_view.edit.php_after_delete" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_AFTER_DELETE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_AFTER_DELETE_DESC" />
<action name="admin_view.edit.add_fadein" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_FADEIN" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_FADEIN_DESC" />
<action name="admin_view.edit.icon" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ICON" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ICON_DESC" />
<action name="admin_view.edit.php_getlistquery" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_GETLISTQUERY" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_GETLISTQUERY_DESC" />
<action name="admin_view.edit.icon_add" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ICON_ADD" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ICON_ADD_DESC" />
<action name="admin_view.edit.php_allowedit" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_ALLOWEDIT" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_ALLOWEDIT_DESC" />
<action name="admin_view.edit.icon_category" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ICON_CATEGORY" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ICON_CATEGORY_DESC" />
<action name="admin_view.edit.php_after_publish" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_AFTER_PUBLISH" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_AFTER_PUBLISH_DESC" />
<action name="admin_view.edit.source" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_SOURCE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_SOURCE_DESC" />
<action name="admin_view.edit.php_getitems" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_GETITEMS" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_GETITEMS_DESC" />
<action name="admin_view.edit.php_import" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_IMPORT" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_IMPORT_DESC" />
<action name="admin_view.edit.addpermissions" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADDPERMISSIONS" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADDPERMISSIONS_DESC" />
<action name="admin_view.edit.php_getitems_after_all" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_GETITEMS_AFTER_ALL" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_GETITEMS_AFTER_ALL_DESC" />
<action name="admin_view.edit.addtabs" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADDTABS" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADDTABS_DESC" />
<action name="admin_view.edit.php_before_save" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_BEFORE_SAVE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_BEFORE_SAVE_DESC" />
<action name="admin_view.edit.php_postsavehook" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_POSTSAVEHOOK" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_POSTSAVEHOOK_DESC" />
<action name="admin_view.edit.addfields" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADDFIELDS" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADDFIELDS_DESC" />
<action name="admin_view.edit.php_batchcopy" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_BATCHCOPY" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_BATCHCOPY_DESC" />
<action name="admin_view.edit.php_before_publish" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_BEFORE_PUBLISH" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_BEFORE_PUBLISH_DESC" />
<action name="admin_view.edit.addconditions" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADDCONDITIONS" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADDCONDITIONS_DESC" />
<action name="admin_view.edit.php_before_delete" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_BEFORE_DELETE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_BEFORE_DELETE_DESC" />
<action name="admin_view.edit.addlinked_views" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADDLINKED_VIEWS" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADDLINKED_VIEWS_DESC" />
<action name="admin_view.edit.php_document" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_DOCUMENT" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_DOCUMENT_DESC" />
<action name="admin_view.edit.sql" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_SQL" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_SQL_DESC" />
<action name="admin_view.edit.php_import_display" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_IMPORT_DISPLAY" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_IMPORT_DISPLAY_DESC" />
<action name="admin_view.edit.php_getitem" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_GETITEM" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_GETITEM_DESC" />
<action name="admin_view.edit.php_import_save" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_IMPORT_SAVE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_IMPORT_SAVE_DESC" />
<action name="admin_view.edit.add_css_view" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_CSS_VIEW" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_CSS_VIEW_DESC" />
<action name="admin_view.edit.css_view" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_CSS_VIEW" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_CSS_VIEW_DESC" />
<action name="admin_view.edit.add_php_getitems" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_GETITEMS" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_GETITEMS_DESC" />
<action name="admin_view.edit.add_css_views" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_CSS_VIEWS" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_CSS_VIEWS_DESC" />
<action name="admin_view.edit.add_php_getitems_after_all" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_GETITEMS_AFTER_ALL" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_GETITEMS_AFTER_ALL_DESC" />
<action name="admin_view.edit.css_views" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_CSS_VIEWS" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_CSS_VIEWS_DESC" />
<action name="admin_view.edit.add_php_getlistquery" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_GETLISTQUERY" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_GETLISTQUERY_DESC" />
<action name="admin_view.edit.add_javascript_view_file" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_JAVASCRIPT_VIEW_FILE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_JAVASCRIPT_VIEW_FILE_DESC" />
<action name="admin_view.edit.add_php_before_save" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_BEFORE_SAVE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_BEFORE_SAVE_DESC" />
<action name="admin_view.edit.javascript_view_file" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_JAVASCRIPT_VIEW_FILE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_JAVASCRIPT_VIEW_FILE_DESC" />
<action name="admin_view.edit.add_php_save" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_SAVE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_SAVE_DESC" />
<action name="admin_view.edit.add_javascript_view_footer" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_JAVASCRIPT_VIEW_FOOTER" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_JAVASCRIPT_VIEW_FOOTER_DESC" />
<action name="admin_view.edit.add_php_postsavehook" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_POSTSAVEHOOK" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_POSTSAVEHOOK_DESC" />
<action name="admin_view.edit.javascript_view_footer" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_JAVASCRIPT_VIEW_FOOTER" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_JAVASCRIPT_VIEW_FOOTER_DESC" />
<action name="admin_view.edit.add_php_allowedit" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_ALLOWEDIT" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_ALLOWEDIT_DESC" />
<action name="admin_view.edit.add_javascript_views_file" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_JAVASCRIPT_VIEWS_FILE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_JAVASCRIPT_VIEWS_FILE_DESC" />
<action name="admin_view.edit.add_php_batchcopy" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_BATCHCOPY" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_BATCHCOPY_DESC" />
<action name="admin_view.edit.javascript_views_file" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_JAVASCRIPT_VIEWS_FILE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_JAVASCRIPT_VIEWS_FILE_DESC" />
<action name="admin_view.edit.add_php_batchmove" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_BATCHMOVE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_BATCHMOVE_DESC" />
<action name="admin_view.edit.add_javascript_views_footer" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_JAVASCRIPT_VIEWS_FOOTER" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_JAVASCRIPT_VIEWS_FOOTER_DESC" />
<action name="admin_view.edit.add_php_before_publish" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_BEFORE_PUBLISH" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_BEFORE_PUBLISH_DESC" />
<action name="admin_view.edit.javascript_views_footer" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_JAVASCRIPT_VIEWS_FOOTER" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_JAVASCRIPT_VIEWS_FOOTER_DESC" />
<action name="admin_view.edit.add_php_after_publish" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_AFTER_PUBLISH" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_AFTER_PUBLISH_DESC" />
<action name="admin_view.edit.add_custom_button" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_CUSTOM_BUTTON" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_CUSTOM_BUTTON_DESC" />
<action name="admin_view.edit.add_php_before_delete" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_BEFORE_DELETE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_BEFORE_DELETE_DESC" />
<action name="admin_view.edit.custom_button" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_CUSTOM_BUTTON" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_CUSTOM_BUTTON_DESC" />
<action name="admin_view.edit.add_php_after_delete" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_AFTER_DELETE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_AFTER_DELETE_DESC" />
<action name="admin_view.edit.php_controller" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_CONTROLLER" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_CONTROLLER_DESC" />
<action name="admin_view.edit.add_php_document" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_DOCUMENT" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_DOCUMENT_DESC" />
<action name="admin_view.edit.php_model" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_MODEL" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_MODEL_DESC" />
<action name="admin_view.edit.add_sql" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_SQL" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_SQL_DESC" />
<action name="admin_view.edit.php_controller_list" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_CONTROLLER_LIST" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_CONTROLLER_LIST_DESC" />
<action name="admin_view.edit.addtables" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADDTABLES" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADDTABLES_DESC" />
<action name="admin_view.edit.php_model_list" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_MODEL_LIST" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_MODEL_LIST_DESC" />
<action name="admin_view.edit.add_php_ajax" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_AJAX" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_AJAX_DESC" />
<action name="admin_view.edit.add_custom_import" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_CUSTOM_IMPORT" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_CUSTOM_IMPORT_DESC" />
<action name="admin_view.edit.php_ajaxmethod" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_AJAXMETHOD" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_AJAXMETHOD_DESC" />
<action name="admin_view.edit.html_import_view" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_HTML_IMPORT_VIEW" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_HTML_IMPORT_VIEW_DESC" />
<action name="admin_view.edit.ajax_input" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_AJAX_INPUT" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_AJAX_INPUT_DESC" />
<action name="admin_view.edit.php_import_setdata" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_IMPORT_SETDATA" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_IMPORT_SETDATA_DESC" />
<action name="admin_view.edit.add_php_getitem" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_GETITEM" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_ADD_PHP_GETITEM_DESC" />
<action name="admin_view.edit.php_import_ext" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_IMPORT_EXT" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_PHP_IMPORT_EXT_DESC" />
<action name="admin_view.version" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_VERSION" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_VERSION_DESC" />
</section>
<section name="custom_admin_view">
@ -241,8 +593,43 @@
<action name="fieldtype.create" title="COM_COMPONENTBUILDER_FIELDTYPES_CREATE" description="COM_COMPONENTBUILDER_FIELDTYPES_CREATE_DESC" />
<action name="fieldtype.delete" title="COM_COMPONENTBUILDER_FIELDTYPES_DELETE" description="COM_COMPONENTBUILDER_FIELDTYPES_DELETE_DESC" />
<action name="fieldtype.access" title="COM_COMPONENTBUILDER_FIELDTYPES_ACCESS" description="COM_COMPONENTBUILDER_FIELDTYPES_ACCESS_DESC" />
<action name="fieldtype.edit.name" title="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_NAME" description="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_NAME_DESC" />
<action name="fieldtype.edit.description" title="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_DESCRIPTION" description="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_DESCRIPTION_DESC" />
<action name="fieldtype.edit.short_description" title="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_SHORT_DESCRIPTION" description="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_SHORT_DESCRIPTION_DESC" />
<action name="fieldtype.edit.properties" title="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_PROPERTIES" description="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_PROPERTIES_DESC" />
<action name="fieldtype.version" title="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_VERSION" description="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_VERSION_DESC" />
</section>
<section name="language_translation">
<action name="language_translation.edit" title="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_EDIT" description="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_EDIT_DESC" />
<action name="language_translation.edit.own" title="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_EDIT_OWN" description="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_EDIT_OWN_DESC" />
<action name="language_translation.edit.state" title="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_EDIT_STATE" description="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_EDIT_STATE_DESC" />
<action name="language_translation.create" title="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_CREATE" description="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_CREATE_DESC" />
<action name="language_translation.delete" title="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_DELETE" description="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_DELETE_DESC" />
<action name="language_translation.access" title="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_ACCESS" description="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_ACCESS_DESC" />
<action name="language_translation.version" title="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_EDIT_VERSION" description="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_EDIT_VERSION_DESC" />
</section>
<section name="language">
<action name="language.edit" title="COM_COMPONENTBUILDER_LANGUAGES_EDIT" description="COM_COMPONENTBUILDER_LANGUAGES_EDIT_DESC" />
<action name="language.edit.own" title="COM_COMPONENTBUILDER_LANGUAGES_EDIT_OWN" description="COM_COMPONENTBUILDER_LANGUAGES_EDIT_OWN_DESC" />
<action name="language.edit.state" title="COM_COMPONENTBUILDER_LANGUAGES_EDIT_STATE" description="COM_COMPONENTBUILDER_LANGUAGES_EDIT_STATE_DESC" />
<action name="language.create" title="COM_COMPONENTBUILDER_LANGUAGES_CREATE" description="COM_COMPONENTBUILDER_LANGUAGES_CREATE_DESC" />
<action name="language.delete" title="COM_COMPONENTBUILDER_LANGUAGES_DELETE" description="COM_COMPONENTBUILDER_LANGUAGES_DELETE_DESC" />
<action name="language.access" title="COM_COMPONENTBUILDER_LANGUAGES_ACCESS" description="COM_COMPONENTBUILDER_LANGUAGES_ACCESS_DESC" />
<action name="language.version" title="COM_COMPONENTBUILDER_LANGUAGES_EDIT_VERSION" description="COM_COMPONENTBUILDER_LANGUAGES_EDIT_VERSION_DESC" />
</section>
<section name="ftp">
<action name="ftp.edit" title="COM_COMPONENTBUILDER_FTPS_EDIT" description="COM_COMPONENTBUILDER_FTPS_EDIT_DESC" />
<action name="ftp.edit.own" title="COM_COMPONENTBUILDER_FTPS_EDIT_OWN" description="COM_COMPONENTBUILDER_FTPS_EDIT_OWN_DESC" />
<action name="ftp.edit.state" title="COM_COMPONENTBUILDER_FTPS_EDIT_STATE" description="COM_COMPONENTBUILDER_FTPS_EDIT_STATE_DESC" />
<action name="ftp.edit.created_by" title="COM_COMPONENTBUILDER_FTPS_EDIT_CREATED_BY" description="COM_COMPONENTBUILDER_FTPS_EDIT_CREATED_BY_DESC" />
<action name="ftp.edit.created" title="COM_COMPONENTBUILDER_FTPS_EDIT_CREATED_DATE" description="COM_COMPONENTBUILDER_FTPS_EDIT_CREATED_DATE_DESC" />
<action name="ftp.create" title="COM_COMPONENTBUILDER_FTPS_CREATE" description="COM_COMPONENTBUILDER_FTPS_CREATE_DESC" />
<action name="ftp.delete" title="COM_COMPONENTBUILDER_FTPS_DELETE" description="COM_COMPONENTBUILDER_FTPS_DELETE_DESC" />
<action name="ftp.access" title="COM_COMPONENTBUILDER_FTPS_ACCESS" description="COM_COMPONENTBUILDER_FTPS_ACCESS_DESC" />
<action name="ftp.edit.name" title="COM_COMPONENTBUILDER_FTPS_EDIT_NAME" description="COM_COMPONENTBUILDER_FTPS_EDIT_NAME_DESC" />
<action name="ftp.edit.signature" title="COM_COMPONENTBUILDER_FTPS_EDIT_SIGNATURE" description="COM_COMPONENTBUILDER_FTPS_EDIT_SIGNATURE_DESC" />
<action name="ftp.version" title="COM_COMPONENTBUILDER_FTPS_EDIT_VERSION" description="COM_COMPONENTBUILDER_FTPS_EDIT_VERSION_DESC" />
</section>
<section name="help_document">
<action name="help_document.edit" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_EDIT" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_EDIT_DESC" />
<action name="help_document.edit.own" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_EDIT_OWN" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_EDIT_OWN_DESC" />

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.4.1
@build 1st April, 2017
@version 2.5.6
@build 6th October, 2017
@created 30th April, 2015
@package Component Builder
@subpackage admin.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 109 of this MVC
@build 31st March, 2017
@version @update number 114 of this MVC
@build 28th August, 2017
@created 30th April, 2015
@package Component Builder
@subpackage admin_view.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 109 of this MVC
@build 31st March, 2017
@version @update number 114 of this MVC
@build 28th August, 2017
@created 30th April, 2015
@package Component Builder
@subpackage admin_views.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 47 of this MVC
@build 21st March, 2017
@version @update number 55 of this MVC
@build 13th September, 2017
@created 1st February, 2017
@package Component Builder
@subpackage compiler.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 22 of this MVC
@build 1st March, 2017
@version @update number 27 of this MVC
@build 27th September, 2017
@created 13th August, 2015
@package Component Builder
@subpackage custom_admin_view.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 22 of this MVC
@build 1st March, 2017
@version @update number 27 of this MVC
@build 27th September, 2017
@created 13th August, 2015
@package Component Builder
@subpackage custom_admin_views.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 81 of this MVC
@build 1st March, 2017
@version @update number 82 of this MVC
@build 4th October, 2017
@created 11th October, 2016
@package Component Builder
@subpackage custom_code.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 81 of this MVC
@build 1st March, 2017
@version @update number 82 of this MVC
@build 4th October, 2017
@created 11th October, 2016
@package Component Builder
@subpackage custom_codes.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.4.1
@build 1st April, 2017
@version 2.5.6
@build 6th October, 2017
@created 30th April, 2015
@package Component Builder
@subpackage dashboard.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 81 of this MVC
@build 15th January, 2017
@version @update number 94 of this MVC
@build 27th September, 2017
@created 21st May, 2015
@package Component Builder
@subpackage dynamic_get.css
@ -24,4 +24,6 @@
/* CSS Document */
.fieldMedium {
width: 80px !important;
}

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 81 of this MVC
@build 15th January, 2017
@version @update number 94 of this MVC
@build 27th September, 2017
@created 21st May, 2015
@package Component Builder
@subpackage dynamic_gets.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 37 of this MVC
@build 3rd February, 2017
@version @update number 38 of this MVC
@build 28th May, 2017
@created 30th April, 2015
@package Component Builder
@subpackage field.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 37 of this MVC
@build 3rd February, 2017
@version @update number 38 of this MVC
@build 28th May, 2017
@created 30th April, 2015
@package Component Builder
@subpackage fields.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 12 of this MVC
@build 20th October, 2016
@version @update number 15 of this MVC
@build 17th September, 2017
@created 30th April, 2015
@package Component Builder
@subpackage fieldtype.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 12 of this MVC
@build 20th October, 2016
@version @update number 15 of this MVC
@build 17th September, 2017
@created 30th April, 2015
@package Component Builder
@subpackage fieldtypes.css

27
admin/assets/css/ftp.css Normal file
View File

@ -0,0 +1,27 @@
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
__ __ _ _____ _ _ __ __ _ _ _
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
| |
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 10 of this MVC
@build 24th August, 2017
@created 23rd August, 2017
@package Component Builder
@subpackage ftp.css
@author Llewellyn van der Merwe <http://vdm.bz/component-builder>
@copyright Copyright (C) 2015. All Rights Reserved
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
Builds Complex Joomla Components
/-----------------------------------------------------------------------------------------------------------------------------*/
/* CSS Document */

27
admin/assets/css/ftps.css Normal file
View File

@ -0,0 +1,27 @@
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
__ __ _ _____ _ _ __ __ _ _ _
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
| |
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 10 of this MVC
@build 24th August, 2017
@created 23rd August, 2017
@package Component Builder
@subpackage ftps.css
@author Llewellyn van der Merwe <http://vdm.bz/component-builder>
@copyright Copyright (C) 2015. All Rights Reserved
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
Builds Complex Joomla Components
/-----------------------------------------------------------------------------------------------------------------------------*/
/* CSS Document */

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 311 of this MVC
@build 1st April, 2017
@version @update number 385 of this MVC
@build 6th October, 2017
@created 6th May, 2015
@package Component Builder
@subpackage joomla_component.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 311 of this MVC
@build 1st April, 2017
@version @update number 385 of this MVC
@build 6th October, 2017
@created 6th May, 2015
@package Component Builder
@subpackage joomla_components.css

View File

@ -0,0 +1,27 @@
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
__ __ _ _____ _ _ __ __ _ _ _
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
| |
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 3 of this MVC
@build 3rd April, 2017
@created 3rd April, 2017
@package Component Builder
@subpackage language.css
@author Llewellyn van der Merwe <http://vdm.bz/component-builder>
@copyright Copyright (C) 2015. All Rights Reserved
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
Builds Complex Joomla Components
/-----------------------------------------------------------------------------------------------------------------------------*/
/* CSS Document */

View File

@ -0,0 +1,30 @@
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
__ __ _ _____ _ _ __ __ _ _ _
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
| |
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 43 of this MVC
@build 16th September, 2017
@created 3rd April, 2017
@package Component Builder
@subpackage language_translation.css
@author Llewellyn van der Merwe <http://vdm.bz/component-builder>
@copyright Copyright (C) 2015. All Rights Reserved
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
Builds Complex Joomla Components
/-----------------------------------------------------------------------------------------------------------------------------*/
/* CSS Document */
.translation_text_area {
width: 100%;
}

View File

@ -0,0 +1,27 @@
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
__ __ _ _____ _ _ __ __ _ _ _
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
| |
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 43 of this MVC
@build 16th September, 2017
@created 3rd April, 2017
@package Component Builder
@subpackage language_translations.css
@author Llewellyn van der Merwe <http://vdm.bz/component-builder>
@copyright Copyright (C) 2015. All Rights Reserved
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
Builds Complex Joomla Components
/-----------------------------------------------------------------------------------------------------------------------------*/
/* CSS Document */

View File

@ -0,0 +1,27 @@
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
__ __ _ _____ _ _ __ __ _ _ _
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
| |
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 3 of this MVC
@build 3rd April, 2017
@created 3rd April, 2017
@package Component Builder
@subpackage languages.css
@author Llewellyn van der Merwe <http://vdm.bz/component-builder>
@copyright Copyright (C) 2015. All Rights Reserved
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
Builds Complex Joomla Components
/-----------------------------------------------------------------------------------------------------------------------------*/
/* CSS Document */

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 67 of this MVC
@build 1st April, 2017
@version @update number 81 of this MVC
@build 27th September, 2017
@created 18th May, 2015
@package Component Builder
@subpackage layout.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 67 of this MVC
@build 1st April, 2017
@version @update number 81 of this MVC
@build 27th September, 2017
@created 18th May, 2015
@package Component Builder
@subpackage layouts.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 51 of this MVC
@build 6th March, 2017
@version @update number 54 of this MVC
@build 27th September, 2017
@created 29th May, 2015
@package Component Builder
@subpackage site_view.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 51 of this MVC
@build 6th March, 2017
@version @update number 54 of this MVC
@build 27th September, 2017
@created 29th May, 2015
@package Component Builder
@subpackage site_views.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 16 of this MVC
@build 20th October, 2016
@version @update number 17 of this MVC
@build 27th September, 2017
@created 19th May, 2015
@package Component Builder
@subpackage snippet.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 16 of this MVC
@build 20th October, 2016
@version @update number 17 of this MVC
@build 27th September, 2017
@created 19th May, 2015
@package Component Builder
@subpackage snippets.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 40 of this MVC
@build 1st April, 2017
@version @update number 45 of this MVC
@build 27th September, 2017
@created 26th May, 2015
@package Component Builder
@subpackage template.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 40 of this MVC
@build 1st April, 2017
@version @update number 45 of this MVC
@build 27th September, 2017
@created 26th May, 2015
@package Component Builder
@subpackage templates.css

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

View File

@ -0,0 +1,25 @@
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
__ __ _ _____ _ _ __ __ _ _ _
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
| |
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.5.6
@build 6th October, 2017
@created 30th April, 2015
@package Component Builder
@subpackage admin.js
@author Llewellyn van der Merwe <http://vdm.bz/component-builder>
@copyright Copyright (C) 2015. All Rights Reserved
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
Builds Complex Joomla Components
/-----------------------------------------------------------------------------------------------------------------------------*/
/* JS Document */

View File

@ -52,7 +52,10 @@ class ###Component###View###Component### extends JViewLegacy
// Assign data to the view
$this->icons = $this->get('Icons');
$this->contributors = ###Component###Helper::getContributors();###DASH_GET_CUSTOM_DATA###
// get the manifest details of the component
$this->manifest = ###Component###Helper::manifest();
// Set the toolbar
$this->addToolBar();
@ -87,15 +90,19 @@ class ###Component###View###Component### extends JViewLegacy
/**
* Method to set up the document properties
*
*
* @return void
*/
protected function setDocument()
{
$document = JFactory::getDocument();
// add dashboard style sheets
$document->addStyleSheet(JURI::root() . "administrator/components/com_###component###/assets/css/dashboard.css");
// set page title
$document->setTitle(JText::_('COM_###COMPONENT###_DASHBOARD'));
// add manifest to page JavaScript
$document->addScriptDeclaration("var manifest = jQuery.parseJSON('" . json_encode($this->manifest) . "');", "text/javascript");
}
}

View File

@ -157,7 +157,14 @@ abstract class ###Component###Helper
$query = $db->getQuery(true);
$query->select($db->quoteName(array($what)));
$query->from($db->quoteName('#_'.$main.'_'.$table));
if (empty($table))
{
$query->from($db->quoteName('#__'.$main));
}
else
{
$query->from($db->quoteName('#_'.$main.'_'.$table));
}
$query->where($db->quoteName($whereString) . ' '.$operator.' (' . implode(',',$where) . ')');
$db->setQuery($query);
$db->execute();
@ -440,12 +447,20 @@ abstract class ###Component###Helper
**/
public static function getModel($name, $path = JPATH_COMPONENT_ADMINISTRATOR, $component = '###component###')
{
// load some joomla helpers
JLoader::import('joomla.application.component.model');
// load the model file
JLoader::import( $name, $path . '/models' );
// return instance
return JModelLegacy::getInstance( $name, $component.'Model' );
JModelLegacy::addIncludePath( $path . '/models' );
// get instance
$model = JModelLegacy::getInstance( $name, $component.'Model' );
// if model not found
if ($model == false)
{
// build class name
$class = $prefix.$name;
// initilize the model
new $class();
$model = JModelLegacy::getInstance($name, $prefix);
}
return $model;
}
/**
@ -652,10 +667,16 @@ abstract class ###Component###Helper
return false;
}
// typo sorry!
public static function sorten($string, $length = 40, $addTip = true)
{
return self::shorten($string, $length, $addTip);
}
public static function shorten($string, $length = 40, $addTip = true)
{
if (self::checkString($string))
{
{
$initial = strlen($string);
$words = preg_split('/([\s\n\r]+)/', $string, null, PREG_SPLIT_DELIM_CAPTURE);
$words_count = count($words);
@ -675,7 +696,7 @@ abstract class ###Component###Helper
$final = strlen($newString);
if ($initial != $final && $addTip)
{
$title = self::sorten($string, 400 , false);
$title = self::shorten($string, 400 , false);
return '<span class="hasTip" title="'.$title.'" style="cursor:help">'.trim($newString).'...</span>';
}
elseif ($initial != $final && !$addTip)
@ -706,7 +727,8 @@ abstract class ###Component###Helper
// If you don't need to handle multi-byte characters
// you can use preg_replace rather than mb_ereg_replace
// Thanks @Łukasz Rysiak!
$string = mb_ereg_replace("([^\w\s\d\-_\(\)])", '', $string);
// $string = mb_ereg_replace("([^\w\s\d\-_\(\)])", '', $string);
$string = preg_replace("([^\w\s\d\-_\(\)])", '', $string);
// http://stackoverflow.com/a/2021729/1429677
return preg_replace('/\s+/', ' ', $string);
}
@ -773,15 +795,15 @@ abstract class ###Component###Helper
return '';
}
public static function htmlEscape($var, $charset = 'UTF-8', $sorten = false, $length = 40)
public static function htmlEscape($var, $charset = 'UTF-8', $shorten = false, $length = 40)
{
if (self::checkString($var))
{
$filter = new JFilterInput();
$string = $filter->clean(html_entity_decode(htmlentities($var, ENT_COMPAT, $charset)), 'HTML');
if ($sorten)
if ($shorten)
{
return self::sorten($string,$length);
return self::shorten($string,$length);
}
return $string;
}

View File

@ -114,6 +114,8 @@ abstract class ###Component###Email
$sendmail = $globalConf->get('sendmail');
$mailfrom = $globalConf->get('mailfrom');
$fromname = $globalConf->get('fromname');
$replyto = $globalConf->get('replyto');
$replytoname = $globalConf->get('replytoname');
}
else
{
@ -126,15 +128,15 @@ abstract class ###Component###Email
$sendmail = $conf->get('sendmail');
$mailfrom = $conf->get('mailfrom');
$fromname = $conf->get('fromname');
$mailreply = $conf->get('mailreply');
$replyname = $conf->get('replyname');
$replyto = $conf->get('replyto');
$replytoname = $conf->get('replytoname');
}
// set the global reply-to
if ($mailreply && $fromname)
{
$mail->ClearReplyTos();
$mail->addReplyTo( array( $mailreply, $replyname ) );
}
// set the global reply-to if found
if ($replyto && $replytoname)
{
$mail->ClearReplyTos();
$mail->addReplyTo( array( $replyto, $replytoname ) );
}
// Set global sender
@ -276,4 +278,74 @@ abstract class ###Component###Email
return $sendmail;
}
/**
* Set html text (in a row) and subject (as title) to a email table.
* do not use <p> instead use <br />
* in your html that you pass to this method
* since it is a table row it does not
* work well with paragraphs
*
* @return string on success
*
*/
public static function setTableBody($html, $subject)
{
$body = array();
$body[] = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">";
$body[] = "<html xmlns=\"http://www.w3.org/1999/xhtml\">";
$body[] = "<head>";
$body[] = "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />";
$body[] = "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"/>";
$body[] = "<title>".$subject."</title>";
$body[] = "<style type=\"text/css\">";
$body[] = "#outlook a {padding:0;}";
$body[] = ".ExternalClass {width:100%;}";
$body[] = ".ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div {line-height: 100%;} ";
$body[] = "p {margin: 0; padding: 0; font-size: 0px; line-height: 0px;} ";
$body[] = "table td {border-collapse: collapse;}";
$body[] = "table {border-collapse: collapse; mso-table-lspace:0pt; mso-table-rspace:0pt; }";
$body[] = "img {display: block; outline: none; text-decoration: none; -ms-interpolation-mode: bicubic;}";
$body[] = "a img {border: none;}";
$body[] = "a {text-decoration: none; color: #000001;}";
$body[] = "a.phone {text-decoration: none; color: #000001 !important; pointer-events: auto; cursor: default;}";
$body[] = "span {font-size: 13px; line-height: 17px; font-family: monospace; color: #000001;}";
$body[] = "</style>";
$body[] = "<!--[if gte mso 9]>";
$body[] = "<style>";
$body[] = "/* Target Outlook 2007 and 2010 */";
$body[] = "</style>";
$body[] = "<![endif]-->";
$body[] = "</head>";
$body[] = "<body style=\"width:100%; margin:0; padding:0; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;\">";
$body[] = "\n<!-- body wrapper -->";
$body[] = "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"margin:0; padding:0; width:100%; line-height: 100% !important;\">";
$body[] = "<tr>";
$body[] = "<td valign=\"top\">";
$body[] = "<!-- edge wrapper -->";
$body[] = "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\" width=\"800\" >";
$body[] = "<tr>";
$body[] = "<td valign=\"top\">";
$body[] = "<!-- content wrapper -->";
$body[] = "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\" width=\"780\">";
$body[] = "<tr>";
$body[] = "<td valign=\"top\" style=\"vertical-align: top;\">";
$body[] = $html;
$body[] = "</td>";
$body[] = "</tr>";
$body[] = "</table>";
$body[] = "<!-- / content wrapper -->";
$body[] = "</td>";
$body[] = "</tr>";
$body[] = "</table>";
$body[] = "<!-- / edge wrapper -->";
$body[] = "</td>";
$body[] = "</tr>";
$body[] = "</table>";
$body[] = "<!-- / page wrapper -->";
$body[] = "</body>";
$body[] = "</html>";
return implode("\n", $body);
}
}

View File

@ -118,12 +118,23 @@ abstract class ###Component###Helper
**/
public static function getModel($name, $path = JPATH_COMPONENT_SITE, $component = '###component###')
{
// load some joomla helpers
JLoader::import('joomla.application.component.model');
// full path
$fullPath = $path . '/models';
// load the model file
JLoader::import( $name, $path . '/models' );
// return instance
return JModelLegacy::getInstance( $name, $component.'Model' );
JModelLegacy::addIncludePath($fullPath);
// get instance
$model = JModelLegacy::getInstance( $name, $component.'Model' );
// if model not found
if ($model == false)
{
require_once $fullPath.'/'.strtolower($name).'.php';
// build class name
$class = $prefix.$name;
// initialize the model
new $class();
$model = JModelLegacy::getInstance($name, $prefix);
}
return $model;
}
/**
@ -331,7 +342,14 @@ abstract class ###Component###Helper
$query = $db->getQuery(true);
$query->select($db->quoteName(array($what)));
$query->from($db->quoteName('#_'.$main.'_'.$table));
if (empty($table))
{
$query->from($db->quoteName('#__'.$main));
}
else
{
$query->from($db->quoteName('#_'.$main.'_'.$table));
}
$query->where($db->quoteName($whereString) . ' '.$operator.' (' . implode(',',$where) . ')');
$db->setQuery($query);
$db->execute();
@ -644,7 +662,13 @@ abstract class ###Component###Helper
return false;
}
// typo sorry!
public static function sorten($string, $length = 40, $addTip = true)
{
return self::shorten($string, $length, $addTip);
}
public static function shorten($string, $length = 40, $addTip = true)
{
if (self::checkString($string))
{
@ -667,7 +691,7 @@ abstract class ###Component###Helper
$final = strlen($newString);
if ($initial != $final && $addTip)
{
$title = self::sorten($string, 400 , false);
$title = self::shorten($string, 400 , false);
return '<span class="hasTip" title="'.$title.'" style="cursor:help">'.trim($newString).'...</span>';
}
elseif ($initial != $final && !$addTip)
@ -698,7 +722,8 @@ abstract class ###Component###Helper
// If you don't need to handle multi-byte characters
// you can use preg_replace rather than mb_ereg_replace
// Thanks @Łukasz Rysiak!
$string = mb_ereg_replace("([^\w\s\d\-_\(\)])", '', $string);
// $string = mb_ereg_replace("([^\w\s\d\-_\(\)])", '', $string);
$string = preg_replace("([^\w\s\d\-_\(\)])", '', $string);
// http://stackoverflow.com/a/2021729/1429677
return preg_replace('/\s+/', ' ', $string);
}
@ -765,15 +790,15 @@ abstract class ###Component###Helper
return '';
}
public static function htmlEscape($var, $charset = 'UTF-8', $sorten = false, $length = 40)
public static function htmlEscape($var, $charset = 'UTF-8', $shorten = false, $length = 40)
{
if (self::checkString($var))
{
$filter = new JFilterInput();
$string = $filter->clean(html_entity_decode(htmlentities($var, ENT_COMPAT, $charset)), 'HTML');
if ($sorten)
if ($shorten)
{
return self::sorten($string,$length);
return self::shorten($string,$length);
}
return $string;
}

View File

@ -142,7 +142,7 @@ class ###Component###View###Views### extends JViewLegacy
{
JToolbarHelper::trash('###views###.trash');
}###EXPORTBUTTON###
}###IMPORTBUTTON###
}###ADMIN_CUSTOM_FUNCTION_ONLY_BUTTONS_LIST### ###IMPORTBUTTON###
// set help url for this view if found
$help_url = ###Component###Helper::getHelpUrl('###views###');

View File

@ -0,0 +1,4 @@
###BOM###
/* JS Document */
###ADMINJS###

View File

@ -60,8 +60,7 @@
</files>
<languages folder="site">
<language tag="en-GB">language/en-GB/en-GB.com_###component###.ini</language>
<language tag="en-GB">language/en-GB/en-GB.com_###component###.sys.ini</language>
###SITE_LANGUAGES###
</languages>
<administration>
@ -86,8 +85,7 @@
</files>
<languages folder="admin">
<language tag="en-GB">language/en-GB/en-GB.com_###component###.ini</language>
<language tag="en-GB">language/en-GB/en-GB.com_###component###.sys.ini</language>
###ADMIN_LANGUAGES###
</languages>
</administration>###UPDATESERVER###

View File

@ -29,30 +29,27 @@ defined('_JEXEC') or die('Restricted access');
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
$manifest = ###Component###Helper::manifest();
JHtml::_('bootstrap.loadCss');
?>
<img alt="<?php echo JText::_('COM_###COMPONENT###'); ?>" src="components/com_###component###/assets/images/component-300.###COMP_IMAGE_TYPE###">
<img alt="<?php echo JText::_('COM_###COMPONENT###'); ?>" src="components/com_###component###/assets/images/vdm-component.###COMP_IMAGE_TYPE###">
<ul class="list-striped">
<li><b><?php echo JText::_('COM_###COMPONENT###_VERSION'); ?>:</b> <?php echo $manifest->version; ?></li>
<li><b><?php echo JText::_('COM_###COMPONENT###_DATE'); ?>:</b> <?php echo $manifest->creationDate; ?></li>
<li><b><?php echo JText::_('COM_###COMPONENT###_AUTHOR'); ?>:</b> <a href="mailto:<?php echo $manifest->authorEmail; ?>"><?php echo $manifest->author; ?></a></li>
<li><b><?php echo JText::_('COM_###COMPONENT###_WEBSITE'); ?>:</b> <a href="<?php echo $manifest->authorUrl; ?>" target="_blank"><?php echo $manifest->authorUrl; ?></a></li>
<li><b><?php echo JText::_('COM_###COMPONENT###_LICENSE'); ?>:</b> <?php echo $manifest->license; ?></li>
<li><b><?php echo $manifest->copyright; ?></b></li>
<li><b><?php echo JText::_('COM_###COMPONENT###_VERSION'); ?>:</b> <?php echo $this->manifest->version; ?>&nbsp;&nbsp;<span class="update-notice"></span></li>
<li><b><?php echo JText::_('COM_###COMPONENT###_DATE'); ?>:</b> <?php echo $this->manifest->creationDate; ?></li>
<li><b><?php echo JText::_('COM_###COMPONENT###_AUTHOR'); ?>:</b> <a href="mailto:<?php echo $this->manifest->authorEmail; ?>"><?php echo $this->manifest->author; ?></a></li>
<li><b><?php echo JText::_('COM_###COMPONENT###_WEBSITE'); ?>:</b> <a href="<?php echo $this->manifest->authorUrl; ?>" target="_blank"><?php echo $this->manifest->authorUrl; ?></a></li>
<li><b><?php echo JText::_('COM_###COMPONENT###_LICENSE'); ?>:</b> <?php echo $this->manifest->license; ?></li>
<li><b><?php echo $this->manifest->copyright; ?></b></li>
</ul>
<div class="clearfix"></div>
<?php if(###Component###Helper::checkArray($this->contributors)): ?>
<?php if(count($this->contributors) > 1): ?>
<h3><?php echo JText::_('COM_###COMPONENT###_CONTRIBUTORS'); ?></h3>
<?php else: ?>
<h3><?php echo JText::_('COM_###COMPONENT###_CONTRIBUTOR'); ?></h3>
<?php endif; ?>
<ul class="list-striped">
<?php foreach($this->contributors as $contributor): ?>
<li><b><?php echo $contributor['title']; ?>:</b> <?php echo $contributor['name']; ?></li>
<?php endforeach; ?>
</ul>
<div class="clearfix"></div>
<?php if(count($this->contributors) > 1): ?>
<h3><?php echo JText::_('COM_###COMPONENT###_CONTRIBUTORS'); ?></h3>
<?php else: ?>
<h3><?php echo JText::_('COM_###COMPONENT###_CONTRIBUTOR'); ?></h3>
<?php endif; ?>
<ul class="list-striped">
<?php foreach($this->contributors as $contributor): ?>
<li><b><?php echo $contributor['title']; ?>:</b> <?php echo $contributor['name']; ?></li>
<?php endforeach; ?>
</ul>
<div class="clearfix"></div>
<?php endif; ?>

View File

@ -29,7 +29,7 @@ defined('_JEXEC') or die('Restricted access');
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
class HeaderCheck
class ###component###HeaderCheck
{
function js_loaded($script_name)
{

View File

@ -29,7 +29,7 @@ defined('_JEXEC') or die('Restricted access');
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
class HeaderCheck
class ###component###HeaderCheck
{
function js_loaded($script_name)
{

View File

@ -170,18 +170,6 @@
"rename": false,
"type": "file"
},
"en-GB.com_admin.ini": {
"naam":"en-GB.com_admin.ini",
"path": "c0mp0n3nt/admin/language/en-GB",
"rename": "admin",
"type": "file"
},
"en-GB.com_admin.sys.ini": {
"naam":"en-GB.com_admin.sys.ini",
"path": "c0mp0n3nt/admin/language/en-GB",
"rename": "admin",
"type": "file"
},
"install.mysql.utf8.sql": {
"naam":"install.mysql.utf8.sql",
"path": "c0mp0n3nt/admin/sql",
@ -219,18 +207,6 @@
"rename": false,
"type": "file"
},
"en-GB.com_site.ini": {
"naam":"en-GB.com_site.ini",
"path": "c0mp0n3nt/site/language/en-GB",
"rename": "site",
"type": "file"
},
"en-GB.com_site.sys.ini": {
"naam":"en-GB.com_site.sys.ini",
"path": "c0mp0n3nt/site/language/en-GB",
"rename": "site",
"type": "file"
},
"headercheck.php": {
"naam":"headercheck.php",
"path": "c0mp0n3nt/site/helpers",

View File

@ -0,0 +1,4 @@
###BOM###
/* JS Document */
###SITEJS###

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.4.1
@build 1st April, 2017
@version 2.5.6
@build 6th October, 2017
@created 30th April, 2015
@package Component Builder
@subpackage componentbuilder.php
@ -43,8 +43,12 @@ $document->addStyleSheet('components/com_componentbuilder/assets/css/admin.css')
$document->addScript('components/com_componentbuilder/assets/js/admin.js');
// require helper files
JLoader::register('ComponentbuilderHelper', dirname(__FILE__) . '/helpers/componentbuilder.php');
JLoader::register('JHtmlBatch_', dirname(__FILE__) . '/helpers/html/batch_.php');
JLoader::register('ComponentbuilderHelper', dirname(__FILE__) . '/helpers/componentbuilder.php');
JLoader::register('ComponentbuilderEmail', JPATH_COMPONENT_ADMINISTRATOR . '/helpers/componentbuilderemail.php');
JLoader::register('JHtmlBatch_', dirname(__FILE__) . '/helpers/html/batch_.php');
// Triger the Global Admin Event
ComponentbuilderHelper::globalEvent($document);
// import joomla controller library
jimport('joomla.application.component.controller');

View File

@ -61,8 +61,30 @@
<option value="0">
COM_COMPONENTBUILDER_CONFIG_NO</option>
</field>
<!-- Percentagelanguageadd Field. Type: Number. (joomla) -->
<field
type="number"
name="percentagelanguageadd"
label="COM_COMPONENTBUILDER_CONFIG_PERCENTAGELANGUAGEADD_LABEL"
default="50"
description="COM_COMPONENTBUILDER_CONFIG_PERCENTAGELANGUAGEADD_DESCRIPTION"
class="text_area"
required="true"
min="10"
max="100"
step="10"
/>
<!-- Spacer_hr_a Field. Type: Spacer. A None Database Field. (joomla) -->
<field type="spacer" name="spacer_hr_a" hr="true" class="spacer_hr_a" />
<field type="spacer" name="spacer_hr_a" hr="true" class="spacer_hr_a" />
<!-- Api Field. Type: User. (joomla) -->
<field
type="user"
name="api"
label="COM_COMPONENTBUILDER_CONFIG_API_LABEL"
description="COM_COMPONENTBUILDER_CONFIG_API_DESCRIPTION"
/>
<!-- Spacer_hr_b Field. Type: Spacer. A None Database Field. (joomla) -->
<field type="spacer" name="spacer_hr_b" hr="true" class="spacer_hr_b" />
<field name="autorTitle"
type="spacer"
label="COM_COMPONENTBUILDER_CONFIG_AUTHOR"
@ -133,6 +155,340 @@
COM_COMPONENTBUILDER_CONFIG_GRADIANT_LOAD</option>"
</field>
</fieldset>
<fieldset
name="mail_configuration_custom_config"
label="COM_COMPONENTBUILDER_CONFIG_MAIL_CONFIGURATION">
<!-- Mailonline Field. Type: Radio. (joomla) -->
<field
type="radio"
name="mailonline"
label="COM_COMPONENTBUILDER_CONFIG_MAILONLINE_LABEL"
description="COM_COMPONENTBUILDER_CONFIG_MAILONLINE_DESCRIPTION"
class="btn-group btn-group-yesno"
default="1">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_CONFIG_ON</option>
<option value="0">
COM_COMPONENTBUILDER_CONFIG_OFF</option>
</field>
<!-- Mailer Field. Type: List. (joomla) -->
<field
type="list"
name="mailer"
label="COM_COMPONENTBUILDER_CONFIG_MAILER_LABEL"
description="COM_COMPONENTBUILDER_CONFIG_MAILER_DESCRIPTION"
class="list_class"
multiple="false"
filter="WORD"
required="true"
default="global">
<!-- Option Set. -->
<option value="global">
COM_COMPONENTBUILDER_CONFIG_GLOBAL</option>
<option value="default">
COM_COMPONENTBUILDER_CONFIG_PHP_MAIL</option>
<option value="sendmail">
COM_COMPONENTBUILDER_CONFIG_SENDMAIL</option>
<option value="smtp">
COM_COMPONENTBUILDER_CONFIG_SMTP</option>
</field>
<!-- Emailfrom Field. Type: Text. (joomla) -->
<field
type="text"
name="emailfrom"
label="COM_COMPONENTBUILDER_CONFIG_EMAILFROM_LABEL"
size="60"
maxlength="150"
description="COM_COMPONENTBUILDER_CONFIG_EMAILFROM_DESCRIPTION"
class="text_area"
filter="STRING"
validate="email"
message="Error! Please add email address here."
hint="COM_COMPONENTBUILDER_CONFIG_EMAILFROM_HINT"
showon="mailer:smtp,sendmail,default"
/>
<!-- Fromname Field. Type: Text. (joomla) -->
<field
type="text"
name="fromname"
label="COM_COMPONENTBUILDER_CONFIG_FROMNAME_LABEL"
size="60"
maxlength="150"
description="COM_COMPONENTBUILDER_CONFIG_FROMNAME_DESCRIPTION"
class="text_area"
filter="STRING"
message="Error! Please add some name here."
hint="COM_COMPONENTBUILDER_CONFIG_FROMNAME_HINT"
showon="mailer:smtp,sendmail,default"
/>
<!-- Email reply to Field. Type: Text. (joomla) -->
<field
type="text"
name="replyto"
label="COM_COMPONENTBUILDER_CONFIG_EMAILREPLY_LABEL"
size="60"
maxlength="150"
description="COM_COMPONENTBUILDER_CONFIG_EMAILREPLY_DESCRIPTION"
class="text_area"
filter="STRING"
validate="email"
message="Error! Please add email address here."
hint="COM_COMPONENTBUILDER_CONFIG_EMAILREPLY_HINT"
showon="mailer:smtp,sendmail,default"
/>
<!-- Reply to name Field. Type: Text. (joomla) -->
<field
type="text"
name="replytoname"
label="COM_COMPONENTBUILDER_CONFIG_REPLYNAME_LABEL"
size="60"
maxlength="150"
description="COM_COMPONENTBUILDER_CONFIG_REPLYNAME_DESCRIPTION"
class="text_area"
filter="STRING"
message="Error! Please add some name here."
hint="COM_COMPONENTBUILDER_CONFIG_REPLYNAME_HINT"
showon="mailer:smtp,sendmail,default"
/>
<!-- Sendmail Field. Type: Text. (joomla) -->
<field
type="text"
name="sendmail"
label="COM_COMPONENTBUILDER_CONFIG_SENDMAIL_LABEL"
size="60"
maxlength="150"
description="COM_COMPONENTBUILDER_CONFIG_SENDMAIL_DESCRIPTION"
class="text_area"
required="false"
filter="PATH"
message="Error! Please add path to you local sendmail here."
hint="COM_COMPONENTBUILDER_CONFIG_SENDMAIL_HINT"
showon="mailer:sendmail"
/>
<!-- Smtpauth Field. Type: Radio. (joomla) -->
<field
type="radio"
name="smtpauth"
label="COM_COMPONENTBUILDER_CONFIG_SMTPAUTH_LABEL"
description="COM_COMPONENTBUILDER_CONFIG_SMTPAUTH_DESCRIPTION"
class="btn-group btn-group-yesno"
default="0"
showon="mailer:smtp">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_CONFIG_YES</option>
<option value="0">
COM_COMPONENTBUILDER_CONFIG_NO</option>
</field>
<!-- Smtpsecure Field. Type: List. (joomla) -->
<field
type="list"
name="smtpsecure"
label="COM_COMPONENTBUILDER_CONFIG_SMTPSECURE_LABEL"
description="COM_COMPONENTBUILDER_CONFIG_SMTPSECURE_DESCRIPTION"
class="list_class"
multiple="false"
filter="WORD"
default="none"
showon="mailer:smtp">
<!-- Option Set. -->
<option value="none">
COM_COMPONENTBUILDER_CONFIG_NONE</option>
<option value="ssl">
COM_COMPONENTBUILDER_CONFIG_SSL</option>
<option value="tls">
COM_COMPONENTBUILDER_CONFIG_TLS</option>
</field>
<!-- Smtpport Field. Type: Text. (joomla) -->
<field
type="text"
name="smtpport"
label="COM_COMPONENTBUILDER_CONFIG_SMTPPORT_LABEL"
size="60"
maxlength="150"
default="25"
description="COM_COMPONENTBUILDER_CONFIG_SMTPPORT_DESCRIPTION"
class="text_area"
filter="INT"
message="Error! Please add the port number of your SMTP server here."
hint="COM_COMPONENTBUILDER_CONFIG_SMTPPORT_HINT"
showon="mailer:smtp"
/>
<!-- Smtpuser Field. Type: Text. (joomla) -->
<field
type="text"
name="smtpuser"
label="COM_COMPONENTBUILDER_CONFIG_SMTPUSER_LABEL"
size="60"
maxlength="150"
description="COM_COMPONENTBUILDER_CONFIG_SMTPUSER_DESCRIPTION"
class="text_area"
filter="STRING"
message="Error! Please add the username for SMTP server here."
hint="COM_COMPONENTBUILDER_CONFIG_SMTPUSER_HINT"
showon="mailer:smtp"
/>
<!-- Smtppass Field. Type: Password. (joomla) -->
<field
type="password"
name="smtppass"
label="COM_COMPONENTBUILDER_CONFIG_SMTPPASS_LABEL"
size="60"
description="COM_COMPONENTBUILDER_CONFIG_SMTPPASS_DESCRIPTION"
class="text_area"
filter="raw"
message="Error! Please add the password for SMTP server here."
showon="mailer:smtp"
/>
<!-- Smtphost Field. Type: Text. (joomla) -->
<field
type="text"
name="smtphost"
label="COM_COMPONENTBUILDER_CONFIG_SMTPHOST_LABEL"
size="60"
maxlength="150"
default="localhost"
description="COM_COMPONENTBUILDER_CONFIG_SMTPHOST_DESCRIPTION"
class="text_area"
filter="STRING"
message="Error! Please add the name of the SMTP host here."
hint="COM_COMPONENTBUILDER_CONFIG_SMTPHOST_HINT"
showon="mailer:smtp"
/>
</fieldset>
<fieldset
name="dkim_custom_config"
label="COM_COMPONENTBUILDER_CONFIG_DKIM">
<!-- Dkim Field. Type: Radio. (joomla) -->
<field
type="radio"
name="dkim"
label="COM_COMPONENTBUILDER_CONFIG_DKIM_LABEL"
description="COM_COMPONENTBUILDER_CONFIG_DKIM_DESCRIPTION"
class="btn-group btn-group-yesno"
default="0"
required="true">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_CONFIG_YES</option>
<option value="0">
COM_COMPONENTBUILDER_CONFIG_NO</option>
</field>
<!-- Dkim_domain Field. Type: Text. (joomla) -->
<field
type="text"
name="dkim_domain"
label="COM_COMPONENTBUILDER_CONFIG_DKIM_DOMAIN_LABEL"
size="60"
maxlength="150"
description="COM_COMPONENTBUILDER_CONFIG_DKIM_DOMAIN_DESCRIPTION"
class="text_area"
filter="STRING"
message="Error! Please add DKIM Domain here."
hint="COM_COMPONENTBUILDER_CONFIG_DKIM_DOMAIN_HINT"
showon="dkim:1"
onchange="vdm_dkim();"
/>
<!-- Dkim_selector Field. Type: Text. (joomla) -->
<field
type="text"
name="dkim_selector"
label="COM_COMPONENTBUILDER_CONFIG_DKIM_SELECTOR_LABEL"
size="60"
maxlength="150"
default="vdm"
description="COM_COMPONENTBUILDER_CONFIG_DKIM_SELECTOR_DESCRIPTION"
class="text_area"
filter="STRING"
message="Error! Please add DKIM/DNS selector here."
hint="COM_COMPONENTBUILDER_CONFIG_DKIM_SELECTOR_HINT"
showon="dkim:1"
onchange="vdm_dkim();"
/>
<!-- Dkim_passphrase Field. Type: Password. (joomla) -->
<field
type="password"
name="dkim_passphrase"
label="COM_COMPONENTBUILDER_CONFIG_DKIM_PASSPHRASE_LABEL"
size="60"
description="COM_COMPONENTBUILDER_CONFIG_DKIM_PASSPHRASE_DESCRIPTION"
class="text_area"
filter="raw"
message="Error! Please add passphrase here."
showon="dkim:1"
/>
<!-- Dkim_identity Field. Type: Text. (joomla) -->
<field
type="text"
name="dkim_identity"
label="COM_COMPONENTBUILDER_CONFIG_DKIM_IDENTITY_LABEL"
size="60"
maxlength="150"
description="COM_COMPONENTBUILDER_CONFIG_DKIM_IDENTITY_DESCRIPTION"
class="text_area"
filter="raw"
message="Error! Please add DKIM Identity here."
hint="COM_COMPONENTBUILDER_CONFIG_DKIM_IDENTITY_HINT"
showon="dkim:1"
/>
<!-- Dkim_private_key Field. Type: Textarea. (joomla) -->
<field
type="textarea"
name="dkim_private_key"
label="COM_COMPONENTBUILDER_CONFIG_DKIM_PRIVATE_KEY_LABEL"
rows="15"
cols="5"
description="COM_COMPONENTBUILDER_CONFIG_DKIM_PRIVATE_KEY_DESCRIPTION"
class="input-xxlarge span12"
showon="dkim:1"
/>
<!-- Dkim_public_key Field. Type: Textarea. (joomla) -->
<field
type="textarea"
name="dkim_public_key"
label="COM_COMPONENTBUILDER_CONFIG_DKIM_PUBLIC_KEY_LABEL"
rows="5"
cols="5"
description="COM_COMPONENTBUILDER_CONFIG_DKIM_PUBLIC_KEY_DESCRIPTION"
class="input-xxlarge span12"
showon="dkim:1"
onchange="vdm_dkim();"
/>
<!-- Note_dkim_use Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_dkim_use" label="COM_COMPONENTBUILDER_CONFIG_NOTE_DKIM_USE_LABEL" description="COM_COMPONENTBUILDER_CONFIG_NOTE_DKIM_USE_DESCRIPTION" heading="h4" class="note_dkim_use" showon="dkim:1" />
<!-- Dkim_key Field. Type: Text. (joomla) -->
<field
type="text"
name="dkim_key"
label="COM_COMPONENTBUILDER_CONFIG_DKIM_KEY_LABEL"
size="40"
maxlength="150"
description="COM_COMPONENTBUILDER_CONFIG_DKIM_KEY_DESCRIPTION"
class="text_area"
filter="STRING"
message="Error! Please add KEY here."
hint="COM_COMPONENTBUILDER_CONFIG_DKIM_KEY_HINT"
showon="dkim:1"
/>
<!-- Dkim_value Field. Type: Text. (joomla) -->
<field
type="text"
name="dkim_value"
label="COM_COMPONENTBUILDER_CONFIG_DKIM_VALUE_LABEL"
size="80"
maxlength="350"
description="COM_COMPONENTBUILDER_CONFIG_DKIM_VALUE_DESCRIPTION"
class="text_area"
filter="STRING"
message="Error! Please add TXT record here."
hint="COM_COMPONENTBUILDER_CONFIG_DKIM_VALUE_HINT"
showon="dkim:1"
/>
</fieldset>
<fieldset
name="encryption_config"
label="COM_COMPONENTBUILDER_CONFIG_ENCRYPTION_LABEL"
@ -146,6 +502,62 @@
default=""
/>
</fieldset>
<fieldset
name="cronjob_custom_config"
label="COM_COMPONENTBUILDER_CONFIG_CRONJOB">
<!-- Backupcronjob_note Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="backupcronjob_note" label="COM_COMPONENTBUILDER_CONFIG_BACKUPCRONJOB_NOTE_LABEL" description="COM_COMPONENTBUILDER_CONFIG_BACKUPCRONJOB_NOTE_DESCRIPTION" heading="h4" class="backupcronjob_note" />
<!-- Cronjob_backup_folder_path Field. Type: Text. (joomla) -->
<field
type="text"
name="cronjob_backup_folder_path"
label="COM_COMPONENTBUILDER_CONFIG_CRONJOB_BACKUP_FOLDER_PATH_LABEL"
size="70"
maxlength="150"
description="COM_COMPONENTBUILDER_CONFIG_CRONJOB_BACKUP_FOLDER_PATH_DESCRIPTION"
class="text_area"
readonly="false"
disabled="false"
required="false"
filter="PATH"
message="Error! Please add some text here."
hint="COM_COMPONENTBUILDER_CONFIG_CRONJOB_BACKUP_FOLDER_PATH_HINT"
/>
<!-- Backup_email Field. Type: Text. (joomla) -->
<field
type="text"
name="backup_email"
label="COM_COMPONENTBUILDER_CONFIG_BACKUP_EMAIL_LABEL"
size="10"
maxlength="50"
description="COM_COMPONENTBUILDER_CONFIG_BACKUP_EMAIL_DESCRIPTION"
class="text_area"
filter="STRING"
validate="email"
message="Error! Please add email address here."
hint="COM_COMPONENTBUILDER_CONFIG_BACKUP_EMAIL_HINT"
/>
<!-- Package_name_plaeholders Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="package_name_plaeholders" label="COM_COMPONENTBUILDER_CONFIG_PACKAGE_NAME_PLAEHOLDERS_LABEL" description="COM_COMPONENTBUILDER_CONFIG_PACKAGE_NAME_PLAEHOLDERS_DESCRIPTION" heading="h4" class="package_name_plaeholders" />
<!-- Backup_package_name Field. Type: Text. (joomla) -->
<field
type="text"
name="backup_package_name"
label="COM_COMPONENTBUILDER_CONFIG_BACKUP_PACKAGE_NAME_LABEL"
size="40"
maxlength="150"
default="JCB_Backup_[YEAR]_[MONTH]_[DAY]"
description="COM_COMPONENTBUILDER_CONFIG_BACKUP_PACKAGE_NAME_DESCRIPTION"
class="text_area"
readonly="false"
disabled="false"
required="true"
filter="STRING"
message="Error! Please add name here."
hint="COM_COMPONENTBUILDER_CONFIG_BACKUP_PACKAGE_NAME_HINT"
/>
</fieldset>
<fieldset
name="folder_paths_custom_config"
label="COM_COMPONENTBUILDER_CONFIG_FOLDER_PATHS">
@ -331,47 +743,6 @@
validated="url"
message="Error! Please add link here."
hint="COM_COMPONENTBUILDER_CONFIG_EXPORT_BUY_LINK_HINT"
/>
<!-- Export_buy_query Field. Type: Text. (joomla) -->
<field
type="text"
name="export_buy_query"
label="COM_COMPONENTBUILDER_CONFIG_EXPORT_BUY_QUERY_LABEL"
size="40"
maxlength="150"
description="COM_COMPONENTBUILDER_CONFIG_EXPORT_BUY_QUERY_DESCRIPTION"
class="text_area"
filter="STRING"
message="Error! Please email address here."
hint="COM_COMPONENTBUILDER_CONFIG_EXPORT_BUY_QUERY_HINT"
/>
<!-- Export_package_link Field. Type: Url. (joomla) -->
<field
type="url"
name="export_package_link"
label="COM_COMPONENTBUILDER_CONFIG_EXPORT_PACKAGE_LINK_LABEL"
size="60"
maxlength="150"
description="COM_COMPONENTBUILDER_CONFIG_EXPORT_PACKAGE_LINK_DESCRIPTION"
class="text_area"
required="false"
filter="url"
validated="url"
message="Error! Please add link here."
hint="COM_COMPONENTBUILDER_CONFIG_EXPORT_PACKAGE_LINK_HINT"
/>
<!-- Export_package_query Field. Type: Text. (joomla) -->
<field
type="text"
name="export_package_query"
label="COM_COMPONENTBUILDER_CONFIG_EXPORT_PACKAGE_QUERY_LABEL"
size="40"
maxlength="150"
description="COM_COMPONENTBUILDER_CONFIG_EXPORT_PACKAGE_QUERY_DESCRIPTION"
class="text_area"
filter="STRING"
message="Error! Please email address here."
hint="COM_COMPONENTBUILDER_CONFIG_EXPORT_PACKAGE_QUERY_HINT"
/>
</fieldset>
<fieldset

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.4.1
@build 1st April, 2017
@version 2.5.6
@build 6th October, 2017
@created 30th April, 2015
@package Component Builder
@subpackage controller.php
@ -99,6 +99,9 @@ class ComponentbuilderController extends JControllerLegacy
'snippet' => 'snippets',
'field' => 'fields',
'fieldtype' => 'fieldtypes',
'language_translation' => 'language_translations',
'language' => 'languages',
'ftp' => 'ftps',
'help_document' => 'help_documents'
);
// check if this is a list view

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 109 of this MVC
@build 31st March, 2017
@version @update number 114 of this MVC
@build 28th August, 2017
@created 30th April, 2015
@package Component Builder
@subpackage admin_view.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 109 of this MVC
@build 31st March, 2017
@version @update number 114 of this MVC
@build 28th August, 2017
@created 30th April, 2015
@package Component Builder
@subpackage admin_views.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.4.1
@build 1st April, 2017
@version 2.5.6
@build 6th October, 2017
@created 30th April, 2015
@package Component Builder
@subpackage ajax.json.php
@ -45,19 +45,20 @@ class ComponentbuilderControllerAjax extends JControllerLegacy
$this->registerTask('isNew', 'ajax');
$this->registerTask('isRead', 'ajax');
$this->registerTask('getComponentDetails', 'ajax');
$this->registerTask('getCronPath', 'ajax');
$this->registerTask('tableColumns', 'ajax');
$this->registerTask('fieldSelectOptions', 'ajax');
$this->registerTask('getImportScripts', 'ajax');
$this->registerTask('layoutDetails', 'ajax');
$this->registerTask('templateDetails', 'ajax');
$this->registerTask('snippetDetails', 'ajax');
$this->registerTask('dynamicValues', 'ajax');
$this->registerTask('dynamicFormDetails', 'ajax');
$this->registerTask('getLayoutDetails', 'ajax');
$this->registerTask('dbTableColumns', 'ajax');
$this->registerTask('viewTableColumns', 'ajax');
$this->registerTask('getDynamicValues', 'ajax');
$this->registerTask('checkFunctionName', 'ajax');
$this->registerTask('usedin', 'ajax');
$this->registerTask('fieldOptions', 'ajax');
$this->registerTask('snippetDetails', 'ajax');
$this->registerTask('fieldOptions', 'ajax');
$this->registerTask('getButton', 'ajax');
}
public function ajax()
@ -186,6 +187,44 @@ class ComponentbuilderControllerAjax extends JControllerLegacy
}
}
break;
case 'getCronPath':
try
{
$returnRaw = $jinput->get('raw', false, 'BOOLEAN');
$getTypeValue = $jinput->get('getType', NULL, 'WORD');
if($getTypeValue && $user->id != 0)
{
$result = $this->getModel('ajax')->getCronPath($getTypeValue);
}
else
{
$result = false;
}
if($callback = $jinput->get('callback', null, 'CMD'))
{
echo $callback . "(".json_encode($result).");";
}
elseif($returnRaw)
{
echo json_encode($result);
}
else
{
echo "(".json_encode($result).");";
}
}
catch(Exception $e)
{
if($callback = $jinput->get('callback', null, 'CMD'))
{
echo $callback."(".json_encode($e).");";
}
else
{
echo "(".json_encode($e).");";
}
}
break;
case 'tableColumns':
try
{
@ -300,44 +339,6 @@ class ComponentbuilderControllerAjax extends JControllerLegacy
}
}
break;
case 'layoutDetails':
try
{
$returnRaw = $jinput->get('raw', false, 'BOOLEAN');
$idValue = $jinput->get('id', null, 'INT');
if($idValue && $user->id != 0)
{
$result = $this->getModel('ajax')->getLayoutDetails($idValue);
}
else
{
$result = false;
}
if($callback = $jinput->get('callback', null, 'CMD'))
{
echo $callback . "(".json_encode($result).");";
}
elseif($returnRaw)
{
echo json_encode($result);
}
else
{
echo "(".json_encode($result).");";
}
}
catch(Exception $e)
{
if($callback = $jinput->get('callback', null, 'CMD'))
{
echo $callback."(".json_encode($e).");";
}
else
{
echo "(".json_encode($e).");";
}
}
break;
case 'templateDetails':
try
{
@ -376,91 +377,14 @@ class ComponentbuilderControllerAjax extends JControllerLegacy
}
}
break;
case 'snippetDetails':
case 'getLayoutDetails':
try
{
$returnRaw = $jinput->get('raw', false, 'BOOLEAN');
$idValue = $jinput->get('id', NULL, 'INT');
if($idValue && $user->id != 0)
{
$result = $this->getModel('ajax')->getSnippetDetails($idValue);
}
else
{
$result = false;
}
if($callback = $jinput->get('callback', null, 'CMD'))
{
echo $callback . "(".json_encode($result).");";
}
elseif($returnRaw)
{
echo json_encode($result);
}
else
{
echo "(".json_encode($result).");";
}
}
catch(Exception $e)
{
if($callback = $jinput->get('callback', null, 'CMD'))
{
echo $callback."(".json_encode($e).");";
}
else
{
echo "(".json_encode($e).");";
}
}
break;
case 'dynamicValues':
try
{
$returnRaw = $jinput->get('raw', false, 'BOOLEAN');
$idValue = $jinput->get('id', NULL, 'INT');
$viewValue = $jinput->get('view', NULL, 'WORD');
if($idValue && $viewValue && $user->id != 0)
{
$result = $this->getModel('ajax')->getDynamicValues($idValue, $viewValue);
}
else
{
$result = false;
}
if($callback = $jinput->get('callback', null, 'CMD'))
{
echo $callback . "(".json_encode($result).");";
}
elseif($returnRaw)
{
echo json_encode($result);
}
else
{
echo "(".json_encode($result).");";
}
}
catch(Exception $e)
{
if($callback = $jinput->get('callback', null, 'CMD'))
{
echo $callback."(".json_encode($e).");";
}
else
{
echo "(".json_encode($e).");";
}
}
break;
case 'dynamicFormDetails':
try
{
$returnRaw = $jinput->get('raw', false, 'BOOLEAN');
$idValue = $jinput->get('id', NULL, 'INT');
if($idValue && $user->id != 0)
{
$result = $this->getModel('ajax')->getDynamicFormDetails($idValue);
$result = $this->getModel('ajax')->getLayoutDetails($idValue);
}
else
{
@ -571,6 +495,45 @@ class ComponentbuilderControllerAjax extends JControllerLegacy
}
}
break;
case 'getDynamicValues':
try
{
$returnRaw = $jinput->get('raw', false, 'BOOLEAN');
$idValue = $jinput->get('id', NULL, 'INT');
$viewValue = $jinput->get('view', NULL, 'WORD');
if($idValue && $viewValue && $user->id != 0)
{
$result = $this->getModel('ajax')->getDynamicValues($idValue, $viewValue);
}
else
{
$result = false;
}
if($callback = $jinput->get('callback', null, 'CMD'))
{
echo $callback . "(".json_encode($result).");";
}
elseif($returnRaw)
{
echo json_encode($result);
}
else
{
echo "(".json_encode($result).");";
}
}
catch(Exception $e)
{
if($callback = $jinput->get('callback', null, 'CMD'))
{
echo $callback."(".json_encode($e).");";
}
else
{
echo "(".json_encode($e).");";
}
}
break;
case 'checkFunctionName':
try
{
@ -650,6 +613,44 @@ class ComponentbuilderControllerAjax extends JControllerLegacy
}
}
break;
case 'snippetDetails':
try
{
$returnRaw = $jinput->get('raw', false, 'BOOLEAN');
$idValue = $jinput->get('id', NULL, 'INT');
if($idValue && $user->id != 0)
{
$result = $this->getModel('ajax')->getSnippetDetails($idValue);
}
else
{
$result = false;
}
if($callback = $jinput->get('callback', null, 'CMD'))
{
echo $callback . "(".json_encode($result).");";
}
elseif($returnRaw)
{
echo json_encode($result);
}
else
{
echo "(".json_encode($result).");";
}
}
catch(Exception $e)
{
if($callback = $jinput->get('callback', null, 'CMD'))
{
echo $callback."(".json_encode($e).");";
}
else
{
echo "(".json_encode($e).");";
}
}
break;
case 'fieldOptions':
try
{
@ -687,6 +688,44 @@ class ComponentbuilderControllerAjax extends JControllerLegacy
echo "(".json_encode($e).");";
}
}
break;
case 'getButton':
try
{
$returnRaw = $jinput->get('raw', false, 'BOOLEAN');
$typeValue = $jinput->get('type', NULL, 'WORD');
if($typeValue && $user->id != 0)
{
$result = $this->getModel('ajax')->getButton($typeValue);
}
else
{
$result = false;
}
if($callback = $jinput->get('callback', null, 'CMD'))
{
echo $callback . "(".json_encode($result).");";
}
elseif($returnRaw)
{
echo json_encode($result);
}
else
{
echo "(".json_encode($result).");";
}
}
catch(Exception $e)
{
if($callback = $jinput->get('callback', null, 'CMD'))
{
echo $callback."(".json_encode($e).");";
}
else
{
echo "(".json_encode($e).");";
}
}
break;
}
}

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 47 of this MVC
@build 21st March, 2017
@version @update number 55 of this MVC
@build 13th September, 2017
@created 1st February, 2017
@package Component Builder
@subpackage compiler.php
@ -70,13 +70,13 @@ class ComponentbuilderControllerCompiler extends JControllerAdmin
$componentId = $jinput->post->get('component', 0, 'INT');
$version = $jinput->post->get('version', 0, 'INT');
$addBackup = $jinput->post->get('backup', 0, 'INT');
$addGit = $jinput->post->get('git', 0, 'INT');
$addRepo = $jinput->post->get('repository', 0, 'INT');
$addPlaceholders = $jinput->post->get('placeholders', 2, 'INT');
$debugLinenr = $jinput->post->get('debuglinenr', 2, 'INT');
// include component compiler
require_once JPATH_ADMINISTRATOR.'/components/com_componentbuilder/helpers/compiler.php';
$model = $this->getModel('compiler');
if ($model->builder($version,$componentId,$addBackup,$addGit,$addPlaceholders,$debugLinenr))
if ($model->builder($version,$componentId,$addBackup,$addRepo,$addPlaceholders,$debugLinenr))
{
$cache = JFactory::getCache('mod_menu');
$cache->clean();

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.4.1
@build 1st April, 2017
@version 2.5.6
@build 6th October, 2017
@created 30th April, 2015
@package Component Builder
@subpackage componentbuilder.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 22 of this MVC
@build 1st March, 2017
@version @update number 27 of this MVC
@build 27th September, 2017
@created 13th August, 2015
@package Component Builder
@subpackage custom_admin_view.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 22 of this MVC
@build 1st March, 2017
@version @update number 27 of this MVC
@build 27th September, 2017
@created 13th August, 2015
@package Component Builder
@subpackage custom_admin_views.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 81 of this MVC
@build 1st March, 2017
@version @update number 82 of this MVC
@build 4th October, 2017
@created 11th October, 2016
@package Component Builder
@subpackage custom_code.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 81 of this MVC
@build 1st March, 2017
@version @update number 82 of this MVC
@build 4th October, 2017
@created 11th October, 2016
@package Component Builder
@subpackage custom_codes.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 81 of this MVC
@build 15th January, 2017
@version @update number 94 of this MVC
@build 27th September, 2017
@created 21st May, 2015
@package Component Builder
@subpackage dynamic_get.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 81 of this MVC
@build 15th January, 2017
@version @update number 94 of this MVC
@build 27th September, 2017
@created 21st May, 2015
@package Component Builder
@subpackage dynamic_gets.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 37 of this MVC
@build 3rd February, 2017
@version @update number 38 of this MVC
@build 28th May, 2017
@created 30th April, 2015
@package Component Builder
@subpackage field.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 37 of this MVC
@build 3rd February, 2017
@version @update number 38 of this MVC
@build 28th May, 2017
@created 30th April, 2015
@package Component Builder
@subpackage fields.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 12 of this MVC
@build 20th October, 2016
@version @update number 15 of this MVC
@build 17th September, 2017
@created 30th April, 2015
@package Component Builder
@subpackage fieldtype.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 12 of this MVC
@build 20th October, 2016
@version @update number 15 of this MVC
@build 17th September, 2017
@created 30th April, 2015
@package Component Builder
@subpackage fieldtypes.php

326
admin/controllers/ftp.php Normal file
View File

@ -0,0 +1,326 @@
<?php
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
__ __ _ _____ _ _ __ __ _ _ _
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
| |
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 10 of this MVC
@build 24th August, 2017
@created 23rd August, 2017
@package Component Builder
@subpackage ftp.php
@author Llewellyn van der Merwe <http://vdm.bz/component-builder>
@copyright Copyright (C) 2015. All Rights Reserved
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
Builds Complex Joomla Components
/-----------------------------------------------------------------------------------------------------------------------------*/
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
// import Joomla controllerform library
jimport('joomla.application.component.controllerform');
/**
* Ftp Controller
*/
class ComponentbuilderControllerFtp extends JControllerForm
{
/**
* Current or most recently performed task.
*
* @var string
* @since 12.2
* @note Replaces _task.
*/
protected $task;
public function __construct($config = array())
{
$this->view_list = 'Ftps'; // safeguard for setting the return view listing to the main view.
parent::__construct($config);
}
/**
* Method override to check if you can add a new record.
*
* @param array $data An array of input data.
*
* @return boolean
*
* @since 1.6
*/
protected function allowAdd($data = array())
{
// Access check.
$access = JFactory::getUser()->authorise('ftp.access', 'com_componentbuilder');
if (!$access)
{
return false;
}
// In the absense of better information, revert to the component permissions.
return JFactory::getUser()->authorise('ftp.create', $this->option);
}
/**
* Method override to check if you can edit an existing record.
*
* @param array $data An array of input data.
* @param string $key The name of the key for the primary key.
*
* @return boolean
*
* @since 1.6
*/
protected function allowEdit($data = array(), $key = 'id')
{
// get user object.
$user = JFactory::getUser();
// get record id.
$recordId = (int) isset($data[$key]) ? $data[$key] : 0;
// Access check.
$access = ($user->authorise('ftp.access', 'com_componentbuilder.ftp.' . (int) $recordId) && $user->authorise('ftp.access', 'com_componentbuilder'));
if (!$access)
{
return false;
}
if ($recordId)
{
// The record has been set. Check the record permissions.
$permission = $user->authorise('ftp.edit', 'com_componentbuilder.ftp.' . (int) $recordId);
if (!$permission)
{
if ($user->authorise('ftp.edit.own', 'com_componentbuilder.ftp.' . $recordId))
{
// Now test the owner is the user.
$ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0;
if (empty($ownerId))
{
// Need to do a lookup from the model.
$record = $this->getModel()->getItem($recordId);
if (empty($record))
{
return false;
}
$ownerId = $record->created_by;
}
// If the owner matches 'me' then allow.
if ($ownerId == $user->id)
{
if ($user->authorise('ftp.edit.own', 'com_componentbuilder'))
{
return true;
}
}
}
return false;
}
}
// Since there is no permission, revert to the component permissions.
return $user->authorise('ftp.edit', $this->option);
}
/**
* Gets the URL arguments to append to an item redirect.
*
* @param integer $recordId The primary key id for the item.
* @param string $urlVar The name of the URL variable for the id.
*
* @return string The arguments to append to the redirect URL.
*
* @since 12.2
*/
protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id')
{
$tmpl = $this->input->get('tmpl');
$layout = $this->input->get('layout', 'edit', 'string');
$ref = $this->input->get('ref', 0, 'string');
$refid = $this->input->get('refid', 0, 'int');
// Setup redirect info.
$append = '';
if ($refid)
{
$append .= '&ref='.(string)$ref.'&refid='.(int)$refid;
}
elseif ($ref)
{
$append .= '&ref='.(string)$ref;
}
if ($tmpl)
{
$append .= '&tmpl=' . $tmpl;
}
if ($layout)
{
$append .= '&layout=' . $layout;
}
if ($recordId)
{
$append .= '&' . $urlVar . '=' . $recordId;
}
return $append;
}
/**
* Method to run batch operations.
*
* @param object $model The model.
*
* @return boolean True if successful, false otherwise and internal error is set.
*
* @since 2.5
*/
public function batch($model = null)
{
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
// Set the model
$model = $this->getModel('Ftp', '', array());
// Preset the redirect
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=ftps' . $this->getRedirectToListAppend(), false));
return parent::batch($model);
}
/**
* Method to cancel an edit.
*
* @param string $key The name of the primary key of the URL variable.
*
* @return boolean True if access level checks pass, false otherwise.
*
* @since 12.2
*/
public function cancel($key = null)
{
// get the referal details
$this->ref = $this->input->get('ref', 0, 'word');
$this->refid = $this->input->get('refid', 0, 'int');
$cancel = parent::cancel($key);
if ($cancel)
{
if ($this->refid)
{
$redirect = '&view='.(string)$this->ref.'&layout=edit&id='.(int)$this->refid;
// Redirect to the item screen.
$this->setRedirect(
JRoute::_(
'index.php?option=' . $this->option . $redirect, false
)
);
}
elseif ($this->ref)
{
$redirect = '&view='.(string)$this->ref;
// Redirect to the list screen.
$this->setRedirect(
JRoute::_(
'index.php?option=' . $this->option . $redirect, false
)
);
}
}
else
{
// Redirect to the items screen.
$this->setRedirect(
JRoute::_(
'index.php?option=' . $this->option . '&view=' . $this->view_list, false
)
);
}
return $cancel;
}
/**
* Method to save a record.
*
* @param string $key The name of the primary key of the URL variable.
* @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions).
*
* @return boolean True if successful, false otherwise.
*
* @since 12.2
*/
public function save($key = null, $urlVar = null)
{
// get the referal details
$this->ref = $this->input->get('ref', 0, 'word');
$this->refid = $this->input->get('refid', 0, 'int');
if ($this->ref || $this->refid)
{
// to make sure the item is checkedin on redirect
$this->task = 'save';
}
$saved = parent::save($key, $urlVar);
if ($this->refid && $saved)
{
$redirect = '&view='.(string)$this->ref.'&layout=edit&id='.(int)$this->refid;
// Redirect to the item screen.
$this->setRedirect(
JRoute::_(
'index.php?option=' . $this->option . $redirect, false
)
);
}
elseif ($this->ref && $saved)
{
$redirect = '&view='.(string)$this->ref;
// Redirect to the list screen.
$this->setRedirect(
JRoute::_(
'index.php?option=' . $this->option . $redirect, false
)
);
}
return $saved;
}
/**
* Function that allows child controller access to model data
* after the data has been saved.
*
* @param JModel &$model The data model object.
* @param array $validData The validated data.
*
* @return void
*
* @since 11.1
*/
protected function postSaveHook(JModelLegacy $model, $validData = array())
{
return;
}
}

111
admin/controllers/ftps.php Normal file
View File

@ -0,0 +1,111 @@
<?php
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
__ __ _ _____ _ _ __ __ _ _ _
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
| |
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 10 of this MVC
@build 24th August, 2017
@created 23rd August, 2017
@package Component Builder
@subpackage ftps.php
@author Llewellyn van der Merwe <http://vdm.bz/component-builder>
@copyright Copyright (C) 2015. All Rights Reserved
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
Builds Complex Joomla Components
/-----------------------------------------------------------------------------------------------------------------------------*/
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
// import Joomla controlleradmin library
jimport('joomla.application.component.controlleradmin');
/**
* Ftps Controller
*/
class ComponentbuilderControllerFtps extends JControllerAdmin
{
protected $text_prefix = 'COM_COMPONENTBUILDER_FTPS';
/**
* Proxy for getModel.
* @since 2.5
*/
public function getModel($name = 'Ftp', $prefix = 'ComponentbuilderModel', $config = array())
{
$model = parent::getModel($name, $prefix, array('ignore_request' => true));
return $model;
}
public function exportData()
{
// Check for request forgeries
JSession::checkToken() or die(JText::_('JINVALID_TOKEN'));
// check if export is allowed for this user.
$user = JFactory::getUser();
if ($user->authorise('ftp.export', 'com_componentbuilder') && $user->authorise('core.export', 'com_componentbuilder'))
{
// Get the input
$input = JFactory::getApplication()->input;
$pks = $input->post->get('cid', array(), 'array');
// Sanitize the input
JArrayHelper::toInteger($pks);
// Get the model
$model = $this->getModel('Ftps');
// get the data to export
$data = $model->getExportData($pks);
if (ComponentbuilderHelper::checkArray($data))
{
// now set the data to the spreadsheet
$date = JFactory::getDate();
ComponentbuilderHelper::xls($data,'Ftps_'.$date->format('jS_F_Y'),'Ftps exported ('.$date->format('jS F, Y').')','ftps');
}
}
// Redirect to the list screen with error.
$message = JText::_('COM_COMPONENTBUILDER_EXPORT_FAILED');
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=ftps', false), $message, 'error');
return;
}
public function importData()
{
// Check for request forgeries
JSession::checkToken() or die(JText::_('JINVALID_TOKEN'));
// check if import is allowed for this user.
$user = JFactory::getUser();
if ($user->authorise('ftp.import', 'com_componentbuilder') && $user->authorise('core.import', 'com_componentbuilder'))
{
// Get the import model
$model = $this->getModel('Ftps');
// get the headers to import
$headers = $model->getExImPortHeaders();
if (ComponentbuilderHelper::checkObject($headers))
{
// Load headers to session.
$session = JFactory::getSession();
$headers = json_encode($headers);
$session->set('ftp_VDM_IMPORTHEADERS', $headers);
$session->set('backto_VDM_IMPORT', 'ftps');
$session->set('dataType_VDM_IMPORTINTO', 'ftp');
// Redirect to import view.
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_SELECT_FILE_FOR_FTPS');
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=import', false), $message);
return;
}
}
// Redirect to the list screen with error.
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_FAILED');
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=ftps', false), $message, 'error');
return;
}
}

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.4.1
@build 1st April, 2017
@version 2.5.6
@build 6th October, 2017
@created 30th April, 2015
@package Component Builder
@subpackage help.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.4.1
@build 1st April, 2017
@version 2.5.6
@build 6th October, 2017
@created 30th April, 2015
@package Component Builder
@subpackage import.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.4.1
@build 1st April, 2017
@version 2.5.6
@build 6th October, 2017
@created 30th April, 2015
@package Component Builder
@subpackage import_joomla_components.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 311 of this MVC
@build 1st April, 2017
@version @update number 385 of this MVC
@build 6th October, 2017
@created 6th May, 2015
@package Component Builder
@subpackage joomla_component.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 311 of this MVC
@build 1st April, 2017
@version @update number 385 of this MVC
@build 6th October, 2017
@created 6th May, 2015
@package Component Builder
@subpackage joomla_components.php
@ -114,8 +114,8 @@ class ComponentbuilderControllerJoomla_components extends JControllerAdmin
// Check for request forgeries
JSession::checkToken() or die(JText::_('JINVALID_TOKEN'));
// check if import is allowed for this user.
$user = JFactory::getUser();
if ($user->authorise('joomla_component.import', 'com_componentbuilder') && $user->authorise('core.import', 'com_componentbuilder'))
$model->user = JFactory::getUser();
if ($model->user->authorise('joomla_component.import', 'com_componentbuilder') && $model->user->authorise('core.import', 'com_componentbuilder'))
{
$session = JFactory::getSession();
$session->set('backto_VDM_IMPORT', 'joomla_components');
@ -135,9 +135,11 @@ class ComponentbuilderControllerJoomla_components extends JControllerAdmin
{
// Check for request forgeries
JSession::checkToken() or die(JText::_('JINVALID_TOKEN'));
// Get the model
$model = $this->getModel('Joomla_components');
// check if export is allowed for this user.
$user = JFactory::getUser();
if ($user->authorise('joomla_component.export', 'com_componentbuilder') && $user->authorise('core.export', 'com_componentbuilder'))
$model->user = JFactory::getUser();
if ($model->user->authorise('joomla_component.export', 'com_componentbuilder') && $model->user->authorise('core.export', 'com_componentbuilder'))
{
// Get the input
$input = JFactory::getApplication()->input;
@ -152,8 +154,6 @@ class ComponentbuilderControllerJoomla_components extends JControllerAdmin
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=joomla_components', false), $message, 'error');
return;
}
// Get the model
$model = $this->getModel('Joomla_components');
// set auto loader
ComponentbuilderHelper::autoLoader('smart');
// get the data to export
@ -239,4 +239,154 @@ class ComponentbuilderControllerJoomla_components extends JControllerAdmin
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=joomla_components', false), $message, 'error');
return;
}
public function backup()
{
// get params
if (!isset($this->params) || !ComponentbuilderHelper::checkObject($this->params))
{
$this->params = JComponentHelper::getParams('com_componentbuilder');
}
// get all component IDs to backup
$pks = componentbuilderHelper::getComponentIDs();
// Get the model
$model = componentbuilderHelper::getModel('joomla_components', JPATH_ADMINISTRATOR . '/components/com_componentbuilder');
// set user
$model->user = $this->getApiUser();
// make sure to set active type to backup
$model->activeType = 'manualBackup';
// set auto loader
ComponentbuilderHelper::autoLoader('smart');
// manual backup message
$backupNotice = array();
// get the data to export
if (ComponentbuilderHelper::checkArray($pks) && $model->getSmartExport($pks))
{
$backupNotice[] = JText::_('COM_COMPONENTBUILDER_BACKUP_WAS_DONE_SUCCESSFULLY');
$backupNoticeStatus = 'Success';
// set the key string
if (componentbuilderHelper::checkString($model->key) && strlen($model->key) == 32)
{
$textNotice = array();
$keyNotice = '<h1>' . JText::sprintf('COM_COMPONENTBUILDER_THE_PACKAGE_KEY_IS_CODESCODE', $model->key) . '</h1>';
$textNotice[] = JText::sprintf('COM_COMPONENTBUILDER_THE_PACKAGE_KEY_IS_S', $model->key);
$keyNotice .= JText::_('COM_COMPONENTBUILDER_YOUR_DATA_IS_ENCRYPTED_WITH_A_AES_ONE_HUNDRED_AND_TWENTY_EIGHT_BIT_ENCRYPTION_USING_THE_ABOVE_THIRTY_TWO_CHARACTER_KEY_WITHOUT_THIS_KEY_IT_WILL_TAKE_THE_CURRENT_TECHNOLOGY_WITH_A_BRUTE_FORCE_ATTACK_METHOD_MORE_THEN_A_HREFHTTPRANDOMIZECOMHOWLONGTOHACKPASS_TARGET_BLANK_TITLEHOW_LONG_TO_HACK_PASSSEVEN_HUNDRED_ZERO_ZERO_ZERO_ZERO_ZERO_ZERO_ZERO_ZERO_ZERO_ZEROA_YEARS_TO_CRACK_THEORETICALLY_UNLESS_THEY_HAVE_THIS_KEY_ABOVE_SO_DO_KEEP_IT_SAFE') . '<br />';
// set the package owner info
if ((isset($model->info['getKeyFrom']['company']) && componentbuilderHelper::checkString($model->info['getKeyFrom']['company'])) || (isset($model->info['getKeyFrom']['owner']) && componentbuilderHelper::checkString($model->info['getKeyFrom']['owner'])))
{
$ownerDetails = '<h2>' . JText::_('COM_COMPONENTBUILDER_PACKAGE_OWNER_DETAILS') . '</h2>';
$textNotice[] = '# ' . JText::_('COM_COMPONENTBUILDER_PACKAGE_OWNER_DETAILS');
$ownerDetails .= '<ul>';
if (isset($model->info['getKeyFrom']['company']) && componentbuilderHelper::checkString($model->info['getKeyFrom']['company']))
{
$ownerDetails .= '<li>' . JText::sprintf('COM_COMPONENTBUILDER_EMCOMPANYEM_BSB', $model->info['getKeyFrom']['company']) . '</li>';
$textNotice[] = '- ' . JText::sprintf('COM_COMPONENTBUILDER_COMPANY_S', $model->info['getKeyFrom']['company']);
}
// add value only if set
if (isset($model->info['getKeyFrom']['owner']) && componentbuilderHelper::checkString($model->info['getKeyFrom']['owner']))
{
$ownerDetails .= '<li>' . JText::sprintf('COM_COMPONENTBUILDER_EMOWNEREM_BSB', $model->info['getKeyFrom']['owner']) . '</li>';
$textNotice[] = '- ' . JText::sprintf('COM_COMPONENTBUILDER_OWNER_S', $model->info['getKeyFrom']['owner']);
}
// add value only if set
if (isset($model->info['getKeyFrom']['website']) && componentbuilderHelper::checkString($model->info['getKeyFrom']['website']))
{
$ownerDetails .= '<li>' . JText::sprintf('COM_COMPONENTBUILDER_EMWEBSITEEM_BSB', $model->info['getKeyFrom']['website']) . '</li>';
$textNotice[] = '- ' . JText::sprintf('COM_COMPONENTBUILDER_WEBSITE_S', $model->info['getKeyFrom']['website']);
}
// add value only if set
if (isset($model->info['getKeyFrom']['email']) && componentbuilderHelper::checkString($model->info['getKeyFrom']['email']))
{
$ownerDetails .= '<li>' . JText::sprintf('COM_COMPONENTBUILDER_EMEMAILEM_BSB', $model->info['getKeyFrom']['email']) . '</li>';
$textNotice[] = '- ' . JText::sprintf('COM_COMPONENTBUILDER_EMAIL_S', $model->info['getKeyFrom']['email']);
}
// add value only if set
if (isset($model->info['getKeyFrom']['license']) && componentbuilderHelper::checkString($model->info['getKeyFrom']['license']))
{
$ownerDetails .= '<li>' . JText::sprintf('COM_COMPONENTBUILDER_EMLICENSEEM_BSB', $model->info['getKeyFrom']['license']) . '</li>';
$textNotice[] = '- ' . JText::sprintf('COM_COMPONENTBUILDER_LICENSE_S', $model->info['getKeyFrom']['license']);
}
// add value only if set
if (isset($model->info['getKeyFrom']['copyright']) && componentbuilderHelper::checkString($model->info['getKeyFrom']['copyright']))
{
$ownerDetails .= '<li>' . JText::sprintf('COM_COMPONENTBUILDER_EMCOPYRIGHTEM_BSB', $model->info['getKeyFrom']['copyright']) . '</li>';
$textNotice[] = '- ' . JText::sprintf('COM_COMPONENTBUILDER_COPYRIGHT_S', $model->info['getKeyFrom']['copyright']);
}
$ownerDetails .= '</ul>';
$backupNotice[] = JText::_('COM_COMPONENTBUILDER_OWNER_DETAILS_WAS_SET');
}
else
{
$ownerDetails = '<h2>' . JText::_('COM_COMPONENTBUILDER_PACKAGE_OWNER_NOT_SET') . '</h2>';
$textNotice[] = '# ' . JText::_('COM_COMPONENTBUILDER_PACKAGE_OWNER_DETAILS');
$ownerDetails .= JText::_('COM_COMPONENTBUILDER_TO_CHANGE_THE_PACKAGE_OWNER_DEFAULTS_OPEN_THE_BJCB_GLOBAL_OPTIONSB_GO_TO_THE_BCOMPANYB_TAB_AND_ADD_THE_CORRECT_COMPANY_DETAILS_THERE') . '<br />';
$textNotice[] = JText::_('COM_COMPONENTBUILDER_TO_CHANGE_THE_PACKAGE_OWNER_DEFAULTS_OPEN_THE_JCB_GLOBAL_OPTIONS_GO_TO_THE_COMPANY_TAB_AND_ADD_THE_CORRECT_COMPANY_DETAILS_THERE');
$ownerDetails .= '<h3>' . JText::_('COM_COMPONENTBUILDER_YOU_SHOULD_ADD_THE_CORRECT_OWNER_DETAILS') . '</h3>';
$textNotice[] = '## ' . JText::_('COM_COMPONENTBUILDER_YOU_SHOULD_ADD_THE_CORRECT_OWNER_DETAILS');
$ownerDetails .= JText::_('COM_COMPONENTBUILDER_SINCE_THE_OWNER_DETAILS_ARE_DISPLAYED_DURING_BIMPORT_PROCESSB_BEFORE_ADDING_THE_KEY_THIS_WAY_IF_THE_USERDEV_BDOES_NOTB_HAVE_THE_KEY_THEY_CAN_SEE_BWHERE_TO_GET_ITB') . '<br />';
$textNotice[] = JText::_('COM_COMPONENTBUILDER_SINCE_THE_OWNER_DETAILS_ARE_DISPLAYED_DURING_IMPORT_PROCESS_BEFORE_ADDING_THE_KEY_THIS_WAY_IF_THE_USERDEV_DOES_NOT_HAVE_THE_KEY_THEY_CAN_SEE_WHERE_TO_GET_IT');
$backupNotice[] = JText::_('COM_COMPONENTBUILDER_CHECK_YOUR_OWNER_DETAILS_IT_HAS_NOT_BEEN_SET_OPEN_THE_JCB_GLOBAL_OPTIONS_GO_TO_THE_COMPANY_TAB_AND_ADD_THE_CORRECT_COMPANY_DETAILS_THERE');
}
}
else
{
$keyNotice = '<h1>' . JText::_('COM_COMPONENTBUILDER_THIS_PACKAGE_HAS_NO_KEY') . '</h1>';
$textNotice[] = '# ' . JText::_('COM_COMPONENTBUILDER_THIS_PACKAGE_HAS_NO_KEY');
$ownerDetails = JText::_('COM_COMPONENTBUILDER_THAT_MEANS_ANYONE_WHO_HAS_THIS_PACKAGE_CAN_INSTALL_IT_INTO_JCB_TO_ADD_AN_EXPORT_KEY_SIMPLY_OPEN_THE_COMPONENT_GO_TO_THE_TAB_CALLED_BSETTINGSB_BOTTOM_RIGHT_THERE_IS_A_FIELD_CALLED_BEXPORT_KEYB') . '<br />';
$textNotice[] = JText::_('COM_COMPONENTBUILDER_THAT_MEANS_ANYONE_WHO_HAS_THIS_PACKAGE_CAN_INSTALL_IT_INTO_JCB_TO_ADD_AN_EXPORT_KEY_SIMPLY_OPEN_THE_COMPONENT_GO_TO_THE_TAB_CALLED_SETTINGS_BOTTOM_RIGHT_THERE_IS_A_FIELD_CALLED_EXPORT_KEY');
$backupNotice[] = JText::_('COM_COMPONENTBUILDER_NO_KEYS_WERE_FOUND_TO_ADD_AN_EXPORT_KEY_SIMPLY_OPEN_THE_COMPONENT_GO_TO_THE_TAB_CALLED_SETTINGS_BOTTOM_RIGHT_THERE_IS_A_FIELD_CALLED_EXPORT_KEY');
}
// get email
if ($email = $this->params->get('backup_email', null))
{
// plain text
$plainText = implode("\n", $textNotice);
// set hash to track changes
$hashTracker = md5($plainText);
if (ComponentbuilderHelper::newHash($hashTracker))
{
// Build final massage.
$message = $keyNotice . $ownerDetails . '<br /><small>HASH: ' . $hashTracker . '</small>';
// set the subject
$subject = JText::_('COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BUILDER_BACKUP_KEY');
// email the message
componentbuilderEmail::send($email, $subject, componentbuilderEmail::setTableBody($message, $subject), $plainText, 1);
$backupNotice[] = JText::_('COM_COMPONENTBUILDER_EMAIL_WITH_THE_NEW_KEY_WAS_SEND');
}
else
{
$backupNotice[] = JText::_('COM_COMPONENTBUILDER_KEY_HAS_NOT_CHANGED');
}
}
}
else
{
$backupNotice[] = JText::_('COM_COMPONENTBUILDER_BACKUP_FAILED_PLEASE_TRY_AGAIN_IF_THE_ERROR_CONTINUE_PLEASE_CONTACT_YOUR_SYSTEM_ADMINISTRATOR');
$backupNoticeStatus = 'Error';
if (componentbuilderHelper::checkString($model->packagePath))
{
// clear all if not successful
ComponentbuilderHelper::removeFolder($model->packagePath);
}
if (componentbuilderHelper::checkString($model->zipPath))
{
// clear all if not successful
JFile::delete($model->zipPath);
}
}
// quite only if auto backup (adding this script from custom code :)
if ('backup' === 'manualBackup')
{
echo "# " . $backupNoticeStatus . "\n" .implode("\n", $backupNotice);
jexit();
}
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=joomla_components', false), implode("<br />", $backupNotice), $backupNoticeStatus);
return;
}
protected function getApiUser()
{
// admin area does not have API user, only front-end (so we fallback on login user)
return JFactory::getUser();
}
}

View File

@ -0,0 +1,326 @@
<?php
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
__ __ _ _____ _ _ __ __ _ _ _
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
| |
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 3 of this MVC
@build 3rd April, 2017
@created 3rd April, 2017
@package Component Builder
@subpackage language.php
@author Llewellyn van der Merwe <http://vdm.bz/component-builder>
@copyright Copyright (C) 2015. All Rights Reserved
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
Builds Complex Joomla Components
/-----------------------------------------------------------------------------------------------------------------------------*/
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
// import Joomla controllerform library
jimport('joomla.application.component.controllerform');
/**
* Language Controller
*/
class ComponentbuilderControllerLanguage extends JControllerForm
{
/**
* Current or most recently performed task.
*
* @var string
* @since 12.2
* @note Replaces _task.
*/
protected $task;
public function __construct($config = array())
{
$this->view_list = 'Languages'; // safeguard for setting the return view listing to the main view.
parent::__construct($config);
}
/**
* Method override to check if you can add a new record.
*
* @param array $data An array of input data.
*
* @return boolean
*
* @since 1.6
*/
protected function allowAdd($data = array())
{
// Access check.
$access = JFactory::getUser()->authorise('language.access', 'com_componentbuilder');
if (!$access)
{
return false;
}
// In the absense of better information, revert to the component permissions.
return JFactory::getUser()->authorise('language.create', $this->option);
}
/**
* Method override to check if you can edit an existing record.
*
* @param array $data An array of input data.
* @param string $key The name of the key for the primary key.
*
* @return boolean
*
* @since 1.6
*/
protected function allowEdit($data = array(), $key = 'id')
{
// get user object.
$user = JFactory::getUser();
// get record id.
$recordId = (int) isset($data[$key]) ? $data[$key] : 0;
// Access check.
$access = ($user->authorise('language.access', 'com_componentbuilder.language.' . (int) $recordId) && $user->authorise('language.access', 'com_componentbuilder'));
if (!$access)
{
return false;
}
if ($recordId)
{
// The record has been set. Check the record permissions.
$permission = $user->authorise('language.edit', 'com_componentbuilder.language.' . (int) $recordId);
if (!$permission)
{
if ($user->authorise('language.edit.own', 'com_componentbuilder.language.' . $recordId))
{
// Now test the owner is the user.
$ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0;
if (empty($ownerId))
{
// Need to do a lookup from the model.
$record = $this->getModel()->getItem($recordId);
if (empty($record))
{
return false;
}
$ownerId = $record->created_by;
}
// If the owner matches 'me' then allow.
if ($ownerId == $user->id)
{
if ($user->authorise('language.edit.own', 'com_componentbuilder'))
{
return true;
}
}
}
return false;
}
}
// Since there is no permission, revert to the component permissions.
return $user->authorise('language.edit', $this->option);
}
/**
* Gets the URL arguments to append to an item redirect.
*
* @param integer $recordId The primary key id for the item.
* @param string $urlVar The name of the URL variable for the id.
*
* @return string The arguments to append to the redirect URL.
*
* @since 12.2
*/
protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id')
{
$tmpl = $this->input->get('tmpl');
$layout = $this->input->get('layout', 'edit', 'string');
$ref = $this->input->get('ref', 0, 'string');
$refid = $this->input->get('refid', 0, 'int');
// Setup redirect info.
$append = '';
if ($refid)
{
$append .= '&ref='.(string)$ref.'&refid='.(int)$refid;
}
elseif ($ref)
{
$append .= '&ref='.(string)$ref;
}
if ($tmpl)
{
$append .= '&tmpl=' . $tmpl;
}
if ($layout)
{
$append .= '&layout=' . $layout;
}
if ($recordId)
{
$append .= '&' . $urlVar . '=' . $recordId;
}
return $append;
}
/**
* Method to run batch operations.
*
* @param object $model The model.
*
* @return boolean True if successful, false otherwise and internal error is set.
*
* @since 2.5
*/
public function batch($model = null)
{
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
// Set the model
$model = $this->getModel('Language', '', array());
// Preset the redirect
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=languages' . $this->getRedirectToListAppend(), false));
return parent::batch($model);
}
/**
* Method to cancel an edit.
*
* @param string $key The name of the primary key of the URL variable.
*
* @return boolean True if access level checks pass, false otherwise.
*
* @since 12.2
*/
public function cancel($key = null)
{
// get the referal details
$this->ref = $this->input->get('ref', 0, 'word');
$this->refid = $this->input->get('refid', 0, 'int');
$cancel = parent::cancel($key);
if ($cancel)
{
if ($this->refid)
{
$redirect = '&view='.(string)$this->ref.'&layout=edit&id='.(int)$this->refid;
// Redirect to the item screen.
$this->setRedirect(
JRoute::_(
'index.php?option=' . $this->option . $redirect, false
)
);
}
elseif ($this->ref)
{
$redirect = '&view='.(string)$this->ref;
// Redirect to the list screen.
$this->setRedirect(
JRoute::_(
'index.php?option=' . $this->option . $redirect, false
)
);
}
}
else
{
// Redirect to the items screen.
$this->setRedirect(
JRoute::_(
'index.php?option=' . $this->option . '&view=' . $this->view_list, false
)
);
}
return $cancel;
}
/**
* Method to save a record.
*
* @param string $key The name of the primary key of the URL variable.
* @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions).
*
* @return boolean True if successful, false otherwise.
*
* @since 12.2
*/
public function save($key = null, $urlVar = null)
{
// get the referal details
$this->ref = $this->input->get('ref', 0, 'word');
$this->refid = $this->input->get('refid', 0, 'int');
if ($this->ref || $this->refid)
{
// to make sure the item is checkedin on redirect
$this->task = 'save';
}
$saved = parent::save($key, $urlVar);
if ($this->refid && $saved)
{
$redirect = '&view='.(string)$this->ref.'&layout=edit&id='.(int)$this->refid;
// Redirect to the item screen.
$this->setRedirect(
JRoute::_(
'index.php?option=' . $this->option . $redirect, false
)
);
}
elseif ($this->ref && $saved)
{
$redirect = '&view='.(string)$this->ref;
// Redirect to the list screen.
$this->setRedirect(
JRoute::_(
'index.php?option=' . $this->option . $redirect, false
)
);
}
return $saved;
}
/**
* Function that allows child controller access to model data
* after the data has been saved.
*
* @param JModel &$model The data model object.
* @param array $validData The validated data.
*
* @return void
*
* @since 11.1
*/
protected function postSaveHook(JModelLegacy $model, $validData = array())
{
return;
}
}

View File

@ -0,0 +1,326 @@
<?php
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
__ __ _ _____ _ _ __ __ _ _ _
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
| |
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 43 of this MVC
@build 16th September, 2017
@created 3rd April, 2017
@package Component Builder
@subpackage language_translation.php
@author Llewellyn van der Merwe <http://vdm.bz/component-builder>
@copyright Copyright (C) 2015. All Rights Reserved
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
Builds Complex Joomla Components
/-----------------------------------------------------------------------------------------------------------------------------*/
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
// import Joomla controllerform library
jimport('joomla.application.component.controllerform');
/**
* Language_translation Controller
*/
class ComponentbuilderControllerLanguage_translation extends JControllerForm
{
/**
* Current or most recently performed task.
*
* @var string
* @since 12.2
* @note Replaces _task.
*/
protected $task;
public function __construct($config = array())
{
$this->view_list = 'Language_translations'; // safeguard for setting the return view listing to the main view.
parent::__construct($config);
}
/**
* Method override to check if you can add a new record.
*
* @param array $data An array of input data.
*
* @return boolean
*
* @since 1.6
*/
protected function allowAdd($data = array())
{
// Access check.
$access = JFactory::getUser()->authorise('language_translation.access', 'com_componentbuilder');
if (!$access)
{
return false;
}
// In the absense of better information, revert to the component permissions.
return JFactory::getUser()->authorise('language_translation.create', $this->option);
}
/**
* Method override to check if you can edit an existing record.
*
* @param array $data An array of input data.
* @param string $key The name of the key for the primary key.
*
* @return boolean
*
* @since 1.6
*/
protected function allowEdit($data = array(), $key = 'id')
{
// get user object.
$user = JFactory::getUser();
// get record id.
$recordId = (int) isset($data[$key]) ? $data[$key] : 0;
// Access check.
$access = ($user->authorise('language_translation.access', 'com_componentbuilder.language_translation.' . (int) $recordId) && $user->authorise('language_translation.access', 'com_componentbuilder'));
if (!$access)
{
return false;
}
if ($recordId)
{
// The record has been set. Check the record permissions.
$permission = $user->authorise('language_translation.edit', 'com_componentbuilder.language_translation.' . (int) $recordId);
if (!$permission)
{
if ($user->authorise('language_translation.edit.own', 'com_componentbuilder.language_translation.' . $recordId))
{
// Now test the owner is the user.
$ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0;
if (empty($ownerId))
{
// Need to do a lookup from the model.
$record = $this->getModel()->getItem($recordId);
if (empty($record))
{
return false;
}
$ownerId = $record->created_by;
}
// If the owner matches 'me' then allow.
if ($ownerId == $user->id)
{
if ($user->authorise('language_translation.edit.own', 'com_componentbuilder'))
{
return true;
}
}
}
return false;
}
}
// Since there is no permission, revert to the component permissions.
return $user->authorise('language_translation.edit', $this->option);
}
/**
* Gets the URL arguments to append to an item redirect.
*
* @param integer $recordId The primary key id for the item.
* @param string $urlVar The name of the URL variable for the id.
*
* @return string The arguments to append to the redirect URL.
*
* @since 12.2
*/
protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id')
{
$tmpl = $this->input->get('tmpl');
$layout = $this->input->get('layout', 'edit', 'string');
$ref = $this->input->get('ref', 0, 'string');
$refid = $this->input->get('refid', 0, 'int');
// Setup redirect info.
$append = '';
if ($refid)
{
$append .= '&ref='.(string)$ref.'&refid='.(int)$refid;
}
elseif ($ref)
{
$append .= '&ref='.(string)$ref;
}
if ($tmpl)
{
$append .= '&tmpl=' . $tmpl;
}
if ($layout)
{
$append .= '&layout=' . $layout;
}
if ($recordId)
{
$append .= '&' . $urlVar . '=' . $recordId;
}
return $append;
}
/**
* Method to run batch operations.
*
* @param object $model The model.
*
* @return boolean True if successful, false otherwise and internal error is set.
*
* @since 2.5
*/
public function batch($model = null)
{
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
// Set the model
$model = $this->getModel('Language_translation', '', array());
// Preset the redirect
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=language_translations' . $this->getRedirectToListAppend(), false));
return parent::batch($model);
}
/**
* Method to cancel an edit.
*
* @param string $key The name of the primary key of the URL variable.
*
* @return boolean True if access level checks pass, false otherwise.
*
* @since 12.2
*/
public function cancel($key = null)
{
// get the referal details
$this->ref = $this->input->get('ref', 0, 'word');
$this->refid = $this->input->get('refid', 0, 'int');
$cancel = parent::cancel($key);
if ($cancel)
{
if ($this->refid)
{
$redirect = '&view='.(string)$this->ref.'&layout=edit&id='.(int)$this->refid;
// Redirect to the item screen.
$this->setRedirect(
JRoute::_(
'index.php?option=' . $this->option . $redirect, false
)
);
}
elseif ($this->ref)
{
$redirect = '&view='.(string)$this->ref;
// Redirect to the list screen.
$this->setRedirect(
JRoute::_(
'index.php?option=' . $this->option . $redirect, false
)
);
}
}
else
{
// Redirect to the items screen.
$this->setRedirect(
JRoute::_(
'index.php?option=' . $this->option . '&view=' . $this->view_list, false
)
);
}
return $cancel;
}
/**
* Method to save a record.
*
* @param string $key The name of the primary key of the URL variable.
* @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions).
*
* @return boolean True if successful, false otherwise.
*
* @since 12.2
*/
public function save($key = null, $urlVar = null)
{
// get the referal details
$this->ref = $this->input->get('ref', 0, 'word');
$this->refid = $this->input->get('refid', 0, 'int');
if ($this->ref || $this->refid)
{
// to make sure the item is checkedin on redirect
$this->task = 'save';
}
$saved = parent::save($key, $urlVar);
if ($this->refid && $saved)
{
$redirect = '&view='.(string)$this->ref.'&layout=edit&id='.(int)$this->refid;
// Redirect to the item screen.
$this->setRedirect(
JRoute::_(
'index.php?option=' . $this->option . $redirect, false
)
);
}
elseif ($this->ref && $saved)
{
$redirect = '&view='.(string)$this->ref;
// Redirect to the list screen.
$this->setRedirect(
JRoute::_(
'index.php?option=' . $this->option . $redirect, false
)
);
}
return $saved;
}
/**
* Function that allows child controller access to model data
* after the data has been saved.
*
* @param JModel &$model The data model object.
* @param array $validData The validated data.
*
* @return void
*
* @since 11.1
*/
protected function postSaveHook(JModelLegacy $model, $validData = array())
{
return;
}
}

View File

@ -0,0 +1,111 @@
<?php
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
__ __ _ _____ _ _ __ __ _ _ _
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
| |
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 43 of this MVC
@build 16th September, 2017
@created 3rd April, 2017
@package Component Builder
@subpackage language_translations.php
@author Llewellyn van der Merwe <http://vdm.bz/component-builder>
@copyright Copyright (C) 2015. All Rights Reserved
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
Builds Complex Joomla Components
/-----------------------------------------------------------------------------------------------------------------------------*/
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
// import Joomla controlleradmin library
jimport('joomla.application.component.controlleradmin');
/**
* Language_translations Controller
*/
class ComponentbuilderControllerLanguage_translations extends JControllerAdmin
{
protected $text_prefix = 'COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS';
/**
* Proxy for getModel.
* @since 2.5
*/
public function getModel($name = 'Language_translation', $prefix = 'ComponentbuilderModel', $config = array())
{
$model = parent::getModel($name, $prefix, array('ignore_request' => true));
return $model;
}
public function exportData()
{
// Check for request forgeries
JSession::checkToken() or die(JText::_('JINVALID_TOKEN'));
// check if export is allowed for this user.
$user = JFactory::getUser();
if ($user->authorise('language_translation.export', 'com_componentbuilder') && $user->authorise('core.export', 'com_componentbuilder'))
{
// Get the input
$input = JFactory::getApplication()->input;
$pks = $input->post->get('cid', array(), 'array');
// Sanitize the input
JArrayHelper::toInteger($pks);
// Get the model
$model = $this->getModel('Language_translations');
// get the data to export
$data = $model->getExportData($pks);
if (ComponentbuilderHelper::checkArray($data))
{
// now set the data to the spreadsheet
$date = JFactory::getDate();
ComponentbuilderHelper::xls($data,'Language_translations_'.$date->format('jS_F_Y'),'Language translations exported ('.$date->format('jS F, Y').')','language translations');
}
}
// Redirect to the list screen with error.
$message = JText::_('COM_COMPONENTBUILDER_EXPORT_FAILED');
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=language_translations', false), $message, 'error');
return;
}
public function importData()
{
// Check for request forgeries
JSession::checkToken() or die(JText::_('JINVALID_TOKEN'));
// check if import is allowed for this user.
$user = JFactory::getUser();
if ($user->authorise('language_translation.import', 'com_componentbuilder') && $user->authorise('core.import', 'com_componentbuilder'))
{
// Get the import model
$model = $this->getModel('Language_translations');
// get the headers to import
$headers = $model->getExImPortHeaders();
if (ComponentbuilderHelper::checkObject($headers))
{
// Load headers to session.
$session = JFactory::getSession();
$headers = json_encode($headers);
$session->set('language_translation_VDM_IMPORTHEADERS', $headers);
$session->set('backto_VDM_IMPORT', 'language_translations');
$session->set('dataType_VDM_IMPORTINTO', 'language_translation');
// Redirect to import view.
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_SELECT_FILE_FOR_LANGUAGE_TRANSLATIONS');
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=import', false), $message);
return;
}
}
// Redirect to the list screen with error.
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_FAILED');
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=language_translations', false), $message, 'error');
return;
}
}

View File

@ -0,0 +1,111 @@
<?php
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
__ __ _ _____ _ _ __ __ _ _ _
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
| |
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 3 of this MVC
@build 3rd April, 2017
@created 3rd April, 2017
@package Component Builder
@subpackage languages.php
@author Llewellyn van der Merwe <http://vdm.bz/component-builder>
@copyright Copyright (C) 2015. All Rights Reserved
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
Builds Complex Joomla Components
/-----------------------------------------------------------------------------------------------------------------------------*/
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
// import Joomla controlleradmin library
jimport('joomla.application.component.controlleradmin');
/**
* Languages Controller
*/
class ComponentbuilderControllerLanguages extends JControllerAdmin
{
protected $text_prefix = 'COM_COMPONENTBUILDER_LANGUAGES';
/**
* Proxy for getModel.
* @since 2.5
*/
public function getModel($name = 'Language', $prefix = 'ComponentbuilderModel', $config = array())
{
$model = parent::getModel($name, $prefix, array('ignore_request' => true));
return $model;
}
public function exportData()
{
// Check for request forgeries
JSession::checkToken() or die(JText::_('JINVALID_TOKEN'));
// check if export is allowed for this user.
$user = JFactory::getUser();
if ($user->authorise('language.export', 'com_componentbuilder') && $user->authorise('core.export', 'com_componentbuilder'))
{
// Get the input
$input = JFactory::getApplication()->input;
$pks = $input->post->get('cid', array(), 'array');
// Sanitize the input
JArrayHelper::toInteger($pks);
// Get the model
$model = $this->getModel('Languages');
// get the data to export
$data = $model->getExportData($pks);
if (ComponentbuilderHelper::checkArray($data))
{
// now set the data to the spreadsheet
$date = JFactory::getDate();
ComponentbuilderHelper::xls($data,'Languages_'.$date->format('jS_F_Y'),'Languages exported ('.$date->format('jS F, Y').')','languages');
}
}
// Redirect to the list screen with error.
$message = JText::_('COM_COMPONENTBUILDER_EXPORT_FAILED');
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=languages', false), $message, 'error');
return;
}
public function importData()
{
// Check for request forgeries
JSession::checkToken() or die(JText::_('JINVALID_TOKEN'));
// check if import is allowed for this user.
$user = JFactory::getUser();
if ($user->authorise('language.import', 'com_componentbuilder') && $user->authorise('core.import', 'com_componentbuilder'))
{
// Get the import model
$model = $this->getModel('Languages');
// get the headers to import
$headers = $model->getExImPortHeaders();
if (ComponentbuilderHelper::checkObject($headers))
{
// Load headers to session.
$session = JFactory::getSession();
$headers = json_encode($headers);
$session->set('language_VDM_IMPORTHEADERS', $headers);
$session->set('backto_VDM_IMPORT', 'languages');
$session->set('dataType_VDM_IMPORTINTO', 'language');
// Redirect to import view.
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_SELECT_FILE_FOR_LANGUAGES');
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=import', false), $message);
return;
}
}
// Redirect to the list screen with error.
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_FAILED');
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=languages', false), $message, 'error');
return;
}
}

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 67 of this MVC
@build 1st April, 2017
@version @update number 81 of this MVC
@build 27th September, 2017
@created 18th May, 2015
@package Component Builder
@subpackage layout.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 67 of this MVC
@build 1st April, 2017
@version @update number 81 of this MVC
@build 27th September, 2017
@created 18th May, 2015
@package Component Builder
@subpackage layouts.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 51 of this MVC
@build 6th March, 2017
@version @update number 54 of this MVC
@build 27th September, 2017
@created 29th May, 2015
@package Component Builder
@subpackage site_view.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 51 of this MVC
@build 6th March, 2017
@version @update number 54 of this MVC
@build 27th September, 2017
@created 29th May, 2015
@package Component Builder
@subpackage site_views.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 16 of this MVC
@build 20th October, 2016
@version @update number 17 of this MVC
@build 27th September, 2017
@created 19th May, 2015
@package Component Builder
@subpackage snippet.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 16 of this MVC
@build 20th October, 2016
@version @update number 17 of this MVC
@build 27th September, 2017
@created 19th May, 2015
@package Component Builder
@subpackage snippets.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 40 of this MVC
@build 1st April, 2017
@version @update number 45 of this MVC
@build 27th September, 2017
@created 26th May, 2015
@package Component Builder
@subpackage template.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 40 of this MVC
@build 1st April, 2017
@version @update number 45 of this MVC
@build 27th September, 2017
@created 26th May, 2015
@package Component Builder
@subpackage templates.php

232
admin/custom/timeago.js Normal file
View File

@ -0,0 +1,232 @@
/**
* Timeago is a jQuery plugin that makes it easy to support automatically
* updating fuzzy timestamps (e.g. "4 minutes ago" or "about 1 day ago").
*
* @name timeago
* @version 1.5.4
* @requires jQuery v1.2.3+
* @author Ryan McGeary
* @license MIT License - http://www.opensource.org/licenses/mit-license.php
*
* For usage and examples, visit:
* http://timeago.yarp.com/
*
* Copyright (c) 2008-2017, Ryan McGeary (ryan -[at]- mcgeary [*dot*] org)
*/
(function (factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(['jquery'], factory);
} else if (typeof module === 'object' && typeof module.exports === 'object') {
factory(require('jquery'));
} else {
// Browser globals
factory(jQuery);
}
}(function ($) {
$.timeago = function(timestamp) {
if (timestamp instanceof Date) {
return inWords(timestamp);
} else if (typeof timestamp === "string") {
return inWords($.timeago.parse(timestamp));
} else if (typeof timestamp === "number") {
return inWords(new Date(timestamp));
} else {
return inWords($.timeago.datetime(timestamp));
}
};
var $t = $.timeago;
$.extend($.timeago, {
settings: {
refreshMillis: 60000,
allowPast: true,
allowFuture: false,
localeTitle: false,
cutoff: 0,
autoDispose: true,
strings: {
prefixAgo: null,
prefixFromNow: null,
suffixAgo: "ago",
suffixFromNow: "from now",
inPast: 'any moment now',
seconds: "less than a minute",
minute: "about a minute",
minutes: "%d minutes",
hour: "about an hour",
hours: "about %d hours",
day: "a day",
days: "%d days",
month: "about a month",
months: "%d months",
year: "about a year",
years: "%d years",
wordSeparator: " ",
numbers: []
}
},
inWords: function(distanceMillis) {
if (!this.settings.allowPast && ! this.settings.allowFuture) {
throw 'timeago allowPast and allowFuture settings can not both be set to false.';
}
var $l = this.settings.strings;
var prefix = $l.prefixAgo;
var suffix = $l.suffixAgo;
if (this.settings.allowFuture) {
if (distanceMillis < 0) {
prefix = $l.prefixFromNow;
suffix = $l.suffixFromNow;
}
}
if (!this.settings.allowPast && distanceMillis >= 0) {
return this.settings.strings.inPast;
}
var seconds = Math.abs(distanceMillis) / 1000;
var minutes = seconds / 60;
var hours = minutes / 60;
var days = hours / 24;
var years = days / 365;
function substitute(stringOrFunction, number) {
var string = $.isFunction(stringOrFunction) ? stringOrFunction(number, distanceMillis) : stringOrFunction;
var value = ($l.numbers && $l.numbers[number]) || number;
return string.replace(/%d/i, value);
}
var words = seconds < 45 && substitute($l.seconds, Math.round(seconds)) ||
seconds < 90 && substitute($l.minute, 1) ||
minutes < 45 && substitute($l.minutes, Math.round(minutes)) ||
minutes < 90 && substitute($l.hour, 1) ||
hours < 24 && substitute($l.hours, Math.round(hours)) ||
hours < 42 && substitute($l.day, 1) ||
days < 30 && substitute($l.days, Math.round(days)) ||
days < 45 && substitute($l.month, 1) ||
days < 365 && substitute($l.months, Math.round(days / 30)) ||
years < 1.5 && substitute($l.year, 1) ||
substitute($l.years, Math.round(years));
var separator = $l.wordSeparator || "";
if ($l.wordSeparator === undefined) { separator = " "; }
return $.trim([prefix, words, suffix].join(separator));
},
parse: function(iso8601) {
var s = $.trim(iso8601);
s = s.replace(/\.\d+/,""); // remove milliseconds
s = s.replace(/-/,"/").replace(/-/,"/");
s = s.replace(/T/," ").replace(/Z/," UTC");
s = s.replace(/([\+\-]\d\d)\:?(\d\d)/," $1$2"); // -04:00 -> -0400
s = s.replace(/([\+\-]\d\d)$/," $100"); // +09 -> +0900
return new Date(s);
},
datetime: function(elem) {
var iso8601 = $t.isTime(elem) ? $(elem).attr("datetime") : $(elem).attr("title");
return $t.parse(iso8601);
},
isTime: function(elem) {
// jQuery's `is()` doesn't play well with HTML5 in IE
return $(elem).get(0).tagName.toLowerCase() === "time"; // $(elem).is("time");
}
});
// functions that can be called via $(el).timeago('action')
// init is default when no action is given
// functions are called with context of a single element
var functions = {
init: function() {
functions.dispose.call(this);
var refresh_el = $.proxy(refresh, this);
refresh_el();
var $s = $t.settings;
if ($s.refreshMillis > 0) {
this._timeagoInterval = setInterval(refresh_el, $s.refreshMillis);
}
},
update: function(timestamp) {
var date = (timestamp instanceof Date) ? timestamp : $t.parse(timestamp);
$(this).data('timeago', { datetime: date });
if ($t.settings.localeTitle) {
$(this).attr("title", date.toLocaleString());
}
refresh.apply(this);
},
updateFromDOM: function() {
$(this).data('timeago', { datetime: $t.parse( $t.isTime(this) ? $(this).attr("datetime") : $(this).attr("title") ) });
refresh.apply(this);
},
dispose: function () {
if (this._timeagoInterval) {
window.clearInterval(this._timeagoInterval);
this._timeagoInterval = null;
}
}
};
$.fn.timeago = function(action, options) {
var fn = action ? functions[action] : functions.init;
if (!fn) {
throw new Error("Unknown function name '"+ action +"' for timeago");
}
// each over objects here and call the requested function
this.each(function() {
fn.call(this, options);
});
return this;
};
function refresh() {
var $s = $t.settings;
//check if it's still visible
if ($s.autoDispose && !$.contains(document.documentElement,this)) {
//stop if it has been removed
$(this).timeago("dispose");
return this;
}
var data = prepareData(this);
if (!isNaN(data.datetime)) {
if ( $s.cutoff === 0 || Math.abs(distance(data.datetime)) < $s.cutoff) {
$(this).text(inWords(data.datetime));
} else {
if ($(this).attr('title').length > 0) {
$(this).text($(this).attr('title'));
}
}
}
return this;
}
function prepareData(element) {
element = $(element);
if (!element.data("timeago")) {
element.data("timeago", { datetime: $t.datetime(element) });
var text = $.trim(element.text());
if ($t.settings.localeTitle) {
element.attr("title", element.data('timeago').datetime.toLocaleString());
} else if (text.length > 0 && !($t.isTime(element) && element.attr("title"))) {
element.attr("title", text);
}
}
return element.data("timeago");
}
function inWords(date) {
return $t.inWords(distance(date));
}
function distance(date) {
return (new Date().getTime() - date.getTime());
}
// fix for IE6 suckage
document.createElement("abbr");
document.createElement("time");
}));

View File

@ -54,7 +54,7 @@ class Compiler extends Infusion
// fixed pathes
protected $dynamicIntegration = false;
protected $backupPath = false;
protected $gitPath = false;
protected $repoPath = false;
protected $addCustomCodeAt = array();
/**
@ -76,9 +76,9 @@ class Compiler extends Infusion
$this->backupPath = $this->params->get('backup_folder_path', $this->tempPath).'/'.$this->componentBackupName.'.zip';
$this->dynamicIntegration = true;
}
if ($config['addGit'])
if ($config['addRepo'])
{
$this->gitPath = $this->params->get('git_folder_path', null);
$this->repoPath = $this->params->get('git_folder_path', null);
}
// remove site folder if not needed (TODO add check if custom script was moved to site folder then we must do a more complex cleanup here)
if ($this->removeSiteFolder)
@ -136,7 +136,7 @@ class Compiler extends Infusion
*/
private function setLine($nr)
{
if ($this->loadLineNr)
if ($this->debugLinenr)
{
return ' [Compiler '.$nr.']';
}
@ -152,9 +152,7 @@ class Compiler extends Infusion
protected function updateFiles()
{
if (isset($this->newFiles['static']) && ComponentbuilderHelper::checkArray($this->newFiles['static']) && isset($this->newFiles['dynamic']) && ComponentbuilderHelper::checkArray($this->newFiles['dynamic']))
{
// we don't update lang now since we will still posible add custom code
$langCheck = 'en-GB.com_'.$this->fileContentStatic['###component###'].'.';
{
// get the bom file
$bom = file_get_contents($this->bomPath);
// first we do the static files
@ -162,12 +160,6 @@ class Compiler extends Infusion
{
if (JFile::exists($static['path']))
{
// skip lang files and store for later
if (strpos($static['path'], $langCheck))
{
$this->langFiles[] = $static;
continue;
}
$this->fileContentStatic['###FILENAME###'] = $static['name'];
$php = '';
if (ComponentbuilderHelper::checkFileType($static['name'],'php'))
@ -252,7 +244,7 @@ class Compiler extends Infusion
protected function setUpdateServer()
{
// move the update server to host
if ($this->componentData->add_update_server && $this->componentData->update_server_target == 1 && isset($this->updateServerFileName) && $this->dynamicIntegration)
if ($this->componentData->add_update_server == 1 && $this->componentData->update_server_target == 1 && isset($this->updateServerFileName) && $this->dynamicIntegration)
{
$xml_update_server_path = $this->componentPath.'/'.$this->updateServerFileName.'.xml';
// make sure we have the correct file
@ -410,15 +402,15 @@ class Compiler extends Infusion
private function zipComponent()
{
// before we zip the component we first need to move it to the git folder if set
if (ComponentbuilderHelper::checkString($this->gitPath))
// before we zip the component we first need to move it to the repo folder if set
if (ComponentbuilderHelper::checkString($this->repoPath))
{
// set the git path
$this->gitPath = $this->gitPath.'/com_'.$this->componentData->sales_name.'__joomla_'.$this->joomlaVersion;
// set the repo path
$repoFullPath = $this->repoPath.'/com_'.$this->componentData->sales_name.'__joomla_'.$this->joomlaVersion;
// remove old data
$this->removeFolder($this->gitPath,true);
$this->removeFolder($repoFullPath, $this->componentData->toignore);
// set the new data
JFolder::copy($this->componentPath, $this->gitPath, '', true);
JFolder::copy($this->componentPath, $repoFullPath, '', true);
}
// the name of the zip file to create
$this->filepath = $this->tempPath.'/'.$this->componentFolderName.'.zip';
@ -431,8 +423,9 @@ class Compiler extends Infusion
{
JFile::copy($this->filepath, $this->backupPath);
}
// move to sales server host
if ($this->componentData->add_sales_server && $this->dynamicIntegration)
if ($this->componentData->add_sales_server == 1 && $this->dynamicIntegration)
{
// make sure we have the correct file
if (isset($this->componentData->sales_server_ftp))
@ -482,30 +475,31 @@ class Compiler extends Infusion
private function getFTP($clientInput)
{
$signature = md5($clientInput);
if (isset($this->FTP[$signature]) && $this->FTP[$signature] instanceof JClientFtp)
$s1GnAtnr3 = md5($clientInput);
if (isset($this->FTP[$s1GnAtnr3]) && $this->FTP[$s1GnAtnr3] instanceof JClientFtp)
{
return $this->FTP[$signature];
// return the FTP instance
return $this->FTP[$s1GnAtnr3];
}
else
{
// make sure we have a string and it is not default or empty
if (ComponentbuilderHelper::checkString($clientInput))
{
// turn into vars
parse_str($clientInput);
// turn into variables
parse_str($clientInput); // because of this I am using strand variable naming to avoid any collisions.
// set options
if (isset($options) && ComponentbuilderHelper::checkArray($options))
{
foreach ($options as $option => $value)
foreach ($options as $o__p0t1on => $vAln3)
{
if ('timeout' === $option)
if ('timeout' === $o__p0t1on)
{
$options[$option] = (int) $value;
$options[$o__p0t1on] = (int) $vAln3;
}
if ('type' === $option)
if ('type' === $o__p0t1on)
{
$options[$option] = (string) $value;
$options[$o__p0t1on] = (string) $vAln3;
}
}
}
@ -517,8 +511,9 @@ class Compiler extends Infusion
if (isset($host) && $host != 'HOSTNAME' && isset($port) && $port != 'PORT_INT' && isset($username) && $username != 'user@name.com' && isset($password) && $password != 'password')
{
// load for reuse
$this->FTP[$signature] = JClientFtp::getInstance($host, $port, $options, $username, $password);
return $this->FTP[$signature];
$this->FTP[$s1GnAtnr3] = JClientFtp::getInstance($host, $port, $options, $username, $password);
// return the FTP instance
return $this->FTP[$s1GnAtnr3];
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -359,7 +359,7 @@ class Structure extends Get
*/
private function setLine($nr)
{
if ($this->loadLineNr)
if ($this->debugLinenr)
{
return ' [Structure '.$nr.']';
}
@ -721,16 +721,19 @@ class Structure extends Get
*/
public function getLastModifiedDate($view)
{
if (isset($view['settings']->modified) && ComponentbuilderHelper::checkString($view['settings']->modified))
// first set the main date
if (isset($view['settings']->modified)
&& ComponentbuilderHelper::checkString($view['settings']->modified)
&& '0000-00-00 00:00:00' !== $view['settings']->modified)
{
// first set the main date
$date = strtotime($view['settings']->modified);
}
else
{
// first set the main date
// use todays date
$date = strtotime("now");
}
// search for the last modified date
if (isset($view['adminview']))
{
$id = $view['adminview'].'admin';
@ -741,7 +744,9 @@ class Structure extends Get
{
foreach ($view['settings']->fields as $field)
{
if (isset($field['settings']) && ComponentbuilderHelper::checkObject($field['settings']) && isset($field['settings']->modified))
if (isset($field['settings']) && ComponentbuilderHelper::checkObject($field['settings'])
&& isset($field['settings']->modified) && ComponentbuilderHelper::checkString($field['settings']->modified)
&& '0000-00-00 00:00:00' !== $field['settings']->modified)
{
$anotherDate = strtotime($field['settings']->modified);
if ($anotherDate > $date)
@ -759,7 +764,9 @@ class Structure extends Get
// now check if value has been set
if (!isset($this->lastModifiedDate[$id]))
{
if (isset($view['settings']->main_get->modified))
if (isset($view['settings']->main_get->modified)
&& ComponentbuilderHelper::checkString($view['settings']->main_get->modified)
&& '0000-00-00 00:00:00' !== $view['settings']->main_get->modified)
{
$anotherDate = strtotime($view['settings']->main_get->modified);
if ($anotherDate > $date)
@ -775,7 +782,9 @@ class Structure extends Get
// now check if value has been set
if (!isset($this->lastModifiedDate[$id]))
{
if (isset($view['settings']->main_get->modified))
if (isset($view['settings']->main_get->modified)
&& ComponentbuilderHelper::checkString($view['settings']->main_get->modified)
&& '0000-00-00 00:00:00' !== $view['settings']->main_get->modified)
{
$anotherDate = strtotime($view['settings']->main_get->modified);
if ($anotherDate > $date)
@ -801,14 +810,14 @@ class Structure extends Get
/**
* Set the Static File & Folder
*
* @param array $target The main target and name
*
* @param array $target The main target and name
* @param string $type The type in the target
* @param string $fileName The custom file name
* @param array $cofig to add more data to the files info
*
* @param array $cofig to add more data to the files info
*
* @return boolean
*
*
*/
public function buildDynamique($target, $type, $fileName = false, $config = false)
{
@ -1090,14 +1099,14 @@ class Structure extends Get
/**
* Remove folders with files
*
* @param string $dir The path to folder to remove
* @param boolean $git if there is a git folder in that must not be removed
* @param string $dir The path to folder to remove
* @param boolean $ignore The files and folders to ignore
*
* @return boolean True if all is removed
*
*/
protected function removeFolder($dir, $git = false)
protected function removeFolder($dir, $ignore = false)
{
return ComponentbuilderHelper::removeFolder($dir, $git);
return ComponentbuilderHelper::removeFolder($dir, $ignore);
}
}

View File

@ -61,6 +61,13 @@ class Fields extends Structure
*/
public $layoutBuilder = array();
/**
* used to fix the zero order
*
* @var array
*/
private $zeroOrderFix = array();
/**
* Site field data
*
@ -229,6 +236,13 @@ class Fields extends Structure
*/
public $jsonStringBuilder = array();
/**
* Json String Builder for return values to array
*
* @var array
*/
public $jsonItemBuilderArray = array();
/**
* Json Item Builder
*
@ -351,7 +365,7 @@ class Fields extends Structure
*/
private function setLine($nr)
{
if ($this->loadLineNr)
if ($this->debugLinenr)
{
return ' [Fields '.$nr.']';
}
@ -463,7 +477,6 @@ class Fields extends Structure
{
$dynamcfields .= $this->setDynamicField($field, $view, $view['settings']->type, $langView, $viewName, $listViewName, $spacerCounter, $this->placeholders, $dbkey, true);
}
// set the defautl fields
$fieldSet = array();
$fieldSet[] = '<fieldset name="details">';
@ -761,8 +774,8 @@ class Fields extends Structure
}
elseif ($this->defaultField($typeName, 'special'))
{
// set the repeatable field
if ($typeName === 'repeatable')
// set the repeatable field or subform field
if ($typeName === 'repeatable' || $typeName === 'subform')
{
if ($build)
{
@ -1026,6 +1039,93 @@ class Fields extends Structure
$fieldSet .= PHP_EOL."\t\t\t</fields>";
$fieldSet .= PHP_EOL."\t\t</field>";
}
// set the subform fields (it is a repeatable without the modal)
elseif ($typeName === 'subform')
{
// now add to the field set
$fieldSet .= PHP_EOL."\t\t<!--" . $this->setLine(__LINE__) . " " . ComponentbuilderHelper::safeString($name, 'F') . " Field. Type: " . ComponentbuilderHelper::safeString($typeName, 'F') . ". (joomla) -->";
$fieldSet .= PHP_EOL."\t\t<field";
$fieldsSet = array();
foreach ($fieldAttributes as $property => $value)
{
if ($property != 'fields')
{
$fieldSet .= PHP_EOL."\t\t\t" . $property . '="' . $value . '"';
}
}
$fieldSet .= ">";
$fieldSet .= PHP_EOL."\t\t\t" . '<form hidden="true" name="list_' . $fieldAttributes['name'] . '_modal" repeat="true">';
if (strpos($fieldAttributes['fields'], ',') !== false)
{
// mulitpal fields
$fieldsSets = (array) explode(',', $fieldAttributes['fields']);
}
elseif (is_numeric($fieldAttributes['fields']))
{
// single field
$fieldsSets[] = (int) $fieldAttributes['fields'];
}
// only continue if we have a field set
if (ComponentbuilderHelper::checkArray($fieldsSets))
{
foreach ($fieldsSets as $fieldId)
{
// get the field data
$fieldData = array();
$fieldData['settings'] = $this->getFieldData($fieldId, $viewName);
if (ComponentbuilderHelper::checkObject($fieldData['settings']))
{
$r_name = ComponentbuilderHelper::safeString($fieldData['settings']->name);
$r_typeName = ComponentbuilderHelper::safeString($fieldData['settings']->type_name);
$r_multiple = false;
$r_langLabel = '';
// add the tabs needed
$taber = "\t\t";
// get field values
$r_fieldValues = $this->setFieldAttributes($fieldData, $view, $r_name, $r_typeName, $r_multiple, $r_langLabel, $langView, $spacerCounter, $listViewName, $viewName, $placeholders, true);
// check if values were set
if (ComponentbuilderHelper::checkArray($r_fieldValues))
{
//reset options array
$r_optionArray = array();
if ($this->defaultField($r_typeName, 'option'))
{
// now add to the field set
$fieldSet .= $this->setField('option', $taber, $r_fieldValues, $r_name, $r_typeName, $langView, $viewName, $listViewName, $placeholders, $r_optionArray);
}
elseif ($this->defaultField($r_typeName, 'plain'))
{
// now add to the field set
$fieldSet .= $this->setField('plain', $taber, $r_fieldValues, $r_name, $r_typeName, $langView, $viewName, $listViewName, $placeholders, $r_optionArray);
}
elseif (ComponentbuilderHelper::checkArray($r_fieldValues['custom']))
{
// add to custom
$custom = $r_fieldValues['custom'];
unset($r_fieldValues['custom']);
// now add to the field set
$fieldSet .= $this->setField('custom', $taber, $r_fieldValues, $r_name, $r_typeName, $langView, $viewName, $listViewName, $placeholders, $r_optionArray);
// set lang (just incase)
$r_listLangName = $langView . '_' . ComponentbuilderHelper::safeString($r_name, 'U');
// add to lang array
$this->langContent[$this->lang][$r_listLangName] = ComponentbuilderHelper::safeString($r_name, 'W');
// if label was set use instead
if (ComponentbuilderHelper::checkString($r_langLabel))
{
$r_listLangName = $r_langLabel;
}
// set the custom array
$data = array('type' => $r_typeName, 'code' => $r_name, 'lang' => $r_listLangName, 'custom' => $custom);
// set the custom field file
$this->setCustomFieldTypeFile($data, $listViewName, $viewName);
}
}
}
}
}
$fieldSet .= PHP_EOL."\t\t\t</form>";
$fieldSet .= PHP_EOL."\t\t</field>";
}
}
elseif ($setType === 'custom')
{
@ -1067,6 +1167,26 @@ class Fields extends Structure
*/
public function setLayoutBuilder(&$viewName,&$tabName,&$name,&$field)
{
// first fix the zero order
// to insure it lands before all the other fields
// as zero is expected to behave
if ($field['order_edit'] == 0)
{
if (!isset($this->zeroOrderFix[$viewName]))
{
$this->zeroOrderFix[$viewName] = array();
}
if (!isset($this->zeroOrderFix[$viewName][(int) $field['tab']]))
{
$this->zeroOrderFix[$viewName][(int) $field['tab']] = -999;
}
else
{
$this->zeroOrderFix[$viewName][(int) $field['tab']]++;
}
$field['order_edit'] = $this->zeroOrderFix[$viewName][(int) $field['tab']];
}
// now build the layout
if (ComponentbuilderHelper::checkString($tabName) && $tabName != 'publishing')
{
$this->tabCounter[$viewName][(int) $field['tab']] = $tabName;
@ -1489,6 +1609,12 @@ class Fields extends Structure
{
$this->doNotEscape[$listViewName][] = $fieldAttributes['name'];
}
// check if we have display switch for dynamic placment
$display = ComponentbuilderHelper::getBetween($field['settings']->xml, 'display="', '"');
if (ComponentbuilderHelper::checkString($display))
{
$fieldAttributes['display'] = $display;
}
}
}
return $fieldAttributes;
@ -1670,6 +1796,8 @@ class Fields extends Structure
{
$this->queryBuilder[$viewName][$name]['default'] = 'EMPTY';
}
// to identify the field
$this->queryBuilder[$viewName][$name]['ID'] = $field['settings']->id;
$this->queryBuilder[$viewName][$name]['null_switch'] = $field['settings']->null_switch;
// set index types
if ($field['settings']->indexes == 1 && !in_array($field['settings']->datatype, $textKeys))
@ -1727,7 +1855,7 @@ class Fields extends Structure
}
}
// build the list values
if ($field['list'] == 1 && $typeName != 'repeatable')
if ($field['list'] == 1 && $typeName != 'repeatable' && $typeName != 'subform')
{
// load to list builder
$this->listBuilder[$listViewName][] = array(
@ -1763,7 +1891,7 @@ class Fields extends Structure
$this->intFieldsBuilder[$viewName] .= ',"' . $name . '"';
}
// set all dynamic field of this view
if ($typeName != 'category' && $typeName != 'repeatable' && !in_array($name, $this->defaultFields))
if ($typeName != 'category' && $typeName != 'repeatable' && $typeName != 'subform' && !in_array($name, $this->defaultFields))
{
if (!isset($this->dynamicfieldsBuilder[$viewName]))
{
@ -1788,9 +1916,9 @@ class Fields extends Structure
}
}
// set the custom builder
if (ComponentbuilderHelper::checkArray($custom) && $typeName != 'category' && $typeName != 'repeatable')
if (ComponentbuilderHelper::checkArray($custom) && $typeName != 'category' && $typeName != 'repeatable' && $typeName != 'subform')
{
$this->customBuilder[$listViewName][] = array('type' => $typeName, 'code' => $name, 'lang' => $listLangName, 'custom' => $custom);
$this->customBuilder[$listViewName][] = array('type' => $typeName, 'code' => $name, 'lang' => $listLangName, 'custom' => $custom, 'method' => $field['settings']->store);
// set the custom fields needed in content type data
if (!isset($this->customFieldLinksBuilder[$viewName]))
{
@ -1834,7 +1962,7 @@ class Fields extends Structure
$this->checkboxBuilder[$viewName][] = $name;
}
// setup checkboxes and other json items for this view
if (($typeName === 'checkboxes' || $multiple || $field['settings']->store != 0) && $typeName != 'tag')
if (($typeName === 'subform' || $typeName === 'checkboxes' || $multiple || $field['settings']->store != 0) && $typeName != 'tag')
{
switch ($field['settings']->store)
{
@ -1876,7 +2004,7 @@ class Fields extends Structure
}
// load the json list display fix
if ($field['list'] == 1 && $typeName != 'repeatable')
if ($field['list'] == 1 && $typeName != 'repeatable' && $typeName != 'subform')
{
if (ComponentbuilderHelper::checkArray($options))
{
@ -1887,6 +2015,12 @@ class Fields extends Structure
$this->getItemsMethodListStringFixBuilder[$viewName][] = array('name' => $name, 'type' => $typeName, 'translation' => false, 'custom' => $custom, 'method' => $field['settings']->store);
}
}
// if subform the values must revert to array
if ('subform' === $typeName)
{
$this->jsonItemBuilderArray[$viewName][] = $name;
}
}
// build the data for the export & import methods $typeName === 'repeatable' ||
if (($typeName === 'checkboxes' || $multiple || $field['settings']->store != 0) && !ComponentbuilderHelper::checkArray($options))
@ -1897,12 +2031,12 @@ class Fields extends Structure
// check if field should be added to uikit
$this->buildSiteFieldData($viewName, $name, 'uikit', $typeName);
// load the selection translation fix
if (ComponentbuilderHelper::checkArray($options) && $field['list'] == 1 && $typeName != 'repeatable')
if (ComponentbuilderHelper::checkArray($options) && $field['list'] == 1 && $typeName != 'repeatable' && $typeName != 'subform')
{
$this->selectionTranslationFixBuilder[$listViewName][$name] = $options;
}
// build the sort values
if ($field['sort'] == 1 && $field['list'] == 1 && (!$multiple && $typeName != 'checkbox' && $typeName != 'checkboxes' && $typeName != 'repeatable'))
if ($field['sort'] == 1 && $field['list'] == 1 && (!$multiple && $typeName != 'checkbox' && $typeName != 'checkboxes' && $typeName != 'repeatable' && $typeName != 'subform'))
{
$this->sortBuilder[$listViewName][] = array('type' => $typeName, 'code' => $name, 'lang' => $listLangName, 'custom' => $custom, 'options' => $options);
}
@ -1912,7 +2046,7 @@ class Fields extends Structure
$this->searchBuilder[$listViewName][] = array('type' => $typeName, 'code' => $name, 'custom' => $custom, 'list' => $field['list']);
}
// build the filter values
if ($field['filter'] == 1 && $field['list'] == 1 && (!$multiple && $typeName != 'checkbox' && $typeName != 'checkboxes' && $typeName != 'repeatable'))
if ($field['filter'] == 1 && $field['list'] == 1 && (!$multiple && $typeName != 'checkbox' && $typeName != 'checkboxes' && $typeName != 'repeatable' && $typeName != 'subform'))
{
$this->filterBuilder[$listViewName][] = array('type' => $typeName, 'code' => $name, 'lang' => $listLangName, 'database' => $viewName, 'function' => ComponentbuilderHelper::safeString($name, 'F'), 'custom' => $custom, 'options' => $options);
}
@ -2069,7 +2203,7 @@ class Fields extends Structure
'chromestyle', 'contenttype', 'databaseconnection', 'editors', 'email', 'file',
'filelist', 'folderlist', 'groupedlist', 'hidden', 'file', 'headertag', 'helpsite',
'imagelist', 'integer', 'language', 'list', 'media', 'menu', 'note', 'number', 'password',
'plugins', 'radio', 'repeatable', 'range', 'rules', 'sessionhandler', 'spacer', 'sql', 'tag',
'plugins', 'radio', 'repeatable', 'range', 'rules', 'subform', 'sessionhandler', 'spacer', 'sql', 'tag',
'tel', 'menuitem', 'meter', 'modulelayout', 'moduleorder', 'moduleposition', 'moduletag',
'templatestyle', 'text', 'textarea', 'timezone', 'url', 'user', 'usergroup'
),
@ -2090,7 +2224,7 @@ class Fields extends Structure
),
'special' => array(
'contentlanguage', 'groupedlist', 'moduleposition', 'plugin',
'repeatable', 'templatestyle'
'repeatable', 'templatestyle', 'subform'
)
);

File diff suppressed because it is too large Load Diff

View File

@ -61,7 +61,7 @@ class Infusion extends Interpretation
*/
private function setLine($nr)
{
if ($this->loadLineNr)
if ($this->debugLinenr)
{
return ' [Infusion '.$nr.']';
}
@ -143,16 +143,23 @@ class Infusion extends Interpretation
$this->setConfigFieldsets(1);
$this->lang = $keepLang;
// ###ADMINJS###
$this->fileContentStatic['###ADMINJS###'] = $this->setPlaceholders($this->customScriptBuilder['component_js'], $this->placeholders);
// ###SITEJS###
$this->fileContentStatic['###SITEJS###'] = $this->setPlaceholders($this->customScriptBuilder['component_js'], $this->placeholders);
// ###ADMINCSS###
$this->fileContentStatic['###ADMINCSS###'] = $this->setPlaceholders($this->customScriptBuilder['component_css'], $this->placeholders);
// ###SITECSS###
$this->fileContentStatic['###SITECSS###'] = $this->setPlaceholders($this->customScriptBuilder['component_css'], $this->placeholders);
// ###CUSTOM_HELPER_SCRIPT###
$this->fileContentStatic['###CUSTOM_HELPER_SCRIPT###'] = $this->setPlaceholders($this->customScriptBuilder['component_php_helper_admin'], $this->placeholders);
$this->fileContentStatic['###CUSTOM_HELPER_SCRIPT###']
= $this->setPlaceholders($this->customScriptBuilder['component_php_helper_admin'], $this->placeholders);
// ###BOTH_CUSTOM_HELPER_SCRIPT###
$this->fileContentStatic['###BOTH_CUSTOM_HELPER_SCRIPT###'] = $this->setPlaceholders($this->customScriptBuilder['component_php_helper_both'], $this->placeholders);
$this->fileContentStatic['###BOTH_CUSTOM_HELPER_SCRIPT###']
= $this->setPlaceholders($this->customScriptBuilder['component_php_helper_both'], $this->placeholders);
// ###ADMIN_GLOBAL_EVENT_HELPER###
$this->fileContentStatic['###ADMIN_GLOBAL_EVENT_HELPER###'] = '';
@ -168,14 +175,16 @@ class Infusion extends Interpretation
{
// ###ADMIN_GLOBAL_EVENT###
$this->fileContentStatic['###ADMIN_GLOBAL_EVENT###'] = PHP_EOL.PHP_EOL.'// Triger the Global Admin Event';
$this->fileContentStatic['###ADMIN_GLOBAL_EVENT###'] .= PHP_EOL.$this->fileContentStatic['###Component###'].'Helper::globalEvent($document);';
$this->fileContentStatic['###ADMIN_GLOBAL_EVENT###']
.= PHP_EOL.$this->fileContentStatic['###Component###'].'Helper::globalEvent($document);';
// ###ADMIN_GLOBAL_EVENT_HELPER###
$this->fileContentStatic['###ADMIN_GLOBAL_EVENT_HELPER###'] = PHP_EOL.PHP_EOL."\t".'/**';
$this->fileContentStatic['###ADMIN_GLOBAL_EVENT_HELPER###'] .= PHP_EOL."\t".'* The Global Admin Event Method.';
$this->fileContentStatic['###ADMIN_GLOBAL_EVENT_HELPER###'] .= PHP_EOL."\t".'**/';
$this->fileContentStatic['###ADMIN_GLOBAL_EVENT_HELPER###'] .= PHP_EOL."\t".'public static function globalEvent($document)';
$this->fileContentStatic['###ADMIN_GLOBAL_EVENT_HELPER###'] .= PHP_EOL."\t".'{';
$this->fileContentStatic['###ADMIN_GLOBAL_EVENT_HELPER###'] .= PHP_EOL.$this->setPlaceholders($this->customScriptBuilder['component_php_admin_event'], $this->placeholders);
$this->fileContentStatic['###ADMIN_GLOBAL_EVENT_HELPER###']
.= PHP_EOL.$this->setPlaceholders($this->customScriptBuilder['component_php_admin_event'], $this->placeholders);
$this->fileContentStatic['###ADMIN_GLOBAL_EVENT_HELPER###'] .= PHP_EOL."\t".'}';
}
@ -192,8 +201,6 @@ class Infusion extends Interpretation
$this->fileContentStatic['###HELP###'] = $this->noHelp();
// ###HELP_SITE###
$this->fileContentStatic['###HELP_SITE###'] = $this->noHelp();
// ###UPDATE_VERSION_MYSQL###
$this->setVersionController();
// build route parse switch
$this->fileContentStatic['###ROUTER_PARSE_SWITCH###'] = '';
@ -260,7 +267,8 @@ class Infusion extends Interpretation
$this->setLockLicensePer($viewName_list, $this->target);
// ###FIELDSETS### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_single]['###FIELDSETS###'] = $this->setFieldSet($view, $this->fileContentStatic['###component###']);
$this->fileContentDynamic[$viewName_single]['###FIELDSETS###']
= $this->setFieldSet($view, $this->fileContentStatic['###component###']);
// ###ACCESSCONTROL### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_single]['###ACCESSCONTROL###'] = $this->setFieldSetAccessControl($viewName_single);
@ -283,11 +291,14 @@ class Infusion extends Interpretation
// ###AJAXTOKE### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_single]['###AJAXTOKE###'] = $this->setAjaxToke($viewName_single);
if (isset($this->customScriptBuilder['php_document'][$viewName_single]) && ComponentbuilderHelper::checkString($this->customScriptBuilder['php_document'][$viewName_single]))
if (isset($this->customScriptBuilder['php_document'][$viewName_single])
&& ComponentbuilderHelper::checkString($this->customScriptBuilder['php_document'][$viewName_single]))
{
// ###DOCUMENT_CUSTOM_PHP### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_single]['###DOCUMENT_CUSTOM_PHP###']
= PHP_EOL.$this->setPlaceholders($this->customScriptBuilder['php_document'][$viewName_single], $this->placeholders);
= PHP_EOL.$this->setPlaceholders(
$this->customScriptBuilder['php_document'][$viewName_single],
$this->placeholders);
// clear some memory
unset($this->customScriptBuilder['php_document'][$viewName_single]);
}
@ -300,7 +311,8 @@ class Infusion extends Interpretation
$this->fileContentDynamic[$viewName_single]['###LINKEDVIEWTABLESCRIPTS###'] = '';
// ###VALIDATEFIX### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_single]['###VALIDATIONFIX###'] = $this->setValidationFix($viewName_single, $this->fileContentStatic['###Component###']);
$this->fileContentDynamic[$viewName_single]['###VALIDATIONFIX###']
= $this->setValidationFix($viewName_single, $this->fileContentStatic['###Component###']);
// ###EDITBODY### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_single]['###EDITBODY###'] = $this->setEditBody($view);
@ -324,16 +336,20 @@ class Infusion extends Interpretation
$this->fileContentDynamic[$viewName_single]['###LINKEDVIEWMETHODS###'] = '';
// ###JMODELADMIN_BEFORE_DELETE### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_single]['###JMODELADMIN_BEFORE_DELETE###'] = $this->getCustomScriptBuilder('php_before_delete', $viewName_single, PHP_EOL);
$this->fileContentDynamic[$viewName_single]['###JMODELADMIN_BEFORE_DELETE###']
= $this->getCustomScriptBuilder('php_before_delete', $viewName_single, PHP_EOL);
// ###JMODELADMIN_AFTER_DELETE### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_single]['###JMODELADMIN_AFTER_DELETE###'] = $this->getCustomScriptBuilder('php_after_delete', $viewName_single, PHP_EOL.PHP_EOL);
$this->fileContentDynamic[$viewName_single]['###JMODELADMIN_AFTER_DELETE###']
= $this->getCustomScriptBuilder('php_after_delete', $viewName_single, PHP_EOL.PHP_EOL);
// ###JMODELADMIN_BEFORE_DELETE### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_single]['###JMODELADMIN_BEFORE_PUBLISH###'] = $this->getCustomScriptBuilder('php_before_publish', $viewName_single, PHP_EOL);
$this->fileContentDynamic[$viewName_single]['###JMODELADMIN_BEFORE_PUBLISH###']
= $this->getCustomScriptBuilder('php_before_publish', $viewName_single, PHP_EOL);
// ###JMODELADMIN_AFTER_DELETE### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_single]['###JMODELADMIN_AFTER_PUBLISH###'] = $this->getCustomScriptBuilder('php_after_publish', $viewName_single, PHP_EOL.PHP_EOL);
$this->fileContentDynamic[$viewName_single]['###JMODELADMIN_AFTER_PUBLISH###']
= $this->getCustomScriptBuilder('php_after_publish', $viewName_single, PHP_EOL.PHP_EOL);
// ###CHECKBOX_SAVE### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_single]['###CHECKBOX_SAVE###'] = $this->setCheckboxSave($viewName_single);
@ -342,9 +358,12 @@ class Infusion extends Interpretation
$this->fileContentDynamic[$viewName_single]['###METHOD_ITEM_SAVE###'] = $this->setMethodItemSave($viewName_single);
// ###POSTSAVEHOOK### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_single]['###POSTSAVEHOOK###'] = $this->getCustomScriptBuilder('php_postsavehook', $viewName_single, PHP_EOL, null, true, PHP_EOL."\t\treturn;", PHP_EOL.PHP_EOL."\t\treturn;");
$this->fileContentDynamic[$viewName_single]['###POSTSAVEHOOK###']
= $this->getCustomScriptBuilder('php_postsavehook', $viewName_single, PHP_EOL, null, true,
PHP_EOL."\t\treturn;", PHP_EOL.PHP_EOL."\t\treturn;");
if (isset($this->customScriptBuilder['css_view'][$viewName_single]) && ComponentbuilderHelper::checkString($this->customScriptBuilder['css_view'][$viewName_single]))
if (isset($this->customScriptBuilder['css_view'][$viewName_single])
&& ComponentbuilderHelper::checkString($this->customScriptBuilder['css_view'][$viewName_single]))
{
// ###VIEWCSS### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_single]['###VIEWCSS###']
@ -360,7 +379,8 @@ class Infusion extends Interpretation
// add css to front end
if ($view['edit_create_site_view'])
{
$this->fileContentDynamic[$viewName_single]['###SITE_VIEWCSS###'] = $this->fileContentDynamic[$viewName_single]['###VIEWCSS###'];
$this->fileContentDynamic[$viewName_single]['###SITE_VIEWCSS###']
= $this->fileContentDynamic[$viewName_single]['###VIEWCSS###'];
}
}
// set the views names
@ -411,9 +431,11 @@ class Infusion extends Interpretation
if ($view['checkin'] == 1)
{
// ###AUTOCHECKIN### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_list]['###AUTOCHECKIN###'] = $this->setAutoCheckin($viewName_single,$this->fileContentStatic['###component###']);
$this->fileContentDynamic[$viewName_list]['###AUTOCHECKIN###']
= $this->setAutoCheckin($viewName_single,$this->fileContentStatic['###component###']);
// ###CHECKINCALL### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_list]['###CHECKINCALL###'] = $this->setCheckinCall();
$this->fileContentDynamic[$viewName_list]['###CHECKINCALL###']
= $this->setCheckinCall();
}
else
{
@ -423,19 +445,26 @@ class Infusion extends Interpretation
$this->fileContentDynamic[$viewName_list]['###CHECKINCALL###'] = '';
}
// ###ADMIN_CUSTOM_BUTTONS_LIST###
$this->fileContentDynamic[$viewName_list]['###ADMIN_CUSTOM_BUTTONS_LIST###'] = $this->setCustomButtons($view, 3, "\t");
$this->fileContentDynamic[$viewName_list]['###ADMIN_CUSTOM_BUTTONS_LIST###']
= $this->setCustomButtons($view, 3, "\t");
$this->fileContentDynamic[$viewName_list]['###ADMIN_CUSTOM_FUNCTION_ONLY_BUTTONS_LIST###']
= $this->setFunctionOnlyButtons($viewName_list);
// ###GET_ITEMS_METHOD_STRING_FIX### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_list]['###GET_ITEMS_METHOD_STRING_FIX###'] = $this->setGetItemsMethodStringFix($viewName_single,$this->fileContentStatic['###Component###']);
$this->fileContentDynamic[$viewName_list]['###GET_ITEMS_METHOD_STRING_FIX###']
= $this->setGetItemsMethodStringFix($viewName_single,$this->fileContentStatic['###Component###']);
// ###GET_ITEMS_METHOD_AFTER_ALL### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_list]['###GET_ITEMS_METHOD_AFTER_ALL###'] = $this->getCustomScriptBuilder('php_getitems_after_all', $viewName_single, PHP_EOL);
$this->fileContentDynamic[$viewName_list]['###GET_ITEMS_METHOD_AFTER_ALL###']
= $this->getCustomScriptBuilder('php_getitems_after_all', $viewName_single, PHP_EOL);
// ###SELECTIONTRANSLATIONFIX### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_list]['###SELECTIONTRANSLATIONFIX###'] = $this->setSelectionTranslationFix($viewName_list,$this->fileContentStatic['###Component###']);
$this->fileContentDynamic[$viewName_list]['###SELECTIONTRANSLATIONFIX###']
= $this->setSelectionTranslationFix($viewName_list,$this->fileContentStatic['###Component###']);
// ###SELECTIONTRANSLATIONFIXFUNC### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_list]['###SELECTIONTRANSLATIONFIXFUNC###'] = $this->setSelectionTranslationFixFunc($viewName_list,$this->fileContentStatic['###Component###']);
$this->fileContentDynamic[$viewName_list]['###SELECTIONTRANSLATIONFIXFUNC###']
= $this->setSelectionTranslationFixFunc($viewName_list,$this->fileContentStatic['###Component###']);
// ###FILTER_FIELDS### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_list]['###FILTER_FIELDS###'] = $this->setFilterFields($viewName_list);
@ -457,28 +486,34 @@ class Infusion extends Interpretation
{
$this->fileContentStatic['###ROUTER_CATEGORY_VIEWS###'] = '';
}
$this->fileContentStatic['###ROUTER_CATEGORY_VIEWS###'] .= $this->setRouterCategoryViews($viewName_single,$viewName_list);
$this->fileContentStatic['###ROUTER_CATEGORY_VIEWS###']
.= $this->setRouterCategoryViews($viewName_single,$viewName_list);
// ###OTHERFILTERS### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_list]['###OTHERFILTERS###'] = $this->setOtherFilter($viewName_list);
// ###FILTERFUNCTIONS### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_list]['###FILTERFUNCTIONS###'] = $this->setFilterFunctions($viewName_single,$viewName_list);
$this->fileContentDynamic[$viewName_list]['###FILTERFUNCTIONS###']
= $this->setFilterFunctions($viewName_single,$viewName_list);
// ###LISTQUERY### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_list]['###LISTQUERY###'] = $this->setListQuery($viewName_single,$viewName_list);
// ###MODELEXPORTMETHOD### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_list]['###MODELEXPORTMETHOD###'] = $this->setModelExportMethod($viewName_single, $viewName_list);
$this->fileContentDynamic[$viewName_list]['###MODELEXPORTMETHOD###']
= $this->setModelExportMethod($viewName_single, $viewName_list);
// ###MODELEXIMPORTMETHOD### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_list]['###CONTROLLEREXIMPORTMETHOD###'] = $this->setControllerEximportMethod($viewName_single, $viewName_list);
$this->fileContentDynamic[$viewName_list]['###CONTROLLEREXIMPORTMETHOD###']
= $this->setControllerEximportMethod($viewName_single, $viewName_list);
// ###EXPORTBUTTON### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_list]['###EXPORTBUTTON###'] = $this->setExportButton($viewName_single, $viewName_list);
$this->fileContentDynamic[$viewName_list]['###EXPORTBUTTON###']
= $this->setExportButton($viewName_single, $viewName_list);
// ###IMPORTBUTTON### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_list]['###IMPORTBUTTON###'] = $this->setImportButton($viewName_single, $viewName_list);
$this->fileContentDynamic[$viewName_list]['###IMPORTBUTTON###']
= $this->setImportButton($viewName_single, $viewName_list);
// ###LISTHEAD### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_list]['###LISTHEAD###'] = $this->setListHead($viewName_single,$viewName_list);
@ -490,9 +525,11 @@ class Infusion extends Interpretation
$this->fileContentDynamic[$viewName_list]['###LISTCOLNR###'] = $this->setListColnr($viewName_list);
// ###JVIEWLISTCANDO### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_list]['###JVIEWLISTCANDO###'] = $this->setJviewListCanDo($viewName_single,$viewName_list);
$this->fileContentDynamic[$viewName_list]['###JVIEWLISTCANDO###']
= $this->setJviewListCanDo($viewName_single,$viewName_list);
if (isset($this->customScriptBuilder['css_views'][$viewName_list]) && ComponentbuilderHelper::checkString($this->customScriptBuilder['css_views'][$viewName_list]))
if (isset($this->customScriptBuilder['css_views'][$viewName_list])
&& ComponentbuilderHelper::checkString($this->customScriptBuilder['css_views'][$viewName_list]))
{
// ###VIEWCSS### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_list]['###VIEWSCSS###']
@ -526,28 +563,36 @@ class Infusion extends Interpretation
$this->fileContentDynamic[$viewName_list]['###BATCH_ONCLICK_CANCEL_SCRIPT###'] = ''; // TODO <-- must still be build
// ###JCONTROLLERFORM_ALLOWADD### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_single]['###JCONTROLLERFORM_ALLOWADD###'] = $this->setJcontrollerAllowAdd($viewName_single,$viewName_list);
$this->fileContentDynamic[$viewName_single]['###JCONTROLLERFORM_ALLOWADD###']
= $this->setJcontrollerAllowAdd($viewName_single,$viewName_list);
// ###JCONTROLLERFORM_ALLOWEDIT### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_single]['###JCONTROLLERFORM_ALLOWEDIT###'] = $this->setJcontrollerAllowEdit($viewName_single,$viewName_list);
$this->fileContentDynamic[$viewName_single]['###JCONTROLLERFORM_ALLOWEDIT###']
= $this->setJcontrollerAllowEdit($viewName_single,$viewName_list);
// ###JMODELADMIN_GETFORM### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_single]['###JMODELADMIN_GETFORM###'] = $this->setJmodelAdminGetForm($viewName_single,$viewName_list);
$this->fileContentDynamic[$viewName_single]['###JMODELADMIN_GETFORM###']
= $this->setJmodelAdminGetForm($viewName_single,$viewName_list);
// ###JMODELADMIN_ALLOWEDIT### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_single]['###JMODELADMIN_ALLOWEDIT###'] = $this->setJmodelAdminAllowEdit($viewName_single,$viewName_list);
$this->fileContentDynamic[$viewName_single]['###JMODELADMIN_ALLOWEDIT###']
= $this->setJmodelAdminAllowEdit($viewName_single,$viewName_list);
// ###JMODELADMIN_CANDELETE### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_single]['###JMODELADMIN_CANDELETE###'] = $this->setJmodelAdminCanDelete($viewName_single,$viewName_list);
$this->fileContentDynamic[$viewName_single]['###JMODELADMIN_CANDELETE###']
= $this->setJmodelAdminCanDelete($viewName_single,$viewName_list);
// ###JMODELADMIN_CANEDITSTATE### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_single]['###JMODELADMIN_CANEDITSTATE###'] = $this->setJmodelAdminCanEditState($viewName_single,$viewName_list);
$this->fileContentDynamic[$viewName_single]['###JMODELADMIN_CANEDITSTATE###']
= $this->setJmodelAdminCanEditState($viewName_single,$viewName_list);
// set custom admin view Toolbare buttons
// ###CUSTOM_ADMIN_DYNAMIC_BUTTONS### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_list]['###CUSTOM_ADMIN_DYNAMIC_BUTTONS###'] = $this->setCustomAdminDynamicButton($viewName_list);
$this->fileContentDynamic[$viewName_list]['###CUSTOM_ADMIN_DYNAMIC_BUTTONS###']
= $this->setCustomAdminDynamicButton($viewName_list);
// ###CUSTOM_ADMIN_DYNAMIC_BUTTONS_CONTROLLER### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_list]['###CUSTOM_ADMIN_DYNAMIC_BUTTONS_CONTROLLER###'] = $this->setCustomAdminDynamicButtonController($viewName_list);
$this->fileContentDynamic[$viewName_list]['###CUSTOM_ADMIN_DYNAMIC_BUTTONS_CONTROLLER###']
= $this->setCustomAdminDynamicButtonController($viewName_list);
// set helper router
if (!isset($this->fileContentStatic['###ROUTEHELPER###']))
@ -599,7 +644,8 @@ class Infusion extends Interpretation
}
if (!isset($this->langContent[$this->lang][$this->langPrefix.'_'.$view['settings']->CODE.'_DESC']))
{
$this->langContent[$this->lang][$this->langPrefix.'_'.$view['settings']->CODE.'_DESC'] = $view['settings']->description;
$this->langContent[$this->lang][$this->langPrefix.'_'.$view['settings']->CODE.'_DESC']
= $view['settings']->description;
}
// ###ICOMOON### <<<DYNAMIC>>>
$this->fileContentDynamic[$view['settings']->code]['###ICOMOON###'] = $view['icomoon'];
@ -624,7 +670,8 @@ class Infusion extends Interpretation
if ($view['settings']->main_get->gettype == 1)
{
// check if there is any custom script
if (isset($this->customScriptBuilder[$this->target.'_php_before_getitem'][$view['settings']->code]) && ComponentbuilderHelper::checkString($this->customScriptBuilder[$this->target.'_php_before_getitem'][$view['settings']->code]))
if (isset($this->customScriptBuilder[$this->target.'_php_before_getitem'][$view['settings']->code])
&& ComponentbuilderHelper::checkString($this->customScriptBuilder[$this->target.'_php_before_getitem'][$view['settings']->code]))
{
// ###CUSTOM_ADMIN_BEFORE_GET_ITEM### <<<DYNAMIC>>>
$this->fileContentDynamic[$view['settings']->code]['###CUSTOM_ADMIN_BEFORE_GET_ITEM###']
@ -639,10 +686,12 @@ class Infusion extends Interpretation
}
// ###CUSTOM_ADMIN_GET_ITEM### <<<DYNAMIC>>>
$this->fileContentDynamic[$view['settings']->code]['###CUSTOM_ADMIN_GET_ITEM###'] = $this->setCustomViewGetItem($view['settings']->main_get, $view['settings']->code,"\t\t");
$this->fileContentDynamic[$view['settings']->code]['###CUSTOM_ADMIN_GET_ITEM###']
= $this->setCustomViewGetItem($view['settings']->main_get, $view['settings']->code,"\t\t");
// check if there is any custom script
if (isset($this->customScriptBuilder[$this->target.'_php_after_getitem'][$view['settings']->code]) && ComponentbuilderHelper::checkString($this->customScriptBuilder[$this->target.'_php_after_getitem'][$view['settings']->code]))
if (isset($this->customScriptBuilder[$this->target.'_php_after_getitem'][$view['settings']->code])
&& ComponentbuilderHelper::checkString($this->customScriptBuilder[$this->target.'_php_after_getitem'][$view['settings']->code]))
{
// ###CUSTOM_ADMIN_AFTER_GET_ITEM### <<<DYNAMIC>>>
$this->fileContentDynamic[$view['settings']->code]['###CUSTOM_ADMIN_AFTER_GET_ITEM###']
@ -659,10 +708,12 @@ class Infusion extends Interpretation
elseif ($view['settings']->main_get->gettype == 2)
{
// ###CUSTOM_ADMIN_GET_LIST_QUERY### <<<DYNAMIC>>>
$this->fileContentDynamic[$view['settings']->code]['###CUSTOM_ADMIN_GET_LIST_QUERY###'] = $this->setCustomViewListQuery($view['settings']->main_get, $view['settings']->code);
$this->fileContentDynamic[$view['settings']->code]['###CUSTOM_ADMIN_GET_LIST_QUERY###']
= $this->setCustomViewListQuery($view['settings']->main_get, $view['settings']->code);
// check if there is any custom script
if (isset($this->customScriptBuilder[$this->target.'_php_getlistquery'][$view['settings']->code]) && ComponentbuilderHelper::checkString($this->customScriptBuilder[$this->target.'_php_getlistquery'][$view['settings']->code]))
if (isset($this->customScriptBuilder[$this->target.'_php_getlistquery'][$view['settings']->code])
&& ComponentbuilderHelper::checkString($this->customScriptBuilder[$this->target.'_php_getlistquery'][$view['settings']->code]))
{
// ###CUSTOM_ADMIN_CUSTOM_BEFORE_LIST_QUERY### <<<DYNAMIC>>>
$this->fileContentDynamic[$view['settings']->code]['###CUSTOM_ADMIN_CUSTOM_BEFORE_LIST_QUERY###']
@ -677,7 +728,8 @@ class Infusion extends Interpretation
}
// check if there is any custom script
if (isset($this->customScriptBuilder[$this->target.'_php_before_getitems'][$view['settings']->code]) && ComponentbuilderHelper::checkString($this->customScriptBuilder[$this->target.'_php_before_getitems'][$view['settings']->code]))
if (isset($this->customScriptBuilder[$this->target.'_php_before_getitems'][$view['settings']->code])
&& ComponentbuilderHelper::checkString($this->customScriptBuilder[$this->target.'_php_before_getitems'][$view['settings']->code]))
{
// ###CUSTOM_ADMIN_BEFORE_GET_ITEMS### <<<DYNAMIC>>>
$this->fileContentDynamic[$view['settings']->code]['###CUSTOM_ADMIN_BEFORE_GET_ITEMS###']
@ -692,10 +744,12 @@ class Infusion extends Interpretation
}
// ###CUSTOM_ADMIN_GET_ITEMS### <<<DYNAMIC>>>
$this->fileContentDynamic[$view['settings']->code]['###CUSTOM_ADMIN_GET_ITEMS###'] = $this->setCustomViewGetItems($view['settings']->main_get, $view['settings']->code);
$this->fileContentDynamic[$view['settings']->code]['###CUSTOM_ADMIN_GET_ITEMS###']
= $this->setCustomViewGetItems($view['settings']->main_get, $view['settings']->code);
// check if there is any custom script
if (isset($this->customScriptBuilder[$this->target.'_php_after_getitems'][$view['settings']->code]) && ComponentbuilderHelper::checkString($this->customScriptBuilder[$this->target.'_php_after_getitems'][$view['settings']->code]))
if (isset($this->customScriptBuilder[$this->target.'_php_after_getitems'][$view['settings']->code])
&& ComponentbuilderHelper::checkString($this->customScriptBuilder[$this->target.'_php_after_getitems'][$view['settings']->code]))
{
// ###CUSTOM_ADMIN_AFTER_GET_ITEMS### <<<DYNAMIC>>>
$this->fileContentDynamic[$view['settings']->code]['###CUSTOM_ADMIN_AFTER_GET_ITEMS###']
@ -711,20 +765,25 @@ class Infusion extends Interpretation
}
// ###CUSTOM_ADMIN_CUSTOM_METHODS### <<<DYNAMIC>>>
$this->fileContentDynamic[$view['settings']->code]['###CUSTOM_ADMIN_CUSTOM_METHODS###'] = $this->setCustomViewCustomItemMethods($view['settings']->main_get, $view['settings']->code);
$this->fileContentDynamic[$view['settings']->code]['###CUSTOM_ADMIN_CUSTOM_METHODS###'] .= $this->setCustomViewCustomMethods($view, $view['settings']->code);
$this->fileContentDynamic[$view['settings']->code]['###CUSTOM_ADMIN_CUSTOM_METHODS###']
= $this->setCustomViewCustomItemMethods($view['settings']->main_get, $view['settings']->code);
$this->fileContentDynamic[$view['settings']->code]['###CUSTOM_ADMIN_CUSTOM_METHODS###']
.= $this->setCustomViewCustomMethods($view, $view['settings']->code);
// ###CUSTOM_ADMIN_DIPLAY_METHOD### <<<DYNAMIC>>>
$this->fileContentDynamic[$view['settings']->code]['###CUSTOM_ADMIN_DIPLAY_METHOD###'] = $this->setCustomViewDisplayMethod($view);
$this->fileContentDynamic[$view['settings']->code]['###CUSTOM_ADMIN_DIPLAY_METHOD###']
= $this->setCustomViewDisplayMethod($view);
// set document details
$this->setPrepareDocument($view);
// ###CUSTOM_ADMIN_EXTRA_DIPLAY_METHODS### <<<DYNAMIC>>>
$this->fileContentDynamic[$view['settings']->code]['###CUSTOM_ADMIN_EXTRA_DIPLAY_METHODS###'] = $this->setCustomViewExtraDisplayMethods($view);
$this->fileContentDynamic[$view['settings']->code]['###CUSTOM_ADMIN_EXTRA_DIPLAY_METHODS###']
= $this->setCustomViewExtraDisplayMethods($view);
// ###CUSTOM_ADMIN_CODE_BODY### <<<DYNAMIC>>>
$this->fileContentDynamic[$view['settings']->code]['###CUSTOM_ADMIN_CODE_BODY###'] = $this->setCustomViewCodeBody($view);
// ###CUSTOM_ADMIN_BODY### <<<DYNAMIC>>>
$this->fileContentDynamic[$view['settings']->code]['###CUSTOM_ADMIN_BODY###'] = $this->setCustomViewBody($view);
// ###CUSTOM_ADMIN_SUBMITBUTTON_SCRIPT### <<<DYNAMIC>>>
$this->fileContentDynamic[$view['settings']->code]['###CUSTOM_ADMIN_SUBMITBUTTON_SCRIPT###'] = $this->setCustomViewSubmitButtonScript($view);
$this->fileContentDynamic[$view['settings']->code]['###CUSTOM_ADMIN_SUBMITBUTTON_SCRIPT###']
= $this->setCustomViewSubmitButtonScript($view);
// setup the templates
$this->setCustomViewTemplateBody($view);
@ -760,6 +819,9 @@ class Infusion extends Interpretation
// ###UNINSTALL###
$this->fileContentStatic['###UNINSTALL###'] = $this->setUninstall();
// ###UPDATE_VERSION_MYSQL###
$this->setVersionController();
// ###DASHBOARDICONS###
$this->fileContentDynamic[$this->fileContentStatic['###component###']]['###DASHBOARDICONS###'] = $this->setDashboardIcons();
@ -881,7 +943,8 @@ class Infusion extends Interpretation
}
// insure the needed route helper is loaded
$this->fileContentStatic['###ROUTEHELPER###'] .= $this->setRouterHelp($view['settings']->code,$view['settings']->code, true);
$this->fileContentStatic['###ROUTEHELPER###']
.= $this->setRouterHelp($view['settings']->code,$view['settings']->code, true);
// build route details
$this->fileContentStatic['###ROUTER_PARSE_SWITCH###'] .= $this->routerParseSwitch($view['settings']->code, $view);
$this->fileContentStatic['###ROUTER_BUILD_VIEWS###'] .= $this->routerBuildViews($view['settings']->code);
@ -889,9 +952,11 @@ class Infusion extends Interpretation
if ($view['settings']->main_get->gettype == 1)
{
// set user permission access check ###USER_PERMISSION_CHECK_ACCESS### <<<DYNAMIC>>>
$this->fileContentDynamic[$view['settings']->code]['###USER_PERMISSION_CHECK_ACCESS###'] = $this->setUserPermissionCheckAccess($view, 1);
$this->fileContentDynamic[$view['settings']->code]['###USER_PERMISSION_CHECK_ACCESS###']
= $this->setUserPermissionCheckAccess($view, 1);
// check if there is any custom script
if (isset($this->customScriptBuilder[$this->target.'_php_before_getitem'][$view['settings']->code]) && ComponentbuilderHelper::checkString($this->customScriptBuilder[$this->target.'_php_before_getitem'][$view['settings']->code]))
if (isset($this->customScriptBuilder[$this->target.'_php_before_getitem'][$view['settings']->code])
&& ComponentbuilderHelper::checkString($this->customScriptBuilder[$this->target.'_php_before_getitem'][$view['settings']->code]))
{
// ###SITE_BEFORE_GET_ITEM### <<<DYNAMIC>>>
$this->fileContentDynamic[$view['settings']->code]['###SITE_BEFORE_GET_ITEM###']
@ -906,10 +971,12 @@ class Infusion extends Interpretation
}
// ###SITE_GET_ITEM### <<<DYNAMIC>>>
$this->fileContentDynamic[$view['settings']->code]['###SITE_GET_ITEM###'] = $this->setCustomViewGetItem($view['settings']->main_get, $view['settings']->code,"\t\t");
$this->fileContentDynamic[$view['settings']->code]['###SITE_GET_ITEM###']
= $this->setCustomViewGetItem($view['settings']->main_get, $view['settings']->code,"\t\t");
// check if there is any custom script
if (isset($this->customScriptBuilder[$this->target.'_php_after_getitem'][$view['settings']->code]) && ComponentbuilderHelper::checkString($this->customScriptBuilder[$this->target.'_php_after_getitem'][$view['settings']->code]))
if (isset($this->customScriptBuilder[$this->target.'_php_after_getitem'][$view['settings']->code])
&& ComponentbuilderHelper::checkString($this->customScriptBuilder[$this->target.'_php_after_getitem'][$view['settings']->code]))
{
// ###SITE_AFTER_GET_ITEM### <<<DYNAMIC>>>
$this->fileContentDynamic[$view['settings']->code]['###SITE_AFTER_GET_ITEM###']
@ -926,12 +993,15 @@ class Infusion extends Interpretation
elseif ($view['settings']->main_get->gettype == 2)
{
// set user permission access check ###USER_PERMISSION_CHECK_ACCESS### <<<DYNAMIC>>>
$this->fileContentDynamic[$view['settings']->code]['###USER_PERMISSION_CHECK_ACCESS###'] = $this->setUserPermissionCheckAccess($view, 2);
$this->fileContentDynamic[$view['settings']->code]['###USER_PERMISSION_CHECK_ACCESS###']
= $this->setUserPermissionCheckAccess($view, 2);
// ###SITE_GET_LIST_QUERY### <<<DYNAMIC>>>
$this->fileContentDynamic[$view['settings']->code]['###SITE_GET_LIST_QUERY###'] = $this->setCustomViewListQuery($view['settings']->main_get, $view['settings']->code);
$this->fileContentDynamic[$view['settings']->code]['###SITE_GET_LIST_QUERY###']
= $this->setCustomViewListQuery($view['settings']->main_get, $view['settings']->code);
// check if there is any custom script
if (isset($this->customScriptBuilder[$this->target.'_php_before_getitems'][$view['settings']->code]) && ComponentbuilderHelper::checkString($this->customScriptBuilder[$this->target.'_php_before_getitems'][$view['settings']->code]))
if (isset($this->customScriptBuilder[$this->target.'_php_before_getitems'][$view['settings']->code])
&& ComponentbuilderHelper::checkString($this->customScriptBuilder[$this->target.'_php_before_getitems'][$view['settings']->code]))
{
// ###SITE_BEFORE_GET_ITEMS### <<<DYNAMIC>>>
$this->fileContentDynamic[$view['settings']->code]['###SITE_BEFORE_GET_ITEMS###']
@ -946,10 +1016,12 @@ class Infusion extends Interpretation
}
// ###SITE_GET_ITEMS### <<<DYNAMIC>>>
$this->fileContentDynamic[$view['settings']->code]['###SITE_GET_ITEMS###'] = $this->setCustomViewGetItems($view['settings']->main_get, $view['settings']->code);
$this->fileContentDynamic[$view['settings']->code]['###SITE_GET_ITEMS###']
= $this->setCustomViewGetItems($view['settings']->main_get, $view['settings']->code);
// check if there is any custom script
if (isset($this->customScriptBuilder[$this->target.'_php_after_getitems'][$view['settings']->code]) && ComponentbuilderHelper::checkString($this->customScriptBuilder[$this->target.'_php_after_getitems'][$view['settings']->code]))
if (isset($this->customScriptBuilder[$this->target.'_php_after_getitems'][$view['settings']->code])
&& ComponentbuilderHelper::checkString($this->customScriptBuilder[$this->target.'_php_after_getitems'][$view['settings']->code]))
{
// ###SITE_AFTER_GET_ITEMS### <<<DYNAMIC>>>
$this->fileContentDynamic[$view['settings']->code]['###SITE_AFTER_GET_ITEMS###']
@ -970,17 +1042,22 @@ class Infusion extends Interpretation
}
if (!isset($this->langContent['site'][$this->langPrefix.'_'.$view['settings']->CODE.'_DESC']))
{
$this->langContent['site'][$this->langPrefix.'_'.$view['settings']->CODE.'_DESC'] = $view['settings']->description;
$this->langContent['site'][$this->langPrefix.'_'.$view['settings']->CODE.'_DESC']
= $view['settings']->description;
}
// ###SITE_CUSTOM_METHODS### <<<DYNAMIC>>>
$this->fileContentDynamic[$view['settings']->code]['###SITE_CUSTOM_METHODS###'] = $this->setCustomViewCustomItemMethods($view['settings']->main_get, $view['settings']->code);
$this->fileContentDynamic[$view['settings']->code]['###SITE_CUSTOM_METHODS###'] .= $this->setCustomViewCustomMethods($view, $view['settings']->code);
$this->fileContentDynamic[$view['settings']->code]['###SITE_CUSTOM_METHODS###']
= $this->setCustomViewCustomItemMethods($view['settings']->main_get, $view['settings']->code);
$this->fileContentDynamic[$view['settings']->code]['###SITE_CUSTOM_METHODS###']
.= $this->setCustomViewCustomMethods($view, $view['settings']->code);
// ###SITE_DIPLAY_METHOD### <<<DYNAMIC>>>
$this->fileContentDynamic[$view['settings']->code]['###SITE_DIPLAY_METHOD###'] = $this->setCustomViewDisplayMethod($view);
$this->fileContentDynamic[$view['settings']->code]['###SITE_DIPLAY_METHOD###']
= $this->setCustomViewDisplayMethod($view);
// set document details
$this->setPrepareDocument($view);
// ###SITE_EXTRA_DIPLAY_METHODS### <<<DYNAMIC>>>
$this->fileContentDynamic[$view['settings']->code]['###SITE_EXTRA_DIPLAY_METHODS###'] = $this->setCustomViewExtraDisplayMethods($view);
$this->fileContentDynamic[$view['settings']->code]['###SITE_EXTRA_DIPLAY_METHODS###']
= $this->setCustomViewExtraDisplayMethods($view);
// ###SITE_CODE_BODY### <<<DYNAMIC>>>
$this->fileContentDynamic[$view['settings']->code]['###SITE_CODE_BODY###'] = $this->setCustomViewCodeBody($view);
// ###SITE_BODY### <<<DYNAMIC>>>
@ -989,9 +1066,15 @@ class Infusion extends Interpretation
// setup the templates
$this->setCustomViewTemplateBody($view);
}
// if no default site view was set, the redirect to root
if (!isset($this->fileContentStatic['###SITE_DEFAULT_VIEW###']))
{
$this->fileContentStatic['###SITE_DEFAULT_VIEW###'] = '';
}
// set site custom script to helper class
// ###SITE_CUSTOM_HELPER_SCRIPT###
$this->fileContentStatic['###SITE_CUSTOM_HELPER_SCRIPT###'] = $this->setPlaceholders($this->customScriptBuilder['component_php_helper_site'], $this->placeholders);
$this->fileContentStatic['###SITE_CUSTOM_HELPER_SCRIPT###']
= $this->setPlaceholders($this->customScriptBuilder['component_php_helper_site'], $this->placeholders);
// ###SITE_GLOBAL_EVENT_HELPER###
$this->fileContentStatic['###SITE_GLOBAL_EVENT_HELPER###'] = '';
// ###SITE_GLOBAL_EVENT###
@ -1000,14 +1083,17 @@ class Infusion extends Interpretation
if ($this->componentData->add_site_event == 1)
{
$this->fileContentStatic['###SITE_GLOBAL_EVENT###'] = PHP_EOL.PHP_EOL.'// Triger the Global Site Event';
$this->fileContentStatic['###SITE_GLOBAL_EVENT###'] .= PHP_EOL.$this->fileContentStatic['###Component###'].'Helper::globalEvent($document);';
$this->fileContentStatic['###SITE_GLOBAL_EVENT###']
.= PHP_EOL.$this->fileContentStatic['###Component###'].'Helper::globalEvent($document);';
// ###SITE_GLOBAL_EVENT_HELPER###
$this->fileContentStatic['###SITE_GLOBAL_EVENT_HELPER###'] = PHP_EOL.PHP_EOL."\t".'/**';
$this->fileContentStatic['###SITE_GLOBAL_EVENT_HELPER###'] .= PHP_EOL."\t".'* The Global Site Event Method.';
$this->fileContentStatic['###SITE_GLOBAL_EVENT_HELPER###'] .= PHP_EOL."\t".'**/';
$this->fileContentStatic['###SITE_GLOBAL_EVENT_HELPER###'] .= PHP_EOL."\t".'public static function globalEvent($document)';
$this->fileContentStatic['###SITE_GLOBAL_EVENT_HELPER###']
.= PHP_EOL."\t".'public static function globalEvent($document)';
$this->fileContentStatic['###SITE_GLOBAL_EVENT_HELPER###'] .= PHP_EOL."\t".'{';
$this->fileContentStatic['###SITE_GLOBAL_EVENT_HELPER###'] .= PHP_EOL.$this->setPlaceholders($this->customScriptBuilder['component_php_site_event'], $this->placeholders);
$this->fileContentStatic['###SITE_GLOBAL_EVENT_HELPER###']
.= PHP_EOL.$this->setPlaceholders($this->customScriptBuilder['component_php_site_event'], $this->placeholders);
$this->fileContentStatic['###SITE_GLOBAL_EVENT_HELPER###'] .= PHP_EOL."\t".'}';
}
// setup the layouts
@ -1041,7 +1127,8 @@ class Infusion extends Interpretation
$this->fileContentStatic['###CONFIG_FIELDSETS###'] = implode(PHP_EOL,$this->configFieldSets);
// check if this has been set
if (!isset($this->fileContentStatic['###ROUTER_BUILD_VIEWS###']) || !ComponentbuilderHelper::checkString($this->fileContentStatic['###ROUTER_BUILD_VIEWS###']))
if (!isset($this->fileContentStatic['###ROUTER_BUILD_VIEWS###'])
|| !ComponentbuilderHelper::checkString($this->fileContentStatic['###ROUTER_BUILD_VIEWS###']))
{
$this->fileContentStatic['###ROUTER_BUILD_VIEWS###'] = 0;
}
@ -1067,33 +1154,130 @@ class Infusion extends Interpretation
* @return boolean on success
*
*/
public function setLangFileData()
{
// First we build the strings
$lang = array();
// ###LANG_ADMIN###
$lang['###LANG_ADMIN###'] = $this->setLangAdmin();
// ###LANG_ADMIN_SYS###
$lang['###LANG_ADMIN_SYS###'] = $this->setLangAdminSys();
// ###LANG_SITE###
$lang['###LANG_SITE###'] = $this->setLangSite();
// ###LANG_SITE_SYS###
$lang['###LANG_SITE_SYS###'] = $this->setLangSiteSys();
// now we insert the values into the files
if (ComponentbuilderHelper::checkArray($this->langFiles))
$values = array();
$mainLangLoader = array();
// check the admin lang is set
if ($this->setLangAdmin())
{
foreach ($this->langFiles as $file)
$values[] = array_values($this->languages['en-GB']['admin']);
$mainLangLoader['admin'] = count($this->languages['en-GB']['admin']);
}
// check the admin system lang is set
if ($this->setLangAdminSys())
{
$values[] = array_values($this->languages['en-GB']['adminsys']);
$mainLangLoader['adminsys'] = count($this->languages['en-GB']['adminsys']);
}
// check the site lang is set
if (!$this->removeSiteFolder && $this->setLangSite())
{
$values[] = array_values($this->languages['en-GB']['site']);
$mainLangLoader['site'] = count($this->languages['en-GB']['site']);
}
// check the site system lang is set
if (!$this->removeSiteFolder && $this->setLangSiteSys())
{
$values[] = array_values($this->languages['en-GB']['sitesys']);
$mainLangLoader['sitesys'] = count($this->languages['en-GB']['sitesys']);
}
$values = array_unique(ComponentbuilderHelper::mergeArrays($values));
// get the other lang strings if there is any
$this->multiLangString = $this->getMultiLangStrings($values);
// update insert the current lang in to DB
$this->setLangPlaceholders($values);
// remove old unused language strings
$this->purgeLanuageStrings($values);
// path to INI file
$getPAth = $this->templatePath . '/en-GB.com_admin.ini';
// now we insert the values into the files
if (ComponentbuilderHelper::checkArray($this->languages))
{
$langXML = array();
foreach ($this->languages as $tag => $areas)
{
$string = file_get_contents($file['path']);
// load the data
$answer = $this->setPlaceholders($string, $lang, 3);
// add to zip array
$this->writeFile($file['path'],$answer);
// set the line counter
$this->lineCount = $this->lineCount + substr_count($answer, PHP_EOL);
foreach ($areas as $area => $languageStrings)
{
// force load if debug lines are added
if (!$this->debugLinenr)
{
// check if we sould install this translation
$dif = bcdiv(count($languageStrings), $mainLangLoader[$area]);
$percentage = bcmul($dif, 100);
if ($percentage < $this->percentageLanguageAdd)
{
// dont add
continue;
}
}
$p = 'admin';
$t = '';
if (strpos($area, 'site') !== false)
{
if ($this->removeSiteFolder)
{
continue;
}
$p = 'site';
}
if (strpos($area, 'sys') !== false)
{
$t = '.sys';
}
// build the path to to place the lang file
$path = $this->componentPath.'/'.$p.'/language/'.$tag;
if (!JFolder::exists($path))
{
JFolder::create($path);
// count the folder created
$this->folderCount++;
}
// build the file name
$fileName = $tag . '.com_' . $this->componentCodeName . $t . '.ini';
// move the file to its place
JFile::copy($getPAth, $path.'/'.$fileName);
// count the file created
$this->fileCount++;
// add content to it
$lang = '';
foreach ($languageStrings as $place => $string)
{
$lang .= $place.'="'.$string.'"'.PHP_EOL;
}
// add to language file
$this->writeFile($path.'/'.$fileName, $lang);
// set the line counter
$this->lineCount = $this->lineCount + substr_count($lang, PHP_EOL);
// build xml strings
if (!isset($langXML[$p]))
{
$langXML[$p] = array();
}
$langXML[$p][] = '<language tag="'.$tag.'">language/'.$tag.'/'.$fileName.'</language>';
}
}
// load the lang xml
if (ComponentbuilderHelper::checkArray($langXML))
{
$replace = array();
if (isset($langXML['admin']) && ComponentbuilderHelper::checkArray($langXML['admin']))
{
$replace['###ADMIN_LANGUAGES###'] = implode(PHP_EOL."\t\t\t", $langXML['admin']);
}
if (!$this->removeSiteFolder && isset($langXML['site']) && ComponentbuilderHelper::checkArray($langXML['site']))
{
$replace['###SITE_LANGUAGES###'] = implode(PHP_EOL."\t\t", $langXML['site']);
}
// build xml path
$xmlPath = $this->componentPath . '/'. $this->fileContentStatic['###component###']. '.xml';
// get the content in xml
$componentXML = file_get_contents($xmlPath);
// update the xml content
$componentXML = $this->setPlaceholders($componentXML, $replace);
// store the values back to xml
$this->writeFile($xmlPath,$componentXML);
}
}
}
}

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.4.1
@build 1st April, 2017
@version 2.5.6
@build 6th October, 2017
@created 30th April, 2015
@package Component Builder
@subpackage componentbuilder.php
@ -30,8 +30,43 @@ defined('_JEXEC') or die('Restricted access');
* Componentbuilder component helper.
*/
abstract class ComponentbuilderHelper
{
{
/**
* The Global Admin Event Method.
**/
public static function globalEvent($document)
{
// the Session keeps track of all data related to the current session of this user
self::loadSession();
}
/**
* The global params
**/
protected static $params = false;
/*
* get all component IDs
*/
public static function getComponentIDs()
{
// Get a db connection.
$db = JFactory::getDbo();
// Create a new query object.
$query = $db->getQuery(true);
$query->select($db->quoteName(array('id')));
$query->from($db->quoteName('#__componentbuilder_joomla_component'));
$query->where($db->quoteName('published') . ' >= 1'); // do not backup trash
$db->setQuery($query);
$db->execute();
if ($db->getNumRows())
{
return $db->loadColumn();
}
return false;
}
/*
* Autoloader
*/
@ -68,6 +103,72 @@ abstract class ComponentbuilderHelper
// load this for all
jimport('joomla.application');
}
/**
* Remove folders with files
*
* @param string $dir The path to folder to remove
* @param boolean $ignore The folders and files to ignore and not remove
*
* @return boolean True in all is removed
*
*/
public static function removeFolder($dir, $ignore = false)
{
if (JFolder::exists($dir))
{
$it = new RecursiveDirectoryIterator($dir);
$it = new RecursiveIteratorIterator($it, RecursiveIteratorIterator::CHILD_FIRST);
foreach ($it as $file)
{
if ('.' === $file->getBasename() || '..' === $file->getBasename()) continue;
if ($file->isDir())
{
$keeper = false;
if (self::checkArray($ignore))
{
foreach ($ignore as $keep)
{
if (strpos($file->getPathname(), $dir.'/'.$keep) !== false)
{
$keeper = true;
}
}
}
if ($keeper)
{
continue;
}
JFolder::delete($file->getPathname());
}
else
{
$keeper = false;
if (self::checkArray($ignore))
{
foreach ($ignore as $keep)
{
if (strpos($file->getPathname(), $dir.'/'.$keep) !== false)
{
$keeper = true;
}
}
}
if ($keeper)
{
continue;
}
JFile::delete($file->getPathname());
}
}
if (!self::checkArray($ignore))
{
return JFolder::delete($dir);
}
return true;
}
return false;
}
/**
* The dynamic builder of views, tables and fields
@ -121,83 +222,28 @@ abstract class ComponentbuilderHelper
}
return false;
}
/**
* Remove folders with files
*
* @param string $dir The path to folder to remove
* @param boolean $git if there is a git folder in that must not be removed
*
* @return boolean True in all is removed
*
*/
public static function removeFolder($dir, $git = false)
{
if (JFolder::exists($dir))
{
$it = new RecursiveDirectoryIterator($dir);
$it = new RecursiveIteratorIterator($it, RecursiveIteratorIterator::CHILD_FIRST);
foreach ($it as $file)
{
if ('.' === $file->getBasename() || '..' === $file->getBasename()) continue;
if ($file->isDir())
{
if ($git && strpos($file->getPathname(), $dir.'/.git') !== false) continue;
JFolder::delete($file->getPathname());
}
else
{
if ($git && strpos($file->getPathname(), $dir.'/.git') !== false) continue;
JFile::delete($file->getPathname());
}
}
if (!$git && JFolder::delete($dir))
{
return true;
}
}
return false;
}
/**
* Create file and write data to the file
**/
public static function writeFile($path, $data)
{
$klaar = false;
// open the file
$fh = fopen($path, "w");
if (!is_resource($fh))
{
return false;
return $klaar;
}
// write to the file
if (fwrite($fh, $data))
{
// close file.
fclose($fh);
return true;
// has been done
$klaar = true;
}
// close file.
fclose($fh);
return false;
}
/**
* The user notice info File Name
**/
protected static $usernotice = false;
public static function getFilePath($type, $name = 'listing', $key = '', $fileType = '.json', $PATH = JPATH_COMPONENT_SITE)
{
if (!self::checkString(self::${$type.$name}))
{
// Get local key
$localkey = self::getLocalKey();
// set the name
$fileName = md5($type.$name.$localkey.$key);
// set file path
self::${$type.$name} = $PATH.'/helpers/'.$fileName.$fileType;
}
// return the path
return self::${$type.$name};
return $klaar;
}
public static function getFieldOptions($value, $type, $settings = array())
@ -219,20 +265,18 @@ abstract class ComponentbuilderHelper
{
$result = $db->loadObject();
$properties = json_decode($result->properties,true);
$pointer = 0;
$field = array('values' => "<field ", 'values_description' => '<ul>', 'short_description' => $result->short_description, 'description' => $result->description);
foreach ($properties['name'] as $line)
foreach ($properties as $property)
{
$field['values_description'] .= '<li><b>'.$properties['name'][$pointer].'</b> '.$properties['description'][$pointer].'</li>';
if(isset($settings[$properties['name'][$pointer]]))
$field['values_description'] .= '<li><b>'.$property['name'].'</b> '.$property['description'].'</li>';
if(isset($settings[$property['name']]))
{
$field['values'] .= "\n\t".$properties['name'][$pointer].'="'.$settings[$properties['name'][$pointer]].'" ';
$field['values'] .= "\n\t".$property['name'].'="'.$settings[$property['name']].'" ';
}
else
{
$field['values'] .= "\n\t".$properties['name'][$pointer].'="'.$properties['example'][$pointer].'" ';
$field['values'] .= "\n\t".$property['name'].'="'.$property['example'].'" ';
}
$pointer++;
}
$field['values'] .= "\n/>";
$field['values_description'] .= '</ul>';
@ -1044,7 +1088,7 @@ abstract class ComponentbuilderHelper
$script['ext'][] = "\t * @return boolean True on success";
$script['ext'][] = "\t *";
$script['ext'][] = "\t */";
$script['ext'][] = "\tprotected function checkExtention(\$file)";
$script['ext'][] = "\tprotected function checkExtension(\$file)";
$script['ext'][] = "\t{";
$script['ext'][] = "\t\t// check the extention";
$script['ext'][] = "\t\tswitch(strtolower(pathinfo(\$file, PATHINFO_EXTENSION)))";
@ -1065,7 +1109,153 @@ abstract class ComponentbuilderHelper
}
return false;
}
/**
* set the session defaults if not set
**/
protected static function setSessionDefaults()
{
// noting for now
return true;
}
/**
* the Butler
**/
public static $session = array();
/**
* the Butler Assistant
**/
protected static $localSession = array();
/**
* start a session if not already set, and load with data
**/
public static function loadSession()
{
if (!isset(self::$session) || !self::checkObject(self::$session))
{
self::$session = JFactory::getSession();
}
// set the defaults
self::setSessionDefaults();
}
/**
* give Session more to keep
**/
public static function set($key, $value)
{
// set to local memory to speed up program
self::$localSession[$key] = $value;
// load to session for later use
return self::$session->set($key, self::$localSession[$key]);
}
/**
* get info from Session
**/
public static function get($key, $default = null)
{
// check if in local memory
if (!isset(self::$localSession[$key]))
{
// set to local memory to speed up program
self::$localSession[$key] = self::$session->get($key, $default);
}
return self::$localSession[$key];
}
/**
* check if it is a new hash
**/
public static function newHash($hash, $name = 'backup', $type = 'hash', $key = '', $fileType = 'txt')
{
// make sure we have a hash
if (self::checkString($hash))
{
// first get the file path
$path_filename = self::getFilePath('path', $name.$type, $fileType, $key, JPATH_COMPONENT_ADMINISTRATOR);
// set as read if not already set
if (($content = @file_get_contents($path_filename)) !== FALSE)
{
if ($hash == $content)
{
return false;
}
}
// set the hash
return self::writeFile($path_filename, $hash);
}
return false;
}
/**
* Get the file path or url
*
* @param string $type The (url/path) type to return
* @param string $target The Params Target name (if set)
* @param string $fileType The kind of filename to generate (if not set no file name is generated)
* @param string $key The key to adjust the filename (if not set ignored)
* @param string $default The default path if not set in Params (fallback path)
* @param bool $createIfNotSet The switch to create the folder if not found
*
* @return string On success the path or url is returned based on the type requested
*
*/
public static function getFilePath($type = 'path', $target = 'filepath', $fileType = null, $key = '', $default = JPATH_SITE . '/images/', $createIfNotSet = true)
{
// get the global settings
if (!self::checkObject(self::$params))
{
self::$params = JComponentHelper::getParams('com_componentbuilder');
}
$filePath = self::$params->get($target, $default);
// check the file path (revert to default only of not a hidden file path)
if ('hiddenfilepath' !== $target && strpos($filePath, JPATH_SITE) === false)
{
$filePath = JPATH_SITE . '/images/';
}
jimport('joomla.filesystem.folder');
// create the folder if it does not exist
if ($createIfNotSet && !JFolder::exists($filePath))
{
JFolder::create($filePath);
}
// setup the file name
$fileName = '';
if (self::checkString($fileType))
{
// Get basic key
$basickey = 'Th!s_iS_n0t_sAfe_buT_b3tter_then_n0thiug';
if (method_exists(get_called_class(), "getCryptKey"))
{
$basickey = self::getCryptKey('basic', $basickey);
}
// check the key
if (self::checkString($key))
{
$key = 'vDm';
}
// set the name
$fileName = trim(md5($type.$target.$basickey.$key) . '.' . trim($fileType, '.'));
}
// return the url
if ($type === 'url')
{
if (strpos($filePath, JPATH_SITE) !== false)
{
$filePath = trim( str_replace( JPATH_SITE, '', $filePath), '/');
return JURI::root() . $filePath . '/' . $fileName;
}
// since the path is behind the root folder of the site, return only the root url (may be used to build the link)
return JURI::root();
}
// sanitize the path
return '/' . trim( $filePath, '/' ) . '/' . $fileName;
}
/**
* Load the Component xml manifest.
**/
@ -1245,6 +1435,18 @@ abstract class ComponentbuilderHelper
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_SUBMENU_FIELDTYPES'), 'index.php?option=com_componentbuilder&view=fieldtypes', $submenu === 'fieldtypes');
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_FIELDTYPE_FIELDTYPE_CATEGORY'), 'index.php?option=com_categories&view=categories&extension=com_componentbuilder.fieldtypes', $submenu === 'categories.fieldtypes');
}
if ($user->authorise('language_translation.access', 'com_componentbuilder') && $user->authorise('language_translation.submenu', 'com_componentbuilder'))
{
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_SUBMENU_LANGUAGE_TRANSLATIONS'), 'index.php?option=com_componentbuilder&view=language_translations', $submenu === 'language_translations');
}
if ($user->authorise('language.access', 'com_componentbuilder') && $user->authorise('language.submenu', 'com_componentbuilder'))
{
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_SUBMENU_LANGUAGES'), 'index.php?option=com_componentbuilder&view=languages', $submenu === 'languages');
}
if ($user->authorise('ftp.access', 'com_componentbuilder') && $user->authorise('ftp.submenu', 'com_componentbuilder'))
{
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_SUBMENU_FTPS'), 'index.php?option=com_componentbuilder&view=ftps', $submenu === 'ftps');
}
if ($user->authorise('help_document.access', 'com_componentbuilder') && $user->authorise('help_document.submenu', 'com_componentbuilder'))
{
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_SUBMENU_HELP_DOCUMENTS'), 'index.php?option=com_componentbuilder&view=help_documents', $submenu === 'help_documents');
@ -1596,7 +1798,14 @@ abstract class ComponentbuilderHelper
$query = $db->getQuery(true);
$query->select($db->quoteName(array($what)));
$query->from($db->quoteName('#_'.$main.'_'.$table));
if (empty($table))
{
$query->from($db->quoteName('#__'.$main));
}
else
{
$query->from($db->quoteName('#_'.$main.'_'.$table));
}
$query->where($db->quoteName($whereString) . ' '.$operator.' (' . implode(',',$where) . ')');
$db->setQuery($query);
$db->execute();
@ -1879,12 +2088,20 @@ abstract class ComponentbuilderHelper
**/
public static function getModel($name, $path = JPATH_COMPONENT_ADMINISTRATOR, $component = 'componentbuilder')
{
// load some joomla helpers
JLoader::import('joomla.application.component.model');
// load the model file
JLoader::import( $name, $path . '/models' );
// return instance
return JModelLegacy::getInstance( $name, $component.'Model' );
JModelLegacy::addIncludePath( $path . '/models' );
// get instance
$model = JModelLegacy::getInstance( $name, $component.'Model' );
// if model not found
if ($model == false)
{
// build class name
$class = $prefix.$name;
// initilize the model
new $class();
$model = JModelLegacy::getInstance($name, $prefix);
}
return $model;
}
/**
@ -2091,10 +2308,16 @@ abstract class ComponentbuilderHelper
return false;
}
// typo sorry!
public static function sorten($string, $length = 40, $addTip = true)
{
return self::shorten($string, $length, $addTip);
}
public static function shorten($string, $length = 40, $addTip = true)
{
if (self::checkString($string))
{
{
$initial = strlen($string);
$words = preg_split('/([\s\n\r]+)/', $string, null, PREG_SPLIT_DELIM_CAPTURE);
$words_count = count($words);
@ -2114,7 +2337,7 @@ abstract class ComponentbuilderHelper
$final = strlen($newString);
if ($initial != $final && $addTip)
{
$title = self::sorten($string, 400 , false);
$title = self::shorten($string, 400 , false);
return '<span class="hasTip" title="'.$title.'" style="cursor:help">'.trim($newString).'...</span>';
}
elseif ($initial != $final && !$addTip)
@ -2145,7 +2368,8 @@ abstract class ComponentbuilderHelper
// If you don't need to handle multi-byte characters
// you can use preg_replace rather than mb_ereg_replace
// Thanks @Łukasz Rysiak!
$string = mb_ereg_replace("([^\w\s\d\-_\(\)])", '', $string);
// $string = mb_ereg_replace("([^\w\s\d\-_\(\)])", '', $string);
$string = preg_replace("([^\w\s\d\-_\(\)])", '', $string);
// http://stackoverflow.com/a/2021729/1429677
return preg_replace('/\s+/', ' ', $string);
}
@ -2212,15 +2436,15 @@ abstract class ComponentbuilderHelper
return '';
}
public static function htmlEscape($var, $charset = 'UTF-8', $sorten = false, $length = 40)
public static function htmlEscape($var, $charset = 'UTF-8', $shorten = false, $length = 40)
{
if (self::checkString($var))
{
$filter = new JFilterInput();
$string = $filter->clean(html_entity_decode(htmlentities($var, ENT_COMPAT, $charset)), 'HTML');
if ($sorten)
if ($shorten)
{
return self::sorten($string,$length);
return self::shorten($string,$length);
}
return $string;
}

View File

@ -0,0 +1,348 @@
<?php
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
__ __ _ _____ _ _ __ __ _ _ _
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
| |
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.5.6
@build 6th October, 2017
@created 30th April, 2015
@package Component Builder
@subpackage componentbuilderemail.php
@author Llewellyn van der Merwe <http://vdm.bz/component-builder>
@copyright Copyright (C) 2015. All Rights Reserved
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
Builds Complex Joomla Components
/-----------------------------------------------------------------------------------------------------------------------------*/
/**
* Componentbuilder component email helper
*/
abstract class ComponentbuilderEmail
{
/**
* Configuraiton object
*
* @var JConfig
*/
public static $config = null;
/**
* Mailer object
*
* @var JMail
*/
public static $mailer = null;
/**
* Get a configuration object
*
*/
public static function getConfig()
{
if (!self::$config)
{
self::$config = JComponentHelper::getParams('com_componentbuilder');
}
return self::$config;
}
/**
* Get a mailer object.
*
* Returns the global {@link JMail} object, only creating it if it doesn't already exist.
*
* @return JMail object
*
* @see JMail
*/
public static function getMailer()
{
if (!self::$mailer)
{
self::$mailer = self::createMailer();
}
$copy = clone self::$mailer;
return $copy;
}
/**
* Create a mailer object
*
* @return JMail object
*
* @see JMail
*/
protected static function createMailer()
{
// set component params
$conf = self::getConfig();
// now load the mailer
$mailer = $conf->get('mailer', 'global');
// Create a JMail object
$mail = JMail::getInstance();
// check if set to global
if ('global' == $mailer)
{
// get the global details
$globalConf = JFactory::getConfig();
$mailer = $globalConf->get('mailer');
$smtpauth = ($globalConf->get('smtpauth') == 0) ? null : 1;
$smtpuser = $globalConf->get('smtpuser');
$smtppass = $globalConf->get('smtppass');
$smtphost = $globalConf->get('smtphost');
$smtpsecure = $globalConf->get('smtpsecure');
$smtpport = $globalConf->get('smtpport');
$sendmail = $globalConf->get('sendmail');
$mailfrom = $globalConf->get('mailfrom');
$fromname = $globalConf->get('fromname');
$replyto = $globalConf->get('replyto');
$replytoname = $globalConf->get('replytoname');
}
else
{
$smtpauth = ($conf->get('smtpauth') == 0) ? null : 1;
$smtpuser = $conf->get('smtpuser');
$smtppass = $conf->get('smtppass');
$smtphost = $conf->get('smtphost');
$smtpsecure = $conf->get('smtpsecure');
$smtpport = $conf->get('smtpport');
$sendmail = $conf->get('sendmail');
$mailfrom = $conf->get('mailfrom');
$fromname = $conf->get('fromname');
$replyto = $conf->get('replyto');
$replytoname = $conf->get('replytoname');
}
// set the global reply-to if found
if ($replyto && $replytoname)
{
$mail->ClearReplyTos();
$mail->addReplyTo( array( $replyto, $replytoname ) );
}
// Set global sender
$mail->setSender(array($mailfrom, $fromname));
// Default mailer is to use PHP's mail function
switch ($mailer)
{
case 'smtp':
// set the SMTP option
$mail->useSMTP($smtpauth, $smtphost, $smtpuser, $smtppass, $smtpsecure, $smtpport);
break;
case 'sendmail':
// set the sendmail option
$mail->useSendmail($sendmail);
$mail->IsSendmail();
break;
default:
$mail->IsMail();
break;
}
return $mail;
}
/**
* Send an email
*
* @return bool on success
*
*/
public static function send($recipient, $subject, $body, $textonly, $mode = 0, $bounce_email = null, $idsession = null, $mailreply = null, $replyname = null , $mailfrom = null, $fromname = null, $cc = null, $bcc = null, $attachment = null, $embeded = null , $embeds = null)
{
// Get a JMail instance
$mail = self::getMailer();
// set component params
$conf = self::getConfig();
// do some house cleaning
$mail->ClearReplyTos();
// set if we have override
if ($mailfrom && $fromname)
{
$mail->setSender(array($mailfrom, $fromname));
}
// load the bounce email as sender if set
if (!is_null($bounce_email))
{
$mail->Sender = $bounce_email;
}
// Add tag to email to identify it
if (!is_null($idsession))
{
$mail->addCustomHeader('X-VDMmethodID:'.$idsession);
}
// set the subject & Body
$mail->setSubject($subject);
$mail->setBody($body);
// Are we sending the email as HTML?
if ($mode)
{
$mail->IsHTML(true);
$mail->AltBody = $textonly;
}
//embed images
if ($embeded)
{
if(ComponentbuilderHelper::checkArray($embeds))
{
foreach($embeds as $embed)
{
$mail->AddEmbeddedImage($embed->Path,$embed->FileName);
}
}
}
$mail->addRecipient($recipient);
$mail->addCC($cc);
$mail->addBCC($bcc);
$mail->addAttachment($attachment);
// Take care of reply email addresses
if (is_array($mailreply))
{
$mail->ClearReplyTos();
$numReplyTo = count($mailreply);
for ($i=0; $i < $numReplyTo; $i++)
{
$mail->addReplyTo($mailreply[$i], $replyname[$i]);
}
}
elseif (!empty($mailreply))
{
$mail->ClearReplyTos();
$mail->addReplyTo($mailreply, $replyname);
}
// check if we can add the DKIM to email
if ($conf->get('enable_dkim'))
{
if (!empty($conf->get('dkim_domain')) && !empty($conf->get('dkim_selector')) && !empty($conf->get('dkim_private')) && !empty($conf->get('dkim_public')))
{
$mail->DKIM_domain = $conf->get('dkim_domain');
$mail->DKIM_selector = $conf->get('dkim_selector');
$mail->DKIM_identity = $conf->get('dkim_identity');
$mail->DKIM_passphrase = $conf->get('dkim_passphrase');
$tmp = tempnam(sys_get_temp_dir(), 'VDM');
$h = fopen($tmp, 'w');
fwrite($h, $conf->get('dkim_private'));
fclose($h);
$mail->DKIM_private = $tmp;
}
}
$sendmail = $mail->Send();
if ($conf->get('enable_dkim') && !empty($conf->get('dkim_domain')) && !empty($conf->get('dkim_selector')) && !empty($conf->get('dkim_private')) && !empty($conf->get('dkim_public')))
{
@unlink($tmp);
}
if (method_exists('ComponentbuilderHelper','storeMessage'))
{
// store the massage if the method is set
ComponentbuilderHelper::storeMessage($sendmail, $recipient, $subject, $body, $textonly, $mode, 'email');
}
return $sendmail;
}
/**
* Set html text (in a row) and subject (as title) to a email table.
* do not use <p> instead use <br />
* in your html that you pass to this method
* since it is a table row it does not
* work well with paragraphs
*
* @return string on success
*
*/
public static function setTableBody($html, $subject)
{
$body = array();
$body[] = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">";
$body[] = "<html xmlns=\"http://www.w3.org/1999/xhtml\">";
$body[] = "<head>";
$body[] = "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />";
$body[] = "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"/>";
$body[] = "<title>".$subject."</title>";
$body[] = "<style type=\"text/css\">";
$body[] = "#outlook a {padding:0;}";
$body[] = ".ExternalClass {width:100%;}";
$body[] = ".ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div {line-height: 100%;} ";
$body[] = "p {margin: 0; padding: 0; font-size: 0px; line-height: 0px;} ";
$body[] = "table td {border-collapse: collapse;}";
$body[] = "table {border-collapse: collapse; mso-table-lspace:0pt; mso-table-rspace:0pt; }";
$body[] = "img {display: block; outline: none; text-decoration: none; -ms-interpolation-mode: bicubic;}";
$body[] = "a img {border: none;}";
$body[] = "a {text-decoration: none; color: #000001;}";
$body[] = "a.phone {text-decoration: none; color: #000001 !important; pointer-events: auto; cursor: default;}";
$body[] = "span {font-size: 13px; line-height: 17px; font-family: monospace; color: #000001;}";
$body[] = "</style>";
$body[] = "<!--[if gte mso 9]>";
$body[] = "<style>";
$body[] = "/* Target Outlook 2007 and 2010 */";
$body[] = "</style>";
$body[] = "<![endif]-->";
$body[] = "</head>";
$body[] = "<body style=\"width:100%; margin:0; padding:0; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;\">";
$body[] = "\n<!-- body wrapper -->";
$body[] = "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"margin:0; padding:0; width:100%; line-height: 100% !important;\">";
$body[] = "<tr>";
$body[] = "<td valign=\"top\">";
$body[] = "<!-- edge wrapper -->";
$body[] = "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\" width=\"800\" >";
$body[] = "<tr>";
$body[] = "<td valign=\"top\">";
$body[] = "<!-- content wrapper -->";
$body[] = "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\" width=\"780\">";
$body[] = "<tr>";
$body[] = "<td valign=\"top\" style=\"vertical-align: top;\">";
$body[] = $html;
$body[] = "</td>";
$body[] = "</tr>";
$body[] = "</table>";
$body[] = "<!-- / content wrapper -->";
$body[] = "</td>";
$body[] = "</tr>";
$body[] = "</table>";
$body[] = "<!-- / edge wrapper -->";
$body[] = "</td>";
$body[] = "</tr>";
$body[] = "</table>";
$body[] = "<!-- / page wrapper -->";
$body[] = "</body>";
$body[] = "</html>";
return implode("\n", $body);
}
}

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.4.1
@build 1st April, 2017
@version 2.5.6
@build 6th October, 2017
@created 30th April, 2015
@package Component Builder
@subpackage headercheck.php
@ -26,7 +26,7 @@
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
class HeaderCheck
class componentbuilderHeaderCheck
{
function js_loaded($script_name)
{

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.4.1
@build 1st April, 2017
@version 2.5.6
@build 6th October, 2017
@created 30th April, 2015
@package Component Builder
@subpackage batch_.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.4.1
@build 1st April, 2017
@version 2.5.6
@build 6th October, 2017
@created 30th April, 2015
@package Component Builder
@subpackage indenter.php

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