Add upstream
339
wp-content/plugins/antispam-bee/LICENSE.txt
Normal file
@@ -0,0 +1,339 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc., <http://fsf.org/>
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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 Lesser 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.
|
||||
|
||||
{description}
|
||||
Copyright (C) {year} {fullname}
|
||||
|
||||
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.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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 Lesser General
|
||||
Public License instead of this License.
|
||||
2852
wp-content/plugins/antispam-bee/antispam_bee.php
Normal file
18
wp-content/plugins/antispam-bee/css/dashboard.css
Normal file
@@ -0,0 +1,18 @@
|
||||
#ab_chart {
|
||||
color: #a0a5aa;
|
||||
height: 140px;
|
||||
margin: 0 -4px;
|
||||
text-align: center;
|
||||
}
|
||||
#ab_chart_data {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#ab_widget .inside {
|
||||
height: 1%;
|
||||
margin: 0;
|
||||
padding-bottom: 0;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
white-space: nowrap;
|
||||
}
|
||||
1
wp-content/plugins/antispam-bee/css/dashboard.min.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
#ab_chart{color:#a0a5aa;height:140px;margin:0 -4px;text-align:center;}#ab_chart_data{display:none;}#ab_widget .inside{height:1%;margin:0;padding-bottom:0;overflow:hidden;position:relative;white-space:nowrap;}
|
||||
268
wp-content/plugins/antispam-bee/css/styles.css
Normal file
@@ -0,0 +1,268 @@
|
||||
/* @group General */
|
||||
|
||||
.ab-main *,
|
||||
.ab-main *:after,
|
||||
.ab-main *:before {
|
||||
border: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
outline: 0;
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/* @end group */
|
||||
|
||||
/* @group Browse Happy */
|
||||
|
||||
.browsehappy {
|
||||
margin: 0 0 20px;
|
||||
padding: 10px;
|
||||
border: 1px solid #e66f00;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* @end group */
|
||||
|
||||
/* @group Columns */
|
||||
|
||||
.ab-wrap {
|
||||
margin: 0 0 0 -10px;
|
||||
padding: 20px 0 0 0;
|
||||
text-rendering: optimizeLegibility;
|
||||
}
|
||||
|
||||
.ab-column {
|
||||
float: left;
|
||||
margin: 0 0 0 10px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* @end group */
|
||||
|
||||
/* @group Headlines + Icons */
|
||||
|
||||
.ab-column h3 {
|
||||
margin: 0;
|
||||
font-size: 18px;
|
||||
font-weight: normal;
|
||||
line-height: 20px;
|
||||
color: #23282d;
|
||||
}
|
||||
|
||||
.ab-column h3.icon:before {
|
||||
font: normal 30px/30px Dashicons;
|
||||
top: 4px;
|
||||
right: 20px;
|
||||
speak: none;
|
||||
width: 1em;
|
||||
color: #8e959c;
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.ab-column.ab-arrow h3.icon:before {
|
||||
content: '\f536';
|
||||
}
|
||||
|
||||
.ab-column.ab-join h3.icon:before {
|
||||
content: '\f108';
|
||||
}
|
||||
|
||||
.ab-column.ab-diff h3.icon:before {
|
||||
content: '\f237';
|
||||
}
|
||||
|
||||
.ab-column h6 {
|
||||
clear: both;
|
||||
color: #555d66;
|
||||
margin: 0 0 20px;
|
||||
font-weight: normal;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
/* @end group */
|
||||
|
||||
/* @group Form */
|
||||
|
||||
.ab-column input[type="text"],
|
||||
.ab-column input[type="number"],
|
||||
.ab-column select {
|
||||
font-size: 13px;
|
||||
text-align: center;
|
||||
background: #f8f8f9;
|
||||
}
|
||||
|
||||
.ab-column input[type="number"] {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.ab-column select[multiple] {
|
||||
width: 175px;
|
||||
min-height: 60px;
|
||||
}
|
||||
|
||||
.ab-column input.ab-mini-field {
|
||||
width: 40px;
|
||||
}
|
||||
|
||||
.ab-column .ab-medium-field {
|
||||
width: 100%;
|
||||
max-width: 285px;
|
||||
}
|
||||
|
||||
.ab-column input[type="text"] + label,
|
||||
.ab-column select + label {
|
||||
color: #8e959c;
|
||||
margin: 0 0 0 7px;
|
||||
display: inline-block;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
/* @end group */
|
||||
|
||||
/* @group Column contents */
|
||||
|
||||
.ab-column > ul {
|
||||
padding: 0 20px 0 0;
|
||||
}
|
||||
|
||||
.ab-column:last-of-type > ul {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.ab-column > ul > li {
|
||||
width: 330px;
|
||||
margin: 0 0 36px;
|
||||
padding: 10px 0 12px 12px;
|
||||
position: relative;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.ab-column > ul > li a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.ab-column > ul > li a:hover {
|
||||
border-color: inherit;
|
||||
}
|
||||
|
||||
.ab-column > ul > li label {
|
||||
cursor: default;
|
||||
display: inline-block;
|
||||
font-size: 14px;
|
||||
max-width: 286px;
|
||||
color: #23282d;
|
||||
}
|
||||
|
||||
.ab-column > ul > li label span {
|
||||
color: #555d66;
|
||||
display: block;
|
||||
font-size: 13px;
|
||||
line-height: 16px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
/* @end group */
|
||||
|
||||
/* @group Separator */
|
||||
|
||||
.ab-column > ul > li:after,
|
||||
.ab-column > ul > li:before {
|
||||
width: 0;
|
||||
content: '';
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.ab-column.ab-arrow > ul > li:before,
|
||||
.ab-column.ab-arrow > ul > li:after {
|
||||
left: 157px;
|
||||
border-width: 10px 10px 0;
|
||||
border-style: solid;
|
||||
}
|
||||
|
||||
.ab-column.ab-arrow > ul > li:before {
|
||||
bottom: -24px;
|
||||
border-color: #fff transparent;
|
||||
}
|
||||
|
||||
.ab-column.ab-arrow > ul > li:after {
|
||||
bottom: -22px;
|
||||
border-color: #f1f1f1 transparent;
|
||||
}
|
||||
|
||||
.ab-column.ab-join > ul > li:before {
|
||||
left: 171px;
|
||||
bottom: -27px;
|
||||
height: 18px;
|
||||
border-right: 2px solid #fff;
|
||||
}
|
||||
|
||||
.ab-column.ab-diff > ul > li:before {
|
||||
left: 162px;
|
||||
bottom: -19px;
|
||||
width: 18px;
|
||||
height: 0;
|
||||
border-bottom: 2px solid #fff;
|
||||
}
|
||||
|
||||
/* @end group */
|
||||
|
||||
/* @group Submit & Service */
|
||||
|
||||
.ab-column--submit-service {
|
||||
width: 342px;
|
||||
margin-top: 20px;
|
||||
padding-right: 20px;
|
||||
}
|
||||
|
||||
.ab-column--submit-service p {
|
||||
padding: 5px 0;
|
||||
margin: 0;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.ab-column--submit-service p:first-of-type {
|
||||
border-top: 1px solid #e0e5e9;
|
||||
}
|
||||
|
||||
.ab-column--submit-service p:last-of-type {
|
||||
border-bottom: 1px solid #e0e5e9;
|
||||
}
|
||||
|
||||
.ab-column--submit-service .button {
|
||||
width: 100%;
|
||||
margin: 35px 0 10px;
|
||||
}
|
||||
|
||||
/* @end group */
|
||||
|
||||
/* @group 2nd level */
|
||||
|
||||
.ab-column > ul > li:last-of-type:after,
|
||||
.ab-column > ul > li:last-of-type:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.ab-column > ul > li > ul {
|
||||
margin: 10px 10px 0 26px;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.ab-column > ul > li > ul li {
|
||||
padding: 2px 0;
|
||||
}
|
||||
|
||||
.ab-column > ul > li > ul label {
|
||||
margin: 0 0 0 7px;
|
||||
}
|
||||
|
||||
.ab-column > ul > li > input[type="checkbox"]:checked ~ ul {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* @end group */
|
||||
1
wp-content/plugins/antispam-bee/css/styles.min.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.ab-main *,.ab-main :after,.ab-main :before{border:0;margin:0;padding:0;outline:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.browsehappy{margin:0 0 20px;padding:10px;border:1px solid #e66f00;text-align:center}.ab-wrap{margin:0 0 0 -10px;padding:20px 0 0;text-rendering:optimizeLegibility}.ab-column{float:left;margin:0 0 0 10px;position:relative}.ab-column h3{margin:0;font-size:18px;font-weight:400;line-height:20px;color:#23282d}.ab-column h3.icon:before{font:400 30px/30px Dashicons;top:4px;right:20px;speak:none;width:1em;color:#8e959c;position:absolute;text-align:center;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ab-column.ab-arrow h3.icon:before{content:'\f536'}.ab-column.ab-join h3.icon:before{content:'\f108'}.ab-column.ab-diff h3.icon:before{content:'\f237'}.ab-column h6{clear:both;color:#555d66;margin:0 0 20px;font-weight:400;font-size:13px}.ab-column input[type=text],.ab-column input[type=number],.ab-column select{font-size:13px;text-align:center;background:#f8f8f9}.ab-column input[type=number]{padding:0}.ab-column select[multiple]{width:175px;min-height:60px}.ab-column input.ab-mini-field{width:40px}.ab-column .ab-medium-field{width:100%;max-width:285px}.ab-column input[type=text]+label,.ab-column select+label{color:#8e959c;margin:0 0 0 7px;display:inline-block;text-transform:uppercase}.ab-column>ul{padding:0 20px 0 0}.ab-column:last-of-type>ul{border:0}.ab-column>ul>li{width:330px;margin:0 0 36px;padding:10px 0 12px 12px;position:relative;background:#fff}.ab-column>ul>li a{text-decoration:underline}.ab-column>ul>li a:hover{border-color:inherit}.ab-column>ul>li label{cursor:default;display:inline-block;font-size:14px;max-width:286px;color:#23282d}.ab-column>ul>li label span{color:#555d66;display:block;font-size:13px;line-height:16px;margin-top:5px}.ab-column>ul>li:after,.ab-column>ul>li:before{width:0;content:'';position:absolute}.ab-column.ab-arrow>ul>li:after,.ab-column.ab-arrow>ul>li:before{left:157px;border-width:10px 10px 0;border-style:solid}.ab-column.ab-arrow>ul>li:before{bottom:-24px;border-color:#fff transparent}.ab-column.ab-arrow>ul>li:after{bottom:-22px;border-color:#f1f1f1 transparent}.ab-column.ab-join>ul>li:before{left:171px;bottom:-27px;height:18px;border-right:2px solid #fff}.ab-column.ab-diff>ul>li:before{left:162px;bottom:-19px;width:18px;height:0;border-bottom:2px solid #fff}.ab-column--submit-service{width:342px;margin-top:20px;padding-right:20px}.ab-column--submit-service p{padding:5px 0;margin:0;text-align:center;width:100%}.ab-column--submit-service p:first-of-type{border-top:1px solid #e0e5e9}.ab-column--submit-service p:last-of-type{border-bottom:1px solid #e0e5e9}.ab-column--submit-service .button{width:100%;margin:35px 0 10px}.ab-column>ul>li:last-of-type:after,.ab-column>ul>li:last-of-type:before{display:none}.ab-column>ul>li>ul{margin:10px 10px 0 26px;display:none}.ab-column>ul>li>ul li{padding:2px 0}.ab-column>ul>li>ul label{margin:0 0 0 7px}.ab-column>ul>li>input[type=checkbox]:checked~ul{display:block}
|
||||
105
wp-content/plugins/antispam-bee/inc/columns.class.php
Normal file
@@ -0,0 +1,105 @@
|
||||
<?php
|
||||
/**
|
||||
* The Columns Class.
|
||||
*
|
||||
* @package Antispam Bee
|
||||
*/
|
||||
|
||||
defined( 'ABSPATH' ) || exit;
|
||||
|
||||
/**
|
||||
* Class Antispam_Bee_Columns
|
||||
*/
|
||||
final class Antispam_Bee_Columns {
|
||||
|
||||
/**
|
||||
* Register plugin columns on comments screen.
|
||||
*
|
||||
* @since 2.6.0
|
||||
* @change 2.6.0
|
||||
*
|
||||
* @param array $columns Array with existing columns.
|
||||
* @return array Array with extended columns.
|
||||
*/
|
||||
public static function register_plugin_columns( $columns ) {
|
||||
return array_merge(
|
||||
$columns,
|
||||
array(
|
||||
'antispam_bee_reason' => esc_html__( 'Spam Reason', 'antispam-bee' ),
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Display plugin column values on comments screen
|
||||
*
|
||||
* @since 2.6.0
|
||||
* @change 2.6.0
|
||||
*
|
||||
* @param string $column Currently selected column.
|
||||
* @param integer $comment_id Comment ID.
|
||||
*/
|
||||
public static function print_plugin_column( $column, $comment_id ) {
|
||||
if ( 'antispam_bee_reason' !== $column ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$spam_reason = get_comment_meta( $comment_id, $column, true );
|
||||
$spam_reasons = Antispam_Bee::$defaults['reasons'];
|
||||
|
||||
if ( empty( $spam_reason ) || empty( $spam_reasons[ $spam_reason ] ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
echo esc_html( $spam_reasons[ $spam_reason ] );
|
||||
}
|
||||
|
||||
/**
|
||||
* Register plugin sortable columns on comments screen
|
||||
*
|
||||
* @since 2.6.3
|
||||
* @change 2.6.3
|
||||
*
|
||||
* @param array $columns Registered columns.
|
||||
* @return array $columns Columns with AB field.
|
||||
*/
|
||||
public static function register_sortable_columns( $columns ) {
|
||||
$columns['antispam_bee_reason'] = 'antispam_bee_reason';
|
||||
|
||||
return $columns;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adjust orderby query
|
||||
*
|
||||
* @since 2.6.3
|
||||
* @change 2.6.3
|
||||
*
|
||||
* @param \WP_Query $query Current WordPress query.
|
||||
*/
|
||||
public static function set_orderby_query( $query ) {
|
||||
$orderby = $query->get( 'orderby' );
|
||||
|
||||
if ( empty( $orderby ) || 'antispam_bee_reason' !== $orderby ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$query->set( 'meta_key', 'antispam_bee_reason' );
|
||||
$query->set( 'orderby', 'meta_value' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Print CSS for the plugin column
|
||||
*
|
||||
* @since 2.6.1
|
||||
* @change 2.6.1
|
||||
*/
|
||||
public static function print_column_styles() { ?>
|
||||
<style>
|
||||
.column-antispam_bee_reason {
|
||||
width: 10%;
|
||||
}
|
||||
</style>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
576
wp-content/plugins/antispam-bee/inc/gui.class.php
Normal file
@@ -0,0 +1,576 @@
|
||||
<?php
|
||||
/**
|
||||
* The Antispam Bee GUI
|
||||
*
|
||||
* @package Antispam Bee
|
||||
*/
|
||||
|
||||
defined( 'ABSPATH' ) || exit;
|
||||
|
||||
/**
|
||||
* Antispam_Bee_GUI
|
||||
*
|
||||
* @since 2.4
|
||||
*/
|
||||
class Antispam_Bee_GUI extends Antispam_Bee {
|
||||
|
||||
/**
|
||||
* Save the GUI
|
||||
*
|
||||
* @since 0.1
|
||||
* @change 2.7.0
|
||||
*/
|
||||
public static function save_changes() {
|
||||
if ( empty( $_POST ) ) {
|
||||
wp_die( esc_html__( 'Cheatin’ uh?', 'antispam-bee' ) );
|
||||
}
|
||||
|
||||
if ( ! current_user_can( 'manage_options' ) ) {
|
||||
wp_die( esc_html__( 'Cheatin’ uh?', 'antispam-bee' ) );
|
||||
}
|
||||
|
||||
check_admin_referer( '_antispam_bee__settings_nonce' );
|
||||
|
||||
$selected_languages_raw = wp_unslash( self::get_key( $_POST, 'ab_translate_lang' ) );
|
||||
if ( ! is_array( $selected_languages_raw ) ) {
|
||||
$selected_languages_raw = array();
|
||||
}
|
||||
$selected_languages = array();
|
||||
$lang = self::get_allowed_translate_languages();
|
||||
$lang = array_keys( $lang );
|
||||
foreach ( $selected_languages_raw as $value ) {
|
||||
if ( ! in_array( $value, $lang, true ) ) {
|
||||
continue;
|
||||
}
|
||||
$selected_languages[] = $value;
|
||||
}
|
||||
$options = array(
|
||||
'flag_spam' => (int) ( ! empty( $_POST['ab_flag_spam'] ) ),
|
||||
'email_notify' => (int) ( ! empty( $_POST['ab_email_notify'] ) ),
|
||||
'cronjob_enable' => (int) ( ! empty( $_POST['ab_cronjob_enable'] ) ),
|
||||
'cronjob_interval' => (int) self::get_key( $_POST, 'ab_cronjob_interval' ),
|
||||
|
||||
'no_notice' => (int) ( ! empty( $_POST['ab_no_notice'] ) ),
|
||||
|
||||
'dashboard_count' => (int) ( ! empty( $_POST['ab_dashboard_count'] ) ),
|
||||
'dashboard_chart' => (int) ( ! empty( $_POST['ab_dashboard_chart'] ) ),
|
||||
'advanced_check' => (int) ( ! empty( $_POST['ab_advanced_check'] ) ),
|
||||
'regexp_check' => (int) ( ! empty( $_POST['ab_regexp_check'] ) ),
|
||||
'spam_ip' => (int) ( ! empty( $_POST['ab_spam_ip'] ) ),
|
||||
'already_commented' => (int) ( ! empty( $_POST['ab_already_commented'] ) ),
|
||||
'time_check' => (int) ( ! empty( $_POST['ab_time_check'] ) ),
|
||||
'always_allowed' => (int) ( ! empty( $_POST['ab_always_allowed'] ) ),
|
||||
|
||||
'ignore_pings' => (int) ( ! empty( $_POST['ab_ignore_pings'] ) ),
|
||||
'ignore_filter' => (int) ( ! empty( $_POST['ab_ignore_filter'] ) ),
|
||||
'ignore_type' => (int) self::get_key( $_POST, 'ab_ignore_type' ),
|
||||
|
||||
'reasons_enable' => (int) ( ! empty( $_POST['ab_reasons_enable'] ) ),
|
||||
'ignore_reasons' => (array) self::get_key( $_POST, 'ab_ignore_reasons' ),
|
||||
|
||||
'bbcode_check' => (int) ( ! empty( $_POST['ab_bbcode_check'] ) ),
|
||||
'gravatar_check' => (int) ( ! empty( $_POST['ab_gravatar_check'] ) ),
|
||||
'country_code' => (int) ( ! empty( $_POST['ab_country_code'] ) ),
|
||||
'country_black' => sanitize_text_field( wp_unslash( self::get_key( $_POST, 'ab_country_black' ) ) ),
|
||||
'country_white' => sanitize_text_field( wp_unslash( self::get_key( $_POST, 'ab_country_white' ) ) ),
|
||||
|
||||
'translate_api' => (int) ( ! empty( $_POST['ab_translate_api'] ) ),
|
||||
'translate_lang' => $selected_languages,
|
||||
|
||||
'delete_data_on_uninstall' => (int) ( ! empty( $_POST['delete_data_on_uninstall'] ) ),
|
||||
|
||||
);
|
||||
|
||||
foreach ( $options['ignore_reasons'] as $key => $val ) {
|
||||
if ( ! isset( self::$defaults['reasons'][ $val ] ) ) {
|
||||
unset( $options['ignore_reasons'][ $key ] );
|
||||
}
|
||||
}
|
||||
|
||||
if ( empty( $options['cronjob_interval'] ) ) {
|
||||
$options['cronjob_enable'] = 0;
|
||||
}
|
||||
|
||||
if ( empty( $options['translate_lang'] ) ) {
|
||||
$options['translate_api'] = 0;
|
||||
}
|
||||
|
||||
if ( empty( $options['reasons_enable'] ) ) {
|
||||
$options['ignore_reasons'] = array();
|
||||
}
|
||||
|
||||
if ( ! empty( $options['country_black'] ) ) {
|
||||
$options['country_black'] = preg_replace(
|
||||
'/[^A-Z ,;]/',
|
||||
'',
|
||||
strtoupper( $options['country_black'] )
|
||||
);
|
||||
}
|
||||
|
||||
if ( ! empty( $options['country_white'] ) ) {
|
||||
$options['country_white'] = preg_replace(
|
||||
'/[^A-Z ,;]/',
|
||||
'',
|
||||
strtoupper( $options['country_white'] )
|
||||
);
|
||||
}
|
||||
|
||||
if ( empty( $options['country_black'] ) && empty( $options['country_white'] ) ) {
|
||||
$options['country_code'] = 0;
|
||||
}
|
||||
|
||||
if ( $options['cronjob_enable'] && ! self::get_option( 'cronjob_enable' ) ) {
|
||||
self::init_scheduled_hook();
|
||||
} elseif ( ! $options['cronjob_enable'] && self::get_option( 'cronjob_enable' ) ) {
|
||||
self::clear_scheduled_hook();
|
||||
}
|
||||
|
||||
self::update_options( $options );
|
||||
|
||||
wp_safe_redirect(
|
||||
add_query_arg(
|
||||
array(
|
||||
'updated' => 'true',
|
||||
),
|
||||
wp_get_referer()
|
||||
)
|
||||
);
|
||||
|
||||
die();
|
||||
}
|
||||
|
||||
/**
|
||||
* Generation of a selectbox
|
||||
*
|
||||
* @since 2.4.5
|
||||
* @change 2.4.5
|
||||
*
|
||||
* @param string $name Name of the Selectbox.
|
||||
* @param array $data Array with values.
|
||||
* @param string $selected Selected value.
|
||||
* @return string $html Generated HTML.
|
||||
*/
|
||||
private static function _build_select( $name, $data, $selected ) {
|
||||
$html = '<select name="' . esc_attr( $name ) . '">';
|
||||
foreach ( $data as $k => $v ) {
|
||||
$html .= '<option value="' . esc_attr( $k ) . '" ' . selected( $selected, $k, false ) . '>' . esc_html( $v ) . '</option>';
|
||||
}
|
||||
$html .= '</select>';
|
||||
|
||||
return $html;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Display the GUI
|
||||
*
|
||||
* @since 0.1
|
||||
* @change 2.7.0
|
||||
*/
|
||||
public static function options_page() { ?>
|
||||
<div class="wrap" id="ab_main">
|
||||
<h2>
|
||||
Antispam Bee
|
||||
</h2>
|
||||
|
||||
<form action="<?php echo esc_url( admin_url( 'admin-post.php' ) ); ?>" method="post">
|
||||
<input type="hidden" name="action" value="ab_save_changes" />
|
||||
|
||||
<?php wp_nonce_field( '_antispam_bee__settings_nonce' ); ?>
|
||||
|
||||
<?php $options = self::get_options(); ?>
|
||||
<div class="ab-wrap">
|
||||
<!--[if lt IE 9]>
|
||||
<p class="browsehappy">
|
||||
<a href="http://browsehappy.com">Browse Happy</a>
|
||||
</p>
|
||||
<![endif]-->
|
||||
|
||||
<div class="ab-column ab-arrow">
|
||||
<h3 class="icon">
|
||||
<?php esc_html_e( 'Antispam filter', 'antispam-bee' ); ?>
|
||||
</h3>
|
||||
<h6>
|
||||
<?php esc_html_e( 'Filter in the execution order', 'antispam-bee' ); ?>
|
||||
</h6>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<input type="checkbox" name="ab_already_commented" id="ab_already_commented" value="1" <?php checked( $options['already_commented'], 1 ); ?> />
|
||||
<label for="ab_already_commented">
|
||||
<?php esc_html_e( 'Trust approved commenters', 'antispam-bee' ); ?>
|
||||
<span><?php esc_html_e( 'No review of already commented users', 'antispam-bee' ); ?></span>
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<?php if ( 1 === (int) get_option( 'show_avatars', 0 ) ) : ?>
|
||||
<li>
|
||||
<input type="checkbox" name="ab_gravatar_check" id="ab_gravatar_check" value="1" <?php checked( $options['gravatar_check'], 1 ); ?> />
|
||||
<label for="ab_gravatar_check">
|
||||
<?php esc_html_e( 'Trust commenters with a Gravatar', 'antispam-bee' ); ?>
|
||||
<span>
|
||||
<?php
|
||||
$link1 = sprintf(
|
||||
'<a href="%s" target="_blank" rel="noopener noreferrer">',
|
||||
esc_url(
|
||||
__( 'https://github.com/pluginkollektiv/antispam-bee/wiki/en-Documentation#trust-commenters-with-a-gravatar', 'antispam-bee' ),
|
||||
'https'
|
||||
)
|
||||
);
|
||||
printf(
|
||||
/* translators: 1: opening <a> tag with link to documentation. 2: closing </a> tag */
|
||||
esc_html__( 'Check if commenter has a Gravatar image. Please note the %1$sprivacy notice%2$s for this option.', 'antispam-bee' ),
|
||||
wp_kses_post( $link1 ),
|
||||
'</a>'
|
||||
);
|
||||
?>
|
||||
</span>
|
||||
</label>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<li>
|
||||
<input type="checkbox" name="ab_time_check" id="ab_time_check" value="1" <?php checked( $options['time_check'], 1 ); ?> />
|
||||
<label for="ab_time_check">
|
||||
<?php esc_html_e( 'Consider the comment time', 'antispam-bee' ); ?>
|
||||
<span><?php esc_html_e( 'Not recommended when using page caching', 'antispam-bee' ); ?></span>
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<input type="checkbox" name="ab_bbcode_check" id="ab_bbcode_check" value="1" <?php checked( $options['bbcode_check'], 1 ); ?> />
|
||||
<label for="ab_bbcode_check">
|
||||
<?php esc_html_e( 'BBCode is spam', 'antispam-bee' ); ?>
|
||||
<span><?php esc_html_e( 'Review the comment contents for BBCode links', 'antispam-bee' ); ?></span>
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<input type="checkbox" name="ab_advanced_check" id="ab_advanced_check" value="1" <?php checked( $options['advanced_check'], 1 ); ?> />
|
||||
<label for="ab_advanced_check">
|
||||
<?php esc_html_e( 'Validate the ip address of commenters', 'antispam-bee' ); ?>
|
||||
<span><?php esc_html_e( 'Validation of the IP address used', 'antispam-bee' ); ?></span>
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<input type="checkbox" name="ab_regexp_check" id="ab_regexp_check" value="1" <?php checked( $options['regexp_check'], 1 ); ?> />
|
||||
<label for="ab_regexp_check">
|
||||
<?php esc_html_e( 'Use regular expressions', 'antispam-bee' ); ?>
|
||||
<span><?php esc_html_e( 'Predefined and custom patterns by plugin hook', 'antispam-bee' ); ?></span>
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<input type="checkbox" name="ab_spam_ip" id="ab_spam_ip" value="1" <?php checked( $options['spam_ip'], 1 ); ?> />
|
||||
<label for="ab_spam_ip">
|
||||
<?php esc_html_e( 'Look in the local spam database', 'antispam-bee' ); ?>
|
||||
<span><?php esc_html_e( 'Check for spam data on your own blog', 'antispam-bee' ); ?></span>
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<input type="checkbox" name="ab_country_code" id="ab_country_code" value="1" <?php checked( $options['country_code'], 1 ); ?> />
|
||||
<label for="ab_country_code">
|
||||
<?php esc_html_e( 'Block or allow comments from specific countries', 'antispam-bee' ); ?>
|
||||
<span>
|
||||
<?php
|
||||
$link1 = sprintf(
|
||||
'<a href="%s" target="_blank" rel="noopener noreferrer">',
|
||||
esc_url(
|
||||
__( 'https://github.com/pluginkollektiv/antispam-bee/wiki/en-Documentation#block-comments-from-specific-countries', 'antispam-bee' ),
|
||||
'https'
|
||||
)
|
||||
);
|
||||
printf(
|
||||
/* translators: 1: opening <a> tag with link to documentation. 2: closing </a> tag. */
|
||||
esc_html__( 'Filtering the requests depending on country. Please note the %1$sprivacy notice%2$s for this option.', 'antispam-bee' ),
|
||||
wp_kses_post( $link1 ), '</a>'
|
||||
);
|
||||
?>
|
||||
</span>
|
||||
</label>
|
||||
|
||||
<ul>
|
||||
<?php
|
||||
$iso_codes_link = sprintf(
|
||||
'<a href="%s" target="_blank" rel="noopener noreferrer">',
|
||||
esc_url(
|
||||
__( 'https://www.iso.org/iso/country_names_and_code_elements', 'antispam-bee' ),
|
||||
'https'
|
||||
)
|
||||
);
|
||||
?>
|
||||
<li>
|
||||
<textarea name="ab_country_black" id="ab_country_black" class="ab-medium-field code" placeholder="<?php esc_attr_e( 'e.g. BF, SG, YE', 'antispam-bee' ); ?>"><?php echo esc_attr( $options['country_black'] ); ?></textarea>
|
||||
<label for="ab_country_black">
|
||||
<span>
|
||||
<?php
|
||||
printf(
|
||||
/* translators: 1: opening <a> tag with link to ISO codes reference. 2: closing </a> tag. */
|
||||
esc_html__( 'Blacklist %1$sISO Codes%2$s for this option.', 'antispam-bee' ),
|
||||
wp_kses_post( $iso_codes_link ),
|
||||
'</a>'
|
||||
);
|
||||
?>
|
||||
</span>
|
||||
</label>
|
||||
</li>
|
||||
<li>
|
||||
<textarea name="ab_country_white" id="ab_country_white" class="ab-medium-field code" placeholder="<?php esc_attr_e( 'e.g. BF, SG, YE', 'antispam-bee' ); ?>"><?php echo esc_attr( $options['country_white'] ); ?></textarea>
|
||||
<label for="ab_country_white">
|
||||
<span>
|
||||
<?php
|
||||
printf(
|
||||
/* translators: 1: opening <a> tag with link to ISO codes reference. 2: closing </a> tag. */
|
||||
esc_html__( 'Whitelist %1$sISO Codes%2$s for this option.', 'antispam-bee' ),
|
||||
wp_kses_post( $iso_codes_link ),
|
||||
'</a>'
|
||||
);
|
||||
?>
|
||||
</span>
|
||||
</label>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<input type="checkbox" name="ab_translate_api" id="ab_translate_api" value="1" <?php checked( $options['translate_api'], 1 ); ?> />
|
||||
<label for="ab_translate_api">
|
||||
<?php esc_html_e( 'Allow comments only in certain language', 'antispam-bee' ); ?>
|
||||
<span>
|
||||
<?php
|
||||
$link1 = sprintf(
|
||||
'<a href="%s" target="_blank" rel="noopener noreferrer">',
|
||||
esc_url(
|
||||
__( 'https://github.com/pluginkollektiv/antispam-bee/wiki/en-Documentation#allow-comments-only-in-certain-language', 'antispam-bee' ),
|
||||
'https'
|
||||
)
|
||||
);
|
||||
|
||||
printf(
|
||||
/* translators: 1: opening <a> tag with link to documentation. 2: closing </a> tag. */
|
||||
esc_html__( 'Detect and approve only the specified language. Please note the %1$sprivacy notice%2$s for this option.', 'antispam-bee' ),
|
||||
wp_kses_post( $link1 ),
|
||||
'</a>'
|
||||
);
|
||||
?>
|
||||
</span>
|
||||
</label>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<select multiple name="ab_translate_lang[]">
|
||||
<?php
|
||||
$lang = self::get_allowed_translate_languages();
|
||||
$selected_languages = (array) $options['translate_lang'];
|
||||
foreach ( $lang as $k => $v ) {
|
||||
?>
|
||||
<option <?php echo in_array( $k, $selected_languages, true ) ? 'selected="selected"' : ''; ?> value="<?php echo esc_attr( $k ); ?>"><?php echo esc_html( $v ); ?></option>
|
||||
|
||||
<?php } ?>
|
||||
</select>
|
||||
<label for="ab_translate_lang">
|
||||
<?php esc_html_e( 'Language', 'antispam-bee' ); ?>
|
||||
</label>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="ab-column ab-join">
|
||||
<h3 class="icon advanced">
|
||||
<?php esc_html_e( 'Advanced', 'antispam-bee' ); ?>
|
||||
</h3>
|
||||
<h6>
|
||||
<?php esc_html_e( 'Other antispam tools', 'antispam-bee' ); ?>
|
||||
</h6>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<input type="checkbox" name="ab_flag_spam" id="ab_flag_spam" value="1" <?php checked( $options['flag_spam'], 1 ); ?> />
|
||||
<label for="ab_flag_spam">
|
||||
<?php esc_html_e( 'Mark as spam, do not delete', 'antispam-bee' ); ?>
|
||||
<span><?php esc_html_e( 'Keep the spam in my blog.', 'antispam-bee' ); ?></span>
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li class="ab_flag_spam_child">
|
||||
<input type="checkbox" name="ab_email_notify" id="ab_email_notify" value="1" <?php checked( $options['email_notify'], 1 ); ?> />
|
||||
<label for="ab_email_notify">
|
||||
<?php esc_html_e( 'Spam-Notification by email', 'antispam-bee' ); ?>
|
||||
<span><?php esc_html_e( 'Notify admins by e-mail about incoming spam', 'antispam-bee' ); ?></span>
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li class="ab_flag_spam_child">
|
||||
<input type="checkbox" name="ab_no_notice" id="ab_no_notice" value="1" <?php checked( $options['no_notice'], 1 ); ?> />
|
||||
<label for="ab_no_notice">
|
||||
<?php esc_html_e( 'Do not save the spam reason', 'antispam-bee' ); ?>
|
||||
<span><?php esc_html_e( 'Spam reason as a table column in the spam overview', 'antispam-bee' ); ?></span>
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li class="ab_flag_spam_child">
|
||||
<input type="checkbox" name="ab_cronjob_enable" id="ab_cronjob_enable" value="1" <?php checked( $options['cronjob_enable'], 1 ); ?> />
|
||||
<label for="ab_cronjob_enable">
|
||||
<?php
|
||||
echo sprintf(
|
||||
// translators: $s is an input field containing the number of days.
|
||||
esc_html__( 'Delete existing spam after %s days', 'antispam-bee' ),
|
||||
'<input type="number" min="0" name="ab_cronjob_interval" value="' . esc_attr( $options['cronjob_interval'] ) . '" class="ab-mini-field" />'
|
||||
)
|
||||
?>
|
||||
<span><?php esc_html_e( 'Cleaning up the database from old entries', 'antispam-bee' ); ?></span>
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li class="ab_flag_spam_child">
|
||||
<input type="checkbox" name="ab_ignore_filter" id="ab_ignore_filter" value="1" <?php checked( $options['ignore_filter'], 1 ); ?> />
|
||||
<label for="ab_ignore_filter">
|
||||
<?php
|
||||
echo sprintf(
|
||||
// phpcs:disable WordPress.XSS.EscapeOutput.OutputNotEscaped
|
||||
// Output gets escaped in _build_select()
|
||||
// translators: %s is the select field.
|
||||
esc_html__( 'Limit approval to %s', 'antispam-bee' ),
|
||||
self::_build_select(
|
||||
'ab_ignore_type',
|
||||
array(
|
||||
1 => esc_attr__( 'Comments', 'antispam-bee' ),
|
||||
2 => esc_attr__( 'Pings', 'antispam-bee' ),
|
||||
),
|
||||
$options['ignore_type']
|
||||
)
|
||||
// phpcs:enable _build_select
|
||||
);
|
||||
?>
|
||||
<span><?php esc_html_e( 'Other types of spam will be deleted immediately', 'antispam-bee' ); ?></span>
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li class="ab_flag_spam_child">
|
||||
<input type="checkbox" name="ab_reasons_enable" id="ab_reasons_enable" value="1" <?php checked( $options['reasons_enable'], 1 ); ?> />
|
||||
<label for="ab_reasons_enable">
|
||||
<?php esc_html_e( 'Delete comments by spam reasons', 'antispam-bee' ); ?>
|
||||
<span><?php esc_html_e( 'For multiple selections press Ctrl/CMD', 'antispam-bee' ); ?></span>
|
||||
</label>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<select name="ab_ignore_reasons[]" id="ab_ignore_reasons" size="2" multiple>
|
||||
<?php foreach ( self::$defaults['reasons'] as $k => $v ) { ?>
|
||||
<option <?php selected( in_array( $k, $options['ignore_reasons'], true ), true ); ?> value="<?php echo esc_attr( $k ); ?>"><?php echo esc_html( $v ); ?></option>
|
||||
<?php } ?>
|
||||
</select>
|
||||
<label for="ab_ignore_reasons">
|
||||
<?php esc_html_e( 'Spam Reason', 'antispam-bee' ); ?>
|
||||
</label>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li class="delete_data_on_uninstall">
|
||||
<input type="checkbox" name="delete_data_on_uninstall" id="delete_data_on_uninstall" value="1" <?php checked( $options['delete_data_on_uninstall'], 1 ); ?> />
|
||||
<label for="delete_data_on_uninstall">
|
||||
<?php esc_html_e( 'Delete Antispam Bee data when uninstalling', 'antispam-bee' ); ?>
|
||||
<span><?php esc_html_e( 'If checked, you will delete all data Antispam Bee creates, when uninstalling the plugin.', 'antispam-bee' ); ?></span>
|
||||
</label>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="ab-column ab-diff">
|
||||
<h3 class="icon more">
|
||||
<?php esc_html_e( 'More', 'antispam-bee' ); ?>
|
||||
</h3>
|
||||
<h6>
|
||||
<?php esc_html_e( 'Various options', 'antispam-bee' ); ?>
|
||||
</h6>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<input type="checkbox" name="ab_dashboard_chart" id="ab_dashboard_chart" value="1" <?php checked( $options['dashboard_chart'], 1 ); ?> />
|
||||
<label for="ab_dashboard_chart">
|
||||
<?php esc_html_e( 'Generate statistics as a dashboard widget', 'antispam-bee' ); ?>
|
||||
<span><?php esc_html_e( 'Daily updates of spam detection rate', 'antispam-bee' ); ?></span>
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<input type="checkbox" name="ab_dashboard_count" id="ab_dashboard_count" value="1" <?php checked( $options['dashboard_count'], 1 ); ?> />
|
||||
<label for="ab_dashboard_count">
|
||||
<?php esc_html_e( 'Spam counter on the dashboard', 'antispam-bee' ); ?>
|
||||
<span><?php esc_html_e( 'Amount of identified spam comments', 'antispam-bee' ); ?></span>
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<input type="checkbox" name="ab_ignore_pings" id="ab_ignore_pings" value="1" <?php checked( $options['ignore_pings'], 1 ); ?> />
|
||||
<label for="ab_ignore_pings">
|
||||
<?php esc_html_e( 'Do not check trackbacks / pingbacks', 'antispam-bee' ); ?>
|
||||
<span><?php esc_html_e( 'No spam check for link notifications', 'antispam-bee' ); ?></span>
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<input type="checkbox" name="ab_always_allowed" id="ab_always_allowed" value="1" <?php checked( $options['always_allowed'], 1 ); ?> />
|
||||
<label for="ab_always_allowed">
|
||||
<?php esc_html_e( 'Comment form used outside of posts', 'antispam-bee' ); ?>
|
||||
<span><?php esc_html_e( 'Check for comment forms on archive pages', 'antispam-bee' ); ?></span>
|
||||
</label>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="ab-column ab-column--submit-service">
|
||||
<p>
|
||||
<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=TD4AMD2D8EMZW" target="_blank" rel="noopener noreferrer"><?php esc_html_e( 'Donate', 'antispam-bee' ); ?></a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="<?php echo esc_url( __( 'https://wordpress.org/plugins/antispam-bee/faq/', 'antispam-bee' ) ); ?>" target="_blank" rel="noopener noreferrer"><?php esc_html_e( 'FAQ', 'antispam-bee' ); ?></a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="<?php echo esc_url( __( 'https://github.com/pluginkollektiv/antispam-bee/wiki/', 'antispam-bee' ) ); ?>" target="_blank" rel="noopener noreferrer"><?php esc_html_e( 'Manual', 'antispam-bee' ); ?></a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="<?php echo esc_url( __( 'https://wordpress.org/support/plugin/antispam-bee', 'antispam-bee' ) ); ?>" target="_blank" rel="noopener noreferrer"><?php esc_html_e( 'Support', 'antispam-bee' ); ?></a>
|
||||
</p>
|
||||
|
||||
<input type="submit" class="button button-primary" value="<?php esc_html_e( 'Save Changes', 'antispam-bee' ); ?>" />
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the languages, which are selectable to restrict the comment language to.
|
||||
*
|
||||
* @since 2.7.1
|
||||
* @return array $lang
|
||||
*/
|
||||
private static function get_allowed_translate_languages() {
|
||||
|
||||
$lang = array(
|
||||
'de' => __( 'German', 'antispam-bee' ),
|
||||
'en' => __( 'English', 'antispam-bee' ),
|
||||
'fr' => __( 'French', 'antispam-bee' ),
|
||||
'it' => __( 'Italian', 'antispam-bee' ),
|
||||
'es' => __( 'Spanish', 'antispam-bee' ),
|
||||
);
|
||||
|
||||
/**
|
||||
* Filter the possible languages for the language spam test
|
||||
*
|
||||
* @since 2.7.1
|
||||
* @param (array) $lang The languages
|
||||
* @return (array)
|
||||
*/
|
||||
return apply_filters( 'ab_get_allowed_translate_languages', $lang );
|
||||
}
|
||||
}
|
||||
111
wp-content/plugins/antispam-bee/js/dashboard.js
Normal file
@@ -0,0 +1,111 @@
|
||||
(function () {
|
||||
|
||||
// Grab the data
|
||||
var labels = [],
|
||||
data = [];
|
||||
jQuery("#ab_chart_data tfoot th").each(function () {
|
||||
labels.push(jQuery(this).text());
|
||||
});
|
||||
jQuery("#ab_chart_data tbody td").each(function () {
|
||||
data.push(jQuery(this).text());
|
||||
});
|
||||
|
||||
// Draw
|
||||
var width = jQuery('#ab_chart').parent().width() + 8,
|
||||
height = 140,
|
||||
leftgutter = 0,
|
||||
bottomgutter = 22,
|
||||
topgutter = 22,
|
||||
color = '#0073aa',
|
||||
r = Raphael("ab_chart", width, height),
|
||||
txt = {font: 'bold 12px "Open Sans", sans-serif', fill: "#32373c"},
|
||||
X = (width - leftgutter * 2) / labels.length,
|
||||
max = Math.max.apply(Math, data),
|
||||
Y = (height - bottomgutter - topgutter) / max;
|
||||
|
||||
// Max value
|
||||
r
|
||||
.text(16, 16, max)
|
||||
.attr(
|
||||
{
|
||||
'font': 'normal 10px "Open Sans", sans-serif',
|
||||
fill: "#b4b9be"
|
||||
}
|
||||
);
|
||||
|
||||
var path = r.path().attr({stroke: color, "stroke-width": 2, "stroke-linejoin": "round"}),
|
||||
bgp = r.path().attr({stroke: "none", opacity: .3, fill: color}),
|
||||
label = r.set(),
|
||||
lx = 0, ly = 0,
|
||||
is_label_visible = false,
|
||||
leave_timer,
|
||||
blanket = r.set();
|
||||
label.push(r.text(60, 12, "").attr(txt));
|
||||
label.push(r.text(60, 27, "").attr(txt).attr({fill: color}));
|
||||
label.hide();
|
||||
var frame = r.popup(100, 100, label, "right").attr({fill: "#fff", stroke: "#444", "stroke-width": 1}).hide();
|
||||
|
||||
var p, bgpp;
|
||||
for (var i = 0, ii = labels.length; i < ii; i++) {
|
||||
var y = Math.round(height - bottomgutter - Y * data[i]),
|
||||
x = Math.round(leftgutter + X * (i + .5));
|
||||
if (!i) {
|
||||
p = ["M", x, y, "C", x, y];
|
||||
bgpp = ["M", leftgutter + X * .5, height - bottomgutter, "L", x, y, "C", x, y];
|
||||
}
|
||||
if (i && i < ii - 1) {
|
||||
var Y0 = Math.round(height - bottomgutter - Y * data[i - 1]),
|
||||
X0 = Math.round(leftgutter + X * (i - .5)),
|
||||
Y2 = Math.round(height - bottomgutter - Y * data[i + 1]),
|
||||
X2 = Math.round(leftgutter + X * (i + 1.5));
|
||||
var a = getAnchors(X0, Y0, x, y, X2, Y2);
|
||||
p = p.concat([a.x1, a.y1, x, y, a.x2, a.y2]);
|
||||
bgpp = bgpp.concat([a.x1, a.y1, x, y, a.x2, a.y2]);
|
||||
}
|
||||
var dot = r.circle(x, y, 4).attr({fill: "#fff", stroke: color, "stroke-width": 1});
|
||||
blanket.push(r.rect(leftgutter + X * i, 0, X, height - bottomgutter).attr({stroke: "none", fill: '#fff', opacity: .2}));
|
||||
var rect = blanket[blanket.length - 1];
|
||||
(function (x, y, data, date, dot) {
|
||||
var timer, i = 0;
|
||||
rect.hover(function () {
|
||||
clearTimeout(leave_timer);
|
||||
var side = "right";
|
||||
if (x + frame.getBBox().width > width) {
|
||||
side = "left";
|
||||
}
|
||||
// set label content to determine correct dimensions
|
||||
label[0].attr({text: date });
|
||||
label[1].attr({text: data + "× Spam"});
|
||||
var ppp = r.popup(x, y, label, side, 1),
|
||||
anim = Raphael.animation({
|
||||
path: ppp.path,
|
||||
transform: ["t", ppp.dx, ppp.dy]
|
||||
}, 200 * is_label_visible);
|
||||
lx = label[0].transform()[0][1] + ppp.dx;
|
||||
ly = label[0].transform()[0][2] + ppp.dy;
|
||||
frame.show().stop().animate(anim);
|
||||
|
||||
label[0].show().stop().animateWith(frame, anim, {transform: ["t", lx, ly]}, 200 * is_label_visible);
|
||||
label[1].show().stop().animateWith(frame, anim, {transform: ["t", lx, ly]}, 200 * is_label_visible);
|
||||
dot.attr("r", 6);
|
||||
is_label_visible = true;
|
||||
}, function () {
|
||||
dot.attr("r", 4);
|
||||
leave_timer = setTimeout(function () {
|
||||
frame.hide();
|
||||
label[0].hide();
|
||||
label[1].hide();
|
||||
is_label_visible = false;
|
||||
}, 1);
|
||||
});
|
||||
})(x, y, data[i], labels[i], dot);
|
||||
}
|
||||
p = p.concat([x, y, x, y]);
|
||||
bgpp = bgpp.concat([x, y, x, y, "L", x, height - bottomgutter, "z"]);
|
||||
path.attr({path: p});
|
||||
bgp.attr({path: bgpp});
|
||||
frame.toFront();
|
||||
label[0].toFront();
|
||||
label[1].toFront();
|
||||
blanket.toFront();
|
||||
})();
|
||||
5
wp-content/plugins/antispam-bee/js/dashboard.min.js
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
(function(){var labels=[],data=[];jQuery("#ab_chart_data tfoot th").each(function(){labels.push(jQuery(this).text())});jQuery("#ab_chart_data tbody td").each(function(){data.push(jQuery(this).text())});var width=jQuery('#ab_chart').parent().width()+8,height=140,leftgutter=0,bottomgutter=22,topgutter=22,color='#0073aa',r=Raphael("ab_chart",width,height),txt={font:'bold 12px "Open Sans", sans-serif',fill:"#32373c"},X=(width-leftgutter*2)/labels.length,max=Math.max.apply(Math,data),Y=(height-bottomgutter-topgutter)/max;r.text(16,16,max).attr({'font':'normal 10px "Open Sans", sans-serif',fill:"#b4b9be"});var path=r.path().attr({stroke:color,"stroke-width":2,"stroke-linejoin":"round"}),bgp=r.path().attr({stroke:"none",opacity:.3,fill:color}),label=r.set(),lx=0,ly=0,is_label_visible=!1,leave_timer,blanket=r.set();label.push(r.text(60,12,"").attr(txt));label.push(r.text(60,27,"").attr(txt).attr({fill:color}));label.hide();var frame=r.popup(100,100,label,"right").attr({fill:"#fff",stroke:"#444","stroke-width":1}).hide();var p,bgpp;for(var i=0,ii=labels.length;i<ii;i++){var y=Math.round(height-bottomgutter-Y*data[i]),x=Math.round(leftgutter+X*(i+.5));if(!i){p=["M",x,y,"C",x,y];bgpp=["M",leftgutter+X*.5,height-bottomgutter,"L",x,y,"C",x,y]}
|
||||
if(i&&i<ii-1){var Y0=Math.round(height-bottomgutter-Y*data[i-1]),X0=Math.round(leftgutter+X*(i-.5)),Y2=Math.round(height-bottomgutter-Y*data[i+1]),X2=Math.round(leftgutter+X*(i+1.5));var a=getAnchors(X0,Y0,x,y,X2,Y2);p=p.concat([a.x1,a.y1,x,y,a.x2,a.y2]);bgpp=bgpp.concat([a.x1,a.y1,x,y,a.x2,a.y2])}
|
||||
var dot=r.circle(x,y,4).attr({fill:"#fff",stroke:color,"stroke-width":1});blanket.push(r.rect(leftgutter+X*i,0,X,height-bottomgutter).attr({stroke:"none",fill:'#fff',opacity:.2}));var rect=blanket[blanket.length-1];(function(x,y,data,date,dot){var timer,i=0;rect.hover(function(){clearTimeout(leave_timer);var side="right";if(x+frame.getBBox().width>width){side="left"}
|
||||
label[0].attr({text:date});label[1].attr({text:data+"× Spam"});var ppp=r.popup(x,y,label,side,1),anim=Raphael.animation({path:ppp.path,transform:["t",ppp.dx,ppp.dy]},200*is_label_visible);lx=label[0].transform()[0][1]+ppp.dx;ly=label[0].transform()[0][2]+ppp.dy;frame.show().stop().animate(anim);label[0].show().stop().animateWith(frame,anim,{transform:["t",lx,ly]},200*is_label_visible);label[1].show().stop().animateWith(frame,anim,{transform:["t",lx,ly]},200*is_label_visible);dot.attr("r",6);is_label_visible=!0},function(){dot.attr("r",4);leave_timer=setTimeout(function(){frame.hide();label[0].hide();label[1].hide();is_label_visible=!1},1)})})(x,y,data[i],labels[i],dot)}
|
||||
p=p.concat([x,y,x,y]);bgpp=bgpp.concat([x,y,x,y,"L",x,height-bottomgutter,"z"]);path.attr({path:p});bgp.attr({path:bgpp});frame.toFront();label[0].toFront();label[1].toFront();blanket.toFront()})()
|
||||
142
wp-content/plugins/antispam-bee/js/raphael.helper.js
Normal file
@@ -0,0 +1,142 @@
|
||||
var tokenRegex = /\{([^\}]+)\}/g,
|
||||
objNotationRegex = /(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g,
|
||||
replacer = function (all, key, obj) {
|
||||
var res = obj;
|
||||
key.replace(objNotationRegex, function (all, name, quote, quotedName, isFunc) {
|
||||
name = name || quotedName;
|
||||
if (res) {
|
||||
if (name in res) {
|
||||
res = res[name];
|
||||
}
|
||||
typeof res == "function" && isFunc && (res = res());
|
||||
}
|
||||
});
|
||||
res = (res == null || res == obj ? all : res) + "";
|
||||
return res;
|
||||
},
|
||||
fill = function (str, obj) {
|
||||
return String(str).replace(tokenRegex, function (all, key) {
|
||||
return replacer(all, key, obj);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
Raphael.fn.popup = function (X, Y, set, pos, ret) {
|
||||
pos = String(pos || "top-middle").split("-");
|
||||
pos[1] = pos[1] || "middle";
|
||||
var r = 5,
|
||||
bb = set.getBBox(),
|
||||
w = Math.round(bb.width),
|
||||
h = Math.round(bb.height),
|
||||
x = Math.round(bb.x) - r,
|
||||
y = Math.round(bb.y) - r,
|
||||
gap = Math.min(h / 2, w / 2, 10),
|
||||
shapes = {
|
||||
top: "M{x},{y}h{w4},{w4},{w4},{w4}a{r},{r},0,0,1,{r},{r}v{h4},{h4},{h4},{h4}a{r},{r},0,0,1,-{r},{r}l-{right},0-{gap},{gap}-{gap}-{gap}-{left},0a{r},{r},0,0,1-{r}-{r}v-{h4}-{h4}-{h4}-{h4}a{r},{r},0,0,1,{r}-{r}z",
|
||||
bottom: "M{x},{y}l{left},0,{gap}-{gap},{gap},{gap},{right},0a{r},{r},0,0,1,{r},{r}v{h4},{h4},{h4},{h4}a{r},{r},0,0,1,-{r},{r}h-{w4}-{w4}-{w4}-{w4}a{r},{r},0,0,1-{r}-{r}v-{h4}-{h4}-{h4}-{h4}a{r},{r},0,0,1,{r}-{r}z",
|
||||
right: "M{x},{y}h{w4},{w4},{w4},{w4}a{r},{r},0,0,1,{r},{r}v{h4},{h4},{h4},{h4}a{r},{r},0,0,1,-{r},{r}h-{w4}-{w4}-{w4}-{w4}a{r},{r},0,0,1-{r}-{r}l0-{bottom}-{gap}-{gap},{gap}-{gap},0-{top}a{r},{r},0,0,1,{r}-{r}z",
|
||||
left: "M{x},{y}h{w4},{w4},{w4},{w4}a{r},{r},0,0,1,{r},{r}l0,{top},{gap},{gap}-{gap},{gap},0,{bottom}a{r},{r},0,0,1,-{r},{r}h-{w4}-{w4}-{w4}-{w4}a{r},{r},0,0,1-{r}-{r}v-{h4}-{h4}-{h4}-{h4}a{r},{r},0,0,1,{r}-{r}z"
|
||||
},
|
||||
offset = {
|
||||
hx0: X - (x + r + w - gap * 2),
|
||||
hx1: X - (x + r + w / 2 - gap),
|
||||
hx2: X - (x + r + gap),
|
||||
vhy: Y - (y + r + h + r + gap),
|
||||
"^hy": Y - (y - gap)
|
||||
|
||||
},
|
||||
mask = [{
|
||||
x: x + r,
|
||||
y: y,
|
||||
w: w,
|
||||
w4: w / 4,
|
||||
h4: h / 4,
|
||||
right: 0,
|
||||
left: w - gap * 2,
|
||||
bottom: 0,
|
||||
top: h - gap * 2,
|
||||
r: r,
|
||||
h: h,
|
||||
gap: gap
|
||||
}, {
|
||||
x: x + r,
|
||||
y: y,
|
||||
w: w,
|
||||
w4: w / 4,
|
||||
h4: h / 4,
|
||||
left: w / 2 - gap,
|
||||
right: w / 2 - gap,
|
||||
top: h / 2 - gap,
|
||||
bottom: h / 2 - gap,
|
||||
r: r,
|
||||
h: h,
|
||||
gap: gap
|
||||
}, {
|
||||
x: x + r,
|
||||
y: y,
|
||||
w: w,
|
||||
w4: w / 4,
|
||||
h4: h / 4,
|
||||
left: 0,
|
||||
right: w - gap * 2,
|
||||
top: 0,
|
||||
bottom: h - gap * 2,
|
||||
r: r,
|
||||
h: h,
|
||||
gap: gap
|
||||
}][pos[1] == "middle" ? 1 : (pos[1] == "top" || pos[1] == "left") * 2];
|
||||
var dx = 0,
|
||||
dy = 0,
|
||||
out = this.path(fill(shapes[pos[0]], mask)).insertBefore(set);
|
||||
switch (pos[0]) {
|
||||
case "top":
|
||||
dx = X - (x + r + mask.left + gap);
|
||||
dy = Y - (y + r + h + r + gap);
|
||||
break;
|
||||
case "bottom":
|
||||
dx = X - (x + r + mask.left + gap);
|
||||
dy = Y - (y - gap);
|
||||
break;
|
||||
case "left":
|
||||
dx = X - (x + r + w + r + gap);
|
||||
dy = Y - (y + r + mask.top + gap);
|
||||
break;
|
||||
case "right":
|
||||
dx = X - (x - gap);
|
||||
dy = Y - (y + r + mask.top + gap);
|
||||
break;
|
||||
}
|
||||
out.translate(dx, dy);
|
||||
if (ret) {
|
||||
ret = out.attr("path");
|
||||
out.remove();
|
||||
return {
|
||||
path: ret,
|
||||
dx: dx,
|
||||
dy: dy
|
||||
};
|
||||
}
|
||||
set.translate(dx, dy);
|
||||
return out;
|
||||
};
|
||||
|
||||
|
||||
function getAnchors(p1x, p1y, p2x, p2y, p3x, p3y) {
|
||||
var l1 = (p2x - p1x) / 2,
|
||||
l2 = (p3x - p2x) / 2,
|
||||
a = Math.atan((p2x - p1x) / Math.abs(p2y - p1y)),
|
||||
b = Math.atan((p3x - p2x) / Math.abs(p2y - p3y));
|
||||
a = p1y < p2y ? Math.PI - a : a;
|
||||
b = p3y < p2y ? Math.PI - b : b;
|
||||
var alpha = Math.PI / 2 - ((a + b) % (Math.PI * 2)) / 2,
|
||||
dx1 = l1 * Math.sin(alpha + a),
|
||||
dy1 = l1 * Math.cos(alpha + a),
|
||||
dx2 = l2 * Math.sin(alpha + b),
|
||||
dy2 = l2 * Math.cos(alpha + b);
|
||||
return {
|
||||
x1: p2x - dx1,
|
||||
y1: p2y + dy1,
|
||||
x2: p2x + dx2,
|
||||
y2: p2y + dy2
|
||||
};
|
||||
}
|
||||
5
wp-content/plugins/antispam-bee/js/raphael.helper.min.js
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
var tokenRegex=/\{([^\}]+)\}/g,objNotationRegex=/(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g,replacer=function(c,h,g){var a=g;h.replace(objNotationRegex,function(c,b,f,d,g){b=b||d;a&&(b in a&&(a=a[b]),"function"==typeof a&&g&&(a=a()))});return a=(null==a||a==g?c:a)+""},fill=function(c,h){return String(c).replace(tokenRegex,function(c,a){return replacer(c,a,h)})};
|
||||
Raphael.fn.popup=function(c,h,g,a,k){a=String(a||"top-middle").split("-");a[1]=a[1]||"middle";var b=g.getBBox(),f=Math.round(b.width),d=Math.round(b.height),l=Math.round(b.x)-5,b=Math.round(b.y)-5,e=Math.min(d/2,f/2,10),p=[{x:l+5,y:b,w:f,w4:f/4,h4:d/4,right:0,left:f-2*e,bottom:0,top:d-2*e,r:5,h:d,gap:e},{x:l+5,y:b,w:f,w4:f/4,h4:d/4,left:f/2-e,right:f/2-e,top:d/2-e,bottom:d/2-e,r:5,h:d,gap:e},{x:l+5,y:b,w:f,w4:f/4,h4:d/4,left:0,right:f-2*e,top:0,bottom:d-2*e,r:5,h:d,gap:e}]["middle"==a[1]?1:2*("top"==
|
||||
a[1]||"left"==a[1])],m=0,n=0,q=this.path(fill({top:"M{x},{y}h{w4},{w4},{w4},{w4}a{r},{r},0,0,1,{r},{r}v{h4},{h4},{h4},{h4}a{r},{r},0,0,1,-{r},{r}l-{right},0-{gap},{gap}-{gap}-{gap}-{left},0a{r},{r},0,0,1-{r}-{r}v-{h4}-{h4}-{h4}-{h4}a{r},{r},0,0,1,{r}-{r}z",bottom:"M{x},{y}l{left},0,{gap}-{gap},{gap},{gap},{right},0a{r},{r},0,0,1,{r},{r}v{h4},{h4},{h4},{h4}a{r},{r},0,0,1,-{r},{r}h-{w4}-{w4}-{w4}-{w4}a{r},{r},0,0,1-{r}-{r}v-{h4}-{h4}-{h4}-{h4}a{r},{r},0,0,1,{r}-{r}z",right:"M{x},{y}h{w4},{w4},{w4},{w4}a{r},{r},0,0,1,{r},{r}v{h4},{h4},{h4},{h4}a{r},{r},0,0,1,-{r},{r}h-{w4}-{w4}-{w4}-{w4}a{r},{r},0,0,1-{r}-{r}l0-{bottom}-{gap}-{gap},{gap}-{gap},0-{top}a{r},{r},0,0,1,{r}-{r}z",
|
||||
left:"M{x},{y}h{w4},{w4},{w4},{w4}a{r},{r},0,0,1,{r},{r}l0,{top},{gap},{gap}-{gap},{gap},0,{bottom}a{r},{r},0,0,1,-{r},{r}h-{w4}-{w4}-{w4}-{w4}a{r},{r},0,0,1-{r}-{r}v-{h4}-{h4}-{h4}-{h4}a{r},{r},0,0,1,{r}-{r}z"}[a[0]],p)).insertBefore(g);switch(a[0]){case "top":m=c-(l+5+p.left+e);n=h-(b+5+d+5+e);break;case "bottom":m=c-(l+5+p.left+e);n=h-(b-e);break;case "left":m=c-(l+5+f+5+e);n=h-(b+5+p.top+e);break;case "right":m=c-(l-e),n=h-(b+5+p.top+e)}q.translate(m,n);if(k)return k=q.attr("path"),q.remove(),
|
||||
{path:k,dx:m,dy:n};g.translate(m,n);return q};function getAnchors(c,h,g,a,k,b){var f=(g-c)/2,d=(k-g)/2;c=Math.atan((g-c)/Math.abs(a-h));k=Math.atan((k-g)/Math.abs(a-b));c=h<a?Math.PI-c:c;k=b<a?Math.PI-k:k;b=Math.PI/2-(c+k)%(2*Math.PI)/2;h=f*Math.sin(b+c);f*=Math.cos(b+c);c=d*Math.sin(b+k);d*=Math.cos(b+k);return{x1:g-h,y1:a+f,x2:g+c,y2:a+d}};
|
||||
3
wp-content/plugins/antispam-bee/js/raphael.min.js
vendored
Normal file
20
wp-content/plugins/antispam-bee/js/scripts.js
Normal file
@@ -0,0 +1,20 @@
|
||||
jQuery(document).ready(
|
||||
function($) {
|
||||
function ab_flag_spam() {
|
||||
var $$ = $('#ab_flag_spam'),
|
||||
nextAll = $$.parent('li').nextAll( '.ab_flag_spam_child' );
|
||||
|
||||
nextAll.css(
|
||||
'display',
|
||||
( $$.is(':checked') ? 'list-item' : 'none' )
|
||||
);
|
||||
}
|
||||
|
||||
$('#ab_flag_spam').on(
|
||||
'change',
|
||||
ab_flag_spam
|
||||
);
|
||||
|
||||
ab_flag_spam();
|
||||
}
|
||||
);
|
||||
1
wp-content/plugins/antispam-bee/js/scripts.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
jQuery(document).ready(function(a){function b(){var b=a("#ab_flag_spam"),c=b.parent("li").nextAll(".ab_flag_spam_child");c.css("display",b.is(":checked")?"list-item":"none")}a("#ab_flag_spam").on("change",b),b()});
|
||||
207
wp-content/plugins/antispam-bee/readme.txt
Normal file
@@ -0,0 +1,207 @@
|
||||
# Antispam Bee #
|
||||
* Contributors: pluginkollektiv
|
||||
* Tags: anti-spam, antispam, block spam, comment, comments, comment spam, pingback, spam, spam filter, trackback, GDPR
|
||||
* Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=TD4AMD2D8EMZW
|
||||
* Requires at least: 4.5
|
||||
* Tested up to: 5.0
|
||||
* Stable tag: 2.9.1
|
||||
* License: GPLv2 or later
|
||||
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
||||
|
||||
Antispam plugin with a sophisticated tool set for effective day to day comment and trackback spam-fighting. Build with data protection and privacy in mind.
|
||||
|
||||
## Description ##
|
||||
Say Goodbye to comment spam on your WordPress blog or website. *Antispam Bee* blocks spam comments and trackbacks effectively, without captchas and without sending personal information to third party services. It is free of charge, ad-free and 100% GDPR compliant.
|
||||
|
||||
### Feature/Settings Overview ###
|
||||
* Trust approved commenters.
|
||||
* Trust commenters with a Gravatar.
|
||||
* Consider the comment time.
|
||||
* Allow comments only in a certain language.
|
||||
* Block or allow commenters from certain countries.
|
||||
* Treat BBCode as spam.
|
||||
* Validate the IP address of commenters.
|
||||
* Use regular expressions.
|
||||
* Search local spam database for commenters previously marked as spammers.
|
||||
* Notify admins by e-mail about incoming spam.
|
||||
* Delete existing spam after n days.
|
||||
* Limit approval to comments/pings (will delete other comment types).
|
||||
* Select spam indicators to send comments to deletion directly.
|
||||
* Optionally exclude trackbacks and pingbacks from spam detection.
|
||||
* Optionally spam-check comment forms on archive pages.
|
||||
* Display spam statistics on the dashboard, including daily updates of spam detection rate and a total of blocked spam comments.
|
||||
|
||||
### Support ###
|
||||
* Community support via the [support forums on wordpress.org](https://wordpress.org/support/plugin/antispam-bee)
|
||||
* Read [the documentation](https://github.com/pluginkollektiv/antispam-bee/wiki/en-Documentation)
|
||||
* We don’t handle support via e-mail, Twitter, GitHub issues etc.
|
||||
|
||||
### Contribute ###
|
||||
* Active development of this plugin is handled [on GitHub](https://github.com/pluginkollektiv/antispam-bee).
|
||||
* Pull requests for documented bugs are highly appreciated.
|
||||
* If you think you’ve found a bug (e.g. you’re experiencing unexpected behavior), please post at the [support forums](https://wordpress.org/support/plugin/antispam-bee) first.
|
||||
* If you want to help us translate this plugin you can do so [on WordPress Translate](https://translate.wordpress.org/projects/wp-plugins/antispam-bee).
|
||||
|
||||
### Credits ###
|
||||
* Author: [Sergej Müller](https://sergejmueller.github.io/)
|
||||
* Maintainers: [pluginkollektiv](https://pluginkollektiv.org)
|
||||
|
||||
## Installation ##
|
||||
* If you don’t know how to install a plugin for WordPress, [here’s how](http://codex.wordpress.org/Managing_Plugins#Installing_Plugins).
|
||||
|
||||
### Requirements ###
|
||||
* PHP 5.2.4 or greater
|
||||
* WordPress 3.8 or greater
|
||||
|
||||
### Settings ###
|
||||
After you have activated *Antispam Bee* the plugin will block spam comments out of the box. However, you may want to visit *Settings → Antispam Bee* to configure your custom set of anti-spam options that works best for your site.
|
||||
|
||||
## Frequently Asked Questions ##
|
||||
|
||||
### Does Antispam Bee work with Jetpack, Disqus Comments and other comment plugins? ###
|
||||
Antispam Bee works best with default WordPress comments. It is not compatible with Jetpack or Disqus Comments as those plugins load the comment form within an iframe. Thus Antispam Bee can not access the comment form directly.
|
||||
It also won’t work with any AJAX-powered comment forms.
|
||||
|
||||
### Does Antispam Bee store any private user data, and is it compliant with GDPR? ###
|
||||
Antispam Bee is developed in Europe. You might have heard we can be a bit nitpicky over here when it comes to privacy. The plugin does not save private user data and is 100% compliant with GDPR.
|
||||
|
||||
### Will I have to edit any theme templates to get Antispam Bee to work? ###
|
||||
No, the plugin works as is. You may want to configure your favorite settings, though.
|
||||
|
||||
### Does Antispam Bee work with shortened IPs? ###
|
||||
Generally yes. However, commissioning the Antispam Bee plugin for canceled or shortened IP addresses in comment metadata is not recommended. Because the name and the e-mail address of the comments are not unique, an IP address is the only reliable measure. The more complete the stored IP addresses, the more reliable the assignment or detection of spam.
|
||||
|
||||
### How can I submit undetected spam? ###
|
||||
If the antispam plugin has passed some spam comments, these comments can be reported for analysis. A [Google table](http://goo.gl/forms/ITzVHXkLVL) was created for this purpose.
|
||||
|
||||
### Antispam Bee with Varnish? ###
|
||||
If WordPress is operated with Apache + Varnish, the actual IP address of the visitors does not appear in WordPress. Accordingly the Antispam-Plugin lacks the base for the correct functionality. An adaptation in the Varnish configuration file /etc/varnish/default.vcl provides a remedy and forwards the original (not from Apache) IP address in the HTTP header X-Forwarded-For:
|
||||
|
||||
```
|
||||
if (req.restarts == 0) {
|
||||
set req.http.X-Forwarded-For = client.ip;
|
||||
}
|
||||
```
|
||||
|
||||
### Are there some paid services or limitations? ###
|
||||
No, Antispam Bee is free forever, for both private and commercial projects. You can use it on as many sites as you want. There is no limitation to the number of sites you use the plugin on.
|
||||
|
||||
A complete documentation is available in the [GitHub repository Wiki](https://github.com/pluginkollektiv/antispam-bee/wiki).
|
||||
|
||||
## Changelog ##
|
||||
|
||||
### 2.9.1 ###
|
||||
* Improved backend accessibility
|
||||
* Prefilled comment textareas do now work with the honeypot
|
||||
* AMP compatibility
|
||||
* Improved dashboard tooltips
|
||||
* Improvements for the language detection API
|
||||
* Scalable IP look up for local spam database
|
||||
|
||||
### 2.9.0 ###
|
||||
* Introduction of coding standards.
|
||||
* Switch to franc language detection API for the language check.
|
||||
* Do not longer overwrite the IP address WordPress saves with the comment by using `pre_comment_user_ip`.
|
||||
* Do not show "Trust commenters with a Gravatar" if the "Show Gravatar" option is not set.
|
||||
* Skip the checks, when I ping myself.
|
||||
* Fixes some wrong usages of the translation functions.
|
||||
* Use the regular expressions check also for trackbacks.
|
||||
* Add option to delete Antispam Bee related data when plugin gets deleted via the admin interface.
|
||||
* Save a hashed + salted IP for every comment
|
||||
* New check for incoming trackbacks.
|
||||
* Introduction of behat tests.
|
||||
* Updates the used JavaScript library for the statistics widget.
|
||||
* Bugfix in the "Comment form used outside of posts" option.
|
||||
|
||||
### 2.8.1 ###
|
||||
* PHP 5.3 compatibility
|
||||
* Bugfix where a spam trackback produced a fatal error
|
||||
* For more details see https://github.com/pluginkollektiv/antispam-bee/milestone/8?closed=1
|
||||
|
||||
### 2.8.0 ###
|
||||
* Removed stopforumspam.com to avoid potential GDPR violation
|
||||
* Improves IP handling to comply with GDPR
|
||||
* Improves PHP7.2 compatibility
|
||||
* Fixes small bug on mobile views
|
||||
* Allow more than one language in language check
|
||||
* Minor interface improvements
|
||||
* Remove old russian and Dutch translation files
|
||||
* For more details see https://github.com/pluginkollektiv/antispam-bee/milestone/4?closed=1
|
||||
|
||||
### 2.7.1 ###
|
||||
* Fixes an incompatibility with Chrome autofill
|
||||
* Fixes some incompatibilities with other plugins/themes where the comment field was left empty
|
||||
* Support for RTL
|
||||
* Solve some translation/language issues
|
||||
* A new filter to add languages to the language check
|
||||
* For more details see https://github.com/pluginkollektiv/antispam-bee/milestone/6?closed=1
|
||||
|
||||
### 2.7.0 ###
|
||||
* Country check is back again (thanks to Sergej Müller for his amazing work and the service page)
|
||||
* Improved Honeypot
|
||||
* Language check through Google Translate API is back again (thanks to Simon Kraft of https://moenus.net/ for offering to cover the costs)
|
||||
* More default Regexes
|
||||
* Unit Test Framework
|
||||
* Accessibility and GUI improvements
|
||||
* An [english documentation](https://github.com/pluginkollektiv/antispam-bee/wiki) is now available, too. Some corrections in the german documentation.
|
||||
* Some bugfixes - Among other things for WPML compatibility
|
||||
* For more details see https://github.com/pluginkollektiv/antispam-bee/milestone/3?closed=1
|
||||
|
||||
### 2.6.9 ###
|
||||
* Updates donation links throughout the plugin
|
||||
* Fixes an error were JavaScript on the dashboard was erroneously being enqueued
|
||||
* Ensures compatibility with the latest WordPress version
|
||||
|
||||
### 2.6.8 ###
|
||||
* added a POT file
|
||||
* updated German translation, added formal version
|
||||
* updated plugin text domain to include a dash instead of an underscore
|
||||
* updated, translated + formatted README.md
|
||||
* updated expired link URLs in plugin and languages files
|
||||
* updated [plugin authors](https://gist.github.com/glueckpress/f058c0ab973d45a72720)
|
||||
|
||||
### 2.6.7 ###
|
||||
* Removal of functions *Block comments from specific countries* and *Allow comments only in certain language* for financial reasons - [more information](https://plus.google.com/u/0/+SergejMüller/posts/ZyquhoYjUyF) (only german)
|
||||
|
||||
### 2.6.6 ###
|
||||
* Switch to the official Google Translation API - [more information](https://plus.google.com/u/0/+SergejMüller/posts/ZyquhoYjUyF) (only german)
|
||||
* *Release time investment (Development & QA): 2.5 h*
|
||||
|
||||
### 2.6.5 ###
|
||||
* Fix: Return parameters on `dashboard_glance_items` callback / thx [@toscho](https://twitter.com/toscho)
|
||||
* New function: Trust commenters with a Gravatar / thx [@glueckpress](https://twitter.com/glueckpress)
|
||||
* Additional plausibility checks and filters
|
||||
* *Release time investment (Development & QA): 12 h*
|
||||
|
||||
### 2.6.4 ###
|
||||
* Consideration of the comment time (Spam if a comment was written in less than 5 seconds) - [more information on Google+](https://plus.google.com/+SergejMüller/posts/73EbP6F1BgC) (only german)
|
||||
* *Release time investment (Development & QA): 6.25 h*
|
||||
|
||||
### 2.6.3 ###
|
||||
* Sorting for the Antispam Bee column in the spam comments overview
|
||||
* Code refactoring around the use of REQUEST_URI
|
||||
* *Release time investment (Development & QA): 2.75 h*
|
||||
|
||||
### 2.6.2 ###
|
||||
* Improving detection of fake IPs
|
||||
* *Release time investment (Development & QA): 11 h*
|
||||
|
||||
### 2.6.1 ###
|
||||
* Code refactoring of options management
|
||||
* Support for `HTTP_FORWARDED_FOR` header
|
||||
* *Release time investment (Development & QA): 8.5 h*
|
||||
|
||||
### 2.6.0 ###
|
||||
* Optimizations for WordPress 3.8
|
||||
* Clear invalid UTF-8 characters in comment fields
|
||||
* Spam reason as a column in the table with spam comments
|
||||
|
||||
For the complete changelog, check out our [GitHub repository](https://github.com/pluginkollektiv/antispam-bee).
|
||||
|
||||
== Upgrade Notice ==
|
||||
|
||||
= 2.8.0 =
|
||||
This update makes sure your spam check is GDPR compliant, no matter the options you choose. Please make sure to update before May 25th!
|
||||
|
||||
## Screenshots ##
|
||||
1. Antispam Bee settings
|
||||
1
wp-content/plugins/chronosly-addons/version.json
Normal file
@@ -0,0 +1 @@
|
||||
2.6.2
|
||||
1041
wp-content/plugins/chronosly-templates/css/default.css
Normal file
|
After Width: | Height: | Size: 332 B |
|
After Width: | Height: | Size: 344 B |
|
After Width: | Height: | Size: 1015 B |
|
After Width: | Height: | Size: 1020 B |
|
After Width: | Height: | Size: 1016 B |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 250 B |
|
After Width: | Height: | Size: 260 B |
242
wp-content/plugins/chronosly-templates/dad1/default.html
Normal file
@@ -0,0 +1,242 @@
|
||||
<style id='style'>.ev-{{id}} .ev-item.share_box a {background:#cat-color!important;}
|
||||
.ev-{{id}} .ev-item.share_box a {background:#cat-color!important;}
|
||||
</style>
|
||||
<div base="default" class="chronosly perfil2 ch-default ch-front ch-dad1 ev-{{id}} {{size}} ">
|
||||
|
||||
<div class="ev-box both data" style="width:8.875%;clear:none;float:left;font-weight:bold;text-align:center;padding:0%;">
|
||||
|
||||
<div class='ev-item start_date' style='width:98.59154929577466%;clear:none;float:left;font-size:34px;line-height:38px;padding:0%;'>
|
||||
<div class='ev-data start_date'>
|
||||
{{start_date | time_format j}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item start_date' style='width:98.59154929577466%;clear:none;float:left;font-size:20px;line-height:24px;text-transform:uppercase;padding:0%;'>
|
||||
<div class='ev-data start_date'>
|
||||
{{start_date | time_format M}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box both title" style="width:89.375%;float:right;clear:none;padding:0%;border-left:2px solid #cat-color;border-bottom:2px solid #cat-color;">
|
||||
|
||||
<div class='ev-item event_title' style='height:auto;width:auto;clear:none;float:left;color:#000000;font-size:20px;line-height:24px;text-transform:uppercase;'>
|
||||
<div class='ev-data event_title'>
|
||||
<a href='{{event_link}}' class='ch-readmore'>{{event_title}}</a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box normal content1" style="width:89.375%;float:right;clear:none;background-color:#f1f2f2;padding:0%;border-left:2px solid #cat-color;">
|
||||
|
||||
<div class='ev-item custom_link' style='float:none;clear:none;height:auto;width:auto;color:#ffffff;font-size:32px;line-height:36px;font-weight:bold;text-align:center;text-decoration:none;background-color:#dcddde;padding:0%;padding:0px 8px;position:absolute;top:0px;right:0px;'>
|
||||
<div class='ev-data custom_link'>
|
||||
<a href="javascript:void(null)" class="ch-readmore" onclick='ev_slide("{{id}}", this)'><span class="ch-more">{{translate | +}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style=''>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item full_time' style='clear:none;float:left;height:auto;width:auto;padding-right:25px;'>
|
||||
<div class='ev-data full_time'>
|
||||
{{full_time | time_format }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_direction' style='height:auto;width:auto;clear:none;float:left;'>
|
||||
<div class='ev-data place_direction'>
|
||||
<span class='ch-address-{{place_id | id 0}}'>{{place_direction | id 0 | text_after ,}}</span>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_city' style='height:auto;width:auto;clear:none;float:left;padding-left:0px;'>
|
||||
<div class='ev-data place_city'>
|
||||
{{place_city | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_state' style='height:auto;width:auto;clear:none;float:left;padding-left:0px;'>
|
||||
<div class='ev-data place_state'>
|
||||
{{place_state | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_country' style='height:auto;width:auto;clear:none;float:left;padding-left:0px;margin-right:25px;'>
|
||||
<div class='ev-data place_country'>
|
||||
{{place_country | id 0 }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item ticket_price' style='clear:none;float:left;height:auto;width:auto;'>
|
||||
<div class='ev-data ticket_price'>
|
||||
{{ticket_price | id 1}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box ch-hidden content2" style="width:89.375%;float:right;clear:none;background-color:#f1f2f2;border-left:2px solid #cat-color;">
|
||||
|
||||
<div class='ev-item cont_box' style='width:89.08163265306122%;clear:both;float:none;background-color:#ffffff;padding:4%;margin:2%;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item featured_image' style='float:right;clear:none;height:auto;width:41.10275689223057%;'>
|
||||
<div class='ev-data featured_image'>
|
||||
<a href='{{event_link}}' class='ch-readmore'>{{event_image}}</a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='width:54.01069518716578%;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item full_date' style='width:98.98305084745763%;clear:none;float:left;font-size:16px;line-height:20px;text-transform:uppercase;background:none;color:#cat-color;padding-left:4px;border-bottom:2px solid #cat-color; margin-bottom:15px;'>
|
||||
<div class='ev-data full_date'>
|
||||
{{full_date | time_format | text_before from }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item event_description' style='float:left;clear:none;height:auto;width:98.86363636363636%;'>
|
||||
<div class='ev-data event_description'>
|
||||
<a href='{{event_link}}' class='ch-readmore'> {{event_description | shorten_text 500}}</a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='width:98.93048128342245%;clear:none;float:left;padding:0%;margin:0%;position:relative;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item cont_box' style='width:51.736745886654475%;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item ticket_price' style='width:98.49056603773585%;clear:none;float:left;margin-bottom:7px;'>
|
||||
<div class='ev-data ticket_price'>
|
||||
{{ticket_price | id 1}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item full_time' style=''>
|
||||
<div class='ev-data full_time'>
|
||||
{{full_time | time_format }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_direction' style='clear:none;float:left;height:auto;width:auto;'>
|
||||
<div class='ev-data place_direction'>
|
||||
<a href='{{place_link | id {{place_id | id 0}}}}' class='ch-readmore'> <span class='ch-address-{{place_id | id 0}}'>{{place_direction | id 0 | text_after ,}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_city' style='clear:none;float:left;height:auto;width:auto;padding-left:0px;'>
|
||||
<div class='ev-data place_city'>
|
||||
{{place_city | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_state' style='clear:none;float:left;height:auto;width:auto;padding-left:0px;'>
|
||||
<div class='ev-data place_state'>
|
||||
{{place_state | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_country' style='clear:none;float:left;height:auto;width:auto;padding-left:0px;'>
|
||||
<div class='ev-data place_country'>
|
||||
{{place_country | id 0 }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item share_box' style='color:#fff;'>
|
||||
<div class='ev-data share_box'>
|
||||
{{share_box | defaultchecked 1 | share_fb 1 | share_tw 1 | share_in 1 | share_go 1 | share_pi 1 | share_ics 1}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='width:45.585585585585584%;clear:none;float:none;color:#000000;text-transform:uppercase;text-align:right;bottom:0px;position:absolute;right:0px;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item organizer_name' style='float:none;clear:both;width:99.18367346938776%;color:#000000;text-transform:uppercase;text-align:right;padding-right:0px;margin-bottom:7px;padding-top:15px;'>
|
||||
<div class='ev-data organizer_name'>
|
||||
<a href='{{organizer_link | id {{organizer_id | id 0}}}}' class='ch-readmore'><span class='ch-organizer-{{organizer_id | id 0}}'>{{organizer_name | id 0 | filter the_title | text_before Organized by }}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item ticket_link' style='float:right;clear:none;height:auto;width:auto;color:#ffffff;font-size:18px;line-height:22px;font-weight:bold;text-transform:uppercase;text-align:center;background:#cat-color;padding:5px 15px;'>
|
||||
<div class='ev-data ticket_link'>
|
||||
<a href='{{ticket_link | id 1}}' target='_blank'>{{ translate | Buy tickets}}</a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_gmap' style='width:98.23899371069183%;clear:none;float:left;margin-top:25px;'>
|
||||
<div id='gmap{{id}}{{timestamp}}' class='ev-data place_gmap' style='width:100%; height:200px;margin-top:25px;'>
|
||||
{{place_gmap | id 0}}
|
||||
</div>
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item custom_link' style='float:none;clear:none;width:auto;height:auto;color:#ffffff;font-size:36px;line-height:40px;font-weight:bold;text-align:center;text-decoration:none;background-color:#dcddde;padding:0%;padding:0px 10px;padding-bottom:5px;line-height:32px;position:absolute;right:0px;bottom:0px;'>
|
||||
<div class='ev-data custom_link'>
|
||||
<a href="javascript:void(null)" class="ch-readmore" onclick='ev_slide("{{id}}", this)'><span class="ch-more">{{translate | -}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
1
wp-content/plugins/chronosly-templates/dad1/default.php
Normal file
@@ -0,0 +1,289 @@
|
||||
<style id='style'>.ev-{{id}} .ev-item.share_box a {background:#cat-color!important;}
|
||||
.ev-{{id}} .ev-item.share_box a {background:#cat-color!important;}
|
||||
</style>
|
||||
<div base="default" class="chronosly perfil2 ch-default ch-front ch-dad1 box-featured ev-{{id}} {{size}} ">
|
||||
|
||||
<div class="ev-box normal back_img ch-featured " style="width:auto;clear:none;float:left;border-left:12px solid #cat-color;background:url(#feat-image) center center no-repeat;">
|
||||
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box normal ch-overlay ch-featured " style="width:37.375%;clear:none;float:none;color:#ffffff;background-color:#000000;margin-left:12px;">
|
||||
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box normal ch-info ch-featured " style="clear:none;float:none;height:auto;width:99%;color:#ffffff;text-transform:uppercase;">
|
||||
|
||||
<div class='ev-item cont_box' style='height:auto;width:36.08660785886127%;clear:none;float:left;max-width:450px;padding-left:25px;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item start_date' style='clear:none;float:left;height:auto;width:auto;font-size:50px;line-height:54px;padding-right:5px;'>
|
||||
<div class='ev-data start_date'>
|
||||
{{start_date | time_format j}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item start_date' style='clear:none;float:left;height:auto;width:auto;font-size:18px;line-height:22px;padding-top:32px'>
|
||||
<div class='ev-data start_date'>
|
||||
{{start_date | time_format M}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item event_title' style='width:auto;clear:both;float:none;height:auto;font-size:20px;line-height:24px;padding-top:0px;'>
|
||||
<div class='ev-data event_title'>
|
||||
<a href='{{event_link}}' class='ch-readmore'>{{event_title}}</a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item categories' style='width:98.91304347826086%;clear:none;float:left;font-size:14px;line-height:18px;padding-top:0px;'>
|
||||
<div class='ev-data categories'>
|
||||
{{categories}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='clear:none;float:left;height:auto;width:98.99497487437185%;background-color:#4b4c4e;padding:0%;position:relative;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item cont_box' style='width:35.8704453441296%;clear:none;float:left;max-width:450px;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item custom_link' style='clear:none;float:none;height:auto;width:auto;color:#4b4c4e;font-size:32px;line-height:36px;background-color:#ffffff;padding:0px 8px;position:absolute;top:0px;right:0px;'>
|
||||
<div class='ev-data custom_link'>
|
||||
<a href="javascript:void(null)" class="ch-readmore" onclick='ev_slide("{{id}}", this)'><span class="ch-more">{{translate | +}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='width:20.48582995951417%;clear:none;float:left;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item full_time' style=''>
|
||||
<div class='ev-data full_time'>
|
||||
{{full_time | time_format }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='width:38.54251012145749%;clear:none;float:left;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item place_direction' style='height:auto;width:auto;clear:none;float:left;padding-right:0px;'>
|
||||
<div class='ev-data place_direction'>
|
||||
<span class='ch-address-{{place_id | id 0}}'>{{place_direction | id 0 | text_after ,}}</span>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_city' style='height:auto;width:auto;clear:none;float:left;padding-right:0px;'>
|
||||
<div class='ev-data place_city'>
|
||||
{{place_city | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_state' style='height:auto;clear:none;float:left;width:auto;padding-right:0px;'>
|
||||
<div class='ev-data place_state'>
|
||||
{{place_state | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_country' style='height:auto;width:auto;'>
|
||||
<div class='ev-data place_country'>
|
||||
{{place_country | id 0 }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style=''>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box ch-hidden content2 ch-featured " style="float:none;clear:both;height:auto;width:98%;background-color:#f1f2f2;border-left:12px solid #cat-color;width:98%;">
|
||||
|
||||
<div class='ev-item cont_box' style='width:89.08163265306122%;clear:both;float:none;background-color:#ffffff;padding:4%;margin:2%;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item featured_image' style='float:right;clear:none;height:auto;width:41.10275689223057%;'>
|
||||
<div class='ev-data featured_image'>
|
||||
<a href='{{event_link}}' class='ch-readmore'>{{event_image}}</a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='width:56.32183908045977%;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item event_title' style='width:99.10179640718563%;clear:none;float:left;color:#000000;font-size:20px;line-height:24px;text-transform:uppercase;'>
|
||||
<div class='ev-data event_title'>
|
||||
<a href='{{event_link}}' class='ch-readmore'>{{event_title}}</a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item full_date' style='width:99.1044776119403%;clear:none;float:left;font-size:16px;line-height:20px;text-transform:uppercase;background:none;color:#cat-color;padding-left:4px;border-bottom:2px solid #cat-color; margin-bottom:15px;'>
|
||||
<div class='ev-data full_date'>
|
||||
{{full_date | time_format | text_before from }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item event_description' style='float:left;clear:none;height:auto;width:98.86363636363636%;'>
|
||||
<div class='ev-data event_description'>
|
||||
<a href='{{event_link}}' class='ch-readmore'> {{event_description | shorten_text 500}}</a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='width:98.85057471264368%;clear:none;float:left;padding:0%;margin:0%;position:relative;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item cont_box' style='width:51.736745886654475%;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item ticket_price' style='width:98.49056603773585%;clear:none;float:left;margin-bottom:7px;'>
|
||||
<div class='ev-data ticket_price'>
|
||||
{{ticket_price | id 1}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item full_time' style=''>
|
||||
<div class='ev-data full_time'>
|
||||
{{full_time | time_format }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_direction' style='clear:none;float:left;height:auto;width:auto;'>
|
||||
<div class='ev-data place_direction'>
|
||||
<a href='{{place_link | id {{place_id | id 0}}}}' class='ch-readmore'> <span class='ch-address-{{place_id | id 0}}'>{{place_direction | id 0 | text_after ,}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_city' style='clear:none;float:left;height:auto;width:auto;padding-left:0px;'>
|
||||
<div class='ev-data place_city'>
|
||||
{{place_city | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_state' style='clear:none;float:left;height:auto;width:auto;padding-left:0px;'>
|
||||
<div class='ev-data place_state'>
|
||||
{{place_state | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_country' style='clear:none;float:left;height:auto;width:auto;padding-left:0px;'>
|
||||
<div class='ev-data place_country'>
|
||||
{{place_country | id 0 }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item share_box' style='color:#fff;'>
|
||||
<div class='ev-data share_box'>
|
||||
{{share_box | defaultchecked 1 | share_fb 1 | share_tw 1 | share_in 1 | share_go 1 | share_pi 1 | share_ics 1}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='width:45.585585585585584%;clear:none;float:none;color:#000000;text-transform:uppercase;text-align:right;bottom:0px;position:absolute;right:0px;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item organizer_name' style='float:none;clear:both;width:99.18367346938776%;color:#000000;text-transform:uppercase;text-align:right;padding-right:0px;margin-bottom:7px;padding-top:15px;'>
|
||||
<div class='ev-data organizer_name'>
|
||||
<a href='{{organizer_link | id {{organizer_id | id 0}}}}' class='ch-readmore'><span class='ch-organizer-{{organizer_id | id 0}}'>{{organizer_name | id 0 | filter the_title | text_before Organized by }}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item ticket_link' style='float:right;clear:none;height:auto;width:auto;color:#ffffff;font-size:18px;line-height:22px;font-weight:bold;text-transform:uppercase;text-align:center;background:#cat-color;padding:5px 15px;'>
|
||||
<div class='ev-data ticket_link'>
|
||||
<a href='{{ticket_link | id 1}}' target='_blank'>{{ translate | Buy tickets}}</a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_gmap' style='width:98.23899371069183%;clear:none;float:left;margin-top:25px;'>
|
||||
<div id='gmap{{id}}{{timestamp}}' class='ev-data place_gmap' style='width:100%; height:200px;margin-top:25px;'>
|
||||
{{place_gmap | id 0}}
|
||||
</div>
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item custom_link' style='float:none;clear:none;height:auto;width:auto;color:#ffffff;font-size:36px;line-height:40px;font-weight:bold;text-align:center;text-decoration:none;background-color:#dcddde;padding:0%;padding:0px 10px;padding-bottom:5px;line-height:32px;position:absolute;right:0px;bottom:0px;'>
|
||||
<div class='ev-data custom_link'>
|
||||
<a href="javascript:void(null)" class="ch-readmore" onclick='ev_slide("{{id}}", this)'><span class="ch-more">{{translate | -}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
113
wp-content/plugins/chronosly-templates/dad10/default.html
Normal file
@@ -0,0 +1,113 @@
|
||||
<style id='style'>
|
||||
.ev-{{id}} .ev-box .ev-item.share_box a {background:#4b4c4e!important;}
|
||||
.ev-{{id}} .ev-box .ev-item.share_box a {background:#4b4c4e!important;}
|
||||
</style>
|
||||
<div base="default" class="chronosly perfil2 ch-default ch-front ch-dad10 ev-{{id}} {{size}} ">
|
||||
|
||||
<div class="ev-box normal back_img" style="width:auto;clear:none;float:left;background:url(#feat-image) center center no-repeat;">
|
||||
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box both ch-overlay" style="width:36.875%;clear:none;float:none;color:#ffffff;background-color:#000000;">
|
||||
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box both ch-info" style="clear:none;float:none;height:auto;width:36.75%;color:#ffffff;text-transform:uppercase;padding-bottom:20px;">
|
||||
|
||||
<div class='ev-item place_name' style='clear:none;float:none;height:auto;width:102.42214532871972%;color:#ffffff;font-size:20px;line-height:24px;text-transform:uppercase;'>
|
||||
<div class='ev-data place_name'>
|
||||
<span class='ch-place-{{place_id | id 0}}'>{{place_name | id 0 | filter the_title}}</span>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box both content2" style="float:right;clear:none;height:auto;background-color:#ffffff;">
|
||||
|
||||
<div class='ev-item cont_box' style='clear:both;float:none;height:auto;width:98.98348157560356%;background-color:#ffffff;padding:1%;margin:0%;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item cont_box' style='clear:none;float:left;height:auto;padding:0%;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item place_direction' style='height:auto;width:auto;clear:none;float:left;'>
|
||||
<div class='ev-data place_direction'>
|
||||
<span class='ch-address-{{place_id | id 0}}'>{{place_direction | id 0 | text_after ,}}</span>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_city' style='height:auto;width:auto;clear:none;float:left;padding-left:0px;'>
|
||||
<div class='ev-data place_city'>
|
||||
{{place_city | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_state' style='height:auto;width:auto;clear:none;float:left;padding-left:0px;'>
|
||||
<div class='ev-data place_state'>
|
||||
{{place_state | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_country' style='height:auto;width:auto;clear:none;float:left;padding-left:0px;'>
|
||||
<div class='ev-data place_country'>
|
||||
{{place_country | id 0 }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_gmap' style=''>
|
||||
<div id='gmap{{id}}{{timestamp}}' class='ev-data place_gmap' style='width:100%; height:200px;'>
|
||||
{{place_gmap | id 0}}
|
||||
</div>
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item custom_link' style='width:99.09208819714657%;clear:none;float:left;font-weight:bold;'>
|
||||
<div class='ev-data custom_link'>
|
||||
<a href="#gmap_link" class="ch-readmore" target="_blank" rel="nofollow"><span class="ch-more">{{translate | Open map}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_description' style='width:99.09208819714657%;clear:none;float:left;margin-top:15px;'>
|
||||
<div class='ev-data place_description'>
|
||||
{{place_description | id 0 | filter the_content | shorten_text }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item share_box' style='color:#fff;'>
|
||||
<div class='ev-data share_box'>
|
||||
{{share_box | share_fb | share_tw | share_in | share_go | share_pi | share_ics }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item events_list' style=''>
|
||||
<div class='ev-data events_list'>
|
||||
{{event_list}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
1
wp-content/plugins/chronosly-templates/dad10/default.php
Normal file
@@ -0,0 +1,113 @@
|
||||
<style id='style'>
|
||||
.ev-{{id}} .ev-box .ev-item.share_box a {background:#4b4c4e!important;}
|
||||
.ev-{{id}} .ev-box .ev-item.share_box a {background:#4b4c4e!important;}
|
||||
</style>
|
||||
<div base="default" class="chronosly perfil2 ch-default ch-front ch-dad10 box-featured ev-{{id}} {{size}} ">
|
||||
|
||||
<div class="ev-box normal back_img" style="width:auto;clear:none;float:left;background:url(#feat-image) center center no-repeat;">
|
||||
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box both ch-overlay" style="width:36.875%;clear:none;float:none;color:#ffffff;background-color:#000000;">
|
||||
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box both ch-info" style="clear:none;float:none;height:auto;width:36.75%;color:#ffffff;text-transform:uppercase;padding-bottom:20px;">
|
||||
|
||||
<div class='ev-item place_name' style='clear:none;float:none;height:auto;width:102.42214532871972%;color:#ffffff;font-size:20px;line-height:24px;text-transform:uppercase;'>
|
||||
<div class='ev-data place_name'>
|
||||
<span class='ch-place-{{place_id | id 0}}'>{{place_name | id 0 | filter the_title}}</span>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box both content2" style="float:right;clear:none;height:auto;background-color:#ffffff;">
|
||||
|
||||
<div class='ev-item cont_box' style='clear:both;float:none;height:auto;width:98.98348157560356%;background-color:#ffffff;padding:1%;margin:0%;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item cont_box' style='clear:none;float:left;height:auto;padding:0%;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item place_direction' style='height:auto;width:auto;clear:none;float:left;'>
|
||||
<div class='ev-data place_direction'>
|
||||
<span class='ch-address-{{place_id | id 0}}'>{{place_direction | id 0 | text_after ,}}</span>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_city' style='height:auto;width:auto;clear:none;float:left;padding-left:0px;'>
|
||||
<div class='ev-data place_city'>
|
||||
{{place_city | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_state' style='height:auto;width:auto;clear:none;float:left;padding-left:0px;'>
|
||||
<div class='ev-data place_state'>
|
||||
{{place_state | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_country' style='height:auto;width:auto;clear:none;float:left;padding-left:0px;'>
|
||||
<div class='ev-data place_country'>
|
||||
{{place_country | id 0 }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_gmap' style=''>
|
||||
<div id='gmap{{id}}{{timestamp}}' class='ev-data place_gmap' style='width:100%; height:200px;'>
|
||||
{{place_gmap | id 0}}
|
||||
</div>
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item custom_link' style='width:99.09208819714657%;clear:none;float:left;font-weight:bold;'>
|
||||
<div class='ev-data custom_link'>
|
||||
<a href="#gmap_link" class="ch-readmore" target="_blank" rel="nofollow"><span class="ch-more">{{translate | Open map}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_description' style='width:99.09208819714657%;clear:none;float:left;margin-top:15px;'>
|
||||
<div class='ev-data place_description'>
|
||||
{{place_description | id 0 | filter the_content | shorten_text }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item share_box' style='color:#fff;'>
|
||||
<div class='ev-data share_box'>
|
||||
{{share_box | share_fb | share_tw | share_in | share_go | share_pi | share_ics }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item events_list' style=''>
|
||||
<div class='ev-data events_list'>
|
||||
{{event_list}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
24
wp-content/plugins/chronosly-templates/dad11/default.html
Normal file
@@ -0,0 +1,24 @@
|
||||
|
||||
<div base="default" class="chronosly perfil2 ch-default ch-front ch-dad11 ev-{{id}} {{size}} ">
|
||||
|
||||
<div class="ev-box both " style="">
|
||||
|
||||
<div class='ev-item category_name' style='width:98.98348157560356%;clear:none;float:left;color:#ffffff;font-size:24px;line-height:28px;background: #cat-color;padding-left:10px;'>
|
||||
<div class='ev-data category_name'>
|
||||
<a href='' class='ch-readmore'><span class='ch-category-{{category_slug | id 0}}'>{{category_name | id 0 | filter the_title}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item events_list' style=''>
|
||||
<div class='ev-data events_list'>
|
||||
{{event_list}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
1
wp-content/plugins/chronosly-templates/dad11/default.php
Normal file
@@ -0,0 +1 @@
|
||||
{"boxes":[{"type":"3","clase":"","featured":false,"style":"","items":[{"style":"width:98.98348157560356%;clear:none;float:left;color:#ffffff;font-size:24px;line-height:28px;background: #1bbc9d;padding-left:10px;","attr":[{"name":"category_name","value":"","vars":[{"name":"category_name","value":""},{"name":"readmore_check","value":true,"label":"Readmore link"},{"name":"readmore_text","value":"","label":"Readmore text"},{"name":"readmore_action","value":"2","label":"Link action"},{"name":"external_url","value":"","label":"External url"},{"name":"target_blank","value":false,"label":"Open in a new page"},{"name":"nofollow","value":false,"label":"Nofollow"}]},{"name":"color","value":"#ffffff","label":"Color"},{"name":"font-size","value":"24","label":"Text size"},{"name":"font-family","value":"","label":"Font family"},{"name":"bold","value":false,"label":"Bold"},{"name":"uppercase","value":false,"label":"Uppercase"},{"name":"text-align","value":"","label":"Align"},{"name":"text-decoration","value":"","label":"Decoration"},{"name":"background-color","value":"","label":"Background color"},{"name":"background-round","value":"","label":"Round"},{"name":"border-color","value":"","label":"Border color"},{"name":"border-size","value":"","label":"Border size"},{"name":"border-style","value":"","label":"Border style"},{"name":"padding","value":"","label":"Padding"},{"name":"margin","value":"","label":"Margin"},{"name":"css","value":"background:%20#cat-color;padding-left:10px;"}]},{"style":"","attr":[{"name":"events_list","value":"","vars":[{"name":"events_list","value":""}]},{"name":"color","value":"","label":"Color"},{"name":"font-size","value":"","label":"Text size"},{"name":"font-family","value":"","label":"Font family"},{"name":"bold","value":false,"label":"Bold"},{"name":"uppercase","value":false,"label":"Uppercase"},{"name":"text-align","value":"","label":"Align"},{"name":"text-decoration","value":"","label":"Decoration"},{"name":"background-color","value":"","label":"Background color"},{"name":"background-round","value":"","label":"Round"},{"name":"border-color","value":"","label":"Border color"},{"name":"border-size","value":"","label":"Border size"},{"name":"border-style","value":"","label":"Border style"},{"name":"padding","value":"","label":"Padding"},{"name":"margin","value":"","label":"Margin"},{"name":"css","value":""}]}],"attr":[{"name":"color","value":"","label":"Color"},{"name":"font-size","value":"","label":"Text size"},{"name":"font-family","value":"","label":"Font family"},{"name":"bold","value":false,"label":"Bold"},{"name":"uppercase","value":false,"label":"Uppercase"},{"name":"text-align","value":"","label":"Align"},{"name":"text-decoration","value":"","label":"Decoration"},{"name":"background-color","value":"","label":"Background color"},{"name":"background-round","value":"","label":"Round"},{"name":"border-color","value":"","label":"Border color"},{"name":"border-size","value":"","label":"Border size"},{"name":"border-style","value":"","label":"Border style"},{"name":"padding","value":"","label":"Padding"},{"name":"margin","value":"","label":"Margin"},{"name":"css","value":""}]}],"style":""}
|
||||
@@ -0,0 +1,24 @@
|
||||
|
||||
<div base="default" class="chronosly perfil2 ch-default ch-front ch-dad11 box-featured ev-{{id}} {{size}} ">
|
||||
|
||||
<div class="ev-box both " style="">
|
||||
|
||||
<div class='ev-item category_name' style='width:98.98348157560356%;clear:none;float:left;color:#ffffff;font-size:24px;line-height:28px;background: #cat-color;padding-left:10px;'>
|
||||
<div class='ev-data category_name'>
|
||||
<a href='' class='ch-readmore'><span class='ch-category-{{category_slug | id 0}}'>{{category_name | id 0 | filter the_title}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item events_list' style=''>
|
||||
<div class='ev-data events_list'>
|
||||
{{event_list}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
31
wp-content/plugins/chronosly-templates/dad12/default.html
Normal file
@@ -0,0 +1,31 @@
|
||||
|
||||
<div base="default" class="chronosly perfil2 ch-default ch-front ch-dad12 ev-{{id}} {{size}} ">
|
||||
|
||||
<div class="ev-box both " style="">
|
||||
|
||||
<div class='ev-item category_name' style='width:98.98348157560356%;clear:none;float:left;color:#ffffff;font-size:24px;line-height:28px;background: #cat-color;padding-left:10px;'>
|
||||
<div class='ev-data category_name'>
|
||||
<span class='ch-category-{{category_slug | id 0}}'>{{category_name | id 0 | filter the_title}}</span>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item ' style=''>
|
||||
<div class='ev-data '>
|
||||
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item events_list' style=''>
|
||||
<div class='ev-data events_list'>
|
||||
{{event_list}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
1
wp-content/plugins/chronosly-templates/dad12/default.php
Normal file
@@ -0,0 +1 @@
|
||||
{"boxes":[{"type":"3","clase":"","featured":false,"style":"","items":[{"style":"width:98.98348157560356%;clear:none;float:left;color:#ffffff;font-size:24px;line-height:28px;background: #1bbc9d;padding-left:10px;","attr":[{"name":"category_name","value":"","vars":[{"name":"category_name","value":""},{"name":"readmore_check","value":false,"label":"Readmore link"},{"name":"readmore_text","value":"more","label":"Readmore text"},{"name":"readmore_action","value":"1","label":"Link action"},{"name":"external_url","value":"","label":"External url"},{"name":"target_blank","value":false,"label":"Open in a new page"},{"name":"nofollow","value":false,"label":"Nofollow"}]},{"name":"color","value":"#ffffff","label":"Color"},{"name":"font-size","value":"24","label":"Text size"},{"name":"font-family","value":"","label":"Font family"},{"name":"bold","value":false,"label":"Bold"},{"name":"uppercase","value":false,"label":"Uppercase"},{"name":"text-align","value":"","label":"Align"},{"name":"text-decoration","value":"","label":"Decoration"},{"name":"background-color","value":"","label":"Background color"},{"name":"background-round","value":"","label":"Round"},{"name":"border-color","value":"","label":"Border color"},{"name":"border-size","value":"","label":"Border size"},{"name":"border-style","value":"","label":"Border style"},{"name":"padding","value":"","label":"Padding"},{"name":"margin","value":"","label":"Margin"},{"name":"css","value":"background:%20#cat-color;padding-left:10px;"}]},{"style":"","attr":[""]},{"style":"","attr":[{"name":"events_list","value":"","vars":[{"name":"events_list","value":""}]},{"name":"color","value":"","label":"Color"},{"name":"font-size","value":"","label":"Text size"},{"name":"font-family","value":"","label":"Font family"},{"name":"bold","value":false,"label":"Bold"},{"name":"uppercase","value":false,"label":"Uppercase"},{"name":"text-align","value":"","label":"Align"},{"name":"text-decoration","value":"","label":"Decoration"},{"name":"background-color","value":"","label":"Background color"},{"name":"background-round","value":"","label":"Round"},{"name":"border-color","value":"","label":"Border color"},{"name":"border-size","value":"","label":"Border size"},{"name":"border-style","value":"","label":"Border style"},{"name":"padding","value":"","label":"Padding"},{"name":"margin","value":"","label":"Margin"},{"name":"css","value":""}]}],"attr":[{"name":"color","value":"","label":"Color"},{"name":"font-size","value":"","label":"Text size"},{"name":"font-family","value":"","label":"Font family"},{"name":"bold","value":false,"label":"Bold"},{"name":"uppercase","value":false,"label":"Uppercase"},{"name":"text-align","value":"","label":"Align"},{"name":"text-decoration","value":"","label":"Decoration"},{"name":"background-color","value":"","label":"Background color"},{"name":"background-round","value":"","label":"Round"},{"name":"border-color","value":"","label":"Border color"},{"name":"border-size","value":"","label":"Border size"},{"name":"border-style","value":"","label":"Border style"},{"name":"padding","value":"","label":"Padding"},{"name":"margin","value":"","label":"Margin"},{"name":"css","value":""}]}],"style":""}
|
||||
@@ -0,0 +1,31 @@
|
||||
|
||||
<div base="default" class="chronosly perfil2 ch-default ch-front ch-dad12 box-featured ev-{{id}} {{size}} ">
|
||||
|
||||
<div class="ev-box both " style="">
|
||||
|
||||
<div class='ev-item category_name' style='width:98.98348157560356%;clear:none;float:left;color:#ffffff;font-size:24px;line-height:28px;background: #cat-color;padding-left:10px;'>
|
||||
<div class='ev-data category_name'>
|
||||
<span class='ch-category-{{category_slug | id 0}}'>{{category_name | id 0 | filter the_title}}</span>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item ' style=''>
|
||||
<div class='ev-data '>
|
||||
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item events_list' style=''>
|
||||
<div class='ev-data events_list'>
|
||||
{{event_list}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
179
wp-content/plugins/chronosly-templates/dad2/default.html
Normal file
@@ -0,0 +1,179 @@
|
||||
<style id='style'>
|
||||
.ev-{{id}} .ev-item.share_box a {background:#cat-color!important;}
|
||||
.ev-{{id}} .ev-item.share_box a {background:#cat-color!important;}
|
||||
</style>
|
||||
<div base="default" class="chronosly perfil2 ch-default ch-front ch-dad2 ev-{{id}} {{size}} ">
|
||||
|
||||
<div class="ev-box both back_img" style="width:auto;clear:none;float:left;border-left:12px solid #cat-color;background:url(#feat-image) center center no-repeat;">
|
||||
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box both ch-overlay" style="width:36.875%;clear:none;float:none;color:#ffffff;background-color:#000000;margin-left:12px;">
|
||||
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box both ch-info" style="clear:none;float:none;height:auto;width:101%;color:#ffffff;text-transform:uppercase;padding-bottom:20px;">
|
||||
|
||||
<div class='ev-item cont_box' style='height:auto;width:36.08660785886127%;clear:none;float:left;max-width:450px;padding-left:25px;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item start_date' style='clear:none;float:left;height:auto;width:auto;font-size:50px;line-height:54px;padding-right:5px;'>
|
||||
<div class='ev-data start_date'>
|
||||
{{start_date | time_format d}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item start_date' style='clear:none;float:left;height:auto;width:auto;font-size:18px;line-height:22px;padding-top:32px'>
|
||||
<div class='ev-data start_date'>
|
||||
{{start_date | time_format M}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item event_title' style='width:auto;clear:both;float:none;height:auto;font-size:20px;line-height:24px;padding-top:0px;'>
|
||||
<div class='ev-data event_title'>
|
||||
{{event_title}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item categories' style='width:98.91304347826086%;clear:none;float:left;font-size:14px;line-height:18px;padding-top:0px;'>
|
||||
<div class='ev-data categories'>
|
||||
{{categories}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box both content2" style="float:right;clear:none;height:auto;width:99%;background-color:#ffffff;padding:1%;">
|
||||
|
||||
<div class='ev-item organizer_name' style='float:right;clear:none;height:auto;width:auto;color:#000000;font-size:18px;line-height:22px;text-transform:uppercase;text-align:right;padding-right:0px;margin-bottom:7px;'>
|
||||
<div class='ev-data organizer_name'>
|
||||
<a href='{{organizer_link | id {{organizer_id | id 0}}}}' class='ch-readmore'><span class='ch-organizer-{{organizer_id | id 0}}'>{{organizer_name | id 0 | filter the_title | text_before Organized by }}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item ticket_price' style='width:98.49056603773585%;clear:none;float:left;margin-bottom:7px;'>
|
||||
<div class='ev-data ticket_price'>
|
||||
{{ticket_price | id 1}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item full_time' style=''>
|
||||
<div class='ev-data full_time'>
|
||||
{{full_time | time_format }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='clear:none;float:left;height:auto;padding:0%;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item place_direction' style='height:auto;width:auto;clear:none;float:left;'>
|
||||
<div class='ev-data place_direction'>
|
||||
<a href='{{place_link | id {{place_id | id 0}}}}' class='ch-readmore'> <span class='ch-address-{{place_id | id 0}}'>{{place_direction | id 0 | text_after ,}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_city' style='height:auto;width:auto;clear:none;float:left;padding-left:0px;'>
|
||||
<div class='ev-data place_city'>
|
||||
{{place_city | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_state' style='height:auto;width:auto;clear:none;float:left;padding-left:0px;'>
|
||||
<div class='ev-data place_state'>
|
||||
{{place_state | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_country' style='height:auto;width:auto;clear:none;float:left;padding-left:0px;'>
|
||||
<div class='ev-data place_country'>
|
||||
{{place_country | id 0 }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='height:auto;width:98.97523484201537%;clear:none;float:left;padding:0%;margin:0%;padding:20px 0px;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item full_date' style='width:auto;clear:none;float:left;height:auto;font-size:16px;line-height:20px;text-transform:uppercase;background:none;color:#cat-color;padding-left:4px;border-bottom:2px solid #cat-color; margin-bottom:15px;'>
|
||||
<div class='ev-data full_date'>
|
||||
{{full_date | time_format | text_before From }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item event_description' style='float:left;clear:none;height:auto;width:98.83268482490273%;padding:0%;'>
|
||||
<div class='ev-data event_description'>
|
||||
{{event_description | shorten_text }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item share_box' style='width:56%;color:#fff;'>
|
||||
<div class='ev-data share_box'>
|
||||
{{share_box | defaultchecked 1 | share_fb 1 | share_tw 1 | share_in 1 | share_go 1 | share_pi 1 | share_ics 1}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='clear:none;float:right;height:auto;width:40.8198121263877%;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item ticket_link' style='float:right;clear:none;height:auto;width:auto;color:#ffffff;font-weight:bold;text-transform:uppercase;text-align:center;background:#cat-color;padding:5px 15px;'>
|
||||
<div class='ev-data ticket_link'>
|
||||
<a href='{{ticket_link | id 1}}' target='_blank'>{{ translate | Buy tickets}}</a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_gmap' style='clear:none;float:left;height:auto;padding:20px 0px;'>
|
||||
<div id='gmap{{id}}{{timestamp}}' class='ev-data place_gmap' style='width:100%; height:200px;padding:20px 0px;'>
|
||||
{{place_gmap | id 0}}
|
||||
</div>
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item seasons_list' style='width:98.9583%;clear:none;float:left;'>
|
||||
<div class='ev-data seasons_list'>
|
||||
{{seasons_list | seasons_calendar 1 | seasons_date_format | seasons_hour_format | seasons_ticket_name 1 | seasons_ticket_price 1 | seasons_ticket_link 1}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
1
wp-content/plugins/chronosly-templates/dad2/default.php
Normal file
@@ -0,0 +1,179 @@
|
||||
<style id='style'>
|
||||
.ev-{{id}} .ev-item.share_box a {background:#cat-color!important;}
|
||||
.ev-{{id}} .ev-item.share_box a {background:#cat-color!important;}
|
||||
</style>
|
||||
<div base="default" class="chronosly perfil2 ch-default ch-front ch-dad2 box-featured ev-{{id}} {{size}} ">
|
||||
|
||||
<div class="ev-box both back_img" style="width:auto;clear:none;float:left;border-left:12px solid #cat-color;background:url(#feat-image) center center no-repeat;">
|
||||
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box both ch-overlay" style="width:36.875%;clear:none;float:none;color:#ffffff;background-color:#000000;margin-left:12px;">
|
||||
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box both ch-info" style="clear:none;float:none;height:auto;width:101%;color:#ffffff;text-transform:uppercase;padding-bottom:20px;">
|
||||
|
||||
<div class='ev-item cont_box' style='height:auto;width:36.08660785886127%;clear:none;float:left;max-width:450px;padding-left:25px;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item start_date' style='clear:none;float:left;height:auto;width:auto;font-size:50px;line-height:54px;padding-right:5px;'>
|
||||
<div class='ev-data start_date'>
|
||||
{{start_date | time_format d}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item start_date' style='clear:none;float:left;height:auto;width:auto;font-size:18px;line-height:22px;padding-top:32px'>
|
||||
<div class='ev-data start_date'>
|
||||
{{start_date | time_format M}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item event_title' style='width:auto;clear:both;float:none;height:auto;font-size:20px;line-height:24px;padding-top:0px;'>
|
||||
<div class='ev-data event_title'>
|
||||
{{event_title}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item categories' style='width:98.91304347826086%;clear:none;float:left;font-size:14px;line-height:18px;padding-top:0px;'>
|
||||
<div class='ev-data categories'>
|
||||
{{categories}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box both content2" style="float:right;clear:none;height:auto;width:99%;background-color:#ffffff;padding:1%;">
|
||||
|
||||
<div class='ev-item organizer_name' style='float:right;clear:none;height:auto;width:auto;color:#000000;font-size:18px;line-height:22px;text-transform:uppercase;text-align:right;padding-right:0px;margin-bottom:7px;'>
|
||||
<div class='ev-data organizer_name'>
|
||||
<a href='{{organizer_link | id {{organizer_id | id 0}}}}' class='ch-readmore'><span class='ch-organizer-{{organizer_id | id 0}}'>{{organizer_name | id 0 | filter the_title | text_before Organized by }}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item ticket_price' style='width:98.49056603773585%;clear:none;float:left;margin-bottom:7px;'>
|
||||
<div class='ev-data ticket_price'>
|
||||
{{ticket_price | id 1}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item full_time' style=''>
|
||||
<div class='ev-data full_time'>
|
||||
{{full_time | time_format }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='clear:none;float:left;height:auto;padding:0%;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item place_direction' style='height:auto;width:auto;clear:none;float:left;'>
|
||||
<div class='ev-data place_direction'>
|
||||
<a href='{{place_link | id {{place_id | id 0}}}}' class='ch-readmore'> <span class='ch-address-{{place_id | id 0}}'>{{place_direction | id 0 | text_after ,}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_city' style='height:auto;width:auto;clear:none;float:left;padding-left:0px;'>
|
||||
<div class='ev-data place_city'>
|
||||
{{place_city | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_state' style='height:auto;width:auto;clear:none;float:left;padding-left:0px;'>
|
||||
<div class='ev-data place_state'>
|
||||
{{place_state | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_country' style='height:auto;width:auto;clear:none;float:left;padding-left:0px;'>
|
||||
<div class='ev-data place_country'>
|
||||
{{place_country | id 0 }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='height:auto;width:98.97523484201537%;clear:none;float:left;padding:0%;margin:0%;padding:20px 0px;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item full_date' style='width:auto;clear:none;float:left;height:auto;font-size:16px;line-height:20px;text-transform:uppercase;background:none;color:#cat-color;padding-left:4px;border-bottom:2px solid #cat-color; margin-bottom:15px;'>
|
||||
<div class='ev-data full_date'>
|
||||
{{full_date | time_format | text_before From }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item event_description' style='float:left;clear:none;height:auto;width:98.83268482490273%;padding:0%;'>
|
||||
<div class='ev-data event_description'>
|
||||
{{event_description | shorten_text }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item share_box' style='width:56%;color:#fff;'>
|
||||
<div class='ev-data share_box'>
|
||||
{{share_box | defaultchecked 1 | share_fb 1 | share_tw 1 | share_in 1 | share_go 1 | share_pi 1 | share_ics 1}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='clear:none;float:right;height:auto;width:40.8198121263877%;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item ticket_link' style='float:right;clear:none;height:auto;width:auto;color:#ffffff;font-weight:bold;text-transform:uppercase;text-align:center;background:#cat-color;padding:5px 15px;'>
|
||||
<div class='ev-data ticket_link'>
|
||||
<a href='{{ticket_link | id 1}}' target='_blank'>{{ translate | Buy tickets}}</a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_gmap' style='clear:none;float:left;height:auto;padding:20px 0px;'>
|
||||
<div id='gmap{{id}}{{timestamp}}' class='ev-data place_gmap' style='width:100%; height:200px;padding:20px 0px;'>
|
||||
{{place_gmap | id 0}}
|
||||
</div>
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item seasons_list' style='width:98.9583%;clear:none;float:left;'>
|
||||
<div class='ev-data seasons_list'>
|
||||
{{seasons_list | seasons_calendar 1 | seasons_date_format | seasons_hour_format | seasons_ticket_name 1 | seasons_ticket_price 1 | seasons_ticket_link 1}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
24
wp-content/plugins/chronosly-templates/dad3/default.html
Normal file
@@ -0,0 +1,24 @@
|
||||
|
||||
<div base="default" class="chronosly perfil2 ch-default ch-front ch-dad3 ev-{{id}} {{size}} ">
|
||||
|
||||
<div class="ev-box both calendar" style="width:99%;clear:none;float:left;color:#4b4c4e;text-align:center;padding:0%;margin:0%;margin:3px 0px;padding:5px;border-top:2px solid #cat-color;positon:relative;">
|
||||
|
||||
<div class='ev-item start_hour' style='height:auto;width:29%;clear:none;float:left;font-size:12px;line-height:16px;text-align:left;'>
|
||||
<div class='ev-data start_hour'>
|
||||
{{start_hour | time_format }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item event_title' style='width:69.0956979806848%;clear:none;float:right;height:auto;font-size:14px;line-height:18px;text-transform:uppercase;text-align:center;padding:0%;margin:0%;'>
|
||||
<div class='ev-data event_title'>
|
||||
<a href="javascript:ev_popup('{{idurl}}&post_type=chronosly')" class="ch-readmore">{{event_title}}</a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
1
wp-content/plugins/chronosly-templates/dad3/default.php
Normal file
@@ -0,0 +1,24 @@
|
||||
|
||||
<div base="default" class="chronosly perfil2 ch-default ch-front ch-dad3 box-featured ev-{{id}} {{size}} ">
|
||||
|
||||
<div class="ev-box both calendar-feat ch-featured " style="width:99%;clear:none;float:left;text-align:center;background-color:#4b4c4e;margin:3px 0px;padding:5px;border-top:2px solid #cat-color;positon:relative;">
|
||||
|
||||
<div class='ev-item start_hour' style='width:29%;clear:none;float:left;height:auto;color:#ffffff;font-size:12px;line-height:16px;text-align:left;margin:0%;'>
|
||||
<div class='ev-data start_hour'>
|
||||
{{start_hour | time_format }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item event_title' style='width:69.0956979806848%;clear:none;float:right;height:auto;color:#ffffff;font-size:14px;line-height:18px;text-transform:uppercase;text-align:center;padding:0%;margin:0%;'>
|
||||
<div class='ev-data event_title'>
|
||||
<a href="javascript:ev_popup('{{idurl}}&post_type=chronosly')" class="ch-readmore">{{event_title}}</a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
243
wp-content/plugins/chronosly-templates/dad4/default.html
Normal file
@@ -0,0 +1,243 @@
|
||||
<style id='style'>
|
||||
.ev-{{id}} .ev-item.share_box a {background:black!important;}
|
||||
.ev-{{id}} .ev-item.share_box a {background:black!important;}
|
||||
</style>
|
||||
<div base="default" class="chronosly perfil2 ch-default ch-front ch-dad4 ev-{{id}} {{size}} ">
|
||||
|
||||
<div class="ev-box both data" style="width:8.875%;clear:none;float:left;font-weight:bold;text-align:center;padding:0%;">
|
||||
|
||||
<div class='ev-item start_date' style='width:98.59154929577466%;clear:none;float:left;font-size:34px;line-height:38px;padding:0%;'>
|
||||
<div class='ev-data start_date'>
|
||||
{{start_date | time_format d}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item start_date' style='width:98.59154929577466%;clear:none;float:left;font-size:20px;line-height:24px;text-transform:uppercase;padding:0%;'>
|
||||
<div class='ev-data start_date'>
|
||||
{{start_date | time_format M}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box both title" style="width:89.375%;float:right;clear:none;padding:0%;border-left:2px solid black;border-bottom:2px solid black;">
|
||||
|
||||
<div class='ev-item event_title' style='height:auto;width:auto;clear:none;float:left;color:#000000;font-size:20px;line-height:24px;text-transform:uppercase;'>
|
||||
<div class='ev-data event_title'>
|
||||
<a href='{{event_link}}' class='ch-readmore'>{{event_title}}</a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box normal content1" style="width:89.375%;float:right;clear:none;background-color:#f1f2f2;padding:0%;border-left:2px solid black;">
|
||||
|
||||
<div class='ev-item custom_link' style='float:none;clear:none;height:auto;width:auto;color:#ffffff;font-size:32px;line-height:36px;font-weight:bold;text-align:center;text-decoration:none;background-color:#dcddde;padding:0%;padding:0px 8px;position:absolute;top:0px;right:0px;'>
|
||||
<div class='ev-data custom_link'>
|
||||
<a href="javascript:void(null)" class="ch-readmore" onclick='ev_slide("{{id}}", this)'><span class="ch-more">{{translate | +}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='width:92.3469387755102%;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item full_time' style='width:auto;clear:none;float:left;height:auto;'>
|
||||
<div class='ev-data full_time'>
|
||||
{{full_time | time_format | text_before From }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_direction' style='height:auto;width:auto;clear:none;float:left;'>
|
||||
<div class='ev-data place_direction'>
|
||||
<span class='ch-address-{{place_id | id 0}}'>{{place_direction | id 0 | text_after ,}}</span>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_city' style='height:auto;width:auto;clear:none;float:left;padding-left:0px;'>
|
||||
<div class='ev-data place_city'>
|
||||
{{place_city | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_state' style='height:auto;width:auto;clear:none;float:left;padding-left:0px;'>
|
||||
<div class='ev-data place_state'>
|
||||
{{place_state | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_country' style='height:auto;width:auto;clear:none;float:left;padding-left:0px;margin-right:25px;'>
|
||||
<div class='ev-data place_country'>
|
||||
{{place_country | id 0 }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item ticket_price' style='clear:none;float:left;height:auto;width:auto;'>
|
||||
<div class='ev-data ticket_price'>
|
||||
{{ticket_price | id 1}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box ch-hidden content2" style="width:89.375%;float:right;clear:none;background-color:#f1f2f2;border-left:2px solid black;">
|
||||
|
||||
<div class='ev-item cont_box' style='width:89.08163265306122%;clear:both;float:none;background-color:#ffffff;padding:4%;margin:2%;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item featured_image' style='float:right;clear:none;height:auto;width:41.10275689223057%;'>
|
||||
<div class='ev-data featured_image'>
|
||||
<a href='{{event_link}}' class='ch-readmore'>{{event_image}}</a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='width:56.22489959839358%;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item full_date' style='width:auto;clear:none;float:left;height:auto;color:#000000;font-size:16px;line-height:20px;text-transform:uppercase;background:none;padding-left:4px;border-bottom:2px solid black; margin-bottom:15px;'>
|
||||
<div class='ev-data full_date'>
|
||||
{{full_date | time_format | text_before From }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item event_description' style='float:left;clear:none;height:auto;width:98.86363636363636%;'>
|
||||
<div class='ev-data event_description'>
|
||||
<a href='{{event_link}}' class='ch-readmore'> {{event_description | shorten_text 500}}</a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='width:98.93048128342245%;clear:none;float:left;padding:0%;margin:0%;position:relative;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item cont_box' style='width:51.736745886654475%;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item ticket_price' style='width:98.49056603773585%;clear:none;float:left;margin-bottom:7px;'>
|
||||
<div class='ev-data ticket_price'>
|
||||
{{ticket_price | id 1}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item full_time' style=''>
|
||||
<div class='ev-data full_time'>
|
||||
{{full_time | time_format }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_direction' style='clear:none;float:left;height:auto;width:auto;'>
|
||||
<div class='ev-data place_direction'>
|
||||
<a href='{{place_link | id {{place_id | id 0}}}}' class='ch-readmore'> <span class='ch-address-{{place_id | id 0}}'>{{place_direction | id 0 | text_after ,}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_city' style='clear:none;float:left;height:auto;width:auto;padding-left:0px;'>
|
||||
<div class='ev-data place_city'>
|
||||
{{place_city | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_state' style='clear:none;float:left;height:auto;width:auto;padding-left:0px;'>
|
||||
<div class='ev-data place_state'>
|
||||
{{place_state | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_country' style='clear:none;float:left;height:auto;width:auto;padding-left:0px;'>
|
||||
<div class='ev-data place_country'>
|
||||
{{place_country | id 0 }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item share_box' style='color:#fff;'>
|
||||
<div class='ev-data share_box'>
|
||||
{{share_box | defaultchecked 1 | share_fb 1 | share_tw 1 | share_in 1 | share_go 1 | share_pi 1 | share_ics 1}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='width:45.585585585585584%;clear:none;float:none;color:#000000;text-transform:uppercase;text-align:right;bottom:0px;position:absolute;right:0px;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item organizer_name' style='float:none;clear:both;width:99.18367346938776%;color:#000000;text-transform:uppercase;text-align:right;padding-right:0px;margin-bottom:7px;padding-top:15px;'>
|
||||
<div class='ev-data organizer_name'>
|
||||
<a href='{{organizer_link | id {{organizer_id | id 0}}}}' class='ch-readmore'><span class='ch-organizer-{{organizer_id | id 0}}'>{{organizer_name | id 0 | filter the_title | text_before Organized by }}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item ticket_link' style='float:right;clear:none;height:auto;width:auto;color:#ffffff;font-size:18px;line-height:22px;font-weight:bold;text-transform:uppercase;text-align:center;background:black;padding:5px 15px;'>
|
||||
<div class='ev-data ticket_link'>
|
||||
<a href='{{ticket_link | id 1}}' target='_blank'>{{ translate | Buy tickets}}</a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_gmap' style='width:98.23899371069183%;clear:none;float:left;margin-top:25px;'>
|
||||
<div id='gmap{{id}}{{timestamp}}' class='ev-data place_gmap' style='width:100%; height:200px;margin-top:25px;'>
|
||||
{{place_gmap | id 0}}
|
||||
</div>
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item custom_link' style='float:none;clear:none;width:auto;height:auto;color:#ffffff;font-size:36px;line-height:40px;font-weight:bold;text-align:center;text-decoration:none;background-color:#dcddde;padding:0%;padding:0px 10px;padding-bottom:5px;line-height:32px;position:absolute;right:0px;bottom:0px;'>
|
||||
<div class='ev-data custom_link'>
|
||||
<a href="javascript:void(null)" class="ch-readmore" onclick='ev_slide("{{id}}", this)'><span class="ch-more">{{translate | -}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
1
wp-content/plugins/chronosly-templates/dad4/default.php
Normal file
@@ -0,0 +1,290 @@
|
||||
<style id='style'>
|
||||
.ev-{{id}} .ev-item.share_box a {background:black!important;}
|
||||
.ev-{{id}} .ev-item.share_box a {background:black!important;}
|
||||
</style>
|
||||
<div base="default" class="chronosly perfil2 ch-default ch-front ch-dad4 box-featured ev-{{id}} {{size}} ">
|
||||
|
||||
<div class="ev-box normal back_img ch-featured " style="width:auto;clear:none;float:left;background:url(#feat-image) center center no-repeat;margin-left:12px;">
|
||||
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box normal ch-overlay ch-featured " style="width:39.125%;clear:none;float:none;color:#ffffff;background-color:#000000;margin-left:12px;">
|
||||
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box normal ch-info ch-featured " style="clear:none;float:none;height:auto;width:99.5%;color:#ffffff;text-transform:uppercase;left:12px;">
|
||||
|
||||
<div class='ev-item cont_box' style='height:auto;width:36.08660785886127%;clear:none;float:left;max-width:450px;padding-left:25px;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item start_date' style='clear:none;float:left;height:auto;width:auto;font-size:50px;line-height:54px;padding-right:5px;'>
|
||||
<div class='ev-data start_date'>
|
||||
{{start_date | time_format d}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item start_date' style='clear:none;float:left;height:auto;width:auto;font-size:18px;line-height:22px;padding-top:32px'>
|
||||
<div class='ev-data start_date'>
|
||||
{{start_date | time_format M}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item event_title' style='width:auto;clear:both;float:none;height:auto;font-size:20px;line-height:24px;padding-top:0px;'>
|
||||
<div class='ev-data event_title'>
|
||||
<a href='{{event_link}}' class='ch-readmore'>{{event_title}}</a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item categories' style='width:98.91304347826086%;clear:none;float:left;font-size:14px;line-height:18px;padding-top:0px;'>
|
||||
<div class='ev-data categories'>
|
||||
{{categories}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='clear:none;float:left;height:auto;width:98.98348157560356%;background-color:#4b4c4e;position:relative;padding:3px;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item cont_box' style='width:35.8704453441296%;clear:none;float:left;max-width:450px;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item custom_link' style='clear:none;float:none;height:auto;width:auto;color:#4b4c4e;font-size:32px;line-height:36px;background-color:#ffffff;padding:0px 8px;position:absolute;top:0px;right:0px;'>
|
||||
<div class='ev-data custom_link'>
|
||||
<a href="javascript:void(null)" class="ch-readmore" onclick='ev_slide("{{id}}", this)'><span class="ch-more">{{translate | +}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='width:23.3502538071066%;clear:none;float:left;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item full_time' style=''>
|
||||
<div class='ev-data full_time'>
|
||||
{{full_time | time_format }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='width:56.97969543147208%;clear:none;float:left;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item place_direction' style='height:auto;width:auto;clear:none;float:left;padding-right:0px;'>
|
||||
<div class='ev-data place_direction'>
|
||||
<span class='ch-address-{{place_id | id 0}}'>{{place_direction | id 0 | text_after ,}}</span>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_city' style='height:auto;width:auto;clear:none;float:left;padding-right:0px;'>
|
||||
<div class='ev-data place_city'>
|
||||
{{place_city | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_state' style='height:auto;clear:none;float:left;width:auto;padding-right:0px;'>
|
||||
<div class='ev-data place_state'>
|
||||
{{place_state | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_country' style='height:auto;width:auto;'>
|
||||
<div class='ev-data place_country'>
|
||||
{{place_country | id 0 }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='width:3.076923076923077%;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box ch-hidden content2 ch-featured " style="float:none;clear:both;height:auto;width:98%;background-color:#f1f2f2;width:98%;">
|
||||
|
||||
<div class='ev-item cont_box' style='width:89.08163265306122%;clear:both;float:none;background-color:#ffffff;padding:4%;margin:2%;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item featured_image' style='float:right;clear:none;height:auto;width:41.10275689223057%;'>
|
||||
<div class='ev-data featured_image'>
|
||||
<a href='{{event_link}}' class='ch-readmore'>{{event_image}}</a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='width:56.22489959839358%;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item event_title' style='width:99.112426035503%;clear:none;float:left;color:#000000;font-size:20px;line-height:24px;text-transform:uppercase;'>
|
||||
<div class='ev-data event_title'>
|
||||
{{event_title}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item full_date' style='width:auto;clear:none;float:left;height:auto;color:#000000;font-size:16px;line-height:20px;text-transform:uppercase;background:none;padding-left:4px;border-bottom:2px solid black; margin-bottom:15px;'>
|
||||
<div class='ev-data full_date'>
|
||||
{{full_date | time_format | text_before From }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item event_description' style='float:left;clear:none;height:auto;width:98.86363636363636%;'>
|
||||
<div class='ev-data event_description'>
|
||||
<a href='{{event_link}}' class='ch-readmore'> {{event_description | shorten_text 500}}</a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='width:99.02912621359224%;clear:none;float:left;padding:0%;margin:0%;position:relative;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item cont_box' style='width:51.736745886654475%;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item ticket_price' style='width:98.49056603773585%;clear:none;float:left;margin-bottom:7px;'>
|
||||
<div class='ev-data ticket_price'>
|
||||
{{ticket_price | id 1}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item full_time' style=''>
|
||||
<div class='ev-data full_time'>
|
||||
{{full_time | time_format }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_direction' style='clear:none;float:left;height:auto;width:auto;'>
|
||||
<div class='ev-data place_direction'>
|
||||
<a href='{{place_link | id {{place_id | id 0}}}}' class='ch-readmore'> <span class='ch-address-{{place_id | id 0}}'>{{place_direction | id 0 | text_after ,}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_city' style='clear:none;float:left;height:auto;width:auto;padding-left:0px;'>
|
||||
<div class='ev-data place_city'>
|
||||
{{place_city | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_state' style='clear:none;float:left;height:auto;width:auto;padding-left:0px;'>
|
||||
<div class='ev-data place_state'>
|
||||
{{place_state | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_country' style='clear:none;float:left;height:auto;width:auto;padding-left:0px;'>
|
||||
<div class='ev-data place_country'>
|
||||
{{place_country | id 0 }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item share_box' style='color:#fff;'>
|
||||
<div class='ev-data share_box'>
|
||||
{{share_box | defaultchecked 1 | share_fb 1 | share_tw 1 | share_in 1 | share_go 1 | share_pi 1 | share_ics 1}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='width:45.585585585585584%;clear:none;float:none;color:#000000;text-transform:uppercase;text-align:right;bottom:0px;position:absolute;right:0px;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item organizer_name' style='float:none;clear:both;width:99.18367346938776%;color:#000000;text-transform:uppercase;text-align:right;padding-right:0px;margin-bottom:7px;padding-top:15px;'>
|
||||
<div class='ev-data organizer_name'>
|
||||
<a href='{{organizer_link | id {{organizer_id | id 0}}}}' class='ch-readmore'><span class='ch-organizer-{{organizer_id | id 0}}'>{{organizer_name | id 0 | filter the_title | text_before Organized by }}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item ticket_link' style='float:right;clear:none;height:auto;width:auto;color:#ffffff;font-size:18px;line-height:22px;font-weight:bold;text-transform:uppercase;text-align:center;background:black;padding:5px 15px;'>
|
||||
<div class='ev-data ticket_link'>
|
||||
<a href='{{ticket_link | id 1}}' target='_blank'>{{ translate | Buy tickets}}</a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_gmap' style='width:98.23899371069183%;clear:none;float:left;margin-top:25px;'>
|
||||
<div id='gmap{{id}}{{timestamp}}' class='ev-data place_gmap' style='width:100%; height:200px;margin-top:25px;'>
|
||||
{{place_gmap | id 0}}
|
||||
</div>
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item custom_link' style='float:none;clear:none;height:auto;width:auto;color:#ffffff;font-size:36px;line-height:40px;font-weight:bold;text-align:center;text-decoration:none;background-color:#dcddde;padding:0%;padding:0px 10px;padding-bottom:5px;line-height:32px;position:absolute;right:0px;bottom:0px;'>
|
||||
<div class='ev-data custom_link'>
|
||||
<a href="javascript:void(null)" class="ch-readmore" onclick='ev_slide("{{id}}", this)'><span class="ch-more">{{translate | -}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
46
wp-content/plugins/chronosly-templates/dad5/default.html
Normal file
@@ -0,0 +1,46 @@
|
||||
|
||||
<div base="default" class="chronosly perfil2 ch-default ch-front ch-dad5 ev-{{id}} {{size}} ">
|
||||
|
||||
<div class="ev-box both " style="width:98.96640826873386%;clear:none;float:left;margin-bottom:20px;">
|
||||
|
||||
<div class='ev-item start_date' style='height:auto;width:auto;clear:none;float:left;font-size:16px;line-height:20px;color:#cat-color;'>
|
||||
<div class='ev-data start_date'>
|
||||
{{start_date | time_format d/m}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item event_title' style='height:auto;width:81.06734434561626%;clear:none;float:left;font-size:16px;line-height:20px;text-transform:uppercase;color:#cat-color;'>
|
||||
<div class='ev-data event_title'>
|
||||
<a href='{{event_link}}' class='ch-readmore'>{{event_title}}</a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='float:none;clear:both;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item full_time' style='height:auto;width:auto;'>
|
||||
<div class='ev-data full_time'>
|
||||
{{full_time | time_format }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item ticket_price' style='clear:none;float:left;height:auto;width:auto;'>
|
||||
<div class='ev-data ticket_price'>
|
||||
{{ticket_price | id 1}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
1
wp-content/plugins/chronosly-templates/dad5/default.php
Normal file
@@ -0,0 +1,53 @@
|
||||
|
||||
<div base="default" class="chronosly perfil2 ch-default ch-front ch-dad5 box-featured ev-{{id}} {{size}} ">
|
||||
|
||||
<div class="ev-box both ch-featured " style="width:98.9664082687339%;clear:none;float:left;margin-bottom:20px;">
|
||||
|
||||
<div class='ev-item featured_image' style='width:23.6013986013986%;clear:none;float:left;'>
|
||||
<div class='ev-data featured_image'>
|
||||
<a href='{{event_link}}' class='ch-readmore'>{{event_image}}</a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='width:71.66454891994918%;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item start_date' style='clear:none;float:left;height:auto;width:auto;font-size:16px;line-height:20px;color:#cat-color;'>
|
||||
<div class='ev-data start_date'>
|
||||
{{start_date | time_format d/m}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item event_title' style='width:81.29496402877699%;clear:none;float:left;font-size:16px;line-height:20px;text-transform:uppercase;color:#cat-color;'>
|
||||
<div class='ev-data event_title'>
|
||||
<a href='{{event_link}}' class='ch-readmore'>{{event_title}}</a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item full_time' style='height:auto;width:auto;'>
|
||||
<div class='ev-data full_time'>
|
||||
{{full_time | time_format }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item ticket_price' style='clear:none;float:left;height:auto;width:auto;'>
|
||||
<div class='ev-data ticket_price'>
|
||||
{{ticket_price | id 1}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
46
wp-content/plugins/chronosly-templates/dad6/default.html
Normal file
@@ -0,0 +1,46 @@
|
||||
|
||||
<div base="default" class="chronosly perfil2 ch-default ch-front ch-dad6 ev-{{id}} {{size}} ">
|
||||
|
||||
<div class="ev-box both " style="width:98.96640826873386%;clear:none;float:left;margin-bottom:20px;">
|
||||
|
||||
<div class='ev-item start_date' style='height:auto;width:auto;clear:none;float:left;font-size:16px;line-height:20px;color:#cat-color;'>
|
||||
<div class='ev-data start_date'>
|
||||
{{start_date | time_format d/m}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item event_title' style='height:auto;width:81.06734434561626%;clear:none;float:left;font-size:16px;line-height:20px;text-transform:uppercase;color:#cat-color;'>
|
||||
<div class='ev-data event_title'>
|
||||
<a href='{{event_link}}' class='ch-readmore'>{{event_title}}</a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='float:none;clear:both;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item full_time' style='height:auto;width:auto;'>
|
||||
<div class='ev-data full_time'>
|
||||
{{full_time | time_format }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item ticket_price' style='clear:none;float:left;height:auto;width:auto;'>
|
||||
<div class='ev-data ticket_price'>
|
||||
{{ticket_price | id 1}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
1
wp-content/plugins/chronosly-templates/dad6/default.php
Normal file
@@ -0,0 +1,53 @@
|
||||
|
||||
<div base="default" class="chronosly perfil2 ch-default ch-front ch-dad6 box-featured ev-{{id}} {{size}} ">
|
||||
|
||||
<div class="ev-box both ch-featured " style="width:98.9664082687339%;clear:none;float:left;margin-bottom:20px;">
|
||||
|
||||
<div class='ev-item featured_image' style='width:23.6013986013986%;clear:none;float:left;'>
|
||||
<div class='ev-data featured_image'>
|
||||
<a href='{{event_link}}' class='ch-readmore'>{{event_image}}</a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item cont_box' style='width:71.66454891994918%;'>
|
||||
|
||||
<div class='sortable'>
|
||||
|
||||
<div class='ev-item start_date' style='clear:none;float:left;height:auto;width:auto;font-size:16px;line-height:20px;color:#cat-color;'>
|
||||
<div class='ev-data start_date'>
|
||||
{{start_date | time_format d/m}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item event_title' style='width:81.29496402877699%;clear:none;float:left;font-size:16px;line-height:20px;text-transform:uppercase;color:#cat-color;'>
|
||||
<div class='ev-data event_title'>
|
||||
<a href='{{event_link}}' class='ch-readmore'>{{event_title}}</a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item full_time' style='height:auto;width:auto;'>
|
||||
<div class='ev-data full_time'>
|
||||
{{full_time | time_format }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item ticket_price' style='clear:none;float:left;height:auto;width:auto;'>
|
||||
<div class='ev-data ticket_price'>
|
||||
{{ticket_price | id 1}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
86
wp-content/plugins/chronosly-templates/dad7/default.html
Normal file
@@ -0,0 +1,86 @@
|
||||
<style id='style'>
|
||||
.ev-{{id}} .ev-box .ev-item.share_box a {background:#4b4c4e!important;}
|
||||
.ev-{{id}} .ev-box.ch-featured .ev-item.share_box a {background:#dcddde!important;}
|
||||
.ev-{{id}} .ev-box .ev-item.share_box a {background:#4b4c4e!important;}
|
||||
.ev-{{id}} .ev-box.ch-featured .ev-item.share_box a {background:#dcddde!important;}
|
||||
</style>
|
||||
<div base="default" class="chronosly perfil2 ch-default ch-front ch-dad7 ev-{{id}} {{size}} ">
|
||||
|
||||
<div class="ev-box both " style="width:23.5%;clear:none;float:left;padding:0%;">
|
||||
|
||||
<div class='ev-item organizer_logo' style='width:98.93048128342245%;clear:none;float:left;padding:0%;margin:0%;'>
|
||||
<div class='ev-data organizer_logo'>
|
||||
<a href='{{organizer_link | id {{organizer_id | id 0}}}}' class='ch-readmore'><span class='ch-organizer-{{organizer_id | id 0}}'>{{organizer_image | id 0 }}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box both " style="width:75.02153316106805%;float:right;clear:none;color:#ffffff;background-color:#4b4c4e;padding:0%;padding-left:2%;">
|
||||
|
||||
<div class='ev-item organizer_name' style='width:98.97260273972603%;clear:none;float:left;font-size:20px;line-height:24px;text-transform:uppercase;'>
|
||||
<div class='ev-data organizer_name'>
|
||||
<a href='{{organizer_link | id {{organizer_id | id 0}}}}' class='ch-readmore'><span class='ch-organizer-{{organizer_id | id 0}}'>{{organizer_name | id 0 | filter the_title}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box normal " style="width:75%;float:right;clear:none;color:#4b4c4e;background-color:#f1f2f2;padding:2%;">
|
||||
|
||||
<div class='ev-item organizer_description' style='width:97.88732394366197%;clear:none;float:left;'>
|
||||
<div class='ev-data organizer_description'>
|
||||
{{organizer_description | id 0 | filter the_content | shorten_text 400}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item custom_link' style='width:auto;clear:none;float:none;height:auto;color:#ffffff;font-size:32px;line-height:36px;font-weight:bold;text-align:center;text-decoration:none;background-color:#dcddde;padding:0px 8px;position:absolute;bottom:0px;right:0px;'>
|
||||
<div class='ev-data custom_link'>
|
||||
<a href="javascript:void(null)" class="ch-readmore" onclick='ev_slide("{{id}}", this)'><span class="ch-more">{{translate | +}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box ch-hidden " style="width:75%;float:right;clear:none;color:#4b4c4e;background-color:#f1f2f2;padding:2%;">
|
||||
|
||||
<div class='ev-item organizer_description' style='width:97.7112676056338%;clear:none;float:left;'>
|
||||
<div class='ev-data organizer_description'>
|
||||
{{organizer_description | id 0 | filter the_content | shorten_text }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item share_box' style='color:#F1F2F2;'>
|
||||
<div class='ev-data share_box'>
|
||||
{{share_box | share_fb | share_tw | share_in | share_go | share_pi | share_ics }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item events_list' style=''>
|
||||
<div class='ev-data events_list'>
|
||||
{{event_list}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item custom_link' style='width:auto;clear:none;float:none;height:auto;color:#ffffff;font-size:36px;line-height:40px;font-weight:bold;text-align:center;text-decoration:none;background-color:#dcddde;padding:0px 10px;padding-bottom:5px;line-height:32px;position:absolute;right:0px;bottom:0px;'>
|
||||
<div class='ev-data custom_link'>
|
||||
<a href="javascript:void(null)" class="ch-readmore" onclick='ev_slide("{{id}}", this)'><span class="ch-more">{{translate | -}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
1
wp-content/plugins/chronosly-templates/dad7/default.php
Normal file
@@ -0,0 +1,86 @@
|
||||
<style id='style'>
|
||||
.ev-{{id}} .ev-box .ev-item.share_box a {background:#4b4c4e!important;}
|
||||
.ev-{{id}} .ev-box.ch-featured .ev-item.share_box a {background:#dcddde!important;}
|
||||
.ev-{{id}} .ev-box .ev-item.share_box a {background:#4b4c4e!important;}
|
||||
.ev-{{id}} .ev-box.ch-featured .ev-item.share_box a {background:#dcddde!important;}
|
||||
</style>
|
||||
<div base="default" class="chronosly perfil2 ch-default ch-front ch-dad7 box-featured ev-{{id}} {{size}} ">
|
||||
|
||||
<div class="ev-box both ch-featured " style="width:24.031007751938%;clear:none;float:left;padding:0%;margin:0%;">
|
||||
|
||||
<div class='ev-item organizer_logo' style='width:98.95833333333334%;clear:none;float:left;padding:0%;margin:0%;'>
|
||||
<div class='ev-data organizer_logo'>
|
||||
<a href='{{organizer_link | id {{organizer_id | id 0}}}}' class='ch-readmore'><span class='ch-organizer-{{organizer_id | id 0}}'>{{organizer_image | id 0 }}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box both ch-featured " style="width:75.0215331610681%;float:right;clear:none;color:#ffffff;background-color:#dcddde;padding:0%;padding-left:2%;">
|
||||
|
||||
<div class='ev-item organizer_name' style='width:98.97260273972603%;clear:none;float:left;font-size:20px;line-height:24px;text-transform:uppercase;'>
|
||||
<div class='ev-data organizer_name'>
|
||||
<a href='{{organizer_link | id {{organizer_id | id 0}}}}' class='ch-readmore'><span class='ch-organizer-{{organizer_id | id 0}}'>{{organizer_name | id 0 | filter the_title}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box normal ch-featured " style="width:75.0215331610681%;float:right;clear:none;color:#ffffff;background-color:#4b4c4e;padding:2%;">
|
||||
|
||||
<div class='ev-item organizer_description' style='width:97.88732394366197%;clear:none;float:left;'>
|
||||
<div class='ev-data organizer_description'>
|
||||
{{organizer_description | id 0 | filter the_content | shorten_text 400}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item custom_link' style='width:auto;clear:none;float:none;height:auto;color:#ffffff;font-size:32px;line-height:36px;font-weight:bold;text-align:center;text-decoration:none;background-color:#dcddde;padding:0px 8px;position:absolute;bottom:0px;right:0px;'>
|
||||
<div class='ev-data custom_link'>
|
||||
<a href="javascript:void(null)" class="ch-readmore" onclick='ev_slide("{{id}}", this)'><span class="ch-more">{{translate | +}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box ch-hidden ch-featured " style="width:75.0215331610681%;float:right;clear:none;color:#ffffff;background-color:#4b4c4e;padding:2%;">
|
||||
|
||||
<div class='ev-item organizer_description' style='width:97.64150943396226%;clear:none;float:left;'>
|
||||
<div class='ev-data organizer_description'>
|
||||
{{organizer_description | id 0 | filter the_content | shorten_text }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item share_box' style='color:#4b4c4e;'>
|
||||
<div class='ev-data share_box'>
|
||||
{{share_box | share_fb | share_tw | share_in | share_go | share_pi | share_ics }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item events_list' style=''>
|
||||
<div class='ev-data events_list'>
|
||||
{{event_list}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item custom_link' style='width:auto;clear:none;float:none;height:auto;color:#ffffff;font-size:36px;line-height:40px;font-weight:bold;text-align:center;text-decoration:none;background-color:#dcddde;padding:0px 10px;padding-bottom:5px;line-height:32px;position:absolute;right:0px;bottom:0px;'>
|
||||
<div class='ev-data custom_link'>
|
||||
<a href="javascript:void(null)" class="ch-readmore" onclick='ev_slide("{{id}}", this)'><span class="ch-more">{{translate | -}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
79
wp-content/plugins/chronosly-templates/dad8/default.html
Normal file
@@ -0,0 +1,79 @@
|
||||
<style id='style'>
|
||||
.ev-{{id}} .ev-box .ev-item.share_box a {background:#4b4c4e!important;}
|
||||
.ev-{{id}} .ev-box .ev-item.share_box a {background:#4b4c4e!important;}
|
||||
</style>
|
||||
<div base="default" class="chronosly perfil2 ch-default ch-front ch-dad8 ev-{{id}} {{size}} ">
|
||||
|
||||
<div class="ev-box both " style="width:23.5%;clear:none;float:left;padding:0%;">
|
||||
|
||||
<div class='ev-item organizer_logo' style='width:98.90510948905109%;clear:none;float:left;padding:0%;margin:0%;'>
|
||||
<div class='ev-data organizer_logo'>
|
||||
<span class='ch-organizer-{{organizer_id | id 0}}'>{{organizer_image | id 0 }}</span>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box both " style="width:75.02153316106805%;float:right;clear:none;color:#ffffff;background-color:#4b4c4e;padding:0%;padding-left:2%;">
|
||||
|
||||
<div class='ev-item organizer_name' style='width:98.97260273972603%;clear:none;float:left;font-size:20px;line-height:24px;text-transform:uppercase;'>
|
||||
<div class='ev-data organizer_name'>
|
||||
<span class='ch-organizer-{{organizer_id | id 0}}'>{{organizer_name | id 0 | filter the_title}}</span>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box both " style="width:75%;float:right;clear:none;color:#4b4c4e;background-color:#f1f2f2;padding:2%;">
|
||||
|
||||
<div class='ev-item organizer_description' style='width:97.64150943396226%;clear:none;float:left;'>
|
||||
<div class='ev-data organizer_description'>
|
||||
{{organizer_description | id 0 | filter the_content | shorten_text }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item organizer_email' style='width:99.02912621359224%;clear:none;float:left;'>
|
||||
<div class='ev-data organizer_email'>
|
||||
{{organizer_email | id 0 | text_before Mail: }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item organizer_phone' style='width:99.02912621359224%;clear:none;float:left;'>
|
||||
<div class='ev-data organizer_phone'>
|
||||
{{organizer_phone | id 0 | text_before Phone: }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item organizer_web' style='width:98.94366197183099%;clear:none;float:left;'>
|
||||
<div class='ev-data organizer_web'>
|
||||
{{organizer_web | id 0 | text_before Web: }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item share_box' style='color:#F1F2F2;'>
|
||||
<div class='ev-data share_box'>
|
||||
{{share_box | share_fb | share_tw | share_in | share_go | share_pi | share_ics }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item events_list' style=''>
|
||||
<div class='ev-data events_list'>
|
||||
{{event_list}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
1
wp-content/plugins/chronosly-templates/dad8/default.php
Normal file
@@ -0,0 +1,79 @@
|
||||
<style id='style'>
|
||||
.ev-{{id}} .ev-box .ev-item.share_box a {background:#4b4c4e!important;}
|
||||
.ev-{{id}} .ev-box .ev-item.share_box a {background:#4b4c4e!important;}
|
||||
</style>
|
||||
<div base="default" class="chronosly perfil2 ch-default ch-front ch-dad8 box-featured ev-{{id}} {{size}} ">
|
||||
|
||||
<div class="ev-box both " style="width:23.5%;clear:none;float:left;padding:0%;">
|
||||
|
||||
<div class='ev-item organizer_logo' style='width:98.90510948905109%;clear:none;float:left;padding:0%;margin:0%;'>
|
||||
<div class='ev-data organizer_logo'>
|
||||
<span class='ch-organizer-{{organizer_id | id 0}}'>{{organizer_image | id 0 }}</span>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box both " style="width:75.02153316106805%;float:right;clear:none;color:#ffffff;background-color:#4b4c4e;padding:0%;padding-left:2%;">
|
||||
|
||||
<div class='ev-item organizer_name' style='width:98.97260273972603%;clear:none;float:left;font-size:20px;line-height:24px;text-transform:uppercase;'>
|
||||
<div class='ev-data organizer_name'>
|
||||
<span class='ch-organizer-{{organizer_id | id 0}}'>{{organizer_name | id 0 | filter the_title}}</span>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box both " style="width:75%;float:right;clear:none;color:#4b4c4e;background-color:#f1f2f2;padding:2%;">
|
||||
|
||||
<div class='ev-item organizer_description' style='width:97.64150943396226%;clear:none;float:left;'>
|
||||
<div class='ev-data organizer_description'>
|
||||
{{organizer_description | id 0 | filter the_content | shorten_text }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item organizer_email' style='width:99.02912621359224%;clear:none;float:left;'>
|
||||
<div class='ev-data organizer_email'>
|
||||
{{organizer_email | id 0 | text_before Mail: }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item organizer_phone' style='width:99.02912621359224%;clear:none;float:left;'>
|
||||
<div class='ev-data organizer_phone'>
|
||||
{{organizer_phone | id 0 | text_before Phone: }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item organizer_web' style='width:98.94366197183099%;clear:none;float:left;'>
|
||||
<div class='ev-data organizer_web'>
|
||||
{{organizer_web | id 0 | text_before Web: }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item share_box' style='color:#F1F2F2;'>
|
||||
<div class='ev-data share_box'>
|
||||
{{share_box | share_fb | share_tw | share_in | share_go | share_pi | share_ics }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item events_list' style=''>
|
||||
<div class='ev-data events_list'>
|
||||
{{event_list}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
123
wp-content/plugins/chronosly-templates/dad9/default.html
Normal file
@@ -0,0 +1,123 @@
|
||||
<style id='style'>
|
||||
.ev-{{id}} .ev-box .ev-item.share_box a {background:#4b4c4e!important;}
|
||||
.ev-{{id}} .ev-box.ch-featured .ev-item.share_box a {background:#dcddde!important;}
|
||||
.ev-{{id}} .ev-box .ev-item.share_box a {background:#4b4c4e!important;}
|
||||
.ev-{{id}} .ev-box.ch-featured .ev-item.share_box a {background:#dcddde!important;}
|
||||
</style>
|
||||
<div base="default" class="chronosly perfil2 ch-default ch-front ch-dad9 ev-{{id}} {{size}} ">
|
||||
|
||||
<div class="ev-box both " style="float:right;clear:none;height:auto;color:#ffffff;background-color:#4b4c4e;padding:0%;padding-left:2%;">
|
||||
|
||||
<div class='ev-item place_name' style='width:98.96907216494846%;clear:none;float:left;font-size:20px;line-height:24px;text-transform:uppercase;'>
|
||||
<div class='ev-data place_name'>
|
||||
<a href='{{place_link | id {{place_id | id 0}}}}' class='ch-readmore'><span class='ch-place-{{place_id | id 0}}'>{{place_name | id 0 | filter the_title}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box normal " style="float:right;clear:none;height:auto;color:#4b4c4e;background-color:#f1f2f2;padding:2%;">
|
||||
|
||||
<div class='ev-item custom_link' style='width:auto;clear:none;float:none;height:auto;color:#ffffff;font-size:32px;line-height:36px;font-weight:bold;text-align:center;text-decoration:none;background-color:#dcddde;padding:0px 8px;position:absolute;bottom:0px;right:0px;'>
|
||||
<div class='ev-data custom_link'>
|
||||
<a href="javascript:void(null)" class="ch-readmore" onclick='ev_slide("{{id}}", this)'><span class="ch-more">{{translate | +}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_direction' style='height:auto;width:auto;clear:none;float:left;'>
|
||||
<div class='ev-data place_direction'>
|
||||
<span class='ch-address-{{place_id | id 0}}'>{{place_direction | id 0 | text_after ,}}</span>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_city' style='height:auto;width:auto;clear:none;float:left;padding-left:0px;'>
|
||||
<div class='ev-data place_city'>
|
||||
{{place_city | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_state' style='height:auto;width:auto;clear:none;float:left;padding-left:0px;'>
|
||||
<div class='ev-data place_state'>
|
||||
{{place_state | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_country' style='height:auto;width:auto;clear:none;float:left;padding-left:0px;'>
|
||||
<div class='ev-data place_country'>
|
||||
{{place_country | id 0 }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box ch-hidden " style="float:right;clear:none;height:auto;color:#4b4c4e;background-color:#f1f2f2;padding:2%;">
|
||||
|
||||
<div class='ev-item place_description' style=''>
|
||||
<div class='ev-data place_description'>
|
||||
{{place_description | id 0 | filter the_content | shorten_text }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item share_box' style='color:#F1F2F2;'>
|
||||
<div class='ev-data share_box'>
|
||||
{{share_box | defaultchecked 1 | share_fb 1 | share_tw 1 | share_in 1 | share_go 1 | share_pi 1 | share_ics 1}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item events_list' style=''>
|
||||
<div class='ev-data events_list'>
|
||||
{{event_list}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_direction' style='clear:none;float:left;height:auto;width:auto;'>
|
||||
<div class='ev-data place_direction'>
|
||||
<a href='{{place_link | id {{place_id | id 0}}}}' class='ch-readmore'> <span class='ch-address-{{place_id | id 0}}'>{{place_direction | id 0 | text_after ,}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_city' style='clear:none;float:left;height:auto;width:auto;padding-left:0px;'>
|
||||
<div class='ev-data place_city'>
|
||||
{{place_city | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_state' style='clear:none;float:left;height:auto;width:auto;padding-left:0px;'>
|
||||
<div class='ev-data place_state'>
|
||||
{{place_state | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_country' style='clear:none;float:left;height:auto;width:auto;padding-left:0px;'>
|
||||
<div class='ev-data place_country'>
|
||||
{{place_country | id 0 }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item custom_link' style='width:auto;clear:none;float:none;height:auto;color:#ffffff;font-size:32px;line-height:36px;font-weight:bold;text-align:center;text-decoration:none;background-color:#dcddde;padding:0px 10px;padding-bottom:5px;line-height:32px;position:absolute;right:0px;bottom:0px;'>
|
||||
<div class='ev-data custom_link'>
|
||||
<a href="javascript:void(null)" class="ch-readmore" onclick='ev_slide("{{id}}", this)'><span class="ch-more">{{translate | -}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
1
wp-content/plugins/chronosly-templates/dad9/default.php
Normal file
@@ -0,0 +1,139 @@
|
||||
<style id='style'>
|
||||
.ev-{{id}} .ev-box .ev-item.share_box a {background:#4b4c4e!important;}
|
||||
.ev-{{id}} .ev-box.ch-featured .ev-item.share_box a {background:#dcddde!important;}
|
||||
.ev-{{id}} .ev-box .ev-item.share_box a {background:#4b4c4e!important;}
|
||||
.ev-{{id}} .ev-box.ch-featured .ev-item.share_box a {background:#dcddde!important;}
|
||||
</style>
|
||||
<div base="default" class="chronosly perfil2 ch-default ch-front ch-dad9 box-featured ev-{{id}} {{size}} ">
|
||||
|
||||
<div class="ev-box both back_img ch-featured " style="height:auto;clear:none;float:left;padding:0%;">
|
||||
|
||||
<div class='ev-item place_gmap' style='clear:none;float:left;height:auto;padding:0%;'>
|
||||
<div id='gmap{{id}}{{timestamp}}' class='ev-data place_gmap' style='width:100%; height:200px;padding:0%;'>
|
||||
{{place_gmap | id 0}}
|
||||
</div>
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box both ch-overlay ch-featured " style="width:36.875%;clear:none;float:none;color:#ffffff;background-color:#000000;">
|
||||
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box both ch-info ch-featured " style="clear:none;float:none;height:auto;width:36.75%;color:#ffffff;text-transform:uppercase;padding-bottom:20px;">
|
||||
|
||||
<div class='ev-item place_name' style='clear:none;float:none;height:auto;width:102.42214532871972%;color:#ffffff;font-size:20px;line-height:24px;text-transform:uppercase;'>
|
||||
<div class='ev-data place_name'>
|
||||
<a href='{{place_link | id {{place_id | id 0}}}}' class='ch-readmore'><span class='ch-place-{{place_id | id 0}}'>{{place_name | id 0 | filter the_title}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box normal ch-featured " style="float:left;clear:none;height:auto;width:99%;color:#ffffff;background-color:#4b4c4e;padding:0%;margin:0px;margin-top:-20px;padding:9px 2%;">
|
||||
|
||||
<div class='ev-item custom_link' style='width:auto;clear:none;float:none;height:auto;color:#ffffff;font-size:32px;line-height:36px;font-weight:bold;text-align:center;text-decoration:none;background-color:#dcddde;padding:0px 8px;position:absolute;top:0px;right:0px;'>
|
||||
<div class='ev-data custom_link'>
|
||||
<a href="javascript:void(null)" class="ch-readmore" onclick='ev_slide("{{id}}", this)'><span class="ch-more">{{translate | +}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_direction' style='width:auto;clear:none;float:left;height:auto;'>
|
||||
<div class='ev-data place_direction'>
|
||||
<a href='{{place_link | id {{place_id | id 0}}}}' class='ch-readmore'> <span class='ch-address-{{place_id | id 0}}'>{{place_direction | id 0 | text_after ,}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_city' style='width:auto;clear:none;float:left;height:auto;padding-left:0px;'>
|
||||
<div class='ev-data place_city'>
|
||||
{{place_city | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_state' style='width:auto;clear:none;float:left;height:auto;padding-left:0px;'>
|
||||
<div class='ev-data place_state'>
|
||||
{{place_state | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_country' style='width:auto;clear:none;float:left;height:auto;padding-left:0px;'>
|
||||
<div class='ev-data place_country'>
|
||||
{{place_country | id 0 }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="ev-box ch-hidden ch-featured " style="float:left;clear:none;height:auto;width:99%;color:#ffffff;background-color:#4b4c4e;padding:2%;margin:0px;margin-top:-20px;">
|
||||
|
||||
<div class='ev-item place_description' style=''>
|
||||
<div class='ev-data place_description'>
|
||||
{{place_description | id 0 | filter the_content | shorten_text }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item share_box' style='color:#4b4c4e;'>
|
||||
<div class='ev-data share_box'>
|
||||
{{share_box | defaultchecked 1 | share_fb 1 | share_tw 1 | share_in 1 | share_go 1 | share_pi 1 | share_ics 1}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item events_list' style=''>
|
||||
<div class='ev-data events_list'>
|
||||
{{event_list}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_direction' style='clear:none;float:left;height:auto;width:auto;'>
|
||||
<div class='ev-data place_direction'>
|
||||
<span class='ch-address-{{place_id | id 0}}'>{{place_direction | id 0 | text_after ,}}</span>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_city' style='clear:none;float:left;height:auto;width:auto;padding-left:0px;'>
|
||||
<div class='ev-data place_city'>
|
||||
{{place_city | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_state' style='clear:none;float:left;height:auto;width:auto;padding-left:0px;'>
|
||||
<div class='ev-data place_state'>
|
||||
{{place_state | id 0 | text_after ,}}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item place_country' style='clear:none;float:left;height:auto;width:auto;padding-left:0px;'>
|
||||
<div class='ev-data place_country'>
|
||||
{{place_country | id 0 }}
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class='ev-item custom_link' style='width:auto;clear:none;float:none;height:auto;color:#ffffff;font-size:36px;line-height:40px;font-weight:bold;text-align:center;text-decoration:none;background-color:#dcddde;padding:0px 10px;padding-bottom:5px;line-height:32px;position:absolute;right:0px;bottom:0px;'>
|
||||
<div class='ev-data custom_link'>
|
||||
<a href="javascript:void(null)" class="ch-readmore" onclick='ev_slide("{{id}}", this)'><span class="ch-more">{{translate | -}}</span></a>
|
||||
</div>
|
||||
|
||||
<div class='ch-clear'></div>
|
||||
</div>
|
||||
<div class="ch-clear"></div>
|
||||
</div>
|
||||
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
1
wp-content/plugins/chronosly-templates/default.json
Normal file
@@ -0,0 +1 @@
|
||||
{"id": "default", "name":"Default template", "version": "1.0", "addons_version":{"social_media_share":"1.4"}}
|
||||
400
wp-content/plugins/classic-editor/LICENSE.md
Normal file
@@ -0,0 +1,400 @@
|
||||
### WordPress - Web publishing software
|
||||
|
||||
Copyright 2011-2019 by the contributors
|
||||
|
||||
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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
This program incorporates work covered by the following copyright and
|
||||
permission notices:
|
||||
|
||||
b2 is (c) 2001, 2002 Michel Valdrighi - m@tidakada.com -
|
||||
http://tidakada.com
|
||||
|
||||
Wherever third party code has been used, credit has been given in the code's
|
||||
comments.
|
||||
|
||||
b2 is released under the GPL
|
||||
|
||||
and
|
||||
|
||||
WordPress - Web publishing software
|
||||
|
||||
Copyright 2003-2010 by the contributors
|
||||
|
||||
WordPress is released under the GPL
|
||||
|
||||
---
|
||||
|
||||
### GNU GENERAL PUBLIC LICENSE
|
||||
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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 Lesser 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.
|
||||
|
||||
### 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 an idea of what it does.
|
||||
Copyright (C) yyyy 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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 Lesser General Public
|
||||
License](http://www.gnu.org/licenses/lgpl.html) instead of this
|
||||
License.
|
||||
941
wp-content/plugins/classic-editor/classic-editor.php
Normal file
@@ -0,0 +1,941 @@
|
||||
<?php
|
||||
/**
|
||||
* Classic Editor
|
||||
*
|
||||
* Plugin Name: Classic Editor
|
||||
* Plugin URI: https://wordpress.org/plugins/classic-editor/
|
||||
* Description: Enables the WordPress classic editor and the old-style Edit Post screen with TinyMCE, Meta Boxes, etc. Supports the older plugins that extend this screen.
|
||||
* Version: 1.5
|
||||
* Author: WordPress Contributors
|
||||
* Author URI: https://github.com/WordPress/classic-editor/
|
||||
* License: GPLv2 or later
|
||||
* License URI: http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
* Text Domain: classic-editor
|
||||
* Domain Path: /languages
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it under the terms of the GNU
|
||||
* General Public License version 2, as published by the Free Software Foundation. You may NOT assume
|
||||
* that you can use any other version of the GPL.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
die( 'Invalid request.' );
|
||||
}
|
||||
|
||||
if ( ! class_exists( 'Classic_Editor' ) ) :
|
||||
class Classic_Editor {
|
||||
private static $settings;
|
||||
private static $supported_post_types = array();
|
||||
|
||||
private function __construct() {}
|
||||
|
||||
public static function init_actions() {
|
||||
$block_editor = has_action( 'enqueue_block_assets' );
|
||||
$gutenberg = function_exists( 'gutenberg_register_scripts_and_styles' );
|
||||
|
||||
register_activation_hook( __FILE__, array( __CLASS__, 'activate' ) );
|
||||
register_uninstall_hook( __FILE__, array( __CLASS__, 'uninstall' ) );
|
||||
|
||||
$settings = self::get_settings();
|
||||
|
||||
if ( is_multisite() ) {
|
||||
add_action( 'wpmu_options', array( __CLASS__, 'network_settings' ) );
|
||||
add_action( 'update_wpmu_options', array( __CLASS__, 'save_network_settings' ) );
|
||||
}
|
||||
|
||||
if ( ! $settings['hide-settings-ui'] ) {
|
||||
// Add a link to the plugin's settings and/or network admin settings in the plugins list table.
|
||||
add_filter( 'plugin_action_links', array( __CLASS__, 'add_settings_link' ), 10, 2 );
|
||||
add_filter( 'network_admin_plugin_action_links', array( __CLASS__, 'add_settings_link' ), 10, 2 );
|
||||
|
||||
add_action( 'admin_init', array( __CLASS__, 'register_settings' ) );
|
||||
|
||||
if ( $settings['allow-users'] ) {
|
||||
// User settings.
|
||||
add_action( 'personal_options_update', array( __CLASS__, 'save_user_settings' ) );
|
||||
add_action( 'profile_personal_options', array( __CLASS__, 'user_settings' ) );
|
||||
}
|
||||
}
|
||||
|
||||
// Always remove the "Try Gutenberg" dashboard widget. See https://core.trac.wordpress.org/ticket/44635.
|
||||
remove_action( 'try_gutenberg_panel', 'wp_try_gutenberg_panel' );
|
||||
|
||||
if ( ! $block_editor && ! $gutenberg ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( $settings['allow-users'] ) {
|
||||
// Also used in Gutenberg.
|
||||
add_filter( 'use_block_editor_for_post', array( __CLASS__, 'choose_editor' ), 100, 2 );
|
||||
|
||||
if ( $gutenberg ) {
|
||||
// Support older Gutenberg versions.
|
||||
add_filter( 'gutenberg_can_edit_post', array( __CLASS__, 'choose_editor' ), 100, 2 );
|
||||
|
||||
if ( $settings['editor'] === 'classic' ) {
|
||||
self::remove_gutenberg_hooks( 'some' );
|
||||
}
|
||||
}
|
||||
|
||||
add_filter( 'get_edit_post_link', array( __CLASS__, 'get_edit_post_link' ) );
|
||||
add_filter( 'redirect_post_location', array( __CLASS__, 'redirect_location' ) );
|
||||
add_action( 'edit_form_top', array( __CLASS__, 'add_redirect_helper' ) );
|
||||
add_action( 'admin_head-edit.php', array( __CLASS__, 'add_edit_php_inline_style' ) );
|
||||
|
||||
add_action( 'edit_form_top', array( __CLASS__, 'remember_classic_editor' ) );
|
||||
add_filter( 'block_editor_settings', array( __CLASS__, 'remember_block_editor' ), 10, 2 );
|
||||
|
||||
// Post state (edit.php)
|
||||
add_filter( 'display_post_states', array( __CLASS__, 'add_post_state' ), 10, 2 );
|
||||
// Row actions (edit.php)
|
||||
add_filter( 'page_row_actions', array( __CLASS__, 'add_edit_links' ), 15, 2 );
|
||||
add_filter( 'post_row_actions', array( __CLASS__, 'add_edit_links' ), 15, 2 );
|
||||
|
||||
// Switch editors while editing a post
|
||||
add_action( 'add_meta_boxes', array( __CLASS__, 'add_meta_box' ), 10, 2 );
|
||||
add_action( 'enqueue_block_editor_assets', array( __CLASS__, 'enqueue_block_editor_scripts' ) );
|
||||
} else {
|
||||
if ( $settings['editor'] === 'classic' ) {
|
||||
// Also used in Gutenberg.
|
||||
// Consider disabling other Block Editor functionality.
|
||||
add_filter( 'use_block_editor_for_post_type', '__return_false', 100 );
|
||||
|
||||
if ( $gutenberg ) {
|
||||
// Support older Gutenberg versions.
|
||||
add_filter( 'gutenberg_can_edit_post_type', '__return_false', 100 );
|
||||
self::remove_gutenberg_hooks();
|
||||
}
|
||||
} else {
|
||||
// `$settings['editor'] === 'block'`, nothing to do :)
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if ( $block_editor ) {
|
||||
// Move the Privacy Page notice back under the title.
|
||||
add_action( 'admin_init', array( __CLASS__, 'on_admin_init' ) );
|
||||
}
|
||||
if ( $gutenberg ) {
|
||||
// These are handled by this plugin. All are older, not used in 5.3+.
|
||||
remove_action( 'admin_init', 'gutenberg_add_edit_link_filters' );
|
||||
remove_action( 'admin_print_scripts-edit.php', 'gutenberg_replace_default_add_new_button' );
|
||||
remove_filter( 'redirect_post_location', 'gutenberg_redirect_to_classic_editor_when_saving_posts' );
|
||||
remove_filter( 'display_post_states', 'gutenberg_add_gutenberg_post_state' );
|
||||
remove_action( 'edit_form_top', 'gutenberg_remember_classic_editor_when_saving_posts' );
|
||||
}
|
||||
}
|
||||
|
||||
public static function remove_gutenberg_hooks( $remove = 'all' ) {
|
||||
remove_action( 'admin_menu', 'gutenberg_menu' );
|
||||
remove_action( 'admin_init', 'gutenberg_redirect_demo' );
|
||||
|
||||
if ( $remove !== 'all' ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Gutenberg 5.3+
|
||||
remove_action( 'wp_enqueue_scripts', 'gutenberg_register_scripts_and_styles' );
|
||||
remove_action( 'admin_enqueue_scripts', 'gutenberg_register_scripts_and_styles' );
|
||||
remove_action( 'admin_notices', 'gutenberg_wordpress_version_notice' );
|
||||
remove_action( 'rest_api_init', 'gutenberg_register_rest_widget_updater_routes' );
|
||||
remove_action( 'admin_print_styles', 'gutenberg_block_editor_admin_print_styles' );
|
||||
remove_action( 'admin_print_scripts', 'gutenberg_block_editor_admin_print_scripts' );
|
||||
remove_action( 'admin_print_footer_scripts', 'gutenberg_block_editor_admin_print_footer_scripts' );
|
||||
remove_action( 'admin_footer', 'gutenberg_block_editor_admin_footer' );
|
||||
remove_action( 'admin_enqueue_scripts', 'gutenberg_widgets_init' );
|
||||
remove_action( 'admin_notices', 'gutenberg_build_files_notice' );
|
||||
|
||||
remove_filter( 'load_script_translation_file', 'gutenberg_override_translation_file' );
|
||||
remove_filter( 'block_editor_settings', 'gutenberg_extend_block_editor_styles' );
|
||||
remove_filter( 'default_content', 'gutenberg_default_demo_content' );
|
||||
remove_filter( 'default_title', 'gutenberg_default_demo_title' );
|
||||
remove_filter( 'block_editor_settings', 'gutenberg_legacy_widget_settings' );
|
||||
remove_filter( 'rest_request_after_callbacks', 'gutenberg_filter_oembed_result' );
|
||||
|
||||
// Previously used, compat for older Gutenberg versions.
|
||||
remove_filter( 'wp_refresh_nonces', 'gutenberg_add_rest_nonce_to_heartbeat_response_headers' );
|
||||
remove_filter( 'get_edit_post_link', 'gutenberg_revisions_link_to_editor' );
|
||||
remove_filter( 'wp_prepare_revision_for_js', 'gutenberg_revisions_restore' );
|
||||
|
||||
remove_action( 'rest_api_init', 'gutenberg_register_rest_routes' );
|
||||
remove_action( 'rest_api_init', 'gutenberg_add_taxonomy_visibility_field' );
|
||||
remove_filter( 'registered_post_type', 'gutenberg_register_post_prepare_functions' );
|
||||
|
||||
remove_action( 'do_meta_boxes', 'gutenberg_meta_box_save' );
|
||||
remove_action( 'submitpost_box', 'gutenberg_intercept_meta_box_render' );
|
||||
remove_action( 'submitpage_box', 'gutenberg_intercept_meta_box_render' );
|
||||
remove_action( 'edit_page_form', 'gutenberg_intercept_meta_box_render' );
|
||||
remove_action( 'edit_form_advanced', 'gutenberg_intercept_meta_box_render' );
|
||||
remove_filter( 'redirect_post_location', 'gutenberg_meta_box_save_redirect' );
|
||||
remove_filter( 'filter_gutenberg_meta_boxes', 'gutenberg_filter_meta_boxes' );
|
||||
|
||||
remove_filter( 'body_class', 'gutenberg_add_responsive_body_class' );
|
||||
remove_filter( 'admin_url', 'gutenberg_modify_add_new_button_url' ); // old
|
||||
remove_action( 'admin_enqueue_scripts', 'gutenberg_check_if_classic_needs_warning_about_blocks' );
|
||||
remove_filter( 'register_post_type_args', 'gutenberg_filter_post_type_labels' );
|
||||
|
||||
// Keep
|
||||
// remove_filter( 'wp_kses_allowed_html', 'gutenberg_kses_allowedtags', 10, 2 ); // not needed in 5.0
|
||||
// remove_filter( 'bulk_actions-edit-wp_block', 'gutenberg_block_bulk_actions' );
|
||||
// remove_filter( 'wp_insert_post_data', 'gutenberg_remove_wpcom_markdown_support' );
|
||||
// remove_filter( 'the_content', 'do_blocks', 9 );
|
||||
// remove_action( 'init', 'gutenberg_register_post_types' );
|
||||
|
||||
// Continue to manage wpautop for posts that were edited in Gutenberg.
|
||||
// remove_filter( 'wp_editor_settings', 'gutenberg_disable_editor_settings_wpautop' );
|
||||
// remove_filter( 'the_content', 'gutenberg_wpautop', 8 );
|
||||
|
||||
}
|
||||
|
||||
private static function get_settings( $refresh = 'no' ) {
|
||||
/**
|
||||
* Can be used to override the plugin's settings. Always hides the settings UI when used (as users cannot change the settings).
|
||||
*
|
||||
* Has to return an associative array with two keys.
|
||||
* The defaults are:
|
||||
* 'editor' => 'classic', // Accepted values: 'classic', 'block'.
|
||||
* 'allow-users' => false,
|
||||
*
|
||||
* @param boolean To override the settings return an array with the above keys.
|
||||
*/
|
||||
$settings = apply_filters( 'classic_editor_plugin_settings', false );
|
||||
|
||||
if ( is_array( $settings ) ) {
|
||||
return array(
|
||||
'editor' => ( isset( $settings['editor'] ) && $settings['editor'] === 'block' ) ? 'block' : 'classic',
|
||||
'allow-users' => ! empty( $settings['allow-users'] ),
|
||||
'hide-settings-ui' => true,
|
||||
);
|
||||
}
|
||||
|
||||
if ( ! empty( self::$settings ) && $refresh === 'no' ) {
|
||||
return self::$settings;
|
||||
}
|
||||
|
||||
if ( is_multisite() ) {
|
||||
$defaults = array(
|
||||
'editor' => get_network_option( null, 'classic-editor-replace' ) === 'block' ? 'block' : 'classic',
|
||||
'allow-users' => false,
|
||||
);
|
||||
|
||||
/**
|
||||
* Filters the default network options.
|
||||
*
|
||||
* @param array $defaults The default options array. See `classic_editor_plugin_settings` for supported keys and values.
|
||||
*/
|
||||
$defaults = apply_filters( 'classic_editor_network_default_settings', $defaults );
|
||||
|
||||
if ( get_network_option( null, 'classic-editor-allow-sites' ) !== 'allow' ) {
|
||||
// Per-site settings are disabled. Return default network options nad hide the settings UI.
|
||||
$defaults['hide-settings-ui'] = true;
|
||||
return $defaults;
|
||||
}
|
||||
|
||||
// Override with the site options.
|
||||
$editor_option = get_option( 'classic-editor-replace' );
|
||||
$allow_users_option = get_option( 'classic-editor-allow-users' );
|
||||
|
||||
if ( $editor_option ) {
|
||||
$defaults['editor'] = $editor_option;
|
||||
}
|
||||
if ( $allow_users_option ) {
|
||||
$defaults['allow-users'] = ( $allow_users_option === 'allow' );
|
||||
}
|
||||
|
||||
$editor = ( isset( $defaults['editor'] ) && $defaults['editor'] === 'block' ) ? 'block' : 'classic';
|
||||
$allow_users = ! empty( $defaults['allow-users'] );
|
||||
} else {
|
||||
$allow_users = ( get_option( 'classic-editor-allow-users' ) === 'allow' );
|
||||
$option = get_option( 'classic-editor-replace' );
|
||||
|
||||
// Normalize old options.
|
||||
if ( $option === 'block' || $option === 'no-replace' ) {
|
||||
$editor = 'block';
|
||||
} else {
|
||||
// empty( $option ) || $option === 'classic' || $option === 'replace'.
|
||||
$editor = 'classic';
|
||||
}
|
||||
}
|
||||
|
||||
// Override the defaults with the user options.
|
||||
if ( ( ! isset( $GLOBALS['pagenow'] ) || $GLOBALS['pagenow'] !== 'options-writing.php' ) && $allow_users ) {
|
||||
$user_options = get_user_option( 'classic-editor-settings' );
|
||||
|
||||
if ( $user_options === 'block' || $user_options === 'classic' ) {
|
||||
$editor = $user_options;
|
||||
}
|
||||
}
|
||||
|
||||
self::$settings = array(
|
||||
'editor' => $editor,
|
||||
'hide-settings-ui' => false,
|
||||
'allow-users' => $allow_users,
|
||||
);
|
||||
|
||||
return self::$settings;
|
||||
}
|
||||
|
||||
private static function is_classic( $post_id = 0 ) {
|
||||
if ( ! $post_id ) {
|
||||
$post_id = self::get_edited_post_id();
|
||||
}
|
||||
|
||||
if ( $post_id ) {
|
||||
$settings = self::get_settings();
|
||||
|
||||
if ( $settings['allow-users'] && ! isset( $_GET['classic-editor__forget'] ) ) {
|
||||
$which = get_post_meta( $post_id, 'classic-editor-remember', true );
|
||||
|
||||
if ( $which ) {
|
||||
// The editor choice will be "remembered" when the post is opened in either Classic or Block editor.
|
||||
if ( 'classic-editor' === $which ) {
|
||||
return true;
|
||||
} elseif ( 'block-editor' === $which ) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return ( ! self::has_blocks( $post_id ) );
|
||||
}
|
||||
}
|
||||
|
||||
if ( isset( $_GET['classic-editor'] ) ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the edited post ID (early) when loading the Edit Post screen.
|
||||
*/
|
||||
private static function get_edited_post_id() {
|
||||
if (
|
||||
! empty( $_GET['post'] ) &&
|
||||
! empty( $_GET['action'] ) &&
|
||||
$_GET['action'] === 'edit' &&
|
||||
! empty( $GLOBALS['pagenow'] ) &&
|
||||
$GLOBALS['pagenow'] === 'post.php'
|
||||
) {
|
||||
return (int) $_GET['post']; // post_ID
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static function register_settings() {
|
||||
// Add an option to Settings -> Writing
|
||||
register_setting( 'writing', 'classic-editor-replace', array(
|
||||
'sanitize_callback' => array( __CLASS__, 'validate_option_editor' ),
|
||||
) );
|
||||
|
||||
register_setting( 'writing', 'classic-editor-allow-users', array(
|
||||
'sanitize_callback' => array( __CLASS__, 'validate_option_allow_users' ),
|
||||
) );
|
||||
|
||||
add_option_whitelist( array(
|
||||
'writing' => array( 'classic-editor-replace', 'classic-editor-allow-users' ),
|
||||
) );
|
||||
|
||||
$heading_1 = __( 'Default editor for all users', 'classic-editor' );
|
||||
$heading_2 = __( 'Allow users to switch editors', 'classic-editor' );
|
||||
|
||||
add_settings_field( 'classic-editor-1', $heading_1, array( __CLASS__, 'settings_1' ), 'writing' );
|
||||
add_settings_field( 'classic-editor-2', $heading_2, array( __CLASS__, 'settings_2' ), 'writing' );
|
||||
}
|
||||
|
||||
public static function save_user_settings( $user_id ) {
|
||||
if (
|
||||
isset( $_POST['classic-editor-user-settings'] ) &&
|
||||
isset( $_POST['classic-editor-replace'] ) &&
|
||||
wp_verify_nonce( $_POST['classic-editor-user-settings'], 'allow-user-settings' )
|
||||
) {
|
||||
$user_id = (int) $user_id;
|
||||
|
||||
if ( $user_id !== get_current_user_id() && ! current_user_can( 'edit_user', $user_id ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$editor = self::validate_option_editor( $_POST['classic-editor-replace'] );
|
||||
update_user_option( $user_id, 'classic-editor-settings', $editor );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate
|
||||
*/
|
||||
public static function validate_option_editor( $value ) {
|
||||
if ( $value === 'block' ) {
|
||||
return 'block';
|
||||
}
|
||||
|
||||
return 'classic';
|
||||
}
|
||||
|
||||
public static function validate_option_allow_users( $value ) {
|
||||
if ( $value === 'allow' ) {
|
||||
return 'allow';
|
||||
}
|
||||
|
||||
return 'disallow';
|
||||
}
|
||||
|
||||
public static function settings_1() {
|
||||
$settings = self::get_settings( 'refresh' );
|
||||
|
||||
?>
|
||||
<div class="classic-editor-options">
|
||||
<p>
|
||||
<input type="radio" name="classic-editor-replace" id="classic-editor-classic" value="classic"<?php if ( $settings['editor'] === 'classic' ) echo ' checked'; ?> />
|
||||
<label for="classic-editor-classic"><?php _ex( 'Classic Editor', 'Editor Name', 'classic-editor' ); ?></label>
|
||||
</p>
|
||||
<p>
|
||||
<input type="radio" name="classic-editor-replace" id="classic-editor-block" value="block"<?php if ( $settings['editor'] !== 'classic' ) echo ' checked'; ?> />
|
||||
<label for="classic-editor-block"><?php _ex( 'Block Editor', 'Editor Name', 'classic-editor' ); ?></label>
|
||||
</p>
|
||||
</div>
|
||||
<script>
|
||||
jQuery( 'document' ).ready( function( $ ) {
|
||||
if ( window.location.hash === '#classic-editor-options' ) {
|
||||
$( '.classic-editor-options' ).closest( 'td' ).addClass( 'highlight' );
|
||||
}
|
||||
} );
|
||||
</script>
|
||||
<?php
|
||||
}
|
||||
|
||||
public static function settings_2() {
|
||||
$settings = self::get_settings( 'refresh' );
|
||||
|
||||
?>
|
||||
<div class="classic-editor-options">
|
||||
<p>
|
||||
<input type="radio" name="classic-editor-allow-users" id="classic-editor-allow" value="allow"<?php if ( $settings['allow-users'] ) echo ' checked'; ?> />
|
||||
<label for="classic-editor-allow"><?php _e( 'Yes', 'classic-editor' ); ?></label>
|
||||
</p>
|
||||
<p>
|
||||
<input type="radio" name="classic-editor-allow-users" id="classic-editor-disallow" value="disallow"<?php if ( ! $settings['allow-users'] ) echo ' checked'; ?> />
|
||||
<label for="classic-editor-disallow"><?php _e( 'No', 'classic-editor' ); ?></label>
|
||||
</p>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
|
||||
/**
|
||||
* Shown on the Profile page when allowed by admin.
|
||||
*/
|
||||
public static function user_settings() {
|
||||
global $user_can_edit;
|
||||
$settings = self::get_settings( 'update' );
|
||||
|
||||
if (
|
||||
! defined( 'IS_PROFILE_PAGE' ) ||
|
||||
! IS_PROFILE_PAGE ||
|
||||
! $user_can_edit ||
|
||||
! $settings['allow-users']
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
?>
|
||||
<table class="form-table">
|
||||
<tr class="classic-editor-user-options">
|
||||
<th scope="row"><?php _e( 'Default Editor', 'classic-editor' ); ?></th>
|
||||
<td>
|
||||
<?php wp_nonce_field( 'allow-user-settings', 'classic-editor-user-settings' ); ?>
|
||||
<?php self::settings_1(); ?>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<script>jQuery( 'tr.user-rich-editing-wrap' ).before( jQuery( 'tr.classic-editor-user-options' ) );</script>
|
||||
<?php
|
||||
}
|
||||
|
||||
public static function network_settings() {
|
||||
$editor = get_network_option( null, 'classic-editor-replace' );
|
||||
$is_checked = ( get_network_option( null, 'classic-editor-allow-sites' ) === 'allow' );
|
||||
|
||||
?>
|
||||
<h2 id="classic-editor-options"><?php _e( 'Editor Settings', 'classic-editor' ); ?></h2>
|
||||
<table class="form-table">
|
||||
<?php wp_nonce_field( 'allow-site-admin-settings', 'classic-editor-network-settings' ); ?>
|
||||
<tr>
|
||||
<th scope="row"><?php _e( 'Default editor for all sites', 'classic-editor' ); ?></th>
|
||||
<td>
|
||||
<p>
|
||||
<input type="radio" name="classic-editor-replace" id="classic-editor-classic" value="classic"<?php if ( $editor !== 'block' ) echo ' checked'; ?> />
|
||||
<label for="classic-editor-classic"><?php _ex( 'Classic Editor', 'Editor Name', 'classic-editor' ); ?></label>
|
||||
</p>
|
||||
<p>
|
||||
<input type="radio" name="classic-editor-replace" id="classic-editor-block" value="block"<?php if ( $editor === 'block' ) echo ' checked'; ?> />
|
||||
<label for="classic-editor-block"><?php _ex( 'Block Editor', 'Editor Name', 'classic-editor' ); ?></label>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><?php _e( 'Change settings', 'classic-editor' ); ?></th>
|
||||
<td>
|
||||
<input type="checkbox" name="classic-editor-allow-sites" id="classic-editor-allow-sites" value="allow"<?php if ( $is_checked ) echo ' checked'; ?>>
|
||||
<label for="classic-editor-allow-sites"><?php _e( 'Allow site admins to change settings', 'classic-editor' ); ?></label>
|
||||
<p class="description"><?php _e( 'By default the Block Editor is replaced with the Classic Editor and users cannot switch editors.', 'classic-editor' ); ?></p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<?php
|
||||
}
|
||||
|
||||
public static function save_network_settings() {
|
||||
if (
|
||||
isset( $_POST['classic-editor-network-settings'] ) &&
|
||||
current_user_can( 'manage_network_options' ) &&
|
||||
wp_verify_nonce( $_POST['classic-editor-network-settings'], 'allow-site-admin-settings' )
|
||||
) {
|
||||
if ( isset( $_POST['classic-editor-replace'] ) && $_POST['classic-editor-replace'] === 'block' ) {
|
||||
update_network_option( null, 'classic-editor-replace', 'block' );
|
||||
} else {
|
||||
update_network_option( null, 'classic-editor-replace', 'classic' );
|
||||
}
|
||||
if ( isset( $_POST['classic-editor-allow-sites'] ) && $_POST['classic-editor-allow-sites'] === 'allow' ) {
|
||||
update_network_option( null, 'classic-editor-allow-sites', 'allow' );
|
||||
} else {
|
||||
update_network_option( null, 'classic-editor-allow-sites', 'disallow' );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a hidden field in edit-form-advanced.php
|
||||
* to help redirect back to the Classic Editor on saving.
|
||||
*/
|
||||
public static function add_redirect_helper() {
|
||||
?>
|
||||
<input type="hidden" name="classic-editor" value="" />
|
||||
<?php
|
||||
}
|
||||
|
||||
/**
|
||||
* Remember when the Classic Editor was used to edit a post.
|
||||
*/
|
||||
public static function remember_classic_editor( $post ) {
|
||||
$post_type = get_post_type( $post );
|
||||
|
||||
if ( $post_type && post_type_supports( $post_type, 'editor' ) ) {
|
||||
self::remember( $post->ID, 'classic-editor' );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remember when the Block Editor was used to edit a post.
|
||||
*/
|
||||
public static function remember_block_editor( $editor_settings, $post ) {
|
||||
$post_type = get_post_type( $post );
|
||||
|
||||
if ( $post_type && self::can_edit_post_type( $post_type ) ) {
|
||||
self::remember( $post->ID, 'block-editor' );
|
||||
}
|
||||
|
||||
return $editor_settings;
|
||||
}
|
||||
|
||||
private static function remember( $post_id, $editor ) {
|
||||
if ( get_post_meta( $post_id, 'classic-editor-remember', true ) !== $editor ) {
|
||||
update_post_meta( $post_id, 'classic-editor-remember', $editor );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Choose which editor to use for a post.
|
||||
*
|
||||
* Passes through `$which_editor` for Block Editor (it's sets to `true` but may be changed by another plugin).
|
||||
*
|
||||
* @uses `use_block_editor_for_post` filter.
|
||||
*
|
||||
* @param boolean $use_block_editor True for Block Editor, false for Classic Editor.
|
||||
* @param WP_Post $post The post being edited.
|
||||
* @return boolean True for Block Editor, false for Classic Editor.
|
||||
*/
|
||||
public static function choose_editor( $use_block_editor, $post ) {
|
||||
$settings = self::get_settings();
|
||||
$editors = self::get_enabled_editors_for_post( $post );
|
||||
|
||||
// If no editor is supported, pass through `$use_block_editor`.
|
||||
if ( ! $editors['block_editor'] && ! $editors['classic_editor'] ) {
|
||||
return $use_block_editor;
|
||||
}
|
||||
|
||||
// Open the default editor when no $post and for "Add New" links,
|
||||
// or the alternate editor when the user is switching editors.
|
||||
if ( empty( $post->ID ) || $post->post_status === 'auto-draft' ) {
|
||||
if (
|
||||
( $settings['editor'] === 'classic' && ! isset( $_GET['classic-editor__forget'] ) ) || // Add New
|
||||
( isset( $_GET['classic-editor'] ) && isset( $_GET['classic-editor__forget'] ) ) // Switch to Classic Editor when no draft post.
|
||||
) {
|
||||
$use_block_editor = false;
|
||||
}
|
||||
} elseif ( self::is_classic( $post->ID ) ) {
|
||||
$use_block_editor = false;
|
||||
}
|
||||
|
||||
// Enforce the editor if set by plugins.
|
||||
if ( $use_block_editor && ! $editors['block_editor'] ) {
|
||||
$use_block_editor = false;
|
||||
} elseif ( ! $use_block_editor && ! $editors['classic_editor'] && $editors['block_editor'] ) {
|
||||
$use_block_editor = true;
|
||||
}
|
||||
|
||||
return $use_block_editor;
|
||||
}
|
||||
|
||||
/**
|
||||
* Keep the `classic-editor` query arg through redirects when saving posts.
|
||||
*/
|
||||
public static function redirect_location( $location ) {
|
||||
if (
|
||||
isset( $_REQUEST['classic-editor'] ) ||
|
||||
( isset( $_POST['_wp_http_referer'] ) && strpos( $_POST['_wp_http_referer'], '&classic-editor' ) !== false )
|
||||
) {
|
||||
$location = add_query_arg( 'classic-editor', '', $location );
|
||||
}
|
||||
|
||||
return $location;
|
||||
}
|
||||
|
||||
/**
|
||||
* Keep the `classic-editor` query arg when looking at revisions.
|
||||
*/
|
||||
public static function get_edit_post_link( $url ) {
|
||||
$settings = self::get_settings();
|
||||
|
||||
if ( isset( $_REQUEST['classic-editor'] ) || $settings['editor'] === 'classic' ) {
|
||||
$url = add_query_arg( 'classic-editor', '', $url );
|
||||
}
|
||||
|
||||
return $url;
|
||||
}
|
||||
|
||||
public static function add_meta_box( $post_type, $post ) {
|
||||
$editors = self::get_enabled_editors_for_post( $post );
|
||||
|
||||
if ( ! $editors['block_editor'] || ! $editors['classic_editor'] ) {
|
||||
// Editors cannot be switched.
|
||||
return;
|
||||
}
|
||||
|
||||
$id = 'classic-editor-switch-editor';
|
||||
$title = __( 'Editor', 'classic-editor' );
|
||||
$callback = array( __CLASS__, 'do_meta_box' );
|
||||
$args = array(
|
||||
'__back_compat_meta_box' => true,
|
||||
);
|
||||
|
||||
add_meta_box( $id, $title, $callback, null, 'side', 'default', $args );
|
||||
}
|
||||
|
||||
public static function do_meta_box( $post ) {
|
||||
$edit_url = get_edit_post_link( $post->ID, 'raw' );
|
||||
|
||||
// Switching to Block Editor.
|
||||
$edit_url = remove_query_arg( 'classic-editor', $edit_url );
|
||||
// Forget the previous value when going to a specific editor.
|
||||
$edit_url = add_query_arg( 'classic-editor__forget', '', $edit_url );
|
||||
|
||||
?>
|
||||
<p style="margin: 1em 0;">
|
||||
<a href="<?php echo esc_url( $edit_url ); ?>"><?php _e( 'Switch to Block Editor', 'classic-editor' ); ?></a>
|
||||
</p>
|
||||
<?php
|
||||
}
|
||||
|
||||
public static function enqueue_block_editor_scripts() {
|
||||
$editors = self::get_enabled_editors_for_post( $GLOBALS['post'] );
|
||||
|
||||
if ( ! $editors['classic_editor'] ) {
|
||||
// Editor cannot be switched.
|
||||
return;
|
||||
}
|
||||
|
||||
wp_enqueue_script(
|
||||
'classic-editor-plugin',
|
||||
plugins_url( 'js/block-editor-plugin.js', __FILE__ ),
|
||||
array( 'wp-element', 'wp-components', 'lodash' ),
|
||||
'1.4',
|
||||
true
|
||||
);
|
||||
|
||||
wp_localize_script(
|
||||
'classic-editor-plugin',
|
||||
'classicEditorPluginL10n',
|
||||
array( 'linkText' => __( 'Switch to Classic Editor', 'classic-editor' ) )
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a link to the settings on the Plugins screen.
|
||||
*/
|
||||
public static function add_settings_link( $links, $file ) {
|
||||
$settings = self::get_settings();
|
||||
|
||||
if ( $file === 'classic-editor/classic-editor.php' && ! $settings['hide-settings-ui'] && current_user_can( 'manage_options' ) ) {
|
||||
if ( current_filter() === 'plugin_action_links' ) {
|
||||
$url = admin_url( 'options-writing.php#classic-editor-options' );
|
||||
} else {
|
||||
$url = admin_url( '/network/settings.php#classic-editor-options' );
|
||||
}
|
||||
|
||||
// Prevent warnings in PHP 7.0+ when a plugin uses this filter incorrectly.
|
||||
$links = (array) $links;
|
||||
$links[] = sprintf( '<a href="%s">%s</a>', $url, __( 'Settings', 'classic-editor' ) );
|
||||
}
|
||||
|
||||
return $links;
|
||||
}
|
||||
|
||||
private static function can_edit_post_type( $post_type ) {
|
||||
$can_edit = false;
|
||||
|
||||
if ( function_exists( 'gutenberg_can_edit_post_type' ) ) {
|
||||
$can_edit = gutenberg_can_edit_post_type( $post_type );
|
||||
} elseif ( function_exists( 'use_block_editor_for_post_type' ) ) {
|
||||
$can_edit = use_block_editor_for_post_type( $post_type );
|
||||
}
|
||||
|
||||
return $can_edit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks which editors are enabled for the post type.
|
||||
*
|
||||
* @param string $post_type The post type.
|
||||
* @return array Associative array of the editors and whether they are enabled for the post type.
|
||||
*/
|
||||
private static function get_enabled_editors_for_post_type( $post_type ) {
|
||||
if ( isset( self::$supported_post_types[ $post_type ] ) ) {
|
||||
return self::$supported_post_types[ $post_type ];
|
||||
}
|
||||
|
||||
$classic_editor = post_type_supports( $post_type, 'editor' );
|
||||
$block_editor = self::can_edit_post_type( $post_type );
|
||||
|
||||
$editors = array(
|
||||
'classic_editor' => $classic_editor,
|
||||
'block_editor' => $block_editor,
|
||||
);
|
||||
|
||||
/**
|
||||
* Filters the editors that are enabled for the post type.
|
||||
*
|
||||
* @param array $editors Associative array of the editors and whether they are enabled for the post type.
|
||||
* @param string $post_type The post type.
|
||||
*/
|
||||
$editors = apply_filters( 'classic_editor_enabled_editors_for_post_type', $editors, $post_type );
|
||||
self::$supported_post_types[ $post_type ] = $editors;
|
||||
|
||||
return $editors;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks which editors are enabled for the post.
|
||||
*
|
||||
* @param WP_Post $post The post object.
|
||||
* @return array Associative array of the editors and whether they are enabled for the post.
|
||||
*/
|
||||
private static function get_enabled_editors_for_post( $post ) {
|
||||
$post_type = get_post_type( $post );
|
||||
|
||||
if ( ! $post_type ) {
|
||||
return array(
|
||||
'classic_editor' => false,
|
||||
'block_editor' => false,
|
||||
);
|
||||
}
|
||||
|
||||
$editors = self::get_enabled_editors_for_post_type( $post_type );
|
||||
|
||||
/**
|
||||
* Filters the editors that are enabled for the post.
|
||||
*
|
||||
* @param array $editors Associative array of the editors and whether they are enabled for the post.
|
||||
* @param WP_Post $post The post object.
|
||||
*/
|
||||
return apply_filters( 'classic_editor_enabled_editors_for_post', $editors, $post );
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds links to the post/page screens to edit any post or page in
|
||||
* the Classic Editor or Block Editor.
|
||||
*
|
||||
* @param array $actions Post actions.
|
||||
* @param WP_Post $post Edited post.
|
||||
* @return array Updated post actions.
|
||||
*/
|
||||
public static function add_edit_links( $actions, $post ) {
|
||||
// This is in Gutenberg, don't duplicate it.
|
||||
if ( array_key_exists( 'classic', $actions ) ) {
|
||||
unset( $actions['classic'] );
|
||||
}
|
||||
|
||||
if ( ! array_key_exists( 'edit', $actions ) ) {
|
||||
return $actions;
|
||||
}
|
||||
|
||||
$edit_url = get_edit_post_link( $post->ID, 'raw' );
|
||||
|
||||
if ( ! $edit_url ) {
|
||||
return $actions;
|
||||
}
|
||||
|
||||
$editors = self::get_enabled_editors_for_post( $post );
|
||||
|
||||
// Do not show the links if only one editor is available.
|
||||
if ( ! $editors['classic_editor'] || ! $editors['block_editor'] ) {
|
||||
return $actions;
|
||||
}
|
||||
|
||||
// Forget the previous value when going to a specific editor.
|
||||
$edit_url = add_query_arg( 'classic-editor__forget', '', $edit_url );
|
||||
|
||||
// Build the edit actions. See also: WP_Posts_List_Table::handle_row_actions().
|
||||
$title = _draft_or_post_title( $post->ID );
|
||||
|
||||
// Link to the Block Editor.
|
||||
$url = remove_query_arg( 'classic-editor', $edit_url );
|
||||
$text = _x( 'Edit (Block Editor)', 'Editor Name', 'classic-editor' );
|
||||
/* translators: %s: post title */
|
||||
$label = sprintf( __( 'Edit “%s” in the Block Editor', 'classic-editor' ), $title );
|
||||
$edit_block = sprintf( '<a href="%s" aria-label="%s">%s</a>', esc_url( $url ), esc_attr( $label ), $text );
|
||||
|
||||
// Link to the Classic Editor.
|
||||
$url = add_query_arg( 'classic-editor', '', $edit_url );
|
||||
$text = _x( 'Edit (Classic Editor)', 'Editor Name', 'classic-editor' );
|
||||
/* translators: %s: post title */
|
||||
$label = sprintf( __( 'Edit “%s” in the Classic Editor', 'classic-editor' ), $title );
|
||||
$edit_classic = sprintf( '<a href="%s" aria-label="%s">%s</a>', esc_url( $url ), esc_attr( $label ), $text );
|
||||
|
||||
$edit_actions = array(
|
||||
'classic-editor-block' => $edit_block,
|
||||
'classic-editor-classic' => $edit_classic,
|
||||
);
|
||||
|
||||
// Insert the new Edit actions instead of the Edit action.
|
||||
$edit_offset = array_search( 'edit', array_keys( $actions ), true );
|
||||
array_splice( $actions, $edit_offset, 1, $edit_actions );
|
||||
|
||||
return $actions;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the editor that will be used in a "post state" in the Posts list table.
|
||||
*/
|
||||
public static function add_post_state( $post_states, $post ) {
|
||||
if ( get_post_status( $post ) === 'trash' ) {
|
||||
return $post_states;
|
||||
}
|
||||
|
||||
$editors = self::get_enabled_editors_for_post( $post );
|
||||
|
||||
if ( ! $editors['classic_editor'] && ! $editors['block_editor'] ) {
|
||||
return $post_states;
|
||||
} elseif ( $editors['classic_editor'] && ! $editors['block_editor'] ) {
|
||||
// Forced to Classic Editor.
|
||||
$state = '<span class="classic-editor-forced-state">' . _x( 'Classic Editor', 'Editor Name', 'classic-editor' ) . '</span>';
|
||||
} elseif ( ! $editors['classic_editor'] && $editors['block_editor'] ) {
|
||||
// Forced to Block Editor.
|
||||
$state = '<span class="classic-editor-forced-state">' . _x( 'Block Editor', 'Editor Name', 'classic-editor' ) . '</span>';
|
||||
} else {
|
||||
$last_editor = get_post_meta( $post->ID, 'classic-editor-remember', true );
|
||||
|
||||
if ( $last_editor ) {
|
||||
$is_classic = ( $last_editor === 'classic-editor' );
|
||||
} elseif ( ! empty( $post->post_content ) ) {
|
||||
$is_classic = ! self::has_blocks( $post->post_content );
|
||||
} else {
|
||||
$settings = self::get_settings();
|
||||
$is_classic = ( $settings['editor'] === 'classic' );
|
||||
}
|
||||
|
||||
$state = $is_classic ? _x( 'Classic Editor', 'Editor Name', 'classic-editor' ) : _x( 'Block Editor', 'Editor Name', 'classic-editor' );
|
||||
}
|
||||
|
||||
// Fix PHP 7+ warnings if another plugin returns unexpected type.
|
||||
$post_states = (array) $post_states;
|
||||
$post_states['classic-editor-plugin'] = $state;
|
||||
|
||||
return $post_states;
|
||||
}
|
||||
|
||||
public static function add_edit_php_inline_style() {
|
||||
?>
|
||||
<style>
|
||||
.classic-editor-forced-state {
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
color: #72777c;
|
||||
font-size: small;
|
||||
}
|
||||
</style>
|
||||
<?php
|
||||
}
|
||||
|
||||
public static function on_admin_init() {
|
||||
global $pagenow;
|
||||
|
||||
if ( $pagenow !== 'post.php' ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$settings = self::get_settings();
|
||||
$post_id = self::get_edited_post_id();
|
||||
|
||||
if ( $post_id && ( $settings['editor'] === 'classic' || self::is_classic( $post_id ) ) ) {
|
||||
// Move the Privacy Policy help notice back under the title field.
|
||||
remove_action( 'admin_notices', array( 'WP_Privacy_Policy_Content', 'notice' ) );
|
||||
add_action( 'edit_form_after_title', array( 'WP_Privacy_Policy_Content', 'notice' ) );
|
||||
}
|
||||
}
|
||||
|
||||
// Need to support WP < 5.0
|
||||
private static function has_blocks( $post = null ) {
|
||||
if ( ! is_string( $post ) ) {
|
||||
$wp_post = get_post( $post );
|
||||
|
||||
if ( $wp_post instanceof WP_Post ) {
|
||||
$post = $wp_post->post_content;
|
||||
}
|
||||
}
|
||||
|
||||
return false !== strpos( (string) $post, '<!-- wp:' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Set defaults on activation.
|
||||
*/
|
||||
public static function activate() {
|
||||
if ( is_multisite() ) {
|
||||
add_network_option( null, 'classic-editor-replace', 'classic' );
|
||||
add_network_option( null, 'classic-editor-allow-sites', 'disallow' );
|
||||
}
|
||||
|
||||
add_option( 'classic-editor-replace', 'classic' );
|
||||
add_option( 'classic-editor-allow-users', 'disallow' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete the options on uninstall.
|
||||
*/
|
||||
public static function uninstall() {
|
||||
if ( is_multisite() ) {
|
||||
delete_network_option( null, 'classic-editor-replace' );
|
||||
delete_network_option( null, 'classic-editor-allow-sites' );
|
||||
}
|
||||
|
||||
delete_option( 'classic-editor-replace' );
|
||||
delete_option( 'classic-editor-allow-users' );
|
||||
}
|
||||
}
|
||||
|
||||
add_action( 'plugins_loaded', array( 'Classic_Editor', 'init_actions' ) );
|
||||
|
||||
endif;
|
||||
23
wp-content/plugins/classic-editor/js/block-editor-plugin.js
Normal file
@@ -0,0 +1,23 @@
|
||||
( function( wp ) {
|
||||
if ( ! wp ) {
|
||||
return;
|
||||
}
|
||||
|
||||
wp.plugins.registerPlugin( 'classic-editor-plugin', {
|
||||
render: function() {
|
||||
var createElement = wp.element.createElement;
|
||||
var PluginMoreMenuItem = wp.editPost.PluginMoreMenuItem;
|
||||
var url = wp.url.addQueryArgs( document.location.href, { 'classic-editor': '', 'classic-editor__forget': '' } );
|
||||
var linkText = lodash.get( window, [ 'classicEditorPluginL10n', 'linkText' ] ) || 'Switch to Classic Editor';
|
||||
|
||||
return createElement(
|
||||
PluginMoreMenuItem,
|
||||
{
|
||||
icon: 'editor-kitchensink',
|
||||
href: url,
|
||||
},
|
||||
linkText
|
||||
);
|
||||
},
|
||||
} );
|
||||
} )( window.wp );
|
||||
119
wp-content/plugins/classic-editor/readme.txt
Normal file
@@ -0,0 +1,119 @@
|
||||
=== Classic Editor ===
|
||||
Contributors: wordpressdotorg, azaozz, melchoyce, chanthaboune, alexislloyd, pento, youknowriad, desrosj, luciano-croce
|
||||
Tags: gutenberg, disable, disable gutenberg, editor, classic editor, block editor
|
||||
Requires at least: 4.9
|
||||
Tested up to: 5.2
|
||||
Stable tag: 1.4
|
||||
Requires PHP: 5.2.4
|
||||
License: GPLv2 or later
|
||||
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
||||
|
||||
Enables the previous "classic" editor and the old-style Edit Post screen with TinyMCE, Meta Boxes, etc. Supports all plugins that extend this screen.
|
||||
|
||||
== Description ==
|
||||
|
||||
Classic Editor is an official plugin maintained by the WordPress team that restores the previous ("classic") WordPress editor and the "Edit Post" screen. It makes it possible to use plugins that extend that screen, add old-style meta boxes, or otherwise depend on the previous editor.
|
||||
|
||||
Classic Editor is an official WordPress plugin, and will be fully supported and maintained until at least 2022, or as long as is necessary.
|
||||
|
||||
At a glance, this plugin adds the following:
|
||||
|
||||
* Administrators can select the default editor for all users.
|
||||
* Administrators can allow users to change their default editor.
|
||||
* When allowed, the users can choose which editor to use for each post.
|
||||
* Each post opens in the last editor used regardless of who edited it last. This is important for maintaining a consistent experience when editing content.
|
||||
|
||||
In addition, the Classic Editor plugin includes several filters that let other plugins control the settings, and the editor choice per post and per post type.
|
||||
|
||||
By default, this plugin hides all functionality available in the new Block Editor ("Gutenberg").
|
||||
|
||||
== Changelog ==
|
||||
|
||||
= 1.5 =
|
||||
* Updated for WordPress 5.2 and Gutenberg 5.3+.
|
||||
* Enhanced and fixed the "open posts in the last editor used to edit them" logic.
|
||||
* Fixed adding post state so it can easily be accessed from other plugins.
|
||||
|
||||
= 1.4 =
|
||||
* On network installations removed the restriction for only network activation.
|
||||
* Added support for network administrators to choose the default network-wide editor.
|
||||
* Fixed the settings link in the warning on network About screen.
|
||||
* Properly added the "Switch to Classic Editor" menu item to the Block Editor menu.
|
||||
|
||||
= 1.3 =
|
||||
* Fixed removal of the "Try Gutenberg" dashboard widget.
|
||||
* Fixed condition for displaying of the after upgrade notice on the "What's New" screen. Shown when the Classic Editor is selected and users cannot switch editors.
|
||||
|
||||
= 1.2 =
|
||||
* Fixed switching editors from the Add New (post) screen before a draft post is saved.
|
||||
* Fixed typo that was appending the edit URL to the `classic-editor` query var.
|
||||
* Changed detecting of WordPress 5.0 to not use version check. Fixes a bug when testing 5.1-alpha.
|
||||
* Changed the default value of the option to allow users to switch editors to false.
|
||||
* Added disabling of the Gutenberg plugin and lowered the required WordPress version to 4.9.
|
||||
* Added `classic_editor_network_default_settings` filter.
|
||||
|
||||
= 1.1 =
|
||||
Fixed a bug where it may attempt to load the Block Editor for post types that do not support editor when users are allowed to switch editors.
|
||||
|
||||
= 1.0 =
|
||||
* Updated for WordPress 5.0.
|
||||
* Changed all "Gutenberg" names/references to "Block Editor".
|
||||
* Refreshed the settings UI.
|
||||
* Removed disabling of the Gutenberg plugin. This was added for testing in WordPress 4.9. Users who want to continue following the development of Gutenberg in WordPress 5.0 and beyond will not need another plugin to disable it.
|
||||
* Added support for per-user settings of default editor.
|
||||
* Added support for admins to set the default editor for the site.
|
||||
* Added support for admins to allow users to change their default editor.
|
||||
* Added support for network admins to prevent site admins from changing the default settings.
|
||||
* Added support to store the last editor used for each post and open it next time. Enabled when users can choose default editor.
|
||||
* Added "post editor state" in the listing of posts on the Posts screen. Shows the editor that will be opened for the post. Enabled when users can choose default editor.
|
||||
* Added `classic_editor_enabled_editors_for_post` and `classic_editor_enabled_editors_for_post_type` filters. Can be used by other plugins to control or override the editor used for a particular post of post type.
|
||||
* Added `classic_editor_plugin_settings` filter. Can be used by other plugins to override the settings and disable the settings UI.
|
||||
|
||||
= 0.5 =
|
||||
* Updated for Gutenberg 4.1 and WordPress 5.0-beta1.
|
||||
* Removed some functionality that now exists in Gutenberg.
|
||||
* Fixed redirecting back to the Classic Editor after looking at post revisions.
|
||||
|
||||
= 0.4 =
|
||||
* Fixed removing of the "Try Gutenberg" call-out when the Gutenberg plugin is not activated.
|
||||
* Fixed to always show the settings and the settings link in the plugins list table.
|
||||
* Updated the readme text.
|
||||
|
||||
= 0.3 =
|
||||
* Updated the option from a checkbox to couple of radio buttons, seems clearer. Thanks to @designsimply for the label text suggestions.
|
||||
* Some general updates and cleanup.
|
||||
|
||||
= 0.2 =
|
||||
* Update for Gutenberg 1.9.
|
||||
* Remove warning and automatic deactivation when Gutenberg is not active.
|
||||
|
||||
= 0.1 =
|
||||
Initial release.
|
||||
|
||||
== Frequently Asked Questions ==
|
||||
|
||||
= Default settings =
|
||||
|
||||
When activated this plugin will restore the previous ("classic") WordPress editor and hide the new Block Editor ("Gutenberg").
|
||||
These settings can be changed at the Settings => Writing screen.
|
||||
|
||||
= Default settings for network installation =
|
||||
|
||||
There are two options:
|
||||
|
||||
* When network-activated this plugin will set the Classic Editor as default and prevent site administrators and users from changing editors.
|
||||
The settings can be changed and default network-wide editor can be selected on the Network Settings screen.
|
||||
* When not network-activated each site administrator will be able to activate the plugin and choose options for their users.
|
||||
|
||||
= Cannot find the "Switch to Classic Editor" link =
|
||||
|
||||
It is in the main Block Editor menu, see this [screenshot](https://ps.w.org/classic-editor/assets/screenshot-7.png?rev=2023480).
|
||||
|
||||
== Screenshots ==
|
||||
1. Admin settings on the Settings -> Writing screen.
|
||||
2. User settings on the Profile screen. Visible when the users are allowed to switch editors.
|
||||
3. "Action links" to choose alternative editor. Visible when the users are allowed to switch editors.
|
||||
4. Link to switch to the Block Editor while editing a post in the Classic Editor. Visible when the users are allowed to switch editors.
|
||||
5. Link to switch to the Classic Editor while editing a post in the Block Editor. Visible when the users are allowed to switch editors.
|
||||
6. Network settings to select the default editor for the network and allow site admins to change it.
|
||||
7. The "Switch to Classic Editor" link.
|
||||
1148
wp-content/plugins/cookie-notice/cookie-notice.php
Normal file
112
wp-content/plugins/cookie-notice/css/admin.css
Normal file
@@ -0,0 +1,112 @@
|
||||
/* Cookie Notice settings */
|
||||
.df-credits {
|
||||
float: right;
|
||||
width: 280px;
|
||||
background: #fff;
|
||||
margin: 20px -300px 20px 20px;
|
||||
position: relative;
|
||||
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.df-credits .inner {
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
.df-credits h3 {
|
||||
font-size: 14px;
|
||||
line-height: 1.4;
|
||||
margin: 0;
|
||||
padding: 8px 12px;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
|
||||
.df-credits .df-link {
|
||||
font-family: Georgia, "Times New Roman", "Bitstream Charter", Times, serif;
|
||||
font-style: italic;
|
||||
padding-bottom: 10px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.df-credits .df-link a {
|
||||
vertical-align: middle;
|
||||
padding: 5px 0 0 4px;
|
||||
}
|
||||
|
||||
.df-promo h4 {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.cookie-notice-settings .df-credits form {
|
||||
min-width: 260px;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
.cookie-notice-settings .df-credits form input {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.cookie-notice-settings {
|
||||
margin-right: 300px;
|
||||
}
|
||||
|
||||
.cookie-notice-settings hr, .df-credits hr {
|
||||
border: solid #eee;
|
||||
border-width: 1px 0 0;
|
||||
clear: both;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.cookie-notice-settings form {
|
||||
float: left;
|
||||
min-width: 463px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.cookie-notice-settings .ui-button {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.cookie-notice-settings .description {
|
||||
font-size: 13px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
#cn_colors label {
|
||||
min-width: 10em;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
#cn_colors div {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
#cn_refuse_code .nav-tab-wrapper {
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
#cn_refuse_code .refuse-code-tab {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#cn_refuse_code .refuse-code-tab.active {
|
||||
display: block;
|
||||
}
|
||||
|
||||
#cn_refuse_code .refuse-code-tab .description {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
/* All Mobile Sizes (devices and browser) */
|
||||
@media only screen and (max-width: 959px) {
|
||||
.df-credits {
|
||||
width: 100%;
|
||||
float: none;
|
||||
margin: 20px 0;
|
||||
}
|
||||
|
||||
.cookie-notice-settings {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
1
wp-content/plugins/cookie-notice/css/admin.min.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.df-credits{float:right;width:280px;background:#fff;margin:20px -300px 20px 20px;position:relative;box-shadow:0 0 0 1px rgba(0,0,0,0.05)}.df-credits .inner{padding-left:10px;padding-right:10px}.df-credits h3{font-size:14px;line-height:1.4;margin:0;padding:8px 12px;border-bottom:1px solid #eee}.df-credits .df-link{font-family:Georgia,"Times New Roman","Bitstream Charter",Times,serif;font-style:italic;padding-bottom:10px;margin:0}.df-credits .df-link a{vertical-align:middle;padding:5px 0 0 4px}.df-promo h4{margin-bottom:0}.cookie-notice-settings .df-credits form{min-width:260px;margin-bottom:1em}.cookie-notice-settings .df-credits form input{margin:0;padding:0}.cookie-notice-settings{margin-right:300px}.cookie-notice-settings hr,.df-credits hr{border:solid #eee;border-width:1px 0 0;clear:both;height:0}.cookie-notice-settings form{float:left;min-width:463px;width:100%}.cookie-notice-settings .ui-button{margin-bottom:5px}.cookie-notice-settings .description{font-size:13px;margin-bottom:8px}#cn_colors label{min-width:10em;display:inline-block}#cn_colors div{vertical-align:middle}#cn_refuse_code .nav-tab-wrapper{padding-top:0}#cn_refuse_code .refuse-code-tab{display:none}#cn_refuse_code .refuse-code-tab.active{display:block}#cn_refuse_code .refuse-code-tab .description{margin-top:10px}@media only screen and (max-width: 959px){.df-credits{width:100%;float:none;margin:20px 0}.cookie-notice-settings{margin-right:0}}
|
||||
151
wp-content/plugins/cookie-notice/css/front.css
Normal file
@@ -0,0 +1,151 @@
|
||||
#cookie-notice {
|
||||
display: block;
|
||||
visibility: hidden;
|
||||
position: fixed;
|
||||
min-width: 100%;
|
||||
height: auto;
|
||||
z-index: 100000;
|
||||
font-size: 13px;
|
||||
line-height: 20px;
|
||||
left: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.cn-top {
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.cn-bottom {
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
.cookie-notice-container {
|
||||
padding: 10px;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.cookie-notice-revoke-container {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
z-index: 1;
|
||||
visibility: hidden;
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.cn-top .cookie-notice-revoke-container {
|
||||
top: 0;
|
||||
bottom: auto;
|
||||
}
|
||||
|
||||
#cookie-notice .cn-revoke-cookie {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.cn-button.wp-default,
|
||||
.cn-button.wp-default:hover,
|
||||
.cn-button.bootstrap,
|
||||
.cn-button.bootstrap:hover {
|
||||
box-shadow: none;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#cookie-notice .cn-button {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.cn-button.wp-default {
|
||||
font-family: sans-serif;
|
||||
line-height: 18px;
|
||||
padding: 2px 12px;
|
||||
background: linear-gradient(to bottom, #FEFEFE, #F4F4F4) repeat scroll 0 0 #F3F3F3;
|
||||
border-color: #BBB;
|
||||
color: #333;
|
||||
text-shadow: 0 1px 0 #FFF;
|
||||
-moz-box-sizing: border-box;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
font-size: 12px;
|
||||
font-style: normal;
|
||||
text-decoration: none;
|
||||
white-space: nowrap;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.cn-button.wp-default:hover {
|
||||
background: linear-gradient(to bottom, #FFFFFF, #F3F3F3) repeat scroll 0 0 #F3F3F3;
|
||||
border-color: #999;
|
||||
color: #222;
|
||||
}
|
||||
|
||||
.cn-button.bootstrap {
|
||||
font-family: sans-serif;
|
||||
display: inline-block;
|
||||
*display: inline;
|
||||
padding: 4px 12px;
|
||||
margin-right: .3em;
|
||||
margin-bottom: 0;
|
||||
*margin-left: .3em;
|
||||
line-height: 20px;
|
||||
color: #333;
|
||||
text-align: center;
|
||||
text-shadow: 0 1px 1px rgba(255, 255, 255, .75);
|
||||
font-style: normal;
|
||||
vertical-align: middle;
|
||||
cursor: pointer;
|
||||
color: #fff;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
|
||||
background-color: #006dcc;
|
||||
*background-color: #04c;
|
||||
background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));
|
||||
background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);
|
||||
background-image: -o-linear-gradient(top, #0088cc, #0044cc);
|
||||
background-image: linear-gradient(to bottom, #0088cc, #0044cc);
|
||||
background-repeat: repeat-x;
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
border-color: #04c #04c #002a80;
|
||||
border-color: rgba(0, 0, 0, .1) rgba(0, 0, 0, .1) rgba(0, 0, 0, .25);
|
||||
box-shadow: 0 1px 0 rgba(255, 255, 255, .2) inset, 0 1px 2px rgba(0, 0, 0, .05);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
||||
padding: 2px 10px;
|
||||
font-size: 12px;
|
||||
text-decoration: none;
|
||||
-webkit-border-radius: 3px;
|
||||
-moz-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.cn-button.bootstrap:hover {
|
||||
color: #fff;
|
||||
background-color: #04c;
|
||||
*background-color: #003bb3;
|
||||
background-position: 0 -15px;
|
||||
-webkit-transition: background-position 0.1s linear;
|
||||
-moz-transition: background-position 0.1s linear;
|
||||
-o-transition: background-position 0.1s linear;
|
||||
transition: background-position 0.1s linear;
|
||||
}
|
||||
|
||||
@media all and (max-width: 900px) {
|
||||
.cookie-notice-container #cn-notice-text {
|
||||
display: block;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
#cookie-notice .cn-button {
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
}
|
||||
1
wp-content/plugins/cookie-notice/css/front.min.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
#cookie-notice{display:block;visibility:hidden;position:fixed;min-width:100%;height:auto;z-index:100000;font-size:13px;line-height:20px;left:0;text-align:center}.cn-top{top:0}.cn-bottom{bottom:0}.cookie-notice-container{padding:10px;text-align:center;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.cookie-notice-revoke-container{position:absolute;bottom:0;width:100%;z-index:1;visibility:hidden;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.cn-top .cookie-notice-revoke-container{top:0;bottom:auto}#cookie-notice .cn-revoke-cookie{margin:0}.cn-button.wp-default,.cn-button.wp-default:hover,.cn-button.bootstrap,.cn-button.bootstrap:hover{box-shadow:none;text-decoration:none}#cookie-notice .cn-button{margin-left:10px}.cn-button.wp-default{font-family:sans-serif;line-height:18px;padding:2px 12px;background:linear-gradient(to bottom,#FEFEFE,#F4F4F4) repeat scroll 0 0 #F3F3F3;border-color:#BBB;color:#333;text-shadow:0 1px 0 #FFF;-moz-box-sizing:border-box;border-radius:3px 3px 3px 3px;border-style:solid;border-width:1px;cursor:pointer;display:inline-block;font-size:12px;font-style:normal;text-decoration:none;white-space:nowrap;outline:none}.cn-button.wp-default:hover{background:linear-gradient(to bottom,#FFFFFF,#F3F3F3) repeat scroll 0 0 #F3F3F3;border-color:#999;color:#222}.cn-button.bootstrap{font-family:sans-serif;display:inline-block;*display:inline;padding:4px 12px;margin-right:.3em;margin-bottom:0;*margin-left:.3em;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,.75);font-style:normal;vertical-align:middle;cursor:pointer;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#0088cc,#0044cc);background-image:-webkit-gradient(linear,0 0,0 100%,from(#0088cc),to(#0044cc));background-image:-webkit-linear-gradient(top,#0088cc,#0044cc);background-image:-o-linear-gradient(top,#0088cc,#0044cc);background-image:linear-gradient(to bottom,#0088cc,#0044cc);background-repeat:repeat-x;border-style:solid;border-width:1px;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);box-shadow:0 1px 0 rgba(255,255,255,.2) inset,0 1px 2px rgba(0,0,0,.05);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);padding:2px 10px;font-size:12px;text-decoration:none;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;outline:none}.cn-button.bootstrap:hover{color:#fff;background-color:#04c;*background-color:#003bb3;background-position:0 -15px;-webkit-transition:background-position 0.1s linear;-moz-transition:background-position 0.1s linear;-o-transition:background-position 0.1s linear;transition:background-position 0.1s linear}@media all and (max-width:900px){.cookie-notice-container #cn-notice-text{display:block;margin-bottom:5px}#cookie-notice .cn-button{margin-left:5px;margin-right:5px}}
|
||||
BIN
wp-content/plugins/cookie-notice/images/logo-dfactory.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
26
wp-content/plugins/cookie-notice/includes/functions.php
Normal file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
// exit if accessed directly
|
||||
if ( ! defined( 'ABSPATH' ) )
|
||||
exit;
|
||||
|
||||
/**
|
||||
* Check if cookies are accepted.
|
||||
*
|
||||
* @return boolean Whether cookies are accepted
|
||||
*/
|
||||
if ( ! function_exists( 'cn_cookies_accepted' ) ) {
|
||||
function cn_cookies_accepted() {
|
||||
return (bool) Cookie_Notice::cookies_accepted();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if cookies are set.
|
||||
*
|
||||
* @return boolean Whether cookies are set
|
||||
*/
|
||||
if ( ! function_exists( 'cn_cookies_set' ) ) {
|
||||
function cn_cookies_set() {
|
||||
return (bool) Cookie_Notice::cookies_set();
|
||||
}
|
||||
}
|
||||
34
wp-content/plugins/cookie-notice/includes/upgrade.php
Normal file
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
// exit if accessed directly
|
||||
if ( ! defined( 'ABSPATH' ) )
|
||||
exit;
|
||||
|
||||
new Cookie_Notice_Upgrade( $cookie_notice );
|
||||
|
||||
class Cookie_Notice_Upgrade {
|
||||
|
||||
private $defaults;
|
||||
|
||||
public function __construct( $cookie_notice ) {
|
||||
// attributes
|
||||
$this->defaults = $cookie_notice->get_defaults();
|
||||
|
||||
// actions
|
||||
add_action( 'init', array( $this, 'check_upgrade' ) );
|
||||
}
|
||||
|
||||
public function check_upgrade() {
|
||||
if ( ! current_user_can( 'manage_options' ) )
|
||||
return;
|
||||
|
||||
// gets current database version
|
||||
$current_db_version = get_option( 'cookie_notice_version', '1.0.0' );
|
||||
|
||||
// new version?
|
||||
if ( version_compare( $current_db_version, $this->defaults['version'], '<' ) ) {
|
||||
// updates plugin version
|
||||
update_option( 'cookie_notice_version', $this->defaults['version'], false );
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
2
wp-content/plugins/cookie-notice/index.php
Normal file
@@ -0,0 +1,2 @@
|
||||
<?php
|
||||
// Silence is golden.
|
||||
73
wp-content/plugins/cookie-notice/js/admin.js
Normal file
@@ -0,0 +1,73 @@
|
||||
( function ( $ ) {
|
||||
|
||||
$( document ).ready( function () {
|
||||
// initialize color picker
|
||||
$( '.cn_color' ).wpColorPicker();
|
||||
|
||||
// refuse option
|
||||
$( '#cn_refuse_opt' ).change( function () {
|
||||
if ( $( this ).is( ':checked' ) ) {
|
||||
$( '#cn_refuse_opt_container' ).slideDown( 'fast' );
|
||||
} else {
|
||||
$( '#cn_refuse_opt_container' ).slideUp( 'fast' );
|
||||
}
|
||||
} );
|
||||
|
||||
// revoke option
|
||||
$( '#cn_revoke_cookies' ).change( function () {
|
||||
if ( $( this ).is( ':checked' ) ) {
|
||||
$( '#cn_revoke_opt_container' ).slideDown( 'fast' );
|
||||
} else {
|
||||
$( '#cn_revoke_opt_container' ).slideUp( 'fast' );
|
||||
}
|
||||
} );
|
||||
|
||||
// privacy policy option
|
||||
$( '#cn_see_more' ).change( function () {
|
||||
if ( $( this ).is( ':checked' ) ) {
|
||||
$( '#cn_see_more_opt' ).slideDown( 'fast' );
|
||||
} else {
|
||||
$( '#cn_see_more_opt' ).slideUp( 'fast' );
|
||||
}
|
||||
} );
|
||||
|
||||
// privacy policy option
|
||||
$( '#cn_on_scroll' ).change( function () {
|
||||
if ( $( this ).is( ':checked' ) ) {
|
||||
$( '#cn_on_scroll_offset' ).slideDown( 'fast' );
|
||||
} else {
|
||||
$( '#cn_on_scroll_offset' ).slideUp( 'fast' );
|
||||
}
|
||||
} );
|
||||
|
||||
// privacy policy link
|
||||
$( '#cn_see_more_link-custom, #cn_see_more_link-page' ).change( function () {
|
||||
if ( $( '#cn_see_more_link-custom:checked' ).val() === 'custom' ) {
|
||||
$( '#cn_see_more_opt_page' ).slideUp( 'fast', function () {
|
||||
$( '#cn_see_more_opt_link' ).slideDown( 'fast' );
|
||||
} );
|
||||
} else if ( $( '#cn_see_more_link-page:checked' ).val() === 'page' ) {
|
||||
$( '#cn_see_more_opt_link' ).slideUp( 'fast', function () {
|
||||
$( '#cn_see_more_opt_page' ).slideDown( 'fast' );
|
||||
} );
|
||||
}
|
||||
} );
|
||||
|
||||
$( '#cn_refuse_code_fields' ).find( 'a' ).click( function ( e ) {
|
||||
e.preventDefault();
|
||||
|
||||
$( '#cn_refuse_code_fields' ).find( 'a' ).removeClass( 'nav-tab-active' );
|
||||
$( '.refuse-code-tab' ).removeClass( 'active' );
|
||||
|
||||
var id = $( this ).attr( 'id' ).replace( '-tab', '' );
|
||||
|
||||
$( '#' + id ).addClass( 'active' );
|
||||
$( this ).addClass( 'nav-tab-active' );
|
||||
} );
|
||||
} );
|
||||
|
||||
$( document ).on( 'click', 'input#reset_cookie_notice_options', function () {
|
||||
return confirm( cnArgs.resetToDefaults );
|
||||
} );
|
||||
|
||||
} )( jQuery );
|
||||
1
wp-content/plugins/cookie-notice/js/admin.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
!function(c){c(document).ready(function(){c(".cn_color").wpColorPicker(),c("#cn_refuse_opt").change(function(){c(this).is(":checked")?c("#cn_refuse_opt_container").slideDown("fast"):c("#cn_refuse_opt_container").slideUp("fast")}),c("#cn_revoke_cookies").change(function(){c(this).is(":checked")?c("#cn_revoke_opt_container").slideDown("fast"):c("#cn_revoke_opt_container").slideUp("fast")}),c("#cn_see_more").change(function(){c(this).is(":checked")?c("#cn_see_more_opt").slideDown("fast"):c("#cn_see_more_opt").slideUp("fast")}),c("#cn_on_scroll").change(function(){c(this).is(":checked")?c("#cn_on_scroll_offset").slideDown("fast"):c("#cn_on_scroll_offset").slideUp("fast")}),c("#cn_see_more_link-custom, #cn_see_more_link-page").change(function(){"custom"===c("#cn_see_more_link-custom:checked").val()?c("#cn_see_more_opt_page").slideUp("fast",function(){c("#cn_see_more_opt_link").slideDown("fast")}):"page"===c("#cn_see_more_link-page:checked").val()&&c("#cn_see_more_opt_link").slideUp("fast",function(){c("#cn_see_more_opt_page").slideDown("fast")})}),c("#cn_refuse_code_fields").find("a").click(function(e){e.preventDefault(),c("#cn_refuse_code_fields").find("a").removeClass("nav-tab-active"),c(".refuse-code-tab").removeClass("active");var n=c(this).attr("id").replace("-tab","");c("#"+n).addClass("active"),c(this).addClass("nav-tab-active")})}),c(document).on("click","input#reset_cookie_notice_options",function(){return confirm(cnArgs.resetToDefaults)})}(jQuery);
|
||||
291
wp-content/plugins/cookie-notice/js/front.js
Normal file
@@ -0,0 +1,291 @@
|
||||
( function ( $ ) {
|
||||
|
||||
// ready event
|
||||
$( document ).ready( function () {
|
||||
var notice = $( '#cookie-notice' ),
|
||||
cookie = $.fn.getCookieNotice();
|
||||
|
||||
// handle set-cookie button click
|
||||
$( document ).on( 'click', '.cn-set-cookie', function ( e ) {
|
||||
e.preventDefault();
|
||||
|
||||
$( this ).setCookieNotice( $( this ).data( 'cookie-set' ) );
|
||||
} );
|
||||
|
||||
// handle revoke button click
|
||||
$( document ).on( 'click', '.cn-revoke-cookie', function ( e ) {
|
||||
e.preventDefault();
|
||||
|
||||
if ( cnArgs.refuse === 'yes' ) {
|
||||
var revoke = $( this );
|
||||
|
||||
if ( cnArgs.onScroll === 'yes' ) {
|
||||
// enable cookie acceptance by scrolling again
|
||||
$( window ).on( 'scroll', handleScroll );
|
||||
}
|
||||
|
||||
if ( cnArgs.revoke_cookies === '1' ) {
|
||||
// clicked shortcode button?
|
||||
if ( revoke.hasClass( 'cn-revoke-inline' ) ) {
|
||||
var body = $( 'body' );
|
||||
|
||||
// is cookie notice hidden?
|
||||
if ( ! ( body.hasClass( 'cookies-revoke' ) || body.hasClass( 'cookies-not-set' ) ) ) {
|
||||
// display automatic revoke button?
|
||||
if ( cnArgs.revoke_cookies_opt === 'automatic' ) {
|
||||
notice.showCookieNotice( 3 );
|
||||
} else {
|
||||
notice.showCookieNotice( 2 );
|
||||
}
|
||||
}
|
||||
} else {
|
||||
notice.showCookieNotice( 1 );
|
||||
}
|
||||
|
||||
// update cookie value
|
||||
cookie = $.fn.getCookieNotice();
|
||||
|
||||
// add body class
|
||||
$.fn.setCookieNoticeBodyClass( 'cookies-set cookies-revoke ' + ( cookie === 'true' ? 'cookies-accepted' : 'cookies-refused' ) );
|
||||
}
|
||||
}
|
||||
} );
|
||||
|
||||
// cookie is not set
|
||||
if ( typeof cookie === 'undefined' ) {
|
||||
// handle on scroll
|
||||
if ( cnArgs.onScroll === 'yes' ) {
|
||||
$( window ).on( 'scroll', handleScroll );
|
||||
}
|
||||
|
||||
notice.showCookieNotice( 0 );
|
||||
|
||||
$.fn.setCookieNoticeBodyClass( 'cookies-not-set' );
|
||||
// active refuse button?
|
||||
} else if ( cnArgs.refuse === 'yes' ) {
|
||||
if ( cnArgs.revoke_cookies === '1' ) {
|
||||
if ( cnArgs.revoke_cookies_opt === 'automatic' ) {
|
||||
notice.hideCookieNotice( 1 );
|
||||
}
|
||||
|
||||
$.fn.setCookieNoticeBodyClass( 'cookies-set ' + ( cookie === 'true' ? 'cookies-accepted' : 'cookies-refused' ) );
|
||||
}
|
||||
// remove cookie notice
|
||||
} else {
|
||||
// add body class
|
||||
$.fn.setCookieNoticeBodyClass( 'cookies-set ' + ( cookie === 'true' ? 'cookies-accepted' : 'cookies-refused' ) );
|
||||
}
|
||||
} );
|
||||
|
||||
// handle mouse scrolling
|
||||
function handleScroll( event ) {
|
||||
var win = $( this );
|
||||
|
||||
if ( win.scrollTop() > parseInt( cnArgs.onScrollOffset ) ) {
|
||||
// accept cookie
|
||||
win.setCookieNotice( 'accept' );
|
||||
|
||||
// remove itself after cookie accept
|
||||
win.off( 'scroll', handleScroll );
|
||||
}
|
||||
};
|
||||
|
||||
// set Cookie Notice
|
||||
$.fn.setCookieNotice = function ( cookie_value ) {
|
||||
if ( cnArgs.onScroll === 'yes' ) {
|
||||
$( window ).off( 'scroll', handleScroll );
|
||||
}
|
||||
|
||||
var date = new Date(),
|
||||
later_date = new Date(),
|
||||
notice = $( '#cookie-notice' );
|
||||
|
||||
// set expiry time in seconds
|
||||
later_date.setTime( parseInt( date.getTime() ) + parseInt( cnArgs.cookieTime ) * 1000 );
|
||||
|
||||
// set cookie
|
||||
cookie_value = cookie_value === 'accept' ? 'true' : 'false';
|
||||
document.cookie = cnArgs.cookieName + '=' + cookie_value + ';expires=' + later_date.toUTCString() + ';' + ( cnArgs.cookieDomain !== undefined && cnArgs.cookieDomain !== '' ? 'domain=' + cnArgs.cookieDomain + ';' : '' ) + ( cnArgs.cookiePath !== undefined && cnArgs.cookiePath !== '' ? 'path=' + cnArgs.cookiePath + ';' : '' ) + ( cnArgs.secure === '1' ? 'secure;' : '' );
|
||||
|
||||
// trigger custom event
|
||||
$.event.trigger( {
|
||||
type: 'setCookieNotice',
|
||||
value: cookie_value,
|
||||
time: date,
|
||||
expires: later_date
|
||||
} );
|
||||
|
||||
// add body class
|
||||
$.fn.setCookieNoticeBodyClass( 'cookies-set ' + ( cookie_value === 'true' ? 'cookies-accepted' : 'cookies-refused' ) );
|
||||
|
||||
if ( cnArgs.refuse === 'yes' && cnArgs.revoke_cookies === '1' && cnArgs.revoke_cookies_opt === 'automatic' ) {
|
||||
notice.hideCookieNotice( 2 );
|
||||
} else {
|
||||
notice.hideCookieNotice( 0 );
|
||||
}
|
||||
|
||||
if ( cookie_value && cnArgs.redirection === '1' ) {
|
||||
var url = window.location.protocol + '//',
|
||||
hostname = window.location.host + '/' + window.location.pathname;
|
||||
|
||||
if ( cnArgs.cache === '1' ) {
|
||||
url = url + hostname.replace( '//', '/' ) + ( window.location.search === '' ? '?' : window.location.search + '&' ) + 'cn-reloaded=1' + window.location.hash;
|
||||
|
||||
window.location.href = url;
|
||||
} else {
|
||||
url = url + hostname.replace( '//', '/' ) + window.location.search + window.location.hash;
|
||||
|
||||
window.location.reload( true );
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
};
|
||||
|
||||
// add class(es) to body
|
||||
$.fn.setCookieNoticeBodyClass = function( classes ) {
|
||||
$( 'body' ).removeClass( 'cookies-revoke cookies-accepted cookies-refused cookies-set cookies-not-set' ).addClass( classes );
|
||||
}
|
||||
|
||||
// get cookie value
|
||||
$.fn.getCookieNotice = function () {
|
||||
var value = "; " + document.cookie,
|
||||
parts = value.split( '; cookie_notice_accepted=' );
|
||||
|
||||
if ( parts.length === 2 )
|
||||
return parts.pop().split( ';' ).shift();
|
||||
else
|
||||
return;
|
||||
}
|
||||
|
||||
// display cookie notice
|
||||
$.fn.showCookieNotice = function( type ) {
|
||||
// trigger custom event
|
||||
$.event.trigger( {
|
||||
type: 'showCookieNotice',
|
||||
value: type,
|
||||
data: cnArgs
|
||||
} );
|
||||
|
||||
var notice = this;
|
||||
|
||||
switch ( type ) {
|
||||
case 0:
|
||||
if ( cnArgs.hideEffect === 'fade' ) {
|
||||
// show cookie notice
|
||||
notice.css( { 'visibility': 'visible', 'display': 'none' } ).fadeIn( 400 );
|
||||
} else if ( cnArgs.hideEffect === 'slide' ) {
|
||||
// show cookie notice
|
||||
notice.css( { 'visibility': 'visible', 'display': 'none' } ).slideDown( 400 );
|
||||
} else {
|
||||
// show cookie notice
|
||||
notice.css( { 'visibility': 'visible' } ).show();
|
||||
}
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if ( cnArgs.hideEffect === 'fade' ) {
|
||||
// hide revoke button
|
||||
notice.find( '.cookie-notice-revoke-container' ).fadeOut( 400, function () {
|
||||
// show cookie notice
|
||||
notice.css( { 'visibility': 'visible', 'display': 'none' } ).fadeIn( 400 );
|
||||
} );
|
||||
} else if ( cnArgs.hideEffect === 'slide' ) {
|
||||
// hide revoke button
|
||||
notice.find( '.cookie-notice-revoke-container' ).slideUp( 400, function () {
|
||||
// show cookie notice
|
||||
notice.css( { 'visibility': 'visible', 'display': 'none' } ).slideDown( 400 );
|
||||
} );
|
||||
} else {
|
||||
// hide revoke button
|
||||
notice.css( { 'visibility': 'visible' } ).find( '.cookie-notice-revoke-container' ).hide();
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if ( cnArgs.hideEffect === 'fade' ) {
|
||||
// show cookie notice
|
||||
notice.css( { 'visibility': 'visible', 'display': 'none' } ).fadeIn( 400 );
|
||||
} else if ( cnArgs.hideEffect === 'slide' ) {
|
||||
// show cookie notice
|
||||
notice.css( { 'visibility': 'visible', 'display': 'none' } ).slideDown( 400 );
|
||||
} else {
|
||||
// show cookie notice
|
||||
notice.css( { 'visibility': 'visible' } );
|
||||
}
|
||||
break;
|
||||
|
||||
case 3:
|
||||
if ( cnArgs.hideEffect === 'fade' ) {
|
||||
// hide revoke button
|
||||
notice.find( '.cookie-notice-revoke-container' ).fadeOut( 400, function () {
|
||||
// show cookie notice
|
||||
notice.css( { 'visibility': 'visible', 'display': 'none' } ).fadeIn( 400 );
|
||||
} );
|
||||
} else if ( cnArgs.hideEffect === 'slide' ) {
|
||||
// hide revoke button
|
||||
notice.find( '.cookie-notice-revoke-container' ).slideUp( 400, function () {
|
||||
// show cookie notice
|
||||
notice.css( { 'visibility': 'visible', 'display': 'none' } ).slideDown( 400 );
|
||||
} );
|
||||
} else {
|
||||
// hide revoke button
|
||||
notice.css( { 'visibility': 'visible' } ).find( '.cookie-notice-revoke-container' ).hide();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// hide cookie notice
|
||||
$.fn.hideCookieNotice = function ( type ) {
|
||||
// trigger custom event
|
||||
$.event.trigger( {
|
||||
type: 'hideCookieNotice',
|
||||
value: type,
|
||||
data: cnArgs
|
||||
} );
|
||||
|
||||
var notice = this,
|
||||
display = this.css( 'display' );
|
||||
|
||||
switch ( type ) {
|
||||
case 0:
|
||||
if ( cnArgs.hideEffect === 'fade' ) {
|
||||
notice.fadeOut( 400 );
|
||||
} else if ( cnArgs.hideEffect === 'slide' ) {
|
||||
notice.slideUp( 400 );
|
||||
} else {
|
||||
notice.css( { 'visibility': 'hidden' } );
|
||||
}
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if ( cnArgs.hideEffect === 'fade' ) {
|
||||
notice.find( '.cookie-notice-revoke-container' ).hide().fadeIn( 400 ).css( { 'visibility': 'visible', 'display': 'block' } );
|
||||
} else if ( cnArgs.hideEffect === 'slide' ) {
|
||||
notice.find( '.cookie-notice-revoke-container' ).hide().slideDown( 400 ).css( { 'visibility': 'visible', 'display': 'block' } );
|
||||
} else {
|
||||
notice.find( '.cookie-notice-revoke-container' ).css( { 'visibility': 'visible', 'display': 'block' } );
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if ( cnArgs.hideEffect === 'fade' ) {
|
||||
notice.fadeOut( 400, function () {
|
||||
// show revoke button
|
||||
notice.css( { 'visibility': 'hidden', 'display': display } ).find( '.cookie-notice-revoke-container' ).hide().fadeIn( 400 ).css( { 'visibility': 'visible', 'display': 'block' } );
|
||||
} );
|
||||
} else if ( cnArgs.hideEffect === 'slide' ) {
|
||||
notice.slideUp( 400, function () {
|
||||
// show revoke button
|
||||
notice.css( { 'visibility': 'hidden', 'display': display } ).find( '.cookie-notice-revoke-container' ).hide().slideDown( 400 ).css( { 'visibility': 'visible', 'display': 'block' } );
|
||||
} );
|
||||
} else {
|
||||
// show revoke button
|
||||
notice.css( { 'visibility': 'hidden' } ).find( '.cookie-notice-revoke-container' ).css( { 'visibility': 'visible', 'display': 'block' } );
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
} )( jQuery );
|
||||
1
wp-content/plugins/cookie-notice/js/front.min.js
vendored
Normal file
378
wp-content/plugins/cookie-notice/languages/cookie-notice.pot
Normal file
@@ -0,0 +1,378 @@
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Cookie Notice\n"
|
||||
"POT-Creation-Date: 2018-06-11 10:36+0200\n"
|
||||
"PO-Revision-Date: 2015-03-24 11:30+0100\n"
|
||||
"Last-Translator: Bartosz Arendt <info@dfactory.eu>\n"
|
||||
"Language-Team: dFactory <info@dfactory.eu>\n"
|
||||
"Language: en\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 2.0.8\n"
|
||||
"X-Poedit-KeywordsList: gettext;gettext_noop;__;_e;_n\n"
|
||||
"X-Poedit-Basepath: .\n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"X-Poedit-SearchPath-0: ..\n"
|
||||
|
||||
#: ../cookie-notice.php:134
|
||||
msgid "Top"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:135
|
||||
msgid "Bottom"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:139 ../cookie-notice.php:176
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:140
|
||||
msgid "WordPress"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:141
|
||||
msgid "Bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:145
|
||||
msgid "Automatic"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:146
|
||||
msgid "Manual"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:150
|
||||
msgid "Page link"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:151
|
||||
msgid "Custom link"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:160
|
||||
msgid "Text color"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:161
|
||||
msgid "Bar color"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:165
|
||||
msgid "An hour"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:166
|
||||
msgid "1 day"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:167
|
||||
msgid "1 week"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:168
|
||||
msgid "1 month"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:169
|
||||
msgid "3 months"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:170
|
||||
msgid "6 months"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:171
|
||||
msgid "1 year"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:172
|
||||
msgid "infinity"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:177
|
||||
msgid "Fade"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:178
|
||||
msgid "Slide"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:182
|
||||
msgid "Header"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:183
|
||||
msgid "Footer"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:189
|
||||
msgid "We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:190
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:191
|
||||
msgid "No"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:192 ../cookie-notice.php:394
|
||||
msgid "Revoke cookies"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:193 ../cookie-notice.php:391
|
||||
msgid "Privacy policy"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:335 ../cookie-notice.php:346 ../cookie-notice.php:349
|
||||
msgid "Cookie Notice"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:351
|
||||
msgid "Need support?"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:352
|
||||
#, php-format
|
||||
msgid "If you are having problems with this plugin, please browse it's <a href=\"%s\" target=\"_blank\">Documentation</a> or talk about them in the <a href=\"%s\" target=\"_blank\">Support forum</a>"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:354
|
||||
msgid "Do you like this plugin?"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:355
|
||||
#, php-format
|
||||
msgid "<a href=\"%s\" target=\"_blank\">Rate it 5</a> on WordPress.org"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:356
|
||||
#, php-format
|
||||
msgid "Blog about it & link to the <a href=\"%s\" target=\"_blank\">plugin page</a>."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:357
|
||||
#, php-format
|
||||
msgid "Check out our other <a href=\"%s\" target=\"_blank\">WordPress plugins</a>."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:372
|
||||
msgid "Reset to defaults"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:388
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:389
|
||||
msgid "Message"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:390
|
||||
msgid "Button text"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:392
|
||||
msgid "Link target"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:393
|
||||
msgid "Refuse cookies"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:395
|
||||
msgid "Script blocking"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:396
|
||||
msgid "Reloading"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:397
|
||||
msgid "On scroll"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:398
|
||||
msgid "Cookie expiry"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:399
|
||||
msgid "Script placement"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:400
|
||||
msgid "Deactivation"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:403
|
||||
msgid "Design"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:404
|
||||
msgid "Position"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:405
|
||||
msgid "Animation"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:406
|
||||
msgid "Button style"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:407
|
||||
msgid "Button class"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:408
|
||||
msgid "Colors"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:423
|
||||
msgid "Enable if you want all plugin data to be deleted on deactivation."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:435
|
||||
msgid "Enter the cookie notice message."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:448
|
||||
msgid "The text of the option to accept the usage of the cookies and make the notification disappear."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:459
|
||||
msgid "Enable to give to the user the possibility to refuse third party non functional cookies."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:463
|
||||
msgid "The text of the button to refuse the usage of the cookies."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:481
|
||||
msgid "Head"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:482
|
||||
msgid "Body"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:485
|
||||
msgid "The code to be used in your site header, before the closing head tag."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:489
|
||||
msgid "The code to be used in your site footer, before the closing body tag."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:493
|
||||
msgid "Enter non functional cookies Javascript code here (for e.g. Google Analitycs) to be used after cookies are accepted."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:493
|
||||
msgid "To get the cookie notice status use <code>cn_cookies_accepted()</code> function."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:504
|
||||
msgid "Enable to give to the user the possibility to revoke their cookie consent <i>(requires \"Refuse cookies\" option enabled)</i>."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:507
|
||||
msgid "The text of the button to revoke the cookie consent."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:515
|
||||
msgid "Select the method for displaying the revoke button - automatic (in the Cookie Notice container) or manual using <code>[cookies_revoke]</code> shortcode."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:526
|
||||
msgid "Enable to reload the page after cookies are accepted."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:549
|
||||
msgid "Enable privacy policy link."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:550
|
||||
#, php-format
|
||||
msgid "Need a Cookie Policy? Generate one with <a href=\"%s\" target=\"_blank\" title=\"iubenda\">iubenda</a>."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:553
|
||||
msgid "The text of the privacy policy button."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:565
|
||||
msgid "Select where to redirect user for more information about cookies."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:568
|
||||
msgid "-- select page --"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:579
|
||||
msgid "Select from one of your site's pages."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:585
|
||||
msgid "Synchronize with WordPress Privacy Policy page."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:592
|
||||
msgid "Enter the full URL starting with http(s)://"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:614
|
||||
msgid "Select the privacy policy link target."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:637
|
||||
msgid "The ammount of time that cookie should be stored for."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:655
|
||||
msgid "Select where all the plugin scripts should be placed."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:675
|
||||
msgid "Select location for your cookie notice."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:696
|
||||
msgid "Cookie notice acceptance animation."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:707
|
||||
msgid "Enable cookie notice acceptance when users scroll."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:710
|
||||
msgid "Number of pixels user has to scroll to accept the usage of the cookies and make the notification disappear."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:731
|
||||
msgid "Choose buttons style."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:744
|
||||
msgid "Enter additional button CSS classes separated by spaces."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:870
|
||||
msgid "Settings restored to defaults."
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:976
|
||||
msgid "Support"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:993
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: ../cookie-notice.php:1060
|
||||
msgid "Are you sure you want to reset these settings to defaults?"
|
||||
msgstr ""
|
||||
267
wp-content/plugins/cookie-notice/readme.txt
Normal file
@@ -0,0 +1,267 @@
|
||||
=== Cookie Notice for GDPR ===
|
||||
Contributors: dfactory
|
||||
Donate link: http://www.dfactory.eu/
|
||||
Tags: gdpr, cookie, cookies, notice, notification, notify, cookie, cookie compliance, cookie law, eu cookie, privacy, privacy directive, consent
|
||||
Requires at least: 3.3
|
||||
Requires PHP: 5.2.4
|
||||
Tested up to: 5.0.3
|
||||
Stable tag: 1.2.46
|
||||
License: MIT License
|
||||
License URI: http://opensource.org/licenses/MIT
|
||||
|
||||
Cookie Notice allows you to elegantly inform users that your site uses cookies and to comply with the EU cookie law GDPR regulations.
|
||||
|
||||
== Description ==
|
||||
|
||||
[Cookie Notice](http://www.dfactory.eu/plugins/cookie-notice/) allows you to elegantly inform users that your site uses cookies and to comply with the EU cookie law GDPR regulations.
|
||||
|
||||
For more information, check out plugin page at [dFactory](http://www.dfactory.eu/) or plugin [support forum](http://www.dfactory.eu/support/forum/cookie-notice/).
|
||||
|
||||
= Features include: =
|
||||
|
||||
* Customizable cookie message
|
||||
* Redirects users to specified page for more cookie information
|
||||
* Multiple cookie expiry options
|
||||
* Link to Privacy Policy page
|
||||
* WordPress Privacy Policy page synchronization
|
||||
* Option to accept cookies on scroll
|
||||
* Option to set on scroll offset
|
||||
* Option to refuse functional cookies
|
||||
* Option to revoke the user consent
|
||||
* Option to manually block scripts
|
||||
* Option to reload the page after cookies are accepted
|
||||
* Select the position of the cookie message box
|
||||
* Animate the message box after cookie is accepted
|
||||
* Select bottons style from None, WordPress and Bootstrap
|
||||
* Set the text and bar background colors
|
||||
* WPML and Polylang compatible
|
||||
* SEO friendly
|
||||
* .pot file for translations included
|
||||
|
||||
= Usage: =
|
||||
|
||||
If you'd like to code a functionality depending on the cookie notice value use the function below:
|
||||
|
||||
`if ( function_exists('cn_cookies_accepted') && cn_cookies_accepted() ) {
|
||||
// Your third-party non functional code here
|
||||
}`
|
||||
|
||||
= Get involved =
|
||||
|
||||
Feel free to contribute to the source code on the [dFactory GitHub Repository](https://github.com/dfactoryplugins).
|
||||
|
||||
== Installation ==
|
||||
|
||||
1. Install Cookie Notice either via the WordPress.org plugin directory, or by uploading the files to your server
|
||||
2. Activate the plugin through the 'Plugins' menu in WordPress
|
||||
3. Go to the Cookie Notice settings and set your options.
|
||||
|
||||
== Frequently Asked Questions ==
|
||||
|
||||
No questions yet.
|
||||
|
||||
== Screenshots ==
|
||||
|
||||
1. screenshot-1.png
|
||||
|
||||
== Changelog ==
|
||||
|
||||
= 1.2.46 =
|
||||
* Tweak: Remove WP Super Cache cookie on deactivation
|
||||
* Tweak: Remove plugin version from the db on deactivation
|
||||
|
||||
= 1.2.45 =
|
||||
* Tweak: Improved WP Super Cache support
|
||||
* Tweak: CSS container style issue and media query for mobile
|
||||
|
||||
= 1.2.44 =
|
||||
* Fix: The text of the revoke button ignored in shortcode
|
||||
* Fix: Revoke consent button not displayed automatically in top position
|
||||
* Tweak: Add shortcode parsing for content of [cookies_accepted], thanks to [dsturm](https://github.com/dsturm)
|
||||
|
||||
= 1.2.43 =
|
||||
* New: Option to revoke the user consent
|
||||
* New: Script blocking extended to header and footer
|
||||
* New: Synchronization with WordPress 4.9.6 Privacy Policy page
|
||||
* New: Custom button class option
|
||||
* Tweak: Added 1 hour cookie expiry option
|
||||
|
||||
= 1.2.42 =
|
||||
* New: Introducing [cookies_accepted][/cookies_accepted] shortcode
|
||||
* Fix: Infinite cookie expiry issue
|
||||
|
||||
= 1.2.41 =
|
||||
* Fix: Infinite redirection loop with scroll enabled
|
||||
|
||||
= 1.2.40 =
|
||||
* Fix: Div align center on some themes
|
||||
* Tweak: Extended list of allowed HTML tags in refuse code
|
||||
* Tweak: Minified CSS and JS
|
||||
|
||||
= 1.2.39 =
|
||||
* New: Option to reload the page after cookies are accepted
|
||||
|
||||
= 1.2.38 =
|
||||
* Tweak: Move frontend cookie js functions before the document ready call, thanks to [fgreinus](https://github.com/fgreinus)
|
||||
* Tweak: Adjust functional javascript code handling
|
||||
* Fix: Chhromium infinity expiration date not valid
|
||||
* Fix: Remove deprecated screen_icon() function
|
||||
|
||||
= 1.2.37 =
|
||||
* Tweak: Add aria landmark role="banner"
|
||||
* Tweak: Extend cn_cookie_notice_args with button class
|
||||
|
||||
= 1.2.36.1 =
|
||||
* Fix: Repository upload issue with 1.2.36
|
||||
|
||||
= 1.2.36 =
|
||||
* Fix: String translation support for WMPL 3.2+
|
||||
* Fix: Global var possible conflict with other plugins
|
||||
* Tweak: Add $options array to "cn_cookie_notice_output" filter, thanks to [chesio](https://github.com/chesio).
|
||||
* Tweak: Removed local translation files in favor of WP repository translations.
|
||||
|
||||
= 1.2.35 =
|
||||
* Tweak: Use html_entity_decode on non-functional code block
|
||||
* Tweak: get_pages() function placement optimization
|
||||
* Tweak: Filterable manage cookie notice capability
|
||||
|
||||
= 1.2.34 =
|
||||
* Fix: Empty href in links HTML validation issue
|
||||
|
||||
= 1.2.33 =
|
||||
* New: Greek translation thanks to Elias Stefanidis
|
||||
|
||||
= 1.2.32 =
|
||||
* Fix: Accept cookie button hidden on acceptance instead of the cookie message container
|
||||
|
||||
= 1.2.31 =
|
||||
* New: Non functional Javascript code field
|
||||
* Fix: Minified Javascript caching issue
|
||||
|
||||
= 1.2.30 =
|
||||
* Fix: jQuery error after accepting cookies
|
||||
|
||||
= 1.2.29 =
|
||||
* Tweak: Add class to body element when displayed
|
||||
* Tweak: Italian translation update
|
||||
|
||||
= 1.2.28 =
|
||||
* New: Option to set on scroll offset
|
||||
|
||||
= 1.2.27 =
|
||||
* Tweak: Correctly remove scroll event, limit possible conflicts
|
||||
* Tweak: Italian translation update
|
||||
|
||||
= 1.2.26 =
|
||||
* Fix: Accept cookies on scroll option working unchecked.
|
||||
* Fix: call_user_func() warning on lower version of WP
|
||||
|
||||
= 1.2.25 =
|
||||
* New: Option to accept cookies on scroll, thanks to [Cristian Pascottini](http://cristian.pascottini.net/)
|
||||
|
||||
= 1.2.24 =
|
||||
* New: Option to refuse to accept cookies
|
||||
* New: setCookieNotice custom jQuery event
|
||||
* Tweak: Italian translation updated, thanks to Luca Speranza
|
||||
|
||||
= 1.2.23 =
|
||||
* New: Finnish translation, thanks to [Daniel Storgards](www.danielstorgards.com)
|
||||
|
||||
= 1.2.22 =
|
||||
* Tweak: Swedish translation updated, thx to Ove Kaufeldt
|
||||
|
||||
= 1.2.21 =
|
||||
* New: Plugin development moved to [dFactory GitHub Repository](https://github.com/dfactoryplugins)
|
||||
* Tweak: Code cleanup
|
||||
|
||||
= 1.2.20 =
|
||||
* New: Option to select scripts placement, header or footer
|
||||
|
||||
= 1.2.19 =
|
||||
* New: Danish translation, thanks to Lui Wallentin Gottler
|
||||
|
||||
= 1.2.18.1 =
|
||||
* Fix: Quick fix for 1.2.18 print_r in code
|
||||
|
||||
= 1.2.18 =
|
||||
* New: More info link target option
|
||||
* Tweak: Additional HTML ids, for more flexible customization
|
||||
|
||||
= 1.2.17 =
|
||||
* New: Hebrew translation, thanks to [Ahrale Shrem](http://atar4u.com/)
|
||||
|
||||
= 1.2.16 =
|
||||
* Tweak: Dutch translation missing due to a typo
|
||||
|
||||
= 1.2.15 =
|
||||
* New: Danish translation, thanks to Hans C. Jorgensen
|
||||
* Fix: Notice bar not visible if no animation selected
|
||||
|
||||
= 1.2.14 =
|
||||
* New: Hungarian translation, thanks to [Surbma](http://surbma.hu)
|
||||
|
||||
= 1.2.13 =
|
||||
* New: Croatian translation, thanks to [Marko Beus](http://www.markobeus.com/)
|
||||
|
||||
= 1.2.12 =
|
||||
* New: Slovenian translation, thanks to Thomas Cuk
|
||||
|
||||
= 1.2.11 =
|
||||
* New: Swedish translation, thanks to [Daniel Storgards](http://www.danielstorgards.com/)
|
||||
|
||||
= 1.2.10 =
|
||||
* New: Italian translation, thanks to [Luca](http://www.lucacicca.it)
|
||||
* Tweak: Confirmed WP 4.0 compatibility
|
||||
|
||||
= 1.2.9.1 =
|
||||
* Tweak: Enable HTML in cookie message text
|
||||
* New: Option to donate this plugin :)
|
||||
|
||||
= 1.2.8 =
|
||||
* New: Czech translation, thanks to [Adam Laita](http://laita.cz)
|
||||
|
||||
= 1.2.7 =
|
||||
* New: French translation, thanks to [Laura Orsal](http://www.traductrice-independante.fr)
|
||||
* New: Deleting plugin settings on deactivation as an option
|
||||
|
||||
= 1.2.6 =
|
||||
* New: German translation, thanks to Alex Ernst
|
||||
|
||||
= 1.2.5 =
|
||||
* New: Spanish translation, thanks to Fernando Blasco
|
||||
|
||||
= 1.2.4 =
|
||||
* New: Added filter hooks to customize where and how display the cookie notice
|
||||
|
||||
= 1.2.3 =
|
||||
* New: Portuguese translation, thanks to Luis Maia
|
||||
|
||||
= 1.2.2 =
|
||||
* Fix: Read more linking to default site language in WPML & Polylang
|
||||
|
||||
= 1.2.1 =
|
||||
* Tweak: UI improvements for WP 3.8
|
||||
|
||||
= 1.2.0 =
|
||||
* Fix: Cookie not saving in IE
|
||||
* Fix: Notice hidden under Admin bar bug
|
||||
* Tweak: Improved WPML & Polylang compatibility
|
||||
|
||||
= 1.1.0 =
|
||||
* New: Rewritten cookie setting method to pure JS
|
||||
* Fix: Compatibility with WP Super Cache and other caching plugins
|
||||
|
||||
= 1.0.2 =
|
||||
* New: Dutch translation, thanks to Heleen van den Bos
|
||||
|
||||
= 1.0.1 =
|
||||
* Tweak: Changed setting cookie mode from AJAX to JS driven
|
||||
|
||||
= 1.0.0 =
|
||||
Initial release
|
||||
|
||||
== Upgrade Notice ==
|
||||
|
||||
= 1.2.46 =
|
||||
* Tweak: Remove WP Super Cache cookie on deactivation
|
||||
* Tweak: Remove plugin version from the db on deactivation
|
||||
1
wp-content/plugins/free-imagescc-importer/css/admin.css
Normal file
@@ -0,0 +1 @@
|
||||
.progress-container{position:absolute;width:100%;height:100%;background:rgba(255,255,255,0.8);top:0;left:0;z-index:90000000000}@-webkit-keyframes load{0%{stroke-dashoffset:0}50%{stroke-dashoffset:630}100%{stroke-dashoffset:0}}@keyframes load{0%{stroke-dashoffset:0}50%{stroke-dashoffset:630}100%{stroke-dashoffset:0}}.progress-container .progress{position:relative;display:inline-block;padding:0;text-align:center;display:block;margin-top:15%}.progress-container .progress .dashicons.dashicons-yes{font-size:170px;position:relative;right:174px;font-weight:200;visibility:hidden}.progress-container .progress>li{display:inline-block;position:relative;text-align:center;color:#93A2AC;font-family:Lato;font-weight:100;margin:2rem}.progress-container .progress svg{width:10rem;height:10rem}.progress-container .progress svg:nth-child(2){position:absolute;left:0;top:0;transform:rotate(-90deg);-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg)}.progress-container .progress svg:nth-child(2) path{fill:none;stroke-width:7;stroke-dasharray:629;stroke:rgba(255,255,255,0.9);-webkit-animation:load 5s;animation:load 5s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.progress-container.success .progress .dashicons.dashicons-yes{visibility:visible}.progress-container.success .progress svg:nth-child(2) path{stroke:rgba(255,255,255,0)}.attachments-browser.fap-media .media-sidebar .lh-logo{visibility:visible !important;position:absolute;width:267px;bottom:25px}.attachments-browser.fap-media .media-sidebar .lh-logo img{max-width:215px;display:block;margin:auto}.attachments-browser.fap-media .media-sidebar .lh-logo:before{content:"powered by";display:block;text-align:center;font-size:10px}.broadcast{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;adjust-items:center;-webkit-flex-flow:column;-ms-flex-flow:column;flex-flow:column;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background-color:rgba(255,255,255,0.9);z-index:99999}.broadcast p{padding-left:30%;padding-right:30%;font-weight:bold;font-size:24px;line-height:1.5em;text-align:center}.broadcast a.close_broadcast{display:inline-block;padding:8px 20px;background-color:#008ec2!important;color:#fff;cursor:pointer;border-radius:4px}.broadcast.closed{display:none}
|
||||
38
wp-content/plugins/free-imagescc-importer/fap_client.php
Normal file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
/**
|
||||
* @package lh_fap
|
||||
*/
|
||||
/*
|
||||
Plugin Name: free-images.cc Importer
|
||||
Plugin URI: http://www.free-images.cc/plugin
|
||||
Description: This plugin integrates the free-images.cc image library into your media browser. With this you have beautiful, free imagery available at the tip of your fingers.
|
||||
Author: Luehrsen // Heinrich
|
||||
Author URI: http://www.luehrsen-heinrich.de
|
||||
Version: 0.6.2
|
||||
License: GNU General Public License v2 or later
|
||||
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
||||
Tags: free, images, image, pictures, media, import, creative commons
|
||||
Domain Path: /lang
|
||||
Text Domain: lhf
|
||||
*/
|
||||
|
||||
// Make sure we don't expose any info if called directly
|
||||
if ( !function_exists( 'add_action' ) ) {
|
||||
echo 'Hi there! I\'m just a plugin, not much I can do when called directly.';
|
||||
exit;
|
||||
}
|
||||
|
||||
define( 'LHFAP__PLUGIN_URL', plugin_dir_url( __FILE__ ) );
|
||||
define( 'LHFAP__PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
|
||||
define( 'LHFAP__PLUGIN_FILE', ( __FILE__ ) );
|
||||
|
||||
|
||||
// Require needed files
|
||||
require_once( LHFAP__PLUGIN_DIR . "/inc/lhfap.core.php" ); // The actual core of the plugin
|
||||
require_once( LHFAP__PLUGIN_DIR . "/inc/lhfap.admin.php" ); // The administrational backend functions of the plugin
|
||||
require_once( LHFAP__PLUGIN_DIR . "/inc/lhfap.import.php" ); // The administrational backend functions of the plugin
|
||||
require_once( LHFAP__PLUGIN_DIR . "/inc/lhfap.templates.php" ); // The templates for our media frame view
|
||||
|
||||
|
||||
// Initialize the class
|
||||
$lh_fap = new LH_Fap_Plugin();
|
||||
197
wp-content/plugins/free-imagescc-importer/img/lh_logo_head.svg
Normal file
@@ -0,0 +1,197 @@
|
||||
<svg version="1.1" id="lh_logo_svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="294px" height="44px" viewBox="0 0 294 44" xml:space="preserve">
|
||||
<g>
|
||||
<g clip-path="logo">
|
||||
<path class="lh-blue-BG" clip-path="url(#SVGID_2_)" fill="#1564A1" d="M160.71,23.993l7.938-20.976h125.02v20.976 M189.207,21.047v-1.496
|
||||
l-1.123-0.221c-0.264-0.065-0.308-0.242-0.308-0.395V8.505c0-0.153,0.044-0.33,0.308-0.396l1.123-0.22V6.393h-5.172v1.496
|
||||
l1.145,0.22c0.264,0.066,0.309,0.243,0.309,0.396v4.159h-8.34V8.505c0-0.153,0.045-0.33,0.309-0.396l1.122-0.22V6.393h-5.171v1.496
|
||||
l1.145,0.22c0.264,0.066,0.308,0.243,0.308,0.396v10.43c0,0.153-0.044,0.33-0.308,0.395l-1.145,0.221v1.496h5.171v-1.496
|
||||
l-1.122-0.221c-0.264-0.065-0.309-0.242-0.309-0.395v-4.467h8.34v4.467c0,0.153-0.045,0.33-0.309,0.395l-1.145,0.221v1.496H189.207
|
||||
z M203.836,21.047v-1.959h-8.075V14.49h7.812v-1.914h-7.812V8.352h8.075V6.393H192.02v1.496l1.145,0.22
|
||||
c0.264,0.066,0.309,0.243,0.309,0.396v10.43c0,0.153-0.045,0.33-0.309,0.395l-1.145,0.221v1.496H203.836z M211.49,21.047v-1.496
|
||||
l-1.122-0.221c-0.263-0.065-0.308-0.242-0.308-0.395V8.505c0-0.153,0.045-0.33,0.308-0.396l1.122-0.22V6.393h-5.17v1.496
|
||||
l1.144,0.22c0.265,0.066,0.309,0.243,0.309,0.396v10.43c0,0.153-0.044,0.33-0.309,0.395l-1.144,0.221v1.496H211.49z M230.721,7.889
|
||||
V6.393h-5.018v1.496l1.145,0.22c0.264,0.066,0.308,0.243,0.308,0.396v10.056c0,0.351-0.044,0.616-0.462,0.616
|
||||
c-0.264,0-0.374-0.132-0.506-0.418l-5.854-12.366h-6.028v1.496l1.144,0.22c0.265,0.066,0.309,0.243,0.309,0.396v10.43
|
||||
c0,0.153-0.044,0.33-0.309,0.395l-1.144,0.221v1.496h4.995v-1.496l-1.123-0.221c-0.264-0.065-0.308-0.242-0.308-0.395V8.682
|
||||
c0-0.375,0.044-0.595,0.462-0.595c0.286,0,0.374,0.11,0.506,0.418l5.897,12.542h4.532V8.505c0-0.153,0.045-0.33,0.309-0.396
|
||||
L230.721,7.889z M237.274,14.645h4.378v2.265l2.751,4.137h3.234v-1.496l-0.858-0.198c-0.484-0.111-0.748-0.176-1.012-0.572
|
||||
l-2.377-3.499c-0.109-0.154-0.197-0.264-0.197-0.44c0-0.352,0.264-0.397,0.572-0.44c0.836-0.087,1.693-0.375,2.266-1.012
|
||||
c0.616-0.683,0.924-1.628,0.924-2.882c0-3.037-1.144-4.115-4.532-4.115h-8.89v1.496l1.145,0.22
|
||||
c0.264,0.066,0.309,0.243,0.309,0.396v10.43c0,0.153-0.045,0.33-0.309,0.395l-1.145,0.221v1.496h5.172v-1.496l-1.123-0.221
|
||||
c-0.264-0.065-0.308-0.242-0.308-0.395V14.645z M244.579,10.529c0,0.705-0.022,1.277-0.418,1.672
|
||||
c-0.353,0.309-1.034,0.529-2.509,0.529h-4.378V8.329h4.378c1.475,0,2.156,0.198,2.509,0.529
|
||||
C244.557,9.253,244.579,9.848,244.579,10.529 M255.314,21.047v-1.496l-1.122-0.221c-0.265-0.065-0.308-0.242-0.308-0.395V8.505
|
||||
c0-0.153,0.043-0.33,0.308-0.396l1.122-0.22V6.393h-5.171v1.496l1.144,0.22c0.265,0.066,0.309,0.243,0.309,0.396v10.43
|
||||
c0,0.153-0.044,0.33-0.309,0.395l-1.144,0.221v1.496H255.314z M270.363,20.563l-0.309-1.87c0,0-2.597,0.506-4.885,0.506
|
||||
c-4.334,0-4.775-1.232-4.775-5.479c0-4.423,0.441-5.435,4.842-5.435c2.288,0,4.818,0.528,4.818,0.528l0.309-1.957
|
||||
c0,0-2.575-0.639-5.392-0.639c-5.148,0-6.931,1.32-6.931,7.503c0,6.182,1.782,7.481,6.931,7.481
|
||||
C267.788,21.201,270.363,20.563,270.363,20.563 M288.668,21.047v-1.496l-1.123-0.221c-0.264-0.065-0.308-0.242-0.308-0.395V8.505
|
||||
c0-0.153,0.044-0.33,0.308-0.396l1.123-0.22V6.393h-5.172v1.496l1.145,0.22c0.264,0.066,0.309,0.243,0.309,0.396v4.159h-8.34V8.505
|
||||
c0-0.153,0.045-0.33,0.309-0.396l1.122-0.22V6.393h-5.171v1.496l1.145,0.22c0.264,0.066,0.308,0.243,0.308,0.396v10.43
|
||||
c0,0.153-0.044,0.33-0.308,0.395l-1.145,0.221v1.496h5.171v-1.496l-1.122-0.221c-0.264-0.065-0.309-0.242-0.309-0.395v-4.467h8.34
|
||||
v4.467c0,0.153-0.045,0.33-0.309,0.395l-1.145,0.221v1.496H288.668z"/>
|
||||
<path class="lh-blue-BG" clip-path="url(#SVGID_2_)" fill="#1564A1" d="M141.434,3.017l-7.937,20.977H0V3.017 M14.454,21.047v-1.98H7.149V8.505
|
||||
c0-0.153,0.044-0.33,0.308-0.395l1.122-0.221V6.393h-5.17v1.496L4.553,8.11c0.264,0.065,0.308,0.242,0.308,0.395v10.43
|
||||
c0,0.153-0.044,0.33-0.308,0.395l-1.144,0.221v1.496H14.454z M31.791,7.889V6.393H26.62v1.496l1.144,0.221
|
||||
c0.264,0.065,0.309,0.242,0.309,0.395v10.254c0,0-1.937,0.506-4.445,0.506c-3.037,0-3.543-0.572-3.543-3.63v-7.13
|
||||
c0-0.153,0.044-0.33,0.308-0.395l1.122-0.221V6.393h-5.17v1.496l1.144,0.221c0.264,0.065,0.308,0.242,0.308,0.395v7.415
|
||||
c0,4.049,1.056,5.282,5.633,5.282c0.616,0,1.826-0.111,1.826-0.111l1.826-1.188c0.198-0.132,0.352-0.264,0.594-0.264
|
||||
c0.419,0,0.463,0.309,0.506,0.484l0.154,0.924h3.455v-1.496l-1.122-0.221c-0.264-0.065-0.308-0.242-0.308-0.395V8.505
|
||||
c0-0.153,0.044-0.33,0.308-0.395L31.791,7.889z M46.397,21.047v-1.959h-8.075v-4.597h7.811v-1.915h-7.811V8.352h8.075V6.393H34.582
|
||||
v1.496l1.144,0.221c0.265,0.065,0.309,0.242,0.309,0.395v10.43c0,0.153-0.044,0.33-0.309,0.395l-1.144,0.221v1.496H46.397z
|
||||
M64.68,21.047v-1.496l-1.122-0.221c-0.264-0.065-0.308-0.242-0.308-0.395V8.505c0-0.153,0.044-0.33,0.308-0.395l1.122-0.221V6.393
|
||||
h-5.17v1.496l1.144,0.221c0.264,0.065,0.308,0.242,0.308,0.395v4.159h-8.339V8.505c0-0.153,0.044-0.33,0.308-0.395l1.122-0.221
|
||||
V6.393h-5.171v1.496l1.144,0.221c0.264,0.065,0.308,0.242,0.308,0.395v10.43c0,0.153-0.044,0.33-0.308,0.395l-1.144,0.221v1.496
|
||||
h5.171v-1.496l-1.122-0.221c-0.264-0.065-0.308-0.242-0.308-0.395v-4.467h8.339v4.467c0,0.153-0.044,0.33-0.308,0.395l-1.144,0.221
|
||||
v1.496H64.68z M71.235,14.645h4.378v2.265l2.751,4.137h3.234v-1.496l-0.858-0.198c-0.484-0.11-0.748-0.176-1.012-0.571
|
||||
l-2.377-3.499c-0.109-0.155-0.198-0.265-0.198-0.441c0-0.351,0.264-0.396,0.572-0.439c0.836-0.088,1.695-0.375,2.267-1.013
|
||||
c0.616-0.683,0.924-1.628,0.924-2.882c0-3.037-1.144-4.115-4.533-4.115h-8.889v1.496l1.144,0.221
|
||||
c0.264,0.065,0.308,0.242,0.308,0.395v10.43c0,0.153-0.044,0.33-0.308,0.395l-1.144,0.221v1.496h5.171v-1.496l-1.123-0.221
|
||||
c-0.263-0.065-0.307-0.242-0.307-0.395V14.645z M78.539,10.53c0,0.704-0.022,1.276-0.418,1.671
|
||||
c-0.352,0.309-1.034,0.529-2.508,0.529h-4.378V8.329h4.378c1.474,0,2.156,0.199,2.508,0.529
|
||||
C78.517,9.253,78.539,9.848,78.539,10.53 M89.979,21.202c3.476,0,5.721-0.594,5.721-4.578c0-4.114-2.685-4.005-5.897-4.158
|
||||
c-2.025-0.089-3.521,0.023-3.521-2.156c0-2.2,2.112-2.112,3.829-2.112c1.914,0,4.488,0.505,4.488,0.505l0.309-1.914
|
||||
c0,0-2.443-0.55-5.171-0.55c-3.895,0-5.721,0.924-5.721,4.357c0,3.982,2.64,3.916,5.941,4.137c2.398,0.153,3.432-0.045,3.432,2.244
|
||||
c0,2.244-1.98,2.244-3.674,2.244c-2.289,0-5.127-0.551-5.127-0.551l-0.264,1.938C84.324,20.608,86.92,21.202,89.979,21.202
|
||||
M110.22,21.047v-1.959h-8.076v-4.597h7.811v-1.915h-7.811V8.352h8.076V6.393H98.404v1.496l1.144,0.221
|
||||
c0.264,0.065,0.308,0.242,0.308,0.395v10.43c0,0.153-0.044,0.33-0.308,0.395l-1.144,0.221v1.496H110.22z M129.118,7.889V6.393
|
||||
h-5.017v1.496l1.144,0.221c0.264,0.065,0.308,0.242,0.308,0.395v10.056c0,0.351-0.044,0.616-0.462,0.616
|
||||
c-0.264,0-0.374-0.132-0.506-0.418l-5.853-12.366h-6.029v1.496l1.144,0.221c0.265,0.065,0.309,0.242,0.309,0.395v10.43
|
||||
c0,0.153-0.044,0.33-0.309,0.395l-1.144,0.221v1.496h4.995v-1.496l-1.122-0.221c-0.264-0.065-0.308-0.242-0.308-0.395V8.682
|
||||
c0-0.375,0.044-0.595,0.462-0.595c0.286,0,0.374,0.111,0.506,0.418l5.897,12.542h4.532V8.505c0-0.153,0.045-0.33,0.308-0.395
|
||||
L129.118,7.889z"/>
|
||||
<polygon class="lh-slashes" clip-path="url(#SVGID_2_)" fill="#010202" points="147.806,0 151.838,0 141.219,27.676 137.186,27.676 "/>
|
||||
<polygon class="lh-slashes" clip-path="url(#SVGID_2_)" fill="#010202" points="160.828,0 164.861,0 154.242,27.676 150.21,27.676 "/>
|
||||
</g>
|
||||
<g clip-path="claim">
|
||||
<path class="lh-claim" fill="#676767" d="M10.555,42.794l0.475-0.105c0.119-0.026,0.211-0.04,0.211-0.158c0-0.066-0.013-0.106-0.053-0.212
|
||||
l-0.449-1.161H6.16l-0.476,1.188c-0.04,0.093-0.053,0.133-0.053,0.186c0,0.118,0.093,0.145,0.225,0.171l0.462,0.093v0.897H3.375
|
||||
v-0.897l0.607-0.132c0.198-0.04,0.264-0.132,0.33-0.304l2.626-6.124c0.066-0.159,0.026-0.277-0.145-0.304l-0.7-0.119v-0.91h3.538
|
||||
l2.97,7.457c0.105,0.237,0.185,0.264,0.422,0.316l0.554,0.119v0.897h-3.022V42.794z M8.787,36.194
|
||||
c-0.079-0.198-0.119-0.304-0.317-0.304c-0.198,0-0.237,0.105-0.317,0.304l-1.557,3.881h3.722L8.787,36.194z"/>
|
||||
<path class="lh-claim" fill="#676767" d="M21.062,43.691l-0.093-0.555c-0.026-0.105-0.053-0.29-0.303-0.29c-0.146,0-0.238,0.079-0.356,0.158
|
||||
l-1.096,0.713c0,0-0.607,0.066-0.977,0.066c-2.996,0-3.867-0.739-3.867-4.475c0-3.775,1.082-4.487,4.158-4.487
|
||||
c1.689,0,3.366,0.436,3.366,0.436l-0.172,1.174c0,0-1.861-0.356-3.3-0.356c-2.006,0-2.64,0.277-2.64,3.234
|
||||
c0,2.996,0.475,3.286,2.547,3.286c1.214,0,2.099-0.172,2.429-0.251v-3.432h1.386v4.778H21.062z"/>
|
||||
<path class="lh-claim" fill="#676767" d="M23.859,43.691v-0.897l0.687-0.132c0.158-0.04,0.185-0.146,0.185-0.238v-6.256
|
||||
c0-0.093-0.026-0.198-0.185-0.237l-0.687-0.132v-0.897h7.088v1.174h-4.844v2.534h4.686v1.148h-4.686v2.759h4.844v1.175H23.859z"/>
|
||||
<path class="lh-claim" fill="#676767" d="M41.599,35.931c-0.159,0.039-0.185,0.145-0.185,0.237v7.523h-2.719l-3.538-7.523
|
||||
c-0.079-0.185-0.132-0.251-0.303-0.251c-0.251,0-0.277,0.132-0.277,0.356v6.15c0,0.093,0.026,0.198,0.185,0.238l0.673,0.132v0.897
|
||||
h-2.996v-0.897l0.687-0.132c0.158-0.04,0.185-0.146,0.185-0.238v-6.256c0-0.093-0.026-0.198-0.185-0.237l-0.687-0.132v-0.897
|
||||
h3.617l3.511,7.417c0.079,0.172,0.145,0.251,0.304,0.251c0.25,0,0.277-0.158,0.277-0.369v-6.032c0-0.093-0.026-0.198-0.185-0.237
|
||||
l-0.687-0.132v-0.897h3.009v0.897L41.599,35.931z"/>
|
||||
<path class="lh-claim" fill="#676767" d="M47.854,36.089v6.335c0,0.093,0.026,0.198,0.185,0.238l0.686,0.132v0.897h-3.115v-0.897l0.686-0.132
|
||||
c0.159-0.04,0.185-0.146,0.185-0.238v-6.335h-3.287v-1.188h7.946v1.188H47.854z"/>
|
||||
<path class="lh-claim" fill="#676767" d="M60.697,35.931c-0.158,0.039-0.185,0.145-0.185,0.237v6.256c0,0.093,0.026,0.198,0.185,0.238l0.673,0.132
|
||||
v0.897h-2.072l-0.092-0.555c-0.026-0.105-0.053-0.29-0.304-0.29c-0.145,0-0.237,0.079-0.356,0.158l-1.095,0.713
|
||||
c0,0-0.726,0.066-1.096,0.066c-2.745,0-3.379-0.739-3.379-3.168v-4.448c0-0.093-0.026-0.198-0.185-0.237l-0.687-0.132v-0.897
|
||||
h3.102v0.897l-0.673,0.132c-0.158,0.039-0.185,0.145-0.185,0.237v4.276c0,1.835,0.304,2.178,2.125,2.178
|
||||
c1.505,0,2.667-0.304,2.667-0.304v-6.15c0-0.093-0.026-0.198-0.185-0.237l-0.686-0.132v-0.897h3.102v0.897L60.697,35.931z"/>
|
||||
<path class="lh-claim" fill="#676767" d="M65.29,42.424c0,0.093,0.026,0.198,0.185,0.238l0.673,0.132v0.897h-3.102v-0.897l0.687-0.132
|
||||
c0.158-0.04,0.185-0.146,0.185-0.238v-6.256c0-0.093-0.026-0.198-0.185-0.237l-0.687-0.132v-0.897h5.333
|
||||
c2.032,0,2.719,0.646,2.719,2.468c0,0.752-0.185,1.32-0.554,1.729c-0.343,0.383-0.858,0.554-1.359,0.606
|
||||
c-0.185,0.026-0.343,0.053-0.343,0.265c0,0.105,0.053,0.171,0.119,0.264l1.425,2.099c0.159,0.237,0.317,0.277,0.607,0.343
|
||||
l0.515,0.119v0.897h-1.94l-1.649-2.481v-1.359H65.29V42.424z M69.421,36.379c-0.211-0.197-0.62-0.316-1.504-0.316H65.29v2.64
|
||||
h2.627c0.884,0,1.293-0.132,1.504-0.316c0.238-0.238,0.251-0.581,0.251-1.003C69.672,36.974,69.659,36.617,69.421,36.379z"/>
|
||||
<path class="lh-claim" fill="#676767" d="M78.199,36.075v2.601h4.409v1.175h-4.409v2.573c0,0.093,0.026,0.198,0.185,0.238l0.673,0.132v0.897h-3.102
|
||||
v-0.897l0.687-0.132c0.158-0.04,0.185-0.146,0.185-0.238v-6.256c0-0.093-0.026-0.198-0.185-0.237l-0.687-0.132v-0.897h6.811v1.174
|
||||
H78.199z"/>
|
||||
<path class="lh-claim" fill="#676767" d="M92.559,35.931c-0.158,0.039-0.185,0.145-0.185,0.237v6.256c0,0.093,0.026,0.198,0.185,0.238l0.673,0.132
|
||||
v0.897H91.16l-0.092-0.555c-0.026-0.105-0.053-0.29-0.304-0.29c-0.145,0-0.237,0.079-0.356,0.158l-1.095,0.713
|
||||
c0,0-0.726,0.066-1.096,0.066c-2.745,0-3.379-0.739-3.379-3.168v-4.448c0-0.093-0.026-0.198-0.185-0.237l-0.687-0.132v-0.897
|
||||
h3.102v0.897l-0.673,0.132c-0.158,0.039-0.185,0.145-0.185,0.237v4.276c0,1.835,0.304,2.178,2.125,2.178
|
||||
c1.505,0,2.667-0.304,2.667-0.304v-6.15c0-0.093-0.026-0.198-0.185-0.237l-0.686-0.132v-0.897h3.102v0.897L92.559,35.931z
|
||||
M86.897,33.897V32.75h1.333v1.147H86.897z M89.141,33.897V32.75h1.333v1.147H89.141z"/>
|
||||
<path class="lh-claim" fill="#676767" d="M97.152,42.424c0,0.093,0.026,0.198,0.185,0.238l0.673,0.132v0.897h-3.102v-0.897l0.687-0.132
|
||||
c0.158-0.04,0.185-0.146,0.185-0.238v-6.256c0-0.093-0.026-0.198-0.185-0.237l-0.687-0.132v-0.897h5.333
|
||||
c2.032,0,2.719,0.646,2.719,2.468c0,0.752-0.185,1.32-0.554,1.729c-0.343,0.383-0.858,0.554-1.359,0.606
|
||||
c-0.185,0.026-0.343,0.053-0.343,0.265c0,0.105,0.053,0.171,0.119,0.264l1.425,2.099c0.159,0.237,0.317,0.277,0.607,0.343
|
||||
l0.515,0.119v0.897h-1.94l-1.649-2.481v-1.359h-2.627V42.424z M101.284,36.379c-0.211-0.197-0.62-0.316-1.504-0.316h-2.627v2.64
|
||||
h2.627c0.884,0,1.293-0.132,1.504-0.316c0.238-0.238,0.251-0.581,0.251-1.003C101.535,36.974,101.521,36.617,101.284,36.379z"/>
|
||||
<path class="lh-claim" fill="#676767" d="M119.05,35.799l-0.687,0.132c-0.158,0.039-0.185,0.145-0.185,0.237v6.256c0,0.093,0.026,0.198,0.185,0.238
|
||||
l0.687,0.132v0.897h-3.115v-0.897l0.687-0.132c0.158-0.04,0.185-0.146,0.185-0.238v-6.15c0-0.211-0.04-0.356-0.277-0.356
|
||||
c-0.211,0-0.264,0.146-0.343,0.304l-1.94,4.514h-1.729l-1.993-4.566c-0.066-0.132-0.132-0.251-0.303-0.251
|
||||
c-0.251,0-0.277,0.146-0.277,0.356v6.15c0,0.093,0.026,0.198,0.185,0.238l0.673,0.132v0.897h-2.983v-0.897l0.687-0.132
|
||||
c0.158-0.04,0.185-0.146,0.185-0.238v-6.256c0-0.093-0.026-0.198-0.185-0.237l-0.687-0.132v-0.897h3.59l1.861,4.526
|
||||
c0.026,0.04,0.053,0.093,0.132,0.093c0.066,0,0.105-0.053,0.119-0.093l1.834-4.526h3.696V35.799z"/>
|
||||
<path class="lh-claim" fill="#676767" d="M120.739,43.691v-0.897l0.687-0.132c0.158-0.04,0.185-0.146,0.185-0.238v-6.256
|
||||
c0-0.093-0.026-0.198-0.185-0.237l-0.687-0.132v-0.897h7.088v1.174h-4.844v2.534h4.686v1.148h-4.686v2.759h4.844v1.175H120.739z"
|
||||
/>
|
||||
<path class="lh-claim" fill="#676767" d="M134.308,43.691h-4.989v-0.897l0.687-0.132c0.158-0.04,0.185-0.146,0.185-0.238v-6.256
|
||||
c0-0.093-0.026-0.198-0.185-0.237l-0.687-0.132v-0.897h4.989c3.537,0,3.788,1.821,3.788,4.382S137.845,43.691,134.308,43.691z
|
||||
M134.281,36.062h-2.719v6.468h2.719c2.375,0,2.402-1.268,2.402-3.234C136.683,37.316,136.657,36.062,134.281,36.062z"/>
|
||||
<path class="lh-claim" fill="#676767" d="M139.732,43.691v-0.897l0.687-0.132c0.158-0.04,0.185-0.146,0.185-0.238v-6.256
|
||||
c0-0.093-0.026-0.198-0.185-0.237l-0.687-0.132v-0.897h3.102v0.897l-0.673,0.132c-0.159,0.039-0.185,0.145-0.185,0.237v6.256
|
||||
c0,0.093,0.026,0.198,0.185,0.238l0.673,0.132v0.897H139.732z"/>
|
||||
<path class="lh-claim" fill="#676767" d="M144.523,43.691v-0.897l0.687-0.132c0.158-0.04,0.185-0.146,0.185-0.238v-6.256
|
||||
c0-0.093-0.026-0.198-0.185-0.237l-0.687-0.132v-0.897h7.088v1.174h-4.844v2.534h4.686v1.148h-4.686v2.759h4.844v1.175H144.523z"
|
||||
/>
|
||||
<path class="lh-claim" fill="#676767" d="M162.263,35.931c-0.158,0.039-0.185,0.145-0.185,0.237v7.523h-2.72l-3.537-7.523
|
||||
c-0.079-0.185-0.132-0.251-0.304-0.251c-0.25,0-0.276,0.132-0.276,0.356v6.15c0,0.093,0.026,0.198,0.185,0.238l0.673,0.132v0.897
|
||||
h-2.996v-0.897l0.687-0.132c0.158-0.04,0.185-0.146,0.185-0.238v-6.256c0-0.093-0.026-0.198-0.185-0.237l-0.687-0.132v-0.897
|
||||
h3.616l3.511,7.417c0.08,0.172,0.146,0.251,0.304,0.251c0.251,0,0.277-0.158,0.277-0.369v-6.032c0-0.093-0.026-0.198-0.185-0.237
|
||||
l-0.687-0.132v-0.897h3.01v0.897L162.263,35.931z"/>
|
||||
<path class="lh-claim" fill="#676767" d="M172.875,35.799l-0.674,0.185c-0.211,0.053-0.329,0.105-0.475,0.251l-3.062,2.996l3.313,3.102
|
||||
c0.277,0.264,0.304,0.29,0.633,0.356l0.476,0.092v0.911h-3.26v-0.897l0.383-0.066c0.132-0.026,0.25-0.053,0.25-0.211
|
||||
c0-0.079-0.053-0.146-0.105-0.185l-2.468-2.31c-0.172-0.146-0.344-0.317-0.581-0.317c-0.33,0-0.422,0.186-0.422,0.488v2.23
|
||||
c0,0.093,0.026,0.198,0.185,0.238l0.673,0.132v0.897h-3.102v-0.897l0.687-0.132c0.158-0.04,0.185-0.146,0.185-0.238v-6.256
|
||||
c0-0.093-0.026-0.198-0.185-0.237l-0.687-0.132v-0.897h3.102v0.897l-0.673,0.132c-0.158,0.039-0.185,0.145-0.185,0.237v2.218
|
||||
c0,0.304,0.092,0.488,0.422,0.488c0.237,0,0.423-0.158,0.581-0.317l2.376-2.349c0.053-0.053,0.079-0.093,0.079-0.172
|
||||
c0-0.132-0.093-0.172-0.212-0.185l-0.369-0.053v-0.897h3.115V35.799z"/>
|
||||
<path class="lh-claim" fill="#676767" d="M178.049,43.784c-3.512,0-3.907-0.964-3.907-4.475c0-3.775,0.541-4.501,3.894-4.501
|
||||
c3.524,0,3.881,0.95,3.881,4.501S181.546,43.784,178.049,43.784z M178.035,35.957c-2.23,0-2.481,0.33-2.481,3.353
|
||||
c0,2.864,0.185,3.312,2.495,3.312c2.362,0,2.454-0.475,2.454-3.312C180.503,36.551,180.477,35.957,178.035,35.957z"/>
|
||||
<path class="lh-claim" fill="#676767" d="M194.785,35.799l-0.687,0.132c-0.158,0.039-0.185,0.145-0.185,0.237v6.256
|
||||
c0,0.093,0.026,0.198,0.185,0.238l0.687,0.132v0.897h-3.115v-0.897l0.687-0.132c0.158-0.04,0.185-0.146,0.185-0.238v-6.15
|
||||
c0-0.211-0.039-0.356-0.277-0.356c-0.211,0-0.264,0.146-0.343,0.304l-1.94,4.514h-1.729l-1.993-4.566
|
||||
c-0.066-0.132-0.132-0.251-0.304-0.251c-0.251,0-0.277,0.146-0.277,0.356v6.15c0,0.093,0.026,0.198,0.185,0.238l0.674,0.132v0.897
|
||||
h-2.983v-0.897l0.687-0.132c0.158-0.04,0.185-0.146,0.185-0.238v-6.256c0-0.093-0.026-0.198-0.185-0.237l-0.687-0.132v-0.897h3.59
|
||||
l1.861,4.526c0.026,0.04,0.053,0.093,0.132,0.093c0.066,0,0.105-0.053,0.119-0.093l1.834-4.526h3.696V35.799z"/>
|
||||
<path class="lh-claim" fill="#676767" d="M207.707,35.799l-0.687,0.132c-0.158,0.039-0.185,0.145-0.185,0.237v6.256
|
||||
c0,0.093,0.026,0.198,0.185,0.238l0.687,0.132v0.897h-3.115v-0.897l0.687-0.132c0.158-0.04,0.185-0.146,0.185-0.238v-6.15
|
||||
c0-0.211-0.039-0.356-0.277-0.356c-0.211,0-0.264,0.146-0.343,0.304l-1.94,4.514h-1.729l-1.993-4.566
|
||||
c-0.066-0.132-0.132-0.251-0.304-0.251c-0.251,0-0.277,0.146-0.277,0.356v6.15c0,0.093,0.026,0.198,0.185,0.238l0.674,0.132v0.897
|
||||
h-2.983v-0.897l0.687-0.132c0.158-0.04,0.185-0.146,0.185-0.238v-6.256c0-0.093-0.026-0.198-0.185-0.237l-0.687-0.132v-0.897h3.59
|
||||
l1.861,4.526c0.026,0.04,0.053,0.093,0.132,0.093c0.066,0,0.105-0.053,0.119-0.093l1.834-4.526h3.696V35.799z"/>
|
||||
<path class="lh-claim" fill="#676767" d="M218.042,35.931c-0.158,0.039-0.185,0.145-0.185,0.237v6.256c0,0.093,0.026,0.198,0.185,0.238l0.673,0.132
|
||||
v0.897h-2.072l-0.093-0.555c-0.026-0.105-0.053-0.29-0.303-0.29c-0.146,0-0.238,0.079-0.356,0.158l-1.096,0.713
|
||||
c0,0-0.726,0.066-1.096,0.066c-2.745,0-3.379-0.739-3.379-3.168v-4.448c0-0.093-0.026-0.198-0.185-0.237l-0.687-0.132v-0.897
|
||||
h3.102v0.897l-0.673,0.132c-0.158,0.039-0.185,0.145-0.185,0.237v4.276c0,1.835,0.304,2.178,2.125,2.178
|
||||
c1.505,0,2.666-0.304,2.666-0.304v-6.15c0-0.093-0.026-0.198-0.185-0.237l-0.687-0.132v-0.897h3.102v0.897L218.042,35.931z"/>
|
||||
<path class="lh-claim" fill="#676767" d="M229.552,35.931c-0.158,0.039-0.185,0.145-0.185,0.237v7.523h-2.72l-3.537-7.523
|
||||
c-0.079-0.185-0.132-0.251-0.304-0.251c-0.25,0-0.276,0.132-0.276,0.356v6.15c0,0.093,0.026,0.198,0.185,0.238l0.673,0.132v0.897
|
||||
h-2.996v-0.897l0.687-0.132c0.158-0.04,0.185-0.146,0.185-0.238v-6.256c0-0.093-0.026-0.198-0.185-0.237l-0.687-0.132v-0.897
|
||||
h3.616l3.511,7.417c0.08,0.172,0.146,0.251,0.304,0.251c0.251,0,0.277-0.158,0.277-0.369v-6.032c0-0.093-0.026-0.198-0.185-0.237
|
||||
l-0.687-0.132v-0.897h3.01v0.897L229.552,35.931z"/>
|
||||
<path class="lh-claim" fill="#676767" d="M231.928,43.691v-0.897l0.687-0.132c0.158-0.04,0.185-0.146,0.185-0.238v-6.256
|
||||
c0-0.093-0.026-0.198-0.185-0.237l-0.687-0.132v-0.897h3.102v0.897l-0.673,0.132c-0.158,0.039-0.185,0.145-0.185,0.237v6.256
|
||||
c0,0.093,0.026,0.198,0.185,0.238l0.673,0.132v0.897H231.928z"/>
|
||||
<path class="lh-claim" fill="#676767" d="M244.955,35.799l-0.674,0.185c-0.211,0.053-0.329,0.105-0.475,0.251l-3.062,2.996l3.313,3.102
|
||||
c0.277,0.264,0.304,0.29,0.633,0.356l0.476,0.092v0.911h-3.26v-0.897l0.383-0.066c0.132-0.026,0.25-0.053,0.25-0.211
|
||||
c0-0.079-0.053-0.146-0.105-0.185l-2.468-2.31c-0.172-0.146-0.344-0.317-0.581-0.317c-0.33,0-0.422,0.186-0.422,0.488v2.23
|
||||
c0,0.093,0.026,0.198,0.185,0.238l0.673,0.132v0.897h-3.102v-0.897l0.687-0.132c0.158-0.04,0.185-0.146,0.185-0.238v-6.256
|
||||
c0-0.093-0.026-0.198-0.185-0.237l-0.687-0.132v-0.897h3.102v0.897l-0.673,0.132c-0.158,0.039-0.185,0.145-0.185,0.237v2.218
|
||||
c0,0.304,0.092,0.488,0.422,0.488c0.237,0,0.423-0.158,0.581-0.317l2.376-2.349c0.053-0.053,0.079-0.093,0.079-0.172
|
||||
c0-0.132-0.093-0.172-0.212-0.185l-0.369-0.053v-0.897h3.115V35.799z"/>
|
||||
<path class="lh-claim" fill="#676767" d="M252.609,42.794l0.476-0.105c0.119-0.026,0.211-0.04,0.211-0.158c0-0.066-0.013-0.106-0.053-0.212
|
||||
l-0.448-1.161h-4.58l-0.476,1.188c-0.039,0.093-0.053,0.133-0.053,0.186c0,0.118,0.093,0.145,0.225,0.171l0.462,0.093v0.897
|
||||
h-2.943v-0.897l0.607-0.132c0.197-0.04,0.264-0.132,0.33-0.304l2.626-6.124c0.066-0.159,0.026-0.277-0.145-0.304l-0.7-0.119v-0.91
|
||||
h3.537l2.97,7.457c0.106,0.237,0.186,0.264,0.423,0.316l0.555,0.119v0.897h-3.023V42.794z M250.841,36.194
|
||||
c-0.079-0.198-0.118-0.304-0.316-0.304s-0.237,0.105-0.316,0.304l-1.558,3.881h3.722L250.841,36.194z"/>
|
||||
<path class="lh-claim" fill="#676767" d="M260.358,36.089v6.335c0,0.093,0.026,0.198,0.185,0.238l0.687,0.132v0.897h-3.115v-0.897l0.687-0.132
|
||||
c0.158-0.04,0.185-0.146,0.185-0.238v-6.335h-3.286v-1.188h7.945v1.188H260.358z"/>
|
||||
<path class="lh-claim" fill="#676767" d="M264.556,43.691v-0.897l0.687-0.132c0.158-0.04,0.185-0.146,0.185-0.238v-6.256
|
||||
c0-0.093-0.026-0.198-0.185-0.237l-0.687-0.132v-0.897h3.102v0.897l-0.673,0.132c-0.158,0.039-0.185,0.145-0.185,0.237v6.256
|
||||
c0,0.093,0.026,0.198,0.185,0.238l0.673,0.132v0.897H264.556z"/>
|
||||
<path class="lh-claim" fill="#676767" d="M273.201,43.784c-3.512,0-3.907-0.964-3.907-4.475c0-3.775,0.541-4.501,3.894-4.501
|
||||
c3.524,0,3.881,0.95,3.881,4.501S276.698,43.784,273.201,43.784z M273.188,35.957c-2.23,0-2.481,0.33-2.481,3.353
|
||||
c0,2.864,0.185,3.312,2.495,3.312c2.362,0,2.454-0.475,2.454-3.312C275.655,36.551,275.629,35.957,273.188,35.957z"/>
|
||||
<path class="lh-claim" fill="#676767" d="M287.865,35.931c-0.158,0.039-0.185,0.145-0.185,0.237v7.523h-2.72l-3.537-7.523
|
||||
c-0.079-0.185-0.132-0.251-0.304-0.251c-0.25,0-0.276,0.132-0.276,0.356v6.15c0,0.093,0.026,0.198,0.185,0.238l0.673,0.132v0.897
|
||||
h-2.996v-0.897l0.687-0.132c0.158-0.04,0.185-0.146,0.185-0.238v-6.256c0-0.093-0.026-0.198-0.185-0.237l-0.687-0.132v-0.897
|
||||
h3.616l3.511,7.417c0.08,0.172,0.146,0.251,0.304,0.251c0.251,0,0.277-0.158,0.277-0.369v-6.032c0-0.093-0.026-0.198-0.185-0.237
|
||||
l-0.687-0.132v-0.897h3.01v0.897L287.865,35.931z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 22 KiB |
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
/*
|
||||
* @package lh_fap
|
||||
*/
|
||||
|
||||
class LH_Fap_Admin {
|
||||
|
||||
/**
|
||||
* Construct the function.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(){
|
||||
$this->action_dispatcher();
|
||||
$this->filter_dispatcher();
|
||||
}
|
||||
|
||||
/**
|
||||
* Contains all called actions used by the plugin core.
|
||||
*
|
||||
* @access private
|
||||
* @return void
|
||||
*/
|
||||
private function action_dispatcher(){
|
||||
/* PHP Solution */
|
||||
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
|
||||
//add_action( 'fap_media_tab_content', array( $this, 'custom_media_tab_content' ) );
|
||||
/* /PHP */
|
||||
}
|
||||
|
||||
/**
|
||||
* Contains all called filters used by the plugin core.
|
||||
*
|
||||
* @access private
|
||||
* @return void
|
||||
*/
|
||||
private function filter_dispatcher(){
|
||||
/* PHP Solution */
|
||||
//add_filter( 'fap_media_tab', array( $this, 'custom_media_tab' ) );
|
||||
/* /PHP */
|
||||
|
||||
/* Backbone-JS Solution */
|
||||
add_filter( 'media_view_strings', array( $this, 'fap_media_localisation'), 10, 2 );
|
||||
/* /BBJS */
|
||||
|
||||
//add_filter( 'media_upload_tabs', array($this, 'custom_media_upload_tab_name') );
|
||||
}
|
||||
|
||||
public function fap_media_localisation($strings, $post){
|
||||
$strings['menuTitle'] = __('Free Images', 'fap');
|
||||
$strings['addToLibrary'] = __('Insert into Library', 'fap');
|
||||
$strings['pluginUrl'] = LHFAP__PLUGIN_URL;
|
||||
return $strings;
|
||||
}
|
||||
|
||||
/**
|
||||
* Enqueue the neccecary scripts in the admin panel.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function enqueue_scripts(){
|
||||
global $pagenow, $post_type;
|
||||
$screen = get_current_screen();
|
||||
|
||||
if( $pagenow === "post.php" || $pagenow === "post-new.php" ) {
|
||||
// Only load the scripts when we ACTUALLY need them.
|
||||
wp_register_script( 'lh_fap_admin', LHFAP__PLUGIN_URL . 'js/fap.min.js', array("jquery"), NULL, true);
|
||||
wp_enqueue_script( 'lh_fap_admin' );
|
||||
wp_register_style( 'lh_fap_style', LHFAP__PLUGIN_URL . 'css/admin.css', NULL, 1, 'all' );
|
||||
wp_enqueue_style( 'lh_fap_style' );
|
||||
}
|
||||
|
||||
//wp_register_style( 'lh_event_admin', LHEVENT__PLUGIN_URL . 'css/admin.css', NULL, 1, 'all');
|
||||
//wp_enqueue_style( 'lh_event_admin' );
|
||||
}
|
||||
}
|
||||
49
wp-content/plugins/free-imagescc-importer/inc/lhfap.core.php
Normal file
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
/*
|
||||
* @package lh_fap
|
||||
*/
|
||||
|
||||
|
||||
class LH_Fap_Plugin {
|
||||
/**
|
||||
* Construct the function.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(){
|
||||
$this->action_dispatcher();
|
||||
$this->filter_dispatcher();
|
||||
|
||||
if(is_admin()){
|
||||
// Initialize the admin stuff
|
||||
$this->admin = new LH_Fap_Admin();
|
||||
|
||||
// Initialize the importer
|
||||
$this->importer = new LH_Fap_Import();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Contains all called actions used by the plugin core.
|
||||
*
|
||||
* @access private
|
||||
* @return void
|
||||
*/
|
||||
private function action_dispatcher(){
|
||||
add_action( 'init', array($this, 'do_stuff_on_init') );
|
||||
}
|
||||
|
||||
/**
|
||||
* Contains all called filters used by the plugin core.
|
||||
*
|
||||
* @access private
|
||||
* @return void
|
||||
*/
|
||||
private function filter_dispatcher(){}
|
||||
|
||||
public function do_stuff_on_init(){
|
||||
// i18n
|
||||
load_plugin_textdomain('lhf', false, dirname(plugin_basename(LHFAP__PLUGIN_FILE)) . '/lang' );
|
||||
}
|
||||
}
|
||||
214
wp-content/plugins/free-imagescc-importer/inc/lhfap.import.php
Normal file
@@ -0,0 +1,214 @@
|
||||
<?php
|
||||
/*
|
||||
* @package lh_fap
|
||||
*/
|
||||
/**
|
||||
* The importer class that handles the sideloading of the images from the api endpoint.
|
||||
*/
|
||||
class LH_Fap_Import {
|
||||
private $_apiUrl = "http://www.free-images.cc/wp-json";
|
||||
/**
|
||||
* The constructor of this class.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(){
|
||||
$this->action_dispatcher();
|
||||
$this->filter_dispatcher();
|
||||
}
|
||||
/**
|
||||
* The function that dispatches all used actions by this class.
|
||||
*
|
||||
* @access private
|
||||
* @return void
|
||||
*/
|
||||
private function action_dispatcher(){
|
||||
add_action('wp_ajax_import_image', array( $this, 'import_image' ) );
|
||||
add_action('wp_ajax_list_images', array( $this, 'list_images' ) );
|
||||
}
|
||||
/**
|
||||
* The function that dispatches all used filters by this class.
|
||||
*
|
||||
* @access private
|
||||
* @return void
|
||||
*/
|
||||
private function filter_dispatcher(){
|
||||
}
|
||||
/**
|
||||
* The ajax call, that actually imports the image.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function import_image(){
|
||||
$image_id = isset($_GET['image_id']) ? intval($_REQUEST['image_id']) : null;
|
||||
$post_id = isset($_GET['post_id']) ? intval($_REQUEST['post_id']) : null;
|
||||
$response = array(
|
||||
"error" => true,
|
||||
"msg" => __("An unknown error occured!", "lhf"),
|
||||
);
|
||||
// If the current user cannot upload files, die with an error message
|
||||
if(!current_user_can("upload_files")){
|
||||
http_response_code(401);
|
||||
$response['msg'] = __("I'm sorry Dave, I'm afraid I can't do that. (Insufficient permissions!)", "lhf");
|
||||
$this->json_response($response);
|
||||
die();
|
||||
}
|
||||
if(!$image_id){
|
||||
http_response_code(401);
|
||||
$this->json_response($response);
|
||||
die();
|
||||
}
|
||||
if($image_id){
|
||||
// Check if we already have an image with that FAP ID in the database
|
||||
$qry = new WP_Query(array(
|
||||
"post_type" => 'attachment',
|
||||
'post_status' => 'any',
|
||||
"meta_query" => array(
|
||||
array(
|
||||
"key" => '_fap_id',
|
||||
"value" => $image_id,
|
||||
),
|
||||
),
|
||||
));
|
||||
// If that query returns any results, die with the error message, including
|
||||
if($qry->have_posts()){
|
||||
http_response_code(400);
|
||||
$response['msg'] = __("An image with that ID is already in the database!", "lhf");
|
||||
$response['attachment_id'] = $qry->posts[0]->ID;
|
||||
$this->json_response($response);
|
||||
die();
|
||||
}
|
||||
// Download the data from the api
|
||||
$json_data = $this->curl_download($this->_apiUrl . "/image/" . $image_id . "/");
|
||||
if($json_data['header']['http_code'] !== 200){
|
||||
http_response_code($json_data['header']['http_code']);
|
||||
$response['msg'] = __("An image with that ID could not be retrieved!", "lhf");
|
||||
$this->json_response($response);
|
||||
die();
|
||||
}
|
||||
// At this point we should have working data from our API
|
||||
$body = json_decode($json_data['body']);
|
||||
$id = $this->add_to_library($body->data[0], $post_id);
|
||||
if($id){
|
||||
$response = array(
|
||||
"error" => false,
|
||||
"msg" => __("The image has been successfully added.", "lhf"),
|
||||
"image_id" => $id,
|
||||
);
|
||||
}
|
||||
}
|
||||
$this->json_response($response);
|
||||
die();
|
||||
}
|
||||
public function list_images(){
|
||||
$response = array(
|
||||
"success" => false,
|
||||
);
|
||||
$search_term = isset($_GET['s']) ? ($_REQUEST['s']) : null;
|
||||
$paged = isset($_GET['paged']) ? intval($_REQUEST['paged']) : null;
|
||||
$api_url = $this->_apiUrl . "/image/";
|
||||
$api_url = add_query_arg(array(
|
||||
"paged" => $paged,
|
||||
"s" => $search_term,
|
||||
), $api_url);
|
||||
$json_data = $this->curl_download($api_url);
|
||||
if($json_data){
|
||||
$response = json_decode($json_data['body']);
|
||||
}
|
||||
$this->json_response($response);
|
||||
die();
|
||||
}
|
||||
/**
|
||||
* add_to_library function.
|
||||
*
|
||||
* @access private
|
||||
* @param mixed $data
|
||||
* @return void
|
||||
*/
|
||||
private function add_to_library($data, $post_id){
|
||||
if(isset($data->url) && !filter_var($data->url, FILTER_VALIDATE_URL) === false){
|
||||
// The download URL is legal
|
||||
$tmp = download_url( $data->url );
|
||||
if( is_wp_error( $tmp ) ){
|
||||
// download failed, handle error
|
||||
}
|
||||
$desc = $data->title;
|
||||
$file_array = array();
|
||||
// Set variables for storage
|
||||
// fix file filename for query strings
|
||||
preg_match('/[^\?]+\.(jpg|jpeg|gif|png)/i', $data->url, $matches);
|
||||
$file_array['name'] = basename($matches[0]);
|
||||
$file_array['tmp_name'] = $tmp;
|
||||
// If error storing temporarily, unlink
|
||||
if ( is_wp_error( $tmp ) ) {
|
||||
@unlink($file_array['tmp_name']);
|
||||
$file_array['tmp_name'] = '';
|
||||
}
|
||||
$post_data = array(
|
||||
'post_content' => sprintf(__("by %s via free-images.cc", "lhf"), $data->author),
|
||||
);
|
||||
// do the validation and storage stuff
|
||||
$id = media_handle_sideload( $file_array, $post_id, $desc, $post_data );
|
||||
// If error storing permanently, unlink
|
||||
if ( is_wp_error($id) ) {
|
||||
@unlink($file_array['tmp_name']);
|
||||
return $id;
|
||||
} else {
|
||||
$res = update_post_meta($id, '_fap_id', $data->id);
|
||||
}
|
||||
return $id;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Make sure we have a legal json response.
|
||||
*
|
||||
* @access private
|
||||
* @param mixed $response
|
||||
* @return void
|
||||
*/
|
||||
private function json_response($response){
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode($response);
|
||||
}
|
||||
/**
|
||||
* Handle the downloading of the url.
|
||||
*
|
||||
* @access private
|
||||
* @param mixed $url
|
||||
* @return void
|
||||
*/
|
||||
private function curl_download($url){
|
||||
// is cURL installed yet?
|
||||
if (!function_exists('curl_init')){
|
||||
die('Sorry cURL is not installed!');
|
||||
}
|
||||
// OK cool - then let's create a new cURL resource handle
|
||||
$ch = curl_init();
|
||||
// Now set some options (most are optional)
|
||||
// Set URL to download
|
||||
curl_setopt($ch, CURLOPT_URL, $url);
|
||||
// Set a referer
|
||||
curl_setopt($ch, CURLOPT_REFERER, get_bloginfo("url"));
|
||||
// User agent
|
||||
curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0");
|
||||
// Include header in result? (0 = yes, 1 = no)
|
||||
curl_setopt($ch, CURLOPT_HEADER, 0);
|
||||
// Should cURL return or print out the data? (true = return, false = print)
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
// Timeout in seconds
|
||||
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
|
||||
// Download the given URL, and return output
|
||||
$output = curl_exec($ch);
|
||||
// Get the connection info
|
||||
$info = curl_getinfo($ch);
|
||||
// Close the cURL resource, and free system resources
|
||||
curl_close($ch);
|
||||
return array(
|
||||
"body" => $output,
|
||||
"header" => $info,
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
<?php
|
||||
function fap_mediaview_templates() {
|
||||
?>
|
||||
|
||||
<script type="text/html" id="tmpl-fap-image-upload">
|
||||
<div class="progress-container">
|
||||
<ul class="progress">
|
||||
<li data-name="CSS Skill" data-percent="100%">
|
||||
<svg viewBox="-10 -10 220 220">
|
||||
<g fill="none" stroke-width="6" transform="translate(100,100)">
|
||||
<path d="M 0,-100 A 100,100 0 0,1 86.6,-50" stroke="url(#cl1)"/>
|
||||
<path d="M 86.6,-50 A 100,100 0 0,1 86.6,50" stroke="url(#cl2)"/>
|
||||
<path d="M 86.6,50 A 100,100 0 0,1 0,100" stroke="url(#cl3)"/>
|
||||
<path d="M 0,100 A 100,100 0 0,1 -86.6,50" stroke="url(#cl4)"/>
|
||||
<path d="M -86.6,50 A 100,100 0 0,1 -86.6,-50" stroke="url(#cl5)"/>
|
||||
<path d="M -86.6,-50 A 100,100 0 0,1 0,-100" stroke="url(#cl6)"/>
|
||||
</g>
|
||||
</svg>
|
||||
<svg viewBox="-10 -10 220 220">
|
||||
<path d="M200,100 C200,44.771525 155.228475,0 100,0 C44.771525,0 0,44.771525 0,100 C0,155.228475 44.771525,200 100,200 C155.228475,200 200,155.228475 200,100 Z" stroke-dashoffset="629"></path>
|
||||
</svg>
|
||||
<span class="dashicons dashicons-yes"></span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<!-- Defining Angle Gradient Colors -->
|
||||
<svg width="0" height="0">
|
||||
<defs>
|
||||
<linearGradient id="cl1" gradientUnits="objectBoundingBox" x1="0" y1="0" x2="1" y2="1">
|
||||
<stop stop-color="#e67724"/>
|
||||
<stop offset="100%" stop-color="#e7642f"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="cl2" gradientUnits="objectBoundingBox" x1="0" y1="0" x2="0" y2="1">
|
||||
<stop stop-color="#e7642f"/>
|
||||
<stop offset="100%" stop-color="#e85139"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="cl3" gradientUnits="objectBoundingBox" x1="1" y1="0" x2="0" y2="1">
|
||||
<stop stop-color="#e85139"/>
|
||||
<stop offset="100%" stop-color="#e85139"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="cl4" gradientUnits="objectBoundingBox" x1="1" y1="1" x2="0" y2="0">
|
||||
<stop stop-color="#e85139"/>
|
||||
<stop offset="100%" stop-color="#e7652e"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="cl5" gradientUnits="objectBoundingBox" x1="0" y1="1" x2="0" y2="0">
|
||||
<stop stop-color="#e7652e"/>
|
||||
<stop offset="100%" stop-color="#e67824"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="cl6" gradientUnits="objectBoundingBox" x1="0" y1="1" x2="1" y2="0">
|
||||
<stop stop-color="#e67824"/>
|
||||
<stop offset="100%" stop-color="#e67724"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="tmpl-fap-image-details">
|
||||
<h3>
|
||||
<?php _e('Attachment Details'); ?>
|
||||
</h3>
|
||||
|
||||
<div class="attachment-info">
|
||||
<div class="thumbnail thumbnail-{{ data.type }}">
|
||||
<# if ( 'image' === data.type && data.sizes ) { #>
|
||||
<img src="{{ data.size.url }}" draggable="false" />
|
||||
<# } else { #>
|
||||
<img src="{{ data.icon }}" class="icon" draggable="false" />
|
||||
<# } #>
|
||||
</div>
|
||||
<div class="details">
|
||||
<div class="filename">{{ data.filename }}</div>
|
||||
<div class="uploaded">{{ data.dateFormatted }}</div>
|
||||
|
||||
<div class="file-size">{{ data.filesizeHumanReadable }}</div>
|
||||
<# if ( 'image' === data.type && ! data.uploading ) { #>
|
||||
<# if ( data.width && data.height ) { #>
|
||||
<div class="dimensions">{{ data.width }} × {{ data.height }}</div>
|
||||
<a href="{{ data.link }}?utm_source=fap-plugin&utm_medium=preview&utm_campaign=media-preview&utm_term=preview" target="_blank">Preview</a>
|
||||
<# } #>
|
||||
<# } #>
|
||||
|
||||
<# if ( data.fileLength ) { #>
|
||||
<div class="file-length"><?php _e( 'Length:' ); ?> {{ data.fileLength }}</div>
|
||||
<# } #>
|
||||
|
||||
<div class="compat-meta">
|
||||
<# if ( data.compat && data.compat.meta ) { #>
|
||||
{{{ data.compat.meta }}}
|
||||
<# } #>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label class="setting" data-setting="url">
|
||||
<span class="name"><?php _e('URL'); ?></span>
|
||||
<input type="text" value="{{ data.size.url }}" readonly />
|
||||
</label>
|
||||
<# var maybeReadOnly = data.can.save || data.allowLocalEdits ? '' : 'readonly'; #>
|
||||
|
||||
<label class="setting" data-setting="title">
|
||||
<span class="name"><?php _e('Title'); ?></span>
|
||||
|
||||
<input type="text" value="{{ data.title }}" {{ maybeReadOnly }} />
|
||||
|
||||
</label>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="tmpl-lh-logo">
|
||||
<div class="lh-logo">
|
||||
<a href="http://www.luehrsen-heinrich.de/?utm_source=fap-plugin&utm_medium=banner&utm_campaign=media-banner&utm_term=banner" target="_blank">
|
||||
<img src="<?=LHFAP__PLUGIN_URL?>img/lh_logo_head.svg" alt="Luehrsen // Heinrich GmbH" title="Luehrsen // Heinrich GmbH">
|
||||
</a>
|
||||
</div>
|
||||
</script>
|
||||
<?php
|
||||
}
|
||||
|
||||
add_action('print_media_templates', 'fap_mediaview_templates');
|
||||
|
||||
1
wp-content/plugins/free-imagescc-importer/js/fap.min.js
vendored
Normal file
85
wp-content/plugins/free-imagescc-importer/readme.txt
Normal file
@@ -0,0 +1,85 @@
|
||||
=== free-images.cc Importer ===
|
||||
Contributors: luehrsen, ckanitz
|
||||
Donate link: https://www.paypal.com/de/cgi-bin/webscr?cmd=_xclick&business=paypal@luehrsen-heinrich.de&item_name=free-images.cc%20Donation¤cy_code=EUR
|
||||
Tags: free, images, image, pictures, media, import, creative commons, free-images, free images
|
||||
Requires at least: 4.0
|
||||
Tested up to: 4.4
|
||||
Stable tag: 0.6.2
|
||||
License: GNU General Public License v2 or later
|
||||
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
||||
|
||||
This plugin integrates the free-images.cc image library directly into your media browser.
|
||||
|
||||
== Description ==
|
||||
|
||||
Unfortunatly the free-images.cc importer will be shut down on 1st August 2017. We have decided to discontinue our plugin, because we do not find the time to keep it up to date and we do not want to burden you with an outdated, maybe insecure plugin.
|
||||
|
||||
Our website ( http://free-images.cc ), however, will stay online and provide marvelous cc0 licenced images for you.
|
||||
|
||||
Thank you all for your support! :)
|
||||
|
||||
------
|
||||
|
||||
Over the last years the creative commons movement gained traction and more and more artists followed the trend of committing their work to public domain. We believe that this will contribute to making the web a better, more beautiful place.
|
||||
|
||||
But we don’t want to be one of many. There are several aspects, that will make [free-images.cc](http://www.free-images.cc) superior to many other sites out there. Not only do we curate the images and publish only the creme de la creme. Every image is carefully tagged for better discoverability and every photographer is named and honored.
|
||||
|
||||
Every free image uploaded here will be under the CC0 Public Domain license. So every image will be free to use for whatever purpose you want!
|
||||
|
||||
We are always keen for improvement and new artists, that publish their work under the creative commons public domain license. If you have any feedback or tips for great, free images, drop us a mail at contact@free-images.cc!
|
||||
|
||||
This plugin is brought to you by the awesome folks at [Luehrsen // Heinrich](http://www.luehrsen-heinrich.de).
|
||||
|
||||
== Installation ==
|
||||
|
||||
1. Upload the fap_importer folder to the /wp-content/plugins/ directory
|
||||
2. Activate the 'free-images.cc Importer' plugin through the 'Plugins' menu in WordPress
|
||||
3. Import your first image in the admin media screen
|
||||
|
||||
== Frequently Asked Questions ==
|
||||
|
||||
= Where are these images coming from? =
|
||||
|
||||
All of our images are coming from incredibly talented photographers from all over the world. The released their work to public domain and that allows us to add it to the library, to bring these works directly into your WordPress backend.
|
||||
|
||||
= Why are these images free? =
|
||||
|
||||
Because they are released under the [CC0 Public Domain license](https://creativecommons.org/publicdomain/zero/1.0/). The photographer made them free to use for everyone around the world.
|
||||
|
||||
= Are there any restrictions on the usage? =
|
||||
|
||||
Technically no. That means, that you can do whatever you want with these images without having to give attribution to the photographer or free-images.cc.
|
||||
|
||||
We just kindly ask you not to use these images for pornographic, criminal, defamatory or degrading purposes.
|
||||
|
||||
|
||||
== Screenshots ==
|
||||
|
||||
1. The "free images" tab shows up directly in your media browser.
|
||||
|
||||
== Changelog ==
|
||||
= 0.6.2 =
|
||||
Unfortunatly the free-images.cc importer will be shut down on 1st August 2017. We have decided to discontinue our plugin, because we do not find the time to keep it up to date and we do not want to burden you with an outdated, maybe insecure plugin.
|
||||
|
||||
Our website ( http://free-images.cc ), however, will stay online and provide marvelous cc0 licenced images for you.
|
||||
|
||||
Thank you all for your support! :)
|
||||
|
||||
= 0.6.0 =
|
||||
Added a live-search.
|
||||
Added lazy load depending on the viewport.
|
||||
Added a preview button within the sidebar.
|
||||
Implemented client-caching to prevent long loads and/or timeouts.
|
||||
Rewrote part of the JS-Core for a better workflow.
|
||||
Changed template behavior.
|
||||
Fixed a bug where our upload-spinner appeared in new opened media-frames sometimes.
|
||||
|
||||
= 0.5.2 =
|
||||
Frame reload fix to ensure a reload of the local media collection.
|
||||
Small template changes.
|
||||
|
||||
= 0.5.1 =
|
||||
Template fix to work proper with php shorttag.
|
||||
|
||||
= 0.5 =
|
||||
Initial Release
|
||||
@@ -1,2 +1,3 @@
|
||||
<?php
|
||||
// Silence is golden.
|
||||
?>
|
||||
8
wp-content/plugins/jetpack/.svnignore
Normal file
@@ -0,0 +1,8 @@
|
||||
.git/
|
||||
.gitignore
|
||||
.travis.yml
|
||||
readme.md
|
||||
tests/
|
||||
_inc/lib/icalendar-reader.php
|
||||
modules/shortcodes/upcoming-events.php
|
||||
modules/widgets/upcoming-events.php
|
||||
31
wp-content/plugins/jetpack/3rd-party/3rd-party.php
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
/**
|
||||
* Compatibility files for third-party plugins.
|
||||
* This is used to improve compatibility of specific Jetpack features with third-party plugins.
|
||||
*
|
||||
* @package Jetpack
|
||||
*/
|
||||
|
||||
// Array of third-party compat files to always require.
|
||||
$compat_files = array(
|
||||
'bbpress.php',
|
||||
'beaverbuilder.php',
|
||||
'bitly.php',
|
||||
'buddypress.php',
|
||||
'class.jetpack-amp-support.php',
|
||||
'class.jetpack-modules-overrides.php', // Special case. Tools to be used to override module settings.
|
||||
'debug-bar.php',
|
||||
'domain-mapping.php',
|
||||
'polldaddy.php',
|
||||
'qtranslate-x.php',
|
||||
'vaultpress.php',
|
||||
'wpml.php',
|
||||
'woocommerce.php',
|
||||
'woocommerce-services.php',
|
||||
);
|
||||
|
||||
foreach ( $compat_files as $file ) {
|
||||
if ( file_exists( JETPACK__PLUGIN_DIR . '/3rd-party/' . $file ) ) {
|
||||
require_once JETPACK__PLUGIN_DIR . '/3rd-party/' . $file;
|
||||
}
|
||||
}
|
||||
50
wp-content/plugins/jetpack/3rd-party/bbpress.php
vendored
Normal file
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
add_action( 'init', 'jetpack_bbpress_compat', 11 ); // Priority 11 needed to ensure sharing_display is loaded.
|
||||
|
||||
/**
|
||||
* Adds Jetpack + bbPress Compatibility filters.
|
||||
*
|
||||
* @author Brandon Kraft
|
||||
* @since 3.7.1
|
||||
*/
|
||||
function jetpack_bbpress_compat() {
|
||||
if ( function_exists( 'sharing_display' ) ) {
|
||||
add_filter( 'bbp_get_topic_content', 'sharing_display', 19 );
|
||||
add_action( 'bbp_template_after_single_forum', 'jetpack_sharing_bbpress' );
|
||||
add_action( 'bbp_template_after_single_topic', 'jetpack_sharing_bbpress' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable Markdown support for bbpress post types.
|
||||
*
|
||||
* @author Brandon Kraft
|
||||
* @since 6.0.0
|
||||
*/
|
||||
if ( function_exists( 'bbp_get_topic_post_type' ) ) {
|
||||
add_post_type_support( bbp_get_topic_post_type(), 'wpcom-markdown' );
|
||||
add_post_type_support( bbp_get_reply_post_type(), 'wpcom-markdown' );
|
||||
add_post_type_support( bbp_get_forum_post_type(), 'wpcom-markdown' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Use Photon for all images in Topics and replies.
|
||||
*
|
||||
* @since 4.9.0
|
||||
*/
|
||||
if ( class_exists( 'Jetpack_Photon' ) && Jetpack::is_module_active( 'photon' ) ) {
|
||||
add_filter( 'bbp_get_topic_content', array( 'Jetpack_Photon', 'filter_the_content' ), 999999 );
|
||||
add_filter( 'bbp_get_reply_content', array( 'Jetpack_Photon', 'filter_the_content' ), 999999 );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display Jetpack "Sharing" buttons on bbPress 2.x forums/ topics/ lead topics/ replies.
|
||||
*
|
||||
* Determination if the sharing buttons should display on the post type is handled within sharing_display().
|
||||
*
|
||||
* @author David Decker
|
||||
* @since 3.7.0
|
||||
*/
|
||||
function jetpack_sharing_bbpress() {
|
||||
sharing_display( null, true );
|
||||
}
|
||||
20
wp-content/plugins/jetpack/3rd-party/beaverbuilder.php
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
/**
|
||||
* Beaverbuilder Compatibility.
|
||||
*/
|
||||
class Jetpack_BeaverBuilderCompat {
|
||||
|
||||
function __construct() {
|
||||
add_action( 'init', array( $this, 'beaverbuilder_refresh' ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* If masterbar module is active force BeaverBuilder to refresh when publishing a layout.
|
||||
*/
|
||||
function beaverbuilder_refresh() {
|
||||
if ( Jetpack::is_module_active( 'masterbar' ) ) {
|
||||
add_filter( 'fl_builder_should_refresh_on_publish', '__return_true' );
|
||||
}
|
||||
}
|
||||
}
|
||||
new Jetpack_BeaverBuilderCompat();
|
||||
34
wp-content/plugins/jetpack/3rd-party/bitly.php
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Fixes issues with the Official Bitly for WordPress
|
||||
* https://wordpress.org/plugins/bitly/
|
||||
*/
|
||||
if( class_exists( 'Bitly' ) ) {
|
||||
|
||||
if( isset( $GLOBALS['bitly'] ) ) {
|
||||
if ( method_exists( $GLOBALS['bitly'], 'og_tags' ) ) {
|
||||
remove_action( 'wp_head', array( $GLOBALS['bitly'], 'og_tags' ) );
|
||||
}
|
||||
|
||||
add_action( 'wp_head', 'jetpack_bitly_og_tag', 100 );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* jetpack_bitly_og_tag
|
||||
*
|
||||
* @return null
|
||||
*/
|
||||
function jetpack_bitly_og_tag() {
|
||||
if( has_filter( 'wp_head', 'jetpack_og_tags') === false ) {
|
||||
// Add the bitly part again back if we don't have any jetpack_og_tags added
|
||||
if ( method_exists( $GLOBALS['bitly'], 'og_tags' ) ) {
|
||||
$GLOBALS['bitly']->og_tags();
|
||||
}
|
||||
} elseif ( isset( $GLOBALS['posts'] ) && $GLOBALS['posts'][0]->ID > 0 ) {
|
||||
printf( "<meta property=\"bitly:url\" content=\"%s\" /> \n", esc_attr( $GLOBALS['bitly']->get_bitly_link_for_post_id( $GLOBALS['posts'][0]->ID ) ) );
|
||||
}
|
||||
|
||||
}
|
||||
9
wp-content/plugins/jetpack/3rd-party/buddypress.php
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
add_filter( 'bp_core_pre_avatar_handle_upload', 'blobphoto' );
|
||||
function blobphoto( $bool ) {
|
||||
|
||||
add_filter( 'jetpack_photon_skip_image', '__return_true' );
|
||||
|
||||
return $bool;
|
||||
}
|
||||
443
wp-content/plugins/jetpack/3rd-party/class.jetpack-amp-support.php
vendored
Normal file
@@ -0,0 +1,443 @@
|
||||
<?php //phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
|
||||
|
||||
use Automattic\Jetpack\Sync\Functions;
|
||||
|
||||
/**
|
||||
* Manages compatibility with the amp-wp plugin
|
||||
*
|
||||
* @see https://github.com/Automattic/amp-wp
|
||||
*/
|
||||
class Jetpack_AMP_Support {
|
||||
|
||||
/**
|
||||
* Apply custom AMP changes onthe frontend.
|
||||
*/
|
||||
public static function init() {
|
||||
|
||||
// Add Stats tracking pixel on Jetpack sites when the Stats module is active.
|
||||
if (
|
||||
Jetpack::is_module_active( 'stats' )
|
||||
&& ! ( defined( 'IS_WPCOM' ) && IS_WPCOM )
|
||||
) {
|
||||
add_action( 'amp_post_template_footer', array( 'Jetpack_AMP_Support', 'add_stats_pixel' ) );
|
||||
}
|
||||
|
||||
// Sharing.
|
||||
add_filter( 'jetpack_sharing_display_markup', array( 'Jetpack_AMP_Support', 'render_sharing_html' ), 10, 2 );
|
||||
add_filter( 'sharing_enqueue_scripts', array( 'Jetpack_AMP_Support', 'amp_disable_sharedaddy_css' ) );
|
||||
|
||||
// enforce freedom mode for videopress.
|
||||
add_filter( 'videopress_shortcode_options', array( 'Jetpack_AMP_Support', 'videopress_enable_freedom_mode' ) );
|
||||
|
||||
// include Jetpack og tags when rendering native AMP head.
|
||||
add_action( 'amp_post_template_head', array( 'Jetpack_AMP_Support', 'amp_post_jetpack_og_tags' ) );
|
||||
|
||||
// Post rendering changes for legacy AMP.
|
||||
add_action( 'pre_amp_render_post', array( 'Jetpack_AMP_Support', 'amp_disable_the_content_filters' ) );
|
||||
|
||||
// Add post template metadata for legacy AMP.
|
||||
add_filter( 'amp_post_template_metadata', array( 'Jetpack_AMP_Support', 'amp_post_template_metadata' ), 10, 2 );
|
||||
|
||||
// Filter photon image args for AMP Stories.
|
||||
add_filter( 'jetpack_photon_post_image_args', array( 'Jetpack_AMP_Support', 'filter_photon_post_image_args_for_stories' ), 10, 2 );
|
||||
}
|
||||
|
||||
/**
|
||||
* Apply custom AMP changes in wp-admin.
|
||||
*/
|
||||
public static function admin_init() {
|
||||
// disable Likes metabox for post editor if AMP canonical disabled.
|
||||
add_filter( 'post_flair_disable', array( 'Jetpack_AMP_Support', 'is_amp_canonical' ), 99 );
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the page in AMP 'canonical mode'.
|
||||
* Used when themes register support for AMP with `add_theme_support( 'amp' )`.
|
||||
*
|
||||
* @return bool is_amp_canonical
|
||||
*/
|
||||
public static function is_amp_canonical() {
|
||||
return function_exists( 'amp_is_canonical' ) && amp_is_canonical();
|
||||
}
|
||||
|
||||
/**
|
||||
* Does the page return AMP content.
|
||||
*
|
||||
* @return bool $is_amp_request Are we on am AMP view.
|
||||
*/
|
||||
public static function is_amp_request() {
|
||||
$is_amp_request = ( function_exists( 'is_amp_endpoint' ) && is_amp_endpoint() );
|
||||
|
||||
/**
|
||||
* Returns true if the current request should return valid AMP content.
|
||||
*
|
||||
* @since 6.2.0
|
||||
*
|
||||
* @param boolean $is_amp_request Is this request supposed to return valid AMP content?
|
||||
*/
|
||||
return apply_filters( 'jetpack_is_amp_request', $is_amp_request );
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove content filters added by Jetpack.
|
||||
*/
|
||||
public static function amp_disable_the_content_filters() {
|
||||
if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
|
||||
add_filter( 'videopress_show_2015_player', '__return_true' );
|
||||
add_filter( 'protected_embeds_use_form_post', '__return_false' );
|
||||
remove_filter( 'the_title', 'widont' );
|
||||
}
|
||||
|
||||
remove_filter( 'pre_kses', array( 'Filter_Embedded_HTML_Objects', 'filter' ), 11 );
|
||||
remove_filter( 'pre_kses', array( 'Filter_Embedded_HTML_Objects', 'maybe_create_links' ), 100 );
|
||||
}
|
||||
|
||||
/**
|
||||
* Add Jetpack stats pixel.
|
||||
*
|
||||
* @since 6.2.1
|
||||
*/
|
||||
public static function add_stats_pixel() {
|
||||
if ( ! has_action( 'wp_footer', 'stats_footer' ) ) {
|
||||
return;
|
||||
}
|
||||
stats_render_amp_footer( stats_build_view_data() );
|
||||
}
|
||||
|
||||
/**
|
||||
* Add publisher and image metadata to legacy AMP post.
|
||||
*
|
||||
* @since 6.2.0
|
||||
*
|
||||
* @param array $metadata Metadata array.
|
||||
* @param WP_Post $post Post.
|
||||
* @return array Modified metadata array.
|
||||
*/
|
||||
public static function amp_post_template_metadata( $metadata, $post ) {
|
||||
if ( isset( $metadata['publisher'] ) && ! isset( $metadata['publisher']['logo'] ) ) {
|
||||
$metadata = self::add_site_icon_to_metadata( $metadata );
|
||||
}
|
||||
|
||||
if ( ! isset( $metadata['image'] ) ) {
|
||||
$metadata = self::add_image_to_metadata( $metadata, $post );
|
||||
}
|
||||
|
||||
return $metadata;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add blavatar to legacy AMP post metadata.
|
||||
*
|
||||
* @since 6.2.0
|
||||
*
|
||||
* @param array $metadata Metadata.
|
||||
*
|
||||
* @return array Metadata.
|
||||
*/
|
||||
private static function add_site_icon_to_metadata( $metadata ) {
|
||||
$size = 60;
|
||||
$site_icon_url = class_exists( 'Automattic\\Jetpack\\Sync\\Functions' ) ? Functions::site_icon_url( $size ) : '';
|
||||
|
||||
if ( function_exists( 'blavatar_domain' ) ) {
|
||||
$metadata['publisher']['logo'] = array(
|
||||
'@type' => 'ImageObject',
|
||||
'url' => blavatar_url( blavatar_domain( site_url() ), 'img', $size, self::staticize_subdomain( 'https://wordpress.com/i/favicons/apple-touch-icon-60x60.png' ) ),
|
||||
'width' => $size,
|
||||
'height' => $size,
|
||||
);
|
||||
} elseif ( $site_icon_url ) {
|
||||
$metadata['publisher']['logo'] = array(
|
||||
'@type' => 'ImageObject',
|
||||
'url' => $site_icon_url,
|
||||
'width' => $size,
|
||||
'height' => $size,
|
||||
);
|
||||
}
|
||||
|
||||
return $metadata;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add image to legacy AMP post metadata.
|
||||
*
|
||||
* @since 6.2.0
|
||||
*
|
||||
* @param array $metadata Metadata.
|
||||
* @param WP_Post $post Post.
|
||||
* @return array Metadata.
|
||||
*/
|
||||
private static function add_image_to_metadata( $metadata, $post ) {
|
||||
$image = Jetpack_PostImages::get_image(
|
||||
$post->ID,
|
||||
array(
|
||||
'fallback_to_avatars' => true,
|
||||
'avatar_size' => 200,
|
||||
// AMP already attempts these.
|
||||
'from_thumbnail' => false,
|
||||
'from_attachment' => false,
|
||||
)
|
||||
);
|
||||
|
||||
if ( empty( $image ) ) {
|
||||
return self::add_fallback_image_to_metadata( $metadata );
|
||||
}
|
||||
|
||||
if ( ! isset( $image['src_width'] ) ) {
|
||||
$dimensions = self::extract_image_dimensions_from_getimagesize(
|
||||
array(
|
||||
$image['src'] => false,
|
||||
)
|
||||
);
|
||||
|
||||
if ( false !== $dimensions[ $image['src'] ] ) {
|
||||
$image['src_width'] = $dimensions['width'];
|
||||
$image['src_height'] = $dimensions['height'];
|
||||
}
|
||||
}
|
||||
|
||||
$metadata['image'] = array(
|
||||
'@type' => 'ImageObject',
|
||||
'url' => $image['src'],
|
||||
);
|
||||
if ( isset( $image['src_width'] ) ) {
|
||||
$metadata['image']['width'] = $image['src_width'];
|
||||
}
|
||||
if ( isset( $image['src_width'] ) ) {
|
||||
$metadata['image']['height'] = $image['src_height'];
|
||||
}
|
||||
|
||||
return $metadata;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add fallback image to legacy AMP post metadata.
|
||||
*
|
||||
* @since 6.2.0
|
||||
*
|
||||
* @param array $metadata Metadata.
|
||||
* @return array Metadata.
|
||||
*/
|
||||
private static function add_fallback_image_to_metadata( $metadata ) {
|
||||
/** This filter is documented in functions.opengraph.php */
|
||||
$default_image = apply_filters( 'jetpack_open_graph_image_default', 'https://wordpress.com/i/blank.jpg' );
|
||||
|
||||
$metadata['image'] = array(
|
||||
'@type' => 'ImageObject',
|
||||
'url' => self::staticize_subdomain( $default_image ),
|
||||
'width' => 200,
|
||||
'height' => 200,
|
||||
);
|
||||
|
||||
return $metadata;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return static WordPress.com domain to use to load resources from WordPress.com.
|
||||
*
|
||||
* @param string $domain Asset URL.
|
||||
*/
|
||||
private static function staticize_subdomain( $domain ) {
|
||||
// deal with WPCOM vs Jetpack.
|
||||
if ( function_exists( 'staticize_subdomain' ) ) {
|
||||
return staticize_subdomain( $domain );
|
||||
} else {
|
||||
return Jetpack::staticize_subdomain( $domain );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Extract image dimensions via wpcom/imagesize, only on WPCOM
|
||||
*
|
||||
* @since 6.2.0
|
||||
*
|
||||
* @param array $dimensions Dimensions.
|
||||
* @return array Dimensions.
|
||||
*/
|
||||
private static function extract_image_dimensions_from_getimagesize( $dimensions ) {
|
||||
if ( ! ( defined( 'IS_WPCOM' ) && IS_WPCOM && function_exists( 'require_lib' ) ) ) {
|
||||
return $dimensions;
|
||||
}
|
||||
require_lib( 'wpcom/imagesize' );
|
||||
|
||||
foreach ( $dimensions as $url => $value ) {
|
||||
if ( is_array( $value ) ) {
|
||||
continue;
|
||||
}
|
||||
$result = wpcom_getimagesize( $url );
|
||||
if ( is_array( $result ) ) {
|
||||
$dimensions[ $url ] = array(
|
||||
'width' => $result[0],
|
||||
'height' => $result[1],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return $dimensions;
|
||||
}
|
||||
|
||||
/**
|
||||
* Display Open Graph Meta tags in AMP views.
|
||||
*/
|
||||
public static function amp_post_jetpack_og_tags() {
|
||||
if ( ! ( defined( 'IS_WPCOM' ) && IS_WPCOM ) ) {
|
||||
Jetpack::init()->check_open_graph();
|
||||
}
|
||||
|
||||
if ( function_exists( 'jetpack_og_tags' ) ) {
|
||||
jetpack_og_tags();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Force Freedom mode in VideoPress.
|
||||
*
|
||||
* @param array $options Array of VideoPress shortcode options.
|
||||
*/
|
||||
public static function videopress_enable_freedom_mode( $options ) {
|
||||
if ( self::is_amp_request() ) {
|
||||
$options['freedom'] = true;
|
||||
}
|
||||
return $options;
|
||||
}
|
||||
|
||||
/**
|
||||
* Display custom markup for the sharing buttons when in an AMP view.
|
||||
*
|
||||
* @param string $markup Content markup of the Jetpack sharing links.
|
||||
* @param array $sharing_enabled Array of Sharing Services currently enabled.
|
||||
*/
|
||||
public static function render_sharing_html( $markup, $sharing_enabled ) {
|
||||
if ( ! self::is_amp_request() ) {
|
||||
return $markup;
|
||||
}
|
||||
|
||||
remove_action( 'wp_footer', 'sharing_add_footer' );
|
||||
if ( empty( $sharing_enabled ) ) {
|
||||
return $markup;
|
||||
}
|
||||
$supported_services = array(
|
||||
'facebook' => array(
|
||||
/** This filter is documented in modules/sharedaddy/sharing-sources.php */
|
||||
'data-param-app_id' => apply_filters( 'jetpack_sharing_facebook_app_id', '249643311490' ),
|
||||
),
|
||||
'twitter' => array(),
|
||||
'pinterest' => array(),
|
||||
'whatsapp' => array(),
|
||||
'tumblr' => array(),
|
||||
'linkedin' => array(),
|
||||
);
|
||||
$sharing_links = array();
|
||||
foreach ( $sharing_enabled['visible'] as $id => $service ) {
|
||||
if ( ! isset( $supported_services[ $id ] ) ) {
|
||||
$sharing_links[] = "<!-- not supported: $id -->";
|
||||
continue;
|
||||
}
|
||||
$args = array_merge(
|
||||
array(
|
||||
'type' => $id,
|
||||
),
|
||||
$supported_services[ $id ]
|
||||
);
|
||||
$sharing_link = '<amp-social-share';
|
||||
foreach ( $args as $key => $value ) {
|
||||
$sharing_link .= sprintf( ' %s="%s"', sanitize_key( $key ), esc_attr( $value ) );
|
||||
}
|
||||
$sharing_link .= '></amp-social-share>';
|
||||
$sharing_links[] = $sharing_link;
|
||||
}
|
||||
|
||||
// Wrap AMP sharing buttons in container.
|
||||
$markup = preg_replace( '#(?<=<div class="sd-content">).+?(?=</div>)#s', implode( '', $sharing_links ), $markup );
|
||||
|
||||
// Remove any lingering share-end list items.
|
||||
$markup = str_replace( '<li class="share-end"></li>', '', $markup );
|
||||
|
||||
return $markup;
|
||||
}
|
||||
|
||||
/**
|
||||
* Tells Jetpack not to enqueue CSS for share buttons.
|
||||
*
|
||||
* @param bool $enqueue Whether or not to enqueue.
|
||||
* @return bool Whether or not to enqueue.
|
||||
*/
|
||||
public static function amp_disable_sharedaddy_css( $enqueue ) {
|
||||
if ( self::is_amp_request() ) {
|
||||
$enqueue = false;
|
||||
}
|
||||
|
||||
return $enqueue;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensure proper Photon image dimensions for AMP Stories.
|
||||
*
|
||||
* @param array $args Array of Photon Arguments.
|
||||
* @param array $details {
|
||||
* Array of image details.
|
||||
*
|
||||
* @type string $tag Image tag (Image HTML output).
|
||||
* @type string $src Image URL.
|
||||
* @type string $src_orig Original Image URL.
|
||||
* @type int|false $width Image width.
|
||||
* @type int|false $height Image height.
|
||||
* @type int|false $width_orig Original image width before constrained by content_width.
|
||||
* @type int|false $height_orig Original Image height before constrained by content_width.
|
||||
* @type string $transform_orig Original transform before constrained by content_width.
|
||||
* }
|
||||
* @return array Args.
|
||||
*/
|
||||
public static function filter_photon_post_image_args_for_stories( $args, $details ) {
|
||||
if ( ! is_singular( 'amp_story' ) ) {
|
||||
return $args;
|
||||
}
|
||||
|
||||
// Percentage-based dimensions are not allowed in AMP, so this shouldn't happen, but short-circuit just in case.
|
||||
if ( false !== strpos( $details['width_orig'], '%' ) || false !== strpos( $details['height_orig'], '%' ) ) {
|
||||
return $args;
|
||||
}
|
||||
|
||||
$max_height = 1440; // See image size with the slug \AMP_Story_Post_Type::MAX_IMAGE_SIZE_SLUG.
|
||||
$transform = $details['transform_orig'];
|
||||
$width = $details['width_orig'];
|
||||
$height = $details['height_orig'];
|
||||
|
||||
// If height is available, constrain to $max_height.
|
||||
if ( false !== $height ) {
|
||||
if ( $height > $max_height && false !== $height ) {
|
||||
$width = ( $max_height * $width ) / $height;
|
||||
$height = $max_height;
|
||||
} elseif ( $height > $max_height ) {
|
||||
$height = $max_height;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Set a height if none is found.
|
||||
* If height is set in this manner and height is available, use `fit` instead of `resize` to prevent skewing.
|
||||
*/
|
||||
if ( false === $height ) {
|
||||
$height = $max_height;
|
||||
if ( false !== $width ) {
|
||||
$transform = 'fit';
|
||||
}
|
||||
}
|
||||
|
||||
// Build array of Photon args and expose to filter before passing to Photon URL function.
|
||||
$args = array();
|
||||
|
||||
if ( false !== $width && false !== $height ) {
|
||||
$args[ $transform ] = $width . ',' . $height;
|
||||
} elseif ( false !== $width ) {
|
||||
$args['w'] = $width;
|
||||
} elseif ( false !== $height ) {
|
||||
$args['h'] = $height;
|
||||
}
|
||||
|
||||
return $args;
|
||||
}
|
||||
}
|
||||
|
||||
add_action( 'init', array( 'Jetpack_AMP_Support', 'init' ), 1 );
|
||||
|
||||
add_action( 'admin_init', array( 'Jetpack_AMP_Support', 'admin_init' ), 1 );
|
||||
143
wp-content/plugins/jetpack/3rd-party/class.jetpack-modules-overrides.php
vendored
Normal file
@@ -0,0 +1,143 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Provides methods for dealing with module overrides.
|
||||
*
|
||||
* @since 5.9.0
|
||||
*/
|
||||
class Jetpack_Modules_Overrides {
|
||||
/**
|
||||
* Used to cache module overrides so that we minimize how many times we appy the
|
||||
* option_jetpack_active_modules filter.
|
||||
*
|
||||
* @var null|array
|
||||
*/
|
||||
private $overrides = null;
|
||||
|
||||
/**
|
||||
* Clears the $overrides member used for caching.
|
||||
*
|
||||
* Since get_overrides() can be passed a falsey value to skip caching, this is probably
|
||||
* most useful for clearing cache between tests.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function clear_cache() {
|
||||
$this->overrides = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if there is a filter on the jetpack_active_modules option.
|
||||
*
|
||||
* @return bool Whether there is a filter on the jetpack_active_modules option.
|
||||
*/
|
||||
public function do_overrides_exist() {
|
||||
return (bool) ( has_filter( 'option_jetpack_active_modules' ) || has_filter( 'jetpack_active_modules' ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the override for a given module.
|
||||
*
|
||||
* @param string $module_slug The module's slug.
|
||||
* @param boolean $use_cache Whether or not cached overrides should be used.
|
||||
*
|
||||
* @return bool|string False if no override for module. 'active' or 'inactive' if there is an override.
|
||||
*/
|
||||
public function get_module_override( $module_slug, $use_cache = true ) {
|
||||
$overrides = $this->get_overrides( $use_cache );
|
||||
|
||||
if ( ! isset( $overrides[ $module_slug ] ) ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return $overrides[ $module_slug ];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an array of module overrides where the key is the module slug and the value
|
||||
* is true if the module is forced on and false if the module is forced off.
|
||||
*
|
||||
* @param bool $use_cache Whether or not cached overrides should be used.
|
||||
*
|
||||
* @return array The array of module overrides.
|
||||
*/
|
||||
public function get_overrides( $use_cache = true ) {
|
||||
if ( $use_cache && ! is_null( $this->overrides ) ) {
|
||||
return $this->overrides;
|
||||
}
|
||||
|
||||
if ( ! $this->do_overrides_exist() ) {
|
||||
return array();
|
||||
}
|
||||
|
||||
$available_modules = Jetpack::get_available_modules();
|
||||
|
||||
/**
|
||||
* First, let's get all modules that have been forced on.
|
||||
*/
|
||||
|
||||
/** This filter is documented in wp-includes/option.php */
|
||||
$filtered = apply_filters( 'option_jetpack_active_modules', array() );
|
||||
|
||||
/** This filter is documented in class.jetpack.php */
|
||||
$filtered = apply_filters( 'jetpack_active_modules', $filtered );
|
||||
|
||||
$forced_on = array_diff( $filtered, array() );
|
||||
|
||||
/**
|
||||
* Second, let's get all modules forced off.
|
||||
*/
|
||||
|
||||
/** This filter is documented in wp-includes/option.php */
|
||||
$filtered = apply_filters( 'option_jetpack_active_modules', $available_modules );
|
||||
|
||||
/** This filter is documented in class.jetpack.php */
|
||||
$filtered = apply_filters( 'jetpack_active_modules', $filtered );
|
||||
|
||||
$forced_off = array_diff( $available_modules, $filtered );
|
||||
|
||||
/**
|
||||
* Last, build the return value.
|
||||
*/
|
||||
$return_value = array();
|
||||
foreach ( $forced_on as $on ) {
|
||||
$return_value[ $on ] = 'active';
|
||||
}
|
||||
|
||||
foreach ( $forced_off as $off ) {
|
||||
$return_value[ $off ] = 'inactive';
|
||||
}
|
||||
|
||||
$this->overrides = $return_value;
|
||||
|
||||
return $return_value;
|
||||
}
|
||||
|
||||
/**
|
||||
* A reference to an instance of this class.
|
||||
*
|
||||
* @var Jetpack_Modules_Overrides
|
||||
*/
|
||||
private static $instance = null;
|
||||
|
||||
/**
|
||||
* Returns the singleton instance of Jetpack_Modules_Overrides
|
||||
*
|
||||
* @return Jetpack_Modules_Overrides
|
||||
*/
|
||||
public static function instance() {
|
||||
if ( is_null( self::$instance ) ) {
|
||||
self::$instance = new Jetpack_Modules_Overrides();
|
||||
}
|
||||
|
||||
return self::$instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* Private construct to enforce singleton.
|
||||
*/
|
||||
private function __construct() {
|
||||
}
|
||||
}
|
||||
|
||||
Jetpack_Modules_Overrides::instance();
|
||||