Compare commits
47 Commits
Author | SHA1 | Date | |
---|---|---|---|
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 | |||
28198e9b9e | |||
3953df845c | |||
30e37dcfde | |||
bc9e5495d7 | |||
4d47f8292f | |||
a1ff74f157 | |||
dc1217e6d1 | |||
f2e4df6ecb |
29
README.md
29
README.md
@ -1,4 +1,4 @@
|
||||
# Component Builder (2.3.5)
|
||||
# Component Builder (2.4.7)
|
||||
|
||||
This is a [Joomla 3.x](http://www.joomla.org/) component.
|
||||
|
||||
@ -8,7 +8,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.5) 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.7) 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 +70,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 +107,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*: 16th February, 2017
|
||||
+ *Version*: 2.3.5
|
||||
+ *Last Build*: 18th June, 2017
|
||||
+ *Version*: 2.4.7
|
||||
+ *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*: **92097**
|
||||
+ *File count*: **595**
|
||||
+ *Folder count*: **105**
|
||||
+ *Line count*: **106061**
|
||||
+ *File count*: **644**
|
||||
+ *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)
|
||||
@ -119,4 +122,4 @@ Component Builder is mapped as a component in itself on my local development env
|
||||
|
||||
Come on buy me a coffee :)
|
||||
* PayPal: pay@vdm.io
|
||||
* Bitcoin: 3H35PYwikEosvcjxHXGPLS1GufZ4b4iFu3
|
||||
* Bitcoin: 1Ga1WZyxC4ArSKuiFpUxdqzjfkAR1kJhZh
|
@ -1,4 +1,4 @@
|
||||
# Component Builder (2.3.5)
|
||||
# Component Builder (2.4.7)
|
||||
|
||||
This is a [Joomla 3.x](http://www.joomla.org/) component.
|
||||
|
||||
@ -8,7 +8,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.5) 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.7) 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 +70,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 +107,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*: 16th February, 2017
|
||||
+ *Version*: 2.3.5
|
||||
+ *Last Build*: 18th June, 2017
|
||||
+ *Version*: 2.4.7
|
||||
+ *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*: **92097**
|
||||
+ *File count*: **595**
|
||||
+ *Folder count*: **105**
|
||||
+ *Line count*: **106061**
|
||||
+ *File count*: **644**
|
||||
+ *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)
|
||||
@ -119,4 +122,4 @@ Component Builder is mapped as a component in itself on my local development env
|
||||
|
||||
Come on buy me a coffee :)
|
||||
* PayPal: pay@vdm.io
|
||||
* Bitcoin: 3H35PYwikEosvcjxHXGPLS1GufZ4b4iFu3
|
||||
* Bitcoin: 1Ga1WZyxC4ArSKuiFpUxdqzjfkAR1kJhZh
|
@ -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.5
|
||||
@build 16th February, 2017
|
||||
@version 2.4.7
|
||||
@build 18th June, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage admin.css
|
||||
|
@ -9,8 +9,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 95 of this MVC
|
||||
@build 3rd February, 2017
|
||||
@version @update number 111 of this MVC
|
||||
@build 7th May, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage admin_view.css
|
||||
|
@ -9,8 +9,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 95 of this MVC
|
||||
@build 3rd February, 2017
|
||||
@version @update number 111 of this MVC
|
||||
@build 7th May, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage admin_views.css
|
||||
|
@ -9,8 +9,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 18 of this MVC
|
||||
@build 16th February, 2017
|
||||
@version @update number 49 of this MVC
|
||||
@build 31st May, 2017
|
||||
@created 1st February, 2017
|
||||
@package Component Builder
|
||||
@subpackage compiler.css
|
||||
|
@ -10,7 +10,7 @@
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 22 of this MVC
|
||||
@build 3rd February, 2017
|
||||
@build 1st March, 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 3rd February, 2017
|
||||
@build 1st March, 2017
|
||||
@created 13th August, 2015
|
||||
@package Component Builder
|
||||
@subpackage custom_admin_views.css
|
||||
|
@ -9,8 +9,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 55 of this MVC
|
||||
@build 16th February, 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 55 of this MVC
|
||||
@build 16th February, 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.5
|
||||
@build 16th February, 2017
|
||||
@version 2.4.7
|
||||
@build 18th June, 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 84 of this MVC
|
||||
@build 16th February, 2017
|
||||
@version @update number 338 of this MVC
|
||||
@build 16th June, 2017
|
||||
@created 6th May, 2015
|
||||
@package Component Builder
|
||||
@subpackage joomla_component.css
|
||||
|
@ -9,8 +9,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 84 of this MVC
|
||||
@build 16th February, 2017
|
||||
@version @update number 338 of this MVC
|
||||
@build 16th June, 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 11th 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 11th February, 2017
|
||||
@version @update number 77 of this MVC
|
||||
@build 30th May, 2017
|
||||
@created 18th May, 2015
|
||||
@package Component Builder
|
||||
@subpackage layouts.css
|
||||
|
@ -9,8 +9,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 48 of this MVC
|
||||
@build 3rd February, 2017
|
||||
@version @update number 51 of this MVC
|
||||
@build 6th March, 2017
|
||||
@created 29th May, 2015
|
||||
@package Component Builder
|
||||
@subpackage site_view.css
|
||||
|
@ -9,8 +9,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 48 of this MVC
|
||||
@build 3rd February, 2017
|
||||
@version @update number 51 of this MVC
|
||||
@build 6th March, 2017
|
||||
@created 29th May, 2015
|
||||
@package Component Builder
|
||||
@subpackage site_views.css
|
||||
|
@ -10,7 +10,7 @@
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 40 of this MVC
|
||||
@build 3rd 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 3rd 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 |
@ -146,13 +146,18 @@ abstract class ###Component###Helper
|
||||
|
||||
if (self::checkArray($where))
|
||||
{
|
||||
// prep main <-- why? well if $main='' is empty then $table can be categories or users
|
||||
if (self::checkString($main))
|
||||
{
|
||||
$main = '_'.ltrim($main, '_');
|
||||
}
|
||||
// Get a db connection.
|
||||
$db = JFactory::getDbo();
|
||||
// Create a new query object.
|
||||
$query = $db->getQuery(true);
|
||||
|
||||
$query->select($db->quoteName(array($what)));
|
||||
$query->from($db->quoteName('#__'.$main.'_'.$table));
|
||||
$query->from($db->quoteName('#_'.$main.'_'.$table));
|
||||
$query->where($db->quoteName($whereString) . ' '.$operator.' (' . implode(',',$where) . ')');
|
||||
$db->setQuery($query);
|
||||
$db->execute();
|
||||
@ -681,13 +686,31 @@ abstract class ###Component###Helper
|
||||
return $string;
|
||||
}
|
||||
|
||||
public static function safeString($string, $type = 'L', $spacer = '_')
|
||||
public static function safeString($string, $type = 'L', $spacer = '_', $replaceNumbers = true)
|
||||
{
|
||||
// remove all numbers and replace with english text version (works well only up to millions)
|
||||
$string = self::replaceNumbers($string);
|
||||
if ($replaceNumbers === true)
|
||||
{
|
||||
// remove all numbers and replace with english text version (works well only up to millions)
|
||||
$string = self::replaceNumbers($string);
|
||||
}
|
||||
// 0nly continue if we have a string
|
||||
if (self::checkString($string))
|
||||
{
|
||||
// create file name without the extention that is safe
|
||||
if ($type === 'filename')
|
||||
{
|
||||
// make sure VDM is not in the string
|
||||
$string = str_replace('VDM', 'vDm', $string);
|
||||
// Remove anything which isn't a word, whitespace, number
|
||||
// or any of the following caracters -_()
|
||||
// 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 = preg_replace("([^\w\s\d\-_\(\)])", '', $string);
|
||||
// http://stackoverflow.com/a/2021729/1429677
|
||||
return preg_replace('/\s+/', ' ', $string);
|
||||
}
|
||||
// remove all other characters
|
||||
$string = trim($string);
|
||||
$string = preg_replace('/'.$spacer.'+/', ' ', $string);
|
||||
|
35
admin/compiler/joomla_3/Helper_category.php
Normal file
35
admin/compiler/joomla_3/Helper_category.php
Normal file
@ -0,0 +1,35 @@
|
||||
<?php
|
||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
||||
__ __ _ _____ _ _ __ __ _ _ _
|
||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
||||
| |
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@package Component Builder
|
||||
@subpackage componentbuilder.php
|
||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
||||
@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');
|
||||
?>
|
||||
###BOM###
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
/**
|
||||
* ###Component### Component Category Tree
|
||||
*/
|
||||
###CATEGORY_CLASS_TREES###
|
50
admin/compiler/joomla_3/Helper_category_view.php
Normal file
50
admin/compiler/joomla_3/Helper_category_view.php
Normal file
@ -0,0 +1,50 @@
|
||||
<?php
|
||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
||||
__ __ _ _____ _ _ __ __ _ _ _
|
||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
||||
| |
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@package Component Builder
|
||||
@subpackage componentbuilder.php
|
||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
||||
@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');
|
||||
?>
|
||||
###BOM###
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
/**
|
||||
* ###Component### ###View### Component Category Tree
|
||||
*/
|
||||
class ###Component######Views###Categories extends JCategories
|
||||
{
|
||||
/**
|
||||
* Class constructor
|
||||
*
|
||||
* @param array $options Array of options
|
||||
*
|
||||
*/
|
||||
public function __construct($options = array())
|
||||
{
|
||||
$options['table'] = '#__###component###_###view###';
|
||||
$options['extension'] = 'com_###component###.###views###';
|
||||
|
||||
parent::__construct($options);
|
||||
}
|
||||
}
|
@ -320,13 +320,18 @@ abstract class ###Component###Helper
|
||||
|
||||
if (self::checkArray($where))
|
||||
{
|
||||
// prep main <-- why? well if $main='' is empty then $table can be categories or users
|
||||
if (self::checkString($main))
|
||||
{
|
||||
$main = '_'.ltrim($main, '_');
|
||||
}
|
||||
// Get a db connection.
|
||||
$db = JFactory::getDbo();
|
||||
// Create a new query object.
|
||||
$query = $db->getQuery(true);
|
||||
|
||||
$query->select($db->quoteName(array($what)));
|
||||
$query->from($db->quoteName('#__'.$main.'_'.$table));
|
||||
$query->from($db->quoteName('#_'.$main.'_'.$table));
|
||||
$query->where($db->quoteName($whereString) . ' '.$operator.' (' . implode(',',$where) . ')');
|
||||
$db->setQuery($query);
|
||||
$db->execute();
|
||||
@ -673,13 +678,31 @@ abstract class ###Component###Helper
|
||||
return $string;
|
||||
}
|
||||
|
||||
public static function safeString($string, $type = 'L', $spacer = '_')
|
||||
public static function safeString($string, $type = 'L', $spacer = '_', $replaceNumbers = true)
|
||||
{
|
||||
// remove all numbers and replace with english text version (works well only up to millions)
|
||||
$string = self::replaceNumbers($string);
|
||||
if ($replaceNumbers === true)
|
||||
{
|
||||
// remove all numbers and replace with english text version (works well only up to millions)
|
||||
$string = self::replaceNumbers($string);
|
||||
}
|
||||
// 0nly continue if we have a string
|
||||
if (self::checkString($string))
|
||||
{
|
||||
// create file name without the extention that is safe
|
||||
if ($type === 'filename')
|
||||
{
|
||||
// make sure VDM is not in the string
|
||||
$string = str_replace('VDM', 'vDm', $string);
|
||||
// Remove anything which isn't a word, whitespace, number
|
||||
// or any of the following caracters -_()
|
||||
// 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 = preg_replace("([^\w\s\d\-_\(\)])", '', $string);
|
||||
// http://stackoverflow.com/a/2021729/1429677
|
||||
return preg_replace('/\s+/', ' ', $string);
|
||||
}
|
||||
// remove all other characters
|
||||
$string = trim($string);
|
||||
$string = preg_replace('/'.$spacer.'+/', ' ', $string);
|
||||
|
@ -47,5 +47,5 @@ class ###Component###Controller###Views### extends JControllerAdmin
|
||||
$model = parent::getModel($name, $prefix, array('ignore_request' => true));
|
||||
|
||||
return $model;
|
||||
}###CONTROLLEREXIMPORTMETHOD### ###CUSTOM_ADMIN_DYNAMIC_BUTTONS_CONTROLLER###
|
||||
}###CONTROLLEREXIMPORTMETHOD### ###CUSTOM_ADMIN_DYNAMIC_BUTTONS_CONTROLLER### ###ADMIN_CUSTOM_BUTTONS_CONTROLLER_LIST###
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -47,7 +47,7 @@ class ###Component###Model###Views### extends JModelList
|
||||
}
|
||||
|
||||
parent::__construct($config);
|
||||
}
|
||||
}###ADMIN_CUSTOM_BUTTONS_METHOD_LIST###
|
||||
|
||||
/**
|
||||
* Method to auto-populate the model state.
|
||||
|
@ -52,7 +52,8 @@ class ###Component###ViewImport extends JViewLegacy
|
||||
}
|
||||
|
||||
// Check for errors.
|
||||
if (count($errors = $this->get('Errors'))){
|
||||
if (count($errors = $this->get('Errors')))
|
||||
{
|
||||
JError::raiseError(500, implode('<br />', $errors));
|
||||
return false;
|
||||
}
|
||||
|
@ -132,7 +132,7 @@ class ###Component###View###Views### extends JViewLegacy
|
||||
// add the button to the page
|
||||
$dhtml = $layout->render(array('title' => $title));
|
||||
$bar->appendButton('Custom', $dhtml, 'batch');
|
||||
}###CUSTOM_ADMIN_DYNAMIC_BUTTONS###
|
||||
}###CUSTOM_ADMIN_DYNAMIC_BUTTONS### ###ADMIN_CUSTOM_BUTTONS_LIST###
|
||||
|
||||
if ($this->state->get('filter.published') == -2 && ($this->canState && $this->canDelete))
|
||||
{
|
||||
|
@ -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###
|
||||
|
@ -30,7 +30,6 @@ defined('_JEXEC') or die('Restricted access');
|
||||
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###">
|
||||
|
@ -1,6 +1,11 @@
|
||||
###INSTALL###
|
||||
|
||||
--
|
||||
-- Always insure this column is large enough for all the access control values.
|
||||
-- Always insure this column rules is large enough for all the access control values.
|
||||
--
|
||||
ALTER TABLE `#__assets` CHANGE `rules` `rules` MEDIUMTEXT NOT NULL COMMENT 'JSON encoded access control.';
|
||||
|
||||
--
|
||||
-- Always insure this column name is large enough for long component and view names.
|
||||
--
|
||||
ALTER TABLE `#__assets` CHANGE `name` `name` VARCHAR(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'The unique name for the asset.';
|
||||
|
@ -157,24 +157,19 @@
|
||||
"rename": "Helper_site",
|
||||
"type": "file"
|
||||
},
|
||||
"Helper_category.php": {
|
||||
"naam":"Helper_category.php",
|
||||
"path": "c0mp0n3nt/site/helpers",
|
||||
"rename": "new",
|
||||
"newName": "category.php",
|
||||
"type": "file"
|
||||
},
|
||||
"script.php": {
|
||||
"naam":"script.php",
|
||||
"path": "c0mp0n3nt/",
|
||||
"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",
|
||||
@ -212,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",
|
||||
@ -677,6 +660,11 @@
|
||||
"rename": "new",
|
||||
"newName": "submitbutton.js",
|
||||
"type": "custom_form"
|
||||
},
|
||||
"Helper_category_view.php": {
|
||||
"path": "c0mp0n3nt/site/helpers",
|
||||
"rename": "Helper_category_view",
|
||||
"type": "category"
|
||||
}
|
||||
},
|
||||
"custom_admin": {
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.3.5
|
||||
@build 16th February, 2017
|
||||
@version 2.4.7
|
||||
@build 18th June, 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.5
|
||||
@build 16th February, 2017
|
||||
@version 2.4.7
|
||||
@build 18th June, 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 95 of this MVC
|
||||
@build 3rd February, 2017
|
||||
@version @update number 111 of this MVC
|
||||
@build 7th May, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage admin_view.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 95 of this MVC
|
||||
@build 3rd February, 2017
|
||||
@version @update number 111 of this MVC
|
||||
@build 7th May, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage admin_views.php
|
||||
@ -107,5 +107,5 @@ class ComponentbuilderControllerAdmin_views extends JControllerAdmin
|
||||
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_FAILED');
|
||||
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=admin_views', false), $message, 'error');
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.3.5
|
||||
@build 16th February, 2017
|
||||
@version 2.4.7
|
||||
@build 18th June, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage ajax.json.php
|
||||
@ -44,6 +44,7 @@ class ComponentbuilderControllerAjax extends JControllerLegacy
|
||||
// load the tasks
|
||||
$this->registerTask('isNew', 'ajax');
|
||||
$this->registerTask('isRead', 'ajax');
|
||||
$this->registerTask('getComponentDetails', 'ajax');
|
||||
$this->registerTask('tableColumns', 'ajax');
|
||||
$this->registerTask('fieldSelectOptions', 'ajax');
|
||||
$this->registerTask('getImportScripts', 'ajax');
|
||||
@ -56,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()
|
||||
@ -147,6 +150,44 @@ class ComponentbuilderControllerAjax extends JControllerLegacy
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'getComponentDetails':
|
||||
try
|
||||
{
|
||||
$returnRaw = $jinput->get('raw', false, 'BOOLEAN');
|
||||
$idValue = $jinput->get('id', NULL, 'INT');
|
||||
if($idValue && $user->id != 0)
|
||||
{
|
||||
$result = $this->getModel('ajax')->getComponentDetails($idValue);
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = false;
|
||||
}
|
||||
if($callback = $jinput->get('callback', null, 'CMD'))
|
||||
{
|
||||
echo $callback . "(".json_encode($result).");";
|
||||
}
|
||||
elseif($returnRaw)
|
||||
{
|
||||
echo json_encode($result);
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "(".json_encode($result).");";
|
||||
}
|
||||
}
|
||||
catch(Exception $e)
|
||||
{
|
||||
if($callback = $jinput->get('callback', null, 'CMD'))
|
||||
{
|
||||
echo $callback."(".json_encode($e).");";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "(".json_encode($e).");";
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'tableColumns':
|
||||
try
|
||||
{
|
||||
@ -577,9 +618,10 @@ class ComponentbuilderControllerAjax extends JControllerLegacy
|
||||
$returnRaw = $jinput->get('raw', false, 'BOOLEAN');
|
||||
$functioNameValue = $jinput->get('functioName', NULL, 'WORD');
|
||||
$idValue = $jinput->get('id', NULL, 'INT');
|
||||
if($functioNameValue && $idValue && $user->id != 0)
|
||||
$targetValue = $jinput->get('target', NULL, 'WORD');
|
||||
if($functioNameValue && $idValue && $targetValue && $user->id != 0)
|
||||
{
|
||||
$result = $this->getModel('ajax')->usedin($functioNameValue, $idValue);
|
||||
$result = $this->getModel('ajax')->usedin($functioNameValue, $idValue, $targetValue);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -647,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 18 of this MVC
|
||||
@build 16th February, 2017
|
||||
@version @update number 49 of this MVC
|
||||
@build 31st May, 2017
|
||||
@created 1st February, 2017
|
||||
@package Component Builder
|
||||
@subpackage compiler.php
|
||||
@ -66,9 +66,9 @@ class ComponentbuilderControllerCompiler extends JControllerAdmin
|
||||
if($user->authorise('core.admin', 'com_componentbuilder'))
|
||||
{
|
||||
// get the post values
|
||||
$jinput = JFactory::getApplication()->input;
|
||||
$jinput = JFactory::getApplication()->input;
|
||||
$componentId = $jinput->post->get('component', 0, 'INT');
|
||||
$version = $jinput->post->get('version', 0, 'INT');
|
||||
$version = $jinput->post->get('version', 0, 'INT');
|
||||
$addBackup = $jinput->post->get('backup', 0, 'INT');
|
||||
$addGit = $jinput->post->get('git', 0, 'INT');
|
||||
$addPlaceholders = $jinput->post->get('placeholders', 2, 'INT');
|
||||
@ -93,62 +93,37 @@ class ComponentbuilderControllerCompiler extends JControllerAdmin
|
||||
if (empty($redirect_url) && $componentId > 0)
|
||||
{
|
||||
$redirect_url = JRoute::_('index.php?option=com_componentbuilder&view=compiler', false);
|
||||
// setup the unrealistic numbers
|
||||
$counter = $model->getCount();
|
||||
$folders = $counter['folders'] * 5;
|
||||
$files = $counter['files'] * 5;
|
||||
$lines = $counter['lines'] * 10;
|
||||
$seconds = $folders + $files + $lines;
|
||||
$totalHours = round($seconds / 3600);
|
||||
$totalDays = round($totalHours / 8);
|
||||
// setup the more realistic numbers
|
||||
$debugging = $seconds / 4;
|
||||
$planning = $seconds / 7;
|
||||
$mapping = $seconds / 10;
|
||||
$office = $seconds / 6;
|
||||
$seconds = $folders + $files + $lines + $debugging + $planning + $mapping + $office;
|
||||
$actualTotalHours = round($seconds / 3600);
|
||||
$actualTotalDays = round($actualTotalHours / 8);
|
||||
$debuggingHours = round($debugging / 3600);
|
||||
$planningHours = round($planning / 3600);
|
||||
$mappingHours = round($mapping / 3600);
|
||||
$officeHours = round($office / 3600);
|
||||
// the actual time spent
|
||||
$actualHoursSpent = $actualTotalHours - $totalHours;
|
||||
$actualDaysSpent = $actualTotalDays - $totalDays;
|
||||
// calculate the projects actual time frame of completion
|
||||
$projectWeekTime = round($actualTotalDays / 5,1);
|
||||
$projectMonthTime = round($actualTotalDays / 24,1);
|
||||
if (($pos = strpos($counter['filePath'], "/tmp/")) !== FALSE)
|
||||
if (($pos = strpos($model->compiler->filepath, "/tmp/")) !== FALSE)
|
||||
{
|
||||
$url = JURI::root() . substr($counter['filePath'], $pos + 1);
|
||||
$url = JURI::root() . substr($model->compiler->filepath, $pos + 1);
|
||||
}
|
||||
// Message of successful build
|
||||
$message = '<h1>The ('.$counter['filename'].') Was Successfully Compiled!</h1>';
|
||||
$message = '<h1>The ('.$model->compiler->componentFolderName.') Was Successfully Compiled!</h1>';
|
||||
$message .= '<p><button class="btn btn-small btn-success" onclick="Joomla.submitbutton(\'compiler.installExtention\')">';
|
||||
$message .= 'Install '.$counter['filename'].' on this <span class="icon-joomla icon-white"></span>Joomla website.</button></p>';
|
||||
$message .= 'Install '.$model->compiler->componentFolderName.' on this <span class="icon-joomla icon-white"></span>Joomla website.</button></p>';
|
||||
$message .= '<h2>Total time saved</h2>';
|
||||
$message .= '<ul>';
|
||||
$message .= '<li>Total folders created: <b>'.$counter['folders'].'</b></li>';
|
||||
$message .= '<li>Total files created: <b>'.$counter['files'].'</b></li>';
|
||||
$message .= '<li>Total lines written: <b>'.$counter['lines'].'</b></li>';
|
||||
$message .= '<li>Total folders created: <b>'.$model->compiler->folderCount.'</b></li>';
|
||||
$message .= '<li>Total files created: <b>'.$model->compiler->fileCount.'</b></li>';
|
||||
$message .= '<li>Total lines written: <b>'.$model->compiler->lineCount.'</b></li>';
|
||||
$message .= '<li>A4 Book of: <b>'.$model->compiler->pageCount.' pages</b></li>';
|
||||
$message .= '</ul>';
|
||||
$message .= '<p><b>'.$totalHours.' Hours</b> or <b>'.$totalDays.' Eight Hour Days</b> <em>(actual time you saved)</em><br />';
|
||||
$message .= '<p><b>'.$model->compiler->totalHours.' Hours</b> or <b>'.$model->compiler->totalDays.' Eight Hour Days</b> <em>(actual time you saved)</em><br />';
|
||||
$message .= '<small>(if creating a folder and file took <b>5 seconds</b> and writing one line of code took <b>10 seconds</b>, never making one mistake or taking any coffee break.)</small><br />';
|
||||
$message .= '<b>'.$actualHoursSpent.' Hours</b> or <b>'.$actualDaysSpent.' Eight Hour Days</b> <em>(the actual time you spent)</em><br />';
|
||||
$message .= '<small>(with the following break down: <b>debugging @'.$debuggingHours.'hours</b> = codingtime / 4; <b>planning @'.$planningHours.'hours</b> = codingtime / 7; <b>mapping @'.$mappingHours.'hours</b> = codingtime / 10; <b>office @'.$officeHours.'hours</b> = codingtime / 6;)</small></p>';
|
||||
$message .= '<p><b>'.$actualTotalHours.' Hours</b> or <b>'.$actualTotalDays.' Eight Hour Days</b> <em>(a total of the realistic time frame for this project)</em><br />';
|
||||
$message .= '<b>'.$model->compiler->actualHoursSpent.' Hours</b> or <b>'.$model->compiler->actualDaysSpent.' Eight Hour Days</b> <em>(the actual time you spent)</em><br />';
|
||||
$message .= '<small>(with the following break down: <b>debugging @'.$model->compiler->debuggingHours.'hours</b> = codingtime / 4; <b>planning @'.$model->compiler->planningHours.'hours</b> = codingtime / 7; <b>mapping @'.$model->compiler->mappingHours.'hours</b> = codingtime / 10; <b>office @'.$model->compiler->officeHours.'hours</b> = codingtime / 6;)</small></p>';
|
||||
$message .= '<p><b>'.$model->compiler->actualTotalHours.' Hours</b> or <b>'.$model->compiler->actualTotalDays.' Eight Hour Days</b> <em>(a total of the realistic time frame for this project)</em><br />';
|
||||
$message .= '<small>(if creating a folder and file took <b>5 seconds</b> and writing one line of code took <b>10 seconds</b>, with the normal everyday realities at the office, that includes the component planning, mapping & debugging.)</small></p>';
|
||||
$message .= '<p>Project duration: <b>'.$projectWeekTime. ' weeks</b> or <b>'.$projectMonthTime.' months</b></p>';
|
||||
$message .= '<p>Project duration: <b>'.$model->compiler->projectWeekTime. ' weeks</b> or <b>'.$model->compiler->projectMonthTime.' months</b></p>';
|
||||
$message .= '<h2>Path to Zip File</h2>';
|
||||
$message .= '<p><b>Path:</b> <code>'.$counter['filePath'].'</code><br />';
|
||||
$message .= '<p><b>Path:</b> <code>'.$model->compiler->filepath.'</code><br />';
|
||||
$message .= '<b>URL:</b> <code>'.$url.'</code><br /><br />';
|
||||
$message .= '<small>Hey! you can also download the file right now!</small><br /><a class="btn btn-success" href="'.$url.'" ><span class="icon-download icon-white"></span>Download</a></p>';
|
||||
$message .= '<p><small><b>Remember!</b> This file is in your tmp folder and therefore publicly accessible untill you click [Clear tmp]!</small> </p>';
|
||||
$message .= '<p><small>Compilation took <b>'.$counter['time'].'</b> seconds to complete.</small> </p>';
|
||||
$message .= '<p><small>Compilation took <b>'.$model->compiler->secondsCompiled.'</b> seconds to complete.</small> </p>';
|
||||
// set redirect
|
||||
$this->setRedirect($redirect_url,$message,'message');
|
||||
$app->setUserState('com_componentbuilder.extension_name', $counter['filename']);
|
||||
$app->setUserState('com_componentbuilder.extension_name', $model->compiler->componentFolderName);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.3.5
|
||||
@build 16th February, 2017
|
||||
@version 2.4.7
|
||||
@build 18th June, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage componentbuilder.php
|
||||
|
@ -11,7 +11,7 @@
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 22 of this MVC
|
||||
@build 3rd February, 2017
|
||||
@build 1st March, 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 3rd February, 2017
|
||||
@build 1st March, 2017
|
||||
@created 13th August, 2015
|
||||
@package Component Builder
|
||||
@subpackage custom_admin_views.php
|
||||
@ -107,5 +107,5 @@ class ComponentbuilderControllerCustom_admin_views extends JControllerAdmin
|
||||
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_FAILED');
|
||||
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=custom_admin_views', false), $message, 'error');
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 55 of this MVC
|
||||
@build 16th February, 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 55 of this MVC
|
||||
@build 16th February, 2017
|
||||
@version @update number 82 of this MVC
|
||||
@build 26th April, 2017
|
||||
@created 11th October, 2016
|
||||
@package Component Builder
|
||||
@subpackage custom_codes.php
|
||||
@ -107,5 +107,5 @@ class ComponentbuilderControllerCustom_codes extends JControllerAdmin
|
||||
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_FAILED');
|
||||
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=custom_codes', false), $message, 'error');
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
@ -107,5 +107,5 @@ class ComponentbuilderControllerDynamic_gets extends JControllerAdmin
|
||||
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_FAILED');
|
||||
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=dynamic_gets', false), $message, 'error');
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
@ -107,5 +107,5 @@ class ComponentbuilderControllerFields extends JControllerAdmin
|
||||
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_FAILED');
|
||||
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=fields', false), $message, 'error');
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
@ -107,5 +107,5 @@ class ComponentbuilderControllerFieldtypes extends JControllerAdmin
|
||||
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_FAILED');
|
||||
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=fieldtypes', false), $message, 'error');
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.3.5
|
||||
@build 16th February, 2017
|
||||
@version 2.4.7
|
||||
@build 18th June, 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
|
||||
@ -107,5 +107,5 @@ class ComponentbuilderControllerHelp_documents extends JControllerAdmin
|
||||
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_FAILED');
|
||||
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=help_documents', false), $message, 'error');
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.3.5
|
||||
@build 16th February, 2017
|
||||
@version 2.4.7
|
||||
@build 18th June, 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.7
|
||||
@build 18th June, 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 84 of this MVC
|
||||
@build 16th February, 2017
|
||||
@version @update number 338 of this MVC
|
||||
@build 16th June, 2017
|
||||
@created 6th May, 2015
|
||||
@package Component Builder
|
||||
@subpackage joomla_component.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 84 of this MVC
|
||||
@build 16th February, 2017
|
||||
@version @update number 338 of this MVC
|
||||
@build 16th June, 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 11th 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 11th February, 2017
|
||||
@version @update number 77 of this MVC
|
||||
@build 30th May, 2017
|
||||
@created 18th May, 2015
|
||||
@package Component Builder
|
||||
@subpackage layouts.php
|
||||
@ -107,5 +107,5 @@ class ComponentbuilderControllerLayouts extends JControllerAdmin
|
||||
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_FAILED');
|
||||
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=layouts', false), $message, 'error');
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 48 of this MVC
|
||||
@build 3rd February, 2017
|
||||
@version @update number 51 of this MVC
|
||||
@build 6th March, 2017
|
||||
@created 29th May, 2015
|
||||
@package Component Builder
|
||||
@subpackage site_view.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 48 of this MVC
|
||||
@build 3rd February, 2017
|
||||
@version @update number 51 of this MVC
|
||||
@build 6th March, 2017
|
||||
@created 29th May, 2015
|
||||
@package Component Builder
|
||||
@subpackage site_views.php
|
||||
@ -107,5 +107,5 @@ class ComponentbuilderControllerSite_views extends JControllerAdmin
|
||||
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_FAILED');
|
||||
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=site_views', false), $message, 'error');
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -107,5 +107,5 @@ class ComponentbuilderControllerSnippets extends JControllerAdmin
|
||||
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_FAILED');
|
||||
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=snippets', false), $message, 'error');
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -11,7 +11,7 @@
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 40 of this MVC
|
||||
@build 3rd 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 3rd February, 2017
|
||||
@build 1st April, 2017
|
||||
@created 26th May, 2015
|
||||
@package Component Builder
|
||||
@subpackage templates.php
|
||||
@ -107,5 +107,5 @@ class ComponentbuilderControllerTemplates extends JControllerAdmin
|
||||
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_FAILED');
|
||||
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=templates', false), $message, 'error');
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -464,4 +464,3 @@ class Dropbox
|
||||
return function_exists('curl_version');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
@ -107,6 +107,8 @@ class Compiler extends Infusion
|
||||
$this->setLangFileData();
|
||||
// move the update server into place
|
||||
$this->setUpdateServer();
|
||||
// set the global counters
|
||||
$this->setCountingStuff();
|
||||
// build read me
|
||||
$this->buildReadMe();
|
||||
// zip the component
|
||||
@ -134,7 +136,7 @@ class Compiler extends Infusion
|
||||
*/
|
||||
private function setLine($nr)
|
||||
{
|
||||
if ($this->loadLineNr)
|
||||
if ($this->debugLinenr)
|
||||
{
|
||||
return ' [Compiler '.$nr.']';
|
||||
}
|
||||
@ -150,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);
|
||||
@ -209,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);
|
||||
@ -302,6 +296,38 @@ class Compiler extends Infusion
|
||||
$this->fileContentStatic['###BUILDDATE###'] = $this->fileContentStatic['###BUILDDATE###GLOBAL'];
|
||||
$this->fileContentStatic['###VERSION###'] = $this->fileContentStatic['###VERSION###GLOBAL'];
|
||||
}
|
||||
|
||||
// set all global numbers
|
||||
protected function setCountingStuff()
|
||||
{
|
||||
// what is the size in terms of an A4 book
|
||||
$this->pageCount = round($this->lineCount / 56);
|
||||
// setup the unrealistic numbers
|
||||
$this->folderSeconds = $this->folderCount * 5;
|
||||
$this->fileSeconds = $this->fileCount * 5;
|
||||
$this->lineSeconds = $this->lineCount * 10;
|
||||
$this->seconds = $this->folderSeconds + $this->fileSeconds + $this->lineSeconds;
|
||||
$this->totalHours = round($this->seconds / 3600);
|
||||
$this->totalDays = round($this->totalHours / 8);
|
||||
// setup the more realistic numbers
|
||||
$this->secondsDebugging = $this->seconds / 4;
|
||||
$this->secondsPlanning = $this->seconds / 7;
|
||||
$this->secondsMapping = $this->seconds / 10;
|
||||
$this->secondsOffice = $this->seconds / 6;
|
||||
$this->actualSeconds = $this->folderSeconds + $this->fileSeconds + $this->lineSeconds + $this->secondsDebugging + $this->secondsPlanning + $this->secondsMapping + $this->secondsOffice;
|
||||
$this->actualTotalHours = round($this->actualSeconds / 3600);
|
||||
$this->actualTotalDays = round($this->actualTotalHours / 8);
|
||||
$this->debuggingHours = round($this->secondsDebugging / 3600);
|
||||
$this->planningHours = round($this->secondsPlanning / 3600);
|
||||
$this->mappingHours = round($this->secondsMapping / 3600);
|
||||
$this->officeHours = round($this->secondsOffice / 3600);
|
||||
// the actual time spent
|
||||
$this->actualHoursSpent = $this->actualTotalHours - $this->totalHours;
|
||||
$this->actualDaysSpent = $this->actualTotalDays - $this->totalDays;
|
||||
// calculate the projects actual time frame of completion
|
||||
$this->projectWeekTime = round($this->actualTotalDays / 5,1);
|
||||
$this->projectMonthTime = round($this->actualTotalDays / 24,1);
|
||||
}
|
||||
|
||||
private function buildReadMe()
|
||||
{
|
||||
@ -330,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
|
||||
@ -339,55 +365,39 @@ class Compiler extends Infusion
|
||||
|
||||
private function buildReadMeData()
|
||||
{
|
||||
// setup the unrealistic numbers
|
||||
$folders = $this->folderCount * 5;
|
||||
$files = $this->fileCount * 5;
|
||||
$lines = $this->lineCount * 10;
|
||||
$seconds = $folders + $files + $lines;
|
||||
$totalHours = round($seconds / 3600);
|
||||
$totalDays = round($totalHours / 8);
|
||||
// setup the more realistic numbers
|
||||
$debugging = $seconds / 4;
|
||||
$planning = $seconds / 7;
|
||||
$mapping = $seconds / 10;
|
||||
$office = $seconds / 6;
|
||||
$seconds = $folders + $files + $lines + $debugging + $planning + $mapping + $office;
|
||||
$actualTotalHours = round($seconds / 3600);
|
||||
$actualTotalDays = round($actualTotalHours / 8);
|
||||
$debuggingHours = round($debugging / 3600);
|
||||
$planningHours = round($planning / 3600);
|
||||
$mappingHours = round($mapping / 3600);
|
||||
$officeHours = round($office / 3600);
|
||||
// the actual time spent
|
||||
$actualHoursSpent = $actualTotalHours - $totalHours;
|
||||
$actualDaysSpent = $actualTotalDays - $totalDays;
|
||||
// calculate the projects actual time frame of completion
|
||||
$projectWeekTime = round($actualTotalDays / 5,1);
|
||||
$projectMonthTime = round($actualTotalDays / 24,1);
|
||||
// set some defaults
|
||||
$this->fileContentStatic['###LINE_COUNT###'] = $this->lineCount;
|
||||
$this->fileContentStatic['###FILE_COUNT###'] = $this->fileCount;
|
||||
$this->fileContentStatic['###FOLDER_COUNT###'] = $this->folderCount;
|
||||
$this->fileContentStatic['###folders###'] = $folders;
|
||||
$this->fileContentStatic['###files###'] = $files;
|
||||
$this->fileContentStatic['###lines###'] = $lines;
|
||||
$this->fileContentStatic['###seconds###'] = $seconds;
|
||||
$this->fileContentStatic['###totalHours###'] = $totalHours;
|
||||
$this->fileContentStatic['###totalDays###'] = $totalDays;
|
||||
$this->fileContentStatic['###debugging###'] = $debugging;
|
||||
$this->fileContentStatic['###planning###'] = $planning;
|
||||
$this->fileContentStatic['###mapping###'] = $mapping;
|
||||
$this->fileContentStatic['###office###'] = $office;
|
||||
$this->fileContentStatic['###actualTotalHours###'] = $actualTotalHours;
|
||||
$this->fileContentStatic['###actualTotalDays###'] = $actualTotalDays;
|
||||
$this->fileContentStatic['###debuggingHours###'] = $debuggingHours;
|
||||
$this->fileContentStatic['###planningHours###'] = $planningHours;
|
||||
$this->fileContentStatic['###mappingHours###'] = $mappingHours;
|
||||
$this->fileContentStatic['###officeHours###'] = $officeHours;
|
||||
$this->fileContentStatic['###actualHoursSpent###'] = $actualHoursSpent;
|
||||
$this->fileContentStatic['###actualDaysSpent###'] = $actualDaysSpent;
|
||||
$this->fileContentStatic['###projectWeekTime###'] = $projectWeekTime;
|
||||
$this->fileContentStatic['###projectMonthTime###'] = $projectMonthTime;
|
||||
$this->fileContentStatic['###LINE_COUNT###'] = $this->lineCount;
|
||||
$this->fileContentStatic['###FILE_COUNT###'] = $this->fileCount;
|
||||
$this->fileContentStatic['###FOLDER_COUNT###'] = $this->folderCount;
|
||||
$this->fileContentStatic['###PAGE_COUNT###'] = $this->pageCount;
|
||||
$this->fileContentStatic['###folders###'] = $this->folderSeconds;
|
||||
$this->fileContentStatic['###foldersSeconds###'] = $this->folderSeconds;
|
||||
$this->fileContentStatic['###files###'] = $this->fileSeconds;
|
||||
$this->fileContentStatic['###filesSeconds###'] = $this->fileSeconds;
|
||||
$this->fileContentStatic['###lines###'] = $this->lineSeconds;
|
||||
$this->fileContentStatic['###linesSeconds###'] = $this->lineSeconds;
|
||||
$this->fileContentStatic['###seconds###'] = $this->actualSeconds;
|
||||
$this->fileContentStatic['###actualSeconds###'] = $this->actualSeconds;
|
||||
$this->fileContentStatic['###totalHours###'] = $this->totalHours;
|
||||
$this->fileContentStatic['###totalDays###'] = $this->totalDays;
|
||||
$this->fileContentStatic['###debugging###'] = $this->secondsDebugging;
|
||||
$this->fileContentStatic['###secondsDebugging###'] = $this->secondsDebugging;
|
||||
$this->fileContentStatic['###planning###'] = $this->secondsPlanning;
|
||||
$this->fileContentStatic['###secondsPlanning###'] = $this->secondsPlanning;
|
||||
$this->fileContentStatic['###mapping###'] = $this->secondsMapping;
|
||||
$this->fileContentStatic['###secondsMapping###'] = $this->secondsMapping;
|
||||
$this->fileContentStatic['###office###'] = $this->secondsOffice;
|
||||
$this->fileContentStatic['###secondsOffice###'] = $this->secondsOffice;
|
||||
$this->fileContentStatic['###actualTotalHours###'] = $this->actualTotalHours;
|
||||
$this->fileContentStatic['###actualTotalDays###'] = $this->actualTotalDays;
|
||||
$this->fileContentStatic['###debuggingHours###'] = $this->debuggingHours;
|
||||
$this->fileContentStatic['###planningHours###'] = $this->planningHours;
|
||||
$this->fileContentStatic['###mappingHours###'] = $this->mappingHours;
|
||||
$this->fileContentStatic['###officeHours###'] = $this->officeHours;
|
||||
$this->fileContentStatic['###actualHoursSpent###'] = $this->actualHoursSpent;
|
||||
$this->fileContentStatic['###actualDaysSpent###'] = $this->actualDaysSpent;
|
||||
$this->fileContentStatic['###projectWeekTime###'] = $this->projectWeekTime;
|
||||
$this->fileContentStatic['###projectMonthTime###'] = $this->projectMonthTime;
|
||||
}
|
||||
|
||||
private function zipComponent()
|
||||
@ -404,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)
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -45,6 +45,13 @@ class Structure extends Get
|
||||
*/
|
||||
public $fileCount = 0;
|
||||
|
||||
/**
|
||||
* The page counter
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $pageCount = 0;
|
||||
|
||||
/**
|
||||
* The line counter
|
||||
*
|
||||
@ -52,6 +59,153 @@ class Structure extends Get
|
||||
*/
|
||||
public $lineCount = 0;
|
||||
|
||||
/**
|
||||
* The seconds counter
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $seconds = 0;
|
||||
|
||||
/**
|
||||
* The actual seconds counter
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $actualSeconds = 0;
|
||||
|
||||
/**
|
||||
* The folder seconds counter
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $folderSeconds = 0;
|
||||
|
||||
/**
|
||||
* The file seconds counter
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $fileSeconds = 0;
|
||||
|
||||
/**
|
||||
* The line seconds counter
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $lineSeconds = 0;
|
||||
|
||||
/**
|
||||
* The seconds debugging counter
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $secondsDebugging = 0;
|
||||
|
||||
/**
|
||||
* The seconds planning counter
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $secondsPlanning = 0;
|
||||
|
||||
/**
|
||||
* The seconds mapping counter
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $secondsMapping = 0;
|
||||
|
||||
/**
|
||||
* The seconds office counter
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $secondsOffice = 0;
|
||||
|
||||
/**
|
||||
* The total hours counter
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $totalHours = 0;
|
||||
|
||||
/**
|
||||
* The debugging hours counter
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $debuggingHours = 0;
|
||||
|
||||
/**
|
||||
* The planning hours counter
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $planningHours = 0;
|
||||
|
||||
/**
|
||||
* The mapping hours counter
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $mappingHours = 0;
|
||||
|
||||
/**
|
||||
* The office hours counter
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $officeHours = 0;
|
||||
|
||||
/**
|
||||
* The actual Total Hours counter
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $actualTotalHours = 0;
|
||||
|
||||
/**
|
||||
* The actual hours spent counter
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $actualHoursSpent = 0;
|
||||
|
||||
/**
|
||||
* The actual days spent counter
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $actualDaysSpent = 0;
|
||||
|
||||
/**
|
||||
* The total days counter
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $totalDays = 0;
|
||||
|
||||
/**
|
||||
* The actual Total Days counter
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $actualTotalDays = 0;
|
||||
|
||||
/**
|
||||
* The project week time counter
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $projectWeekTime = 0;
|
||||
|
||||
/**
|
||||
* The project month time counter
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $projectMonthTime = 0;
|
||||
|
||||
/**
|
||||
* The Joomla Version
|
||||
*
|
||||
@ -205,7 +359,7 @@ class Structure extends Get
|
||||
*/
|
||||
private function setLine($nr)
|
||||
{
|
||||
if ($this->loadLineNr)
|
||||
if ($this->debugLinenr)
|
||||
{
|
||||
return ' [Structure '.$nr.']';
|
||||
}
|
||||
@ -567,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';
|
||||
@ -587,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)
|
||||
@ -605,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)
|
||||
@ -621,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)
|
||||
@ -939,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);
|
||||
}
|
||||
}
|
||||
|
@ -229,6 +229,13 @@ class Fields extends Structure
|
||||
*/
|
||||
public $jsonStringBuilder = array();
|
||||
|
||||
/**
|
||||
* Json String Builder for return values to array
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public $jsonItemBuilderArray = array();
|
||||
|
||||
/**
|
||||
* Json Item Builder
|
||||
*
|
||||
@ -311,7 +318,14 @@ class Fields extends Structure
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public $fieldsNames = array();
|
||||
public $fieldsNames = array();
|
||||
|
||||
/**
|
||||
* Set unique Names
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public $uniqueNames = array();
|
||||
|
||||
/**
|
||||
* Default Fields
|
||||
@ -344,7 +358,7 @@ class Fields extends Structure
|
||||
*/
|
||||
private function setLine($nr)
|
||||
{
|
||||
if ($this->loadLineNr)
|
||||
if ($this->debugLinenr)
|
||||
{
|
||||
return ' [Fields '.$nr.']';
|
||||
}
|
||||
@ -368,6 +382,19 @@ class Fields extends Structure
|
||||
// setup the list view and single view name
|
||||
$listViewName = ComponentbuilderHelper::safeString($view['settings']->name_list);
|
||||
$viewName = ComponentbuilderHelper::safeString($view['settings']->name_single);
|
||||
// set some place holder for this view
|
||||
$this->placeholders['###view###'] = $viewName;
|
||||
$this->placeholders['###VIEW###'] = strtoupper($viewName);
|
||||
$this->placeholders['###View###'] = ucfirst($viewName);
|
||||
$this->placeholders['[[[view]]]'] = $this->placeholders['###view###'];
|
||||
$this->placeholders['[[[VIEW]]]'] = $this->placeholders['###VIEW###'];
|
||||
$this->placeholders['[[[View]]]'] = $this->placeholders['###View###'];
|
||||
$this->placeholders['###views###'] = $listViewName;
|
||||
$this->placeholders['###VIEWS###'] = strtoupper($listViewName);
|
||||
$this->placeholders['###Views###'] = ucfirst($listViewName);
|
||||
$this->placeholders['[[[views]]]'] = $this->placeholders['###views###'];
|
||||
$this->placeholders['[[[VIEWS]]]'] = $this->placeholders['###VIEWS###'];
|
||||
$this->placeholders['[[[Views]]]'] = $this->placeholders['###Views###'];
|
||||
// add metadata to the view
|
||||
if ($view['metadata'])
|
||||
{
|
||||
@ -385,12 +412,12 @@ class Fields extends Structure
|
||||
$readOnly = "\t\t\t" . 'readonly="true"' . PHP_EOL."\t\t\t" . 'disabled="true"';
|
||||
}
|
||||
// main lang prefix
|
||||
$langView = $this->langPrefix . '_' . ComponentbuilderHelper::safeString($view['settings']->name_single, 'U');
|
||||
$langViews = $this->langPrefix . '_' . ComponentbuilderHelper::safeString($view['settings']->name_list, 'U');
|
||||
$langView = $this->langPrefix . '_' . $this->placeholders['###VIEW###'];
|
||||
$langViews = $this->langPrefix . '_' . $this->placeholders['###VIEWS###'];
|
||||
// set default lang
|
||||
$this->langContent[$this->lang][$langView] = $view['settings']->name_single;
|
||||
$this->langContent[$this->lang][$langViews] = $view['settings']->name_list;
|
||||
// set the singel name
|
||||
// set the single name
|
||||
$viewSingleName = ComponentbuilderHelper::safeString($view['settings']->name_single, 'W');
|
||||
// set global item strings
|
||||
$this->langContent[$this->lang][$langViews . '_N_ITEMS_ARCHIVED'] = "%s " . $view['settings']->name_list . " archived.";
|
||||
@ -427,20 +454,21 @@ class Fields extends Structure
|
||||
$this->langContent[$this->lang][$langView . '_VERSION_DESC'] = "A count of the number of times this " . $view['settings']->name_single . " has been revised.";
|
||||
$this->langContent[$this->lang][$langView . '_SAVE_WARNING'] = "Alias already existed so a number was added at the end. You can re-edit the " . $view['settings']->name_single . " to customise the alias.";
|
||||
|
||||
// check if the same field is added multiple times
|
||||
foreach ($view['settings']->fields as $field)
|
||||
{
|
||||
$name = ComponentbuilderHelper::safeString($field['settings']->name);
|
||||
$this->setUniqueNameKeeper($field, $view['settings']->type, $name, $viewName);
|
||||
}
|
||||
// start adding dynamc fields
|
||||
$dynamcfields = '';
|
||||
// place holders
|
||||
$placeholders = array(
|
||||
'###component###' => $component,
|
||||
'###view###' => $viewName,
|
||||
'###views###' => $listViewName);
|
||||
$spacerCounter = 'a';
|
||||
// set the custom table key
|
||||
$dbkey = 'g';
|
||||
// TODO we should add the global and local view switch if field for front end
|
||||
foreach ($view['settings']->fields as $field)
|
||||
{
|
||||
$dynamcfields .= $this->setDynamicField($field, $view, $view['settings']->type, $langView, $viewName, $listViewName, $spacerCounter, $placeholders, $dbkey, true);
|
||||
$dynamcfields .= $this->setDynamicField($field, $view, $view['settings']->type, $langView, $viewName, $listViewName, $spacerCounter, $this->placeholders, $dbkey, true);
|
||||
}
|
||||
|
||||
// set the defautl fields
|
||||
@ -633,6 +661,8 @@ class Fields extends Structure
|
||||
$fieldSet[] = "\t\t</fieldset>";
|
||||
$fieldSet[] = "\t</fields>";
|
||||
}
|
||||
// just to be safe, lets clear the view placeholders
|
||||
$this->clearFromPlaceHolders('view');
|
||||
// retunr the set
|
||||
return implode(PHP_EOL, $fieldSet);
|
||||
}
|
||||
@ -738,8 +768,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)
|
||||
{
|
||||
@ -934,12 +964,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))
|
||||
@ -1003,6 +1033,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')
|
||||
{
|
||||
@ -1135,18 +1252,18 @@ class Fields extends Structure
|
||||
/**
|
||||
* set field attributes
|
||||
*
|
||||
* @param array $field The field data
|
||||
* @param int $viewType The view type
|
||||
* @param string $name The field name
|
||||
* @param string $typeName The field type
|
||||
* @param boolean $multiple The switch to set multiple selection option
|
||||
* @param string $langLabel The language string for field label
|
||||
* @param string $langView The language string of the view
|
||||
* @param array $field The field data
|
||||
* @param int $viewType The view type
|
||||
* @param string $name The field name
|
||||
* @param string $typeName The field type
|
||||
* @param boolean $multiple The switch to set multiple selection option
|
||||
* @param string $langLabel The language string for field label
|
||||
* @param string $langView The language string of the view
|
||||
* @param string $spacerCounter The space counter value
|
||||
* @param string $listViewName The list view name
|
||||
* @param string $viewName The singel view name
|
||||
* @param array $placeholders The place holder and replace values
|
||||
* @param boolean $repeatable The repeatable field switch
|
||||
* @param string $listViewName The list view name
|
||||
* @param string $viewName The singel view name
|
||||
* @param array $placeholders The place holder and replace values
|
||||
* @param boolean $repeatable The repeatable field switch
|
||||
*
|
||||
* @return array The field attributes
|
||||
*
|
||||
@ -1219,7 +1336,7 @@ class Fields extends Structure
|
||||
{
|
||||
// quick check if this is a category linked to view page
|
||||
$requeSt_id = ComponentbuilderHelper::getBetween($field['settings']->xml, 'name="', '"');
|
||||
if (strpos($requeSt_id, '_request_id') !== false)
|
||||
if (strpos($requeSt_id, '_request_id') !== false || strpos($requeSt_id, '_request_catid') !== false)
|
||||
{
|
||||
// keep it then, don't change
|
||||
$xmlValue = $requeSt_id;
|
||||
@ -1264,12 +1381,16 @@ class Fields extends Structure
|
||||
// use field core name only if not found in xml
|
||||
if (!ComponentbuilderHelper::checkString($xmlValue))
|
||||
{
|
||||
// make sure the XML name is uniqe, so we can add one field multiple times
|
||||
$name = $this->uniqueName($name, $viewName);
|
||||
$xmlValue = $name;
|
||||
}
|
||||
// set the name if found
|
||||
else
|
||||
{
|
||||
$name = $xmlValue;
|
||||
// make sure the XML name is uniqe, so we can add one field multiple times
|
||||
$xmlValue = $this->uniqueName($xmlValue, $viewName);
|
||||
$name = $this->setPlaceholders($xmlValue, $placeholders);
|
||||
}
|
||||
}
|
||||
elseif ($property['name'] === 'extension' || $property['name'] === 'directory')
|
||||
@ -1381,6 +1502,14 @@ class Fields extends Structure
|
||||
// check if translatable
|
||||
if (ComponentbuilderHelper::checkString($xmlValue) && $property['translatable'] == 1)
|
||||
{
|
||||
// update lable if field use multiple times
|
||||
if ($property['name'] === 'label')
|
||||
{
|
||||
if (isset($fieldAttributes['name']) && isset($this->uniqueNames[$viewName]['names'][$fieldAttributes['name']]))
|
||||
{
|
||||
$xmlValue .= ' (' . ComponentbuilderHelper::safeString($this->uniqueNames[$viewName]['names'][$fieldAttributes['name']]) . ')';
|
||||
}
|
||||
}
|
||||
// replace placeholders
|
||||
$xmlValue = $this->setPlaceholders($xmlValue, $placeholders);
|
||||
// insure custom lables dont get messed up
|
||||
@ -1432,18 +1561,17 @@ class Fields extends Structure
|
||||
$xmlValue = $property['example'];
|
||||
}
|
||||
}
|
||||
|
||||
$fieldAttributes[$property['name']] = $xmlValue;
|
||||
|
||||
// load to langBuilder down the line
|
||||
if ($property['name'] === 'label')
|
||||
{
|
||||
$langLabel = $xmlValue;
|
||||
if ($setCustom)
|
||||
{
|
||||
$fieldAttributes['custom']['label'] = $customLabel;
|
||||
}
|
||||
$langLabel = $xmlValue;
|
||||
}
|
||||
// now set the value
|
||||
$fieldAttributes[$property['name']] = $xmlValue;
|
||||
}
|
||||
}
|
||||
// do some nice twigs beyond the default
|
||||
@ -1460,6 +1588,123 @@ class Fields extends Structure
|
||||
return $fieldAttributes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Keep track of the field names, to see if it used multiple times
|
||||
*
|
||||
* @param array $field The field data
|
||||
* @param string $typeName The field type
|
||||
* @param string $name The field name
|
||||
* @param string $viewName The singel view name
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
*/
|
||||
protected function setUniqueNameKeeper(&$field, &$typeName, &$name, $viewName)
|
||||
{
|
||||
// setup a default field
|
||||
if (ComponentbuilderHelper::checkArray($field['settings']->properties))
|
||||
{
|
||||
foreach ($field['settings']->properties as $property)
|
||||
{
|
||||
// reset
|
||||
$xmlValue = '';
|
||||
if ($property['name'] === 'name')
|
||||
{
|
||||
// if category then name must be catid (only one per view)
|
||||
if ($typeName === 'category')
|
||||
{
|
||||
// only one allowed
|
||||
return;
|
||||
}
|
||||
// if tag is set then enable all tag options for this view (only one per view)
|
||||
elseif ($typeName === 'tag')
|
||||
{
|
||||
// only one allowed
|
||||
return;
|
||||
}
|
||||
// if the field is set as alias it must be called alias
|
||||
elseif (isset($field['alias']) && $field['alias'])
|
||||
{
|
||||
// only one allowed
|
||||
return;
|
||||
}
|
||||
elseif ($typeName === 'spacer')
|
||||
{
|
||||
// not needed here
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
$xmlValue = ComponentbuilderHelper::safeString(ComponentbuilderHelper::getBetween($field['settings']->xml, 'name="', '"'));
|
||||
}
|
||||
|
||||
// use field core name only if not found in xml
|
||||
if (!ComponentbuilderHelper::checkString($xmlValue))
|
||||
{
|
||||
$xmlValue = $name;
|
||||
}
|
||||
// make sure the XML name is uniqe, so we can add one field multiple times
|
||||
return $this->setUniqueNameCounter($xmlValue, $viewName);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Count how many times the same field is used per view
|
||||
*
|
||||
* @param string $name The name of the field
|
||||
* @param string $view The name of the view
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
*/
|
||||
protected function setUniqueNameCounter($name, $view)
|
||||
{
|
||||
if (!isset($this->uniqueNames[$view]))
|
||||
{
|
||||
$this->uniqueNames[$view] = array();
|
||||
$this->uniqueNames[$view]['counter'] = array();
|
||||
$this->uniqueNames[$view]['names'] = array();
|
||||
}
|
||||
if (!isset($this->uniqueNames[$view]['counter'][$name]))
|
||||
{
|
||||
$this->uniqueNames[$view]['counter'][$name] = 1;
|
||||
return;
|
||||
}
|
||||
// count how many times the field is used
|
||||
$this->uniqueNames[$view]['counter'][$name]++;
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Naming each field with an unique name
|
||||
*
|
||||
* @param string $name The name of the field
|
||||
* @param string $view The name of the view
|
||||
*
|
||||
* @return string the name
|
||||
*
|
||||
*/
|
||||
protected function uniqueName($name, $view)
|
||||
{
|
||||
// only increment if the field name is used multiple times
|
||||
if (isset($this->uniqueNames[$view]['counter'][$name]) && $this->uniqueNames[$view]['counter'][$name] > 1)
|
||||
{
|
||||
$counter = $this->uniqueNames[$view]['counter'][$name];
|
||||
$uniqueName = ComponentbuilderHelper::safeString($name . '_' . $counter);
|
||||
while (isset($this->uniqueNames[$view]['names'][$uniqueName]))
|
||||
{
|
||||
$counter--;
|
||||
$uniqueName = ComponentbuilderHelper::safeString($name . '_' . $counter);
|
||||
}
|
||||
// set the new name
|
||||
$this->uniqueNames[$view]['names'][$uniqueName] = $counter;
|
||||
return $uniqueName;
|
||||
}
|
||||
return $name;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* set Builders
|
||||
@ -1514,6 +1759,8 @@ class Fields extends Structure
|
||||
$this->queryBuilder[$viewName][$name]['lenght_other'] = $field['settings']->datalenght_other;
|
||||
$this->queryBuilder[$viewName][$name]['default'] = $field['settings']->datadefault;
|
||||
$this->queryBuilder[$viewName][$name]['other'] = $field['settings']->datadefault_other;
|
||||
// to identify the field
|
||||
$this->queryBuilder[$viewName][$name]['ID'] = $field['settings']->id;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1576,7 +1823,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(
|
||||
@ -1612,7 +1859,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]))
|
||||
{
|
||||
@ -1637,9 +1884,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]))
|
||||
{
|
||||
@ -1683,7 +1930,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)
|
||||
{
|
||||
@ -1725,7 +1972,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))
|
||||
{
|
||||
@ -1736,6 +1983,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))
|
||||
@ -1746,12 +1999,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);
|
||||
}
|
||||
@ -1761,7 +2014,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);
|
||||
}
|
||||
@ -1918,7 +2171,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'
|
||||
),
|
||||
@ -1939,7 +2192,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.']';
|
||||
}
|
||||
@ -80,13 +80,13 @@ class Infusion extends Interpretation
|
||||
if (isset($this->componentData->admin_views) && ComponentbuilderHelper::checkArray($this->componentData->admin_views))
|
||||
{
|
||||
// ###COMPONENT###
|
||||
$this->fileContentStatic['###COMPONENT###'] = ComponentbuilderHelper::safeString($this->componentData->name_code, 'U');
|
||||
$this->fileContentStatic['###COMPONENT###'] = $this->placeholders['###COMPONENT###'];
|
||||
|
||||
// ###Component###
|
||||
$this->fileContentStatic['###Component###'] = ComponentbuilderHelper::safeString($this->componentData->name_code, 'F');
|
||||
$this->fileContentStatic['###Component###'] = $this->placeholders['###Component###'];
|
||||
|
||||
// ###component###
|
||||
$this->fileContentStatic['###component###'] = ComponentbuilderHelper::safeString($this->componentData->name_code);
|
||||
$this->fileContentStatic['###component###'] = $this->placeholders['###component###'];
|
||||
|
||||
// ###COMPANYNAME###
|
||||
$this->fileContentStatic['###COMPANYNAME###'] = trim(JFilterOutput::cleanText($this->componentData->companyname));
|
||||
@ -132,20 +132,13 @@ class Infusion extends Interpretation
|
||||
|
||||
// ###ACCESS_SECTIONS###
|
||||
$this->fileContentStatic['###ACCESS_SECTIONS###'] = $this->setAccessSections();
|
||||
|
||||
// set component place holders
|
||||
$this->placeholders = array(
|
||||
'###Component###' => $this->fileContentStatic['###Component###'],
|
||||
'###component###' => $this->fileContentStatic['###component###'],
|
||||
'###COMPONENT###' => $this->fileContentStatic['###COMPONENT###'],
|
||||
'[[[Component]]]' => $this->fileContentStatic['###Component###'],
|
||||
'[[[component]]]' => $this->fileContentStatic['###component###'],
|
||||
'[[[COMPONENT]]]' => $this->fileContentStatic['###COMPONENT###']
|
||||
);
|
||||
|
||||
// ###CONFIG_FIELDSETS###
|
||||
$keepLang = $this->lang;
|
||||
$this->lang = 'admin';
|
||||
|
||||
// start loading the category tree scripts
|
||||
$this->fileContentStatic['###CATEGORY_CLASS_TREES###'] = '';
|
||||
// run the field sets for first time
|
||||
$this->setConfigFieldsets(1);
|
||||
$this->lang = $keepLang;
|
||||
@ -199,8 +192,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###'] = '';
|
||||
@ -216,6 +207,9 @@ class Infusion extends Interpretation
|
||||
// start dynamic build
|
||||
foreach ($this->componentData->admin_views as $view)
|
||||
{
|
||||
// just to be safe, lets clear the view placeholders
|
||||
$this->clearFromPlaceHolders('view');
|
||||
// set the target
|
||||
$this->target = 'admin';
|
||||
$this->lang = 'admin';
|
||||
// set main keys
|
||||
@ -253,11 +247,11 @@ class Infusion extends Interpretation
|
||||
|
||||
// set some place holder for the views
|
||||
$this->placeholders['###view###'] = $viewName_single;
|
||||
$this->placeholders['###VIEW###'] = $viewName_u;
|
||||
$this->placeholders['###View###'] = $viewName_f;
|
||||
$this->placeholders['###VIEW###'] = $viewName_u;
|
||||
$this->placeholders['[[[view]]]'] = $viewName_single;
|
||||
$this->placeholders['[[[VIEW]]]'] = $viewName_u;
|
||||
$this->placeholders['[[[View]]]'] = $viewName_f;
|
||||
$this->placeholders['[[[VIEW]]]'] = $viewName_u;
|
||||
|
||||
// set license per view if needed
|
||||
$this->setLockLicensePer($viewName_single, $this->target);
|
||||
@ -389,11 +383,11 @@ class Infusion extends Interpretation
|
||||
|
||||
// set some place holder for the views
|
||||
$this->placeholders['###views###'] = $viewName_list;
|
||||
$this->placeholders['###VIEWS###'] = $viewsName_u;
|
||||
$this->placeholders['###Views###'] = $viewsName_f;
|
||||
$this->placeholders['###VIEWS###'] = $viewsName_u;
|
||||
$this->placeholders['[[[views]]]'] = $viewName_list;
|
||||
$this->placeholders['[[[VIEWS]]]'] = $viewsName_u;
|
||||
$this->placeholders['[[[Views]]]'] = $viewsName_f;
|
||||
$this->placeholders['[[[VIEWS]]]'] = $viewsName_u;
|
||||
|
||||
// set the export/import option
|
||||
if ($view['port'])
|
||||
@ -426,6 +420,8 @@ class Infusion extends Interpretation
|
||||
// ###CHECKINCALL### <<<DYNAMIC>>>
|
||||
$this->fileContentDynamic[$viewName_list]['###CHECKINCALL###'] = '';
|
||||
}
|
||||
// ###ADMIN_CUSTOM_BUTTONS_LIST###
|
||||
$this->fileContentDynamic[$viewName_list]['###ADMIN_CUSTOM_BUTTONS_LIST###'] = $this->setCustomButtons($view, 3, "\t");
|
||||
|
||||
// ###GET_ITEMS_METHOD_STRING_FIX### <<<DYNAMIC>>>
|
||||
$this->fileContentDynamic[$viewName_list]['###GET_ITEMS_METHOD_STRING_FIX###'] = $this->setGetItemsMethodStringFix($viewName_single,$this->fileContentStatic['###Component###']);
|
||||
@ -762,6 +758,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();
|
||||
@ -1069,33 +1068,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.5
|
||||
@build 16th February, 2017
|
||||
@version 2.4.7
|
||||
@build 18th June, 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 checkExtention(\$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');
|
||||
@ -798,13 +1659,18 @@ abstract class ComponentbuilderHelper
|
||||
|
||||
if (self::checkArray($where))
|
||||
{
|
||||
// prep main <-- why? well if $main='' is empty then $table can be categories or users
|
||||
if (self::checkString($main))
|
||||
{
|
||||
$main = '_'.ltrim($main, '_');
|
||||
}
|
||||
// Get a db connection.
|
||||
$db = JFactory::getDbo();
|
||||
// Create a new query object.
|
||||
$query = $db->getQuery(true);
|
||||
|
||||
$query->select($db->quoteName(array($what)));
|
||||
$query->from($db->quoteName('#__'.$main.'_'.$table));
|
||||
$query->from($db->quoteName('#_'.$main.'_'.$table));
|
||||
$query->where($db->quoteName($whereString) . ' '.$operator.' (' . implode(',',$where) . ')');
|
||||
$db->setQuery($query);
|
||||
$db->execute();
|
||||
@ -1333,13 +2199,31 @@ abstract class ComponentbuilderHelper
|
||||
return $string;
|
||||
}
|
||||
|
||||
public static function safeString($string, $type = 'L', $spacer = '_')
|
||||
public static function safeString($string, $type = 'L', $spacer = '_', $replaceNumbers = true)
|
||||
{
|
||||
// remove all numbers and replace with english text version (works well only up to millions)
|
||||
$string = self::replaceNumbers($string);
|
||||
if ($replaceNumbers === true)
|
||||
{
|
||||
// remove all numbers and replace with english text version (works well only up to millions)
|
||||
$string = self::replaceNumbers($string);
|
||||
}
|
||||
// 0nly continue if we have a string
|
||||
if (self::checkString($string))
|
||||
{
|
||||
// create file name without the extention that is safe
|
||||
if ($type === 'filename')
|
||||
{
|
||||
// make sure VDM is not in the string
|
||||
$string = str_replace('VDM', 'vDm', $string);
|
||||
// Remove anything which isn't a word, whitespace, number
|
||||
// or any of the following caracters -_()
|
||||
// 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 = preg_replace("([^\w\s\d\-_\(\)])", '', $string);
|
||||
// http://stackoverflow.com/a/2021729/1429677
|
||||
return preg_replace('/\s+/', ' ', $string);
|
||||
}
|
||||
// remove all other characters
|
||||
$string = trim($string);
|
||||
$string = preg_replace('/'.$spacer.'+/', ' ', $string);
|
||||
|
@ -69,12 +69,12 @@ class Mapping
|
||||
* The datatypes and it linked field types (basic)
|
||||
* (TODO) We may need to set this dynamicly
|
||||
*/
|
||||
protected $dataTypes = array( 'CHAR' => 'Text', 'VARCHAR' => 'Text',
|
||||
'TEXT' => 'Textarea', 'MEDIUMTEXT' => 'Textarea',
|
||||
'LONGTEXT' => 'Textarea', 'DATE' => 'Text', 'TIME' => 'Text',
|
||||
'DATETIME' => 'Calendar', 'INT' => 'Text', 'TINYINT' => 'Text',
|
||||
'BIGINT' => 'Text', 'FLOAT' => 'Text', 'DECIMAL' => 'Text',
|
||||
'DOUBLE' => 'Text');
|
||||
protected $dataTypes = array( 'VARCHAR' => 'Text', 'CHAR' => 'Text',
|
||||
'MEDIUMTEXT' => 'Textarea', 'LONGTEXT' => 'Textarea',
|
||||
'TEXT' => 'Textarea', 'DATETIME' => 'Calendar',
|
||||
'DATE' => 'Text', 'TIME' => 'Text', 'TINYINT' => 'Text',
|
||||
'BIGINT' => 'Text', 'INT' => 'Text', 'FLOAT' => 'Text',
|
||||
'DECIMAL' => 'Text', 'DOUBLE' => 'Text');
|
||||
|
||||
/**
|
||||
* The datasize identifiers
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.3.5
|
||||
@build 16th February, 2017
|
||||
@version 2.4.7
|
||||
@build 18th June, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage headercheck.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.3.5
|
||||
@build 16th February, 2017
|
||||
@version 2.4.7
|
||||
@build 18th June, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage batch_.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.3.5
|
||||
@build 16th February, 2017
|
||||
@version 2.4.7
|
||||
@build 18th June, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage indenter.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.3.5
|
||||
@build 16th February, 2017
|
||||
@version 2.4.7
|
||||
@build 18th June, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage js.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.3.5
|
||||
@build 16th February, 2017
|
||||
@version 2.4.7
|
||||
@build 18th June, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage minify.php
|
||||
|
@ -487,6 +487,10 @@ COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_CONTROLLER="Php Controller"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_CONTROLLER_DESCRIPTION="Add your PHP here! [Do not add the php tags]"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_CONTROLLER_HINT="// PHP methods for the controller that the button will target"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_CONTROLLER_LABEL="PHP (controller methods)"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_CONTROLLER_LIST="Php Controller List"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_CONTROLLER_LIST_DESCRIPTION="Add your PHP here! [Do not add the php tags]"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_CONTROLLER_LIST_HINT="// PHP methods for the controller that the button will target"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_CONTROLLER_LIST_LABEL="PHP <b>List view</b> (controller methods)"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_DOCUMENT="Php Document"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_DOCUMENT_DESCRIPTION="PHP script to the document method."
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_DOCUMENT_HINT="// add custom PHP script to the document method."
|
||||
@ -513,6 +517,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"
|
||||
@ -527,6 +535,10 @@ COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_MODEL="Php Model"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_MODEL_DESCRIPTION="Add your PHP here! [Do not add the php tags]"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_MODEL_HINT="// PHP methods for the model that the controller will use"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_MODEL_LABEL="PHP (model methods)"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_MODEL_LIST="Php Model List"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_MODEL_LIST_DESCRIPTION="Add your PHP here! [Do not add the php tags]"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_MODEL_LIST_HINT="// PHP methods for the model that the controller will use"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_MODEL_LIST_LABEL="PHP <b>List view</b> (model methods)"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_POSTSAVEHOOK="Php Postsavehook"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_POSTSAVEHOOK_DESCRIPTION="Add your PHP here! [Do not add the php tags]"
|
||||
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_POSTSAVEHOOK_HINT="// PHP Here that should run in the postSaveHook Method (object) $model is the data model object and (array) $validData is the validated data."
|
||||
@ -683,11 +695,41 @@ COM_COMPONENTBUILDER_ADMIN_VIEW_YOUTUBE="Youtube"
|
||||
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"
|
||||
COM_COMPONENTBUILDER_COMPILER_ACCESS="Compiler Access"
|
||||
COM_COMPONENTBUILDER_COMPILER_ACCESS_DESC=" Allows the users in this group to access compiler."
|
||||
@ -698,7 +740,9 @@ COM_COMPONENTBUILDER_COMPILER_DASHBOARD_LIST_DESC="Allows the users in this grou
|
||||
COM_COMPONENTBUILDER_COMPILER_DESC="The compiler"
|
||||
COM_COMPONENTBUILDER_COMPILER_SUBMENU="Compiler Submenu"
|
||||
COM_COMPONENTBUILDER_COMPILER_SUBMENU_DESC="Allows the users in this group to update the submenu of the Compiler"
|
||||
COM_COMPONENTBUILDER_COMPILE_COMPONENT="Compile Component"
|
||||
COM_COMPONENTBUILDER_COMPONENTS="Components"
|
||||
COM_COMPONENTBUILDER_COMPONENT_GLOBAL_SETTINGS="Component Global Settings"
|
||||
COM_COMPONENTBUILDER_CONFIG_ALMOST_FLAT_LOAD="Almost Flat"
|
||||
COM_COMPONENTBUILDER_CONFIG_AUTHOR="Author Info"
|
||||
COM_COMPONENTBUILDER_CONFIG_AUTHOR_EMAIL_DESC="The email address of the author of this component."
|
||||
@ -721,6 +765,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"
|
||||
@ -749,6 +794,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"
|
||||
@ -770,6 +836,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"
|
||||
@ -780,8 +848,10 @@ 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"
|
||||
COM_COMPONENTBUILDER_CREATE_NEW_S="Create New %s"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW="Custom Admin View"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS="Custom Admin Views"
|
||||
@ -1040,7 +1110,7 @@ COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NEW_TAB="New Tab"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NEW_TAB_TWO="New Tab 2"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NEXT="Next"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NO="No"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOTE_ADD_LANGUAGE_STRING_DESCRIPTION="<code><?php echo JText::_('Text'); ?></code>"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOTE_ADD_LANGUAGE_STRING_DESCRIPTION="<code><?php echo JText::_('Text'); ?></code>"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOTE_ADD_LANGUAGE_STRING_LABEL="Add Language String"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOTE_SNIPPET_USAGE_LABEL="Snippet Usage"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOTE_UIKIT_SNIPPET_LABEL="Snippet Details"
|
||||
@ -1261,25 +1331,109 @@ 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'><h1>Understand how the placeholders work</h1><h2>Comment Type PHP/JS</h2>
|
||||
<p>New Insert Code = <code>/***[INSERT<>$$$$]***/</code> <YOUR CODE HERE> <code>/***[/INSERT<>$$$$]***/</code>
|
||||
<br />New Replace Codec= <code>/***[REPLACE<>$$$$]***/</code> <YOUR CODE HERE> <code>/***[/REPLACE<>$$$$]***/</code></p>
|
||||
<h3>When JCB adds it back</h3>
|
||||
<p>JCB Add Inserted Code = <code>/***[INSERTED$$$$]***//*<span class='placeholder-key-id'>x</span>*/</code> <YOUR CODE HERE> <code>/***[/INSERTED$$$$]***/</code>
|
||||
<br />JCB Add Replaced Code = <code>/***[REPLACED$$$$]***//*<span class='placeholder-key-id'>x</span>*/</code> <YOUR CODE HERE> <code>/***[/REPLACED$$$$]***/</code></p>
|
||||
<h3>To changing existing custom code</h3>
|
||||
<p>Update Inserted Code = <code>/***[INSERTED<>$$$$]***//*<span class='placeholder-key-id'>x</span>*/</code> <YOUR CODE HERE> <code>/***[/INSERTED<>$$$$]***/</code>
|
||||
<br />Update Replaced Code = <code>/***[REPLACED<>$$$$]***//*<span class='placeholder-key-id'>x</span>*/</code> <YOUR CODE HERE> <code>/***[/REPLACED<>$$$$]***/</code></p>
|
||||
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>
|
||||
<h3>How You Can Add New Code in the IDE</h3>
|
||||
<table>
|
||||
<legend>Add New Insert Code</legend>
|
||||
<tr><td><code>/***[INSERT<>$$$$]***/</code></td><td> </td></tr>
|
||||
<tr><td> </td><td><YOUR CODE HERE></td></tr>
|
||||
<tr><td><code>/***[/INSERT<>$$$$]***/</code></td><td> </td></tr>
|
||||
</table>
|
||||
<table>
|
||||
<legend>Add New Replace Code</legend>
|
||||
<tr><td><code>/***[REPLACE<>$$$$]***/</code></td><td> </td></tr>
|
||||
<tr><td> </td><td><YOUR CODE HERE></td></tr>
|
||||
<tr><td><code>/***[/REPLACE<>$$$$]***/</code></td><td> </td></tr>
|
||||
</table>
|
||||
<h3>When JCB Adds it Back</h3>
|
||||
<table>
|
||||
<legend>JCB Add Inserted Code</legend>
|
||||
<tr><td><code>/***[INSERTED$$$$]***//*<span class='placeholder-key-id'>x</span>*/</code></td><td> </td></tr>
|
||||
<tr><td> </td><td><YOUR CODE HERE></td></tr>
|
||||
<tr><td><code>/***[/INSERTED$$$$]***/</code></td><td> </td></tr>
|
||||
</table>
|
||||
<table>
|
||||
<legend>JCB Add Replaced Code</legend>
|
||||
<tr><td><code>/***[REPLACED$$$$]***//*<span class='placeholder-key-id'>x</span>*/</code></td><td> </td></tr>
|
||||
<tr><td> </td><td><YOUR CODE HERE></td></tr>
|
||||
<tr><td><code>/***[/REPLACED$$$$]***/</code></td><td> </td></tr>
|
||||
</table>
|
||||
<h3>When You Want to Changing Existing Custom Code in the IDE</h3>
|
||||
<table>
|
||||
<legend>Update Inserted Code</legend>
|
||||
<tr><td><code>/***[INSERTED<>$$$$]***//*<span class='placeholder-key-id'>x</span>*/</code></td><td> </td></tr>
|
||||
<tr><td> </td><td><YOUR CODE HERE></td></tr>
|
||||
<tr><td><code>/***[/INSERTED<>$$$$]***/</code></td><td> </td></tr>
|
||||
</table>
|
||||
<table>
|
||||
<legend>Update Replaced Code</legend>
|
||||
<tr><td><code>/***[REPLACED<>$$$$]***//*<span class='placeholder-key-id'>x</span>*/</code></td><td> </td></tr>
|
||||
<tr><td> </td><td><YOUR CODE HERE></td></tr>
|
||||
<tr><td><code>/***[/REPLACED<>$$$$]***/</code></td><td> </td></tr>
|
||||
</table>
|
||||
</div>
|
||||
<div id='html-comment-info'>
|
||||
<h2>Comment Type HTML</h2>
|
||||
<p>New Insert Code = <code><!--[INSERT<>$$$$]--></code> <YOUR CODE HERE> <code><!--[/INSERT<>$$$$]--></code>
|
||||
<br />New Replace Code = <code><!--[REPLACE<>$$$$]--></code> <YOUR CODE HERE> <code><!--[/REPLACE<>$$$$]--></code></p>
|
||||
<h3>When JCB adds it back</h3>
|
||||
<p>JCB Add Inserted Code = <code><!--[INSERTED$$$$]--><!--<span class='placeholder-key-id'>x</span>--></code> <YOUR CODE HERE> <code><!--[/INSERTED$$$$]--></code>
|
||||
<br />JCB Add Replaced Code = <code><!--[REPLACED$$$$]--><!--<span class='placeholder-key-id'>x</span>--></code> <YOUR CODE HERE> <code><!--[/REPLACED$$$$]--></code></p>
|
||||
<h3>To changing existing custom code</h3>
|
||||
<p>Update Inserted Code = <code><!--[INSERTED<>$$$$]--><!--<span class='placeholder-key-id'>x</span>--></code> <YOUR CODE HERE> <code><!--[/INSERTED<>$$$$]--></code>
|
||||
<br />Update Replaced Code = <code><!--[REPLACED<>$$$$]--><!--<span class='placeholder-key-id'>x</span>--></code> <YOUR CODE HERE> <code><!--[/REPLACED<>$$$$]--></code></p>
|
||||
<p><span class='placeholder-key-id'>x</span> is the ID of the code in the system don't change it when you edit the code in your IDE outside of JCB!</p></div><div class='span6' id='usedin'></div>"
|
||||
<h3>How You Can Add New Code in the IDE</h3>
|
||||
<table>
|
||||
<legend>Add New Insert Code</legend>
|
||||
<tr><td><code><!--[INSERT<>$$$$]--></code></td><td> </td></tr>
|
||||
<tr><td> </td><td><YOUR CODE HERE></td></tr>
|
||||
<tr><td><code><!--[/INSERT<>$$$$]--></code></td><td> </td></tr>
|
||||
</table>
|
||||
<table>
|
||||
<legend>Add New Replace Code</legend>
|
||||
<tr><td><code><!--[REPLACE<>$$$$]--></code></td><td> </td></tr>
|
||||
<tr><td> </td><td><YOUR CODE HERE></td></tr>
|
||||
<tr><td><code><!--[/REPLACE<>$$$$]--></code></td><td> </td></tr>
|
||||
</table>
|
||||
<h3>When JCB Adds it Back</h3>
|
||||
<table>
|
||||
<legend>JCB Add Inserted Code</legend>
|
||||
<tr><td><code><!--[INSERTED$$$$]--><!--<span class='placeholder-key-id'>x</span>--></code></td><td> </td></tr>
|
||||
<tr><td> </td><td><YOUR CODE HERE></td></tr>
|
||||
<tr><td><code><!--[/INSERTED$$$$]--></code></td><td> </td></tr>
|
||||
</table>
|
||||
<table>
|
||||
<legend>JCB Add Replaced Code</legend>
|
||||
<tr><td><code><!--[REPLACED$$$$]--><!--<span class='placeholder-key-id'>x</span>--></code></td><td> </td></tr>
|
||||
<tr><td> </td><td><YOUR CODE HERE></td></tr>
|
||||
<tr><td><code><!--[/REPLACED$$$$]--></code></td><td> </td></tr>
|
||||
</table>
|
||||
<h3>When You Want to Changing Existing Custom Code in the IDE</h3>
|
||||
<table>
|
||||
<legend>Update Inserted Code</legend>
|
||||
<tr><td><code><!--[INSERTED<>$$$$]--><!--<span class='placeholder-key-id'>x</span>--></code></td><td> </td></tr>
|
||||
<tr><td> </td><td><YOUR CODE HERE></td></tr>
|
||||
<tr><td><code><!--[/INSERTED<>$$$$]--></code></td><td> </td></tr>
|
||||
</table>
|
||||
<table>
|
||||
<legend>Update Replaced Code</legend>
|
||||
<tr><td><code><!--[REPLACED<>$$$$]--><!--<span class='placeholder-key-id'>x</span>--></code></td><td> </td></tr>
|
||||
<tr><td> </td><td><YOUR CODE HERE></td></tr>
|
||||
<tr><td><code><!--[/REPLACED<>$$$$]--></code></td><td> </td></tr>
|
||||
</table>
|
||||
</div>
|
||||
<p><b><span class='placeholder-key-id'>x</span> is the ID of the code in the system don't change it when you edit the code in your IDE outside of JCB!</b></p>
|
||||
</div>
|
||||
<div class='span6' id='usedin' style='display: none;'>
|
||||
<h1>USED IN</h1>
|
||||
<div id='before-usedin'>Soon as enough data is available we will display all the areas where this code is used.</div>
|
||||
<div id='usedin-a' style='display: none;'><h2>Components</h2><div id='area-a'></div></div>
|
||||
<div id='usedin-b' style='display:none;'><h2>Admin Views</h2><div id='area-b'></div></div>
|
||||
<div id='usedin-c' style='display:none;'><h2>Custom Admin Views</h2><div id='area-c'></div></div>
|
||||
<div id='usedin-d' style='display:none;'><h2>Site Views</h2><div id='area-d'></div></div>
|
||||
<div id='usedin-e' style='display:none;'><h2>Fields</h2><div id='area-e'></div></div>
|
||||
<div id='usedin-f' style='display:none;'><h2>Dynamic Gets</h2><div id='area-f'></div></div>
|
||||
<div id='usedin-g' style='display:none;'><h2>Templates</h2><div id='area-g'></div></div>
|
||||
<div id='usedin-h' style='display:none;'><h2>Layouts</h2><div id='area-h'></div></div>
|
||||
<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>"
|
||||
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"
|
||||
@ -1320,15 +1474,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 />"
|
||||
@ -1339,6 +1494,7 @@ 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_DYNAMIC_GET="Dynamic Get"
|
||||
COM_COMPONENTBUILDER_DYNAMIC_GETS="Dynamic Gets"
|
||||
COM_COMPONENTBUILDER_DYNAMIC_GETS_ACCESS="Dynamic Gets Access"
|
||||
@ -1636,6 +1792,7 @@ COM_COMPONENTBUILDER_DYNAMIC_GET_YES="Yes"
|
||||
COM_COMPONENTBUILDER_DYNAMIC_GET_YY="yy"
|
||||
COM_COMPONENTBUILDER_DYNAMIC_GET_Z="z"
|
||||
COM_COMPONENTBUILDER_DYNAMIC_GET_ZZ="zz"
|
||||
COM_COMPONENTBUILDER_EDIT="Edit"
|
||||
COM_COMPONENTBUILDER_EDIT_CREATED_BY="Edit Created By"
|
||||
COM_COMPONENTBUILDER_EDIT_CREATED_BY_DESC=" Allows users in this group to edit created by."
|
||||
COM_COMPONENTBUILDER_EDIT_CREATED_DATE="Edit Created Date"
|
||||
@ -1643,9 +1800,21 @@ COM_COMPONENTBUILDER_EDIT_CREATED_DATE_DESC=" Allows users in this group to edit
|
||||
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"
|
||||
@ -1939,6 +2108,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"
|
||||
@ -2050,6 +2221,10 @@ COM_COMPONENTBUILDER_HELP_DOCUMENT_URL_LABEL="URL"
|
||||
COM_COMPONENTBUILDER_HELP_DOCUMENT_VERSION_DESC="A count of the number of times this Help Document has been revised."
|
||||
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."
|
||||
@ -2076,6 +2251,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."
|
||||
@ -2086,6 +2262,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."
|
||||
@ -2214,7 +2392,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"
|
||||
@ -2378,6 +2556,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"
|
||||
@ -2440,8 +2632,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"
|
||||
@ -2571,7 +2767,7 @@ Project duration: **###projectWeekTime### weeks** or **###projectMonthTime### mo
|
||||
<br />
|
||||
If you want to support this project, please consider donating:<br />
|
||||
* PayPal: pay@vdm.io<br />
|
||||
* Bitcoin: 3H35PYwikEosvcjxHXGPLS1GufZ4b4iFu3
|
||||
* Bitcoin: 1Ga1WZyxC4ArSKuiFpUxdqzjfkAR1kJhZh
|
||||
</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>"
|
||||
@ -2746,6 +2942,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"
|
||||
@ -2811,6 +3008,155 @@ 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_LAYOUT="Layout"
|
||||
COM_COMPONENTBUILDER_LAYOUTS="Layouts"
|
||||
COM_COMPONENTBUILDER_LAYOUTS_ACCESS="Layouts Access"
|
||||
@ -2895,7 +3241,7 @@ COM_COMPONENTBUILDER_LAYOUT_NAME_HINT="Name Here"
|
||||
COM_COMPONENTBUILDER_LAYOUT_NAME_LABEL="Name"
|
||||
COM_COMPONENTBUILDER_LAYOUT_NEW="A New Layout"
|
||||
COM_COMPONENTBUILDER_LAYOUT_NO="No"
|
||||
COM_COMPONENTBUILDER_LAYOUT_NOTE_ADD_LANGUAGE_STRING_DESCRIPTION="<code><?php echo JText::_('Text'); ?></code>"
|
||||
COM_COMPONENTBUILDER_LAYOUT_NOTE_ADD_LANGUAGE_STRING_DESCRIPTION="<code><?php echo JText::_('Text'); ?></code>"
|
||||
COM_COMPONENTBUILDER_LAYOUT_NOTE_ADD_LANGUAGE_STRING_LABEL="Add Language String"
|
||||
COM_COMPONENTBUILDER_LAYOUT_NOTE_SNIPPET_USAGE_LABEL="Snippet Usage"
|
||||
COM_COMPONENTBUILDER_LAYOUT_NOTE_UIKIT_SNIPPET_LABEL="Snippet Details"
|
||||
@ -2917,10 +3263,22 @@ COM_COMPONENTBUILDER_LAYOUT_YES="Yes"
|
||||
COM_COMPONENTBUILDER_LICENSE="License"
|
||||
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_NO_COMPONENTS_WERE_SELECTED_PLEASE_MAKE_A_SELECTION_AND_TRY_AGAIN="No components were selected, please make a selection and try again!"
|
||||
COM_COMPONENTBUILDER_OPENED_BY="opened by"
|
||||
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_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."
|
||||
@ -2929,6 +3287,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"
|
||||
@ -3211,8 +3571,9 @@ COM_COMPONENTBUILDER_SITE_VIEW_NEW_TAB_TWO="New Tab 2"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_NEXT="Next"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_NO="No"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_NONE="None"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_NOTE_ADD_LANGUAGE_STRING_DESCRIPTION="<code><?php echo JText::_('Text'); ?></code>"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_NOTE_ADD_LANGUAGE_STRING_DESCRIPTION="<code><?php echo JText::_('Text'); ?></code>"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_NOTE_ADD_LANGUAGE_STRING_LABEL="Add Language String"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_NOTE_CUSTOM_TOOLBAR_PLACEHOLDER_DESCRIPTION="Use this placeholder in the body <code>[[[SITE_TOOLBAR]]]</code> to add the custom position of the toolbar."
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_NOTE_SNIPPET_USAGE_LABEL="Snippet Usage"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_NOTE_UIKIT_SNIPPET_LABEL="Snippet Details"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_NOTIFICATION="Notification"
|
||||
@ -3362,6 +3723,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"
|
||||
@ -3472,10 +3834,14 @@ 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"
|
||||
COM_COMPONENTBUILDER_TEMPLATES_ACCESS="Templates Access"
|
||||
@ -3557,7 +3923,7 @@ COM_COMPONENTBUILDER_TEMPLATE_NAME_HINT="Name Here"
|
||||
COM_COMPONENTBUILDER_TEMPLATE_NAME_LABEL="Name"
|
||||
COM_COMPONENTBUILDER_TEMPLATE_NEW="A New Template"
|
||||
COM_COMPONENTBUILDER_TEMPLATE_NO="No"
|
||||
COM_COMPONENTBUILDER_TEMPLATE_NOTE_ADD_LANGUAGE_STRING_DESCRIPTION="<code><?php echo JText::_('Text'); ?></code>"
|
||||
COM_COMPONENTBUILDER_TEMPLATE_NOTE_ADD_LANGUAGE_STRING_DESCRIPTION="<code><?php echo JText::_('Text'); ?></code>"
|
||||
COM_COMPONENTBUILDER_TEMPLATE_NOTE_ADD_LANGUAGE_STRING_LABEL="Add Language String"
|
||||
COM_COMPONENTBUILDER_TEMPLATE_NOTE_SNIPPET_USAGE_LABEL="Snippet Usage"
|
||||
COM_COMPONENTBUILDER_TEMPLATE_NOTE_UIKIT_SNIPPET_LABEL="Snippet Details"
|
||||
@ -3579,13 +3945,30 @@ 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_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_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_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.5
|
||||
@build 16th February, 2017
|
||||
@version 2.4.7
|
||||
@build 18th June, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage css_fullwidth.php
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user