Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
9f5c7deec8
|
|||
7759738938
|
|||
461edf5c3f
|
|||
9f30f30b9e
|
34
README.md
34
README.md
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
# Joomla Component Builder ([JCB](http://joomlacomponentbuilder.com))
|
# Joomla Component Builder ([JCB](https://www.joomlacomponentbuilder.com))
|
||||||
|
|
||||||
This is a [Joomla 3.x](https://extensions.joomla.org/extension/component-builder/) component. [__See In Action__](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
|
This is a [Joomla 3.x](https://extensions.joomla.org/extension/component-builder/) component. [__See In Action__](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
|
||||||
|
|
||||||
@ -9,7 +9,7 @@ The Component Builder for [Joomla](https://extensions.joomla.org/extension/compo
|
|||||||
|
|
||||||
Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/component-builder/) developer, or have just started, Component Builder will save you lots of time and money. A real must have!
|
Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/component-builder/) developer, or have just started, Component Builder will save you lots of time and money. A real must have!
|
||||||
|
|
||||||
You can install it quite easily and with no limitations. On [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (3.1.10) with **ALL** its features and **ALL** concepts totally open-source and free!
|
You can install it quite easily and with no limitations. On [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (3.1.12) with **ALL** its features and **ALL** concepts totally open-source and free!
|
||||||
|
|
||||||
> Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
|
> Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
|
||||||
|
|
||||||
@ -23,8 +23,8 @@ Some of the Features
|
|||||||
+ Add you [own dashboard](https://www.youtube.com/watch?v=tU7TeYn1Djo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=60) in the back-end.
|
+ Add you [own dashboard](https://www.youtube.com/watch?v=tU7TeYn1Djo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=60) in the back-end.
|
||||||
+ [Dynamic File and Folder](https://www.youtube.com/watch?v=_c7wzW075lA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=56) Inclusion concept.
|
+ [Dynamic File and Folder](https://www.youtube.com/watch?v=_c7wzW075lA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=56) Inclusion concept.
|
||||||
+ [Easy Translation](https://www.youtube.com/watch?v=q5NwKGnOHoQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=51) via excel.
|
+ [Easy Translation](https://www.youtube.com/watch?v=q5NwKGnOHoQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=51) via excel.
|
||||||
+ Adding your [own rule validation](https://www.youtube.com/watch?v=Z6-ggKtX35o&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=46) to a field in [JCB](http://joomlacomponentbuilder.com)
|
+ Adding your [own rule validation](https://www.youtube.com/watch?v=Z6-ggKtX35o&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=46) to a field in [JCB](https://www.joomlacomponentbuilder.com)
|
||||||
+ [Automated backup system](https://www.youtube.com/watch?v=GUWZaODo_IM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=40) in [JCB](http://joomlacomponentbuilder.com).
|
+ [Automated backup system](https://www.youtube.com/watch?v=GUWZaODo_IM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=40) in [JCB](https://www.joomlacomponentbuilder.com).
|
||||||
+ Adding mySQL Dump to any View/Table.
|
+ Adding mySQL Dump to any View/Table.
|
||||||
+ Grab existing Table data and build a dynamic dump.
|
+ Grab existing Table data and build a dynamic dump.
|
||||||
+ Unlimited [Joomla](https://extensions.joomla.org/extension/component-builder/) Components.
|
+ Unlimited [Joomla](https://extensions.joomla.org/extension/component-builder/) Components.
|
||||||
@ -83,13 +83,13 @@ You are in Control
|
|||||||
+ You can dynamically add internal help structures to all component.
|
+ 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).
|
+ 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.
|
+ This is a complete factory kind of component that functions like a deployment hub.
|
||||||
+ Export any component completely mapped in [JCB](http://joomlacomponentbuilder.com) and import into another [JCB](http://joomlacomponentbuilder.com).
|
+ Export any component completely mapped in [JCB](https://www.joomlacomponentbuilder.com) and import into another [JCB](https://www.joomlacomponentbuilder.com).
|
||||||
+ This and much much more are all possible with this component builder!
|
+ This and much much more are all possible with this component builder!
|
||||||
|
|
||||||
Get More Demo Content
|
Get More Demo Content
|
||||||
====================
|
====================
|
||||||
|
|
||||||
> You can now get access to the WOW factor, [JCB](http://joomlacomponentbuilder.com) fully mapped can now be yours! Including many other [JCB](http://joomlacomponentbuilder.com) mapped components.
|
> You can now get access to the WOW factor, [JCB](https://www.joomlacomponentbuilder.com) fully mapped can now be yours! Including many other [JCB](https://www.joomlacomponentbuilder.com) mapped components.
|
||||||
|
|
||||||
### All you need to do is [explained here](https://vdm.bz/how-to-get-free-vdm-package-keys)!
|
### All you need to do is [explained here](https://vdm.bz/how-to-get-free-vdm-package-keys)!
|
||||||
|
|
||||||
@ -104,11 +104,11 @@ Where can you get support and help?
|
|||||||
+ [Hello World Tutorial](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
|
+ [Hello World Tutorial](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
|
||||||
+ [The JCB! Wiki](https://git.vdm.dev/joomla/Component-Builder/wiki)
|
+ [The JCB! Wiki](https://git.vdm.dev/joomla/Component-Builder/wiki)
|
||||||
+ [Forum](https://vdm.bz/jcb-forum)
|
+ [Forum](https://vdm.bz/jcb-forum)
|
||||||
+ [Report a Security Issue](http://joomlacomponentbuilder.com/report-security-issues)
|
+ [Report a Security Issue](https://www.joomlacomponentbuilder.com/report-security-issues)
|
||||||
+ [Community Complaint](http://joomlacomponentbuilder.com/community-complaint)
|
+ [Community Complaint](https://www.joomlacomponentbuilder.com/community-complaint)
|
||||||
+ [Open Issue On Gitea](https://git.vdm.dev/joomla/Component-Builder/issues) ^^
|
+ [Open Issue On Gitea](https://git.vdm.dev/joomla/Component-Builder/issues) ^^
|
||||||
|
|
||||||
Since [JCB](http://joomlacomponentbuilder.com) has [become a community](https://git.vdm.dev/joomla/Component-Builder/src/branch/master/.github/SUPPORT.md) project [VDM.io](https://www.vdm.io/) is **no longer solely responsible** for support.
|
Since [JCB](https://www.joomlacomponentbuilder.com) has [become a community](https://git.vdm.dev/joomla/Component-Builder/src/branch/master/.github/SUPPORT.md) project [VDM.io](https://www.vdm.io/) is **no longer solely responsible** for support.
|
||||||
|
|
||||||
We have started a [**JCB forum**](https://vdm.bz/jcb-forum) where you can post questions, about how things work, or if you need some kind of help in relation to your development of your components.
|
We have started a [**JCB forum**](https://vdm.bz/jcb-forum) where you can post questions, about how things work, or if you need some kind of help in relation to your development of your components.
|
||||||
|
|
||||||
@ -125,14 +125,14 @@ Our idea was to almost let this tool serve as a cheat sheet to how things can be
|
|||||||
MAKING IT BETTER!
|
MAKING IT BETTER!
|
||||||
====================
|
====================
|
||||||
|
|
||||||
Get involved on the forums, and the Gitea issues, and you can even help us develop/improve the pipeline of [JCB](http://joomlacomponentbuilder.com) for continues delivery. We really want to see [JCB](http://joomlacomponentbuilder.com) remain the tool of choice for all [Joomla Component Development](https://extensions.joomla.org/extension/component-builder/) needs and ideas.
|
Get involved on the forums, and the Gitea issues, and you can even help us develop/improve the pipeline of [JCB](https://www.joomlacomponentbuilder.com) for continues delivery. We really want to see [JCB](https://www.joomlacomponentbuilder.com) remain the tool of choice for all [Joomla Component Development](https://extensions.joomla.org/extension/component-builder/) needs and ideas.
|
||||||
|
|
||||||
TODO
|
TODO
|
||||||
======
|
======
|
||||||
|
|
||||||
- Add automatic unit testing. To nurture pipeline integration for all components build with [JCB](http://joomlacomponentbuilder.com).
|
- Add automatic unit testing. To nurture pipeline integration for all components build with [JCB](https://www.joomlacomponentbuilder.com).
|
||||||
- Team collaborative development across [JCB](http://joomlacomponentbuilder.com) installations offline and online.
|
- Team collaborative development across [JCB](https://www.joomlacomponentbuilder.com) installations offline and online.
|
||||||
- Documentation (maintained by the community) for [JCB](http://joomlacomponentbuilder.com). (help us select the best system for this)
|
- Documentation (maintained by the community) for [JCB](https://www.joomlacomponentbuilder.com). (help us select the best system for this)
|
||||||
|
|
||||||
# Build Details
|
# Build Details
|
||||||
|
|
||||||
@ -140,16 +140,16 @@ TODO
|
|||||||
+ *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io)
|
+ *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io)
|
||||||
+ *Name*: [Component Builder](https://git.vdm.dev/joomla/Component-Builder)
|
+ *Name*: [Component Builder](https://git.vdm.dev/joomla/Component-Builder)
|
||||||
+ *First Build*: 30th April, 2015
|
+ *First Build*: 30th April, 2015
|
||||||
+ *Last Build*: 2nd November, 2022
|
+ *Last Build*: 13th November, 2022
|
||||||
+ *Version*: 3.1.10
|
+ *Version*: 3.1.12
|
||||||
+ *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved.
|
+ *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved.
|
||||||
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
|
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
|
||||||
+ *Line count*: **333951**
|
+ *Line count*: **334311**
|
||||||
+ *Field count*: **2004**
|
+ *Field count*: **2004**
|
||||||
+ *File count*: **2183**
|
+ *File count*: **2183**
|
||||||
+ *Folder count*: **381**
|
+ *Folder count*: **381**
|
||||||
|
|
||||||
> This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](http://joomlacomponentbuilder.com).
|
> This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](https://www.joomlacomponentbuilder.com).
|
||||||
> Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
|
> Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
# Joomla Component Builder ([JCB](http://joomlacomponentbuilder.com))
|
# Joomla Component Builder ([JCB](https://www.joomlacomponentbuilder.com))
|
||||||
|
|
||||||
This is a [Joomla 3.x](https://extensions.joomla.org/extension/component-builder/) component. [__See In Action__](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
|
This is a [Joomla 3.x](https://extensions.joomla.org/extension/component-builder/) component. [__See In Action__](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
|
||||||
|
|
||||||
@ -9,7 +9,7 @@ The Component Builder for [Joomla](https://extensions.joomla.org/extension/compo
|
|||||||
|
|
||||||
Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/component-builder/) developer, or have just started, Component Builder will save you lots of time and money. A real must have!
|
Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/component-builder/) developer, or have just started, Component Builder will save you lots of time and money. A real must have!
|
||||||
|
|
||||||
You can install it quite easily and with no limitations. On [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (3.1.10) with **ALL** its features and **ALL** concepts totally open-source and free!
|
You can install it quite easily and with no limitations. On [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (3.1.12) with **ALL** its features and **ALL** concepts totally open-source and free!
|
||||||
|
|
||||||
> Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
|
> Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
|
||||||
|
|
||||||
@ -23,8 +23,8 @@ Some of the Features
|
|||||||
+ Add you [own dashboard](https://www.youtube.com/watch?v=tU7TeYn1Djo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=60) in the back-end.
|
+ Add you [own dashboard](https://www.youtube.com/watch?v=tU7TeYn1Djo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=60) in the back-end.
|
||||||
+ [Dynamic File and Folder](https://www.youtube.com/watch?v=_c7wzW075lA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=56) Inclusion concept.
|
+ [Dynamic File and Folder](https://www.youtube.com/watch?v=_c7wzW075lA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=56) Inclusion concept.
|
||||||
+ [Easy Translation](https://www.youtube.com/watch?v=q5NwKGnOHoQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=51) via excel.
|
+ [Easy Translation](https://www.youtube.com/watch?v=q5NwKGnOHoQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=51) via excel.
|
||||||
+ Adding your [own rule validation](https://www.youtube.com/watch?v=Z6-ggKtX35o&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=46) to a field in [JCB](http://joomlacomponentbuilder.com)
|
+ Adding your [own rule validation](https://www.youtube.com/watch?v=Z6-ggKtX35o&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=46) to a field in [JCB](https://www.joomlacomponentbuilder.com)
|
||||||
+ [Automated backup system](https://www.youtube.com/watch?v=GUWZaODo_IM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=40) in [JCB](http://joomlacomponentbuilder.com).
|
+ [Automated backup system](https://www.youtube.com/watch?v=GUWZaODo_IM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=40) in [JCB](https://www.joomlacomponentbuilder.com).
|
||||||
+ Adding mySQL Dump to any View/Table.
|
+ Adding mySQL Dump to any View/Table.
|
||||||
+ Grab existing Table data and build a dynamic dump.
|
+ Grab existing Table data and build a dynamic dump.
|
||||||
+ Unlimited [Joomla](https://extensions.joomla.org/extension/component-builder/) Components.
|
+ Unlimited [Joomla](https://extensions.joomla.org/extension/component-builder/) Components.
|
||||||
@ -83,13 +83,13 @@ You are in Control
|
|||||||
+ You can dynamically add internal help structures to all component.
|
+ 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).
|
+ 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.
|
+ This is a complete factory kind of component that functions like a deployment hub.
|
||||||
+ Export any component completely mapped in [JCB](http://joomlacomponentbuilder.com) and import into another [JCB](http://joomlacomponentbuilder.com).
|
+ Export any component completely mapped in [JCB](https://www.joomlacomponentbuilder.com) and import into another [JCB](https://www.joomlacomponentbuilder.com).
|
||||||
+ This and much much more are all possible with this component builder!
|
+ This and much much more are all possible with this component builder!
|
||||||
|
|
||||||
Get More Demo Content
|
Get More Demo Content
|
||||||
====================
|
====================
|
||||||
|
|
||||||
> You can now get access to the WOW factor, [JCB](http://joomlacomponentbuilder.com) fully mapped can now be yours! Including many other [JCB](http://joomlacomponentbuilder.com) mapped components.
|
> You can now get access to the WOW factor, [JCB](https://www.joomlacomponentbuilder.com) fully mapped can now be yours! Including many other [JCB](https://www.joomlacomponentbuilder.com) mapped components.
|
||||||
|
|
||||||
### All you need to do is [explained here](https://vdm.bz/how-to-get-free-vdm-package-keys)!
|
### All you need to do is [explained here](https://vdm.bz/how-to-get-free-vdm-package-keys)!
|
||||||
|
|
||||||
@ -104,11 +104,11 @@ Where can you get support and help?
|
|||||||
+ [Hello World Tutorial](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
|
+ [Hello World Tutorial](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
|
||||||
+ [The JCB! Wiki](https://git.vdm.dev/joomla/Component-Builder/wiki)
|
+ [The JCB! Wiki](https://git.vdm.dev/joomla/Component-Builder/wiki)
|
||||||
+ [Forum](https://vdm.bz/jcb-forum)
|
+ [Forum](https://vdm.bz/jcb-forum)
|
||||||
+ [Report a Security Issue](http://joomlacomponentbuilder.com/report-security-issues)
|
+ [Report a Security Issue](https://www.joomlacomponentbuilder.com/report-security-issues)
|
||||||
+ [Community Complaint](http://joomlacomponentbuilder.com/community-complaint)
|
+ [Community Complaint](https://www.joomlacomponentbuilder.com/community-complaint)
|
||||||
+ [Open Issue On Gitea](https://git.vdm.dev/joomla/Component-Builder/issues) ^^
|
+ [Open Issue On Gitea](https://git.vdm.dev/joomla/Component-Builder/issues) ^^
|
||||||
|
|
||||||
Since [JCB](http://joomlacomponentbuilder.com) has [become a community](https://git.vdm.dev/joomla/Component-Builder/src/branch/master/.github/SUPPORT.md) project [VDM.io](https://www.vdm.io/) is **no longer solely responsible** for support.
|
Since [JCB](https://www.joomlacomponentbuilder.com) has [become a community](https://git.vdm.dev/joomla/Component-Builder/src/branch/master/.github/SUPPORT.md) project [VDM.io](https://www.vdm.io/) is **no longer solely responsible** for support.
|
||||||
|
|
||||||
We have started a [**JCB forum**](https://vdm.bz/jcb-forum) where you can post questions, about how things work, or if you need some kind of help in relation to your development of your components.
|
We have started a [**JCB forum**](https://vdm.bz/jcb-forum) where you can post questions, about how things work, or if you need some kind of help in relation to your development of your components.
|
||||||
|
|
||||||
@ -125,14 +125,14 @@ Our idea was to almost let this tool serve as a cheat sheet to how things can be
|
|||||||
MAKING IT BETTER!
|
MAKING IT BETTER!
|
||||||
====================
|
====================
|
||||||
|
|
||||||
Get involved on the forums, and the Gitea issues, and you can even help us develop/improve the pipeline of [JCB](http://joomlacomponentbuilder.com) for continues delivery. We really want to see [JCB](http://joomlacomponentbuilder.com) remain the tool of choice for all [Joomla Component Development](https://extensions.joomla.org/extension/component-builder/) needs and ideas.
|
Get involved on the forums, and the Gitea issues, and you can even help us develop/improve the pipeline of [JCB](https://www.joomlacomponentbuilder.com) for continues delivery. We really want to see [JCB](https://www.joomlacomponentbuilder.com) remain the tool of choice for all [Joomla Component Development](https://extensions.joomla.org/extension/component-builder/) needs and ideas.
|
||||||
|
|
||||||
TODO
|
TODO
|
||||||
======
|
======
|
||||||
|
|
||||||
- Add automatic unit testing. To nurture pipeline integration for all components build with [JCB](http://joomlacomponentbuilder.com).
|
- Add automatic unit testing. To nurture pipeline integration for all components build with [JCB](https://www.joomlacomponentbuilder.com).
|
||||||
- Team collaborative development across [JCB](http://joomlacomponentbuilder.com) installations offline and online.
|
- Team collaborative development across [JCB](https://www.joomlacomponentbuilder.com) installations offline and online.
|
||||||
- Documentation (maintained by the community) for [JCB](http://joomlacomponentbuilder.com). (help us select the best system for this)
|
- Documentation (maintained by the community) for [JCB](https://www.joomlacomponentbuilder.com). (help us select the best system for this)
|
||||||
|
|
||||||
# Build Details
|
# Build Details
|
||||||
|
|
||||||
@ -140,16 +140,16 @@ TODO
|
|||||||
+ *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io)
|
+ *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io)
|
||||||
+ *Name*: [Component Builder](https://git.vdm.dev/joomla/Component-Builder)
|
+ *Name*: [Component Builder](https://git.vdm.dev/joomla/Component-Builder)
|
||||||
+ *First Build*: 30th April, 2015
|
+ *First Build*: 30th April, 2015
|
||||||
+ *Last Build*: 2nd November, 2022
|
+ *Last Build*: 13th November, 2022
|
||||||
+ *Version*: 3.1.10
|
+ *Version*: 3.1.12
|
||||||
+ *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved.
|
+ *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved.
|
||||||
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
|
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
|
||||||
+ *Line count*: **333951**
|
+ *Line count*: **334311**
|
||||||
+ *Field count*: **2004**
|
+ *Field count*: **2004**
|
||||||
+ *File count*: **2183**
|
+ *File count*: **2183**
|
||||||
+ *Folder count*: **381**
|
+ *Folder count*: **381**
|
||||||
|
|
||||||
> This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](http://joomlacomponentbuilder.com).
|
> This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](https://www.joomlacomponentbuilder.com).
|
||||||
> Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
|
> Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
|
||||||
|
|
||||||
|
|
||||||
|
@ -19,7 +19,6 @@
|
|||||||
<action name="admin_view.access" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_ACCESS" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_ACCESS_DESC" />
|
<action name="admin_view.access" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_ACCESS" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_ACCESS_DESC" />
|
||||||
<action name="admin_view.batch" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_BATCH_USE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_BATCH_USE_DESC" />
|
<action name="admin_view.batch" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_BATCH_USE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_BATCH_USE_DESC" />
|
||||||
<action name="admin_view.create" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_CREATE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_CREATE_DESC" />
|
<action name="admin_view.create" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_CREATE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_CREATE_DESC" />
|
||||||
<action name="admin_view.dashboard_add" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_DASHBOARD_ADD" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_DASHBOARD_ADD_DESC" />
|
|
||||||
<action name="admin_view.dashboard_list" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_DASHBOARD_LIST_DESC" />
|
<action name="admin_view.dashboard_list" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_DASHBOARD_LIST_DESC" />
|
||||||
<action name="admin_view.delete" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_DELETE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_DELETE_DESC" />
|
<action name="admin_view.delete" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_DELETE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_DELETE_DESC" />
|
||||||
<action name="admin_view.edit" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_DESC" />
|
<action name="admin_view.edit" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_DESC" />
|
||||||
@ -235,7 +234,6 @@
|
|||||||
<action name="custom_admin_view.get_snippets" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_GET_SNIPPETS_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_GET_SNIPPETS_BUTTON_ACCESS_DESC" />
|
<action name="custom_admin_view.get_snippets" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_GET_SNIPPETS_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_GET_SNIPPETS_BUTTON_ACCESS_DESC" />
|
||||||
<action name="custom_admin_view.access" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_ACCESS" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_ACCESS_DESC" />
|
<action name="custom_admin_view.access" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_ACCESS" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_ACCESS_DESC" />
|
||||||
<action name="custom_admin_view.batch" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_BATCH_USE" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_BATCH_USE_DESC" />
|
<action name="custom_admin_view.batch" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_BATCH_USE" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_BATCH_USE_DESC" />
|
||||||
<action name="custom_admin_view.dashboard_add" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_DASHBOARD_ADD" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_DASHBOARD_ADD_DESC" />
|
|
||||||
<action name="custom_admin_view.dashboard_list" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_DASHBOARD_LIST_DESC" />
|
<action name="custom_admin_view.dashboard_list" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_DASHBOARD_LIST_DESC" />
|
||||||
<action name="custom_admin_view.version" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_EDIT_VERSION" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_EDIT_VERSION_DESC" />
|
<action name="custom_admin_view.version" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_EDIT_VERSION" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_EDIT_VERSION_DESC" />
|
||||||
<action name="custom_admin_view.export" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_EXPORT" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_EXPORT_DESC" />
|
<action name="custom_admin_view.export" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_EXPORT" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_EXPORT_DESC" />
|
||||||
@ -500,6 +498,7 @@
|
|||||||
<action name="power.submenu" title="COM_COMPONENTBUILDER_POWERS_SUBMENU" description="COM_COMPONENTBUILDER_POWERS_SUBMENU_DESC" />
|
<action name="power.submenu" title="COM_COMPONENTBUILDER_POWERS_SUBMENU" description="COM_COMPONENTBUILDER_POWERS_SUBMENU_DESC" />
|
||||||
<action name="search.access" title="COM_COMPONENTBUILDER_SEARCH_ACCESS" description="COM_COMPONENTBUILDER_SEARCH_ACCESS_DESC" />
|
<action name="search.access" title="COM_COMPONENTBUILDER_SEARCH_ACCESS" description="COM_COMPONENTBUILDER_SEARCH_ACCESS_DESC" />
|
||||||
<action name="search.compiler" title="COM_COMPONENTBUILDER_SEARCH_COMPILER_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_SEARCH_COMPILER_BUTTON_ACCESS_DESC" />
|
<action name="search.compiler" title="COM_COMPONENTBUILDER_SEARCH_COMPILER_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_SEARCH_COMPILER_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="search.dashboard_list" title="COM_COMPONENTBUILDER_SEARCH_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_SEARCH_DASHBOARD_LIST_DESC" />
|
||||||
<action name="search.submenu" title="COM_COMPONENTBUILDER_SEARCH_SUBMENU" description="COM_COMPONENTBUILDER_SEARCH_SUBMENU_DESC" />
|
<action name="search.submenu" title="COM_COMPONENTBUILDER_SEARCH_SUBMENU" description="COM_COMPONENTBUILDER_SEARCH_SUBMENU_DESC" />
|
||||||
<action name="server.access" title="COM_COMPONENTBUILDER_SERVERS_ACCESS" description="COM_COMPONENTBUILDER_SERVERS_ACCESS_DESC" />
|
<action name="server.access" title="COM_COMPONENTBUILDER_SERVERS_ACCESS" description="COM_COMPONENTBUILDER_SERVERS_ACCESS_DESC" />
|
||||||
<action name="server.batch" title="COM_COMPONENTBUILDER_SERVERS_BATCH_USE" description="COM_COMPONENTBUILDER_SERVERS_BATCH_USE_DESC" />
|
<action name="server.batch" title="COM_COMPONENTBUILDER_SERVERS_BATCH_USE" description="COM_COMPONENTBUILDER_SERVERS_BATCH_USE_DESC" />
|
||||||
@ -518,7 +517,6 @@
|
|||||||
<action name="site_view.get_snippets" title="COM_COMPONENTBUILDER_SITE_VIEW_GET_SNIPPETS_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_SITE_VIEW_GET_SNIPPETS_BUTTON_ACCESS_DESC" />
|
<action name="site_view.get_snippets" title="COM_COMPONENTBUILDER_SITE_VIEW_GET_SNIPPETS_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_SITE_VIEW_GET_SNIPPETS_BUTTON_ACCESS_DESC" />
|
||||||
<action name="site_view.access" title="COM_COMPONENTBUILDER_SITE_VIEWS_ACCESS" description="COM_COMPONENTBUILDER_SITE_VIEWS_ACCESS_DESC" />
|
<action name="site_view.access" title="COM_COMPONENTBUILDER_SITE_VIEWS_ACCESS" description="COM_COMPONENTBUILDER_SITE_VIEWS_ACCESS_DESC" />
|
||||||
<action name="site_view.batch" title="COM_COMPONENTBUILDER_SITE_VIEWS_BATCH_USE" description="COM_COMPONENTBUILDER_SITE_VIEWS_BATCH_USE_DESC" />
|
<action name="site_view.batch" title="COM_COMPONENTBUILDER_SITE_VIEWS_BATCH_USE" description="COM_COMPONENTBUILDER_SITE_VIEWS_BATCH_USE_DESC" />
|
||||||
<action name="site_view.dashboard_add" title="COM_COMPONENTBUILDER_SITE_VIEWS_DASHBOARD_ADD" description="COM_COMPONENTBUILDER_SITE_VIEWS_DASHBOARD_ADD_DESC" />
|
|
||||||
<action name="site_view.dashboard_list" title="COM_COMPONENTBUILDER_SITE_VIEWS_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_SITE_VIEWS_DASHBOARD_LIST_DESC" />
|
<action name="site_view.dashboard_list" title="COM_COMPONENTBUILDER_SITE_VIEWS_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_SITE_VIEWS_DASHBOARD_LIST_DESC" />
|
||||||
<action name="site_view.version" title="COM_COMPONENTBUILDER_SITE_VIEWS_EDIT_VERSION" description="COM_COMPONENTBUILDER_SITE_VIEWS_EDIT_VERSION_DESC" />
|
<action name="site_view.version" title="COM_COMPONENTBUILDER_SITE_VIEWS_EDIT_VERSION" description="COM_COMPONENTBUILDER_SITE_VIEWS_EDIT_VERSION_DESC" />
|
||||||
<action name="site_view.export" title="COM_COMPONENTBUILDER_SITE_VIEWS_EXPORT" description="COM_COMPONENTBUILDER_SITE_VIEWS_EXPORT_DESC" />
|
<action name="site_view.export" title="COM_COMPONENTBUILDER_SITE_VIEWS_EXPORT" description="COM_COMPONENTBUILDER_SITE_VIEWS_EXPORT_DESC" />
|
||||||
|
@ -16,6 +16,9 @@
|
|||||||
tr.selected td {
|
tr.selected td {
|
||||||
background-color:#d7d8db !important
|
background-color:#d7d8db !important
|
||||||
}
|
}
|
||||||
|
#search_settings_block .controls {
|
||||||
|
margin-left: 1px !important;
|
||||||
|
}
|
||||||
tr {
|
tr {
|
||||||
cursor:pointer
|
cursor:pointer
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 15 KiB |
Binary file not shown.
Before Width: | Height: | Size: 23 KiB |
Binary file not shown.
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 34 KiB |
BIN
admin/assets/images/icons/search.png
Normal file
BIN
admin/assets/images/icons/search.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
Binary file not shown.
Before Width: | Height: | Size: 21 KiB |
@ -26,15 +26,21 @@ const doSearch = async (signal, tables) => {
|
|||||||
// set some search values
|
// set some search values
|
||||||
let searchValue = searchObject.value;
|
let searchValue = searchObject.value;
|
||||||
let replaceValue = replaceObject.value;
|
let replaceValue = replaceObject.value;
|
||||||
|
let matchValue = matchObject.checked ? 1 : 0;
|
||||||
|
let wholeValue = wholeObject.checked ? 1 : 0;
|
||||||
|
let regexValue = regexObject.checked ? 1 : 0;
|
||||||
|
|
||||||
// add the form data
|
// add the form data
|
||||||
formData.append('table_name', '');
|
formData.append('table_name', '');
|
||||||
formData.append('type_search', typeSearch);
|
formData.append('type_search', typeSearch);
|
||||||
formData.append('search_value', searchValue);
|
formData.append('search_value', searchValue);
|
||||||
formData.append('replace_value', replaceValue);
|
formData.append('replace_value', replaceValue);
|
||||||
formData.append('match_case', matchObject.checked ? 1 : 0);
|
formData.append('match_case', matchValue);
|
||||||
formData.append('whole_word', wholeObject.checked ? 1 : 0);
|
formData.append('whole_word', wholeValue);
|
||||||
formData.append('regex_search', regexObject.checked ? 1 : 0);
|
formData.append('regex_search', regexValue);
|
||||||
|
|
||||||
|
// update the URL
|
||||||
|
updateUrlQuery(searchValue, replaceValue, matchValue, wholeValue, regexValue, typeSearch);
|
||||||
|
|
||||||
let abort_this_search_values = false;
|
let abort_this_search_values = false;
|
||||||
|
|
||||||
@ -45,9 +51,20 @@ const doSearch = async (signal, tables) => {
|
|||||||
// show the progress bar
|
// show the progress bar
|
||||||
searchProgressObject.style.display = '';
|
searchProgressObject.style.display = '';
|
||||||
|
|
||||||
|
// hidde the search button
|
||||||
|
startSearchButton.style.display = 'none';
|
||||||
|
|
||||||
|
// show the stop search button
|
||||||
|
stopSearchButton.style.display = '';
|
||||||
|
|
||||||
// start search timer
|
// start search timer
|
||||||
startSearchTimer();
|
startSearchTimer();
|
||||||
|
|
||||||
|
// reset our global counters
|
||||||
|
fieldCount = 0;
|
||||||
|
lineCount = 0;
|
||||||
|
|
||||||
|
// set our local counters
|
||||||
let total = 0;
|
let total = 0;
|
||||||
let progress = tables.length;
|
let progress = tables.length;
|
||||||
let index;
|
let index;
|
||||||
@ -68,23 +85,13 @@ const doSearch = async (signal, tables) => {
|
|||||||
if (abort_this_search_values) {
|
if (abort_this_search_values) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
const response = await fetch(Url + 'doSearch', options).then(response => {
|
const response = await fetch(UrlAjax + 'doSearch', options).then(response => {
|
||||||
total++;
|
total++;
|
||||||
// calculate the percent
|
|
||||||
let percent = 100.0 * (total / progress);
|
|
||||||
// update the progress bar
|
|
||||||
searchProgressBarObject.style.width = percent.toFixed(2) + '%';
|
|
||||||
searchProgressBarObject.innerHTML = percent.toFixed(2) + '%';
|
|
||||||
// when complete hide the progress bar
|
|
||||||
if (progress == total) {
|
|
||||||
searchProgressBarObject.innerHTML = Joomla.JText._('COM_COMPONENTBUILDER_SEARCH_FINISHED_IN') + ' ' + getSearchLenght() + ' ' + Joomla.JText._('COM_COMPONENTBUILDER_SECONDS');
|
|
||||||
setTimeout(function () {
|
|
||||||
searchProgressObject.style.display = 'none';
|
|
||||||
}, 3000);
|
|
||||||
}
|
|
||||||
// return the json response
|
// return the json response
|
||||||
if (response.ok) {
|
if (response.ok) {
|
||||||
return response.json();
|
return response.json();
|
||||||
|
} else {
|
||||||
|
UIkit.notify(Joomla.JText._('COM_COMPONENTBUILDER_THE_SEARCH_PROCESS_HAD_AN_ERROR_WITH_TABLE') + ' ' + tableName, {pos:'top-right', status:'danger'});
|
||||||
}
|
}
|
||||||
}).then((data) => {
|
}).then((data) => {
|
||||||
if (typeof data.success !== 'undefined') {
|
if (typeof data.success !== 'undefined') {
|
||||||
@ -95,8 +102,40 @@ const doSearch = async (signal, tables) => {
|
|||||||
if (typeof data.items !== 'undefined') {
|
if (typeof data.items !== 'undefined') {
|
||||||
addTableItems(resultsTable, data.items, typeSearch);
|
addTableItems(resultsTable, data.items, typeSearch);
|
||||||
}
|
}
|
||||||
|
if (typeof data.fields_count !== 'undefined') {
|
||||||
|
fieldCount += data.fields_count;
|
||||||
|
}
|
||||||
|
if (typeof data.line_count !== 'undefined') {
|
||||||
|
lineCount += data.line_count;
|
||||||
|
}
|
||||||
|
// calculate the percent
|
||||||
|
let percent = 100.0 * (total / progress);
|
||||||
|
// update the progress bar
|
||||||
|
searchProgressObject.style.display = ''; // always make sure it still shows...
|
||||||
|
searchProgressBarObject.style.width = percent.toFixed(2) + '%';
|
||||||
|
searchProgressBarObject.innerHTML = percent.toFixed(2) + '%';
|
||||||
|
// when complete hide the progress bar
|
||||||
|
if (progress == total) {
|
||||||
|
let total_field_line = ' ' + fieldCount + ' ' + Joomla.JText._('COM_COMPONENTBUILDER_FIELDS_THAT_HAD') + ' ' + lineCount + ' ' + Joomla.JText._('COM_COMPONENTBUILDER_LINES') + ' ';
|
||||||
|
if (progress == 1) {
|
||||||
|
searchProgressBarObject.innerHTML = Joomla.JText._('COM_COMPONENTBUILDER_SEARCHING') + ' ' + tableName + total_field_line + Joomla.JText._('COM_COMPONENTBUILDER_AND_FINISHED_THE_SEARCH_IN') + ' ' + getSearchLenght() + ' ' + Joomla.JText._('COM_COMPONENTBUILDER_SECONDS');
|
||||||
|
} else {
|
||||||
|
searchProgressBarObject.innerHTML = Joomla.JText._('COM_COMPONENTBUILDER_SEARCHING') + ' ' + progress + ' ' + Joomla.JText._('COM_COMPONENTBUILDER_TABLES_WITH') + total_field_line + Joomla.JText._('COM_COMPONENTBUILDER_AND_FINISHED_THE_SEARCH_IN') + ' ' + getSearchLenght() + ' ' + Joomla.JText._('COM_COMPONENTBUILDER_SECONDS');
|
||||||
|
}
|
||||||
|
// show the search button
|
||||||
|
startSearchButton.style.display = '';
|
||||||
|
// hidde the stop search button
|
||||||
|
stopSearchButton.style.display = 'none';
|
||||||
|
setTimeout(function () {
|
||||||
|
// hide the progress bar again
|
||||||
|
searchProgressObject.style.display = 'none';
|
||||||
|
}, 13000);
|
||||||
|
}
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
|
if (error.name === "AbortError") {
|
||||||
|
abort_this_search_values = true;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@ -129,7 +168,7 @@ const getSearchLenght = () => {
|
|||||||
|
|
||||||
// get seconds
|
// get seconds
|
||||||
return Math.round(timeDiff);
|
return Math.round(timeDiff);
|
||||||
}
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* JS Function to fetch selected item
|
* JS Function to fetch selected item
|
||||||
@ -154,12 +193,12 @@ const getSelectedItem = async (table, row, field, line) => {
|
|||||||
// get search value
|
// get search value
|
||||||
if (mode == 1) {
|
if (mode == 1) {
|
||||||
// calling URL
|
// calling URL
|
||||||
postURL = Url + 'getSearchValue';
|
postURL = UrlAjax + 'getSearchValue';
|
||||||
} else {
|
} else {
|
||||||
// add the line value
|
// add the line value
|
||||||
formData.append('line_nr', line);
|
formData.append('line_nr', line);
|
||||||
// calling URL
|
// calling URL
|
||||||
postURL = Url + 'getReplaceValue';
|
postURL = UrlAjax + 'getReplaceValue';
|
||||||
}
|
}
|
||||||
|
|
||||||
let options = {
|
let options = {
|
||||||
@ -192,34 +231,34 @@ const getSelectedItem = async (table, row, field, line) => {
|
|||||||
* JS Function to check if we should save/update the all current found items
|
* JS Function to check if we should save/update the all current found items
|
||||||
*/
|
*/
|
||||||
const replaceAllCheck = () => {
|
const replaceAllCheck = () => {
|
||||||
|
// get the current searc and replace values
|
||||||
|
let searchValue = searchObject.value;
|
||||||
|
let replaceValue = replaceObject.value;
|
||||||
// load question
|
// load question
|
||||||
let question = Joomla.JText._('COM_COMPONENTBUILDER_YOUR_ARE_ABOUT_TO_REPLACE_BALLB_SEARCH_RESULTS') + '<br />' +
|
let question = Joomla.JText._('COM_COMPONENTBUILDER_YOUR_ARE_ABOUT_TO_UPDATE_BALLB_VALUES_THAT_CAN_BE_FOUND_IN_THE_DATABASE') + '<br />' +
|
||||||
|
Joomla.JText._('COM_COMPONENTBUILDER_YOU_WILL_REPLACE') + ': [<span class="found_code">' + htmlentities(searchValue) + '</span>] ' +
|
||||||
|
Joomla.JText._('COM_COMPONENTBUILDER_WITH') + ': [<span class="found_code">' + htmlentities(replaceValue) + '</span>]<br />' +
|
||||||
Joomla.JText._('COM_COMPONENTBUILDER_THIS_CAN_NOT_BE_UNDONE_BYOU_HAVE_BEEN_WARNEDB') + '<br /><br />' +
|
Joomla.JText._('COM_COMPONENTBUILDER_THIS_CAN_NOT_BE_UNDONE_BYOU_HAVE_BEEN_WARNEDB') + '<br /><br />' +
|
||||||
Joomla.JText._('COM_COMPONENTBUILDER_ARE_YOU_THEREFORE_ABSOLUTELY_SURE_YOU_WANT_TO_CONTINUE');
|
Joomla.JText._('COM_COMPONENTBUILDER_ARE_YOU_THEREFORE_ABSOLUTELY_SURE_YOU_WANT_TO_CONTINUE');
|
||||||
// do check
|
// do check
|
||||||
UIkit.modal.confirm(question, function () {
|
UIkit.modal.confirm(question, function () {
|
||||||
// we clear the table again
|
|
||||||
clearAll();
|
|
||||||
|
|
||||||
// show the search settings again
|
// show the search settings again
|
||||||
showSearch();
|
showSearch();
|
||||||
|
|
||||||
// clear search values
|
|
||||||
clearSearch();
|
|
||||||
|
|
||||||
// Create new controller and issue new request
|
// Create new controller and issue new request
|
||||||
controller = new AbortController();
|
controller_replace = new AbortController();
|
||||||
|
|
||||||
// check if any specific table was set
|
// check if any specific table was set
|
||||||
let tables = [];
|
let tables = [];
|
||||||
let table = tableObject.value;
|
let table = tableObject.value;
|
||||||
if (table != -1) {
|
if (table != -1) {
|
||||||
tables.push(table);
|
tables.push(table);
|
||||||
replaceAll(controller.signal, tables);
|
replaceAll(controller_replace.signal, tables);
|
||||||
} else {
|
} else {
|
||||||
replaceAll(controller.signal, searchTables);
|
replaceAll(controller_replace.signal, searchTables);
|
||||||
}
|
}
|
||||||
});
|
}, {labels: { Ok: Joomla.JText._('COM_COMPONENTBUILDER_YES_UPDATE_ALL'), Cancel: Joomla.JText._('COM_COMPONENTBUILDER_NO') }});
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -230,31 +269,38 @@ const replaceAll = async (signal, tables) => {
|
|||||||
// build form
|
// build form
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
|
|
||||||
// load the result table
|
|
||||||
const resultsTable = new DataTable('#search_results_table');
|
|
||||||
|
|
||||||
// get the search mode
|
// get the search mode
|
||||||
let typeSearch = modeObject.querySelector('input[type=\'radio\']:checked').value;
|
let typeSearch = modeObject.querySelector('input[type=\'radio\']:checked').value;
|
||||||
|
|
||||||
// set some search values
|
// set some search values
|
||||||
let searchValue = searchObject.value;
|
let searchValue = searchObject.value;
|
||||||
let replaceValue = replaceObject.value;
|
let replaceValue = replaceObject.value;
|
||||||
|
let matchValue = matchObject.checked ? 1 : 0;
|
||||||
|
let wholeValue = wholeObject.checked ? 1 : 0;
|
||||||
|
let regexValue = regexObject.checked ? 1 : 0;
|
||||||
|
|
||||||
// add the form data
|
// add the form data
|
||||||
formData.append('table_name', '');
|
formData.append('table_name', '');
|
||||||
formData.append('type_search', typeSearch);
|
formData.append('type_search', typeSearch);
|
||||||
formData.append('search_value', searchValue);
|
formData.append('search_value', searchValue);
|
||||||
formData.append('replace_value', replaceValue);
|
formData.append('replace_value', replaceValue);
|
||||||
formData.append('match_case', matchObject.checked ? 1 : 0);
|
formData.append('match_case', matchValue);
|
||||||
formData.append('whole_word', wholeObject.checked ? 1 : 0);
|
formData.append('whole_word', wholeValue);
|
||||||
formData.append('regex_search', regexObject.checked ? 1 : 0);
|
formData.append('regex_search', regexValue);
|
||||||
|
|
||||||
|
// reset the progress bar
|
||||||
|
replaceProgressBarObject.style.width = '0%';
|
||||||
|
|
||||||
|
// show the progress bar
|
||||||
|
replaceProgressObject.style.display = '';
|
||||||
|
|
||||||
let abort_this_replace_values = false;
|
let abort_this_replace_values = false;
|
||||||
|
|
||||||
let total = 0;
|
let total = 0;
|
||||||
|
let progress = tables.length;
|
||||||
let index;
|
let index;
|
||||||
|
|
||||||
for (index = 0; index < tables.length; index++) {
|
for (index = 0; index < progress; index++) {
|
||||||
|
|
||||||
let tableName = tables[index];
|
let tableName = tables[index];
|
||||||
|
|
||||||
@ -270,10 +316,12 @@ const replaceAll = async (signal, tables) => {
|
|||||||
if (abort_this_replace_values) {
|
if (abort_this_replace_values) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
const response = await fetch(Url + 'replaceAll', options).then(response => {
|
const response = await fetch(UrlAjax + 'replaceAll', options).then(response => {
|
||||||
total++;
|
total++;
|
||||||
if (response.ok) {
|
if (response.ok) {
|
||||||
return response.json();
|
return response.json();
|
||||||
|
} else {
|
||||||
|
UIkit.notify(Joomla.JText._('COM_COMPONENTBUILDER_THE_REPLACE_PROCESS_HAD_AN_ERROR_WITH_TABLE') + ' ' + tableName, {pos:'top-right', status:'danger'});
|
||||||
}
|
}
|
||||||
}).then((data) => {
|
}).then((data) => {
|
||||||
if (typeof data.success !== 'undefined') {
|
if (typeof data.success !== 'undefined') {
|
||||||
@ -281,8 +329,44 @@ const replaceAll = async (signal, tables) => {
|
|||||||
} else if (typeof data.error !== 'undefined') {
|
} else if (typeof data.error !== 'undefined') {
|
||||||
UIkit.notify(data.error, {pos:'bottom-right', timeout : 200});
|
UIkit.notify(data.error, {pos:'bottom-right', timeout : 200});
|
||||||
}
|
}
|
||||||
|
// calculate the percent
|
||||||
|
let percent = 100.0 * (total / progress);
|
||||||
|
// update the progress bar
|
||||||
|
replaceProgressBarObject.style.width = percent.toFixed(2) + '%';
|
||||||
|
// when complete hide the progress bar
|
||||||
|
if (progress == total) {
|
||||||
|
setTimeout(function () {
|
||||||
|
// hide the progress bar again
|
||||||
|
replaceProgressObject.style.display = 'none';
|
||||||
|
// we clear the table again
|
||||||
|
clearAll();
|
||||||
|
// if not reqex we reverse the search for you so you can see the update was a success
|
||||||
|
if (regexValue == 0) {
|
||||||
|
// set the replace value as the search value
|
||||||
|
UIkit.modal.confirm(Joomla.JText._('COM_COMPONENTBUILDER_WOULD_YOU_LIKE_TO_DO_A_REVERSE_SEARCH'), function(){
|
||||||
|
startNewSearch(replaceValue, searchValue, matchValue, wholeValue, regexValue, 2);
|
||||||
|
}, function () {
|
||||||
|
UIkit.modal.confirm(Joomla.JText._('COM_COMPONENTBUILDER_WOULD_YOU_LIKE_TO_REPEAT_THE_SAME_SEARCH'), function(){
|
||||||
|
startSearch();
|
||||||
|
}, function () {
|
||||||
|
clearSearch();
|
||||||
|
}, {labels: { Ok: Joomla.JText._('COM_COMPONENTBUILDER_YES'), Cancel: Joomla.JText._('COM_COMPONENTBUILDER_NO') }});
|
||||||
|
}, {labels: { Ok: Joomla.JText._('COM_COMPONENTBUILDER_YES'), Cancel: Joomla.JText._('COM_COMPONENTBUILDER_NO') }});
|
||||||
|
} else {
|
||||||
|
// else we search it again just to prove its changed
|
||||||
|
UIkit.modal.confirm(Joomla.JText._('COM_COMPONENTBUILDER_WOULD_YOU_LIKE_TO_REPEAT_THE_SAME_SEARCH'), function(){
|
||||||
|
startSearch();
|
||||||
|
}, function () {
|
||||||
|
clearSearch();
|
||||||
|
}, {labels: { Ok: Joomla.JText._('COM_COMPONENTBUILDER_YES'), Cancel: Joomla.JText._('COM_COMPONENTBUILDER_NO') }});
|
||||||
|
}
|
||||||
|
}, 3000);
|
||||||
|
}
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
|
if (error.name === "AbortError") {
|
||||||
|
abort_this_replace_values = true;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@ -303,7 +387,7 @@ const setValueCheck = (row, field, table) => {
|
|||||||
// do check
|
// do check
|
||||||
UIkit.modal.confirm(question, function () {
|
UIkit.modal.confirm(question, function () {
|
||||||
setValue(row, field, table);
|
setValue(row, field, table);
|
||||||
});
|
}, {labels: { Ok: Joomla.JText._('COM_COMPONENTBUILDER_YES'), Cancel: Joomla.JText._('COM_COMPONENTBUILDER_NO') }});
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -327,7 +411,7 @@ const setValue = async (row, field, table) => {
|
|||||||
body: formData
|
body: formData
|
||||||
}
|
}
|
||||||
|
|
||||||
const response = await fetch(Url + 'setValue', options).then(response => {
|
const response = await fetch(UrlAjax + 'setValue', options).then(response => {
|
||||||
if (response.ok) {
|
if (response.ok) {
|
||||||
return response.json();
|
return response.json();
|
||||||
}
|
}
|
||||||
@ -382,7 +466,7 @@ const addSelectedItem = async (value, table, row, field, line) => {
|
|||||||
buttonUpdateItemObject.style.display = 'none';
|
buttonUpdateItemObject.style.display = 'none';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* JS Function to clear item from the editor and hide it
|
* JS Function to clear item from the editor and hide it
|
||||||
@ -399,18 +483,21 @@ const clearSelectedItem = async () => {
|
|||||||
itemLineNumberObject.innerHTML = '...';
|
itemLineNumberObject.innerHTML = '...';
|
||||||
// clear update button
|
// clear update button
|
||||||
buttonUpdateItemObject.setAttribute('onclick', '');
|
buttonUpdateItemObject.setAttribute('onclick', '');
|
||||||
}
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* JS Function to clear table items
|
* JS Function to clear table items
|
||||||
*/
|
*/
|
||||||
const clearTableItems = async () => {
|
const clearTableItems = async () => {
|
||||||
let table = new DataTable('#search_results_table');
|
let table = new DataTable('#search_results_table');
|
||||||
|
// clear search
|
||||||
|
table.search('').columns().search( '' );
|
||||||
|
// clear items
|
||||||
table.clear().draw( true );
|
table.clear().draw( true );
|
||||||
|
|
||||||
// hide the update all items
|
// hide the update all items
|
||||||
buttonUpdateAllObject.style.display = 'none';
|
buttonUpdateAllStyleDisplay('none');
|
||||||
}
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* JS Function to clear all details of the search
|
* JS Function to clear all details of the search
|
||||||
@ -420,7 +507,7 @@ const clearAll = async () => {
|
|||||||
clearTableItems();
|
clearTableItems();
|
||||||
clearSelectedItem();
|
clearSelectedItem();
|
||||||
searchedObject.innerHTML = '....';
|
searchedObject.innerHTML = '....';
|
||||||
}
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* JS Function to clear the search and replace values
|
* JS Function to clear the search and replace values
|
||||||
@ -429,7 +516,77 @@ const clearSearch = async () => {
|
|||||||
// clear the search and replace values
|
// clear the search and replace values
|
||||||
searchObject.value = '';
|
searchObject.value = '';
|
||||||
replaceObject.value = '';
|
replaceObject.value = '';
|
||||||
}
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* JS Function to set the search and replace values
|
||||||
|
*/
|
||||||
|
const startNewSearch = async (search, replace = '', match = 0, whole = 0, regex = 0, mode = 1) => {
|
||||||
|
// redirect to a new search
|
||||||
|
window.location.href = getSearchURL(search, replace, match, whole, regex, mode);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* JS Function to update the URL of the browser with the search query
|
||||||
|
*/
|
||||||
|
const updateUrlQuery = async (search, replace = '', match = 0, whole = 0, regex = 0, mode = 1) => {
|
||||||
|
// update the url query
|
||||||
|
window.history.pushState({}, '', getSearchURL(search, replace, match, whole, regex, mode));
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* JS Function to get the current search URL
|
||||||
|
*/
|
||||||
|
const getSearchURL = (search, replace = '', match = 0, whole = 0, regex = 0, mode = 1) => {
|
||||||
|
// check if its a single table search
|
||||||
|
let table = tableObject.value;
|
||||||
|
let table_name = '';
|
||||||
|
if (table != -1) {
|
||||||
|
table_name = '&table_name=' + urlencode(table);
|
||||||
|
}
|
||||||
|
// update the type of search
|
||||||
|
if (mode == 1) {
|
||||||
|
return UrlSearch + table_name +
|
||||||
|
'&search_value=' + urlencode(search) +
|
||||||
|
'&type_search=1&match_case=' + match +
|
||||||
|
'&whole_word=' + whole +
|
||||||
|
'®ex_search=' + regex;
|
||||||
|
} else if (mode == 2) {
|
||||||
|
return UrlSearch + table_name +
|
||||||
|
'&search_value=' + urlencode(search) +
|
||||||
|
'&replace_value=' + urlencode(replace) +
|
||||||
|
'&type_search=2&match_case=' + match +
|
||||||
|
'&whole_word=' + whole +
|
||||||
|
'®ex_search=' + regex;
|
||||||
|
}
|
||||||
|
return UrlSearch + table_name;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* JS Function to check if a element has a class
|
||||||
|
*/
|
||||||
|
const hasClass = (elementObject, classNaam) => {
|
||||||
|
return !!elementObject.className.match(new RegExp('(\\s|^)' + classNaam + '(\\s|$)'));
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* JS Function add a class from an element
|
||||||
|
*/
|
||||||
|
const addClass = (elementObject, classNaam) => {
|
||||||
|
if (!hasClass(elementObject, classNaam)) {
|
||||||
|
elementObject.className += " " + classNaam;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* JS Function remove a class from an element
|
||||||
|
*/
|
||||||
|
const removeClass = (elementObject, classNaam) => {
|
||||||
|
if (hasClass(elementObject, classNaam)) {
|
||||||
|
var reg = new RegExp('(\\s|^)' + classNaam + '(\\s|$)');
|
||||||
|
elementObject.className = elementObject.className.replace(reg, ' ');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* JS Function to add items to the table
|
* JS Function to add items to the table
|
||||||
@ -437,16 +594,25 @@ const clearSearch = async () => {
|
|||||||
const addTableItems = async (table, items, typeSearch) => {
|
const addTableItems = async (table, items, typeSearch) => {
|
||||||
table.rows.add(items).draw( false );
|
table.rows.add(items).draw( false );
|
||||||
if (typeSearch == 2) {
|
if (typeSearch == 2) {
|
||||||
buttonUpdateAllObject.style.display = ''; // TODO should only show once all items are loaded
|
buttonUpdateAllStyleDisplay(''); // TODO should only show once all items are loaded
|
||||||
} else {
|
} else {
|
||||||
buttonUpdateAllObject.style.display = 'none'; // TODO should only show once all items are loaded
|
buttonUpdateAllStyleDisplay('none'); // TODO should only show once all items are loaded
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* JS Function to update the update all button
|
||||||
|
*/
|
||||||
|
const buttonUpdateAllStyleDisplay = async (value) => {
|
||||||
|
buttonUpdateAllObject.forEach((buttonObject) => {
|
||||||
|
buttonObject.style.display = value;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* JS Function to execute (A) on search/replace text change , (B) on search options changes
|
* JS Function to execute (A) on search/replace text change , (B) on search options changes
|
||||||
*/
|
*/
|
||||||
const onChange = () => {
|
const startSearch = (field, forced = false) => {
|
||||||
// get replace value if set
|
// get replace value if set
|
||||||
const replaceValue = replaceObject.value;
|
const replaceValue = replaceObject.value;
|
||||||
if (replaceValue.length > 0) {
|
if (replaceValue.length > 0) {
|
||||||
@ -457,7 +623,7 @@ const onChange = () => {
|
|||||||
}
|
}
|
||||||
// get search value
|
// get search value
|
||||||
const searchValue = searchObject.value;
|
const searchValue = searchObject.value;
|
||||||
if (searchValue.length > 2) {
|
if (searchValue.length > 2 || (searchValue.length > 0 && forced)) {
|
||||||
// Cancel any ongoing requests
|
// Cancel any ongoing requests
|
||||||
if (controller) controller.abort();
|
if (controller) controller.abort();
|
||||||
|
|
||||||
@ -485,6 +651,23 @@ const onChange = () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* JS Function to stop a search
|
||||||
|
*/
|
||||||
|
const stopSearch = () => {
|
||||||
|
// Cancel any ongoing requests
|
||||||
|
if (controller) controller.abort();
|
||||||
|
// show the search button
|
||||||
|
startSearchButton.style.display = '';
|
||||||
|
// hidde the stop search button
|
||||||
|
stopSearchButton.style.display = 'none';
|
||||||
|
// remove the progress bar at some point
|
||||||
|
setTimeout(function () {
|
||||||
|
// hide the progress bar again
|
||||||
|
searchProgressObject.style.display = 'none';
|
||||||
|
}, 13000);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* JS Function to hide search settings and show table search
|
* JS Function to hide search settings and show table search
|
||||||
*/
|
*/
|
||||||
@ -722,3 +905,42 @@ function getHtmlTranslationTable(table, quoteStyle) { // eslint-disable-line cam
|
|||||||
|
|
||||||
return hashMap
|
return hashMap
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function urlencode (str) {
|
||||||
|
// discuss at: https://locutus.io/php/urlencode/
|
||||||
|
// original by: Philip Peterson
|
||||||
|
// improved by: Kevin van Zonneveld (https://kvz.io)
|
||||||
|
// improved by: Kevin van Zonneveld (https://kvz.io)
|
||||||
|
// improved by: Brett Zamir (https://brett-zamir.me)
|
||||||
|
// improved by: Lars Fischer
|
||||||
|
// improved by: Waldo Malqui Silva (https://fayr.us/waldo/)
|
||||||
|
// input by: AJ
|
||||||
|
// input by: travc
|
||||||
|
// input by: Brett Zamir (https://brett-zamir.me)
|
||||||
|
// input by: Ratheous
|
||||||
|
// bugfixed by: Kevin van Zonneveld (https://kvz.io)
|
||||||
|
// bugfixed by: Kevin van Zonneveld (https://kvz.io)
|
||||||
|
// bugfixed by: Joris
|
||||||
|
// reimplemented by: Brett Zamir (https://brett-zamir.me)
|
||||||
|
// reimplemented by: Brett Zamir (https://brett-zamir.me)
|
||||||
|
// note 1: This reflects PHP 5.3/6.0+ behavior
|
||||||
|
// note 1: Please be aware that this function
|
||||||
|
// note 1: expects to encode into UTF-8 encoded strings, as found on
|
||||||
|
// note 1: pages served as UTF-8
|
||||||
|
// example 1: urlencode('Kevin van Zonneveld!')
|
||||||
|
// returns 1: 'Kevin+van+Zonneveld%21'
|
||||||
|
// example 2: urlencode('https://kvz.io/')
|
||||||
|
// returns 2: 'https%3A%2F%2Fkvz.io%2F'
|
||||||
|
// example 3: urlencode('https://www.google.nl/search?q=Locutus&ie=utf-8')
|
||||||
|
// returns 3: 'https%3A%2F%2Fwww.google.nl%2Fsearch%3Fq%3DLocutus%26ie%3Dutf-8'
|
||||||
|
str = (str + '')
|
||||||
|
return encodeURIComponent(str)
|
||||||
|
.replace(/!/g, '%21')
|
||||||
|
.replace(/'/g, '%27')
|
||||||
|
.replace(/\(/g, '%28')
|
||||||
|
.replace(/\)/g, '%29')
|
||||||
|
.replace(/\*/g, '%2A')
|
||||||
|
.replace(/~/g, '%7E')
|
||||||
|
.replace(/%20/g, '+')
|
||||||
|
}
|
@ -6321,11 +6321,6 @@ abstract class ComponentbuilderHelper
|
|||||||
{
|
{
|
||||||
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_SUBMENU_COMPILER'), 'index.php?option=com_componentbuilder&view=compiler', $submenu === 'compiler');
|
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_SUBMENU_COMPILER'), 'index.php?option=com_componentbuilder&view=compiler', $submenu === 'compiler');
|
||||||
}
|
}
|
||||||
// Access control (search.submenu).
|
|
||||||
if ($user->authorise('search.submenu', 'com_componentbuilder'))
|
|
||||||
{
|
|
||||||
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_SUBMENU_SEARCH'), 'index.php?option=com_componentbuilder&view=search', $submenu === 'search');
|
|
||||||
}
|
|
||||||
if ($user->authorise('joomla_component.access', 'com_componentbuilder') && $user->authorise('joomla_component.submenu', 'com_componentbuilder'))
|
if ($user->authorise('joomla_component.access', 'com_componentbuilder') && $user->authorise('joomla_component.submenu', 'com_componentbuilder'))
|
||||||
{
|
{
|
||||||
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_SUBMENU_JOOMLA_COMPONENTS'), 'index.php?option=com_componentbuilder&view=joomla_components', $submenu === 'joomla_components');
|
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_SUBMENU_JOOMLA_COMPONENTS'), 'index.php?option=com_componentbuilder&view=joomla_components', $submenu === 'joomla_components');
|
||||||
@ -6342,6 +6337,11 @@ abstract class ComponentbuilderHelper
|
|||||||
{
|
{
|
||||||
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_SUBMENU_POWERS'), 'index.php?option=com_componentbuilder&view=powers', $submenu === 'powers');
|
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_SUBMENU_POWERS'), 'index.php?option=com_componentbuilder&view=powers', $submenu === 'powers');
|
||||||
}
|
}
|
||||||
|
// Access control (search.access && search.submenu).
|
||||||
|
if ($user->authorise('search.access', 'com_componentbuilder') && $user->authorise('search.submenu', 'com_componentbuilder'))
|
||||||
|
{
|
||||||
|
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_SUBMENU_SEARCH'), 'index.php?option=com_componentbuilder&view=search', $submenu === 'search');
|
||||||
|
}
|
||||||
if ($user->authorise('admin_view.access', 'com_componentbuilder') && $user->authorise('admin_view.submenu', 'com_componentbuilder'))
|
if ($user->authorise('admin_view.access', 'com_componentbuilder') && $user->authorise('admin_view.submenu', 'com_componentbuilder'))
|
||||||
{
|
{
|
||||||
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_SUBMENU_ADMIN_VIEWS'), 'index.php?option=com_componentbuilder&view=admin_views', $submenu === 'admin_views');
|
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_SUBMENU_ADMIN_VIEWS'), 'index.php?option=com_componentbuilder&view=admin_views', $submenu === 'admin_views');
|
||||||
|
@ -416,8 +416,6 @@ COM_COMPONENTBUILDER_ADMIN_VIEWS_BATCH_USE="Admin Views Batch Use"
|
|||||||
COM_COMPONENTBUILDER_ADMIN_VIEWS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch admin views"
|
COM_COMPONENTBUILDER_ADMIN_VIEWS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch admin views"
|
||||||
COM_COMPONENTBUILDER_ADMIN_VIEWS_CREATE="Admin Views Create"
|
COM_COMPONENTBUILDER_ADMIN_VIEWS_CREATE="Admin Views Create"
|
||||||
COM_COMPONENTBUILDER_ADMIN_VIEWS_CREATE_DESC="Allows the users in this group to create create admin views"
|
COM_COMPONENTBUILDER_ADMIN_VIEWS_CREATE_DESC="Allows the users in this group to create create admin views"
|
||||||
COM_COMPONENTBUILDER_ADMIN_VIEWS_DASHBOARD_ADD="Admin Views Dashboard Add"
|
|
||||||
COM_COMPONENTBUILDER_ADMIN_VIEWS_DASHBOARD_ADD_DESC="Allows the users in this group to dashboard add of admin view"
|
|
||||||
COM_COMPONENTBUILDER_ADMIN_VIEWS_DASHBOARD_LIST="Admin Views Dashboard List"
|
COM_COMPONENTBUILDER_ADMIN_VIEWS_DASHBOARD_LIST="Admin Views Dashboard List"
|
||||||
COM_COMPONENTBUILDER_ADMIN_VIEWS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of admin view"
|
COM_COMPONENTBUILDER_ADMIN_VIEWS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of admin view"
|
||||||
COM_COMPONENTBUILDER_ADMIN_VIEWS_DELETE="Admin Views Delete"
|
COM_COMPONENTBUILDER_ADMIN_VIEWS_DELETE="Admin Views Delete"
|
||||||
@ -1302,6 +1300,7 @@ COM_COMPONENTBUILDER_ALREADY_SELECTED_TRY_ANOTHER="Already selected, try another
|
|||||||
COM_COMPONENTBUILDER_ALREADY_TRANSLATED_INTO="Already translated into"
|
COM_COMPONENTBUILDER_ALREADY_TRANSLATED_INTO="Already translated into"
|
||||||
COM_COMPONENTBUILDER_ALWAYS_ADD="Always Add"
|
COM_COMPONENTBUILDER_ALWAYS_ADD="Always Add"
|
||||||
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_A_SFIND_OUT_WHYA="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> <a %s>Find out why!</a>"
|
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_A_SFIND_OUT_WHYA="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> <a %s>Find out why!</a>"
|
||||||
|
COM_COMPONENTBUILDER_AND_FINISHED_THE_SEARCH_IN="and finished the search in"
|
||||||
COM_COMPONENTBUILDER_ANY_LANGUAGE="Any language"
|
COM_COMPONENTBUILDER_ANY_LANGUAGE="Any language"
|
||||||
COM_COMPONENTBUILDER_ANY_SELECTION_ONLY_FOUR_LISTRADIOCHECKBOXESDYNAMIC_LIST="Any Selection (only 4 list/radio/checkboxes/dynamic_list)"
|
COM_COMPONENTBUILDER_ANY_SELECTION_ONLY_FOUR_LISTRADIOCHECKBOXESDYNAMIC_LIST="Any Selection (only 4 list/radio/checkboxes/dynamic_list)"
|
||||||
COM_COMPONENTBUILDER_AN_ERROR_HAS_OCCURRED="An error has occurred"
|
COM_COMPONENTBUILDER_AN_ERROR_HAS_OCCURRED="An error has occurred"
|
||||||
@ -3689,8 +3688,6 @@ COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_BATCH_USE="Custom Admin Views Batch Use"
|
|||||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch custom admin views"
|
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch custom admin views"
|
||||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_CREATE="Custom Admin Views Create"
|
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_CREATE="Custom Admin Views Create"
|
||||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_CREATE_DESC="Allows the users in this group to create create custom admin views"
|
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_CREATE_DESC="Allows the users in this group to create create custom admin views"
|
||||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_DASHBOARD_ADD="Custom Admin Views Dashboard Add"
|
|
||||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_DASHBOARD_ADD_DESC="Allows the users in this group to dashboard add of custom admin view"
|
|
||||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_DASHBOARD_LIST="Custom Admin Views Dashboard List"
|
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_DASHBOARD_LIST="Custom Admin Views Dashboard List"
|
||||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of custom admin view"
|
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of custom admin view"
|
||||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_DELETE="Custom Admin Views Delete"
|
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_DELETE="Custom Admin Views Delete"
|
||||||
@ -4355,10 +4352,8 @@ COM_COMPONENTBUILDER_DASH="Dashboard"
|
|||||||
COM_COMPONENTBUILDER_DASHBOARD="Component Builder Dashboard"
|
COM_COMPONENTBUILDER_DASHBOARD="Component Builder Dashboard"
|
||||||
COM_COMPONENTBUILDER_DASHBOARD_ADD_RECORD="Dashboard (add record)"
|
COM_COMPONENTBUILDER_DASHBOARD_ADD_RECORD="Dashboard (add record)"
|
||||||
COM_COMPONENTBUILDER_DASHBOARD_ADMIN_VIEWS="Admin Views<br /><br />"
|
COM_COMPONENTBUILDER_DASHBOARD_ADMIN_VIEWS="Admin Views<br /><br />"
|
||||||
COM_COMPONENTBUILDER_DASHBOARD_ADMIN_VIEW_ADD="Add Admin View<br /><br />"
|
|
||||||
COM_COMPONENTBUILDER_DASHBOARD_COMPILER="Compiler<br /><br />"
|
COM_COMPONENTBUILDER_DASHBOARD_COMPILER="Compiler<br /><br />"
|
||||||
COM_COMPONENTBUILDER_DASHBOARD_CUSTOM_ADMIN_VIEWS="Custom Admin Views<br /><br />"
|
COM_COMPONENTBUILDER_DASHBOARD_CUSTOM_ADMIN_VIEWS="Custom Admin Views<br /><br />"
|
||||||
COM_COMPONENTBUILDER_DASHBOARD_CUSTOM_ADMIN_VIEW_ADD="Add Custom Admin View<br /><br />"
|
|
||||||
COM_COMPONENTBUILDER_DASHBOARD_CUSTOM_CODES="Custom Codes<br /><br />"
|
COM_COMPONENTBUILDER_DASHBOARD_CUSTOM_CODES="Custom Codes<br /><br />"
|
||||||
COM_COMPONENTBUILDER_DASHBOARD_DYNAMIC_GETS="Dynamic Gets<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_DYNAMIC_GET_ADD="Add Dynamic Get<br /><br />"
|
||||||
@ -4379,9 +4374,9 @@ COM_COMPONENTBUILDER_DASHBOARD_LIBRARIES="Libraries<br /><br />"
|
|||||||
COM_COMPONENTBUILDER_DASHBOARD_LIST_OF_RECORDS="Dashboard (list of records)"
|
COM_COMPONENTBUILDER_DASHBOARD_LIST_OF_RECORDS="Dashboard (list of records)"
|
||||||
COM_COMPONENTBUILDER_DASHBOARD_PLACEHOLDERS="Placeholders<br /><br />"
|
COM_COMPONENTBUILDER_DASHBOARD_PLACEHOLDERS="Placeholders<br /><br />"
|
||||||
COM_COMPONENTBUILDER_DASHBOARD_POWERS="Powers<br /><br />"
|
COM_COMPONENTBUILDER_DASHBOARD_POWERS="Powers<br /><br />"
|
||||||
|
COM_COMPONENTBUILDER_DASHBOARD_SEARCH="Search<br /><br />"
|
||||||
COM_COMPONENTBUILDER_DASHBOARD_SERVERS="Servers<br /><br />"
|
COM_COMPONENTBUILDER_DASHBOARD_SERVERS="Servers<br /><br />"
|
||||||
COM_COMPONENTBUILDER_DASHBOARD_SITE_VIEWS="Site Views<br /><br />"
|
COM_COMPONENTBUILDER_DASHBOARD_SITE_VIEWS="Site Views<br /><br />"
|
||||||
COM_COMPONENTBUILDER_DASHBOARD_SITE_VIEW_ADD="Add Site View<br /><br />"
|
|
||||||
COM_COMPONENTBUILDER_DASHBOARD_SNIPPETS="Snippets<br /><br />"
|
COM_COMPONENTBUILDER_DASHBOARD_SNIPPETS="Snippets<br /><br />"
|
||||||
COM_COMPONENTBUILDER_DASHBOARD_TEMPLATES="Templates<br /><br />"
|
COM_COMPONENTBUILDER_DASHBOARD_TEMPLATES="Templates<br /><br />"
|
||||||
COM_COMPONENTBUILDER_DASHBOARD_TEMPLATE_ADD="Add Template<br /><br />"
|
COM_COMPONENTBUILDER_DASHBOARD_TEMPLATE_ADD="Add Template<br /><br />"
|
||||||
@ -4722,7 +4717,7 @@ COM_COMPONENTBUILDER_EMOWNEREM_BSB="<em>Owner:</em> <b>%s</b>"
|
|||||||
COM_COMPONENTBUILDER_EMPTY_TRASH="Empty trash"
|
COM_COMPONENTBUILDER_EMPTY_TRASH="Empty trash"
|
||||||
COM_COMPONENTBUILDER_EMWEBSITEEM_BSB="<em>Website:</em> <b>%s</b>"
|
COM_COMPONENTBUILDER_EMWEBSITEEM_BSB="<em>Website:</em> <b>%s</b>"
|
||||||
COM_COMPONENTBUILDER_ENTER_YOUR_REPLACE_TEXT="Enter your replace text"
|
COM_COMPONENTBUILDER_ENTER_YOUR_REPLACE_TEXT="Enter your replace text"
|
||||||
COM_COMPONENTBUILDER_ENTER_YOUR_SEARCH_TEXT="Enter your search text."
|
COM_COMPONENTBUILDER_ENTER_YOUR_SEARCH_TEXT="Enter your search text"
|
||||||
COM_COMPONENTBUILDER_EQUAL="Equal"
|
COM_COMPONENTBUILDER_EQUAL="Equal"
|
||||||
COM_COMPONENTBUILDER_EQUAL_MEANS_THAT_THE_COMMUNITY_SNIPPET_WITH_THE_SAME_NAME_LIBRARY_AND_TYPE_AND_YOUR_LOCAL_SNIPPET_WITH_THE_SAME_NAME_LIBRARY_AND_TYPE_HAS_THE_SAME_BCREATIONB_AND_BMODIFIED_DATEB="Equal means that the community snippet (with the same name, library and type) and your local snippet (with the same name, library and type) has the same <b>creation</b> and <b>modified date</b>."
|
COM_COMPONENTBUILDER_EQUAL_MEANS_THAT_THE_COMMUNITY_SNIPPET_WITH_THE_SAME_NAME_LIBRARY_AND_TYPE_AND_YOUR_LOCAL_SNIPPET_WITH_THE_SAME_NAME_LIBRARY_AND_TYPE_HAS_THE_SAME_BCREATIONB_AND_BMODIFIED_DATEB="Equal means that the community snippet (with the same name, library and type) and your local snippet (with the same name, library and type) has the same <b>creation</b> and <b>modified date</b>."
|
||||||
COM_COMPONENTBUILDER_ERROR="Error"
|
COM_COMPONENTBUILDER_ERROR="Error"
|
||||||
@ -4795,6 +4790,7 @@ COM_COMPONENTBUILDER_FIELDS_N_ITEMS_UNPUBLISHED="%s Fields unpublished."
|
|||||||
COM_COMPONENTBUILDER_FIELDS_N_ITEMS_UNPUBLISHED_1="%s Field unpublished."
|
COM_COMPONENTBUILDER_FIELDS_N_ITEMS_UNPUBLISHED_1="%s Field unpublished."
|
||||||
COM_COMPONENTBUILDER_FIELDS_SUBMENU="Fields Submenu"
|
COM_COMPONENTBUILDER_FIELDS_SUBMENU="Fields Submenu"
|
||||||
COM_COMPONENTBUILDER_FIELDS_SUBMENU_DESC="Allows the users in this group to submenu of field"
|
COM_COMPONENTBUILDER_FIELDS_SUBMENU_DESC="Allows the users in this group to submenu of field"
|
||||||
|
COM_COMPONENTBUILDER_FIELDS_THAT_HAD="fields that had"
|
||||||
COM_COMPONENTBUILDER_FIELDTYPE="Fieldtype"
|
COM_COMPONENTBUILDER_FIELDTYPE="Fieldtype"
|
||||||
COM_COMPONENTBUILDER_FIELDTYPES="Fieldtypes"
|
COM_COMPONENTBUILDER_FIELDTYPES="Fieldtypes"
|
||||||
COM_COMPONENTBUILDER_FIELDTYPES_ACCESS="Fieldtypes Access"
|
COM_COMPONENTBUILDER_FIELDTYPES_ACCESS="Fieldtypes Access"
|
||||||
@ -6001,7 +5997,7 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_README_DESCRIPTION="<div style='margi
|
|||||||
## Build Time<br />
|
## Build Time<br />
|
||||||
<br />
|
<br />
|
||||||
**###totalHours### Hours** or **###totalDays### Eight Hour Days** (actual time the author saved - <br />
|
**###totalHours### Hours** or **###totalDays### Eight Hour Days** (actual time the author saved - <br />
|
||||||
due to [Automated Component Builder](http://joomlacomponentbuilder.com))<br />
|
due to [Automated Component Builder](https://www.joomlacomponentbuilder.com))<br />
|
||||||
<br />
|
<br />
|
||||||
> (if creating a folder and file took **5 seconds** and writing one line of code took **10 seconds**,<br />
|
> (if creating a folder and file took **5 seconds** and writing one line of code took **10 seconds**,<br />
|
||||||
> never making one mistake or taking any coffee break.)<br />
|
> never making one mistake or taking any coffee break.)<br />
|
||||||
@ -6026,7 +6022,7 @@ due to [Automated Component Builder](http://joomlacomponentbuilder.com))<br />
|
|||||||
<br />
|
<br />
|
||||||
Project duration: **###projectWeekTime### weeks** or **###projectMonthTime### months**<br />
|
Project duration: **###projectWeekTime### weeks** or **###projectMonthTime### months**<br />
|
||||||
<br />
|
<br />
|
||||||
> This **component** was build with a Joomla [Automated Component Builder](http://joomlacomponentbuilder.com).<br />
|
> This **component** was build with a Joomla [Automated Component Builder](https://www.joomlacomponentbuilder.com).<br />
|
||||||
> Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)<br />
|
> Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)<br />
|
||||||
<br />
|
<br />
|
||||||
## Donations<br />
|
## Donations<br />
|
||||||
@ -7753,6 +7749,7 @@ COM_COMPONENTBUILDER_LIBRARY_VERSION_LABEL="Version"
|
|||||||
COM_COMPONENTBUILDER_LICENSE="License"
|
COM_COMPONENTBUILDER_LICENSE="License"
|
||||||
COM_COMPONENTBUILDER_LICENSE_S="License: %s"
|
COM_COMPONENTBUILDER_LICENSE_S="License: %s"
|
||||||
COM_COMPONENTBUILDER_LINE="line"
|
COM_COMPONENTBUILDER_LINE="line"
|
||||||
|
COM_COMPONENTBUILDER_LINES="lines"
|
||||||
COM_COMPONENTBUILDER_LINK="Link"
|
COM_COMPONENTBUILDER_LINK="Link"
|
||||||
COM_COMPONENTBUILDER_LINK_LOCAL_DYNAMIC="Link & Local (dynamic)"
|
COM_COMPONENTBUILDER_LINK_LOCAL_DYNAMIC="Link & Local (dynamic)"
|
||||||
COM_COMPONENTBUILDER_LINK_TO_THE_CONTRIBUTOR="Link to the contributor"
|
COM_COMPONENTBUILDER_LINK_TO_THE_CONTRIBUTOR="Link to the contributor"
|
||||||
@ -8164,6 +8161,7 @@ COM_COMPONENTBUILDER_REMOVING_ALL_ZIP_PACKAGES_FROM_THE_TEMPORARY_FOLDER_OF_THE_
|
|||||||
COM_COMPONENTBUILDER_RENAME="Rename"
|
COM_COMPONENTBUILDER_RENAME="Rename"
|
||||||
COM_COMPONENTBUILDER_REPLACE="Replace"
|
COM_COMPONENTBUILDER_REPLACE="Replace"
|
||||||
COM_COMPONENTBUILDER_REPLACED_WITH="replaced with"
|
COM_COMPONENTBUILDER_REPLACED_WITH="replaced with"
|
||||||
|
COM_COMPONENTBUILDER_REPLACE_PROCESS_COMPLETE="replace process complete"
|
||||||
COM_COMPONENTBUILDER_REPORT_AN_ISSUE_BSB="Report an issue: <b>%s</b>"
|
COM_COMPONENTBUILDER_REPORT_AN_ISSUE_BSB="Report an issue: <b>%s</b>"
|
||||||
COM_COMPONENTBUILDER_REQUIRES_THE_VALUE_ENTERED_BE_ONE_OF_THE_OPTIONS_IN_AN_ELEMENT_OF_TYPEQUOTLISTQUOT_THAT_IS_THAT_THE_ELEMENT_IS_A_SELECT_LIST="Requires the value entered be one of the options in an element of type="list": that is, that the element is a select list."
|
COM_COMPONENTBUILDER_REQUIRES_THE_VALUE_ENTERED_BE_ONE_OF_THE_OPTIONS_IN_AN_ELEMENT_OF_TYPEQUOTLISTQUOT_THAT_IS_THAT_THE_ELEMENT_IS_A_SELECT_LIST="Requires the value entered be one of the options in an element of type="list": that is, that the element is a select list."
|
||||||
COM_COMPONENTBUILDER_REQUIRES_THE_VALUE_TO_BE_A_TELEPHONE_NUMBER_COMPLYING_WITH_THE_STANDARDS_OF_NANPA_ITUT_TRECEONE_HUNDRED_AND_SIXTY_FOUR_OR_IETF_RFCFOUR_THOUSAND_NINE_HUNDRED_AND_THIRTY_THREE="Requires the value to be a Telephone number complying with the standards of nanpa, ITU-T T-REC-E.164 or ietf rfc4933."
|
COM_COMPONENTBUILDER_REQUIRES_THE_VALUE_TO_BE_A_TELEPHONE_NUMBER_COMPLYING_WITH_THE_STANDARDS_OF_NANPA_ITUT_TRECEONE_HUNDRED_AND_SIXTY_FOUR_OR_IETF_RFCFOUR_THOUSAND_NINE_HUNDRED_AND_THIRTY_THREE="Requires the value to be a Telephone number complying with the standards of nanpa, ITU-T T-REC-E.164 or ietf rfc4933."
|
||||||
@ -8180,13 +8178,15 @@ COM_COMPONENTBUILDER_SBR_YOU_CAN_ADD_A_BGITHUB_ACCESS_TOKENB_TO_COMPONENTBUILDER
|
|||||||
COM_COMPONENTBUILDER_SEARCH="Search"
|
COM_COMPONENTBUILDER_SEARCH="Search"
|
||||||
COM_COMPONENTBUILDER_SEARCHABLE="Searchable"
|
COM_COMPONENTBUILDER_SEARCHABLE="Searchable"
|
||||||
COM_COMPONENTBUILDER_SEARCHED_FOR="searched for"
|
COM_COMPONENTBUILDER_SEARCHED_FOR="searched for"
|
||||||
|
COM_COMPONENTBUILDER_SEARCHING="searching"
|
||||||
COM_COMPONENTBUILDER_SEARCH_ACCESS="Search Access"
|
COM_COMPONENTBUILDER_SEARCH_ACCESS="Search Access"
|
||||||
COM_COMPONENTBUILDER_SEARCH_ACCESS_DESC="Allows the users in this group to access search."
|
COM_COMPONENTBUILDER_SEARCH_ACCESS_DESC="Allows the users in this group to access search."
|
||||||
COM_COMPONENTBUILDER_SEARCH_COMPILER_BUTTON_ACCESS="Search Compiler Button Access"
|
COM_COMPONENTBUILDER_SEARCH_COMPILER_BUTTON_ACCESS="Search Compiler Button Access"
|
||||||
COM_COMPONENTBUILDER_SEARCH_COMPILER_BUTTON_ACCESS_DESC="Allows the users in this group to access the compiler button."
|
COM_COMPONENTBUILDER_SEARCH_COMPILER_BUTTON_ACCESS_DESC="Allows the users in this group to access the compiler button."
|
||||||
|
COM_COMPONENTBUILDER_SEARCH_DASHBOARD_LIST="Search Dashboard List"
|
||||||
|
COM_COMPONENTBUILDER_SEARCH_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of Search"
|
||||||
COM_COMPONENTBUILDER_SEARCH_DATABASE_AGAIN="Search Database Again"
|
COM_COMPONENTBUILDER_SEARCH_DATABASE_AGAIN="Search Database Again"
|
||||||
COM_COMPONENTBUILDER_SEARCH_DESC="JCB Search"
|
COM_COMPONENTBUILDER_SEARCH_DESC="JCB Search"
|
||||||
COM_COMPONENTBUILDER_SEARCH_FINISHED_IN="Search finished in"
|
|
||||||
COM_COMPONENTBUILDER_SEARCH_OR_SEARCH_AND_REPLACE="Search, or Search and Replace"
|
COM_COMPONENTBUILDER_SEARCH_OR_SEARCH_AND_REPLACE="Search, or Search and Replace"
|
||||||
COM_COMPONENTBUILDER_SEARCH_SUBMENU="Search Submenu"
|
COM_COMPONENTBUILDER_SEARCH_SUBMENU="Search Submenu"
|
||||||
COM_COMPONENTBUILDER_SEARCH_SUBMENU_DESC="Allows the users in this group to submenu of Search"
|
COM_COMPONENTBUILDER_SEARCH_SUBMENU_DESC="Allows the users in this group to submenu of Search"
|
||||||
@ -8372,8 +8372,6 @@ COM_COMPONENTBUILDER_SITE_VIEWS_BATCH_USE="Site Views Batch Use"
|
|||||||
COM_COMPONENTBUILDER_SITE_VIEWS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch site views"
|
COM_COMPONENTBUILDER_SITE_VIEWS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch site views"
|
||||||
COM_COMPONENTBUILDER_SITE_VIEWS_CREATE="Site Views Create"
|
COM_COMPONENTBUILDER_SITE_VIEWS_CREATE="Site Views Create"
|
||||||
COM_COMPONENTBUILDER_SITE_VIEWS_CREATE_DESC="Allows the users in this group to create create site views"
|
COM_COMPONENTBUILDER_SITE_VIEWS_CREATE_DESC="Allows the users in this group to create create site views"
|
||||||
COM_COMPONENTBUILDER_SITE_VIEWS_DASHBOARD_ADD="Site Views Dashboard Add"
|
|
||||||
COM_COMPONENTBUILDER_SITE_VIEWS_DASHBOARD_ADD_DESC="Allows the users in this group to dashboard add of site view"
|
|
||||||
COM_COMPONENTBUILDER_SITE_VIEWS_DASHBOARD_LIST="Site Views Dashboard List"
|
COM_COMPONENTBUILDER_SITE_VIEWS_DASHBOARD_LIST="Site Views Dashboard List"
|
||||||
COM_COMPONENTBUILDER_SITE_VIEWS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of site view"
|
COM_COMPONENTBUILDER_SITE_VIEWS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of site view"
|
||||||
COM_COMPONENTBUILDER_SITE_VIEWS_DELETE="Site Views Delete"
|
COM_COMPONENTBUILDER_SITE_VIEWS_DELETE="Site Views Delete"
|
||||||
@ -8992,6 +8990,8 @@ COM_COMPONENTBUILDER_SORRY_THIS_PLACEHOLDER_IS_ALREADY_IN_USE_IN_THE_COMPILER="S
|
|||||||
COM_COMPONENTBUILDER_SORRY_THIS_VALIDATION_RULE_NAME_S_ALREADY_EXIST_AS_PART_OF_THE_JOOMLA_CORE_NO_NEED_TO_CREATE_IT_IF_YOU_ARE_ADAPTING_IT_GIVE_IT_YOUR_OWN_UNIQUE_NAME="Sorry this validation rule name (%s) already exist as part of the Joomla core! No need to create it, if you are adapting it give it your own unique name."
|
COM_COMPONENTBUILDER_SORRY_THIS_VALIDATION_RULE_NAME_S_ALREADY_EXIST_AS_PART_OF_THE_JOOMLA_CORE_NO_NEED_TO_CREATE_IT_IF_YOU_ARE_ADAPTING_IT_GIVE_IT_YOUR_OWN_UNIQUE_NAME="Sorry this validation rule name (%s) already exist as part of the Joomla core! No need to create it, if you are adapting it give it your own unique name."
|
||||||
COM_COMPONENTBUILDER_SORRY_THIS_VALIDATION_RULE_NAME_S_ALREADY_EXIST_IN_YOUR_SYSTEM="Sorry this validation rule name (%s) already exist in your system!"
|
COM_COMPONENTBUILDER_SORRY_THIS_VALIDATION_RULE_NAME_S_ALREADY_EXIST_IN_YOUR_SYSTEM="Sorry this validation rule name (%s) already exist in your system!"
|
||||||
COM_COMPONENTBUILDER_SORTABLE="Sortable"
|
COM_COMPONENTBUILDER_SORTABLE="Sortable"
|
||||||
|
COM_COMPONENTBUILDER_START_A_SEARCH="Start a Search"
|
||||||
|
COM_COMPONENTBUILDER_STOP_A_SEARCH="Stop a Search"
|
||||||
COM_COMPONENTBUILDER_SUBMENU="Submenu"
|
COM_COMPONENTBUILDER_SUBMENU="Submenu"
|
||||||
COM_COMPONENTBUILDER_SUBMENU_ADMIN_VIEWS="Admin Views"
|
COM_COMPONENTBUILDER_SUBMENU_ADMIN_VIEWS="Admin Views"
|
||||||
COM_COMPONENTBUILDER_SUBMENU_COMPILER="Compiler"
|
COM_COMPONENTBUILDER_SUBMENU_COMPILER="Compiler"
|
||||||
@ -9032,6 +9032,7 @@ COM_COMPONENTBUILDER_S_WE_DETECTED_BNEW_EXTERNALCODEB_BUT_YOU_DO_NOT_HAVE_PERMIS
|
|||||||
COM_COMPONENTBUILDER_TAB="Tab"
|
COM_COMPONENTBUILDER_TAB="Tab"
|
||||||
COM_COMPONENTBUILDER_TABLE="Table"
|
COM_COMPONENTBUILDER_TABLE="Table"
|
||||||
COM_COMPONENTBUILDER_TABLES="Tables"
|
COM_COMPONENTBUILDER_TABLES="Tables"
|
||||||
|
COM_COMPONENTBUILDER_TABLES_WITH="tables with"
|
||||||
COM_COMPONENTBUILDER_TABLE_BSB_NOT_FOUND_IN_THE_LOCAL_DATABASE_SO_ITS_VALUES_COULD_NOT_BE_IMPORTED_PLEASE_UPDATE_YOUR_JCB_INSTALL_AND_TRY_AGAIN="Table <b>%s</b> not found in the local database so its values could not be imported, please update your JCB install and try again."
|
COM_COMPONENTBUILDER_TABLE_BSB_NOT_FOUND_IN_THE_LOCAL_DATABASE_SO_ITS_VALUES_COULD_NOT_BE_IMPORTED_PLEASE_UPDATE_YOUR_JCB_INSTALL_AND_TRY_AGAIN="Table <b>%s</b> not found in the local database so its values could not be imported, please update your JCB install and try again."
|
||||||
COM_COMPONENTBUILDER_TABLE_BSB_NOT_FOUND_IN_THE_LOCAL_DATABASE_SO_ITS_VALUES_COULD_NOT_BE_IMPORTED_THE_WHOLE_POWERS_FEATURE_IS_ONLY_AVAILABLE_TO_A_HREFSPRO_MEMBERSA_AT_THIS_TIME="Table <b>%s</b> not found in the local database so its values could not be imported. The whole powers feature is only available to <a href=%s>PRO Members</a> at this time."
|
COM_COMPONENTBUILDER_TABLE_BSB_NOT_FOUND_IN_THE_LOCAL_DATABASE_SO_ITS_VALUES_COULD_NOT_BE_IMPORTED_THE_WHOLE_POWERS_FEATURE_IS_ONLY_AVAILABLE_TO_A_HREFSPRO_MEMBERSA_AT_THIS_TIME="Table <b>%s</b> not found in the local database so its values could not be imported. The whole powers feature is only available to <a href=%s>PRO Members</a> at this time."
|
||||||
COM_COMPONENTBUILDER_TARGET_BEHAVIOUR="Target Behaviour"
|
COM_COMPONENTBUILDER_TARGET_BEHAVIOUR="Target Behaviour"
|
||||||
@ -9218,7 +9219,9 @@ COM_COMPONENTBUILDER_THE_PRIVATE_KEY_FIELD_COULD_NOT_BE_LOADED_FOR_BSB_SERVER="T
|
|||||||
COM_COMPONENTBUILDER_THE_PRIVATE_KEY_FILE_COULD_NOT_BE_LOADEDFOUND_FOR_BSB_SERVER="The private key file could not be loaded/found for <b>%s</b> server!"
|
COM_COMPONENTBUILDER_THE_PRIVATE_KEY_FILE_COULD_NOT_BE_LOADEDFOUND_FOR_BSB_SERVER="The private key file could not be loaded/found for <b>%s</b> server!"
|
||||||
COM_COMPONENTBUILDER_THE_PRO_BOARD_IS_LOADING="The pro board is loading"
|
COM_COMPONENTBUILDER_THE_PRO_BOARD_IS_LOADING="The pro board is loading"
|
||||||
COM_COMPONENTBUILDER_THE_README_IS_LOADING="The readme is loading"
|
COM_COMPONENTBUILDER_THE_README_IS_LOADING="The readme is loading"
|
||||||
|
COM_COMPONENTBUILDER_THE_REPLACE_PROCESS_HAD_AN_ERROR_WITH_TABLE="The replace process had an error with table"
|
||||||
COM_COMPONENTBUILDER_THE_SEARCH_FOR_THE_SNIPPETS_ARE_CASE_SENSITIVE_SO_IF_YOU_CHANGED_THE_LOCAL_BNAMESB_OF_EITHER_OR_THE_BSNIPPET_LIBRARY_OR_SNIPPET_TYPESB_IN_ANY_SMALL_WAY_THE_SYSTEM_WILL_NOT_BE_ABLE_TO_CONNECT_YOUR_LOCAL_SNIPPETS_WITH_THOSE_IN_THE_COMMUNITY_REPOSITORY_SO_WE_STRONGLY_ADVICE_TO_BKEEP_TO_THE_COMMUNITY_NAMINGB_TO_AVOID_MISMATCHING_THAT_WILL_IN_TURN_CAUSE_DUPLICATION_SO_IF_YOU_CHANGED_ANY_NAMES_JUST_CHANGE_THEM_BACK_AND_ALL_WILL_AGAIN_WORK_AS_EXPECTED="The search for the snippets are case sensitive so if you changed the local <b>names</b> of either or the <b>snippet, library or snippet types</b> in any small way, the system will not be able to connect your local snippets with those in the community repository. So we strongly advice to <b>keep to the community naming</b> to avoid mismatching, that will in turn cause duplication. So if you changed any names, just change them back and all will again work as expected."
|
COM_COMPONENTBUILDER_THE_SEARCH_FOR_THE_SNIPPETS_ARE_CASE_SENSITIVE_SO_IF_YOU_CHANGED_THE_LOCAL_BNAMESB_OF_EITHER_OR_THE_BSNIPPET_LIBRARY_OR_SNIPPET_TYPESB_IN_ANY_SMALL_WAY_THE_SYSTEM_WILL_NOT_BE_ABLE_TO_CONNECT_YOUR_LOCAL_SNIPPETS_WITH_THOSE_IN_THE_COMMUNITY_REPOSITORY_SO_WE_STRONGLY_ADVICE_TO_BKEEP_TO_THE_COMMUNITY_NAMINGB_TO_AVOID_MISMATCHING_THAT_WILL_IN_TURN_CAUSE_DUPLICATION_SO_IF_YOU_CHANGED_ANY_NAMES_JUST_CHANGE_THEM_BACK_AND_ALL_WILL_AGAIN_WORK_AS_EXPECTED="The search for the snippets are case sensitive so if you changed the local <b>names</b> of either or the <b>snippet, library or snippet types</b> in any small way, the system will not be able to connect your local snippets with those in the community repository. So we strongly advice to <b>keep to the community naming</b> to avoid mismatching, that will in turn cause duplication. So if you changed any names, just change them back and all will again work as expected."
|
||||||
|
COM_COMPONENTBUILDER_THE_SEARCH_PROCESS_HAD_AN_ERROR_WITH_TABLE="The search process had an error with table"
|
||||||
COM_COMPONENTBUILDER_THE_SERVER_DETAILS_FOR_BID_SB_COULD_NOT_BE_RETRIEVED="The server details for <b>(ID: %s)</b> could not be retrieved!"
|
COM_COMPONENTBUILDER_THE_SERVER_DETAILS_FOR_BID_SB_COULD_NOT_BE_RETRIEVED="The server details for <b>(ID: %s)</b> could not be retrieved!"
|
||||||
COM_COMPONENTBUILDER_THE_SNIPPETS_WERE_SUCCESSFULLY_EXPORTED="The Snippets Were Successfully Exported!"
|
COM_COMPONENTBUILDER_THE_SNIPPETS_WERE_SUCCESSFULLY_EXPORTED="The Snippets Were Successfully Exported!"
|
||||||
COM_COMPONENTBUILDER_THE_SNIPPET_WAS_SUCCESSFULLY_EXPORTED="The Snippet Was Successfully Exported!"
|
COM_COMPONENTBUILDER_THE_SNIPPET_WAS_SUCCESSFULLY_EXPORTED="The Snippet Was Successfully Exported!"
|
||||||
@ -9228,7 +9231,6 @@ COM_COMPONENTBUILDER_THE_URL_S_SET_TO_RETRIEVE_THE_PACKAGES_DOES_NOT_EXIST="The
|
|||||||
COM_COMPONENTBUILDER_THE_URL_S_SET_TO_RETRIEVE_THE_PACKAGES_DOES_NOT_RETURN_ANY_DATA="The url (%s) set to retrieve the packages does not return any data!"
|
COM_COMPONENTBUILDER_THE_URL_S_SET_TO_RETRIEVE_THE_PACKAGES_DOES_NOT_RETURN_ANY_DATA="The url (%s) set to retrieve the packages does not return any data!"
|
||||||
COM_COMPONENTBUILDER_THE_WIKI_CAN_ONLY_BE_LOADED_WHEN_YOUR_JCB_SYSTEM_HAS_INTERNET_CONNECTION="The wiki can only be loaded when your JCB system has internet connection."
|
COM_COMPONENTBUILDER_THE_WIKI_CAN_ONLY_BE_LOADED_WHEN_YOUR_JCB_SYSTEM_HAS_INTERNET_CONNECTION="The wiki can only be loaded when your JCB system has internet connection."
|
||||||
COM_COMPONENTBUILDER_THE_WIKI_IS_LOADING="The wiki is loading"
|
COM_COMPONENTBUILDER_THE_WIKI_IS_LOADING="The wiki is loading"
|
||||||
COM_COMPONENTBUILDER_THIS_AREA_IS_STILL_UNDER_DEVELOPMENT_ALTHOUGH_IT_WORKS_IT_SHOULD_BE_USED_WITH_EXTREME_CAUTION_AS_ITS_NOT_STABLE="This area is still under development, although it works, it should be used with extreme caution as its not stable."
|
|
||||||
COM_COMPONENTBUILDER_THIS_BSB_IS_NOT_LINKED_TO_ANY_OTHER_AREAS_OF_JCB_AT_THIS_TIME="This <b>%s</b> is not linked to any other areas of JCB at this time!"
|
COM_COMPONENTBUILDER_THIS_BSB_IS_NOT_LINKED_TO_ANY_OTHER_AREAS_OF_JCB_AT_THIS_TIME="This <b>%s</b> is not linked to any other areas of JCB at this time!"
|
||||||
COM_COMPONENTBUILDER_THIS_CAN_NOT_BE_UNDONE_ARE_YOU_SURE_YOU_WANT_TO_CONTINUE="This can not be undone, are you sure you want to continue?"
|
COM_COMPONENTBUILDER_THIS_CAN_NOT_BE_UNDONE_ARE_YOU_SURE_YOU_WANT_TO_CONTINUE="This can not be undone, are you sure you want to continue?"
|
||||||
COM_COMPONENTBUILDER_THIS_CAN_NOT_BE_UNDONE_BYOU_HAVE_BEEN_WARNEDB="This can not be undone, <b>you have been warned</b>!"
|
COM_COMPONENTBUILDER_THIS_CAN_NOT_BE_UNDONE_BYOU_HAVE_BEEN_WARNEDB="This can not be undone, <b>you have been warned</b>!"
|
||||||
@ -9427,8 +9429,12 @@ COM_COMPONENTBUILDER_WE_SUCCESSFULLY_MOVED_BSB="We successfully moved <b>%s</b>!
|
|||||||
COM_COMPONENTBUILDER_WHILE_WE_DOWNLOAD_ALL_TWENTY_SIX_COMPILER_GIF_ANIMATIONS_RANDOMLY_USED_IN_THE_COMPILER_GUI_DURING_COMPILATION="While we download all 26 compiler GIF animations randomly used in the compiler GUI during compilation"
|
COM_COMPONENTBUILDER_WHILE_WE_DOWNLOAD_ALL_TWENTY_SIX_COMPILER_GIF_ANIMATIONS_RANDOMLY_USED_IN_THE_COMPILER_GUI_DURING_COMPILATION="While we download all 26 compiler GIF animations randomly used in the compiler GUI during compilation"
|
||||||
COM_COMPONENTBUILDER_WHOLE_WORD="Whole Word"
|
COM_COMPONENTBUILDER_WHOLE_WORD="Whole Word"
|
||||||
COM_COMPONENTBUILDER_WIKI="Wiki"
|
COM_COMPONENTBUILDER_WIKI="Wiki"
|
||||||
|
COM_COMPONENTBUILDER_WITH="with"
|
||||||
|
COM_COMPONENTBUILDER_WOULD_YOU_LIKE_TO_DO_A_REVERSE_SEARCH="Would you like to do a reverse search?"
|
||||||
|
COM_COMPONENTBUILDER_WOULD_YOU_LIKE_TO_REPEAT_THE_SAME_SEARCH="Would you like to repeat the same search?"
|
||||||
COM_COMPONENTBUILDER_YES="Yes"
|
COM_COMPONENTBUILDER_YES="Yes"
|
||||||
COM_COMPONENTBUILDER_YOUR_ARE_ABOUT_TO_REPLACE_BALLB_SEARCH_RESULTS="Your are about to replace <b>ALL</b> search results."
|
COM_COMPONENTBUILDER_YES_UPDATE_ALL="Yes! Update ALL"
|
||||||
|
COM_COMPONENTBUILDER_YOUR_ARE_ABOUT_TO_UPDATE_BALLB_VALUES_THAT_CAN_BE_FOUND_IN_THE_DATABASE="Your are about to update <b>ALL</b> values that can be found in the database."
|
||||||
COM_COMPONENTBUILDER_YOUR_ARE_ABOUT_TO_UPDATE_ROW="Your are about to update row"
|
COM_COMPONENTBUILDER_YOUR_ARE_ABOUT_TO_UPDATE_ROW="Your are about to update row"
|
||||||
COM_COMPONENTBUILDER_YOUR_DATA_IS_ENCRYPTED_WITH_A_AES_ONE_HUNDRED_AND_TWENTY_EIGHT_BIT_ENCRYPTION_USING_THE_ABOVE_THIRTY_TWO_CHARACTER_KEY="Your data is encrypted with a AES 128 bit encryption using the above 32 character key."
|
COM_COMPONENTBUILDER_YOUR_DATA_IS_ENCRYPTED_WITH_A_AES_ONE_HUNDRED_AND_TWENTY_EIGHT_BIT_ENCRYPTION_USING_THE_ABOVE_THIRTY_TWO_CHARACTER_KEY="Your data is encrypted with a AES 128 bit encryption using the above 32 character key."
|
||||||
COM_COMPONENTBUILDER_YOUR_DATA_IS_ENCRYPTED_WITH_A_AES_ONE_HUNDRED_AND_TWENTY_EIGHT_BIT_ENCRYPTION_USING_THE_ABOVE_THIRTY_TWO_CHARACTER_KEY_WITHOUT_THIS_KEY_IT_WILL_TAKE_THE_CURRENT_TECHNOLOGY_WITH_A_BRUTE_FORCE_ATTACK_METHOD_MORE_THEN_A_HREFHTTPRANDOMIZECOMHOWLONGTOHACKPASS_TARGET_BLANK_TITLEHOW_LONG_TO_HACK_PASSSEVEN_HUNDRED_ZERO_ZERO_ZERO_ZERO_ZERO_ZERO_ZERO_ZERO_ZERO_ZEROA_YEARS_TO_CRACK_THEORETICALLY_UNLESS_THEY_HAVE_THIS_KEY_ABOVE_SO_DO_KEEP_IT_SAFE="Your data is encrypted with a AES 128 bit encryption using the above 32 character key. 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. Unless they have this key above, so do keep it safe."
|
COM_COMPONENTBUILDER_YOUR_DATA_IS_ENCRYPTED_WITH_A_AES_ONE_HUNDRED_AND_TWENTY_EIGHT_BIT_ENCRYPTION_USING_THE_ABOVE_THIRTY_TWO_CHARACTER_KEY_WITHOUT_THIS_KEY_IT_WILL_TAKE_THE_CURRENT_TECHNOLOGY_WITH_A_BRUTE_FORCE_ATTACK_METHOD_MORE_THEN_A_HREFHTTPRANDOMIZECOMHOWLONGTOHACKPASS_TARGET_BLANK_TITLEHOW_LONG_TO_HACK_PASSSEVEN_HUNDRED_ZERO_ZERO_ZERO_ZERO_ZERO_ZERO_ZERO_ZERO_ZERO_ZEROA_YEARS_TO_CRACK_THEORETICALLY_UNLESS_THEY_HAVE_THIS_KEY_ABOVE_SO_DO_KEEP_IT_SAFE="Your data is encrypted with a AES 128 bit encryption using the above 32 character key. 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. Unless they have this key above, so do keep it safe."
|
||||||
@ -9458,6 +9464,7 @@ 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_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_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_YOU_WILL_NEED_TO_KNOW_HOW_S_WORKS_BASIC_YOU_WILL_ALSO_NEED_A_S_ACCOUNT_AND_KNOW_HOW_TO_MAKE_A_PULL_REQUEST_ON_GITHUB="you will need to know how %s works (basic). You will also need a %s account and know how to make a pull request on github."
|
COM_COMPONENTBUILDER_YOU_WILL_NEED_TO_KNOW_HOW_S_WORKS_BASIC_YOU_WILL_ALSO_NEED_A_S_ACCOUNT_AND_KNOW_HOW_TO_MAKE_A_PULL_REQUEST_ON_GITHUB="you will need to know how %s works (basic). You will also need a %s account and know how to make a pull request on github."
|
||||||
|
COM_COMPONENTBUILDER_YOU_WILL_REPLACE="You will replace"
|
||||||
COM_COMPONENTBUILDER_ZIPPED_FILE_LOCATION="Zipped File Location"
|
COM_COMPONENTBUILDER_ZIPPED_FILE_LOCATION="Zipped File Location"
|
||||||
COM_COMPONENTBUILDER__ADD_YOUR_PHP_SCRIPT_HERE="// Add your php script here"
|
COM_COMPONENTBUILDER__ADD_YOUR_PHP_SCRIPT_HERE="// Add your php script here"
|
||||||
COM_COMPONENTBUILDER__HAS_BEEN_CHECKED_OUT_BY_S="% has been checked out by %s"
|
COM_COMPONENTBUILDER__HAS_BEEN_CHECKED_OUT_BY_S="% has been checked out by %s"
|
||||||
|
@ -85,8 +85,6 @@ COM_COMPONENTBUILDER_ADMIN_VIEWS_BATCH_USE="Admin Views Batch Use"
|
|||||||
COM_COMPONENTBUILDER_ADMIN_VIEWS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch admin views"
|
COM_COMPONENTBUILDER_ADMIN_VIEWS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch admin views"
|
||||||
COM_COMPONENTBUILDER_ADMIN_VIEWS_CREATE="Admin Views Create"
|
COM_COMPONENTBUILDER_ADMIN_VIEWS_CREATE="Admin Views Create"
|
||||||
COM_COMPONENTBUILDER_ADMIN_VIEWS_CREATE_DESC="Allows the users in this group to create create admin views"
|
COM_COMPONENTBUILDER_ADMIN_VIEWS_CREATE_DESC="Allows the users in this group to create create admin views"
|
||||||
COM_COMPONENTBUILDER_ADMIN_VIEWS_DASHBOARD_ADD="Admin Views Dashboard Add"
|
|
||||||
COM_COMPONENTBUILDER_ADMIN_VIEWS_DASHBOARD_ADD_DESC="Allows the users in this group to dashboard add of admin view"
|
|
||||||
COM_COMPONENTBUILDER_ADMIN_VIEWS_DASHBOARD_LIST="Admin Views Dashboard List"
|
COM_COMPONENTBUILDER_ADMIN_VIEWS_DASHBOARD_LIST="Admin Views Dashboard List"
|
||||||
COM_COMPONENTBUILDER_ADMIN_VIEWS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of admin view"
|
COM_COMPONENTBUILDER_ADMIN_VIEWS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of admin view"
|
||||||
COM_COMPONENTBUILDER_ADMIN_VIEWS_DELETE="Admin Views Delete"
|
COM_COMPONENTBUILDER_ADMIN_VIEWS_DELETE="Admin Views Delete"
|
||||||
@ -440,8 +438,6 @@ COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_BATCH_USE="Custom Admin Views Batch Use"
|
|||||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch custom admin views"
|
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch custom admin views"
|
||||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_CREATE="Custom Admin Views Create"
|
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_CREATE="Custom Admin Views Create"
|
||||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_CREATE_DESC="Allows the users in this group to create create custom admin views"
|
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_CREATE_DESC="Allows the users in this group to create create custom admin views"
|
||||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_DASHBOARD_ADD="Custom Admin Views Dashboard Add"
|
|
||||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_DASHBOARD_ADD_DESC="Allows the users in this group to dashboard add of custom admin view"
|
|
||||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_DASHBOARD_LIST="Custom Admin Views Dashboard List"
|
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_DASHBOARD_LIST="Custom Admin Views Dashboard List"
|
||||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of custom admin view"
|
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of custom admin view"
|
||||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_DELETE="Custom Admin Views Delete"
|
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_DELETE="Custom Admin Views Delete"
|
||||||
@ -1022,6 +1018,8 @@ COM_COMPONENTBUILDER_SEARCH_ACCESS="Search Access"
|
|||||||
COM_COMPONENTBUILDER_SEARCH_ACCESS_DESC="Allows the users in this group to access search."
|
COM_COMPONENTBUILDER_SEARCH_ACCESS_DESC="Allows the users in this group to access search."
|
||||||
COM_COMPONENTBUILDER_SEARCH_COMPILER_BUTTON_ACCESS="Search Compiler Button Access"
|
COM_COMPONENTBUILDER_SEARCH_COMPILER_BUTTON_ACCESS="Search Compiler Button Access"
|
||||||
COM_COMPONENTBUILDER_SEARCH_COMPILER_BUTTON_ACCESS_DESC="Allows the users in this group to access the compiler button."
|
COM_COMPONENTBUILDER_SEARCH_COMPILER_BUTTON_ACCESS_DESC="Allows the users in this group to access the compiler button."
|
||||||
|
COM_COMPONENTBUILDER_SEARCH_DASHBOARD_LIST="Search Dashboard List"
|
||||||
|
COM_COMPONENTBUILDER_SEARCH_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of Search"
|
||||||
COM_COMPONENTBUILDER_SEARCH_SUBMENU="Search Submenu"
|
COM_COMPONENTBUILDER_SEARCH_SUBMENU="Search Submenu"
|
||||||
COM_COMPONENTBUILDER_SEARCH_SUBMENU_DESC="Allows the users in this group to submenu of Search"
|
COM_COMPONENTBUILDER_SEARCH_SUBMENU_DESC="Allows the users in this group to submenu of Search"
|
||||||
COM_COMPONENTBUILDER_SERVERS_ACCESS="Servers Access"
|
COM_COMPONENTBUILDER_SERVERS_ACCESS="Servers Access"
|
||||||
@ -1058,8 +1056,6 @@ COM_COMPONENTBUILDER_SITE_VIEWS_BATCH_USE="Site Views Batch Use"
|
|||||||
COM_COMPONENTBUILDER_SITE_VIEWS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch site views"
|
COM_COMPONENTBUILDER_SITE_VIEWS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch site views"
|
||||||
COM_COMPONENTBUILDER_SITE_VIEWS_CREATE="Site Views Create"
|
COM_COMPONENTBUILDER_SITE_VIEWS_CREATE="Site Views Create"
|
||||||
COM_COMPONENTBUILDER_SITE_VIEWS_CREATE_DESC="Allows the users in this group to create create site views"
|
COM_COMPONENTBUILDER_SITE_VIEWS_CREATE_DESC="Allows the users in this group to create create site views"
|
||||||
COM_COMPONENTBUILDER_SITE_VIEWS_DASHBOARD_ADD="Site Views Dashboard Add"
|
|
||||||
COM_COMPONENTBUILDER_SITE_VIEWS_DASHBOARD_ADD_DESC="Allows the users in this group to dashboard add of site view"
|
|
||||||
COM_COMPONENTBUILDER_SITE_VIEWS_DASHBOARD_LIST="Site Views Dashboard List"
|
COM_COMPONENTBUILDER_SITE_VIEWS_DASHBOARD_LIST="Site Views Dashboard List"
|
||||||
COM_COMPONENTBUILDER_SITE_VIEWS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of site view"
|
COM_COMPONENTBUILDER_SITE_VIEWS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of site view"
|
||||||
COM_COMPONENTBUILDER_SITE_VIEWS_DELETE="Site Views Delete"
|
COM_COMPONENTBUILDER_SITE_VIEWS_DELETE="Site Views Delete"
|
||||||
|
@ -3639,10 +3639,19 @@ class ComponentbuilderModelAjax extends ListModel
|
|||||||
|
|
||||||
if (($items = SearchFactory::_('Agent')->table($tableName)) !== null)
|
if (($items = SearchFactory::_('Agent')->table($tableName)) !== null)
|
||||||
{
|
{
|
||||||
return ['success' => JText::sprintf('COM_COMPONENTBUILDER_WE_FOUND_SOME_INSTANCES_IN_S', $tableName), 'items' => $items];
|
return [
|
||||||
|
'success' => JText::sprintf('COM_COMPONENTBUILDER_WE_FOUND_SOME_INSTANCES_IN_S', $tableName),
|
||||||
|
'items' => $items,
|
||||||
|
'fields_count' => SearchFactory::_('Config')->field_counter,
|
||||||
|
'line_count' => SearchFactory::_('Config')->line_counter
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
return ['not_found' => JText::sprintf('COM_COMPONENTBUILDER_NO_INSTANCES_WHERE_FOUND_IN_S', $tableName)];
|
return [
|
||||||
|
'not_found' => JText::sprintf('COM_COMPONENTBUILDER_NO_INSTANCES_WHERE_FOUND_IN_S', $tableName),
|
||||||
|
'fields_count' => SearchFactory::_('Config')->field_counter,
|
||||||
|
'line_count' => SearchFactory::_('Config')->line_counter
|
||||||
|
];
|
||||||
}
|
}
|
||||||
catch(Exception $error)
|
catch(Exception $error)
|
||||||
{
|
{
|
||||||
|
@ -30,13 +30,15 @@ class ComponentbuilderModelComponentbuilder extends ListModel
|
|||||||
$icons = array();
|
$icons = array();
|
||||||
// view groups array
|
// view groups array
|
||||||
$viewGroups = array(
|
$viewGroups = array(
|
||||||
'main' => array('png.compiler', 'png.joomla_components', 'png.joomla_modules', 'png.joomla_plugins', 'png.powers', 'png||importjcbpackages||index.php?option=com_componentbuilder&view=joomla_components&task=joomla_components.smartImport', 'png.admin_view.add', 'png.admin_views', 'png.custom_admin_view.add', 'png.custom_admin_views', 'png.site_view.add', 'png.site_views', 'png.template.add', 'png.templates', 'png.layouts', 'png.dynamic_get.add', 'png.dynamic_gets', 'png.custom_codes', 'png.placeholders', 'png.libraries', 'png.snippets', 'png.get_snippets', 'png.validation_rules', 'png.field.add', 'png.fields', 'png.fields.catid_qpo0O0oqp_com_componentbuilder_po0O0oq_field', 'png.fieldtypes', 'png.fieldtypes.catid_qpo0O0oqp_com_componentbuilder_po0O0oq_fieldtype', 'png.language_translations', 'png.servers', 'png.help_documents')
|
'main' => array('png.compiler', 'png.joomla_components', 'png.joomla_modules', 'png.joomla_plugins', 'png.powers', 'png.search', 'png||importjcbpackages||index.php?option=com_componentbuilder&view=joomla_components&task=joomla_components.smartImport', 'png.admin_views', 'png.custom_admin_views', 'png.site_views', 'png.template.add', 'png.templates', 'png.layouts', 'png.dynamic_get.add', 'png.dynamic_gets', 'png.custom_codes', 'png.placeholders', 'png.libraries', 'png.snippets', 'png.get_snippets', 'png.validation_rules', 'png.field.add', 'png.fields', 'png.fields.catid_qpo0O0oqp_com_componentbuilder_po0O0oq_field', 'png.fieldtypes', 'png.fieldtypes.catid_qpo0O0oqp_com_componentbuilder_po0O0oq_fieldtype', 'png.language_translations', 'png.servers', 'png.help_documents')
|
||||||
);
|
);
|
||||||
// view access array
|
// view access array
|
||||||
$viewAccess = array(
|
$viewAccess = array(
|
||||||
'compiler.submenu' => 'compiler.submenu',
|
'compiler.submenu' => 'compiler.submenu',
|
||||||
'compiler.dashboard_list' => 'compiler.dashboard_list',
|
'compiler.dashboard_list' => 'compiler.dashboard_list',
|
||||||
|
'search.access' => 'search.access',
|
||||||
'search.submenu' => 'search.submenu',
|
'search.submenu' => 'search.submenu',
|
||||||
|
'search.dashboard_list' => 'search.dashboard_list',
|
||||||
'get_snippets.submenu' => 'get_snippets.submenu',
|
'get_snippets.submenu' => 'get_snippets.submenu',
|
||||||
'get_snippets.dashboard_list' => 'get_snippets.dashboard_list',
|
'get_snippets.dashboard_list' => 'get_snippets.dashboard_list',
|
||||||
'joomla_component.create' => 'joomla_component.create',
|
'joomla_component.create' => 'joomla_component.create',
|
||||||
@ -64,17 +66,14 @@ class ComponentbuilderModelComponentbuilder extends ListModel
|
|||||||
'admin_view.access' => 'admin_view.access',
|
'admin_view.access' => 'admin_view.access',
|
||||||
'admin_views.submenu' => 'admin_view.submenu',
|
'admin_views.submenu' => 'admin_view.submenu',
|
||||||
'admin_views.dashboard_list' => 'admin_view.dashboard_list',
|
'admin_views.dashboard_list' => 'admin_view.dashboard_list',
|
||||||
'admin_view.dashboard_add' => 'admin_view.dashboard_add',
|
|
||||||
'custom_admin_views.access' => 'custom_admin_view.access',
|
'custom_admin_views.access' => 'custom_admin_view.access',
|
||||||
'custom_admin_view.access' => 'custom_admin_view.access',
|
'custom_admin_view.access' => 'custom_admin_view.access',
|
||||||
'custom_admin_views.submenu' => 'custom_admin_view.submenu',
|
'custom_admin_views.submenu' => 'custom_admin_view.submenu',
|
||||||
'custom_admin_views.dashboard_list' => 'custom_admin_view.dashboard_list',
|
'custom_admin_views.dashboard_list' => 'custom_admin_view.dashboard_list',
|
||||||
'custom_admin_view.dashboard_add' => 'custom_admin_view.dashboard_add',
|
|
||||||
'site_views.access' => 'site_view.access',
|
'site_views.access' => 'site_view.access',
|
||||||
'site_view.access' => 'site_view.access',
|
'site_view.access' => 'site_view.access',
|
||||||
'site_views.submenu' => 'site_view.submenu',
|
'site_views.submenu' => 'site_view.submenu',
|
||||||
'site_views.dashboard_list' => 'site_view.dashboard_list',
|
'site_views.dashboard_list' => 'site_view.dashboard_list',
|
||||||
'site_view.dashboard_add' => 'site_view.dashboard_add',
|
|
||||||
'templates.access' => 'template.access',
|
'templates.access' => 'template.access',
|
||||||
'template.access' => 'template.access',
|
'template.access' => 'template.access',
|
||||||
'templates.submenu' => 'template.submenu',
|
'templates.submenu' => 'template.submenu',
|
||||||
|
@ -180,7 +180,8 @@ class ComponentbuilderModelSearch extends ItemModel
|
|||||||
'replace_value' => SearchFactory::_('Config')->get('replace_value', ''),
|
'replace_value' => SearchFactory::_('Config')->get('replace_value', ''),
|
||||||
'match_case' => SearchFactory::_('Config')->get('match_case', 0),
|
'match_case' => SearchFactory::_('Config')->get('match_case', 0),
|
||||||
'whole_word' => SearchFactory::_('Config')->get('whole_word', 0),
|
'whole_word' => SearchFactory::_('Config')->get('whole_word', 0),
|
||||||
'regex_search' => SearchFactory::_('Config')->get('regex_search', 0)
|
'regex_search' => SearchFactory::_('Config')->get('regex_search', 0),
|
||||||
|
'table_name' => SearchFactory::_('Config')->get('table_name', -1)
|
||||||
];
|
];
|
||||||
|
|
||||||
if (empty($data))
|
if (empty($data))
|
||||||
|
@ -17,9 +17,15 @@ JHtml::_('behavior.formvalidator');
|
|||||||
JHtml::_('formbehavior.chosen', 'select');
|
JHtml::_('formbehavior.chosen', 'select');
|
||||||
JHtml::_('behavior.keepalive');
|
JHtml::_('behavior.keepalive');
|
||||||
|
|
||||||
|
// allow main menu selection
|
||||||
$this->app->input->set('hidemainmenu', false);
|
$this->app->input->set('hidemainmenu', false);
|
||||||
$selectNotice = '<h3>' . JText::_('COM_COMPONENTBUILDER_HI') . ' ' . $this->user->name . '</h3>';
|
|
||||||
$selectNotice .= '<p>' . JText::_('COM_COMPONENTBUILDER_ENTER_YOUR_SEARCH_TEXT') . '</p>';
|
// set the basu URL
|
||||||
|
$url_base = JUri::base() . 'index.php?option=com_componentbuilder';
|
||||||
|
$url_search = $url_base . '&view=search';
|
||||||
|
|
||||||
|
// get main search input field
|
||||||
|
$search_value = $this->form->getField('search_value');
|
||||||
?>
|
?>
|
||||||
<?php if ($this->canDo->get('search.access')): ?>
|
<?php if ($this->canDo->get('search.access')): ?>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
@ -36,10 +42,6 @@ $selectNotice .= '<p>' . JText::_('COM_COMPONENTBUILDER_ENTER_YOUR_SEARCH_TEXT')
|
|||||||
</script>
|
</script>
|
||||||
<?php $urlId = (isset($this->item->id)) ? '&id='. (int) $this->item->id : ''; ?>
|
<?php $urlId = (isset($this->item->id)) ? '&id='. (int) $this->item->id : ''; ?>
|
||||||
|
|
||||||
<div class="alert alert-danger" role="alert">
|
|
||||||
<?php echo JText::_('COM_COMPONENTBUILDER_THIS_AREA_IS_STILL_UNDER_DEVELOPMENT_ALTHOUGH_IT_WORKS_IT_SHOULD_BE_USED_WITH_EXTREME_CAUTION_AS_ITS_NOT_STABLE'); ?>
|
|
||||||
</div>
|
|
||||||
<hr />
|
|
||||||
<?php if(!empty( $this->sidebar)): ?>
|
<?php if(!empty( $this->sidebar)): ?>
|
||||||
<div id="j-sidebar-container" class="span2">
|
<div id="j-sidebar-container" class="span2">
|
||||||
<?php echo $this->sidebar; ?>
|
<?php echo $this->sidebar; ?>
|
||||||
@ -49,7 +51,7 @@ $selectNotice .= '<p>' . JText::_('COM_COMPONENTBUILDER_ENTER_YOUR_SEARCH_TEXT')
|
|||||||
<div id="j-main-container">
|
<div id="j-main-container">
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<?php if ($this->form): ?>
|
<?php if ($this->form): ?>
|
||||||
<form action="<?php echo JRoute::_('index.php?option=com_componentbuilder&view=search'); ?>" method="post"
|
<form action="<?php echo JRoute::_($url_search); ?>" method="post"
|
||||||
name="adminForm" id="adminForm" class="form-validate" enctype="multipart/form-data">
|
name="adminForm" id="adminForm" class="form-validate" enctype="multipart/form-data">
|
||||||
<div class="form-horizontal">
|
<div class="form-horizontal">
|
||||||
<div class="row-fluid" id="search_progress_block" style="display: none">
|
<div class="row-fluid" id="search_progress_block" style="display: none">
|
||||||
@ -57,6 +59,11 @@ $selectNotice .= '<p>' . JText::_('COM_COMPONENTBUILDER_ENTER_YOUR_SEARCH_TEXT')
|
|||||||
<div id="search_progress_bar" class="uk-progress-bar" style="width: 0%;">0%</div>
|
<div id="search_progress_bar" class="uk-progress-bar" style="width: 0%;">0%</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="row-fluid" id="replace_progress_block" style="display: none">
|
||||||
|
<div class="uk-progress uk-progress-small uk-progress-danger uk-progress-striped uk-active">
|
||||||
|
<div id="replace_progress_bar" class="uk-progress-bar" style="width: 0%;"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="row-fluid" id="search_details_block" style="display: none">
|
<div class="row-fluid" id="search_details_block" style="display: none">
|
||||||
<span id="search_details">
|
<span id="search_details">
|
||||||
<span class="search_details_title"><?php echo JText::_('COM_COMPONENTBUILDER_SEARCHED_FOR'); ?></span>:
|
<span class="search_details_title"><?php echo JText::_('COM_COMPONENTBUILDER_SEARCHED_FOR'); ?></span>:
|
||||||
@ -66,16 +73,42 @@ $selectNotice .= '<p>' . JText::_('COM_COMPONENTBUILDER_ENTER_YOUR_SEARCH_TEXT')
|
|||||||
<span class="search_details_title"><?php echo JText::_('COM_COMPONENTBUILDER_REPLACED_WITH'); ?></span>:
|
<span class="search_details_title"><?php echo JText::_('COM_COMPONENTBUILDER_REPLACED_WITH'); ?></span>:
|
||||||
[<span id="replaced" class="found_code">....</span>]
|
[<span id="replaced" class="found_code">....</span>]
|
||||||
</span>
|
</span>
|
||||||
<button style="float: right;" type="button" onclick="showSearch();" class="btn button-new btn-success">
|
<div class="btn-group" style="float: right;">
|
||||||
|
<button style="display: none;" type="button" onclick="replaceAllCheck();" class="update_all_block hasTooltip btn button-new btn-danger"
|
||||||
|
title="<?php echo JText::_('COM_COMPONENTBUILDER_UPDATE_ALL_ITEMS_FOUND_WITH_THIS_DATABASE_SEARCH_WITH_THE_REPLACE_VALUE'); ?>">
|
||||||
|
<span class="icon-database icon-white" aria-hidden="true"></span>
|
||||||
|
<?php echo JText::_('COM_COMPONENTBUILDER_UPDATE_ALL'); ?>
|
||||||
|
</button>
|
||||||
|
<button type="button" onclick="showSearch();" class="btn button-new btn-success">
|
||||||
<span class="icon-search icon-white" aria-hidden="true"></span>
|
<span class="icon-search icon-white" aria-hidden="true"></span>
|
||||||
<?php echo JText::_('COM_COMPONENTBUILDER_SEARCH_DATABASE_AGAIN'); ?>
|
<?php echo JText::_('COM_COMPONENTBUILDER_SEARCH_DATABASE_AGAIN'); ?>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
<div class="row-fluid" id="search_settings_block">
|
<div class="row-fluid" id="search_settings_block">
|
||||||
<div class="span7">
|
<div class="span7">
|
||||||
<?php echo $this->form->renderField('type_search'); ?>
|
<?php echo $this->form->renderField('type_search'); ?>
|
||||||
<?php echo $this->form->renderField('search_value'); ?>
|
<div class="btn-wrapper input-append">
|
||||||
|
<?php echo $search_value->input; ?>
|
||||||
|
<button id="start_search_button" onclick="startSearch(this, true);" type="button" class="btn hasTooltip"
|
||||||
|
title="<?php echo JHtml::_('tooltipText', 'COM_COMPONENTBUILDER_START_A_SEARCH'); ?>"
|
||||||
|
aria-label="<?php echo JText::_('COM_COMPONENTBUILDER_START_A_SEARCH'); ?>">
|
||||||
|
<span class="icon-search" aria-hidden="true"></span>
|
||||||
|
</button>
|
||||||
|
<button id="stop_search_button" onclick="stopSearch();" type="button" class="btn btn-danger hasTooltip" style="display: none"
|
||||||
|
title="<?php echo JHtml::_('tooltipText', 'COM_COMPONENTBUILDER_STOP_A_SEARCH'); ?>"
|
||||||
|
aria-label="<?php echo JText::_('COM_COMPONENTBUILDER_STOP_A_SEARCH'); ?>">
|
||||||
|
<span class="icon-stop" aria-hidden="true"></span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
<?php echo $this->form->renderField('replace_value'); ?>
|
<?php echo $this->form->renderField('replace_value'); ?>
|
||||||
|
<div class="update_all_block" style="display: none;">
|
||||||
|
<button type="button" onclick="replaceAllCheck();" class="hasTooltip btn btn-small button-new btn-danger span11"
|
||||||
|
title="<?php echo JText::_('COM_COMPONENTBUILDER_UPDATE_ALL_ITEMS_FOUND_WITH_THIS_DATABASE_SEARCH_WITH_THE_REPLACE_VALUE'); ?>">
|
||||||
|
<span class="icon-database icon-white" aria-hidden="true"></span>
|
||||||
|
<?php echo JText::_('COM_COMPONENTBUILDER_UPDATE_ALL'); ?>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="span4">
|
<div class="span4">
|
||||||
<?php echo $this->form->renderFieldset('settings'); ?>
|
<?php echo $this->form->renderFieldset('settings'); ?>
|
||||||
@ -88,9 +121,8 @@ $selectNotice .= '<p>' . JText::_('COM_COMPONENTBUILDER_ENTER_YOUR_SEARCH_TEXT')
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row-fluid" id="item_view_block">
|
<div class="row-fluid" id="item_view_block">
|
||||||
|
<div id="item_notice_block" style="display: none">
|
||||||
<hr>
|
<hr>
|
||||||
<div>
|
|
||||||
<span id="item_notice_block" style="display: none">
|
|
||||||
<span id="item_edit_button"></span>
|
<span id="item_edit_button"></span>
|
||||||
<?php echo JText::_('COM_COMPONENTBUILDER_TABLE'); ?>: <b><span id="item_table_name">
|
<?php echo JText::_('COM_COMPONENTBUILDER_TABLE'); ?>: <b><span id="item_table_name">
|
||||||
</span></b>(<?php echo JText::_('COM_COMPONENTBUILDER_ID'); ?>:<b><span id="item_row_id">
|
</span></b>(<?php echo JText::_('COM_COMPONENTBUILDER_ID'); ?>:<b><span id="item_row_id">
|
||||||
@ -102,18 +134,13 @@ $selectNotice .= '<p>' . JText::_('COM_COMPONENTBUILDER_ENTER_YOUR_SEARCH_TEXT')
|
|||||||
title="<?php echo JText::_('COM_COMPONENTBUILDER_SAVE_ALL_CHANGES_MADE_TO_THE_SELECTED_ITEM'); ?>">
|
title="<?php echo JText::_('COM_COMPONENTBUILDER_SAVE_ALL_CHANGES_MADE_TO_THE_SELECTED_ITEM'); ?>">
|
||||||
<?php echo JText::_('COM_COMPONENTBUILDER_SAVE_ITEM'); ?>
|
<?php echo JText::_('COM_COMPONENTBUILDER_SAVE_ITEM'); ?>
|
||||||
</button>
|
</button>
|
||||||
</span>
|
|
||||||
<span id="update_all_block" style="display: none;">
|
|
||||||
<button style="float: right;" type="button" onclick="replaceAllCheck();" class="hasTooltip btn btn-small button-new btn-danger"
|
|
||||||
title="<?php echo JText::_('COM_COMPONENTBUILDER_UPDATE_ALL_ITEMS_FOUND_WITH_THIS_DATABASE_SEARCH_WITH_THE_REPLACE_VALUE'); ?>">
|
|
||||||
<?php echo JText::_('COM_COMPONENTBUILDER_UPDATE_ALL'); ?>
|
|
||||||
</button>
|
|
||||||
</span>
|
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
<?php echo $this->form->getInput('item_code'); ?>
|
<?php echo $this->form->getInput('item_code'); ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<input type="hidden" name="task" value="" />
|
||||||
|
<?php echo JHtml::_('form.token'); ?>
|
||||||
</form>
|
</form>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
</div>
|
</div>
|
||||||
@ -125,10 +152,18 @@ $selectNotice .= '<p>' . JText::_('COM_COMPONENTBUILDER_ENTER_YOUR_SEARCH_TEXT')
|
|||||||
const searchTables = <?php echo json_encode($this->item['tables']); ?>;
|
const searchTables = <?php echo json_encode($this->item['tables']); ?>;
|
||||||
|
|
||||||
// the search Ajax URLs
|
// the search Ajax URLs
|
||||||
const Url = '<?php echo JUri::base(); ?>index.php?option=com_componentbuilder&format=json&raw=true&<?php echo JSession::getFormToken(); ?>=1&task=ajax.';
|
const UrlAjax = '<?php echo $url_base; ?>&format=json&raw=true&<?php echo JSession::getFormToken(); ?>=1&task=ajax.';
|
||||||
|
|
||||||
|
// the search URL
|
||||||
|
const UrlSearch = '<?php echo $url_search; ?>';
|
||||||
|
|
||||||
// make sure our controller is set
|
// make sure our controller is set
|
||||||
let controller = null;
|
let controller = null;
|
||||||
|
let controller_replace = null;
|
||||||
|
|
||||||
|
// some counters
|
||||||
|
var fieldCount = 0;
|
||||||
|
var lineCount = 0;
|
||||||
|
|
||||||
// start search time keepers
|
// start search time keepers
|
||||||
var startSearchTime, endSearchTime;
|
var startSearchTime, endSearchTime;
|
||||||
@ -139,6 +174,8 @@ var editButtonSelected;
|
|||||||
// get search progress area
|
// get search progress area
|
||||||
const searchProgressObject = document.getElementById("search_progress_block");
|
const searchProgressObject = document.getElementById("search_progress_block");
|
||||||
const searchProgressBarObject = document.getElementById("search_progress_bar");
|
const searchProgressBarObject = document.getElementById("search_progress_bar");
|
||||||
|
const replaceProgressObject = document.getElementById("replace_progress_block");
|
||||||
|
const replaceProgressBarObject = document.getElementById("replace_progress_bar");
|
||||||
|
|
||||||
// get search settings area
|
// get search settings area
|
||||||
const searchSettingsObject = document.getElementById("search_settings_block");
|
const searchSettingsObject = document.getElementById("search_settings_block");
|
||||||
@ -149,8 +186,16 @@ const searchedObject = document.getElementById("searched");
|
|||||||
const replaceDetailsObject = document.getElementById("replace_details");
|
const replaceDetailsObject = document.getElementById("replace_details");
|
||||||
const replacedObject = document.getElementById("replaced");
|
const replacedObject = document.getElementById("replaced");
|
||||||
|
|
||||||
// set the search mode object
|
// set the search mode objects
|
||||||
const modeObject = document.getElementById("type_search");
|
const modeObject = document.getElementById("type_search");
|
||||||
|
const typeSearchObject = document.getElementById("type_search0");
|
||||||
|
const typeReplaceObject = document.getElementById("type_search1");
|
||||||
|
const typeSearchLabelObject = document.querySelector('[for=type_search0]');
|
||||||
|
const typeReplaceLabelObject = document.querySelector('[for=type_search1]');
|
||||||
|
|
||||||
|
// search buttons
|
||||||
|
const startSearchButton = document.getElementById("start_search_button");
|
||||||
|
const stopSearchButton = document.getElementById("stop_search_button");
|
||||||
|
|
||||||
// set the search settings objects
|
// set the search settings objects
|
||||||
const searchObject = document.getElementById("search_value");
|
const searchObject = document.getElementById("search_value");
|
||||||
@ -161,17 +206,17 @@ const regexObject = document.getElementById("search_behaviour2");
|
|||||||
const tableObject = document.getElementById("table_name");
|
const tableObject = document.getElementById("table_name");
|
||||||
|
|
||||||
// Do the search on key up of search or replace input elements
|
// Do the search on key up of search or replace input elements
|
||||||
searchObject.onkeyup = onChange;
|
searchObject.onkeyup = startSearch;
|
||||||
|
|
||||||
// when the made changes and there is replace value do search
|
// when the made changes and there is replace value do search
|
||||||
modeObject.onchange = onChange;
|
modeObject.onchange = startSearch;
|
||||||
replaceObject.onkeyup = onChange;
|
replaceObject.onkeyup = startSearch;
|
||||||
|
|
||||||
// Do the search on key up of search input elements
|
// Do the search on key up of search input elements
|
||||||
matchObject.onchange = onChange;
|
matchObject.onchange = startSearch;
|
||||||
wholeObject.onchange = onChange;
|
wholeObject.onchange = startSearch;
|
||||||
regexObject.onchange = onChange;
|
regexObject.onchange = startSearch;
|
||||||
tableObject.onchange = onChange;
|
tableObject.onchange = startSearch;
|
||||||
|
|
||||||
// set the item notice area
|
// set the item notice area
|
||||||
const itemNoticeObject = document.getElementById("item_notice_block");
|
const itemNoticeObject = document.getElementById("item_notice_block");
|
||||||
@ -183,7 +228,7 @@ const itemLineNumberObject = document.getElementById("item_line_number");
|
|||||||
|
|
||||||
// set the update buttons
|
// set the update buttons
|
||||||
const buttonUpdateItemObject = document.getElementById("item_button_update");
|
const buttonUpdateItemObject = document.getElementById("item_button_update");
|
||||||
const buttonUpdateAllObject = document.getElementById("update_all_block");
|
const buttonUpdateAllObject = document.querySelectorAll(".update_all_block");
|
||||||
|
|
||||||
// get the editor
|
// get the editor
|
||||||
var editorObject;
|
var editorObject;
|
||||||
@ -200,8 +245,10 @@ const tableConfigObject = {
|
|||||||
order: [[ 2, "asc" ]],
|
order: [[ 2, "asc" ]],
|
||||||
select: true,
|
select: true,
|
||||||
paging: true,
|
paging: true,
|
||||||
|
deferRender: true,
|
||||||
lengthMenu: [5, 10, 20 ,50, 80, 100, 150, 200, 500, 1000, 1500, 2000],
|
lengthMenu: [5, 10, 20 ,50, 80, 100, 150, 200, 500, 1000, 1500, 2000],
|
||||||
pageLength: 80,
|
pageLength: 80,
|
||||||
|
// pagingType: "scrolling", // NOT YET
|
||||||
scrollY: 170,
|
scrollY: 170,
|
||||||
columnDefs: [
|
columnDefs: [
|
||||||
{ 'targets': [ 0 ], 'visible': false, 'searchable': false },
|
{ 'targets': [ 0 ], 'visible': false, 'searchable': false },
|
||||||
@ -283,7 +330,7 @@ document.addEventListener('DOMContentLoaded', function () {
|
|||||||
|
|
||||||
showSearch();
|
showSearch();
|
||||||
<?php if (strlen($this->urlvalues['search_value']) > 2): ?>
|
<?php if (strlen($this->urlvalues['search_value']) > 2): ?>
|
||||||
onChange();
|
startSearch();
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -62,12 +62,25 @@ class ComponentbuilderViewSearch extends HtmlView
|
|||||||
JText::script('COM_COMPONENTBUILDER_FIELD_IN_THE');
|
JText::script('COM_COMPONENTBUILDER_FIELD_IN_THE');
|
||||||
JText::script('COM_COMPONENTBUILDER_TABLE');
|
JText::script('COM_COMPONENTBUILDER_TABLE');
|
||||||
JText::script('COM_COMPONENTBUILDER_THIS_CAN_NOT_BE_UNDONE_ARE_YOU_SURE_YOU_WANT_TO_CONTINUE');
|
JText::script('COM_COMPONENTBUILDER_THIS_CAN_NOT_BE_UNDONE_ARE_YOU_SURE_YOU_WANT_TO_CONTINUE');
|
||||||
JText::script('COM_COMPONENTBUILDER_YOUR_ARE_ABOUT_TO_REPLACE_BALLB_SEARCH_RESULTS');
|
JText::script('COM_COMPONENTBUILDER_YOUR_ARE_ABOUT_TO_UPDATE_BALLB_VALUES_THAT_CAN_BE_FOUND_IN_THE_DATABASE');
|
||||||
|
JText::script('COM_COMPONENTBUILDER_YOU_WILL_REPLACE');
|
||||||
|
JText::script('COM_COMPONENTBUILDER_WITH');
|
||||||
JText::script('COM_COMPONENTBUILDER_THIS_CAN_NOT_BE_UNDONE_BYOU_HAVE_BEEN_WARNEDB');
|
JText::script('COM_COMPONENTBUILDER_THIS_CAN_NOT_BE_UNDONE_BYOU_HAVE_BEEN_WARNEDB');
|
||||||
JText::script('COM_COMPONENTBUILDER_ARE_YOU_THEREFORE_ABSOLUTELY_SURE_YOU_WANT_TO_CONTINUE');
|
JText::script('COM_COMPONENTBUILDER_ARE_YOU_THEREFORE_ABSOLUTELY_SURE_YOU_WANT_TO_CONTINUE');
|
||||||
JText::script('COM_COMPONENTBUILDER_SEARCH_FINISHED_IN');
|
JText::script('COM_COMPONENTBUILDER_THE_SEARCH_PROCESS_HAD_AN_ERROR_WITH_TABLE');
|
||||||
|
JText::script('COM_COMPONENTBUILDER_THE_REPLACE_PROCESS_HAD_AN_ERROR_WITH_TABLE');
|
||||||
|
JText::script('COM_COMPONENTBUILDER_REPLACE_PROCESS_COMPLETE');
|
||||||
|
JText::script('COM_COMPONENTBUILDER_SEARCHING');
|
||||||
|
JText::script('COM_COMPONENTBUILDER_TABLES_WITH');
|
||||||
|
JText::script('COM_COMPONENTBUILDER_FIELDS_THAT_HAD');
|
||||||
|
JText::script('COM_COMPONENTBUILDER_LINES');
|
||||||
|
JText::script('COM_COMPONENTBUILDER_AND_FINISHED_THE_SEARCH_IN');
|
||||||
JText::script('COM_COMPONENTBUILDER_SECONDS');
|
JText::script('COM_COMPONENTBUILDER_SECONDS');
|
||||||
|
JText::script('COM_COMPONENTBUILDER_WOULD_YOU_LIKE_TO_DO_A_REVERSE_SEARCH');
|
||||||
|
JText::script('COM_COMPONENTBUILDER_WOULD_YOU_LIKE_TO_REPEAT_THE_SAME_SEARCH');
|
||||||
|
JText::script('COM_COMPONENTBUILDER_YES_UPDATE_ALL');
|
||||||
|
JText::script('COM_COMPONENTBUILDER_NO');
|
||||||
|
JText::script('COM_COMPONENTBUILDER_YES');
|
||||||
|
|
||||||
// We don't need toolbar in the modal window.
|
// We don't need toolbar in the modal window.
|
||||||
if ($this->getLayout() !== 'modal')
|
if ($this->getLayout() !== 'modal')
|
||||||
@ -116,6 +129,7 @@ class ComponentbuilderViewSearch extends HtmlView
|
|||||||
$attributes = [
|
$attributes = [
|
||||||
'type' => 'radio',
|
'type' => 'radio',
|
||||||
'name' => 'type_search',
|
'name' => 'type_search',
|
||||||
|
'hiddenLabel' => true,
|
||||||
'label' => 'COM_COMPONENTBUILDER_MODE',
|
'label' => 'COM_COMPONENTBUILDER_MODE',
|
||||||
'class' => 'btn-group',
|
'class' => 'btn-group',
|
||||||
'description' => 'COM_COMPONENTBUILDER_SEARCH_OR_SEARCH_AND_REPLACE',
|
'description' => 'COM_COMPONENTBUILDER_SEARCH_OR_SEARCH_AND_REPLACE',
|
||||||
@ -135,12 +149,13 @@ class ComponentbuilderViewSearch extends HtmlView
|
|||||||
$attributes = [
|
$attributes = [
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'name' => 'search_value',
|
'name' => 'search_value',
|
||||||
|
'hiddenLabel' => true,
|
||||||
'label' => 'COM_COMPONENTBUILDER_SEARCH',
|
'label' => 'COM_COMPONENTBUILDER_SEARCH',
|
||||||
'size' => 150,
|
'size' => 150,
|
||||||
'maxlength' => 200,
|
'maxlength' => 200,
|
||||||
'description' => 'COM_COMPONENTBUILDER_HERE_YOU_CAN_ENTER_YOUR_SEARCH_TEXT',
|
'description' => 'COM_COMPONENTBUILDER_HERE_YOU_CAN_ENTER_YOUR_SEARCH_TEXT',
|
||||||
'filter' => 'RAW',
|
'filter' => 'RAW',
|
||||||
'class' => 'search-value span12',
|
'class' => 'search-value span11',
|
||||||
'hint' => 'COM_COMPONENTBUILDER_ENTER_YOUR_SEARCH_TEXT',
|
'hint' => 'COM_COMPONENTBUILDER_ENTER_YOUR_SEARCH_TEXT',
|
||||||
'autocomplete' => true,
|
'autocomplete' => true,
|
||||||
'default' => $this->urlvalues['search_value']];
|
'default' => $this->urlvalues['search_value']];
|
||||||
@ -155,12 +170,13 @@ class ComponentbuilderViewSearch extends HtmlView
|
|||||||
$attributes = [
|
$attributes = [
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'name' => 'replace_value',
|
'name' => 'replace_value',
|
||||||
|
'hiddenLabel' => true,
|
||||||
'label' => 'COM_COMPONENTBUILDER_REPLACE',
|
'label' => 'COM_COMPONENTBUILDER_REPLACE',
|
||||||
'size' => 150,
|
'size' => 150,
|
||||||
'maxlength' => 200,
|
'maxlength' => 200,
|
||||||
'description' => 'COM_COMPONENTBUILDER_HERE_YOU_CAN_ENTER_THE_REPLACE_TEXT_THAT_YOU_WOULD_LIKE_TO_USE_AS_REPLACEMENT_FOR_THE_SEARCH_TEXT_FOUND',
|
'description' => 'COM_COMPONENTBUILDER_HERE_YOU_CAN_ENTER_THE_REPLACE_TEXT_THAT_YOU_WOULD_LIKE_TO_USE_AS_REPLACEMENT_FOR_THE_SEARCH_TEXT_FOUND',
|
||||||
'filter' => 'RAW',
|
'filter' => 'RAW',
|
||||||
'class' => 'replace-value span12',
|
'class' => 'replace-value span11',
|
||||||
'hint' => 'COM_COMPONENTBUILDER_ENTER_YOUR_REPLACE_TEXT',
|
'hint' => 'COM_COMPONENTBUILDER_ENTER_YOUR_REPLACE_TEXT',
|
||||||
'autocomplete' => true,
|
'autocomplete' => true,
|
||||||
'showon' => 'type_search:2',
|
'showon' => 'type_search:2',
|
||||||
@ -241,7 +257,7 @@ class ComponentbuilderViewSearch extends HtmlView
|
|||||||
'class' => 'list_class',
|
'class' => 'list_class',
|
||||||
'description' => 'COM_COMPONENTBUILDER_SELECT_THE_TABLE_TO_SEARCH',
|
'description' => 'COM_COMPONENTBUILDER_SELECT_THE_TABLE_TO_SEARCH',
|
||||||
'required' => 'true',
|
'required' => 'true',
|
||||||
'default' => -1];
|
'default' => $this->urlvalues['table_name']];
|
||||||
// start the component options
|
// start the component options
|
||||||
$options = [];
|
$options = [];
|
||||||
$options['-1'] = 'COM_COMPONENTBUILDER__SEARCH_ALL_';
|
$options['-1'] = 'COM_COMPONENTBUILDER__SEARCH_ALL_';
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<extension type="component" version="4" method="upgrade">
|
<extension type="component" version="4" method="upgrade">
|
||||||
<name>COM_COMPONENTBUILDER</name>
|
<name>COM_COMPONENTBUILDER</name>
|
||||||
<creationDate>2nd November, 2022</creationDate>
|
<creationDate>13th November, 2022</creationDate>
|
||||||
<author>Llewellyn van der Merwe</author>
|
<author>Llewellyn van der Merwe</author>
|
||||||
<authorEmail>joomla@vdm.io</authorEmail>
|
<authorEmail>joomla@vdm.io</authorEmail>
|
||||||
<authorUrl>https://dev.vdm.io</authorUrl>
|
<authorUrl>https://dev.vdm.io</authorUrl>
|
||||||
<copyright>Copyright (C) 2015 Vast Development Method. All rights reserved.</copyright>
|
<copyright>Copyright (C) 2015 Vast Development Method. All rights reserved.</copyright>
|
||||||
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
|
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
|
||||||
<version>3.1.10</version>
|
<version>3.1.12</version>
|
||||||
<description>< is highly advanced tool that is truly able to build extremely complex components in a fraction of the time.
|
<p>The Component Builder for [Joomla](https://extensions.joomla.org/extension/component-builder/) is highly advanced tool that is truly able to build extremely complex components in a fraction of the time.
|
||||||
|
|
||||||
@ -75,11 +75,11 @@ Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/compo
|
|||||||
<submenu>
|
<submenu>
|
||||||
<!-- Instead of link you can specify individual link attributes -->
|
<!-- Instead of link you can specify individual link attributes -->
|
||||||
<menu option="com_componentbuilder" view="compiler">COM_COMPONENTBUILDER_MENU_COMPILER</menu>
|
<menu option="com_componentbuilder" view="compiler">COM_COMPONENTBUILDER_MENU_COMPILER</menu>
|
||||||
<menu option="com_componentbuilder" view="search">COM_COMPONENTBUILDER_MENU_SEARCH</menu>
|
|
||||||
<menu option="com_componentbuilder" view="joomla_components">COM_COMPONENTBUILDER_MENU_JOOMLA_COMPONENTS</menu>
|
<menu option="com_componentbuilder" view="joomla_components">COM_COMPONENTBUILDER_MENU_JOOMLA_COMPONENTS</menu>
|
||||||
<menu option="com_componentbuilder" view="joomla_modules">COM_COMPONENTBUILDER_MENU_JOOMLA_MODULES</menu>
|
<menu option="com_componentbuilder" view="joomla_modules">COM_COMPONENTBUILDER_MENU_JOOMLA_MODULES</menu>
|
||||||
<menu option="com_componentbuilder" view="joomla_plugins">COM_COMPONENTBUILDER_MENU_JOOMLA_PLUGINS</menu>
|
<menu option="com_componentbuilder" view="joomla_plugins">COM_COMPONENTBUILDER_MENU_JOOMLA_PLUGINS</menu>
|
||||||
<menu option="com_componentbuilder" view="powers">COM_COMPONENTBUILDER_MENU_POWERS</menu>
|
<menu option="com_componentbuilder" view="powers">COM_COMPONENTBUILDER_MENU_POWERS</menu>
|
||||||
|
<menu option="com_componentbuilder" view="search">COM_COMPONENTBUILDER_MENU_SEARCH</menu>
|
||||||
<menu option="com_componentbuilder" view="admin_views">COM_COMPONENTBUILDER_MENU_ADMIN_VIEWS</menu>
|
<menu option="com_componentbuilder" view="admin_views">COM_COMPONENTBUILDER_MENU_ADMIN_VIEWS</menu>
|
||||||
<menu option="com_componentbuilder" view="custom_admin_views">COM_COMPONENTBUILDER_MENU_CUSTOM_ADMIN_VIEWS</menu>
|
<menu option="com_componentbuilder" view="custom_admin_views">COM_COMPONENTBUILDER_MENU_CUSTOM_ADMIN_VIEWS</menu>
|
||||||
<menu option="com_componentbuilder" view="site_views">COM_COMPONENTBUILDER_MENU_SITE_VIEWS</menu>
|
<menu option="com_componentbuilder" view="site_views">COM_COMPONENTBUILDER_MENU_SITE_VIEWS</menu>
|
||||||
|
@ -1097,10 +1097,10 @@
|
|||||||
<element>pkg_component_builder</element>
|
<element>pkg_component_builder</element>
|
||||||
<type>package</type>
|
<type>package</type>
|
||||||
<client>site</client>
|
<client>site</client>
|
||||||
<version>3.1.10</version>
|
<version>3.1.12</version>
|
||||||
<infourl title="Component Builder!">https://dev.vdm.io</infourl>
|
<infourl title="Component Builder!">https://dev.vdm.io</infourl>
|
||||||
<downloads>
|
<downloads>
|
||||||
<downloadurl type="full" format="zip">https://git.vdm.dev/api/v1/repos/joomla/pkg-component-builder/archive/v3.1.10.zip</downloadurl>
|
<downloadurl type="full" format="zip">https://git.vdm.dev/api/v1/repos/joomla/pkg-component-builder/archive/v3.1.12.zip</downloadurl>
|
||||||
</downloads>
|
</downloads>
|
||||||
<tags>
|
<tags>
|
||||||
<tag>stable</tag>
|
<tag>stable</tag>
|
||||||
|
@ -255,7 +255,7 @@ class External implements ExternalInterface
|
|||||||
))
|
))
|
||||||
{
|
{
|
||||||
// update the hash since it changed
|
// update the hash since it changed
|
||||||
$object = new stdClass();
|
$object = new \stdClass();
|
||||||
$object->target = $target_key;
|
$object->target = $target_key;
|
||||||
$object->hash = $live_hash;
|
$object->hash = $live_hash;
|
||||||
// update local hash
|
// update local hash
|
||||||
@ -296,7 +296,7 @@ class External implements ExternalInterface
|
|||||||
))
|
))
|
||||||
{
|
{
|
||||||
// add the hash to track changes
|
// add the hash to track changes
|
||||||
$object = new stdClass();
|
$object = new \stdClass();
|
||||||
$object->target = $target_key;
|
$object->target = $target_key;
|
||||||
$object->hash = $live_hash;
|
$object->hash = $live_hash;
|
||||||
// insert local hash
|
// insert local hash
|
||||||
|
@ -109,5 +109,15 @@ abstract class Engine
|
|||||||
$this->end = $this->config->marker_end;
|
$this->end = $this->config->marker_end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* we count every line being searched
|
||||||
|
*
|
||||||
|
* @since 3.2.0
|
||||||
|
*/
|
||||||
|
protected function lineCounter()
|
||||||
|
{
|
||||||
|
// we count every line we search
|
||||||
|
$this->config->line_counter = $this->config->line_counter + 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@ namespace VDM\Joomla\Componentbuilder\Search\Agent;
|
|||||||
use VDM\Joomla\Utilities\ArrayHelper;
|
use VDM\Joomla\Utilities\ArrayHelper;
|
||||||
use VDM\Joomla\Utilities\StringHelper;
|
use VDM\Joomla\Utilities\StringHelper;
|
||||||
use VDM\Joomla\Componentbuilder\Search\Factory;
|
use VDM\Joomla\Componentbuilder\Search\Factory;
|
||||||
|
use VDM\Joomla\Componentbuilder\Search\Config;
|
||||||
use VDM\Joomla\Componentbuilder\Search\Interfaces\SearchTypeInterface as SearchEngine;
|
use VDM\Joomla\Componentbuilder\Search\Interfaces\SearchTypeInterface as SearchEngine;
|
||||||
use VDM\Joomla\Componentbuilder\Search\Interfaces\SearchInterface;
|
use VDM\Joomla\Componentbuilder\Search\Interfaces\SearchInterface;
|
||||||
|
|
||||||
@ -34,6 +35,14 @@ class Search implements SearchInterface
|
|||||||
*/
|
*/
|
||||||
protected array $found = [];
|
protected array $found = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Search Config
|
||||||
|
*
|
||||||
|
* @var Config
|
||||||
|
* @since 3.2.0
|
||||||
|
*/
|
||||||
|
protected Config $config;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Search Engine
|
* Search Engine
|
||||||
*
|
*
|
||||||
@ -45,12 +54,14 @@ class Search implements SearchInterface
|
|||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*
|
*
|
||||||
|
* @param Config|null $config The search config object.
|
||||||
* @param SearchEngine|null $search The search engine object.
|
* @param SearchEngine|null $search The search engine object.
|
||||||
*
|
*
|
||||||
* @since 3.2.0
|
* @since 3.2.0
|
||||||
*/
|
*/
|
||||||
public function __construct(?SearchEngine $search = null)
|
public function __construct(?Config $config = null, ?SearchEngine $search = null)
|
||||||
{
|
{
|
||||||
|
$this->config = $config ?: Factory::_('Config');
|
||||||
$this->search = $search ?: Factory::_('Search');
|
$this->search = $search ?: Factory::_('Search');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -226,6 +237,9 @@ class Search implements SearchInterface
|
|||||||
// line counter
|
// line counter
|
||||||
$line = 1;
|
$line = 1;
|
||||||
|
|
||||||
|
// we count every field we search
|
||||||
|
$this->fieldCounter();
|
||||||
|
|
||||||
// check if string has a new line
|
// check if string has a new line
|
||||||
if (\preg_match('/\R/', $value))
|
if (\preg_match('/\R/', $value))
|
||||||
{
|
{
|
||||||
@ -286,5 +300,15 @@ class Search implements SearchInterface
|
|||||||
// we should add a call to get the item name if the table has a name field TODO
|
// we should add a call to get the item name if the table has a name field TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* we count every field being searched
|
||||||
|
*
|
||||||
|
* @since 3.2.0
|
||||||
|
*/
|
||||||
|
protected function fieldCounter()
|
||||||
|
{
|
||||||
|
// we count every field we search
|
||||||
|
$this->config->field_counter = $this->config->field_counter + 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -102,10 +102,10 @@ class Config extends BaseConfig
|
|||||||
/**
|
/**
|
||||||
* get posted area/table
|
* get posted area/table
|
||||||
*
|
*
|
||||||
* @return string Table name
|
* @return string|null Table name
|
||||||
* @since 3.2.0
|
* @since 3.2.0
|
||||||
*/
|
*/
|
||||||
protected function getTablename(): string
|
protected function getTablename(): ?string
|
||||||
{
|
{
|
||||||
return $this->input->get('table_name', null, 'word');
|
return $this->input->get('table_name', null, 'word');
|
||||||
}
|
}
|
||||||
@ -113,10 +113,10 @@ class Config extends BaseConfig
|
|||||||
/**
|
/**
|
||||||
* get posted field
|
* get posted field
|
||||||
*
|
*
|
||||||
* @return string Field name
|
* @return string|null Field name
|
||||||
* @since 3.2.0
|
* @since 3.2.0
|
||||||
*/
|
*/
|
||||||
protected function getFieldname(): string
|
protected function getFieldname(): ?string
|
||||||
{
|
{
|
||||||
return $this->input->get('field_name', null, 'word');
|
return $this->input->get('field_name', null, 'word');
|
||||||
}
|
}
|
||||||
@ -132,6 +132,28 @@ class Config extends BaseConfig
|
|||||||
return $this->input->get('item_id', 0, 'INT');
|
return $this->input->get('item_id', 0, 'INT');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get field counter
|
||||||
|
*
|
||||||
|
* @return int we start at 0
|
||||||
|
* @since 3.2.0
|
||||||
|
*/
|
||||||
|
protected function getFieldcounter(): int
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get line counter
|
||||||
|
*
|
||||||
|
* @return int we start at 0
|
||||||
|
* @since 3.2.0
|
||||||
|
*/
|
||||||
|
protected function getLinecounter(): int
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* get the start marker
|
* get the start marker
|
||||||
*
|
*
|
||||||
|
@ -93,6 +93,9 @@ class Basic extends Engine implements SearchTypeInterface
|
|||||||
*/
|
*/
|
||||||
public function string(string $value): ?string
|
public function string(string $value): ?string
|
||||||
{
|
{
|
||||||
|
// we count every line
|
||||||
|
$this->lineCounter();
|
||||||
|
|
||||||
if (StringHelper::check($this->searchValue))
|
if (StringHelper::check($this->searchValue))
|
||||||
{
|
{
|
||||||
if ($this->wholeWord == 1)
|
if ($this->wholeWord == 1)
|
||||||
|
@ -65,6 +65,9 @@ class Regex extends Engine implements SearchTypeInterface
|
|||||||
*/
|
*/
|
||||||
public function string(string $value): ?string
|
public function string(string $value): ?string
|
||||||
{
|
{
|
||||||
|
// we count every line
|
||||||
|
$this->lineCounter();
|
||||||
|
|
||||||
if (StringHelper::check($this->searchValue) && $this->match($value))
|
if (StringHelper::check($this->searchValue) && $this->match($value))
|
||||||
{
|
{
|
||||||
return trim(preg_replace(
|
return trim(preg_replace(
|
||||||
|
@ -119,6 +119,7 @@ class Agent implements ServiceProviderInterface
|
|||||||
public function getSearch(Container $container): Search
|
public function getSearch(Container $container): Search
|
||||||
{
|
{
|
||||||
return new Search(
|
return new Search(
|
||||||
|
$container->get('Config'),
|
||||||
$container->get('Search')
|
$container->get('Search')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -6755,7 +6755,7 @@ class com_componentbuilderInstallerScript
|
|||||||
{
|
{
|
||||||
$rule_length = $db->loadResult();
|
$rule_length = $db->loadResult();
|
||||||
// Check the size of the rules column
|
// Check the size of the rules column
|
||||||
if ($rule_length <= 97440)
|
if ($rule_length <= 97280)
|
||||||
{
|
{
|
||||||
// Fix the assets table rules column size
|
// Fix the assets table rules column size
|
||||||
$fix_rules_size = "ALTER TABLE `#__assets` CHANGE `rules` `rules` MEDIUMTEXT NOT NULL COMMENT 'JSON encoded access control. Enlarged to MEDIUMTEXT by JCB';";
|
$fix_rules_size = "ALTER TABLE `#__assets` CHANGE `rules` `rules` MEDIUMTEXT NOT NULL COMMENT 'JSON encoded access control. Enlarged to MEDIUMTEXT by JCB';";
|
||||||
@ -9422,7 +9422,7 @@ class com_componentbuilderInstallerScript
|
|||||||
echo '<a target="_blank" href="https://dev.vdm.io" title="Component Builder">
|
echo '<a target="_blank" href="https://dev.vdm.io" title="Component Builder">
|
||||||
<img src="components/com_componentbuilder/assets/images/vdm-component.jpg"/>
|
<img src="components/com_componentbuilder/assets/images/vdm-component.jpg"/>
|
||||||
</a>
|
</a>
|
||||||
<h3>Upgrade to Version 3.1.10 Was Successful! Let us know if anything is not working as expected.</h3>';
|
<h3>Upgrade to Version 3.1.12 Was Successful! Let us know if anything is not working as expected.</h3>';
|
||||||
|
|
||||||
// Set db if not set already.
|
// Set db if not set already.
|
||||||
if (!isset($db))
|
if (!isset($db))
|
||||||
|
Reference in New Issue
Block a user