Compare commits
51 Commits
Author | SHA1 | Date | |
---|---|---|---|
ddeb02de74 | |||
e003be492c | |||
fb7b5027c2 | |||
7a902d454a | |||
bd716ae7ef | |||
e074d3b5ce | |||
f1a054c0e7 | |||
e037d29935 | |||
b60803ef7b | |||
aceda7bae2 | |||
111aa4a3de | |||
9742991690 | |||
2c1903508c | |||
384c403ae4 | |||
6e0bcc0ae2 | |||
3ad9ae8b8f | |||
5e36ede2ac | |||
cb355feaf4 | |||
9b1f111251 | |||
4cead46ac4 | |||
25c632065a | |||
ea1edebc05 | |||
498c75dfcf | |||
f39a877db2 | |||
7afbb131ce | |||
6bba258fec | |||
1cf259a54d | |||
d113d7b91b | |||
2f90f9359c | |||
b1d9b672ab | |||
d9b2e51f8c | |||
2caaa1a1e3 | |||
1b3cb2bfdd | |||
5a6ef33c5b | |||
7eb5a2473c | |||
34d14ed95d | |||
d31b0b6c0c | |||
f3f91f492f | |||
bd0febd92c | |||
b294af2e7d | |||
82fd08cf57 | |||
5dc3f97f15 | |||
cca07258d6 | |||
f61bb46073 | |||
8b522f44d9 | |||
63b1bac955 | |||
3c610acb31 | |||
cfd9b33b30 | |||
952d26f1f8 | |||
b0ad2ddffc | |||
7534aed01d |
33
README.md
33
README.md
@ -1,4 +1,5 @@
|
||||
# Component Builder (2.3.7)
|
||||
# Joomla Component Builder (JCB)
|
||||
[](https://github.com/vdm-io/Joomla-Component-Builder/releases) [](https://github.com/vdm-io/Joomla-Component-Builder/releases)
|
||||
|
||||
This is a [Joomla 3.x](http://www.joomla.org/) component.
|
||||
|
||||
@ -8,7 +9,7 @@ The Component Builder for [Joomla](http://www.joomla.org/) that is highly advanc
|
||||
|
||||
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!
|
||||
|
||||
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.3.7) 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.4.10) with **ALL** its features and **ALL** concepts totally open-source and free!
|
||||
|
||||
Once installed upgrades are quick and easy via the default Joomla upgrade area.
|
||||
|
||||
@ -70,16 +71,19 @@ Once installed upgrades are quick and easy via the default Joomla upgrade area.
|
||||
+ You can dynamically add internal help structures to all component.
|
||||
+ There is no limitations on how big or how much you want to build (server limitation only).
|
||||
+ This is a complete factory kind of component that functions like a deployment hub.
|
||||
+ Export any component completely mapped in JCB and import into another JCB.
|
||||
+ This and much much more are all possible with this component builder!
|
||||
|
||||
# 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)
|
||||
|
||||
@ -104,13 +108,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*: 12th March, 2017
|
||||
+ *Version*: 2.3.7
|
||||
+ *Last Build*: 12th August, 2017
|
||||
+ *Version*: 2.4.10
|
||||
+ *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*: **92889**
|
||||
+ *File count*: **602**
|
||||
+ *Folder count*: **105**
|
||||
+ *Line count*: **106298**
|
||||
+ *File count*: **651**
|
||||
+ *Folder count*: **115**
|
||||
|
||||
> 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)
|
||||
@ -118,5 +122,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: 1N45VjnZSNmDK64xRrQYGRRi56rgpnze3s
|
||||
* Ethereum: 0x243392daa3c9c8bc841fcacf7c7f72541cb16823
|
@ -1,4 +1,5 @@
|
||||
# Component Builder (2.3.7)
|
||||
# Joomla Component Builder (JCB)
|
||||
[](https://github.com/vdm-io/Joomla-Component-Builder/releases) [](https://github.com/vdm-io/Joomla-Component-Builder/releases)
|
||||
|
||||
This is a [Joomla 3.x](http://www.joomla.org/) component.
|
||||
|
||||
@ -8,7 +9,7 @@ The Component Builder for [Joomla](http://www.joomla.org/) that is highly advanc
|
||||
|
||||
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!
|
||||
|
||||
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.3.7) 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.4.10) with **ALL** its features and **ALL** concepts totally open-source and free!
|
||||
|
||||
Once installed upgrades are quick and easy via the default Joomla upgrade area.
|
||||
|
||||
@ -70,16 +71,19 @@ Once installed upgrades are quick and easy via the default Joomla upgrade area.
|
||||
+ You can dynamically add internal help structures to all component.
|
||||
+ There is no limitations on how big or how much you want to build (server limitation only).
|
||||
+ This is a complete factory kind of component that functions like a deployment hub.
|
||||
+ Export any component completely mapped in JCB and import into another JCB.
|
||||
+ This and much much more are all possible with this component builder!
|
||||
|
||||
# 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)
|
||||
|
||||
@ -104,13 +108,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*: 12th March, 2017
|
||||
+ *Version*: 2.3.7
|
||||
+ *Last Build*: 12th August, 2017
|
||||
+ *Version*: 2.4.10
|
||||
+ *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*: **92889**
|
||||
+ *File count*: **602**
|
||||
+ *Folder count*: **105**
|
||||
+ *Line count*: **106298**
|
||||
+ *File count*: **651**
|
||||
+ *Folder count*: **115**
|
||||
|
||||
> 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)
|
||||
@ -118,5 +122,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: 1N45VjnZSNmDK64xRrQYGRRi56rgpnze3s
|
||||
* Ethereum: 0x243392daa3c9c8bc841fcacf7c7f72541cb16823
|
@ -101,6 +101,8 @@
|
||||
<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.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" />
|
||||
@ -111,6 +113,29 @@
|
||||
<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" />
|
||||
@ -241,6 +266,24 @@
|
||||
<action name="fieldtype.access" title="COM_COMPONENTBUILDER_FIELDTYPES_ACCESS" description="COM_COMPONENTBUILDER_FIELDTYPES_ACCESS_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="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" />
|
||||
|
@ -9,8 +9,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.3.7
|
||||
@build 12th March, 2017
|
||||
@version 2.4.10
|
||||
@build 12th August, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage admin.css
|
||||
|
@ -9,8 +9,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 104 of this MVC
|
||||
@build 6th March, 2017
|
||||
@version @update number 111 of this MVC
|
||||
@build 17th July, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage admin_view.css
|
||||
|
@ -9,8 +9,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 104 of this MVC
|
||||
@build 6th March, 2017
|
||||
@version @update number 111 of this MVC
|
||||
@build 17th July, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage admin_views.css
|
||||
|
@ -9,8 +9,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 46 of this MVC
|
||||
@build 3rd March, 2017
|
||||
@version @update number 53 of this MVC
|
||||
@build 5th August, 2017
|
||||
@created 1st February, 2017
|
||||
@package Component Builder
|
||||
@subpackage compiler.css
|
||||
|
@ -10,7 +10,7 @@
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 22 of this MVC
|
||||
@build 1st March, 2017
|
||||
@build 17th July, 2017
|
||||
@created 13th August, 2015
|
||||
@package Component Builder
|
||||
@subpackage custom_admin_view.css
|
||||
|
@ -10,7 +10,7 @@
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 22 of this MVC
|
||||
@build 1st March, 2017
|
||||
@build 17th July, 2017
|
||||
@created 13th August, 2015
|
||||
@package Component Builder
|
||||
@subpackage custom_admin_views.css
|
||||
|
@ -9,8 +9,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 81 of this MVC
|
||||
@build 1st March, 2017
|
||||
@version @update number 82 of this MVC
|
||||
@build 26th April, 2017
|
||||
@created 11th October, 2016
|
||||
@package Component Builder
|
||||
@subpackage custom_code.css
|
||||
|
@ -9,8 +9,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 81 of this MVC
|
||||
@build 1st March, 2017
|
||||
@version @update number 82 of this MVC
|
||||
@build 26th April, 2017
|
||||
@created 11th October, 2016
|
||||
@package Component Builder
|
||||
@subpackage custom_codes.css
|
||||
|
@ -9,8 +9,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.3.7
|
||||
@build 12th March, 2017
|
||||
@version 2.4.10
|
||||
@build 12th August, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage dashboard.css
|
||||
|
@ -9,8 +9,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 81 of this MVC
|
||||
@build 15th January, 2017
|
||||
@version @update number 84 of this MVC
|
||||
@build 4th May, 2017
|
||||
@created 21st May, 2015
|
||||
@package Component Builder
|
||||
@subpackage dynamic_get.css
|
||||
|
@ -9,8 +9,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 81 of this MVC
|
||||
@build 15th January, 2017
|
||||
@version @update number 84 of this MVC
|
||||
@build 4th May, 2017
|
||||
@created 21st May, 2015
|
||||
@package Component Builder
|
||||
@subpackage dynamic_gets.css
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -9,8 +9,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 12 of this MVC
|
||||
@build 20th October, 2016
|
||||
@version @update number 13 of this MVC
|
||||
@build 13th June, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage fieldtype.css
|
||||
|
@ -9,8 +9,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 12 of this MVC
|
||||
@build 20th October, 2016
|
||||
@version @update number 13 of this MVC
|
||||
@build 13th June, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage fieldtypes.css
|
||||
|
@ -10,7 +10,7 @@
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 6 of this MVC
|
||||
@build 17th October, 2016
|
||||
@build 18th October, 2016
|
||||
@created 4th March, 2016
|
||||
@package Component Builder
|
||||
@subpackage help_document.css
|
||||
|
@ -10,7 +10,7 @@
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 6 of this MVC
|
||||
@build 17th October, 2016
|
||||
@build 18th October, 2016
|
||||
@created 4th March, 2016
|
||||
@package Component Builder
|
||||
@subpackage help_documents.css
|
||||
|
@ -9,8 +9,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 97 of this MVC
|
||||
@build 3rd March, 2017
|
||||
@version @update number 338 of this MVC
|
||||
@build 7th August, 2017
|
||||
@created 6th May, 2015
|
||||
@package Component Builder
|
||||
@subpackage joomla_component.css
|
||||
|
@ -9,8 +9,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 97 of this MVC
|
||||
@build 3rd March, 2017
|
||||
@version @update number 338 of this MVC
|
||||
@build 7th August, 2017
|
||||
@created 6th May, 2015
|
||||
@package Component Builder
|
||||
@subpackage joomla_components.css
|
||||
|
27
admin/assets/css/language.css
Normal file
27
admin/assets/css/language.css
Normal 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 */
|
||||
|
||||
|
27
admin/assets/css/language_translation.css
Normal file
27
admin/assets/css/language_translation.css
Normal file
@ -0,0 +1,27 @@
|
||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
||||
__ __ _ _____ _ _ __ __ _ _ _
|
||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
||||
| |
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 39 of this MVC
|
||||
@build 7th April, 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 */
|
||||
|
||||
|
27
admin/assets/css/language_translations.css
Normal file
27
admin/assets/css/language_translations.css
Normal file
@ -0,0 +1,27 @@
|
||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
||||
__ __ _ _____ _ _ __ __ _ _ _
|
||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
||||
| |
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 39 of this MVC
|
||||
@build 7th April, 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 */
|
||||
|
||||
|
27
admin/assets/css/languages.css
Normal file
27
admin/assets/css/languages.css
Normal 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 */
|
||||
|
||||
|
@ -9,8 +9,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 67 of this MVC
|
||||
@build 22nd February, 2017
|
||||
@version @update number 77 of this MVC
|
||||
@build 30th May, 2017
|
||||
@created 18th May, 2015
|
||||
@package Component Builder
|
||||
@subpackage layout.css
|
||||
|
@ -9,8 +9,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 67 of this MVC
|
||||
@build 22nd February, 2017
|
||||
@version @update number 77 of this MVC
|
||||
@build 30th May, 2017
|
||||
@created 18th May, 2015
|
||||
@package Component Builder
|
||||
@subpackage layouts.css
|
||||
|
@ -10,7 +10,7 @@
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 51 of this MVC
|
||||
@build 6th March, 2017
|
||||
@build 17th July, 2017
|
||||
@created 29th May, 2015
|
||||
@package Component Builder
|
||||
@subpackage site_view.css
|
||||
|
@ -10,7 +10,7 @@
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 51 of this MVC
|
||||
@build 6th March, 2017
|
||||
@build 17th July, 2017
|
||||
@created 29th May, 2015
|
||||
@package Component Builder
|
||||
@subpackage site_views.css
|
||||
|
@ -10,7 +10,7 @@
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 40 of this MVC
|
||||
@build 22nd February, 2017
|
||||
@build 1st April, 2017
|
||||
@created 26th May, 2015
|
||||
@package Component Builder
|
||||
@subpackage template.css
|
||||
|
@ -10,7 +10,7 @@
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 40 of this MVC
|
||||
@build 22nd February, 2017
|
||||
@build 1st April, 2017
|
||||
@created 26th May, 2015
|
||||
@package Component Builder
|
||||
@subpackage templates.css
|
||||
|
BIN
admin/assets/images/icons/language_translations.png
Normal file
BIN
admin/assets/images/icons/language_translations.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 35 KiB |
@ -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");
|
||||
}
|
||||
}
|
||||
|
@ -706,7 +706,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);
|
||||
}
|
||||
|
@ -698,7 +698,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);
|
||||
}
|
||||
|
@ -34,6 +34,11 @@ defined('_JEXEC') or die('Restricted access');
|
||||
*/
|
||||
class ###Component###ModelImport extends JModelLegacy
|
||||
{
|
||||
// set uploading values
|
||||
protected $use_streams = false;
|
||||
protected $allow_unsafe = false;
|
||||
protected $safeFileOptions = array();
|
||||
|
||||
/**
|
||||
* @var object JTable object
|
||||
*/
|
||||
@ -75,10 +80,6 @@ class ###Component###ModelImport extends JModelLegacy
|
||||
// Recall the 'Import from Directory' path.
|
||||
$path = $app->getUserStateFromRequest($this->_context . '.import_directory', 'import_directory', $app->get('tmp_path'));
|
||||
$this->setState('import.directory', $path);
|
||||
// set uploading values
|
||||
$this->use_streams = false;
|
||||
$this->allow_unsafe = false;
|
||||
$this->safeFileOptions = array();
|
||||
parent::populateState();
|
||||
}
|
||||
|
||||
@ -285,21 +286,16 @@ class ###Component###ModelImport extends JModelLegacy
|
||||
}
|
||||
|
||||
// check the extention
|
||||
switch(strtolower(pathinfo($p_dir, PATHINFO_EXTENSION))){
|
||||
case 'xls':
|
||||
case 'ods':
|
||||
case 'csv':
|
||||
break;
|
||||
|
||||
default:
|
||||
if(!$this->checkExtension($p_dir))
|
||||
{
|
||||
// set error message
|
||||
$app->enqueueMessage(JText::_('COM_###COMPONENT###_IMPORT_MSG_DOES_NOT_HAVE_A_VALID_FILE_TYPE'), 'warning');
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
|
||||
$package['packagename'] = null;
|
||||
$package['dir'] = $p_dir;
|
||||
$package['type'] = $type;
|
||||
$package['dir'] = $p_dir;
|
||||
$package['type'] = $type;
|
||||
|
||||
return $package;
|
||||
}
|
||||
@ -357,21 +353,15 @@ class ###Component###ModelImport extends JModelLegacy
|
||||
$archivename = JPath::clean($archivename);
|
||||
|
||||
// check the extention
|
||||
switch(strtolower(pathinfo($archivename, PATHINFO_EXTENSION))){
|
||||
case 'xls':
|
||||
case 'ods':
|
||||
case 'csv':
|
||||
break;
|
||||
|
||||
default:
|
||||
if(!$this->checkExtension($archivename))
|
||||
{
|
||||
// Cleanup the import files
|
||||
$this->remove($archivename);
|
||||
$app->enqueueMessage(JText::_('COM_###COMPONENT###_IMPORT_MSG_DOES_NOT_HAVE_A_VALID_FILE_TYPE'), 'warning');
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$config = JFactory::getConfig();
|
||||
$config = JFactory::getConfig();
|
||||
// set Package Name
|
||||
$check['packagename'] = $archivename;
|
||||
|
||||
@ -384,6 +374,28 @@ class ###Component###ModelImport extends JModelLegacy
|
||||
return $check;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check the extension
|
||||
*
|
||||
* @param string $file Name of the uploaded file
|
||||
*
|
||||
* @return boolean True on success
|
||||
*
|
||||
*/
|
||||
protected function checkExtension($file)
|
||||
{
|
||||
// check the extention
|
||||
switch(strtolower(pathinfo($file, PATHINFO_EXTENSION)))
|
||||
{
|
||||
case 'xls':
|
||||
case 'ods':
|
||||
case 'csv':
|
||||
return true;
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clean up temporary uploaded spreadsheet
|
||||
*
|
||||
|
@ -34,6 +34,11 @@ defined('_JEXEC') or die('Restricted access');
|
||||
*/
|
||||
class ###Component###Model###View### extends JModelLegacy
|
||||
{
|
||||
// set uploading values
|
||||
protected $use_streams = false;
|
||||
protected $allow_unsafe = false;
|
||||
protected $safeFileOptions = array();
|
||||
|
||||
/**
|
||||
* @var object JTable object
|
||||
*/
|
||||
@ -75,10 +80,6 @@ class ###Component###Model###View### extends JModelLegacy
|
||||
// Recall the 'Import from Directory' path.
|
||||
$path = $app->getUserStateFromRequest($this->_context . '.import_directory', 'import_directory', $app->get('tmp_path'));
|
||||
$this->setState('import.directory', $path);
|
||||
// set uploading values
|
||||
$this->use_streams = false;
|
||||
$this->allow_unsafe = false;
|
||||
$this->safeFileOptions = array();
|
||||
parent::populateState();
|
||||
}
|
||||
###IMPORT_METHOD_CUSTOM###
|
||||
@ -175,21 +176,16 @@ class ###Component###Model###View### extends JModelLegacy
|
||||
}
|
||||
|
||||
// check the extention
|
||||
switch(strtolower(pathinfo($p_dir, PATHINFO_EXTENSION))){
|
||||
case 'xls':
|
||||
case 'ods':
|
||||
case 'csv':
|
||||
break;
|
||||
|
||||
default:
|
||||
if(!$this->checkExtension($p_dir))
|
||||
{
|
||||
// set error message
|
||||
$app->enqueueMessage(JText::_('COM_###COMPONENT###_IMPORT_MSG_DOES_NOT_HAVE_A_VALID_FILE_TYPE'), 'warning');
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
|
||||
$package['packagename'] = null;
|
||||
$package['dir'] = $p_dir;
|
||||
$package['type'] = $type;
|
||||
$package['dir'] = $p_dir;
|
||||
$package['type'] = $type;
|
||||
|
||||
return $package;
|
||||
}
|
||||
@ -247,21 +243,15 @@ class ###Component###Model###View### extends JModelLegacy
|
||||
$archivename = JPath::clean($archivename);
|
||||
|
||||
// check the extention
|
||||
switch(strtolower(pathinfo($archivename, PATHINFO_EXTENSION))){
|
||||
case 'xls':
|
||||
case 'ods':
|
||||
case 'csv':
|
||||
break;
|
||||
|
||||
default:
|
||||
if(!$this->checkExtension($archivename))
|
||||
{
|
||||
// Cleanup the import files
|
||||
$this->remove($archivename);
|
||||
$app->enqueueMessage(JText::_('COM_###COMPONENT###_IMPORT_MSG_DOES_NOT_HAVE_A_VALID_FILE_TYPE'), 'warning');
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$config = JFactory::getConfig();
|
||||
$config = JFactory::getConfig();
|
||||
// set Package Name
|
||||
$check['packagename'] = $archivename;
|
||||
|
||||
@ -273,6 +263,7 @@ class ###Component###Model###View### extends JModelLegacy
|
||||
|
||||
return $check;
|
||||
}
|
||||
###IMPORT_EXT_METHOD_CUSTOM###
|
||||
|
||||
/**
|
||||
* Clean up temporary uploaded spreadsheet
|
||||
|
@ -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###');
|
||||
|
@ -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###
|
||||
|
@ -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###">
|
||||
<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; ?> <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; ?>
|
@ -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)
|
||||
{
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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",
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.3.7
|
||||
@build 12th March, 2017
|
||||
@version 2.4.10
|
||||
@build 12th August, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage componentbuilder.php
|
||||
@ -44,7 +44,10 @@ $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('JHtmlBatch_', dirname(__FILE__) . '/helpers/html/batch_.php');
|
||||
|
||||
// Triger the Global Admin Event
|
||||
ComponentbuilderHelper::globalEvent($document);
|
||||
|
||||
// import joomla controller library
|
||||
jimport('joomla.application.component.controller');
|
||||
|
123
admin/config.xml
123
admin/config.xml
@ -61,6 +61,19 @@
|
||||
<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 name="autorTitle"
|
||||
@ -222,6 +235,116 @@
|
||||
message="Error! Please add folder path here."
|
||||
hint="COM_COMPONENTBUILDER_CONFIG_GIT_FOLDER_PATH_HINT"
|
||||
/>
|
||||
</fieldset>
|
||||
<fieldset
|
||||
name="company_custom_config"
|
||||
label="COM_COMPONENTBUILDER_CONFIG_COMPANY">
|
||||
|
||||
<!-- Export_company Field. Type: Text. (joomla) -->
|
||||
<field
|
||||
type="text"
|
||||
name="export_company"
|
||||
label="COM_COMPONENTBUILDER_CONFIG_EXPORT_COMPANY_LABEL"
|
||||
size="40"
|
||||
maxlength="150"
|
||||
description="COM_COMPONENTBUILDER_CONFIG_EXPORT_COMPANY_DESCRIPTION"
|
||||
class="text_area"
|
||||
readonly="false"
|
||||
disabled="false"
|
||||
required="true"
|
||||
filter="STRING"
|
||||
message="Error! Please add company name here."
|
||||
hint="COM_COMPONENTBUILDER_CONFIG_EXPORT_COMPANY_HINT"
|
||||
/>
|
||||
<!-- Export_owner Field. Type: Text. (joomla) -->
|
||||
<field
|
||||
type="text"
|
||||
name="export_owner"
|
||||
label="COM_COMPONENTBUILDER_CONFIG_EXPORT_OWNER_LABEL"
|
||||
size="10"
|
||||
maxlength="120"
|
||||
description="COM_COMPONENTBUILDER_CONFIG_EXPORT_OWNER_DESCRIPTION"
|
||||
class="text_area"
|
||||
readonly="false"
|
||||
disabled="false"
|
||||
required="true"
|
||||
filter="HTML"
|
||||
message="Error! Please add owner name here."
|
||||
hint="COM_COMPONENTBUILDER_CONFIG_EXPORT_OWNER_HINT"
|
||||
/>
|
||||
<!-- Export_email Field. Type: Text. (joomla) -->
|
||||
<field
|
||||
type="text"
|
||||
name="export_email"
|
||||
label="COM_COMPONENTBUILDER_CONFIG_EXPORT_EMAIL_LABEL"
|
||||
size="40"
|
||||
maxlength="150"
|
||||
description="COM_COMPONENTBUILDER_CONFIG_EXPORT_EMAIL_DESCRIPTION"
|
||||
class="text_area"
|
||||
required="true"
|
||||
filter="STRING"
|
||||
validate="email"
|
||||
message="Error! Please email address here."
|
||||
hint="COM_COMPONENTBUILDER_CONFIG_EXPORT_EMAIL_HINT"
|
||||
/>
|
||||
<!-- Export_website Field. Type: Url. (joomla) -->
|
||||
<field
|
||||
type="url"
|
||||
name="export_website"
|
||||
label="COM_COMPONENTBUILDER_CONFIG_EXPORT_WEBSITE_LABEL"
|
||||
size="60"
|
||||
maxlength="150"
|
||||
description="COM_COMPONENTBUILDER_CONFIG_EXPORT_WEBSITE_DESCRIPTION"
|
||||
class="text_area"
|
||||
required="true"
|
||||
filter="url"
|
||||
validated="url"
|
||||
message="Error! Please add website here."
|
||||
hint="COM_COMPONENTBUILDER_CONFIG_EXPORT_WEBSITE_HINT"
|
||||
/>
|
||||
<!-- Export_license Field. Type: Textarea. (joomla) -->
|
||||
<field
|
||||
type="textarea"
|
||||
name="export_license"
|
||||
label="COM_COMPONENTBUILDER_CONFIG_EXPORT_LICENSE_LABEL"
|
||||
rows="7"
|
||||
cols="10"
|
||||
default="GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html"
|
||||
description="COM_COMPONENTBUILDER_CONFIG_EXPORT_LICENSE_DESCRIPTION"
|
||||
class="text_area span12"
|
||||
filter="HTML"
|
||||
hint="COM_COMPONENTBUILDER_CONFIG_EXPORT_LICENSE_HINT"
|
||||
required="true"
|
||||
/>
|
||||
<!-- Export_copyright Field. Type: Textarea. (joomla) -->
|
||||
<field
|
||||
type="textarea"
|
||||
name="export_copyright"
|
||||
label="COM_COMPONENTBUILDER_CONFIG_EXPORT_COPYRIGHT_LABEL"
|
||||
rows="7"
|
||||
cols="10"
|
||||
default="Copyright (C) 2015. All Rights Reserved"
|
||||
description="COM_COMPONENTBUILDER_CONFIG_EXPORT_COPYRIGHT_DESCRIPTION"
|
||||
class="text_area span12"
|
||||
filter="HTML"
|
||||
hint="COM_COMPONENTBUILDER_CONFIG_EXPORT_COPYRIGHT_HINT"
|
||||
required="true"
|
||||
/>
|
||||
<!-- Export_buy_link Field. Type: Url. (joomla) -->
|
||||
<field
|
||||
type="url"
|
||||
name="export_buy_link"
|
||||
label="COM_COMPONENTBUILDER_CONFIG_EXPORT_BUY_LINK_LABEL"
|
||||
size="60"
|
||||
maxlength="150"
|
||||
description="COM_COMPONENTBUILDER_CONFIG_EXPORT_BUY_LINK_DESCRIPTION"
|
||||
class="text_area"
|
||||
required="false"
|
||||
filter="url"
|
||||
validated="url"
|
||||
message="Error! Please add link here."
|
||||
hint="COM_COMPONENTBUILDER_CONFIG_EXPORT_BUY_LINK_HINT"
|
||||
/>
|
||||
</fieldset>
|
||||
<fieldset
|
||||
name="permissions"
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.3.7
|
||||
@build 12th March, 2017
|
||||
@version 2.4.10
|
||||
@build 12th August, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage controller.php
|
||||
@ -99,6 +99,8 @@ class ComponentbuilderController extends JControllerLegacy
|
||||
'snippet' => 'snippets',
|
||||
'field' => 'fields',
|
||||
'fieldtype' => 'fieldtypes',
|
||||
'language_translation' => 'language_translations',
|
||||
'language' => 'languages',
|
||||
'help_document' => 'help_documents'
|
||||
);
|
||||
// check if this is a list view
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 104 of this MVC
|
||||
@build 6th March, 2017
|
||||
@version @update number 111 of this MVC
|
||||
@build 17th July, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage admin_view.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 104 of this MVC
|
||||
@build 6th March, 2017
|
||||
@version @update number 111 of this MVC
|
||||
@build 17th July, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage admin_views.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.3.7
|
||||
@build 12th March, 2017
|
||||
@version 2.4.10
|
||||
@build 12th August, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage ajax.json.php
|
||||
@ -57,7 +57,9 @@ class ComponentbuilderControllerAjax extends JControllerLegacy
|
||||
$this->registerTask('viewTableColumns', 'ajax');
|
||||
$this->registerTask('checkFunctionName', 'ajax');
|
||||
$this->registerTask('usedin', 'ajax');
|
||||
$this->registerTask('fieldOptions', 'ajax');
|
||||
$this->registerTask('fieldOptions', 'ajax');
|
||||
$this->registerTask('getBuildTable', 'ajax');
|
||||
$this->registerTask('getButton', 'ajax');
|
||||
}
|
||||
|
||||
public function ajax()
|
||||
@ -687,6 +689,83 @@ class ComponentbuilderControllerAjax extends JControllerLegacy
|
||||
echo "(".json_encode($e).");";
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'getBuildTable':
|
||||
try
|
||||
{
|
||||
$returnRaw = $jinput->get('raw', false, 'BOOLEAN');
|
||||
$idNameValue = $jinput->get('idName', NULL, 'CMD');
|
||||
$objectValue = $jinput->get('object', NULL, 'STRING');
|
||||
if($idNameValue && $objectValue && $user->id != 0)
|
||||
{
|
||||
$result = $this->getModel('ajax')->getBuildTable($idNameValue, $objectValue);
|
||||
}
|
||||
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 '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;
|
||||
}
|
||||
}
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 46 of this MVC
|
||||
@build 3rd March, 2017
|
||||
@version @update number 53 of this MVC
|
||||
@build 5th August, 2017
|
||||
@created 1st February, 2017
|
||||
@package Component Builder
|
||||
@subpackage compiler.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.3.7
|
||||
@build 12th March, 2017
|
||||
@version 2.4.10
|
||||
@build 12th August, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage componentbuilder.php
|
||||
|
@ -11,7 +11,7 @@
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 22 of this MVC
|
||||
@build 1st March, 2017
|
||||
@build 17th July, 2017
|
||||
@created 13th August, 2015
|
||||
@package Component Builder
|
||||
@subpackage custom_admin_view.php
|
||||
|
@ -11,7 +11,7 @@
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 22 of this MVC
|
||||
@build 1st March, 2017
|
||||
@build 17th July, 2017
|
||||
@created 13th August, 2015
|
||||
@package Component Builder
|
||||
@subpackage custom_admin_views.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 81 of this MVC
|
||||
@build 1st March, 2017
|
||||
@version @update number 82 of this MVC
|
||||
@build 26th April, 2017
|
||||
@created 11th October, 2016
|
||||
@package Component Builder
|
||||
@subpackage custom_code.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 81 of this MVC
|
||||
@build 1st March, 2017
|
||||
@version @update number 82 of this MVC
|
||||
@build 26th April, 2017
|
||||
@created 11th October, 2016
|
||||
@package Component Builder
|
||||
@subpackage custom_codes.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 81 of this MVC
|
||||
@build 15th January, 2017
|
||||
@version @update number 84 of this MVC
|
||||
@build 4th May, 2017
|
||||
@created 21st May, 2015
|
||||
@package Component Builder
|
||||
@subpackage dynamic_get.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 81 of this MVC
|
||||
@build 15th January, 2017
|
||||
@version @update number 84 of this MVC
|
||||
@build 4th May, 2017
|
||||
@created 21st May, 2015
|
||||
@package Component Builder
|
||||
@subpackage dynamic_gets.php
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 12 of this MVC
|
||||
@build 20th October, 2016
|
||||
@version @update number 13 of this MVC
|
||||
@build 13th June, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage fieldtype.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 12 of this MVC
|
||||
@build 20th October, 2016
|
||||
@version @update number 13 of this MVC
|
||||
@build 13th June, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage fieldtypes.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.3.7
|
||||
@build 12th March, 2017
|
||||
@version 2.4.10
|
||||
@build 12th August, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage help.php
|
||||
|
@ -11,7 +11,7 @@
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 6 of this MVC
|
||||
@build 17th October, 2016
|
||||
@build 18th October, 2016
|
||||
@created 4th March, 2016
|
||||
@package Component Builder
|
||||
@subpackage help_document.php
|
||||
|
@ -11,7 +11,7 @@
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 6 of this MVC
|
||||
@build 17th October, 2016
|
||||
@build 18th October, 2016
|
||||
@created 4th March, 2016
|
||||
@package Component Builder
|
||||
@subpackage help_documents.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.3.7
|
||||
@build 12th March, 2017
|
||||
@version 2.4.10
|
||||
@build 12th August, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage import.php
|
||||
|
67
admin/controllers/import_joomla_components.php
Normal file
67
admin/controllers/import_joomla_components.php
Normal file
@ -0,0 +1,67 @@
|
||||
<?php
|
||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
||||
__ __ _ _____ _ _ __ __ _ _ _
|
||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
||||
| |
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.4.10
|
||||
@build 12th August, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage import_joomla_components.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');
|
||||
|
||||
/**
|
||||
* Componentbuilder Import_joomla_components Controller
|
||||
*/
|
||||
class ComponentbuilderControllerImport_joomla_components extends JControllerLegacy
|
||||
{
|
||||
/**
|
||||
* Import an spreadsheet.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function import()
|
||||
{
|
||||
// Check for request forgeries
|
||||
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
|
||||
|
||||
$model = $this->getModel('Import_joomla_components');
|
||||
if ($model->import())
|
||||
{
|
||||
$cache = JFactory::getCache('mod_menu');
|
||||
$cache->clean();
|
||||
// TODO: Reset the users acl here as well to kill off any missing bits
|
||||
}
|
||||
|
||||
$app = JFactory::getApplication();
|
||||
$redirect_url = $app->getUserState('com_componentbuilder.redirect_url');
|
||||
if (empty($redirect_url))
|
||||
{
|
||||
$redirect_url = JRoute::_('index.php?option=com_componentbuilder&view=import_joomla_components', false);
|
||||
}
|
||||
else
|
||||
{
|
||||
// wipe out the user state when we're going to redirect
|
||||
$app->setUserState('com_componentbuilder.redirect_url', '');
|
||||
$app->setUserState('com_componentbuilder.message', '');
|
||||
$app->setUserState('com_componentbuilder.extension_message', '');
|
||||
}
|
||||
$this->setRedirect($redirect_url);
|
||||
}
|
||||
}
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 97 of this MVC
|
||||
@build 3rd March, 2017
|
||||
@version @update number 338 of this MVC
|
||||
@build 7th August, 2017
|
||||
@created 6th May, 2015
|
||||
@package Component Builder
|
||||
@subpackage joomla_component.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 97 of this MVC
|
||||
@build 3rd March, 2017
|
||||
@version @update number 338 of this MVC
|
||||
@build 7th August, 2017
|
||||
@created 6th May, 2015
|
||||
@package Component Builder
|
||||
@subpackage joomla_components.php
|
||||
@ -99,7 +99,7 @@ class ComponentbuilderControllerJoomla_components extends JControllerAdmin
|
||||
$session->set('dataType_VDM_IMPORTINTO', 'joomla_component');
|
||||
// Redirect to import view.
|
||||
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_SELECT_FILE_FOR_JOOMLA_COMPONENTS');
|
||||
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=import', false), $message);
|
||||
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=import_joomla_components', false), $message);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -107,5 +107,136 @@ class ComponentbuilderControllerJoomla_components extends JControllerAdmin
|
||||
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_FAILED');
|
||||
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=joomla_components', false), $message, 'error');
|
||||
return;
|
||||
}
|
||||
|
||||
public function smartImport()
|
||||
{
|
||||
// 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'))
|
||||
{
|
||||
$session = JFactory::getSession();
|
||||
$session->set('backto_VDM_IMPORT', 'joomla_components');
|
||||
$session->set('dataType_VDM_IMPORTINTO', 'smart_package');
|
||||
// Redirect to import view.
|
||||
$message = JText::_('COM_COMPONENTBUILDER_YOU_CAN_NOW_SELECT_THE_COMPONENT_BZIPB_PACKAGE_YOU_WOULD_LIKE_TO_IMPORTBR_SMALLPLEASE_NOTE_THAT_SMART_COMPONENT_IMPORT_ONLY_WORKS_WITH_THE_FOLLOWING_FORMAT_BZIPBSMALL');
|
||||
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=import_joomla_components&target=smartPackage', false), $message);
|
||||
return;
|
||||
}
|
||||
// Redirect to the list screen with error.
|
||||
$message = JText::_('COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_IMPORT_A_COMPONENT_PLEASE_CONTACT_YOUR_SYSTEM_ADMINISTRATOR_FOR_MORE_HELP');
|
||||
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=joomla_components', false), $message, 'error');
|
||||
return;
|
||||
}
|
||||
|
||||
public function smartExport()
|
||||
{
|
||||
// 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('joomla_component.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);
|
||||
// check if there is any selections
|
||||
if (!ComponentbuilderHelper::checkArray($pks))
|
||||
{
|
||||
// Redirect to the list screen with error.
|
||||
$message = JText::_('COM_COMPONENTBUILDER_NO_COMPONENTS_WERE_SELECTED_PLEASE_MAKE_A_SELECTION_AND_TRY_AGAIN');
|
||||
$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
|
||||
if ($model->getSmartExport($pks))
|
||||
{
|
||||
// set the key string
|
||||
if (componentbuilderHelper::checkString($model->key) && strlen($model->key) == 32)
|
||||
{
|
||||
$keyNotice = '<h1>' . JText::sprintf('COM_COMPONENTBUILDER_THE_PACKAGE_KEY_IS_CODESCODE', $model->key) . '</h1>';
|
||||
$keyNotice .= '<p>' . JText::_('COM_COMPONENTBUILDER_YOUR_DATA_IS_ENCRYPTED_WITH_A_AES_ONE_HUNDRED_AND_TWENTY_EIGHT_BIT_ENCRYPTION_USING_THE_ABOVE_THIRTY_TWO_CHARACTER_KEYBR_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') . '</h1>';
|
||||
// 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>';
|
||||
$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>';
|
||||
}
|
||||
// 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>';
|
||||
}
|
||||
// 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>';
|
||||
}
|
||||
// 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>';
|
||||
}
|
||||
// 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>';
|
||||
}
|
||||
// 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>';
|
||||
}
|
||||
$ownerDetails .= '</ul>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$ownerDetails = '<h2>' . JText::_('COM_COMPONENTBUILDER_PACKAGE_OWNER_NOT_SET') . '</h2>';
|
||||
$ownerDetails .= '<p>' . 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') . '</p>';
|
||||
$ownerDetails .= '<h3>' . JText::_('COM_COMPONENTBUILDER_YOU_SHOULD_ADD_THE_CORRECT_OWNER_DETAILS') . '</h3>';
|
||||
$ownerDetails .= '<p>' . 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') . '</p>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$keyNotice = '<h1>' . JText::_('COM_COMPONENTBUILDER_THIS_PACKAGE_HAS_NO_KEY') . '</h1>';
|
||||
$ownerDetails = '<p>' . 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') . '</p>';
|
||||
}
|
||||
// Redirect to the list screen with success.
|
||||
$message = array();
|
||||
$message[] = '<h1>' . JText::_('COM_COMPONENTBUILDER_EXPORT_COMPLETED') . '</h1>';
|
||||
$message[] = '<p>' . JText::sprintf('COM_COMPONENTBUILDER_PATH_TO_THE_ZIPPED_PACKAGE_IS_CODESCODE_BR_S_S', $model->zipPath, $keyNotice, $ownerDetails) . '</p>';
|
||||
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=joomla_components', false), implode('', $message), 'Success');
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
// Redirect to the list screen with error.
|
||||
$message = JText::_('COM_COMPONENTBUILDER_EXPORT_FAILED_PLEASE_TRY_AGAIN_LATTER');
|
||||
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=joomla_components', false), $message, 'error');
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
326
admin/controllers/language.php
Normal file
326
admin/controllers/language.php
Normal 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;
|
||||
}
|
||||
|
||||
}
|
326
admin/controllers/language_translation.php
Normal file
326
admin/controllers/language_translation.php
Normal file
@ -0,0 +1,326 @@
|
||||
<?php
|
||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
||||
__ __ _ _____ _ _ __ __ _ _ _
|
||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
||||
| |
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 39 of this MVC
|
||||
@build 7th April, 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;
|
||||
}
|
||||
|
||||
}
|
111
admin/controllers/language_translations.php
Normal file
111
admin/controllers/language_translations.php
Normal file
@ -0,0 +1,111 @@
|
||||
<?php
|
||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
||||
__ __ _ _____ _ _ __ __ _ _ _
|
||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
||||
| |
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 39 of this MVC
|
||||
@build 7th April, 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;
|
||||
}
|
||||
}
|
111
admin/controllers/languages.php
Normal file
111
admin/controllers/languages.php
Normal 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;
|
||||
}
|
||||
}
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 67 of this MVC
|
||||
@build 22nd February, 2017
|
||||
@version @update number 77 of this MVC
|
||||
@build 30th May, 2017
|
||||
@created 18th May, 2015
|
||||
@package Component Builder
|
||||
@subpackage layout.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 67 of this MVC
|
||||
@build 22nd February, 2017
|
||||
@version @update number 77 of this MVC
|
||||
@build 30th May, 2017
|
||||
@created 18th May, 2015
|
||||
@package Component Builder
|
||||
@subpackage layouts.php
|
||||
|
@ -11,7 +11,7 @@
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 51 of this MVC
|
||||
@build 6th March, 2017
|
||||
@build 17th July, 2017
|
||||
@created 29th May, 2015
|
||||
@package Component Builder
|
||||
@subpackage site_view.php
|
||||
|
@ -11,7 +11,7 @@
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 51 of this MVC
|
||||
@build 6th March, 2017
|
||||
@build 17th July, 2017
|
||||
@created 29th May, 2015
|
||||
@package Component Builder
|
||||
@subpackage site_views.php
|
||||
|
@ -11,7 +11,7 @@
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 40 of this MVC
|
||||
@build 22nd February, 2017
|
||||
@build 1st April, 2017
|
||||
@created 26th May, 2015
|
||||
@package Component Builder
|
||||
@subpackage template.php
|
||||
|
@ -11,7 +11,7 @@
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 40 of this MVC
|
||||
@build 22nd February, 2017
|
||||
@build 1st April, 2017
|
||||
@created 26th May, 2015
|
||||
@package Component Builder
|
||||
@subpackage templates.php
|
||||
|
@ -464,4 +464,3 @@ class Dropbox
|
||||
return function_exists('curl_version');
|
||||
}
|
||||
}
|
||||
|
||||
|
232
admin/custom/timeago.js
Normal file
232
admin/custom/timeago.js
Normal 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");
|
||||
}));
|
@ -87,7 +87,7 @@ class Compiler extends Infusion
|
||||
$this->removeFolder($this->componentPath . '/site');
|
||||
// clear form component xml
|
||||
$xmlPath = $this->componentPath . '/'. $this->fileContentStatic['###component###']. '.xml';
|
||||
$componentXML = JFile::read($xmlPath);
|
||||
$componentXML = file_get_contents($xmlPath);
|
||||
$textToSite = ComponentbuilderHelper::getBetween($componentXML,'<files folder="site">','</files>');
|
||||
$textToSiteLang = ComponentbuilderHelper::getBetween($componentXML,'<languages folder="site">','</languages>');
|
||||
$componentXML = str_replace(array('<files folder="site">'.$textToSite."</files>", '<languages folder="site">'.$textToSiteLang."</languages>"), array('',''), $componentXML);
|
||||
@ -136,7 +136,7 @@ class Compiler extends Infusion
|
||||
*/
|
||||
private function setLine($nr)
|
||||
{
|
||||
if ($this->loadLineNr)
|
||||
if ($this->debugLinenr)
|
||||
{
|
||||
return ' [Compiler '.$nr.']';
|
||||
}
|
||||
@ -152,29 +152,21 @@ 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 = JFile::read($this->bomPath);
|
||||
$bom = file_get_contents($this->bomPath);
|
||||
// first we do the static files
|
||||
foreach ($this->newFiles['static'] as $static)
|
||||
{
|
||||
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'))
|
||||
{
|
||||
$php = "<?php\n";
|
||||
}
|
||||
$string = JFile::read($static['path']);
|
||||
$string = file_get_contents($static['path']);
|
||||
if (strpos($string,'###BOM###') !== false)
|
||||
{
|
||||
list($wast,$code) = explode('###BOM###',$string);
|
||||
@ -211,7 +203,7 @@ class Compiler extends Infusion
|
||||
{
|
||||
$php = "<?php\n";
|
||||
}
|
||||
$string = JFile::read($file['path']);
|
||||
$string = file_get_contents($file['path']);
|
||||
if (strpos($string,'###BOM###') !== false)
|
||||
{
|
||||
list($bin,$code) = explode('###BOM###',$string);
|
||||
@ -364,7 +356,7 @@ class Compiler extends Infusion
|
||||
$this->buildReadMeData();
|
||||
}
|
||||
// get the file
|
||||
$string = JFile::read($path);
|
||||
$string = file_get_contents($path);
|
||||
// update the file
|
||||
$answer = $this->setPlaceholders($string, $this->fileContentStatic);
|
||||
// add to zip array
|
||||
@ -422,39 +414,9 @@ class Compiler extends Infusion
|
||||
}
|
||||
// the name of the zip file to create
|
||||
$this->filepath = $this->tempPath.'/'.$this->componentFolderName.'.zip';
|
||||
// store the current joomla working directory
|
||||
$joomla = getcwd();
|
||||
|
||||
// we are changing the working directory to the componet temp folder
|
||||
chdir($this->componentPath);
|
||||
|
||||
// the full file path of the zip file
|
||||
$this->filepath = JPath::clean($this->filepath);
|
||||
|
||||
// delete an existing zip file (or use an exclusion parameter in JFolder::files()
|
||||
JFile::delete($this->filepath);
|
||||
|
||||
// get a list of files in the current directory tree
|
||||
$files = JFolder::files('.', '', true, true);
|
||||
$zipArray = array();
|
||||
// setup the zip array
|
||||
foreach ($files as $file)
|
||||
{
|
||||
$tmp = array();
|
||||
$tmp['name'] = str_replace('./', '', $file);
|
||||
$tmp['data'] = JFile::read($file);
|
||||
$tmp['time'] = filemtime($file);
|
||||
$zipArray[] = $tmp;
|
||||
}
|
||||
|
||||
// change back to joomla working directory
|
||||
chdir($joomla);
|
||||
|
||||
// get the zip adapter
|
||||
$zip = JArchive::getAdapter('zip');
|
||||
|
||||
|
||||
//create the zip file
|
||||
if ($zip->create($this->filepath, $zipArray))
|
||||
if (ComponentbuilderHelper::zip($this->componentPath, $this->filepath))
|
||||
{
|
||||
// now move to backup if zip was made and backup is requered
|
||||
if ($this->backupPath && $this->dynamicIntegration)
|
||||
|
@ -160,14 +160,21 @@ class Get
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
public $loadLineNr = false;
|
||||
public $debugLinenr = false;
|
||||
|
||||
/*
|
||||
* The percentage when a language should be added
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
public $percentageLanguageAdd = 0;
|
||||
|
||||
/**
|
||||
* The Language prefix
|
||||
* The Placholder Language prefix
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $langPrefix = 'COM_';
|
||||
public $langPrefix;
|
||||
|
||||
/**
|
||||
* The Language content
|
||||
@ -176,6 +183,34 @@ class Get
|
||||
*/
|
||||
public $langContent = array();
|
||||
|
||||
/**
|
||||
* The Languages bucket
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public $languages = array('en-GB' => array());
|
||||
|
||||
/**
|
||||
* The Multi Languages bucket
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public $multiLangString = array();
|
||||
|
||||
/**
|
||||
* The new lang to add
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $newLangStrings = array();
|
||||
|
||||
/**
|
||||
* The existing lang to update
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $existingLangStrings = array();
|
||||
|
||||
/**
|
||||
* The Component Code Name
|
||||
*
|
||||
@ -441,7 +476,20 @@ class Get
|
||||
* @var array
|
||||
*/
|
||||
public $siteFields = array();
|
||||
|
||||
|
||||
/**
|
||||
* The add SQL
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public $addSQL = array();
|
||||
|
||||
/**
|
||||
* The update SQL
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public $updateSQL = array();
|
||||
|
||||
/***
|
||||
* Constructor
|
||||
@ -460,7 +508,7 @@ class Get
|
||||
if ($name_code = ComponentbuilderHelper::getVar('joomla_component', $this->componentID, 'id', 'name_code'))
|
||||
{
|
||||
// set lang prefix
|
||||
$this->langPrefix .= ComponentbuilderHelper::safeString($name_code,'U');
|
||||
$this->langPrefix = 'COM_'.ComponentbuilderHelper::safeString($name_code,'U');
|
||||
// set component code name
|
||||
$this->componentCodeName = ComponentbuilderHelper::safeString($name_code);
|
||||
// set if placeholders should be added to customcode
|
||||
@ -468,7 +516,7 @@ class Get
|
||||
$this->addPlaceholders = ((int) $config['addPlaceholders'] == 0) ? false : (((int) $config['addPlaceholders'] == 1) ? true : $global);
|
||||
// set if line numbers should be added to comments
|
||||
$global = ((int) ComponentbuilderHelper::getVar('joomla_component', $this->componentID, 'id', 'debug_linenr') == 1) ? true:false;
|
||||
$this->loadLineNr = ((int) $config['debugLinenr'] == 0) ? false : (((int) $config['debugLinenr'] == 1) ? true : $global);
|
||||
$this->debugLinenr = ((int) $config['debugLinenr'] == 0) ? false : (((int) $config['debugLinenr'] == 1) ? true : $global);
|
||||
// set the current user
|
||||
$this->user = JFactory::getUser();
|
||||
// Get a db connection.
|
||||
@ -483,7 +531,30 @@ class Get
|
||||
}
|
||||
// get the component data
|
||||
$this->componentData = $this->getComponentData();
|
||||
|
||||
// make sure we have a version
|
||||
if (strpos($this->componentData->component_version, '.') === FALSE)
|
||||
{
|
||||
$this->componentData->component_version = '1.0.0';
|
||||
}
|
||||
// update the version
|
||||
if (!isset($this->componentData->old_component_version)
|
||||
&& (ComponentbuilderHelper::checkArray($this->addSQL) || ComponentbuilderHelper::checkArray($this->updateSQL)))
|
||||
{
|
||||
// set the new version
|
||||
$version = (array) explode('.', $this->componentData->component_version);
|
||||
// get last key
|
||||
end($version);
|
||||
$key = key($version);
|
||||
// just increment the last
|
||||
$version[$key]++;
|
||||
// set the old version
|
||||
$this->componentData->old_component_version = $this->componentData->component_version;
|
||||
// set the new version, and set update switch
|
||||
$this->componentData->component_version = implode('.', $version);
|
||||
}
|
||||
// set the percentage when a language can be added
|
||||
$this->percentageLanguageAdd = (int) $this->params->get('percentagelanguageadd', 50);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -500,7 +571,7 @@ class Get
|
||||
*/
|
||||
private function setLine($nr)
|
||||
{
|
||||
if ($this->loadLineNr)
|
||||
if ($this->debugLinenr)
|
||||
{
|
||||
return ' [Get '.$nr.']';
|
||||
}
|
||||
@ -554,6 +625,7 @@ class Get
|
||||
}
|
||||
unset($component->addfolders);
|
||||
}
|
||||
|
||||
// ser the addfiles data
|
||||
$addfiles = json_decode($component->addfiles,true);
|
||||
if (ComponentbuilderHelper::checkArray($addfiles))
|
||||
@ -620,6 +692,7 @@ class Get
|
||||
|
||||
// set the admin_view data
|
||||
$admin_views = json_decode($component->addadmin_views,true);
|
||||
|
||||
if (ComponentbuilderHelper::checkArray($admin_views))
|
||||
{
|
||||
foreach ($admin_views as $option => $values)
|
||||
@ -793,6 +866,25 @@ class Get
|
||||
$component->version_update[$nr][$option] = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// build update SQL
|
||||
if ($old_component = $this->getHistoryWatch('joomla_component', $this->componentID))
|
||||
{
|
||||
// add new views if found
|
||||
if (isset($old_component->addadmin_views) && ComponentbuilderHelper::checkJson($old_component->addadmin_views))
|
||||
{
|
||||
$this->setUpdateSQL(json_decode($old_component->addadmin_views, true), $admin_views, 'adminview');
|
||||
}
|
||||
// check if a new version was manualy set
|
||||
$old_component_version = preg_replace('/[^0-9.]+/', '', $old_component->component_version);
|
||||
if ($old_component_version != $this->component_version)
|
||||
{
|
||||
// yes, this is a new version, this mean there may be manual sql and must be checked and updated
|
||||
$component->old_component_version = $old_component_version;
|
||||
}
|
||||
// clear this data
|
||||
unset($old_component);
|
||||
}
|
||||
|
||||
// add_css
|
||||
@ -814,7 +906,7 @@ class Get
|
||||
{
|
||||
foreach ($addScriptTypes as $scriptType)
|
||||
{
|
||||
if (isset($component->{'add_'.$scriptMethod.'_'.$scriptType}) && $component->{'add_'.$scriptMethod.'_'.$scriptType} == 1)
|
||||
if (isset($component->{'add_'.$scriptMethod.'_'.$scriptType}) && $component->{'add_'.$scriptMethod.'_'.$scriptType} == 1 && ComponentbuilderHelper::checkString($component->{$scriptMethod.'_'.$scriptType}))
|
||||
{
|
||||
$this->customScriptBuilder[$scriptMethod][$scriptType] = $this->setDynamicValues(base64_decode($component->{$scriptMethod.'_'.$scriptType}));
|
||||
}
|
||||
@ -826,7 +918,7 @@ class Get
|
||||
}
|
||||
}
|
||||
// add_php_helper
|
||||
if ($component->add_php_helper_admin == 1)
|
||||
if ($component->add_php_helper_admin == 1 && ComponentbuilderHelper::checkString($component->php_helper_admin))
|
||||
{
|
||||
$this->lang = 'admin';
|
||||
$this->customScriptBuilder['component_php_helper_admin'] = PHP_EOL.PHP_EOL.$this->setDynamicValues(base64_decode($component->php_helper_admin));
|
||||
@ -837,7 +929,7 @@ class Get
|
||||
}
|
||||
unset($component->php_helper);
|
||||
// add_admin_event
|
||||
if ($component->add_admin_event == 1)
|
||||
if ($component->add_admin_event == 1 && ComponentbuilderHelper::checkString($component->php_admin_event))
|
||||
{
|
||||
$this->lang = 'admin';
|
||||
$this->customScriptBuilder['component_php_admin_event'] = $this->setDynamicValues(base64_decode($component->php_admin_event));
|
||||
@ -848,7 +940,7 @@ class Get
|
||||
}
|
||||
unset($component->php_admin_event);
|
||||
// add_php_helper_both
|
||||
if ($component->add_php_helper_both == 1)
|
||||
if ($component->add_php_helper_both == 1 && ComponentbuilderHelper::checkString($component->php_helper_both))
|
||||
{
|
||||
$this->lang = 'both';
|
||||
$this->customScriptBuilder['component_php_helper_both'] = PHP_EOL.PHP_EOL.$this->setDynamicValues(base64_decode($component->php_helper_both));
|
||||
@ -858,7 +950,7 @@ class Get
|
||||
$this->customScriptBuilder['component_php_helper_both'] = '';
|
||||
}
|
||||
// add_php_helper_site
|
||||
if ($component->add_php_helper_site == 1)
|
||||
if ($component->add_php_helper_site == 1 && ComponentbuilderHelper::checkString($component->php_helper_site))
|
||||
{
|
||||
$this->lang = 'site';
|
||||
$this->customScriptBuilder['component_php_helper_site'] = PHP_EOL.PHP_EOL.$this->setDynamicValues(base64_decode($component->php_helper_site));
|
||||
@ -869,7 +961,7 @@ class Get
|
||||
}
|
||||
unset($component->php_helper);
|
||||
// add_site_event
|
||||
if ($component->add_site_event == 1)
|
||||
if ($component->add_site_event == 1 && ComponentbuilderHelper::checkString($component->php_site_event))
|
||||
{
|
||||
$this->lang = 'site';
|
||||
$this->customScriptBuilder['component_php_site_event'] = $this->setDynamicValues(base64_decode($component->php_site_event));
|
||||
@ -906,7 +998,7 @@ class Get
|
||||
}
|
||||
|
||||
// dashboard methods
|
||||
if ($component->add_php_dashboard_methods)
|
||||
if ($component->add_php_dashboard_methods && ComponentbuilderHelper::checkString($component->php_dashboard_methods))
|
||||
{
|
||||
$nowLang = $this->lang;
|
||||
$this->lang = 'admin';
|
||||
@ -1069,6 +1161,22 @@ class Get
|
||||
unset($view->addlinked_views);
|
||||
$tables = json_decode($view->addtables,true);
|
||||
unset($view->addtables);
|
||||
// build update SQL
|
||||
if ($old_view = $this->getHistoryWatch('admin_view', $id))
|
||||
{
|
||||
// add new fields were added
|
||||
if (isset($old_view->addfields) && ComponentbuilderHelper::checkJson($old_view->addfields))
|
||||
{
|
||||
$this->setUpdateSQL(json_decode($old_view->addfields, true), $fields, 'field', $name_single);
|
||||
}
|
||||
// check if the view name changed
|
||||
if (ComponentbuilderHelper::checkString($old_view->name_single))
|
||||
{
|
||||
$this->setUpdateSQL(ComponentbuilderHelper::safeString($old_view->name_single), $name_single, 'table_name', $name_single);
|
||||
}
|
||||
// clear this data
|
||||
unset($old_view);
|
||||
}
|
||||
// sort the values
|
||||
if (ComponentbuilderHelper::checkArray($tables))
|
||||
{
|
||||
@ -1230,7 +1338,7 @@ class Get
|
||||
$addArrayJ = array('javascript_view_file','javascript_view_footer','javascript_views_file','javascript_views_footer');
|
||||
foreach ($addArrayJ as $scripter)
|
||||
{
|
||||
if (isset($view->{'add_'.$scripter}) && $view->{'add_'.$scripter} == 1)
|
||||
if (isset($view->{'add_'.$scripter}) && $view->{'add_'.$scripter} == 1 && ComponentbuilderHelper::checkString($view->$scripter))
|
||||
{
|
||||
$view->$scripter = $this->setDynamicValues(base64_decode($view->$scripter));
|
||||
$scripter_target = str_replace('javascript_', '', $scripter);
|
||||
@ -1316,7 +1424,7 @@ class Get
|
||||
// set custom import scripts
|
||||
if (isset($view->add_custom_import) && $view->add_custom_import == 1)
|
||||
{
|
||||
$addImportArray = array('php_import_display','php_import','php_import_setdata','php_import_save','html_import_view');
|
||||
$addImportArray = array('php_import_ext','php_import_display','php_import','php_import_setdata','php_import_save','html_import_view');
|
||||
foreach ($addImportArray as $importScripter)
|
||||
{
|
||||
if (isset($view->$importScripter) && strlen($view->$importScripter) > 0)
|
||||
@ -1324,6 +1432,11 @@ class Get
|
||||
$this->customScriptBuilder[$importScripter]['import_'.$name_list] = $this->setDynamicValues(base64_decode($view->$importScripter));
|
||||
unset($view->$importScripter);
|
||||
}
|
||||
else
|
||||
{
|
||||
// load the default
|
||||
$this->customScriptBuilder[$importScripter]['import_'.$name_list] = ComponentbuilderHelper::getImportScripts($importScripter, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1388,6 +1501,7 @@ class Get
|
||||
unset($view->sql);
|
||||
}
|
||||
}
|
||||
// store this view to class object
|
||||
$this->_adminViewData[$id] = $view;
|
||||
}
|
||||
// return the found view data
|
||||
@ -1472,7 +1586,7 @@ class Get
|
||||
$addArray = array('php_view','php_jview','php_jview_display','php_document','js_document','css_document','css');
|
||||
foreach ($addArray as $scripter)
|
||||
{
|
||||
if (isset($view->{'add_'.$scripter}) && $view->{'add_'.$scripter} == 1)
|
||||
if (isset($view->{'add_'.$scripter}) && $view->{'add_'.$scripter} == 1 && ComponentbuilderHelper::checkString($view->$scripter))
|
||||
{
|
||||
$view->$scripter = $this->setDynamicValues(base64_decode($view->$scripter));
|
||||
// set uikit to views
|
||||
@ -1647,6 +1761,9 @@ class Get
|
||||
$this->basicEncryption = true;
|
||||
}
|
||||
|
||||
// get the last used version
|
||||
$field->history = $this->getHistoryWatch('field', $id);
|
||||
|
||||
$this->_fieldData[$id] = $field;
|
||||
}
|
||||
else
|
||||
@ -1661,7 +1778,7 @@ class Get
|
||||
if (ComponentbuilderHelper::checkString($name_single) && !isset($this->customFieldScript[$name_single][$id]))
|
||||
{
|
||||
// add_javascript_view_footer
|
||||
if ($this->_fieldData[$id]->add_javascript_view_footer == 1)
|
||||
if ($this->_fieldData[$id]->add_javascript_view_footer == 1 && ComponentbuilderHelper::checkString($this->_fieldData[$id]->javascript_view_footer))
|
||||
{
|
||||
if(!isset($this->customScriptBuilder['view_footer']))
|
||||
{
|
||||
@ -1719,7 +1836,7 @@ class Get
|
||||
if (ComponentbuilderHelper::checkString($name_list) && !isset($this->customFieldScript[$name_list][$id]))
|
||||
{
|
||||
// add_javascript_views_footer
|
||||
if ($this->_fieldData[$id]->add_javascript_views_footer == 1)
|
||||
if ($this->_fieldData[$id]->add_javascript_views_footer == 1 && ComponentbuilderHelper::checkString($this->_fieldData[$id]->javascript_views_footer))
|
||||
{
|
||||
if(!isset($this->customScriptBuilder['views_footer']))
|
||||
{
|
||||
@ -1812,12 +1929,12 @@ class Get
|
||||
foreach ($results as $nr => &$result)
|
||||
{
|
||||
// add calculations if set
|
||||
if($result->addcalculation == 1)
|
||||
if($result->addcalculation == 1 && ComponentbuilderHelper::checkString($result->php_calculation))
|
||||
{
|
||||
$result->php_calculation = base64_decode($result->php_calculation);
|
||||
$result->php_calculation = $this->setDynamicValues(base64_decode($result->php_calculation));
|
||||
}
|
||||
// add php custom scripting (php_before_getitem)
|
||||
if($result->add_php_before_getitem == 1)
|
||||
if($result->add_php_before_getitem == 1 && ComponentbuilderHelper::checkString($result->php_before_getitem))
|
||||
{
|
||||
if (!isset($this->customScriptBuilder[$this->target.'_php_before_getitem'][$view_code]))
|
||||
{
|
||||
@ -1828,7 +1945,7 @@ class Get
|
||||
unset($result->php_before_getitem);
|
||||
}
|
||||
// add php custom scripting (php_after_getitem)
|
||||
if($result->add_php_after_getitem == 1)
|
||||
if($result->add_php_after_getitem == 1 && ComponentbuilderHelper::checkString($result->php_after_getitem))
|
||||
{
|
||||
if (!isset($this->customScriptBuilder[$this->target.'_php_after_getitem'][$view_code]))
|
||||
{
|
||||
@ -1839,7 +1956,7 @@ class Get
|
||||
unset($result->php_after_getitem);
|
||||
}
|
||||
// add php custom scripting (php_before_getitems)
|
||||
if($result->add_php_before_getitems == 1)
|
||||
if($result->add_php_before_getitems == 1 && ComponentbuilderHelper::checkString($result->php_before_getitems))
|
||||
{
|
||||
if (!isset($this->customScriptBuilder[$this->target.'_php_before_getitems'][$view_code]))
|
||||
{
|
||||
@ -1850,7 +1967,7 @@ class Get
|
||||
unset($result->php_before_getitems);
|
||||
}
|
||||
// add php custom scripting (php_after_getitems)
|
||||
if($result->add_php_after_getitems == 1)
|
||||
if($result->add_php_after_getitems == 1 && ComponentbuilderHelper::checkString($result->php_after_getitems))
|
||||
{
|
||||
if (!isset($this->customScriptBuilder[$this->target.'_php_after_getitems'][$view_code]))
|
||||
{
|
||||
@ -1861,7 +1978,7 @@ class Get
|
||||
unset($result->php_after_getitems);
|
||||
}
|
||||
// add php custom scripting (php_getlistquery)
|
||||
if($result->add_php_getlistquery == 1)
|
||||
if($result->add_php_getlistquery == 1 && ComponentbuilderHelper::checkString($result->php_getlistquery))
|
||||
{
|
||||
if (!isset($this->customScriptBuilder[$this->target.'_php_getlistquery'][$view_code]))
|
||||
{
|
||||
@ -2109,6 +2226,210 @@ class Get
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* check if an update SQL is needed
|
||||
*
|
||||
* @param mix $old The old values
|
||||
* @param mix $new The new values
|
||||
* @param string $type The type of values
|
||||
* @param int $key The id/key where values changed
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
*/
|
||||
protected function setUpdateSQL($old, $new, $type, $key = null)
|
||||
{
|
||||
// check if there were new items added
|
||||
if (isset($new[$type]) && ComponentbuilderHelper::checkArray($new[$type])
|
||||
&& isset($old[$type]) && ComponentbuilderHelper::checkArray($old[$type]))
|
||||
{
|
||||
foreach ($new[$type] as $item)
|
||||
{
|
||||
if (!in_array($item, $old[$type]))
|
||||
{
|
||||
// we have a new item, lets add to SQL
|
||||
if (!isset($this->addSQL[$type]) || !ComponentbuilderHelper::checkArray($this->addSQL[$type]))
|
||||
{
|
||||
$this->addSQL[$type] = array();
|
||||
}
|
||||
// add key if found
|
||||
if ($key)
|
||||
{
|
||||
if (!isset($this->addSQL[$type][$key]) || !ComponentbuilderHelper::checkArray($this->addSQL[$type][$key]))
|
||||
{
|
||||
$this->addSQL[$type][$key] = array();
|
||||
}
|
||||
$this->addSQL[$type][$key][] = (int) $item;
|
||||
}
|
||||
else
|
||||
{
|
||||
// convert adminview id to name
|
||||
if ('adminview' === $type)
|
||||
{
|
||||
$this->addSQL[$type][] = ComponentbuilderHelper::safeString($this->getAdminViewData($item)->name_single);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->addSQL[$type][] = (int) item;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif ($key && ComponentbuilderHelper::checkString($new)
|
||||
&& ComponentbuilderHelper::checkString($old)
|
||||
&& $new !== $old)
|
||||
{
|
||||
// the string changed, lets add to SQL update
|
||||
if (!isset($this->updateSQL[$type]) || !ComponentbuilderHelper::checkArray($this->updateSQL[$type]))
|
||||
{
|
||||
$this->updateSQL[$type] = array();
|
||||
}
|
||||
// set at key
|
||||
$this->updateSQL[$type][$key] = array('old' => $old, 'new' => $new);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Item History values
|
||||
*
|
||||
* @param string $type The type of item
|
||||
* @param int $id The item ID
|
||||
*
|
||||
* @return oject The history
|
||||
*
|
||||
*/
|
||||
protected function getHistoryWatch($type, $id)
|
||||
{
|
||||
// quick class object to store old history object
|
||||
$this->tmpHistory = null;
|
||||
// Create a new query object.
|
||||
$query = $this->db->getQuery(true);
|
||||
|
||||
$query->select('h.*');
|
||||
$query->from('#__ucm_history AS h');
|
||||
$query->where($this->db->quoteName('h.ucm_item_id') . ' = '. (int) $id);
|
||||
// Join over the content type for the type id
|
||||
$query->join('LEFT', '#__content_types AS ct ON ct.type_id = h.ucm_type_id');
|
||||
$query->where('ct.type_alias = ' . $this->db->quote('com_componentbuilder.'.$type));
|
||||
$query->order('h.save_date DESC');
|
||||
$this->db->setQuery($query, 0, 1);
|
||||
$this->db->execute();
|
||||
if ($this->db->getNumRows())
|
||||
{
|
||||
// new version of this item found
|
||||
// so we need to mark it as the last compiled version
|
||||
$newActive = $this->db->loadObject();
|
||||
// set the new version watch
|
||||
$this->setHistoryWatch($newActive, 1);
|
||||
}
|
||||
// Get last compiled verion
|
||||
$query = $this->db->getQuery(true);
|
||||
|
||||
$query->select('h.*');
|
||||
$query->from('#__ucm_history AS h');
|
||||
$query->where($this->db->quoteName('h.ucm_item_id') . ' = ' . (int) $id);
|
||||
$query->where('h.keep_forever = 1');
|
||||
$query->where('h.version_note LIKE ' . $this->db->quote('%component%'));
|
||||
// make sure it does not return the active version
|
||||
if (isset($newActive) && isset($newActive->version_id))
|
||||
{
|
||||
$query->where('h.version_id != ' . (int) $newActive->version_id);
|
||||
}
|
||||
// Join over the content type for the type id
|
||||
$query->join('LEFT', '#__content_types AS ct ON ct.type_id = h.ucm_type_id');
|
||||
$query->where('ct.type_alias = ' . $this->db->quote('com_componentbuilder.'.$type));
|
||||
$query->order('h.save_date DESC');
|
||||
$this->db->setQuery($query);
|
||||
$this->db->execute();
|
||||
if ($this->db->getNumRows())
|
||||
{
|
||||
// the old active version was found
|
||||
// so we may need to do an SQL update
|
||||
// and unmark the old compiled version
|
||||
$oldActives = $this->db->loadObjectList();
|
||||
foreach ($oldActives as $oldActive)
|
||||
{
|
||||
// remove old version watch
|
||||
$this->setHistoryWatch($oldActive, 0);
|
||||
}
|
||||
}
|
||||
// return the last used history record or null.
|
||||
return $this->tmpHistory;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Item History Watch
|
||||
*
|
||||
* @param Object $object The history object
|
||||
* @param int $action The action to take
|
||||
* 0 = remove watch
|
||||
* 1 = add watch
|
||||
* @param string $type The type of item
|
||||
*
|
||||
* @return bool
|
||||
*
|
||||
*/
|
||||
protected function setHistoryWatch($object, $action)
|
||||
{
|
||||
// check the note
|
||||
if (ComponentbuilderHelper::checkJson($object->version_note))
|
||||
{
|
||||
$version_note = json_decode($object->version_note, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
$version_note = array('component' => array());
|
||||
}
|
||||
// set watch
|
||||
switch ($action)
|
||||
{
|
||||
case 0:
|
||||
// remove watch
|
||||
if(isset($version_note['component']) && ($key = array_search($this->componentID, $version_note['component'])) !== false)
|
||||
{
|
||||
// last version that was used to build/compile
|
||||
$this->tmpHistory = json_decode($object->version_data);
|
||||
// remove it from this component
|
||||
unset($version_note['component'][$key]);
|
||||
}
|
||||
else
|
||||
{
|
||||
// since it was not found, no need to update anything
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
// add watch
|
||||
if (!in_array($this->componentID, $version_note['component']))
|
||||
{
|
||||
$version_note['component'][] = $this->componentID;
|
||||
}
|
||||
else
|
||||
{
|
||||
// since it is there already, no need to update anything
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
// check if we need to still keep this locked
|
||||
if (isset($version_note['component']) && ComponentbuilderHelper::checkArray($version_note['component']))
|
||||
{
|
||||
// insure component ids are only added once per item
|
||||
$version_note['component'] = array_unique($version_note['component']);
|
||||
// we may change this, little risky (but since JCB does not have history notes it should be okay for now)
|
||||
$object->version_note = json_encode($version_note);
|
||||
$object->keep_forever = '1';
|
||||
}
|
||||
else
|
||||
{
|
||||
$object->version_note = '';
|
||||
$object->keep_forever = '0';
|
||||
}
|
||||
// run the update
|
||||
return $this->db->updateObject('#__ucm_history', $object, 'version_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Template and Layout Data
|
||||
*
|
||||
@ -2227,7 +2548,7 @@ class Get
|
||||
if ($k_ey == $n_ame || $key == $name)
|
||||
{
|
||||
$php_view = '';
|
||||
if ($row->add_php_view == 1)
|
||||
if ($row->add_php_view == 1 && ComponentbuilderHelper::checkString($row->php_view))
|
||||
{
|
||||
$php_view = $this->setDynamicValues(base64_decode($row->php_view));
|
||||
}
|
||||
@ -2905,7 +3226,7 @@ class Get
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!$keyPlaceholder = array_search($item['id'], $this->functionNameMemory))
|
||||
if (($keyPlaceholder = array_search($item['id'], $this->functionNameMemory)) === false)
|
||||
{
|
||||
$keyPlaceholder = $item['id'];
|
||||
}
|
||||
@ -2974,6 +3295,352 @@ class Get
|
||||
unset($this->$remove);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the other languages
|
||||
*
|
||||
* @param array $values The lang strings to get
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
*/
|
||||
public function getMultiLangStrings($values)
|
||||
{
|
||||
// Create a new query object.
|
||||
$query = $this->db->getQuery(true);
|
||||
$query->from($this->db->quoteName('#__componentbuilder_language_translation','a'));
|
||||
if (ComponentbuilderHelper::checkArray($values))
|
||||
{
|
||||
$query->select($this->db->quoteName(array('a.id','a.translation','a.entranslation','a.components','a.published')));
|
||||
$query->where($this->db->quoteName('a.entranslation') . ' IN (' . implode(',',array_map(function($a){ return $this->db->quote($a); }, $values)) . ')');
|
||||
$this->db->setQuery($query);
|
||||
$this->db->execute();
|
||||
if ($this->db->getNumRows())
|
||||
{
|
||||
return $this->db->loadAssocList('entranslation');
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the Current language values to DB
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
*/
|
||||
public function setLangPlaceholders($strings)
|
||||
{
|
||||
$counterInsert = 0;
|
||||
$counterUpdate = 0;
|
||||
$today = JFactory::getDate()->toSql();
|
||||
foreach ($this->languages['en-GB'] as $area => $placeholders)
|
||||
{
|
||||
foreach ($placeholders as $placeholder => $string)
|
||||
{
|
||||
// to keep or remove
|
||||
$remove = false;
|
||||
// build the tranlations
|
||||
if (ComponentbuilderHelper::checkString($string) && isset($this->multiLangString[$string]))
|
||||
{
|
||||
// make sure we have converted the string to array
|
||||
if (isset($this->multiLangString[$string]['translation']) && ComponentbuilderHelper::checkJson($this->multiLangString[$string]['translation']))
|
||||
{
|
||||
$this->multiLangString[$string]['translation'] = json_decode($this->multiLangString[$string]['translation'], true);
|
||||
}
|
||||
// if we have an array continue
|
||||
if (isset($this->multiLangString[$string]['translation'])
|
||||
&& ComponentbuilderHelper::checkArray($this->multiLangString[$string]['translation'])
|
||||
&& isset($this->multiLangString[$string]['translation']['translation'])
|
||||
&& isset($this->multiLangString[$string]['translation']['language'])
|
||||
&& ComponentbuilderHelper::checkArray($this->multiLangString[$string]['translation']['language'])
|
||||
&& ComponentbuilderHelper::checkArray($this->multiLangString[$string]['translation']['translation']))
|
||||
{
|
||||
// great lets build the multi languages strings
|
||||
foreach ($this->multiLangString[$string]['translation']['translation'] as $at => $lang)
|
||||
{
|
||||
$_tag = $this->multiLangString[$string]['translation']['language'][$at];
|
||||
// build arrays
|
||||
if (!isset($this->languages[$_tag]))
|
||||
{
|
||||
$this->languages[$_tag] = array();
|
||||
}
|
||||
if (!isset($this->languages[$_tag][$area]))
|
||||
{
|
||||
$this->languages[$_tag][$area] = array();
|
||||
}
|
||||
$this->languages[$_tag][$area][$placeholder] = $lang;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// remove this string not to be checked again
|
||||
$remove = true;
|
||||
}
|
||||
}
|
||||
// do the database managment
|
||||
if(ComponentbuilderHelper::checkString($string) && ($key = array_search($string, $strings)) !== false)
|
||||
{
|
||||
if (isset($this->multiLangString[$string]))
|
||||
{
|
||||
// update the existing placeholder in db
|
||||
$id = $this->multiLangString[$string]['id'];
|
||||
if (ComponentbuilderHelper::checkJson($this->multiLangString[$string]['components']))
|
||||
{
|
||||
$components = (array) json_decode($this->multiLangString[$string]['components'], true);
|
||||
// check if we should add the component ID
|
||||
if (in_array($this->componentID, $components))
|
||||
{
|
||||
// only skip the update if the string is published and has the component ID
|
||||
if ($this->multiLangString[$string]['published'] == 1)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$components[] = $this->componentID;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$components = array($this->componentID);
|
||||
}
|
||||
// start the bucket for this lang
|
||||
$this->setUpdateExistingLangStrings($id, $components, 1, $today, $counterUpdate);
|
||||
|
||||
$counterUpdate++;
|
||||
|
||||
// load to db
|
||||
$this->setExistingLangStrings(50);
|
||||
// remove string if needed
|
||||
if ($remove)
|
||||
{
|
||||
unset($this->multiLangString[$string]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// add the new lang placeholder to the db
|
||||
$this->newLangStrings[$counterInsert] = array();
|
||||
$this->newLangStrings[$counterInsert][] = $this->db->quote(json_encode(array($this->componentID))); // 'components'
|
||||
$this->newLangStrings[$counterInsert][] = $this->db->quote($string); // 'entranslation'
|
||||
$this->newLangStrings[$counterInsert][] = $this->db->quote(1); // 'published'
|
||||
$this->newLangStrings[$counterInsert][] = $this->db->quote($today); // 'created'
|
||||
$this->newLangStrings[$counterInsert][] = $this->db->quote((int) $this->user->id); // 'created_by'
|
||||
$this->newLangStrings[$counterInsert][] = $this->db->quote(1); // 'version'
|
||||
$this->newLangStrings[$counterInsert][] = $this->db->quote(1); // 'access'
|
||||
|
||||
$counterInsert++;
|
||||
|
||||
// load to db
|
||||
$this->setNewLangStrings(100);
|
||||
}
|
||||
// only set the string once
|
||||
unset($strings[$key]);
|
||||
}
|
||||
}
|
||||
}
|
||||
// just to make sure all is done
|
||||
$this->setExistingLangStrings();
|
||||
$this->setNewLangStrings();
|
||||
}
|
||||
|
||||
/**
|
||||
* store the language placeholders
|
||||
*
|
||||
* @param int $when To set when to update
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
*/
|
||||
protected function setNewLangStrings($when = 1)
|
||||
{
|
||||
if (count($this->newLangStrings) >= $when)
|
||||
{
|
||||
// Create a new query object.
|
||||
$query = $this->db->getQuery(true);
|
||||
$continue = false;
|
||||
// Insert columns.
|
||||
$columns = array('components','entranslation','published','created','created_by','version','access');
|
||||
// Prepare the insert query.
|
||||
$query->insert($this->db->quoteName('#__componentbuilder_language_translation'));
|
||||
$query->columns($this->db->quoteName($columns));
|
||||
foreach($this->newLangStrings as $values)
|
||||
{
|
||||
if (count($values) == 7)
|
||||
{
|
||||
$query->values(implode(',', $values));
|
||||
$continue = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
// TODO line mismatch... should not happen
|
||||
}
|
||||
}
|
||||
// clear the values array
|
||||
$this->newLangStrings = array();
|
||||
if (!$continue)
|
||||
{
|
||||
return false; // insure we dont continue if no values were loaded
|
||||
}
|
||||
// Set the query using our newly populated query object and execute it.
|
||||
$this->db->setQuery($query);
|
||||
$this->db->execute();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* update the language placeholders
|
||||
*
|
||||
* @param int $when To set when to update
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
*/
|
||||
protected function setExistingLangStrings($when = 1)
|
||||
{
|
||||
if (count($this->existingLangStrings) >= $when)
|
||||
{
|
||||
foreach($this->existingLangStrings as $values)
|
||||
{
|
||||
// Create a new query object.
|
||||
$query = $this->db->getQuery(true);
|
||||
// Prepare the update query.
|
||||
$query->update($this->db->quoteName('#__componentbuilder_language_translation'))->set($values['fields'])->where($values['conditions']);
|
||||
// Set the query using our newly populated query object and execute it.
|
||||
$this->db->setQuery($query);
|
||||
$this->db->execute();
|
||||
}
|
||||
// clear the values array
|
||||
$this->existingLangStrings = array();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove exiting language translation stings
|
||||
*
|
||||
* @param int $id To string ID to remove
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
*/
|
||||
protected function removeExitingLangString($id)
|
||||
{
|
||||
// Create a new query object.
|
||||
$query = $this->db->getQuery(true);
|
||||
|
||||
// delete all custom keys for user 1001.
|
||||
$conditions = array(
|
||||
$this->db->quoteName('id') . ' = ' . (int) $id
|
||||
);
|
||||
|
||||
$query->delete($this->db->quoteName('#__componentbuilder_language_translation'));
|
||||
$query->where($conditions);
|
||||
|
||||
$this->db->setQuery($query);
|
||||
$this->db->execute();
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to purge the unused languge strings
|
||||
*
|
||||
* @param string $values the active strings
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
*/
|
||||
public function purgeLanuageStrings($values)
|
||||
{
|
||||
// Create a new query object.
|
||||
$query = $this->db->getQuery(true);
|
||||
$query->from($this->db->quoteName('#__componentbuilder_language_translation','a'));
|
||||
$query->select($this->db->quoteName(array('a.id','a.translation','a.components')));
|
||||
// get all string that are not linked to this component
|
||||
$query->where($this->db->quoteName('a.entranslation') . ' NOT IN (' . implode(',',array_map(function($a){ return $this->db->quote($a); }, $values)) . ')');
|
||||
$query->where($this->db->quoteName('a.published') . ' = 1');
|
||||
$this->db->setQuery($query);
|
||||
$this->db->execute();
|
||||
if ($this->db->getNumRows())
|
||||
{
|
||||
$counterUpdate = 0;
|
||||
$otherStrings = $this->db->loadAssocList();
|
||||
$today = JFactory::getDate()->toSql();
|
||||
foreach ($otherStrings as $item)
|
||||
{
|
||||
if (ComponentbuilderHelper::checkJson($item['components']))
|
||||
{
|
||||
$components = (array) json_decode($item['components'], true);
|
||||
// if component is not found ignore this string, and do nothing
|
||||
if (($key = array_search($this->componentID, $components)) !== false)
|
||||
{
|
||||
// first remove the component from the string
|
||||
unset($components[$key]);
|
||||
// check if there are more components
|
||||
if (ComponentbuilderHelper::checkArray($components))
|
||||
{
|
||||
// just update the string to unlink the current component
|
||||
$this->setUpdateExistingLangStrings($item['id'], $components, 1, $today, $counterUpdate);
|
||||
|
||||
$counterUpdate++;
|
||||
|
||||
// load to db
|
||||
$this->setExistingLangStrings(50);
|
||||
}
|
||||
// check if this string has been worked on
|
||||
elseif (ComponentbuilderHelper::checkJson($item['translation']))
|
||||
{
|
||||
$translation = json_decode($item['translation'], true);
|
||||
if (ComponentbuilderHelper::checkArray($translation) && ComponentbuilderHelper::checkArray($translation['translation']))
|
||||
{
|
||||
// only archive the item and update the string to unlink the current component
|
||||
$this->setUpdateExistingLangStrings($item['id'], $components, 2, $today, $counterUpdate);
|
||||
|
||||
$counterUpdate++;
|
||||
|
||||
// load to db
|
||||
$this->setExistingLangStrings(50);
|
||||
}
|
||||
else
|
||||
{
|
||||
// remove the string since no translation found and not linked to any other component
|
||||
$this->removeExitingLangString($item['id']);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// remove the string since no translation found and not linked to any other component
|
||||
$this->removeExitingLangString($item['id']);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// load to db
|
||||
$this->setExistingLangStrings();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* just to add lang string to the existing Lang Strings array
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
*/
|
||||
protected function setUpdateExistingLangStrings($id, $components, $published, $today, $counterUpdate)
|
||||
{
|
||||
// start the bucket for this lang
|
||||
$this->existingLangStrings[$counterUpdate] = array();
|
||||
$this->existingLangStrings[$counterUpdate]['id'] = (int) $id;
|
||||
$this->existingLangStrings[$counterUpdate]['conditions'] = array();
|
||||
$this->existingLangStrings[$counterUpdate]['conditions'][] = $this->db->quoteName('id') . ' = ' . $this->db->quote($id);
|
||||
$this->existingLangStrings[$counterUpdate]['fields'] = array();
|
||||
$this->existingLangStrings[$counterUpdate]['fields'][] = $this->db->quoteName('components') . ' = ' . $this->db->quote(json_encode($components));
|
||||
$this->existingLangStrings[$counterUpdate]['fields'][] = $this->db->quoteName('published') . ' = ' . $this->db->quote($published);
|
||||
$this->existingLangStrings[$counterUpdate]['fields'][] = $this->db->quoteName('modified') . ' = ' . $this->db->quote($today);
|
||||
$this->existingLangStrings[$counterUpdate]['fields'][] = $this->db->quoteName('modified_by') . ' = ' . $this->db->quote((int) $this->user->id);
|
||||
}
|
||||
|
||||
/**
|
||||
* get the custom code from the system
|
||||
*
|
||||
|
@ -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)
|
||||
@ -1093,34 +1102,11 @@ class Structure extends Get
|
||||
* @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
|
||||
* @return boolean True if all is removed
|
||||
*
|
||||
*/
|
||||
protected 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;
|
||||
return ComponentbuilderHelper::removeFolder($dir, $git);
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
{
|
||||
@ -957,12 +970,12 @@ class Fields extends Structure
|
||||
if (strpos($fieldAttributes['fields'], ',') !== false)
|
||||
{
|
||||
// mulitpal fields
|
||||
$fieldsSets = explode(',', $fieldAttributes['fields']);
|
||||
$fieldsSets = (array) explode(',', $fieldAttributes['fields']);
|
||||
}
|
||||
else
|
||||
elseif (is_numeric($fieldAttributes['fields']))
|
||||
{
|
||||
// single field
|
||||
$fieldsSets[] = $fieldAttributes['fields'];
|
||||
$fieldsSets[] = (int) $fieldAttributes['fields'];
|
||||
}
|
||||
// only continue if we have a field set
|
||||
if (ComponentbuilderHelper::checkArray($fieldsSets))
|
||||
@ -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
@ -61,7 +61,7 @@ class Infusion extends Interpretation
|
||||
*/
|
||||
private function setLine($nr)
|
||||
{
|
||||
if ($this->loadLineNr)
|
||||
if ($this->debugLinenr)
|
||||
{
|
||||
return ' [Infusion '.$nr.']';
|
||||
}
|
||||
@ -149,10 +149,12 @@ class Infusion extends Interpretation
|
||||
$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 +170,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 +196,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 +262,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 +286,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 +306,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 +331,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 +353,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 +374,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 +426,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 +440,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();
|
||||
|
||||
// ###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 +481,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 +520,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 +558,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 +639,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 +665,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 +681,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 +703,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 +723,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 +739,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 +760,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 +814,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 +938,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 +947,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 +966,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 +988,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 +1011,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 +1037,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>>>
|
||||
@ -991,7 +1063,8 @@ class Infusion extends Interpretation
|
||||
}
|
||||
// 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 +1073,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 +1117,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 +1144,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 = JFile::read($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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.3.7
|
||||
@build 12th March, 2017
|
||||
@version 2.4.10
|
||||
@build 12th August, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage componentbuilder.php
|
||||
@ -30,20 +30,32 @@ 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();
|
||||
}
|
||||
|
||||
/*
|
||||
* Autoloader
|
||||
*/
|
||||
public static function autoLoader($type = 'compiler')
|
||||
{
|
||||
// load the compiler classes
|
||||
foreach (glob(JPATH_ADMINISTRATOR."/components/com_componentbuilder/helpers/".$type."/*.php") as $autoFile)
|
||||
// load the type classes
|
||||
if ('smart' !== $type)
|
||||
{
|
||||
require_once $autoFile;
|
||||
foreach (glob(JPATH_ADMINISTRATOR."/components/com_componentbuilder/helpers/".$type."/*.php") as $autoFile)
|
||||
{
|
||||
require_once $autoFile;
|
||||
}
|
||||
}
|
||||
// load only if compiler
|
||||
if ('compiler' == $type)
|
||||
if ('compiler' === $type)
|
||||
{
|
||||
// import the Joomla librarys
|
||||
jimport('joomla.filesystem.file');
|
||||
@ -53,6 +65,15 @@ abstract class ComponentbuilderHelper
|
||||
// include class to minify js
|
||||
require_once JPATH_ADMINISTRATOR.'/components/com_componentbuilder/helpers/js.php';
|
||||
}
|
||||
// load only if smart
|
||||
if ('smart' === $type)
|
||||
{
|
||||
// import the Joomla libraries
|
||||
jimport('joomla.filesystem.file');
|
||||
jimport('joomla.filesystem.folder');
|
||||
jimport('joomla.filesystem.archive');
|
||||
jimport('joomla.application.component.modellist');
|
||||
}
|
||||
// load this for all
|
||||
jimport('joomla.application');
|
||||
}
|
||||
@ -66,6 +87,108 @@ abstract class ComponentbuilderHelper
|
||||
$extruder = new Extrusion($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* The zipper method
|
||||
**/
|
||||
public static function zip($workingDIR, &$filepath)
|
||||
{
|
||||
// store the current joomla working directory
|
||||
$joomla = getcwd();
|
||||
|
||||
// we are changing the working directory to the component temp folder
|
||||
chdir($workingDIR);
|
||||
|
||||
// the full file path of the zip file
|
||||
$filepath = JPath::clean($filepath);
|
||||
|
||||
// delete an existing zip file (or use an exclusion parameter in JFolder::files()
|
||||
JFile::delete($filepath);
|
||||
|
||||
// get a list of files in the current directory tree
|
||||
$files = JFolder::files('.', '', true, true);
|
||||
$zipArray = array();
|
||||
// setup the zip array
|
||||
foreach ($files as $file)
|
||||
{
|
||||
$tmp = array();
|
||||
$tmp['name'] = str_replace('./', '', $file);
|
||||
$tmp['data'] = JFile::read($file);
|
||||
$tmp['time'] = filemtime($file);
|
||||
$zipArray[] = $tmp;
|
||||
}
|
||||
|
||||
// change back to joomla working directory
|
||||
chdir($joomla);
|
||||
|
||||
// get the zip adapter
|
||||
$zip = JArchive::getAdapter('zip');
|
||||
|
||||
//create the zip file
|
||||
if ($zip->create($filepath, $zipArray))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
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)
|
||||
{
|
||||
$fh = fopen($path, "w");
|
||||
if (!is_resource($fh))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (fwrite($fh, $data))
|
||||
{
|
||||
// close file.
|
||||
fclose($fh);
|
||||
return true;
|
||||
}
|
||||
// close file.
|
||||
fclose($fh);
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* The user notice info File Name
|
||||
**/
|
||||
@ -278,7 +401,737 @@ abstract class ComponentbuilderHelper
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static function getImportScripts($type, $fieldName = false)
|
||||
{
|
||||
// if field name is pased the convert to type
|
||||
if ($fieldName)
|
||||
{
|
||||
$fieldNames = array(
|
||||
'php_import_display' => 'display',
|
||||
'php_import_setdata' => 'setdata',
|
||||
'php_import_save' => 'save',
|
||||
'html_import_view' => 'view',
|
||||
'php_import' => 'import',
|
||||
'php_import_ext' => 'ext'
|
||||
);
|
||||
// first check if the field name is found
|
||||
if (isset($fieldNames[$type]))
|
||||
{
|
||||
$type = $fieldNames[$type];
|
||||
}
|
||||
else
|
||||
{
|
||||
return '';
|
||||
}
|
||||
}
|
||||
$script = array();
|
||||
if ('display' === $type)
|
||||
{
|
||||
// set the display script
|
||||
$script['display'][] = "\tprotected \$headerList;";
|
||||
$script['display'][] = "\tprotected \$hasPackage = false;";
|
||||
$script['display'][] = "\tprotected \$headers;";
|
||||
$script['display'][] = "\tprotected \$hasHeader = 0;";
|
||||
$script['display'][] = "\tprotected \$dataType;";
|
||||
$script['display'][] = "\n\tpublic function display(\$tpl = null)";
|
||||
$script['display'][] = "\t{";
|
||||
$script['display'][] = "\t\tif (\$this->getLayout() !== 'modal')";
|
||||
$script['display'][] = "\t\t{";
|
||||
$script['display'][] = "\t\t\t// Include helper submenu";
|
||||
$script['display'][] = "\t\t\t###-#-#-Component###Helper::addSubmenu('import');";
|
||||
$script['display'][] = "\t\t}";
|
||||
$script['display'][] = "\n\t\t// Check for errors.";
|
||||
$script['display'][] = "\t\tif (count(\$errors = \$this->get('Errors'))){";
|
||||
$script['display'][] = "\t\t\tJError::raiseError(500, implode('<br />', \$errors));";
|
||||
$script['display'][] = "\t\t\treturn false;";
|
||||
$script['display'][] = "\t\t}";
|
||||
$script['display'][] = "\n\t\t\$paths = new stdClass;";
|
||||
$script['display'][] = "\t\t\$paths->first = '';";
|
||||
$script['display'][] = "\t\t\$state = \$this->get('state');";
|
||||
$script['display'][] = "\n\t\t\$this->paths = &\$paths;";
|
||||
$script['display'][] = "\t\t\$this->state = &\$state;";
|
||||
$script['display'][] = "\t\t// get global action permissions";
|
||||
$script['display'][] = "\t\t\$this->canDo = ###-#-#-Component###Helper::getActions('import');";
|
||||
$script['display'][] = "\n\t\t// We don't need toolbar in the modal window.";
|
||||
$script['display'][] = "\t\tif (\$this->getLayout() !== 'modal')";
|
||||
$script['display'][] = "\t\t{";
|
||||
$script['display'][] = "\t\t\t\$this->addToolbar();";
|
||||
$script['display'][] = "\t\t\t\$this->sidebar = JHtmlSidebar::render();";
|
||||
$script['display'][] = "\t\t}";
|
||||
$script['display'][] = "\n\t\t// get the session object";
|
||||
$script['display'][] = "\t\t\$session = JFactory::getSession();";
|
||||
$script['display'][] = "\t\t// check if it has package";
|
||||
$script['display'][] = "\t\t\$this->hasPackage \t= \$session->get('hasPackage', false);";
|
||||
$script['display'][] = "\t\t\$this->dataType \t= \$session->get('dataType', false);";
|
||||
$script['display'][] = "\t\tif(\$this->hasPackage && \$this->dataType)";
|
||||
$script['display'][] = "\t\t{";
|
||||
$script['display'][] = "\t\t\t\$this->headerList \t= json_decode(\$session->get(\$this->dataType.'_VDM_IMPORTHEADERS', false),true);";
|
||||
$script['display'][] = "\t\t\t\$this->headers \t\t= ###-#-#-Component###Helper::getFileHeaders(\$this->dataType);";
|
||||
$script['display'][] = "\t\t\t// clear the data type";
|
||||
$script['display'][] = "\t\t\t\$session->clear('dataType');";
|
||||
$script['display'][] = "\t\t}";
|
||||
$script['display'][] = "\n\t\t// Display the template";
|
||||
$script['display'][] = "\t\tparent::display(\$tpl);";
|
||||
$script['display'][] = "\t}";
|
||||
}
|
||||
elseif ('setdata' === $type)
|
||||
{
|
||||
// set the setdata script
|
||||
$script['setdata'] = array();
|
||||
$script['setdata'][] = "\t/**";
|
||||
$script['setdata'][] = "\t* Set the data from the spreadsheet to the database";
|
||||
$script['setdata'][] = "\t*";
|
||||
$script['setdata'][] = "\t* @param string \$package Paths to the uploaded package file";
|
||||
$script['setdata'][] = "\t*";
|
||||
$script['setdata'][] = "\t* @return boolean false on failure";
|
||||
$script['setdata'][] = "\t*";
|
||||
$script['setdata'][] = "\t**/";
|
||||
$script['setdata'][] = "\tprotected function setData(\$package,\$table,\$target_headers)";
|
||||
$script['setdata'][] = "\t{";
|
||||
$script['setdata'][] = "\t\tif (###-#-#-Component###Helper::checkArray(\$target_headers))";
|
||||
$script['setdata'][] = "\t\t{";
|
||||
$script['setdata'][] = "\t\t\t// make sure the file is loaded\t\t";
|
||||
$script['setdata'][] = "\t\t\tJLoader::import('PHPExcel', JPATH_COMPONENT_ADMINISTRATOR . '/helpers');";
|
||||
$script['setdata'][] = "\t\t\t\$jinput = JFactory::getApplication()->input;";
|
||||
$script['setdata'][] = "\t\t\tforeach(\$target_headers as \$header)";
|
||||
$script['setdata'][] = "\t\t\t{";
|
||||
$script['setdata'][] = "\t\t\t\t\$data['target_headers'][\$header] = \$jinput->getString(\$header, null);";
|
||||
$script['setdata'][] = "\t\t\t}";
|
||||
$script['setdata'][] = "\t\t\t// set the data";
|
||||
$script['setdata'][] = "\t\t\tif(isset(\$package['dir']))";
|
||||
$script['setdata'][] = "\t\t\t{";
|
||||
$script['setdata'][] = "\t\t\t\t\$inputFileType = PHPExcel_IOFactory::identify(\$package['dir']);";
|
||||
$script['setdata'][] = "\t\t\t\t\$excelReader = PHPExcel_IOFactory::createReader(\$inputFileType);";
|
||||
$script['setdata'][] = "\t\t\t\t\$excelReader->setReadDataOnly(true);";
|
||||
$script['setdata'][] = "\t\t\t\t\$excelObj = \$excelReader->load(\$package['dir']);";
|
||||
$script['setdata'][] = "\t\t\t\t\$data['array'] = \$excelObj->getActiveSheet()->toArray(null, true,true,true);";
|
||||
$script['setdata'][] = "\t\t\t\t\$excelObj->disconnectWorksheets();";
|
||||
$script['setdata'][] = "\t\t\t\tunset(\$excelObj);";
|
||||
$script['setdata'][] = "\t\t\t\treturn \$this->save(\$data,\$table);";
|
||||
$script['setdata'][] = "\t\t\t}";
|
||||
$script['setdata'][] = "\t\t}";
|
||||
$script['setdata'][] = "\t\treturn false;";
|
||||
$script['setdata'][] = "\t}";
|
||||
}
|
||||
elseif ('save' === $type)
|
||||
{
|
||||
$script['save'] = array();
|
||||
$script['save'][] = "\t/**";
|
||||
$script['save'][] = "\t* Save the data from the file to the database";
|
||||
$script['save'][] = "\t*";
|
||||
$script['save'][] = "\t* @param string \$package Paths to the uploaded package file";
|
||||
$script['save'][] = "\t*";
|
||||
$script['save'][] = "\t* @return boolean false on failure";
|
||||
$script['save'][] = "\t*";
|
||||
$script['save'][] = "\t**/";
|
||||
$script['save'][] = "\tprotected function save(\$data,\$table)";
|
||||
$script['save'][] = "\t{";
|
||||
$script['save'][] = "\t\t// import the data if there is any";
|
||||
$script['save'][] = "\t\tif(###-#-#-Component###Helper::checkArray(\$data['array']))";
|
||||
$script['save'][] = "\t\t{";
|
||||
$script['save'][] = "\t\t\t// get user object";
|
||||
$script['save'][] = "\t\t\t\$user \t\t= JFactory::getUser();";
|
||||
$script['save'][] = "\t\t\t// remove header if it has headers";
|
||||
$script['save'][] = "\t\t\t\$id_key \t= \$data['target_headers']['id'];";
|
||||
$script['save'][] = "\t\t\t\$published_key \t= \$data['target_headers']['published'];";
|
||||
$script['save'][] = "\t\t\t\$ordering_key \t= \$data['target_headers']['ordering'];";
|
||||
$script['save'][] = "\t\t\t// get the first array set";
|
||||
$script['save'][] = "\t\t\t\$firstSet = reset(\$data['array']);";
|
||||
$script['save'][] = "";
|
||||
$script['save'][] = "\t\t\t// check if first array is a header array and remove if true";
|
||||
$script['save'][] = "\t\t\tif(\$firstSet[\$id_key] == 'id' || \$firstSet[\$published_key] == 'published' || \$firstSet[\$ordering_key] == 'ordering')";
|
||||
$script['save'][] = "\t\t\t{";
|
||||
$script['save'][] = "\t\t\t\tarray_shift(\$data['array']);";
|
||||
$script['save'][] = "\t\t\t}";
|
||||
$script['save'][] = "\t\t\t";
|
||||
$script['save'][] = "\t\t\t// make sure there is still values in array and that it was not only headers";
|
||||
$script['save'][] = "\t\t\tif(###-#-#-Component###Helper::checkArray(\$data['array']) && \$user->authorise(\$table.'.import', 'com_###-#-#-component###') && \$user->authorise('core.import', 'com_###-#-#-component###'))";
|
||||
$script['save'][] = "\t\t\t{";
|
||||
$script['save'][] = "\t\t\t\t// set target.";
|
||||
$script['save'][] = "\t\t\t\t\$target\t= array_flip(\$data['target_headers']);";
|
||||
$script['save'][] = "\t\t\t\t// Get a db connection.";
|
||||
$script['save'][] = "\t\t\t\t\$db = JFactory::getDbo();";
|
||||
$script['save'][] = "\t\t\t\t// set some defaults";
|
||||
$script['save'][] = "\t\t\t\t\$todayDate\t\t= JFactory::getDate()->toSql();";
|
||||
$script['save'][] = "\t\t\t\t// get global action permissions";
|
||||
$script['save'][] = "\t\t\t\t\$canDo\t\t\t= ###-#-#-Component###Helper::getActions(\$table);";
|
||||
$script['save'][] = "\t\t\t\t\$canEdit\t\t= \$canDo->get('core.edit');";
|
||||
$script['save'][] = "\t\t\t\t\$canState\t\t= \$canDo->get('core.edit.state');";
|
||||
$script['save'][] = "\t\t\t\t\$canCreate\t\t= \$canDo->get('core.create');";
|
||||
$script['save'][] = "\t\t\t\t\$hasAlias\t\t= \$this->getAliasesUsed(\$table);";
|
||||
$script['save'][] = "\t\t\t\t// prosses the data";
|
||||
$script['save'][] = "\t\t\t\tforeach(\$data['array'] as \$row)";
|
||||
$script['save'][] = "\t\t\t\t{";
|
||||
$script['save'][] = "\t\t\t\t\t\$found = false;";
|
||||
$script['save'][] = "\t\t\t\t\tif (isset(\$row[\$id_key]) && is_numeric(\$row[\$id_key]) && \$row[\$id_key] > 0)";
|
||||
$script['save'][] = "\t\t\t\t\t{";
|
||||
$script['save'][] = "\t\t\t\t\t\t// raw items import & update!";
|
||||
$script['save'][] = "\t\t\t\t\t\t\$query = \$db->getQuery(true);";
|
||||
$script['save'][] = "\t\t\t\t\t\t\$query";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t->select('version')";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t->from(\$db->quoteName('#__###-#-#-component###_'.\$table))";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t->where(\$db->quoteName('id') . ' = '. \$db->quote(\$row[\$id_key]));";
|
||||
$script['save'][] = "\t\t\t\t\t\t// Reset the query using our newly populated query object.";
|
||||
$script['save'][] = "\t\t\t\t\t\t\$db->setQuery(\$query);";
|
||||
$script['save'][] = "\t\t\t\t\t\t\$db->execute();";
|
||||
$script['save'][] = "\t\t\t\t\t\t\$found = \$db->getNumRows();";
|
||||
$script['save'][] = "\t\t\t\t\t}";
|
||||
$script['save'][] = "\t\t\t\t\t";
|
||||
$script['save'][] = "\t\t\t\t\tif(\$found && \$canEdit)";
|
||||
$script['save'][] = "\t\t\t\t\t{";
|
||||
$script['save'][] = "\t\t\t\t\t\t// update item";
|
||||
$script['save'][] = "\t\t\t\t\t\t\$id \t\t= \$row[\$id_key];";
|
||||
$script['save'][] = "\t\t\t\t\t\t\$version\t= \$db->loadResult();";
|
||||
$script['save'][] = "\t\t\t\t\t\t// reset all buckets";
|
||||
$script['save'][] = "\t\t\t\t\t\t\$query \t\t= \$db->getQuery(true);";
|
||||
$script['save'][] = "\t\t\t\t\t\t\$fields \t= array();";
|
||||
$script['save'][] = "\t\t\t\t\t\t// Fields to update.";
|
||||
$script['save'][] = "\t\t\t\t\t\tforeach(\$row as \$key => \$cell)";
|
||||
$script['save'][] = "\t\t\t\t\t\t{";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t// ignore column";
|
||||
$script['save'][] = "\t\t\t\t\t\t\tif ('IGNORE' == \$target[\$key])";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t{";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t\tcontinue;";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t}";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t// update modified";
|
||||
$script['save'][] = "\t\t\t\t\t\t\tif ('modified_by' == \$target[\$key])";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t{";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t\tcontinue;";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t}";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t// update modified";
|
||||
$script['save'][] = "\t\t\t\t\t\t\tif ('modified' == \$target[\$key])";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t{";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t\tcontinue;";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t}";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t// update version";
|
||||
$script['save'][] = "\t\t\t\t\t\t\tif ('version' == \$target[\$key])";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t{";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t\t\$cell = (int) \$version + 1;";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t}";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t// verify publish authority";
|
||||
$script['save'][] = "\t\t\t\t\t\t\tif ('published' == \$target[\$key] && !\$canState)";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t{";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t\tcontinue;";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t}";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t// set to update array";
|
||||
$script['save'][] = "\t\t\t\t\t\t\tif(in_array(\$key, \$data['target_headers']) && is_numeric(\$cell))";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t{";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t\t\$fields[] = \$db->quoteName(\$target[\$key]) . ' = ' . \$cell;";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t}";
|
||||
$script['save'][] = "\t\t\t\t\t\t\telseif(in_array(\$key, \$data['target_headers']) && is_string(\$cell))";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t{";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t\t\$fields[] = \$db->quoteName(\$target[\$key]) . ' = ' . \$db->quote(\$cell);";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t}";
|
||||
$script['save'][] = "\t\t\t\t\t\t\telseif(in_array(\$key, \$data['target_headers']) && is_null(\$cell))";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t{";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t\t// if import data is null then set empty";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t\t\$fields[] = \$db->quoteName(\$target[\$key]) . \" = ''\";";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t}";
|
||||
$script['save'][] = "\t\t\t\t\t\t}";
|
||||
$script['save'][] = "\t\t\t\t\t\t// load the defaults";
|
||||
$script['save'][] = "\t\t\t\t\t\t\$fields[]\t= \$db->quoteName('modified_by') . ' = ' . \$db->quote(\$user->id);";
|
||||
$script['save'][] = "\t\t\t\t\t\t\$fields[]\t= \$db->quoteName('modified') . ' = ' . \$db->quote(\$todayDate);";
|
||||
$script['save'][] = "\t\t\t\t\t\t// Conditions for which records should be updated.";
|
||||
$script['save'][] = "\t\t\t\t\t\t\$conditions = array(";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t\$db->quoteName('id') . ' = ' . \$id";
|
||||
$script['save'][] = "\t\t\t\t\t\t);";
|
||||
$script['save'][] = "\t\t\t\t\t\t";
|
||||
$script['save'][] = "\t\t\t\t\t\t\$query->update(\$db->quoteName('#__###-#-#-component###_'.\$table))->set(\$fields)->where(\$conditions);";
|
||||
$script['save'][] = "\t\t\t\t\t\t\$db->setQuery(\$query);";
|
||||
$script['save'][] = "\t\t\t\t\t\t\$db->execute();";
|
||||
$script['save'][] = "\t\t\t\t\t}";
|
||||
$script['save'][] = "\t\t\t\t\telseif (\$canCreate)";
|
||||
$script['save'][] = "\t\t\t\t\t{";
|
||||
$script['save'][] = "\t\t\t\t\t\t// insert item";
|
||||
$script['save'][] = "\t\t\t\t\t\t\$query = \$db->getQuery(true);";
|
||||
$script['save'][] = "\t\t\t\t\t\t// reset all buckets";
|
||||
$script['save'][] = "\t\t\t\t\t\t\$columns \t= array();";
|
||||
$script['save'][] = "\t\t\t\t\t\t\$values \t= array();";
|
||||
$script['save'][] = "\t\t\t\t\t\t\$version\t= false;";
|
||||
$script['save'][] = "\t\t\t\t\t\t// Insert columns. Insert values.";
|
||||
$script['save'][] = "\t\t\t\t\t\tforeach(\$row as \$key => \$cell)";
|
||||
$script['save'][] = "\t\t\t\t\t\t{";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t// ignore column";
|
||||
$script['save'][] = "\t\t\t\t\t\t\tif ('IGNORE' == \$target[\$key])";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t{";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t\tcontinue;";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t}";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t// remove id";
|
||||
$script['save'][] = "\t\t\t\t\t\t\tif ('id' == \$target[\$key])";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t{";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t\tcontinue;";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t}";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t// update created";
|
||||
$script['save'][] = "\t\t\t\t\t\t\tif ('created_by' == \$target[\$key])";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t{";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t\tcontinue;";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t}";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t// update created";
|
||||
$script['save'][] = "\t\t\t\t\t\t\tif ('created' == \$target[\$key])";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t{";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t\tcontinue;";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t}";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t// Make sure the alias is incremented";
|
||||
$script['save'][] = "\t\t\t\t\t\t\tif ('alias' == \$target[\$key])";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t{";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t\t\$cell = \$this->getAlias(\$cell,\$table);";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t}";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t// update version";
|
||||
$script['save'][] = "\t\t\t\t\t\t\tif ('version' == \$target[\$key])";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t{";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t\t\$cell = 1;";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t\t\$version = true;";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t}";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t// set to insert array";
|
||||
$script['save'][] = "\t\t\t\t\t\t\tif(in_array(\$key, \$data['target_headers']) && is_numeric(\$cell))";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t{";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t\t\$columns[] \t= \$target[\$key];";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t\t\$values[] \t= \$cell;";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t}";
|
||||
$script['save'][] = "\t\t\t\t\t\t\telseif(in_array(\$key, \$data['target_headers']) && is_string(\$cell))";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t{";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t\t\$columns[] \t= \$target[\$key];";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t\t\$values[] \t= \$db->quote(\$cell);";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t}";
|
||||
$script['save'][] = "\t\t\t\t\t\t\telseif(in_array(\$key, \$data['target_headers']) && is_null(\$cell))";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t{";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t\t// if import data is null then set empty";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t\t\$columns[] \t= \$target[\$key];";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t\t\$values[] \t= \"''\";";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t}";
|
||||
$script['save'][] = "\t\t\t\t\t\t}";
|
||||
$script['save'][] = "\t\t\t\t\t\t// load the defaults";
|
||||
$script['save'][] = "\t\t\t\t\t\t\$columns[] \t= 'created_by';";
|
||||
$script['save'][] = "\t\t\t\t\t\t\$values[] \t= \$db->quote(\$user->id);";
|
||||
$script['save'][] = "\t\t\t\t\t\t\$columns[] \t= 'created';";
|
||||
$script['save'][] = "\t\t\t\t\t\t\$values[] \t= \$db->quote(\$todayDate);";
|
||||
$script['save'][] = "\t\t\t\t\t\tif (!\$version)";
|
||||
$script['save'][] = "\t\t\t\t\t\t{";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t\$columns[] \t= 'version';";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t\$values[] \t= 1;";
|
||||
$script['save'][] = "\t\t\t\t\t\t}";
|
||||
$script['save'][] = "\t\t\t\t\t\t// Prepare the insert query.";
|
||||
$script['save'][] = "\t\t\t\t\t\t\$query";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t->insert(\$db->quoteName('#__###-#-#-component###_'.\$table))";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t->columns(\$db->quoteName(\$columns))";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t->values(implode(',', \$values));";
|
||||
$script['save'][] = "\t\t\t\t\t\t// Set the query using our newly populated query object and execute it.";
|
||||
$script['save'][] = "\t\t\t\t\t\t\$db->setQuery(\$query);";
|
||||
$script['save'][] = "\t\t\t\t\t\t\$done = \$db->execute();";
|
||||
$script['save'][] = "\t\t\t\t\t\tif (\$done)";
|
||||
$script['save'][] = "\t\t\t\t\t\t{";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t\$aId = \$db->insertid();";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t// make sure the access of asset is set";
|
||||
$script['save'][] = "\t\t\t\t\t\t\t###-#-#-Component###Helper::setAsset(\$aId,\$table);";
|
||||
$script['save'][] = "\t\t\t\t\t\t}";
|
||||
$script['save'][] = "\t\t\t\t\t}";
|
||||
$script['save'][] = "\t\t\t\t\telse";
|
||||
$script['save'][] = "\t\t\t\t\t{";
|
||||
$script['save'][] = "\t\t\t\t\t\treturn false;";
|
||||
$script['save'][] = "\t\t\t\t\t}";
|
||||
$script['save'][] = "\t\t\t\t}";
|
||||
$script['save'][] = "\t\t\t\treturn true;";
|
||||
$script['save'][] = "\t\t\t}";
|
||||
$script['save'][] = "\t\t}";
|
||||
$script['save'][] = "\t\treturn false;";
|
||||
$script['save'][] = "\t}";
|
||||
}
|
||||
elseif ('view' === $type)
|
||||
{
|
||||
$script['view'] = array();
|
||||
$script['view'][] = "<script type=\"text/javascript\">";
|
||||
$script['view'][] = "<?php if (\$this->hasPackage && ###-#-#-Component###Helper::checkArray(\$this->headerList)) : ?>";
|
||||
$script['view'][] = "\tJoomla.continueImport = function()";
|
||||
$script['view'][] = "\t{";
|
||||
$script['view'][] = "\t\tvar form = document.getElementById('adminForm');";
|
||||
$script['view'][] = "\t\tvar error = false;";
|
||||
$script['view'][] = "\t\tvar therequired = [<?php \$i = 0; foreach(\$this->headerList as \$name => \$title) { echo (\$i != 0)? ', \"vdm_'.\$name.'\"':'\"vdm_'.\$name.'\"'; \$i++; } ?>];";
|
||||
$script['view'][] = "\t\tfor(i = 0; i < therequired.length; i++)";
|
||||
$script['view'][] = "\t\t{";
|
||||
$script['view'][] = "\t\t\tif(jQuery('#'+therequired[i]).val() == \"\" )";
|
||||
$script['view'][] = "\t\t\t{";
|
||||
$script['view'][] = "\t\t\t\terror = true;";
|
||||
$script['view'][] = "\t\t\t\tbreak;";
|
||||
$script['view'][] = "\t\t\t}";
|
||||
$script['view'][] = "\t\t}";
|
||||
$script['view'][] = "\t\t// do field validation";
|
||||
$script['view'][] = "\t\tif (error)";
|
||||
$script['view'][] = "\t\t{";
|
||||
$script['view'][] = "\t\t\talert(\"<?php echo JTe-#-#-xt::_('COM_###-#-#-COMPONENT###_IMPORT_MSG_PLEASE_SELECT_ALL_COLUMNS', true); ?>\");";
|
||||
$script['view'][] = "\t\t}";
|
||||
$script['view'][] = "\t\telse";
|
||||
$script['view'][] = "\t\t{";
|
||||
$script['view'][] = "\t\t\tjQuery('#loading').css('display', 'block');";
|
||||
$script['view'][] = "";
|
||||
$script['view'][] = "\n\t\t\tform.gettype.value = 'continue';";
|
||||
$script['view'][] = "\t\t\tform.submit();";
|
||||
$script['view'][] = "\t\t}";
|
||||
$script['view'][] = "\t};";
|
||||
$script['view'][] = "<?php else: ?>";
|
||||
$script['view'][] = "\tJoomla.submitbutton = function()";
|
||||
$script['view'][] = "\t{";
|
||||
$script['view'][] = "\t\tvar form = document.getElementById('adminForm');";
|
||||
$script['view'][] = "";
|
||||
$script['view'][] = "\n\t\t// do field validation";
|
||||
$script['view'][] = "\t\tif (form.import_package.value == \"\")";
|
||||
$script['view'][] = "\t\t{";
|
||||
$script['view'][] = "\t\t\talert(\"<?php echo JTe-#-#-xt::_('COM_###-#-#-COMPONENT###_IMPORT_MSG_PLEASE_SELECT_A_FILE', true); ?>\");";
|
||||
$script['view'][] = "\t\t}";
|
||||
$script['view'][] = "\t\telse";
|
||||
$script['view'][] = "\t\t{";
|
||||
$script['view'][] = "\t\t\tjQuery('#loading').css('display', 'block');";
|
||||
$script['view'][] = "";
|
||||
$script['view'][] = "\n\t\t\tform.gettype.value = 'upload';";
|
||||
$script['view'][] = "\t\t\tform.submit();";
|
||||
$script['view'][] = "\t\t}";
|
||||
$script['view'][] = "\t};";
|
||||
$script['view'][] = "";
|
||||
$script['view'][] = "\n\tJoomla.submitbutton3 = function()";
|
||||
$script['view'][] = "\t{";
|
||||
$script['view'][] = "\t\tvar form = document.getElementById('adminForm');";
|
||||
$script['view'][] = "";
|
||||
$script['view'][] = "\n\t\t// do field validation";
|
||||
$script['view'][] = "\t\tif (form.import_directory.value == \"\"){";
|
||||
$script['view'][] = "\t\t\talert(\"<?php echo JTe-#-#-xt::_('COM_###-#-#-COMPONENT###_IMPORT_MSG_PLEASE_SELECT_A_DIRECTORY', true); ?>\");";
|
||||
$script['view'][] = "\t\t}";
|
||||
$script['view'][] = "\t\telse";
|
||||
$script['view'][] = "\t\t{";
|
||||
$script['view'][] = "\t\t\tjQuery('#loading').css('display', 'block');";
|
||||
$script['view'][] = "";
|
||||
$script['view'][] = "\n\t\t\tform.gettype.value = 'folder';";
|
||||
$script['view'][] = "\t\t\tform.submit();";
|
||||
$script['view'][] = "\t\t}";
|
||||
$script['view'][] = "\t};";
|
||||
$script['view'][] = "";
|
||||
$script['view'][] = "\n\tJoomla.submitbutton4 = function()";
|
||||
$script['view'][] = "\t{";
|
||||
$script['view'][] = "\t\tvar form = document.getElementById('adminForm');";
|
||||
$script['view'][] = "";
|
||||
$script['view'][] = "\n\t\t// do field validation";
|
||||
$script['view'][] = "\t\tif (form.import_url.value == \"\" || form.import_url.value == \"http://\")";
|
||||
$script['view'][] = "\t\t{";
|
||||
$script['view'][] = "\t\t\talert(\"<?php echo JTe-#-#-xt::_('COM_###-#-#-COMPONENT###_IMPORT_MSG_ENTER_A_URL', true); ?>\");";
|
||||
$script['view'][] = "\t\t}";
|
||||
$script['view'][] = "\t\telse";
|
||||
$script['view'][] = "\t\t{";
|
||||
$script['view'][] = "\t\t\tjQuery('#loading').css('display', 'block');";
|
||||
$script['view'][] = "";
|
||||
$script['view'][] = "\n\t\t\tform.gettype.value = 'url';";
|
||||
$script['view'][] = "\t\t\tform.submit();";
|
||||
$script['view'][] = "\t\t}";
|
||||
$script['view'][] = "\t};";
|
||||
$script['view'][] = "<?php endif; ?>";
|
||||
$script['view'][] = "";
|
||||
$script['view'][] = "\n// Add spindle-wheel for importations:";
|
||||
$script['view'][] = "jQuery(document).ready(function(\$) {";
|
||||
$script['view'][] = "\tvar outerDiv = \$('body');";
|
||||
$script['view'][] = "";
|
||||
$script['view'][] = "\n\t\$('<div id=\"loading\"></div>')";
|
||||
$script['view'][] = "\t\t.css(\"background\", \"rgba(255, 255, 255, .8) url('components/com_###-#-#-component###/assets/images/import.gif') 50% 15% no-repeat\")";
|
||||
$script['view'][] = "\t\t.css(\"top\", outerDiv.position().top - \$(window).scrollTop())";
|
||||
$script['view'][] = "\t\t.css(\"left\", outerDiv.position().left - \$(window).scrollLeft())";
|
||||
$script['view'][] = "\t\t.css(\"width\", outerDiv.width())";
|
||||
$script['view'][] = "\t\t.css(\"height\", outerDiv.height())";
|
||||
$script['view'][] = "\t\t.css(\"position\", \"fixed\")";
|
||||
$script['view'][] = "\t\t.css(\"opacity\", \"0.80\")";
|
||||
$script['view'][] = "\t\t.css(\"-ms-filter\", \"progid:DXImageTransform.Microsoft.Alpha(Opacity = 80)\")";
|
||||
$script['view'][] = "\t\t.css(\"filter\", \"alpha(opacity = 80)\")";
|
||||
$script['view'][] = "\t\t.css(\"display\", \"none\")";
|
||||
$script['view'][] = "\t\t.appendTo(outerDiv);";
|
||||
$script['view'][] = "});";
|
||||
$script['view'][] = "";
|
||||
$script['view'][] = "\n</script>";
|
||||
$script['view'][] = "";
|
||||
$script['view'][] = "\n<div id=\"installer-import\" class=\"clearfix\">";
|
||||
$script['view'][] = "<form enctype=\"multipart/form-data\" action=\"<?php echo JRoute::_('index.php?option=com_###-#-#-component###&view=import_###-#-#-views###');?>\" method=\"post\" name=\"adminForm\" id=\"adminForm\" class=\"form-horizontal form-validate\">";
|
||||
$script['view'][] = "";
|
||||
$script['view'][] = "\n\t<?php if (!empty( \$this->sidebar)) : ?>";
|
||||
$script['view'][] = "\t\t<div id=\"j-sidebar-container\" class=\"span2\">";
|
||||
$script['view'][] = "\t\t\t<?php echo \$this->sidebar; ?>";
|
||||
$script['view'][] = "\t\t</div>";
|
||||
$script['view'][] = "\t\t<div id=\"j-main-container\" class=\"span10\">";
|
||||
$script['view'][] = "\t<?php else : ?>";
|
||||
$script['view'][] = "\t\t<div id=\"j-main-container\">";
|
||||
$script['view'][] = "\t<?php endif;?>";
|
||||
$script['view'][] = "";
|
||||
$script['view'][] = "\n\t<?php if (\$this->hasPackage && ###-#-#-Component###Helper::checkArray(\$this->headerList) && ###-#-#-Component###Helper::checkArray(\$this->headers)) : ?>";
|
||||
$script['view'][] = "\t\t<fieldset class=\"uploadform\">";
|
||||
$script['view'][] = "\t\t\t<legend><?php echo JTe-#-#-xt::_('COM_###-#-#-COMPONENT###_IMPORT_LINK_FILE_TO_TABLE_COLUMNS'); ?></legend>";
|
||||
$script['view'][] = "\t\t\t<div class=\"control-group\">";
|
||||
$script['view'][] = "\t\t\t\t<label class=\"control-label\" ><h4><?php echo JTe-#-#-xt::_('COM_###-#-#-COMPONENT###_IMPORT_TABLE_COLUMNS'); ?></h4></label>";
|
||||
$script['view'][] = "\t\t\t\t<div class=\"controls\">";
|
||||
$script['view'][] = "\t\t\t\t\t<label class=\"control-label\" ><h4><?php echo JTe-#-#-xt::_('COM_###-#-#-COMPONENT###_IMPORT_FILE_COLUMNS'); ?></h4></label>";
|
||||
$script['view'][] = "\t\t\t\t</div>";
|
||||
$script['view'][] = "\t\t\t</div>";
|
||||
$script['view'][] = "\t\t\t<?php foreach(\$this->headerList as \$name => \$title): ?>";
|
||||
$script['view'][] = "\t\t\t\t<div class=\"control-group\">";
|
||||
$script['view'][] = "\t\t\t\t\t<label for=\"<?php echo \$name; ?>\" class=\"control-label\" ><?php echo \$title; ?></label>";
|
||||
$script['view'][] = "\t\t\t\t\t<div class=\"controls\">";
|
||||
$script['view'][] = "\t\t\t\t\t\t<select name=\"<?php echo \$name; ?>\" id=\"vdm_<?php echo \$name; ?>\" required class=\"required input_box\" >";
|
||||
$script['view'][] = "\t\t\t\t\t\t\t<option value=\"\"><?php echo JTe-#-#-xt::_('COM_###-#-#-COMPONENT###_IMPORT_PLEASE_SELECT_COLUMN'); ?></option>";
|
||||
$script['view'][] = "\t\t\t\t\t\t\t<option value=\"IGNORE\"><?php echo JTe-#-#-xt::_('COM_###-#-#-COMPONENT###_IMPORT_IGNORE_COLUMN'); ?></option>";
|
||||
$script['view'][] = "\t\t\t\t\t\t\t<?php foreach(\$this->headers as \$value => \$option): ?>";
|
||||
$script['view'][] = "\t\t\t\t\t\t\t\t<?php \$selected = (strtolower(\$option) == strtolower (\$title) || strtolower(\$option) == strtolower(\$name))? 'selected=\"selected\"':''; ?>";
|
||||
$script['view'][] = "\t\t\t\t\t\t\t\t<option value=\"<?php echo ###-#-#-Component###Helper::htmlEscape(\$value); ?>\" class=\"required\" <?php echo \$selected ?>><?php echo ###-#-#-Component###Helper::htmlEscape(\$option); ?></option>";
|
||||
$script['view'][] = "\t\t\t\t\t\t\t<?php endforeach; ?>";
|
||||
$script['view'][] = "\t\t\t\t\t\t</select>";
|
||||
$script['view'][] = "\t\t\t\t\t</div>";
|
||||
$script['view'][] = "\t\t\t\t</div>";
|
||||
$script['view'][] = "\t\t\t<?php endforeach; ?>";
|
||||
$script['view'][] = "\t\t\t<div class=\"form-actions\">";
|
||||
$script['view'][] = "\t\t\t\t<input class=\"btn btn-primary\" type=\"button\" value=\"<?php echo JTe-#-#-xt::_('COM_###-#-#-COMPONENT###_IMPORT_CONTINUE'); ?>\" onclick=\"Joomla.continueImport()\" />";
|
||||
$script['view'][] = "\t\t\t</div>";
|
||||
$script['view'][] = "\t\t</fieldset>";
|
||||
$script['view'][] = "\t\t<input type=\"hidden\" name=\"gettype\" value=\"continue\" />";
|
||||
$script['view'][] = "\t<?php else: ?>";
|
||||
$script['view'][] = "\t\t<?php echo JHtml::_('bootstrap.startTabSet', 'myTab', array('active' => 'upload')); ?>";
|
||||
$script['view'][] = "\t\t";
|
||||
$script['view'][] = "\t\t<?php echo JHtml::_('bootstrap.addTab', 'myTab', 'upload', JTe-#-#-xt::_('COM_###-#-#-COMPONENT###_IMPORT_FROM_UPLOAD', true)); ?>";
|
||||
$script['view'][] = "\t\t\t<fieldset class=\"uploadform\">";
|
||||
$script['view'][] = "\t\t\t\t<legend><?php echo JTe-#-#-xt::_('COM_###-#-#-COMPONENT###_IMPORT_UPDATE_DATA'); ?></legend>";
|
||||
$script['view'][] = "\t\t\t\t<div class=\"control-group\">";
|
||||
$script['view'][] = "\t\t\t\t\t<label for=\"import_package\" class=\"control-label\"><?php echo JTe-#-#-xt::_('COM_###-#-#-COMPONENT###_IMPORT_SELECT_FILE'); ?></label>";
|
||||
$script['view'][] = "\t\t\t\t\t<div class=\"controls\">";
|
||||
$script['view'][] = "\t\t\t\t\t\t<input class=\"input_box\" id=\"import_package\" name=\"import_package\" type=\"file\" size=\"57\" />";
|
||||
$script['view'][] = "\t\t\t\t\t</div>";
|
||||
$script['view'][] = "\t\t\t\t</div>";
|
||||
$script['view'][] = "\t\t\t\t<div class=\"form-actions\">";
|
||||
$script['view'][] = "\t\t\t\t\t<input class=\"btn btn-primary\" type=\"button\" value=\"<?php echo JTe-#-#-xt::_('COM_###-#-#-COMPONENT###_IMPORT_UPLOAD_BOTTON'); ?>\" onclick=\"Joomla.submitbutton()\" /> <small><?php echo JTe-#-#-xt::_('COM_###-#-#-COMPONENT###_IMPORT_FORMATS_ACCEPTED'); ?> (.csv .xls .ods)</small>";
|
||||
$script['view'][] = "\t\t\t\t</div>";
|
||||
$script['view'][] = "\t\t\t</fieldset>";
|
||||
$script['view'][] = "\t\t<?php echo JHtml::_('bootstrap.endTab'); ?>";
|
||||
$script['view'][] = "\t\t";
|
||||
$script['view'][] = "\t\t<?php echo JHtml::_('bootstrap.addTab', 'myTab', 'directory', JTe-#-#-xt::_('COM_###-#-#-COMPONENT###_IMPORT_FROM_DIRECTORY', true)); ?>";
|
||||
$script['view'][] = "\t\t\t<fieldset class=\"uploadform\">";
|
||||
$script['view'][] = "\t\t\t\t<legend><?php echo JTe-#-#-xt::_('COM_###-#-#-COMPONENT###_IMPORT_UPDATE_DATA'); ?></legend>";
|
||||
$script['view'][] = "\t\t\t\t<div class=\"control-group\">";
|
||||
$script['view'][] = "\t\t\t\t\t<label for=\"import_directory\" class=\"control-label\"><?php echo JTe-#-#-xt::_('COM_###-#-#-COMPONENT###_IMPORT_SELECT_FILE_DIRECTORY'); ?></label>";
|
||||
$script['view'][] = "\t\t\t\t\t<div class=\"controls\">";
|
||||
$script['view'][] = "\t\t\t\t\t\t<input type=\"text\" id=\"import_directory\" name=\"import_directory\" class=\"span5 input_box\" size=\"70\" value=\"<?php echo \$this->state->get('import.directory'); ?>\" />";
|
||||
$script['view'][] = "\t\t\t\t\t</div>";
|
||||
$script['view'][] = "\t\t\t\t</div>";
|
||||
$script['view'][] = "\t\t\t\t<div class=\"form-actions\">";
|
||||
$script['view'][] = "\t\t\t\t\t<input type=\"button\" class=\"btn btn-primary\" value=\"<?php echo JTe-#-#-xt::_('COM_###-#-#-COMPONENT###_IMPORT_GET_BOTTON'); ?>\" onclick=\"Joomla.submitbutton3()\" /> <small><?php echo JTe-#-#-xt::_('COM_###-#-#-COMPONENT###_IMPORT_FORMATS_ACCEPTED'); ?> (.csv .xls .ods)</small>";
|
||||
$script['view'][] = "\t\t\t\t</div>";
|
||||
$script['view'][] = "\t\t\t\t</fieldset>";
|
||||
$script['view'][] = "\t\t<?php echo JHtml::_('bootstrap.endTab'); ?>";
|
||||
$script['view'][] = "";
|
||||
$script['view'][] = "\n\t\t<?php echo JHtml::_('bootstrap.addTab', 'myTab', 'url', JTe-#-#-xt::_('COM_###-#-#-COMPONENT###_IMPORT_FROM_URL', true)); ?>";
|
||||
$script['view'][] = "\t\t\t<fieldset class=\"uploadform\">";
|
||||
$script['view'][] = "\t\t\t\t<legend><?php echo JTe-#-#-xt::_('COM_###-#-#-COMPONENT###_IMPORT_UPDATE_DATA'); ?></legend>";
|
||||
$script['view'][] = "\t\t\t\t<div class=\"control-group\">";
|
||||
$script['view'][] = "\t\t\t\t\t<label for=\"import_url\" class=\"control-label\"><?php echo JTe-#-#-xt::_('COM_###-#-#-COMPONENT###_IMPORT_SELECT_FILE_URL'); ?></label>";
|
||||
$script['view'][] = "\t\t\t\t\t<div class=\"controls\">";
|
||||
$script['view'][] = "\t\t\t\t\t\t<input type=\"text\" id=\"import_url\" name=\"import_url\" class=\"span5 input_box\" size=\"70\" value=\"http://\" />";
|
||||
$script['view'][] = "\t\t\t\t\t</div>";
|
||||
$script['view'][] = "\t\t\t\t</div>";
|
||||
$script['view'][] = "\t\t\t\t<div class=\"form-actions\">";
|
||||
$script['view'][] = "\t\t\t\t\t<input type=\"button\" class=\"btn btn-primary\" value=\"<?php echo JTe-#-#-xt::_('COM_###-#-#-COMPONENT###_IMPORT_GET_BOTTON'); ?>\" onclick=\"Joomla.submitbutton4()\" /> <small><?php echo JTe-#-#-xt::_('COM_###-#-#-COMPONENT###_IMPORT_FORMATS_ACCEPTED'); ?> (.csv .xls .ods)</small>";
|
||||
$script['view'][] = "\t\t\t\t</div>";
|
||||
$script['view'][] = "\t\t\t</fieldset>";
|
||||
$script['view'][] = "\t\t<?php echo JHtml::_('bootstrap.endTab'); ?>";
|
||||
$script['view'][] = "\t\t<?php echo JHtml::_('bootstrap.endTabSet'); ?>";
|
||||
$script['view'][] = "\t\t<input type=\"hidden\" name=\"gettype\" value=\"upload\" />";
|
||||
$script['view'][] = "\t<?php endif; ?>";
|
||||
$script['view'][] = "\t<input type=\"hidden\" name=\"task\" value=\"import_###-#-#-views###.import\" />";
|
||||
$script['view'][] = "\t<?php echo JHtml::_('form.token'); ?>";
|
||||
$script['view'][] = "</form>";
|
||||
$script['view'][] = "</div>";
|
||||
}
|
||||
elseif ('import' === $type)
|
||||
{
|
||||
$script['import'] = array();
|
||||
$script['import'][] = "\t/**";
|
||||
$script['import'][] = "\t * Import an spreadsheet from either folder, url or upload.";
|
||||
$script['import'][] = "\t *";
|
||||
$script['import'][] = "\t * @return boolean result of import";
|
||||
$script['import'][] = "\t *";
|
||||
$script['import'][] = "\t */";
|
||||
$script['import'][] = "\tpublic function import()";
|
||||
$script['import'][] = "\t{";
|
||||
$script['import'][] = "\t\t\$this->setState('action', 'import');";
|
||||
$script['import'][] = "\t\t\$app \t\t= JFactory::getApplication();";
|
||||
$script['import'][] = "\t\t\$session \t= JFactory::getSession();";
|
||||
$script['import'][] = "\t\t\$package \t= null;";
|
||||
$script['import'][] = "\t\t\$continue\t= false;";
|
||||
$script['import'][] = "\t\t// get import type";
|
||||
$script['import'][] = "\t\t\$this->getType = \$app->input->getString('gettype', NULL);";
|
||||
$script['import'][] = "\t\t// get import type";
|
||||
$script['import'][] = "\t\t\$this->dataType\t= \$session->get('dataType_VDM_IMPORTINTO', NULL);";
|
||||
$script['import'][] = "\n\t\tif (\$package === null)";
|
||||
$script['import'][] = "\t\t{";
|
||||
$script['import'][] = "\t\t\tswitch (\$this->getType)";
|
||||
$script['import'][] = "\t\t\t{";
|
||||
$script['import'][] = "\t\t\t\tcase 'folder':";
|
||||
$script['import'][] = "\t\t\t\t\t// Remember the 'Import from Directory' path.";
|
||||
$script['import'][] = "\t\t\t\t\t\$app->getUserStateFromRequest(\$this->_context . '.import_directory', 'import_directory');";
|
||||
$script['import'][] = "\t\t\t\t\t\$package = \$this->_getPackageFromFolder();";
|
||||
$script['import'][] = "\t\t\t\t\tbreak;";
|
||||
$script['import'][] = "\n\t\t\t\tcase 'upload':";
|
||||
$script['import'][] = "\t\t\t\t\t\$package = \$this->_getPackageFromUpload();";
|
||||
$script['import'][] = "\t\t\t\t\tbreak;";
|
||||
$script['import'][] = "\n\t\t\t\tcase 'url':";
|
||||
$script['import'][] = "\t\t\t\t\t\$package = \$this->_getPackageFromUrl();";
|
||||
$script['import'][] = "\t\t\t\t\tbreak;";
|
||||
$script['import'][] = "\n\t\t\t\tcase 'continue':";
|
||||
$script['import'][] = "\t\t\t\t\t\$continue \t= true;";
|
||||
$script['import'][] = "\t\t\t\t\t\$package\t= \$session->get('package', null);";
|
||||
$script['import'][] = "\t\t\t\t\t\$package\t= json_decode(\$package, true);";
|
||||
$script['import'][] = "\t\t\t\t\t// clear session";
|
||||
$script['import'][] = "\t\t\t\t\t\$session->clear('package');";
|
||||
$script['import'][] = "\t\t\t\t\t\$session->clear('dataType');";
|
||||
$script['import'][] = "\t\t\t\t\t\$session->clear('hasPackage');";
|
||||
$script['import'][] = "\t\t\t\t\tbreak;";
|
||||
$script['import'][] = "\n\t\t\t\tdefault:";
|
||||
$script['import'][] = "\t\t\t\t\t\$app->setUserState('com_###-#-#-component###.message', JTe-#-#-xt::_('COM_###-#-#-COMPONENT###_IMPORT_NO_IMPORT_TYPE_FOUND'));";
|
||||
$script['import'][] = "\n\t\t\t\t\treturn false;";
|
||||
$script['import'][] = "\t\t\t\t\tbreak;";
|
||||
$script['import'][] = "\t\t\t}";
|
||||
$script['import'][] = "\t\t}";
|
||||
$script['import'][] = "\t\t// Was the package valid?";
|
||||
$script['import'][] = "\t\tif (!\$package || !\$package['type'])";
|
||||
$script['import'][] = "\t\t{";
|
||||
$script['import'][] = "\t\t\tif (in_array(\$this->getType, array('upload', 'url')))";
|
||||
$script['import'][] = "\t\t\t{";
|
||||
$script['import'][] = "\t\t\t\t\$this->remove(\$package['packagename']);";
|
||||
$script['import'][] = "\t\t\t}";
|
||||
$script['import'][] = "\n\t\t\t\$app->setUserState('com_###-#-#-component###.message', JTe-#-#-xt::_('COM_###-#-#-COMPONENT###_IMPORT_UNABLE_TO_FIND_IMPORT_PACKAGE'));";
|
||||
$script['import'][] = "\t\t\treturn false;";
|
||||
$script['import'][] = "\t\t}";
|
||||
$script['import'][] = "\t\t";
|
||||
$script['import'][] = "\t\t// first link data to table headers";
|
||||
$script['import'][] = "\t\tif(!\$continue){";
|
||||
$script['import'][] = "\t\t\t\$package\t= json_encode(\$package);";
|
||||
$script['import'][] = "\t\t\t\$session->set('package', \$package);";
|
||||
$script['import'][] = "\t\t\t\$session->set('dataType', \$this->dataType);";
|
||||
$script['import'][] = "\t\t\t\$session->set('hasPackage', true);";
|
||||
$script['import'][] = "\t\t\treturn true;";
|
||||
$script['import'][] = "\t\t}";
|
||||
$script['import'][] = "\t\t// set the data";
|
||||
$script['import'][] = "\t\t\$headerList = json_decode(\$session->get(\$this->dataType.'_VDM_IMPORTHEADERS', false), true);";
|
||||
$script['import'][] = "\t\tif (!\$this->setData(\$package,\$this->dataType,\$headerList))";
|
||||
$script['import'][] = "\t\t{";
|
||||
$script['import'][] = "\t\t\t// There was an error importing the package";
|
||||
$script['import'][] = "\t\t\t\$msg = JTe-#-#-xt::_('COM_###-#-#-COMPONENT###_IMPORT_ERROR');";
|
||||
$script['import'][] = "\t\t\t\$back = \$session->get('backto_VDM_IMPORT', NULL);";
|
||||
$script['import'][] = "\t\t\tif (\$back)";
|
||||
$script['import'][] = "\t\t\t{";
|
||||
$script['import'][] = "\t\t\t\t\$app->setUserState('com_###-#-#-component###.redirect_url', 'index.php?option=com_###-#-#-component###&view='.\$back);";
|
||||
$script['import'][] = "\t\t\t\t\$session->clear('backto_VDM_IMPORT');";
|
||||
$script['import'][] = "\t\t\t}";
|
||||
$script['import'][] = "\t\t\t\$result = false;";
|
||||
$script['import'][] = "\t\t}";
|
||||
$script['import'][] = "\t\telse";
|
||||
$script['import'][] = "\t\t{";
|
||||
$script['import'][] = "\t\t\t// Package imported sucessfully";
|
||||
$script['import'][] = "\t\t\t\$msg = JTe-#-#-xt::sprintf('COM_###-#-#-COMPONENT###_IMPORT_SUCCESS', \$package['packagename']);";
|
||||
$script['import'][] = "\t\t\t\$back = \$session->get('backto_VDM_IMPORT', NULL);";
|
||||
$script['import'][] = "\t\t\tif (\$back)";
|
||||
$script['import'][] = "\t\t\t{";
|
||||
$script['import'][] = "\t\t\t \$app->setUserState('com_###-#-#-component###.redirect_url', 'index.php?option=com_###-#-#-component###&view='.\$back);";
|
||||
$script['import'][] = "\t\t\t \$session->clear('backto_VDM_IMPORT');";
|
||||
$script['import'][] = "\t\t\t}";
|
||||
$script['import'][] = "\t\t\t\$result = true;";
|
||||
$script['import'][] = "\t\t}";
|
||||
$script['import'][] = "\n\t\t// Set some model state values";
|
||||
$script['import'][] = "\t\t\$app->enqueueMessage(\$msg);";
|
||||
$script['import'][] = "\n\t\t// remove file after import";
|
||||
$script['import'][] = "\t\t\$this->remove(\$package['packagename']);";
|
||||
$script['import'][] = "\t\t\$session->clear(\$this->getType.'_VDM_IMPORTHEADERS');";
|
||||
$script['import'][] = "\t\treturn \$result;";
|
||||
$script['import'][] = "\t}";
|
||||
}
|
||||
elseif ('ext' === $type)
|
||||
{
|
||||
$script['ext'][] = "\t/**";
|
||||
$script['ext'][] = "\t * Check the extension";
|
||||
$script['ext'][] = "\t *";
|
||||
$script['ext'][] = "\t * @param string \$file Name of the uploaded file";
|
||||
$script['ext'][] = "\t *";
|
||||
$script['ext'][] = "\t * @return boolean True on success";
|
||||
$script['ext'][] = "\t *";
|
||||
$script['ext'][] = "\t */";
|
||||
$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)))";
|
||||
$script['ext'][] = "\t\t{";
|
||||
$script['ext'][] = "\t\t\tcase 'xls':";
|
||||
$script['ext'][] = "\t\t\tcase 'ods':";
|
||||
$script['ext'][] = "\t\t\tcase 'csv':";
|
||||
$script['ext'][] = "\t\t\treturn true;";
|
||||
$script['ext'][] = "\t\t\tbreak;";
|
||||
$script['ext'][] = "\t\t}";
|
||||
$script['ext'][] = "\t\treturn false;";
|
||||
$script['ext'][] = "\t}";
|
||||
}
|
||||
// return the needed script
|
||||
if (isset($script[$type]))
|
||||
{
|
||||
return str_replace('-#-#-', '', implode("\n",$script[$type]));
|
||||
}
|
||||
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];
|
||||
}
|
||||
|
||||
/**
|
||||
* Load the Component xml manifest.
|
||||
**/
|
||||
@ -458,6 +1311,14 @@ 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('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');
|
||||
@ -1358,7 +2219,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);
|
||||
}
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.3.7
|
||||
@build 12th March, 2017
|
||||
@version 2.4.10
|
||||
@build 12th August, 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)
|
||||
{
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.3.7
|
||||
@build 12th March, 2017
|
||||
@version 2.4.10
|
||||
@build 12th August, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage batch_.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.3.7
|
||||
@build 12th March, 2017
|
||||
@version 2.4.10
|
||||
@build 12th August, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage indenter.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.3.7
|
||||
@build 12th March, 2017
|
||||
@version 2.4.10
|
||||
@build 12th August, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage js.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.3.7
|
||||
@build 12th March, 2017
|
||||
@version 2.4.10
|
||||
@build 12th August, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage minify.php
|
||||
|
@ -234,6 +234,7 @@ COM_COMPONENTBUILDER_ADMIN_VIEW_CUSTOM_BUTTON_SELECT="Add"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_CUSTOM_IMPORT="Custom Import"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_DASHBOARD="Dashboard"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_DATABASE="Database"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_DEFAULT="Default"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_DELETE="Delete"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_DESCRIPTION="Description"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_DESCRIPTION_DESCRIPTION="Add Description Here"
|
||||
@ -427,6 +428,7 @@ COM_COMPONENTBUILDER_ADMIN_VIEW_NOTE_ON_VIEWS_LABEL="The following fields are ad
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_NOTIFICATION="Notification"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_NOTIFICATION_CIRCLE="Notification Circle"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_NOT_REQUIRED="Not Required"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_ONLY_FUNCTION="Only Function"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_ORDERING_LABEL="Ordering"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_ORDER_EDIT_DESCRIPTION="Order in relation to tab & alignment of admin and site."
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_ORDER_EDIT_LABEL="Order in Edit"
|
||||
@ -517,6 +519,10 @@ COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_IMPORT_DISPLAY="Php Import Display"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_IMPORT_DISPLAY_DESCRIPTION="Add your PHP here!"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_IMPORT_DISPLAY_HINT="// The display method for the view.html.php file."
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_IMPORT_DISPLAY_LABEL="PHP (display)"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_IMPORT_EXT="Php Import Ext"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_IMPORT_EXT_DESCRIPTION="Add your PHP here! [Do not add the php tags]"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_IMPORT_EXT_HINT="// PHP here for the checkExtension Method"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_IMPORT_EXT_LABEL="Check Extension Method PHP"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_IMPORT_HINT="// PHP Here that should run in the import Method."
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_IMPORT_LABEL="Import Method PHP"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_IMPORT_SAVE="Php Import Save"
|
||||
@ -577,6 +583,7 @@ COM_COMPONENTBUILDER_ADMIN_VIEW_SCREWDRIVER="Screwdriver"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_SEARCH="Search"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_SEARCH_DESCRIPTION="Select if the field is to be searchable in list view, if shown."
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_SEARCH_LABEL="Searchable"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_SELECTION="Selection"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_SETTINGS="Settings"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_SHARE="Share"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_SHARE_ALT="Share Alt"
|
||||
@ -647,7 +654,7 @@ COM_COMPONENTBUILDER_ADMIN_VIEW_TITLE_LABEL="Title"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_TREE="Tree"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_TREE_TWO="Tree 2"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_TYPE="Type"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_TYPE_DESCRIPTION="Set the type of view"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_TYPE_DESCRIPTION="for list target"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_TYPE_LABEL="Type"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_UINT="UINT"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_UNACTIVE_ONLY_FOUR_TEXT_FIELD="Unactive (only 4 text_field)"
|
||||
@ -692,10 +699,38 @@ COM_COMPONENTBUILDER_ADMIN_VIEW_ZOOM_IN="Zoom In"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_ZOOM_OUT="Zoom Out"
|
||||
COM_COMPONENTBUILDER_ALL_IS_GOOD_PLEASE_CHECK_AGAIN_LATTER="All is good, please check again latter."
|
||||
COM_COMPONENTBUILDER_ALL_IS_GOOD_THERE_IN_NO_NOTICE_AT_THIS_TIME="All is good, there in no notice at this time."
|
||||
COM_COMPONENTBUILDER_ALL_UNSAVED_WORK_WILL_BE_LOST_ARE_YOU_SURE_YOU_WANT_TO_CONTINUE="All unsaved work will be lost, are you sure you want to continue?"
|
||||
COM_COMPONENTBUILDER_ALWAYS_INSURE_THAT_YOU_HAVE_YOUR_LOCAL_COMPONENTS_BACKED_UP_BY_MAKING_AN_EXPORT_OF_ALL_YOUR_LOCAL_COMPONENTS_BEFORE_IMPORTING_ANY_NEW_COMPONENTS_SMALLMAKE_BSUREB_TO_MOVE_THIS_ZIPPED_BACKUP_PACKAGE_OUT_OF_THE_TMP_FOLDER_BEFORE_DOING_AN_IMPORTSMALLBR_IF_YOU_ARE_IMPORTING_A_PACKAGE_OF_A_THREERD_PARTY_JCB_PACKAGE_DEVELOPER_BMAKE_SURE_IT_IS_A_REPUTABLE_JCB_PACKAGE_DEVELOPERSB="Always insure that you have your local components backed up, by making an export of all your local components before importing any new components. <small>(Make <b>SURE</b> to move this zipped backup package out of the tmp folder before doing an import)</small><br />If you are importing a package of a 3rd party JCB package developer, <b>make sure it is a reputable JCB package developers!</b>"
|
||||
COM_COMPONENTBUILDER_AUTHOR="Author"
|
||||
COM_COMPONENTBUILDER_A_FEW_CLOSED_ISSUES_FROM_GITHUB_IS_LOADING="A few closed issues from Github is loading"
|
||||
COM_COMPONENTBUILDER_A_FEW_OPEN_ISSUES_FROM_GITHUB_IS_LOADING="A few open issues from Github is loading"
|
||||
COM_COMPONENTBUILDER_BACK="Back"
|
||||
COM_COMPONENTBUILDER_BACKUP_LOCAL_DATA_FIRST="Backup Local Data First"
|
||||
COM_COMPONENTBUILDER_BADMIN_VIEW_IN_SB_HAS_ID_MISMATCH_OF_SELECTED_BADMIN_VIEWB_SO_THE_IDS_WAS_REMOVED="<b>Admin view in %s</b> has id mismatch of selected <b>admin view</b>. So the id:%s was removed!"
|
||||
COM_COMPONENTBUILDER_BASIC_METHOD="Basic Method"
|
||||
COM_COMPONENTBUILDER_BCOMPONENT_IN_SB_HAS_ID_MISMATCH_OF_SELECTED_BCOMPONENTB_SO_THE_IDS_WAS_REMOVED="<b>Component in %s</b> has id mismatch of selected <b>component</b>. So the id:%s was removed!"
|
||||
COM_COMPONENTBUILDER_BCONFIG_IN_SB_HAS_ID_MISMATCH_OF_SELECTED_BFIELDB_SO_THE_IDS_WAS_REMOVED="<b>Config in %s</b> has id mismatch of selected <b>field</b>. So the id:%s was removed!"
|
||||
COM_COMPONENTBUILDER_BCUSTOM_ADMIN_VIEW_IN_SB_HAS_ID_MISMATCH_OF_SELECTED_BCUSTOM_ADMIN_VIEWB_SO_THE_IDS_WAS_REMOVED="<b>Custom admin view in %s</b> has id mismatch of selected <b>custom admin view</b>. So the id:%s was removed!"
|
||||
COM_COMPONENTBUILDER_BCUSTOM_FILESB_NOT_MOVE_TO_CORRECT_LOCATION="<b>Custom files</b> not move to correct location!"
|
||||
COM_COMPONENTBUILDER_BCUSTOM_GET_IN_SB_HAS_ID_MISMATCH_OF_SELECTED_BDYNAMIC_GETB_SO_THE_IDS_WAS_REMOVED="<b>Custom get in %s</b> has id mismatch of selected <b>dynamic get</b>. So the id:%s was removed!"
|
||||
COM_COMPONENTBUILDER_BDYNAMIC_GETB_IDS_MISMATCH_IN_BSB="<b>Dynamic get</b> id:%s mismatch in <b>%s</b>."
|
||||
COM_COMPONENTBUILDER_BE_CAUTIOUS_DO_NOT_CONTINUE_UNLESS_YOU_TRUST_THE_ORIGIN_OF_THIS_PACKAGE="Be cautious! Do not continue unless you trust the origin of this package!"
|
||||
COM_COMPONENTBUILDER_BFIELD_IN_SB_HAS_ID_MISMATCH_OF_SELECTED_BFIELDB_SO_THE_IDS_WAS_REMOVED="<b>Field in %s</b> has id mismatch of selected <b>field</b>. So the id:%s was removed!"
|
||||
COM_COMPONENTBUILDER_BFIELD_TYPEB_IDS_MISMATCH_IN_BSB="<b>Field type</b> id:%s mismatch in <b>%s</b>."
|
||||
COM_COMPONENTBUILDER_BFIELD_TYPEB_NOT_SET_FOR_BSB="<b>Field type</b> not set for <b>%s</b>."
|
||||
COM_COMPONENTBUILDER_BGET_THE_KEY_FROMB_A_CLASSBTN_BTNPRIMARY_HREFS_TARGET_BLANK_TITLEGET_A_KEY_FROM_SSA="<b>Get the key from</b> <a class="btn btn-primary" href="%s" target="_blank" title="get a key from %s">%s</a>"
|
||||
COM_COMPONENTBUILDER_BIMAGESB_NOT_MOVE_TO_CORRECT_LOCATION="<b>Images</b> not move to correct location!"
|
||||
COM_COMPONENTBUILDER_BJOIN_VIEW_TABLE_IN_SB_HAS_ID_MISMATCH_OF_SELECTED_BVIEW_TABLEB_SO_THE_IDS_WAS_REMOVED="<b>Join view table in %s</b> has id mismatch of selected <b>view table</b>. So the id:%s was removed!"
|
||||
COM_COMPONENTBUILDER_BLINKED_VIEWB_IDS_MISMATCH_IN_BADMIN_VIEWSB_AND_WAS_EMREMOVEDEM_FROM_THE_LINKED_VIEWS="<b>Linked view</b> id:%s mismatch in <b>admin view:%s</b>, and was <em>removed</em> from the linked views."
|
||||
COM_COMPONENTBUILDER_BMAIN_GETB_IDS_MISMATCH_IN_BSB="<b>Main get</b> id:%s mismatch in <b>%s</b>."
|
||||
COM_COMPONENTBUILDER_BMAIN_GETB_NOT_SET_FOR_BSB="<b>Main get</b> not set for <b>%s</b>."
|
||||
COM_COMPONENTBUILDER_BREPEATABLEB_IDS_MISMATCH_IN_BFIELDSB_AND_WAS_EMREMOVEDEM_FROM_THE_FIELD="<b>Repeatable</b> id:%s mismatch in <b>field:%s</b>, and was <em>removed</em> from the field."
|
||||
COM_COMPONENTBUILDER_BSB_COULD_NOT_BE_IMPORTEDS="<b>%s</b> could not be imported%s"
|
||||
COM_COMPONENTBUILDER_BSB_EMCOMPONENT_DETAILSEM="<b>%s</b> <em>component details</em>"
|
||||
COM_COMPONENTBUILDER_BSB_HAS_ID_MISMATCH_OF_SELECTED_BFIELDB_SO_THE_IDS_WAS_REMOVED="<b>%s</b> has id mismatch of selected <b>field</b>. So the id:%s was removed!"
|
||||
COM_COMPONENTBUILDER_BSITE_VIEW_IN_SB_HAS_ID_MISMATCH_OF_SELECTED_BSITE_VIEWB_SO_THE_IDS_WAS_REMOVED="<b>Site view in %s</b> has id mismatch of selected <b>site view</b>. So the id:%s was removed!"
|
||||
COM_COMPONENTBUILDER_BSNIPPETB_IDS_MISMATCH_IN_BSB="<b>Snippet</b> id:%s mismatch in <b>%s</b>."
|
||||
COM_COMPONENTBUILDER_BVIEW_TABLE_MAINB_IDS_MISMATCH_IN_BSB="<b>View table main</b> id:%s mismatch in <b>%s</b>."
|
||||
COM_COMPONENTBUILDER_CLEAR_TMP="Clear tmp"
|
||||
COM_COMPONENTBUILDER_COMPANY="Company"
|
||||
COM_COMPONENTBUILDER_COMPILER="Compiler"
|
||||
@ -733,6 +768,7 @@ COM_COMPONENTBUILDER_CONFIG_CHECK_TIMER_OPTION_ONE="Every five hours"
|
||||
COM_COMPONENTBUILDER_CONFIG_CHECK_TIMER_OPTION_SIX="Never"
|
||||
COM_COMPONENTBUILDER_CONFIG_CHECK_TIMER_OPTION_THREE="Once a day"
|
||||
COM_COMPONENTBUILDER_CONFIG_CHECK_TIMER_OPTION_TWO="Every twelve hours"
|
||||
COM_COMPONENTBUILDER_CONFIG_COMPANY="Company"
|
||||
COM_COMPONENTBUILDER_CONFIG_COMPILER_FOLDER_PATH_DESCRIPTION="Here you can set the path to the compiler folder"
|
||||
COM_COMPONENTBUILDER_CONFIG_COMPILER_FOLDER_PATH_HINT="/home/user/compiler"
|
||||
COM_COMPONENTBUILDER_CONFIG_COMPILER_FOLDER_PATH_LABEL="Compiler Folder Path"
|
||||
@ -761,6 +797,27 @@ COM_COMPONENTBUILDER_CONFIG_CUSTOM_FOLDER_PATH_LABEL="Custom Folder Path"
|
||||
COM_COMPONENTBUILDER_CONFIG_DONT_LOAD="Not"
|
||||
COM_COMPONENTBUILDER_CONFIG_ENCRYPTION_DESC="The encription key for the field encryption is set here."
|
||||
COM_COMPONENTBUILDER_CONFIG_ENCRYPTION_LABEL="Encryption Settings"
|
||||
COM_COMPONENTBUILDER_CONFIG_EXPORT_BUY_LINK_DESCRIPTION="Enter link where your JCB package key can be bought."
|
||||
COM_COMPONENTBUILDER_CONFIG_EXPORT_BUY_LINK_HINT="http://www.example.com/buy-keys"
|
||||
COM_COMPONENTBUILDER_CONFIG_EXPORT_BUY_LINK_LABEL="Buy Link<br /><small>(to get key)</small>"
|
||||
COM_COMPONENTBUILDER_CONFIG_EXPORT_COMPANY_DESCRIPTION="Enter Company Name Here"
|
||||
COM_COMPONENTBUILDER_CONFIG_EXPORT_COMPANY_HINT="Company Name Here"
|
||||
COM_COMPONENTBUILDER_CONFIG_EXPORT_COMPANY_LABEL="Company Name"
|
||||
COM_COMPONENTBUILDER_CONFIG_EXPORT_COPYRIGHT_DESCRIPTION="Add Copyright Here"
|
||||
COM_COMPONENTBUILDER_CONFIG_EXPORT_COPYRIGHT_HINT="Add Copyright Here"
|
||||
COM_COMPONENTBUILDER_CONFIG_EXPORT_COPYRIGHT_LABEL="Copyright"
|
||||
COM_COMPONENTBUILDER_CONFIG_EXPORT_EMAIL_DESCRIPTION="Enter Email"
|
||||
COM_COMPONENTBUILDER_CONFIG_EXPORT_EMAIL_HINT="Email Here"
|
||||
COM_COMPONENTBUILDER_CONFIG_EXPORT_EMAIL_LABEL="Email"
|
||||
COM_COMPONENTBUILDER_CONFIG_EXPORT_LICENSE_DESCRIPTION="Add License Here"
|
||||
COM_COMPONENTBUILDER_CONFIG_EXPORT_LICENSE_HINT="Add License Here"
|
||||
COM_COMPONENTBUILDER_CONFIG_EXPORT_LICENSE_LABEL="License"
|
||||
COM_COMPONENTBUILDER_CONFIG_EXPORT_OWNER_DESCRIPTION="The Owner's Name & Surname."
|
||||
COM_COMPONENTBUILDER_CONFIG_EXPORT_OWNER_HINT="Owner Name & Surname Here"
|
||||
COM_COMPONENTBUILDER_CONFIG_EXPORT_OWNER_LABEL="Owner"
|
||||
COM_COMPONENTBUILDER_CONFIG_EXPORT_WEBSITE_DESCRIPTION="Enter website address"
|
||||
COM_COMPONENTBUILDER_CONFIG_EXPORT_WEBSITE_HINT="http://www.example.com"
|
||||
COM_COMPONENTBUILDER_CONFIG_EXPORT_WEBSITE_LABEL="Website"
|
||||
COM_COMPONENTBUILDER_CONFIG_FLAT_LOAD="Flat"
|
||||
COM_COMPONENTBUILDER_CONFIG_FOLDER_PATHS="Folder Paths"
|
||||
COM_COMPONENTBUILDER_CONFIG_FORCE_LOAD="Force"
|
||||
@ -782,6 +839,8 @@ COM_COMPONENTBUILDER_CONFIG_NOTE_CUSTOM_FOLDER_PATH_LABEL="Moving The Custom Fol
|
||||
COM_COMPONENTBUILDER_CONFIG_NOTE_GIT_FOLDER_PATH_DESCRIPTION="You must set the folder where all the components should be deployed for git. You will have to still do your git commit and other git commands yourself. Each component will create their own folder inside this git folder."
|
||||
COM_COMPONENTBUILDER_CONFIG_NOTE_GIT_FOLDER_PATH_LABEL="Adding git to your compiler method"
|
||||
COM_COMPONENTBUILDER_CONFIG_ONLY_EXTRA="Only Extra"
|
||||
COM_COMPONENTBUILDER_CONFIG_PERCENTAGELANGUAGEADD_DESCRIPTION="Select percentage any language should be translated before the system should add the language to the component during compilation."
|
||||
COM_COMPONENTBUILDER_CONFIG_PERCENTAGELANGUAGEADD_LABEL="Add Language if %? ready."
|
||||
COM_COMPONENTBUILDER_CONFIG_UIKIT_DESC="<b>The Parameters for the uikit are set here.</b><br />Uikit is a lightweight and modular front-end framework
|
||||
for developing fast and powerful web interfaces. For more info visit <a href="http://getuikit.com/" >http://getuikit.com/</a>"
|
||||
COM_COMPONENTBUILDER_CONFIG_UIKIT_LABEL="Uikit Settings"
|
||||
@ -792,6 +851,7 @@ COM_COMPONENTBUILDER_CONFIG_UIKIT_MIN_LABEL="Load Minified"
|
||||
COM_COMPONENTBUILDER_CONFIG_UIKIT_STYLE_DESC="Set the css style that should be used."
|
||||
COM_COMPONENTBUILDER_CONFIG_UIKIT_STYLE_LABEL="css Style"
|
||||
COM_COMPONENTBUILDER_CONFIG_YES="Yes"
|
||||
COM_COMPONENTBUILDER_CONFIRMATION_STEP_BEFORE_IMPORTING="Confirmation Step Before Importing!"
|
||||
COM_COMPONENTBUILDER_CONTRIBUTOR="Contributor"
|
||||
COM_COMPONENTBUILDER_CONTRIBUTORS="Contributors"
|
||||
COM_COMPONENTBUILDER_COPYRIGHT="Copyright"
|
||||
@ -1060,6 +1120,7 @@ COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOTE_UIKIT_SNIPPET_LABEL="Snippet Details
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOTIFICATION="Notification"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOTIFICATION_CIRCLE="Notification Circle"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOT_REQUIRED="Not Required"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_ONLY_FUNCTION="Only Function"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_ORDERING_LABEL="Ordering"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_PALETTE="Palette"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_PARAGRAPH_CENTER="Paragraph Center"
|
||||
@ -1123,6 +1184,7 @@ COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_SCISSORS="Scissors"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_SCREEN="Screen"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_SCREWDRIVER="Screwdriver"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_SEARCH="Search"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_SELECTION="Selection"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_SHARE="Share"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_SHARE_ALT="Share Alt"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_SHIELD="Shield"
|
||||
@ -1160,6 +1222,8 @@ COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_THUMBS_DOWN="Thumbs Down"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_THUMBS_UP="Thumbs Up"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_TREE="Tree"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_TREE_TWO="Tree 2"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_TYPE_DESCRIPTION="for list target"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_TYPE_LABEL="Type"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_UNARCHIVE="Unarchive"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_UNBLOCK="Unblock"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_UNDO="Undo"
|
||||
@ -1274,7 +1338,7 @@ COM_COMPONENTBUILDER_CUSTOM_CODE_MODIFIED_DATE_LABEL="Modified Date"
|
||||
COM_COMPONENTBUILDER_CUSTOM_CODE_NEW="A New Custom Code"
|
||||
COM_COMPONENTBUILDER_CUSTOM_CODE_NOTE_JCB_PLACEHOLDER_DESCRIPTION="<span id='jcb-placeholder'><code>[save to see placeholder]</code></span><br />You can also pass values to this code like this: <span id='jcb-placeholder-arg'><code>[save to see placeholder trick]</code></span> <br />Those values will be replace placeholders called args. These placeholders are zero based and should look like this: [[[arg0]]], [[[arge1]]] ... as many as you like. If you use 5 args in your code, you must always pass 5 values, since they are zero based your fifth arg will look like this [[[arg4]]]<br />Please note that you can not use this placeholder in other custom code views, but in all other custom code areas in JCB found in other views like the admin, site and custom admin views.<br />Another important note, all code with args will not be reversed updated from the changes in the editor out side of JCB at this time, since that will remove all the arg placeholders this means you will only be able to update the code here in the JCB UI. <br />This note will change once we have resolved these limitations."
|
||||
COM_COMPONENTBUILDER_CUSTOM_CODE_NOTE_JCB_PLACEHOLDER_LABEL="You can use this code in any JCB code area, simply add this PlaceHolder."
|
||||
COM_COMPONENTBUILDER_CUSTOM_CODE_NOTE_PLACEHOLDERS_EXPLAINED_DESCRIPTION="<div class='span6'>
|
||||
COM_COMPONENTBUILDER_CUSTOM_CODE_NOTE_PLACEHOLDERS_EXPLAINED_DESCRIPTION="<div class='form-horizontal'><div class='span6'>
|
||||
<h1>Understand how the placeholders work in (IDE)</h1>
|
||||
<div id='phpjs-comment-info'>
|
||||
<h2>Comment Type PHP/JS</h2>
|
||||
@ -1376,7 +1440,7 @@ COM_COMPONENTBUILDER_CUSTOM_CODE_NOTE_PLACEHOLDERS_EXPLAINED_DESCRIPTION="<div c
|
||||
<div id='loading-usedin' style='display: none;'><h2>Scanning Database<span class='loading-dots'>..</span></h2></div>
|
||||
<div id='note-usedin-found' style='display: none;'><small>You can edit the above areas where this code is used.</small></div>
|
||||
<div id='note-usedin-not' style='display: none;'><small>This code is not used in any area of the JCB custom code blocks at this time.</small></div>
|
||||
</div>"
|
||||
</div></div>"
|
||||
COM_COMPONENTBUILDER_CUSTOM_CODE_NOTE_PLACEHOLDERS_EXPLAINED_LABEL="Information Area."
|
||||
COM_COMPONENTBUILDER_CUSTOM_CODE_NOT_REQUIRED="Not Required"
|
||||
COM_COMPONENTBUILDER_CUSTOM_CODE_ORDERING_LABEL="Ordering"
|
||||
@ -1417,15 +1481,16 @@ COM_COMPONENTBUILDER_DASHBOARD_CUSTOM_CODES="Custom Codes<br /><br />"
|
||||
COM_COMPONENTBUILDER_DASHBOARD_DYNAMIC_GETS="Dynamic Gets<br /><br />"
|
||||
COM_COMPONENTBUILDER_DASHBOARD_DYNAMIC_GET_ADD="Add Dynamic Get<br /><br />"
|
||||
COM_COMPONENTBUILDER_DASHBOARD_FIELDS="Fields<br /><br />"
|
||||
COM_COMPONENTBUILDER_DASHBOARD_FIELDS_CATID="Catagory For<br />Fields"
|
||||
COM_COMPONENTBUILDER_DASHBOARD_FIELDS_CATID="Category For<br />Fields"
|
||||
COM_COMPONENTBUILDER_DASHBOARD_FIELDTYPES="Fieldtypes<br /><br />"
|
||||
COM_COMPONENTBUILDER_DASHBOARD_FIELDTYPES_CATID="Catagory For<br />Fieldtypes"
|
||||
COM_COMPONENTBUILDER_DASHBOARD_FIELDTYPES_CATID="Category For<br />Fieldtypes"
|
||||
COM_COMPONENTBUILDER_DASHBOARD_FIELDTYPE_ADD="Add Fieldtype<br /><br />"
|
||||
COM_COMPONENTBUILDER_DASHBOARD_FIELD_ADD="Add Field<br /><br />"
|
||||
COM_COMPONENTBUILDER_DASHBOARD_HELP_DOCUMENTS="Help Documents<br /><br />"
|
||||
COM_COMPONENTBUILDER_DASHBOARD_HELP_DOCUMENT_ADD="Add Help Document<br /><br />"
|
||||
COM_COMPONENTBUILDER_DASHBOARD_JOOMLA_COMPONENTS="Joomla Components<br /><br />"
|
||||
COM_COMPONENTBUILDER_DASHBOARD_JOOMLA_COMPONENT_ADD="Add Joomla Component<br /><br />"
|
||||
COM_COMPONENTBUILDER_DASHBOARD_LANGUAGE_TRANSLATIONS="Language Translations<br /><br />"
|
||||
COM_COMPONENTBUILDER_DASHBOARD_LAYOUTS="Layouts<br /><br />"
|
||||
COM_COMPONENTBUILDER_DASHBOARD_LAYOUT_ADD="Add Layout<br /><br />"
|
||||
COM_COMPONENTBUILDER_DASHBOARD_SITE_VIEWS="Site Views<br /><br />"
|
||||
@ -1436,6 +1501,8 @@ COM_COMPONENTBUILDER_DASHBOARD_TEMPLATES="Templates<br /><br />"
|
||||
COM_COMPONENTBUILDER_DASHBOARD_TEMPLATE_ADD="Add Template<br /><br />"
|
||||
COM_COMPONENTBUILDER_DATE="Date"
|
||||
COM_COMPONENTBUILDER_DEBUG_LINE_NUMBERS="Debug (line numbers)"
|
||||
COM_COMPONENTBUILDER_DOES_THIS_PACKAGE_REQUIRE_A_KEY_TO_INSTALL="Does this package require a key to install"
|
||||
COM_COMPONENTBUILDER_DOWNLOAD="download"
|
||||
COM_COMPONENTBUILDER_DYNAMIC_GET="Dynamic Get"
|
||||
COM_COMPONENTBUILDER_DYNAMIC_GETS="Dynamic Gets"
|
||||
COM_COMPONENTBUILDER_DYNAMIC_GETS_ACCESS="Dynamic Gets Access"
|
||||
@ -1742,9 +1809,20 @@ COM_COMPONENTBUILDER_EDIT_S="Edit %s"
|
||||
COM_COMPONENTBUILDER_EDIT_VERSIONS="Edit Version"
|
||||
COM_COMPONENTBUILDER_EDIT_VERSIONS_DESC=" Allows users in this group to edit versions."
|
||||
COM_COMPONENTBUILDER_EMAIL="Email"
|
||||
COM_COMPONENTBUILDER_EMAUTHOREM_BSB="<em>Author</em>: <b>%s</b>"
|
||||
COM_COMPONENTBUILDER_EMCOMPANYEM_BSB="<em>Company:</em> <b>%s</b>"
|
||||
COM_COMPONENTBUILDER_EMCOMPANY_NAMEEM_BSB="<em>Company Name</em>: <b>%s</b>"
|
||||
COM_COMPONENTBUILDER_EMCOPYRIGHTEM_BSB="<em>Copyright:</em> <b>%s</b>"
|
||||
COM_COMPONENTBUILDER_EMEMAILEM_BSB="<em>Email:</em> <b>%s</b>"
|
||||
COM_COMPONENTBUILDER_EMLICENSEEM_BSB="<em>License:</em> <b>%s</b>"
|
||||
COM_COMPONENTBUILDER_EMOWNEREM_BSB="<em>Owner:</em> <b>%s</b>"
|
||||
COM_COMPONENTBUILDER_EMWEBSITEEM_BSB="<em>Website:</em> <b>%s</b>"
|
||||
COM_COMPONENTBUILDER_EXPORT_COMPLETED="Export Completed!"
|
||||
COM_COMPONENTBUILDER_EXPORT_COMPONENTS="Export Components"
|
||||
COM_COMPONENTBUILDER_EXPORT_DATA="Export Data"
|
||||
COM_COMPONENTBUILDER_EXPORT_DATA_DESC=" Allows users in this group to export data."
|
||||
COM_COMPONENTBUILDER_EXPORT_FAILED="Export Failed"
|
||||
COM_COMPONENTBUILDER_EXPORT_FAILED_PLEASE_TRY_AGAIN_LATTER="Export failed, please try again latter!"
|
||||
COM_COMPONENTBUILDER_FIELD="Field"
|
||||
COM_COMPONENTBUILDER_FIELDS="Fields"
|
||||
COM_COMPONENTBUILDER_FIELDS_ACCESS="Fields Access"
|
||||
@ -2038,6 +2116,8 @@ COM_COMPONENTBUILDER_FIELD_XML_HINT="Field XML Go Here"
|
||||
COM_COMPONENTBUILDER_FIELD_XML_LABEL="XML field definition (Please set the field details here to fit your needs)"
|
||||
COM_COMPONENTBUILDER_FIELD_YES="Yes"
|
||||
COM_COMPONENTBUILDER_FIELD_ZERO="0"
|
||||
COM_COMPONENTBUILDER_FORCE_LOCAL_UPDATE="Force Local Update"
|
||||
COM_COMPONENTBUILDER_GET_THE_KEY_FROM_BSB_FOR_A_CLASSBTN_BTNPRIMARY_HREFS_TARGET_BLANK_TITLEGET_A_KEY_FROM_SSA="Get the key from <b>%s</b> for <a class="btn btn-primary" href="%s" target="_blank" title="get a key from %s">%s</a>"
|
||||
COM_COMPONENTBUILDER_GLOBAL="Global"
|
||||
COM_COMPONENTBUILDER_GREAT_THIS_FUNCTION_NAME_WILL_WORK="Great, this function name will work!"
|
||||
COM_COMPONENTBUILDER_HELP_DOCUMENT="Help Document"
|
||||
@ -2150,6 +2230,9 @@ COM_COMPONENTBUILDER_HELP_DOCUMENT_VERSION_DESC="A count of the number of times
|
||||
COM_COMPONENTBUILDER_HELP_DOCUMENT_VERSION_LABEL="Revision"
|
||||
COM_COMPONENTBUILDER_HELP_MANAGER="Help"
|
||||
COM_COMPONENTBUILDER_HI="Hi"
|
||||
COM_COMPONENTBUILDER_HTWODATA_IS_CORRUPTHTWOTHIS_COULD_BE_DUE_TO_BROKEN_PACKAGE="<h2>Data is corrupt!</h2>This could be due to broken package!"
|
||||
COM_COMPONENTBUILDER_HTWODATA_IS_CORRUPTHTWOTHIS_COULD_BE_DUE_TO_KEY_ERROR_OR_BROKEN_PACKAGE="<h2>Data is corrupt!</h2>This could be due to key error, or broken package!"
|
||||
COM_COMPONENTBUILDER_IMPORT_COMPONENTS="Import Components"
|
||||
COM_COMPONENTBUILDER_IMPORT_CONTINUE="Continue"
|
||||
COM_COMPONENTBUILDER_IMPORT_DATA="Import Data"
|
||||
COM_COMPONENTBUILDER_IMPORT_DATA_DESC=" Allows users in this group to import data."
|
||||
@ -2176,6 +2259,7 @@ COM_COMPONENTBUILDER_IMPORT_MSG_WARNIMPORTFILE="Warning, import file error."
|
||||
COM_COMPONENTBUILDER_IMPORT_MSG_WARNIMPORTUPLOADERROR="Warning, import upload error."
|
||||
COM_COMPONENTBUILDER_IMPORT_NO_IMPORT_TYPE_FOUND="Import type not found."
|
||||
COM_COMPONENTBUILDER_IMPORT_PLEASE_SELECT_COLUMN="-- Please Select Column --"
|
||||
COM_COMPONENTBUILDER_IMPORT_S="Import %s"
|
||||
COM_COMPONENTBUILDER_IMPORT_SELECT_FILE="Select File"
|
||||
COM_COMPONENTBUILDER_IMPORT_SELECT_FILE_DIRECTORY="Set the path to file"
|
||||
COM_COMPONENTBUILDER_IMPORT_SELECT_FILE_FOR_ADMIN_VIEWS="Select the file to import data to admin_views."
|
||||
@ -2186,6 +2270,8 @@ COM_COMPONENTBUILDER_IMPORT_SELECT_FILE_FOR_FIELDS="Select the file to import da
|
||||
COM_COMPONENTBUILDER_IMPORT_SELECT_FILE_FOR_FIELDTYPES="Select the file to import data to fieldtypes."
|
||||
COM_COMPONENTBUILDER_IMPORT_SELECT_FILE_FOR_HELP_DOCUMENTS="Select the file to import data to help_documents."
|
||||
COM_COMPONENTBUILDER_IMPORT_SELECT_FILE_FOR_JOOMLA_COMPONENTS="Select the file to import data to joomla_components."
|
||||
COM_COMPONENTBUILDER_IMPORT_SELECT_FILE_FOR_LANGUAGES="Select the file to import data to languages."
|
||||
COM_COMPONENTBUILDER_IMPORT_SELECT_FILE_FOR_LANGUAGE_TRANSLATIONS="Select the file to import data to language_translations."
|
||||
COM_COMPONENTBUILDER_IMPORT_SELECT_FILE_FOR_LAYOUTS="Select the file to import data to layouts."
|
||||
COM_COMPONENTBUILDER_IMPORT_SELECT_FILE_FOR_SITE_VIEWS="Select the file to import data to site_views."
|
||||
COM_COMPONENTBUILDER_IMPORT_SELECT_FILE_FOR_SNIPPETS="Select the file to import data to snippets."
|
||||
@ -2197,6 +2283,7 @@ COM_COMPONENTBUILDER_IMPORT_TITLE="Data Importer"
|
||||
COM_COMPONENTBUILDER_IMPORT_UNABLE_TO_FIND_IMPORT_PACKAGE="Package to import not found."
|
||||
COM_COMPONENTBUILDER_IMPORT_UPDATE_DATA="Import Data"
|
||||
COM_COMPONENTBUILDER_IMPORT_UPLOAD_BOTTON="Upload File"
|
||||
COM_COMPONENTBUILDER_ISSUE="issue"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT="Joomla Component"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENTS="Joomla Components"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_ACCESS="Joomla Components Access"
|
||||
@ -2314,7 +2401,7 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_SITE_EVENT="Add Site Event"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_SITE_EVENT_LABEL="Add Global Site Event"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_SQL="Add Sql"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_SQL_DESCRIPTION="if set in view"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_SQL_LABEL="Add MySQL"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_SQL_LABEL="Add MySQL (to view table)"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_SQL_OPTIONS_DESCRIPTION="if being added"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_SQL_OPTIONS_LABEL="Options"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_UPDATE_SERVER="Add Update Server"
|
||||
@ -2463,9 +2550,9 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EDIT="Editing the Joomla Component"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EDIT_CREATE_SITE_VIEW_DESCRIPTION="add site edit & create view for this admin view"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EDIT_CREATE_SITE_VIEW_LABEL="Edit/Create Site View"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EMAIL="Email"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EMAIL_DESCRIPTION="Enter Author Email"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EMAIL_HINT="Author Email Here"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EMAIL_LABEL="Author Email"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EMAIL_DESCRIPTION="Enter Email"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EMAIL_HINT="demo@example.com"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EMAIL_LABEL="Email"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EMPTYCONTRIBUTORS="Emptycontributors"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EMPTYCONTRIBUTORS_DESCRIPTION="Set if a list of empty contributor fields should be added."
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EMPTYCONTRIBUTORS_LABEL="Empty Contributor Fields"
|
||||
@ -2478,6 +2565,20 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXIT="Exit"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPAND="Expand"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPAND_TWO="Expand 2"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPIRED="Expired"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_BUY_LINK="Export Buy Link"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_BUY_LINK_DESCRIPTION="Enter link where your JCB package key can be bought."
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_BUY_LINK_HINT="http://www.example.com/buy-keys"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_BUY_LINK_LABEL="Buy Link<br /><small>(to get key)</small>"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_COMPONENTS_BUTTON_ACCESS="Joomla Component Export Components Button Access"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_COMPONENTS_BUTTON_ACCESS_DESC=" Allows the users in this group to access the export components button."
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_KEY="Export Key"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_KEY_DESCRIPTION="The key used to lock the data during export."
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_KEY_HINT="Export Key Here"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_KEY_LABEL="Export Key<br /><small>(encrypted field)</small>"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_PACKAGE_LINK="Export Package Link"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_PACKAGE_LINK_DESCRIPTION="Enter link where you latest JCB package can be found"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_PACKAGE_LINK_HINT="http://www.example.com/buy-package"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_PACKAGE_LINK_LABEL="Package Link<br /><small>(to get updated package)</small>"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EYE_CLOSE="Eye Close"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EYE_OPEN="Eye Open"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FEATURED="Featured"
|
||||
@ -2540,8 +2641,12 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENT_IMAGE="Image"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_IMAGES="Images"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_IMAGE_DESCRIPTION="The component image (product box) for the dashboard and install page, must be 300px X 300px."
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_IMAGE_LABEL="Component Image"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_IMPORT_COMPONENTS_BUTTON_ACCESS="Joomla Component Import Components Button Access"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_IMPORT_COMPONENTS_BUTTON_ACCESS_DESC=" Allows the users in this group to access the import components button."
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_INFO="Info"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_INFO_CIRCLE="Info Circle"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JCB_EXPORT_PACKAGE_NOTE_DESCRIPTION="The settings below are used when you export this component as a JCB Package, for more info on how this works please review the following tutorial (<a href='https://youtu.be/lkE0ZiSWufg' target='_blank'>https://youtu.be/lkE0ZiSWufg</a>)."
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JCB_EXPORT_PACKAGE_NOTE_LABEL="JCB Package Export Settings"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JOOMLA="Joomla"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_KEY="Key"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LAMP="Lamp"
|
||||
@ -2670,8 +2775,9 @@ Project duration: **###projectWeekTime### weeks** or **###projectMonthTime### mo
|
||||
## Donations<br />
|
||||
<br />
|
||||
If you want to support this project, please consider donating:<br />
|
||||
* PayPal: pay@vdm.io<br />
|
||||
* Bitcoin: 3H35PYwikEosvcjxHXGPLS1GufZ4b4iFu3
|
||||
* PayPal: [paypal.me/payvdm](https://www.paypal.me/payvdm)<br />
|
||||
* Bitcoin: 1N45VjnZSNmDK64xRrQYGRRi56rgpnze3s<br />
|
||||
* Ethereum: 0x243392daa3c9c8bc841fcacf7c7f72541cb16823
|
||||
</code></div>"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_README_LABEL="Demo README (with all place-holders)"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_UPDATE_SERVER_NOTE_FTP_DESCRIPTION="Add your FTP signature in the given field and during compilation the file will be moved to the FTP folder. You still need to point the above <b>update server</b> url to the xml file on your FTP server for it to work correctly.<br /><b>Here are the details of the signature:</b><br /> string $host = '127.0.0.1'<br /> string $port = '21'<br /> array $options = array()<br /> string $user = null<br /> string $pass = null<br /> OPTIONS = Array with any of these options:<br /> type=>[FTP_AUTOASCII|FTP_ASCII|FTP_BINARY]<br /> timeout=>(int)<br /><b>Here is an example signature:</b><br /><code>host=HOSTNAME&port=PORT_INT&options[type]=FTP_BINARY&options[timeout]=15&username=user@name.com&password=password</code>"
|
||||
@ -2846,6 +2952,7 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENT_THUMBS_UP="Thumbs Up"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_TITLE_DESCRIPTION="Enter contributor's title in relation to this component"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_TITLE_HINT="Contributor's Role"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_TITLE_LABEL="Job Title"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_TRANSLATION="Translation"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_TREE="Tree"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_TREE_TWO="Tree 2"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_UNARCHIVE="Unarchive"
|
||||
@ -2892,7 +2999,7 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WARNING_CIRCLE="Warning Circle"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WEBSITE="Website"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WEBSITE_DESCRIPTION="Enter website address"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WEBSITE_HINT="http://www.example.com"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WEBSITE_LABEL="Author Website"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WEBSITE_LABEL="Website"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WHMCS_KEY="Whmcs Key"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WHMCS_KEY_DESCRIPTION="Add your WHMCS Secret Key here that is needed for this license"
|
||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WHMCS_KEY_HINT="Secret Key"
|
||||
@ -2911,6 +3018,157 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ZOOM_OUT="Zoom Out"
|
||||
COM_COMPONENTBUILDER_KEEP_ORIGINAL_ACCESS="- Keep Original Access -"
|
||||
COM_COMPONENTBUILDER_KEEP_ORIGINAL_CATEGORY="- Keep Original Category -"
|
||||
COM_COMPONENTBUILDER_KEEP_ORIGINAL_STATE="- Keep Original State -"
|
||||
COM_COMPONENTBUILDER_KEY="Key"
|
||||
COM_COMPONENTBUILDER_LANGUAGE="Language"
|
||||
COM_COMPONENTBUILDER_LANGUAGES="Languages"
|
||||
COM_COMPONENTBUILDER_LANGUAGES_ACCESS="Languages Access"
|
||||
COM_COMPONENTBUILDER_LANGUAGES_ACCESS_DESC="Allows the users in this group to access access languages"
|
||||
COM_COMPONENTBUILDER_LANGUAGES_BATCH_OPTIONS="Batch process the selected Languages"
|
||||
COM_COMPONENTBUILDER_LANGUAGES_BATCH_TIP="All changes will be applied to all selected Languages"
|
||||
COM_COMPONENTBUILDER_LANGUAGES_BATCH_USE="Languages Batch Use"
|
||||
COM_COMPONENTBUILDER_LANGUAGES_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch languages"
|
||||
COM_COMPONENTBUILDER_LANGUAGES_CREATE="Languages Create"
|
||||
COM_COMPONENTBUILDER_LANGUAGES_CREATE_DESC="Allows the users in this group to create create languages"
|
||||
COM_COMPONENTBUILDER_LANGUAGES_DELETE="Languages Delete"
|
||||
COM_COMPONENTBUILDER_LANGUAGES_DELETE_DESC="Allows the users in this group to delete delete languages"
|
||||
COM_COMPONENTBUILDER_LANGUAGES_EDIT="Languages Edit"
|
||||
COM_COMPONENTBUILDER_LANGUAGES_EDIT_DESC="Allows the users in this group to edit the language"
|
||||
COM_COMPONENTBUILDER_LANGUAGES_EDIT_OWN="Languages Edit Own"
|
||||
COM_COMPONENTBUILDER_LANGUAGES_EDIT_OWN_DESC="Allows the users in this group to edit edit own languages created by them"
|
||||
COM_COMPONENTBUILDER_LANGUAGES_EDIT_STATE="Languages Edit State"
|
||||
COM_COMPONENTBUILDER_LANGUAGES_EDIT_STATE_DESC="Allows the users in this group to update the state of the language"
|
||||
COM_COMPONENTBUILDER_LANGUAGES_EDIT_VERSION="Languages Edit Version"
|
||||
COM_COMPONENTBUILDER_LANGUAGES_EDIT_VERSION_DESC="Allows users in this group to edit versions of version languages"
|
||||
COM_COMPONENTBUILDER_LANGUAGES_EXPORT="Languages Export"
|
||||
COM_COMPONENTBUILDER_LANGUAGES_EXPORT_DESC="Allows the users in this group to export export languages"
|
||||
COM_COMPONENTBUILDER_LANGUAGES_IMPORT="Languages Import"
|
||||
COM_COMPONENTBUILDER_LANGUAGES_IMPORT_DESC="Allows the users in this group to import import languages"
|
||||
COM_COMPONENTBUILDER_LANGUAGES_N_ITEMS_ARCHIVED="%s Languages archived."
|
||||
COM_COMPONENTBUILDER_LANGUAGES_N_ITEMS_ARCHIVED_1="%s Language archived."
|
||||
COM_COMPONENTBUILDER_LANGUAGES_N_ITEMS_CHECKED_IN_0="No Language successfully checked in."
|
||||
COM_COMPONENTBUILDER_LANGUAGES_N_ITEMS_CHECKED_IN_1="%d Language successfully checked in."
|
||||
COM_COMPONENTBUILDER_LANGUAGES_N_ITEMS_CHECKED_IN_MORE="%d Languages successfully checked in."
|
||||
COM_COMPONENTBUILDER_LANGUAGES_N_ITEMS_DELETED="%s Languages deleted."
|
||||
COM_COMPONENTBUILDER_LANGUAGES_N_ITEMS_DELETED_1="%s Language deleted."
|
||||
COM_COMPONENTBUILDER_LANGUAGES_N_ITEMS_FEATURED="%s Languages featured."
|
||||
COM_COMPONENTBUILDER_LANGUAGES_N_ITEMS_FEATURED_1="%s Language featured."
|
||||
COM_COMPONENTBUILDER_LANGUAGES_N_ITEMS_PUBLISHED="%s Languages published."
|
||||
COM_COMPONENTBUILDER_LANGUAGES_N_ITEMS_PUBLISHED_1="%s Language published."
|
||||
COM_COMPONENTBUILDER_LANGUAGES_N_ITEMS_TRASHED="%s Languages trashed."
|
||||
COM_COMPONENTBUILDER_LANGUAGES_N_ITEMS_TRASHED_1="%s Language trashed."
|
||||
COM_COMPONENTBUILDER_LANGUAGES_N_ITEMS_UNFEATURED="%s Languages unfeatured."
|
||||
COM_COMPONENTBUILDER_LANGUAGES_N_ITEMS_UNFEATURED_1="%s Language unfeatured."
|
||||
COM_COMPONENTBUILDER_LANGUAGES_N_ITEMS_UNPUBLISHED="%s Languages unpublished."
|
||||
COM_COMPONENTBUILDER_LANGUAGES_N_ITEMS_UNPUBLISHED_1="%s Language unpublished."
|
||||
COM_COMPONENTBUILDER_LANGUAGES_SUBMENU="Languages Submenu"
|
||||
COM_COMPONENTBUILDER_LANGUAGES_SUBMENU_DESC="Allows the users in this group to update the submenu of the language"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_CREATED_BY_DESC="The user that created this Language."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_CREATED_BY_LABEL="Created By"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_CREATED_DATE_DESC="The date this Language was created."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_CREATED_DATE_LABEL="Created Date"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_DETAILS="Details"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_EDIT="Editing the Language"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_ERROR_UNIQUE_ALIAS="Another Language has the same alias."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_ID="Id"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_LANGTAG="Langtag"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_LANGTAG_DESCRIPTION="Enter the language tag – example: en-GB for English (UK). This should be the exact prefix used for the language installed or to be installed."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_LANGTAG_HINT="en-GB"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_LANGTAG_LABEL="Language Tag"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_MODIFIED_BY_DESC="The last user that modified this Language."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_MODIFIED_BY_LABEL="Modified By"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_MODIFIED_DATE_DESC="The date this Language was modified."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_MODIFIED_DATE_LABEL="Modified Date"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_NAME="Name"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_NAME_DESCRIPTION="Enter Name Here"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_NAME_HINT="Name Here"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_NAME_LABEL="Name"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_NEW="A New Language"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_ORDERING_LABEL="Ordering"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_PERMISSION="Permissions"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_PUBLISHING="Publishing"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Language to customise the alias."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_STATUS="Status"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION="Language Translation"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS="Language Translations"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_ACCESS="Language Translations Access"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_ACCESS_DESC="Allows the users in this group to access access language translations"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_BATCH_OPTIONS="Batch process the selected Language Translations"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_BATCH_TIP="All changes will be applied to all selected Language Translations"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_BATCH_USE="Language Translations Batch Use"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch language translations"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_CREATE="Language Translations Create"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_CREATE_DESC="Allows the users in this group to create create language translations"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_DASHBOARD_LIST="Language Translations Dashboard List"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_DASHBOARD_LIST_DESC="Allows the users in this group to update the dashboard list of the language translation"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_DELETE="Language Translations Delete"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_DELETE_DESC="Allows the users in this group to delete delete language translations"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_EDIT="Language Translations Edit"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_EDIT_DESC="Allows the users in this group to edit the language translation"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_EDIT_OWN="Language Translations Edit Own"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_EDIT_OWN_DESC="Allows the users in this group to edit edit own language translations created by them"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_EDIT_STATE="Language Translations Edit State"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_EDIT_STATE_DESC="Allows the users in this group to update the state of the language translation"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_EDIT_VERSION="Language Translations Edit Version"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version language translations"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_EXPORT="Language Translations Export"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_EXPORT_DESC="Allows the users in this group to export export language translations"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_IMPORT="Language Translations Import"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_IMPORT_DESC="Allows the users in this group to import import language translations"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_N_ITEMS_ARCHIVED="%s Language Translations archived."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_N_ITEMS_ARCHIVED_1="%s Language Translation archived."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_N_ITEMS_CHECKED_IN_0="No Language Translation successfully checked in."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_N_ITEMS_CHECKED_IN_1="%d Language Translation successfully checked in."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_N_ITEMS_CHECKED_IN_MORE="%d Language Translations successfully checked in."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_N_ITEMS_DELETED="%s Language Translations deleted."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_N_ITEMS_DELETED_1="%s Language Translation deleted."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_N_ITEMS_FEATURED="%s Language Translations featured."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_N_ITEMS_FEATURED_1="%s Language Translation featured."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_N_ITEMS_PUBLISHED="%s Language Translations published."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_N_ITEMS_PUBLISHED_1="%s Language Translation published."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_N_ITEMS_TRASHED="%s Language Translations trashed."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_N_ITEMS_TRASHED_1="%s Language Translation trashed."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_N_ITEMS_UNFEATURED="%s Language Translations unfeatured."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_N_ITEMS_UNFEATURED_1="%s Language Translation unfeatured."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_N_ITEMS_UNPUBLISHED="%s Language Translations unpublished."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_N_ITEMS_UNPUBLISHED_1="%s Language Translation unpublished."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_SUBMENU="Language Translations Submenu"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_SUBMENU_DESC="Allows the users in this group to update the submenu of the language translation"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_COMPONENTS="Components"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_COMPONENTS_LABEL="Components"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_CREATED_BY_DESC="The user that created this Language Translation."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_CREATED_BY_LABEL="Created By"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_CREATED_DATE_DESC="The date this Language Translation was created."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_CREATED_DATE_LABEL="Created Date"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_DETAILS="Details"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_EDIT="Editing the Language Translation"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_ENTRANSLATION="Entranslation"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_ENTRANSLATION_HINT="Automatically generated!"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_ENTRANSLATION_LABEL="English String"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_ERROR_UNIQUE_ALIAS="Another Language Translation has the same alias."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_ID="Id"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_LANGUAGE="Language"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_LANGUAGE_LABEL="Language"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_MODIFIED_BY_DESC="The last user that modified this Language Translation."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_MODIFIED_BY_LABEL="Modified By"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_MODIFIED_DATE_DESC="The date this Language Translation was modified."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_MODIFIED_DATE_LABEL="Modified Date"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_NEW="A New Language Translation"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_ORDERING_LABEL="Ordering"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_PERMISSION="Permissions"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_PUBLISHING="Publishing"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Language Translation to customise the alias."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_STATUS="Status"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_TRANSLATION="Translation"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_TRANSLATION_DESCRIPTION="The translation strings."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_TRANSLATION_HINT="Translated String Here"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_TRANSLATION_LABEL="Translated String"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_TRANSLATION_SELECT="add/edit"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_VERSION_DESC="A count of the number of times this Language Translation has been revised."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_VERSION_LABEL="Revision"
|
||||
COM_COMPONENTBUILDER_LANGUAGE_VERSION_DESC="A count of the number of times this Language has been revised."
|
||||
COM_COMPONENTBUILDER_LANGUAGE_VERSION_LABEL="Revision"
|
||||
COM_COMPONENTBUILDER_LAST_FEW_RELEASES_FROM_GITHUB_IS_LOADING="Last few releases from Github is loading"
|
||||
COM_COMPONENTBUILDER_LATEST_RELEASE="Latest Release"
|
||||
COM_COMPONENTBUILDER_LAYOUT="Layout"
|
||||
COM_COMPONENTBUILDER_LAYOUTS="Layouts"
|
||||
COM_COMPONENTBUILDER_LAYOUTS_ACCESS="Layouts Access"
|
||||
@ -3019,14 +3277,26 @@ COM_COMPONENTBUILDER_NEW="New"
|
||||
COM_COMPONENTBUILDER_NEW_ISSUE="New Issue"
|
||||
COM_COMPONENTBUILDER_NEW_NOTICE="New Notice"
|
||||
COM_COMPONENTBUILDER_NO="No"
|
||||
COM_COMPONENTBUILDER_NOTRANSLATION="no-translation"
|
||||
COM_COMPONENTBUILDER_NO_ACCESS_GRANTED="No Access Granted!"
|
||||
COM_COMPONENTBUILDER_OPENED_BY="opened by"
|
||||
COM_COMPONENTBUILDER_NO_COMPONENTS_WERE_SELECTED_PLEASE_MAKE_A_SELECTION_AND_TRY_AGAIN="No components were selected, please make a selection and try again!"
|
||||
COM_COMPONENTBUILDER_ON_GITHUB="on Github"
|
||||
COM_COMPONENTBUILDER_OPEN="Open"
|
||||
COM_COMPONENTBUILDER_OPENED="opened"
|
||||
COM_COMPONENTBUILDER_OPENED_THIS="opened this"
|
||||
COM_COMPONENTBUILDER_OPEN_ON_GITHUB="Open on Github"
|
||||
COM_COMPONENTBUILDER_OUT_OF_DATE="Out of date"
|
||||
COM_COMPONENTBUILDER_PACKAGE_OWNER_DETAILS="Package Owner Details"
|
||||
COM_COMPONENTBUILDER_PACKAGE_OWNER_DETAILS_NOT_FOUND="Package owner details not found!"
|
||||
COM_COMPONENTBUILDER_PACKAGE_OWNER_NOT_SET="Package Owner Not Set"
|
||||
COM_COMPONENTBUILDER_PATH_TO_THE_ZIPPED_PACKAGE_IS_CODESCODE_BR_S_S="Path to the zipped package is: <code>%s</code> <br />%s %s"
|
||||
COM_COMPONENTBUILDER_PLEASE_ADD_FILES_TO_S="Please add files to (%s)"
|
||||
COM_COMPONENTBUILDER_PLEASE_ADD_FOLDERS_TO_S="Please add folders to (%s)"
|
||||
COM_COMPONENTBUILDER_PLEASE_CHECK_AGAIN_LATTER="Please check again latter."
|
||||
COM_COMPONENTBUILDER_PLEASE_SELECT_A_COMPONENT_THAT_YOU_WOULD_LIKE_TO_COMPILE="Please select a component that you would like to compile."
|
||||
COM_COMPONENTBUILDER_PLEASE_WAIT_CLEARING_THE_TMP_FOLDER="Please wait! Clearing the tmp folder"
|
||||
COM_COMPONENTBUILDER_READY_TO_COMPILE_A_COMPONENT="Ready to compile a component"
|
||||
COM_COMPONENTBUILDER_RELEASED_THIS="released this"
|
||||
COM_COMPONENTBUILDER_RESPOND_TO_THIS_ISSUE_ON_GITHUB="Respond to this issue on Github"
|
||||
COM_COMPONENTBUILDER_REVIEW_THIS_ISSUE_ON_GITHUB="Review this issue on Github"
|
||||
COM_COMPONENTBUILDER_SAVE_SUCCESS="Great! Item successfully saved."
|
||||
@ -3035,6 +3305,8 @@ COM_COMPONENTBUILDER_SELECT_THE_COMPONENT_TO_COMPILE="Select the component to co
|
||||
COM_COMPONENTBUILDER_SHOULD_JCB_INSERT_THE_CUSTOM_CODE_PLACEHOLDERS_THIS_IS_ONLY_APPLICABLE_IF_THIS_COMPONENT_HAS_CUSTOM_CODE="Should JCB insert the custom code placeholders? This is only applicable if this component has custom code."
|
||||
COM_COMPONENTBUILDER_SHOULD_THE_COMPONENT_BE_MOVED_TO_YOUR_LOCAL_GIT_FOLDER="Should the component be moved to your local git folder?"
|
||||
COM_COMPONENTBUILDER_SHOULD_THE_ZIPPED_PACKAGE_OF_THE_COMPONENT_BE_MOVED_TO_THE_LOCAL_BACKUP_AND_REMOTE_SALES_SERVER_THIS_IS_ONLY_APPLICABLE_IF_THIS_COMPONENT_HAS_THOSE_VALUES_SET="Should the zipped package of the component be moved to the local backup and remote sales server? This is only applicable if this component has those values set."
|
||||
COM_COMPONENTBUILDER_SHOULD_WE_FORCE_THE_UPDATE_OF_ALL_LOCAL_DATA_EVEN_IF_IT_IS_NEWER_THEN_THE_DATA_BEING_IMPORTED="Should we force the update of all local data, even if it is newer then the data being imported."
|
||||
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="Since the owner details are displayed during <b>import process</b> before adding the key, this way if the user/dev <b>does not</b> have the key they can see <b>where to get it</b>."
|
||||
COM_COMPONENTBUILDER_SITE_VIEW="Site View"
|
||||
COM_COMPONENTBUILDER_SITE_VIEWS="Site Views"
|
||||
COM_COMPONENTBUILDER_SITE_VIEWS_ACCESS="Site Views Access"
|
||||
@ -3325,6 +3597,7 @@ COM_COMPONENTBUILDER_SITE_VIEW_NOTE_UIKIT_SNIPPET_LABEL="Snippet Details"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_NOTIFICATION="Notification"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_NOTIFICATION_CIRCLE="Notification Circle"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_NOT_REQUIRED="Not Required"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_ONLY_FUNCTION="Only Function"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_ORDERING_LABEL="Ordering"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_PALETTE="Palette"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_PARAGRAPH_CENTER="Paragraph Center"
|
||||
@ -3395,6 +3668,7 @@ COM_COMPONENTBUILDER_SITE_VIEW_SCISSORS="Scissors"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_SCREEN="Screen"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_SCREWDRIVER="Screwdriver"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_SEARCH="Search"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_SELECTION="Selection"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_SHARE="Share"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_SHARE_ALT="Share Alt"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_SHIELD="Shield"
|
||||
@ -3438,6 +3712,8 @@ COM_COMPONENTBUILDER_SITE_VIEW_TOP_LEFT="Top Left"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_TOP_RIGHT="Top Right"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_TREE="Tree"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_TREE_TWO="Tree 2"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_TYPE_DESCRIPTION="for list target"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_TYPE_LABEL="Type"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_UINT="UINT"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_UNARCHIVE="Unarchive"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_UNBLOCK="Unblock"
|
||||
@ -3469,6 +3745,7 @@ COM_COMPONENTBUILDER_SITE_VIEW_YES="Yes"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_YOUTUBE="Youtube"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_ZOOM_IN="Zoom In"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_ZOOM_OUT="Zoom Out"
|
||||
COM_COMPONENTBUILDER_SMART_PACKAGE_OPTIONS="Smart Package Options"
|
||||
COM_COMPONENTBUILDER_SNIPPET="Snippet"
|
||||
COM_COMPONENTBUILDER_SNIPPETS="Snippets"
|
||||
COM_COMPONENTBUILDER_SNIPPETS_ACCESS="Snippets Access"
|
||||
@ -3579,10 +3856,13 @@ COM_COMPONENTBUILDER_SUBMENU_FIELDS="Fields"
|
||||
COM_COMPONENTBUILDER_SUBMENU_FIELDTYPES="Fieldtypes"
|
||||
COM_COMPONENTBUILDER_SUBMENU_HELP_DOCUMENTS="Help Documents"
|
||||
COM_COMPONENTBUILDER_SUBMENU_JOOMLA_COMPONENTS="Joomla Components"
|
||||
COM_COMPONENTBUILDER_SUBMENU_LANGUAGES="Languages"
|
||||
COM_COMPONENTBUILDER_SUBMENU_LANGUAGE_TRANSLATIONS="Language Translations"
|
||||
COM_COMPONENTBUILDER_SUBMENU_LAYOUTS="Layouts"
|
||||
COM_COMPONENTBUILDER_SUBMENU_SITE_VIEWS="Site Views"
|
||||
COM_COMPONENTBUILDER_SUBMENU_SNIPPETS="Snippets"
|
||||
COM_COMPONENTBUILDER_SUBMENU_TEMPLATES="Templates"
|
||||
COM_COMPONENTBUILDER_S_BEING_IMPORTED="%s Being Imported"
|
||||
COM_COMPONENTBUILDER_S_PLEASE_WAIT_THE_COMPONENT_IS_BEING_COMPILED="%s, please wait! The component is being compiled"
|
||||
COM_COMPONENTBUILDER_TEMPLATE="Template"
|
||||
COM_COMPONENTBUILDER_TEMPLATES="Templates"
|
||||
@ -3687,15 +3967,33 @@ COM_COMPONENTBUILDER_TEMPLATE_TEMPLATE_LABEL="Template"
|
||||
COM_COMPONENTBUILDER_TEMPLATE_VERSION_DESC="A count of the number of times this Template has been revised."
|
||||
COM_COMPONENTBUILDER_TEMPLATE_VERSION_LABEL="Revision"
|
||||
COM_COMPONENTBUILDER_TEMPLATE_YES="Yes"
|
||||
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="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 <b>settings</b>, bottom right there is a field called <b>Export Key</b>."
|
||||
COM_COMPONENTBUILDER_THE_KEY_OF_THIS_PACKAGE="The key of this package."
|
||||
COM_COMPONENTBUILDER_THE_NOTICE_BOARD_IS_LOADING="The notice board is loading"
|
||||
COM_COMPONENTBUILDER_THE_PACKAGE_KEY_IS_CODESCODE="The package key is: <code>%s</code>"
|
||||
COM_COMPONENTBUILDER_THE_README_IS_LOADING="The readme is loading"
|
||||
COM_COMPONENTBUILDER_THE_WIKI_IS_LOADING="The wiki is loading"
|
||||
COM_COMPONENTBUILDER_THIS_PACKAGE_HAS_NO_KEY="This package has no key."
|
||||
COM_COMPONENTBUILDER_TOTAL_DOWNLOADS="total downloads"
|
||||
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="To change the package owner defaults. Open the <b>JCB Global Options</b>, go to the <b>Company</b> tab and add the correct company details there."
|
||||
COM_COMPONENTBUILDER_TRANSLATION="Translation"
|
||||
COM_COMPONENTBUILDER_UP_TO_DATE="Up to date"
|
||||
COM_COMPONENTBUILDER_USED_IN="used in"
|
||||
COM_COMPONENTBUILDER_USE_BATCH="Use Batch"
|
||||
COM_COMPONENTBUILDER_USE_BATCH_DESC=" Allows users in this group to use batch copy/update method."
|
||||
COM_COMPONENTBUILDER_USE_KEY="Use Key"
|
||||
COM_COMPONENTBUILDER_VDM_NOTICE_BOARD="VDM Notice Board"
|
||||
COM_COMPONENTBUILDER_VERSION="Version"
|
||||
COM_COMPONENTBUILDER_VIEW_MORE_ISSUES_ON_GITHUB="View more issues on Github"
|
||||
COM_COMPONENTBUILDER_VIEW_MORE_RELEASES_ON_GITHUB="View more releases on Github"
|
||||
COM_COMPONENTBUILDER_WEBSITE="Website"
|
||||
COM_COMPONENTBUILDER_YES="Yes"
|
||||
COM_COMPONENTBUILDER_YOUR_DATA_IS_ENCRYPTED_WITH_A_AES_ONE_HUNDRED_AND_TWENTY_EIGHT_BIT_ENCRYPTION_USING_THE_ABOVE_THIRTY_TWO_CHARACTER_KEYBR_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="Your data is encrypted with a AES 128 bit encryption using the above 32 character key.<br />Without this key it will take the current technology with a brute force attack method more then <a href="http://random-ize.com/how-long-to-hack-pass/" target="_blank" title="How long to hack pass">700 000 000 000 000 000 000 000 000 000 000</a> years to crack theoretically."
|
||||
COM_COMPONENTBUILDER_YOU_CAN_NOW_SELECT_THE_COMPONENT_BZIPB_PACKAGE_YOU_WOULD_LIKE_TO_IMPORTBR_SMALLPLEASE_NOTE_THAT_SMART_COMPONENT_IMPORT_ONLY_WORKS_WITH_THE_FOLLOWING_FORMAT_BZIPBSMALL="You can now select the component <b>zip</b> package you would like to import.<br /><small>Please note that smart component import only works with the following format: <b>(.zip)</b></small>"
|
||||
COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_IMPORT_A_COMPONENT_PLEASE_CONTACT_YOUR_SYSTEM_ADMINISTRATOR_FOR_MORE_HELP="You do not have permission to import a component, please contact your system administrator for more help."
|
||||
COM_COMPONENTBUILDER_YOU_MUST_SELECT_A_COMPONENT="You must select a component!"
|
||||
COM_COMPONENTBUILDER_YOU_SHOULD_ADD_THE_CORRECT_OWNER_DETAILS="You should add the correct owner details."
|
||||
COM_COMPONENTBUILDER_YOU_SHOULD_ONLY_CONTINUE_THIS_IMPORT_IF_YOU_HAVE_BACKUP_YOUR_COMPONENTS_AND_INSURED_THAT_THE_PACKAGE_OWNER_IS_REPUTABLE="You should only continue this import if you have backup your components, and insured that the package owner is reputable."
|
||||
COM_COMPONENTBUILDER__SELECT_COMPONENT_="- Select Component -"
|
||||
COM_COMPONENTBUILDER__SINCE_YOU_DONT_HAVE_PERMISSION_TO_CREATE_S=", since you don't have permission to create %s!"
|
||||
COM_COMPONENTBUILDER__SINCE_YOU_DONT_HAVE_PERMISSION_TO_EDIT_S=", since you don't have permission to edit %s!"
|
||||
|
@ -10,6 +10,7 @@ COM_COMPONENTBUILDER_MENU_FIELDS="Fields"
|
||||
COM_COMPONENTBUILDER_MENU_FIELDTYPES="Fieldtypes"
|
||||
COM_COMPONENTBUILDER_MENU_HELP_DOCUMENTS="Help Documents"
|
||||
COM_COMPONENTBUILDER_MENU_JOOMLA_COMPONENTS="Joomla Components"
|
||||
COM_COMPONENTBUILDER_MENU_LANGUAGE_TRANSLATIONS="Language Translations"
|
||||
COM_COMPONENTBUILDER_MENU_LAYOUTS="Layouts"
|
||||
COM_COMPONENTBUILDER_MENU_SITE_VIEWS="Site Views"
|
||||
COM_COMPONENTBUILDER_MENU_SNIPPETS="Snippets"
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.3.7
|
||||
@build 12th March, 2017
|
||||
@version 2.4.10
|
||||
@build 12th August, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage css_fullwidth.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.3.7
|
||||
@build 12th March, 2017
|
||||
@version 2.4.10
|
||||
@build 12th August, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage custom_buttons_fullwidth.php
|
||||
@ -31,8 +31,8 @@ $form = $displayData->getForm();
|
||||
|
||||
$fields = $displayData->get('fields') ?: array(
|
||||
'php_controller',
|
||||
'php_controller_list',
|
||||
'php_model',
|
||||
'php_controller_list',
|
||||
'php_model_list'
|
||||
);
|
||||
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.3.7
|
||||
@build 12th March, 2017
|
||||
@version 2.4.10
|
||||
@build 12th August, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage custom_buttons_left.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.3.7
|
||||
@build 12th March, 2017
|
||||
@version 2.4.10
|
||||
@build 12th August, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage custom_import_fullwidth.php
|
||||
@ -37,7 +37,8 @@ $fields = $displayData->get('fields') ?: array(
|
||||
'html_import_view',
|
||||
'php_import',
|
||||
'php_import_setdata',
|
||||
'php_import_save'
|
||||
'php_import_save',
|
||||
'php_import_ext'
|
||||
);
|
||||
|
||||
?>
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.3.7
|
||||
@build 12th March, 2017
|
||||
@version 2.4.10
|
||||
@build 12th August, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage fields_fullwidth.php
|
||||
@ -28,7 +28,7 @@
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
// set the defaults
|
||||
$items = $displayData->vxvfields;
|
||||
$items = $displayData->vxxfields;
|
||||
$user = JFactory::getUser();
|
||||
$id = $displayData->item->id;
|
||||
$edit = "index.php?option=com_componentbuilder&view=fields&task=field.edit";
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user