All other changes are only random variable name and date changes (due to automation)
@ -1,340 +0,0 @@
|
|||||||
GNU GENERAL PUBLIC LICENSE
|
|
||||||
Version 2, June 1991
|
|
||||||
|
|
||||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
|
||||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
|
||||||
of this license document, but changing it is not allowed.
|
|
||||||
|
|
||||||
Preamble
|
|
||||||
|
|
||||||
The licenses for most software are designed to take away your
|
|
||||||
freedom to share and change it. By contrast, the GNU General Public
|
|
||||||
License is intended to guarantee your freedom to share and change free
|
|
||||||
software--to make sure the software is free for all its users. This
|
|
||||||
General Public License applies to most of the Free Software
|
|
||||||
Foundation's software and to any other program whose authors commit to
|
|
||||||
using it. (Some other Free Software Foundation software is covered by
|
|
||||||
the GNU Library General Public License instead.) You can apply it to
|
|
||||||
your programs, too.
|
|
||||||
|
|
||||||
When we speak of free software, we are referring to freedom, not
|
|
||||||
price. Our General Public Licenses are designed to make sure that you
|
|
||||||
have the freedom to distribute copies of free software (and charge for
|
|
||||||
this service if you wish), that you receive source code or can get it
|
|
||||||
if you want it, that you can change the software or use pieces of it
|
|
||||||
in new free programs; and that you know you can do these things.
|
|
||||||
|
|
||||||
To protect your rights, we need to make restrictions that forbid
|
|
||||||
anyone to deny you these rights or to ask you to surrender the rights.
|
|
||||||
These restrictions translate to certain responsibilities for you if you
|
|
||||||
distribute copies of the software, or if you modify it.
|
|
||||||
|
|
||||||
For example, if you distribute copies of such a program, whether
|
|
||||||
gratis or for a fee, you must give the recipients all the rights that
|
|
||||||
you have. You must make sure that they, too, receive or can get the
|
|
||||||
source code. And you must show them these terms so they know their
|
|
||||||
rights.
|
|
||||||
|
|
||||||
We protect your rights with two steps: (1) copyright the software, and
|
|
||||||
(2) offer you this license which gives you legal permission to copy,
|
|
||||||
distribute and/or modify the software.
|
|
||||||
|
|
||||||
Also, for each author's protection and ours, we want to make certain
|
|
||||||
that everyone understands that there is no warranty for this free
|
|
||||||
software. If the software is modified by someone else and passed on, we
|
|
||||||
want its recipients to know that what they have is not the original, so
|
|
||||||
that any problems introduced by others will not reflect on the original
|
|
||||||
authors' reputations.
|
|
||||||
|
|
||||||
Finally, any free program is threatened constantly by software
|
|
||||||
patents. We wish to avoid the danger that redistributors of a free
|
|
||||||
program will individually obtain patent licenses, in effect making the
|
|
||||||
program proprietary. To prevent this, we have made it clear that any
|
|
||||||
patent must be licensed for everyone's free use or not licensed at all.
|
|
||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
|
||||||
modification follow.
|
|
||||||
|
|
||||||
GNU GENERAL PUBLIC LICENSE
|
|
||||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
||||||
|
|
||||||
0. This License applies to any program or other work which contains
|
|
||||||
a notice placed by the copyright holder saying it may be distributed
|
|
||||||
under the terms of this General Public License. The "Program", below,
|
|
||||||
refers to any such program or work, and a "work based on the Program"
|
|
||||||
means either the Program or any derivative work under copyright law:
|
|
||||||
that is to say, a work containing the Program or a portion of it,
|
|
||||||
either verbatim or with modifications and/or translated into another
|
|
||||||
language. (Hereinafter, translation is included without limitation in
|
|
||||||
the term "modification".) Each licensee is addressed as "you".
|
|
||||||
|
|
||||||
Activities other than copying, distribution and modification are not
|
|
||||||
covered by this License; they are outside its scope. The act of
|
|
||||||
running the Program is not restricted, and the output from the Program
|
|
||||||
is covered only if its contents constitute a work based on the
|
|
||||||
Program (independent of having been made by running the Program).
|
|
||||||
Whether that is true depends on what the Program does.
|
|
||||||
|
|
||||||
1. You may copy and distribute verbatim copies of the Program's
|
|
||||||
source code as you receive it, in any medium, provided that you
|
|
||||||
conspicuously and appropriately publish on each copy an appropriate
|
|
||||||
copyright notice and disclaimer of warranty; keep intact all the
|
|
||||||
notices that refer to this License and to the absence of any warranty;
|
|
||||||
and give any other recipients of the Program a copy of this License
|
|
||||||
along with the Program.
|
|
||||||
|
|
||||||
You may charge a fee for the physical act of transferring a copy, and
|
|
||||||
you may at your option offer warranty protection in exchange for a fee.
|
|
||||||
|
|
||||||
2. You may modify your copy or copies of the Program or any portion
|
|
||||||
of it, thus forming a work based on the Program, and copy and
|
|
||||||
distribute such modifications or work under the terms of Section 1
|
|
||||||
above, provided that you also meet all of these conditions:
|
|
||||||
|
|
||||||
a) You must cause the modified files to carry prominent notices
|
|
||||||
stating that you changed the files and the date of any change.
|
|
||||||
|
|
||||||
b) You must cause any work that you distribute or publish, that in
|
|
||||||
whole or in part contains or is derived from the Program or any
|
|
||||||
part thereof, to be licensed as a whole at no charge to all third
|
|
||||||
parties under the terms of this License.
|
|
||||||
|
|
||||||
c) If the modified program normally reads commands interactively
|
|
||||||
when run, you must cause it, when started running for such
|
|
||||||
interactive use in the most ordinary way, to print or display an
|
|
||||||
announcement including an appropriate copyright notice and a
|
|
||||||
notice that there is no warranty (or else, saying that you provide
|
|
||||||
a warranty) and that users may redistribute the program under
|
|
||||||
these conditions, and telling the user how to view a copy of this
|
|
||||||
License. (Exception: if the Program itself is interactive but
|
|
||||||
does not normally print such an announcement, your work based on
|
|
||||||
the Program is not required to print an announcement.)
|
|
||||||
|
|
||||||
These requirements apply to the modified work as a whole. If
|
|
||||||
identifiable sections of that work are not derived from the Program,
|
|
||||||
and can be reasonably considered independent and separate works in
|
|
||||||
themselves, then this License, and its terms, do not apply to those
|
|
||||||
sections when you distribute them as separate works. But when you
|
|
||||||
distribute the same sections as part of a whole which is a work based
|
|
||||||
on the Program, the distribution of the whole must be on the terms of
|
|
||||||
this License, whose permissions for other licensees extend to the
|
|
||||||
entire whole, and thus to each and every part regardless of who wrote it.
|
|
||||||
|
|
||||||
Thus, it is not the intent of this section to claim rights or contest
|
|
||||||
your rights to work written entirely by you; rather, the intent is to
|
|
||||||
exercise the right to control the distribution of derivative or
|
|
||||||
collective works based on the Program.
|
|
||||||
|
|
||||||
In addition, mere aggregation of another work not based on the Program
|
|
||||||
with the Program (or with a work based on the Program) on a volume of
|
|
||||||
a storage or distribution medium does not bring the other work under
|
|
||||||
the scope of this License.
|
|
||||||
|
|
||||||
3. You may copy and distribute the Program (or a work based on it,
|
|
||||||
under Section 2) in object code or executable form under the terms of
|
|
||||||
Sections 1 and 2 above provided that you also do one of the following:
|
|
||||||
|
|
||||||
a) Accompany it with the complete corresponding machine-readable
|
|
||||||
source code, which must be distributed under the terms of Sections
|
|
||||||
1 and 2 above on a medium customarily used for software interchange; or,
|
|
||||||
|
|
||||||
b) Accompany it with a written offer, valid for at least three
|
|
||||||
years, to give any third party, for a charge no more than your
|
|
||||||
cost of physically performing source distribution, a complete
|
|
||||||
machine-readable copy of the corresponding source code, to be
|
|
||||||
distributed under the terms of Sections 1 and 2 above on a medium
|
|
||||||
customarily used for software interchange; or,
|
|
||||||
|
|
||||||
c) Accompany it with the information you received as to the offer
|
|
||||||
to distribute corresponding source code. (This alternative is
|
|
||||||
allowed only for noncommercial distribution and only if you
|
|
||||||
received the program in object code or executable form with such
|
|
||||||
an offer, in accord with Subsection b above.)
|
|
||||||
|
|
||||||
The source code for a work means the preferred form of the work for
|
|
||||||
making modifications to it. For an executable work, complete source
|
|
||||||
code means all the source code for all modules it contains, plus any
|
|
||||||
associated interface definition files, plus the scripts used to
|
|
||||||
control compilation and installation of the executable. However, as a
|
|
||||||
special exception, the source code distributed need not include
|
|
||||||
anything that is normally distributed (in either source or binary
|
|
||||||
form) with the major components (compiler, kernel, and so on) of the
|
|
||||||
operating system on which the executable runs, unless that component
|
|
||||||
itself accompanies the executable.
|
|
||||||
|
|
||||||
If distribution of executable or object code is made by offering
|
|
||||||
access to copy from a designated place, then offering equivalent
|
|
||||||
access to copy the source code from the same place counts as
|
|
||||||
distribution of the source code, even though third parties are not
|
|
||||||
compelled to copy the source along with the object code.
|
|
||||||
|
|
||||||
4. You may not copy, modify, sublicense, or distribute the Program
|
|
||||||
except as expressly provided under this License. Any attempt
|
|
||||||
otherwise to copy, modify, sublicense or distribute the Program is
|
|
||||||
void, and will automatically terminate your rights under this License.
|
|
||||||
However, parties who have received copies, or rights, from you under
|
|
||||||
this License will not have their licenses terminated so long as such
|
|
||||||
parties remain in full compliance.
|
|
||||||
|
|
||||||
5. You are not required to accept this License, since you have not
|
|
||||||
signed it. However, nothing else grants you permission to modify or
|
|
||||||
distribute the Program or its derivative works. These actions are
|
|
||||||
prohibited by law if you do not accept this License. Therefore, by
|
|
||||||
modifying or distributing the Program (or any work based on the
|
|
||||||
Program), you indicate your acceptance of this License to do so, and
|
|
||||||
all its terms and conditions for copying, distributing or modifying
|
|
||||||
the Program or works based on it.
|
|
||||||
|
|
||||||
6. Each time you redistribute the Program (or any work based on the
|
|
||||||
Program), the recipient automatically receives a license from the
|
|
||||||
original licensor to copy, distribute or modify the Program subject to
|
|
||||||
these terms and conditions. You may not impose any further
|
|
||||||
restrictions on the recipients' exercise of the rights granted herein.
|
|
||||||
You are not responsible for enforcing compliance by third parties to
|
|
||||||
this License.
|
|
||||||
|
|
||||||
7. If, as a consequence of a court judgment or allegation of patent
|
|
||||||
infringement or for any other reason (not limited to patent issues),
|
|
||||||
conditions are imposed on you (whether by court order, agreement or
|
|
||||||
otherwise) that contradict the conditions of this License, they do not
|
|
||||||
excuse you from the conditions of this License. If you cannot
|
|
||||||
distribute so as to satisfy simultaneously your obligations under this
|
|
||||||
License and any other pertinent obligations, then as a consequence you
|
|
||||||
may not distribute the Program at all. For example, if a patent
|
|
||||||
license would not permit royalty-free redistribution of the Program by
|
|
||||||
all those who receive copies directly or indirectly through you, then
|
|
||||||
the only way you could satisfy both it and this License would be to
|
|
||||||
refrain entirely from distribution of the Program.
|
|
||||||
|
|
||||||
If any portion of this section is held invalid or unenforceable under
|
|
||||||
any particular circumstance, the balance of the section is intended to
|
|
||||||
apply and the section as a whole is intended to apply in other
|
|
||||||
circumstances.
|
|
||||||
|
|
||||||
It is not the purpose of this section to induce you to infringe any
|
|
||||||
patents or other property right claims or to contest validity of any
|
|
||||||
such claims; this section has the sole purpose of protecting the
|
|
||||||
integrity of the free software distribution system, which is
|
|
||||||
implemented by public license practices. Many people have made
|
|
||||||
generous contributions to the wide range of software distributed
|
|
||||||
through that system in reliance on consistent application of that
|
|
||||||
system; it is up to the author/donor to decide if he or she is willing
|
|
||||||
to distribute software through any other system and a licensee cannot
|
|
||||||
impose that choice.
|
|
||||||
|
|
||||||
This section is intended to make thoroughly clear what is believed to
|
|
||||||
be a consequence of the rest of this License.
|
|
||||||
|
|
||||||
8. If the distribution and/or use of the Program is restricted in
|
|
||||||
certain countries either by patents or by copyrighted interfaces, the
|
|
||||||
original copyright holder who places the Program under this License
|
|
||||||
may add an explicit geographical distribution limitation excluding
|
|
||||||
those countries, so that distribution is permitted only in or among
|
|
||||||
countries not thus excluded. In such case, this License incorporates
|
|
||||||
the limitation as if written in the body of this License.
|
|
||||||
|
|
||||||
9. The Free Software Foundation may publish revised and/or new versions
|
|
||||||
of the General Public License from time to time. Such new versions will
|
|
||||||
be similar in spirit to the present version, but may differ in detail to
|
|
||||||
address new problems or concerns.
|
|
||||||
|
|
||||||
Each version is given a distinguishing version number. If the Program
|
|
||||||
specifies a version number of this License which applies to it and "any
|
|
||||||
later version", you have the option of following the terms and conditions
|
|
||||||
either of that version or of any later version published by the Free
|
|
||||||
Software Foundation. If the Program does not specify a version number of
|
|
||||||
this License, you may choose any version ever published by the Free Software
|
|
||||||
Foundation.
|
|
||||||
|
|
||||||
10. If you wish to incorporate parts of the Program into other free
|
|
||||||
programs whose distribution conditions are different, write to the author
|
|
||||||
to ask for permission. For software which is copyrighted by the Free
|
|
||||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
|
||||||
make exceptions for this. Our decision will be guided by the two goals
|
|
||||||
of preserving the free status of all derivatives of our free software and
|
|
||||||
of promoting the sharing and reuse of software generally.
|
|
||||||
|
|
||||||
NO WARRANTY
|
|
||||||
|
|
||||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
|
||||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
|
||||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
|
||||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
|
||||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
||||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
|
||||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
|
||||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
|
||||||
REPAIR OR CORRECTION.
|
|
||||||
|
|
||||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
|
||||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
|
||||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
|
||||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
|
||||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
|
||||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
|
||||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
|
||||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
|
||||||
POSSIBILITY OF SUCH DAMAGES.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
How to Apply These Terms to Your New Programs
|
|
||||||
|
|
||||||
If you develop a new program, and you want it to be of the greatest
|
|
||||||
possible use to the public, the best way to achieve this is to make it
|
|
||||||
free software which everyone can redistribute and change under these terms.
|
|
||||||
|
|
||||||
To do so, attach the following notices to the program. It is safest
|
|
||||||
to attach them to the start of each source file to most effectively
|
|
||||||
convey the exclusion of warranty; and each file should have at least
|
|
||||||
the "copyright" line and a pointer to where the full notice is found.
|
|
||||||
|
|
||||||
<one line to give the program's name and a brief idea of what it does.>
|
|
||||||
Copyright (C) <year> <name of author>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program; if not, write to the Free Software
|
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
||||||
|
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
|
||||||
|
|
||||||
If the program is interactive, make it output a short notice like this
|
|
||||||
when it starts in an interactive mode:
|
|
||||||
|
|
||||||
Gnomovision version 69, Copyright (C) year name of author
|
|
||||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
|
||||||
This is free software, and you are welcome to redistribute it
|
|
||||||
under certain conditions; type `show c' for details.
|
|
||||||
|
|
||||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
|
||||||
parts of the General Public License. Of course, the commands you use may
|
|
||||||
be called something other than `show w' and `show c'; they could even be
|
|
||||||
mouse-clicks or menu items--whatever suits your program.
|
|
||||||
|
|
||||||
You should also get your employer (if you work as a programmer) or your
|
|
||||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
|
||||||
necessary. Here is a sample; alter the names:
|
|
||||||
|
|
||||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
|
||||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
|
||||||
|
|
||||||
<signature of Ty Coon>, 1 April 1989
|
|
||||||
Ty Coon, President of Vice
|
|
||||||
|
|
||||||
This General Public License does not permit incorporating your program into
|
|
||||||
proprietary programs. If your program is a subroutine library, you may
|
|
||||||
consider it more useful to permit linking proprietary applications with the
|
|
||||||
library. If this is what you want to do, use the GNU Library General
|
|
||||||
Public License instead of this License.
|
|
@ -1,45 +0,0 @@
|
|||||||
# Component Builder (2.1.0)
|
|
||||||
|
|
||||||
The Component Builder for Joomla that is highly advanced, truly able to build extremely complex components in a fraction of the time.
|
|
||||||
|
|
||||||
# Build Details
|
|
||||||
|
|
||||||
+ *Company*: [Vast Development Method] (https://www.vdm.io/joomla-component-builder)
|
|
||||||
+ *Author*: [Llewellyn van der Merwe] (mailto:info@vdm.io)
|
|
||||||
+ *Name*: [Component Builder] (https://www.vdm.io/joomla-component-builder)
|
|
||||||
+ *First Build*: 30th April, 2015
|
|
||||||
+ *Last Build*: 20th February, 2016
|
|
||||||
+ *Version*: 2.1.0
|
|
||||||
+ *Copyright*: Copyright (C) 2015. All Rights Reserved
|
|
||||||
+ *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
## Build Time
|
|
||||||
|
|
||||||
**226 Hours** or **28 Eight Hour Days** (actual time the author saved -
|
|
||||||
due to [Automated Component Builder] (https://www.vdm.io/joomla-component-builder))
|
|
||||||
|
|
||||||
> (if creating a folder and file took **5 seconds** and writing one line of code took **10 seconds**,
|
|
||||||
> never making one mistake or taking any coffee break.)
|
|
||||||
|
|
||||||
+ *Line count*: **81024**
|
|
||||||
+ *File count*: **526**
|
|
||||||
+ *Folder count*: **99**
|
|
||||||
|
|
||||||
**149 Hours** or **19 Eight Hour Days** (the actual time the author spent)
|
|
||||||
|
|
||||||
> (with the following break down:
|
|
||||||
> **debugging @56hours** = codingtime / 4;
|
|
||||||
> **planning @32hours** = codingtime / 7;
|
|
||||||
> **mapping @23hours** = codingtime / 10;
|
|
||||||
> **office @38hours** = codingtime / 6;)
|
|
||||||
|
|
||||||
**375 Hours** or **47 Eight Hour Days**
|
|
||||||
(a total of the realistic time frame for this project)
|
|
||||||
|
|
||||||
> (if creating a folder and file took **5 seconds** and writing one line of code took **10 seconds**,
|
|
||||||
> with the normal everyday realities at the office, that includes the component planning, mapping & debugging.)
|
|
||||||
|
|
||||||
Project duration: **9.4 weeks** or **2 months**
|
|
||||||
|
|
||||||
> This **component** was build with a Joomla [Automated Component Builder] (https://www.vdm.io/joomla-component-builder).
|
|
||||||
> Developed by [Llewellyn van der Merwe] (mailto:joomla@vdm.io)
|
|
@ -1,223 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" ?>
|
|
||||||
<access component="com_componentbuilder">
|
|
||||||
<section name="component">
|
|
||||||
<action name="core.admin" title="JACTION_ADMIN" description="JACTION_ADMIN_COMPONENT_DESC" />
|
|
||||||
<action name="core.options" title="JACTION_OPTIONS" description="JACTION_OPTIONS_COMPONENT_DESC" />
|
|
||||||
<action name="core.manage" title="JACTION_MANAGE" description="JACTION_MANAGE_COMPONENT_DESC" />
|
|
||||||
<action name="core.export" title="COM_COMPONENTBUILDER_EXPORT_DATA" description="COM_COMPONENTBUILDER_EXPORT_DATA_DESC" />
|
|
||||||
<action name="core.import" title="COM_COMPONENTBUILDER_IMPORT_DATA" description="COM_COMPONENTBUILDER_IMPORT_DATA_DESC" />
|
|
||||||
<action name="core.batch" title="COM_COMPONENTBUILDER_USE_BATCH" description="COM_COMPONENTBUILDER_USE_BATCH_DESC" />
|
|
||||||
<action name="core.version" title="COM_COMPONENTBUILDER_EDIT_VERSIONS" description="COM_COMPONENTBUILDER_EDIT_VERSIONS_DESC" />
|
|
||||||
<action name="core.create" title="JACTION_CREATE" description="JACTION_CREATE_COMPONENT_DESC" />
|
|
||||||
<action name="core.delete" title="JACTION_DELETE" description="JACTION_DELETE_COMPONENT_DESC" />
|
|
||||||
<action name="core.edit" title="JACTION_EDIT" description="JACTION_EDIT_COMPONENT_DESC" />
|
|
||||||
<action name="core.edit.state" title="JACTION_EDITSTATE" description="JACTION_ACCESS_EDITSTATE_DESC" />
|
|
||||||
<action name="core.edit.own" title="JACTION_EDITOWN" description="JACTION_EDITOWN_COMPONENT_DESC" />
|
|
||||||
<action name="core.edit.created_by" title="COM_COMPONENTBUILDER_EDIT_CREATED_BY" description="COM_COMPONENTBUILDER_EDIT_CREATED_BY_DESC" />
|
|
||||||
<action name="core.edit.created" title="COM_COMPONENTBUILDER_EDIT_CREATED_DATE" description="COM_COMPONENTBUILDER_EDIT_CREATED_DATE_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.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.version" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_VERSION" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_VERSION_DESC" />
|
|
||||||
<action name="admin_view.export" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EXPORT" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EXPORT_DESC" />
|
|
||||||
<action name="admin_view.import" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_IMPORT" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_IMPORT_DESC" />
|
|
||||||
<action name="admin_view.submenu" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_SUBMENU" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_SUBMENU_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.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.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.import" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_IMPORT" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_IMPORT_DESC" />
|
|
||||||
<action name="custom_admin_view.submenu" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_SUBMENU" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_SUBMENU_DESC" />
|
|
||||||
<action name="dynamic_get.access" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_ACCESS" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_ACCESS_DESC" />
|
|
||||||
<action name="dynamic_get.batch" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_BATCH_USE" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_BATCH_USE_DESC" />
|
|
||||||
<action name="dynamic_get.create" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_CREATE" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_CREATE_DESC" />
|
|
||||||
<action name="dynamic_get.dashboard_add" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_DASHBOARD_ADD" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_DASHBOARD_ADD_DESC" />
|
|
||||||
<action name="dynamic_get.dashboard_list" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_DASHBOARD_LIST_DESC" />
|
|
||||||
<action name="dynamic_get.delete" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_DELETE" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_DELETE_DESC" />
|
|
||||||
<action name="dynamic_get.edit" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_EDIT" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_EDIT_DESC" />
|
|
||||||
<action name="dynamic_get.edit.own" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_EDIT_OWN" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_EDIT_OWN_DESC" />
|
|
||||||
<action name="dynamic_get.edit.state" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_EDIT_STATE" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_EDIT_STATE_DESC" />
|
|
||||||
<action name="dynamic_get.version" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_EDIT_VERSION" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_EDIT_VERSION_DESC" />
|
|
||||||
<action name="dynamic_get.export" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_EXPORT" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_EXPORT_DESC" />
|
|
||||||
<action name="dynamic_get.import" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_IMPORT" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_IMPORT_DESC" />
|
|
||||||
<action name="dynamic_get.submenu" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_SUBMENU" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_SUBMENU_DESC" />
|
|
||||||
<action name="field.access" title="COM_COMPONENTBUILDER_FIELDS_ACCESS" description="COM_COMPONENTBUILDER_FIELDS_ACCESS_DESC" />
|
|
||||||
<action name="field.batch" title="COM_COMPONENTBUILDER_FIELDS_BATCH_USE" description="COM_COMPONENTBUILDER_FIELDS_BATCH_USE_DESC" />
|
|
||||||
<action name="field.create" title="COM_COMPONENTBUILDER_FIELDS_CREATE" description="COM_COMPONENTBUILDER_FIELDS_CREATE_DESC" />
|
|
||||||
<action name="field.dashboard_add" title="COM_COMPONENTBUILDER_FIELDS_DASHBOARD_ADD" description="COM_COMPONENTBUILDER_FIELDS_DASHBOARD_ADD_DESC" />
|
|
||||||
<action name="field.dashboard_list" title="COM_COMPONENTBUILDER_FIELDS_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_FIELDS_DASHBOARD_LIST_DESC" />
|
|
||||||
<action name="field.delete" title="COM_COMPONENTBUILDER_FIELDS_DELETE" description="COM_COMPONENTBUILDER_FIELDS_DELETE_DESC" />
|
|
||||||
<action name="field.edit" title="COM_COMPONENTBUILDER_FIELDS_EDIT" description="COM_COMPONENTBUILDER_FIELDS_EDIT_DESC" />
|
|
||||||
<action name="field.edit.own" title="COM_COMPONENTBUILDER_FIELDS_EDIT_OWN" description="COM_COMPONENTBUILDER_FIELDS_EDIT_OWN_DESC" />
|
|
||||||
<action name="field.edit.state" title="COM_COMPONENTBUILDER_FIELDS_EDIT_STATE" description="COM_COMPONENTBUILDER_FIELDS_EDIT_STATE_DESC" />
|
|
||||||
<action name="field.version" title="COM_COMPONENTBUILDER_FIELDS_EDIT_VERSION" description="COM_COMPONENTBUILDER_FIELDS_EDIT_VERSION_DESC" />
|
|
||||||
<action name="field.export" title="COM_COMPONENTBUILDER_FIELDS_EXPORT" description="COM_COMPONENTBUILDER_FIELDS_EXPORT_DESC" />
|
|
||||||
<action name="field.import" title="COM_COMPONENTBUILDER_FIELDS_IMPORT" description="COM_COMPONENTBUILDER_FIELDS_IMPORT_DESC" />
|
|
||||||
<action name="field.submenu" title="COM_COMPONENTBUILDER_FIELDS_SUBMENU" description="COM_COMPONENTBUILDER_FIELDS_SUBMENU_DESC" />
|
|
||||||
<action name="fieldtype.access" title="COM_COMPONENTBUILDER_FIELDTYPES_ACCESS" description="COM_COMPONENTBUILDER_FIELDTYPES_ACCESS_DESC" />
|
|
||||||
<action name="fieldtype.batch" title="COM_COMPONENTBUILDER_FIELDTYPES_BATCH_USE" description="COM_COMPONENTBUILDER_FIELDTYPES_BATCH_USE_DESC" />
|
|
||||||
<action name="fieldtype.create" title="COM_COMPONENTBUILDER_FIELDTYPES_CREATE" description="COM_COMPONENTBUILDER_FIELDTYPES_CREATE_DESC" />
|
|
||||||
<action name="fieldtype.dashboard_add" title="COM_COMPONENTBUILDER_FIELDTYPES_DASHBOARD_ADD" description="COM_COMPONENTBUILDER_FIELDTYPES_DASHBOARD_ADD_DESC" />
|
|
||||||
<action name="fieldtype.dashboard_list" title="COM_COMPONENTBUILDER_FIELDTYPES_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_FIELDTYPES_DASHBOARD_LIST_DESC" />
|
|
||||||
<action name="fieldtype.delete" title="COM_COMPONENTBUILDER_FIELDTYPES_DELETE" description="COM_COMPONENTBUILDER_FIELDTYPES_DELETE_DESC" />
|
|
||||||
<action name="fieldtype.edit" title="COM_COMPONENTBUILDER_FIELDTYPES_EDIT" description="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_DESC" />
|
|
||||||
<action name="fieldtype.edit.own" title="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_OWN" description="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_OWN_DESC" />
|
|
||||||
<action name="fieldtype.edit.state" title="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_STATE" description="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_STATE_DESC" />
|
|
||||||
<action name="fieldtype.version" title="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_VERSION" description="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_VERSION_DESC" />
|
|
||||||
<action name="fieldtype.export" title="COM_COMPONENTBUILDER_FIELDTYPES_EXPORT" description="COM_COMPONENTBUILDER_FIELDTYPES_EXPORT_DESC" />
|
|
||||||
<action name="fieldtype.import" title="COM_COMPONENTBUILDER_FIELDTYPES_IMPORT" description="COM_COMPONENTBUILDER_FIELDTYPES_IMPORT_DESC" />
|
|
||||||
<action name="fieldtype.submenu" title="COM_COMPONENTBUILDER_FIELDTYPES_SUBMENU" description="COM_COMPONENTBUILDER_FIELDTYPES_SUBMENU_DESC" />
|
|
||||||
<action name="help_document.access" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_ACCESS" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_ACCESS_DESC" />
|
|
||||||
<action name="help_document.batch" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_BATCH_USE" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_BATCH_USE_DESC" />
|
|
||||||
<action name="help_document.create" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_CREATE" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_CREATE_DESC" />
|
|
||||||
<action name="help_document.dashboard_add" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_DASHBOARD_ADD" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_DASHBOARD_ADD_DESC" />
|
|
||||||
<action name="help_document.dashboard_list" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_DASHBOARD_LIST_DESC" />
|
|
||||||
<action name="help_document.delete" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_DELETE" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_DELETE_DESC" />
|
|
||||||
<action name="help_document.edit" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_EDIT" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_EDIT_DESC" />
|
|
||||||
<action name="help_document.edit.own" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_EDIT_OWN" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_EDIT_OWN_DESC" />
|
|
||||||
<action name="help_document.edit.state" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_EDIT_STATE" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_EDIT_STATE_DESC" />
|
|
||||||
<action name="help_document.version" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_EDIT_VERSION" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_EDIT_VERSION_DESC" />
|
|
||||||
<action name="help_document.export" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_EXPORT" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_EXPORT_DESC" />
|
|
||||||
<action name="help_document.import" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_IMPORT" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_IMPORT_DESC" />
|
|
||||||
<action name="help_document.submenu" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_SUBMENU" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_SUBMENU_DESC" />
|
|
||||||
<action name="layout.access" title="COM_COMPONENTBUILDER_LAYOUTS_ACCESS" description="COM_COMPONENTBUILDER_LAYOUTS_ACCESS_DESC" />
|
|
||||||
<action name="layout.batch" title="COM_COMPONENTBUILDER_LAYOUTS_BATCH_USE" description="COM_COMPONENTBUILDER_LAYOUTS_BATCH_USE_DESC" />
|
|
||||||
<action name="layout.dashboard_add" title="COM_COMPONENTBUILDER_LAYOUTS_DASHBOARD_ADD" description="COM_COMPONENTBUILDER_LAYOUTS_DASHBOARD_ADD_DESC" />
|
|
||||||
<action name="layout.dashboard_list" title="COM_COMPONENTBUILDER_LAYOUTS_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_LAYOUTS_DASHBOARD_LIST_DESC" />
|
|
||||||
<action name="layout.version" title="COM_COMPONENTBUILDER_LAYOUTS_EDIT_VERSION" description="COM_COMPONENTBUILDER_LAYOUTS_EDIT_VERSION_DESC" />
|
|
||||||
<action name="layout.export" title="COM_COMPONENTBUILDER_LAYOUTS_EXPORT" description="COM_COMPONENTBUILDER_LAYOUTS_EXPORT_DESC" />
|
|
||||||
<action name="layout.import" title="COM_COMPONENTBUILDER_LAYOUTS_IMPORT" description="COM_COMPONENTBUILDER_LAYOUTS_IMPORT_DESC" />
|
|
||||||
<action name="layout.submenu" title="COM_COMPONENTBUILDER_LAYOUTS_SUBMENU" description="COM_COMPONENTBUILDER_LAYOUTS_SUBMENU_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.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.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.import" title="COM_COMPONENTBUILDER_SITE_VIEWS_IMPORT" description="COM_COMPONENTBUILDER_SITE_VIEWS_IMPORT_DESC" />
|
|
||||||
<action name="site_view.submenu" title="COM_COMPONENTBUILDER_SITE_VIEWS_SUBMENU" description="COM_COMPONENTBUILDER_SITE_VIEWS_SUBMENU_DESC" />
|
|
||||||
<action name="snippet.access" title="COM_COMPONENTBUILDER_SNIPPETS_ACCESS" description="COM_COMPONENTBUILDER_SNIPPETS_ACCESS_DESC" />
|
|
||||||
<action name="snippet.batch" title="COM_COMPONENTBUILDER_SNIPPETS_BATCH_USE" description="COM_COMPONENTBUILDER_SNIPPETS_BATCH_USE_DESC" />
|
|
||||||
<action name="snippet.dashboard_add" title="COM_COMPONENTBUILDER_SNIPPETS_DASHBOARD_ADD" description="COM_COMPONENTBUILDER_SNIPPETS_DASHBOARD_ADD_DESC" />
|
|
||||||
<action name="snippet.dashboard_list" title="COM_COMPONENTBUILDER_SNIPPETS_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_SNIPPETS_DASHBOARD_LIST_DESC" />
|
|
||||||
<action name="snippet.version" title="COM_COMPONENTBUILDER_SNIPPETS_EDIT_VERSION" description="COM_COMPONENTBUILDER_SNIPPETS_EDIT_VERSION_DESC" />
|
|
||||||
<action name="snippet.export" title="COM_COMPONENTBUILDER_SNIPPETS_EXPORT" description="COM_COMPONENTBUILDER_SNIPPETS_EXPORT_DESC" />
|
|
||||||
<action name="snippet.import" title="COM_COMPONENTBUILDER_SNIPPETS_IMPORT" description="COM_COMPONENTBUILDER_SNIPPETS_IMPORT_DESC" />
|
|
||||||
<action name="snippet.submenu" title="COM_COMPONENTBUILDER_SNIPPETS_SUBMENU" description="COM_COMPONENTBUILDER_SNIPPETS_SUBMENU_DESC" />
|
|
||||||
<action name="template.access" title="COM_COMPONENTBUILDER_TEMPLATES_ACCESS" description="COM_COMPONENTBUILDER_TEMPLATES_ACCESS_DESC" />
|
|
||||||
<action name="template.batch" title="COM_COMPONENTBUILDER_TEMPLATES_BATCH_USE" description="COM_COMPONENTBUILDER_TEMPLATES_BATCH_USE_DESC" />
|
|
||||||
<action name="template.dashboard_add" title="COM_COMPONENTBUILDER_TEMPLATES_DASHBOARD_ADD" description="COM_COMPONENTBUILDER_TEMPLATES_DASHBOARD_ADD_DESC" />
|
|
||||||
<action name="template.dashboard_list" title="COM_COMPONENTBUILDER_TEMPLATES_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_TEMPLATES_DASHBOARD_LIST_DESC" />
|
|
||||||
<action name="template.version" title="COM_COMPONENTBUILDER_TEMPLATES_EDIT_VERSION" description="COM_COMPONENTBUILDER_TEMPLATES_EDIT_VERSION_DESC" />
|
|
||||||
<action name="template.export" title="COM_COMPONENTBUILDER_TEMPLATES_EXPORT" description="COM_COMPONENTBUILDER_TEMPLATES_EXPORT_DESC" />
|
|
||||||
<action name="template.import" title="COM_COMPONENTBUILDER_TEMPLATES_IMPORT" description="COM_COMPONENTBUILDER_TEMPLATES_IMPORT_DESC" />
|
|
||||||
<action name="template.submenu" title="COM_COMPONENTBUILDER_TEMPLATES_SUBMENU" description="COM_COMPONENTBUILDER_TEMPLATES_SUBMENU_DESC" />
|
|
||||||
</section>
|
|
||||||
<section name="admin_view">
|
|
||||||
<action name="core.edit" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_DESC" />
|
|
||||||
<action name="core.edit.state" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_STATE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_STATE_DESC" />
|
|
||||||
<action name="core.edit.own" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_OWN" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_OWN_DESC" />
|
|
||||||
<action name="core.create" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_CREATE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_CREATE_DESC" />
|
|
||||||
<action name="core.delete" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_DELETE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_DELETE_DESC" />
|
|
||||||
<action name="admin_view.access" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_ACCESS" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_ACCESS_DESC" />
|
|
||||||
<action name="admin_view.version" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_VERSION" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_VERSION_DESC" />
|
|
||||||
</section>
|
|
||||||
<section name="custom_admin_view">
|
|
||||||
<action name="core.edit" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_EDIT" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_EDIT_DESC" />
|
|
||||||
<action name="core.edit.state" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_EDIT_STATE" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_EDIT_STATE_DESC" />
|
|
||||||
<action name="core.edit.own" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_EDIT_OWN" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_EDIT_OWN_DESC" />
|
|
||||||
<action name="core.create" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_CREATE" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_CREATE_DESC" />
|
|
||||||
<action name="core.delete" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_DELETE" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_DELETE_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.version" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_EDIT_VERSION" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_EDIT_VERSION_DESC" />
|
|
||||||
</section>
|
|
||||||
<section name="site_view">
|
|
||||||
<action name="core.edit" title="COM_COMPONENTBUILDER_SITE_VIEWS_EDIT" description="COM_COMPONENTBUILDER_SITE_VIEWS_EDIT_DESC" />
|
|
||||||
<action name="core.edit.state" title="COM_COMPONENTBUILDER_SITE_VIEWS_EDIT_STATE" description="COM_COMPONENTBUILDER_SITE_VIEWS_EDIT_STATE_DESC" />
|
|
||||||
<action name="core.edit.own" title="COM_COMPONENTBUILDER_SITE_VIEWS_EDIT_OWN" description="COM_COMPONENTBUILDER_SITE_VIEWS_EDIT_OWN_DESC" />
|
|
||||||
<action name="core.create" title="COM_COMPONENTBUILDER_SITE_VIEWS_CREATE" description="COM_COMPONENTBUILDER_SITE_VIEWS_CREATE_DESC" />
|
|
||||||
<action name="core.delete" title="COM_COMPONENTBUILDER_SITE_VIEWS_DELETE" description="COM_COMPONENTBUILDER_SITE_VIEWS_DELETE_DESC" />
|
|
||||||
<action name="site_view.access" title="COM_COMPONENTBUILDER_SITE_VIEWS_ACCESS" description="COM_COMPONENTBUILDER_SITE_VIEWS_ACCESS_DESC" />
|
|
||||||
<action name="site_view.version" title="COM_COMPONENTBUILDER_SITE_VIEWS_EDIT_VERSION" description="COM_COMPONENTBUILDER_SITE_VIEWS_EDIT_VERSION_DESC" />
|
|
||||||
</section>
|
|
||||||
<section name="template">
|
|
||||||
<action name="core.edit" title="COM_COMPONENTBUILDER_TEMPLATES_EDIT" description="COM_COMPONENTBUILDER_TEMPLATES_EDIT_DESC" />
|
|
||||||
<action name="core.edit.state" title="COM_COMPONENTBUILDER_TEMPLATES_EDIT_STATE" description="COM_COMPONENTBUILDER_TEMPLATES_EDIT_STATE_DESC" />
|
|
||||||
<action name="core.edit.own" title="COM_COMPONENTBUILDER_TEMPLATES_EDIT_OWN" description="COM_COMPONENTBUILDER_TEMPLATES_EDIT_OWN_DESC" />
|
|
||||||
<action name="core.create" title="COM_COMPONENTBUILDER_TEMPLATES_CREATE" description="COM_COMPONENTBUILDER_TEMPLATES_CREATE_DESC" />
|
|
||||||
<action name="core.delete" title="COM_COMPONENTBUILDER_TEMPLATES_DELETE" description="COM_COMPONENTBUILDER_TEMPLATES_DELETE_DESC" />
|
|
||||||
<action name="template.access" title="COM_COMPONENTBUILDER_TEMPLATES_ACCESS" description="COM_COMPONENTBUILDER_TEMPLATES_ACCESS_DESC" />
|
|
||||||
<action name="template.version" title="COM_COMPONENTBUILDER_TEMPLATES_EDIT_VERSION" description="COM_COMPONENTBUILDER_TEMPLATES_EDIT_VERSION_DESC" />
|
|
||||||
</section>
|
|
||||||
<section name="layout">
|
|
||||||
<action name="core.edit" title="COM_COMPONENTBUILDER_LAYOUTS_EDIT" description="COM_COMPONENTBUILDER_LAYOUTS_EDIT_DESC" />
|
|
||||||
<action name="core.edit.state" title="COM_COMPONENTBUILDER_LAYOUTS_EDIT_STATE" description="COM_COMPONENTBUILDER_LAYOUTS_EDIT_STATE_DESC" />
|
|
||||||
<action name="core.edit.own" title="COM_COMPONENTBUILDER_LAYOUTS_EDIT_OWN" description="COM_COMPONENTBUILDER_LAYOUTS_EDIT_OWN_DESC" />
|
|
||||||
<action name="core.create" title="COM_COMPONENTBUILDER_LAYOUTS_CREATE" description="COM_COMPONENTBUILDER_LAYOUTS_CREATE_DESC" />
|
|
||||||
<action name="core.delete" title="COM_COMPONENTBUILDER_LAYOUTS_DELETE" description="COM_COMPONENTBUILDER_LAYOUTS_DELETE_DESC" />
|
|
||||||
<action name="layout.access" title="COM_COMPONENTBUILDER_LAYOUTS_ACCESS" description="COM_COMPONENTBUILDER_LAYOUTS_ACCESS_DESC" />
|
|
||||||
<action name="layout.version" title="COM_COMPONENTBUILDER_LAYOUTS_EDIT_VERSION" description="COM_COMPONENTBUILDER_LAYOUTS_EDIT_VERSION_DESC" />
|
|
||||||
</section>
|
|
||||||
<section name="dynamic_get">
|
|
||||||
<action name="dynamic_get.edit" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_EDIT" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_EDIT_DESC" />
|
|
||||||
<action name="dynamic_get.edit.own" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_EDIT_OWN" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_EDIT_OWN_DESC" />
|
|
||||||
<action name="dynamic_get.edit.state" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_EDIT_STATE" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_EDIT_STATE_DESC" />
|
|
||||||
<action name="dynamic_get.create" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_CREATE" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_CREATE_DESC" />
|
|
||||||
<action name="dynamic_get.delete" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_DELETE" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_DELETE_DESC" />
|
|
||||||
<action name="dynamic_get.access" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_ACCESS" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_ACCESS_DESC" />
|
|
||||||
<action name="dynamic_get.version" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_EDIT_VERSION" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_EDIT_VERSION_DESC" />
|
|
||||||
</section>
|
|
||||||
<section name="snippet">
|
|
||||||
<action name="core.edit" title="COM_COMPONENTBUILDER_SNIPPETS_EDIT" description="COM_COMPONENTBUILDER_SNIPPETS_EDIT_DESC" />
|
|
||||||
<action name="core.edit.state" title="COM_COMPONENTBUILDER_SNIPPETS_EDIT_STATE" description="COM_COMPONENTBUILDER_SNIPPETS_EDIT_STATE_DESC" />
|
|
||||||
<action name="core.edit.own" title="COM_COMPONENTBUILDER_SNIPPETS_EDIT_OWN" description="COM_COMPONENTBUILDER_SNIPPETS_EDIT_OWN_DESC" />
|
|
||||||
<action name="core.create" title="COM_COMPONENTBUILDER_SNIPPETS_CREATE" description="COM_COMPONENTBUILDER_SNIPPETS_CREATE_DESC" />
|
|
||||||
<action name="core.delete" title="COM_COMPONENTBUILDER_SNIPPETS_DELETE" description="COM_COMPONENTBUILDER_SNIPPETS_DELETE_DESC" />
|
|
||||||
<action name="snippet.access" title="COM_COMPONENTBUILDER_SNIPPETS_ACCESS" description="COM_COMPONENTBUILDER_SNIPPETS_ACCESS_DESC" />
|
|
||||||
<action name="snippet.version" title="COM_COMPONENTBUILDER_SNIPPETS_EDIT_VERSION" description="COM_COMPONENTBUILDER_SNIPPETS_EDIT_VERSION_DESC" />
|
|
||||||
</section>
|
|
||||||
<section name="field">
|
|
||||||
<action name="field.edit" title="COM_COMPONENTBUILDER_FIELDS_EDIT" description="COM_COMPONENTBUILDER_FIELDS_EDIT_DESC" />
|
|
||||||
<action name="field.edit.state" title="COM_COMPONENTBUILDER_FIELDS_EDIT_STATE" description="COM_COMPONENTBUILDER_FIELDS_EDIT_STATE_DESC" />
|
|
||||||
<action name="field.edit.own" title="COM_COMPONENTBUILDER_FIELDS_EDIT_OWN" description="COM_COMPONENTBUILDER_FIELDS_EDIT_OWN_DESC" />
|
|
||||||
<action name="field.create" title="COM_COMPONENTBUILDER_FIELDS_CREATE" description="COM_COMPONENTBUILDER_FIELDS_CREATE_DESC" />
|
|
||||||
<action name="field.delete" title="COM_COMPONENTBUILDER_FIELDS_DELETE" description="COM_COMPONENTBUILDER_FIELDS_DELETE_DESC" />
|
|
||||||
<action name="field.access" title="COM_COMPONENTBUILDER_FIELDS_ACCESS" description="COM_COMPONENTBUILDER_FIELDS_ACCESS_DESC" />
|
|
||||||
<action name="field.version" title="COM_COMPONENTBUILDER_FIELDS_EDIT_VERSION" description="COM_COMPONENTBUILDER_FIELDS_EDIT_VERSION_DESC" />
|
|
||||||
</section>
|
|
||||||
<section name="fieldtype">
|
|
||||||
<action name="fieldtype.edit" title="COM_COMPONENTBUILDER_FIELDTYPES_EDIT" description="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_DESC" />
|
|
||||||
<action name="fieldtype.edit.own" title="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_OWN" description="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_OWN_DESC" />
|
|
||||||
<action name="fieldtype.edit.state" title="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_STATE" description="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_STATE_DESC" />
|
|
||||||
<action name="fieldtype.create" title="COM_COMPONENTBUILDER_FIELDTYPES_CREATE" description="COM_COMPONENTBUILDER_FIELDTYPES_CREATE_DESC" />
|
|
||||||
<action name="fieldtype.delete" title="COM_COMPONENTBUILDER_FIELDTYPES_DELETE" description="COM_COMPONENTBUILDER_FIELDTYPES_DELETE_DESC" />
|
|
||||||
<action name="fieldtype.access" title="COM_COMPONENTBUILDER_FIELDTYPES_ACCESS" description="COM_COMPONENTBUILDER_FIELDTYPES_ACCESS_DESC" />
|
|
||||||
<action name="fieldtype.version" title="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_VERSION" description="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_VERSION_DESC" />
|
|
||||||
</section>
|
|
||||||
<section name="help_document">
|
|
||||||
<action name="help_document.edit" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_EDIT" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_EDIT_DESC" />
|
|
||||||
<action name="help_document.edit.own" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_EDIT_OWN" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_EDIT_OWN_DESC" />
|
|
||||||
<action name="help_document.edit.state" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_EDIT_STATE" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_EDIT_STATE_DESC" />
|
|
||||||
<action name="help_document.create" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_CREATE" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_CREATE_DESC" />
|
|
||||||
<action name="help_document.delete" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_DELETE" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_DELETE_DESC" />
|
|
||||||
<action name="help_document.access" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_ACCESS" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_ACCESS_DESC" />
|
|
||||||
<action name="help_document.version" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_EDIT_VERSION" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_EDIT_VERSION_DESC" />
|
|
||||||
</section>
|
|
||||||
<section name="category.fields">
|
|
||||||
<action name="core.create" title="JACTION_CREATE" description="JACTION_CREATE_COMPONENT_DESC" />
|
|
||||||
<action name="core.delete" title="JACTION_DELETE" description="COM_CATEGORIES_ACCESS_DELETE_DESC" />
|
|
||||||
<action name="core.edit" title="JACTION_EDIT" description="COM_CATEGORIES_ACCESS_EDIT_DESC" />
|
|
||||||
<action name="core.edit.state" title="JACTION_EDITSTATE" description="COM_CATEGORIES_ACCESS_EDITSTATE_DESC" />
|
|
||||||
<action name="core.edit.own" title="JACTION_EDITOWN" description="COM_CATEGORIES_ACCESS_EDITOWN_DESC" />
|
|
||||||
</section>
|
|
||||||
<section name="category.fieldtypes">
|
|
||||||
<action name="core.create" title="JACTION_CREATE" description="JACTION_CREATE_COMPONENT_DESC" />
|
|
||||||
<action name="core.delete" title="JACTION_DELETE" description="COM_CATEGORIES_ACCESS_DELETE_DESC" />
|
|
||||||
<action name="core.edit" title="JACTION_EDIT" description="COM_CATEGORIES_ACCESS_EDIT_DESC" />
|
|
||||||
<action name="core.edit.state" title="JACTION_EDITSTATE" description="COM_CATEGORIES_ACCESS_EDITSTATE_DESC" />
|
|
||||||
<action name="core.edit.own" title="JACTION_EDITOWN" description="COM_CATEGORIES_ACCESS_EDITOWN_DESC" />
|
|
||||||
</section>
|
|
||||||
</access>
|
|
@ -1,32 +0,0 @@
|
|||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@version 2.1.0
|
|
||||||
@build 20th February, 2016
|
|
||||||
@created 30th April, 2015
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage admin.css
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/* CSS Document */
|
|
||||||
.no-click {
|
|
||||||
pointer-events: none;
|
|
||||||
}
|
|
||||||
.fieldMedium { width: 130px; }
|
|
||||||
.fieldSmall { width: 60px; }
|
|
||||||
code { display: inline-block; margin: 3px;}
|
|
@ -1,28 +0,0 @@
|
|||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@version 2.1.0
|
|
||||||
@build 20th February, 2016
|
|
||||||
@created 30th April, 2015
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage admin_view.css
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/* CSS Document */
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@version 2.1.0
|
|
||||||
@build 20th February, 2016
|
|
||||||
@created 30th April, 2015
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage admin_views.css
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/* CSS Document */
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@version 2.1.0
|
|
||||||
@build 20th February, 2016
|
|
||||||
@created 30th April, 2015
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage component.css
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/* CSS Document */
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@version 2.1.0
|
|
||||||
@build 20th February, 2016
|
|
||||||
@created 30th April, 2015
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage components.css
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/* CSS Document */
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@version 2.1.0
|
|
||||||
@build 20th February, 2016
|
|
||||||
@created 30th April, 2015
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage custom_admin_view.css
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/* CSS Document */
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@version 2.1.0
|
|
||||||
@build 20th February, 2016
|
|
||||||
@created 30th April, 2015
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage custom_admin_views.css
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/* CSS Document */
|
|
||||||
|
|
||||||
|
|
@ -1,178 +0,0 @@
|
|||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@version 2.1.0
|
|
||||||
@build 20th February, 2016
|
|
||||||
@created 30th April, 2015
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage dashboard.css
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/* CSS Document */
|
|
||||||
|
|
||||||
.dashboard-container {
|
|
||||||
margin-left: 10px;
|
|
||||||
margin-top: 10px;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
.dashboard-container [class*="span"] {
|
|
||||||
display: block;
|
|
||||||
float: none;
|
|
||||||
margin-left: 0;
|
|
||||||
width: auto;
|
|
||||||
}
|
|
||||||
.dashboard-container:before, .dashboard-container:after {
|
|
||||||
content: "";
|
|
||||||
display: table;
|
|
||||||
}
|
|
||||||
.dashboard-container:after {
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
.dashboard-container [class*="span"] {
|
|
||||||
box-sizing: border-box;
|
|
||||||
display: block;
|
|
||||||
float: left;
|
|
||||||
min-height: 145px;
|
|
||||||
min-width: 96px;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
.dashboard-container [class*="span"]:first-child {
|
|
||||||
margin-left: 0;
|
|
||||||
}
|
|
||||||
.dashboard-wraper {
|
|
||||||
background: none repeat scroll 0 0 hsl(0, 0%, 93%);
|
|
||||||
border-radius: 5px;
|
|
||||||
float: left;
|
|
||||||
margin: 1%;
|
|
||||||
padding: 3px;
|
|
||||||
width: 17%;
|
|
||||||
min-height: 194px;
|
|
||||||
min-width: 96px;
|
|
||||||
}
|
|
||||||
.dashboard-content a {
|
|
||||||
background: linear-gradient(to bottom, hsl(0, 0%, 100%) 0%, hsl(0, 0%, 96%) 47%, hsl(0, 0%, 93%) 100%) repeat scroll 0 0 hsla(0, 0%, 0%, 0);
|
|
||||||
border: 1px solid hsl(0, 0%, 85%);
|
|
||||||
border-radius: 4px;
|
|
||||||
box-shadow: 0 0 3px hsla(0, 0%, 0%, 0.1) inset;
|
|
||||||
color: hsl(0, 0%, 20%);
|
|
||||||
display: block;
|
|
||||||
min-height: 89px;
|
|
||||||
padding: 10px;
|
|
||||||
text-align: center;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
.dashboard-content a:hover {
|
|
||||||
background: linear-gradient(to bottom, hsl(0, 0%, 90%) 0%, hsl(0, 0%, 100%) 100%) repeat scroll 0 0 hsla(0, 0%, 0%, 0);
|
|
||||||
color: hsl(200, 100%, 30%);
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
.dashboard-title {
|
|
||||||
display: block;
|
|
||||||
padding-top: 5px;
|
|
||||||
}
|
|
||||||
.dashboard-info {
|
|
||||||
background: linear-gradient(to bottom, hsl(0, 0%, 100%) 0%, hsl(0, 0%, 96%) 47%, hsl(0, 0%, 93%) 100%) repeat scroll 0 0 hsla(0, 0%, 0%, 0);
|
|
||||||
border: 1px solid hsl(0, 0%, 85%);
|
|
||||||
border-radius: 4px;
|
|
||||||
box-shadow: 0 0 3px hsla(0, 0%, 0%, 0.1) inset;
|
|
||||||
color: hsl(0, 0%, 20%);
|
|
||||||
display: block;
|
|
||||||
font-size: 12px;
|
|
||||||
padding: 10px;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.dashboard-info span {
|
|
||||||
display: block;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.dashboard-info img {
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
.dashboard-table {
|
|
||||||
border-top: 1px solid hsl(0, 0%, 87%);
|
|
||||||
margin-top: 5px;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
.dashboard-info h5 {
|
|
||||||
font-size: 11px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
.dashboard-block {
|
|
||||||
background: linear-gradient(to bottom, hsl(0, 0%, 95%) 0%, hsl(0, 0%, 86%) 100%) repeat scroll 0 0 hsla(0, 0%, 0%, 0);
|
|
||||||
border: 1px solid hsl(0, 0%, 76%);
|
|
||||||
border-radius: 3px;
|
|
||||||
box-shadow: 0 1px 0 hsl(0, 0%, 98%) inset;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
}
|
|
||||||
.dashboard-block .dashboard-block-head {
|
|
||||||
background: linear-gradient(to bottom, hsl(0, 0%, 95%) 0%, hsl(0, 0%, 86%) 100%) repeat scroll 0 0 hsla(0, 0%, 0%, 0);
|
|
||||||
border-bottom: 1px solid hsl(0, 0%, 76%);
|
|
||||||
border-radius: 3px 3px 0 0;
|
|
||||||
box-shadow: 0 1px 0 hsl(0, 0%, 98%) inset, 0 0 3px hsl(0, 0%, 87%);
|
|
||||||
height: 40px;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
.dashboard-block .dashboard-block-head h5 {
|
|
||||||
font-size: 12px;
|
|
||||||
margin: 0;
|
|
||||||
padding-left: 10px;
|
|
||||||
padding-top: 11px;
|
|
||||||
text-transform: uppercase;
|
|
||||||
}
|
|
||||||
.dashboard-block .dashboard-block-content {
|
|
||||||
background: none repeat scroll 0 0 hsl(0, 0%, 93%);
|
|
||||||
border-radius: 0 0 3px 3px;
|
|
||||||
}
|
|
||||||
.dashboard-block .dashboard-block-box {
|
|
||||||
background: none repeat scroll 0 0 hsl(0, 0%, 100%);
|
|
||||||
border-top: 1px solid hsl(0, 0%, 82%);
|
|
||||||
box-shadow: 0 0 5px hsl(0, 0%, 87%) inset;
|
|
||||||
}
|
|
||||||
.dashboard-block .dashboard-block-content .dashboard-block-box {
|
|
||||||
margin-top: 0 !important;
|
|
||||||
}
|
|
||||||
.dashboard-block .dashboard-block-content .dashboard-block-box .dashboard-block-table {
|
|
||||||
margin-bottom: 0 !important;
|
|
||||||
}
|
|
||||||
.dashboard-block-table {
|
|
||||||
background-color: hsla(0, 0%, 0%, 0);
|
|
||||||
border-collapse: collapse;
|
|
||||||
border-spacing: 0;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
max-width: 100%;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
.dashboard-block-table th, .dashboard-block-table td {
|
|
||||||
border-top: 1px solid hsl(0, 0%, 87%);
|
|
||||||
line-height: 20px;
|
|
||||||
padding: 5px;
|
|
||||||
text-align: left;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
.dashboard-badge {
|
|
||||||
background-color: hsl(0, 0%, 60%);
|
|
||||||
border-radius: 9px;
|
|
||||||
color: hsl(0, 0%, 100%);
|
|
||||||
font-size: 11.844px;
|
|
||||||
font-weight: bold;
|
|
||||||
line-height: 14px;
|
|
||||||
padding: 1px 9px 2px;
|
|
||||||
text-shadow: 0 -1px 0 hsla(0, 0%, 0%, 0.25);
|
|
||||||
vertical-align: baseline;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
@ -1,28 +0,0 @@
|
|||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@version 2.1.0
|
|
||||||
@build 20th February, 2016
|
|
||||||
@created 30th April, 2015
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage dynamic_get.css
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/* CSS Document */
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@version 2.1.0
|
|
||||||
@build 20th February, 2016
|
|
||||||
@created 30th April, 2015
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage dynamic_gets.css
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/* CSS Document */
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@version 2.1.0
|
|
||||||
@build 20th February, 2016
|
|
||||||
@created 30th April, 2015
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage field.css
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/* CSS Document */
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@version 2.1.0
|
|
||||||
@build 20th February, 2016
|
|
||||||
@created 30th April, 2015
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage fields.css
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/* CSS Document */
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@version 2.1.0
|
|
||||||
@build 20th February, 2016
|
|
||||||
@created 30th April, 2015
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage fieldtype.css
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/* CSS Document */
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@version 2.1.0
|
|
||||||
@build 20th February, 2016
|
|
||||||
@created 30th April, 2015
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage fieldtypes.css
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/* CSS Document */
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@version 2.1.0
|
|
||||||
@build 20th February, 2016
|
|
||||||
@created 30th April, 2015
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage help_document.css
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/* CSS Document */
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@version 2.1.0
|
|
||||||
@build 20th February, 2016
|
|
||||||
@created 30th April, 2015
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage help_documents.css
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/* CSS Document */
|
|
||||||
|
|
||||||
|
|
@ -1 +0,0 @@
|
|||||||
<html><body bgcolor="#FFFFFF"></body></html>
|
|
@ -1,28 +0,0 @@
|
|||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@version 2.1.0
|
|
||||||
@build 20th February, 2016
|
|
||||||
@created 30th April, 2015
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage layout.css
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/* CSS Document */
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@version 2.1.0
|
|
||||||
@build 20th February, 2016
|
|
||||||
@created 30th April, 2015
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage layouts.css
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/* CSS Document */
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@version 2.1.0
|
|
||||||
@build 20th February, 2016
|
|
||||||
@created 30th April, 2015
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage site_view.css
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/* CSS Document */
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@version 2.1.0
|
|
||||||
@build 20th February, 2016
|
|
||||||
@created 30th April, 2015
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage site_views.css
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/* CSS Document */
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@version 2.1.0
|
|
||||||
@build 20th February, 2016
|
|
||||||
@created 30th April, 2015
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage snippet.css
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/* CSS Document */
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@version 2.1.0
|
|
||||||
@build 20th February, 2016
|
|
||||||
@created 30th April, 2015
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage snippets.css
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/* CSS Document */
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@version 2.1.0
|
|
||||||
@build 20th February, 2016
|
|
||||||
@created 30th April, 2015
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage template.css
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/* CSS Document */
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@version 2.1.0
|
|
||||||
@build 20th February, 2016
|
|
||||||
@created 30th April, 2015
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage templates.css
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/* CSS Document */
|
|
||||||
|
|
||||||
|
|
Before Width: | Height: | Size: 393 KiB |
Before Width: | Height: | Size: 64 KiB |
Before Width: | Height: | Size: 126 KiB |
Before Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 5.0 KiB |
Before Width: | Height: | Size: 9.6 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 26 KiB |
@ -1 +0,0 @@
|
|||||||
<html><body bgcolor="#FFFFFF"></body></html>
|
|
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 8.3 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 64 KiB |
@ -1 +0,0 @@
|
|||||||
<html><body bgcolor="#FFFFFF"></body></html>
|
|
@ -1 +0,0 @@
|
|||||||
<html><body bgcolor="#FFFFFF"></body></html>
|
|
@ -1 +0,0 @@
|
|||||||
<html><body bgcolor="#FFFFFF"></body></html>
|
|
@ -1,18 +0,0 @@
|
|||||||
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
|
||||||
###COMPANYNAME###
|
|
||||||
/-------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@version ###VERSION###
|
|
||||||
@build ###BUILDDATE###
|
|
||||||
@created ###CREATIONDATE###
|
|
||||||
@package ###Component_name###
|
|
||||||
@subpackage ###FILENAME###
|
|
||||||
@author ###AUTHOR### <###AUTHORWEBSITE###>###CONTRIBUTORS###
|
|
||||||
@copyright ###COPYRIGHT###
|
|
||||||
@license ###LICENSE###
|
|
||||||
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
|
||||||
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
|
||||||
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
|
||||||
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
|
||||||
|
|
||||||
/------------------------------------------------------------------------------------------------------*/
|
|
@ -1,16 +0,0 @@
|
|||||||
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
|
||||||
###COMPANYNAME###
|
|
||||||
/-------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@version ###VERSION###
|
|
||||||
@build ###BUILDDATE###
|
|
||||||
@created ###CREATIONDATE###
|
|
||||||
@package ###Component_name###
|
|
||||||
@subpackage ###FILENAME###
|
|
||||||
@author ###AUTHOR### <###AUTHORWEBSITE###>###CONTRIBUTORS###
|
|
||||||
@copyright ###COPYRIGHT###
|
|
||||||
@license ###LICENSE###
|
|
||||||
|
|
||||||
###SHORT_DESCRIPTION###
|
|
||||||
|
|
||||||
/------------------------------------------------------------------------------------------------------*/
|
|
@ -1,17 +0,0 @@
|
|||||||
/*----------------------------------------------------------------------------------| www.giz.de |----/
|
|
||||||
###COMPANYNAME###
|
|
||||||
/-------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@version ###VERSION###
|
|
||||||
@build ###BUILDDATE###
|
|
||||||
@created ###CREATIONDATE###
|
|
||||||
@package ###Component_name###
|
|
||||||
@subpackage ###FILENAME###
|
|
||||||
@author ###AUTHOR### <###AUTHORWEBSITE###>
|
|
||||||
@owner ###COMPANYNAME###
|
|
||||||
@copyright ###COPYRIGHT###
|
|
||||||
@license ###LICENSE###
|
|
||||||
|
|
||||||
/-------------------------------------------------------------------------------------------------------/
|
|
||||||
###SHORT_DESCRIPTION###
|
|
||||||
/------------------------------------------------------------------------------------------------------*/
|
|
@ -1 +0,0 @@
|
|||||||
<html><body bgcolor="#FFFFFF"></body></html>
|
|
@ -1 +0,0 @@
|
|||||||
###UPDATE_VERSION_MYSQL###
|
|
@ -1,41 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
// import Joomla controlleradmin library
|
|
||||||
jimport('joomla.application.component.controlleradmin');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ###Component### Controller
|
|
||||||
*/
|
|
||||||
class ###Component###Controller###Component### extends JControllerAdmin
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
@ -1,210 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
// import the Joomla modellist library
|
|
||||||
jimport('joomla.application.component.modellist');
|
|
||||||
jimport('joomla.application.component.helper');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ###Component### Model
|
|
||||||
*/
|
|
||||||
class ###Component###Model###Component### extends JModelList
|
|
||||||
{
|
|
||||||
public function getIcons()
|
|
||||||
{
|
|
||||||
// load user for access menus
|
|
||||||
$user = JFactory::getUser();
|
|
||||||
// reset icon array
|
|
||||||
$icons = array();
|
|
||||||
// view groups array
|
|
||||||
$viewGroups = array(
|
|
||||||
'main' => array(###DASHBOARDICONS###)
|
|
||||||
);###DASHBOARDICONACCESS###
|
|
||||||
foreach($viewGroups as $group => $views)
|
|
||||||
{
|
|
||||||
$i = 0;
|
|
||||||
if (###Component###Helper::checkArray($views))
|
|
||||||
{
|
|
||||||
foreach($views as $view)
|
|
||||||
{
|
|
||||||
$add = false;
|
|
||||||
if (strpos($view,'.') !== false)
|
|
||||||
{
|
|
||||||
$dwd = explode('.', $view);
|
|
||||||
if (count($dwd) == 3)
|
|
||||||
{
|
|
||||||
list($type, $name, $action) = $dwd;
|
|
||||||
}
|
|
||||||
elseif (count($dwd) == 2)
|
|
||||||
{
|
|
||||||
list($type, $name) = $dwd;
|
|
||||||
$action = false;
|
|
||||||
}
|
|
||||||
if ($action)
|
|
||||||
{
|
|
||||||
$viewName = $name;
|
|
||||||
switch($action)
|
|
||||||
{
|
|
||||||
case 'add':
|
|
||||||
$url ='index.php?option=com_###component###&view='.$name.'&layout=edit';
|
|
||||||
$image = $name.'_'.$action.'.'.$type;
|
|
||||||
$alt = $name.' '.$action;
|
|
||||||
$name = 'COM_###COMPONENT###_DASHBOARD_'.###Component###Helper::safeString($name,'U').'_ADD';
|
|
||||||
$add = true;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
$url = 'index.php?option=com_categories&view=categories&extension=com_###component###.'.$name;
|
|
||||||
$image = $name.'_'.$action.'.'.$type;
|
|
||||||
$alt = $name.' '.$action;
|
|
||||||
$name = 'COM_###COMPONENT###_DASHBOARD_'.###Component###Helper::safeString($name,'U').'_'.###Component###Helper::safeString($action,'U');
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$viewName = $name;
|
|
||||||
$alt = $name;
|
|
||||||
$url = 'index.php?option=com_###component###&view='.$name;
|
|
||||||
$image = $name.'.'.$type;
|
|
||||||
$name = 'COM_###COMPONENT###_DASHBOARD_'.###Component###Helper::safeString($name,'U');
|
|
||||||
$hover = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$viewName = $view;
|
|
||||||
$alt = $view;
|
|
||||||
$url = 'index.php?option=com_###component###&view='.$view;
|
|
||||||
$image = $view.'.png';
|
|
||||||
$name = ucwords($view).'<br /><br />';
|
|
||||||
$hover = false;
|
|
||||||
}
|
|
||||||
// first make sure the view access is set
|
|
||||||
if (###Component###Helper::checkArray($viewAccess))
|
|
||||||
{
|
|
||||||
// setup some defaults
|
|
||||||
$dashboard_add = false;
|
|
||||||
$dashboard_list = false;
|
|
||||||
$accessTo = '';
|
|
||||||
$accessAdd = '';
|
|
||||||
// acces checking start
|
|
||||||
$accessCreate = (isset($viewAccess[$viewName.'.create'])) ? ###Component###Helper::checkString($viewAccess[$viewName.'.create']):false;
|
|
||||||
$accessAccess = (isset($viewAccess[$viewName.'.access'])) ? ###Component###Helper::checkString($viewAccess[$viewName.'.access']):false;
|
|
||||||
// set main controllers
|
|
||||||
$accessDashboard_add = (isset($viewAccess[$viewName.'.dashboard_add'])) ? ###Component###Helper::checkString($viewAccess[$viewName.'.dashboard_add']):false;
|
|
||||||
$accessDashboard_list = (isset($viewAccess[$viewName.'.dashboard_list'])) ? ###Component###Helper::checkString($viewAccess[$viewName.'.dashboard_list']):false;
|
|
||||||
// check for adding access
|
|
||||||
if ($add && $accessCreate)
|
|
||||||
{
|
|
||||||
$accessAdd = $viewAccess[$viewName.'.create'];
|
|
||||||
}
|
|
||||||
elseif ($add)
|
|
||||||
{
|
|
||||||
$accessAdd = 'core.create';
|
|
||||||
}
|
|
||||||
// check if acces to view is set
|
|
||||||
if ($accessAccess)
|
|
||||||
{
|
|
||||||
$accessTo = $viewAccess[$viewName.'.access'];
|
|
||||||
}
|
|
||||||
// set main access controllers
|
|
||||||
if ($accessDashboard_add)
|
|
||||||
{
|
|
||||||
$dashboard_add = $user->authorise($viewAccess[$viewName.'.dashboard_add'], 'com_###component###');
|
|
||||||
}
|
|
||||||
if ($accessDashboard_list)
|
|
||||||
{
|
|
||||||
$dashboard_list = $user->authorise($viewAccess[$viewName.'.dashboard_list'], 'com_###component###');
|
|
||||||
}
|
|
||||||
if (###Component###Helper::checkString($accessAdd) && ###Component###Helper::checkString($accessTo))
|
|
||||||
{
|
|
||||||
// check access
|
|
||||||
if($user->authorise($accessAdd, 'com_###component###') && $user->authorise($accessTo, 'com_###component###') && $dashboard_add)
|
|
||||||
{
|
|
||||||
$icons[$group][$i] = new StdClass;
|
|
||||||
$icons[$group][$i]->url = $url;
|
|
||||||
$icons[$group][$i]->name = $name;
|
|
||||||
$icons[$group][$i]->image = $image;
|
|
||||||
$icons[$group][$i]->alt = $alt;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif (###Component###Helper::checkString($accessTo))
|
|
||||||
{
|
|
||||||
// check access
|
|
||||||
if($user->authorise($accessTo, 'com_###component###') && $dashboard_list)
|
|
||||||
{
|
|
||||||
$icons[$group][$i] = new StdClass;
|
|
||||||
$icons[$group][$i]->url = $url;
|
|
||||||
$icons[$group][$i]->name = $name;
|
|
||||||
$icons[$group][$i]->image = $image;
|
|
||||||
$icons[$group][$i]->alt = $alt;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif (###Component###Helper::checkString($accessAdd))
|
|
||||||
{
|
|
||||||
// check access
|
|
||||||
if($user->authorise($accessAdd, 'com_###component###') && $dashboard_add)
|
|
||||||
{
|
|
||||||
$icons[$group][$i] = new StdClass;
|
|
||||||
$icons[$group][$i]->url = $url;
|
|
||||||
$icons[$group][$i]->name = $name;
|
|
||||||
$icons[$group][$i]->image = $image;
|
|
||||||
$icons[$group][$i]->alt = $alt;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$icons[$group][$i] = new StdClass;
|
|
||||||
$icons[$group][$i]->url = $url;
|
|
||||||
$icons[$group][$i]->name = $name;
|
|
||||||
$icons[$group][$i]->image = $image;
|
|
||||||
$icons[$group][$i]->alt = $alt;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$icons[$group][$i] = new StdClass;
|
|
||||||
$icons[$group][$i]->url = $url;
|
|
||||||
$icons[$group][$i]->name = $name;
|
|
||||||
$icons[$group][$i]->image = $image;
|
|
||||||
$icons[$group][$i]->alt = $alt;
|
|
||||||
}
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$icons[$group][$i] = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return $icons;
|
|
||||||
}###DASH_MODEL_METHODS###
|
|
||||||
}
|
|
@ -1,101 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
// import Joomla view library
|
|
||||||
jimport('joomla.application.component.view');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ###Component### View class
|
|
||||||
*/
|
|
||||||
class ###Component###View###Component### extends JViewLegacy
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* View display method
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
function display($tpl = null)
|
|
||||||
{
|
|
||||||
// Check for errors.
|
|
||||||
if (count($errors = $this->get('Errors')))
|
|
||||||
{
|
|
||||||
JError::raiseError(500, implode('<br />', $errors));
|
|
||||||
return false;
|
|
||||||
};
|
|
||||||
// Assign data to the view
|
|
||||||
$this->icons = $this->get('Icons');
|
|
||||||
$this->contributors = ###Component###Helper::getContributors();###DASH_GET_CUSTOM_DATA###
|
|
||||||
|
|
||||||
// Set the toolbar
|
|
||||||
$this->addToolBar();
|
|
||||||
|
|
||||||
// Display the template
|
|
||||||
parent::display($tpl);
|
|
||||||
|
|
||||||
// Set the document
|
|
||||||
$this->setDocument();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Setting the toolbar
|
|
||||||
*/
|
|
||||||
protected function addToolBar()
|
|
||||||
{
|
|
||||||
$canDo = ###Component###Helper::getActions('###component###');
|
|
||||||
JToolBarHelper::title(JText::_('COM_###COMPONENT###_DASHBOARD'), 'grid-2');
|
|
||||||
|
|
||||||
// set help url for this view if found
|
|
||||||
$help_url = ###Component###Helper::getHelpUrl('###component###');
|
|
||||||
if (###Component###Helper::checkString($help_url))
|
|
||||||
{
|
|
||||||
JToolbarHelper::help('COM_###COMPONENT###_HELP_MANAGER', false, $help_url);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($canDo->get('core.admin') || $canDo->get('core.options'))
|
|
||||||
{
|
|
||||||
JToolBarHelper::preferences('com_###component###');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to set up the document properties
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
protected function setDocument()
|
|
||||||
{
|
|
||||||
$document = JFactory::getDocument();
|
|
||||||
|
|
||||||
$document->addStyleSheet(JURI::root() . "administrator/components/com_###component###/assets/css/dashboard.css");
|
|
||||||
|
|
||||||
$document->setTitle(JText::_('COM_###COMPONENT###_DASHBOARD'));
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,34 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
JHtml::_('behavior.tooltip');
|
|
||||||
|
|
||||||
?>###DASH_DISPLAY_DATA###
|
|
@ -1,860 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ###Component### component helper.
|
|
||||||
*/
|
|
||||||
abstract class ###Component###Helper
|
|
||||||
{###ADMIN_GLOBAL_EVENT_HELPER### ###CUSTOM_HELPER_SCRIPT###
|
|
||||||
/**
|
|
||||||
* Load the Component xml manifest.
|
|
||||||
**/
|
|
||||||
public static function manifest()
|
|
||||||
{
|
|
||||||
$manifestUrl = JPATH_ADMINISTRATOR."/components/com_###component###/###component###.xml";
|
|
||||||
return simplexml_load_file($manifestUrl);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Load the Contributors details.
|
|
||||||
**/
|
|
||||||
public static function getContributors()
|
|
||||||
{
|
|
||||||
// get params
|
|
||||||
$params = JComponentHelper::getParams('com_###component###');
|
|
||||||
// start contributors array
|
|
||||||
$contributors = array();
|
|
||||||
// get all Contributors (max 20)
|
|
||||||
$searchArray = range('0','20');
|
|
||||||
foreach($searchArray as $nr)
|
|
||||||
{
|
|
||||||
if ((NULL !== $params->get("showContributor".$nr)) && ($params->get("showContributor".$nr) == 1 || $params->get("showContributor".$nr) == 3))
|
|
||||||
{
|
|
||||||
// set link based of selected option
|
|
||||||
if($params->get("useContributor".$nr) == 1)
|
|
||||||
{
|
|
||||||
$link_front = '<a href="mailto:'.$params->get("emailContributor".$nr).'" target="_blank">';
|
|
||||||
$link_back = '</a>';
|
|
||||||
}
|
|
||||||
elseif($params->get("useContributor".$nr) == 2)
|
|
||||||
{
|
|
||||||
$link_front = '<a href="'.$params->get("linkContributor".$nr).'" target="_blank">';
|
|
||||||
$link_back = '</a>';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$link_front = '';
|
|
||||||
$link_back = '';
|
|
||||||
}
|
|
||||||
$contributors[$nr]['title'] = self::htmlEscape($params->get("titleContributor".$nr));
|
|
||||||
$contributors[$nr]['name'] = $link_front.self::htmlEscape($params->get("nameContributor".$nr)).$link_back;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return $contributors;
|
|
||||||
}###HELP###
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Configure the Linkbar.
|
|
||||||
**/
|
|
||||||
public static function addSubmenu($submenu)
|
|
||||||
{
|
|
||||||
// load user for access menus
|
|
||||||
$user = JFactory::getUser();
|
|
||||||
// load the submenus to sidebar
|
|
||||||
###SUBMENU###
|
|
||||||
}###HELPER_CREATEUSER### ###HELPER_UIKIT### ###HELPER_EXEL###
|
|
||||||
|
|
||||||
public static function getVar($table, $where = null, $whereString = 'user', $what = 'id', $operator = '=', $main = '###component###')
|
|
||||||
{
|
|
||||||
if(!$where)
|
|
||||||
{
|
|
||||||
$where = JFactory::getUser()->id;
|
|
||||||
}
|
|
||||||
// Get a db connection.
|
|
||||||
$db = JFactory::getDbo();
|
|
||||||
// Create a new query object.
|
|
||||||
$query = $db->getQuery(true);
|
|
||||||
|
|
||||||
$query->select($db->quoteName(array($what)));
|
|
||||||
$query->from($db->quoteName('#__'.$main.'_'.$table));
|
|
||||||
if (is_numeric($where))
|
|
||||||
{
|
|
||||||
$query->where($db->quoteName($whereString) . ' '.$operator.' '.(int) $where);
|
|
||||||
}
|
|
||||||
elseif (is_string($where))
|
|
||||||
{
|
|
||||||
$query->where($db->quoteName($whereString) . ' '.$operator.' '. $db->quote((string)$where));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
$db->setQuery($query);
|
|
||||||
$db->execute();
|
|
||||||
if ($db->getNumRows())
|
|
||||||
{
|
|
||||||
return $db->loadResult();
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function getVars($table, $where = null, $whereString = 'user', $what = 'id', $operator = 'IN', $main = '###component###', $unique = true)
|
|
||||||
{
|
|
||||||
if(!$where)
|
|
||||||
{
|
|
||||||
$where = JFactory::getUser()->id;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!self::checkArray($where) && $where > 0)
|
|
||||||
{
|
|
||||||
$where = array($where);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (self::checkArray($where))
|
|
||||||
{
|
|
||||||
// Get a db connection.
|
|
||||||
$db = JFactory::getDbo();
|
|
||||||
// Create a new query object.
|
|
||||||
$query = $db->getQuery(true);
|
|
||||||
|
|
||||||
$query->select($db->quoteName(array($what)));
|
|
||||||
$query->from($db->quoteName('#__'.$main.'_'.$table));
|
|
||||||
$query->where($db->quoteName($whereString) . ' '.$operator.' (' . implode(',',$where) . ')');
|
|
||||||
$db->setQuery($query);
|
|
||||||
$db->execute();
|
|
||||||
if ($db->getNumRows())
|
|
||||||
{
|
|
||||||
if ($unique)
|
|
||||||
{
|
|
||||||
return array_unique($db->loadColumn());
|
|
||||||
}
|
|
||||||
return $db->loadColumn();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function jsonToString($value, $sperator = ", ")
|
|
||||||
{
|
|
||||||
// check if string is JSON
|
|
||||||
$result = json_decode($value, true);
|
|
||||||
if (json_last_error() === JSON_ERROR_NONE) {
|
|
||||||
// is JSON
|
|
||||||
if (self::checkArray($result))
|
|
||||||
{
|
|
||||||
$value = '';
|
|
||||||
$counter = 0;
|
|
||||||
foreach ($result as $string)
|
|
||||||
{
|
|
||||||
if ($counter)
|
|
||||||
{
|
|
||||||
$value .= $sperator.$string;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$value .= $string;
|
|
||||||
}
|
|
||||||
$counter++;
|
|
||||||
}
|
|
||||||
return $value;
|
|
||||||
}
|
|
||||||
return json_decode($value);
|
|
||||||
}
|
|
||||||
return $value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function isPublished($id,$type)
|
|
||||||
{
|
|
||||||
if ($type == 'raw')
|
|
||||||
{
|
|
||||||
$type = 'item';
|
|
||||||
}
|
|
||||||
$db = JFactory::getDbo();
|
|
||||||
$query = $db->getQuery(true);
|
|
||||||
$query->select(array('a.published'));
|
|
||||||
$query->from('#__###component###_'.$type.' AS a');
|
|
||||||
$query->where('a.id = '.$id);
|
|
||||||
$query->where('a.published = 1');
|
|
||||||
$db->setQuery($query);
|
|
||||||
$db->execute();
|
|
||||||
$found = $db->getNumRows();
|
|
||||||
if($found)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function getGroupName($id)
|
|
||||||
{
|
|
||||||
$db = JFactory::getDBO();
|
|
||||||
$query = $db->getQuery(true);
|
|
||||||
$query->select(array('a.title'));
|
|
||||||
$query->from('#__usergroups AS a');
|
|
||||||
$query->where('a.id = '.$id);
|
|
||||||
$db->setQuery($query);
|
|
||||||
$db->execute();
|
|
||||||
$found = $db->getNumRows();
|
|
||||||
if($found)
|
|
||||||
{
|
|
||||||
return $db->loadResult();
|
|
||||||
}
|
|
||||||
return $id;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the actions permissions
|
|
||||||
**/
|
|
||||||
public static function getActions($view,&$record = null,$views = null)
|
|
||||||
{
|
|
||||||
jimport('joomla.access.access');
|
|
||||||
|
|
||||||
$user = JFactory::getUser();
|
|
||||||
$result = new JObject;
|
|
||||||
$view = self::safeString($view);
|
|
||||||
if (self::checkString($views))
|
|
||||||
{
|
|
||||||
$views = self::safeString($views);
|
|
||||||
}
|
|
||||||
// get all actions from component
|
|
||||||
$actions = JAccess::getActions('com_###component###', 'component');
|
|
||||||
// set acctions only set in component settiongs
|
|
||||||
$componentActions = array('core.admin','core.manage','core.options','core.export');
|
|
||||||
// loop the actions and set the permissions
|
|
||||||
foreach ($actions as $action)
|
|
||||||
{
|
|
||||||
// set to use component default
|
|
||||||
$fallback= true;
|
|
||||||
if (self::checkObject($record) && isset($record->id) && $record->id > 0 && !in_array($action->name,$componentActions))
|
|
||||||
{
|
|
||||||
// The record has been set. Check the record permissions.
|
|
||||||
$permission = $user->authorise($action->name, 'com_###component###.'.$view.'.' . (int) $record->id);
|
|
||||||
if (!$permission && !is_null($permission))
|
|
||||||
{
|
|
||||||
if ($action->name == 'core.edit' || $action->name == $view.'.edit')
|
|
||||||
{
|
|
||||||
if ($user->authorise('core.edit.own', 'com_###component###.'.$view.'.' . (int) $record->id))
|
|
||||||
{
|
|
||||||
// If the owner matches 'me' then allow.
|
|
||||||
if (isset($record->created_by) && $record->created_by > 0 && ($record->created_by == $user->id))
|
|
||||||
{
|
|
||||||
$result->set($action->name, true);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback= false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$result->set($action->name, false);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback= false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif ($user->authorise($view.'edit.own', 'com_###component###.'.$view.'.' . (int) $record->id))
|
|
||||||
{
|
|
||||||
// If the owner matches 'me' then allow.
|
|
||||||
if (isset($record->created_by) && $record->created_by > 0 && ($record->created_by == $user->id))
|
|
||||||
{
|
|
||||||
$result->set($action->name, true);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback= false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$result->set($action->name, false);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback= false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif ($user->authorise('core.edit.own', 'com_###component###'))
|
|
||||||
{
|
|
||||||
// If the owner matches 'me' then allow.
|
|
||||||
if (isset($record->created_by) && $record->created_by > 0 && ($record->created_by == $user->id))
|
|
||||||
{
|
|
||||||
$result->set($action->name, true);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback= false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$result->set($action->name, false);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback= false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif ($user->authorise($view.'edit.own', 'com_###component###'))
|
|
||||||
{
|
|
||||||
// If the owner matches 'me' then allow.
|
|
||||||
if (isset($record->created_by) && $record->created_by > 0 && ($record->created_by == $user->id))
|
|
||||||
{
|
|
||||||
$result->set($action->name, true);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback= false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$result->set($action->name, false);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback= false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif (self::checkString($views) && isset($record->catid) && $record->catid > 0)
|
|
||||||
{
|
|
||||||
// make sure we use the core. action check for the categories
|
|
||||||
if (strpos($action->name,$view) !== false && strpos($action->name,'core.') === false ) {
|
|
||||||
$coreCheck = explode('.',$action->name);
|
|
||||||
$coreCheck[0] = 'core';
|
|
||||||
$categoryCheck = implode('.',$coreCheck);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$categoryCheck = $action->name;
|
|
||||||
}
|
|
||||||
// The record has a category. Check the category permissions.
|
|
||||||
$catpermission = $user->authorise($categoryCheck, 'com_###component###.'.$views.'.category.' . (int) $record->catid);
|
|
||||||
if (!$catpermission && !is_null($catpermission))
|
|
||||||
{
|
|
||||||
if ($action->name == 'core.edit' || $action->name == $view.'.edit')
|
|
||||||
{
|
|
||||||
if ($user->authorise('core.edit.own', 'com_###component###.'.$views.'.category.' . (int) $record->catid))
|
|
||||||
{
|
|
||||||
// If the owner matches 'me' then allow.
|
|
||||||
if (isset($record->created_by) && $record->created_by > 0 && ($record->created_by == $user->id))
|
|
||||||
{
|
|
||||||
$result->set($action->name, true);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback= false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$result->set($action->name, false);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback= false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif ($user->authorise($view.'edit.own', 'com_###component###.'.$views.'.category.' . (int) $record->catid))
|
|
||||||
{
|
|
||||||
// If the owner matches 'me' then allow.
|
|
||||||
if (isset($record->created_by) && $record->created_by > 0 && ($record->created_by == $user->id))
|
|
||||||
{
|
|
||||||
$result->set($action->name, true);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback= false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$result->set($action->name, false);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback= false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif ($user->authorise('core.edit.own', 'com_###component###'))
|
|
||||||
{
|
|
||||||
// If the owner matches 'me' then allow.
|
|
||||||
if (isset($record->created_by) && $record->created_by > 0 && ($record->created_by == $user->id))
|
|
||||||
{
|
|
||||||
$result->set($action->name, true);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback= false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$result->set($action->name, false);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback= false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif ($user->authorise($view.'edit.own', 'com_###component###'))
|
|
||||||
{
|
|
||||||
// If the owner matches 'me' then allow.
|
|
||||||
if (isset($record->created_by) && $record->created_by > 0 && ($record->created_by == $user->id))
|
|
||||||
{
|
|
||||||
$result->set($action->name, true);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback= false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$result->set($action->name, false);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback= false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// if allowed then fallback on component global settings
|
|
||||||
if ($fallback)
|
|
||||||
{
|
|
||||||
$result->set($action->name, $user->authorise($action->name, 'com_###component###'));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get any component's model
|
|
||||||
**/
|
|
||||||
public static function getModel($name, $path = JPATH_COMPONENT_ADMINISTRATOR, $component = '###component###')
|
|
||||||
{
|
|
||||||
// load some joomla helpers
|
|
||||||
JLoader::import('joomla.application.component.model');
|
|
||||||
// load the model file
|
|
||||||
JLoader::import( $name, $path . '/models' );
|
|
||||||
// return instance
|
|
||||||
return JModelLegacy::getInstance( $name, $component.'Model' );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add to asset Table
|
|
||||||
*/
|
|
||||||
public static function setAsset($id,$table)
|
|
||||||
{
|
|
||||||
$parent = JTable::getInstance('Asset');
|
|
||||||
$parent->loadByName('com_###component###');
|
|
||||||
|
|
||||||
$parentId = $parent->id;
|
|
||||||
$name = 'com_###component###.'.$table.'.'.$id;
|
|
||||||
$title = '';
|
|
||||||
|
|
||||||
$asset = JTable::getInstance('Asset');
|
|
||||||
$asset->loadByName($name);
|
|
||||||
|
|
||||||
// Check for an error.
|
|
||||||
$error = $asset->getError();
|
|
||||||
|
|
||||||
if ($error)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Specify how a new or moved node asset is inserted into the tree.
|
|
||||||
if ($asset->parent_id != $parentId)
|
|
||||||
{
|
|
||||||
$asset->setLocation($parentId, 'last-child');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Prepare the asset to be stored.
|
|
||||||
$asset->parent_id = $parentId;
|
|
||||||
$asset->name = $name;
|
|
||||||
$asset->title = $title;
|
|
||||||
// get the default asset rules
|
|
||||||
$rules = self::getDefaultAssetRules('com_###component###',$table);
|
|
||||||
if ($rules instanceof JAccessRules)
|
|
||||||
{
|
|
||||||
$asset->rules = (string) $rules;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$asset->check() || !$asset->store())
|
|
||||||
{
|
|
||||||
JError::raiseWarning(500, $asset->getError());
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Create an asset_id or heal one that is corrupted.
|
|
||||||
$object = new stdClass();
|
|
||||||
|
|
||||||
// Must be a valid primary key value.
|
|
||||||
$object->id = $id;
|
|
||||||
$object->asset_id = (int) $asset->id;
|
|
||||||
|
|
||||||
// Update their asset_id to link to the asset table.
|
|
||||||
return JFactory::getDbo()->updateObject('#__###component###_'.$table, $object, 'id');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the default asset Rules for a component/view.
|
|
||||||
*/
|
|
||||||
protected static function getDefaultAssetRules($component,$view)
|
|
||||||
{
|
|
||||||
// Need to find the asset id by the name of the component.
|
|
||||||
$db = JFactory::getDbo();
|
|
||||||
$query = $db->getQuery(true)
|
|
||||||
->select($db->quoteName('id'))
|
|
||||||
->from($db->quoteName('#__assets'))
|
|
||||||
->where($db->quoteName('name') . ' = ' . $db->quote($component));
|
|
||||||
$db->setQuery($query);
|
|
||||||
$db->execute();
|
|
||||||
if ($db->loadRowList())
|
|
||||||
{
|
|
||||||
// asset alread set so use saved rules
|
|
||||||
$assetId = (int) $db->loadResult();
|
|
||||||
$result = JAccess::getAssetRules($assetId);
|
|
||||||
if ($result instanceof JAccessRules)
|
|
||||||
{
|
|
||||||
$_result = (string) $result;
|
|
||||||
$_result = json_decode($_result);
|
|
||||||
foreach ($_result as $name => &$rule)
|
|
||||||
{
|
|
||||||
$v = explode('.', $name);
|
|
||||||
if ($view !== $v[0])
|
|
||||||
{
|
|
||||||
// remove since it is not part of this view
|
|
||||||
unset($_result->$name);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// clear the value since we inherit
|
|
||||||
$rule = array();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// check if there are any view values remaining
|
|
||||||
if (count($_result))
|
|
||||||
{
|
|
||||||
$_result = json_encode($_result);
|
|
||||||
$_result = array($_result);
|
|
||||||
// Instantiate and return the JAccessRules object for the asset rules.
|
|
||||||
$rules = new JAccessRules($_result);
|
|
||||||
|
|
||||||
return $rules;
|
|
||||||
}
|
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return JAccess::getAssetRules(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function renderBoolButton()
|
|
||||||
{
|
|
||||||
$args = func_get_args();
|
|
||||||
|
|
||||||
// get the radio element
|
|
||||||
$button = JFormHelper::loadFieldType('radio');
|
|
||||||
|
|
||||||
// setup the properties
|
|
||||||
$name = self::htmlEscape($args[0]);
|
|
||||||
$additional = isset($args[1]) ? (string) $args[1] : '';
|
|
||||||
$value = $args[2];
|
|
||||||
$yes = isset($args[3]) ? self::htmlEscape($args[3]) : 'JYES';
|
|
||||||
$no = isset($args[4]) ? self::htmlEscape($args[4]) : 'JNO';
|
|
||||||
|
|
||||||
// prepare the xml
|
|
||||||
$element = new SimpleXMLElement('<field name="'.$name.'" type="radio" class="btn-group"><option '.$additional.' value="0">'.$no.'</option><option '.$additional.' value="1">'.$yes.'</option></field>');
|
|
||||||
|
|
||||||
// run
|
|
||||||
$button->setup($element, $value);
|
|
||||||
|
|
||||||
return $button->input;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function checkObject($object)
|
|
||||||
{
|
|
||||||
if (isset($object) && is_object($object) && count($object) > 0)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function checkArray($array)
|
|
||||||
{
|
|
||||||
if (isset($array) && is_array($array) && count($array) > 0)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function checkString($string)
|
|
||||||
{
|
|
||||||
if (isset($string) && is_string($string) && strlen($string) > 0)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function mergeArrays($arrays)
|
|
||||||
{
|
|
||||||
if(self::checkArray($arrays))
|
|
||||||
{
|
|
||||||
$arrayBuket = array();
|
|
||||||
foreach ($arrays as $array)
|
|
||||||
{
|
|
||||||
if (self::checkArray($array))
|
|
||||||
{
|
|
||||||
$arrayBuket = array_merge($arrayBuket, $array);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return $arrayBuket;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function sorten($string, $length = 40, $addTip = true)
|
|
||||||
{
|
|
||||||
if (self::checkString($string))
|
|
||||||
{
|
|
||||||
$initial = strlen($string);
|
|
||||||
$words = preg_split('/([\s\n\r]+)/', $string, null, PREG_SPLIT_DELIM_CAPTURE);
|
|
||||||
$words_count = count($words);
|
|
||||||
|
|
||||||
$word_length = 0;
|
|
||||||
$last_word = 0;
|
|
||||||
for (; $last_word < $words_count; ++$last_word)
|
|
||||||
{
|
|
||||||
$word_length += strlen($words[$last_word]);
|
|
||||||
if ($word_length > $length)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$newString = implode(array_slice($words, 0, $last_word));
|
|
||||||
$final = strlen($newString);
|
|
||||||
if ($initial != $final && $addTip)
|
|
||||||
{
|
|
||||||
$title = self::sorten($string, 400 , false);
|
|
||||||
return '<span class="hasTip" title="'.$title.'" style="cursor:help">'.trim($newString).'...</span>';
|
|
||||||
}
|
|
||||||
elseif ($initial != $final && !$addTip)
|
|
||||||
{
|
|
||||||
return trim($newString).'...';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return $string;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function safeString($string, $type = 'L', $spacer = '_')
|
|
||||||
{
|
|
||||||
// remove all numbers and replace with english text version (works well only up to a thousand)
|
|
||||||
$string = self::replaceNumbers($string);
|
|
||||||
|
|
||||||
if (self::checkString($string))
|
|
||||||
{
|
|
||||||
// remove all other characters
|
|
||||||
$string = trim($string);
|
|
||||||
$string = preg_replace('/'.$spacer.'+/', ' ', $string);
|
|
||||||
$string = preg_replace('/\s+/', ' ', $string);
|
|
||||||
$string = preg_replace("/[^A-Za-z ]/", '', $string);
|
|
||||||
// return a string with all first letter of each word uppercase(no undersocre)
|
|
||||||
if ($type == 'W')
|
|
||||||
{
|
|
||||||
return ucwords(strtolower($string));
|
|
||||||
}
|
|
||||||
elseif ($type == 'w')
|
|
||||||
{
|
|
||||||
return strtolower($string);
|
|
||||||
}
|
|
||||||
elseif ($type == 'Ww')
|
|
||||||
{
|
|
||||||
return ucfirst(strtolower($string));
|
|
||||||
}
|
|
||||||
elseif ($type == 'WW')
|
|
||||||
{
|
|
||||||
return strtoupper($string);
|
|
||||||
}
|
|
||||||
elseif ($type == 'U')
|
|
||||||
{
|
|
||||||
// replace white space with underscore
|
|
||||||
$string = preg_replace('/\s+/', $spacer, $string);
|
|
||||||
// return all upper
|
|
||||||
return strtoupper($string);
|
|
||||||
}
|
|
||||||
elseif ($type == 'F')
|
|
||||||
{
|
|
||||||
// replace white space with underscore
|
|
||||||
$string = preg_replace('/\s+/', $spacer, $string);
|
|
||||||
// return with first caracter to upper
|
|
||||||
return ucfirst(strtolower($string));
|
|
||||||
}
|
|
||||||
elseif ($type == 'L')
|
|
||||||
{
|
|
||||||
// replace white space with underscore
|
|
||||||
$string = preg_replace('/\s+/', $spacer, $string);
|
|
||||||
// default is to return lower
|
|
||||||
return strtolower($string);
|
|
||||||
}
|
|
||||||
|
|
||||||
// return string
|
|
||||||
return $string;
|
|
||||||
}
|
|
||||||
// not a string
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function htmlEscape($var, $charset = 'UTF-8', $sorten = false, $length = 40)
|
|
||||||
{
|
|
||||||
if (self::checkString($var))
|
|
||||||
{
|
|
||||||
$filter = new JFilterInput();
|
|
||||||
$string = $filter->clean(html_entity_decode(htmlentities($var, ENT_COMPAT, $charset)), 'HTML');
|
|
||||||
if ($sorten)
|
|
||||||
{
|
|
||||||
return self::sorten($string,$length);
|
|
||||||
}
|
|
||||||
return $string;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
}###HELPER_LICENSE_LOCK###
|
|
||||||
|
|
||||||
public static function replaceNumbers($string)
|
|
||||||
{
|
|
||||||
// set numbers array
|
|
||||||
$numbers = array();
|
|
||||||
// first get all numbers
|
|
||||||
preg_match_all('!\d+!', $string, $numbers);
|
|
||||||
// check if we have any numbers
|
|
||||||
if (isset($numbers[0]) && self::checkArray($numbers[0]))
|
|
||||||
{
|
|
||||||
foreach ($numbers[0] as $number)
|
|
||||||
{
|
|
||||||
$searchReplace[$number] = self::numberToString((int)$number);
|
|
||||||
}
|
|
||||||
// now replace numbers in string
|
|
||||||
$string = str_replace(array_keys($searchReplace), array_values($searchReplace),$string);
|
|
||||||
// check if we missed any, strange if we did.
|
|
||||||
return self::replaceNumbers($string);
|
|
||||||
}
|
|
||||||
// return the string with no numbers remaining.
|
|
||||||
return $string;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert an integer into an English word string
|
|
||||||
* Thanks to Tom Nicholson <http://php.net/manual/en/function.strval.php#41988>
|
|
||||||
*
|
|
||||||
* @input an int
|
|
||||||
* @returns a string
|
|
||||||
**/
|
|
||||||
public static function numberToString($x)
|
|
||||||
{
|
|
||||||
$nwords = array( "zero", "one", "two", "three", "four", "five", "six", "seven",
|
|
||||||
"eight", "nine", "ten", "eleven", "twelve", "thirteen",
|
|
||||||
"fourteen", "fifteen", "sixteen", "seventeen", "eighteen",
|
|
||||||
"nineteen", "twenty", 30 => "thirty", 40 => "forty",
|
|
||||||
50 => "fifty", 60 => "sixty", 70 => "seventy", 80 => "eighty",
|
|
||||||
90 => "ninety" );
|
|
||||||
|
|
||||||
if(!is_numeric($x))
|
|
||||||
{
|
|
||||||
$w = $x;
|
|
||||||
}
|
|
||||||
elseif(fmod($x, 1) != 0)
|
|
||||||
{
|
|
||||||
$w = $x;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if($x < 0)
|
|
||||||
{
|
|
||||||
$w = 'minus ';
|
|
||||||
$x = -$x;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$w = '';
|
|
||||||
// ... now $x is a non-negative integer.
|
|
||||||
}
|
|
||||||
|
|
||||||
if($x < 21) // 0 to 20
|
|
||||||
{
|
|
||||||
$w .= $nwords[$x];
|
|
||||||
}
|
|
||||||
elseif($x < 100) // 21 to 99
|
|
||||||
{
|
|
||||||
$w .= $nwords[10 * floor($x/10)];
|
|
||||||
$r = fmod($x, 10);
|
|
||||||
if($r > 0)
|
|
||||||
{
|
|
||||||
$w .= ' '. $nwords[$r];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif($x < 1000) // 100 to 999
|
|
||||||
{
|
|
||||||
$w .= $nwords[floor($x/100)] .' hundred';
|
|
||||||
$r = fmod($x, 100);
|
|
||||||
if($r > 0)
|
|
||||||
{
|
|
||||||
$w .= ' and '. self::numberToString($r);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif($x < 1000000) // 1000 to 999999
|
|
||||||
{
|
|
||||||
$w .= self::numberToString(floor($x/1000)) .' thousand';
|
|
||||||
$r = fmod($x, 1000);
|
|
||||||
if($r > 0)
|
|
||||||
{
|
|
||||||
$w .= ' ';
|
|
||||||
if($r < 100)
|
|
||||||
{
|
|
||||||
$w .= 'and ';
|
|
||||||
}
|
|
||||||
$w .= self::numberToString($r);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else // millions
|
|
||||||
{
|
|
||||||
$w .= self::numberToString(floor($x/1000000)) .' million';
|
|
||||||
$r = fmod($x, 1000000);
|
|
||||||
if($r > 0)
|
|
||||||
{
|
|
||||||
$w .= ' ';
|
|
||||||
if($r < 100)
|
|
||||||
{
|
|
||||||
$word .= 'and ';
|
|
||||||
}
|
|
||||||
$w .= self::numberToString($r);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return $w;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Random Key
|
|
||||||
*
|
|
||||||
* @returns a string
|
|
||||||
**/
|
|
||||||
public static function randomkey($size)
|
|
||||||
{
|
|
||||||
$bag = "abcefghijknopqrstuwxyzABCDDEFGHIJKLLMMNOPQRSTUVVWXYZabcddefghijkllmmnopqrstuvvwxyzABCEFGHIJKNOPQRSTUWXYZ";
|
|
||||||
$key = array();
|
|
||||||
$bagsize = strlen($bag) - 1;
|
|
||||||
for ($i = 0; $i < $size; $i++)
|
|
||||||
{
|
|
||||||
$get = rand(0, $bagsize);
|
|
||||||
$key[] = $bag[$get];
|
|
||||||
}
|
|
||||||
return implode($key);
|
|
||||||
}###GET_CRYPT_KEY###
|
|
||||||
}
|
|
@ -1,812 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ###Component### component helper
|
|
||||||
*/
|
|
||||||
abstract class ###Component###Helper
|
|
||||||
{###SITE_GLOBAL_EVENT_HELPER### ###SITE_CUSTOM_HELPER_SCRIPT###
|
|
||||||
|
|
||||||
public static function jsonToString($value)
|
|
||||||
{
|
|
||||||
// check if string is JSON
|
|
||||||
$result = json_decode($value, true);
|
|
||||||
if (json_last_error() === JSON_ERROR_NONE) {
|
|
||||||
// is JSON
|
|
||||||
if (self::checkArray($result))
|
|
||||||
{
|
|
||||||
$value = '';
|
|
||||||
$counter = 0;
|
|
||||||
foreach ($result as $string)
|
|
||||||
{
|
|
||||||
if ($counter)
|
|
||||||
{
|
|
||||||
$value .= ", ".$string;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$value .= $string;
|
|
||||||
}
|
|
||||||
$counter++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return json_decode($value);
|
|
||||||
}
|
|
||||||
return $value;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Load the Component xml manifest.
|
|
||||||
**/
|
|
||||||
public static function manifest()
|
|
||||||
{
|
|
||||||
$manifestUrl = JPATH_ADMINISTRATOR."/components/com_###component###/###component###.xml";
|
|
||||||
return simplexml_load_file($manifestUrl);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Load the Contributors details.
|
|
||||||
**/
|
|
||||||
public static function getContributors()
|
|
||||||
{
|
|
||||||
// get params
|
|
||||||
$params = JComponentHelper::getParams('com_###component###');
|
|
||||||
// start contributors array
|
|
||||||
$contributors = array();
|
|
||||||
// get all Contributors (max 20)
|
|
||||||
$searchArray = range('0','20');
|
|
||||||
foreach($searchArray as $nr)
|
|
||||||
{
|
|
||||||
if ((NULL !== $params->get("showContributor".$nr)) && ($params->get("showContributor".$nr) == 2 || $params->get("showContributor".$nr) == 3))
|
|
||||||
{
|
|
||||||
// set link based of selected option
|
|
||||||
if($params->get("useContributor".$nr) == 1)
|
|
||||||
{
|
|
||||||
$link_front = '<a href="mailto:'.$params->get("emailContributor".$nr).'" target="_blank">';
|
|
||||||
$link_back = '</a>';
|
|
||||||
}
|
|
||||||
elseif($params->get("useContributor".$nr) == 2)
|
|
||||||
{
|
|
||||||
$link_front = '<a href="'.$params->get("linkContributor".$nr).'" target="_blank">';
|
|
||||||
$link_back = '</a>';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$link_front = '';
|
|
||||||
$link_back = '';
|
|
||||||
}
|
|
||||||
$contributors[$nr]['title'] = self::htmlEscape($params->get("titleContributor".$nr));
|
|
||||||
$contributors[$nr]['name'] = $link_front.self::htmlEscape($params->get("nameContributor".$nr)).$link_back;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return $contributors;
|
|
||||||
}###HELP_SITE###
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get any component's model
|
|
||||||
**/
|
|
||||||
public static function getModel($name, $path = JPATH_COMPONENT_SITE, $component = '###component###')
|
|
||||||
{
|
|
||||||
// load some joomla helpers
|
|
||||||
JLoader::import('joomla.application.component.model');
|
|
||||||
// load the model file
|
|
||||||
JLoader::import( $name, $path . '/models' );
|
|
||||||
// return instance
|
|
||||||
return JModelLegacy::getInstance( $name, $component.'Model' );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add to asset Table
|
|
||||||
*/
|
|
||||||
public static function setAsset($id,$table)
|
|
||||||
{
|
|
||||||
$parent = JTable::getInstance('Asset');
|
|
||||||
$parent->loadByName('com_###component###');
|
|
||||||
|
|
||||||
$parentId = $parent->id;
|
|
||||||
$name = 'com_###component###.'.$table.'.'.$id;
|
|
||||||
$title = '';
|
|
||||||
|
|
||||||
$asset = JTable::getInstance('Asset');
|
|
||||||
$asset->loadByName($name);
|
|
||||||
|
|
||||||
// Check for an error.
|
|
||||||
$error = $asset->getError();
|
|
||||||
|
|
||||||
if ($error)
|
|
||||||
{
|
|
||||||
$this->setError($error);
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Specify how a new or moved node asset is inserted into the tree.
|
|
||||||
if ($asset->parent_id != $parentId)
|
|
||||||
{
|
|
||||||
$asset->setLocation($parentId, 'last-child');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Prepare the asset to be stored.
|
|
||||||
$asset->parent_id = $parentId;
|
|
||||||
$asset->name = $name;
|
|
||||||
$asset->title = $title;
|
|
||||||
// get the default asset rules
|
|
||||||
$rules = self::getDefaultAssetRules('com_###component###',$table);
|
|
||||||
if ($rules instanceof JAccessRules)
|
|
||||||
{
|
|
||||||
$asset->rules = (string) $rules;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$asset->check() || !$asset->store())
|
|
||||||
{
|
|
||||||
JError::raiseWarning(500, $asset->getError());
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Create an asset_id or heal one that is corrupted.
|
|
||||||
$object = new stdClass();
|
|
||||||
|
|
||||||
// Must be a valid primary key value.
|
|
||||||
$object->id = $id;
|
|
||||||
$object->asset_id = (int) $asset->id;
|
|
||||||
|
|
||||||
// Update their asset_id to link to the asset table.
|
|
||||||
return JFactory::getDbo()->updateObject('#__###component###_'.$table, $object, 'id');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the default asset Rules for a component/view.
|
|
||||||
*/
|
|
||||||
protected static function getDefaultAssetRules($component,$view)
|
|
||||||
{
|
|
||||||
// Need to find the asset id by the name of the component.
|
|
||||||
$db = JFactory::getDbo();
|
|
||||||
$query = $db->getQuery(true)
|
|
||||||
->select($db->quoteName('id'))
|
|
||||||
->from($db->quoteName('#__assets'))
|
|
||||||
->where($db->quoteName('name') . ' = ' . $db->quote($component));
|
|
||||||
$db->setQuery($query);
|
|
||||||
$db->execute();
|
|
||||||
if ($db->loadRowList())
|
|
||||||
{
|
|
||||||
// asset alread set so use saved rules
|
|
||||||
$assetId = (int) $db->loadResult();
|
|
||||||
$result = JAccess::getAssetRules($assetId);
|
|
||||||
if ($result instanceof JAccessRules)
|
|
||||||
{
|
|
||||||
$_result = (string) $result;
|
|
||||||
$_result = json_decode($_result);
|
|
||||||
foreach ($_result as $name => &$rule)
|
|
||||||
{
|
|
||||||
$v = explode('.', $name);
|
|
||||||
if ($view !== $v[0])
|
|
||||||
{
|
|
||||||
// remove since it is not part of this view
|
|
||||||
unset($_result->$name);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// clear the value since we inherit
|
|
||||||
$rule = array();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// check if there are any view values remaining
|
|
||||||
if (count($_result))
|
|
||||||
{
|
|
||||||
$_result = json_encode($_result);
|
|
||||||
$_result = array($_result);
|
|
||||||
// Instantiate and return the JAccessRules object for the asset rules.
|
|
||||||
$rules = new JAccessRules($_result);
|
|
||||||
|
|
||||||
return $rules;
|
|
||||||
}
|
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return JAccess::getAssetRules(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function renderBoolButton()
|
|
||||||
{
|
|
||||||
$args = func_get_args();
|
|
||||||
|
|
||||||
// get the radio element
|
|
||||||
$button = JFormHelper::loadFieldType('radio');
|
|
||||||
|
|
||||||
// setup the properties
|
|
||||||
$name = self::htmlEscape($args[0]);
|
|
||||||
$additional = isset($args[1]) ? (string) $args[1] : '';
|
|
||||||
$value = $args[2];
|
|
||||||
$yes = isset($args[3]) ? self::htmlEscape($args[3]) : 'JYES';
|
|
||||||
$no = isset($args[4]) ? self::htmlEscape($args[4]) : 'JNO';
|
|
||||||
|
|
||||||
// prepare the xml
|
|
||||||
$element = new SimpleXMLElement('<field name="'.$name.'" type="radio" class="btn-group"><option '.$additional.' value="0">'.$no.'</option><option '.$additional.' value="1">'.$yes.'</option></field>');
|
|
||||||
|
|
||||||
// run
|
|
||||||
$button->setup($element, $value);
|
|
||||||
|
|
||||||
return $button->input;
|
|
||||||
|
|
||||||
}###HELPER_UIKIT### ###HELPER_CREATEUSER###
|
|
||||||
|
|
||||||
public static function getVar($table, $where = null, $whereString = 'user', $what = 'id', $operator = '=', $main = '###component###')
|
|
||||||
{
|
|
||||||
if(!$where)
|
|
||||||
{
|
|
||||||
$where = JFactory::getUser()->id;
|
|
||||||
}
|
|
||||||
// Get a db connection.
|
|
||||||
$db = JFactory::getDbo();
|
|
||||||
// Create a new query object.
|
|
||||||
$query = $db->getQuery(true);
|
|
||||||
|
|
||||||
$query->select($db->quoteName(array($what)));
|
|
||||||
$query->from($db->quoteName('#__'.$main.'_'.$table));
|
|
||||||
if (is_numeric($where))
|
|
||||||
{
|
|
||||||
$query->where($db->quoteName($whereString) . ' '.$operator.' '.(int) $where);
|
|
||||||
}
|
|
||||||
elseif (is_string($where))
|
|
||||||
{
|
|
||||||
$query->where($db->quoteName($whereString) . ' '.$operator.' '. $db->quote((string)$where));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
$db->setQuery($query);
|
|
||||||
$db->execute();
|
|
||||||
if ($db->getNumRows())
|
|
||||||
{
|
|
||||||
return $db->loadResult();
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function getVars($table, $where = null, $whereString = 'user', $what = 'id', $operator = 'IN', $main = '###component###', $unique = true)
|
|
||||||
{
|
|
||||||
if(!$where)
|
|
||||||
{
|
|
||||||
$where = JFactory::getUser()->id;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!self::checkArray($where) && $where > 0)
|
|
||||||
{
|
|
||||||
$where = array($where);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (self::checkArray($where))
|
|
||||||
{
|
|
||||||
// Get a db connection.
|
|
||||||
$db = JFactory::getDbo();
|
|
||||||
// Create a new query object.
|
|
||||||
$query = $db->getQuery(true);
|
|
||||||
|
|
||||||
$query->select($db->quoteName(array($what)));
|
|
||||||
$query->from($db->quoteName('#__'.$main.'_'.$table));
|
|
||||||
$query->where($db->quoteName($whereString) . ' '.$operator.' (' . implode(',',$where) . ')');
|
|
||||||
$db->setQuery($query);
|
|
||||||
$db->execute();
|
|
||||||
if ($db->getNumRows())
|
|
||||||
{
|
|
||||||
if ($unique)
|
|
||||||
{
|
|
||||||
return array_unique($db->loadColumn());
|
|
||||||
}
|
|
||||||
return $db->loadColumn();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the actions permissions
|
|
||||||
**/
|
|
||||||
public static function getActions($view,&$record = null,$views = null)
|
|
||||||
{
|
|
||||||
jimport('joomla.access.access');
|
|
||||||
|
|
||||||
$user = JFactory::getUser();
|
|
||||||
$result = new JObject;
|
|
||||||
$view = self::safeString($view);
|
|
||||||
if (self::checkString($views))
|
|
||||||
{
|
|
||||||
$views = self::safeString($views);
|
|
||||||
}
|
|
||||||
// get all actions from component
|
|
||||||
$actions = JAccess::getActions('com_###component###', 'component');
|
|
||||||
// set acctions only set in component settiongs
|
|
||||||
$componentActions = array('core.admin','core.manage','core.options','core.export');
|
|
||||||
// loop the actions and set the permissions
|
|
||||||
foreach ($actions as $action)
|
|
||||||
{
|
|
||||||
// set to use component default
|
|
||||||
$fallback = true;
|
|
||||||
if (self::checkObject($record) && isset($record->id) && $record->id > 0 && !in_array($action->name,$componentActions))
|
|
||||||
{
|
|
||||||
// The record has been set. Check the record permissions.
|
|
||||||
$permission = $user->authorise($action->name, 'com_###component###.'.$view.'.' . (int) $record->id);
|
|
||||||
if (!$permission && !is_null($permission))
|
|
||||||
{
|
|
||||||
if ($action->name == 'core.edit' || $action->name == $view.'.edit')
|
|
||||||
{
|
|
||||||
if ($user->authorise('core.edit.own', 'com_###component###.'.$view.'.' . (int) $record->id))
|
|
||||||
{
|
|
||||||
// If the owner matches 'me' then allow.
|
|
||||||
if (isset($record->created_by) && $record->created_by > 0 && ($record->created_by == $user->id))
|
|
||||||
{
|
|
||||||
$result->set($action->name, true);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$result->set($action->name, false);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif ($user->authorise($view.'edit.own', 'com_###component###.'.$view.'.' . (int) $record->id))
|
|
||||||
{
|
|
||||||
// If the owner matches 'me' then allow.
|
|
||||||
if (isset($record->created_by) && $record->created_by > 0 && ($record->created_by == $user->id))
|
|
||||||
{
|
|
||||||
$result->set($action->name, true);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$result->set($action->name, false);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif ($user->authorise('core.edit.own', 'com_###component###'))
|
|
||||||
{
|
|
||||||
// If the owner matches 'me' then allow.
|
|
||||||
if (isset($record->created_by) && $record->created_by > 0 && ($record->created_by == $user->id))
|
|
||||||
{
|
|
||||||
$result->set($action->name, true);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$result->set($action->name, false);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif ($user->authorise($view.'edit.own', 'com_###component###'))
|
|
||||||
{
|
|
||||||
// If the owner matches 'me' then allow.
|
|
||||||
if (isset($record->created_by) && $record->created_by > 0 && ($record->created_by == $user->id))
|
|
||||||
{
|
|
||||||
$result->set($action->name, true);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$result->set($action->name, false);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif (self::checkString($views) && isset($record->catid) && $record->catid > 0)
|
|
||||||
{
|
|
||||||
// make sure we use the core. action check for the categories
|
|
||||||
if (strpos($action->name,$view) !== false && strpos($action->name,'core.') === false ) {
|
|
||||||
$coreCheck = explode('.',$action->name);
|
|
||||||
$coreCheck[0] = 'core';
|
|
||||||
$categoryCheck = implode('.',$coreCheck);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$categoryCheck = $action->name;
|
|
||||||
}
|
|
||||||
// The record has a category. Check the category permissions.
|
|
||||||
$catpermission = $user->authorise($categoryCheck, 'com_###component###.'.$views.'.category.' . (int) $record->catid);
|
|
||||||
if (!$catpermission && !is_null($catpermission))
|
|
||||||
{
|
|
||||||
if ($action->name == 'core.edit' || $action->name == $view.'.edit')
|
|
||||||
{
|
|
||||||
if ($user->authorise('core.edit.own', 'com_###component###.'.$views.'.category.' . (int) $record->catid))
|
|
||||||
{
|
|
||||||
// If the owner matches 'me' then allow.
|
|
||||||
if (isset($record->created_by) && $record->created_by > 0 && ($record->created_by == $user->id))
|
|
||||||
{
|
|
||||||
$result->set($action->name, true);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$result->set($action->name, false);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif ($user->authorise($view.'edit.own', 'com_###component###.'.$views.'.category.' . (int) $record->catid))
|
|
||||||
{
|
|
||||||
// If the owner matches 'me' then allow.
|
|
||||||
if (isset($record->created_by) && $record->created_by > 0 && ($record->created_by == $user->id))
|
|
||||||
{
|
|
||||||
$result->set($action->name, true);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$result->set($action->name, false);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif ($user->authorise('core.edit.own', 'com_###component###'))
|
|
||||||
{
|
|
||||||
// If the owner matches 'me' then allow.
|
|
||||||
if (isset($record->created_by) && $record->created_by > 0 && ($record->created_by == $user->id))
|
|
||||||
{
|
|
||||||
$result->set($action->name, true);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$result->set($action->name, false);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif ($user->authorise($view.'edit.own', 'com_###component###'))
|
|
||||||
{
|
|
||||||
// If the owner matches 'me' then allow.
|
|
||||||
if (isset($record->created_by) && $record->created_by > 0 && ($record->created_by == $user->id))
|
|
||||||
{
|
|
||||||
$result->set($action->name, true);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$result->set($action->name, false);
|
|
||||||
// set not to use component default
|
|
||||||
$fallback = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// if allowed then fallback on component global settings
|
|
||||||
if ($fallback)
|
|
||||||
{
|
|
||||||
$result->set($action->name, $user->authorise($action->name, 'com_###component###'));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function checkObject($object)
|
|
||||||
{
|
|
||||||
if (isset($object) && is_object($object) && count($object) > 0)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function checkArray($array)
|
|
||||||
{
|
|
||||||
if (isset($array) && is_array($array) && count($array) > 0)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function checkString($string)
|
|
||||||
{
|
|
||||||
if (isset($string) && is_string($string) && strlen($string) > 0)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function mergeArrays($arrays)
|
|
||||||
{
|
|
||||||
if(self::checkArray($arrays))
|
|
||||||
{
|
|
||||||
$arrayBuket = array();
|
|
||||||
foreach ($arrays as $array)
|
|
||||||
{
|
|
||||||
if (self::checkArray($array))
|
|
||||||
{
|
|
||||||
$arrayBuket = array_merge($arrayBuket, $array);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return $arrayBuket;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function sorten($string, $length = 40, $addTip = true)
|
|
||||||
{
|
|
||||||
if (self::checkString($string))
|
|
||||||
{
|
|
||||||
$initial = strlen($string);
|
|
||||||
$words = preg_split('/([\s\n\r]+)/', $string, null, PREG_SPLIT_DELIM_CAPTURE);
|
|
||||||
$words_count = count($words);
|
|
||||||
|
|
||||||
$word_length = 0;
|
|
||||||
$last_word = 0;
|
|
||||||
for (; $last_word < $words_count; ++$last_word)
|
|
||||||
{
|
|
||||||
$word_length += strlen($words[$last_word]);
|
|
||||||
if ($word_length > $length)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$newString = implode(array_slice($words, 0, $last_word));
|
|
||||||
$final = strlen($newString);
|
|
||||||
if ($initial != $final && $addTip)
|
|
||||||
{
|
|
||||||
$title = self::sorten($string, 400 , false);
|
|
||||||
return '<span class="hasTip" title="'.$title.'" style="cursor:help">'.trim($newString).'...</span>';
|
|
||||||
}
|
|
||||||
elseif ($initial != $final && !$addTip)
|
|
||||||
{
|
|
||||||
return trim($newString).'...';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return $string;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function safeString($string, $type = 'L', $spacer = '_')
|
|
||||||
{
|
|
||||||
// remove all numbers and replace with english text version (works well only up to a thousand)
|
|
||||||
$string = self::replaceNumbers($string);
|
|
||||||
|
|
||||||
if (self::checkString($string))
|
|
||||||
{
|
|
||||||
// remove all other characters
|
|
||||||
$string = trim($string);
|
|
||||||
$string = preg_replace('/'.$spacer.'+/', ' ', $string);
|
|
||||||
$string = preg_replace('/\s+/', ' ', $string);
|
|
||||||
$string = preg_replace("/[^A-Za-z ]/", '', $string);
|
|
||||||
// return a string with all first letter of each word uppercase(no undersocre)
|
|
||||||
if ($type == 'W')
|
|
||||||
{
|
|
||||||
return ucwords(strtolower($string));
|
|
||||||
}
|
|
||||||
elseif ($type == 'w')
|
|
||||||
{
|
|
||||||
return strtolower($string);
|
|
||||||
}
|
|
||||||
elseif ($type == 'Ww')
|
|
||||||
{
|
|
||||||
return ucfirst(strtolower($string));
|
|
||||||
}
|
|
||||||
elseif ($type == 'WW')
|
|
||||||
{
|
|
||||||
return strtoupper($string);
|
|
||||||
}
|
|
||||||
elseif ($type == 'U')
|
|
||||||
{
|
|
||||||
// replace white space with underscore
|
|
||||||
$string = preg_replace('/\s+/', $spacer, $string);
|
|
||||||
// return all upper
|
|
||||||
return strtoupper($string);
|
|
||||||
}
|
|
||||||
elseif ($type == 'F')
|
|
||||||
{
|
|
||||||
// replace white space with underscore
|
|
||||||
$string = preg_replace('/\s+/', $spacer, $string);
|
|
||||||
// return with first caracter to upper
|
|
||||||
return ucfirst(strtolower($string));
|
|
||||||
}
|
|
||||||
elseif ($type == 'L')
|
|
||||||
{
|
|
||||||
// replace white space with underscore
|
|
||||||
$string = preg_replace('/\s+/', $spacer, $string);
|
|
||||||
// default is to return lower
|
|
||||||
return strtolower($string);
|
|
||||||
}
|
|
||||||
|
|
||||||
// return string
|
|
||||||
return $string;
|
|
||||||
}
|
|
||||||
// not a string
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function htmlEscape($var, $charset = 'UTF-8', $sorten = false, $length = 40)
|
|
||||||
{
|
|
||||||
if (self::checkString($var))
|
|
||||||
{
|
|
||||||
$filter = new JFilterInput();
|
|
||||||
$string = $filter->clean(html_entity_decode(htmlentities($var, ENT_COMPAT, $charset)), 'HTML');
|
|
||||||
if ($sorten)
|
|
||||||
{
|
|
||||||
return self::sorten($string,$length);
|
|
||||||
}
|
|
||||||
return $string;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
}###HELPER_SITE_LICENSE_LOCK###
|
|
||||||
|
|
||||||
public static function replaceNumbers($string)
|
|
||||||
{
|
|
||||||
// set numbers array
|
|
||||||
$numbers = array();
|
|
||||||
// first get all numbers
|
|
||||||
preg_match_all('!\d+!', $string, $numbers);
|
|
||||||
// check if we have any numbers
|
|
||||||
if (isset($numbers[0]) && self::checkArray($numbers[0]))
|
|
||||||
{
|
|
||||||
foreach ($numbers[0] as $number)
|
|
||||||
{
|
|
||||||
$searchReplace[$number] = self::numberToString((int)$number);
|
|
||||||
}
|
|
||||||
// now replace numbers in string
|
|
||||||
$string = str_replace(array_keys($searchReplace), array_values($searchReplace),$string);
|
|
||||||
// check if we missed any, strange if we did.
|
|
||||||
return self::replaceNumbers($string);
|
|
||||||
}
|
|
||||||
// return the string with no numbers remaining.
|
|
||||||
return $string;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert an integer into an English word string
|
|
||||||
* Thanks to Tom Nicholson <http://php.net/manual/en/function.strval.php#41988>
|
|
||||||
*
|
|
||||||
* @input an int
|
|
||||||
* @returns a string
|
|
||||||
**/
|
|
||||||
public static function numberToString($x)
|
|
||||||
{
|
|
||||||
$nwords = array( "zero", "one", "two", "three", "four", "five", "six", "seven",
|
|
||||||
"eight", "nine", "ten", "eleven", "twelve", "thirteen",
|
|
||||||
"fourteen", "fifteen", "sixteen", "seventeen", "eighteen",
|
|
||||||
"nineteen", "twenty", 30 => "thirty", 40 => "forty",
|
|
||||||
50 => "fifty", 60 => "sixty", 70 => "seventy", 80 => "eighty",
|
|
||||||
90 => "ninety" );
|
|
||||||
|
|
||||||
if(!is_numeric($x))
|
|
||||||
{
|
|
||||||
$w = $x;
|
|
||||||
}
|
|
||||||
elseif(fmod($x, 1) != 0)
|
|
||||||
{
|
|
||||||
$w = $x;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if($x < 0)
|
|
||||||
{
|
|
||||||
$w = 'minus ';
|
|
||||||
$x = -$x;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$w = '';
|
|
||||||
// ... now $x is a non-negative integer.
|
|
||||||
}
|
|
||||||
|
|
||||||
if($x < 21) // 0 to 20
|
|
||||||
{
|
|
||||||
$w .= $nwords[$x];
|
|
||||||
}
|
|
||||||
elseif($x < 100) // 21 to 99
|
|
||||||
{
|
|
||||||
$w .= $nwords[10 * floor($x/10)];
|
|
||||||
$r = fmod($x, 10);
|
|
||||||
if($r > 0)
|
|
||||||
{
|
|
||||||
$w .= ' '. $nwords[$r];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif($x < 1000) // 100 to 999
|
|
||||||
{
|
|
||||||
$w .= $nwords[floor($x/100)] .' hundred';
|
|
||||||
$r = fmod($x, 100);
|
|
||||||
if($r > 0)
|
|
||||||
{
|
|
||||||
$w .= ' and '. self::numberToString($r);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif($x < 1000000) // 1000 to 999999
|
|
||||||
{
|
|
||||||
$w .= self::numberToString(floor($x/1000)) .' thousand';
|
|
||||||
$r = fmod($x, 1000);
|
|
||||||
if($r > 0)
|
|
||||||
{
|
|
||||||
$w .= ' ';
|
|
||||||
if($r < 100)
|
|
||||||
{
|
|
||||||
$w .= 'and ';
|
|
||||||
}
|
|
||||||
$w .= self::numberToString($r);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else // millions
|
|
||||||
{
|
|
||||||
$w .= self::numberToString(floor($x/1000000)) .' million';
|
|
||||||
$r = fmod($x, 1000000);
|
|
||||||
if($r > 0)
|
|
||||||
{
|
|
||||||
$w .= ' ';
|
|
||||||
if($r < 100)
|
|
||||||
{
|
|
||||||
$word .= 'and ';
|
|
||||||
}
|
|
||||||
$w .= self::numberToString($r);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return $w;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Random Key
|
|
||||||
*
|
|
||||||
* @returns a string
|
|
||||||
**/
|
|
||||||
public static function randomkey($size)
|
|
||||||
{
|
|
||||||
$bag = "abcefghijknopqrstuwxyzABCDDEFGHIJKLLMMNOPQRSTUVVWXYZabcddefghijkllmmnopqrstuvvwxyzABCEFGHIJKNOPQRSTUWXYZ";
|
|
||||||
$key = array();
|
|
||||||
$bagsize = strlen($bag) - 1;
|
|
||||||
for ($i = 0; $i < $size; $i++)
|
|
||||||
{
|
|
||||||
$get = rand(0, $bagsize);
|
|
||||||
$key[] = $bag[$get];
|
|
||||||
}
|
|
||||||
return implode($key);
|
|
||||||
}###GET_CRYPT_KEY###
|
|
||||||
}
|
|
@ -1,51 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
// import Joomla controlleradmin library
|
|
||||||
jimport('joomla.application.component.controlleradmin');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ###Views### Controller
|
|
||||||
*/
|
|
||||||
class ###Component###Controller###Views### extends JControllerAdmin
|
|
||||||
{
|
|
||||||
protected $text_prefix = 'COM_###COMPONENT###_###VIEWS###';
|
|
||||||
/**
|
|
||||||
* Proxy for getModel.
|
|
||||||
* @since 2.5
|
|
||||||
*/
|
|
||||||
public function getModel($name = '###View###', $prefix = '###Component###Model', $config = array())
|
|
||||||
{
|
|
||||||
$model = parent::getModel($name, $prefix, array('ignore_request' => true));
|
|
||||||
|
|
||||||
return $model;
|
|
||||||
}###CONTROLLEREXIMPORTMETHOD### ###CUSTOM_ADMIN_DYNAMIC_BUTTONS_CONTROLLER###
|
|
||||||
}
|
|
@ -1,57 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
// import Joomla controlleradmin library
|
|
||||||
jimport('joomla.application.component.controlleradmin');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ###SViews### Controller
|
|
||||||
*/
|
|
||||||
class ###Component###Controller###SViews### extends JControllerAdmin
|
|
||||||
{
|
|
||||||
protected $text_prefix = 'COM_###COMPONENT###_###SVIEWS###';
|
|
||||||
/**
|
|
||||||
* Proxy for getModel.
|
|
||||||
* @since 2.5
|
|
||||||
*/
|
|
||||||
public function getModel($name = '###SView###', $prefix = '###Component###Model', $config = array())
|
|
||||||
{
|
|
||||||
$model = parent::getModel($name, $prefix, array('ignore_request' => true));
|
|
||||||
|
|
||||||
return $model;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function dashboard()
|
|
||||||
{
|
|
||||||
$this->setRedirect(JRoute::_('index.php?option=com_###component###', false));
|
|
||||||
return;
|
|
||||||
}###CUSTOM_ADMIN_CUSTOM_BUTTONS_CONTROLLER###
|
|
||||||
}
|
|
@ -1,271 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
// import Joomla controllerform library
|
|
||||||
jimport('joomla.application.component.controllerform');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ###View### Controller
|
|
||||||
*/
|
|
||||||
class ###Component###Controller###View### extends JControllerForm
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Current or most recently performed task.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
* @since 12.2
|
|
||||||
* @note Replaces _task.
|
|
||||||
*/
|
|
||||||
protected $task;
|
|
||||||
|
|
||||||
public function __construct($config = array())
|
|
||||||
{
|
|
||||||
$this->view_list = '###Views###'; // safeguard for setting the return view listing to the main view.
|
|
||||||
parent::__construct($config);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method override to check if you can add a new record.
|
|
||||||
*
|
|
||||||
* @param array $data An array of input data.
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
*
|
|
||||||
* @since 1.6
|
|
||||||
*/
|
|
||||||
protected function allowAdd($data = array())
|
|
||||||
{###JCONTROLLERFORM_ALLOWADD###
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method override to check if you can edit an existing record.
|
|
||||||
*
|
|
||||||
* @param array $data An array of input data.
|
|
||||||
* @param string $key The name of the key for the primary key.
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
*
|
|
||||||
* @since 1.6
|
|
||||||
*/
|
|
||||||
protected function allowEdit($data = array(), $key = 'id')
|
|
||||||
{###JCONTROLLERFORM_ALLOWEDIT###
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the URL arguments to append to an item redirect.
|
|
||||||
*
|
|
||||||
* @param integer $recordId The primary key id for the item.
|
|
||||||
* @param string $urlVar The name of the URL variable for the id.
|
|
||||||
*
|
|
||||||
* @return string The arguments to append to the redirect URL.
|
|
||||||
*
|
|
||||||
* @since 12.2
|
|
||||||
*/
|
|
||||||
protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id')
|
|
||||||
{
|
|
||||||
$tmpl = $this->input->get('tmpl');
|
|
||||||
$layout = $this->input->get('layout', 'edit', 'string');
|
|
||||||
|
|
||||||
$ref = $this->input->get('ref', 0, 'string');
|
|
||||||
$refid = $this->input->get('refid', 0, 'int');
|
|
||||||
|
|
||||||
// Setup redirect info.
|
|
||||||
|
|
||||||
$append = '';
|
|
||||||
|
|
||||||
if ($refid)
|
|
||||||
{
|
|
||||||
$append .= '&ref='.(string)$ref.'&refid='.(int)$refid;
|
|
||||||
}
|
|
||||||
elseif ($ref)
|
|
||||||
{
|
|
||||||
$append .= '&ref='.(string)$ref;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($tmpl)
|
|
||||||
{
|
|
||||||
$append .= '&tmpl=' . $tmpl;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($layout)
|
|
||||||
{
|
|
||||||
$append .= '&layout=' . $layout;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($recordId)
|
|
||||||
{
|
|
||||||
$append .= '&' . $urlVar . '=' . $recordId;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $append;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to run batch operations.
|
|
||||||
*
|
|
||||||
* @param object $model The model.
|
|
||||||
*
|
|
||||||
* @return boolean True if successful, false otherwise and internal error is set.
|
|
||||||
*
|
|
||||||
* @since 2.5
|
|
||||||
*/
|
|
||||||
public function batch($model = null)
|
|
||||||
{
|
|
||||||
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
|
|
||||||
|
|
||||||
// Set the model
|
|
||||||
$model = $this->getModel('###View###', '', array());
|
|
||||||
|
|
||||||
// Preset the redirect
|
|
||||||
$this->setRedirect(JRoute::_('index.php?option=com_###component###&view=###views###' . $this->getRedirectToListAppend(), false));
|
|
||||||
|
|
||||||
return parent::batch($model);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to cancel an edit.
|
|
||||||
*
|
|
||||||
* @param string $key The name of the primary key of the URL variable.
|
|
||||||
*
|
|
||||||
* @return boolean True if access level checks pass, false otherwise.
|
|
||||||
*
|
|
||||||
* @since 12.2
|
|
||||||
*/
|
|
||||||
public function cancel($key = null)
|
|
||||||
{
|
|
||||||
// get the referal details
|
|
||||||
$this->ref = $this->input->get('ref', 0, 'word');
|
|
||||||
$this->refid = $this->input->get('refid', 0, 'int');
|
|
||||||
|
|
||||||
$cancel = parent::cancel($key);
|
|
||||||
|
|
||||||
if ($cancel)
|
|
||||||
{
|
|
||||||
if ($this->refid)
|
|
||||||
{
|
|
||||||
$redirect = '&view='.(string)$this->ref.'&layout=edit&id='.(int)$this->refid;
|
|
||||||
|
|
||||||
// Redirect to the item screen.
|
|
||||||
$this->setRedirect(
|
|
||||||
JRoute::_(
|
|
||||||
'index.php?option=' . $this->option . $redirect, false
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
elseif ($this->ref)
|
|
||||||
{
|
|
||||||
$redirect = '&view='.(string)$this->ref;
|
|
||||||
|
|
||||||
// Redirect to the list screen.
|
|
||||||
$this->setRedirect(
|
|
||||||
JRoute::_(
|
|
||||||
'index.php?option=' . $this->option . $redirect, false
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Redirect to the items screen.
|
|
||||||
$this->setRedirect(
|
|
||||||
JRoute::_(
|
|
||||||
'index.php?option=' . $this->option . '&view=' . $this->view_list, false
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return $cancel;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to save a record.
|
|
||||||
*
|
|
||||||
* @param string $key The name of the primary key of the URL variable.
|
|
||||||
* @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions).
|
|
||||||
*
|
|
||||||
* @return boolean True if successful, false otherwise.
|
|
||||||
*
|
|
||||||
* @since 12.2
|
|
||||||
*/
|
|
||||||
public function save($key = null, $urlVar = null)
|
|
||||||
{
|
|
||||||
// get the referal details
|
|
||||||
$this->ref = $this->input->get('ref', 0, 'word');
|
|
||||||
$this->refid = $this->input->get('refid', 0, 'int');
|
|
||||||
|
|
||||||
if ($this->ref || $this->refid)
|
|
||||||
{
|
|
||||||
// to make sure the item is checkedin on redirect
|
|
||||||
$this->task = 'save';
|
|
||||||
}
|
|
||||||
|
|
||||||
$saved = parent::save($key, $urlVar);
|
|
||||||
|
|
||||||
if ($this->refid && $saved)
|
|
||||||
{
|
|
||||||
$redirect = '&view='.(string)$this->ref.'&layout=edit&id='.(int)$this->refid;
|
|
||||||
|
|
||||||
// Redirect to the item screen.
|
|
||||||
$this->setRedirect(
|
|
||||||
JRoute::_(
|
|
||||||
'index.php?option=' . $this->option . $redirect, false
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
elseif ($this->ref && $saved)
|
|
||||||
{
|
|
||||||
$redirect = '&view='.(string)$this->ref;
|
|
||||||
|
|
||||||
// Redirect to the list screen.
|
|
||||||
$this->setRedirect(
|
|
||||||
JRoute::_(
|
|
||||||
'index.php?option=' . $this->option . $redirect, false
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return $saved;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function that allows child controller access to model data
|
|
||||||
* after the data has been saved.
|
|
||||||
*
|
|
||||||
* @param JModel &$model The data model object.
|
|
||||||
* @param array $validData The validated data.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*
|
|
||||||
* @since 11.1
|
|
||||||
*/
|
|
||||||
protected function postSaveHook(JModelLegacy $model, $validData = array())
|
|
||||||
{###POSTSAVEHOOK###
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,120 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
// import Joomla controllerform library
|
|
||||||
jimport('joomla.application.component.controller');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ###Component### ###SView### Controller
|
|
||||||
*/
|
|
||||||
class ###Component###Controller###SView### extends JControllerForm
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Current or most recently performed task.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
* @since 12.2
|
|
||||||
* @note Replaces _task.
|
|
||||||
*/
|
|
||||||
protected $task;
|
|
||||||
|
|
||||||
public function __construct($config = array())
|
|
||||||
{
|
|
||||||
$this->view_list = '###SITE_DEFAULT_VIEW###'; // safeguard for setting the return view listing to the default site view.
|
|
||||||
parent::__construct($config);
|
|
||||||
}###SITE_CUSTOM_BUTTONS_CONTROLLER###
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to check if you can edit an existing record.
|
|
||||||
*
|
|
||||||
* Extended classes can override this if necessary.
|
|
||||||
*
|
|
||||||
* @param array $data An array of input data.
|
|
||||||
* @param string $key The name of the key for the primary key; default is id.
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
*
|
|
||||||
* @since 12.2
|
|
||||||
*/
|
|
||||||
protected function allowEdit($data = array(), $key = 'id')
|
|
||||||
{
|
|
||||||
// to insure no other tampering
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method override to check if you can add a new record.
|
|
||||||
*
|
|
||||||
* @param array $data An array of input data.
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
*
|
|
||||||
* @since 1.6
|
|
||||||
*/
|
|
||||||
protected function allowAdd($data = array())
|
|
||||||
{
|
|
||||||
// to insure no other tampering
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to check if you can save a new or existing record.
|
|
||||||
*
|
|
||||||
* Extended classes can override this if necessary.
|
|
||||||
*
|
|
||||||
* @param array $data An array of input data.
|
|
||||||
* @param string $key The name of the key for the primary key.
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
*
|
|
||||||
* @since 12.2
|
|
||||||
*/
|
|
||||||
protected function allowSave($data, $key = 'id')
|
|
||||||
{
|
|
||||||
// to insure no other tampering
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function that allows child controller access to model data
|
|
||||||
* after the data has been saved.
|
|
||||||
*
|
|
||||||
* @param JModelLegacy $model The data model object.
|
|
||||||
* @param array $validData The validated data.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*
|
|
||||||
* @since 12.2
|
|
||||||
*/
|
|
||||||
protected function postSaveHook(JModelLegacy $model, $validData = array())
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,271 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
// import Joomla controllerform library
|
|
||||||
jimport('joomla.application.component.controllerform');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ###View### Controller
|
|
||||||
*/
|
|
||||||
class ###Component###Controller###View### extends JControllerForm
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Current or most recently performed task.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
* @since 12.2
|
|
||||||
* @note Replaces _task.
|
|
||||||
*/
|
|
||||||
protected $task;
|
|
||||||
|
|
||||||
public function __construct($config = array())
|
|
||||||
{
|
|
||||||
$this->view_list = '###SITE_DEFAULT_VIEW###'; // safeguard for setting the return view listing to the default site view.
|
|
||||||
parent::__construct($config);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method override to check if you can add a new record.
|
|
||||||
*
|
|
||||||
* @param array $data An array of input data.
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
*
|
|
||||||
* @since 1.6
|
|
||||||
*/
|
|
||||||
protected function allowAdd($data = array())
|
|
||||||
{###JCONTROLLERFORM_ALLOWADD###
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method override to check if you can edit an existing record.
|
|
||||||
*
|
|
||||||
* @param array $data An array of input data.
|
|
||||||
* @param string $key The name of the key for the primary key.
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
*
|
|
||||||
* @since 1.6
|
|
||||||
*/
|
|
||||||
protected function allowEdit($data = array(), $key = 'id')
|
|
||||||
{###JCONTROLLERFORM_ALLOWEDIT###
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the URL arguments to append to an item redirect.
|
|
||||||
*
|
|
||||||
* @param integer $recordId The primary key id for the item.
|
|
||||||
* @param string $urlVar The name of the URL variable for the id.
|
|
||||||
*
|
|
||||||
* @return string The arguments to append to the redirect URL.
|
|
||||||
*
|
|
||||||
* @since 12.2
|
|
||||||
*/
|
|
||||||
protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id')
|
|
||||||
{
|
|
||||||
$tmpl = $this->input->get('tmpl');
|
|
||||||
$layout = $this->input->get('layout', 'edit', 'string');
|
|
||||||
|
|
||||||
$ref = $this->input->get('ref', 0, 'string');
|
|
||||||
$refid = $this->input->get('refid', 0, 'int');
|
|
||||||
|
|
||||||
// Setup redirect info.
|
|
||||||
|
|
||||||
$append = '';
|
|
||||||
|
|
||||||
if ($refid)
|
|
||||||
{
|
|
||||||
$append .= '&ref='.(string)$ref.'&refid='.(int)$refid;
|
|
||||||
}
|
|
||||||
elseif ($ref)
|
|
||||||
{
|
|
||||||
$append .= '&ref='.(string)$ref;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($tmpl)
|
|
||||||
{
|
|
||||||
$append .= '&tmpl=' . $tmpl;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($layout)
|
|
||||||
{
|
|
||||||
$append .= '&layout=' . $layout;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($recordId)
|
|
||||||
{
|
|
||||||
$append .= '&' . $urlVar . '=' . $recordId;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $append;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to run batch operations.
|
|
||||||
*
|
|
||||||
* @param object $model The model.
|
|
||||||
*
|
|
||||||
* @return boolean True if successful, false otherwise and internal error is set.
|
|
||||||
*
|
|
||||||
* @since 2.5
|
|
||||||
*/
|
|
||||||
public function batch($model = null)
|
|
||||||
{
|
|
||||||
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
|
|
||||||
|
|
||||||
// Set the model
|
|
||||||
$model = $this->getModel('###View###', '', array());
|
|
||||||
|
|
||||||
// Preset the redirect
|
|
||||||
$this->setRedirect(JRoute::_('index.php?option=com_###component###&view=###views###' . $this->getRedirectToListAppend(), false));
|
|
||||||
|
|
||||||
return parent::batch($model);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to cancel an edit.
|
|
||||||
*
|
|
||||||
* @param string $key The name of the primary key of the URL variable.
|
|
||||||
*
|
|
||||||
* @return boolean True if access level checks pass, false otherwise.
|
|
||||||
*
|
|
||||||
* @since 12.2
|
|
||||||
*/
|
|
||||||
public function cancel($key = null)
|
|
||||||
{
|
|
||||||
// get the referal details
|
|
||||||
$this->ref = $this->input->get('ref', 0, 'word');
|
|
||||||
$this->refid = $this->input->get('refid', 0, 'int');
|
|
||||||
|
|
||||||
$cancel = parent::cancel($key);
|
|
||||||
|
|
||||||
if ($cancel)
|
|
||||||
{
|
|
||||||
if ($this->refid)
|
|
||||||
{
|
|
||||||
$redirect = '&view='.(string)$this->ref.'&layout=edit&id='.(int)$this->refid;
|
|
||||||
|
|
||||||
// Redirect to the item screen.
|
|
||||||
$this->setRedirect(
|
|
||||||
JRoute::_(
|
|
||||||
'index.php?option=' . $this->option . $redirect, false
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
elseif ($this->ref)
|
|
||||||
{
|
|
||||||
$redirect = '&view='.(string)$this->ref;
|
|
||||||
|
|
||||||
// Redirect to the list screen.
|
|
||||||
$this->setRedirect(
|
|
||||||
JRoute::_(
|
|
||||||
'index.php?option=' . $this->option . $redirect, false
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Redirect to the items screen.
|
|
||||||
$this->setRedirect(
|
|
||||||
JRoute::_(
|
|
||||||
'index.php?option=' . $this->option . '&view=' . $this->view_list, false
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return $cancel;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to save a record.
|
|
||||||
*
|
|
||||||
* @param string $key The name of the primary key of the URL variable.
|
|
||||||
* @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions).
|
|
||||||
*
|
|
||||||
* @return boolean True if successful, false otherwise.
|
|
||||||
*
|
|
||||||
* @since 12.2
|
|
||||||
*/
|
|
||||||
public function save($key = null, $urlVar = null)
|
|
||||||
{
|
|
||||||
// get the referal details
|
|
||||||
$this->ref = $this->input->get('ref', 0, 'word');
|
|
||||||
$this->refid = $this->input->get('refid', 0, 'int');
|
|
||||||
|
|
||||||
if ($this->ref || $this->refid)
|
|
||||||
{
|
|
||||||
// to make sure the item is checkedin on redirect
|
|
||||||
$this->task = 'save';
|
|
||||||
}
|
|
||||||
|
|
||||||
$saved = parent::save($key, $urlVar);
|
|
||||||
|
|
||||||
if ($this->refid && $saved)
|
|
||||||
{
|
|
||||||
$redirect = '&view='.(string)$this->ref.'&layout=edit&id='.(int)$this->refid;
|
|
||||||
|
|
||||||
// Redirect to the item screen.
|
|
||||||
$this->setRedirect(
|
|
||||||
JRoute::_(
|
|
||||||
'index.php?option=' . $this->option . $redirect, false
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
elseif ($this->ref && $saved)
|
|
||||||
{
|
|
||||||
$redirect = '&view='.(string)$this->ref;
|
|
||||||
|
|
||||||
// Redirect to the list screen.
|
|
||||||
$this->setRedirect(
|
|
||||||
JRoute::_(
|
|
||||||
'index.php?option=' . $this->option . $redirect, false
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return $saved;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function that allows child controller access to model data
|
|
||||||
* after the data has been saved.
|
|
||||||
*
|
|
||||||
* @param JModel &$model The data model object.
|
|
||||||
* @param array $validData The validated data.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*
|
|
||||||
* @since 11.1
|
|
||||||
*/
|
|
||||||
protected function postSaveHook(JModelLegacy $model, $validData = array())
|
|
||||||
{###POSTSAVEHOOK###
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,108 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
// import Joomla controller library
|
|
||||||
jimport('joomla.application.component.controller');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* General Controller of ###Component### component
|
|
||||||
*/
|
|
||||||
class ###Component###Controller extends JControllerLegacy
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* display task
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
function display($cachable = false, $urlparams = false)
|
|
||||||
{
|
|
||||||
// set default view if not set
|
|
||||||
$view = $this->input->getCmd('view', '###Component###');
|
|
||||||
$data = $this->getViewRelation($view);
|
|
||||||
$layout = $this->input->get('layout', null, 'WORD');
|
|
||||||
$id = $this->input->getInt('id');
|
|
||||||
|
|
||||||
// Check for edit form.
|
|
||||||
if(###Component###Helper::checkArray($data))
|
|
||||||
{
|
|
||||||
if ($data['edit'] && $layout == 'edit' && !$this->checkEditId('com_###component###.edit.'.$data['view'], $id))
|
|
||||||
{
|
|
||||||
// Somehow the person just went to the form - we don't allow that.
|
|
||||||
$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_UNHELD_ID', $id));
|
|
||||||
$this->setMessage($this->getError(), 'error');
|
|
||||||
// check if item was opend from other then its own list view
|
|
||||||
$ref = $this->input->getCmd('ref', 0);
|
|
||||||
$refid = $this->input->getInt('refid', 0);
|
|
||||||
// set redirect
|
|
||||||
if ($refid > 0 && ###Component###Helper::checkString($ref))
|
|
||||||
{
|
|
||||||
// redirect to item of ref
|
|
||||||
$this->setRedirect(JRoute::_('index.php?option=com_###component###&view='.(string)$ref.'&layout=edit&id='.(int)$refid, false));
|
|
||||||
}
|
|
||||||
elseif (###Component###Helper::checkString($ref))
|
|
||||||
{
|
|
||||||
|
|
||||||
// redirect to ref
|
|
||||||
$this->setRedirect(JRoute::_('index.php?option=com_###component###&view='.(string)$ref, false));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// normal redirect back to the list view
|
|
||||||
$this->setRedirect(JRoute::_('index.php?option=com_###component###&view='.$data['views'], false));
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return parent::display($cachable, $urlparams);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function getViewRelation($view)
|
|
||||||
{
|
|
||||||
if (###Component###Helper::checkString($view))
|
|
||||||
{
|
|
||||||
$views = array(###VIEWARRAY###
|
|
||||||
);
|
|
||||||
// check if this is a list view
|
|
||||||
if (in_array($view,$views))
|
|
||||||
{
|
|
||||||
return array('edit' => false, 'view' => array_search($view,$views), 'views' => $view);
|
|
||||||
}
|
|
||||||
// check if it is an edit view
|
|
||||||
elseif (array_key_exists($view,$views))
|
|
||||||
{
|
|
||||||
return array('edit' => true, 'view' => $view, 'views' => $views[$view]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,76 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
// import Joomla controllerform library
|
|
||||||
jimport('joomla.application.component.controller');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ###Component### Ajax Controller
|
|
||||||
*/
|
|
||||||
class ###Component###ControllerAjax extends JControllerLegacy
|
|
||||||
{
|
|
||||||
public function __construct($config)
|
|
||||||
{
|
|
||||||
parent::__construct($config);
|
|
||||||
// make sure all json stuff are set
|
|
||||||
JFactory::getDocument()->setMimeEncoding( 'application/json' );
|
|
||||||
JResponse::setHeader('Content-Disposition','attachment;filename="getajax.json"');
|
|
||||||
JResponse::setHeader("Access-Control-Allow-Origin", "*");
|
|
||||||
// load the tasks ###REGISTER_AJAX_TASK###
|
|
||||||
}
|
|
||||||
|
|
||||||
public function ajax()
|
|
||||||
{
|
|
||||||
$user = JFactory::getUser();
|
|
||||||
$jinput = JFactory::getApplication()->input;
|
|
||||||
// Check Token!
|
|
||||||
$token = JSession::getFormToken();
|
|
||||||
$call_token = $jinput->get('token', 0, 'ALNUM');
|
|
||||||
if($token == $call_token)
|
|
||||||
{
|
|
||||||
$task = $this->getTask();
|
|
||||||
switch($task)
|
|
||||||
{###AJAX_INPUT_RETURN###
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if(array_key_exists('callback',$_GET))
|
|
||||||
{
|
|
||||||
echo $_GET['callback']."(".json_encode(false).");";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
echo "(".json_encode(false).");";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,76 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
// import Joomla controllerform library
|
|
||||||
jimport('joomla.application.component.controller');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ###Component### Ajax Controller
|
|
||||||
*/
|
|
||||||
class ###Component###ControllerAjax extends JControllerLegacy
|
|
||||||
{
|
|
||||||
public function __construct($config)
|
|
||||||
{
|
|
||||||
parent::__construct($config);
|
|
||||||
// make sure all json stuff are set
|
|
||||||
JFactory::getDocument()->setMimeEncoding( 'application/json' );
|
|
||||||
JResponse::setHeader('Content-Disposition','attachment;filename="getajax.json"');
|
|
||||||
JResponse::setHeader("Access-Control-Allow-Origin", "*");
|
|
||||||
// load the tasks ###REGISTER_SITE_AJAX_TASK###
|
|
||||||
}
|
|
||||||
|
|
||||||
public function ajax()
|
|
||||||
{
|
|
||||||
$user = JFactory::getUser();
|
|
||||||
$jinput = JFactory::getApplication()->input;
|
|
||||||
// Check Token!
|
|
||||||
$token = JSession::getFormToken();
|
|
||||||
$call_token = $jinput->get('token', 0, 'ALNUM');
|
|
||||||
if($token == $call_token)
|
|
||||||
{
|
|
||||||
$task = $this->getTask();
|
|
||||||
switch($task)
|
|
||||||
{###AJAX_SITE_INPUT_RETURN###
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if(array_key_exists('callback',$_GET))
|
|
||||||
{
|
|
||||||
echo $_GET['callback']."(".json_encode(false).");";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
echo "(".json_encode(false).");";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,132 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
// import Joomla controllerform library
|
|
||||||
jimport('joomla.application.component.controller');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ###Component### Help Controller
|
|
||||||
*/
|
|
||||||
class ###Component###ControllerHelp extends JControllerLegacy
|
|
||||||
{
|
|
||||||
public function __construct($config)
|
|
||||||
{
|
|
||||||
parent::__construct($config);
|
|
||||||
// load the tasks
|
|
||||||
$this->registerTask('getText', 'help');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function help()
|
|
||||||
{
|
|
||||||
$user = JFactory::getUser();
|
|
||||||
$jinput = JFactory::getApplication()->input;
|
|
||||||
// Check Token!
|
|
||||||
$token = JSession::getFormToken();
|
|
||||||
$call_token = $jinput->get('token', 0, 'ALNUM');
|
|
||||||
if($user->id != 0 && $token == $call_token){
|
|
||||||
$task = $this->getTask();
|
|
||||||
switch($task){
|
|
||||||
case 'getText':
|
|
||||||
try
|
|
||||||
{
|
|
||||||
$idValue = $jinput->get('id', 0, 'INT');
|
|
||||||
if($idValue)
|
|
||||||
{
|
|
||||||
$result = $this->getHelpDocumentText($idValue);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$result = '';
|
|
||||||
}
|
|
||||||
echo $result;
|
|
||||||
// stop execution gracefully
|
|
||||||
jexit();
|
|
||||||
}
|
|
||||||
catch(Exception $e)
|
|
||||||
{
|
|
||||||
// stop execution gracefully
|
|
||||||
jexit();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// stop execution gracefully
|
|
||||||
jexit();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function getHelpDocumentText($id)
|
|
||||||
{
|
|
||||||
$db = JFactory::getDbo();
|
|
||||||
$query = $db->getQuery(true);
|
|
||||||
$query->select(array('a.title','a.content'));
|
|
||||||
$query->from('#__###component###_help_document AS a');
|
|
||||||
$query->where('a.id = '.(int) $id);
|
|
||||||
$query->where('a.published = 1');
|
|
||||||
$db->setQuery($query);
|
|
||||||
$db->execute();
|
|
||||||
if($db->getNumRows())
|
|
||||||
{
|
|
||||||
$text = array();
|
|
||||||
$document = $db->loadObject();
|
|
||||||
// fix image issue
|
|
||||||
$images['src="images'] = 'src="'.JURI::root().'images';
|
|
||||||
$images["src='images"] = "src='".JURI::root()."images";
|
|
||||||
$images['src="/images'] = 'src="'.JURI::root().'images';
|
|
||||||
$images["src='/images"] = "src='".JURI::root()."images";
|
|
||||||
// set document template
|
|
||||||
$text[] = "<!doctype html>";
|
|
||||||
$text[] = '<html>';
|
|
||||||
$text[] = "<head>";
|
|
||||||
$text[] = '<meta charset="utf-8">';
|
|
||||||
$text[] = "<title>".$document->title."</title>";
|
|
||||||
$text[] = '<link type="text/css" href="'.JURI::root().'media/com_###component###/uikit/css/uikit.gradient.min.css" rel="stylesheet"></link>';
|
|
||||||
$text[] = '<script type="text/javascript" src="'.JURI::root().'media/com_###component###/uikit/js/uikit.min.js"></script>';
|
|
||||||
$text[] = "</head>";
|
|
||||||
$text[] = '<body><br />';
|
|
||||||
$text[] = '<div class="uk-container uk-container-center uk-grid-collapse">';
|
|
||||||
$text[] = '<div class="uk-panel uk-width-1-1 uk-panel-box uk-panel-box-primary">';
|
|
||||||
// build the help text
|
|
||||||
$text[] = '<h3 class="uk-panel-title">'.$document->title."</h3>";
|
|
||||||
$text[] = str_replace(array_keys($images),array_values($images),$document->content);
|
|
||||||
// end template
|
|
||||||
$text[] = '</div>';
|
|
||||||
$text[] = '</div>';
|
|
||||||
$text[] = "</body>";
|
|
||||||
$text[] = "</html>";
|
|
||||||
|
|
||||||
return implode("\n",$text);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,133 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
// import Joomla controllerform library
|
|
||||||
jimport('joomla.application.component.controller');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ###Component### Help Controller
|
|
||||||
*/
|
|
||||||
class ###Component###ControllerHelp extends JControllerLegacy
|
|
||||||
{
|
|
||||||
public function __construct($config)
|
|
||||||
{
|
|
||||||
parent::__construct($config);
|
|
||||||
// load the tasks
|
|
||||||
$this->registerTask('getText', 'help');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function help()
|
|
||||||
{
|
|
||||||
$user = JFactory::getUser();
|
|
||||||
$jinput = JFactory::getApplication()->input;
|
|
||||||
// Check Token!
|
|
||||||
$token = JSession::getFormToken();
|
|
||||||
$call_token = $jinput->get('token', 0, 'ALNUM');
|
|
||||||
if($token == $call_token){
|
|
||||||
$task = $this->getTask();
|
|
||||||
switch($task){
|
|
||||||
case 'getText':
|
|
||||||
try
|
|
||||||
{
|
|
||||||
$idValue = $jinput->get('id', 0, 'INT');
|
|
||||||
if($idValue)
|
|
||||||
{
|
|
||||||
$result = $this->getHelpDocumentText($idValue);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$result = '';
|
|
||||||
}
|
|
||||||
echo $result;
|
|
||||||
// stop execution gracefully
|
|
||||||
jexit();
|
|
||||||
}
|
|
||||||
catch(Exception $e)
|
|
||||||
{
|
|
||||||
// stop execution gracefully
|
|
||||||
jexit();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// stop execution gracefully
|
|
||||||
jexit();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function getHelpDocumentText($id)
|
|
||||||
{
|
|
||||||
$db = JFactory::getDbo();
|
|
||||||
$query = $db->getQuery(true);
|
|
||||||
$query->select(array('a.title','a.content'));
|
|
||||||
$query->from('#__###component###_help_document AS a');
|
|
||||||
$query->where('a.id = '.(int) $id);
|
|
||||||
$query->where('a.published = 1');
|
|
||||||
$query->where('a.location = 2');
|
|
||||||
$db->setQuery($query);
|
|
||||||
$db->execute();
|
|
||||||
if($db->getNumRows())
|
|
||||||
{
|
|
||||||
$text = array();
|
|
||||||
$document = $db->loadObject();
|
|
||||||
// fix image issue
|
|
||||||
$images['src="images'] = 'src="'.JURI::root().'images';
|
|
||||||
$images["src='images"] = "src='".JURI::root()."images";
|
|
||||||
$images['src="/images'] = 'src="'.JURI::root().'images';
|
|
||||||
$images["src='/images"] = "src='".JURI::root()."images";
|
|
||||||
// set document template
|
|
||||||
$text[] = "<!doctype html>";
|
|
||||||
$text[] = '<html>';
|
|
||||||
$text[] = "<head>";
|
|
||||||
$text[] = '<meta charset="utf-8">';
|
|
||||||
$text[] = "<title>".$document->title."</title>";
|
|
||||||
$text[] = '<link type="text/css" href="'.JURI::root().'media/com_###component###/uikit/css/uikit.gradient.min.css" rel="stylesheet"></link>';
|
|
||||||
$text[] = '<script type="text/javascript" src="'.JURI::root().'media/com_###component###/uikit/js/uikit.min.js"></script>';
|
|
||||||
$text[] = "</head>";
|
|
||||||
$text[] = '<body><br />';
|
|
||||||
$text[] = '<div class="uk-container uk-container-center uk-grid-collapse">';
|
|
||||||
$text[] = '<div class="uk-panel uk-width-1-1 uk-panel-box uk-panel-box-primary">';
|
|
||||||
// build the help text
|
|
||||||
$text[] = '<h3 class="uk-panel-title">'.$document->title."</h3>";
|
|
||||||
$text[] = str_replace(array_keys($images),array_values($images),$document->content);
|
|
||||||
// end template
|
|
||||||
$text[] = '</div>';
|
|
||||||
$text[] = '</div>';
|
|
||||||
$text[] = "</body>";
|
|
||||||
$text[] = "</html>";
|
|
||||||
|
|
||||||
return implode("\n",$text);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,103 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
// import Joomla controller library
|
|
||||||
jimport('joomla.application.component.controller');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ###Component### Component Controller
|
|
||||||
*/
|
|
||||||
class ###Component###Controller extends JControllerLegacy
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* display task
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
function display($cachable = false, $urlparams = false)
|
|
||||||
{
|
|
||||||
// set default view if not set
|
|
||||||
$view = $this->input->getCmd('view', '###SITE_DEFAULT_VIEW###');
|
|
||||||
$isEdit = $this->checkEditView($view);
|
|
||||||
$layout = $this->input->get('layout', null, 'WORD');
|
|
||||||
$id = $this->input->getInt('id');
|
|
||||||
$cachable = true;
|
|
||||||
|
|
||||||
// Check for edit form.
|
|
||||||
if($isEdit)
|
|
||||||
{
|
|
||||||
if ($layout == 'edit' && !$this->checkEditId('com_###component###.edit.'.$view, $id))
|
|
||||||
{
|
|
||||||
// Somehow the person just went to the form - we don't allow that.
|
|
||||||
$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_UNHELD_ID', $id));
|
|
||||||
$this->setMessage($this->getError(), 'error');
|
|
||||||
// check if item was opend from other then its own list view
|
|
||||||
$ref = $this->input->getCmd('ref', 0);
|
|
||||||
$refid = $this->input->getInt('refid', 0);
|
|
||||||
// set redirect
|
|
||||||
if ($refid > 0 && ###Component###Helper::checkString($ref))
|
|
||||||
{
|
|
||||||
// redirect to item of ref
|
|
||||||
$this->setRedirect(JRoute::_('index.php?option=com_###component###&view='.(string)$ref.'&layout=edit&id='.(int)$refid, false));
|
|
||||||
}
|
|
||||||
elseif (###Component###Helper::checkString($ref))
|
|
||||||
{
|
|
||||||
|
|
||||||
// redirect to ref
|
|
||||||
$this->setRedirect(JRoute::_('index.php?option=com_###component###&view='.(string)$ref, false));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// normal redirect back to the list default site view
|
|
||||||
$this->setRedirect(JRoute::_('index.php?option=com_###component###&view=###SITE_DEFAULT_VIEW###', false));
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return parent::display($cachable, $urlparams);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function checkEditView($view)
|
|
||||||
{
|
|
||||||
if (###Component###Helper::checkString($view))
|
|
||||||
{
|
|
||||||
$views = array(###SITE_EDIT_VIEW_ARRAY###
|
|
||||||
);
|
|
||||||
// check if this is a edit view
|
|
||||||
if (in_array($view,$views))
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,50 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
// import Joomla controllerform library
|
|
||||||
jimport('joomla.application.component.controller');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ###Component### ###SView### Controller
|
|
||||||
*/
|
|
||||||
class ###Component###Controller###SView### extends JControllerLegacy
|
|
||||||
{
|
|
||||||
public function __construct($config)
|
|
||||||
{
|
|
||||||
parent::__construct($config);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function dashboard()
|
|
||||||
{
|
|
||||||
$this->setRedirect(JRoute::_('index.php?option=com_###component###', false));
|
|
||||||
return;
|
|
||||||
}###CUSTOM_ADMIN_CUSTOM_BUTTONS_CONTROLLER###
|
|
||||||
}
|
|
@ -1,70 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ###Component### Import Controller
|
|
||||||
*/
|
|
||||||
class ###Component###ControllerImport extends JControllerLegacy
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Import an spreadsheet.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function import()
|
|
||||||
{
|
|
||||||
// Check for request forgeries
|
|
||||||
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
|
|
||||||
|
|
||||||
$model = $this->getModel('import');
|
|
||||||
if ($model->import())
|
|
||||||
{
|
|
||||||
$cache = JFactory::getCache('mod_menu');
|
|
||||||
$cache->clean();
|
|
||||||
// TODO: Reset the users acl here as well to kill off any missing bits
|
|
||||||
}
|
|
||||||
|
|
||||||
$app = JFactory::getApplication();
|
|
||||||
$redirect_url = $app->getUserState('com_###component###.redirect_url');
|
|
||||||
if (empty($redirect_url))
|
|
||||||
{
|
|
||||||
$redirect_url = JRoute::_('index.php?option=com_###component###&view=import', false);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// wipe out the user state when we're going to redirect
|
|
||||||
$app->setUserState('com_###component###.redirect_url', '');
|
|
||||||
$app->setUserState('com_###component###.message', '');
|
|
||||||
$app->setUserState('com_###component###.extension_message', '');
|
|
||||||
}
|
|
||||||
$this->setRedirect($redirect_url);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,57 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
// import the list field type
|
|
||||||
jimport('joomla.form.helper');
|
|
||||||
JFormHelper::loadFieldClass('checkboxes');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ###Type### Form Field class for the ###Component### component
|
|
||||||
*/
|
|
||||||
class JFormField###Type### extends JFormFieldCheckboxes
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* The ###type### field type.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
public $type = '###type###';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to get a list of options for a list input.
|
|
||||||
*
|
|
||||||
* @return array An array of JHtml options.
|
|
||||||
*/
|
|
||||||
public function getOptions()
|
|
||||||
{
|
|
||||||
###JFORM_GETOPTIONS_PHP###
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,57 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
// import the list field type
|
|
||||||
jimport('joomla.form.helper');
|
|
||||||
JFormHelper::loadFieldClass('list');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ###Type### Form Field class for the ###Component### component
|
|
||||||
*/
|
|
||||||
class JFormField###Type### extends JFormFieldList
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* The ###type### field type.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
public $type = '###type###'; ###ADD_BUTTON###
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to get a list of options for a list input.
|
|
||||||
*
|
|
||||||
* @return array An array of JHtml options.
|
|
||||||
*/
|
|
||||||
public function getOptions()
|
|
||||||
{
|
|
||||||
###JFORM_GETOPTIONS_PHP###
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,57 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
// import the list field type
|
|
||||||
jimport('joomla.form.helper');
|
|
||||||
JFormHelper::loadFieldClass('radio');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ###Type### Form Field class for the ###Component### component
|
|
||||||
*/
|
|
||||||
class JFormField###Type### extends JFormFieldRadio
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* The ###type### field type.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
public $type = '###type###';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to get a list of options for a list input.
|
|
||||||
*
|
|
||||||
* @return array An array of JHtml options.
|
|
||||||
*/
|
|
||||||
public function getOptions()
|
|
||||||
{
|
|
||||||
###JFORM_GETOPTIONS_PHP###
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,71 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
// import the list field type
|
|
||||||
jimport('joomla.form.helper');
|
|
||||||
JFormHelper::loadFieldClass('user');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ###Type### Form Field class for the ###Component### component
|
|
||||||
*/
|
|
||||||
class JFormField###Type### extends JFormFieldUser
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* The ###type### field type.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
public $type = '###type###';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to get the filtering groups (null means no filtering)
|
|
||||||
*
|
|
||||||
* @return mixed array of filtering groups or null.
|
|
||||||
*
|
|
||||||
* @since 1.6
|
|
||||||
*/
|
|
||||||
protected function getGroups()
|
|
||||||
{
|
|
||||||
###JFORM_GETGROUPS_PHP###
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to get the users to exclude from the list of users
|
|
||||||
*
|
|
||||||
* @return mixed Array of users to exclude or null to to not exclude them
|
|
||||||
*
|
|
||||||
* @since 1.6
|
|
||||||
*/
|
|
||||||
protected function getExcluded()
|
|
||||||
{
|
|
||||||
###JFORM_GETEXCLUDED_PHP###
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,47 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
// import Joomla formrule library
|
|
||||||
jimport('joomla.form.formrule');
|
|
||||||
/**
|
|
||||||
* Form Rule class for the Joomla Framework.
|
|
||||||
*/
|
|
||||||
class JFormRule###Name### extends JFormRule
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* The regular expression.
|
|
||||||
*
|
|
||||||
* @access protected
|
|
||||||
* @var string
|
|
||||||
* @since 2.5
|
|
||||||
*/
|
|
||||||
protected $regex = '^[^_]+$';
|
|
||||||
}
|
|
@ -1,429 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
use Joomla\Registry\Registry;
|
|
||||||
|
|
||||||
// import Joomla modelform library
|
|
||||||
jimport('joomla.application.component.modeladmin');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ###Component### ###View### Model
|
|
||||||
*/
|
|
||||||
class ###Component###Model###View### extends JModelAdmin
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var string The prefix to use with controller messages.
|
|
||||||
* @since 1.6
|
|
||||||
*/
|
|
||||||
protected $text_prefix = 'COM_###COMPONENT###';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The type alias for this content type.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
* @since 3.2
|
|
||||||
*/
|
|
||||||
public $typeAlias = 'com_###component###.###view###';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a Table object, always creating it
|
|
||||||
*
|
|
||||||
* @param type $type The table type to instantiate
|
|
||||||
* @param string $prefix A prefix for the table class name. Optional.
|
|
||||||
* @param array $config Configuration array for model. Optional.
|
|
||||||
*
|
|
||||||
* @return JTable A database object
|
|
||||||
*
|
|
||||||
* @since 1.6
|
|
||||||
*/
|
|
||||||
public function getTable($type = '###view###', $prefix = '###Component###Table', $config = array())
|
|
||||||
{
|
|
||||||
return JTable::getInstance($type, $prefix, $config);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to get a single record.
|
|
||||||
*
|
|
||||||
* @param integer $pk The id of the primary key.
|
|
||||||
*
|
|
||||||
* @return mixed Object on success, false on failure.
|
|
||||||
*
|
|
||||||
* @since 1.6
|
|
||||||
*/
|
|
||||||
public function getItem($pk = null)
|
|
||||||
{###LICENSE_LOCKED_CHECK###
|
|
||||||
if ($item = parent::getItem($pk))
|
|
||||||
{
|
|
||||||
if (!empty($item->params))
|
|
||||||
{
|
|
||||||
// Convert the params field to an array.
|
|
||||||
$registry = new Registry;
|
|
||||||
$registry->loadString($item->params);
|
|
||||||
$item->params = $registry->toArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($item->metadata))
|
|
||||||
{
|
|
||||||
// Convert the metadata field to an array.
|
|
||||||
$registry = new Registry;
|
|
||||||
$registry->loadString($item->metadata);
|
|
||||||
$item->metadata = $registry->toArray();
|
|
||||||
}###METHOD_GET_ITEM###
|
|
||||||
|
|
||||||
if (!empty($item->id))
|
|
||||||
{
|
|
||||||
$item->tags = new JHelperTags;
|
|
||||||
$item->tags->getTagIds($item->id, 'com_###component###.###view###');
|
|
||||||
}
|
|
||||||
}###LINKEDVIEWGLOBAL###
|
|
||||||
|
|
||||||
return $item;
|
|
||||||
}###LINKEDVIEWMETHODS### ###LICENSE_LOCKED_SET_BOOL###
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to get the record form.
|
|
||||||
*
|
|
||||||
* @param array $data Data for the form.
|
|
||||||
* @param boolean $loadData True if the form is to load its own data (default case), false if not.
|
|
||||||
*
|
|
||||||
* @return mixed A JForm object on success, false on failure
|
|
||||||
*
|
|
||||||
* @since 1.6
|
|
||||||
*/
|
|
||||||
public function getForm($data = array(), $loadData = true)
|
|
||||||
{###JMODELADMIN_GETFORM###
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to get the script that have to be included on the form
|
|
||||||
*
|
|
||||||
* @return string script files
|
|
||||||
*/
|
|
||||||
public function getScript()
|
|
||||||
{
|
|
||||||
return 'administrator/components/com_###component###/models/forms/###view###.js';
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to test whether a record can be deleted.
|
|
||||||
*
|
|
||||||
* @param object $record A record object.
|
|
||||||
*
|
|
||||||
* @return boolean True if allowed to delete the record. Defaults to the permission set in the component.
|
|
||||||
*
|
|
||||||
* @since 1.6
|
|
||||||
*/
|
|
||||||
protected function canDelete($record)
|
|
||||||
{###JMODELADMIN_CANDELETE###
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to test whether a record can have its state edited.
|
|
||||||
*
|
|
||||||
* @param object $record A record object.
|
|
||||||
*
|
|
||||||
* @return boolean True if allowed to change the state of the record. Defaults to the permission set in the component.
|
|
||||||
*
|
|
||||||
* @since 1.6
|
|
||||||
*/
|
|
||||||
protected function canEditState($record)
|
|
||||||
{###JMODELADMIN_CANEDITSTATE###
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method override to check if you can edit an existing record.
|
|
||||||
*
|
|
||||||
* @param array $data An array of input data.
|
|
||||||
* @param string $key The name of the key for the primary key.
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
* @since 2.5
|
|
||||||
*/
|
|
||||||
protected function allowEdit($data = array(), $key = 'id')
|
|
||||||
{###JMODELADMIN_ALLOWEDIT###
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Prepare and sanitise the table data prior to saving.
|
|
||||||
*
|
|
||||||
* @param JTable $table A JTable object.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*
|
|
||||||
* @since 1.6
|
|
||||||
*/
|
|
||||||
protected function prepareTable($table)
|
|
||||||
{
|
|
||||||
$date = JFactory::getDate();
|
|
||||||
$user = JFactory::getUser();
|
|
||||||
|
|
||||||
if (isset($table->name))
|
|
||||||
{
|
|
||||||
$table->name = htmlspecialchars_decode($table->name, ENT_QUOTES);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($table->alias) && empty($table->alias))
|
|
||||||
{
|
|
||||||
$table->generateAlias();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (empty($table->id))
|
|
||||||
{
|
|
||||||
$table->created = $date->toSql();
|
|
||||||
// set the user
|
|
||||||
if ($table->created_by == 0 || empty($table->created_by))
|
|
||||||
{
|
|
||||||
$table->created_by = $user->id;
|
|
||||||
}
|
|
||||||
// Set ordering to the last item if not set
|
|
||||||
if (empty($table->ordering))
|
|
||||||
{
|
|
||||||
$db = JFactory::getDbo();
|
|
||||||
$query = $db->getQuery(true)
|
|
||||||
->select('MAX(ordering)')
|
|
||||||
->from($db->quoteName('#__###component###_###view###'));
|
|
||||||
$db->setQuery($query);
|
|
||||||
$max = $db->loadResult();
|
|
||||||
|
|
||||||
$table->ordering = $max + 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$table->modified = $date->toSql();
|
|
||||||
$table->modified_by = $user->id;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($table->id))
|
|
||||||
{
|
|
||||||
// Increment the items version number.
|
|
||||||
$table->version++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to get the data that should be injected in the form.
|
|
||||||
*
|
|
||||||
* @return mixed The data for the form.
|
|
||||||
*
|
|
||||||
* @since 1.6
|
|
||||||
*/
|
|
||||||
protected function loadFormData()
|
|
||||||
{
|
|
||||||
// Check the session for previously entered form data.
|
|
||||||
$data = JFactory::getApplication()->getUserState('com_###component###.edit.###view###.data', array());
|
|
||||||
|
|
||||||
if (empty($data))
|
|
||||||
{
|
|
||||||
$data = $this->getItem();
|
|
||||||
}
|
|
||||||
|
|
||||||
return $data;
|
|
||||||
}###VALIDATIONFIX### ###UNIQUEFIELDS###
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to delete one or more records.
|
|
||||||
*
|
|
||||||
* @param array &$pks An array of record primary keys.
|
|
||||||
*
|
|
||||||
* @return boolean True if successful, false if an error occurs.
|
|
||||||
*
|
|
||||||
* @since 12.2
|
|
||||||
*/
|
|
||||||
public function delete(&$pks)
|
|
||||||
{###JMODELADMIN_BEFORE_DELETE###
|
|
||||||
if (!parent::delete($pks))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}###JMODELADMIN_AFTER_DELETE###
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to perform batch operations on an item or a set of items.
|
|
||||||
*
|
|
||||||
* @param array $commands An array of commands to perform.
|
|
||||||
* @param array $pks An array of item ids.
|
|
||||||
* @param array $contexts An array of item contexts.
|
|
||||||
*
|
|
||||||
* @return boolean Returns true on success, false on failure.
|
|
||||||
*
|
|
||||||
* @since 12.2
|
|
||||||
*/
|
|
||||||
public function batch($commands, $pks, $contexts)
|
|
||||||
{
|
|
||||||
// Sanitize ids.
|
|
||||||
$pks = array_unique($pks);
|
|
||||||
JArrayHelper::toInteger($pks);
|
|
||||||
|
|
||||||
// Remove any values of zero.
|
|
||||||
if (array_search(0, $pks, true))
|
|
||||||
{
|
|
||||||
unset($pks[array_search(0, $pks, true)]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (empty($pks))
|
|
||||||
{
|
|
||||||
$this->setError(JText::_('JGLOBAL_NO_ITEM_SELECTED'));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$done = false;
|
|
||||||
|
|
||||||
// Set some needed variables.
|
|
||||||
$this->user = JFactory::getUser();
|
|
||||||
$this->table = $this->getTable();
|
|
||||||
$this->tableClassName = get_class($this->table);
|
|
||||||
$this->contentType = new JUcmType;
|
|
||||||
$this->type = $this->contentType->getTypeByTable($this->tableClassName);
|
|
||||||
$this->canDo = ###Component###Helper::getActions('###view###');
|
|
||||||
$this->batchSet = true;
|
|
||||||
|
|
||||||
if (!$this->canDo->get('core.batch'))
|
|
||||||
{
|
|
||||||
$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->type == false)
|
|
||||||
{
|
|
||||||
$type = new JUcmType;
|
|
||||||
$this->type = $type->getTypeByAlias($this->typeAlias);
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->tagsObserver = $this->table->getObserverOfClass('JTableObserverTags');
|
|
||||||
|
|
||||||
if (!empty($commands['move_copy']))
|
|
||||||
{
|
|
||||||
$cmd = JArrayHelper::getValue($commands, 'move_copy', 'c');
|
|
||||||
|
|
||||||
if ($cmd == 'c')
|
|
||||||
{
|
|
||||||
$result = $this->batchCopy($commands, $pks, $contexts);
|
|
||||||
|
|
||||||
if (is_array($result))
|
|
||||||
{
|
|
||||||
foreach ($result as $old => $new)
|
|
||||||
{
|
|
||||||
$contexts[$new] = $contexts[$old];
|
|
||||||
}
|
|
||||||
$pks = array_values($result);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif ($cmd == 'm' && !$this->batchMove($commands, $pks, $contexts))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$done = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$done)
|
|
||||||
{
|
|
||||||
$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clear the cache
|
|
||||||
$this->cleanCache();
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}###MODEL_BATCH_COPY### ###MODEL_BATCH_MOVE###
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to save the form data.
|
|
||||||
*
|
|
||||||
* @param array $data The form data.
|
|
||||||
*
|
|
||||||
* @return boolean True on success.
|
|
||||||
*
|
|
||||||
* @since 1.6
|
|
||||||
*/
|
|
||||||
public function save($data)
|
|
||||||
{
|
|
||||||
$input = JFactory::getApplication()->input;
|
|
||||||
$filter = JFilterInput::getInstance();
|
|
||||||
|
|
||||||
// set the metadata to the Item Data
|
|
||||||
if (isset($data['metadata']) && isset($data['metadata']['author']))
|
|
||||||
{
|
|
||||||
$data['metadata']['author'] = $filter->clean($data['metadata']['author'], 'TRIM');
|
|
||||||
|
|
||||||
$metadata = new JRegistry;
|
|
||||||
$metadata->loadArray($data['metadata']);
|
|
||||||
$data['metadata'] = (string) $metadata;
|
|
||||||
}###CHECKBOX_SAVE### ###METHOD_ITEM_SAVE###
|
|
||||||
|
|
||||||
// Set the Params Items to data
|
|
||||||
if (isset($data['params']) && is_array($data['params']))
|
|
||||||
{
|
|
||||||
$params = new JRegistry;
|
|
||||||
$params->loadArray($data['params']);
|
|
||||||
$data['params'] = (string) $params;
|
|
||||||
}###TITLEALIASFIX###
|
|
||||||
|
|
||||||
if (parent::save($data))
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to generate a uniqe value.
|
|
||||||
*
|
|
||||||
* @param string $field name.
|
|
||||||
* @param string $value data.
|
|
||||||
*
|
|
||||||
* @return string New value.
|
|
||||||
*
|
|
||||||
* @since 3.0
|
|
||||||
*/
|
|
||||||
protected function generateUniqe($field,$value)
|
|
||||||
{
|
|
||||||
|
|
||||||
// set field value uniqe
|
|
||||||
$table = $this->getTable();
|
|
||||||
|
|
||||||
while ($table->load(array($field => $value)))
|
|
||||||
{
|
|
||||||
$value = JString::increment($value);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $value;
|
|
||||||
}###GENERATENEWTITLE###
|
|
||||||
}
|
|
@ -1,410 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
use Joomla\Registry\Registry;
|
|
||||||
|
|
||||||
// import Joomla modelform library
|
|
||||||
jimport('joomla.application.component.modeladmin');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ###Component### ###View### Model
|
|
||||||
*/
|
|
||||||
class ###Component###Model###View### extends JModelAdmin
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var string The prefix to use with controller messages.
|
|
||||||
* @since 1.6
|
|
||||||
*/
|
|
||||||
protected $text_prefix = 'COM_###COMPONENT###';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The type alias for this content type.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
* @since 3.2
|
|
||||||
*/
|
|
||||||
public $typeAlias = 'com_###component###.###view###';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a Table object, always creating it
|
|
||||||
*
|
|
||||||
* @param type $type The table type to instantiate
|
|
||||||
* @param string $prefix A prefix for the table class name. Optional.
|
|
||||||
* @param array $config Configuration array for model. Optional.
|
|
||||||
*
|
|
||||||
* @return JTable A database object
|
|
||||||
*
|
|
||||||
* @since 1.6
|
|
||||||
*/
|
|
||||||
public function getTable($type = '###view###', $prefix = '###Component###Table', $config = array())
|
|
||||||
{
|
|
||||||
return JTable::getInstance($type, $prefix, $config);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to get a single record.
|
|
||||||
*
|
|
||||||
* @param integer $pk The id of the primary key.
|
|
||||||
*
|
|
||||||
* @return mixed Object on success, false on failure.
|
|
||||||
*
|
|
||||||
* @since 1.6
|
|
||||||
*/
|
|
||||||
public function getItem($pk = null)
|
|
||||||
{###LICENSE_LOCKED_CHECK###
|
|
||||||
if ($item = parent::getItem($pk))
|
|
||||||
{
|
|
||||||
if (!empty($item->params))
|
|
||||||
{
|
|
||||||
// Convert the params field to an array.
|
|
||||||
$registry = new Registry;
|
|
||||||
$registry->loadString($item->params);
|
|
||||||
$item->params = $registry->toArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($item->metadata))
|
|
||||||
{
|
|
||||||
// Convert the metadata field to an array.
|
|
||||||
$registry = new Registry;
|
|
||||||
$registry->loadString($item->metadata);
|
|
||||||
$item->metadata = $registry->toArray();
|
|
||||||
}###METHOD_GET_ITEM###
|
|
||||||
|
|
||||||
if (!empty($item->id))
|
|
||||||
{
|
|
||||||
$item->tags = new JHelperTags;
|
|
||||||
$item->tags->getTagIds($item->id, 'com_###component###.###view###');
|
|
||||||
}
|
|
||||||
}###LINKEDVIEWGLOBAL###
|
|
||||||
|
|
||||||
return $item;
|
|
||||||
}###LINKEDVIEWMETHODS### ###LICENSE_LOCKED_SET_BOOL###
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to get the record form.
|
|
||||||
*
|
|
||||||
* @param array $data Data for the form.
|
|
||||||
* @param boolean $loadData True if the form is to load its own data (default case), false if not.
|
|
||||||
*
|
|
||||||
* @return mixed A JForm object on success, false on failure
|
|
||||||
*
|
|
||||||
* @since 1.6
|
|
||||||
*/
|
|
||||||
public function getForm($data = array(), $loadData = true)
|
|
||||||
{###JMODELADMIN_GETFORM###
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to get the script that have to be included on the form
|
|
||||||
*
|
|
||||||
* @return string script files
|
|
||||||
*/
|
|
||||||
public function getScript()
|
|
||||||
{
|
|
||||||
return 'administrator/components/com_###component###/models/forms/###view###.js';
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to test whether a record can be deleted.
|
|
||||||
*
|
|
||||||
* @param object $record A record object.
|
|
||||||
*
|
|
||||||
* @return boolean True if allowed to delete the record. Defaults to the permission set in the component.
|
|
||||||
*
|
|
||||||
* @since 1.6
|
|
||||||
*/
|
|
||||||
protected function canDelete($record)
|
|
||||||
{###JMODELADMIN_CANDELETE###
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to test whether a record can have its state edited.
|
|
||||||
*
|
|
||||||
* @param object $record A record object.
|
|
||||||
*
|
|
||||||
* @return boolean True if allowed to change the state of the record. Defaults to the permission set in the component.
|
|
||||||
*
|
|
||||||
* @since 1.6
|
|
||||||
*/
|
|
||||||
protected function canEditState($record)
|
|
||||||
{###JMODELADMIN_CANEDITSTATE###
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method override to check if you can edit an existing record.
|
|
||||||
*
|
|
||||||
* @param array $data An array of input data.
|
|
||||||
* @param string $key The name of the key for the primary key.
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
* @since 2.5
|
|
||||||
*/
|
|
||||||
protected function allowEdit($data = array(), $key = 'id')
|
|
||||||
{###JMODELADMIN_ALLOWEDIT###
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Prepare and sanitise the table data prior to saving.
|
|
||||||
*
|
|
||||||
* @param JTable $table A JTable object.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*
|
|
||||||
* @since 1.6
|
|
||||||
*/
|
|
||||||
protected function prepareTable($table)
|
|
||||||
{
|
|
||||||
$date = JFactory::getDate();
|
|
||||||
$user = JFactory::getUser();
|
|
||||||
|
|
||||||
if (isset($table->name))
|
|
||||||
{
|
|
||||||
$table->name = htmlspecialchars_decode($table->name, ENT_QUOTES);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($table->alias) && empty($table->alias))
|
|
||||||
{
|
|
||||||
$table->generateAlias();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (empty($table->id))
|
|
||||||
{
|
|
||||||
$table->created = $date->toSql();
|
|
||||||
// set the user
|
|
||||||
if ($table->created_by == 0 || empty($table->created_by))
|
|
||||||
{
|
|
||||||
$table->created_by = $user->id;
|
|
||||||
}
|
|
||||||
// Set ordering to the last item if not set
|
|
||||||
if (empty($table->ordering))
|
|
||||||
{
|
|
||||||
$db = JFactory::getDbo();
|
|
||||||
$query = $db->getQuery(true)
|
|
||||||
->select('MAX(ordering)')
|
|
||||||
->from($db->quoteName('#__###component###_###view###'));
|
|
||||||
$db->setQuery($query);
|
|
||||||
$max = $db->loadResult();
|
|
||||||
|
|
||||||
$table->ordering = $max + 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$table->modified = $date->toSql();
|
|
||||||
$table->modified_by = $user->id;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($table->id))
|
|
||||||
{
|
|
||||||
// Increment the items version number.
|
|
||||||
$table->version++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to get the data that should be injected in the form.
|
|
||||||
*
|
|
||||||
* @return mixed The data for the form.
|
|
||||||
*
|
|
||||||
* @since 1.6
|
|
||||||
*/
|
|
||||||
protected function loadFormData()
|
|
||||||
{
|
|
||||||
// Check the session for previously entered form data.
|
|
||||||
$data = JFactory::getApplication()->getUserState('com_###component###.edit.###view###.data', array());
|
|
||||||
|
|
||||||
if (empty($data))
|
|
||||||
{
|
|
||||||
$data = $this->getItem();
|
|
||||||
}
|
|
||||||
|
|
||||||
return $data;
|
|
||||||
}###VALIDATIONFIX### ###UNIQUEFIELDS###
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to perform batch operations on an item or a set of items.
|
|
||||||
*
|
|
||||||
* @param array $commands An array of commands to perform.
|
|
||||||
* @param array $pks An array of item ids.
|
|
||||||
* @param array $contexts An array of item contexts.
|
|
||||||
*
|
|
||||||
* @return boolean Returns true on success, false on failure.
|
|
||||||
*
|
|
||||||
* @since 12.2
|
|
||||||
*/
|
|
||||||
public function batch($commands, $pks, $contexts)
|
|
||||||
{
|
|
||||||
// Sanitize ids.
|
|
||||||
$pks = array_unique($pks);
|
|
||||||
JArrayHelper::toInteger($pks);
|
|
||||||
|
|
||||||
// Remove any values of zero.
|
|
||||||
if (array_search(0, $pks, true))
|
|
||||||
{
|
|
||||||
unset($pks[array_search(0, $pks, true)]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (empty($pks))
|
|
||||||
{
|
|
||||||
$this->setError(JText::_('JGLOBAL_NO_ITEM_SELECTED'));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$done = false;
|
|
||||||
|
|
||||||
// Set some needed variables.
|
|
||||||
$this->user = JFactory::getUser();
|
|
||||||
$this->table = $this->getTable();
|
|
||||||
$this->tableClassName = get_class($this->table);
|
|
||||||
$this->contentType = new JUcmType;
|
|
||||||
$this->type = $this->contentType->getTypeByTable($this->tableClassName);
|
|
||||||
$this->canDo = ###Component###Helper::getActions('###view###');
|
|
||||||
$this->batchSet = true;
|
|
||||||
|
|
||||||
if (!$this->canDo->get('core.batch'))
|
|
||||||
{
|
|
||||||
$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->type == false)
|
|
||||||
{
|
|
||||||
$type = new JUcmType;
|
|
||||||
$this->type = $type->getTypeByAlias($this->typeAlias);
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->tagsObserver = $this->table->getObserverOfClass('JTableObserverTags');
|
|
||||||
|
|
||||||
if (!empty($commands['move_copy']))
|
|
||||||
{
|
|
||||||
$cmd = JArrayHelper::getValue($commands, 'move_copy', 'c');
|
|
||||||
|
|
||||||
if ($cmd == 'c')
|
|
||||||
{
|
|
||||||
$result = $this->batchCopy($commands, $pks, $contexts);
|
|
||||||
|
|
||||||
if (is_array($result))
|
|
||||||
{
|
|
||||||
foreach ($result as $old => $new)
|
|
||||||
{
|
|
||||||
$contexts[$new] = $contexts[$old];
|
|
||||||
}
|
|
||||||
$pks = array_values($result);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif ($cmd == 'm' && !$this->batchMove($commands, $pks, $contexts))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$done = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$done)
|
|
||||||
{
|
|
||||||
$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clear the cache
|
|
||||||
$this->cleanCache();
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}###MODEL_BATCH_COPY### ###MODEL_BATCH_MOVE###
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to save the form data.
|
|
||||||
*
|
|
||||||
* @param array $data The form data.
|
|
||||||
*
|
|
||||||
* @return boolean True on success.
|
|
||||||
*
|
|
||||||
* @since 1.6
|
|
||||||
*/
|
|
||||||
public function save($data)
|
|
||||||
{
|
|
||||||
$input = JFactory::getApplication()->input;
|
|
||||||
$filter = JFilterInput::getInstance();
|
|
||||||
|
|
||||||
// set the metadata to the Item Data
|
|
||||||
if (isset($data['metadata']) && isset($data['metadata']['author']))
|
|
||||||
{
|
|
||||||
$data['metadata']['author'] = $filter->clean($data['metadata']['author'], 'TRIM');
|
|
||||||
|
|
||||||
$metadata = new JRegistry;
|
|
||||||
$metadata->loadArray($data['metadata']);
|
|
||||||
$data['metadata'] = (string) $metadata;
|
|
||||||
}###CHECKBOX_SAVE### ###METHOD_ITEM_SAVE###
|
|
||||||
|
|
||||||
// Set the Params Items to data
|
|
||||||
if (isset($data['params']) && is_array($data['params']))
|
|
||||||
{
|
|
||||||
$params = new JRegistry;
|
|
||||||
$params->loadArray($data['params']);
|
|
||||||
$data['params'] = (string) $params;
|
|
||||||
}###TITLEALIASFIX###
|
|
||||||
|
|
||||||
if (parent::save($data))
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to generate a uniqe value.
|
|
||||||
*
|
|
||||||
* @param string $field name.
|
|
||||||
* @param string $value data.
|
|
||||||
*
|
|
||||||
* @return string New value.
|
|
||||||
*
|
|
||||||
* @since 3.0
|
|
||||||
*/
|
|
||||||
protected function generateUniqe($field,$value)
|
|
||||||
{
|
|
||||||
|
|
||||||
// set field value uniqe
|
|
||||||
$table = $this->getTable();
|
|
||||||
|
|
||||||
while ($table->load(array($field => $value)))
|
|
||||||
{
|
|
||||||
$value = JString::increment($value);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $value;
|
|
||||||
}###GENERATENEWTITLE###
|
|
||||||
}
|
|
@ -1,141 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
// import Joomla modelitem library
|
|
||||||
jimport('joomla.application.component.modelitem');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ###Component### ###SView### Model
|
|
||||||
*/
|
|
||||||
class ###Component###Model###SView### extends JModelItem
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Model context string.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
protected $_context = 'com_###component###.###sview###';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Model user data.
|
|
||||||
*
|
|
||||||
* @var strings
|
|
||||||
*/
|
|
||||||
protected $user;
|
|
||||||
protected $userId;
|
|
||||||
protected $guest;
|
|
||||||
protected $groups;
|
|
||||||
protected $levels;
|
|
||||||
protected $app;
|
|
||||||
protected $input;
|
|
||||||
protected $uikitComp;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var object item
|
|
||||||
*/
|
|
||||||
protected $item;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to auto-populate the model state.
|
|
||||||
*
|
|
||||||
* Note. Calling getState in this method will result in recursion.
|
|
||||||
*
|
|
||||||
* @since 1.6
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
protected function populateState()
|
|
||||||
{
|
|
||||||
$this->app = JFactory::getApplication();
|
|
||||||
$this->input = $this->app->input;
|
|
||||||
// Get the item main id
|
|
||||||
$id = $this->input->getInt('id', null);
|
|
||||||
$this->setState('###sview###.id', $id);
|
|
||||||
|
|
||||||
// Load the parameters.
|
|
||||||
parent::populateState();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to get article data.
|
|
||||||
*
|
|
||||||
* @param integer $pk The id of the article.
|
|
||||||
*
|
|
||||||
* @return mixed Menu item data object on success, false on failure.
|
|
||||||
*/
|
|
||||||
public function getItem($pk = null)
|
|
||||||
{
|
|
||||||
$this->user = JFactory::getUser();
|
|
||||||
// check if this user has permission to access item
|
|
||||||
if (!$this->user->authorise('###sview###.access', 'com_###component###'))
|
|
||||||
{
|
|
||||||
JError::raiseWarning(500, JText::_('Not authorised!'));
|
|
||||||
// redirect away if not a correct (TODO for now we go to default view)
|
|
||||||
JFactory::getApplication()->redirect('index.php?option=com_###component###');
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
$this->userId = $this->user->get('id');
|
|
||||||
$this->guest = $this->user->get('guest');
|
|
||||||
$this->groups = $this->user->get('groups');
|
|
||||||
$this->authorisedGroups = $this->user->getAuthorisedGroups();
|
|
||||||
$this->levels = $this->user->getAuthorisedViewLevels();
|
|
||||||
$this->initSet = true;
|
|
||||||
|
|
||||||
$pk = (!empty($pk)) ? $pk : (int) $this->getState('###sview###.id');###CUSTOM_ADMIN_BEFORE_GET_ITEM###
|
|
||||||
|
|
||||||
if ($this->_item === null)
|
|
||||||
{
|
|
||||||
$this->_item = array();
|
|
||||||
}###LICENSE_LOCKED_CHECK###
|
|
||||||
|
|
||||||
if (!isset($this->_item[$pk]))
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{###CUSTOM_ADMIN_GET_ITEM###
|
|
||||||
}
|
|
||||||
catch (Exception $e)
|
|
||||||
{
|
|
||||||
if ($e->getCode() == 404)
|
|
||||||
{
|
|
||||||
// Need to go thru the error handler to allow Redirect to work.
|
|
||||||
JError::raiseError(404, $e->getMessage());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$this->setError($e);
|
|
||||||
$this->_item[$pk] = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}###CUSTOM_ADMIN_AFTER_GET_ITEM###
|
|
||||||
|
|
||||||
return $this->_item[$pk];
|
|
||||||
}###CUSTOM_ADMIN_CUSTOM_METHODS### ###LICENSE_LOCKED_SET_BOOL### ###CUSTOM_ADMIN_CUSTOM_BUTTONS_METHOD###
|
|
||||||
}
|
|
@ -1,143 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
// import Joomla modelitem library
|
|
||||||
jimport('joomla.application.component.modelitem');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ###Component### ###SView### Model
|
|
||||||
*/
|
|
||||||
class ###Component###Model###SView### extends JModelItem
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Model context string.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
protected $_context = 'com_###component###.###sview###';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Model user data.
|
|
||||||
*
|
|
||||||
* @var strings
|
|
||||||
*/
|
|
||||||
protected $user;
|
|
||||||
protected $userId;
|
|
||||||
protected $guest;
|
|
||||||
protected $groups;
|
|
||||||
protected $levels;
|
|
||||||
protected $app;
|
|
||||||
protected $input;
|
|
||||||
protected $uikitComp;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var object item
|
|
||||||
*/
|
|
||||||
protected $item;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to auto-populate the model state.
|
|
||||||
*
|
|
||||||
* Note. Calling getState in this method will result in recursion.
|
|
||||||
*
|
|
||||||
* @since 1.6
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
protected function populateState()
|
|
||||||
{
|
|
||||||
$this->app = JFactory::getApplication();
|
|
||||||
$this->input = $this->app->input;
|
|
||||||
// Get the itme main id
|
|
||||||
$id = $this->input->getInt('id', null);
|
|
||||||
$this->setState('###sview###.id', $id);
|
|
||||||
|
|
||||||
// Load the parameters.
|
|
||||||
$params = $this->app->getParams();
|
|
||||||
$this->setState('params', $params);
|
|
||||||
parent::populateState();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to get article data.
|
|
||||||
*
|
|
||||||
* @param integer $pk The id of the article.
|
|
||||||
*
|
|
||||||
* @return mixed Menu item data object on success, false on failure.
|
|
||||||
*/
|
|
||||||
public function getItem($pk = null)
|
|
||||||
{
|
|
||||||
$this->user = JFactory::getUser();
|
|
||||||
// check if this user has permission to access item
|
|
||||||
if (!$this->user->authorise('site.###sview###.access', 'com_###component###'))
|
|
||||||
{
|
|
||||||
JError::raiseWarning(500, JText::_('Not authorised!'));
|
|
||||||
// redirect away if not a correct (TODO for now we go to default view)
|
|
||||||
JFactory::getApplication()->redirect(JRoute::_('index.php?option=com_###component###&view=###SITE_DEFAULT_VIEW###'));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
$this->userId = $this->user->get('id');
|
|
||||||
$this->guest = $this->user->get('guest');
|
|
||||||
$this->groups = $this->user->get('groups');
|
|
||||||
$this->authorisedGroups = $this->user->getAuthorisedGroups();
|
|
||||||
$this->levels = $this->user->getAuthorisedViewLevels();
|
|
||||||
$this->initSet = true;
|
|
||||||
|
|
||||||
$pk = (!empty($pk)) ? $pk : (int) $this->getState('###sview###.id');###SITE_BEFORE_GET_ITEM###
|
|
||||||
|
|
||||||
if ($this->_item === null)
|
|
||||||
{
|
|
||||||
$this->_item = array();
|
|
||||||
}###LICENSE_LOCKED_CHECK###
|
|
||||||
|
|
||||||
if (!isset($this->_item[$pk]))
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{###SITE_GET_ITEM###
|
|
||||||
}
|
|
||||||
catch (Exception $e)
|
|
||||||
{
|
|
||||||
if ($e->getCode() == 404)
|
|
||||||
{
|
|
||||||
// Need to go thru the error handler to allow Redirect to work.
|
|
||||||
JError::raiseError(404, $e->getMessage());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$this->setError($e);
|
|
||||||
$this->_item[$pk] = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}###SITE_AFTER_GET_ITEM###
|
|
||||||
|
|
||||||
return $this->_item[$pk];
|
|
||||||
}###LICENSE_LOCKED_SET_BOOL### ###SITE_CUSTOM_METHODS### ###SITE_CUSTOM_BUTTONS_METHOD### ###SITE_CUSTOM_GET_FORM_METHOD###
|
|
||||||
}
|
|
@ -1,735 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ###Component### Import Model
|
|
||||||
*/
|
|
||||||
class ###Component###ModelImport extends JModelLegacy
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var object JTable object
|
|
||||||
*/
|
|
||||||
protected $_table = null;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var object JTable object
|
|
||||||
*/
|
|
||||||
protected $_url = null;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Model context string.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
protected $_context = 'com_###component###.import';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Import Settings
|
|
||||||
*/
|
|
||||||
protected $getType = NULL;
|
|
||||||
protected $dataType = NULL;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to auto-populate the model state.
|
|
||||||
*
|
|
||||||
* Note. Calling getState in this method will result in recursion.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
protected function populateState()
|
|
||||||
{
|
|
||||||
$app = JFactory::getApplication('administrator');
|
|
||||||
|
|
||||||
$this->setState('message', $app->getUserState('com_###component###.message'));
|
|
||||||
$app->setUserState('com_###component###.message', '');
|
|
||||||
|
|
||||||
// Recall the 'Import from Directory' path.
|
|
||||||
$path = $app->getUserStateFromRequest($this->_context . '.import_directory', 'import_directory', $app->get('tmp_path'));
|
|
||||||
$this->setState('import.directory', $path);
|
|
||||||
// set uploading values
|
|
||||||
$this->use_streams = false;
|
|
||||||
$this->allow_unsafe = false;
|
|
||||||
$this->safeFileOptions = array();
|
|
||||||
parent::populateState();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Import an spreadsheet from either folder, url or upload.
|
|
||||||
*
|
|
||||||
* @return boolean result of import
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public function import()
|
|
||||||
{
|
|
||||||
$this->setState('action', 'import');
|
|
||||||
$app = JFactory::getApplication();
|
|
||||||
$session = JFactory::getSession();
|
|
||||||
$package = null;
|
|
||||||
$continue = false;
|
|
||||||
// get import type
|
|
||||||
$this->getType = $app->input->getString('gettype', NULL);
|
|
||||||
// get import type
|
|
||||||
$this->dataType = $session->get('dataType_VDM_IMPORTINTO', NULL);
|
|
||||||
|
|
||||||
if ($package === null)
|
|
||||||
{
|
|
||||||
switch ($this->getType)
|
|
||||||
{
|
|
||||||
case 'folder':
|
|
||||||
// Remember the 'Import from Directory' path.
|
|
||||||
$app->getUserStateFromRequest($this->_context . '.import_directory', 'import_directory');
|
|
||||||
$package = $this->_getPackageFromFolder();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'upload':
|
|
||||||
$package = $this->_getPackageFromUpload();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'url':
|
|
||||||
$package = $this->_getPackageFromUrl();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'continue':
|
|
||||||
$continue = true;
|
|
||||||
$package = $session->get('package', null);
|
|
||||||
$package = json_decode($package, true);
|
|
||||||
// clear session
|
|
||||||
$session->clear('package');
|
|
||||||
$session->clear('dataType');
|
|
||||||
$session->clear('hasPackage');
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
$app->setUserState('com_###component###.message', JText::_('COM_###COMPONENT###_IMPORT_NO_IMPORT_TYPE_FOUND'));
|
|
||||||
|
|
||||||
return false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Was the package valid?
|
|
||||||
if (!$package || !$package['type'])
|
|
||||||
{
|
|
||||||
if (in_array($this->getType, array('upload', 'url')))
|
|
||||||
{
|
|
||||||
$this->remove($package['packagename']);
|
|
||||||
}
|
|
||||||
|
|
||||||
$app->setUserState('com_###component###.message', JText::_('COM_###COMPONENT###_IMPORT_UNABLE_TO_FIND_IMPORT_PACKAGE'));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// first link data to table headers
|
|
||||||
if(!$continue){
|
|
||||||
$package = json_encode($package);
|
|
||||||
$session->set('package', $package);
|
|
||||||
$session->set('dataType', $this->dataType);
|
|
||||||
$session->set('hasPackage', true);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// set the data
|
|
||||||
$headerList = json_decode($session->get($this->dataType.'_VDM_IMPORTHEADERS', false), true);
|
|
||||||
if (!$this->setData($package,$this->dataType,$headerList))
|
|
||||||
{
|
|
||||||
// There was an error importing the package
|
|
||||||
$msg = JText::_('COM_###COMPONENT###_IMPORT_ERROR');
|
|
||||||
$back = $session->get('backto_VDM_IMPORT', NULL);
|
|
||||||
if ($back)
|
|
||||||
{
|
|
||||||
$app->setUserState('com_###component###.redirect_url', 'index.php?option=com_###component###&view='.$back);
|
|
||||||
$session->clear('backto_VDM_IMPORT');
|
|
||||||
}
|
|
||||||
$result = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Package imported sucessfully
|
|
||||||
$msg = JText::sprintf('COM_###COMPONENT###_IMPORT_SUCCESS', $package['packagename']);
|
|
||||||
$back = $session->get('backto_VDM_IMPORT', NULL);
|
|
||||||
if ($back)
|
|
||||||
{
|
|
||||||
$app->setUserState('com_###component###.redirect_url', 'index.php?option=com_###component###&view='.$back);
|
|
||||||
$session->clear('backto_VDM_IMPORT');
|
|
||||||
}
|
|
||||||
$result = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set some model state values
|
|
||||||
$app->enqueueMessage($msg);
|
|
||||||
|
|
||||||
// remove file after import
|
|
||||||
$this->remove($package['packagename']);
|
|
||||||
$session->clear($this->getType.'_VDM_IMPORTHEADERS');
|
|
||||||
|
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Works out an importation spreadsheet from a HTTP upload
|
|
||||||
*
|
|
||||||
* @return spreadsheet definition or false on failure
|
|
||||||
*/
|
|
||||||
protected function _getPackageFromUpload()
|
|
||||||
{
|
|
||||||
// Get the uploaded file information
|
|
||||||
$input = JFactory::getApplication()->input;
|
|
||||||
|
|
||||||
// Do not change the filter type 'raw'. We need this to let files containing PHP code to upload. See JInputFiles::get.
|
|
||||||
$userfile = $input->files->get('import_package', null, 'raw');
|
|
||||||
|
|
||||||
// Make sure that file uploads are enabled in php
|
|
||||||
if (!(bool) ini_get('file_uploads'))
|
|
||||||
{
|
|
||||||
JError::raiseWarning('', JText::_('COM_###COMPONENT###_IMPORT_MSG_WARNIMPORTFILE'));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If there is no uploaded file, we have a problem...
|
|
||||||
if (!is_array($userfile))
|
|
||||||
{
|
|
||||||
JError::raiseWarning('', JText::_('COM_###COMPONENT###_IMPORT_MSG_NO_FILE_SELECTED'));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if there was a problem uploading the file.
|
|
||||||
if ($userfile['error'] || $userfile['size'] < 1)
|
|
||||||
{
|
|
||||||
JError::raiseWarning('', JText::_('COM_###COMPONENT###_IMPORT_MSG_WARNIMPORTUPLOADERROR'));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Build the appropriate paths
|
|
||||||
$config = JFactory::getConfig();
|
|
||||||
$tmp_dest = $config->get('tmp_path') . '/' . $userfile['name'];
|
|
||||||
$tmp_src = $userfile['tmp_name'];
|
|
||||||
|
|
||||||
// Move uploaded file
|
|
||||||
jimport('joomla.filesystem.file');
|
|
||||||
$p_file = JFile::upload($tmp_src, $tmp_dest, $this->use_streams, $this->allow_unsafe, $this->safeFileOptions);
|
|
||||||
|
|
||||||
// Was the package downloaded?
|
|
||||||
if (!$p_file)
|
|
||||||
{
|
|
||||||
$session = JFactory::getSession();
|
|
||||||
$session->clear('package');
|
|
||||||
$session->clear('dataType');
|
|
||||||
$session->clear('hasPackage');
|
|
||||||
// was not uploaded
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// check that this is a valid spreadsheet
|
|
||||||
$package = $this->check($userfile['name']);
|
|
||||||
|
|
||||||
return $package;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Import an spreadsheet from a directory
|
|
||||||
*
|
|
||||||
* @return array Spreadsheet details or false on failure
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
protected function _getPackageFromFolder()
|
|
||||||
{
|
|
||||||
$input = JFactory::getApplication()->input;
|
|
||||||
|
|
||||||
// Get the path to the package to import
|
|
||||||
$p_dir = $input->getString('import_directory');
|
|
||||||
$p_dir = JPath::clean($p_dir);
|
|
||||||
// Did you give us a valid path?
|
|
||||||
if (!file_exists($p_dir))
|
|
||||||
{
|
|
||||||
JError::raiseWarning('', JText::_('COM_###COMPONENT###_IMPORT_MSG_PLEASE_ENTER_A_PACKAGE_DIRECTORY'));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Detect the package type
|
|
||||||
$type = $this->getType;
|
|
||||||
|
|
||||||
// Did you give us a valid package?
|
|
||||||
if (!$type)
|
|
||||||
{
|
|
||||||
JError::raiseWarning('', JText::_('COM_###COMPONENT###_IMPORT_MSG_PATH_DOES_NOT_HAVE_A_VALID_PACKAGE'));
|
|
||||||
}
|
|
||||||
|
|
||||||
// check the extention
|
|
||||||
switch(strtolower(pathinfo($p_dir, PATHINFO_EXTENSION))){
|
|
||||||
case 'xls':
|
|
||||||
case 'ods':
|
|
||||||
case 'csv':
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
JError::raiseWarning('', JText::_('COM_###COMPONENT###_IMPORT_MSG_DOES_NOT_HAVE_A_VALID_FILE_TYPE'));
|
|
||||||
return false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
$package['packagename'] = null;
|
|
||||||
$package['dir'] = $p_dir;
|
|
||||||
$package['type'] = $type;
|
|
||||||
|
|
||||||
return $package;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Import an spreadsheet from a URL
|
|
||||||
*
|
|
||||||
* @return Package details or false on failure
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
protected function _getPackageFromUrl()
|
|
||||||
{
|
|
||||||
$input = JFactory::getApplication()->input;
|
|
||||||
|
|
||||||
// Get the URL of the package to import
|
|
||||||
$url = $input->getString('import_url');
|
|
||||||
|
|
||||||
// Did you give us a URL?
|
|
||||||
if (!$url)
|
|
||||||
{
|
|
||||||
JError::raiseWarning('', JText::_('COM_###COMPONENT###_IMPORT_MSG_ENTER_A_URL'));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Download the package at the URL given
|
|
||||||
$p_file = JInstallerHelper::downloadPackage($url);
|
|
||||||
|
|
||||||
// Was the package downloaded?
|
|
||||||
if (!$p_file)
|
|
||||||
{
|
|
||||||
JError::raiseWarning('', JText::_('COM_###COMPONENT###_IMPORT_MSG_INVALID_URL'));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// check that this is a valid spreadsheet
|
|
||||||
$package = $this->check($p_file);
|
|
||||||
|
|
||||||
return $package;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Check a file and verifies it as a spreadsheet file
|
|
||||||
* Supports .csv .xlsx .xls and .ods
|
|
||||||
*
|
|
||||||
* @param string $p_filename The uploaded package filename or import directory
|
|
||||||
*
|
|
||||||
* @return array of elements
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
protected function check($archivename)
|
|
||||||
{
|
|
||||||
// Clean the name
|
|
||||||
$archivename = JPath::clean($archivename);
|
|
||||||
|
|
||||||
// check the extention
|
|
||||||
switch(strtolower(pathinfo($archivename, PATHINFO_EXTENSION))){
|
|
||||||
case 'xls':
|
|
||||||
case 'ods':
|
|
||||||
case 'csv':
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
// Cleanup the import files
|
|
||||||
$this->remove($archivename);
|
|
||||||
JError::raiseWarning('', JText::_('COM_###COMPONENT###_IMPORT_MSG_DOES_NOT_HAVE_A_VALID_FILE_TYPE'));
|
|
||||||
return false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
$config = JFactory::getConfig();
|
|
||||||
// set Package Name
|
|
||||||
$check['packagename'] = $archivename;
|
|
||||||
|
|
||||||
// set directory
|
|
||||||
$check['dir'] = $config->get('tmp_path'). '/' .$archivename;
|
|
||||||
|
|
||||||
// set type
|
|
||||||
$check['type'] = $this->getType;
|
|
||||||
|
|
||||||
return $check;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Clean up temporary uploaded spreadsheet
|
|
||||||
*
|
|
||||||
* @param string $package Name of the uploaded spreadsheet file
|
|
||||||
*
|
|
||||||
* @return boolean True on success
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
protected function remove($package)
|
|
||||||
{
|
|
||||||
jimport('joomla.filesystem.file');
|
|
||||||
|
|
||||||
$config = JFactory::getConfig();
|
|
||||||
$package = $config->get('tmp_path'). '/' .$package;
|
|
||||||
|
|
||||||
// Is the package file a valid file?
|
|
||||||
if (is_file($package))
|
|
||||||
{
|
|
||||||
JFile::delete($package);
|
|
||||||
}
|
|
||||||
elseif (is_file(JPath::clean($package)))
|
|
||||||
{
|
|
||||||
// It might also be just a base filename
|
|
||||||
JFile::delete(JPath::clean($package));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the data from the spreadsheet to the database
|
|
||||||
*
|
|
||||||
* @param string $package Paths to the uploaded package file
|
|
||||||
*
|
|
||||||
* @return boolean false on failure
|
|
||||||
*
|
|
||||||
**/
|
|
||||||
protected function setData($package,$table,$target_headers)
|
|
||||||
{
|
|
||||||
if (###Component###Helper::checkArray($target_headers))
|
|
||||||
{
|
|
||||||
// make sure the file is loaded
|
|
||||||
JLoader::import('PHPExcel', JPATH_COMPONENT_ADMINISTRATOR . '/helpers');
|
|
||||||
$jinput = JFactory::getApplication()->input;
|
|
||||||
foreach($target_headers as $header)
|
|
||||||
{
|
|
||||||
$data['target_headers'][$header] = $jinput->getString($header, null);
|
|
||||||
}
|
|
||||||
// set the data
|
|
||||||
if(isset($package['dir']))
|
|
||||||
{
|
|
||||||
$inputFileType = PHPExcel_IOFactory::identify($package['dir']);
|
|
||||||
$excelReader = PHPExcel_IOFactory::createReader($inputFileType);
|
|
||||||
$excelReader->setReadDataOnly(true);
|
|
||||||
$excelObj = $excelReader->load($package['dir']);
|
|
||||||
$data['array'] = $excelObj->getActiveSheet()->toArray(null, true,true,true);
|
|
||||||
$excelObj->disconnectWorksheets();
|
|
||||||
unset($excelObj);
|
|
||||||
return $this->save($data,$table);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Save the data from the file to the database
|
|
||||||
*
|
|
||||||
* @param string $package Paths to the uploaded package file
|
|
||||||
*
|
|
||||||
* @return boolean false on failure
|
|
||||||
*
|
|
||||||
**/
|
|
||||||
protected function save($data,$table)
|
|
||||||
{
|
|
||||||
// import the data if there is any
|
|
||||||
if(###Component###Helper::checkArray($data['array']))
|
|
||||||
{
|
|
||||||
// get user object
|
|
||||||
$user = JFactory::getUser();
|
|
||||||
// remove header if it has headers
|
|
||||||
$id_key = $data['target_headers']['id'];
|
|
||||||
$published_key = $data['target_headers']['published'];
|
|
||||||
$ordering_key = $data['target_headers']['ordering'];
|
|
||||||
// get the first array set
|
|
||||||
$firstSet = reset($data['array']);
|
|
||||||
|
|
||||||
// check if first array is a header array and remove if true
|
|
||||||
if($firstSet[$id_key] == 'id' || $firstSet[$published_key] == 'published' || $firstSet[$ordering_key] == 'ordering')
|
|
||||||
{
|
|
||||||
array_shift($data['array']);
|
|
||||||
}
|
|
||||||
|
|
||||||
// make sure there is still values in array and that it was not only headers
|
|
||||||
if(###Component###Helper::checkArray($data['array']) && $user->authorise($table.'.import', 'com_###component###') && $user->authorise('core.import', 'com_###component###'))
|
|
||||||
{
|
|
||||||
// set target.
|
|
||||||
$target = array_flip($data['target_headers']);
|
|
||||||
// Get a db connection.
|
|
||||||
$db = JFactory::getDbo();
|
|
||||||
// set some defaults
|
|
||||||
$todayDate = JFactory::getDate()->toSql();
|
|
||||||
// get global action permissions
|
|
||||||
$canDo = ###Component###Helper::getActions($table);
|
|
||||||
$canEdit = $canDo->get('core.edit');
|
|
||||||
$canState = $canDo->get('core.edit.state');
|
|
||||||
$canCreate = $canDo->get('core.create');
|
|
||||||
$hasAlias = $this->getAliasesUsed($table);
|
|
||||||
// prosses the data
|
|
||||||
foreach($data['array'] as $row)
|
|
||||||
{
|
|
||||||
$found = false;
|
|
||||||
if (isset($row[$id_key]) && is_numeric($row[$id_key]) && $row[$id_key] > 0)
|
|
||||||
{
|
|
||||||
// raw items import & update!
|
|
||||||
$query = $db->getQuery(true);
|
|
||||||
$query
|
|
||||||
->select('version')
|
|
||||||
->from($db->quoteName('#__###component###_'.$table))
|
|
||||||
->where($db->quoteName('id') . ' = '. $db->quote($row[$id_key]));
|
|
||||||
// Reset the query using our newly populated query object.
|
|
||||||
$db->setQuery($query);
|
|
||||||
$db->execute();
|
|
||||||
$found = $db->getNumRows();
|
|
||||||
}
|
|
||||||
|
|
||||||
if($found && $canEdit)
|
|
||||||
{
|
|
||||||
// update item
|
|
||||||
$id = $row[$id_key];
|
|
||||||
$version = $db->loadResult();
|
|
||||||
// reset all buckets
|
|
||||||
$query = $db->getQuery(true);
|
|
||||||
$fields = array();
|
|
||||||
$version = false;
|
|
||||||
// Fields to update.
|
|
||||||
foreach($row as $key => $cell)
|
|
||||||
{
|
|
||||||
// ignore column
|
|
||||||
if ('IGNORE' == $target[$key])
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
// update modified
|
|
||||||
if ('modified_by' == $target[$key])
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
// update modified
|
|
||||||
if ('modified' == $target[$key])
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
// update version
|
|
||||||
if ('version' == $target[$key])
|
|
||||||
{
|
|
||||||
$cell = (int) $version + 1;
|
|
||||||
$version = true;
|
|
||||||
}
|
|
||||||
// verify publish authority
|
|
||||||
if ('published' == $target[$key] && !$canState)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
// set to update array
|
|
||||||
if(in_array($key, $data['target_headers']) && is_numeric($cell))
|
|
||||||
{
|
|
||||||
$fields[] = $db->quoteName($target[$key]) . ' = ' . $cell;
|
|
||||||
}
|
|
||||||
elseif(in_array($key, $data['target_headers']) && is_string($cell))
|
|
||||||
{
|
|
||||||
$fields[] = $db->quoteName($target[$key]) . ' = ' . $db->quote($cell);
|
|
||||||
}
|
|
||||||
elseif(in_array($key, $data['target_headers']) && is_null($cell))
|
|
||||||
{
|
|
||||||
// if import data is null then set empty
|
|
||||||
$fields[] = $db->quoteName($target[$key]) . " = ''";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// load the defaults
|
|
||||||
$fields[] = $db->quoteName('modified_by') . ' = ' . $db->quote($user->id);
|
|
||||||
$fields[] = $db->quoteName('modified') . ' = ' . $db->quote($todayDate);
|
|
||||||
if (!$version)
|
|
||||||
{
|
|
||||||
$fields[] = $db->quoteName('version') . " = " . (int) $version + 1;
|
|
||||||
}
|
|
||||||
// Conditions for which records should be updated.
|
|
||||||
$conditions = array(
|
|
||||||
$db->quoteName('id') . ' = ' . $id
|
|
||||||
);
|
|
||||||
|
|
||||||
$query->update($db->quoteName('#__###component###_'.$table))->set($fields)->where($conditions);
|
|
||||||
$db->setQuery($query);
|
|
||||||
$db->execute();
|
|
||||||
}
|
|
||||||
elseif ($canCreate)
|
|
||||||
{
|
|
||||||
// insert item
|
|
||||||
$query = $db->getQuery(true);
|
|
||||||
// reset all buckets
|
|
||||||
$columns = array();
|
|
||||||
$values = array();
|
|
||||||
$version = false;
|
|
||||||
// Insert columns. Insert values.
|
|
||||||
foreach($row as $key => $cell)
|
|
||||||
{
|
|
||||||
// ignore column
|
|
||||||
if ('IGNORE' == $target[$key])
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
// remove id
|
|
||||||
if ('id' == $target[$key])
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
// update created
|
|
||||||
if ('created_by' == $target[$key])
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
// update created
|
|
||||||
if ('created' == $target[$key])
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
// Make sure the alias is incremented
|
|
||||||
if ('alias' == $target[$key])
|
|
||||||
{
|
|
||||||
$cell = $this->getAlias($cell,$table);
|
|
||||||
}
|
|
||||||
// update version
|
|
||||||
if ('version' == $target[$key])
|
|
||||||
{
|
|
||||||
$cell = 1;
|
|
||||||
$version = true;
|
|
||||||
}
|
|
||||||
// set to insert array
|
|
||||||
if(in_array($key, $data['target_headers']) && is_numeric($cell))
|
|
||||||
{
|
|
||||||
$columns[] = $target[$key];
|
|
||||||
$values[] = $cell;
|
|
||||||
}
|
|
||||||
elseif(in_array($key, $data['target_headers']) && is_string($cell))
|
|
||||||
{
|
|
||||||
$columns[] = $target[$key];
|
|
||||||
$values[] = $db->quote($cell);
|
|
||||||
}
|
|
||||||
elseif(in_array($key, $data['target_headers']) && is_null($cell))
|
|
||||||
{
|
|
||||||
// if import data is null then set empty
|
|
||||||
$columns[] = $target[$key];
|
|
||||||
$values[] = "''";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// load the defaults
|
|
||||||
$columns[] = 'created_by';
|
|
||||||
$values[] = $db->quote($user->id);
|
|
||||||
$columns[] = 'created';
|
|
||||||
$values[] = $db->quote($todayDate);
|
|
||||||
if (!$version)
|
|
||||||
{
|
|
||||||
$columns[] = 'version';
|
|
||||||
$values[] = 1;
|
|
||||||
}
|
|
||||||
// Prepare the insert query.
|
|
||||||
$query
|
|
||||||
->insert($db->quoteName('#__###component###_'.$table))
|
|
||||||
->columns($db->quoteName($columns))
|
|
||||||
->values(implode(',', $values));
|
|
||||||
// Set the query using our newly populated query object and execute it.
|
|
||||||
$db->setQuery($query);
|
|
||||||
$done = $db->execute();
|
|
||||||
if ($done)
|
|
||||||
{
|
|
||||||
$aId = $db->insertid();
|
|
||||||
// make sure the access of asset is set
|
|
||||||
###Component###Helper::setAsset($aId,$table);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function getAlias($name,$type = false)
|
|
||||||
{
|
|
||||||
// sanitize the name to an alias
|
|
||||||
if (JFactory::getConfig()->get('unicodeslugs') == 1)
|
|
||||||
{
|
|
||||||
$alias = JFilterOutput::stringURLUnicodeSlug($name);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$alias = JFilterOutput::stringURLSafe($name);
|
|
||||||
}
|
|
||||||
// must be a uniqe alias
|
|
||||||
if ($type)
|
|
||||||
{
|
|
||||||
return $this->getUniqe($alias,'alias',$type);
|
|
||||||
}
|
|
||||||
return $alias;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to generate a uniqe value.
|
|
||||||
*
|
|
||||||
* @param string $field name.
|
|
||||||
* @param string $value data.
|
|
||||||
* @param string $type table.
|
|
||||||
*
|
|
||||||
* @return string New value.
|
|
||||||
*/
|
|
||||||
protected function getUniqe($value,$field,$type)
|
|
||||||
{
|
|
||||||
// insure the filed is always uniqe
|
|
||||||
while (isset($this->uniqeValueArray[$type][$field][$value]))
|
|
||||||
{
|
|
||||||
$value = JString::increment($value, 'dash');
|
|
||||||
}
|
|
||||||
$this->uniqeValueArray[$type][$field][$value] = $value;
|
|
||||||
return $value;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function getAliasesUsed($table)
|
|
||||||
{
|
|
||||||
// Get a db connection.
|
|
||||||
$db = JFactory::getDbo();
|
|
||||||
// first we check if there is a alias column
|
|
||||||
$columns = $db->getTableColumns('#__###component###_'.$table);
|
|
||||||
if(isset($columns['alias'])){
|
|
||||||
// Create a new query object.
|
|
||||||
$query = $db->getQuery(true);
|
|
||||||
$query->select($db->quoteName(array('alias')));
|
|
||||||
$query->from($db->quoteName('#__###component###_'.$table));
|
|
||||||
$db->setQuery($query);
|
|
||||||
$db->execute();
|
|
||||||
if ($db->getNumRows())
|
|
||||||
{
|
|
||||||
$aliases = $db->loadColumn();
|
|
||||||
foreach($aliases as $alias)
|
|
||||||
{
|
|
||||||
$this->uniqeValueArray[$table]['alias'][$alias] = $alias;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,126 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
// import the Joomla modellist library
|
|
||||||
jimport('joomla.application.component.modellist');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ###Views### Model
|
|
||||||
*/
|
|
||||||
class ###Component###Model###Views### extends JModelList
|
|
||||||
{
|
|
||||||
public function __construct($config = array())
|
|
||||||
{
|
|
||||||
if (empty($config['filter_fields']))
|
|
||||||
{
|
|
||||||
$config['filter_fields'] = array(
|
|
||||||
###FILTER_FIELDS###
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
parent::__construct($config);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to auto-populate the model state.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
protected function populateState($ordering = null, $direction = null)
|
|
||||||
{
|
|
||||||
$app = JFactory::getApplication();
|
|
||||||
|
|
||||||
// Adjust the context to support modal layouts.
|
|
||||||
if ($layout = $app->input->get('layout'))
|
|
||||||
{
|
|
||||||
$this->context .= '.' . $layout;
|
|
||||||
}
|
|
||||||
###POPULATESTATE###
|
|
||||||
|
|
||||||
$sorting = $this->getUserStateFromRequest($this->context . '.filter.sorting', 'filter_sorting', 0, 'int');
|
|
||||||
$this->setState('filter.sorting', $sorting);
|
|
||||||
|
|
||||||
$access = $this->getUserStateFromRequest($this->context . '.filter.access', 'filter_access', 0, 'int');
|
|
||||||
$this->setState('filter.access', $access);
|
|
||||||
|
|
||||||
$search = $this->getUserStateFromRequest($this->context . '.filter.search', 'filter_search');
|
|
||||||
$this->setState('filter.search', $search);
|
|
||||||
|
|
||||||
$published = $this->getUserStateFromRequest($this->context . '.filter.published', 'filter_published', '');
|
|
||||||
$this->setState('filter.published', $published);
|
|
||||||
|
|
||||||
$created_by = $this->getUserStateFromRequest($this->context . '.filter.created_by', 'filter_created_by', '');
|
|
||||||
$this->setState('filter.created_by', $created_by);
|
|
||||||
|
|
||||||
$created = $this->getUserStateFromRequest($this->context . '.filter.created', 'filter_created');
|
|
||||||
$this->setState('filter.created', $created);
|
|
||||||
|
|
||||||
// List state information.
|
|
||||||
parent::populateState($ordering, $direction);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to get an array of data items.
|
|
||||||
*
|
|
||||||
* @return mixed An array of data items on success, false on failure.
|
|
||||||
*/
|
|
||||||
public function getItems()
|
|
||||||
{###LICENSE_LOCKED_CHECK### ###CHECKINCALL###
|
|
||||||
// load parent items
|
|
||||||
$items = parent::getItems();###GET_ITEMS_METHOD_STRING_FIX### ###SELECTIONTRANSLATIONFIX###
|
|
||||||
|
|
||||||
// return items
|
|
||||||
return $items;
|
|
||||||
}###SELECTIONTRANSLATIONFIXFUNC###
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to build an SQL query to load the list data.
|
|
||||||
*
|
|
||||||
* @return string An SQL query
|
|
||||||
*/
|
|
||||||
protected function getListQuery()
|
|
||||||
{###LICENSE_LOCKED_CHECK###
|
|
||||||
###LISTQUERY###
|
|
||||||
}###MODELEXPORTMETHOD### ###LICENSE_LOCKED_SET_BOOL###
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method to get a store id based on model configuration state.
|
|
||||||
*
|
|
||||||
* @return string A store id.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
protected function getStoreId($id = '')
|
|
||||||
{
|
|
||||||
###STOREDID###
|
|
||||||
|
|
||||||
return parent::getStoreId($id);
|
|
||||||
}###AUTOCHECKIN###
|
|
||||||
}
|
|
@ -1,48 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
jimport('joomla.application.component.helper');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ###Component### Ajax Model
|
|
||||||
*/
|
|
||||||
class ###Component###ModelAjax extends JModelList
|
|
||||||
{
|
|
||||||
protected $app_params;
|
|
||||||
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
parent::__construct();
|
|
||||||
// get params
|
|
||||||
$this->app_params = JComponentHelper::getParams('com_###component###');
|
|
||||||
|
|
||||||
}###AJAX_MODEL_METHODS###
|
|
||||||
}
|
|
@ -1,48 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
|
||||||
__ __ _ _____ _ _ __ __ _ _ _
|
|
||||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
|
||||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
|
||||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
|
||||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
|
||||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
|
||||||
| |
|
|
||||||
|_|
|
|
||||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
|
||||||
|
|
||||||
@package Component Builder
|
|
||||||
@subpackage componentbuilder.php
|
|
||||||
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
|
|
||||||
@my wife Roline van der Merwe <http://www.vdm.io/>
|
|
||||||
@copyright Copyright (C) 2015. All Rights Reserved
|
|
||||||
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
|
||||||
|
|
||||||
Builds Complex Joomla Components
|
|
||||||
|
|
||||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
?>
|
|
||||||
###BOM###
|
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
defined('_JEXEC') or die('Restricted access');
|
|
||||||
|
|
||||||
jimport('joomla.application.component.helper');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ###Component### Ajax Model
|
|
||||||
*/
|
|
||||||
class ###Component###ModelAjax extends JModelList
|
|
||||||
{
|
|
||||||
protected $app_params;
|
|
||||||
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
parent::__construct();
|
|
||||||
// get params
|
|
||||||
$this->app_params = JComponentHelper::getParams('com_###component###');
|
|
||||||
|
|
||||||
}###AJAX_SITE_MODEL_METHODS###
|
|
||||||
}
|
|