first commit
340
LICENSE.txt
Normal file
@ -0,0 +1,340 @@
|
|||||||
|
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.
|
83
admin/access.xml
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<access component="com_extensiondistributor">
|
||||||
|
<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.batch" title="COM_EXTENSIONDISTRIBUTOR_USE_BATCH" description="COM_EXTENSIONDISTRIBUTOR_USE_BATCH_DESC" />
|
||||||
|
<action name="core.version" title="COM_EXTENSIONDISTRIBUTOR_EDIT_VERSIONS" description="COM_EXTENSIONDISTRIBUTOR_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.value" title="JACTION_EDITVALUE" description="JACTION_EDITVALUE_COMPONENT_DESC" />
|
||||||
|
<action name="core.edit.created_by" title="COM_EXTENSIONDISTRIBUTOR_EDIT_CREATED_BY" description="COM_EXTENSIONDISTRIBUTOR_EDIT_CREATED_BY_DESC" />
|
||||||
|
<action name="core.edit.created" title="COM_EXTENSIONDISTRIBUTOR_EDIT_CREATED_DATE" description="COM_EXTENSIONDISTRIBUTOR_EDIT_CREATED_DATE_DESC" />
|
||||||
|
<action name="download.delete" title="COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_DELETE_BUTTON_ACCESS" description="COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_DELETE_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="download.batch" title="COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_BATCH_USE" description="COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_BATCH_USE_DESC" />
|
||||||
|
<action name="download.dashboard_list" title="COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_DASHBOARD_LIST" description="COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_DASHBOARD_LIST_DESC" />
|
||||||
|
<action name="download.submenu" title="COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_SUBMENU" description="COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_SUBMENU_DESC" />
|
||||||
|
<action name="extension.batch" title="COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_BATCH_USE" description="COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_BATCH_USE_DESC" />
|
||||||
|
<action name="extension.dashboard_list" title="COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_DASHBOARD_LIST" description="COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_DASHBOARD_LIST_DESC" />
|
||||||
|
<action name="extension.version" title="COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_EDIT_VERSION" description="COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_EDIT_VERSION_DESC" />
|
||||||
|
<action name="extension.submenu" title="COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_SUBMENU" description="COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_SUBMENU_DESC" />
|
||||||
|
<action name="import.access" title="COM_EXTENSIONDISTRIBUTOR_IMPORT_ACCESS" description="COM_EXTENSIONDISTRIBUTOR_IMPORT_ACCESS_DESC" />
|
||||||
|
<action name="import.dashboard_list" title="COM_EXTENSIONDISTRIBUTOR_IMPORT_DASHBOARD_LIST" description="COM_EXTENSIONDISTRIBUTOR_IMPORT_DASHBOARD_LIST_DESC" />
|
||||||
|
<action name="import.submenu" title="COM_EXTENSIONDISTRIBUTOR_IMPORT_SUBMENU" description="COM_EXTENSIONDISTRIBUTOR_IMPORT_SUBMENU_DESC" />
|
||||||
|
<action name="site.keys.access" title="COM_EXTENSIONDISTRIBUTOR_KEYS_ACCESS_SITE" description="COM_EXTENSIONDISTRIBUTOR_KEYS_ACCESS_SITE_DESC" />
|
||||||
|
<action name="key.batch" title="COM_EXTENSIONDISTRIBUTOR_KEYS_BATCH_USE" description="COM_EXTENSIONDISTRIBUTOR_KEYS_BATCH_USE_DESC" />
|
||||||
|
<action name="key.dashboard_list" title="COM_EXTENSIONDISTRIBUTOR_KEYS_DASHBOARD_LIST" description="COM_EXTENSIONDISTRIBUTOR_KEYS_DASHBOARD_LIST_DESC" />
|
||||||
|
<action name="key.version" title="COM_EXTENSIONDISTRIBUTOR_KEYS_EDIT_VERSION" description="COM_EXTENSIONDISTRIBUTOR_KEYS_EDIT_VERSION_DESC" />
|
||||||
|
<action name="key.submenu" title="COM_EXTENSIONDISTRIBUTOR_KEYS_SUBMENU" description="COM_EXTENSIONDISTRIBUTOR_KEYS_SUBMENU_DESC" />
|
||||||
|
<action name="maintenance.access" title="COM_EXTENSIONDISTRIBUTOR_MAINTENANCE_ACCESS" description="COM_EXTENSIONDISTRIBUTOR_MAINTENANCE_ACCESS_DESC" />
|
||||||
|
<action name="maintenance.dashboard_list" title="COM_EXTENSIONDISTRIBUTOR_MAINTENANCE_DASHBOARD_LIST" description="COM_EXTENSIONDISTRIBUTOR_MAINTENANCE_DASHBOARD_LIST_DESC" />
|
||||||
|
<action name="maintenance.submenu" title="COM_EXTENSIONDISTRIBUTOR_MAINTENANCE_SUBMENU" description="COM_EXTENSIONDISTRIBUTOR_MAINTENANCE_SUBMENU_DESC" />
|
||||||
|
<action name="package.access" title="COM_EXTENSIONDISTRIBUTOR_PACKAGES_ACCESS" description="COM_EXTENSIONDISTRIBUTOR_PACKAGES_ACCESS_DESC" />
|
||||||
|
<action name="package.batch" title="COM_EXTENSIONDISTRIBUTOR_PACKAGES_BATCH_USE" description="COM_EXTENSIONDISTRIBUTOR_PACKAGES_BATCH_USE_DESC" />
|
||||||
|
<action name="package.dashboard_list" title="COM_EXTENSIONDISTRIBUTOR_PACKAGES_DASHBOARD_LIST" description="COM_EXTENSIONDISTRIBUTOR_PACKAGES_DASHBOARD_LIST_DESC" />
|
||||||
|
<action name="package.version" title="COM_EXTENSIONDISTRIBUTOR_PACKAGES_EDIT_VERSION" description="COM_EXTENSIONDISTRIBUTOR_PACKAGES_EDIT_VERSION_DESC" />
|
||||||
|
<action name="package.submenu" title="COM_EXTENSIONDISTRIBUTOR_PACKAGES_SUBMENU" description="COM_EXTENSIONDISTRIBUTOR_PACKAGES_SUBMENU_DESC" />
|
||||||
|
<action name="release.batch" title="COM_EXTENSIONDISTRIBUTOR_RELEASES_BATCH_USE" description="COM_EXTENSIONDISTRIBUTOR_RELEASES_BATCH_USE_DESC" />
|
||||||
|
<action name="release.version" title="COM_EXTENSIONDISTRIBUTOR_RELEASES_EDIT_VERSION" description="COM_EXTENSIONDISTRIBUTOR_RELEASES_EDIT_VERSION_DESC" />
|
||||||
|
<action name="statistics.access" title="COM_EXTENSIONDISTRIBUTOR_STATISTICS_ACCESS" description="COM_EXTENSIONDISTRIBUTOR_STATISTICS_ACCESS_DESC" />
|
||||||
|
<action name="statistics.dashboard_list" title="COM_EXTENSIONDISTRIBUTOR_STATISTICS_DASHBOARD_LIST" description="COM_EXTENSIONDISTRIBUTOR_STATISTICS_DASHBOARD_LIST_DESC" />
|
||||||
|
<action name="statistics.submenu" title="COM_EXTENSIONDISTRIBUTOR_STATISTICS_SUBMENU" description="COM_EXTENSIONDISTRIBUTOR_STATISTICS_SUBMENU_DESC" />
|
||||||
|
<action name="subscription.batch" title="COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_BATCH_USE" description="COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_BATCH_USE_DESC" />
|
||||||
|
<action name="subscription.dashboard_list" title="COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_DASHBOARD_LIST" description="COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_DASHBOARD_LIST_DESC" />
|
||||||
|
<action name="subscription.submenu" title="COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_SUBMENU" description="COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_SUBMENU_DESC" />
|
||||||
|
</section>
|
||||||
|
<section name="package">
|
||||||
|
<action name="package.version" title="COM_EXTENSIONDISTRIBUTOR_PACKAGES_EDIT_VERSION" description="COM_EXTENSIONDISTRIBUTOR_PACKAGES_EDIT_VERSION_DESC" />
|
||||||
|
</section>
|
||||||
|
<section name="extension">
|
||||||
|
<action name="extension.version" title="COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_EDIT_VERSION" description="COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_EDIT_VERSION_DESC" />
|
||||||
|
</section>
|
||||||
|
<section name="release">
|
||||||
|
<action name="release.version" title="COM_EXTENSIONDISTRIBUTOR_RELEASES_EDIT_VERSION" description="COM_EXTENSIONDISTRIBUTOR_RELEASES_EDIT_VERSION_DESC" />
|
||||||
|
</section>
|
||||||
|
<section name="key">
|
||||||
|
<action name="key.version" title="COM_EXTENSIONDISTRIBUTOR_KEYS_EDIT_VERSION" description="COM_EXTENSIONDISTRIBUTOR_KEYS_EDIT_VERSION_DESC" />
|
||||||
|
</section>
|
||||||
|
<section name="fieldgroup">
|
||||||
|
<action name="core.create" title="JACTION_CREATE" description="COM_FIELDS_GROUP_PERMISSION_CREATE_DESC" />
|
||||||
|
<action name="core.delete" title="JACTION_DELETE" description="COM_FIELDS_GROUP_PERMISSION_DELETE_DESC" />
|
||||||
|
<action name="core.edit" title="JACTION_EDIT" description="COM_FIELDS_GROUP_PERMISSION_EDIT_DESC" />
|
||||||
|
<action name="core.edit.state" title="JACTION_EDITSTATE" description="COM_FIELDS_GROUP_PERMISSION_EDITSTATE_DESC" />
|
||||||
|
<action name="core.edit.own" title="JACTION_EDITOWN" description="COM_FIELDS_GROUP_PERMISSION_EDITOWN_DESC" />
|
||||||
|
<action name="core.edit.value" title="JACTION_EDITVALUE" description="COM_FIELDS_GROUP_PERMISSION_EDITVALUE_DESC" />
|
||||||
|
</section>
|
||||||
|
<section name="field">
|
||||||
|
<action name="core.delete" title="JACTION_DELETE" description="COM_FIELDS_FIELD_PERMISSION_DELETE_DESC" />
|
||||||
|
<action name="core.edit" title="JACTION_EDIT" description="COM_FIELDS_FIELD_PERMISSION_EDIT_DESC" />
|
||||||
|
<action name="core.edit.state" title="JACTION_EDITSTATE" description="COM_FIELDS_FIELD_PERMISSION_EDITSTATE_DESC" />
|
||||||
|
<action name="core.edit.value" title="JACTION_EDITVALUE" description="COM_FIELDS_FIELD_PERMISSION_EDITVALUE_DESC" />
|
||||||
|
</section>
|
||||||
|
<section name="category.extensions">
|
||||||
|
<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>
|
119
admin/assets/css/admin.css
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage admin.css
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* CSS Document */
|
||||||
|
.no-click {
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
.dashboard-content a {
|
||||||
|
min-height: 170px !important;
|
||||||
|
}
|
||||||
|
#dashboard_right #vdm img {
|
||||||
|
padding: 10px 10px 20px 0px !important;
|
||||||
|
}
|
||||||
|
#maintenance_accordian .accordion-heading,
|
||||||
|
#dashboard_left .accordion-heading,
|
||||||
|
#dashboard_right .accordion-heading {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
#maintenance_accordian .accordion-inner,
|
||||||
|
#dashboard_left .accordion-inner,
|
||||||
|
#dashboard_right .accordion-inner {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
.dashboard-content img {
|
||||||
|
width: 96px;
|
||||||
|
margin: 15px 0;
|
||||||
|
}
|
||||||
|
.love {
|
||||||
|
font-family: fantasy;
|
||||||
|
color: red;
|
||||||
|
display: inline-block;
|
||||||
|
position: relative;
|
||||||
|
top: .2em;
|
||||||
|
font-size: 1.4em;
|
||||||
|
-webkit-transform: scale(.9);
|
||||||
|
-moz-transform: scale(.9);
|
||||||
|
transform: scale(.9);
|
||||||
|
-webkit-animation: love .5s infinite linear alternate-reverse;
|
||||||
|
-moz-animation: love .5s infinite linear alternate-reverse;
|
||||||
|
animation: love .5s infinite linear alternate-reverse
|
||||||
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes love {
|
||||||
|
to {
|
||||||
|
-webkit-transform: scale(1.2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@-moz-keyframes love {
|
||||||
|
to {
|
||||||
|
-moz-transform: scale(1.2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes love {
|
||||||
|
to {
|
||||||
|
transform: scale(1.2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Margin */
|
||||||
|
.mt10 { margin-top: 10px !important; }
|
||||||
|
.mt20 { margin-top: 20px !important; }
|
||||||
|
.mt30 { margin-top: 30px !important; }
|
||||||
|
.mt40 { margin-top: 40px !important; }
|
||||||
|
.mt50 { margin-top: 50px !important; }
|
||||||
|
.mb10 { margin-bottom: 10px !important; }
|
||||||
|
.mb20 { margin-bottom: 20px !important; }
|
||||||
|
.mb30 { margin-bottom: 30px !important; }
|
||||||
|
.mb40 { margin-bottom: 40px !important; }
|
||||||
|
.mb50 { margin-bottom: 50px !important; }
|
||||||
|
.ml10 { margin-left: 10px !important; }
|
||||||
|
.ml20 { margin-left: 20px !important; }
|
||||||
|
.ml30 { margin-left: 30px !important; }
|
||||||
|
.ml40 { margin-left: 40px !important; }
|
||||||
|
.ml50 { margin-left: 50px !important; }
|
||||||
|
.mr10 { margin-right: 10px !important; }
|
||||||
|
.mr20 { margin-right: 20px !important; }
|
||||||
|
.mr30 { margin-right: 30px !important; }
|
||||||
|
.mr40 { margin-right: 40px !important; }
|
||||||
|
.mr50 { margin-right: 50px !important; }
|
||||||
|
/* Padding */
|
||||||
|
.pt10 { padding-top: 10px !important; }
|
||||||
|
.pt20 { padding-top: 20px !important; }
|
||||||
|
.pt30 { padding-top: 30px !important; }
|
||||||
|
.pt40 { padding-top: 40px !important; }
|
||||||
|
.pt50 { padding-top: 50px !important; }
|
||||||
|
.pb10 { padding-bottom: 10px !important; }
|
||||||
|
.pb20 { padding-bottom: 20px !important; }
|
||||||
|
.pb30 { padding-bottom: 30px !important; }
|
||||||
|
.pb40 { padding-bottom: 40px !important; }
|
||||||
|
.pb50 { padding-bottom: 50px !important; }
|
||||||
|
.pl10 { padding-left: 10px !important; }
|
||||||
|
.pl20 { padding-left: 20px !important; }
|
||||||
|
.pl30 { padding-left: 30px !important; }
|
||||||
|
.pl40 { padding-left: 40px !important; }
|
||||||
|
.pl50 { padding-left: 50px !important; }
|
||||||
|
.pr10 { padding-right: 10px !important; }
|
||||||
|
.pr20 { padding-right: 20px !important; }
|
||||||
|
.pr30 { padding-right: 30px !important; }
|
||||||
|
.pr40 { padding-right: 40px !important; }
|
||||||
|
.pr50 { padding-right: 50px !important; }
|
||||||
|
|
172
admin/assets/css/dashboard.css
Normal file
@ -0,0 +1,172 @@
|
|||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage dashboard.css
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* 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;
|
||||||
|
}
|
22
admin/assets/css/download.css
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage download.css
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* CSS Document */
|
||||||
|
|
||||||
|
|
22
admin/assets/css/downloads.css
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage downloads.css
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* CSS Document */
|
||||||
|
|
||||||
|
|
487
admin/assets/css/extension.css
Normal file
@ -0,0 +1,487 @@
|
|||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage extension.css
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* CSS Document */
|
||||||
|
|
||||||
|
|
||||||
|
.footable-filtering {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.footable .caret {
|
||||||
|
vertical-align: top !important;
|
||||||
|
margin-left : 0 !important;
|
||||||
|
}
|
||||||
|
table td {
|
||||||
|
vertical-align: middle !important;
|
||||||
|
}
|
||||||
|
.footable .label {
|
||||||
|
vertical-align: text-top !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Specific for the sub-view because of footable */
|
||||||
|
.agxbtn {
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
*zoom: 1;
|
||||||
|
padding: 4px 12px;
|
||||||
|
margin-bottom: 0;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 18px;
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: middle;
|
||||||
|
cursor: pointer;
|
||||||
|
background-color: #f3f3f3;
|
||||||
|
color: #333;
|
||||||
|
border: 1px solid #b3b3b3;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
box-shadow: 0 1px 2px rgba(0,0,0,0.05);
|
||||||
|
}
|
||||||
|
.agxbtn:hover,
|
||||||
|
.agxbtn:focus {
|
||||||
|
background-color: #e6e6e6;
|
||||||
|
text-decoration: none;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
.agxbtn:focus {
|
||||||
|
outline: thin dotted #333;
|
||||||
|
outline: 5px auto -webkit-focus-ring-color;
|
||||||
|
outline-offset: -2px;
|
||||||
|
}
|
||||||
|
.agxbtn.active,
|
||||||
|
.agxbtn:active {
|
||||||
|
background-image: none;
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
.agxbtn.disabled,
|
||||||
|
.agxbtn[disabled] {
|
||||||
|
cursor: default;
|
||||||
|
background-image: none;
|
||||||
|
opacity: 0.65;
|
||||||
|
filter: alpha(opacity=65);
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
-moz-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.agxbtn-large {
|
||||||
|
padding: 11px 19px;
|
||||||
|
font-size: 16.25px;
|
||||||
|
-webkit-border-radius: 6px;
|
||||||
|
-moz-border-radius: 6px;
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
.agxbtn-large [class^="icon-"],
|
||||||
|
.agxbtn-large [class*=" icon-"] {
|
||||||
|
margin-top: 4px;
|
||||||
|
}
|
||||||
|
.agxbtn-small {
|
||||||
|
padding: 2px 10px;
|
||||||
|
font-size: 12px;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
.agxbtn-small [class^="icon-"],
|
||||||
|
.agxbtn-small [class*=" icon-"] {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
.agxbtn-mini [class^="icon-"],
|
||||||
|
.agxbtn-mini [class*=" icon-"] {
|
||||||
|
margin-top: -1px;
|
||||||
|
}
|
||||||
|
.agxbtn-mini {
|
||||||
|
padding: 0 6px;
|
||||||
|
font-size: 9.75px;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
.agxbtn-block {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
padding-left: 0;
|
||||||
|
padding-right: 0;
|
||||||
|
-webkit-box-sizing: border-box;
|
||||||
|
-moz-box-sizing: border-box;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
.agxbtn-block + .agxbtn-block {
|
||||||
|
margin-top: 5px;
|
||||||
|
}
|
||||||
|
input[type="submit"].agxbtn-block,
|
||||||
|
input[type="reset"].agxbtn-block,
|
||||||
|
input[type="button"].agxbtn-block {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.agxbtn-primary,
|
||||||
|
.agxbtn-warning,
|
||||||
|
.agxbtn-danger,
|
||||||
|
.agxbtn-success,
|
||||||
|
.agxbtn-info,
|
||||||
|
.agxbtn-inverse {
|
||||||
|
box-shadow: 0 1px 2px rgba(0,0,0,0.05);
|
||||||
|
}
|
||||||
|
.agxbtn-primary {
|
||||||
|
border: 1px solid #15497c;
|
||||||
|
border: 1px solid rgba(0,0,0,0.2);
|
||||||
|
color: #fff;
|
||||||
|
background-color: #2384d3;
|
||||||
|
}
|
||||||
|
.agxbtn-primary:hover,
|
||||||
|
.agxbtn-primary:focus {
|
||||||
|
background-color: #185b91;
|
||||||
|
color: #fff;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.agxbtn-warning {
|
||||||
|
border: 1px solid #f89406;
|
||||||
|
border: 1px solid rgba(0,0,0,0.2);
|
||||||
|
color: #fff;
|
||||||
|
background-color: #f89406;
|
||||||
|
}
|
||||||
|
.agxbtn-warning:hover,
|
||||||
|
.agxbtn-warning:focus {
|
||||||
|
background-color: #ad6704;
|
||||||
|
color: #fff;
|
||||||
|
text-decoration: none;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
.agxbtn-danger {
|
||||||
|
border: 1px solid #bd362f;
|
||||||
|
border: 1px solid rgba(0,0,0,0.2);
|
||||||
|
color: #fff;
|
||||||
|
background-color: #bd362f;
|
||||||
|
}
|
||||||
|
.agxbtn-danger:hover,
|
||||||
|
.agxbtn-danger:focus {
|
||||||
|
background-color: #802420;
|
||||||
|
color: #fff;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.agxbtn-success {
|
||||||
|
border: 1px solid #378137;
|
||||||
|
border: 1px solid rgba(0,0,0,0.2);
|
||||||
|
color: #fff;
|
||||||
|
background-color: #46a546;
|
||||||
|
}
|
||||||
|
.agxbtn-success:hover,
|
||||||
|
.agxbtn-success:focus {
|
||||||
|
background-color: #2f6f2f;
|
||||||
|
color: #fff;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.agxbtn-info {
|
||||||
|
border: 1px solid #2f96b4;
|
||||||
|
border: 1px solid rgba(0,0,0,0.2);
|
||||||
|
color: #fff;
|
||||||
|
background-color: #2f96b4;
|
||||||
|
}
|
||||||
|
.agxbtn-info:hover,
|
||||||
|
.agxbtn-info:focus {
|
||||||
|
background-color: #1f6377;
|
||||||
|
color: #fff;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.agxbtn-inverse {
|
||||||
|
border: 1px solid #444;
|
||||||
|
border: 1px solid rgba(0,0,0,0.2);
|
||||||
|
color: #fff;
|
||||||
|
background-color: #444;
|
||||||
|
}
|
||||||
|
.agxbtn-inverse:hover,
|
||||||
|
.agxbtn-inverse:focus {
|
||||||
|
background-color: #1e1e1e;
|
||||||
|
color: #fff;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
button.agxbtn,
|
||||||
|
input[type="submit"].agxbtn {
|
||||||
|
*padding-top: 3px;
|
||||||
|
*padding-bottom: 3px;
|
||||||
|
}
|
||||||
|
button.agxbtn::-moz-focus-inner,
|
||||||
|
input[type="submit"].agxbtn::-moz-focus-inner {
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
button.agxbtn.agxbtn-large,
|
||||||
|
input[type="submit"].agxbtn.agxbtn-large {
|
||||||
|
*padding-top: 7px;
|
||||||
|
*padding-bottom: 7px;
|
||||||
|
}
|
||||||
|
button.agxbtn.agxbtn-small,
|
||||||
|
input[type="submit"].agxbtn.agxbtn-small {
|
||||||
|
*padding-top: 3px;
|
||||||
|
*padding-bottom: 3px;
|
||||||
|
}
|
||||||
|
button.agxbtn.agxbtn-mini,
|
||||||
|
input[type="submit"].agxbtn.agxbtn-mini {
|
||||||
|
*padding-top: 1px;
|
||||||
|
*padding-bottom: 1px;
|
||||||
|
}
|
||||||
|
.agxbtn-link,
|
||||||
|
.agxbtn-link:active,
|
||||||
|
.agxbtn-link[disabled] {
|
||||||
|
background-color: transparent;
|
||||||
|
background-image: none;
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
-moz-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.agxbtn-link {
|
||||||
|
border-color: transparent;
|
||||||
|
cursor: pointer;
|
||||||
|
color: #3071a9;
|
||||||
|
-webkit-border-radius: 0;
|
||||||
|
-moz-border-radius: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
.agxbtn-link:hover,
|
||||||
|
.agxbtn-link:focus {
|
||||||
|
color: #1f496e;
|
||||||
|
text-decoration: underline;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
.agxbtn-link[disabled]:hover,
|
||||||
|
.agxbtn-link[disabled]:focus {
|
||||||
|
color: #333;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.agxbtn-group {
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
*zoom: 1;
|
||||||
|
font-size: 0;
|
||||||
|
vertical-align: middle;
|
||||||
|
white-space: nowrap;
|
||||||
|
*margin-left: .3em;
|
||||||
|
}
|
||||||
|
.agxbtn-group:first-child {
|
||||||
|
*margin-left: 0;
|
||||||
|
}
|
||||||
|
.agxbtn-group .agxbtn + .agxbtn {
|
||||||
|
margin-left: -1px;
|
||||||
|
}
|
||||||
|
.agxbtn-group + .agxbtn-group {
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
.agxbtn-toolbar {
|
||||||
|
font-size: 0;
|
||||||
|
margin-top: 9px;
|
||||||
|
margin-bottom: 9px;
|
||||||
|
}
|
||||||
|
.agxbtn-toolbar > .agxbtn + .agxbtn,
|
||||||
|
.agxbtn-toolbar > .agxbtn-group + .agxbtn,
|
||||||
|
.agxbtn-toolbar > .agxbtn + .agxbtn-group {
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn {
|
||||||
|
position: relative;
|
||||||
|
-webkit-border-radius: 0;
|
||||||
|
-moz-border-radius: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn-micro {
|
||||||
|
margin-left: -1px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn,
|
||||||
|
.agxbtn-group > .dropdown-menu,
|
||||||
|
.agxbtn-group > .popover {
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn-mini {
|
||||||
|
font-size: 9.75px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn-small {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn-large {
|
||||||
|
font-size: 16.25px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn:first-child {
|
||||||
|
margin-left: 0;
|
||||||
|
-webkit-border-top-left-radius: 3px;
|
||||||
|
-moz-border-radius-topleft: 3px;
|
||||||
|
border-top-left-radius: 3px;
|
||||||
|
-webkit-border-bottom-left-radius: 3px;
|
||||||
|
-moz-border-radius-bottomleft: 3px;
|
||||||
|
border-bottom-left-radius: 3px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn:last-child,
|
||||||
|
.agxbtn-group > .dropdown-toggle {
|
||||||
|
-webkit-border-top-right-radius: 3px;
|
||||||
|
-moz-border-radius-topright: 3px;
|
||||||
|
border-top-right-radius: 3px;
|
||||||
|
-webkit-border-bottom-right-radius: 3px;
|
||||||
|
-moz-border-radius-bottomright: 3px;
|
||||||
|
border-bottom-right-radius: 3px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn.large:first-child {
|
||||||
|
margin-left: 0;
|
||||||
|
-webkit-border-top-left-radius: 6px;
|
||||||
|
-moz-border-radius-topleft: 6px;
|
||||||
|
border-top-left-radius: 6px;
|
||||||
|
-webkit-border-bottom-left-radius: 6px;
|
||||||
|
-moz-border-radius-bottomleft: 6px;
|
||||||
|
border-bottom-left-radius: 6px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn.large:last-child,
|
||||||
|
.agxbtn-group > .large.dropdown-toggle {
|
||||||
|
-webkit-border-top-right-radius: 6px;
|
||||||
|
-moz-border-radius-topright: 6px;
|
||||||
|
border-top-right-radius: 6px;
|
||||||
|
-webkit-border-bottom-right-radius: 6px;
|
||||||
|
-moz-border-radius-bottomright: 6px;
|
||||||
|
border-bottom-right-radius: 6px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn:hover,
|
||||||
|
.agxbtn-group > .agxbtn:focus,
|
||||||
|
.agxbtn-group > .agxbtn:active,
|
||||||
|
.agxbtn-group > .agxbtn.active {
|
||||||
|
z-index: 2;
|
||||||
|
}
|
||||||
|
.agxbtn-group .dropdown-toggle:active,
|
||||||
|
.agxbtn-group.open .dropdown-toggle {
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn + .dropdown-toggle {
|
||||||
|
padding-left: 8px;
|
||||||
|
padding-right: 8px;
|
||||||
|
*padding-top: 5px;
|
||||||
|
*padding-bottom: 5px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn-mini + .dropdown-toggle {
|
||||||
|
padding-left: 5px;
|
||||||
|
padding-right: 5px;
|
||||||
|
*padding-top: 2px;
|
||||||
|
*padding-bottom: 2px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn-small + .dropdown-toggle {
|
||||||
|
*padding-top: 5px;
|
||||||
|
*padding-bottom: 4px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn-large + .dropdown-toggle {
|
||||||
|
padding-left: 12px;
|
||||||
|
padding-right: 12px;
|
||||||
|
*padding-top: 7px;
|
||||||
|
*padding-bottom: 7px;
|
||||||
|
}
|
||||||
|
.agxbtn-group.open .dropdown-toggle {
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.agxbtn-group.open .agxbtn.dropdown-toggle {
|
||||||
|
background-color: #e6e6e6;
|
||||||
|
}
|
||||||
|
.agxbtn-group.open .agxbtn-primary.dropdown-toggle {
|
||||||
|
background-color: #15497c;
|
||||||
|
}
|
||||||
|
.agxbtn-group.open .agxbtn-warning.dropdown-toggle {
|
||||||
|
background-color: #c67605;
|
||||||
|
}
|
||||||
|
.agxbtn-group.open .agxbtn-danger.dropdown-toggle {
|
||||||
|
background-color: #942a25;
|
||||||
|
}
|
||||||
|
.agxbtn-group.open .agxbtn-success.dropdown-toggle {
|
||||||
|
background-color: #378137;
|
||||||
|
}
|
||||||
|
.agxbtn-group.open .agxbtn-info.dropdown-toggle {
|
||||||
|
background-color: #24748c;
|
||||||
|
}
|
||||||
|
.agxbtn-group.open .agxbtn-inverse.dropdown-toggle {
|
||||||
|
background-color: #222;
|
||||||
|
}
|
||||||
|
.agxbtn .caret {
|
||||||
|
margin-top: 8px;
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
.agxbtn-large .caret {
|
||||||
|
margin-top: 6px;
|
||||||
|
}
|
||||||
|
.agxbtn-large .caret {
|
||||||
|
border-left-width: 5px;
|
||||||
|
border-right-width: 5px;
|
||||||
|
border-top-width: 5px;
|
||||||
|
}
|
||||||
|
.agxbtn-mini .caret,
|
||||||
|
.agxbtn-small .caret {
|
||||||
|
margin-top: 8px;
|
||||||
|
}
|
||||||
|
.dropup .agxbtn-large .caret {
|
||||||
|
border-bottom-width: 5px;
|
||||||
|
}
|
||||||
|
.agxbtn-primary .caret {
|
||||||
|
border-top-color: #1f496e;
|
||||||
|
border-bottom-color: #1f496e;
|
||||||
|
}
|
||||||
|
.agxbtn-warning .caret,
|
||||||
|
.agxbtn-danger .caret,
|
||||||
|
.agxbtn-info .caret,
|
||||||
|
.agxbtn-success .caret,
|
||||||
|
.agxbtn-inverse .caret {
|
||||||
|
border-top-color: #fff;
|
||||||
|
border-bottom-color: #fff;
|
||||||
|
}
|
||||||
|
.agxbtn-group-vertical {
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
*zoom: 1;
|
||||||
|
}
|
||||||
|
.agxbtn-group-vertical > .agxbtn {
|
||||||
|
display: block;
|
||||||
|
float: none;
|
||||||
|
max-width: 100%;
|
||||||
|
-webkit-border-radius: 0;
|
||||||
|
-moz-border-radius: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
.agxbtn-group-vertical > .agxbtn + .agxbtn {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-top: -1px;
|
||||||
|
}
|
||||||
|
.agxbtn-group-vertical > .agxbtn:first-child {
|
||||||
|
-webkit-border-radius: 3px 3px 0 0;
|
||||||
|
-moz-border-radius: 3px 3px 0 0;
|
||||||
|
border-radius: 3px 3px 0 0;
|
||||||
|
}
|
||||||
|
.agxbtn-group-vertical > .agxbtn:last-child {
|
||||||
|
-webkit-border-radius: 0 0 3px 3px;
|
||||||
|
-moz-border-radius: 0 0 3px 3px;
|
||||||
|
border-radius: 0 0 3px 3px;
|
||||||
|
}
|
||||||
|
.agxbtn-group-vertical > .agxbtn-large:first-child {
|
||||||
|
-webkit-border-radius: 6px 6px 0 0;
|
||||||
|
-moz-border-radius: 6px 6px 0 0;
|
||||||
|
border-radius: 6px 6px 0 0;
|
||||||
|
}
|
||||||
|
.agxbtn-group-vertical > .agxbtn-large:last-child {
|
||||||
|
-webkit-border-radius: 0 0 6px 6px;
|
||||||
|
-moz-border-radius: 0 0 6px 6px;
|
||||||
|
border-radius: 0 0 6px 6px;
|
||||||
|
}
|
||||||
|
.agxbtn-micro {
|
||||||
|
padding: 1px 4px;
|
||||||
|
font-size: 10px;
|
||||||
|
line-height: 8px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn-micro {
|
||||||
|
font-size: 10px;
|
||||||
|
}
|
||||||
|
|
26
admin/assets/css/extensions.css
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage extensions.css
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* CSS Document */
|
||||||
|
|
||||||
|
|
||||||
|
.table td {
|
||||||
|
vertical-align: middle !important;
|
||||||
|
}
|
||||||
|
|
22
admin/assets/css/import.css
vendored
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage import.css
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* CSS Document */
|
||||||
|
|
||||||
|
|
1
admin/assets/css/index.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<html><body bgcolor="#FFFFFF"></body></html>
|
23
admin/assets/css/key.css
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage key.css
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* CSS Document */
|
||||||
|
|
||||||
|
|
||||||
|
.icon-save::before { color: #FFF !important; }
|
22
admin/assets/css/keys.css
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage keys.css
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* CSS Document */
|
||||||
|
|
||||||
|
|
22
admin/assets/css/maintenance.css
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage maintenance.css
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* CSS Document */
|
||||||
|
|
||||||
|
|
487
admin/assets/css/package.css
Normal file
@ -0,0 +1,487 @@
|
|||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage package.css
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* CSS Document */
|
||||||
|
|
||||||
|
|
||||||
|
.footable-filtering {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.footable .caret {
|
||||||
|
vertical-align: top !important;
|
||||||
|
margin-left : 0 !important;
|
||||||
|
}
|
||||||
|
table td {
|
||||||
|
vertical-align: middle !important;
|
||||||
|
}
|
||||||
|
.footable .label {
|
||||||
|
vertical-align: text-top !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Specific for the sub-view because of footable */
|
||||||
|
.agxbtn {
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
*zoom: 1;
|
||||||
|
padding: 4px 12px;
|
||||||
|
margin-bottom: 0;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 18px;
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: middle;
|
||||||
|
cursor: pointer;
|
||||||
|
background-color: #f3f3f3;
|
||||||
|
color: #333;
|
||||||
|
border: 1px solid #b3b3b3;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
box-shadow: 0 1px 2px rgba(0,0,0,0.05);
|
||||||
|
}
|
||||||
|
.agxbtn:hover,
|
||||||
|
.agxbtn:focus {
|
||||||
|
background-color: #e6e6e6;
|
||||||
|
text-decoration: none;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
.agxbtn:focus {
|
||||||
|
outline: thin dotted #333;
|
||||||
|
outline: 5px auto -webkit-focus-ring-color;
|
||||||
|
outline-offset: -2px;
|
||||||
|
}
|
||||||
|
.agxbtn.active,
|
||||||
|
.agxbtn:active {
|
||||||
|
background-image: none;
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
.agxbtn.disabled,
|
||||||
|
.agxbtn[disabled] {
|
||||||
|
cursor: default;
|
||||||
|
background-image: none;
|
||||||
|
opacity: 0.65;
|
||||||
|
filter: alpha(opacity=65);
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
-moz-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.agxbtn-large {
|
||||||
|
padding: 11px 19px;
|
||||||
|
font-size: 16.25px;
|
||||||
|
-webkit-border-radius: 6px;
|
||||||
|
-moz-border-radius: 6px;
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
.agxbtn-large [class^="icon-"],
|
||||||
|
.agxbtn-large [class*=" icon-"] {
|
||||||
|
margin-top: 4px;
|
||||||
|
}
|
||||||
|
.agxbtn-small {
|
||||||
|
padding: 2px 10px;
|
||||||
|
font-size: 12px;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
.agxbtn-small [class^="icon-"],
|
||||||
|
.agxbtn-small [class*=" icon-"] {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
.agxbtn-mini [class^="icon-"],
|
||||||
|
.agxbtn-mini [class*=" icon-"] {
|
||||||
|
margin-top: -1px;
|
||||||
|
}
|
||||||
|
.agxbtn-mini {
|
||||||
|
padding: 0 6px;
|
||||||
|
font-size: 9.75px;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
.agxbtn-block {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
padding-left: 0;
|
||||||
|
padding-right: 0;
|
||||||
|
-webkit-box-sizing: border-box;
|
||||||
|
-moz-box-sizing: border-box;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
.agxbtn-block + .agxbtn-block {
|
||||||
|
margin-top: 5px;
|
||||||
|
}
|
||||||
|
input[type="submit"].agxbtn-block,
|
||||||
|
input[type="reset"].agxbtn-block,
|
||||||
|
input[type="button"].agxbtn-block {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.agxbtn-primary,
|
||||||
|
.agxbtn-warning,
|
||||||
|
.agxbtn-danger,
|
||||||
|
.agxbtn-success,
|
||||||
|
.agxbtn-info,
|
||||||
|
.agxbtn-inverse {
|
||||||
|
box-shadow: 0 1px 2px rgba(0,0,0,0.05);
|
||||||
|
}
|
||||||
|
.agxbtn-primary {
|
||||||
|
border: 1px solid #15497c;
|
||||||
|
border: 1px solid rgba(0,0,0,0.2);
|
||||||
|
color: #fff;
|
||||||
|
background-color: #2384d3;
|
||||||
|
}
|
||||||
|
.agxbtn-primary:hover,
|
||||||
|
.agxbtn-primary:focus {
|
||||||
|
background-color: #185b91;
|
||||||
|
color: #fff;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.agxbtn-warning {
|
||||||
|
border: 1px solid #f89406;
|
||||||
|
border: 1px solid rgba(0,0,0,0.2);
|
||||||
|
color: #fff;
|
||||||
|
background-color: #f89406;
|
||||||
|
}
|
||||||
|
.agxbtn-warning:hover,
|
||||||
|
.agxbtn-warning:focus {
|
||||||
|
background-color: #ad6704;
|
||||||
|
color: #fff;
|
||||||
|
text-decoration: none;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
.agxbtn-danger {
|
||||||
|
border: 1px solid #bd362f;
|
||||||
|
border: 1px solid rgba(0,0,0,0.2);
|
||||||
|
color: #fff;
|
||||||
|
background-color: #bd362f;
|
||||||
|
}
|
||||||
|
.agxbtn-danger:hover,
|
||||||
|
.agxbtn-danger:focus {
|
||||||
|
background-color: #802420;
|
||||||
|
color: #fff;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.agxbtn-success {
|
||||||
|
border: 1px solid #378137;
|
||||||
|
border: 1px solid rgba(0,0,0,0.2);
|
||||||
|
color: #fff;
|
||||||
|
background-color: #46a546;
|
||||||
|
}
|
||||||
|
.agxbtn-success:hover,
|
||||||
|
.agxbtn-success:focus {
|
||||||
|
background-color: #2f6f2f;
|
||||||
|
color: #fff;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.agxbtn-info {
|
||||||
|
border: 1px solid #2f96b4;
|
||||||
|
border: 1px solid rgba(0,0,0,0.2);
|
||||||
|
color: #fff;
|
||||||
|
background-color: #2f96b4;
|
||||||
|
}
|
||||||
|
.agxbtn-info:hover,
|
||||||
|
.agxbtn-info:focus {
|
||||||
|
background-color: #1f6377;
|
||||||
|
color: #fff;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.agxbtn-inverse {
|
||||||
|
border: 1px solid #444;
|
||||||
|
border: 1px solid rgba(0,0,0,0.2);
|
||||||
|
color: #fff;
|
||||||
|
background-color: #444;
|
||||||
|
}
|
||||||
|
.agxbtn-inverse:hover,
|
||||||
|
.agxbtn-inverse:focus {
|
||||||
|
background-color: #1e1e1e;
|
||||||
|
color: #fff;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
button.agxbtn,
|
||||||
|
input[type="submit"].agxbtn {
|
||||||
|
*padding-top: 3px;
|
||||||
|
*padding-bottom: 3px;
|
||||||
|
}
|
||||||
|
button.agxbtn::-moz-focus-inner,
|
||||||
|
input[type="submit"].agxbtn::-moz-focus-inner {
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
button.agxbtn.agxbtn-large,
|
||||||
|
input[type="submit"].agxbtn.agxbtn-large {
|
||||||
|
*padding-top: 7px;
|
||||||
|
*padding-bottom: 7px;
|
||||||
|
}
|
||||||
|
button.agxbtn.agxbtn-small,
|
||||||
|
input[type="submit"].agxbtn.agxbtn-small {
|
||||||
|
*padding-top: 3px;
|
||||||
|
*padding-bottom: 3px;
|
||||||
|
}
|
||||||
|
button.agxbtn.agxbtn-mini,
|
||||||
|
input[type="submit"].agxbtn.agxbtn-mini {
|
||||||
|
*padding-top: 1px;
|
||||||
|
*padding-bottom: 1px;
|
||||||
|
}
|
||||||
|
.agxbtn-link,
|
||||||
|
.agxbtn-link:active,
|
||||||
|
.agxbtn-link[disabled] {
|
||||||
|
background-color: transparent;
|
||||||
|
background-image: none;
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
-moz-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.agxbtn-link {
|
||||||
|
border-color: transparent;
|
||||||
|
cursor: pointer;
|
||||||
|
color: #3071a9;
|
||||||
|
-webkit-border-radius: 0;
|
||||||
|
-moz-border-radius: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
.agxbtn-link:hover,
|
||||||
|
.agxbtn-link:focus {
|
||||||
|
color: #1f496e;
|
||||||
|
text-decoration: underline;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
.agxbtn-link[disabled]:hover,
|
||||||
|
.agxbtn-link[disabled]:focus {
|
||||||
|
color: #333;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.agxbtn-group {
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
*zoom: 1;
|
||||||
|
font-size: 0;
|
||||||
|
vertical-align: middle;
|
||||||
|
white-space: nowrap;
|
||||||
|
*margin-left: .3em;
|
||||||
|
}
|
||||||
|
.agxbtn-group:first-child {
|
||||||
|
*margin-left: 0;
|
||||||
|
}
|
||||||
|
.agxbtn-group .agxbtn + .agxbtn {
|
||||||
|
margin-left: -1px;
|
||||||
|
}
|
||||||
|
.agxbtn-group + .agxbtn-group {
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
.agxbtn-toolbar {
|
||||||
|
font-size: 0;
|
||||||
|
margin-top: 9px;
|
||||||
|
margin-bottom: 9px;
|
||||||
|
}
|
||||||
|
.agxbtn-toolbar > .agxbtn + .agxbtn,
|
||||||
|
.agxbtn-toolbar > .agxbtn-group + .agxbtn,
|
||||||
|
.agxbtn-toolbar > .agxbtn + .agxbtn-group {
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn {
|
||||||
|
position: relative;
|
||||||
|
-webkit-border-radius: 0;
|
||||||
|
-moz-border-radius: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn-micro {
|
||||||
|
margin-left: -1px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn,
|
||||||
|
.agxbtn-group > .dropdown-menu,
|
||||||
|
.agxbtn-group > .popover {
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn-mini {
|
||||||
|
font-size: 9.75px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn-small {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn-large {
|
||||||
|
font-size: 16.25px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn:first-child {
|
||||||
|
margin-left: 0;
|
||||||
|
-webkit-border-top-left-radius: 3px;
|
||||||
|
-moz-border-radius-topleft: 3px;
|
||||||
|
border-top-left-radius: 3px;
|
||||||
|
-webkit-border-bottom-left-radius: 3px;
|
||||||
|
-moz-border-radius-bottomleft: 3px;
|
||||||
|
border-bottom-left-radius: 3px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn:last-child,
|
||||||
|
.agxbtn-group > .dropdown-toggle {
|
||||||
|
-webkit-border-top-right-radius: 3px;
|
||||||
|
-moz-border-radius-topright: 3px;
|
||||||
|
border-top-right-radius: 3px;
|
||||||
|
-webkit-border-bottom-right-radius: 3px;
|
||||||
|
-moz-border-radius-bottomright: 3px;
|
||||||
|
border-bottom-right-radius: 3px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn.large:first-child {
|
||||||
|
margin-left: 0;
|
||||||
|
-webkit-border-top-left-radius: 6px;
|
||||||
|
-moz-border-radius-topleft: 6px;
|
||||||
|
border-top-left-radius: 6px;
|
||||||
|
-webkit-border-bottom-left-radius: 6px;
|
||||||
|
-moz-border-radius-bottomleft: 6px;
|
||||||
|
border-bottom-left-radius: 6px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn.large:last-child,
|
||||||
|
.agxbtn-group > .large.dropdown-toggle {
|
||||||
|
-webkit-border-top-right-radius: 6px;
|
||||||
|
-moz-border-radius-topright: 6px;
|
||||||
|
border-top-right-radius: 6px;
|
||||||
|
-webkit-border-bottom-right-radius: 6px;
|
||||||
|
-moz-border-radius-bottomright: 6px;
|
||||||
|
border-bottom-right-radius: 6px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn:hover,
|
||||||
|
.agxbtn-group > .agxbtn:focus,
|
||||||
|
.agxbtn-group > .agxbtn:active,
|
||||||
|
.agxbtn-group > .agxbtn.active {
|
||||||
|
z-index: 2;
|
||||||
|
}
|
||||||
|
.agxbtn-group .dropdown-toggle:active,
|
||||||
|
.agxbtn-group.open .dropdown-toggle {
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn + .dropdown-toggle {
|
||||||
|
padding-left: 8px;
|
||||||
|
padding-right: 8px;
|
||||||
|
*padding-top: 5px;
|
||||||
|
*padding-bottom: 5px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn-mini + .dropdown-toggle {
|
||||||
|
padding-left: 5px;
|
||||||
|
padding-right: 5px;
|
||||||
|
*padding-top: 2px;
|
||||||
|
*padding-bottom: 2px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn-small + .dropdown-toggle {
|
||||||
|
*padding-top: 5px;
|
||||||
|
*padding-bottom: 4px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn-large + .dropdown-toggle {
|
||||||
|
padding-left: 12px;
|
||||||
|
padding-right: 12px;
|
||||||
|
*padding-top: 7px;
|
||||||
|
*padding-bottom: 7px;
|
||||||
|
}
|
||||||
|
.agxbtn-group.open .dropdown-toggle {
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.agxbtn-group.open .agxbtn.dropdown-toggle {
|
||||||
|
background-color: #e6e6e6;
|
||||||
|
}
|
||||||
|
.agxbtn-group.open .agxbtn-primary.dropdown-toggle {
|
||||||
|
background-color: #15497c;
|
||||||
|
}
|
||||||
|
.agxbtn-group.open .agxbtn-warning.dropdown-toggle {
|
||||||
|
background-color: #c67605;
|
||||||
|
}
|
||||||
|
.agxbtn-group.open .agxbtn-danger.dropdown-toggle {
|
||||||
|
background-color: #942a25;
|
||||||
|
}
|
||||||
|
.agxbtn-group.open .agxbtn-success.dropdown-toggle {
|
||||||
|
background-color: #378137;
|
||||||
|
}
|
||||||
|
.agxbtn-group.open .agxbtn-info.dropdown-toggle {
|
||||||
|
background-color: #24748c;
|
||||||
|
}
|
||||||
|
.agxbtn-group.open .agxbtn-inverse.dropdown-toggle {
|
||||||
|
background-color: #222;
|
||||||
|
}
|
||||||
|
.agxbtn .caret {
|
||||||
|
margin-top: 8px;
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
.agxbtn-large .caret {
|
||||||
|
margin-top: 6px;
|
||||||
|
}
|
||||||
|
.agxbtn-large .caret {
|
||||||
|
border-left-width: 5px;
|
||||||
|
border-right-width: 5px;
|
||||||
|
border-top-width: 5px;
|
||||||
|
}
|
||||||
|
.agxbtn-mini .caret,
|
||||||
|
.agxbtn-small .caret {
|
||||||
|
margin-top: 8px;
|
||||||
|
}
|
||||||
|
.dropup .agxbtn-large .caret {
|
||||||
|
border-bottom-width: 5px;
|
||||||
|
}
|
||||||
|
.agxbtn-primary .caret {
|
||||||
|
border-top-color: #1f496e;
|
||||||
|
border-bottom-color: #1f496e;
|
||||||
|
}
|
||||||
|
.agxbtn-warning .caret,
|
||||||
|
.agxbtn-danger .caret,
|
||||||
|
.agxbtn-info .caret,
|
||||||
|
.agxbtn-success .caret,
|
||||||
|
.agxbtn-inverse .caret {
|
||||||
|
border-top-color: #fff;
|
||||||
|
border-bottom-color: #fff;
|
||||||
|
}
|
||||||
|
.agxbtn-group-vertical {
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
*zoom: 1;
|
||||||
|
}
|
||||||
|
.agxbtn-group-vertical > .agxbtn {
|
||||||
|
display: block;
|
||||||
|
float: none;
|
||||||
|
max-width: 100%;
|
||||||
|
-webkit-border-radius: 0;
|
||||||
|
-moz-border-radius: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
.agxbtn-group-vertical > .agxbtn + .agxbtn {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-top: -1px;
|
||||||
|
}
|
||||||
|
.agxbtn-group-vertical > .agxbtn:first-child {
|
||||||
|
-webkit-border-radius: 3px 3px 0 0;
|
||||||
|
-moz-border-radius: 3px 3px 0 0;
|
||||||
|
border-radius: 3px 3px 0 0;
|
||||||
|
}
|
||||||
|
.agxbtn-group-vertical > .agxbtn:last-child {
|
||||||
|
-webkit-border-radius: 0 0 3px 3px;
|
||||||
|
-moz-border-radius: 0 0 3px 3px;
|
||||||
|
border-radius: 0 0 3px 3px;
|
||||||
|
}
|
||||||
|
.agxbtn-group-vertical > .agxbtn-large:first-child {
|
||||||
|
-webkit-border-radius: 6px 6px 0 0;
|
||||||
|
-moz-border-radius: 6px 6px 0 0;
|
||||||
|
border-radius: 6px 6px 0 0;
|
||||||
|
}
|
||||||
|
.agxbtn-group-vertical > .agxbtn-large:last-child {
|
||||||
|
-webkit-border-radius: 0 0 6px 6px;
|
||||||
|
-moz-border-radius: 0 0 6px 6px;
|
||||||
|
border-radius: 0 0 6px 6px;
|
||||||
|
}
|
||||||
|
.agxbtn-micro {
|
||||||
|
padding: 1px 4px;
|
||||||
|
font-size: 10px;
|
||||||
|
line-height: 8px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn-micro {
|
||||||
|
font-size: 10px;
|
||||||
|
}
|
||||||
|
|
75
admin/assets/css/packages.css
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage packages.css
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* CSS Document */
|
||||||
|
|
||||||
|
|
||||||
|
.table td {
|
||||||
|
vertical-align: middle !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.circle {
|
||||||
|
box-sizing:border-box;
|
||||||
|
-webkit-border-radius:12px;
|
||||||
|
-moz-border-radius:12px;
|
||||||
|
border-radius:12px;
|
||||||
|
width:24px;
|
||||||
|
height:24px;
|
||||||
|
padding:6px 5px;
|
||||||
|
margin:5px 0;
|
||||||
|
font-size:12px;
|
||||||
|
line-height:12px;
|
||||||
|
text-transform:uppercase;
|
||||||
|
text-align:center;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
.circle-component {
|
||||||
|
background-color:#00a500
|
||||||
|
}
|
||||||
|
.circle-module {
|
||||||
|
background-color:#ff4b39
|
||||||
|
}
|
||||||
|
.circle-plugin {
|
||||||
|
background-color:#e20079
|
||||||
|
}
|
||||||
|
.circle-search {
|
||||||
|
background-color:#ff8100
|
||||||
|
}
|
||||||
|
.circle-library {
|
||||||
|
background-color:#ffc40d;
|
||||||
|
color:#333
|
||||||
|
}
|
||||||
|
.circle-template {
|
||||||
|
background-color:#eab31d
|
||||||
|
}
|
||||||
|
.circle-language {
|
||||||
|
background-color:#ff2121
|
||||||
|
}
|
||||||
|
.circle-file {
|
||||||
|
background-color:#b700ff
|
||||||
|
}
|
||||||
|
.circle a:hover {
|
||||||
|
text-decoration:none
|
||||||
|
}
|
||||||
|
a .circle {
|
||||||
|
color:#fff;
|
||||||
|
font-size: 10px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
50
admin/assets/css/release.css
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage release.css
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* CSS Document */
|
||||||
|
|
||||||
|
|
||||||
|
.control-wrapper-changelog > .control-label {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.control-wrapper-changelog .subform-repeatable > table > thead > tr > th:first-child {
|
||||||
|
width: 15%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Etat Clôturé résolu */
|
||||||
|
.chzn-single.chzn-color-state[rel="value_Add"] {
|
||||||
|
background-color: #46a546 !important;
|
||||||
|
color: #FFF;
|
||||||
|
}
|
||||||
|
/* Etat Clôturé non-résolu */
|
||||||
|
.chzn-single.chzn-color-state[rel="value_Remove"] {
|
||||||
|
background-color: #bd362f !important;
|
||||||
|
color: #FFF;
|
||||||
|
}
|
||||||
|
/* Etat Nouveau */
|
||||||
|
.chzn-single.chzn-color-state[rel="value_Change"] {
|
||||||
|
background-color: #f89406 !important;
|
||||||
|
color: #FFF;
|
||||||
|
}
|
||||||
|
/* Etat Suspendu */
|
||||||
|
.chzn-single.chzn-color-state[rel="value_Bugfix"] {
|
||||||
|
background-color: #444444 !important;
|
||||||
|
color: #FFF;
|
||||||
|
}
|
||||||
|
|
477
admin/assets/css/releases.css
Normal file
@ -0,0 +1,477 @@
|
|||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage releases.css
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* CSS Document */
|
||||||
|
|
||||||
|
|
||||||
|
.table td {
|
||||||
|
vertical-align: middle !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Specific for the sub-view because of footable */
|
||||||
|
.agxbtn {
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
*zoom: 1;
|
||||||
|
padding: 4px 12px;
|
||||||
|
margin-bottom: 0;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 18px;
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: middle;
|
||||||
|
cursor: pointer;
|
||||||
|
background-color: #f3f3f3;
|
||||||
|
color: #333;
|
||||||
|
border: 1px solid #b3b3b3;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
box-shadow: 0 1px 2px rgba(0,0,0,0.05);
|
||||||
|
}
|
||||||
|
.agxbtn:hover,
|
||||||
|
.agxbtn:focus {
|
||||||
|
background-color: #e6e6e6;
|
||||||
|
text-decoration: none;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
.agxbtn:focus {
|
||||||
|
outline: thin dotted #333;
|
||||||
|
outline: 5px auto -webkit-focus-ring-color;
|
||||||
|
outline-offset: -2px;
|
||||||
|
}
|
||||||
|
.agxbtn.active,
|
||||||
|
.agxbtn:active {
|
||||||
|
background-image: none;
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
.agxbtn.disabled,
|
||||||
|
.agxbtn[disabled] {
|
||||||
|
cursor: default;
|
||||||
|
background-image: none;
|
||||||
|
opacity: 0.65;
|
||||||
|
filter: alpha(opacity=65);
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
-moz-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.agxbtn-large {
|
||||||
|
padding: 11px 19px;
|
||||||
|
font-size: 16.25px;
|
||||||
|
-webkit-border-radius: 6px;
|
||||||
|
-moz-border-radius: 6px;
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
.agxbtn-large [class^="icon-"],
|
||||||
|
.agxbtn-large [class*=" icon-"] {
|
||||||
|
margin-top: 4px;
|
||||||
|
}
|
||||||
|
.agxbtn-small {
|
||||||
|
padding: 2px 10px;
|
||||||
|
font-size: 12px;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
.agxbtn-small [class^="icon-"],
|
||||||
|
.agxbtn-small [class*=" icon-"] {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
.agxbtn-mini [class^="icon-"],
|
||||||
|
.agxbtn-mini [class*=" icon-"] {
|
||||||
|
margin-top: -1px;
|
||||||
|
}
|
||||||
|
.agxbtn-mini {
|
||||||
|
padding: 0 6px;
|
||||||
|
font-size: 9.75px;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
.agxbtn-block {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
padding-left: 0;
|
||||||
|
padding-right: 0;
|
||||||
|
-webkit-box-sizing: border-box;
|
||||||
|
-moz-box-sizing: border-box;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
.agxbtn-block + .agxbtn-block {
|
||||||
|
margin-top: 5px;
|
||||||
|
}
|
||||||
|
input[type="submit"].agxbtn-block,
|
||||||
|
input[type="reset"].agxbtn-block,
|
||||||
|
input[type="button"].agxbtn-block {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.agxbtn-primary,
|
||||||
|
.agxbtn-warning,
|
||||||
|
.agxbtn-danger,
|
||||||
|
.agxbtn-success,
|
||||||
|
.agxbtn-info,
|
||||||
|
.agxbtn-inverse {
|
||||||
|
box-shadow: 0 1px 2px rgba(0,0,0,0.05);
|
||||||
|
}
|
||||||
|
.agxbtn-primary {
|
||||||
|
border: 1px solid #15497c;
|
||||||
|
border: 1px solid rgba(0,0,0,0.2);
|
||||||
|
color: #fff;
|
||||||
|
background-color: #2384d3;
|
||||||
|
}
|
||||||
|
.agxbtn-primary:hover,
|
||||||
|
.agxbtn-primary:focus {
|
||||||
|
background-color: #185b91;
|
||||||
|
color: #fff;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.agxbtn-warning {
|
||||||
|
border: 1px solid #f89406;
|
||||||
|
border: 1px solid rgba(0,0,0,0.2);
|
||||||
|
color: #fff;
|
||||||
|
background-color: #f89406;
|
||||||
|
}
|
||||||
|
.agxbtn-warning:hover,
|
||||||
|
.agxbtn-warning:focus {
|
||||||
|
background-color: #ad6704;
|
||||||
|
color: #fff;
|
||||||
|
text-decoration: none;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
.agxbtn-danger {
|
||||||
|
border: 1px solid #bd362f;
|
||||||
|
border: 1px solid rgba(0,0,0,0.2);
|
||||||
|
color: #fff;
|
||||||
|
background-color: #bd362f;
|
||||||
|
}
|
||||||
|
.agxbtn-danger:hover,
|
||||||
|
.agxbtn-danger:focus {
|
||||||
|
background-color: #802420;
|
||||||
|
color: #fff;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.agxbtn-success {
|
||||||
|
border: 1px solid #378137;
|
||||||
|
border: 1px solid rgba(0,0,0,0.2);
|
||||||
|
color: #fff;
|
||||||
|
background-color: #46a546;
|
||||||
|
}
|
||||||
|
.agxbtn-success:hover,
|
||||||
|
.agxbtn-success:focus {
|
||||||
|
background-color: #2f6f2f;
|
||||||
|
color: #fff;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.agxbtn-info {
|
||||||
|
border: 1px solid #2f96b4;
|
||||||
|
border: 1px solid rgba(0,0,0,0.2);
|
||||||
|
color: #fff;
|
||||||
|
background-color: #2f96b4;
|
||||||
|
}
|
||||||
|
.agxbtn-info:hover,
|
||||||
|
.agxbtn-info:focus {
|
||||||
|
background-color: #1f6377;
|
||||||
|
color: #fff;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.agxbtn-inverse {
|
||||||
|
border: 1px solid #444;
|
||||||
|
border: 1px solid rgba(0,0,0,0.2);
|
||||||
|
color: #fff;
|
||||||
|
background-color: #444;
|
||||||
|
}
|
||||||
|
.agxbtn-inverse:hover,
|
||||||
|
.agxbtn-inverse:focus {
|
||||||
|
background-color: #1e1e1e;
|
||||||
|
color: #fff;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
button.agxbtn,
|
||||||
|
input[type="submit"].agxbtn {
|
||||||
|
*padding-top: 3px;
|
||||||
|
*padding-bottom: 3px;
|
||||||
|
}
|
||||||
|
button.agxbtn::-moz-focus-inner,
|
||||||
|
input[type="submit"].agxbtn::-moz-focus-inner {
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
button.agxbtn.agxbtn-large,
|
||||||
|
input[type="submit"].agxbtn.agxbtn-large {
|
||||||
|
*padding-top: 7px;
|
||||||
|
*padding-bottom: 7px;
|
||||||
|
}
|
||||||
|
button.agxbtn.agxbtn-small,
|
||||||
|
input[type="submit"].agxbtn.agxbtn-small {
|
||||||
|
*padding-top: 3px;
|
||||||
|
*padding-bottom: 3px;
|
||||||
|
}
|
||||||
|
button.agxbtn.agxbtn-mini,
|
||||||
|
input[type="submit"].agxbtn.agxbtn-mini {
|
||||||
|
*padding-top: 1px;
|
||||||
|
*padding-bottom: 1px;
|
||||||
|
}
|
||||||
|
.agxbtn-link,
|
||||||
|
.agxbtn-link:active,
|
||||||
|
.agxbtn-link[disabled] {
|
||||||
|
background-color: transparent;
|
||||||
|
background-image: none;
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
-moz-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.agxbtn-link {
|
||||||
|
border-color: transparent;
|
||||||
|
cursor: pointer;
|
||||||
|
color: #3071a9;
|
||||||
|
-webkit-border-radius: 0;
|
||||||
|
-moz-border-radius: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
.agxbtn-link:hover,
|
||||||
|
.agxbtn-link:focus {
|
||||||
|
color: #1f496e;
|
||||||
|
text-decoration: underline;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
.agxbtn-link[disabled]:hover,
|
||||||
|
.agxbtn-link[disabled]:focus {
|
||||||
|
color: #333;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.agxbtn-group {
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
*zoom: 1;
|
||||||
|
font-size: 0;
|
||||||
|
vertical-align: middle;
|
||||||
|
white-space: nowrap;
|
||||||
|
*margin-left: .3em;
|
||||||
|
}
|
||||||
|
.agxbtn-group:first-child {
|
||||||
|
*margin-left: 0;
|
||||||
|
}
|
||||||
|
.agxbtn-group .agxbtn + .agxbtn {
|
||||||
|
margin-left: -1px;
|
||||||
|
}
|
||||||
|
.agxbtn-group + .agxbtn-group {
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
.agxbtn-toolbar {
|
||||||
|
font-size: 0;
|
||||||
|
margin-top: 9px;
|
||||||
|
margin-bottom: 9px;
|
||||||
|
}
|
||||||
|
.agxbtn-toolbar > .agxbtn + .agxbtn,
|
||||||
|
.agxbtn-toolbar > .agxbtn-group + .agxbtn,
|
||||||
|
.agxbtn-toolbar > .agxbtn + .agxbtn-group {
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn {
|
||||||
|
position: relative;
|
||||||
|
-webkit-border-radius: 0;
|
||||||
|
-moz-border-radius: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn-micro {
|
||||||
|
margin-left: -1px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn,
|
||||||
|
.agxbtn-group > .dropdown-menu,
|
||||||
|
.agxbtn-group > .popover {
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn-mini {
|
||||||
|
font-size: 9.75px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn-small {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn-large {
|
||||||
|
font-size: 16.25px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn:first-child {
|
||||||
|
margin-left: 0;
|
||||||
|
-webkit-border-top-left-radius: 3px;
|
||||||
|
-moz-border-radius-topleft: 3px;
|
||||||
|
border-top-left-radius: 3px;
|
||||||
|
-webkit-border-bottom-left-radius: 3px;
|
||||||
|
-moz-border-radius-bottomleft: 3px;
|
||||||
|
border-bottom-left-radius: 3px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn:last-child,
|
||||||
|
.agxbtn-group > .dropdown-toggle {
|
||||||
|
-webkit-border-top-right-radius: 3px;
|
||||||
|
-moz-border-radius-topright: 3px;
|
||||||
|
border-top-right-radius: 3px;
|
||||||
|
-webkit-border-bottom-right-radius: 3px;
|
||||||
|
-moz-border-radius-bottomright: 3px;
|
||||||
|
border-bottom-right-radius: 3px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn.large:first-child {
|
||||||
|
margin-left: 0;
|
||||||
|
-webkit-border-top-left-radius: 6px;
|
||||||
|
-moz-border-radius-topleft: 6px;
|
||||||
|
border-top-left-radius: 6px;
|
||||||
|
-webkit-border-bottom-left-radius: 6px;
|
||||||
|
-moz-border-radius-bottomleft: 6px;
|
||||||
|
border-bottom-left-radius: 6px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn.large:last-child,
|
||||||
|
.agxbtn-group > .large.dropdown-toggle {
|
||||||
|
-webkit-border-top-right-radius: 6px;
|
||||||
|
-moz-border-radius-topright: 6px;
|
||||||
|
border-top-right-radius: 6px;
|
||||||
|
-webkit-border-bottom-right-radius: 6px;
|
||||||
|
-moz-border-radius-bottomright: 6px;
|
||||||
|
border-bottom-right-radius: 6px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn:hover,
|
||||||
|
.agxbtn-group > .agxbtn:focus,
|
||||||
|
.agxbtn-group > .agxbtn:active,
|
||||||
|
.agxbtn-group > .agxbtn.active {
|
||||||
|
z-index: 2;
|
||||||
|
}
|
||||||
|
.agxbtn-group .dropdown-toggle:active,
|
||||||
|
.agxbtn-group.open .dropdown-toggle {
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn + .dropdown-toggle {
|
||||||
|
padding-left: 8px;
|
||||||
|
padding-right: 8px;
|
||||||
|
*padding-top: 5px;
|
||||||
|
*padding-bottom: 5px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn-mini + .dropdown-toggle {
|
||||||
|
padding-left: 5px;
|
||||||
|
padding-right: 5px;
|
||||||
|
*padding-top: 2px;
|
||||||
|
*padding-bottom: 2px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn-small + .dropdown-toggle {
|
||||||
|
*padding-top: 5px;
|
||||||
|
*padding-bottom: 4px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn-large + .dropdown-toggle {
|
||||||
|
padding-left: 12px;
|
||||||
|
padding-right: 12px;
|
||||||
|
*padding-top: 7px;
|
||||||
|
*padding-bottom: 7px;
|
||||||
|
}
|
||||||
|
.agxbtn-group.open .dropdown-toggle {
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.agxbtn-group.open .agxbtn.dropdown-toggle {
|
||||||
|
background-color: #e6e6e6;
|
||||||
|
}
|
||||||
|
.agxbtn-group.open .agxbtn-primary.dropdown-toggle {
|
||||||
|
background-color: #15497c;
|
||||||
|
}
|
||||||
|
.agxbtn-group.open .agxbtn-warning.dropdown-toggle {
|
||||||
|
background-color: #c67605;
|
||||||
|
}
|
||||||
|
.agxbtn-group.open .agxbtn-danger.dropdown-toggle {
|
||||||
|
background-color: #942a25;
|
||||||
|
}
|
||||||
|
.agxbtn-group.open .agxbtn-success.dropdown-toggle {
|
||||||
|
background-color: #378137;
|
||||||
|
}
|
||||||
|
.agxbtn-group.open .agxbtn-info.dropdown-toggle {
|
||||||
|
background-color: #24748c;
|
||||||
|
}
|
||||||
|
.agxbtn-group.open .agxbtn-inverse.dropdown-toggle {
|
||||||
|
background-color: #222;
|
||||||
|
}
|
||||||
|
.agxbtn .caret {
|
||||||
|
margin-top: 8px;
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
.agxbtn-large .caret {
|
||||||
|
margin-top: 6px;
|
||||||
|
}
|
||||||
|
.agxbtn-large .caret {
|
||||||
|
border-left-width: 5px;
|
||||||
|
border-right-width: 5px;
|
||||||
|
border-top-width: 5px;
|
||||||
|
}
|
||||||
|
.agxbtn-mini .caret,
|
||||||
|
.agxbtn-small .caret {
|
||||||
|
margin-top: 8px;
|
||||||
|
}
|
||||||
|
.dropup .agxbtn-large .caret {
|
||||||
|
border-bottom-width: 5px;
|
||||||
|
}
|
||||||
|
.agxbtn-primary .caret {
|
||||||
|
border-top-color: #1f496e;
|
||||||
|
border-bottom-color: #1f496e;
|
||||||
|
}
|
||||||
|
.agxbtn-warning .caret,
|
||||||
|
.agxbtn-danger .caret,
|
||||||
|
.agxbtn-info .caret,
|
||||||
|
.agxbtn-success .caret,
|
||||||
|
.agxbtn-inverse .caret {
|
||||||
|
border-top-color: #fff;
|
||||||
|
border-bottom-color: #fff;
|
||||||
|
}
|
||||||
|
.agxbtn-group-vertical {
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
*zoom: 1;
|
||||||
|
}
|
||||||
|
.agxbtn-group-vertical > .agxbtn {
|
||||||
|
display: block;
|
||||||
|
float: none;
|
||||||
|
max-width: 100%;
|
||||||
|
-webkit-border-radius: 0;
|
||||||
|
-moz-border-radius: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
.agxbtn-group-vertical > .agxbtn + .agxbtn {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-top: -1px;
|
||||||
|
}
|
||||||
|
.agxbtn-group-vertical > .agxbtn:first-child {
|
||||||
|
-webkit-border-radius: 3px 3px 0 0;
|
||||||
|
-moz-border-radius: 3px 3px 0 0;
|
||||||
|
border-radius: 3px 3px 0 0;
|
||||||
|
}
|
||||||
|
.agxbtn-group-vertical > .agxbtn:last-child {
|
||||||
|
-webkit-border-radius: 0 0 3px 3px;
|
||||||
|
-moz-border-radius: 0 0 3px 3px;
|
||||||
|
border-radius: 0 0 3px 3px;
|
||||||
|
}
|
||||||
|
.agxbtn-group-vertical > .agxbtn-large:first-child {
|
||||||
|
-webkit-border-radius: 6px 6px 0 0;
|
||||||
|
-moz-border-radius: 6px 6px 0 0;
|
||||||
|
border-radius: 6px 6px 0 0;
|
||||||
|
}
|
||||||
|
.agxbtn-group-vertical > .agxbtn-large:last-child {
|
||||||
|
-webkit-border-radius: 0 0 6px 6px;
|
||||||
|
-moz-border-radius: 0 0 6px 6px;
|
||||||
|
border-radius: 0 0 6px 6px;
|
||||||
|
}
|
||||||
|
.agxbtn-micro {
|
||||||
|
padding: 1px 4px;
|
||||||
|
font-size: 10px;
|
||||||
|
line-height: 8px;
|
||||||
|
}
|
||||||
|
.agxbtn-group > .agxbtn-micro {
|
||||||
|
font-size: 10px;
|
||||||
|
}
|
||||||
|
|
22
admin/assets/css/statistics.css
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage statistics.css
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* CSS Document */
|
||||||
|
|
||||||
|
|
23
admin/assets/css/subscription.css
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage subscription.css
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* CSS Document */
|
||||||
|
|
||||||
|
|
||||||
|
.icon-save::before { color: #FFF !important; }
|
26
admin/assets/css/subscriptions.css
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage subscriptions.css
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* CSS Document */
|
||||||
|
|
||||||
|
|
||||||
|
.table td {
|
||||||
|
vertical-align: middle !important;
|
||||||
|
}
|
||||||
|
|
BIN
admin/assets/images/icons/downloads.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
admin/assets/images/icons/extensions.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
admin/assets/images/icons/extensions_catid.png
Normal file
After Width: | Height: | Size: 966 B |
BIN
admin/assets/images/icons/import.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
1
admin/assets/images/icons/index.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<html><body bgcolor="#FFFFFF"></body></html>
|
BIN
admin/assets/images/icons/keys.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
admin/assets/images/icons/maintenance.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
BIN
admin/assets/images/icons/packages.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
BIN
admin/assets/images/icons/statistics.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
admin/assets/images/icons/subscriptions.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
admin/assets/images/import.gif
Normal file
After Width: | Height: | Size: 64 KiB |
1
admin/assets/images/index.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<html><body bgcolor="#FFFFFF"></body></html>
|
BIN
admin/assets/images/vdm-component.png
Normal file
After Width: | Height: | Size: 14 KiB |
1
admin/assets/index.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<html><body bgcolor="#FFFFFF"></body></html>
|
20
admin/assets/js/admin.js
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage admin.js
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* JS Document */
|
1
admin/assets/js/index.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<html><body bgcolor="#FFFFFF"></body></html>
|
26
admin/assets/security/htaccess.txt
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
## This file was generated automatically by the Akeeba Backup Engine
|
||||||
|
##
|
||||||
|
## DO NOT REMOVE THIS FILE
|
||||||
|
##
|
||||||
|
## This file makes sure that your backup output directory is not directly accessible from the web if you are using
|
||||||
|
## the Apache, Lighttpd and Litespeed web server. This prevents unauthorized access to your backup archive files and
|
||||||
|
## backup log files. Removing this file could have security implications for your site.
|
||||||
|
##
|
||||||
|
## You are strongly advised to never delete or modify any of the files automatically created in this folder by the
|
||||||
|
## Akeeba Backup Engine, namely:
|
||||||
|
##
|
||||||
|
## * .htaccess
|
||||||
|
## * web.config
|
||||||
|
## * index.html
|
||||||
|
## * index.htm
|
||||||
|
## * index.php
|
||||||
|
##
|
||||||
|
<IfModule !mod_authz_core.c>
|
||||||
|
Order deny,allow
|
||||||
|
Deny from all
|
||||||
|
</IfModule>
|
||||||
|
<IfModule mod_authz_core.c>
|
||||||
|
<RequireAll>
|
||||||
|
Require all denied
|
||||||
|
</RequireAll>
|
||||||
|
</IfModule>
|
9
admin/assets/security/index.htm
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Access Denied</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Access Denied</h1>
|
||||||
|
</body>
|
||||||
|
</html>
|
9
admin/assets/security/index.html
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Access Denied</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Access Denied</h1>
|
||||||
|
</body>
|
||||||
|
</html>
|
21
admin/assets/security/index.php
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<?php header('HTTP/1.1 403 Forbidden'); return;?>
|
||||||
|
This file was generated automatically by the Akeeba Backup Engine
|
||||||
|
|
||||||
|
DO NOT REMOVE THIS FILE
|
||||||
|
|
||||||
|
This file tells your web server to not list the contents of this directory, instead returning an HTTP 403 Forbidden
|
||||||
|
error. This makes it implausible for a malicious third party to successfully guess the filenames of your backup
|
||||||
|
archives. Therefore, even if this folder is directly web accessible – despite the .htaccess and web.config file already
|
||||||
|
put in place by the Akeeba Backup Engine – it will still be reasonably protected against malicious users trying to
|
||||||
|
download your backup archives.
|
||||||
|
|
||||||
|
Please do not remove this file as it could have security implications for your site.
|
||||||
|
|
||||||
|
You are strongly advised to never delete or modify any of the files automatically created in this folder by the
|
||||||
|
Akeeba Backup Engine, namely:
|
||||||
|
|
||||||
|
* .htaccess
|
||||||
|
* web.config
|
||||||
|
* index.html
|
||||||
|
* index.htm
|
||||||
|
* index.php
|
35
admin/assets/security/web.config
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!--
|
||||||
|
This file was generated automatically by the Akeeba Backup Engine
|
||||||
|
|
||||||
|
DO NOT REMOVE THIS FILE
|
||||||
|
|
||||||
|
This file makes sure that your backup output directory is not directly accessible from the web if you are using the
|
||||||
|
Microsoft Internet Information Services (IIS) web server, version 7 or later. This prevents unauthorized access to your
|
||||||
|
backup archive files and backup log files. Removing this file could have security implications for your site.
|
||||||
|
|
||||||
|
As noted above, this only works on IIS 7 or later.
|
||||||
|
See https://www.iis.net/configreference/system.webserver/security/requestfiltering/fileextensions
|
||||||
|
|
||||||
|
You are strongly advised to never delete or modify any of the files automatically created in this folder by the
|
||||||
|
Akeeba Backup Engine, namely:
|
||||||
|
|
||||||
|
* .htaccess
|
||||||
|
* web.config
|
||||||
|
* index.html
|
||||||
|
* index.htm
|
||||||
|
* index.php
|
||||||
|
|
||||||
|
-->
|
||||||
|
<configuration>
|
||||||
|
<system.webServer>
|
||||||
|
<security>
|
||||||
|
<requestFiltering>
|
||||||
|
<fileExtensions allowUnlisted="false" >
|
||||||
|
<clear />
|
||||||
|
<add fileExtension=".html" allowed="true"/>
|
||||||
|
</fileExtensions>
|
||||||
|
</requestFiltering>
|
||||||
|
</security>
|
||||||
|
</system.webServer>
|
||||||
|
</configuration>
|
356
admin/config.xml
Normal file
@ -0,0 +1,356 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<config>
|
||||||
|
<fieldset
|
||||||
|
addrulepath="/administrator/components/com_extensiondistributor/models/rules"
|
||||||
|
addfieldpath="/administrator/components/com_extensiondistributor/models/fields"
|
||||||
|
name="global_config"
|
||||||
|
label="COM_EXTENSIONDISTRIBUTOR_CONFIG_GLOBAL_LABEL"
|
||||||
|
description="COM_EXTENSIONDISTRIBUTOR_CONFIG_GLOBAL_DESC">
|
||||||
|
<field
|
||||||
|
name="check_in"
|
||||||
|
type="list"
|
||||||
|
default="0"
|
||||||
|
label="COM_EXTENSIONDISTRIBUTOR_CONFIG_CHECK_TIMER_LABEL"
|
||||||
|
description="COM_EXTENSIONDISTRIBUTOR_CONFIG_CHECK_TIMER_DESC">
|
||||||
|
<option
|
||||||
|
value="-5 hours">COM_EXTENSIONDISTRIBUTOR_CONFIG_CHECK_TIMER_OPTION_ONE</option>
|
||||||
|
<option
|
||||||
|
value="-12 hours">COM_EXTENSIONDISTRIBUTOR_CONFIG_CHECK_TIMER_OPTION_TWO</option>
|
||||||
|
<option
|
||||||
|
value="-1 day">COM_EXTENSIONDISTRIBUTOR_CONFIG_CHECK_TIMER_OPTION_THREE</option>
|
||||||
|
<option
|
||||||
|
value="-2 day">COM_EXTENSIONDISTRIBUTOR_CONFIG_CHECK_TIMER_OPTION_FOUR</option>
|
||||||
|
<option
|
||||||
|
value="-1 week">COM_EXTENSIONDISTRIBUTOR_CONFIG_CHECK_TIMER_OPTION_FIVE</option>
|
||||||
|
<option
|
||||||
|
value="0">COM_EXTENSIONDISTRIBUTOR_CONFIG_CHECK_TIMER_OPTION_SIX</option>
|
||||||
|
</field>
|
||||||
|
<field type="spacer" name="spacerAuthor" hr="true" />
|
||||||
|
<field
|
||||||
|
name="save_history"
|
||||||
|
type="radio"
|
||||||
|
class="btn-group btn-group-yesno"
|
||||||
|
default="1"
|
||||||
|
label="JGLOBAL_SAVE_HISTORY_OPTIONS_LABEL"
|
||||||
|
description="JGLOBAL_SAVE_HISTORY_OPTIONS_DESC"
|
||||||
|
>
|
||||||
|
<option value="1">JYES</option>
|
||||||
|
<option value="0">JNO</option>
|
||||||
|
</field>
|
||||||
|
<field
|
||||||
|
name="history_limit"
|
||||||
|
type="text"
|
||||||
|
filter="integer"
|
||||||
|
label="JGLOBAL_HISTORY_LIMIT_OPTIONS_LABEL"
|
||||||
|
description="JGLOBAL_HISTORY_LIMIT_OPTIONS_DESC"
|
||||||
|
default="10"
|
||||||
|
/>
|
||||||
|
<field type="spacer" name="spacerHistory" hr="true" />
|
||||||
|
<field name="autorTitle"
|
||||||
|
type="spacer"
|
||||||
|
label="COM_EXTENSIONDISTRIBUTOR_CONFIG_AUTHOR"
|
||||||
|
/>
|
||||||
|
<field name="autorName"
|
||||||
|
type="text"
|
||||||
|
label="COM_EXTENSIONDISTRIBUTOR_CONFIG_AUTHOR_NAME_LABEL"
|
||||||
|
description="COM_EXTENSIONDISTRIBUTOR_CONFIG_AUTHOR_NAME_DESC"
|
||||||
|
size="60"
|
||||||
|
default="Emmanuel Danan"
|
||||||
|
readonly="true"
|
||||||
|
class="readonly"
|
||||||
|
/>
|
||||||
|
<field name="autorEmail"
|
||||||
|
type="email"
|
||||||
|
label="COM_EXTENSIONDISTRIBUTOR_CONFIG_AUTHOR_EMAIL_LABEL"
|
||||||
|
description="COM_EXTENSIONDISTRIBUTOR_CONFIG_AUTHOR_EMAIL_DESC"
|
||||||
|
size="60"
|
||||||
|
default="emmanuel.danan@agerix.fr"
|
||||||
|
readonly="true"
|
||||||
|
class="readonly"
|
||||||
|
/>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset
|
||||||
|
name="directories_custom_config"
|
||||||
|
label="COM_EXTENSIONDISTRIBUTOR_CONFIG_DIRECTORIES">
|
||||||
|
|
||||||
|
<!-- Note_path Field. Type: Note. A None Database Field. (joomla) -->
|
||||||
|
<field type="note" name="note_path" description="COM_EXTENSIONDISTRIBUTOR_CONFIG_NOTE_PATH_DESCRIPTION" class="alert alert-info note_path" close="false" />
|
||||||
|
<!-- Releases_directory Field. Type: Text. (joomla) -->
|
||||||
|
<field
|
||||||
|
type="text"
|
||||||
|
name="releases_directory"
|
||||||
|
label="COM_EXTENSIONDISTRIBUTOR_CONFIG_RELEASES_DIRECTORY_LABEL"
|
||||||
|
default="packages"
|
||||||
|
class="input-xxlarge"
|
||||||
|
readonly="true"
|
||||||
|
filter="STRING"
|
||||||
|
autocomplete="on"
|
||||||
|
/>
|
||||||
|
<!-- Jcb_directory Field. Type: Text. (joomla) -->
|
||||||
|
<field
|
||||||
|
type="text"
|
||||||
|
name="jcb_directory"
|
||||||
|
label="COM_EXTENSIONDISTRIBUTOR_CONFIG_JCB_DIRECTORY_LABEL"
|
||||||
|
default="jcb"
|
||||||
|
class="input-xxlarge"
|
||||||
|
readonly="true"
|
||||||
|
filter="STRING"
|
||||||
|
autocomplete="on"
|
||||||
|
/>
|
||||||
|
<!-- Updates_directory Field. Type: Text. (joomla) -->
|
||||||
|
<field
|
||||||
|
type="text"
|
||||||
|
name="updates_directory"
|
||||||
|
label="COM_EXTENSIONDISTRIBUTOR_CONFIG_UPDATES_DIRECTORY_LABEL"
|
||||||
|
default="updates"
|
||||||
|
class="input-xxlarge"
|
||||||
|
readonly="true"
|
||||||
|
filter="STRING"
|
||||||
|
autocomplete="on"
|
||||||
|
/>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset
|
||||||
|
name="import_custom_config"
|
||||||
|
label="COM_EXTENSIONDISTRIBUTOR_CONFIG_IMPORT">
|
||||||
|
|
||||||
|
<!-- Import_directory Field. Type: Text. (joomla) -->
|
||||||
|
<field
|
||||||
|
type="text"
|
||||||
|
name="import_directory"
|
||||||
|
label="COM_EXTENSIONDISTRIBUTOR_CONFIG_IMPORT_DIRECTORY_LABEL"
|
||||||
|
default="importfolder"
|
||||||
|
class="input-xxlarge"
|
||||||
|
readonly="true"
|
||||||
|
filter="STRING"
|
||||||
|
autocomplete="on"
|
||||||
|
/>
|
||||||
|
<!-- Catid Field. Type: Category. (joomla) -->
|
||||||
|
<field
|
||||||
|
type="category"
|
||||||
|
name="catid"
|
||||||
|
label="COM_EXTENSIONDISTRIBUTOR_CONFIG_CATID_LABEL"
|
||||||
|
extension="com_extensiondistributor"
|
||||||
|
description="COM_EXTENSIONDISTRIBUTOR_CONFIG_CATID_DESCRIPTION"
|
||||||
|
class="input-xxlarge"
|
||||||
|
published="1"
|
||||||
|
multiple="false"
|
||||||
|
/>
|
||||||
|
<!-- Reltype Field. Type: List. (joomla) -->
|
||||||
|
<field
|
||||||
|
type="list"
|
||||||
|
name="reltype"
|
||||||
|
label="COM_EXTENSIONDISTRIBUTOR_CONFIG_RELTYPE_LABEL"
|
||||||
|
filter="STRING">
|
||||||
|
<!-- Option Set. -->
|
||||||
|
<option value="">
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_PLEASE_SELECT</option>
|
||||||
|
<option value="security">
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_SECURITY</option>
|
||||||
|
<option value="maintenance">
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_MAINTENANCE</option>
|
||||||
|
<option value="newversion">
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_NEW_VERSION</option>
|
||||||
|
</field>
|
||||||
|
<!-- Stability Field. Type: List. (joomla) -->
|
||||||
|
<field
|
||||||
|
type="list"
|
||||||
|
name="stability"
|
||||||
|
label="COM_EXTENSIONDISTRIBUTOR_CONFIG_STABILITY_LABEL"
|
||||||
|
filter="INT"
|
||||||
|
required="true"
|
||||||
|
default="4">
|
||||||
|
<!-- Option Set. -->
|
||||||
|
<option value="0">
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_DEVELOPMENT</option>
|
||||||
|
<option value="1">
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_ALPHA</option>
|
||||||
|
<option value="2">
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_BETA</option>
|
||||||
|
<option value="3">
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_RC</option>
|
||||||
|
<option value="4">
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_STABLE</option>
|
||||||
|
</field>
|
||||||
|
<!-- Keepfilename Field. Type: Radio. (joomla) -->
|
||||||
|
<field
|
||||||
|
type="radio"
|
||||||
|
name="keepfilename"
|
||||||
|
label="COM_EXTENSIONDISTRIBUTOR_CONFIG_KEEPFILENAME_LABEL"
|
||||||
|
class="btn-group btn-group-yesno"
|
||||||
|
default="1">
|
||||||
|
<!-- Option Set. -->
|
||||||
|
<option value="1">
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_YES</option>
|
||||||
|
<option value="0">
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_NO</option>
|
||||||
|
</field>
|
||||||
|
<!-- Newfilename Field. Type: Text. (joomla) -->
|
||||||
|
<field
|
||||||
|
type="text"
|
||||||
|
name="newfilename"
|
||||||
|
label="COM_EXTENSIONDISTRIBUTOR_CONFIG_NEWFILENAME_LABEL"
|
||||||
|
default="{type}{_group}_{element}_v{major}_{minor}_{release}_{stability}.zip"
|
||||||
|
description="COM_EXTENSIONDISTRIBUTOR_CONFIG_NEWFILENAME_DESCRIPTION"
|
||||||
|
class="input-xxlarge"
|
||||||
|
filter="STRING"
|
||||||
|
autocomplete="on"
|
||||||
|
showon="keepfilename:0"
|
||||||
|
/>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset
|
||||||
|
name="packages_custom_config"
|
||||||
|
label="COM_EXTENSIONDISTRIBUTOR_CONFIG_PACKAGES">
|
||||||
|
|
||||||
|
<!-- Server_name Field. Type: Text. (joomla) -->
|
||||||
|
<field
|
||||||
|
type="text"
|
||||||
|
name="server_name"
|
||||||
|
label="COM_EXTENSIONDISTRIBUTOR_CONFIG_SERVER_NAME_LABEL"
|
||||||
|
class="input-xxlarge"
|
||||||
|
required="true"
|
||||||
|
filter="STRING"
|
||||||
|
autocomplete="on"
|
||||||
|
/>
|
||||||
|
<!-- Updateserver_url Field. Type: Url. (joomla) -->
|
||||||
|
<field
|
||||||
|
type="url"
|
||||||
|
name="updateserver_url"
|
||||||
|
label="COM_EXTENSIONDISTRIBUTOR_CONFIG_UPDATESERVER_URL_LABEL"
|
||||||
|
class="input-xxlarge"
|
||||||
|
relative="false"
|
||||||
|
filter="url"
|
||||||
|
validated="url"
|
||||||
|
scheme="http,https"
|
||||||
|
/>
|
||||||
|
<!-- Author Field. Type: Text. (joomla) -->
|
||||||
|
<field
|
||||||
|
type="text"
|
||||||
|
name="author"
|
||||||
|
label="COM_EXTENSIONDISTRIBUTOR_CONFIG_AUTHOR_LABEL"
|
||||||
|
class="input-xxlarge"
|
||||||
|
required="true"
|
||||||
|
filter="STRING"
|
||||||
|
autocomplete="on"
|
||||||
|
/>
|
||||||
|
<!-- Authoremail Field. Type: Email. (joomla) -->
|
||||||
|
<field
|
||||||
|
type="email"
|
||||||
|
name="authoremail"
|
||||||
|
label="COM_EXTENSIONDISTRIBUTOR_CONFIG_AUTHOREMAIL_LABEL"
|
||||||
|
class="input-xxlarge"
|
||||||
|
required="true"
|
||||||
|
filter="STRING"
|
||||||
|
validate="email"
|
||||||
|
unique="false"
|
||||||
|
message="COM_EXTENSIONDISTRIBUTOR_CONFIG_AUTHOREMAIL_MESSAGE"
|
||||||
|
hint="COM_EXTENSIONDISTRIBUTOR_CONFIG_AUTHOREMAIL_HINT"
|
||||||
|
autocomplete="on"
|
||||||
|
/>
|
||||||
|
<!-- Authorurl Field. Type: Url. (joomla) -->
|
||||||
|
<field
|
||||||
|
type="url"
|
||||||
|
name="authorurl"
|
||||||
|
label="COM_EXTENSIONDISTRIBUTOR_CONFIG_AUTHORURL_LABEL"
|
||||||
|
class="input-xxlarge"
|
||||||
|
required="true"
|
||||||
|
relative="false"
|
||||||
|
filter="url"
|
||||||
|
validated="url"
|
||||||
|
scheme="http,https"
|
||||||
|
hint="COM_EXTENSIONDISTRIBUTOR_CONFIG_AUTHORURL_HINT"
|
||||||
|
/>
|
||||||
|
<!-- Packager Field. Type: Text. (joomla) -->
|
||||||
|
<field
|
||||||
|
type="text"
|
||||||
|
name="packager"
|
||||||
|
label="COM_EXTENSIONDISTRIBUTOR_CONFIG_PACKAGER_LABEL"
|
||||||
|
class="input-xxlarge"
|
||||||
|
required="true"
|
||||||
|
filter="STRING"
|
||||||
|
autocomplete="on"
|
||||||
|
/>
|
||||||
|
<!-- Packagerurl Field. Type: Url. (joomla) -->
|
||||||
|
<field
|
||||||
|
type="url"
|
||||||
|
name="packagerurl"
|
||||||
|
label="COM_EXTENSIONDISTRIBUTOR_CONFIG_PACKAGERURL_LABEL"
|
||||||
|
class="input-xxlarge"
|
||||||
|
required="true"
|
||||||
|
relative="false"
|
||||||
|
filter="url"
|
||||||
|
validated="url"
|
||||||
|
scheme="http,https"
|
||||||
|
hint="COM_EXTENSIONDISTRIBUTOR_CONFIG_PACKAGERURL_HINT"
|
||||||
|
/>
|
||||||
|
<!-- Copyright Field. Type: Text. (joomla) -->
|
||||||
|
<field
|
||||||
|
type="text"
|
||||||
|
name="copyright"
|
||||||
|
label="COM_EXTENSIONDISTRIBUTOR_CONFIG_COPYRIGHT_LABEL"
|
||||||
|
class="input-xxlarge"
|
||||||
|
required="true"
|
||||||
|
filter="STRING"
|
||||||
|
autocomplete="on"
|
||||||
|
/>
|
||||||
|
<!-- License Field. Type: Text. (joomla) -->
|
||||||
|
<field
|
||||||
|
type="text"
|
||||||
|
name="license"
|
||||||
|
label="COM_EXTENSIONDISTRIBUTOR_CONFIG_LICENSE_LABEL"
|
||||||
|
class="input-xxlarge"
|
||||||
|
required="true"
|
||||||
|
filter="STRING"
|
||||||
|
autocomplete="on"
|
||||||
|
/>
|
||||||
|
<!-- Infourl Field. Type: Url. (joomla) -->
|
||||||
|
<field
|
||||||
|
type="url"
|
||||||
|
name="infourl"
|
||||||
|
label="COM_EXTENSIONDISTRIBUTOR_CONFIG_INFOURL_LABEL"
|
||||||
|
class="input-xxlarge"
|
||||||
|
required="true"
|
||||||
|
relative="false"
|
||||||
|
filter="url"
|
||||||
|
validated="url"
|
||||||
|
scheme="http,https"
|
||||||
|
/>
|
||||||
|
<!-- Targetplatform Field. Type: Text. (joomla) -->
|
||||||
|
<field
|
||||||
|
type="text"
|
||||||
|
name="targetplatform"
|
||||||
|
label="COM_EXTENSIONDISTRIBUTOR_CONFIG_TARGETPLATFORM_LABEL"
|
||||||
|
default="3.(9|10)"
|
||||||
|
description="COM_EXTENSIONDISTRIBUTOR_CONFIG_TARGETPLATFORM_DESCRIPTION"
|
||||||
|
class="input-xxlarge"
|
||||||
|
required="true"
|
||||||
|
filter="STRING"
|
||||||
|
autocomplete="on"
|
||||||
|
/>
|
||||||
|
<!-- Php_minimum Field. Type: Text. (joomla) -->
|
||||||
|
<field
|
||||||
|
type="text"
|
||||||
|
name="php_minimum"
|
||||||
|
label="COM_EXTENSIONDISTRIBUTOR_CONFIG_PHP_MINIMUM_LABEL"
|
||||||
|
default="7.0"
|
||||||
|
class="input-xxlarge"
|
||||||
|
required="true"
|
||||||
|
filter="STRING"
|
||||||
|
autocomplete="on"
|
||||||
|
/>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset
|
||||||
|
name="permissions"
|
||||||
|
label="JCONFIG_PERMISSIONS_LABEL"
|
||||||
|
description="JCONFIG_PERMISSIONS_DESC">
|
||||||
|
<field
|
||||||
|
name="rules"
|
||||||
|
type="rules"
|
||||||
|
label="JCONFIG_PERMISSIONS_LABEL"
|
||||||
|
class="inputbox"
|
||||||
|
validate="rules"
|
||||||
|
filter="rules"
|
||||||
|
component="com_extensiondistributor"
|
||||||
|
section="component"
|
||||||
|
/>
|
||||||
|
</fieldset>
|
||||||
|
</config>
|
127
admin/controller.php
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage controller.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
use Joomla\CMS\MVC\Controller\BaseController;
|
||||||
|
use Joomla\Utilities\ArrayHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* General Controller of Extensiondistributor component
|
||||||
|
*/
|
||||||
|
class ExtensiondistributorController extends BaseController
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Constructor.
|
||||||
|
*
|
||||||
|
* @param array $config An optional associative array of configuration settings.
|
||||||
|
* Recognized key values include 'name', 'default_task', 'model_path', and
|
||||||
|
* 'view_path' (this list is not meant to be comprehensive).
|
||||||
|
*
|
||||||
|
* @since 3.0
|
||||||
|
*/
|
||||||
|
public function __construct($config = array())
|
||||||
|
{
|
||||||
|
// set the default view
|
||||||
|
$config['default_view'] = 'extensiondistributor';
|
||||||
|
|
||||||
|
parent::__construct($config);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* display task
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
function display($cachable = false, $urlparams = false)
|
||||||
|
{
|
||||||
|
// set default view if not set
|
||||||
|
$view = $this->input->getCmd('view', 'extensiondistributor');
|
||||||
|
$data = $this->getViewRelation($view);
|
||||||
|
$layout = $this->input->get('layout', null, 'WORD');
|
||||||
|
$id = $this->input->getInt('id');
|
||||||
|
|
||||||
|
// Check for edit form.
|
||||||
|
if(ExtensiondistributorHelper::checkArray($data))
|
||||||
|
{
|
||||||
|
if ($data['edit'] && $layout == 'edit' && !$this->checkEditId('com_extensiondistributor.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 && ExtensiondistributorHelper::checkString($ref))
|
||||||
|
{
|
||||||
|
// redirect to item of ref
|
||||||
|
$this->setRedirect(JRoute::_('index.php?option=com_extensiondistributor&view='.(string)$ref.'&layout=edit&id='.(int)$refid, false));
|
||||||
|
}
|
||||||
|
elseif (ExtensiondistributorHelper::checkString($ref))
|
||||||
|
{
|
||||||
|
|
||||||
|
// redirect to ref
|
||||||
|
$this->setRedirect(JRoute::_('index.php?option=com_extensiondistributor&view='.(string)$ref, false));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// normal redirect back to the list view
|
||||||
|
$this->setRedirect(JRoute::_('index.php?option=com_extensiondistributor&view='.$data['views'], false));
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return parent::display($cachable, $urlparams);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function getViewRelation($view)
|
||||||
|
{
|
||||||
|
// check the we have a value
|
||||||
|
if (ExtensiondistributorHelper::checkString($view))
|
||||||
|
{
|
||||||
|
// the view relationships
|
||||||
|
$views = array(
|
||||||
|
'package' => 'packages',
|
||||||
|
'extension' => 'extensions',
|
||||||
|
'release' => 'releases',
|
||||||
|
'subscription' => 'subscriptions',
|
||||||
|
'key' => 'keys',
|
||||||
|
'download' => 'downloads'
|
||||||
|
);
|
||||||
|
// check if this is a list view
|
||||||
|
if (in_array($view, $views))
|
||||||
|
{
|
||||||
|
// this is a list view
|
||||||
|
return array('edit' => false, 'view' => array_search($view,$views), 'views' => $view);
|
||||||
|
}
|
||||||
|
// check if it is an edit view
|
||||||
|
elseif (array_key_exists($view, $views))
|
||||||
|
{
|
||||||
|
// this is a edit view
|
||||||
|
return array('edit' => true, 'view' => $view, 'views' => $views[$view]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
119
admin/controllers/ajax.json.php
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage ajax.json.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
use Joomla\CMS\MVC\Controller\BaseController;
|
||||||
|
use Joomla\Utilities\ArrayHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extensiondistributor Ajax Base Controller
|
||||||
|
*/
|
||||||
|
class ExtensiondistributorControllerAjax extends BaseController
|
||||||
|
{
|
||||||
|
public function __construct($config)
|
||||||
|
{
|
||||||
|
parent::__construct($config);
|
||||||
|
// make sure all json stuff are set
|
||||||
|
JFactory::getDocument()->setMimeEncoding( 'application/json' );
|
||||||
|
// get the application
|
||||||
|
$app = JFactory::getApplication();
|
||||||
|
$app->setHeader('Content-Disposition','attachment;filename="getajax.json"');
|
||||||
|
$app->setHeader('Access-Control-Allow-Origin', '*');
|
||||||
|
// load the tasks
|
||||||
|
$this->registerTask('showdir', 'ajax');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function ajax()
|
||||||
|
{
|
||||||
|
// get the user for later use
|
||||||
|
$user = JFactory::getUser();
|
||||||
|
// get the input values
|
||||||
|
$jinput = JFactory::getApplication()->input;
|
||||||
|
// check if we should return raw
|
||||||
|
$returnRaw = $jinput->get('raw', false, 'BOOLEAN');
|
||||||
|
// return to a callback function
|
||||||
|
$callback = $jinput->get('callback', null, 'CMD');
|
||||||
|
// Check Token!
|
||||||
|
$token = JSession::getFormToken();
|
||||||
|
$call_token = $jinput->get('token', 0, 'ALNUM');
|
||||||
|
if($jinput->get($token, 0, 'ALNUM') || $token === $call_token)
|
||||||
|
{
|
||||||
|
// get the task
|
||||||
|
$task = $this->getTask();
|
||||||
|
switch($task)
|
||||||
|
{
|
||||||
|
case 'showdir':
|
||||||
|
try
|
||||||
|
{
|
||||||
|
$dirValue = $jinput->get('dir', NULL, 'STRING');
|
||||||
|
$folderonlyValue = $jinput->get('folderonly', false, 'BOOLEAN');
|
||||||
|
$showrootValue = $jinput->get('showroot', false, 'BOOLEAN');
|
||||||
|
$result = $this->getModel('ajax')->showdir($dirValue, $folderonlyValue, $showrootValue);
|
||||||
|
if($callback)
|
||||||
|
{
|
||||||
|
echo $callback . "(".json_encode($result).");";
|
||||||
|
}
|
||||||
|
elseif($returnRaw)
|
||||||
|
{
|
||||||
|
echo json_encode($result);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
echo "(".json_encode($result).");";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(Exception $e)
|
||||||
|
{
|
||||||
|
if($callback)
|
||||||
|
{
|
||||||
|
echo $callback."(".json_encode($e).");";
|
||||||
|
}
|
||||||
|
elseif($returnRaw)
|
||||||
|
{
|
||||||
|
echo json_encode($e);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
echo "(".json_encode($e).");";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// return to a callback function
|
||||||
|
if($callback)
|
||||||
|
{
|
||||||
|
echo $callback."(".json_encode(false).");";
|
||||||
|
}
|
||||||
|
elseif($returnRaw)
|
||||||
|
{
|
||||||
|
echo json_encode(false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
echo "(".json_encode(false).");";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
320
admin/controllers/download.php
Normal file
@ -0,0 +1,320 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage download.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
use Joomla\CMS\MVC\Controller\FormController;
|
||||||
|
use Joomla\Utilities\ArrayHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Download Form Controller
|
||||||
|
*/
|
||||||
|
class ExtensiondistributorControllerDownload extends FormController
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Current or most recently performed task.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
* @since 12.2
|
||||||
|
* @note Replaces _task.
|
||||||
|
*/
|
||||||
|
protected $task;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class constructor.
|
||||||
|
*
|
||||||
|
* @param array $config A named array of configuration variables.
|
||||||
|
*
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
public function __construct($config = array())
|
||||||
|
{
|
||||||
|
$this->view_list = 'Downloads'; // 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())
|
||||||
|
{
|
||||||
|
// Get user object.
|
||||||
|
$user = JFactory::getUser();
|
||||||
|
|
||||||
|
// In the absense of better information, revert to the component permissions.
|
||||||
|
return parent::allowAdd($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method override to check if you can edit an existing record.
|
||||||
|
*
|
||||||
|
* @param array $data An array of input data.
|
||||||
|
* @param string $key The name of the key for the primary key.
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
protected function allowEdit($data = array(), $key = 'id')
|
||||||
|
{
|
||||||
|
// get user object.
|
||||||
|
$user = JFactory::getUser();
|
||||||
|
// get record id.
|
||||||
|
$recordId = (int) isset($data[$key]) ? $data[$key] : 0;
|
||||||
|
|
||||||
|
|
||||||
|
if ($recordId)
|
||||||
|
{
|
||||||
|
// The record has been set. Check the record permissions.
|
||||||
|
$permission = $user->authorise('core.edit', 'com_extensiondistributor.download.' . (int) $recordId);
|
||||||
|
if (!$permission)
|
||||||
|
{
|
||||||
|
if ($user->authorise('core.edit.own', 'com_extensiondistributor.download.' . $recordId))
|
||||||
|
{
|
||||||
|
// Now test the owner is the user.
|
||||||
|
$ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0;
|
||||||
|
if (empty($ownerId))
|
||||||
|
{
|
||||||
|
// Need to do a lookup from the model.
|
||||||
|
$record = $this->getModel()->getItem($recordId);
|
||||||
|
|
||||||
|
if (empty($record))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$ownerId = $record->created_by;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the owner matches 'me' then allow.
|
||||||
|
if ($ownerId == $user->id)
|
||||||
|
{
|
||||||
|
if ($user->authorise('core.edit.own', 'com_extensiondistributor'))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Since there is no permission, revert to the component permissions.
|
||||||
|
return parent::allowEdit($data, $key);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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 1.6
|
||||||
|
*/
|
||||||
|
protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id')
|
||||||
|
{
|
||||||
|
// get the referral options (old method use return instead see parent)
|
||||||
|
$ref = $this->input->get('ref', 0, 'string');
|
||||||
|
$refid = $this->input->get('refid', 0, 'int');
|
||||||
|
|
||||||
|
// get redirect info.
|
||||||
|
$append = parent::getRedirectToItemAppend($recordId, $urlVar);
|
||||||
|
|
||||||
|
// set the referral options
|
||||||
|
if ($refid && $ref)
|
||||||
|
{
|
||||||
|
$append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append;
|
||||||
|
}
|
||||||
|
elseif ($ref)
|
||||||
|
{
|
||||||
|
$append = '&ref='. (string)$ref . $append;
|
||||||
|
}
|
||||||
|
|
||||||
|
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('Download', '', array());
|
||||||
|
|
||||||
|
// Preset the redirect
|
||||||
|
$this->setRedirect(JRoute::_('index.php?option=com_extensiondistributor&view=downloads' . $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 referral options
|
||||||
|
$this->ref = $this->input->get('ref', 0, 'word');
|
||||||
|
$this->refid = $this->input->get('refid', 0, 'int');
|
||||||
|
|
||||||
|
// Check if there is a return value
|
||||||
|
$return = $this->input->get('return', null, 'base64');
|
||||||
|
|
||||||
|
$cancel = parent::cancel($key);
|
||||||
|
|
||||||
|
if (!is_null($return) && JUri::isInternal(base64_decode($return)))
|
||||||
|
{
|
||||||
|
$redirect = base64_decode($return);
|
||||||
|
|
||||||
|
// Redirect to the return value.
|
||||||
|
$this->setRedirect(
|
||||||
|
JRoute::_(
|
||||||
|
$redirect, false
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
elseif ($this->refid && $this->ref)
|
||||||
|
{
|
||||||
|
$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
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
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 referral options
|
||||||
|
$this->ref = $this->input->get('ref', 0, 'word');
|
||||||
|
$this->refid = $this->input->get('refid', 0, 'int');
|
||||||
|
|
||||||
|
// Check if there is a return value
|
||||||
|
$return = $this->input->get('return', null, 'base64');
|
||||||
|
$canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return)));
|
||||||
|
|
||||||
|
if ($this->ref || $this->refid || $canReturn)
|
||||||
|
{
|
||||||
|
// to make sure the item is checkedin on redirect
|
||||||
|
$this->task = 'save';
|
||||||
|
}
|
||||||
|
|
||||||
|
$saved = parent::save($key, $urlVar);
|
||||||
|
|
||||||
|
// This is not needed since parent save already does this
|
||||||
|
// Due to the ref and refid implementation we need to add this
|
||||||
|
if ($canReturn)
|
||||||
|
{
|
||||||
|
$redirect = base64_decode($return);
|
||||||
|
|
||||||
|
// Redirect to the return value.
|
||||||
|
$this->setRedirect(
|
||||||
|
JRoute::_(
|
||||||
|
$redirect, false
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
elseif ($this->refid && $this->ref)
|
||||||
|
{
|
||||||
|
$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
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return $saved;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function that allows child controller access to model data
|
||||||
|
* after the data has been saved.
|
||||||
|
*
|
||||||
|
* @param JModel &$model The data model object.
|
||||||
|
* @param array $validData The validated data.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @since 11.1
|
||||||
|
*/
|
||||||
|
protected function postSaveHook(JModelLegacy $model, $validData = array())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
81
admin/controllers/downloads.php
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage downloads.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
use Joomla\CMS\MVC\Controller\AdminController;
|
||||||
|
use Joomla\Utilities\ArrayHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Downloads Admin Controller
|
||||||
|
*/
|
||||||
|
class ExtensiondistributorControllerDownloads extends AdminController
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* The prefix to use with controller messages.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
protected $text_prefix = 'COM_EXTENSIONDISTRIBUTOR_DOWNLOADS';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to get a model object, loading it if required.
|
||||||
|
*
|
||||||
|
* @param string $name The model name. Optional.
|
||||||
|
* @param string $prefix The class prefix. Optional.
|
||||||
|
* @param array $config Configuration array for model. Optional.
|
||||||
|
*
|
||||||
|
* @return JModelLegacy The model.
|
||||||
|
*
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
public function getModel($name = 'Download', $prefix = 'ExtensiondistributorModel', $config = array('ignore_request' => true))
|
||||||
|
{
|
||||||
|
return parent::getModel($name, $prefix, $config);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function deleteLogs()
|
||||||
|
{
|
||||||
|
JSession::checkToken() or jexit('Wrong token');
|
||||||
|
|
||||||
|
$app = Jfactory::getApplication();
|
||||||
|
$cid = $app->input->get('cid',null,'array');
|
||||||
|
$return = 'index.php?option=com_extensiondistributor&view=downloads';
|
||||||
|
// Preset the redirect
|
||||||
|
if (!is_null($return) && JUri::isInternal($return))
|
||||||
|
{
|
||||||
|
// Redirect to the return value.
|
||||||
|
$this->setRedirect(
|
||||||
|
JRoute::_(
|
||||||
|
$return, false
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$model = $this->getModel('download');
|
||||||
|
$model->publish($cid,-2);
|
||||||
|
$model->delete($cid);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
787
admin/controllers/extension.php
Normal file
@ -0,0 +1,787 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage extension.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
use Joomla\CMS\MVC\Controller\FormController;
|
||||||
|
use Joomla\Utilities\ArrayHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extension Form Controller
|
||||||
|
*/
|
||||||
|
class ExtensiondistributorControllerExtension extends FormController
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Current or most recently performed task.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
* @since 12.2
|
||||||
|
* @note Replaces _task.
|
||||||
|
*/
|
||||||
|
protected $task;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class constructor.
|
||||||
|
*
|
||||||
|
* @param array $config A named array of configuration variables.
|
||||||
|
*
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
public function __construct($config = array())
|
||||||
|
{
|
||||||
|
$this->view_list = 'Extensions'; // safeguard for setting the return view listing to the main view.
|
||||||
|
parent::__construct($config);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function download()
|
||||||
|
{
|
||||||
|
JSession::checkToken('get') or jexit('Wrong token');
|
||||||
|
|
||||||
|
global $cparams;
|
||||||
|
$app = JFactory::getApplication();
|
||||||
|
$extensionId = (int) $app->input->get('extension');
|
||||||
|
$packageId = (int) $app->input->get('package');
|
||||||
|
$releaseId = (int) $app->input->get('release');
|
||||||
|
|
||||||
|
// We check if a release ID was provided or we get the latest one
|
||||||
|
if ($releaseId)
|
||||||
|
{
|
||||||
|
$latest = new stdClass();
|
||||||
|
$latest->file = ExtensiondistributorHelper::getVar(
|
||||||
|
'release', $releaseId, 'id', 'file'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ($extensionId > 0)
|
||||||
|
{
|
||||||
|
$latest = ExtensiondistributorHelper::getReleases(
|
||||||
|
$extensionId, 'extension', true
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$latest = ExtensiondistributorHelper::getReleases(
|
||||||
|
$packageId, 'package', true
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$folder = $cparams->get('releases_directory');
|
||||||
|
$filename = $latest->file;
|
||||||
|
$folder = JPath::clean(JPATH_SITE . '/' . $folder . '/');
|
||||||
|
|
||||||
|
$file = $folder . $filename;
|
||||||
|
$size = filesize($file);
|
||||||
|
|
||||||
|
header('Content-Description: File Transfer');
|
||||||
|
header('Content-Type: application/octet-stream');
|
||||||
|
header("Content-Transfer-Encoding: Binary");
|
||||||
|
header('Content-Disposition: attachment; filename="' . $filename . '"');
|
||||||
|
header('Expires: 0');
|
||||||
|
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
|
||||||
|
header('Pragma: public');
|
||||||
|
header('Content-Length: ' . $size);
|
||||||
|
ob_clean();
|
||||||
|
flush();
|
||||||
|
readfile($file);
|
||||||
|
|
||||||
|
jexit();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function uploadFile()
|
||||||
|
{
|
||||||
|
JSession::checkToken('get') or jexit('Wrong token');
|
||||||
|
|
||||||
|
$app = JFactory::getApplication();
|
||||||
|
global $cparams;
|
||||||
|
$release = $cparams->get('releases_directory', 'packages');
|
||||||
|
$jcb = $cparams->get('jcb_directory', 'jcb');
|
||||||
|
$import = $cparams->get('import_directory', 'importfolder');
|
||||||
|
|
||||||
|
$type = $app->input->get('type', 'release');
|
||||||
|
$path = JPath::clean(JPATH_SITE . '/' . ${$type});
|
||||||
|
$filename = '';
|
||||||
|
|
||||||
|
$userfile = array();
|
||||||
|
foreach ($_FILES as $name => $file)
|
||||||
|
{
|
||||||
|
foreach ($file as $property => $keys)
|
||||||
|
{
|
||||||
|
foreach ($keys as $key => $value)
|
||||||
|
{
|
||||||
|
$userfile[$name][$key][$property] = $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$userfile = $userfile['files'][0];
|
||||||
|
$model = $this->getModel('extension');
|
||||||
|
$package = $model->uploadFile($userfile);
|
||||||
|
|
||||||
|
// Cette partie est empruntée au com_media de Joomla
|
||||||
|
$extension = strtolower($package['format']);
|
||||||
|
$filename = JFile::makeSafe($package['packagename']);
|
||||||
|
$filename = str_replace('.' . $package['format'], '', $filename);
|
||||||
|
$filename = JStringPunycode::toPunycode($filename);
|
||||||
|
$filename = preg_replace(
|
||||||
|
array("/[\\s]/", '/[^a-zA-Z0-9_\-]/'), array('_', ''), $filename
|
||||||
|
) . '.' . $extension;
|
||||||
|
// Fin de l'emprunt
|
||||||
|
|
||||||
|
// move packages to the correct directory
|
||||||
|
$final_dest = $path . DIRECTORY_SEPARATOR . $filename;
|
||||||
|
JFile::move($package['dir'], $final_dest);
|
||||||
|
|
||||||
|
echo json_encode($package);
|
||||||
|
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getImportFilesList()
|
||||||
|
{
|
||||||
|
JSession::checkToken('get') or jexit('Wrong token');
|
||||||
|
|
||||||
|
global $cparams;
|
||||||
|
$app = JFactory::getApplication();
|
||||||
|
$import = $cparams->get('import_directory', 'importfolder');
|
||||||
|
$path = JPath::clean(JPATH_SITE . '/' . $import);
|
||||||
|
$files = JFolder::files($path, '.zip', false, true);
|
||||||
|
|
||||||
|
echo JLayoutHelper::render('importfiles', array($files));
|
||||||
|
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function importExtensions()
|
||||||
|
{
|
||||||
|
JSession::checkToken('get') or jexit('Wrong token');
|
||||||
|
|
||||||
|
global $cparams;
|
||||||
|
$app = JFactory::getApplication();
|
||||||
|
$folder = JPATH_SITE . '/' . $cparams->get(
|
||||||
|
'import_directory', 'extmanagerimport'
|
||||||
|
);
|
||||||
|
$category = $cparams->get('catid');
|
||||||
|
$file = $this->input->get('file', null, 'base64');
|
||||||
|
if (!is_null($file))
|
||||||
|
{
|
||||||
|
$files[] = base64_decode($file);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$files = JFolder::files($folder, '.zip', false, true);
|
||||||
|
}
|
||||||
|
// Check if there is a return value
|
||||||
|
$return = $this->input->get('return', null, 'base64');
|
||||||
|
// Preset the redirect
|
||||||
|
if (!is_null($return) && JUri::isInternal(base64_decode($return)))
|
||||||
|
{
|
||||||
|
$redirect = base64_decode($return);
|
||||||
|
|
||||||
|
// Redirect to the return value.
|
||||||
|
$this->setRedirect(
|
||||||
|
JRoute::_(
|
||||||
|
$redirect, false
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if ($category === null)
|
||||||
|
{
|
||||||
|
$app->enqueueMessage(
|
||||||
|
'You have to choose the import category in the component configuration',
|
||||||
|
'error'
|
||||||
|
);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ExtensiondistributorHelper::checkArray($files))
|
||||||
|
{
|
||||||
|
foreach ($files as $i => $file)
|
||||||
|
{
|
||||||
|
$this->importExtension($file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function importExtension($file)
|
||||||
|
{
|
||||||
|
global $cparams;
|
||||||
|
$app = JFactory::getApplication();
|
||||||
|
$packages = $cparams->get('releases_directory', 'packages');
|
||||||
|
$packages_path = JPath::clean(JPATH_SITE . '/' . $packages . '/');
|
||||||
|
$folder = JPATH_SITE . '/' . $cparams->get(
|
||||||
|
'import_directory', 'extmanagerimport'
|
||||||
|
);
|
||||||
|
$category = $cparams->get('catid');
|
||||||
|
$icon_failed = '<span class="icon-warning"></span> ';
|
||||||
|
$icon_success = '<span class="icon-checkmark"></span> ';
|
||||||
|
$success = true;
|
||||||
|
|
||||||
|
// First extract zip file
|
||||||
|
$zip = new ZipArchive();
|
||||||
|
$res = $zip->open($file);
|
||||||
|
if ($res === true)
|
||||||
|
{
|
||||||
|
$zip->extractTo($folder . '/tmp');
|
||||||
|
$zip->close();
|
||||||
|
$msg[] = sprintf(
|
||||||
|
'File <b>%s</b> successfully extracted',
|
||||||
|
pathinfo($file)['filename']
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$msg[] = sprintf('Cannot extract file <b>%s</b>');
|
||||||
|
}
|
||||||
|
// Check if there's an xml file in the tmp folder
|
||||||
|
$manifest = JFolder::files($folder . '/tmp', '.xml', false, true);
|
||||||
|
if (ExtensiondistributorHelper::checkArray($manifest))
|
||||||
|
{
|
||||||
|
$extfolder = $folder . '/tmp/';
|
||||||
|
$manifest = $manifest[0];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Should be in a subfolder
|
||||||
|
if (JFolder::exists($folder . '/tmp/__MACOSX'))
|
||||||
|
{
|
||||||
|
// Have to find something more global
|
||||||
|
JFolder::delete($folder . '/tmp/__MACOSX');
|
||||||
|
}
|
||||||
|
// Find the new folder
|
||||||
|
$extracted = JFolder::folders($folder . '/tmp');
|
||||||
|
$extracted = $extracted[0];
|
||||||
|
$extfolder = $folder . '/tmp/' . $extracted;
|
||||||
|
// Get the manifest
|
||||||
|
$manifest = JFolder::files($extfolder, '.xml', false, true);
|
||||||
|
$manifest = $manifest[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Try to find a language directory in the install folder
|
||||||
|
$language_dir = JFolder::folders($extfolder, 'lang(.*)', true, true);
|
||||||
|
if (ExtensiondistributorHelper::checkArray($language_dir))
|
||||||
|
{
|
||||||
|
// Find a file
|
||||||
|
$language_file = JFolder::files($language_dir[0], '.', true);
|
||||||
|
if (ExtensiondistributorHelper::checkArray($language_file))
|
||||||
|
{
|
||||||
|
$language_file = $language_file[0];
|
||||||
|
$ext = explode('.', $language_file);
|
||||||
|
// Now we can load the extension language file
|
||||||
|
$language = JFactory::getLanguage();
|
||||||
|
$ext = $ext[1];
|
||||||
|
$base_dir = str_replace('/language', '', $language_dir[0]);
|
||||||
|
$language_tag = null;
|
||||||
|
$reload = true;
|
||||||
|
$language->load($ext, $base_dir, $language_tag, $reload);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Read the XML data
|
||||||
|
$xml = simplexml_load_file($manifest);
|
||||||
|
|
||||||
|
$extension = array();
|
||||||
|
$extension['type'] = (string) $xml['type'];
|
||||||
|
$extension['group'] = (string) $xml['group'];
|
||||||
|
$extension['client'] = (string) $xml['client'];
|
||||||
|
$extension['name'] = JText::_((string) $xml->name);
|
||||||
|
$extension['description'] = JText::_((string) $xml->description);
|
||||||
|
|
||||||
|
if ($extension['type'] === 'plugin')
|
||||||
|
{
|
||||||
|
$extension['element'] = (string) $xml->files->filename['plugin'];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$extension['element'] = strtolower((string) $xml->name);
|
||||||
|
}
|
||||||
|
|
||||||
|
$release = array();
|
||||||
|
$release['version_number'] = (string) $xml->version;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
$reldate = JFactory::getDate((string) $xml->creationDate)->toSql();
|
||||||
|
}
|
||||||
|
catch (Exception $e)
|
||||||
|
{
|
||||||
|
$reldate = JFactory::getDate()->toSql();
|
||||||
|
}
|
||||||
|
|
||||||
|
$release['release_date'] = $reldate;
|
||||||
|
$release['file'] = pathinfo($file)['basename'];
|
||||||
|
|
||||||
|
// We check if the extension already exists
|
||||||
|
$extensionId = ExtensiondistributorHelper::isExtension(
|
||||||
|
$extension['type'], $extension['element'], $extension['group'],
|
||||||
|
$extension['client']
|
||||||
|
);
|
||||||
|
if (!$extensionId)
|
||||||
|
{
|
||||||
|
// If not we create it
|
||||||
|
$model = ExtensiondistributorHelper::getModel('extension');
|
||||||
|
$element = $model->getItem();
|
||||||
|
// Extension
|
||||||
|
$element->name = $extension['name'];
|
||||||
|
$element->type = $extension['type'];
|
||||||
|
$element->element = $extension['element'];
|
||||||
|
$element->group = $extension['group'];
|
||||||
|
$element->client = $extension['client'];
|
||||||
|
$element->description = $extension['description'];
|
||||||
|
$element->keepfilename = $cparams->get('keepfilename') ? 1 : 0;
|
||||||
|
$element->newfilename = $cparams->get('newfilename');
|
||||||
|
$element->created_by = JFactory::getUser()->id;
|
||||||
|
$element->created = JFactory::getDate()->toSql();
|
||||||
|
$element->alias = JFilterOutput::stringURLSafe(
|
||||||
|
$element->name
|
||||||
|
);
|
||||||
|
$element->update = JUri::root() . 'updates/' . $element->alias
|
||||||
|
. '.xml';
|
||||||
|
$element->catid = $category;
|
||||||
|
// Release
|
||||||
|
$element->version_number = $release['version_number'];
|
||||||
|
$element->release_date = $release['release_date'];
|
||||||
|
unset($element->tags);
|
||||||
|
|
||||||
|
if ($model->save((array) $element))
|
||||||
|
{
|
||||||
|
$extensionId = ExtensiondistributorHelper::extensionsLastId();
|
||||||
|
$msg[] = sprintf(
|
||||||
|
'%sExtension %s successfully created | id:%s',
|
||||||
|
$icon_success, $element->name, $extensionId
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$name = ExtensiondistributorHelper::getVar(
|
||||||
|
'extension', $extensionId, 'id', 'name'
|
||||||
|
);
|
||||||
|
$msg[] = sprintf(
|
||||||
|
'%sExtension %s already exists | id:%s', $icon_failed, $name,
|
||||||
|
$extensionId
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// We check if the release already exists
|
||||||
|
$releaseId = ExtensiondistributorHelper::isRelease(
|
||||||
|
$extensionId, $release['version_number']
|
||||||
|
);
|
||||||
|
if (!$releaseId)
|
||||||
|
{
|
||||||
|
// If not we create it
|
||||||
|
$model = ExtensiondistributorHelper::getModel('release');
|
||||||
|
$element = $model->getItem();
|
||||||
|
$element->extension = $extensionId;
|
||||||
|
$element->version_number = $release['version_number'];
|
||||||
|
$element->release_date = $release['release_date'];
|
||||||
|
$element->stability = $cparams->get('stability', 4);
|
||||||
|
$element->toolbar = 'NOPE';
|
||||||
|
$element->zip_content = 'EMPTY';
|
||||||
|
$element->reltype = $cparams->get('reltype', 'maintenance');
|
||||||
|
$element->created_by = JFactory::getUser()->id;
|
||||||
|
$element->created = JFactory::getDate()->toSql();
|
||||||
|
$element->file = $release['file'];
|
||||||
|
if (!$cparams->get('keepfilename'))
|
||||||
|
{
|
||||||
|
// We create the new filename
|
||||||
|
$extensionObject = ExtensiondistributorHelper::getExtensionObject(
|
||||||
|
$extensionId
|
||||||
|
);
|
||||||
|
$filename = ExtensiondistributorHelper::createExtensionFileName(
|
||||||
|
$extensionObject,
|
||||||
|
$element->version_number,
|
||||||
|
$element->stability,
|
||||||
|
$element->file
|
||||||
|
);
|
||||||
|
$element->file = $filename;
|
||||||
|
}
|
||||||
|
unset($element->tags);
|
||||||
|
|
||||||
|
if ($model->save((array) $element))
|
||||||
|
{
|
||||||
|
$msg[] = sprintf(
|
||||||
|
'%sRelease %s successfully created', $icon_success,
|
||||||
|
$element->version_number
|
||||||
|
);
|
||||||
|
// We move the releases file to its destination
|
||||||
|
JFile::move($file, $packages_path . $element->file);
|
||||||
|
// We delete the original file
|
||||||
|
if (JFile::exists($file))
|
||||||
|
{
|
||||||
|
JFile::delete($file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$version = ExtensiondistributorHelper::getVar(
|
||||||
|
'release', $releaseId, 'id', 'version_number'
|
||||||
|
);
|
||||||
|
$msg[] = sprintf(
|
||||||
|
'%sThe release %s exists already | id:%s', $icon_failed,
|
||||||
|
$version, $releaseId
|
||||||
|
);
|
||||||
|
$success = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$app->enqueueMessage(
|
||||||
|
implode('<br>', $msg), $success ? 'message' : 'error'
|
||||||
|
);
|
||||||
|
|
||||||
|
// We delete the temp folder
|
||||||
|
JFolder::delete($folder . '/tmp');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function deleteImportFiles()
|
||||||
|
{
|
||||||
|
JSession::checkToken('get') or jexit('Wrong token');
|
||||||
|
|
||||||
|
global $cparams;
|
||||||
|
$app = JFactory::getApplication();
|
||||||
|
$folder = JPATH_SITE . '/' . $cparams->get(
|
||||||
|
'import_directory', 'extmanagerimport'
|
||||||
|
);
|
||||||
|
$file = $this->input->get('file', null, 'base64');
|
||||||
|
if (!is_null($file))
|
||||||
|
{
|
||||||
|
$files[] = base64_decode($file);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$files = JFolder::files($folder, '.zip', false, true);
|
||||||
|
}
|
||||||
|
// Check if there is a return value
|
||||||
|
$return = $this->input->get('return', null, 'base64');
|
||||||
|
// Preset the redirect
|
||||||
|
if (!is_null($return) && JUri::isInternal(base64_decode($return)))
|
||||||
|
{
|
||||||
|
$redirect = base64_decode($return);
|
||||||
|
|
||||||
|
// Redirect to the return value.
|
||||||
|
$this->setRedirect(
|
||||||
|
JRoute::_(
|
||||||
|
$redirect, false
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ExtensiondistributorHelper::checkArray($files))
|
||||||
|
{
|
||||||
|
foreach ($files as $file)
|
||||||
|
{
|
||||||
|
if (JFile::delete($file))
|
||||||
|
{
|
||||||
|
$app->enqueueMessage(
|
||||||
|
sprintf(
|
||||||
|
'The file %s was successfully deleted',
|
||||||
|
pathinfo($file)['filename']
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$app->enqueueMessage(
|
||||||
|
sprintf(
|
||||||
|
'Cannot delete file %s', pathinfo($file)['filename']
|
||||||
|
), 'error'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$app->enqueueMessage('No files to delete', 'error');
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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())
|
||||||
|
{
|
||||||
|
// Get user object.
|
||||||
|
$user = JFactory::getUser();
|
||||||
|
|
||||||
|
// In the absense of better information, revert to the component permissions.
|
||||||
|
return parent::allowAdd($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method override to check if you can edit an existing record.
|
||||||
|
*
|
||||||
|
* @param array $data An array of input data.
|
||||||
|
* @param string $key The name of the key for the primary key.
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
protected function allowEdit($data = array(), $key = 'id')
|
||||||
|
{ // get user object.
|
||||||
|
$user = JFactory::getUser();
|
||||||
|
// get record id.
|
||||||
|
$recordId = (int) isset($data[$key]) ? $data[$key] : 0;
|
||||||
|
|
||||||
|
|
||||||
|
if ($recordId)
|
||||||
|
{
|
||||||
|
// The record has been set. Check the record permissions.
|
||||||
|
$permission = $user->authorise('core.edit', 'com_extensiondistributor.extension.' . (int) $recordId);
|
||||||
|
if (!$permission)
|
||||||
|
{
|
||||||
|
if ($user->authorise('core.edit.own', 'com_extensiondistributor.extension.' . $recordId))
|
||||||
|
{
|
||||||
|
// Fallback on edit.own. Now test the owner is the user.
|
||||||
|
$ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0;
|
||||||
|
if (empty($ownerId))
|
||||||
|
{
|
||||||
|
// Need to do a lookup from the model.
|
||||||
|
$record = $this->getModel()->getItem($recordId);
|
||||||
|
|
||||||
|
if (empty($record))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$ownerId = $record->created_by;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the owner matches 'me' then do the test.
|
||||||
|
if ($ownerId == $user->id)
|
||||||
|
{
|
||||||
|
if ($user->authorise('core.edit.own', 'com_extensiondistributor'))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Since there is no permission, revert to the component permissions.
|
||||||
|
return parent::allowEdit($data, $key);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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 1.6
|
||||||
|
*/
|
||||||
|
protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id')
|
||||||
|
{
|
||||||
|
// get the referral options (old method use return instead see parent)
|
||||||
|
$ref = $this->input->get('ref', 0, 'string');
|
||||||
|
$refid = $this->input->get('refid', 0, 'int');
|
||||||
|
|
||||||
|
// get redirect info.
|
||||||
|
$append = parent::getRedirectToItemAppend($recordId, $urlVar);
|
||||||
|
|
||||||
|
// set the referral options
|
||||||
|
if ($refid && $ref)
|
||||||
|
{
|
||||||
|
$append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append;
|
||||||
|
}
|
||||||
|
elseif ($ref)
|
||||||
|
{
|
||||||
|
$append = '&ref='. (string)$ref . $append;
|
||||||
|
}
|
||||||
|
|
||||||
|
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('Extension', '', array());
|
||||||
|
|
||||||
|
// Preset the redirect
|
||||||
|
$this->setRedirect(JRoute::_('index.php?option=com_extensiondistributor&view=extensions' . $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 referral options
|
||||||
|
$this->ref = $this->input->get('ref', 0, 'word');
|
||||||
|
$this->refid = $this->input->get('refid', 0, 'int');
|
||||||
|
|
||||||
|
// Check if there is a return value
|
||||||
|
$return = $this->input->get('return', null, 'base64');
|
||||||
|
|
||||||
|
$cancel = parent::cancel($key);
|
||||||
|
|
||||||
|
if (!is_null($return) && JUri::isInternal(base64_decode($return)))
|
||||||
|
{
|
||||||
|
$redirect = base64_decode($return);
|
||||||
|
|
||||||
|
// Redirect to the return value.
|
||||||
|
$this->setRedirect(
|
||||||
|
JRoute::_(
|
||||||
|
$redirect, false
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
elseif ($this->refid && $this->ref)
|
||||||
|
{
|
||||||
|
$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
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
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 referral options
|
||||||
|
$this->ref = $this->input->get('ref', 0, 'word');
|
||||||
|
$this->refid = $this->input->get('refid', 0, 'int');
|
||||||
|
|
||||||
|
// Check if there is a return value
|
||||||
|
$return = $this->input->get('return', null, 'base64');
|
||||||
|
$canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return)));
|
||||||
|
|
||||||
|
if ($this->ref || $this->refid || $canReturn)
|
||||||
|
{
|
||||||
|
// to make sure the item is checkedin on redirect
|
||||||
|
$this->task = 'save';
|
||||||
|
}
|
||||||
|
|
||||||
|
$saved = parent::save($key, $urlVar);
|
||||||
|
|
||||||
|
// This is not needed since parent save already does this
|
||||||
|
// Due to the ref and refid implementation we need to add this
|
||||||
|
if ($canReturn)
|
||||||
|
{
|
||||||
|
$redirect = base64_decode($return);
|
||||||
|
|
||||||
|
// Redirect to the return value.
|
||||||
|
$this->setRedirect(
|
||||||
|
JRoute::_(
|
||||||
|
$redirect, false
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
elseif ($this->refid && $this->ref)
|
||||||
|
{
|
||||||
|
$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
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return $saved;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function that allows child controller access to model data
|
||||||
|
* after the data has been saved.
|
||||||
|
*
|
||||||
|
* @param JModel &$model The data model object.
|
||||||
|
* @param array $validData The validated data.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @since 11.1
|
||||||
|
*/
|
||||||
|
protected function postSaveHook(JModelLegacy $model, $validData = array())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
33
admin/controllers/extensiondistributor.php
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage extensiondistributor.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
use Joomla\CMS\MVC\Controller\AdminController;
|
||||||
|
use Joomla\Utilities\ArrayHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extensiondistributor Admin Controller
|
||||||
|
*/
|
||||||
|
class ExtensiondistributorControllerExtensiondistributor extends AdminController
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
55
admin/controllers/extensions.php
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage extensions.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
use Joomla\CMS\MVC\Controller\AdminController;
|
||||||
|
use Joomla\Utilities\ArrayHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extensions Admin Controller
|
||||||
|
*/
|
||||||
|
class ExtensiondistributorControllerExtensions extends AdminController
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* The prefix to use with controller messages.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
protected $text_prefix = 'COM_EXTENSIONDISTRIBUTOR_EXTENSIONS';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to get a model object, loading it if required.
|
||||||
|
*
|
||||||
|
* @param string $name The model name. Optional.
|
||||||
|
* @param string $prefix The class prefix. Optional.
|
||||||
|
* @param array $config Configuration array for model. Optional.
|
||||||
|
*
|
||||||
|
* @return JModelLegacy The model.
|
||||||
|
*
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
public function getModel($name = 'Extension', $prefix = 'ExtensiondistributorModel', $config = array('ignore_request' => true))
|
||||||
|
{
|
||||||
|
return parent::getModel($name, $prefix, $config);
|
||||||
|
}
|
||||||
|
}
|
42
admin/controllers/import.php
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage import.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
use Joomla\CMS\MVC\Controller\BaseController;
|
||||||
|
use Joomla\Utilities\ArrayHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extensiondistributor Import Base Controller
|
||||||
|
*/
|
||||||
|
class ExtensiondistributorControllerImport extends BaseController
|
||||||
|
{
|
||||||
|
public function __construct($config)
|
||||||
|
{
|
||||||
|
parent::__construct($config);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function dashboard()
|
||||||
|
{
|
||||||
|
$this->setRedirect(JRoute::_('index.php?option=com_extensiondistributor', false));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
1
admin/controllers/index.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<html><body bgcolor="#FFFFFF"></body></html>
|
320
admin/controllers/key.php
Normal file
@ -0,0 +1,320 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage key.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
use Joomla\CMS\MVC\Controller\FormController;
|
||||||
|
use Joomla\Utilities\ArrayHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Key Form Controller
|
||||||
|
*/
|
||||||
|
class ExtensiondistributorControllerKey extends FormController
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Current or most recently performed task.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
* @since 12.2
|
||||||
|
* @note Replaces _task.
|
||||||
|
*/
|
||||||
|
protected $task;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class constructor.
|
||||||
|
*
|
||||||
|
* @param array $config A named array of configuration variables.
|
||||||
|
*
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
public function __construct($config = array())
|
||||||
|
{
|
||||||
|
$this->view_list = 'Keys'; // 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())
|
||||||
|
{
|
||||||
|
// Get user object.
|
||||||
|
$user = JFactory::getUser();
|
||||||
|
|
||||||
|
// In the absense of better information, revert to the component permissions.
|
||||||
|
return parent::allowAdd($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method override to check if you can edit an existing record.
|
||||||
|
*
|
||||||
|
* @param array $data An array of input data.
|
||||||
|
* @param string $key The name of the key for the primary key.
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
protected function allowEdit($data = array(), $key = 'id')
|
||||||
|
{
|
||||||
|
// get user object.
|
||||||
|
$user = JFactory::getUser();
|
||||||
|
// get record id.
|
||||||
|
$recordId = (int) isset($data[$key]) ? $data[$key] : 0;
|
||||||
|
|
||||||
|
|
||||||
|
if ($recordId)
|
||||||
|
{
|
||||||
|
// The record has been set. Check the record permissions.
|
||||||
|
$permission = $user->authorise('core.edit', 'com_extensiondistributor.key.' . (int) $recordId);
|
||||||
|
if (!$permission)
|
||||||
|
{
|
||||||
|
if ($user->authorise('core.edit.own', 'com_extensiondistributor.key.' . $recordId))
|
||||||
|
{
|
||||||
|
// Now test the owner is the user.
|
||||||
|
$ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0;
|
||||||
|
if (empty($ownerId))
|
||||||
|
{
|
||||||
|
// Need to do a lookup from the model.
|
||||||
|
$record = $this->getModel()->getItem($recordId);
|
||||||
|
|
||||||
|
if (empty($record))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$ownerId = $record->created_by;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the owner matches 'me' then allow.
|
||||||
|
if ($ownerId == $user->id)
|
||||||
|
{
|
||||||
|
if ($user->authorise('core.edit.own', 'com_extensiondistributor'))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Since there is no permission, revert to the component permissions.
|
||||||
|
return parent::allowEdit($data, $key);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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 1.6
|
||||||
|
*/
|
||||||
|
protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id')
|
||||||
|
{
|
||||||
|
// get the referral options (old method use return instead see parent)
|
||||||
|
$ref = $this->input->get('ref', 0, 'string');
|
||||||
|
$refid = $this->input->get('refid', 0, 'int');
|
||||||
|
|
||||||
|
// get redirect info.
|
||||||
|
$append = parent::getRedirectToItemAppend($recordId, $urlVar);
|
||||||
|
|
||||||
|
// set the referral options
|
||||||
|
if ($refid && $ref)
|
||||||
|
{
|
||||||
|
$append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append;
|
||||||
|
}
|
||||||
|
elseif ($ref)
|
||||||
|
{
|
||||||
|
$append = '&ref='. (string)$ref . $append;
|
||||||
|
}
|
||||||
|
|
||||||
|
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('Key', '', array());
|
||||||
|
|
||||||
|
// Preset the redirect
|
||||||
|
$this->setRedirect(JRoute::_('index.php?option=com_extensiondistributor&view=keys' . $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 referral options
|
||||||
|
$this->ref = $this->input->get('ref', 0, 'word');
|
||||||
|
$this->refid = $this->input->get('refid', 0, 'int');
|
||||||
|
|
||||||
|
// Check if there is a return value
|
||||||
|
$return = $this->input->get('return', null, 'base64');
|
||||||
|
|
||||||
|
$cancel = parent::cancel($key);
|
||||||
|
|
||||||
|
if (!is_null($return) && JUri::isInternal(base64_decode($return)))
|
||||||
|
{
|
||||||
|
$redirect = base64_decode($return);
|
||||||
|
|
||||||
|
// Redirect to the return value.
|
||||||
|
$this->setRedirect(
|
||||||
|
JRoute::_(
|
||||||
|
$redirect, false
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
elseif ($this->refid && $this->ref)
|
||||||
|
{
|
||||||
|
$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
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
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 referral options
|
||||||
|
$this->ref = $this->input->get('ref', 0, 'word');
|
||||||
|
$this->refid = $this->input->get('refid', 0, 'int');
|
||||||
|
|
||||||
|
// Check if there is a return value
|
||||||
|
$return = $this->input->get('return', null, 'base64');
|
||||||
|
$canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return)));
|
||||||
|
|
||||||
|
if ($this->ref || $this->refid || $canReturn)
|
||||||
|
{
|
||||||
|
// to make sure the item is checkedin on redirect
|
||||||
|
$this->task = 'save';
|
||||||
|
}
|
||||||
|
|
||||||
|
$saved = parent::save($key, $urlVar);
|
||||||
|
|
||||||
|
// This is not needed since parent save already does this
|
||||||
|
// Due to the ref and refid implementation we need to add this
|
||||||
|
if ($canReturn)
|
||||||
|
{
|
||||||
|
$redirect = base64_decode($return);
|
||||||
|
|
||||||
|
// Redirect to the return value.
|
||||||
|
$this->setRedirect(
|
||||||
|
JRoute::_(
|
||||||
|
$redirect, false
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
elseif ($this->refid && $this->ref)
|
||||||
|
{
|
||||||
|
$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
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return $saved;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function that allows child controller access to model data
|
||||||
|
* after the data has been saved.
|
||||||
|
*
|
||||||
|
* @param JModel &$model The data model object.
|
||||||
|
* @param array $validData The validated data.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @since 11.1
|
||||||
|
*/
|
||||||
|
protected function postSaveHook(JModelLegacy $model, $validData = array())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
55
admin/controllers/keys.php
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage keys.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
use Joomla\CMS\MVC\Controller\AdminController;
|
||||||
|
use Joomla\Utilities\ArrayHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Keys Admin Controller
|
||||||
|
*/
|
||||||
|
class ExtensiondistributorControllerKeys extends AdminController
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* The prefix to use with controller messages.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
protected $text_prefix = 'COM_EXTENSIONDISTRIBUTOR_KEYS';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to get a model object, loading it if required.
|
||||||
|
*
|
||||||
|
* @param string $name The model name. Optional.
|
||||||
|
* @param string $prefix The class prefix. Optional.
|
||||||
|
* @param array $config Configuration array for model. Optional.
|
||||||
|
*
|
||||||
|
* @return JModelLegacy The model.
|
||||||
|
*
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
public function getModel($name = 'Key', $prefix = 'ExtensiondistributorModel', $config = array('ignore_request' => true))
|
||||||
|
{
|
||||||
|
return parent::getModel($name, $prefix, $config);
|
||||||
|
}
|
||||||
|
}
|
187
admin/controllers/maintenance.php
Normal file
@ -0,0 +1,187 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage maintenance.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
use Joomla\CMS\MVC\Controller\BaseController;
|
||||||
|
use Joomla\Utilities\ArrayHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extensiondistributor Maintenance Base Controller
|
||||||
|
*/
|
||||||
|
class ExtensiondistributorControllerMaintenance extends BaseController
|
||||||
|
{
|
||||||
|
public function __construct($config)
|
||||||
|
{
|
||||||
|
parent::__construct($config);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function dashboard()
|
||||||
|
{
|
||||||
|
$this->setRedirect(JRoute::_('index.php?option=com_extensiondistributor', false));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function saveconfig()
|
||||||
|
{
|
||||||
|
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
|
||||||
|
|
||||||
|
global $cparams;
|
||||||
|
$componentid = JComponentHelper::getComponent('com_extensiondistributor')->id;
|
||||||
|
$app = JFactory::getApplication();
|
||||||
|
$return = 'index.php?option=com_extensiondistributor&view=maintenance';
|
||||||
|
$secure = $app->input->get('secure',0,'int') ? 'secure' : 'unsecure';
|
||||||
|
|
||||||
|
$this->setRedirect(
|
||||||
|
JRoute::_(
|
||||||
|
$return, false
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$old['releases_directory'] = JPath::clean(JPATH_SITE . '/' . $cparams->get('releases_directory','packages') . '/');
|
||||||
|
$old['jcb_directory'] = JPath::clean(JPATH_SITE . '/' . $cparams->get('jcb_directory','jcb') . '/');
|
||||||
|
$old['updates_directory'] = JPath::clean(JPATH_SITE . '/' . $cparams->get('updates_directory','updates') . '/');
|
||||||
|
$old['import_directory'] = JPath::clean(JPATH_SITE . '/' . $cparams->get('import_directory','extmanagerimport') . '/');
|
||||||
|
|
||||||
|
$new['releases_directory'] = JPath::clean(JPATH_SITE . '/' . $app->input->get('releases_directory',null,'string') . '/');
|
||||||
|
$new['jcb_directory'] = JPath::clean(JPATH_SITE . '/' . $app->input->get('jcb_directory',null,'string') . '/');
|
||||||
|
$new['updates_directory'] = JPath::clean(JPATH_SITE . '/' . $app->input->get('updates_directory',null,'string') . '/');
|
||||||
|
$new['import_directory'] = JPath::clean(JPATH_SITE . '/' . $app->input->get('import_directory',null,'string') . '/');
|
||||||
|
|
||||||
|
foreach ($old as $k => $v) {
|
||||||
|
if (!is_null($new[$k])) {
|
||||||
|
if ($k !== 'updates_directory') {
|
||||||
|
if (JFolder::exists($v))
|
||||||
|
{
|
||||||
|
if (!JFolder::exists($new[$k])) {
|
||||||
|
JFolder::create($new[$k]);
|
||||||
|
}
|
||||||
|
JFolder::move($v,$new[$k]);
|
||||||
|
ExtensiondistributorHelper::secureFolder($new[$k],$secure);
|
||||||
|
$cparams->set($k, $app->input->get($k,null,'string'));
|
||||||
|
$table = JTable::getInstance('extension');
|
||||||
|
$table->load($componentid);
|
||||||
|
$table->bind(array('params' => $cparams->toString()));
|
||||||
|
// Check for error
|
||||||
|
if (!$table->check()) {
|
||||||
|
$this->setError('lastcreatedate: check: ' . $table->getError());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// Save to database
|
||||||
|
if (!$table->store()) {
|
||||||
|
$this->setError('lastcreatedate: store: ' . $table->getError());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$app->enqueueMessage('Configuration successfully updated!');
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function renameAllFiles()
|
||||||
|
{
|
||||||
|
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
|
||||||
|
|
||||||
|
$return = 'index.php?option=com_extensiondistributor&view=maintenance';
|
||||||
|
|
||||||
|
$this->setRedirect(
|
||||||
|
JRoute::_(
|
||||||
|
$return, false
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$app = JFactory::getApplication();
|
||||||
|
$app->enqueueMessage('Renamed! (Not yet active)');
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function deleteFile()
|
||||||
|
{
|
||||||
|
JSession::checkToken('get') or jexit(JText::_('JINVALID_TOKEN'));
|
||||||
|
|
||||||
|
global $cparams;
|
||||||
|
$app = JFactory::getApplication();
|
||||||
|
$return = 'index.php?option=com_extensiondistributor&view=maintenance';
|
||||||
|
$path = JPATH_SITE . '/' . $cparams->get('releases_directory','packages') . '/';
|
||||||
|
$path = JPath::clean($path);
|
||||||
|
$filename = $app->input->get('id',null,'base64');
|
||||||
|
|
||||||
|
$this->setRedirect(
|
||||||
|
JRoute::_(
|
||||||
|
$return, false
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
if (is_null($filename)) {
|
||||||
|
$app->enqueueMessage('No file has been chosen','error');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!JFile::exists($path.base64_decode($filename))) {
|
||||||
|
$app->enqueueMessage('The file does not exist','error');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
JFile::delete($path.base64_decode($filename));
|
||||||
|
$app->enqueueMessage('File successfully deleted!');
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function deleteAllFiles()
|
||||||
|
{
|
||||||
|
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
|
||||||
|
|
||||||
|
global $cparams;
|
||||||
|
$app = JFactory::getApplication();
|
||||||
|
$return = 'index.php?option=com_extensiondistributor&view=maintenance';
|
||||||
|
$path = JPATH_SITE . '/' . $cparams->get('releases_directory','packages') . '/';
|
||||||
|
$path = JPath::clean($path);
|
||||||
|
|
||||||
|
$this->setRedirect(
|
||||||
|
JRoute::_(
|
||||||
|
$return, false
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$model = $this->getModel('maintenance');
|
||||||
|
$orphans = $model->getOrphans();
|
||||||
|
|
||||||
|
if (!ExtensiondistributorHelper::checkArray($orphans)) {
|
||||||
|
$app->enqueueMessage('Nothing to delete','error');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($orphans as $orphan) {
|
||||||
|
if (JFile::exists($path.$orphan)) {
|
||||||
|
JFile::delete($path.$orphan);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$app->enqueueMessage(sprintf('%s files successfully deleted!',count($orphans)));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
413
admin/controllers/package.php
Normal file
@ -0,0 +1,413 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage package.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
use Joomla\CMS\MVC\Controller\FormController;
|
||||||
|
use Joomla\Utilities\ArrayHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Package Form Controller
|
||||||
|
*/
|
||||||
|
class ExtensiondistributorControllerPackage extends FormController
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Current or most recently performed task.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
* @since 12.2
|
||||||
|
* @note Replaces _task.
|
||||||
|
*/
|
||||||
|
protected $task;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class constructor.
|
||||||
|
*
|
||||||
|
* @param array $config A named array of configuration variables.
|
||||||
|
*
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
public function __construct($config = array())
|
||||||
|
{
|
||||||
|
$this->view_list = 'Packages'; // safeguard for setting the return view listing to the main view.
|
||||||
|
parent::__construct($config);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function createXml()
|
||||||
|
{
|
||||||
|
JSession::checkToken('get') or jexit('Wrong token');
|
||||||
|
|
||||||
|
$app = JFactory::getApplication();
|
||||||
|
$release = $this->input->get('release', null, 'int');
|
||||||
|
|
||||||
|
// Check if there is a return value
|
||||||
|
$return = $this->input->get('return', null, 'base64');
|
||||||
|
// Preset the redirect
|
||||||
|
if (!is_null($return) && JUri::isInternal(base64_decode($return)))
|
||||||
|
{
|
||||||
|
$redirect = base64_decode($return);
|
||||||
|
// Redirect to the return value.
|
||||||
|
$this->setRedirect(
|
||||||
|
JRoute::_(
|
||||||
|
$redirect, false
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (is_null($release)) {
|
||||||
|
$app->enqueueMessage('No release selected','error');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$details = ExtensiondistributorHelper::getReleaseDetails($release);
|
||||||
|
global $cparams;
|
||||||
|
$update_path = JPath::clean(JPATH_SITE.'/'.$cparams->get('updates_directory','updates').'/');
|
||||||
|
$update_file = $update_path . $details->update;
|
||||||
|
$lists = ExtensiondistributorHelper::getApplicationLists();
|
||||||
|
$stability = strtolower($lists['stability'][$details->r_stability]['label']);
|
||||||
|
|
||||||
|
$xmldoc = new DOMDocument();
|
||||||
|
|
||||||
|
$xmldoc->encoding = 'UTF-8';
|
||||||
|
$xmldoc->xmlVersion = '1.0';
|
||||||
|
$xmldoc->formatOutput = true;
|
||||||
|
|
||||||
|
$xml_file_name = $update_file;
|
||||||
|
|
||||||
|
$root = $xmldoc->createElement('updates');
|
||||||
|
|
||||||
|
$update_node = $xmldoc->createElement('update');
|
||||||
|
$update_node->appendChild($xmldoc->createElement('name', $details->name));
|
||||||
|
$update_node->appendChild($xmldoc->createElement('description'))->appendChild($xmldoc->createCDATASection($details->description)); // => dynamic
|
||||||
|
$update_node->appendChild($xmldoc->createElement('element', 'pkg_'.$details->packagename));
|
||||||
|
$update_node->appendChild($xmldoc->createElement('type', 'package'));
|
||||||
|
|
||||||
|
$child_node_tags = $xmldoc->createElement('tags');
|
||||||
|
$child_node_tags->appendChild($xmldoc->createElement('tag', $stability));
|
||||||
|
$update_node->appendChild($child_node_tags);
|
||||||
|
|
||||||
|
$update_node->appendChild($xmldoc->createElement('client', 'site'));
|
||||||
|
$update_node->appendChild($xmldoc->createElement('version', $details->r_version_number));
|
||||||
|
$infourl = $xmldoc->createElement('infourl', $details->infourl);
|
||||||
|
$infourl->setAttributeNode(new DOMAttr('title', $details->author));
|
||||||
|
$update_node->appendChild($infourl);
|
||||||
|
|
||||||
|
$child_node_downloads = $xmldoc->createElement('downloads');
|
||||||
|
$downloadurl = $xmldoc->createElement('downloadurl');
|
||||||
|
$downloadurl->appendChild($xmldoc->createCDATASection($cparams->get('updateserver_url', JUri::root()).'index.php?option=com_extensiondistributor&task=package.update&release='.$details->r_id));
|
||||||
|
$downloadurl->setAttributeNode(new DOMAttr('type', 'full'));
|
||||||
|
$downloadurl->setAttributeNode(new DOMAttr('format', 'zip'));
|
||||||
|
$child_node_downloads->appendChild($downloadurl);
|
||||||
|
$update_node->appendChild($child_node_downloads);
|
||||||
|
|
||||||
|
$update_node->appendChild($xmldoc->createElement('maintainer', $details->packager));
|
||||||
|
$update_node->appendChild($xmldoc->createElement('maintainerurl', $details->packagerurl));
|
||||||
|
$targetplatform = $xmldoc->createElement('targetplatform');
|
||||||
|
$targetplatform->setAttributeNode(new DOMAttr('name', 'joomla'));
|
||||||
|
$targetplatform->setAttributeNode(new DOMAttr('version', $details->targetplatform));
|
||||||
|
$update_node->appendChild($targetplatform);
|
||||||
|
$update_node->appendChild($xmldoc->createElement('php_minimum', $details->php_minimum));
|
||||||
|
|
||||||
|
$root->appendChild($update_node);
|
||||||
|
|
||||||
|
$xmldoc->appendChild($root);
|
||||||
|
|
||||||
|
if ($xmldoc->save($xml_file_name)) {
|
||||||
|
$app->enqueueMessage(sprintf('File %s successfully updated', pathinfo($xml_file_name)['filename'].'.xml'));
|
||||||
|
} else {
|
||||||
|
$app->enqueueMessage(sprintf('Cannot create file %s', pathinfo($xml_file_name)['filename'].'.xml'), 'error');
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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())
|
||||||
|
{
|
||||||
|
// Get user object.
|
||||||
|
$user = JFactory::getUser();
|
||||||
|
// Access check.
|
||||||
|
$access = $user->authorise('package.access', 'com_extensiondistributor');
|
||||||
|
if (!$access)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// In the absense of better information, revert to the component permissions.
|
||||||
|
return parent::allowAdd($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method override to check if you can edit an existing record.
|
||||||
|
*
|
||||||
|
* @param array $data An array of input data.
|
||||||
|
* @param string $key The name of the key for the primary key.
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
protected function allowEdit($data = array(), $key = 'id')
|
||||||
|
{ // get user object.
|
||||||
|
$user = JFactory::getUser();
|
||||||
|
// get record id.
|
||||||
|
$recordId = (int) isset($data[$key]) ? $data[$key] : 0;
|
||||||
|
|
||||||
|
|
||||||
|
if ($recordId)
|
||||||
|
{
|
||||||
|
// The record has been set. Check the record permissions.
|
||||||
|
$permission = $user->authorise('core.edit', 'com_extensiondistributor.extension.' . (int) $recordId);
|
||||||
|
if (!$permission)
|
||||||
|
{
|
||||||
|
if ($user->authorise('core.edit.own', 'com_extensiondistributor.extension.' . $recordId))
|
||||||
|
{
|
||||||
|
// Fallback on edit.own. Now test the owner is the user.
|
||||||
|
$ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0;
|
||||||
|
if (empty($ownerId))
|
||||||
|
{
|
||||||
|
// Need to do a lookup from the model.
|
||||||
|
$record = $this->getModel()->getItem($recordId);
|
||||||
|
|
||||||
|
if (empty($record))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$ownerId = $record->created_by;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the owner matches 'me' then do the test.
|
||||||
|
if ($ownerId == $user->id)
|
||||||
|
{
|
||||||
|
if ($user->authorise('core.edit.own', 'com_extensiondistributor'))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Since there is no permission, revert to the component permissions.
|
||||||
|
return parent::allowEdit($data, $key);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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 1.6
|
||||||
|
*/
|
||||||
|
protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id')
|
||||||
|
{
|
||||||
|
// get the referral options (old method use return instead see parent)
|
||||||
|
$ref = $this->input->get('ref', 0, 'string');
|
||||||
|
$refid = $this->input->get('refid', 0, 'int');
|
||||||
|
|
||||||
|
// get redirect info.
|
||||||
|
$append = parent::getRedirectToItemAppend($recordId, $urlVar);
|
||||||
|
|
||||||
|
// set the referral options
|
||||||
|
if ($refid && $ref)
|
||||||
|
{
|
||||||
|
$append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append;
|
||||||
|
}
|
||||||
|
elseif ($ref)
|
||||||
|
{
|
||||||
|
$append = '&ref='. (string)$ref . $append;
|
||||||
|
}
|
||||||
|
|
||||||
|
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('Package', '', array());
|
||||||
|
|
||||||
|
// Preset the redirect
|
||||||
|
$this->setRedirect(JRoute::_('index.php?option=com_extensiondistributor&view=packages' . $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 referral options
|
||||||
|
$this->ref = $this->input->get('ref', 0, 'word');
|
||||||
|
$this->refid = $this->input->get('refid', 0, 'int');
|
||||||
|
|
||||||
|
// Check if there is a return value
|
||||||
|
$return = $this->input->get('return', null, 'base64');
|
||||||
|
|
||||||
|
$cancel = parent::cancel($key);
|
||||||
|
|
||||||
|
if (!is_null($return) && JUri::isInternal(base64_decode($return)))
|
||||||
|
{
|
||||||
|
$redirect = base64_decode($return);
|
||||||
|
|
||||||
|
// Redirect to the return value.
|
||||||
|
$this->setRedirect(
|
||||||
|
JRoute::_(
|
||||||
|
$redirect, false
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
elseif ($this->refid && $this->ref)
|
||||||
|
{
|
||||||
|
$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
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
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 referral options
|
||||||
|
$this->ref = $this->input->get('ref', 0, 'word');
|
||||||
|
$this->refid = $this->input->get('refid', 0, 'int');
|
||||||
|
|
||||||
|
// Check if there is a return value
|
||||||
|
$return = $this->input->get('return', null, 'base64');
|
||||||
|
$canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return)));
|
||||||
|
|
||||||
|
if ($this->ref || $this->refid || $canReturn)
|
||||||
|
{
|
||||||
|
// to make sure the item is checkedin on redirect
|
||||||
|
$this->task = 'save';
|
||||||
|
}
|
||||||
|
|
||||||
|
$saved = parent::save($key, $urlVar);
|
||||||
|
|
||||||
|
// This is not needed since parent save already does this
|
||||||
|
// Due to the ref and refid implementation we need to add this
|
||||||
|
if ($canReturn)
|
||||||
|
{
|
||||||
|
$redirect = base64_decode($return);
|
||||||
|
|
||||||
|
// Redirect to the return value.
|
||||||
|
$this->setRedirect(
|
||||||
|
JRoute::_(
|
||||||
|
$redirect, false
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
elseif ($this->refid && $this->ref)
|
||||||
|
{
|
||||||
|
$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
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return $saved;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function that allows child controller access to model data
|
||||||
|
* after the data has been saved.
|
||||||
|
*
|
||||||
|
* @param JModel &$model The data model object.
|
||||||
|
* @param array $validData The validated data.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @since 11.1
|
||||||
|
*/
|
||||||
|
protected function postSaveHook(JModelLegacy $model, $validData = array())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
55
admin/controllers/packages.php
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage packages.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
use Joomla\CMS\MVC\Controller\AdminController;
|
||||||
|
use Joomla\Utilities\ArrayHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Packages Admin Controller
|
||||||
|
*/
|
||||||
|
class ExtensiondistributorControllerPackages extends AdminController
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* The prefix to use with controller messages.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
protected $text_prefix = 'COM_EXTENSIONDISTRIBUTOR_PACKAGES';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to get a model object, loading it if required.
|
||||||
|
*
|
||||||
|
* @param string $name The model name. Optional.
|
||||||
|
* @param string $prefix The class prefix. Optional.
|
||||||
|
* @param array $config Configuration array for model. Optional.
|
||||||
|
*
|
||||||
|
* @return JModelLegacy The model.
|
||||||
|
*
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
public function getModel($name = 'Package', $prefix = 'ExtensiondistributorModel', $config = array('ignore_request' => true))
|
||||||
|
{
|
||||||
|
return parent::getModel($name, $prefix, $config);
|
||||||
|
}
|
||||||
|
}
|
429
admin/controllers/release.php
Normal file
@ -0,0 +1,429 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage release.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
use Joomla\CMS\MVC\Controller\FormController;
|
||||||
|
use Joomla\Utilities\ArrayHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Release Form Controller
|
||||||
|
*/
|
||||||
|
class ExtensiondistributorControllerRelease extends FormController
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Current or most recently performed task.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
* @since 12.2
|
||||||
|
* @note Replaces _task.
|
||||||
|
*/
|
||||||
|
protected $task;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class constructor.
|
||||||
|
*
|
||||||
|
* @param array $config A named array of configuration variables.
|
||||||
|
*
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
public function __construct($config = array())
|
||||||
|
{
|
||||||
|
$this->view_list = 'Releases'; // safeguard for setting the return view listing to the main view.
|
||||||
|
parent::__construct($config);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function changeState()
|
||||||
|
{
|
||||||
|
JSession::checkToken('get') or jexit('Wrong token');
|
||||||
|
|
||||||
|
$app = JFactory::getApplication();
|
||||||
|
$id = $this->input->get('id', null, 'int');
|
||||||
|
$state = $this->input->get('state', null, 'string');
|
||||||
|
$states = array(
|
||||||
|
'publish' => array(
|
||||||
|
'id' => 1,
|
||||||
|
'action' => 'published'
|
||||||
|
),
|
||||||
|
'unpublish' => array(
|
||||||
|
'id' => 0,
|
||||||
|
'action' => 'unpublished'
|
||||||
|
),
|
||||||
|
'trash' => array(
|
||||||
|
'id' => -2,
|
||||||
|
'action' => 'trashed'
|
||||||
|
)
|
||||||
|
);
|
||||||
|
$version = ExtensiondistributorHelper::getVar('release',$id,'id','version_number');
|
||||||
|
// Check if there is a return value
|
||||||
|
$return = $this->input->get('return', null, 'base64');
|
||||||
|
// Preset the redirect
|
||||||
|
if (!is_null($return) && JUri::isInternal(base64_decode($return)))
|
||||||
|
{
|
||||||
|
$redirect = base64_decode($return);
|
||||||
|
|
||||||
|
// Redirect to the return value.
|
||||||
|
$this->setRedirect(
|
||||||
|
JRoute::_(
|
||||||
|
$redirect, false
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$model = $this->getModel('release');
|
||||||
|
$pks = (array)$id;
|
||||||
|
$action = $states[$state]['action'];
|
||||||
|
try
|
||||||
|
{
|
||||||
|
$model->publish($pks, $states[$state]['id']);
|
||||||
|
$app->enqueueMessage(sprintf('%s was successfully %s', $version, $action));
|
||||||
|
}
|
||||||
|
catch (Exception $e)
|
||||||
|
{
|
||||||
|
$app->enqueueMessage($e->getMessage(),'error');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function reldelete()
|
||||||
|
{
|
||||||
|
JSession::checkToken('get') or jexit('Wrong token');
|
||||||
|
|
||||||
|
$app = JFactory::getApplication();
|
||||||
|
$id = $this->input->get('id', null, 'int');
|
||||||
|
$release = ExtensiondistributorHelper::getReleaseDetails($id);
|
||||||
|
$version = $release->r_version_number;
|
||||||
|
// Check if there is a return value
|
||||||
|
$return = $this->input->get('return', null, 'base64');
|
||||||
|
// Preset the redirect
|
||||||
|
if (!is_null($return) && JUri::isInternal(base64_decode($return)))
|
||||||
|
{
|
||||||
|
$redirect = base64_decode($return);
|
||||||
|
|
||||||
|
// Redirect to the return value.
|
||||||
|
$this->setRedirect(
|
||||||
|
JRoute::_(
|
||||||
|
$redirect, false
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$model = $this->getModel('release');
|
||||||
|
$pks = (array)$id;
|
||||||
|
$action = 'deleted';
|
||||||
|
try
|
||||||
|
{
|
||||||
|
$model->delete($pks);
|
||||||
|
$app->enqueueMessage(sprintf('%s was successfully %s', $version, $action));
|
||||||
|
// We need to update the related object
|
||||||
|
if ((int)$release->r_extension > 0) {
|
||||||
|
$object = 'extension';
|
||||||
|
$objectId = (int)$release->r_extension;
|
||||||
|
} else {
|
||||||
|
$object = 'package';
|
||||||
|
$objectId = (int)$release->r_package;
|
||||||
|
}
|
||||||
|
$last = ExtensiondistributorHelper::getReleases($objectId,$object,true);
|
||||||
|
$model = ExtensiondistributorHelper::getModel($object);
|
||||||
|
$element = $model->getItem($objectId);
|
||||||
|
$element->version_number = $last->version_number;
|
||||||
|
$element->release_date = $last->release_date;
|
||||||
|
unset($element->tags);
|
||||||
|
$model->save((array) $element);
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (Exception $e)
|
||||||
|
{
|
||||||
|
$app->enqueueMessage($e->getMessage(),'error');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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())
|
||||||
|
{
|
||||||
|
// Get user object.
|
||||||
|
$user = JFactory::getUser();
|
||||||
|
|
||||||
|
// In the absense of better information, revert to the component permissions.
|
||||||
|
return parent::allowAdd($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method override to check if you can edit an existing record.
|
||||||
|
*
|
||||||
|
* @param array $data An array of input data.
|
||||||
|
* @param string $key The name of the key for the primary key.
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
protected function allowEdit($data = array(), $key = 'id')
|
||||||
|
{
|
||||||
|
// get user object.
|
||||||
|
$user = JFactory::getUser();
|
||||||
|
// get record id.
|
||||||
|
$recordId = (int) isset($data[$key]) ? $data[$key] : 0;
|
||||||
|
|
||||||
|
|
||||||
|
if ($recordId)
|
||||||
|
{
|
||||||
|
// The record has been set. Check the record permissions.
|
||||||
|
$permission = $user->authorise('core.edit', 'com_extensiondistributor.release.' . (int) $recordId);
|
||||||
|
if (!$permission)
|
||||||
|
{
|
||||||
|
if ($user->authorise('core.edit.own', 'com_extensiondistributor.release.' . $recordId))
|
||||||
|
{
|
||||||
|
// Now test the owner is the user.
|
||||||
|
$ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0;
|
||||||
|
if (empty($ownerId))
|
||||||
|
{
|
||||||
|
// Need to do a lookup from the model.
|
||||||
|
$record = $this->getModel()->getItem($recordId);
|
||||||
|
|
||||||
|
if (empty($record))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$ownerId = $record->created_by;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the owner matches 'me' then allow.
|
||||||
|
if ($ownerId == $user->id)
|
||||||
|
{
|
||||||
|
if ($user->authorise('core.edit.own', 'com_extensiondistributor'))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Since there is no permission, revert to the component permissions.
|
||||||
|
return parent::allowEdit($data, $key);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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 1.6
|
||||||
|
*/
|
||||||
|
protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id')
|
||||||
|
{
|
||||||
|
// get the referral options (old method use return instead see parent)
|
||||||
|
$ref = $this->input->get('ref', 0, 'string');
|
||||||
|
$refid = $this->input->get('refid', 0, 'int');
|
||||||
|
|
||||||
|
// get redirect info.
|
||||||
|
$append = parent::getRedirectToItemAppend($recordId, $urlVar);
|
||||||
|
|
||||||
|
// set the referral options
|
||||||
|
if ($refid && $ref)
|
||||||
|
{
|
||||||
|
$append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append;
|
||||||
|
}
|
||||||
|
elseif ($ref)
|
||||||
|
{
|
||||||
|
$append = '&ref='. (string)$ref . $append;
|
||||||
|
}
|
||||||
|
|
||||||
|
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('Release', '', array());
|
||||||
|
|
||||||
|
// Preset the redirect
|
||||||
|
$this->setRedirect(JRoute::_('index.php?option=com_extensiondistributor&view=releases' . $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 referral options
|
||||||
|
$this->ref = $this->input->get('ref', 0, 'word');
|
||||||
|
$this->refid = $this->input->get('refid', 0, 'int');
|
||||||
|
|
||||||
|
// Check if there is a return value
|
||||||
|
$return = $this->input->get('return', null, 'base64');
|
||||||
|
|
||||||
|
$cancel = parent::cancel($key);
|
||||||
|
|
||||||
|
if (!is_null($return) && JUri::isInternal(base64_decode($return)))
|
||||||
|
{
|
||||||
|
$redirect = base64_decode($return);
|
||||||
|
|
||||||
|
// Redirect to the return value.
|
||||||
|
$this->setRedirect(
|
||||||
|
JRoute::_(
|
||||||
|
$redirect, false
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
elseif ($this->refid && $this->ref)
|
||||||
|
{
|
||||||
|
$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
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
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 referral options
|
||||||
|
$this->ref = $this->input->get('ref', 0, 'word');
|
||||||
|
$this->refid = $this->input->get('refid', 0, 'int');
|
||||||
|
|
||||||
|
// Check if there is a return value
|
||||||
|
$return = $this->input->get('return', null, 'base64');
|
||||||
|
$canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return)));
|
||||||
|
|
||||||
|
if ($this->ref || $this->refid || $canReturn)
|
||||||
|
{
|
||||||
|
// to make sure the item is checkedin on redirect
|
||||||
|
$this->task = 'save';
|
||||||
|
}
|
||||||
|
|
||||||
|
$saved = parent::save($key, $urlVar);
|
||||||
|
|
||||||
|
// This is not needed since parent save already does this
|
||||||
|
// Due to the ref and refid implementation we need to add this
|
||||||
|
if ($canReturn)
|
||||||
|
{
|
||||||
|
$redirect = base64_decode($return);
|
||||||
|
|
||||||
|
// Redirect to the return value.
|
||||||
|
$this->setRedirect(
|
||||||
|
JRoute::_(
|
||||||
|
$redirect, false
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
elseif ($this->refid && $this->ref)
|
||||||
|
{
|
||||||
|
$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
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return $saved;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function that allows child controller access to model data
|
||||||
|
* after the data has been saved.
|
||||||
|
*
|
||||||
|
* @param JModel &$model The data model object.
|
||||||
|
* @param array $validData The validated data.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @since 11.1
|
||||||
|
*/
|
||||||
|
protected function postSaveHook(JModelLegacy $model, $validData = array())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
55
admin/controllers/releases.php
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage releases.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
use Joomla\CMS\MVC\Controller\AdminController;
|
||||||
|
use Joomla\Utilities\ArrayHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Releases Admin Controller
|
||||||
|
*/
|
||||||
|
class ExtensiondistributorControllerReleases extends AdminController
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* The prefix to use with controller messages.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
protected $text_prefix = 'COM_EXTENSIONDISTRIBUTOR_RELEASES';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to get a model object, loading it if required.
|
||||||
|
*
|
||||||
|
* @param string $name The model name. Optional.
|
||||||
|
* @param string $prefix The class prefix. Optional.
|
||||||
|
* @param array $config Configuration array for model. Optional.
|
||||||
|
*
|
||||||
|
* @return JModelLegacy The model.
|
||||||
|
*
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
public function getModel($name = 'Release', $prefix = 'ExtensiondistributorModel', $config = array('ignore_request' => true))
|
||||||
|
{
|
||||||
|
return parent::getModel($name, $prefix, $config);
|
||||||
|
}
|
||||||
|
}
|
42
admin/controllers/statistics.php
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage statistics.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
use Joomla\CMS\MVC\Controller\BaseController;
|
||||||
|
use Joomla\Utilities\ArrayHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extensiondistributor Statistics Base Controller
|
||||||
|
*/
|
||||||
|
class ExtensiondistributorControllerStatistics extends BaseController
|
||||||
|
{
|
||||||
|
public function __construct($config)
|
||||||
|
{
|
||||||
|
parent::__construct($config);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function dashboard()
|
||||||
|
{
|
||||||
|
$this->setRedirect(JRoute::_('index.php?option=com_extensiondistributor', false));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
320
admin/controllers/subscription.php
Normal file
@ -0,0 +1,320 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage subscription.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
use Joomla\CMS\MVC\Controller\FormController;
|
||||||
|
use Joomla\Utilities\ArrayHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Subscription Form Controller
|
||||||
|
*/
|
||||||
|
class ExtensiondistributorControllerSubscription extends FormController
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Current or most recently performed task.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
* @since 12.2
|
||||||
|
* @note Replaces _task.
|
||||||
|
*/
|
||||||
|
protected $task;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class constructor.
|
||||||
|
*
|
||||||
|
* @param array $config A named array of configuration variables.
|
||||||
|
*
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
public function __construct($config = array())
|
||||||
|
{
|
||||||
|
$this->view_list = 'Subscriptions'; // 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())
|
||||||
|
{
|
||||||
|
// Get user object.
|
||||||
|
$user = JFactory::getUser();
|
||||||
|
|
||||||
|
// In the absense of better information, revert to the component permissions.
|
||||||
|
return parent::allowAdd($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method override to check if you can edit an existing record.
|
||||||
|
*
|
||||||
|
* @param array $data An array of input data.
|
||||||
|
* @param string $key The name of the key for the primary key.
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
protected function allowEdit($data = array(), $key = 'id')
|
||||||
|
{
|
||||||
|
// get user object.
|
||||||
|
$user = JFactory::getUser();
|
||||||
|
// get record id.
|
||||||
|
$recordId = (int) isset($data[$key]) ? $data[$key] : 0;
|
||||||
|
|
||||||
|
|
||||||
|
if ($recordId)
|
||||||
|
{
|
||||||
|
// The record has been set. Check the record permissions.
|
||||||
|
$permission = $user->authorise('core.edit', 'com_extensiondistributor.subscription.' . (int) $recordId);
|
||||||
|
if (!$permission)
|
||||||
|
{
|
||||||
|
if ($user->authorise('core.edit.own', 'com_extensiondistributor.subscription.' . $recordId))
|
||||||
|
{
|
||||||
|
// Now test the owner is the user.
|
||||||
|
$ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0;
|
||||||
|
if (empty($ownerId))
|
||||||
|
{
|
||||||
|
// Need to do a lookup from the model.
|
||||||
|
$record = $this->getModel()->getItem($recordId);
|
||||||
|
|
||||||
|
if (empty($record))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$ownerId = $record->created_by;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the owner matches 'me' then allow.
|
||||||
|
if ($ownerId == $user->id)
|
||||||
|
{
|
||||||
|
if ($user->authorise('core.edit.own', 'com_extensiondistributor'))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Since there is no permission, revert to the component permissions.
|
||||||
|
return parent::allowEdit($data, $key);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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 1.6
|
||||||
|
*/
|
||||||
|
protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id')
|
||||||
|
{
|
||||||
|
// get the referral options (old method use return instead see parent)
|
||||||
|
$ref = $this->input->get('ref', 0, 'string');
|
||||||
|
$refid = $this->input->get('refid', 0, 'int');
|
||||||
|
|
||||||
|
// get redirect info.
|
||||||
|
$append = parent::getRedirectToItemAppend($recordId, $urlVar);
|
||||||
|
|
||||||
|
// set the referral options
|
||||||
|
if ($refid && $ref)
|
||||||
|
{
|
||||||
|
$append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append;
|
||||||
|
}
|
||||||
|
elseif ($ref)
|
||||||
|
{
|
||||||
|
$append = '&ref='. (string)$ref . $append;
|
||||||
|
}
|
||||||
|
|
||||||
|
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('Subscription', '', array());
|
||||||
|
|
||||||
|
// Preset the redirect
|
||||||
|
$this->setRedirect(JRoute::_('index.php?option=com_extensiondistributor&view=subscriptions' . $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 referral options
|
||||||
|
$this->ref = $this->input->get('ref', 0, 'word');
|
||||||
|
$this->refid = $this->input->get('refid', 0, 'int');
|
||||||
|
|
||||||
|
// Check if there is a return value
|
||||||
|
$return = $this->input->get('return', null, 'base64');
|
||||||
|
|
||||||
|
$cancel = parent::cancel($key);
|
||||||
|
|
||||||
|
if (!is_null($return) && JUri::isInternal(base64_decode($return)))
|
||||||
|
{
|
||||||
|
$redirect = base64_decode($return);
|
||||||
|
|
||||||
|
// Redirect to the return value.
|
||||||
|
$this->setRedirect(
|
||||||
|
JRoute::_(
|
||||||
|
$redirect, false
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
elseif ($this->refid && $this->ref)
|
||||||
|
{
|
||||||
|
$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
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
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 referral options
|
||||||
|
$this->ref = $this->input->get('ref', 0, 'word');
|
||||||
|
$this->refid = $this->input->get('refid', 0, 'int');
|
||||||
|
|
||||||
|
// Check if there is a return value
|
||||||
|
$return = $this->input->get('return', null, 'base64');
|
||||||
|
$canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return)));
|
||||||
|
|
||||||
|
if ($this->ref || $this->refid || $canReturn)
|
||||||
|
{
|
||||||
|
// to make sure the item is checkedin on redirect
|
||||||
|
$this->task = 'save';
|
||||||
|
}
|
||||||
|
|
||||||
|
$saved = parent::save($key, $urlVar);
|
||||||
|
|
||||||
|
// This is not needed since parent save already does this
|
||||||
|
// Due to the ref and refid implementation we need to add this
|
||||||
|
if ($canReturn)
|
||||||
|
{
|
||||||
|
$redirect = base64_decode($return);
|
||||||
|
|
||||||
|
// Redirect to the return value.
|
||||||
|
$this->setRedirect(
|
||||||
|
JRoute::_(
|
||||||
|
$redirect, false
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
elseif ($this->refid && $this->ref)
|
||||||
|
{
|
||||||
|
$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
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return $saved;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function that allows child controller access to model data
|
||||||
|
* after the data has been saved.
|
||||||
|
*
|
||||||
|
* @param JModel &$model The data model object.
|
||||||
|
* @param array $validData The validated data.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @since 11.1
|
||||||
|
*/
|
||||||
|
protected function postSaveHook(JModelLegacy $model, $validData = array())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
55
admin/controllers/subscriptions.php
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage subscriptions.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
use Joomla\CMS\MVC\Controller\AdminController;
|
||||||
|
use Joomla\Utilities\ArrayHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Subscriptions Admin Controller
|
||||||
|
*/
|
||||||
|
class ExtensiondistributorControllerSubscriptions extends AdminController
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* The prefix to use with controller messages.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
protected $text_prefix = 'COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to get a model object, loading it if required.
|
||||||
|
*
|
||||||
|
* @param string $name The model name. Optional.
|
||||||
|
* @param string $prefix The class prefix. Optional.
|
||||||
|
* @param array $config Configuration array for model. Optional.
|
||||||
|
*
|
||||||
|
* @return JModelLegacy The model.
|
||||||
|
*
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
public function getModel($name = 'Subscription', $prefix = 'ExtensiondistributorModel', $config = array('ignore_request' => true))
|
||||||
|
{
|
||||||
|
return parent::getModel($name, $prefix, $config);
|
||||||
|
}
|
||||||
|
}
|
51
admin/extensiondistributor.php
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage extensiondistributor.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Access check.
|
||||||
|
if (!JFactory::getUser()->authorise('core.manage', 'com_extensiondistributor'))
|
||||||
|
{
|
||||||
|
throw new JAccessExceptionNotallowed(JText::_('JERROR_ALERTNOAUTHOR'), 403);
|
||||||
|
};
|
||||||
|
|
||||||
|
// Add CSS file for all pages
|
||||||
|
$document = JFactory::getDocument();
|
||||||
|
$document->addStyleSheet('components/com_extensiondistributor/assets/css/admin.css');
|
||||||
|
$document->addScript('components/com_extensiondistributor/assets/js/admin.js');
|
||||||
|
|
||||||
|
// require helper files
|
||||||
|
JLoader::register('ExtensiondistributorHelper', __DIR__ . '/helpers/extensiondistributor.php');
|
||||||
|
JLoader::register('JHtmlBatch_', __DIR__ . '/helpers/html/batch_.php');
|
||||||
|
|
||||||
|
// Trigger the Global Admin Event
|
||||||
|
ExtensiondistributorHelper::globalEvent($document);
|
||||||
|
|
||||||
|
// Get an instance of the controller prefixed by Extensiondistributor
|
||||||
|
$controller = JControllerLegacy::getInstance('Extensiondistributor');
|
||||||
|
|
||||||
|
// Perform the Request task
|
||||||
|
$controller->execute(JFactory::getApplication()->input->get('task'));
|
||||||
|
|
||||||
|
// Redirect if set by the controller
|
||||||
|
$controller->redirect();
|
2352
admin/helpers/extensiondistributor.php
Normal file
80
admin/helpers/headercheck.php
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage headercheck.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
class extensiondistributorHeaderCheck
|
||||||
|
{
|
||||||
|
function js_loaded($script_name)
|
||||||
|
{
|
||||||
|
// UIkit check point
|
||||||
|
if (strpos($script_name,'uikit') !== false)
|
||||||
|
{
|
||||||
|
$app = JFactory::getApplication();
|
||||||
|
$getTemplateName = $app->getTemplate('template')->template;
|
||||||
|
|
||||||
|
if (strpos($getTemplateName,'yoo') !== false)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$document = JFactory::getDocument();
|
||||||
|
$head_data = $document->getHeadData();
|
||||||
|
foreach (array_keys($head_data['scripts']) as $script)
|
||||||
|
{
|
||||||
|
if (stristr($script, $script_name))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function css_loaded($script_name)
|
||||||
|
{
|
||||||
|
// UIkit check point
|
||||||
|
if (strpos($script_name,'uikit') !== false)
|
||||||
|
{
|
||||||
|
$app = JFactory::getApplication();
|
||||||
|
$getTemplateName = $app->getTemplate('template')->template;
|
||||||
|
|
||||||
|
if (strpos($getTemplateName,'yoo') !== false)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$document = JFactory::getDocument();
|
||||||
|
$head_data = $document->getHeadData();
|
||||||
|
|
||||||
|
foreach (array_keys($head_data['styleSheets']) as $script)
|
||||||
|
{
|
||||||
|
if (stristr($script, $script_name))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
87
admin/helpers/html/batch_.php
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage batch_.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('JPATH_PLATFORM') or die;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Utility class to render a list view batch selection options
|
||||||
|
*
|
||||||
|
* @since 3.0
|
||||||
|
*/
|
||||||
|
abstract class JHtmlBatch_
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* ListSelection
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
* @since 3.0
|
||||||
|
*/
|
||||||
|
protected static $ListSelection = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Render the batch selection options.
|
||||||
|
*
|
||||||
|
* @return string The necessary HTML to display the batch selection options
|
||||||
|
*
|
||||||
|
* @since 3.0
|
||||||
|
*/
|
||||||
|
public static function render()
|
||||||
|
{
|
||||||
|
// Collect display data
|
||||||
|
$data = new stdClass;
|
||||||
|
$data->ListSelection = static::getListSelection();
|
||||||
|
|
||||||
|
// Create a layout object and ask it to render the batch selection options
|
||||||
|
$layout = new JLayoutFile('batchselection');
|
||||||
|
$batchHtml = $layout->render($data);
|
||||||
|
|
||||||
|
return $batchHtml;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to add a list selection to the batch modal
|
||||||
|
*
|
||||||
|
* @param string $label Label for the menu item.
|
||||||
|
* @param string $name Name for the filter. Also used as id.
|
||||||
|
* @param string $options Options for the select field.
|
||||||
|
* @param bool $noDefault Don't the label as the empty option
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @since 3.0
|
||||||
|
*/
|
||||||
|
public static function addListSelection($label, $name, $options, $noDefault = false)
|
||||||
|
{
|
||||||
|
array_push(static::$ListSelection, array('label' => $label, 'name' => $name, 'options' => $options, 'noDefault' => $noDefault));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an array of all ListSelection
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*
|
||||||
|
* @since 3.0
|
||||||
|
*/
|
||||||
|
public static function getListSelection()
|
||||||
|
{
|
||||||
|
return static::$ListSelection;
|
||||||
|
}
|
||||||
|
}
|
1
admin/helpers/html/index.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<html><body bgcolor="#FFFFFF"></body></html>
|
1
admin/helpers/index.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<html><body bgcolor="#FFFFFF"></body></html>
|
1
admin/index.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<html><body bgcolor="#FFFFFF"></body></html>
|
714
admin/language/en-GB/en-GB.com_extensiondistributor.ini
Normal file
@ -0,0 +1,714 @@
|
|||||||
|
COM_EXTENSIONDISTRIBUTOR="Extension Distributor"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_ALL_PACKAGES="All packages"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_ARCHIVED="Archived"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_AUTHOR="Author"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_BACK="Back"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CLOSE_NEW="Close & New"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_ALPHA="Alpha"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_AUTHOR="Author Info"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_AUTHOREMAIL_HINT="your@email.com"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_AUTHOREMAIL_LABEL="Author Email"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_AUTHOREMAIL_MESSAGE="Error! Please add some text here."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_AUTHORURL_HINT="https://agerix.fr"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_AUTHORURL_LABEL="Author URL"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_AUTHOR_EMAIL_DESC="The email address of the author of this component."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_AUTHOR_EMAIL_LABEL="Author Email"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_AUTHOR_LABEL="Author"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_AUTHOR_NAME_DESC="The name of the author of this component."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_AUTHOR_NAME_LABEL="Author Name"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_BETA="Beta"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_CATID_DESCRIPTION="Select one of the following categories"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_CATID_LABEL="Import category"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_CHECK_TIMER_DESC="Set the intervals for the auto checkin fuction of tables that checks out the items to an user."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_CHECK_TIMER_LABEL="Check in timer"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_CHECK_TIMER_OPTION_FIVE="Once a week"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_CHECK_TIMER_OPTION_FOUR="Every second day"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_CHECK_TIMER_OPTION_ONE="Every five hours"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_CHECK_TIMER_OPTION_SIX="Never"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_CHECK_TIMER_OPTION_THREE="Once a day"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_CHECK_TIMER_OPTION_TWO="Every twelve hours"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_COPYRIGHT_LABEL="Copyright"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_DEVELOPMENT="Development"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_DIRECTORIES="Directories"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_GLOBAL_DESC="The Global Parameters"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_GLOBAL_LABEL="Global"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_IMPORT="Import"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_IMPORT_DIRECTORY_LABEL="Import directory path"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_INFOURL_LABEL="Info URL"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_JCB_DIRECTORY_LABEL="JCB directory path"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_KEEPFILENAME_LABEL="Keep original filename"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_LICENSE_LABEL="License"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_MAINTENANCE="Maintenance"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_NEWFILENAME_DESCRIPTION="You can define your own pattern in this field. The available placeholders are:<br>{type} : The type (3 letters)<br>{element} : The element<br>{_group} : The group (conditionnal)<br>{group} : The group (always displayed)<br>{_client} : The client (conditionnal)<br>{client} : The client (always displayed)<br>{major} : Version major<br>{minor} : Version major<br>{release} : Version release<br>{stability} : Stability level<br>Note: for component and modules the com_ and mod_ prefix are removed. The conditionnal placeholders are remove if the data is empty."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_NEWFILENAME_LABEL="Filename pattern"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_NEW_VERSION="New version"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_NO="No"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_NOTE_PATH_DESCRIPTION="The directory configuration should be set in the maintenance tab. This ensures that changing the path will move folder together with its content."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_PACKAGERURL_HINT="https://agerix.fr"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_PACKAGERURL_LABEL="Packager URL"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_PACKAGER_LABEL="Packager"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_PACKAGES="Packages"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_PHP_MINIMUM_LABEL="PHP minimum"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_PLEASE_SELECT="Please select"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_RC="RC"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_RELEASES_DIRECTORY_LABEL="Releases directory path"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_RELTYPE_LABEL="Release type"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_SECURITY="Security"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_SERVER_NAME_LABEL="Update server name"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_STABILITY_LABEL="Stability level"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_STABLE="Stable"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_TARGETPLATFORM_DESCRIPTION="You can use a REGEX"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_TARGETPLATFORM_LABEL="Joomla version"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_UPDATESERVER_URL_LABEL="Update Server URL"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_UPDATES_DIRECTORY_LABEL="Updates directory"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIG_YES="Yes"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONTRIBUTOR="Contributor"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONTRIBUTORS="Contributors"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CREATE_NEW_S="Create New %s"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DASH="Dashboard"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DASHBOARD="Extension Distributor Dashboard"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DASHBOARD_DOWNLOADS="Downloads<br /><br />"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DASHBOARD_EXTENSIONS="Extensions<br /><br />"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DASHBOARD_EXTENSIONS_CATID="Categories"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DASHBOARD_IMPORT="Import<br /><br />"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DASHBOARD_KEYS="Keys<br /><br />"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DASHBOARD_MAINTENANCE="Maintenance<br /><br />"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DASHBOARD_PACKAGES="Packages<br /><br />"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DASHBOARD_STATISTICS="Statistics<br /><br />"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DASHBOARD_SUBSCRIPTIONS="Subscriptions<br /><br />"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DATE="Date"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DELETE="Delete"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD="Download"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS="Downloads"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_BATCH_OPTIONS="Batch process the selected Downloads"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_BATCH_TIP="All changes will be applied to all selected Downloads"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_BATCH_USE="Downloads Batch Use"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch downloads"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_DASHBOARD_LIST="Downloads Dashboard List"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of download"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_N_ITEMS_ARCHIVED="%s Downloads archived."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_N_ITEMS_ARCHIVED_1="%s Download archived."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_N_ITEMS_CHECKED_IN_0="No Download successfully checked in."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_N_ITEMS_CHECKED_IN_1="%d Download successfully checked in."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_N_ITEMS_CHECKED_IN_MORE="%d Downloads successfully checked in."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_N_ITEMS_DELETED="%s Downloads deleted."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_N_ITEMS_DELETED_1="%s Download deleted."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_N_ITEMS_FAILED_PUBLISHING="%s Downloads failed publishing."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_N_ITEMS_FAILED_PUBLISHING_1="%s Download failed publishing."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_N_ITEMS_FEATURED="%s Downloads featured."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_N_ITEMS_FEATURED_1="%s Download featured."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_N_ITEMS_PUBLISHED="%s Downloads published."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_N_ITEMS_PUBLISHED_1="%s Download published."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_N_ITEMS_TRASHED="%s Downloads trashed."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_N_ITEMS_TRASHED_1="%s Download trashed."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_N_ITEMS_UNFEATURED="%s Downloads unfeatured."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_N_ITEMS_UNFEATURED_1="%s Download unfeatured."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_N_ITEMS_UNPUBLISHED="%s Downloads unpublished."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_N_ITEMS_UNPUBLISHED_1="%s Download unpublished."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_SUBMENU="Downloads Submenu"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_SUBMENU_DESC="Allows the users in this group to submenu of download"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_CREATED_BY_DESC="The user that created this Download."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_CREATED_BY_LABEL="Created By"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_CREATED_DATE_DESC="The date this Download was created."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_CREATED_DATE_LABEL="Created Date"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_CREATED_LABEL="Date/Time"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_DELETE_BUTTON_ACCESS="Download Delete Button Access"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_DELETE_BUTTON_ACCESS_DESC="Allows the users in this group to access the delete button."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_DETAILS="Details"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_DOMAIN_LABEL="Domain"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_EDIT="Editing the Download"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_ERROR_UNIQUE_ALIAS="Another Download has the same alias."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_ID="Id"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_IP_LABEL="IP address"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_JOOMLA_UPDATER="Joomla updater"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_KEY_LABEL="Download Key"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_MODIFIED_BY_DESC="The last user that modified this Download."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_MODIFIED_BY_LABEL="Modified By"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_MODIFIED_DATE_DESC="The date this Download was modified."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_MODIFIED_DATE_LABEL="Modified Date"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_NEW="A New Download"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_NO="No"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_ORDERING_LABEL="Ordering"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_OTHER="Other"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_PACKAGE_LABEL="Package"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_PUBLISHED_LABEL="State"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_PUBLISHING="Publishing"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Download to customise the alias."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_STATUS="Status"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_TRANSACTION_LABEL="Transaction type"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_USER_LABEL="Joomla User"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_VERSION_DESC="A count of the number of times this Download has been revised."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_VERSION_LABEL="Version"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_WATCHFUL="Watchful"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_WEBSITE="Website"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_YES="Yes"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EDIT_CREATED_BY="Edit Created By"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EDIT_CREATED_BY_DESC="Allows users in this group to edit created by."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EDIT_CREATED_DATE="Edit Created Date"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EDIT_CREATED_DATE_DESC="Allows users in this group to edit created date."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EDIT_S="Edit %s"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EDIT_VERSIONS="Edit Version"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EDIT_VERSIONS_DESC="Allows users in this group to edit versions."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION="Extension"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS="Extensions"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_BATCH_OPTIONS="Batch process the selected Extensions"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_BATCH_TIP="All changes will be applied to all selected Extensions"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_BATCH_USE="Extensions Batch Use"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch extensions"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_DASHBOARD_LIST="Extensions Dashboard List"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of extension"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_DOWNLOAD="Download"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_EDIT_VERSION="Extensions Edit Version"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version extensions"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_EXTENSION_TYPE="Extension type"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_LATEST_VERSION="Latest version"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_N_ITEMS_ARCHIVED="%s Extensions archived."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_N_ITEMS_ARCHIVED_1="%s Extension archived."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_N_ITEMS_CHECKED_IN_0="No Extension successfully checked in."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_N_ITEMS_CHECKED_IN_1="%d Extension successfully checked in."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_N_ITEMS_CHECKED_IN_MORE="%d Extensions successfully checked in."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_N_ITEMS_DELETED="%s Extensions deleted."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_N_ITEMS_DELETED_1="%s Extension deleted."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_N_ITEMS_FAILED_PUBLISHING="%s Extensions failed publishing."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_N_ITEMS_FAILED_PUBLISHING_1="%s Extension failed publishing."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_N_ITEMS_FEATURED="%s Extensions featured."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_N_ITEMS_FEATURED_1="%s Extension featured."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_N_ITEMS_PUBLISHED="%s Extensions published."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_N_ITEMS_PUBLISHED_1="%s Extension published."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_N_ITEMS_TRASHED="%s Extensions trashed."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_N_ITEMS_TRASHED_1="%s Extension trashed."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_N_ITEMS_UNFEATURED="%s Extensions unfeatured."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_N_ITEMS_UNFEATURED_1="%s Extension unfeatured."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_N_ITEMS_UNPUBLISHED="%s Extensions unpublished."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_N_ITEMS_UNPUBLISHED_1="%s Extension unpublished."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_RELEASE_DATE="Release date"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_SUBMENU="Extensions Submenu"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_SUBMENU_DESC="Allows the users in this group to submenu of extension"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_ADMINISTRATOR="administrator"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_ALIAS_LABEL="Alias"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_CATEGORIES="Categories"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_CATID_LABEL="Category"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_CATID_OTHERNAME="Categories"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_CATID_VIEW="extension"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_CATID_VIEWS="extensions"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_CLIENT_LABEL="Client"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_COMPONENT="Component"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_CREATED_BY_DESC="The user that created this Extension."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_CREATED_BY_LABEL="Created By"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_CREATED_DATE_DESC="The date this Extension was created."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_CREATED_DATE_LABEL="Created Date"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_DESCRIPTION_LABEL="Description"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_DETAILS="Details"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_EDIT="Editing the Extension"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_ELEMENT_LABEL="Element"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_ERROR_UNIQUE_ALIAS="Another Extension has the same alias."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_FILE="File"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_GROUP_LABEL="Group"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_ID="Id"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_IMAGE_LABEL="Image"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_KEEPFILENAME_LABEL="Keep original filename"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_LANGUAGE="Language"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_LIBRARY="Library"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_MODIFIED_BY_DESC="The last user that modified this Extension."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_MODIFIED_BY_LABEL="Modified By"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_MODIFIED_DATE_DESC="The date this Extension was modified."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_MODIFIED_DATE_LABEL="Modified Date"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_MODULE="Module"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_NAME_LABEL="Name"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_NAME_MESSAGE="Error! Please add some text here."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_NEW="A New Extension"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_NEWFILENAME_DESCRIPTION="You can define your own pattern in this field. The available placeholders are:<br>{type} : The type (3 letters)<br>{element} : The element<br>{_group} : The group (conditionnal)<br>{group} : The group (always displayed)<br>{_client} : The client (conditionnal)<br>{client} : The client (always displayed)<br>{major} : Version major<br>{minor} : Version major<br>{release} : Version release<br>{stability} : Stability level<br>Note: for component and modules the com_ and mod_ prefix are removed. The conditionnal placeholders are remove if the data is empty."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_NEWFILENAME_LABEL="Filename pattern"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_NO="No"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_ORDERING_LABEL="Ordering"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_PERMISSION="Permissions"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_PLEASE_SELECT="Please select"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_PLUGIN="Plugin"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_PUBLISHING="Publishing"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_RELEASES="Releases"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_RELEASE_DATE="Release Date"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Extension to customise the alias."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_SITE="site"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_STATUS="Status"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_TAGS_DESCRIPTION="Assign tags to EXTENSION items. Tag names must be unique."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_TAGS_LABEL="Tags"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_TEMPLATE="Template"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_TYPE_LABEL="Extension type"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_UPDATE_HINT="automatically generated..."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_UPDATE_LABEL="Update XML"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_VERSION_DESC="A count of the number of times this Extension has been revised."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_VERSION_LABEL="Version"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_VERSION_NUMBER="Version Number"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSION_YES="Yes"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_ACTIVE_ASCENDING="Active ascending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_ACTIVE_DESCENDING="Active descending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_DATETIME_ASCENDING="Date/Time ascending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_DATETIME_DESCENDING="Date/Time descending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_DOMAIN_ASCENDING="Domain ascending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_DOMAIN_DESCENDING="Domain descending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_EXPIRE_ASCENDING="Expire ascending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_EXPIRE_DESCENDING="Expire descending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_EXTENSION_ASCENDING="Extension ascending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_EXTENSION_DESCENDING="Extension descending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_EXTENSION_TYPE_ASCENDING="Extension type ascending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_EXTENSION_TYPE_DESCENDING="Extension type descending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_IP_ADDRESS_ASCENDING="IP address ascending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_IP_ADDRESS_DESCENDING="IP address descending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_JOOMLA_USER_ASCENDING="Joomla User ascending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_JOOMLA_USER_DESCENDING="Joomla User descending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_NAME_ASCENDING="Name ascending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_NAME_DESCENDING="Name descending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_PACKAGE_ASCENDING="Package ascending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_PACKAGE_DESCENDING="Package descending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_PUBLISHED="Status"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_PUBLISHED_EXTENSIONS="Status options for extensions"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_PUBLISHED_KEYS="Status options for keys"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_PUBLISHED_PACKAGES="Status options for packages"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_PUBLISHED_RELEASES="Status options for releases"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_PUBLISHED_SUBSCRIPTIONS="Status options for subscriptions"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_RELEASE_DATE_ASCENDING="Release Date ascending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_RELEASE_DATE_DESCENDING="Release Date descending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_RELEASE_TYPE_ASCENDING="Release type ascending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_RELEASE_TYPE_DESCENDING="Release type descending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_SEARCH="Searchpackages"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_SEARCH_DOWNLOADS="Search the download items. Prefix with ID: to search for an item by ID."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_SEARCH_EXTENSIONS="Search the extension items. Prefix with ID: to search for an item by ID."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_SEARCH_KEYS="Search the key items. Prefix with ID: to search for an item by ID."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_SEARCH_PACKAGES="Search the package items. Prefix with ID: to search for an item by ID."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_SEARCH_RELEASES="Search the release items. Prefix with ID: to search for an item by ID."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_SEARCH_SUBSCRIPTIONS="Search the subscription items. Prefix with ID: to search for an item by ID."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_SELECT_ACCESS="Select Access"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_SELECT_ACTIVE="Select Active"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_SELECT_CATEGORIES="Select Categories"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_SELECT_CLIENT="Select Client"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_SELECT_EXTENSION="Select Extension"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_SELECT_EXTENSION_TYPE="Select Extension type"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_SELECT_FREE="Select Free"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_SELECT_GROUP="Select Group"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_SELECT_JOOMLA_USER="Select Joomla User"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_SELECT_PACKAGE="Select Package"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_SELECT_RELEASE_TYPE="Select Release type"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_SELECT_STABILITY_LEVEL="Select Stability level"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_SELECT_TRANSACTION_TYPE="Select Transaction type"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_STARTS_ASCENDING="Starts ascending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_STARTS_DESCENDING="Starts descending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_TRANSACTION_TYPE_ASCENDING="Transaction type ascending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_TRANSACTION_TYPE_DESCENDING="Transaction type descending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_VERSION_ASCENDING="Version ascending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_VERSION_DESCENDING="Version descending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_VERSION_NUMBER_ASCENDING="Version Number ascending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_FILTER_VERSION_NUMBER_DESCENDING="Version Number descending"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_HELP_MANAGER="Help"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_IMPORT="Import"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_IMPORT_ACCESS="Import Access"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_IMPORT_ACCESS_DESC="Allows the users in this group to access import."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_IMPORT_DASHBOARD_LIST="Import Dashboard List"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_IMPORT_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of Import"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_IMPORT_DESC="Import"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_IMPORT_SUBMENU="Import Submenu"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_IMPORT_SUBMENU_DESC="Allows the users in this group to submenu of Import"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_INACTIVE="Inactive"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_INVALID_FILENAME="Invalid filename"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEEP_ORIGINAL_ACCESS="- Keep Original Access -"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEEP_ORIGINAL_CATEGORY="- Keep Original Category -"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEEP_ORIGINAL_STATE="- Keep Original State -"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEY="Key"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS="Keys"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_ACCESS_SITE="Keys (Site) Access"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_ACCESS_SITE_DESC="Allows the users in this group to access site keys."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_BATCH_OPTIONS="Batch process the selected Keys"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_BATCH_TIP="All changes will be applied to all selected Keys"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_BATCH_USE="Keys Batch Use"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch keys"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_DASHBOARD_LIST="Keys Dashboard List"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of key"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_EDIT_VERSION="Keys Edit Version"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version keys"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_N_ITEMS_ARCHIVED="%s Keys archived."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_N_ITEMS_ARCHIVED_1="%s Key archived."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_N_ITEMS_CHECKED_IN_0="No Key successfully checked in."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_N_ITEMS_CHECKED_IN_1="%d Key successfully checked in."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_N_ITEMS_CHECKED_IN_MORE="%d Keys successfully checked in."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_N_ITEMS_DELETED="%s Keys deleted."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_N_ITEMS_DELETED_1="%s Key deleted."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_N_ITEMS_FAILED_PUBLISHING="%s Keys failed publishing."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_N_ITEMS_FAILED_PUBLISHING_1="%s Key failed publishing."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_N_ITEMS_FEATURED="%s Keys featured."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_N_ITEMS_FEATURED_1="%s Key featured."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_N_ITEMS_PUBLISHED="%s Keys published."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_N_ITEMS_PUBLISHED_1="%s Key published."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_N_ITEMS_TRASHED="%s Keys trashed."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_N_ITEMS_TRASHED_1="%s Key trashed."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_N_ITEMS_UNFEATURED="%s Keys unfeatured."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_N_ITEMS_UNFEATURED_1="%s Key unfeatured."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_N_ITEMS_UNPUBLISHED="%s Keys unpublished."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_N_ITEMS_UNPUBLISHED_1="%s Key unpublished."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_SUBMENU="Keys Submenu"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_SUBMENU_DESC="Allows the users in this group to submenu of key"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEY_CREATED_BY_DESC="The user that created this Key."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEY_CREATED_BY_LABEL="Created By"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEY_CREATED_DATE_DESC="The date this Key was created."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEY_CREATED_DATE_LABEL="Created Date"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEY_DETAILS="Details"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEY_EDIT="Editing the Key"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEY_ERROR_UNIQUE_ALIAS="Another Key has the same alias."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEY_ID="Id"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEY_KEY_LABEL="Download Key"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEY_MODIFIED_BY_DESC="The last user that modified this Key."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEY_MODIFIED_BY_LABEL="Modified By"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEY_MODIFIED_DATE_DESC="The date this Key was modified."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEY_MODIFIED_DATE_LABEL="Modified Date"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEY_NEW="A New Key"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEY_ORDERING_LABEL="Ordering"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEY_PERMISSION="Permissions"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEY_PUBLISHING="Publishing"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEY_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Key to customise the alias."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEY_STATUS="Status"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEY_USER_LABEL="Joomla User"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEY_VERSION_DESC="A count of the number of times this Key has been revised."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEY_VERSION_LABEL="Version"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEY_WEBSITE_DESCRIPTION="Enter the address of the website where this key will used."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEY_WEBSITE_LABEL="Website"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_LICENSE="License"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_MAINTENANCE="Maintenance"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_MAINTENANCE_ACCESS="Maintenance Access"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_MAINTENANCE_ACCESS_DESC="Allows the users in this group to access maintenance."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_MAINTENANCE_DASHBOARD_LIST="Maintenance Dashboard List"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_MAINTENANCE_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of Maintenance"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_MAINTENANCE_DESC="Maintenance"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_MAINTENANCE_SUBMENU="Maintenance Submenu"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_MAINTENANCE_SUBMENU_DESC="Allows the users in this group to submenu of Maintenance"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_NEW="New"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_NOT_FOUND_OR_ACCESS_DENIED="Not found, or access denied."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_NO_ACCESS_GRANTED="No Access Granted!"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE="Package"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES="Packages"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_ACCESS="Packages Access"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_ACCESS_DESC="Allows the users in this group to access access packages"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_BATCH_OPTIONS="Batch process the selected Packages"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_BATCH_TIP="All changes will be applied to all selected Packages"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_BATCH_USE="Packages Batch Use"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch packages"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_DASHBOARD_LIST="Packages Dashboard List"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of package"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_DOWNLOAD_UPDATE="Download & Update"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_EDIT_VERSION="Packages Edit Version"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_EDIT_VERSION_DESC="Allows users in this group to edit versions of version packages"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_EXTENSIONS="Extensions"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_NAME="Name"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_N_ITEMS_ARCHIVED="%s Packages archived."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_N_ITEMS_ARCHIVED_1="%s Package archived."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_N_ITEMS_CHECKED_IN_0="No Package successfully checked in."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_N_ITEMS_CHECKED_IN_1="%d Package successfully checked in."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_N_ITEMS_CHECKED_IN_MORE="%d Packages successfully checked in."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_N_ITEMS_DELETED="%s Packages deleted."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_N_ITEMS_DELETED_1="%s Package deleted."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_N_ITEMS_FAILED_PUBLISHING="%s Packages failed publishing."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_N_ITEMS_FAILED_PUBLISHING_1="%s Package failed publishing."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_N_ITEMS_FEATURED="%s Packages featured."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_N_ITEMS_FEATURED_1="%s Package featured."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_N_ITEMS_PUBLISHED="%s Packages published."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_N_ITEMS_PUBLISHED_1="%s Package published."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_N_ITEMS_TRASHED="%s Packages trashed."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_N_ITEMS_TRASHED_1="%s Package trashed."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_N_ITEMS_UNFEATURED="%s Packages unfeatured."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_N_ITEMS_UNFEATURED_1="%s Package unfeatured."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_N_ITEMS_UNPUBLISHED="%s Packages unpublished."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_N_ITEMS_UNPUBLISHED_1="%s Package unpublished."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_SUBMENU="Packages Submenu"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_SUBMENU_DESC="Allows the users in this group to submenu of package"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_VERSION="Version"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_ADD_PHP_METHOD_UNINSTALL_LABEL="Add PHP Method (uninstall)"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_ADD_PHP_POSTFLIGHT_INSTALL_LABEL="Add PHP Postflight (install)"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_ADD_PHP_POSTFLIGHT_UPDATE_LABEL="Add PHP Postflight (update)"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_ADD_PHP_PREFLIGHT_INSTALL_LABEL="Add PHP Preflight (install)"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_ADD_PHP_PREFLIGHT_UNINSTALL_LABEL="Add PHP Preflight (uninstall)"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_ADD_PHP_PREFLIGHT_UPDATE_LABEL="Add PHP Preflight (update)"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_ALIAS_LABEL="Alias"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_AUTHOREMAIL_HINT="your@email.com"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_AUTHOREMAIL_LABEL="Author Email"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_AUTHOREMAIL_MESSAGE="Error! Please add some text here."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_AUTHORURL_HINT="https://agerix.fr"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_AUTHORURL_LABEL="Author URL"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_AUTHOR_LABEL="Author"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_BLOCKCHILDUNINSTALL_LABEL="Block Child Uninstall"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_CATEGORIES="Categories"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_CATID_LABEL="Category"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_CATID_OTHERNAME="Categories"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_CATID_VIEW="extension"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_CATID_VIEWS="extensions"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_CONFIGURATION="Configuration"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_COPYRIGHT_LABEL="Copyright"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_CREATED_BY_DESC="The user that created this Package."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_CREATED_BY_LABEL="Created By"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_CREATED_DATE_DESC="The date this Package was created."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_CREATED_DATE_LABEL="Created Date"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_DESCRIPTION_LABEL="Description"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_DETAILS="Details"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_EDIT="Editing the Package"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_ERROR_UNIQUE_ALIAS="Another Package has the same alias."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_EXTENSION="Extension"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_EXTENSION_DESCRIPTION="Select the extensions you wish to include in your package"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_EXTENSION_LABEL="Extension"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_FILES="Files"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_FILES_LABEL="Extensions"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_FILE_LABEL="JCB package"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_FREE_LABEL="Free"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_ID="Id"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_IMAGE_LABEL="Image"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_INFOURL_LABEL="Info URL"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_JED_LABEL="JED link"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_LICENSE_LABEL="License"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_MODIFIED_BY_DESC="The last user that modified this Package."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_MODIFIED_BY_LABEL="Modified By"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_MODIFIED_DATE_DESC="The date this Package was modified."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_MODIFIED_DATE_LABEL="Modified Date"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_NAME_LABEL="Name"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_NAME_MESSAGE="Error! Please add some text here."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_NEW="A New Package"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_NEWFILENAME_DESCRIPTION="You can define your own pattern in this field. The available placeholders are:<br>{packagename} : The package name<br>{major} : Version major<br>{minor} : Version major<br>{release} : Version release<br>{stability} : Stability level"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_NEWFILENAME_LABEL="Filename pattern"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_NO="No"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_NOTE_JCB_PACKAGE_DESCRIPTION="This extension has been created to extend JCB. You can store your package here."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_NOTE_JCB_PACKAGE_LABEL="Upload JCB package"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_ORDERING_LABEL="Ordering"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_PACKAGENAME_LABEL="Package Name"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_PACKAGERURL_HINT="https://agerix.fr"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_PACKAGERURL_LABEL="Packager URL"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_PACKAGER_LABEL="Packager"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_PERMISSION="Permissions"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_PHP_METHOD_UNINSTALL_DESCRIPTION="PHP script that should run during uninstall."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_PHP_METHOD_UNINSTALL_LABEL="PHP Method (uninstall)"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_PHP_MINIMUM_LABEL="PHP minimum"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_PHP_POSTFLIGHT_INSTALL_DESCRIPTION="PHP script that should run postflight during install."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_PHP_POSTFLIGHT_INSTALL_LABEL="PHP Postflight (install)"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_PHP_POSTFLIGHT_UPDATE_DESCRIPTION="PHP script that should run postflight during update."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_PHP_POSTFLIGHT_UPDATE_LABEL="PHP Postflight (update)"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_PHP_PREFLIGHT_INSTALL_DESCRIPTION="PHP script that should run preflight during install."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_PHP_PREFLIGHT_INSTALL_LABEL="PHP Preflight (install)"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_PHP_PREFLIGHT_UNINSTALL_DESCRIPTION="PHP script that should run preflight during uninstall."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_PHP_PREFLIGHT_UNINSTALL_LABEL="PHP Preflight (uninstall)"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_PHP_PREFLIGHT_UPDATE_DESCRIPTION="PHP script that should run preflight during update."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_PHP_PREFLIGHT_UPDATE_LABEL="PHP Preflight (update)"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_PUBLISHING="Publishing"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_PUBLISH_DESCRIPTION="Choose if the extension is automatically published after the install"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_PUBLISH_LABEL="Auto publish"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_RELEASES="Releases"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_RELEASE_DATE="Release Date"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Package to customise the alias."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_SCRIPT="Script"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_STATUS="Status"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_TARGETPLATFORM_DESCRIPTION="You can use a REGEX"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_TARGETPLATFORM_LABEL="Joomla version"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_UPDATE_HINT="automatically generated..."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_UPDATE_LABEL="Update XML"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_UPLOAD_JCB_DESCRIPTION="<div class='js-upload uk-placeholder uk-text-center'>
|
||||||
|
<span uk-icon='icon: cloud-upload; ratio: 2' class='uk-margin-right'></span>
|
||||||
|
<span class='uk-text-middle'>Drop your file on this area</span>
|
||||||
|
<div uk-form-custom>
|
||||||
|
<input type='file' multiple>
|
||||||
|
<span class='uk-link uk-margin-left'>... or click here</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<progress id='js-progressbar' class='uk-progress' value='0' max='100' hidden></progress>
|
||||||
|
<div id='upload-response'></div>
|
||||||
|
<div id='files_list'></div>"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_USEUPDATE_LABEL="Use Update"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_VERSION_DESC="A count of the number of times this Package has been revised."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_VERSION_LABEL="Version"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_VERSION_NUMBER="Version Number"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGE_YES="Yes"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PUBLISHED="Published"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE="Release"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES="Releases"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_=""
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_BATCH_OPTIONS="Batch process the selected Releases"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_BATCH_TIP="All changes will be applied to all selected Releases"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_BATCH_USE="Releases Batch Use"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch releases"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_DOWNLOAD="Download"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_EDIT_VERSION="Releases Edit Version"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_EDIT_VERSION_DESC="Allows users in this group to edit versions of version releases"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_N_ITEMS_ARCHIVED="%s Releases archived."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_N_ITEMS_ARCHIVED_1="%s Release archived."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_N_ITEMS_CHECKED_IN_0="No Release successfully checked in."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_N_ITEMS_CHECKED_IN_1="%d Release successfully checked in."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_N_ITEMS_CHECKED_IN_MORE="%d Releases successfully checked in."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_N_ITEMS_DELETED="%s Releases deleted."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_N_ITEMS_DELETED_1="%s Release deleted."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_N_ITEMS_FAILED_PUBLISHING="%s Releases failed publishing."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_N_ITEMS_FAILED_PUBLISHING_1="%s Release failed publishing."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_N_ITEMS_FEATURED="%s Releases featured."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_N_ITEMS_FEATURED_1="%s Release featured."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_N_ITEMS_PUBLISHED="%s Releases published."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_N_ITEMS_PUBLISHED_1="%s Release published."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_N_ITEMS_TRASHED="%s Releases trashed."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_N_ITEMS_TRASHED_1="%s Release trashed."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_N_ITEMS_UNFEATURED="%s Releases unfeatured."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_N_ITEMS_UNFEATURED_1="%s Release unfeatured."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_N_ITEMS_UNPUBLISHED="%s Releases unpublished."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_N_ITEMS_UNPUBLISHED_1="%s Release unpublished."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_ADD="Add"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_ALPHA="Alpha"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_BETA="Beta"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_BUG_FIX="Bug Fix"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_CHANGE="Change"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_CHANGELOG="Changelog"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_CHANGELOG_LABEL="Changelog"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_COMMENT_DESCRIPTION="Describe the change"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_COMMENT_LABEL="Comment"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_CREATED_BY_DESC="The user that created this Release."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_CREATED_BY_LABEL="Created By"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_CREATED_DATE_DESC="The date this Release was created."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_CREATED_DATE_LABEL="Created Date"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_DESCRIPTION_LABEL="Short description"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_DETAILS="Details"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_DEVELOPMENT="Development"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_EDIT="Editing the Release"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_ERROR_UNIQUE_ALIAS="Another Release has the same alias."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_EXTENSION_LABEL="Extension"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_FILE_LABEL="Release package"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_FORCEUPDATE_DESCRIPTION="Force to update the package content with the latest releases of each extension."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_FORCEUPDATE_LABEL="Force update"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_ID="Id"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_MAINTENANCE="Maintenance"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_MODIFIED_BY_DESC="The last user that modified this Release."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_MODIFIED_BY_LABEL="Modified By"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_MODIFIED_DATE_DESC="The date this Release was modified."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_MODIFIED_DATE_LABEL="Modified Date"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_NEW="A New Release"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_NEW_VERSION="New version"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_NO="No"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_ORDERING_LABEL="Ordering"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_PACKAGE_LABEL="Package"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_PERMISSION="Permissions"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_PLEASE_SELECT="Please select"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_PUBLISHING="Publishing"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_RC="RC"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_RELEASE_DATE_LABEL="Release date"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_RELTYPE_LABEL="Release type"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_REMOVE="Remove"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Release to customise the alias."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_SECURITY="Security"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_STABILITY_LABEL="Stability level"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_STABLE="Stable"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_STATUS="Status"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_TOOLBAR="Toolbar"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_TYPE_DESCRIPTION="What kind of change is it ?"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_TYPE_LABEL="Type"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_UPLOAD_PACKAGE_DESCRIPTION="<div class='js-upload uk-placeholder uk-text-center'>
|
||||||
|
<span uk-icon='icon: cloud-upload; ratio: 2' class='uk-margin-right'></span>
|
||||||
|
<span class='uk-text-middle'>Drop your file on this area</span>
|
||||||
|
<div uk-form-custom>
|
||||||
|
<input type='file' multiple>
|
||||||
|
<span class='uk-link uk-margin-left'>... or click here</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<progress id='js-progressbar' class='uk-progress' value='0' max='100' hidden></progress>
|
||||||
|
<div id='upload-response'></div>
|
||||||
|
<div id='files_list'></div>"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_VERSION_DESC="A count of the number of times this Release has been revised."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_VERSION_LABEL="Version"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_VERSION_NUMBER_HINT="1.0.0"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_VERSION_NUMBER_LABEL="Version"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_VERSION_NUMBER_MESSAGE="Error! Please provide a version"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_XMLPUBLISHED_LABEL="XML published"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_YES="Yes"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASE_ZIP_CONTENT="Zip Content"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SAVE_SUCCESS="Great! Item successfully saved."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SAVE_WARNING="The value already existed so please select another."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SELECT_AN_OPTION="Select an option"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_STATISTICS="Statistics"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_STATISTICS_ACCESS="Statistics Access"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_STATISTICS_ACCESS_DESC="Allows the users in this group to access statistics."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_STATISTICS_DASHBOARD_LIST="Statistics Dashboard List"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_STATISTICS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of Statistics"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_STATISTICS_DESC="Statistics"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_STATISTICS_SUBMENU="Statistics Submenu"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_STATISTICS_SUBMENU_DESC="Allows the users in this group to submenu of Statistics"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBMENU_DASHBOARD="Dashboard"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBMENU_DOWNLOADS="Downloads"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBMENU_EXTENSIONS="Extensions"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBMENU_IMPORT="Import"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBMENU_KEYS="Keys"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBMENU_MAINTENANCE="Maintenance"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBMENU_PACKAGES="Packages"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBMENU_PACKAGES_FIELDS="Packages Fields"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBMENU_PACKAGES_FIELDS_GROUPS="Packages Field Groups"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBMENU_STATISTICS="Statistics"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBMENU_SUBSCRIPTIONS="Subscriptions"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTION="Subscription"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS="Subscriptions"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_=""
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_BATCH_OPTIONS="Batch process the selected Subscriptions"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_BATCH_TIP="All changes will be applied to all selected Subscriptions"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_BATCH_USE="Subscriptions Batch Use"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch subscriptions"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_DASHBOARD_LIST="Subscriptions Dashboard List"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of subscription"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_N_ITEMS_ARCHIVED="%s Subscriptions archived."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_N_ITEMS_ARCHIVED_1="%s Subscription archived."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_N_ITEMS_CHECKED_IN_0="No Subscription successfully checked in."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_N_ITEMS_CHECKED_IN_1="%d Subscription successfully checked in."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_N_ITEMS_CHECKED_IN_MORE="%d Subscriptions successfully checked in."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_N_ITEMS_DELETED="%s Subscriptions deleted."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_N_ITEMS_DELETED_1="%s Subscription deleted."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_N_ITEMS_FAILED_PUBLISHING="%s Subscriptions failed publishing."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_N_ITEMS_FAILED_PUBLISHING_1="%s Subscription failed publishing."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_N_ITEMS_FEATURED="%s Subscriptions featured."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_N_ITEMS_FEATURED_1="%s Subscription featured."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_N_ITEMS_PUBLISHED="%s Subscriptions published."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_N_ITEMS_PUBLISHED_1="%s Subscription published."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_N_ITEMS_TRASHED="%s Subscriptions trashed."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_N_ITEMS_TRASHED_1="%s Subscription trashed."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_N_ITEMS_UNFEATURED="%s Subscriptions unfeatured."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_N_ITEMS_UNFEATURED_1="%s Subscription unfeatured."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_N_ITEMS_UNPUBLISHED="%s Subscriptions unpublished."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_N_ITEMS_UNPUBLISHED_1="%s Subscription unpublished."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_SUBMENU="Subscriptions Submenu"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_SUBMENU_DESC="Allows the users in this group to submenu of subscription"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_SUBSCRIBER_PACKAGE="Subscriber / Package"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTION_ACTIVE_LABEL="Active"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTION_COMMENT_LABEL="Private comment"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTION_CREATED_BY_DESC="The user that created this Subscription."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTION_CREATED_BY_LABEL="Created By"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTION_CREATED_DATE_DESC="The date this Subscription was created."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTION_CREATED_DATE_LABEL="Created Date"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTION_DATE_EXPIRE_LABEL="Expire"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTION_DATE_START_LABEL="Starts"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTION_DETAILS="Details"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTION_EDIT="Editing the Subscription"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTION_ERROR_UNIQUE_ALIAS="Another Subscription has the same alias."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTION_ID="Id"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTION_MODIFIED_BY_DESC="The last user that modified this Subscription."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTION_MODIFIED_BY_LABEL="Modified By"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTION_MODIFIED_DATE_DESC="The date this Subscription was modified."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTION_MODIFIED_DATE_LABEL="Modified Date"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTION_NEW="A New Subscription"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTION_NO="No"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTION_ORDERING_LABEL="Ordering"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTION_PACKAGE_LABEL="Package"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTION_PUBLISHING="Publishing"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTION_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Subscription to customise the alias."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTION_STATUS="Status"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTION_USER_LABEL="Joomla User"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTION_VERSION_DESC="A count of the number of times this Subscription has been revised."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTION_VERSION_LABEL="Version"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTION_YES="Yes"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_TEMPORARY_PATH_ISNT_SET="Temporary path isn't set"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_THE_FILE_IS_TOO_LARGE="The file is too large"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_THE_PACKAGE_FILE_S_HAS_BEEN_SUCCESSFULLY_CREATED="The package file %s has been successfully created."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_THE_UPLOAD_ISNT_AVAILABLE="The upload isn't available"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_TRASHED="Trashed"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_TYPE_DOWNLOAD="Download"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_TYPE_EXTENSION="Extension"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_TYPE_KEY="Key"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_TYPE_PACKAGE="Package"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_TYPE_RELEASE="Release"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_TYPE_SUBSCRIPTION="Subscription"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_UPLOAD_FAILED="Upload failed"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_USE_BATCH="Use Batch"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_USE_BATCH_DESC="Allows users in this group to use batch copy/update method."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_VERSION="Version"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_WEBSITE="Website"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_YOU_DIDNT_SELECT_ANY_FILE="You didn't select any file"
|
86
admin/language/en-GB/en-GB.com_extensiondistributor.sys.ini
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
COM_EXTENSIONDISTRIBUTOR="Extension Distributor"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_CONFIGURATION="Extension Distributor Configuration"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_BATCH_USE="Downloads Batch Use"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch downloads"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_DASHBOARD_LIST="Downloads Dashboard List"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of download"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_SUBMENU="Downloads Submenu"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOADS_SUBMENU_DESC="Allows the users in this group to submenu of download"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_DELETE_BUTTON_ACCESS="Download Delete Button Access"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_DOWNLOAD_DELETE_BUTTON_ACCESS_DESC="Allows the users in this group to access the delete button."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EDIT_CREATED_BY="Edit Created By"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EDIT_CREATED_BY_DESC="Allows users in this group to edit created by."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EDIT_CREATED_DATE="Edit Created Date"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EDIT_CREATED_DATE_DESC="Allows users in this group to edit created date."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EDIT_VERSIONS="Edit Version"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EDIT_VERSIONS_DESC="Allows users in this group to edit versions."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_BATCH_USE="Extensions Batch Use"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch extensions"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_DASHBOARD_LIST="Extensions Dashboard List"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of extension"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_EDIT_VERSION="Extensions Edit Version"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version extensions"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_SUBMENU="Extensions Submenu"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_EXTENSIONS_SUBMENU_DESC="Allows the users in this group to submenu of extension"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_IMPORT_ACCESS="Import Access"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_IMPORT_ACCESS_DESC="Allows the users in this group to access import."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_IMPORT_DASHBOARD_LIST="Import Dashboard List"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_IMPORT_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of Import"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_IMPORT_SUBMENU="Import Submenu"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_IMPORT_SUBMENU_DESC="Allows the users in this group to submenu of Import"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_ACCESS_SITE="Keys (Site) Access"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_ACCESS_SITE_DESC="Allows the users in this group to access site keys."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_BATCH_USE="Keys Batch Use"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch keys"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_DASHBOARD_LIST="Keys Dashboard List"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of key"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_EDIT_VERSION="Keys Edit Version"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version keys"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_SUBMENU="Keys Submenu"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_KEYS_SUBMENU_DESC="Allows the users in this group to submenu of key"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_MAINTENANCE_ACCESS="Maintenance Access"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_MAINTENANCE_ACCESS_DESC="Allows the users in this group to access maintenance."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_MAINTENANCE_DASHBOARD_LIST="Maintenance Dashboard List"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_MAINTENANCE_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of Maintenance"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_MAINTENANCE_SUBMENU="Maintenance Submenu"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_MAINTENANCE_SUBMENU_DESC="Allows the users in this group to submenu of Maintenance"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_MENU="d03; Extension Distributor"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_MENU_DOWNLOADS="Downloads"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_MENU_EXTENSIONS="Extensions"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_MENU_IMPORT="Import"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_MENU_KEYS="Keys"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_MENU_KEYS_DESC="User Keys"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_MENU_KEYS_OPTION="Keys"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_MENU_KEYS_TITLE="Keys"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_MENU_MAINTENANCE="Maintenance"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_MENU_PACKAGES="Packages"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_MENU_STATISTICS="Statistics"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_MENU_SUBSCRIPTIONS="Subscriptions"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_ACCESS="Packages Access"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_ACCESS_DESC="Allows the users in this group to access access packages"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_BATCH_USE="Packages Batch Use"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch packages"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_DASHBOARD_LIST="Packages Dashboard List"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of package"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_EDIT_VERSION="Packages Edit Version"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_EDIT_VERSION_DESC="Allows users in this group to edit versions of version packages"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_SUBMENU="Packages Submenu"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_PACKAGES_SUBMENU_DESC="Allows the users in this group to submenu of package"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_BATCH_USE="Releases Batch Use"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch releases"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_EDIT_VERSION="Releases Edit Version"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_RELEASES_EDIT_VERSION_DESC="Allows users in this group to edit versions of version releases"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_STATISTICS_ACCESS="Statistics Access"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_STATISTICS_ACCESS_DESC="Allows the users in this group to access statistics."
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_STATISTICS_DASHBOARD_LIST="Statistics Dashboard List"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_STATISTICS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of Statistics"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_STATISTICS_SUBMENU="Statistics Submenu"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_STATISTICS_SUBMENU_DESC="Allows the users in this group to submenu of Statistics"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_BATCH_USE="Subscriptions Batch Use"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch subscriptions"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_DASHBOARD_LIST="Subscriptions Dashboard List"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of subscription"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_SUBMENU="Subscriptions Submenu"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_SUBSCRIPTIONS_SUBMENU_DESC="Allows the users in this group to submenu of subscription"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_USE_BATCH="Use Batch"
|
||||||
|
COM_EXTENSIONDISTRIBUTOR_USE_BATCH_DESC="Allows users in this group to use batch copy/update method."
|
1
admin/language/en-GB/index.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<html><body bgcolor="#FFFFFF"></body></html>
|
1
admin/language/index.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<html><body bgcolor="#FFFFFF"></body></html>
|
57
admin/layouts/batchselection.php
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage batchselection.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('JPATH_BASE') or die;
|
||||||
|
|
||||||
|
JHtmlBehavior::core();
|
||||||
|
$divWrapper = range(1,120,2);
|
||||||
|
$counter = 0;
|
||||||
|
?>
|
||||||
|
<?php if ($displayData->ListSelection) : ?>
|
||||||
|
<div class="row-fluid">
|
||||||
|
<?php foreach ($displayData->ListSelection as $ListSelection) : ?>
|
||||||
|
<div class="control-group span6">
|
||||||
|
<div class="controls">
|
||||||
|
<label for="<?php echo $ListSelection['name']; ?>" class="element-invisible"><?php echo $ListSelection['label']; ?></label>
|
||||||
|
<select name="<?php echo $ListSelection['name']; ?>" id="<?php echo $ListSelection['name']; ?>" class="span12 small">
|
||||||
|
<?php if (!$ListSelection['noDefault']) : ?>
|
||||||
|
<option value=""><?php echo $ListSelection['label']; ?></option>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php echo $ListSelection['options']; ?>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php if (in_array($counter,$divWrapper)) : ?>
|
||||||
|
</div>
|
||||||
|
<div class="row-fluid">
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php $counter++; ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</div>
|
||||||
|
<div class="control-group radio" id="batch-move-copy">
|
||||||
|
<div class="controls">
|
||||||
|
<label class="radio" id="batch[move_copy]c-lbl" for="batch[move_copy]c">
|
||||||
|
<input type="radio" value="c" id="batch[move_copy]c" name="batch[move_copy]"><?php echo JText::_('Copy'); ?></label>
|
||||||
|
<label class="radio" id="batch[move_copy]m-lbl" for="batch[move_copy]m">
|
||||||
|
<input type="radio" checked="checked" value="m" id="batch[move_copy]m" name="batch[move_copy]"><?php echo JText::_('Update'); ?></label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
56
admin/layouts/download/details_left.php
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage details_left.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
// get the form
|
||||||
|
$form = $displayData->getForm();
|
||||||
|
|
||||||
|
// get the layout fields override method name (from layout path/ID)
|
||||||
|
$layout_path_array = explode('.', $this->getLayoutId());
|
||||||
|
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||||
|
// this name combination of tab and layout in the method name is the only work around
|
||||||
|
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||||
|
// example of layout name: details_left.php
|
||||||
|
// example of method name: getFields_details_left()
|
||||||
|
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||||
|
|
||||||
|
// get the fields
|
||||||
|
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||||
|
'transaction',
|
||||||
|
'package',
|
||||||
|
'user',
|
||||||
|
'ip',
|
||||||
|
'domain',
|
||||||
|
'key'
|
||||||
|
);
|
||||||
|
|
||||||
|
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||||
|
|
||||||
|
?>
|
||||||
|
<?php if ($fields && count((array) $fields)) :?>
|
||||||
|
<?php foreach($fields as $field): ?>
|
||||||
|
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||||
|
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<?php endif; ?>
|
51
admin/layouts/download/details_right.php
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage details_right.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
// get the form
|
||||||
|
$form = $displayData->getForm();
|
||||||
|
|
||||||
|
// get the layout fields override method name (from layout path/ID)
|
||||||
|
$layout_path_array = explode('.', $this->getLayoutId());
|
||||||
|
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||||
|
// this name combination of tab and layout in the method name is the only work around
|
||||||
|
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||||
|
// example of layout name: details_left.php
|
||||||
|
// example of method name: getFields_details_left()
|
||||||
|
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||||
|
|
||||||
|
// get the fields
|
||||||
|
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||||
|
'published'
|
||||||
|
);
|
||||||
|
|
||||||
|
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||||
|
|
||||||
|
?>
|
||||||
|
<?php if ($fields && count((array) $fields)) :?>
|
||||||
|
<?php foreach($fields as $field): ?>
|
||||||
|
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||||
|
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<?php endif; ?>
|
1
admin/layouts/download/index.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<html><body bgcolor="#FFFFFF"></body></html>
|
54
admin/layouts/download/publishing.php
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage publishing.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
// get the form
|
||||||
|
$form = $displayData->getForm();
|
||||||
|
|
||||||
|
// get the layout fields override method name (from layout path/ID)
|
||||||
|
$layout_path_array = explode('.', $this->getLayoutId());
|
||||||
|
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||||
|
// this name combination of tab and layout in the method name is the only work around
|
||||||
|
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||||
|
// example of layout name: details_left.php
|
||||||
|
// example of method name: getFields_details_left()
|
||||||
|
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||||
|
|
||||||
|
// get the fields
|
||||||
|
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||||
|
'created',
|
||||||
|
'created_by',
|
||||||
|
'modified',
|
||||||
|
'modified_by'
|
||||||
|
);
|
||||||
|
|
||||||
|
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||||
|
|
||||||
|
?>
|
||||||
|
<?php if ($fields && count((array) $fields)) :?>
|
||||||
|
<?php foreach($fields as $field): ?>
|
||||||
|
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||||
|
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<?php endif; ?>
|
54
admin/layouts/download/publlshing.php
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage publlshing.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
// get the form
|
||||||
|
$form = $displayData->getForm();
|
||||||
|
|
||||||
|
// get the layout fields override method name (from layout path/ID)
|
||||||
|
$layout_path_array = explode('.', $this->getLayoutId());
|
||||||
|
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||||
|
// this name combination of tab and layout in the method name is the only work around
|
||||||
|
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||||
|
// example of layout name: details_left.php
|
||||||
|
// example of method name: getFields_details_left()
|
||||||
|
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||||
|
|
||||||
|
// get the fields
|
||||||
|
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||||
|
'ordering',
|
||||||
|
'version',
|
||||||
|
'hits',
|
||||||
|
'id'
|
||||||
|
);
|
||||||
|
|
||||||
|
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||||
|
|
||||||
|
?>
|
||||||
|
<?php if ($fields && count((array) $fields)) :?>
|
||||||
|
<?php foreach($fields as $field): ?>
|
||||||
|
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||||
|
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<?php endif; ?>
|
54
admin/layouts/extension/details_above.php
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage details_above.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
// get the form
|
||||||
|
$form = $displayData->getForm();
|
||||||
|
|
||||||
|
// get the layout fields override method name (from layout path/ID)
|
||||||
|
$layout_path_array = explode('.', $this->getLayoutId());
|
||||||
|
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||||
|
// this name combination of tab and layout in the method name is the only work around
|
||||||
|
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||||
|
// example of layout name: details_left.php
|
||||||
|
// example of method name: getFields_details_left()
|
||||||
|
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||||
|
|
||||||
|
// get the fields
|
||||||
|
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||||
|
'name',
|
||||||
|
'alias'
|
||||||
|
);
|
||||||
|
|
||||||
|
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||||
|
|
||||||
|
?>
|
||||||
|
<?php if ($fields && count((array) $fields)) :?>
|
||||||
|
<div class="form-inline form-inline-header">
|
||||||
|
<?php foreach($fields as $field): ?>
|
||||||
|
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||||
|
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
54
admin/layouts/extension/details_left.php
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage details_left.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
// get the form
|
||||||
|
$form = $displayData->getForm();
|
||||||
|
|
||||||
|
// get the layout fields override method name (from layout path/ID)
|
||||||
|
$layout_path_array = explode('.', $this->getLayoutId());
|
||||||
|
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||||
|
// this name combination of tab and layout in the method name is the only work around
|
||||||
|
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||||
|
// example of layout name: details_left.php
|
||||||
|
// example of method name: getFields_details_left()
|
||||||
|
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||||
|
|
||||||
|
// get the fields
|
||||||
|
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||||
|
'description',
|
||||||
|
'image',
|
||||||
|
'version_number',
|
||||||
|
'release_date'
|
||||||
|
);
|
||||||
|
|
||||||
|
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||||
|
|
||||||
|
?>
|
||||||
|
<?php if ($fields && count((array) $fields)) :?>
|
||||||
|
<?php foreach($fields as $field): ?>
|
||||||
|
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||||
|
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<?php endif; ?>
|
59
admin/layouts/extension/details_right.php
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage details_right.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
// get the form
|
||||||
|
$form = $displayData->getForm();
|
||||||
|
|
||||||
|
// get the layout fields override method name (from layout path/ID)
|
||||||
|
$layout_path_array = explode('.', $this->getLayoutId());
|
||||||
|
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||||
|
// this name combination of tab and layout in the method name is the only work around
|
||||||
|
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||||
|
// example of layout name: details_left.php
|
||||||
|
// example of method name: getFields_details_left()
|
||||||
|
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||||
|
|
||||||
|
// get the fields
|
||||||
|
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||||
|
'catid',
|
||||||
|
'tags',
|
||||||
|
'type',
|
||||||
|
'element',
|
||||||
|
'group',
|
||||||
|
'client',
|
||||||
|
'keepfilename',
|
||||||
|
'newfilename',
|
||||||
|
'update'
|
||||||
|
);
|
||||||
|
|
||||||
|
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||||
|
|
||||||
|
?>
|
||||||
|
<?php if ($fields && count((array) $fields)) :?>
|
||||||
|
<?php foreach($fields as $field): ?>
|
||||||
|
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||||
|
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<?php endif; ?>
|
1
admin/layouts/extension/index.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<html><body bgcolor="#FFFFFF"></body></html>
|
55
admin/layouts/extension/publishing.php
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage publishing.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
// get the form
|
||||||
|
$form = $displayData->getForm();
|
||||||
|
|
||||||
|
// get the layout fields override method name (from layout path/ID)
|
||||||
|
$layout_path_array = explode('.', $this->getLayoutId());
|
||||||
|
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||||
|
// this name combination of tab and layout in the method name is the only work around
|
||||||
|
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||||
|
// example of layout name: details_left.php
|
||||||
|
// example of method name: getFields_details_left()
|
||||||
|
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||||
|
|
||||||
|
// get the fields
|
||||||
|
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||||
|
'title',
|
||||||
|
'created',
|
||||||
|
'created_by',
|
||||||
|
'modified',
|
||||||
|
'modified_by'
|
||||||
|
);
|
||||||
|
|
||||||
|
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||||
|
|
||||||
|
?>
|
||||||
|
<?php if ($fields && count((array) $fields)) :?>
|
||||||
|
<?php foreach($fields as $field): ?>
|
||||||
|
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||||
|
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<?php endif; ?>
|
55
admin/layouts/extension/publlshing.php
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage publlshing.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
// get the form
|
||||||
|
$form = $displayData->getForm();
|
||||||
|
|
||||||
|
// get the layout fields override method name (from layout path/ID)
|
||||||
|
$layout_path_array = explode('.', $this->getLayoutId());
|
||||||
|
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||||
|
// this name combination of tab and layout in the method name is the only work around
|
||||||
|
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||||
|
// example of layout name: details_left.php
|
||||||
|
// example of method name: getFields_details_left()
|
||||||
|
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||||
|
|
||||||
|
// get the fields
|
||||||
|
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||||
|
'published',
|
||||||
|
'ordering',
|
||||||
|
'version',
|
||||||
|
'hits',
|
||||||
|
'id'
|
||||||
|
);
|
||||||
|
|
||||||
|
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||||
|
|
||||||
|
?>
|
||||||
|
<?php if ($fields && count((array) $fields)) :?>
|
||||||
|
<?php foreach($fields as $field): ?>
|
||||||
|
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||||
|
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<?php endif; ?>
|
185
admin/layouts/extension/releases_fullwidth.php
Normal file
@ -0,0 +1,185 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage releases_fullwidth.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
// set the defaults
|
||||||
|
$items = $displayData->vvwreleases;
|
||||||
|
$user = JFactory::getUser();
|
||||||
|
$id = $displayData->item->id;
|
||||||
|
// set the edit URL
|
||||||
|
$edit = "index.php?option=com_extensiondistributor&view=releases&task=release.edit";
|
||||||
|
// set a return value
|
||||||
|
$return = ($id) ? "index.php?option=com_extensiondistributor&view=extension&layout=edit&id=" . $id : "";
|
||||||
|
// check for a return value
|
||||||
|
$jinput = JFactory::getApplication()->input;
|
||||||
|
if ($_return = $jinput->get('return', null, 'base64'))
|
||||||
|
{
|
||||||
|
$return .= "&return=" . $_return;
|
||||||
|
}
|
||||||
|
// check if return value was set
|
||||||
|
if (ExtensiondistributorHelper::checkString($return))
|
||||||
|
{
|
||||||
|
// set the referral values
|
||||||
|
$ref = ($id) ? "&ref=extension&refid=" . $id . "&return=" . urlencode(base64_encode($return)) : "&return=" . urlencode(base64_encode($return));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$ref = ($id) ? "&ref=extension&refid=" . $id : "";
|
||||||
|
}
|
||||||
|
// set the create new URL
|
||||||
|
$new = "index.php?option=com_extensiondistributor&view=releases&task=release.edit" . $ref;
|
||||||
|
// load the action object
|
||||||
|
$can = ExtensiondistributorHelper::getActions('release');
|
||||||
|
|
||||||
|
?>
|
||||||
|
<div class="form-vertical">
|
||||||
|
<?php if ($can->get('core.create')): ?>
|
||||||
|
<a class="btn btn-small btn-success" href="<?php echo $new; ?>"><span class="icon-new icon-white"></span> <?php echo JText::_('COM_EXTENSIONDISTRIBUTOR_NEW'); ?></a><br /><br />
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php if (ExtensiondistributorHelper::checkArray($items)): ?>
|
||||||
|
<table class="footable table data releases" data-show-toggle="true" data-toggle-column="first" data-sorting="true" data-paging="true" data-paging-size="20" data-filtering="true">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th data-breakpoints="xs sm" data-type="html" data-sort-use="text">
|
||||||
|
<?php echo JText::_('COM_EXTENSIONDISTRIBUTOR_RELEASES_'); ?>
|
||||||
|
</th>
|
||||||
|
<th data-type="html" data-sort-use="text">
|
||||||
|
<?php echo JText::_('COM_EXTENSIONDISTRIBUTOR_RELEASE_VERSION_NUMBER_LABEL'); ?>
|
||||||
|
</th>
|
||||||
|
<th data-breakpoints="xs sm" data-type="html" data-sort-use="text">
|
||||||
|
<?php echo JText::_('COM_EXTENSIONDISTRIBUTOR_RELEASES_DOWNLOAD'); ?>
|
||||||
|
</th>
|
||||||
|
<th data-breakpoints="xs sm md" data-type="html" data-sort-use="text">
|
||||||
|
<?php echo JText::_('COM_EXTENSIONDISTRIBUTOR_RELEASE_RELEASE_DATE_LABEL'); ?>
|
||||||
|
</th>
|
||||||
|
<th data-breakpoints="xs sm md" data-type="html" data-sort-use="text">
|
||||||
|
<?php echo JText::_('COM_EXTENSIONDISTRIBUTOR_RELEASE_RELTYPE_LABEL'); ?>
|
||||||
|
</th>
|
||||||
|
<th data-breakpoints="xs sm md" data-type="html" data-sort-use="text">
|
||||||
|
<?php echo JText::_('COM_EXTENSIONDISTRIBUTOR_RELEASE_DESCRIPTION_LABEL'); ?>
|
||||||
|
</th>
|
||||||
|
<th width="10" data-breakpoints="xs sm md">
|
||||||
|
<?php echo JText::_('COM_EXTENSIONDISTRIBUTOR_RELEASE_STATUS'); ?>
|
||||||
|
</th>
|
||||||
|
<th width="5" data-type="number" data-breakpoints="xs sm md">
|
||||||
|
<?php echo JText::_('COM_EXTENSIONDISTRIBUTOR_RELEASE_ID'); ?>
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<?php foreach ($items as $i => $item): ?>
|
||||||
|
<?php
|
||||||
|
$canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out == $user->id || $item->checked_out == 0;
|
||||||
|
$userChkOut = JFactory::getUser($item->checked_out);
|
||||||
|
$canDo = ExtensiondistributorHelper::getActions('release',$item,'releases');
|
||||||
|
?>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<div><?php echo JLayoutHelper::render( 'statewidget', array($item) ); ?>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div><span class="lead">
|
||||||
|
<?php if ($canDo->get('core.edit')): ?>
|
||||||
|
<a href="<?php echo $edit; ?>&id=<?php echo $item->id; ?><?php echo $ref; ?>"><?php echo $displayData->escape($item->version_number); ?></a>
|
||||||
|
<?php if ($item->checked_out): ?>
|
||||||
|
<?php echo JHtml::_('jgrid.checkedout', $i, $userChkOut->name, $item->checked_out_time, 'releases.', $canCheckin); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php else: ?>
|
||||||
|
<?php echo $displayData->escape($item->version_number); ?>
|
||||||
|
<?php endif; ?></span>
|
||||||
|
<?php
|
||||||
|
$lists = ExtensiondistributorHelper::getApplicationLists();
|
||||||
|
$level = ExtensiondistributorHelper::getVar('release',$item->id,'id','stability');
|
||||||
|
$stability = $lists['stability'];
|
||||||
|
?>
|
||||||
|
<span class="uk-margin-small-left label label-<?= $stability[$level]['color'] ?>"><?= $stability[$level]['label'] ?></span>
|
||||||
|
|
||||||
|
<!-- [11]=> Version (releases); [41]=> Stability (releases) -->
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div><?php if ($item->file == -1) : ?>
|
||||||
|
<div class="label label-important"><span class="icon-warning"></span> N/A</div>
|
||||||
|
<?php else : ?>
|
||||||
|
<?php $view = strtolower(JFactory::getApplication()->input->get('view')); ?>
|
||||||
|
<a
|
||||||
|
class="agxbtn agxbtn-mini"
|
||||||
|
href="index.php?option=com_extensiondistributor&task=extension.download&<?= $view ?>=<?= $item->$view ?>&release=<?= $item->id ?>&<?= JSession::getFormToken() ?>=1"
|
||||||
|
>
|
||||||
|
<span class="icon-download"></span> Download
|
||||||
|
</a>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div><?= JHtml::date($item->release_date,'DATE_FORMAT_LC3'); ?>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<?php echo JText::_($item->reltype); ?>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div><?= $item->description; ?>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<?php if ($item->published == 1): ?>
|
||||||
|
<td class="center" data-sort-value="1">
|
||||||
|
<span class="status-metro status-published" title="<?php echo JText::_('COM_EXTENSIONDISTRIBUTOR_PUBLISHED'); ?>">
|
||||||
|
<?php echo JText::_('COM_EXTENSIONDISTRIBUTOR_PUBLISHED'); ?>
|
||||||
|
</span>
|
||||||
|
</td>
|
||||||
|
<?php elseif ($item->published == 0): ?>
|
||||||
|
<td class="center" data-sort-value="2">
|
||||||
|
<span class="status-metro status-inactive" title="<?php echo JText::_('COM_EXTENSIONDISTRIBUTOR_INACTIVE'); ?>">
|
||||||
|
<?php echo JText::_('COM_EXTENSIONDISTRIBUTOR_INACTIVE'); ?>
|
||||||
|
</span>
|
||||||
|
</td>
|
||||||
|
<?php elseif ($item->published == 2): ?>
|
||||||
|
<td class="center" data-sort-value="3">
|
||||||
|
<span class="status-metro status-archived" title="<?php echo JText::_('COM_EXTENSIONDISTRIBUTOR_ARCHIVED'); ?>">
|
||||||
|
<?php echo JText::_('COM_EXTENSIONDISTRIBUTOR_ARCHIVED'); ?>
|
||||||
|
</span>
|
||||||
|
</td>
|
||||||
|
<?php elseif ($item->published == -2): ?>
|
||||||
|
<td class="center" data-sort-value="4">
|
||||||
|
<span class="status-metro status-trashed" title="<?php echo JText::_('COM_EXTENSIONDISTRIBUTOR_TRASHED'); ?>">
|
||||||
|
<?php echo JText::_('COM_EXTENSIONDISTRIBUTOR_TRASHED'); ?>
|
||||||
|
</span>
|
||||||
|
</td>
|
||||||
|
<?php endif; ?>
|
||||||
|
<td class="nowrap center hidden-phone">
|
||||||
|
<?php echo $item->id; ?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<?php else: ?>
|
||||||
|
<div class="alert alert-no-items">
|
||||||
|
<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
</div>
|
67
admin/layouts/importfiles.php
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage importfiles.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('JPATH_BASE') or die('Restricted access');
|
||||||
|
|
||||||
|
$files = $displayData[0];
|
||||||
|
$return = 'index.php?option=com_extensiondistributor&view=import';
|
||||||
|
$redirect = base64_encode($return);
|
||||||
|
JHtml::_('bootstrap.tooltip', '.hasTooltip', ['placement' => 'left']);
|
||||||
|
|
||||||
|
|
||||||
|
?>
|
||||||
|
<?php if (ExtensiondistributorHelper::checkArray($files)) : ?>
|
||||||
|
<h4>Files ready to import</h4>
|
||||||
|
<table class="table table-striped">
|
||||||
|
<tbody>
|
||||||
|
<?php foreach ($files as $file) : ?>
|
||||||
|
<tr>
|
||||||
|
<td class="nowrap">
|
||||||
|
<div class="btn-group">
|
||||||
|
<a href="index.php?option=com_extensiondistributor&task=extension.importExtensions&file=<?= base64_encode($file) ?>&return=<?= $redirect ?>&<?= JSession::getFormToken() ?>=1" title="Import file" class="btn btn-micro btn-success hasTooltip">
|
||||||
|
<span class="icon-download"></span>
|
||||||
|
</a>
|
||||||
|
<a href="index.php?option=com_extensiondistributor&task=extension.deleteImportFiles&file=<?= base64_encode($file) ?>&return=<?= $redirect ?>&<?= JSession::getFormToken() ?>=1" title="Delete file" class="btn btn-micro btn-danger hasTooltip">
|
||||||
|
<span class="icon-purge"></span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td width="100%"><?= pathinfo($file)['filename'] ?></td>
|
||||||
|
</tr>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<div class="mt10">
|
||||||
|
<a href="index.php?option=com_extensiondistributor&task=extension.importExtensions&return=<?= $redirect ?>&<?= JSession::getFormToken() ?>=1" class="btn btn-small btn-success">
|
||||||
|
<span class="icon-download"></span> Import all files
|
||||||
|
</a>
|
||||||
|
<a href="index.php?option=com_extensiondistributor&task=extension.deleteImportFiles&return=<?= $redirect ?>&<?= JSession::getFormToken() ?>=1" class="btn btn-small btn-danger">
|
||||||
|
<span class="icon-purge"></span> Delete all files in import folder
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<?php else : ?>
|
||||||
|
<div class="alert alert-warning">
|
||||||
|
There aren't any files in the import folder
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
1
admin/layouts/index.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<html><body bgcolor="#FFFFFF"></body></html>
|
53
admin/layouts/key/details_left.php
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage details_left.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
// get the form
|
||||||
|
$form = $displayData->getForm();
|
||||||
|
|
||||||
|
// get the layout fields override method name (from layout path/ID)
|
||||||
|
$layout_path_array = explode('.', $this->getLayoutId());
|
||||||
|
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||||
|
// this name combination of tab and layout in the method name is the only work around
|
||||||
|
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||||
|
// example of layout name: details_left.php
|
||||||
|
// example of method name: getFields_details_left()
|
||||||
|
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||||
|
|
||||||
|
// get the fields
|
||||||
|
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||||
|
'user',
|
||||||
|
'website',
|
||||||
|
'key'
|
||||||
|
);
|
||||||
|
|
||||||
|
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||||
|
|
||||||
|
?>
|
||||||
|
<?php if ($fields && count((array) $fields)) :?>
|
||||||
|
<?php foreach($fields as $field): ?>
|
||||||
|
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||||
|
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<?php endif; ?>
|
1
admin/layouts/key/index.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<html><body bgcolor="#FFFFFF"></body></html>
|
55
admin/layouts/key/publishing.php
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage publishing.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
// get the form
|
||||||
|
$form = $displayData->getForm();
|
||||||
|
|
||||||
|
// get the layout fields override method name (from layout path/ID)
|
||||||
|
$layout_path_array = explode('.', $this->getLayoutId());
|
||||||
|
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||||
|
// this name combination of tab and layout in the method name is the only work around
|
||||||
|
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||||
|
// example of layout name: details_left.php
|
||||||
|
// example of method name: getFields_details_left()
|
||||||
|
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||||
|
|
||||||
|
// get the fields
|
||||||
|
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||||
|
'title',
|
||||||
|
'created',
|
||||||
|
'created_by',
|
||||||
|
'modified',
|
||||||
|
'modified_by'
|
||||||
|
);
|
||||||
|
|
||||||
|
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||||
|
|
||||||
|
?>
|
||||||
|
<?php if ($fields && count((array) $fields)) :?>
|
||||||
|
<?php foreach($fields as $field): ?>
|
||||||
|
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||||
|
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<?php endif; ?>
|
55
admin/layouts/key/publlshing.php
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage publlshing.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
// get the form
|
||||||
|
$form = $displayData->getForm();
|
||||||
|
|
||||||
|
// get the layout fields override method name (from layout path/ID)
|
||||||
|
$layout_path_array = explode('.', $this->getLayoutId());
|
||||||
|
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||||
|
// this name combination of tab and layout in the method name is the only work around
|
||||||
|
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||||
|
// example of layout name: details_left.php
|
||||||
|
// example of method name: getFields_details_left()
|
||||||
|
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||||
|
|
||||||
|
// get the fields
|
||||||
|
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||||
|
'published',
|
||||||
|
'ordering',
|
||||||
|
'version',
|
||||||
|
'hits',
|
||||||
|
'id'
|
||||||
|
);
|
||||||
|
|
||||||
|
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||||
|
|
||||||
|
?>
|
||||||
|
<?php if ($fields && count((array) $fields)) :?>
|
||||||
|
<?php foreach($fields as $field): ?>
|
||||||
|
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||||
|
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<?php endif; ?>
|
56
admin/layouts/package/configuration_left.php
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage configuration_left.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
// get the form
|
||||||
|
$form = $displayData->getForm();
|
||||||
|
|
||||||
|
// get the layout fields override method name (from layout path/ID)
|
||||||
|
$layout_path_array = explode('.', $this->getLayoutId());
|
||||||
|
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||||
|
// this name combination of tab and layout in the method name is the only work around
|
||||||
|
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||||
|
// example of layout name: details_left.php
|
||||||
|
// example of method name: getFields_details_left()
|
||||||
|
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||||
|
|
||||||
|
// get the fields
|
||||||
|
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||||
|
'packagename',
|
||||||
|
'author',
|
||||||
|
'authorurl',
|
||||||
|
'authoremail',
|
||||||
|
'targetplatform',
|
||||||
|
'php_minimum'
|
||||||
|
);
|
||||||
|
|
||||||
|
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||||
|
|
||||||
|
?>
|
||||||
|
<?php if ($fields && count((array) $fields)) :?>
|
||||||
|
<?php foreach($fields as $field): ?>
|
||||||
|
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||||
|
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<?php endif; ?>
|
55
admin/layouts/package/configuration_right.php
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage configuration_right.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
// get the form
|
||||||
|
$form = $displayData->getForm();
|
||||||
|
|
||||||
|
// get the layout fields override method name (from layout path/ID)
|
||||||
|
$layout_path_array = explode('.', $this->getLayoutId());
|
||||||
|
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||||
|
// this name combination of tab and layout in the method name is the only work around
|
||||||
|
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||||
|
// example of layout name: details_left.php
|
||||||
|
// example of method name: getFields_details_left()
|
||||||
|
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||||
|
|
||||||
|
// get the fields
|
||||||
|
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||||
|
'packager',
|
||||||
|
'packagerurl',
|
||||||
|
'license',
|
||||||
|
'copyright',
|
||||||
|
'infourl'
|
||||||
|
);
|
||||||
|
|
||||||
|
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||||
|
|
||||||
|
?>
|
||||||
|
<?php if ($fields && count((array) $fields)) :?>
|
||||||
|
<?php foreach($fields as $field): ?>
|
||||||
|
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||||
|
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<?php endif; ?>
|
54
admin/layouts/package/details_above.php
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage details_above.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
// get the form
|
||||||
|
$form = $displayData->getForm();
|
||||||
|
|
||||||
|
// get the layout fields override method name (from layout path/ID)
|
||||||
|
$layout_path_array = explode('.', $this->getLayoutId());
|
||||||
|
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||||
|
// this name combination of tab and layout in the method name is the only work around
|
||||||
|
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||||
|
// example of layout name: details_left.php
|
||||||
|
// example of method name: getFields_details_left()
|
||||||
|
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||||
|
|
||||||
|
// get the fields
|
||||||
|
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||||
|
'name',
|
||||||
|
'alias'
|
||||||
|
);
|
||||||
|
|
||||||
|
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||||
|
|
||||||
|
?>
|
||||||
|
<?php if ($fields && count((array) $fields)) :?>
|
||||||
|
<div class="form-inline form-inline-header">
|
||||||
|
<?php foreach($fields as $field): ?>
|
||||||
|
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||||
|
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
51
admin/layouts/package/details_left.php
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage details_left.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
// get the form
|
||||||
|
$form = $displayData->getForm();
|
||||||
|
|
||||||
|
// get the layout fields override method name (from layout path/ID)
|
||||||
|
$layout_path_array = explode('.', $this->getLayoutId());
|
||||||
|
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||||
|
// this name combination of tab and layout in the method name is the only work around
|
||||||
|
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||||
|
// example of layout name: details_left.php
|
||||||
|
// example of method name: getFields_details_left()
|
||||||
|
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||||
|
|
||||||
|
// get the fields
|
||||||
|
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||||
|
'description'
|
||||||
|
);
|
||||||
|
|
||||||
|
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||||
|
|
||||||
|
?>
|
||||||
|
<?php if ($fields && count((array) $fields)) :?>
|
||||||
|
<?php foreach($fields as $field): ?>
|
||||||
|
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||||
|
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<?php endif; ?>
|
63
admin/layouts/package/details_right.php
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage details_right.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
// get the form
|
||||||
|
$form = $displayData->getForm();
|
||||||
|
|
||||||
|
// get the layout fields override method name (from layout path/ID)
|
||||||
|
$layout_path_array = explode('.', $this->getLayoutId());
|
||||||
|
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||||
|
// this name combination of tab and layout in the method name is the only work around
|
||||||
|
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||||
|
// example of layout name: details_left.php
|
||||||
|
// example of method name: getFields_details_left()
|
||||||
|
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||||
|
|
||||||
|
// get the fields
|
||||||
|
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||||
|
'catid',
|
||||||
|
'image',
|
||||||
|
'free',
|
||||||
|
'blockchilduninstall',
|
||||||
|
'useupdate',
|
||||||
|
'update',
|
||||||
|
'newfilename',
|
||||||
|
'jed',
|
||||||
|
'note_jcb_package',
|
||||||
|
'upload_jcb',
|
||||||
|
'file',
|
||||||
|
'version_number',
|
||||||
|
'release_date'
|
||||||
|
);
|
||||||
|
|
||||||
|
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||||
|
|
||||||
|
?>
|
||||||
|
<?php if ($fields && count((array) $fields)) :?>
|
||||||
|
<?php foreach($fields as $field): ?>
|
||||||
|
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||||
|
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<?php endif; ?>
|
51
admin/layouts/package/files_left.php
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage files_left.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
// get the form
|
||||||
|
$form = $displayData->getForm();
|
||||||
|
|
||||||
|
// get the layout fields override method name (from layout path/ID)
|
||||||
|
$layout_path_array = explode('.', $this->getLayoutId());
|
||||||
|
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||||
|
// this name combination of tab and layout in the method name is the only work around
|
||||||
|
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||||
|
// example of layout name: details_left.php
|
||||||
|
// example of method name: getFields_details_left()
|
||||||
|
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||||
|
|
||||||
|
// get the fields
|
||||||
|
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||||
|
'files'
|
||||||
|
);
|
||||||
|
|
||||||
|
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||||
|
|
||||||
|
?>
|
||||||
|
<?php if ($fields && count((array) $fields)) :?>
|
||||||
|
<?php foreach($fields as $field): ?>
|
||||||
|
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||||
|
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<?php endif; ?>
|
1
admin/layouts/package/index.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<html><body bgcolor="#FFFFFF"></body></html>
|
50
admin/layouts/package/metadata.php
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage metadata.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
$form = $displayData->getForm();
|
||||||
|
|
||||||
|
// JLayout for standard handling of metadata fields in the administrator content edit screens.
|
||||||
|
$fieldSets = $form->getFieldsets('metadata');
|
||||||
|
?>
|
||||||
|
|
||||||
|
<?php foreach ($fieldSets as $name => $fieldSet) : ?>
|
||||||
|
<?php if (isset($fieldSet->description) && trim($fieldSet->description)) : ?>
|
||||||
|
<p class="alert alert-info"><?php echo $this->escape(JText::_($fieldSet->description)); ?></p>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
// Include the real fields in this panel.
|
||||||
|
if ($name == 'vdmmetadata')
|
||||||
|
{
|
||||||
|
echo $form->renderField('metadesc');
|
||||||
|
echo $form->renderField('metakey');
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($form->getFieldset($name) as $field)
|
||||||
|
{
|
||||||
|
if ($field->name != 'jform[metadata][tags][]')
|
||||||
|
{
|
||||||
|
echo $field->renderField();
|
||||||
|
}
|
||||||
|
} ?>
|
||||||
|
<?php endforeach; ?>
|
61
admin/layouts/package/publishing.php
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
<?php
|
||||||
|
/*----------------------------------------------------------------------------------| www.vdm.io |----/
|
||||||
|
Agence Agerix
|
||||||
|
/-------------------------------------------------------------------------------------------------------/
|
||||||
|
|
||||||
|
@version 1.x.x
|
||||||
|
@build 2nd June, 2022
|
||||||
|
@created 12th December, 2020
|
||||||
|
@package Extension Distributor
|
||||||
|
@subpackage publishing.php
|
||||||
|
@author Emmanuel Danan <https://agerix.fr>
|
||||||
|
@copyright Copyright (C) 2021. All Rights Reserved.
|
||||||
|
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____
|
||||||
|
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _)
|
||||||
|
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )(
|
||||||
|
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__)
|
||||||
|
|
||||||
|
/------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
// get the form
|
||||||
|
$form = $displayData->getForm();
|
||||||
|
|
||||||
|
// get the layout fields override method name (from layout path/ID)
|
||||||
|
$layout_path_array = explode('.', $this->getLayoutId());
|
||||||
|
// Since we cannot pass the layout and tab names as parameters to the model method
|
||||||
|
// this name combination of tab and layout in the method name is the only work around
|
||||||
|
// seeing that JCB uses those two values (tab_name & layout_name) as the layout file name.
|
||||||
|
// example of layout name: details_left.php
|
||||||
|
// example of method name: getFields_details_left()
|
||||||
|
$fields_tab_layout = 'fields_' . $layout_path_array[1];
|
||||||
|
|
||||||
|
// get the fields
|
||||||
|
$fields = $displayData->get($fields_tab_layout) ?: array(
|
||||||
|
'title',
|
||||||
|
'created',
|
||||||
|
'created_by',
|
||||||
|
'modified',
|
||||||
|
'modified_by',
|
||||||
|
'published',
|
||||||
|
'ordering',
|
||||||
|
'access',
|
||||||
|
'version',
|
||||||
|
'hits',
|
||||||
|
'id'
|
||||||
|
);
|
||||||
|
|
||||||
|
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||||
|
|
||||||
|
?>
|
||||||
|
<?php if ($fields && count((array) $fields)) :?>
|
||||||
|
<?php foreach($fields as $field): ?>
|
||||||
|
<?php if (in_array($field, $hiddenFields)) : ?>
|
||||||
|
<?php $form->setFieldAttribute($field, 'type', 'hidden'); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php echo $form->renderField($field, null, null, array('class' => 'control-wrapper-' . $field)); ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<?php endif; ?>
|