4 Commits

Author SHA1 Message Date
40824c814c Remove unused plugin
Signed-off-by: Adrian Nöthlich <git@promasu.tech>
2019-10-25 23:16:43 +02:00
f86066abfc Add Piratenkleider theme
Signed-off-by: Adrian Nöthlich <git@promasu.tech>
2019-10-25 23:14:31 +02:00
ea49b99d3e Add theme
Signed-off-by: Adrian Nöthlich <git@promasu.tech>
2019-10-25 23:03:21 +02:00
290736650a Add upstream plugins
Signed-off-by: Adrian Nöthlich <git@promasu.tech>
2019-10-25 22:42:20 +02:00
276 changed files with 49522 additions and 0 deletions

View 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.

File diff suppressed because it is too large Load Diff

View 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;
}

View 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;}

View 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 */

View 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}

View 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
}
}

View 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&#8217; uh?', 'antispam-bee' ) );
}
if ( ! current_user_can( 'manage_options' ) ) {
wp_die( esc_html__( 'Cheatin&#8217; 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 );
}
}

View 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();
})();

View 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()})()

View 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
};
}

View 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}};

File diff suppressed because one or more lines are too long

View 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();
}
);

View 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()});

View File

@@ -0,0 +1,209 @@
# 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.2
* 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.
[](http://coderisk.com/wp/plugin/antispam-bee/RIPS-J23dtT1_jC)
### 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 dont 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 youve found a bug (e.g. youre 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 dont know how to install a plugin for WordPress, [heres 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 wont 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

View 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.

View 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 &#8220;%s&#8221; 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 &#8220;%s&#8221; 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;

View 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 );

View 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.

View File

@@ -0,0 +1,83 @@
<?php
/*
Plugin Name: Disable Emojis (GDPR friendly)
Plugin URI: https://geek.hellyer.kiwi/plugins/disable-emojis/
Description: Disable Emojis (GDPR friendly)
Version: 1.7.2
Author: Ryan Hellyer
Author URI: https://geek.hellyer.kiwi/
License: GPL2
------------------------------------------------------------------------
Copyright Ryan Hellyer
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/**
* Disable the emoji's
*/
function disable_emojis() {
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );
remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
add_filter( 'tiny_mce_plugins', 'disable_emojis_tinymce' );
add_filter( 'wp_resource_hints', 'disable_emojis_remove_dns_prefetch', 10, 2 );
}
add_action( 'init', 'disable_emojis' );
/**
* Filter function used to remove the tinymce emoji plugin.
*
* @param array $plugins
* @return array Difference betwen the two arrays
*/
function disable_emojis_tinymce( $plugins ) {
if ( is_array( $plugins ) ) {
return array_diff( $plugins, array( 'wpemoji' ) );
}
return array();
}
/**
* Remove emoji CDN hostname from DNS prefetching hints.
*
* @param array $urls URLs to print for resource hints.
* @param string $relation_type The relation type the URLs are printed for.
* @return array Difference betwen the two arrays.
*/
function disable_emojis_remove_dns_prefetch( $urls, $relation_type ) {
if ( 'dns-prefetch' == $relation_type ) {
// Strip out any URLs referencing the WordPress.org emoji location
$emoji_svg_url_bit = 'https://s.w.org/images/core/emoji/';
foreach ( $urls as $key => $url ) {
if ( strpos( $url, $emoji_svg_url_bit ) !== false ) {
unset( $urls[$key] );
}
}
}
return $urls;
}

View File

@@ -0,0 +1,281 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin St, Fifth Floor, Boston, MA 02110, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS

View File

@@ -0,0 +1,78 @@
=== Disable Emojis (GDPR friendly) ===
Contributors: ryanhellyer
Tags: emojis, gdpr, disable
Donate link: https://geek.hellyer.kiwi/donate/
Requires at least: 4.8
Tested up to: 5.1
Stable tag: 1.7.2
This plugin disables the new WordPress emoji functionality. GDPR friendly.
== Description ==
This plugin disables the new WordPress emoji functionality. GDPR friendly.
Note: Emoticons will still work and emoji's will still work in browsers which have built in support for them. This plugin simply removes the extra code bloat used to add support for emoji's in older browsers.
= GDPR compliancy =
This plugin does not do anything to make your site less GDPR compliant. It disables the DNS prefetching of emoji's within WordPress, which should ensure improved privacy. To determine if your site is GDPR compliant, please seek legal advice. I have done my best to ensure the plugin is 100% GDPR compliant, but I am not a lawyer so can not guarantee anything ;)
== Installation ==
After you've downloaded and extracted the files:
1. Upload the complete 'disable-emojis' folder to the '/wp-content/plugins/' directory OR install via the plugin installer
2. Activate the plugin through the 'Plugins' menu in WordPress
3. And yer done!
Visit the <a href="https://geek.hellyer.kiwi/plugins/disable-emojis/">Disable Emojis plugin</a> for more information.
== Changelog ==
= 1.7.2 =
* Subtle improvement to code cleanliness.
* Improved documentation regarding GDPR issues.
= 1.7.1 =
* Added GDPR friendly label on advice from Ipstenu.
= 1.7 =
* Removed DNS prefetch URL again.
* This time using simple string check rather than relying on internal WordPress filters.
= 1.6 =
* Removed DNS prefetch URL. Props to Aaron Queen for assisting with this.
= 1.5.3 =
* Catering to new DNS prefetch URL in version 4.7 of core
= 1.5.2 =
* Improved documentation.
* Removed redundant dns prefetching. Thanks to <a href="http://blog.milandinic.com/">Milan Dinic</a> for the pull request.
= 1.5.1 =
* Updating documentation.
= 1.5 =
* Catering for invalid $plugin array.
= 1.4 =
* Updating to use Otto's code.
= 1.3 =
Removing extraneous styles.
= 1.2 =
Bug fix.
= 1.1 =
Updating to work with latest beta.
= 1.0 =
Initial release.

View File

@@ -0,0 +1,424 @@
<?php
/**
* The Disable Google Fonts Plugin
*
* Disable enqueuing of fonts from Google used by WordPress core, default themes, Gutenberg, and many more
*
* @package Disable_Google_Fonts
* @subpackage Main
*/
/**
* Plugin Name: Disable Google Fonts
* Plugin URI: https://milandinic.com/wordpress/plugins/disable-google-fonts/
* Description: Disable enqueuing of fonts from Google used by WordPress core, default themes, Gutenberg, and many more.
* Author: Milan Dinić
* Author URI: https://milandinic.com/
* Version: 2.0
* Text Domain: disable-google-fonts
* Domain Path: /languages/
* License: GPL
*/
/* Exit if accessed directly */
if ( ! defined( 'ABSPATH' ) ) exit;
class Disable_Google_Fonts {
/**
* Hook actions and filters.
*
* @since 1.0
* @access public
*/
public function __construct() {
add_filter( 'gettext_with_context', array( $this, 'disable_google_fonts' ), 888, 4 );
}
/**
* Add action links to plugins page.
*
* @since 1.2
* @deprecated 1.3
* @access public
*
* @param array $links Plugin's action links.
* @param string $plugin_file Path to the plugin file.
* @return array $links Plugin's action links.
*/
public function action_links( $links, $plugin_file ) {
_deprecated_function( __METHOD__, '1.3' );
return $links;
}
/**
* Force 'off' as a result of font toggler string translation.
*
* @since 2.0
* @access public
*
* @param string $translations Translated text.
* @param string $text Text to translate.
* @param string $context Context information for the translators.
* @param string $domain Text domain. Unique identifier for retrieving translated strings.
* @return string $translations Translated text.
*/
public function disable_google_fonts( $translations, $text, $context, $domain ) {
switch ( $text ) {
case 'on':
// Pass for most cases.
if ( $this->is_ending_with_font_toggler( $context ) || in_array( $context, $this->get_font_toggler_variants() ) ) {
$translations = 'off';
}
break;
case 'Noto Serif:400,400i,700,700i':
if ( 'Google Font Name and Variants' === $context ) {
$translations = 'off';
}
break;
}
return $translations;
}
/**
* Check if text is ending with variation of 'font(s):( )on or off'.
*
* For most strings that are used as font togglers, context is ending
* with this text. This method checks if that is the case.
*
* @since 2.0
* @access public
*
* @param string $text Text to check.
* @return bool Whether text is ending with phrase or not.
*/
public function is_ending_with_font_toggler( $text ) {
if ( preg_match( '/font[s]?:\s?on or off$/i', $text ) ) {
return true;
} else {
return false;
}
}
/**
* Get context variants that cannot be detected with string font toggler checker.
*
* @since 2.0
*
* @return array
*/
public function get_font_toggler_variants() {
return array(
'arimo:on or off',
'Assistant:on or off',
'Atma: on or off',
'Crimson Text: on or off',
'Dancing Script: on or off',
'Droid sans: on or off',
'Google font: on',
'Google Font for body text: on or off',
'Google Font for heading text: on or off',
'Google Font for menu text: on or off',
'Google fonts: "on" or "off"',
'Great Vibes:on or off',
'greatvibes:on or off',
'Hind: on or off',
'Indie Flower: on or off',
'Josefin Sans: on or off',
'Lato: on or off',
'Lato:on or off',
'Lato : on or off',
'Lobster:on or off',
'Lora: on or off',
'Merriweather: on or off',
'Merriweather:on or off',
'montserrat:on or off',
'Muli: on or off',
'Nunito Sans: on or off',
'Open Sans',
'Open Sans:on or off',
'Open Sans: on or off',
'opensans:on or off',
'Open Sans : on or off',
'Oswald:on or off',
'oswald:on or off',
'Oxygen: on or off',
'Pacifico: on or off',
'Pacifico:on or off',
'pacifico:on or off',
'Poppins: on or off',
'playball:on or off',
'Playfair Display: on or off',
'Product Sans: on or off',
'pt_sans:on or off',
'Raleway: on or off',
'Roboto',
'Roboto: on or off',
'roboto:on or off',
'Roboto:on or off',
'Roboto : on or off',
'Roboto Condensed',
'Roboto Condensed:on or off',
'roboto_condensed:on or off',
'robotocondensed:on or off',
'Roboto Slab:on or off',
'Sail:on or off',
'Scada:on or off',
'scada:on or off',
'Shadows Into Light: on or off',
);
}
/**
* Force 'off' as a result of Open Sans font toggler string translation.
*
* @since 1.0
* @access public
*
* @param string $translations Translated text.
* @param string $text Text to translate.
* @param string $context Context information for the translators.
* @param string $domain Text domain. Unique identifier for retrieving translated strings.
* @return string $translations Translated text.
*/
public function disable_open_sans( $translations, $text, $context, $domain ) {
if ( 'Open Sans font: on or off' == $context && 'on' == $text ) {
$translations = 'off';
}
return $translations;
}
/**
* Force 'off' as a result of Lato font toggler string translation.
*
* @since 1.0
* @access public
*
* @param string $translations Translated text.
* @param string $text Text to translate.
* @param string $context Context information for the translators.
* @param string $domain Text domain. Unique identifier for retrieving translated strings.
* @return string $translations Translated text.
*/
public function disable_lato( $translations, $text, $context, $domain ) {
if ( 'Lato font: on or off' == $context && 'on' == $text ) {
$translations = 'off';
}
return $translations;
}
/**
* Force 'off' as a result of Source Sans Pro font toggler string translation.
*
* @since 1.0
* @access public
*
* @param string $translations Translated text.
* @param string $text Text to translate.
* @param string $context Context information for the translators.
* @param string $domain Text domain. Unique identifier for retrieving translated strings.
* @return string $translations Translated text.
*/
public function disable_source_sans_pro( $translations, $text, $context, $domain ) {
if ( 'Source Sans Pro font: on or off' == $context && 'on' == $text ) {
$translations = 'off';
}
return $translations;
}
/**
* Force 'off' as a result of Bitter font toggler string translation.
*
* @since 1.0
* @access public
*
* @param string $translations Translated text.
* @param string $text Text to translate.
* @param string $context Context information for the translators.
* @param string $domain Text domain. Unique identifier for retrieving translated strings.
* @return string $translations Translated text.
*/
public function disable_bitter( $translations, $text, $context, $domain ) {
if ( 'Bitter font: on or off' == $context && 'on' == $text ) {
$translations = 'off';
}
return $translations;
}
/**
* Force 'off' as a result of Noto Sans font toggler string translation.
*
* @since 1.1
* @access public
*
* @param string $translations Translated text.
* @param string $text Text to translate.
* @param string $context Context information for the translators.
* @param string $domain Text domain. Unique identifier for retrieving translated strings.
* @return string $translations Translated text.
*/
public function disable_noto_sans( $translations, $text, $context, $domain ) {
if ( 'Noto Sans font: on or off' == $context && 'on' == $text ) {
$translations = 'off';
}
return $translations;
}
/**
* Force 'off' as a result of Noto Serif font toggler string translation.
*
* @since 1.1
* @access public
*
* @param string $translations Translated text.
* @param string $text Text to translate.
* @param string $context Context information for the translators.
* @param string $domain Text domain. Unique identifier for retrieving translated strings.
* @return string $translations Translated text.
*/
public function disable_noto_serif( $translations, $text, $context, $domain ) {
if ( 'Noto Serif font: on or off' == $context && 'on' == $text ) {
$translations = 'off';
}
return $translations;
}
/**
* Force 'off' as a result of Inconsolata font toggler string translation.
*
* @since 1.1
* @access public
*
* @param string $translations Translated text.
* @param string $text Text to translate.
* @param string $context Context information for the translators.
* @param string $domain Text domain. Unique identifier for retrieving translated strings.
* @return string $translations Translated text.
*/
public function disable_inconsolata( $translations, $text, $context, $domain ) {
if ( 'Inconsolata font: on or off' == $context && 'on' == $text ) {
$translations = 'off';
}
return $translations;
}
/**
* Force 'off' as a result of Merriweather font toggler string translation.
*
* @since 1.2
* @access public
*
* @param string $translations Translated text.
* @param string $text Text to translate.
* @param string $context Context information for the translators.
* @param string $domain Text domain. Unique identifier for retrieving translated strings.
* @return string $translations Translated text.
*/
public function disable_merriweather( $translations, $text, $context, $domain ) {
if ( 'Merriweather font: on or off' == $context && 'on' == $text ) {
$translations = 'off';
}
return $translations;
}
/**
* Force 'off' as a result of Montserrat font toggler string translation.
*
* @since 1.2
* @access public
*
* @param string $translations Translated text.
* @param string $text Text to translate.
* @param string $context Context information for the translators.
* @param string $domain Text domain. Unique identifier for retrieving translated strings.
* @return string $translations Translated text.
*/
public function disable_montserrat( $translations, $text, $context, $domain ) {
if ( 'Montserrat font: on or off' == $context && 'on' == $text ) {
$translations = 'off';
}
return $translations;
}
/**
* Force 'off' as a result of Libre Franklin font toggler string translation.
*
* @since 1.3
* @access public
*
* @param string $translations Translated text.
* @param string $text Text to translate.
* @param string $context Context information for the translators.
* @param string $domain Text domain. Unique identifier for retrieving translated strings.
* @return string $translations Translated text.
*/
public function disable_libre_franklin( $translations, $text, $context, $domain ) {
if ( 'Libre Franklin font: on or off' == $context && 'on' == $text ) {
$translations = 'off';
}
return $translations;
}
/**
* Register filters that disable fonts for bundled themes.
*
* This filters can be directly hooked as Disable_Google_Fonts::disable_open_sans()
* but that would mean that comparison is done on each string
* for each font which creates performance issues.
*
* Instead we check active template's name very late and just once
* and hook appropriate filters.
*
* Note that Open Sans disabler is used for both WordPress core
* and for Twenty Twelve theme.
*
* @since 1.0
* @access public
*
* @uses get_template() To get name of the active parent theme.
* @uses add_filter() To hook theme specific fonts disablers.
*/
public function register_theme_fonts_disabler() {
$template = get_template();
switch ( $template ) {
case 'twentyseventeen' :
add_filter( 'gettext_with_context', array( $this, 'disable_libre_franklin' ), 888, 4 );
break;
case 'twentysixteen' :
add_filter( 'gettext_with_context', array( $this, 'disable_merriweather' ), 888, 4 );
add_filter( 'gettext_with_context', array( $this, 'disable_montserrat' ), 888, 4 );
add_filter( 'gettext_with_context', array( $this, 'disable_inconsolata' ), 888, 4 );
break;
case 'twentyfifteen' :
add_filter( 'gettext_with_context', array( $this, 'disable_noto_sans' ), 888, 4 );
add_filter( 'gettext_with_context', array( $this, 'disable_noto_serif' ), 888, 4 );
add_filter( 'gettext_with_context', array( $this, 'disable_inconsolata' ), 888, 4 );
break;
case 'twentyfourteen' :
add_filter( 'gettext_with_context', array( $this, 'disable_lato' ), 888, 4 );
break;
case 'twentythirteen' :
add_filter( 'gettext_with_context', array( $this, 'disable_source_sans_pro' ), 888, 4 );
add_filter( 'gettext_with_context', array( $this, 'disable_bitter' ), 888, 4 );
break;
}
}
}
/* Although it would be preferred to do this on hook,
* load early to make sure Open Sans is removed
*/
$disable_google_fonts = new Disable_Google_Fonts;

View File

@@ -0,0 +1,51 @@
=== Disable Google Fonts ===
Contributors: dimadin
Donate link: https://milandinic.com/donate/
Tags: Open Sans, Google Fonts, Google Web Fonts
Requires at least: 3.5
Tested up to: 5.1
Requires PHP: 5.2.4
Stable tag: 2.0
Disable enqueuing of fonts from Google used by WordPress core, default themes, Gutenberg, and many more.
== Description ==
[Plugin homepage](https://milandinic.com/wordpress/plugins/disable-google-fonts/) | [Plugin author](https://milandinic.com/) | [Donate](https://milandinic.com/donate/)
This plugin stops loading of fonts from Google Fonts used by WordPress core, Gutenberg plugin, bundled themes (Twenty Twelve, Twenty Thirteen, Twenty Fourteen, Twenty Fifteen, Twenty Sixteen, Twenty Seventeen), and most other themes. If theme or plugin (whose name is not listed here) uses fonts from Google Fonts, those fonts still might be loaded if that theme or plugin loads fonts from Google in a way that is incompatible with this plugin.
Reasons for not using Google Fonts might be privacy and security, local development or production, blocking of Google's servers, characters not supported by font, performance.
Disable Google Fonts is a very lightweight, it has no settings, just activate it and it works immediately.
And it's on [GitHub](https://github.com/dimadin/disable-google-fonts).
== Installation ==
1. Upload `disable-google-fonts` folder to the `/wp-content/plugins/` directory
2. Activate the plugin through the 'Plugins' menu in WordPress
== Changelog ==
= 2.0 =
* Released on 23rd December 2018
* Change logic when disabling font via string translation filter.
* Change plugin description to better explain in which situations it works.
* Add support for WordPress 5.0, latest version of Gutenberg plugin, and most of the themes in WordPress.org Themes Repository.
= 1.4 =
* Released on 28th September 2018
* Remove fonts used in Gutenberg.
= 1.3 =
* Released on 12th December 2016
* Remove fonts used in Twenty Seventeen.
= 1.2 =
* Released on 9th December 2015
* Remove fonts used in Twenty Sixteen.
= 1.1 =
* Released on 29th December 2014
* Remove fonts used in Twenty Fifteen.

View File

@@ -0,0 +1,80 @@
# Translation of the WordPress plugin RSS Importer 0.2 by wordpressdotorg.
# Copyright (C) 2010 wordpressdotorg
# This file is distributed under the same license as the RSS Importer package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: RSS Importer 0.2\n"
"Report-Msgid-Bugs-To: http://wordpress.org/tag/rss-importer\n"
"POT-Creation-Date: 2010-06-01 13:26+0300\n"
"PO-Revision-Date: 2010-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: rss-importer.php:50
msgid "Import RSS"
msgstr ""
#: rss-importer.php:59
msgid ""
"Howdy! This importer allows you to extract posts from an RSS 2.0 file into "
"your WordPress site. This is useful if you want to import your posts from a "
"system that is not handled by a custom import tool. Pick an RSS file to "
"upload and click Import."
msgstr ""
#: rss-importer.php:143
msgid "Importing post..."
msgstr ""
#: rss-importer.php:148
msgid "Post already imported"
msgstr ""
#: rss-importer.php:154
msgid "Couldn&#8217;t get post ID"
msgstr ""
#: rss-importer.php:160
msgid "Done!"
msgstr ""
#: rss-importer.php:185
#, php-format
msgid "All done. <a href=\"%s\">Have fun!</a>"
msgstr ""
#: rss-importer.php:219
msgid "RSS"
msgstr ""
#: rss-importer.php:219
msgid "Import posts from an RSS feed."
msgstr ""
#. Plugin Name of the plugin/theme
msgid "RSS Importer"
msgstr ""
#. Plugin URI of the plugin/theme
msgid "http://wordpress.org/extend/plugins/rss-importer/"
msgstr ""
#. Description of the plugin/theme
msgid ""
"Import posts from an RSS feed. This plugin depends on the WP_Importer base "
"class."
msgstr ""
#. Author of the plugin/theme
msgid "wordpressdotorg"
msgstr ""
#. Author URI of the plugin/theme
msgid "http://wordpress.org/"
msgstr ""

View File

@@ -0,0 +1,33 @@
=== Plugin Name ===
Contributors: wordpressdotorg
Tags: importer, rss
Requires at least: 3.0
Tested up to: 4.7
Stable tag: trunk
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Import posts from an RSS feed.
== Description ==
Import posts from an RSS feed.
== Installation ==
1. Upload the `rss-importer` folder to the `/wp-content/plugins/` directory
1. Activate the plugin through the 'Plugins' menu in WordPress
1. Go to the Tools -> Import screen, Click on RSS
== Frequently Asked Questions ==
== Screenshots ==
== Changelog ==
= 0.2 =
* Update compat
* Add text domain headers
= 0.1 =
* Initial release

View File

@@ -0,0 +1,227 @@
<?php
/*
Plugin Name: RSS Importer
Plugin URI: http://wordpress.org/extend/plugins/rss-importer/
Description: Import posts from an RSS feed.
Author: wordpressdotorg
Author URI: http://wordpress.org/
Version: 0.2
Stable tag: 0.2
License: GPL version 2 or later - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
Text Domain: rss-importer
*/
if ( !defined('WP_LOAD_IMPORTERS') )
return;
// Load Importer API
require_once ABSPATH . 'wp-admin/includes/import.php';
if ( !class_exists( 'WP_Importer' ) ) {
$class_wp_importer = ABSPATH . 'wp-admin/includes/class-wp-importer.php';
if ( file_exists( $class_wp_importer ) )
require_once $class_wp_importer;
}
/**
* RSS Importer
*
* @package WordPress
* @subpackage Importer
*/
/**
* RSS Importer
*
* Will process a RSS feed for importing posts into WordPress. This is a very
* limited importer and should only be used as the last resort, when no other
* importer is available.
*
* @since unknown
*/
if ( class_exists( 'WP_Importer' ) ) {
class RSS_Import extends WP_Importer {
var $posts = array ();
var $file;
function header() {
echo '<div class="wrap">';
screen_icon();
echo '<h2>'.__('Import RSS', 'rss-importer').'</h2>';
}
function footer() {
echo '</div>';
}
function greet() {
echo '<div class="narrow">';
echo '<p>'.__('Howdy! This importer allows you to extract posts from an RSS 2.0 file into your WordPress site. This is useful if you want to import your posts from a system that is not handled by a custom import tool. Pick an RSS file to upload and click Import.', 'rss-importer').'</p>';
wp_import_upload_form("admin.php?import=rss&amp;step=1");
echo '</div>';
}
function _normalize_tag( $matches ) {
return '<' . strtolower( $matches[1] );
}
function get_posts() {
global $wpdb;
set_magic_quotes_runtime(0);
$datalines = file($this->file); // Read the file into an array
$importdata = implode('', $datalines); // squish it
$importdata = str_replace(array ("\r\n", "\r"), "\n", $importdata);
preg_match_all('|<item>(.*?)</item>|is', $importdata, $this->posts);
$this->posts = $this->posts[1];
$index = 0;
foreach ($this->posts as $post) {
preg_match('|<title>(.*?)</title>|is', $post, $post_title);
$post_title = str_replace(array('<![CDATA[', ']]>'), '', $wpdb->escape( trim($post_title[1]) ));
preg_match('|<pubdate>(.*?)</pubdate>|is', $post, $post_date_gmt);
if ($post_date_gmt) {
$post_date_gmt = strtotime($post_date_gmt[1]);
} else {
// if we don't already have something from pubDate
preg_match('|<dc:date>(.*?)</dc:date>|is', $post, $post_date_gmt);
$post_date_gmt = preg_replace('|([-+])([0-9]+):([0-9]+)$|', '\1\2\3', $post_date_gmt[1]);
$post_date_gmt = str_replace('T', ' ', $post_date_gmt);
$post_date_gmt = strtotime($post_date_gmt);
}
$post_date_gmt = gmdate('Y-m-d H:i:s', $post_date_gmt);
$post_date = get_date_from_gmt( $post_date_gmt );
preg_match_all('|<category>(.*?)</category>|is', $post, $categories);
$categories = $categories[1];
if (!$categories) {
preg_match_all('|<dc:subject>(.*?)</dc:subject>|is', $post, $categories);
$categories = $categories[1];
}
$cat_index = 0;
foreach ($categories as $category) {
$categories[$cat_index] = $wpdb->escape( html_entity_decode( $category ) );
$cat_index++;
}
preg_match('|<guid.*?>(.*?)</guid>|is', $post, $guid);
if ($guid)
$guid = $wpdb->escape(trim($guid[1]));
else
$guid = '';
preg_match('|<content:encoded>(.*?)</content:encoded>|is', $post, $post_content);
$post_content = str_replace(array ('<![CDATA[', ']]>'), '', $wpdb->escape(trim($post_content[1])));
if (!$post_content) {
// This is for feeds that put content in description
preg_match('|<description>(.*?)</description>|is', $post, $post_content);
$post_content = $wpdb->escape( html_entity_decode( trim( $post_content[1] ) ) );
}
// Clean up content
$post_content = preg_replace_callback('|<(/?[A-Z]+)|', array( &$this, '_normalize_tag' ), $post_content);
$post_content = str_replace('<br>', '<br />', $post_content);
$post_content = str_replace('<hr>', '<hr />', $post_content);
$post_author = 1;
$post_status = 'publish';
$this->posts[$index] = compact('post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_title', 'post_status', 'guid', 'categories');
$index++;
}
}
function import_posts() {
echo '<ol>';
foreach ($this->posts as $post) {
echo "<li>".__('Importing post...', 'rss-importer');
extract($post);
if ($post_id = post_exists($post_title, $post_content, $post_date)) {
_e('Post already imported', 'rss-importer');
} else {
$post_id = wp_insert_post($post);
if ( is_wp_error( $post_id ) )
return $post_id;
if (!$post_id) {
_e('Couldn&#8217;t get post ID', 'rss-importer');
return;
}
if (0 != count($categories))
wp_create_categories($categories, $post_id);
_e('Done!', 'rss-importer');
}
echo '</li>';
}
echo '</ol>';
}
function import() {
$file = wp_import_handle_upload();
if ( isset($file['error']) ) {
echo $file['error'];
return;
}
$this->file = $file['file'];
$this->get_posts();
$result = $this->import_posts();
if ( is_wp_error( $result ) )
return $result;
wp_import_cleanup($file['id']);
do_action('import_done', 'rss');
echo '<h3>';
printf(__('All done. <a href="%s">Have fun!</a>', 'rss-importer'), get_option('home'));
echo '</h3>';
}
function dispatch() {
if (empty ($_GET['step']))
$step = 0;
else
$step = (int) $_GET['step'];
$this->header();
switch ($step) {
case 0 :
$this->greet();
break;
case 1 :
check_admin_referer('import-upload');
$result = $this->import();
if ( is_wp_error( $result ) )
echo $result->get_error_message();
break;
}
$this->footer();
}
function RSS_Import() {
// Nothing.
}
}
$rss_import = new RSS_Import();
register_importer('rss', __('RSS', 'rss-importer'), __('Import posts from an RSS feed.', 'rss-importer'), array ($rss_import, 'dispatch'));
} // class_exists( 'WP_Importer' )
function rss_importer_init() {
load_plugin_textdomain( 'rss-importer', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
}
add_action( 'init', 'rss_importer_init' );

View File

@@ -0,0 +1,16 @@
# IDE & System Related Files #
##############################
/nbproject/private/
/nbproject/
Browse.plb
Thumbs.db
Desktop.ini
.Spotlight-V100
.Trashes
.DS_Store
.buildpath
.project
.settings
.idea
._*
*~

View File

@@ -0,0 +1,72 @@
<?php get_header();
global $options;
?>
<div class="section content" id="main-content">
<div class="row">
<div class="content-primary">
<?php
$image_url = '';
$attribs = array("credits" => $options['img-meta-credits'] );
if (($options['aktiv-platzhalterbilder-indexseiten']==1) && (isset($options['src-default-symbolbild-404']))) {
if (isset($options['src-default-symbolbild-404_id']) && ($options['src-default-symbolbild-404_id']>0)) {
$image_url_data = wp_get_attachment_image_src( $options['src-default-symbolbild-404_id'], 'full');
$image_url = $image_url_data[0];
$attribs = piratenkleider_get_image_attributs($options['src-default-symbolbild-404_id']);
} else {
$image_url = $options['src-default-symbolbild-404'];
}
}
if (isset($image_url) && (strlen($image_url)>4)) {
if ($options['indexseitenbild-size']==1) {
echo '<div class="content-header-big">';
} else {
echo '<div class="content-header">';
}
?>
<h1 class="post-title"><span><?php _e("Page not found",'piratenkleider'); ?></span></h1>
<div class="symbolbild"><img src="<?php echo piratenkleider_make_link_relative($image_url); ?>" alt="">
<?php if (isset($attribs["credits"]) && (strlen($attribs["credits"])>1)) {
echo '<div class="caption">'.$attribs["credits"].'</div>';
} else { ?>
<div class="caption">
<p style="font-size: 2em;" class="cifont">404</p>
</div>
<?php } ?>
</div>
</div>
<?php } ?>
<div class="skin">
<?php if (!(isset($image_url) && (strlen($image_url)>4))) { ?>
<h1 class="post-title"><span><?php _e("Page not found",'piratenkleider'); ?></span></h1>
<?php } ?>
<p>
<?php _e("No matching pages or entries found. Please try to search with another term.", 'piratenkleider'); ?>
</p>
<?php get_search_form(); ?>
</div>
</div>
<div class="content-aside">
<div class="skin">
<p>
<em>
<?php _e("These are not the pages you are looking for.", 'piratenkleider'); ?>
</em>
</p>
</div>
</div>
</div>
<?php get_piratenkleider_socialmediaicons(2); ?>
</div>
<?php get_footer();

View File

@@ -0,0 +1,276 @@
Theme Piratenkleider
Changelog
(since version 3.2; Former changes look at github.com/Piratenkleider/)
Version 3.4.8:
* Deactivated functions to make links relative due to several prolems
Version 3.4.7:
* User Agent String set from emoty to "Browser anonymized"
* Width of Piratewiki Symbol to 16px
* GitHub URI inserted
Version 3.4.6:
* Posters for Saarland17
Version 3.4.5:
* Bugfixes and merges
* Posters for NRW17
Version 3.4.4:
* Follow-up fix for #202: Do not add space before article headers in more articles section
* Add anchor for comments, should fix #235
* Bugfix for new sharif Icon List
Version 3.4.3:
* set default thumb size for teaser to 150x150
* removed favicon handling: WordPress brings a new customizer for favicon.
Version 3.4.2:
* added commit for ch modification https://github.com/xwolfde/Piratenkleider/commit/44897fa8ef6ca7c19049aa6d32771881e207b467
Version 3.4.1:
* Error 404 page: Removed default sidebar. In case of wrong links in widgets its
better not to show them in the 404 page, due to loops.
Version 3.4.0:
* Update URL Pirate party turkey to https://korsanparti.org/ also for iconless list
* Removed wrong php ending on some files. Might cause trouble on plugins...
* Made font Aller rg avaible for theme design settings
Version 3.3.17:
* Update URL Pirate party turkey to https://korsanparti.org/
* Removed wp_title() from templates
* Added class .screen-reader-text as alias for .skip
* Removed deprecated bloginfo()
Version 3.3.16:
* Several merge requests from JOWI:
** Swiss theme updates, colors and improvements
** Font updates
** The logo will not resize if it's rendered as inline-block.
** convert linebreaks to unix style and other minor fixes
** allow to overwrite hamburger.css, code style, syntax fixes
** optimized images
** change hamburger icon
** responsive login panel
* Merge Requests from JustThomas
** Use the piratenkleider_make_link_relative function also for article images.
Version 3.3.15:
* Bugfix header attributes an home
Version 3.3.14:
* Bugfix #206
* Bugfix #207
* Merges for relative links from JanRei
* Merges for warnings from JanRei
Version 3.3.13:
* Bugfix on attributes of header images in single entries
Version 3.3.12:
* Added KV Neukirchen-Vluyn
Version 3.3.11:
* Updates in form link-function to match updates of WP4.2
* Fixed margin in header links
Version 3.3.10:
* updated use of cmb with wphelper
* removed old remainings of dynamic sidebar
* added slider images for entries
* added subtitles for entries
Version 3.3.9:
* made piratenkleider comptabile to wordpress shariff social media icons
* made Diaspora Icon by Plugin https://wordpress.org/plugins/share-on-diaspora/
look like Shariff Icons
* changed URL for Potsdam
Version 3.3.8:
* added images for elections in HB
Version 3.3.7:
* allowed to change image dimensions of thumbnails in backend
Version 3.3.6:
* Editors now can see statify stats, if installed
* Comment discussion removed from page edit
* Added Social Media Icons for Friendica and Instagram
* Updates Sections in NRW
Version 3.3.5:
* Added Open Graph tags
* Improved Schema.org declarations
Version 3.3.4:
* Bugfixes/improvement for relative links.
post_link is now absolute again, due to plugins, that are using this filter for social media links..
Version 3.3.3:
* Added function for relative URLs for several parts of content
* Added thumbnails in feed
* Added padding to left/right of columns on startpage
Version 3.3.2:
* "Blue posts" for registered users in comments
* Changed us-pirates url
Version 3.3.1:
* Miscellaneous fixes, mostly for translation
* Fix css and js paths
* Fixes for bookmarks and business cards
* Fix errors when searching for an empty string or strings containing spaces
Version 3.3:
* Added japan pirate party
* Typofix Luxemburg
* Update: Google Site Verification
* Update posters
* CSS/JS mimified now with new tool (netbeans plugin); added serveral min files.
Version 3.2.20:
* Enhancement: Optional Hamburger menu (#123)
* Enhancement: Sort business cards in categories once there are more as 7 elements and categories (#163)
Version 3.2.19:
* Bugfix: #178: enforce relative urls for images and make heigh relative; no cropping for images anymore.
* Bugfix: #181 content in templates
* Bugfix: #183 Delicious-Icon
* Enhancement: more css validation; removed IE7 hacks
* Enhancement: #172 - PoliticsHead Font as default in Scapegoat
* Enhancement: Switch for setting three/two columns for startpage on big sized
screen on default stream
Version 3.2.18:
* Bugfix: invalid html5 tags/properties
* Bugfix: invalid css properties in scapegoat css
* Typofix in templates/imprint.php
* Enhancement: added theme option under tab Social Media for the federated social network Friendica in inc/constants.php
* Enhancement: added function piratenkleider_html_tag_schema to inc/functions.php
* Enhancement: added following microdata item types in html tag: WebPage, Article, AboutPage, ContactPage, Person
* Enhancement: added theme option under tab Misc to assign item types AboutPage and ContactPage to pages determined by the admin
* Enhancement: added type Video for embedded videos, property: embedUrl
* Enhancement: added microdata properties for item type Article: name, articleBody, articleSection, creator, keywords, url
* Enhancement: added microdata properties for item type Person: name, description, email, url
* Enhancement: added microdata properties for item type WebPage/AboutPage/ContactPage: mainContentOfPage, name, image, text
* Enhancement: added microdata for comments meta: comment, interactionCount: content=Usercomments, discussionUrl
* Enhancement: added microdata for comments: commentText, name, commentTime, url, image
* Enhancement: added HTML5 article and header-tags to comments
* Enhancement: added other microdata: breadcrumb, datePublished, image, SiteNavigationElement
* Enhancement: added role="navigation" to main navigation in header.php
Version 3.2.17:
* Bugfix/Enhancement: New plakat sliders for brandenburg (#180)
* Typofix: Corrected spelling of ppi (#179)
* Scapegoat-Adaption: max-height instead of height at thumbnail;
text-align right for date.
Version 3.2.16:
* Bugfix: Color of headers h2/h3 in footer at subdesign Scapegoat
* Bugfix: Bannerlink Image as new thumbnail size defined with cropping
* Bugfix: More space for stickers in header on scapegoat subdesign
* Bugfix: fixed missing id on 404-page, bug id #177
Version 3.2.15:
* Optical improvements of scapegoat subdesign
Version 3.2.14:
* Bugfix: ids corrected on widget on startpage option
* Updated posters
Version 3.2.13:
* Bugfix: Input[type="email"] made by Contact Form 7 didnt show a nice CSS;
* New posters for election in Thueringen
* Enhancement. PGP Fingerprint in business cards
* Enhancement: Widget on startpage
Version 3.2.12:
* Enhancement: Allow to change default placeholder image for entry thumbnails
* Enhancement: Add <span></span> around pretitle of breadcrumb
* Bugfix: Removed LV Wilhelmshaven
Version 3.2.11:
* Bugfix: Hovercolors for flaschenpost design, captian position on
slider in 1350 media query
Version 3.2.10:
* Bugfix in german translation
* Enhancement: CSS for bookmark shortcode
* Enhancement:Added chapters of country party Sachsen
Version 3.2.9:
* Bugfix on default background color CSS
Version 3.2.8:
* New optional color combination: white/transparent
* Enhancement: CSS for start page and action page improved
* Feature: Allow optional widget as article stream for start page
Version 3.2.7:
* Bugfix: Translation of german district associations (Bug #152)
* Feature: set header background position to top, like standard themes; Will
now match to body background.
* Feature: Improved CSS and HTML orientation in header to make them relative
positioned; Changed color files and scapegoat to match this.
* Removed Flaschenpost Design and moved it into color file.
Version 3.2.6:
* Bugfix: Allow special chars in wiki username (Bug #148)
* Bugfix: Undefined index (Bug #147)
* Bugfix: fixed header for page menu (Bug #146)
Version 3.2.5:
* Bugfix: Small Screen Layout on Scapegoat Adaption
* Bugfix: Video Embeds only on free spaced content links, not on real links
* Bugfix: Color codes for business cards
* Enhancement: Business Cards now show also local entries which contain the
fullname of the person.
* Enhancement: New login screen
* Removed old unused images
Version 3.2.4:
* Enhancement: CSS for shortcode bookmarks improved
* Enhancement: CSS for Flaschenpost design: position of submenus improved for
old browser support (chrome 35.*)
Version 3.2.3:
* Workaround for Safaris bug on floating excerpts
* Improved fixed header on scrolled text
* Feature: Search form for scrolled text fixed
* Feature: Added wp_editor() for textinput on bookmarks and allowed HTML
* Constants: Default value for displaying tags and categories on startpage set
to 0
Version 3.2.2:
* Business cards can be printed out by a given order and by ids, like
this: [person listorder="4,7,2"]
* Bugfix: German translation for show/hide
* Bugfix: Sanitizing values on business cards
* Feature: Symbol icon for wikis on url wiki.piratenbrandenburg.de
* Feature: Body background changeable independend by current design;
position and repeat configurable.
Version 3.2.1:
* Changed margins and sizes for headlines in content.
* Changed sidebar background: Uses main background
* Sticky-Class uses now standard class of Infoboxes
Version 3.2.0:
* Moved templates into a new directory templates.
* Changed language in PHP files to english and added german language files;
Removed former american-english translation file.
* Notice: Former called "linktipps" will be renamed in "bookmarks" for english
texts.
* Bugfix: custom-fields.php: fixed entries with wrong language domain.
* Removed 'first-teaser-widget-area' (widget instead of slider on start page).
* Removed Teaser widget (widget instead of teaserlinks on start page).
* Removed Bulgarian language files, cause they dont match anymore to new
base language in theme.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -0,0 +1,83 @@
<?php
get_header();
global $options;
?>
<div class="section content" id="main-content">
<div class="row">
<div class="content-primary">
<?php
$image_url = '';
$attribs = array("credits" => $options['img-meta-credits'] );
if (($options['aktiv-platzhalterbilder-indexseiten']==1) && (isset($options['src-default-symbolbild-archive']))) {
if (isset($options['src-default-symbolbild-archive_id']) && ($options['src-default-symbolbild-archive_id']>0)) {
$image_url_data = wp_get_attachment_image_src( $options['src-default-symbolbild-archive_id'], 'full');
$image_url = $image_url_data[0];
$attribs = piratenkleider_get_image_attributs($options['src-default-symbolbild-archive_id']);
} else {
$image_url = $options['src-default-symbolbild-archive'];
}
}
if (isset($image_url) && (strlen($image_url)>4)) {
if ($options['indexseitenbild-size']==1) {
echo '<div class="content-header-big">';
} else {
echo '<div class="content-header">';
}
?>
<h1 class="post-title"><span itemprop="name"><?php if ( is_day() ) : ?>
<?php printf( __( 'Archive by day: %s', 'piratenkleider' ), get_the_date() ); ?>
<?php elseif ( is_month() ) : ?>
<?php printf( __( 'Archive by month: %s', 'piratenkleider' ), get_the_date('F Y') ); ?>
<?php elseif ( is_year() ) : ?>
<?php printf( __( 'Archive by year: %s', 'piratenkleider' ), get_the_date('Y') ); ?>
<?php else :
if ( 'person'== get_post_type() ) {
_e( 'Person page', 'piratenkleider' );
} else {
_e( 'Archive', 'piratenkleider' );
}
endif; ?></span></h1>
<div class="symbolbild"><img src="<?php echo piratenkleider_make_link_relative($image_url); ?>" alt="" itemprop="image">
<?php if (isset($attribs["credits"]) && (strlen($attribs["credits"])>1)) {
echo '<div class="caption">'.$attribs["credits"].'</div>';
} ?>
</div>
</div>
<div class="skin" itemprop="mainContentOfPage">
<?php } else { ?>
<div class="skin" itemprop="mainContentOfPage">
<h1 class="post-title"><span itemprop="name"><?php if ( is_day() ) : ?>
<?php printf( __( 'Archive by day: %s', 'piratenkleider' ), get_the_date() ); ?>
<?php elseif ( is_month() ) : ?>
<?php printf( __( 'Archive by month: %s', 'piratenkleider' ), get_the_date('F Y') ); ?>
<?php elseif ( is_year() ) : ?>
<?php printf( __( 'Archive by year: %s', 'piratenkleider' ), get_the_date('Y') ); ?>
<?php else :
if ( 'person'== get_post_type() ) {
_e( 'Person page', 'piratenkleider' );
} else {
_e( 'Archive', 'piratenkleider' );
}
endif; ?></span></h1>
<?php }
rewind_posts();
get_template_part( 'loop', 'archive' );
?>
</div>
</div>
<div class="content-aside">
<div class="skin">
<h1 class="skip"><?php _e( 'More information', 'piratenkleider' ); ?></h1>
<?php get_sidebar(); ?>
</div>
</div>
</div>
<?php get_piratenkleider_socialmediaicons(2); ?>
</div>
<?php get_footer();

View File

@@ -0,0 +1,134 @@
<?php get_header();
global $options;
global $wp_query;
$cat_obj = $wp_query->get_queried_object();
$thisCat = $cat_obj->term_id;
$thisCatName = get_cat_name($thisCat);
?>
<div class="section content" id="main-content">
<div class="row">
<div class="content-primary">
<?php if ( have_posts() ) the_post(); ?>
<?php
$image_url = '';
$attribs = array("credits" => $options['img-meta-credits'] );
if (($options['aktiv-platzhalterbilder-indexseiten']==1) && (isset($options['src-default-symbolbild-author']))) {
if (isset($options['src-default-symbolbild-author_id']) && ($options['src-default-symbolbild-author_id']>0)) {
$image_url_data = wp_get_attachment_image_src( $options['src-default-symbolbild-author_id'], 'full');
$image_url = $image_url_data[0];
$attribs = piratenkleider_get_image_attributs($options['src-default-symbolbild-author_id']);
} else {
$image_url = $options['src-default-symbolbild-author'];
}
}
if (isset($image_url) && (strlen($image_url)>4)) {
if ($options['indexseitenbild-size']==1) {
echo '<div class="content-header-big">';
} else {
echo '<div class="content-header">';
}
?>
<h1 class="post-title"><span><?php printf( __( '%s', 'piratenkleider' ), get_the_author() ); ?></span></h1>
<div class="symbolbild"><img src="<?php echo piratenkleider_make_link_relative($image_url); ?>" alt="">
<?php if (isset($attribs["credits"]) && (strlen($attribs["credits"])>1)) {
echo '<div class="caption">'.$attribs["credits"].'</div>';
} ?>
</div>
</div>
<?php } ?>
<div class="skin" itemprop="mainContentOfPage">
<?php if (!(isset($image_url) && (strlen($image_url)>4))) { ?>
<h1 class="post-title"><span itemprop="name"><?php printf( __( '%s', 'piratenkleider' ), get_the_author() ); ?></span></h1>
<?php }
if ( get_the_author_meta( 'description' ) ) : ?>
<?php the_author_meta( 'description' ); ?>
<hr>
<?php endif; ?>
<?php rewind_posts();
$i = 0;
$col = 0;
$numentries = $options['category-num-article-fullwidth'] + $options['category-num-article-halfwidth'];
$cols = array();
global $query_string;
$args = $query_string;
$args .= '&cat='.$thisCat;
$args .= '&posts_per_page='.$numentries;
query_posts( $args );
while (have_posts() && $i<$numentries) : the_post();
$i++;
$output = '';
if (( isset($options['category-num-article-fullwidth']))
&& ($options['category-num-article-fullwidth']>=$i )) {
$output = piratenkleider_post_teaser($options['category-teaser-titleup'],$options['category-teaser-datebox'],$options['category-teaser-dateline'],$options['category-teaser-maxlength'],$options['teaser-thumbnail_fallback'],$options['category-teaser-floating']);
} else {
$output = piratenkleider_post_teaser($options['category-teaser-titleup-halfwidth'],$options['category-teaser-datebox-halfwidth'],$options['category-teaser-dateline-halfwidth'],$options['category-teaser-maxlength-halfwidth'],$options['teaser-thumbnail_fallback'],$options['category-teaser-floating-halfwidth']);
}
if (isset($output)) {
$cols[$col++] = $output;
}
endwhile;
?>
<div class="columns">
<?php
$z=1;
foreach($cols as $key => $col) {
if (( isset($options['category-num-article-fullwidth']))
&& ($options['category-num-article-fullwidth']>$key )) {
echo $col;
} else {
if (( isset($options['category-num-article-fullwidth']))
&& ($options['category-num-article-fullwidth']==$key )
&& ($options['category-num-article-fullwidth']>0) ) {
echo '<hr>';
}
echo '<div class="column'.$z.'">' . $col . '</div>';
$z++;
if ($z>2) {
$z=1;
echo '<hr style="clear: both;">';
}
}
}
?>
</div>
<?php if ( $wp_query->max_num_pages > 1 ) : ?>
<div class="archiv-nav"><p>
<?php next_posts_link( __( '&larr; Older entries', 'piratenkleider' ) ); ?>
<?php previous_posts_link( __( 'Newer entries &rarr;', 'piratenkleider' ) ); ?>
</p></div>
<?php endif;
if ( is_active_sidebar( 'indexpages-widget-area' ) ) {
dynamic_sidebar( 'indexpages-widget-area' );
} ?>
</div>
</div>
<div class="content-aside">
<div class="skin">
<h1 class="skip"><?php _e( 'More information', 'piratenkleider' ); ?></h1>
<?php get_sidebar(); ?>
</div>
</div>
</div>
<?php get_piratenkleider_socialmediaicons(2); ?>
</div>
<?php get_footer();

View File

@@ -0,0 +1,149 @@
<?php get_header();
global $options;
global $wp_query;
$cat_obj = $wp_query->get_queried_object();
$thisCat = $cat_obj->term_id;
$thisCatName = get_cat_name($thisCat);
$image_url = '';
$attribs = array("credits" => $options['img-meta-credits'] );
if ($options['category-teaser']) {
echo '<div class="section teaser"><div class="row">';
get_sidebar( 'teaser' );
echo '</div></div>';
} else {
if (($options['aktiv-platzhalterbilder-indexseiten']==1) && (isset($options['src-default-symbolbild-category']))) {
if (isset($options['src-default-symbolbild-category_id']) && ($options['src-default-symbolbild-category_id']>0)) {
$image_url_data = wp_get_attachment_image_src( $options['src-default-symbolbild-category_id'], 'full');
$image_url = $image_url_data[0];
$attribs = piratenkleider_get_image_attributs($options['src-default-symbolbild-category_id']);
} else {
$image_url = $options['src-default-symbolbild-category'];
}
}
}
?>
<div class="section content" id="main-content">
<div class="row">
<div class="content-primary">
<?php
if (isset($image_url) && (strlen($image_url)>4)) {
if ($options['indexseitenbild-size']==1) {
echo '<div class="content-header-big">';
} else {
echo '<div class="content-header">';
}
?>
<h1 class="post-title"><span><?php printf( __( 'Category %s', 'piratenkleider' ), '' . single_cat_title( '', false ) . '' ); ?></span></h1>
<div class="symbolbild"><img src="<?php echo piratenkleider_make_link_relative($image_url); ?>" alt="" itemprop="image">
<?php if (($options['category-teaser']==0) && isset($attribs["credits"]) && (strlen($attribs["credits"])>1)) {
echo '<div class="caption">'.$attribs["credits"].'</div>';
} ?></div>
<?php
if ($options['category-teaser']) {
echo '<h1 class="skip">'.__("Current entry", 'piratenkleider').' ';
printf( __( 'Category %s', 'piratenkleider' ), '' . single_cat_title( '', false ) . '' );
echo '</h1>';
}
echo '</div>';
}
$i = 0;
$col = 0;
$numentries = $options['category-num-article-fullwidth'] + $options['category-num-article-halfwidth'];
$col_count = 3;
$cols = array();
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$thisquery = '&cat='.$thisCat.'&posts_per_page='.$numentries.'&paged=' . $paged;
query_posts( $thisquery );
while (have_posts() && $i<$numentries) : the_post();
$i++;
$output = '';
if (( isset($options['category-num-article-fullwidth']))
&& ($options['category-num-article-fullwidth']>=$i )) {
$output = piratenkleider_post_teaser($options['category-teaser-titleup'],$options['category-teaser-datebox'],$options['category-teaser-dateline'],$options['category-teaser-maxlength'],$options['teaser-thumbnail_fallback'],$options['category-teaser-floating']);
} else {
$output = piratenkleider_post_teaser($options['category-teaser-titleup-halfwidth'],$options['category-teaser-datebox-halfwidth'],$options['category-teaser-dateline-halfwidth'],$options['category-teaser-maxlength-halfwidth'],$options['teaser-thumbnail_fallback'],$options['category-teaser-floating-halfwidth']);
}
if (isset($output)) {
$cols[$col++] = $output;
}
endwhile;
?>
<div class="skin" itemprop="mainContentOfPage">
<meta itemprop="name" content="<?php printf( __( 'Category %s', 'piratenkleider' ), '' . single_cat_title( '', false ) . '' );?>" />
<?php
if (!(isset($image_url) && (strlen($image_url)>4)) && (!($options['category-teaser']))) {
echo '<h1 class="post-title"><span>';
printf( __( 'Category %s', 'piratenkleider' ), '' . single_cat_title( '', false ) . '' );
echo '</span></h1>';
}
?>
<div class="columns">
<?php
$z=1;
foreach($cols as $key => $col) {
if (( isset($options['category-num-article-fullwidth']))
&& ($options['category-num-article-fullwidth']>$key )) {
echo $col;
} else {
if (( isset($options['category-num-article-fullwidth']))
&& ($options['category-num-article-fullwidth']==$key )
&& ($options['category-num-article-fullwidth']>0) ) {
echo '<hr>';
}
echo '<div class="column'.$z.'">' . $col . '</div>';
$z++;
if ($z>2) {
$z=1;
echo '<hr style="clear: both;">';
}
}
}
?>
</div>
<?php if ( $wp_query->max_num_pages > 1 ) : ?>
<div class="archiv-nav"><p>
<?php next_posts_link( __( '&larr; Older entries', 'piratenkleider' ) ); ?>
<?php previous_posts_link( __( 'Newer entries &rarr;', 'piratenkleider' ) ); ?>
</p></div>
<?php endif; ?>
<?php if ( ! have_posts() ) : ?>
<h2><?php _e("Nothing found", 'piratenkleider'); ?></h2>
<p>
<?php _e("No matching pages or entries found. Please try to search with another term.", 'piratenkleider'); ?>
</p>
<?php get_search_form(); ?>
<hr>
<?php endif;
if ( is_active_sidebar( 'indexpages-widget-area' ) ) {
dynamic_sidebar( 'indexpages-widget-area' );
} ?>
</div>
</div>
<div class="content-aside">
<div class="skin">
<h1 class="skip"><?php _e( 'More information', 'piratenkleider' ); ?></h1>
<?php get_sidebar(); ?>
</div>
</div>
</div>
<?php get_piratenkleider_socialmediaicons(2); ?>
</div>
<?php get_footer();

View File

@@ -0,0 +1,74 @@
<?php
global $defaultoptions;
global $options;
if ( post_password_required() ) : ?>
<p><?php _e("This entry is protected by password. Please enter the password to see comments.", 'piratenkleider'); ?></p>
<?php return;
endif;
if ( have_comments() ) : ?>
<h2 id="comments-title"><?php _e("Comments", 'piratenkleider'); ?></h2>
<p>
<?php printf( _n( 'One comment for %2$s', '%1$s comments for %2$s', get_comments_number(), 'piratenkleider' ), number_format_i18n( get_comments_number() ), '' . get_the_title() . '' ); ?>
</p>
<?php
if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) :
previous_comments_link( __( '&larr; Older comments', 'piratenkleider' ) );
next_comments_link( __( 'Newer comments &rarr;', 'piratenkleider' ) );
endif; ?>
<ol>
<?php wp_list_comments( array( 'callback' => 'piratenkleider_comment' ) ); ?>
</ol>
<?php
if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) :
previous_comments_link( __( '&larr; Older comments', 'piratenkleider' ) );
next_comments_link( __( 'Newer comments &rarr;', 'piratenkleider' ) );
endif;
if ( ! comments_open() && ! is_page() && post_type_supports( get_post_type(), 'comments' ) ) : ?>
<p><?php _e("It's not possible to make comments anymore.", 'piratenkleider'); ?></p>
<?php
endif;
endif;
$comment_before = '';
if (isset($options['comments_disclaimer'])) {
$comment_before = '<div class="comment-disclaimer">'.$options['comments_disclaimer'] .'</div>';
}
if ($options['anonymize-user']==1) {
// Emailadresse kann/soll weggelassen werden
if ($options['anonymize-user-commententries']==1) {
// Autorname
$comments_args = array( 'fields' => array(
'author' => '<p class="comment-form-author">' . '<label for="author">' . __( 'Name', 'piratenkleider' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) .
'<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' /></p>'
),
'comment_notes_before' => $comment_before,
);
comment_form( $comments_args);
} elseif ($options['anonymize-user-commententries']==2) {
// Name + URL
$comments_args = array( 'fields' => array(
'author' => '<p class="comment-form-author">' . '<label for="author">' . __( 'Name', 'piratenkleider' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) .
'<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' /></p>',
'url' => '<p class="comment-form-url"><label for="url">' . __( 'Website', 'piratenkleider' ) . '</label>'.
'<input id="url" name="url" type="text" value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" /></p>'
),
'comment_notes_before' => $comment_before,
);
comment_form( $comments_args);
} else {
// WP-Default (Name+Email+URL)
$comment_before = $comment_before. $defaultoptions['default_comment_notes_before'];
comment_form( array( 'comment_notes_before' => $comment_before ) );
}
} else {
$comment_before = $comment_before. $defaultoptions['default_comment_notes_before'];
comment_form( array( 'comment_notes_before' => $comment_before ) );
}

View File

@@ -0,0 +1,25 @@
CREDITS
Thanks to all those who contributed their time, ideas and work
to Piratenkleider.
- Nicole Britz, http://twitter.com/dyfustic
- Ralph Hinterleitner, rcs@deixis.at
- le Grand, http://www.lenz-online.org
- Matthias Kopp, http://piratenkleider.emkay.de
- Fabian Müller, http://www.feals.de
- Heiko Philippski, http://www.phindie.de/
- Korbinian Polk, http://www.korbinian-polk.de
- Kerstin Probiesch, http://www.barrierefreie-informationskultur.de
- Jan Reinigshaus, @JanRei_
- Jan Schejbal, http://janschejbal.wordpress.com/
- Marc Schieferdecker, http://thegeek.de
- Andre Sendowski, http://www.iphone-notes.de/
- Georg Sinn, http://zwitschi.net
- Martin Stoppler, http://www.stoppe-gp.de/
- Benjamin Stöcker, http://freiheitsworte.de
- Wolfgang Wiese (xwolf), http://www.xwolf.de
and much more...

View File

@@ -0,0 +1,153 @@
/*
* Backend CSS
*/
@font-face {
font-family: BebasNeue;
src: local(BebasNeue),
url(../fonts/BebasNeue-webfont.woff2) format("woff2"),
url(../fonts/BebasNeue-webfont.woff) format("woff"),
url(../fonts/BebasNeue-webfont.ttf) format("truetype");
}
@font-face {
font-family: Awesome;
src: local(Awesome),
url(../fonts/fontawesome-webfont.woff2) format("woff2"),
url(../fonts/fontawesome-webfont.woff) format("woff"),
url(../fonts/fontawesome-webfont.ttf) format("truetype");
}
@font-face {
font-family: DroidSans;
src: local(DroidSans),
url(../fonts/DroidSans.eot) format("embedded-opentype"),
url(../fonts/DroidSans.woff2) format("woff2"),
url(../fonts/DroidSans.ttf) format("truetype");
}
@font-face {
font-family: LinLibertine;
src: local(LinLibertine),
url(../fonts/LinLibertine_R.woff) format("woff");
}
@font-face {
font-family: PoliticsHead;
src: local(PoliticsHead),
url(../fonts/PoliticsHeadv1_9.woff2) format("woff2"),
url(../fonts/PoliticsHeadv1_9.woff) format("woff"),
url(../fonts/PoliticsHeadv1_9.ttf) format("truetype");
}
#headimg {
width: 350px;
height: 120px;
background: no-repeat;
border: 0;
}
#custom-background-image {
height: 225px;
background-position: bottom left !important;
background-repeat: repeat-x, no-repeat;
}
label.description {
display: block;
}
p.submit {
margin-top: 10px;
padding-left: 20px;
}
.wrap div.updated {
margin-right: 300px;
}
#einstellungen {
margin-top: 20px;
}
#einstellungen div {
margin-left: 10px;
}
#einstellungen table tr:hover,
#einstellungen table tr:focus {
background-color: #eeeeee;
-webkit-transition: all 0.1s ease-in-out;
-ms-transition: all 0.1s ease-in-out;
-o-transition: all 0.1s ease-in-out;
transition: all 0.1s ease-in-out;
}
#einstellungen table th {
text-align: left;
min-width: 200px;
}
#einstellungen table td {
padding-bottom: 5px;
}
#einstellungen tr.mark-option {
background-color: #f50;
color: white;
}
#einstellungen tr.mark-option:focus,
#einstellungen tr.mark-option:hover {
background-color: #a62911;
}
#einstellungen table td table th {
min-width: 50px;
}
#einstellungen input.regular-text {
width: 40em;
}
#einstellungen select {
min-width: 4em;
}
h2.nav-tab-wrapper, h3.nav-tab-wrapper {
margin-top: 30px;
}
label.tile {
width: 320px;
height: auto;
float: left;
padding: 0 2px;
margin: 5px;
border: 3px solid transparent;
}
label.tile:hover {
background-color: #eee;
}
label.tile img {
margin: 0;
padding: 0;
}
label.checked,
label.tile:hover,
label.tile:focus {
border-color: orange;
background: orange;
}
label.plakattile {
width: 160px;
height: 250px;
float: left;
border: 1px solid #ccc;
padding: 1px;
margin: 5px;
}
label.plakattile:hover {
background-color: #eee;
}
img.imgurl {
display: block;
}
.previewimage img {
max-width: 900px;
height: auto;
}
#adminmenu .menu-icon-person div.wp-menu-image:before {
content: "\f337";
}
#adminmenu .menu-icon-linktipps div.wp-menu-image:before {
content: "\f319";
}

View File

@@ -0,0 +1 @@
@font-face{font-family:BebasNeue;src:local(BebasNeue),url(../fonts/BebasNeue-webfont.woff2) format("woff2"),url(../fonts/BebasNeue-webfont.woff) format("woff"),url(../fonts/BebasNeue-webfont.ttf) format("truetype")}@font-face{font-family:Awesome;src:local(Awesome),url(../fonts/fontawesome-webfont.woff2) format("woff2"),url(../fonts/fontawesome-webfont.woff) format("woff"),url(../fonts/fontawesome-webfont.ttf) format("truetype")}@font-face{font-family:DroidSans;src:local(DroidSans),url(../fonts/DroidSans.eot) format("embedded-opentype"),url(../fonts/DroidSans.woff2) format("woff2"),url(../fonts/DroidSans.ttf) format("truetype")}@font-face{font-family:LinLibertine;src:local(LinLibertine),url(../fonts/LinLibertine_R.woff) format("woff")}@font-face{font-family:PoliticsHead;src:local(PoliticsHead),url(../fonts/PoliticsHeadv1_9.woff2) format("woff2"),url(../fonts/PoliticsHeadv1_9.woff) format("woff"),url(../fonts/PoliticsHeadv1_9.ttf) format("truetype")}#headimg{width:350px;height:120px;background:no-repeat;border:0}#custom-background-image{height:225px;background-position:bottom left!important;background-repeat:repeat-x,no-repeat}label.description{display:block}p.submit{margin-top:10px;padding-left:20px}.wrap div.updated{margin-right:300px}#einstellungen{margin-top:20px}#einstellungen div{margin-left:10px}#einstellungen table tr:hover,#einstellungen table tr:focus{background-color:#eee;-webkit-transition:all .1s ease-in-out;-ms-transition:all .1s ease-in-out;-o-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#einstellungen table th{text-align:left;min-width:200px}#einstellungen table td{padding-bottom:5px}#einstellungen tr.mark-option{background-color:#f50;color:white}#einstellungen tr.mark-option:focus,#einstellungen tr.mark-option:hover{background-color:#a62911}#einstellungen table td table th{min-width:50px}#einstellungen input.regular-text{width:40em}#einstellungen select{min-width:4em}h2.nav-tab-wrapper,h3.nav-tab-wrapper{margin-top:30px}label.tile{width:320px;height:auto;float:left;padding:0 2px;margin:5px;border:3px solid transparent}label.tile:hover{background-color:#eee}label.tile img{margin:0;padding:0}label.checked,label.tile:hover,label.tile:focus{border-color:orange;background:orange}label.plakattile{width:160px;height:250px;float:left;border:1px solid #ccc;padding:1px;margin:5px}label.plakattile:hover{background-color:#eee}img.imgurl{display:block}.previewimage img{max-width:900px;height:auto}#adminmenu .menu-icon-person div.wp-menu-image:before{content:"\f337"}#adminmenu .menu-icon-linktipps div.wp-menu-image:before{content:"\f319"}

View File

@@ -0,0 +1,235 @@
/*
* Document : basemod_linkicons
* Description:
* Automatische Linkicons über CSS
*/
.content-primary a:before {
display: inline-block;
content: ' ';
width: 0px;
overflow: hidden;
height: 18px;
margin: 0 4px 0 0;
background: url('../images/linkicons.gif') no-repeat 0 0;
}
.content-primary a[href ^="mailto:"]:before {
background-position: -282px 0;
width: 18px;
}
.content-primary a[href $=".ogg"]:before, .content-primary a[href $=".OGG"]:before,
.content-primary a[href $=".mid"]:before, .content-primary a[href $=".MID"]:before,
.content-primary a[href $=".midi"]:before,.content-primary a[href $=".MIDI"]:before,
.content-primary a[href $=".mp3"]:before, .content-primary a[href $=".MP3"]:before,
.content-primary a[href $=".wav"]:before, .content-primary a[href $=".WAV"]:before,
.content-primary a[href $=".wma"]:before, .content-primary a[href $=".WMA"]:before {
background-position: -262px 0;
width: 18px;
}
.content-primary a[href $=".ogg"]:after, .content-primary a[href $=".OGG"]:after,
.content-primary a[href $=".mid"]:after, .content-primary a[href $=".MID"]:after,
.content-primary a[href $=".midi"]:after,.content-primary a[href $=".MIDI"]:after,
.content-primary a[href $=".mp3"]:after, .content-primary a[href $=".MP3"]:after,
.content-primary a[href $=".wav"]:after, .content-primary a[href $=".WAV"]:after,
.content-primary a[href $=".wma"]:after, .content-primary a[href $=".WMA"]:after {
content: " (Audio) ";
}
.content-primary a[href $=".ogm"]:before, .content-primary a[href $=".OGM"]:before,
.content-primary a[href $=".avi"]:before, .content-primary a[href $=".AVI"]:before,
.content-primary a[href $=".mpeg"]:before,.content-primary a[href $=".MPEG"]:before,
.content-primary a[href $=".mpg"]:before, .content-primary a[href $=".MPG"]:before {
background-position: -582px 0;
width: 18px;
}
.content-primary a[href $=".ogm"]:after, .content-primary a[href $=".OGM"]:after,
.content-primary a[href $=".avi"]:after, .content-primary a[href $=".AVI"]:after,
.content-primary a[href $=".mpeg"]:after,.content-primary a[href $=".MPEG"]:after,
.content-primary a[href $=".mpg"]:after, .content-primary a[href $=".MPG"]:after {
content: " (Video) ";
}
.content-primary a[href $=".pdf"]:before, .content-primary a[href $=".PDF"]:before,
.content-primary a[href *=".pdf#"]:before, .content-primary a[href *=".PDF#"]:before,
.content-primary a[href *=".pdf?"]:before,.content-primary a[href *=".PDF?"]:before {
background-position: -562px 0;
width: 18px;
}
.content-primary a[href $=".pdf"]:after, .content-primary a[href $=".PDF"]:after,
.content-primary a[href *=".pdf#"]:after, .content-primary a[href *=".PDF#"]:after,
.content-primary a[href *=".pdf?"]:after,.content-primary a[href *=".PDF?"]:after {
content: " (PDF) ";
}
.content-primary a[href $=".ppt"]:before, .content-primary a[href $=".PPT"]:before{
background-position: -342px 0;
width: 18px;
}
.content-primary a[href $=".ppt"]:after, .content-primary a[href $=".PPT"]:after {
content: " (Powerpoint-Datei) ";
}
.content-primary a[href $=".epub"]:before, .content-primary a[href $=".EPUB"]:before{
background-position: -182px 0;
width: 18px;
}
.content-primary a[href $=".epub"]:after, .content-primary a[href $=".EPUB"]:after {
content: " (ePUB-Datei) ";
}
.content-primary a[href $=".doc"]:before, .content-primary a[href $=".DOC"]:before,
.content-primary a[href $=".docx"]:before, .content-primary a[href $=".DOCX"]:before {
background-position: -502px 0;
width: 18px;
}
.content-primary a[href $=".doc"]:after, .content-primary a[href $=".DOC"]:after,
.content-primary a[href $=".docx"]:after, .content-primary a[href $=".DOCX"]:after {
content: " (Word-Datei) ";
}
.content-primary a[href $=".zip"]:before, .content-primary a[href $=".ZIP"]:before,
.content-primary a[href $=".rar"]:before, .content-primary a[href $=".RAR"]:before,
.content-primary a[href $=".exe"]:before, .content-primary a[href $=".EXE"]:before,
.content-primary a[href $=".msi"]:before, .content-primary a[href $=".MSI"]:before,
.content-primary a[href $=".dmg"]:before,.content-primary a[href $=".DMG"]:before,
.content-primary a[href $=".gz"]:before, .content-primary a[href $=".GZ"]:before,
.content-primary a[href *=".gzip"]:before, .content-primary a[href *=".GZIP"]:before {
background-position: -322px 0;
width: 18px;
}
.content-primary a[href $=".rar"]:after, .content-primary a[href $=".RAR"]:after,
.content-primary a[href $=".exe"]:after, .content-primary a[href $=".EXE"]:after,
.content-primary a[href $=".msi"]:after, .content-primary a[href $=".MSI"]:after,
.content-primary a[href $=".dmg"]:after,.content-primary a[href $=".DMG"]:after {
content: " (Archiv) ";
}
.content-primary a[href $=".zip"]:after, .content-primary a[href $=".ZIP"]:after,
.content-primary a[href $=".gz"]:after, .content-primary a[href $=".GZ"]:after,
.content-primary a[href *=".gzip"]:after, .content-primary a[href *=".GZIP"]:after {
content: " (ZIP-Datei) ";
}
.content-primary a[href $=".txt"]:before, .content-primary a[href $=".TXT"]:before {
background-position: -462px 0;
width: 18px;
}
.content-primary a[href $=".tar"]:before, .content-primary a[href $=".TAR"]:before {
background-position: -442px 0;
width: 18px;
}
.content-primary a.extern:before {
background-position: -224px 3px;
width: 10px;
}
.website a.extern:before {
background-image: url('../images/socialmedia.png');
background-position: -40px -518px;
width: 18px;
}
/* Pirate Websites */
.content-primary a[href *= "pirateninfo.de"]:before {
background-position: -22px 0;
width: 18px;
}
.content-primary a[href *= "lqfb.piratenpartei.de"]:before {
background-position: -142px 0;
width: 18px;
}
.content-primary a[href *= "wiki.piraten-thueringen.de"]:before,
.content-primary a[href *= "wiki.piratenbrandenburg.de"]:before,
.content-primary a[href *= "wiki.piratenpartei.de"]:before {
background-position: -62px 0;
width: 16px;
}
.content-primary a[href *= "news.piratenpartei.de"]:before {
background-position: -122px 0;
width: 18px;
}
.content-primary a[href *= "feedback.piratenpartei-bayern.de"]:before {
background-position: -42px 0;
width: 18px;
}
.content-primary a[href *= "piratenpad.de"]:before {
background-position: -82px -0;
width: 18px;
}
.content-primary a[href ^="mumble:"]:before {
background-position: -102px 0;
width: 18px;
}
/* Social media and known Websites */
.content-primary a[href *= "de.wikipedia.org"]:before {
background-position: -302px 0;
width: 18px;
}
.content-primary a[href *= "facebook.com"]:before {
background: url('../images/socialmedia.png') no-repeat -40px -72px;
width: 18px;
}
.content-primary a[href *= "plus.google.com"]:before {
background: url('../images/socialmedia.png') no-repeat -40px -200px;
width: 18px;
}
.content-primary a[href *= "twitter.com"]:before {
background: url('../images/socialmedia.png') no-repeat -40px -328px;
width: 18px;
}
.content-primary a[href *= "flickr.com"]:before {
background: url('../images/socialmedia.png') no-repeat -40px -168px;
width: 18px;
}
.content-primary a[href *= "youtube.com"]:before,
.content-primary a[href *= "youtube-nocookie.com"]:before {
background: url('../images/socialmedia.png') no-repeat -40px -360px;
width: 18px;
}
.content-primary a[href $="rss2"]:before,
.content-primary a[href $="rss"]:before,
.content-primary a[href *= "/feed/"]:before {
background: url('../images/socialmedia.png') no-repeat -40px -102px;
width: 18px;
}
.content-primary header a:before,
.content-primary h1 a:before,
.content-primary h2 a:before,
.content-primary h3 a:before,
.content-primary #ai1ec-container a:before,
.content-primary .p3-column a:not(.extern):before,
.content-primary a.rsswidget:before,
a.rsswidget:before,
.content-primary a.nolinkicon:before {
background: none;
width: 0;
content: normal;
}
.content-primary #ai1ec-container a:before {
content: inherit;
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,730 @@
/*
* CSS Mediaqueries
*/
@media only screen and (max-width: 1024px) {
.row {
width: 100%;
}
.branding,
.sticker {
padding: 15px;
}
.nav-main {
padding: 0 15px 0 15px;
}
.content-primary,
.teaser .first-teaser-widget-area,
.first-footer-widget-area {
float: none;
width: 100%;
display: block;
}
.content-primary,
.teaser .first-teaser-widget-area,
.first-footer-widget-area {
float: none;
width: 100%;
display: block;
}
.content-aside,
.teaser .second-teaser-widget-area,
.second-footer-widget-area {
float: none;
width: 100%;
display: block;
}
.teaser .first-teaser-widget-area,
.first-footer-widget-area {
width: 100%;
}
.content .symbolbild {
max-width: 1024px;
}
.content .symbolbild img,
.content .bigslider img,
.flexslider .bigslider img {
width: 100%;
max-width: 1024px;
height: auto;
}
}
@media only screen and (max-width: 767px) {
.row {
width: 100%;
}
.content-primary,
.teaser .first-teaser-widget-area,
.first-footer-widget-area {
float: none;
width: 100%;
display: block;
}
.content-aside,
.teaser .second-teaser-widget-area,
.second-footer-widget-area {
float: none;
width: 100%;
display: block;
}
.content-primary .columns {
float: none;
clear: both;
}
.content-primary .columns .column0,
.content-primary .columns .column1,
.content-primary .columns .column2 {
float: none;
width: 100%;
display: block;
clear: both;
}
.content-primary .columns .column2:before {
content: "";
display: block;
border: 0;
padding: 0;
margin-bottom: 15px;
margin-top: 5px;
background: url("../images/jolly.png") no-repeat center center;
height: 26px;
}
.content-primary .columns .column2 .post {
padding-left: 0px;
}
.withvideo .p3-col1,
.withvideo .p3-col3 {
float: none;
width: 100%;
margin: 0;
}
.flexslider,
.flexslider img {
overflow: hidden;
}
.slidersidebar {
height: auto;
margin-bottom: 10px;
}
.logo {
max-width: 300px;
top: 0px;
}
.logo img {
margin: 0 auto;
display: block;
}
.symbolbild {
height: 240px;
overflow: hidden;
}
.teaserlinks .symbol:before {
display: none;
}
.teaserlinks ul li a {
padding-left: 10px;
}
.nav-main ul.menu li a {
padding: 12px 5px 10px;
}
}
@media only screen and (max-width: 768px) {
.header,
.nav-top {
height: auto;
}
.branding {
display: block;
width: 100%;
margin: 0 auto;
height: auto;
padding: 10px;
text-align: center;
}
.branding h1 {
margin-bottom: 0px;
}
.logo {
margin: 0 auto;
}
.logo img {
display: block;
width: 100%;
height: auto;
}
.sticker,
.teaser {
display: none;
}
.nav-top,
.header #searchform {
position: relative;
top: inherit;
right: inherit;
left:inherit;
display: block;
text-align: center;
display: block;
margin: 0 auto;
width: 100%;
clear: both;
float: none;
}
.nav-top form.searchform {
clear: both;
display: block;
width: 320px;
background: transparent;
margin: 5px auto 15px auto;
position: relative;
float: none;
font-size: 1.2em;
}
.nav-top form.searchform input {
padding: 5px;
}
.searchform input#s {
width: 220px;
}
.nav-top ul.socialmedia {
clear: both;
display: inline-block;
position: relative;
top: inherit;
right: inherit;
width: auto;
float: none;
}
.nav-top form.searchform .searchsubmit {
position: relative;
width: auto;
float: right;
text-indent: 0;
background: #2D7DC5;
height: inherit;
line-height: 1em;
overflow: none;
height: auto;
padding: 5px;
top: 0px;
margin-top: 2px;
left: -15px;
}
.nav-top form.searchform .searchsubmit:after {
content: "a";
clear: both;
}
.nav-top div.menu-header {
float: none;
display: inline-block;
position: relative;
text-align: center;
}
.nav-top div.menu-header ul.menu li a {
line-height: 22px;
padding: 0 5px;
background: none;
border: none;
box-shadow: none;
text-decoration: underline;
color: black;
border-radius: none;
text-shadow: 0 -1px 0 #EEEEEE;
}
.nav-main {
display: block;
width: 100%;
position: relative;
max-width: 100%;
margin: 0;
padding: 0;
}
.nav-main ul.menu {
float: none;
}
.nav-main ul.menu li.current_page_item a[title="Home"],
.nav-main ul.menu li.current-menu-item.menu-item-home a,
.nav-main ul.menu li a[title="Home"],
.nav-main ul.menu li.menu-item-home a {
background: black;
text-indent: 0;
}
.nav-main ul.menu li.current_page_item a[title="Home"]:hover,
.nav-main ul.menu li.current-menu-item.menu-item-home a:hover,
.nav-main ul.menu li a[title="Home"]:hover,
.nav-main ul.menu li.menu-item-home a:hover {
background: black;
color: #24639b;
text-indent: 0;
}
.skiplinks li {
list-style: none;
width: 100%;
}
.skiplinks li a {
position: absolute;
display: block;
position: static;
width: 100%;
display: block;
border: 0px solid;
background: #2d7dc5;
color: white;
outline: 0px;
text-align: center;
padding: 5px 18px;
margin-bottom: 2px;
font-size: 1.4em;
background: #2d7dc5;
color: white;
border: 1px solid #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top: 1px solid #4e96d7;
border-bottom: 1px solid #1a4872;
-moz-box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.5);
-webkit-box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.5);
box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.5);
border-radius: 2px;
-moz-border-radius: 2px;
-webkit-border-radius: 2px;
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b);
}
.skiplinks li a:focus,
.skiplinks li a:hover {
background: #24639b;
color: black; }
#skiplink-nav,
#skiplink-search {
display: none;
}
.footer ul.skiplinks {
height: auto;
}
.symbolbild {
overflow: hidden;
z-index: 10;
max-width: 100%;
}
.nav-top ul.menu li a {
padding: 5px 18px;
margin-bottom: 2px;
overflow: visible;
position: relative;
background: #2d7dc5;
color: white;
border: 1px solid #C96A00;
-moz-box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.5);
-webkit-box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.5);
box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.5);
border-radius: 2px;
-moz-border-radius: 2px;
-webkit-border-radius: 2px;
text-shadow: 0 -1px 0 #C96A00;
background-color: #ff8800;
}
.nav-top ul.menu li a:hover {
background: #24639b;
}
.nav-main {
width: 100%;
margin: 0;
float: none;
clear: both;
}
.nav-main ul.menu li a {
position: absolute;
float: none;
display: block;
position: static;
width: 100%;
display: block;
color: white;
outline: 0px;
text-align: center;
padding: 5px 18px;
margin-bottom: 2px;
border: 1px solid #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top: 1px solid #4e96d7;
border-bottom: 1px solid #1a4872;
-moz-box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.5);
-webkit-box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.5);
box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.5);
border-radius: 2px;
-moz-border-radius: 2px;
-webkit-border-radius: 2px;
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b);
}
.nav-main ul.menu li a:hover {
background: #4e96d7;
}
.nav-main ul.menu li a:focus,
.nav-main ul.menu li a:hover {
background: #24639b;
color: black;
}
.nav-main {
margin-bottom: 20px;
}
.nav-main ul li {
float: none;
width: 100%;
}
.nav-main ul li ul {
display: none;
}
.section {
padding: 0px;
}
.content-primary {
width: 100%;
float: none;
min-height: 0;
}
.content-primary .switchoff, .content-primary .switchon {
display: none;
}
.content-primary .columns {
float: none;
clear: both;
}
.content-primary .columns .column0,
.content-primary .columns .column1,
.content-primary .columns .column2 {
float: none;
width: 100%;
display: block;
clear: both;
}
.content-primary .columns .column2:before {
content: "";
display: block;
border: 0;
padding: 0;
margin-bottom: 15px;
margin-top: 5px;
background: url("../images/jolly.png") no-repeat center center;
height: 26px;
}
.content-primary .columns .column2 .post {
padding-left: 0px;
}
.content-primary .first-startpage-widget-area,
.content-primary .second-startpage-widget-area {
clear: both;
float: none;
padding-top: 10px;
width: 100%;
display: block;
}
.content-primary .skin {
padding: 10px;
}
.content-header,
.content-header-big {
margin: 0;
height: auto;
overflow: hidden;
position: relative;
left: inherit;
top: inherit;
min-height: 3em;
}
.content-header h1,
.content-header-big h1{
z-index: 100;
position: relative;
left: inherit;
top: inherit;
padding: 10px;
width: 100%;
margin: 0;
}
.content .symbolbild {
background-size: auto 100px;
top: 0;
left: 0;
position: absolute;
}
.single .post {
padding: 10px;
max-width: 100%;
}
.post-comments {
/* background: url("../images/int/bg-tags.png") repeat -20% top #FF8800; */
padding: 3px;
margin: 2px 5px 5px 5px;
}
.post-comments a {
color: black;
}
.post-comments ol {
margin: 0;
}
.post-comments ol li {
background: rgba(0, 0, 0, 0.1);
}
.post-comments ol li .comment-details {
color: #222222;
float: none;
width: auto;
font-size: 1em;
font-weight: bold;
padding-right: 2%;
text-align: left;
max-width: none;
min-height: 50px;
}
.post-comments ol li .comment-body {
float: none;
width: auto;
background: white;
padding: 5px;
}
.post-comments ol li .reply {
display: none;
}
.footer .first-footer-widget-area,
.footer .second-footer-widget-area {
clear: both;
padding-top: 10px;
display: block;
}
.footer .first-footer-widget-area .skin {
padding-bottom: 0px;
}
.footer .second-footer-widget-area {
padding-top: 0px;
}
.footer .second-footer-widget-area .skin {
padding-top: 0px;
}
#socialmedia_iconbar {
position: relative;
display: inline-block;
top: inherit;
left: inherit;
width: auto;
background: black;
border-radius: 3px ;
z-index: 10 ;
padding: 2px;
margin: 0px auto;
text-align: center;
width: 100%;
}
.home #socialmedia_iconbar {
top: inherit;
}
#socialmedia_iconbar ul.socialmedia {
list-style: none;
display: inline-block;
}
#socialmedia_iconbar ul.socialmedia li {
width: 34px;
}
.nav-main li a span {
display: inline;
position: relative;
top: inherit;
right: inherit;
font-size: 0.8em;
z-index: 51;
}
.nav-main li a span:before {
content: " (";
}
.nav-main li a span:after {
content: ")";
}
}
@media only screen and (max-width: 479px) {
.symbolbild,
.flexslider,
.flexslider img {
overflow: hidden;
}
.slidersidebar {
height: auto;
margin-bottom: 10px;
}
.flexslider .caption {
padding: 5px 10px;
}
.flexslider .caption h2,
.flexslider .caption h3 {
font-size: 12px;
font-family: Helvetica, Arial, sans-serif;
letter-spacing: 0px;
}
.content .startpage-widget-area {
clear: both;
margin: 0;
}
}
@media only screen and (min-width: 1350px) {
.row {
max-width: 1343px;
width: 1343px;
}
.teaser .first-teaser-widget-area,
.first-footer-widget-area {
width: 1024px;
}
.content .symbolbild {
max-width: 1024px;
}
.content .symbolbild img,
.content .bigslider img,
.flexslider .bigslider img {
width: 1024px;
max-width: 1024px;
height: auto;
margin-top: -74px;
}
.content-aside .slide .caption,
.first-teaser-widget-area .slide .caption {
/* bottom: -74px; */
}
.content-primary {
float: left;
width: 1024px;
}
.sticky {
margin: 1em;
}
#default-stream.threecolumn .columns .column1,
#default-stream.threecolumn .columns .column2,
#default-stream.threecolumn .content-primary .columns .column2 {
width: 33%;
float: none;
display: inline-block;
padding: 0.5em;
vertical-align: top;
}
#default-stream.threecolumn hr {display: none; }
#default-stream.threecolumn .columns:after {
clear: both;
}
#main-stream {
float: left;
width: 67%;
margin: 0;
padding: 10px 10px 10px 20px;
}
.widget-stream,
#linktipp-stream,
#second-stream{display:inline-block;width:33%;float:left;margin:0;padding:10px 10px 10px 20px;}
#linktipp-stream,
#second-stream{background:rgba(0,0,0,0.05);}
.widget-stream { margin-left: 2px; }
#main-stream .columns .column1,
#main-stream .columns .column2 {
padding: 0 20px 0 0;
}
#linktipp-stream .columns .column1,
#linktipp-stream .columns .column2,
#second-stream .columns .column1,
#second-stream .columns .column2,
#second-stream .p3-col1,
#second-stream .p3-col3 {
float: none;
width: 100%;
margin: 10px 0;
display: block;
}
#second-stream .columns {
display: inline;
}
#second-stream .post-info .infoimage {
display: none;
}
#linktipp-stream .clear,
#second-stream .clear,
#linktipp-stream hr,
#second-stream hr {
clear: none;
display: none;
}
#linktipp-stream .p3-column,
#second-stream .p3-column {
width: auto;
display: inline;
}
#linktipp-stream .withthumb .p3-col3,
#second-stream .withthumb .p3-col3 {
margin: 0;
}
#linktipp-stream .linktipps .post-entry p img {
float: none;
display: block;
margin: 10px auto;
}
.content .startpage-widget-area {
clear: both;
margin: 0 30px;
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,570 @@
/*
Document : colors_at
Created on : 09.07.2012, 10:32:20
Author : xwolf
Description:
Define corporate design colors for the theme.
Each pirate party in several countries use their own set of colors;
Therefor all color-settings are outsourced in files in
the form colors_LANG.css.
Settings in the color files will override settings in the
current basemods, which defines the default style (german colors).
This is the Austrian color file.
Base color: #4c2582 , rgba(76,37,130, 0.2);
Special text font: Droid Sans
*/
@media screen, projection {
body {
background-image: url("../images/int/bg-tags-at.png");
background-color: #4c2582;
}
a {
color: #06C;
-webkit-tap-highlight-color: #2d7dc5;
}
a:visited {
color: #2d7dc5;
}
a:hover {
color: #111;
}
ins, mark {
background-color: #4c2582;
}
::selection {
background: #2d7dc5;
color: white;
}
::-moz-selection {
background: #2d7dc5;
color: white;
}
input, select, textarea {
background: white;
background: rgba(255, 255, 255, 0.6);
}
input:focus, input:active,
select:focus, select:active,
textarea:focus, textarea:active {
background: white;
}
button, input[type="submit"],
.post-edit-link {
background: #2d7dc5;
color: white;
border: 1px solid #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top: 1px solid #4e96d7;
border-bottom: 1px solid #1a4872;
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b); }
button:hover,
input[type="submit"]:hover,
.post-edit-link:hover {
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #1a4872);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
.skiplinks li a:focus,
.skiplinks li a:active {
background: #2d7dc5;
color: white;
}
.skiplinks li a:hover {
background: #4c2582;
color: black;
}
ul.socialmedia li a img {
border-color: #eee;
}
ul.socialmedia li a:hover img {
border-color: white;
}
ul.socialmedia li a:focus img {
border-color: #4c2582;
}
.sticker ul li {
border-color: transparent;
}
.sticker ul li a:hover,
.sticker ul li a:focus {
color: #1a4872;
}
.sticker ul li a .cicolor {
color: #4c2582;
}
.sticker ul li a:hover .cicolor,
.sticker ul li a:focus .cicolor {
color: #2d7dc5;
}
.sticker ul li a .shadow {
text-shadow: 1px 1px 1px #333;
}
.sticker li a img {
border-color: transparent;
}
.sticker li a:hover img,
.sticker li a:focus img {
border-color: #4c2582;
}
.header .newsletter .skin {
background: #f7f7f7;
background: rgba(255, 255, 255, 0.5);
}
.teaser .row {
background: #993399;
background: rgba(0, 0, 0, 0.2) -20% 0 fixed;
}
.teaser .first-teaser-widget-area {
background: #111;
}
.first-teaser-widget-area .slide .textslider {
background: #4c2582;
color: #ddd;
}
.second-teaser-widget-area li {
background: #4c2582;
}
.second-teaser-widget-area li a {
color: white;
text-shadow: 0 0 0;
}
.second-teaser-widget-area li a div {
color: black;
text-shadow: 0 -1px 1px #552554;
}
.second-teaser-widget-area li a:focus,
.second-teaser-widget-area li a:hover {
background: #993399;
background: rgba(0, 0, 0, 0.5);
color: white;
}
.second-teaser-widget-area .textwidget {
background: #4c2582;
color: white;
text-shadow: 0 0 0;
}
.second-teaser-widget-area li.recentcomments {
color: white;
}
.teaserlinks ul li {
background-color: #5C388F;
color: white;
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}
.teaserlinks .symbol:before {
text-shadow: 0 -1px 1px rgba(0,0,0,0.2);
}
.teaserlinks ul li a {
color: #EEE;
text-shadow: 0 -1px 1px #552554;
}
.teaserlinks ul li a:hover,
.teaserlinks ul li a:focus{
color: white;
background: none repeat scroll 0 0 #5C388F;
}
.teaserlinks ul li a span {
text-shadow: 0 0 0;
color: #EEE;
}
.teaserlinks ul li a:hover span,
.teaserlinks ul li a:focus span {
color: white;
}
.content .row {
background: rgba(76, 37, 130, 0.2);
}
.content .symbolbild .caption {
background: rgba(0, 0, 0, 0.5);
color: white;
}
.content .symbolbild .aaarh {
background: transparent;
color: black;
}
.content-header-big {
background: url(../images/int/bg-tags-at.png);
}
.content-primary input[type="text"]:hover,
.content-primary textarea:hover,
.content-primary input[type="text"]:focus,
.content-primary textarea:focus {
border-color: black;
background-color: beige;
}
.content-primary .sprungmarken ol li a:hover {
background: #4c2582;
color: black;
}
.content-aside .newsletter {
background-color: #ffa500;
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}
.post .post-info .commentbubble a {
background: #4c2582;
color: white;
}
.post .post-info .cal-icon {
background: #eeeeee;
-moz-box-shadow: 1px 1px 2px #444444;
-webkit-box-shadow: 1px 1px 2px #444444;
box-shadow: 1px 1px 2px #444444;
}
.post .post-meta {
color: #222;
}
.post-comments ol li .reply a {
background: #2d7dc5;
color: white;
border-color: #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b);
}
.post-comments ol li .reply a:hover {
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #1a4872);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
.post-comments .respond span.required {
color: #4c2582;
}
.wp-caption p.wp-caption-text {
background: transparent;
background: rgba(0, 0, 0, 0.5);
color: white;
}
.gallery img {
border-color: #f1f1f1;
}
.gallery img:hover {
border-color: #4c2582;
}
.gallery-caption {
color: #888;
}
.first-startpage-widget-area a.all-articles {
background: #2d7dc5;
color: white;
border-color: #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top-color: #4e96d7;
border-bottom-color: #1a4872;
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b);
}
.first-startpage-widget-area a.all-articles:hover {
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #1a4872);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
.content-aside .newsletter {
background: none repeat scroll 0 0 rgba(76, 37, 130, 0.5);
box-shadow:none;
}
.content-aside .widget li {
background:none;
}
.content-aside .widget li:hover {
background:#5C388F;
}
.content-aside .widget li:hover,
.content-aside .widget li:focus,
#ics-calendar-widget li:hover,
#ics-calendar-widget li:focus,
.content-aside .twitterwidget li:hover,
.content-aside .twitterwidget li:focus {
background: #5c388f;
}
.content-aside .twitterwidget li a:hover { color:#FFF; }
.content-aside a {
color: #EEE;
background: rgba(255,255,255, 0.2);
padding:0.25em 0.4em;
}
.content-aside a:hover {
color: rgba(76, 37, 130, 0.8);
background: rgba(255,255,255, 0.8);
}
.content-aside #steckbrief a {
background: transparent;
}
.content-aside #steckbrief a:hover {
background: transparent;
}
.content-aside table td,
.content-aside table th {
border-top-color: #4c2582;
}
.content-aside blockquote {
border: 0 solid;
background: #993399;
background: rgba(255, 255, 255, 0.2);
}
.content-aside ul.menu {
background: #993399;
background: rgba(255, 255, 255, 0.2);
}
.content-aside ul.menu li a {
background: white;
color: #2d7dc5;
}
.content-aside ul.menu li.active a,
.content-aside ul.menu li a:hover,
.content-aside ul.menu li a:focus {
color: white;
background: #2d7dc5;
}
.content-aside ul.menu li.current_page_item > a,
.content-aside ul.menu li.current-menu-item > a {
background: #2d7dc5 url("../images/plus-left.gif") center left no-repeat;
color: white;
}
.subcontent {
background: black url("../images/int/bg-tags_gray.jpg") -20% top fixed;
}
.subcontent .row {
background: rgba(0, 0, 0, 0.2);
color: #eeeeee;
}
.subcontent a {
background: black;
color: #2d7dc5;
}
.subcontent a:hover {
background: #2d7dc5;
color: white;
}
.footer {
background: black url("../images/int/bg-tags_gray.jpg") -20% top fixed;
overflow: hidden;
}
.footer .row {
background: rgba(0, 0, 0, 0.2);
color: #eeeeee;
}
.footer a {
background: black;
color: #2d7dc5;
}
.footer a:hover {
background: #2d7dc5;
color: white;
}
.content-aside .widget li a.rsswidget {
background: #993399;
background: rgba(0, 0, 0, 0.2);
}
.content-aside .widget li a.rsswidget:hover,
.content-aside .widget li a.rsswidget:focus {
background: #4c2582;
}
.content-aside .widget li .rssSummary {
color:#333333;
}
#ics-calendar-widget li {
color: black;
background: #993399;
background: rgba(255, 255, 255, 0.2);
}
#ics-calendar-widget-next,
#ics-calendar-widget-prev {
background: #2d7dc5;
color: white;
border-color: #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top-color: #4e96d7;
border-bottom-color: #1a4872;
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b); }
#ics-calendar-widget-next:hover,
#ics-calendar-widget-prev:hover {
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #1a4872);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
.ics-calendar-header a {
background: #2d7dc5;
color: white;
border-color: #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top-color: #4e96d7;
border-bottom-color: #1a4872;
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b); }
.ics-calendar-header a:hover {
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #1a4872);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
div.ics-calendar-holder tr.ics-calendar-days td {
background: #eeeeee;
border-bottom-color: gray; }
div.ics-calendar-holder .ics-calendar-table td .date-holder {
background: white;
}
div.ics-calendar-holder .ics-calendar-table td .old-date-holder {
background: white;
color: #999999;
}
div.ics-calendar-holder .ics-calendar-table td .ics-calendar-today {
background-color: #4c2582;
color: black;
}
div.ics-calendar-holder .ics-calendar-event {
background: #2d7dc5;
color: white;
}
.nav-top div.menu-header ul.menu li a:hover,
.nav-top div.menu-header ul.menu li a:focus {
color: #2d7dc5;
}
}
@media only screen and (max-width: 600px) {
.nav-top ul.menu li a {
background: #2d7dc5;
color: white;
border-color: #993399;
text-shadow: 0 -1px 0 #993399;
background-color: #4c2582;
}
.nav-top ul.menu li a:hover {
background: #24639b;
}
.nav-main ul.menu li a {
color: white;
border-color: #2d7dc5;
border-top-color: #4e96d7;
border-bottom-color: #1a4872;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b);
}
.nav-main ul.menu li a:hover {
background: #4e96d7;
}
.nav-main ul.menu li a:focus,
.nav-main ul.menu li a:hover {
background: #24639b;
color: black;
}
.post-comments {
background: url("../images/int/bg-tags-at.png") repeat fixed -20% top #4c2582;
}
.post-comments a {
color: black;
}
.post-comments ol li {
border-color: rgba(0, 0, 0, 0.2);
}
.post-comments ol li .comment-details {
color: #222222;
background: none repeat scroll 0 0 rgba(0, 0, 0, 0.2);
}
.post-comments ol li .comment-body {
background: white;
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,672 @@
/*
* Document : colors_ch
* Created on : 07.06.2015, 00:55
* Author : xwolf
* Description:
* Define corporate design colors for the theme.
* Each pirate party in several countries use their own set of colors;
* Therefor all color-settings are outsourced in files in
* the form colors_LANG.css.
*
* Settings in the color files will override settings in the
* current basemods, which defines the default style (german colors).
*
* This is the Swiss color file.
*
* Base color: #F9B200 , rgba(76,37,130, 0.2);
* Special text font: Aller
*/
@font-face {
font-family: FontPiratenkleiderDefault;
src: local(Aller),
url(../fonts/aller_rg.eot) format("embedded-opentype"),
url(../fonts/aller_rg.woff2) format("woff2"),
url(../fonts/aller_rg.woff) format("woff"),
url(../fonts/aller_rg.ttf) format("truetype");
}
@font-face {
font-family: FontPiratenkleiderHeadlines;
src: local(Aller),
url(../fonts/aller_rg.eot) format("embedded-opentype"),
url(../fonts/aller_rg.woff2) format("woff2"),
url(../fonts/aller_rg.woff) format("woff"),
url(../fonts/aller_rg.ttf) format("truetype");
}
@font-face {
font-family: FontPiratenkleiderMenuHeadlines;
src: local(Aller),
url(../fonts/aller_rg.eot) format("embedded-opentype"),
url(../fonts/aller_rg.woff2) format("woff2"),
url(../fonts/aller_rg.woff) format("woff"),
url(../fonts/aller_rg.ttf) format("truetype");
}
@media screen, projection {
body {
background-image: none;
background-color: #F9B200;
}
a {
color: #E86800;
-webkit-tap-highlight-color: #E95E0F;
}
a:visited {
color: #E95E0F;
}
a:hover {
color: #D8520F;
}
ins, mark {
background-color: #F9B200;
}
::selection, ::-moz-selection {
background: #E95E0F;
color: white;
}
input, select, textarea {
background: white;
background: rgba(255, 255, 255, 0.6);
}
input:focus, input:active,
select:focus, select:active,
textarea:focus, textarea:active {
background: white;
}
button, input[type="submit"],
.post-edit-link {
background: #E95E0F;
color: white;
border: 1px solid #E95E0F;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top: 1px solid #F7C34A;
border-bottom: 1px solid #CC6804;
text-shadow: 0 -1px 0 #112e48;
background-color: #E95E0F;
background-image: -webkit-linear-gradient(top, #E95E0F, #E87E45);
background-image: linear-gradient(to bottom, #E95E0F, #E87E45);
}
button:hover,
input[type="submit"]:hover,
.post-edit-link:hover {
background-color: #E95E0F;
background-image: -webkit-linear-gradient(top, #E95E0F, #CC6804);
background-image: linear-gradient(to bottom, #E95E0F, #CC6804);
}
.skiplinks li a:focus,
.skiplinks li a:active {
background: #E95E0F;
color: white;
}
.skiplinks li a:hover {
background: #F9B200;
color: black;
}
ul.socialmedia li a img {
border-color: #F28900;
}
ul.socialmedia li a:hover img {
border-color: white;
}
ul.socialmedia li a:focus img {
border-color: #F9B200;
}
.sticker ul li {
border-color: transparent;
}
.sticker ul li a:hover,
.sticker ul li a:focus {
color: #CC6804;
}
.sticker ul li a .cicolor {
color: #F9B200;
}
.sticker ul li a:hover .cicolor,
.sticker ul li a:focus .cicolor {
color: #E95E0F;
}
.sticker ul li a .shadow {
text-shadow: 1px 1px 1px #7F4102;
}
.sticker li a img {
border-color: transparent;
}
.sticker li a:hover img,
.sticker li a:focus img {
border-color: #F9B200;
}
.header .newsletter .skin {
background: #f7f7f7;
background: rgba(255, 255, 255, 0.5);
}
.teaser .row {
background: #E59C00;
background: rgba(0, 0, 0, 0.2) -20% 0 fixed;
}
.teaser .first-teaser-widget-area {
background: #111;
}
.first-teaser-widget-area .slide .textslider {
background: #F9B200;
color: #ddd;
}
.first-teaser-widget-area .slide .caption a {
background: #E58400 none repeat scroll 0% 0%;
}
.second-teaser-widget-area li {
background: #F9B200;
}
.second-teaser-widget-area li a {
color: white;
text-shadow: 0 0 0;
}
.second-teaser-widget-area li a div {
color: black;
text-shadow: 0 -1px 1px #552554;
}
.second-teaser-widget-area li a:focus,
.second-teaser-widget-area li a:hover {
background: #E59C00;
background: rgba(0, 0, 0, 0.5);
color: white;
}
.second-teaser-widget-area .textwidget {
background: #F9B200;
color: white;
text-shadow: none;
}
.second-teaser-widget-area li.recentcomments {
color: white;
}
.teaserlinks ul li {
background-color: #E58400;
color: white;
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}
.teaserlinks .symbol:before {
text-shadow: 0 -1px 1px rgba(0,0,0,0.2);
}
.teaserlinks ul li a {
color: #FFF;
text-shadow: none;
}
.teaserlinks ul li a:hover,
.teaserlinks ul li a:focus{
color: white;
background: none repeat scroll 0 0 transparent;
}
.teaserlinks ul li a span {
text-shadow: 0 0 0;
color: #000;
}
.content .row {
background: rgba(249, 178, 0, 0.2);
}
.caldera-form-page .row {
width: 100%;
}
.single {
width: 100%;
}
.content .symbolbild .caption {
background: rgba(0, 0, 0, 0.5);
color: white;
}
.content .symbolbild .aaarh {
background: transparent;
color: black;
}
.content-header-big {
background: url(../images/int/bg-tags.png);
}
.content-primary input[type="text"]:hover,
.content-primary textarea:hover,
.content-primary input[type="text"]:focus,
.content-primary textarea:focus {
border-color: black;
background-color: beige;
}
.content-primary .sprungmarken ol li a:hover {
background: #F9B200;
color: black;
}
.content-aside .newsletter {
background-color: #ffa500;
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}
.post .post-info .commentbubble a {
background: #F9B200;
color: white;
}
.post .post-info .cal-icon {
background: #eeeeee;
box-shadow: 1px 1px 2px #444444;
}
.post .post-meta {
color: #222;
}
.post-comments ol li .reply a {
background: #E95E0F;
color: white;
border-color: #E95E0F;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
text-shadow: 0 -1px 0 #112e48;
background-color: #E95E0F;
background-image: -webkit-linear-gradient(top, #E95E0F, #E87E45);
background-image: linear-gradient(to bottom, #E95E0F, #E87E45);
}
.post-comments ol li .reply a:hover {
background-color: #E95E0F;
background-image: -webkit-linear-gradient(top, #E95E0F, #CC6804);
background-image: linear-gradient(to bottom, #E95E0F, #CC6804);
}
.post-comments .respond span.required {
color: #F9B200;
}
.wp-caption p.wp-caption-text {
background: transparent;
background: rgba(0, 0, 0, 0.5);
color: white;
}
.gallery img {
border-color: #f1f1f1;
}
.gallery img:hover {
border-color: #F9B200;
}
.gallery-caption {
color: #888;
}
.first-startpage-widget-area a.all-articles {
background: #E95E0F;
color: white;
border-color: #E95E0F;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top-color: #F7C34A;
border-bottom-color: #CC6804;
text-shadow: 0 -1px 0 #112e48;
background-color: #E95E0F;
background-image: -webkit-linear-gradient(top, #E95E0F, #E87E45);
background-image: linear-gradient(to bottom, #E95E0F, #E87E45);
}
.first-startpage-widget-area a.all-articles:hover {
background-color: #E95E0F;
background-image: -webkit-linear-gradient(top, #E95E0F, #CC6804);
background-image: linear-gradient(to bottom, #E95E0F, #CC6804);
}
.content-aside .newsletter {
background: none repeat scroll 0 0 rgba(216, 122, 0, 0.5);
box-shadow:none;
}
.content-aside .widget li {
background:none;
}
.content-aside .widget li:hover {
background: #F2A900;
}
.content-aside .widget li:hover,
.content-aside .widget li:focus,
#ics-calendar-widget li:hover,
#ics-calendar-widget li:focus,
.content-aside .twitterwidget li:hover,
.content-aside .twitterwidget li:focus {
background: #F2A900;
}
.content-aside .twitterwidget li a:hover { color:#FFF; }
.content-aside a {
color: #505050;
background: rgba(255,255,255, 0.2);
padding:0.25em 0.4em;
}
.content-aside a:hover {
color: #202020;
background: rgba(255,255,255, 0.8);
}
.content-aside #steckbrief a {
background: transparent;
}
.content-aside #steckbrief a:hover {
background: transparent;
}
.content-aside table td,
.content-aside table th {
border-top-color: #F9B200;
}
.content-aside blockquote {
border: 0 solid;
background: #E59C00;
background: rgba(255, 255, 255, 0.2);
}
.content-aside ul.menu {
background: #E59C00;
background: rgba(255, 255, 255, 0.2);
}
.content-aside ul.menu li a {
background: white;
color: #E95E0F;
}
.content-aside ul.menu li.active a,
.content-aside ul.menu li a:hover,
.content-aside ul.menu li a:focus {
color: white;
background: #E95E0F;
}
.content-aside ul.menu li.current_page_item > a,
.content-aside ul.menu li.current-menu-item > a {
background: #E95E0F url("../images/plus-left.gif") center left no-repeat;
color: white;
}
.subcontent {
background: black url("../images/int/bg-tags_gray.jpg") -20% top fixed;
}
.subcontent .row {
background: rgba(0, 0, 0, 0.2);
color: #eeeeee;
}
.subcontent a {
background: black;
color: #E95E0F;
}
.subcontent a:hover {
background: #E95E0F;
color: white;
}
.footer {
background-image: none;
}
.footer .row {
background: rgba(0, 0, 0, 0.2);
color: #eeeeee;
}
.footer a {
background: black;
color: #E95E0F;
}
.footer a:hover {
background: #E95E0F;
color: white;
}
.content-aside .widget li a.rsswidget {
background: #E59C00;
background: rgba(0, 0, 0, 0.2);
}
.content-aside .widget li a.rsswidget:hover,
.content-aside .widget li a.rsswidget:focus {
background: #F9B200;
}
.content-aside .widget li .rssSummary {
color:#333333;
}
#ics-calendar-widget li {
color: black;
background: #E59C00;
background: rgba(255, 255, 255, 0.2);
}
#ics-calendar-widget-next,
#ics-calendar-widget-prev {
background: #E95E0F;
color: white;
border-color: #E95E0F;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top-color: #F7C34A;
border-bottom-color: #CC6804;
text-shadow: 0 -1px 0 #112e48;
background-color: #E95E0F;
background-image: -webkit-linear-gradient(top, #E95E0F, #E87E45);
background-image: linear-gradient(to bottom, #E95E0F, #E87E45);
}
#ics-calendar-widget-next:hover,
#ics-calendar-widget-prev:hover {
background-color: #E95E0F;
background-image: -webkit-linear-gradient(top, #E95E0F, #CC6804);
background-image: linear-gradient(to bottom, #E95E0F, #CC6804);
}
.ics-calendar-header a {
background: #E95E0F;
color: white;
border-color: #E95E0F;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top-color: #F7C34A;
border-bottom-color: #CC6804;
text-shadow: 0 -1px 0 #112e48;
background-color: #E95E0F;
background-image: -webkit-linear-gradient(top, #E95E0F, #E87E45);
background-image: linear-gradient(to bottom, #E95E0F, #E87E45);
}
.ics-calendar-header a:hover {
background-color: #E95E0F;
background-image: -webkit-linear-gradient(top, #E95E0F, #CC6804);
background-image: linear-gradient(to bottom, #E95E0F, #CC6804);
}
div.ics-calendar-holder tr.ics-calendar-days td {
background: #eeeeee;
border-bottom-color: gray; }
div.ics-calendar-holder .ics-calendar-table td .date-holder {
background: white;
}
div.ics-calendar-holder .ics-calendar-table td .old-date-holder {
background: white;
color: #999999;
}
div.ics-calendar-holder .ics-calendar-table td .ics-calendar-today {
background-color: #F9B200;
color: black;
}
div.ics-calendar-holder .ics-calendar-event {
background: #E95E0F;
color: white;
}
.nav-top div.menu-header ul.menu li a:hover,
.nav-top div.menu-header ul.menu li a:focus {
color: #E95E0F;
}
.nav-main ul.menu li a:hover,
.nav-main ul.menu li.hover a {
color: #F80;
}
.nav-main ul.menu li ul li a:hover,
.nav-main ul.menu li ul li.hover a,
.nav-main ul.menu li ul li a:active,
.nav-main ul.menu li ul li.active a,
.nav-main ul.menu li ul li ul li a:active,
.nav-main ul.menu li ul li ul li.active a {
background: #F80 none repeat scroll 0% 0%;
}
.searchform .searchsubmit {
background: rgba(255, 136, 0, 0.7);
}
.searchform .searchsubmit:hover {
background-color: #F80;
}
}
/* overwriting colors from hamburger.css */
@media only screen and (max-width: 768px) {
.nav-main ul {
box-shadow: none !important;
}
.nav-main a {
color: black !important;
background-color: #F9B200 !important;
background-image: none !important;
border-color: black !important;
border: 1px solid black !important;
}
.nav-main ul.menu li.current-menu-item > a,
.nav-main ul.menu li.current-page-item > a {
color: white !important;
background-color: black !important;
background-image: none !important;
border-color: #F9B200 !important;
border: 1px solid #F9B200 !important;
}
.post-comments {
background-color: #F9B200 !important;
}
.post-comments a {
color: black !important;
}
.post-comments ol li {
border-color: rgba(0, 0, 0, 0.2) !important;
}
.post-comments ol li .comment-details {
color: #222222 !important;
background-color: rgba(0, 0, 0, 0.2) !important;
}
.post-comments ol li .comment-body {
background: white !important;
}
.skiplinks li a {
background: #F9B200 !important;
color: white !important;
border: 1px solid black !important;
background-color: #F9B200 !important;
background-image: -webkit-linear-gradient(top, #F9B200, #E58400) !important;
background-image: linear-gradient(to bottom, #F9B200, #E58400) !important;
}
.skiplinks li a:focus,
.skiplinks li a:hover {
background: #E58400 !important;
color: black !important;
background-color: #E58400 !important;
background-image: -webkit-linear-gradient(top, #E58400, #F9B200) !important;
background-image: linear-gradient(to bottom, #E58400, #F9B200) !important;
}
/* marker */
#header-menu-icon {
background-color: #ddd !important;
background-image: -webkit-linear-gradient(top, #ddd, #bbb) !important;
background-image: linear-gradient(to bottom, #ddd, #bbb) !important;
}
#header-menu-icon:hover::after,
#header-menu-icon:active::after {
color: #555 !important;
}
/* overwriting fonts from hamburger.css */
.nav-main {
font-family: FontPiratenkleiderDefault !important;
}
.nav-main a {
font-family: FontPiratenkleiderDefault !important;
}
}

View File

@@ -0,0 +1,539 @@
/*
Document : colors_us
Created on : 16.05.2012, 11:56:08
Author : xwolf
Description:
Define corporate design colors for the theme.
Each pirate party in several countries use their own set of colors;
Therefor all color-settings are outsourced in files in
the form colors_LANG.css.
Settings in the color files will override settings in the
current basemods, which defines the default style.
This is the color file for the german online paper Flaschenpost
Base color: #A5DFF9 , rgba(153, 51, 153, 0.2);
*/
@media screen, projection {
body {
background: white;
}
a {
color: #06C;
-webkit-tap-highlight-color: #2d7dc5;
}
a:visited {
color: #2d7dc5;
}
.content-aside .widget li:hover, .content-aside .twitterwidget li:hover,
.content-aside li:hover,
a:hover {
color: #111;
background: rgba(0,0,0,0.2);
}
ins, mark {
background-color: #A5DFF9;
}
::selection {
background: #2d7dc5;
color: white;
}
::-moz-selection {
background: #2d7dc5;
color: white;
}
input, select, textarea {
background: white;
background: rgba(255, 255, 255, 0.6);
}
input:focus, input:active,
select:focus, select:active,
textarea:focus, textarea:active {
background: white;
}
button, input[type="submit"],
.post-edit-link {
background: #2d7dc5;
color: white;
border: 1px solid #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top: 1px solid #4e96d7;
border-bottom: 1px solid #1a4872;
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b); }
button:hover,
input[type="submit"]:hover,
.post-edit-link:hover {
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #1a4872);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
.skiplinks li a:focus,
.skiplinks li a:active {
background: #2d7dc5;
color: white;
}
.skiplinks li a:hover {
background: #A5DFF9;
color: black;
}
ul.socialmedia li a img {
border-color: #eee;
}
ul.socialmedia li a:hover img {
border-color: white;
}
ul.socialmedia li a:focus img {
border-color: #A5DFF9;
}
.sticker ul li {
border-color: transparent;
}
.sticker ul li a:hover,
.sticker ul li a:focus {
color: #1a4872;
}
.sticker ul li a .cicolor {
color: #A5DFF9;
}
.sticker ul li a:hover .cicolor,
.sticker ul li a:focus .cicolor {
color: #2d7dc5;
}
.sticker ul li a .shadow {
text-shadow: 1px 1px 1px #333;
}
.sticker li a img {
border-color: transparent;
}
.sticker li a:hover img,
.sticker li a:focus img {
border-color: #A5DFF9;
}
.header .newsletter .skin {
background: #f7f7f7;
background: rgba(255, 255, 255, 0.5);
}
.content .row,
.teaser .row {
background: #A5DFF9;
background: rgba(0, 0, 0, 0.3) -20% 0 fixed;
}
.teaser .first-teaser-widget-area {
background: #111;
}
.second-teaser-widget-area li {
background: #A5DFF9;
}
.second-teaser-widget-area li a {
color: white;
text-shadow: 0 0 0;
}
.second-teaser-widget-area li a div {
color: black;
text-shadow: 0 -1px 1px #552554;
}
.second-teaser-widget-area li a:focus,
.second-teaser-widget-area li a:hover {
background: #A5DFF9;
background: rgba(0, 0, 0, 0.5);
color: white;
}
.second-teaser-widget-area .textwidget {
background: #A5DFF9;
color: white;
text-shadow: 0 0 0;
}
.second-teaser-widget-area li.recentcomments {
color: white;
}
.teaserlinks ul li {
background-color: #A5DFF9;
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}
.teaserlinks ul li a {
color: white;
text-shadow: 0 -1px 1px #552554;
}
.teaserlinks ul li a:hover,
.teaserlinks ul li a:focus{
color: white;
background: none repeat scroll 0 0 #A5DFF9;
}
.teaserlinks ul li a span {
color: black;
text-shadow: 0 0 0;
}
.teaserlinks ul li a:hover span,
.teaserlinks ul li a:focus span {
color: black;
}
.content .symbolbild .caption {
background: transparent;
background: rgba(0, 0, 0, 0.5);
color: white;
}
.content .symbolbild .aaarh {
background: transparent;
color: black;
}
.content-header-big {
background: white;
}
.content-primary input[type="text"]:hover,
.content-primary textarea:hover,
.content-primary input[type="text"]:focus,
.content-primary textarea:focus {
border-color: black;
background-color: beige;
}
.content-primary .sprungmarken ol li a:hover {
background: #A5DFF9;
color: black;
}
.content-aside .newsletter {
background-color: #ffa500;
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}
.post .post-info .commentbubble a {
background: #A5DFF9;
color: black;
}
.post .post-info .cal-icon {
background: #eeeeee;
-moz-box-shadow: 1px 1px 2px #444444;
-webkit-box-shadow: 1px 1px 2px #444444;
box-shadow: 1px 1px 2px #444444;
}
.post .post-meta {
color: #222;
}
.post-comments ol li .reply a {
background: #2d7dc5;
color: white;
border-color: #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b);
}
.post-comments ol li .reply a:hover {
background-color: #2d7dc5;
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
.post-comments .respond span.required {
color: #A5DFF9;
}
.wp-caption p.wp-caption-text {
background: transparent;
background: rgba(0, 0, 0, 0.5);
color: white;
}
.gallery img {
border-color: #f1f1f1;
}
.gallery img:hover {
border-color: #A5DFF9;
}
.gallery-caption {
color: #888;
}
.first-startpage-widget-area a.all-articles {
background: #2d7dc5;
color: white;
border-color: #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top-color: #4e96d7;
border-bottom-color: #1a4872;
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b);
}
.first-startpage-widget-area a.all-articles:hover {
background-color: #2d7dc5;
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
.content-aside a {
color: black;
background: #A5DFF9;
}
.content-aside a:hover {
color: white;
background: rgba(255, 255, 255, 0.2);
}
.content-aside #steckbrief a {
background: transparent;
}
.content-aside #steckbrief a:hover {
background: transparent;
}
.content-aside table td,
.content-aside table th {
border-top-color: #A5DFF9;
}
.content-aside blockquote {
border: 0 solid;
background: #A5DFF9;
background: rgba(255, 255, 255, 0.2);
}
.content-aside .newsletter {
background-color: #A5DFF9;
}
.content-aside ul.menu {
background: #A5DFF9;
background: rgba(255, 255, 255, 0.2);
}
.content-aside ul.menu li a {
background: white;
color: #2d7dc5;
}
.content-aside ul.menu li.active a,
.content-aside ul.menu li a:hover,
.content-aside ul.menu li a:focus {
color: white;
background: #2d7dc5;
}
.content-aside ul.menu li.current_page_item > a,
.content-aside ul.menu li.current-menu-item > a {
background: #2d7dc5 url("../images/plus-left.gif") center left no-repeat;
color: white;
}
.content-aside p {
color: black;
}
.subcontent {
background: black url("../images/int/bg-tags_gray.jpg") -20% top fixed;
}
.subcontent .row {
background: rgba(0, 0, 0, 0.2);
color: #eeeeee;
}
.subcontent a {
background: black;
color: #2d7dc5;
}
.subcontent a:hover {
background: #2d7dc5;
color: white;
}
.footer {
background: black url("../images/int/bg-tags_gray.jpg") -20% top fixed;
overflow: hidden;
}
.footer .row {
background: rgba(0, 0, 0, 0.2);
color: #eeeeee;
}
.footer a {
background: black;
color: #2d7dc5;
}
.footer a:hover {
background: #2d7dc5;
color: white;
}
.content-aside .widget li a.rsswidget {
background: #A5DFF9;
background: rgba(0, 0, 0, 0.2);
}
.content-aside .widget li a.rsswidget:hover,
.content-aside .widget li a.rsswidget:focus {
background: #A5DFF9;
}
.content-aside .widget li .rssSummary {
color:#333333;
}
#ics-calendar-widget li {
color: black;
background: #A5DFF9;
background: rgba(255, 255, 255, 0.2);
}
#ics-calendar-widget-next,
#ics-calendar-widget-prev {
background: #2d7dc5;
color: white;
border-color: #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top-color: #4e96d7;
border-bottom-color: #1a4872;
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b); }
#ics-calendar-widget-next:hover,
#ics-calendar-widget-prev:hover {
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #1a4872);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
.ics-calendar-header a {
background: #2d7dc5;
color: white;
border-color: #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top-color: #4e96d7;
border-bottom-color: #1a4872;
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b); }
.ics-calendar-header a:hover {
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #1a4872);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
div.ics-calendar-holder tr.ics-calendar-days td {
background: #eeeeee;
border-bottom-color: gray; }
div.ics-calendar-holder .ics-calendar-table td .date-holder {
background: white;
}
div.ics-calendar-holder .ics-calendar-table td .old-date-holder {
background: white;
color: #999999;
}
div.ics-calendar-holder .ics-calendar-table td .ics-calendar-today {
background-color: #A5DFF9;
color: black;
}
div.ics-calendar-holder .ics-calendar-event {
background: #2d7dc5;
color: white;
}
.nav-top div.menu-header ul.menu li a:hover,
.nav-top div.menu-header ul.menu li a:focus {
color: #2d7dc5;
}
}
@media only screen and (max-width: 600px) {
.nav-top ul.menu li a {
background: #2d7dc5;
color: white;
border-color: #A5DFF9;
text-shadow: 0 -1px 0 #A5DFF9;
background-color: #A5DFF9;
}
.nav-top ul.menu li a:hover {
background: #24639b;
}
.nav-main ul.menu li a {
color: white;
border-color: #2d7dc5;
border-top-color: #4e96d7;
border-bottom-color: #1a4872;
background-color: #2d7dc5;
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b);
}
.nav-main ul.menu li a:hover {
background: #4e96d7;
}
.nav-main ul.menu li a:focus,
.nav-main ul.menu li a:hover {
background: #24639b;
color: black;
}
.post-comments {
background: #A5DFF9;
}
.post-comments a {
color: black;
}
.post-comments ol li {
border-color: rgba(0, 0, 0, 0.2);
}
.post-comments ol li .comment-details {
color: #222222;
background: none repeat scroll 0 0 rgba(0, 0, 0, 0.2);
}
.post-comments ol li .comment-body {
background: white;
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,569 @@
/*
Document : colors_hu
Created on : 26.02.2013
Author : xwolf
Description:
Define corporate design colors for the theme.
Each pirate party in several countries use their own set of colors;
Therefor all color-settings are outsourced in files in
the form colors_LANG.css.
Settings in the color files will override settings in the
current basemods, which defines the default style (german colors).
This is the Hungarian color file.
*/
@media screen, projection {
body {
background: #4c2582 url("../images/int/bg-tags-hu.png") -20% top fixed;
}
a {
color: #06C;
-webkit-tap-highlight-color: #2d7dc5;
}
a:visited {
color: #2d7dc5;
}
a:hover {
color: #111;
}
ins, mark {
background-color: #4c2582;
}
::selection {
background: #2d7dc5;
color: white;
}
::-moz-selection {
background: #2d7dc5;
color: white;
}
input, select, textarea {
background: white;
background: rgba(255, 255, 255, 0.6);
}
input:focus, input:active,
select:focus, select:active,
textarea:focus, textarea:active {
background: white;
}
button, input[type="submit"],
.post-edit-link {
background: #2d7dc5;
color: white;
border: 1px solid #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top: 1px solid #4e96d7;
border-bottom: 1px solid #1a4872;
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b); }
button:hover,
input[type="submit"]:hover,
.post-edit-link:hover {
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #1a4872);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
.skiplinks li a:focus,
.skiplinks li a:active {
background: #2d7dc5;
color: white;
}
.skiplinks li a:hover {
background: #4c2582;
color: black;
}
ul.socialmedia li a img {
border-color: #eee;
}
ul.socialmedia li a:hover img {
border-color: white;
}
ul.socialmedia li a:focus img {
border-color: #4c2582;
}
.sticker ul li {
border-color: transparent;
}
.sticker ul li a:hover,
.sticker ul li a:focus {
color: #1a4872;
}
.sticker ul li a .cicolor {
color: #4c2582;
}
.sticker ul li a:hover .cicolor,
.sticker ul li a:focus .cicolor {
color: #2d7dc5;
}
.sticker ul li a .shadow {
text-shadow: 1px 1px 1px #333;
}
.sticker li a img {
border-color: transparent;
}
.sticker li a:hover img,
.sticker li a:focus img {
border-color: #4c2582;
}
.header .newsletter .skin {
background: #f7f7f7;
background: rgba(255, 255, 255, 0.5);
}
.teaser .row {
background: #993399;
background: rgba(0, 0, 0, 0.2) -20% 0 fixed;
}
.teaser .first-teaser-widget-area {
background: #111;
}
.first-teaser-widget-area .slide .textslider {
background: #4c2582;
color: #ddd;
}
.second-teaser-widget-area li {
background: #4c2582;
}
.second-teaser-widget-area li a {
color: white;
text-shadow: 0 0 0;
}
.second-teaser-widget-area li a div {
color: black;
text-shadow: 0 -1px 1px #552554;
}
.second-teaser-widget-area li a:focus,
.second-teaser-widget-area li a:hover {
background: #993399;
background: rgba(0, 0, 0, 0.5);
color: white;
}
.second-teaser-widget-area .textwidget {
background: #4c2582;
color: white;
text-shadow: 0 0 0;
}
.second-teaser-widget-area li.recentcomments {
color: white;
}
.teaserlinks ul li {
background-color: #5C388F;
color: white;
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}
.teaserlinks .symbol:before {
text-shadow: 0 -1px 1px rgba(0,0,0,0.2) !important;
}
.teaserlinks ul li a {
color: #EEE;
text-shadow: 0 -1px 1px #552554;
}
.teaserlinks ul li a:hover,
.teaserlinks ul li a:focus{
color: white;
background: none repeat scroll 0 0 #5C388F;
}
.teaserlinks ul li a span {
text-shadow: 0 0 0;
color: #EEE;
}
.teaserlinks ul li a:hover span,
.teaserlinks ul li a:focus span {
color: white;
}
.content .row {
background: #4c2582;
background: rgba(76, 37, 130, 0.2);
}
.content .symbolbild .caption {
background: transparent;
background: rgba(0, 0, 0, 0.5);
color: white;
}
.content .symbolbild .aaarh {
background: transparent;
color: black;
}
.content-header-big {
background: url(../images/int/bg-tags-hu.png);
}
.content-primary input[type="text"]:hover,
.content-primary textarea:hover,
.content-primary input[type="text"]:focus,
.content-primary textarea:focus {
border-color: black;
background-color: beige;
}
.content-primary .sprungmarken ol li a:hover {
background: #4c2582;
color: black;
}
.content-aside .newsletter {
background-color: #ffa500;
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}
.post .post-info .commentbubble a {
background: #4c2582;
color: white;
}
.post .post-info .cal-icon {
background: #eeeeee;
-moz-box-shadow: 1px 1px 2px #444444;
-webkit-box-shadow: 1px 1px 2px #444444;
box-shadow: 1px 1px 2px #444444;
}
.post .post-meta {
color: #222;
}
.post-comments ol li .reply a {
background: #2d7dc5;
color: white;
border-color: #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b);
}
.post-comments ol li .reply a:hover {
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #1a4872);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
.post-comments .respond span.required {
color: #4c2582;
}
.wp-caption p.wp-caption-text {
background: transparent;
background: rgba(0, 0, 0, 0.5);
color: white;
}
.gallery img {
border-color: #f1f1f1;
}
.gallery img:hover {
border-color: #4c2582;
}
.gallery-caption {
color: #888;
}
.first-startpage-widget-area a.all-articles {
background: #2d7dc5;
color: white;
border-color: #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top-color: #4e96d7;
border-bottom-color: #1a4872;
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b);
}
.first-startpage-widget-area a.all-articles:hover {
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #1a4872);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
.content-aside .newsletter {
background: none repeat scroll 0 0 rgba(76, 37, 130, 0.5);
box-shadow:none;
}
.content-aside .widget li {
background:none;
}
.content-aside .widget li:hover {
background:#5C388F;
}
.content-aside .widget li:hover,
.content-aside .widget li:focus,
#ics-calendar-widget li:hover,
#ics-calendar-widget li:focus,
.content-aside .twitterwidget li:hover,
.content-aside .twitterwidget li:focus {
background: #5c388f;
}
.content-aside .twitterwidget li a:hover { color:#FFF; }
.content-aside a {
color: #EEE;
background: rgba(255,255,255, 0.2);
padding:0.25em 0.4em;
}
.content-aside a:hover {
color: rgba(76, 37, 130, 0.8);
background: rgba(255,255,255, 0.8);
}
.content-aside #steckbrief a {
background: transparent;
}
.content-aside #steckbrief a:hover {
background: transparent;
}
.content-aside table td,
.content-aside table th {
border-top-color: #4c2582;
}
.content-aside blockquote {
border: 0 solid;
background: #993399;
background: rgba(255, 255, 255, 0.2);
}
.content-aside ul.menu {
background: #993399;
background: rgba(255, 255, 255, 0.2);
}
.content-aside ul.menu li a {
background: white;
color: #2d7dc5;
}
.content-aside ul.menu li.active a,
.content-aside ul.menu li a:hover,
.content-aside ul.menu li a:focus {
color: white;
background: #2d7dc5;
}
.content-aside ul.menu li.current_page_item > a,
.content-aside ul.menu li.current-menu-item > a {
background: #2d7dc5 url("../images/plus-left.gif") center left no-repeat;
color: white;
}
.content-aside p {
color: black;
}
.subcontent {
background: black url("../images/int/bg-tags_gray.jpg") -20% top fixed;
}
.subcontent .row {
background: rgba(0, 0, 0, 0.2);
color: #eeeeee;
}
.subcontent a {
background: black;
color: #2d7dc5;
}
.subcontent a:hover {
background: #2d7dc5;
color: white;
}
.footer {
background: black url("../images/int/bg-tags_gray.jpg") -20% top fixed;
overflow: hidden;
}
.footer .row {
background: rgba(0, 0, 0, 0.2);
color: #eeeeee;
}
.footer a {
background: black;
color: #2d7dc5;
}
.footer a:hover {
background: #2d7dc5;
color: white;
}
.content-aside .widget li a.rsswidget {
background: #993399;
background: rgba(0, 0, 0, 0.2);
}
.content-aside .widget li a.rsswidget:hover,
.content-aside .widget li a.rsswidget:focus {
background: #4c2582;
}
.content-aside .widget li .rssSummary {
color:#333333;
}
#ics-calendar-widget li {
color: black;
background: #993399;
background: rgba(255, 255, 255, 0.2);
}
#ics-calendar-widget-next,
#ics-calendar-widget-prev {
background: #2d7dc5;
color: white;
border-color: #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top-color: #4e96d7;
border-bottom-color: #1a4872;
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b); }
#ics-calendar-widget-next:hover,
#ics-calendar-widget-prev:hover {
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #1a4872);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
.ics-calendar-header a {
background: #2d7dc5;
color: white;
border-color: #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top-color: #4e96d7;
border-bottom-color: #1a4872;
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b); }
.ics-calendar-header a:hover {
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #1a4872);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
div.ics-calendar-holder tr.ics-calendar-days td {
background: #eeeeee;
border-bottom-color: gray; }
div.ics-calendar-holder .ics-calendar-table td .date-holder {
background: white;
}
div.ics-calendar-holder .ics-calendar-table td .old-date-holder {
background: white;
color: #999999;
}
div.ics-calendar-holder .ics-calendar-table td .ics-calendar-today {
background-color: #4c2582;
color: black;
}
div.ics-calendar-holder .ics-calendar-event {
background: #2d7dc5;
color: white;
}
.nav-top div.menu-header ul.menu li a:hover,
.nav-top div.menu-header ul.menu li a:focus {
color: #2d7dc5;
}
}
@media only screen and (max-width: 600px) {
.nav-top ul.menu li a {
background: #2d7dc5;
color: white;
border-color: #993399;
text-shadow: 0 -1px 0 #993399;
background-color: #4c2582;
}
.nav-top ul.menu li a:hover {
background: #24639b;
}
.nav-main ul.menu li a {
color: white;
border-color: #2d7dc5;
border-top-color: #4e96d7;
border-bottom-color: #1a4872;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b);
}
.nav-main ul.menu li a:hover {
background: #4e96d7;
}
.nav-main ul.menu li a:focus,
.nav-main ul.menu li a:hover {
background: #24639b;
color: black;
}
.post-comments {
background: url("../images/int/bg-tags-hu.png") repeat fixed -20% top #4c2582;
}
.post-comments a {
color: black;
}
.post-comments ol li {
border-color: rgba(0, 0, 0, 0.2);
}
.post-comments ol li .comment-details {
color: #222222;
background: none repeat scroll 0 0 rgba(0, 0, 0, 0.2);
}
.post-comments ol li .comment-body {
background: white;
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,547 @@
/*
Document : colors_lu
Created on : 16.05.2012, 11:56:08
Author : xwolf
Description:
Define corporate design colors for the theme.
Each pirate party in several countries use their own set of colors;
Therefor all color-settings are outsourced in files in
the form colors_LANG.css.
Settings in the color files will override settings in the
current basemods, which defines the default style (german colors).
This is the luxemburger color file.
Base color: #B127AF , rgba(153, 51, 153, 0.2);
Special text font: Bebas Neue
*/
@media screen, projection {
body {
background: #B127AF url("../images/int/bg-tags-lu.png") -20% top fixed;
}
a {
color: #06C;
-webkit-tap-highlight-color: #2d7dc5;
}
a:visited {
color: #2d7dc5;
}
a:hover {
color: #111;
}
ins, mark {
background-color: #B127AF;
}
::selection {
background: #2d7dc5;
color: white;
}
::-moz-selection {
background: #2d7dc5;
color: white;
}
input, select, textarea {
background: white;
background: rgba(255, 255, 255, 0.6);
}
input:focus, input:active,
select:focus, select:active,
textarea:focus, textarea:active {
background: white;
}
button, input[type="submit"],
.post-edit-link {
background: #2d7dc5;
color: white;
border: 1px solid #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top: 1px solid #4e96d7;
border-bottom: 1px solid #1a4872;
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b); }
button:hover,
input[type="submit"]:hover,
.post-edit-link:hover {
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #1a4872);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
.skiplinks li a:focus,
.skiplinks li a:active {
background: #2d7dc5;
color: white;
}
.skiplinks li a:hover {
background: #B127AF;
color: black;
}
ul.socialmedia li a img {
border-color: #eee;
}
ul.socialmedia li a:hover img {
border-color: white;
}
ul.socialmedia li a:focus img {
border-color: #B127AF;
}
.sticker ul li {
border-color: transparent;
}
.sticker ul li a:hover,
.sticker ul li a:focus {
color: #1a4872;
}
.sticker ul li a .cicolor {
color: #B127AF;
}
.sticker ul li a:hover .cicolor,
.sticker ul li a:focus .cicolor {
color: #2d7dc5;
}
.sticker ul li a .shadow {
text-shadow: 1px 1px 1px #333;
}
.sticker li a img {
border-color: transparent;
}
.sticker li a:hover img,
.sticker li a:focus img {
border-color: #B127AF;
}
.header .newsletter .skin {
background: #f7f7f7;
background: rgba(255, 255, 255, 0.5);
}
.teaser .row {
background: #993399;
background: rgba(0, 0, 0, 0.3) -20% 0 fixed;
}
.first-teaser-widget-area .slide .textslider {
background: none repeat scroll 0 0 #B127AF;
}
.second-teaser-widget-area li {
background: #B127AF;
}
.second-teaser-widget-area li a {
color: white;
text-shadow: 0 0 0;
}
.second-teaser-widget-area li a div {
color: black;
text-shadow: 0 -1px 1px #552554;
}
.second-teaser-widget-area li a:focus,
.second-teaser-widget-area li a:hover {
background: #993399;
background: rgba(0, 0, 0, 0.5);
color: white;
}
.second-teaser-widget-area .textwidget {
background: #B127AF;
color: white;
text-shadow: 0 0 0;
}
.second-teaser-widget-area li.recentcomments {
color: white;
}
.teaserlinks ul li {
background-color: #B127AF;
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}
.teaserlinks ul li a {
color: white;
text-shadow: 0 -1px 1px #552554;
}
.teaserlinks ul li a:hover,
.teaserlinks ul li a:focus{
color: white;
background: none repeat scroll 0 0 #B127AF;
}
.teaserlinks ul li a span {
color: black;
text-shadow: 0 0 0;
}
.teaserlinks ul li a:hover span,
.teaserlinks ul li a:focus span {
color: black;
}
.content .row {
background: #B127AF;
background: rgba(153, 51, 153, 0.2);
}
.content .symbolbild .caption {
background: transparent;
background: rgba(0, 0, 0, 0.5);
color: white;
}
.content .symbolbild .aaarh {
background: transparent;
color: black;
}
.content-header-big {
background: url(../images/int/bg-tags-lu.png);
}
.content-primary input[type="text"]:hover,
.content-primary textarea:hover,
.content-primary input[type="text"]:focus,
.content-primary textarea:focus {
border-color: black;
background-color: beige;
}
.content-primary .sprungmarken ol li a:hover {
background: #B127AF;
color: black;
}
.content-aside .newsletter {
background-color: #ffa500;
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}
.post .post-info .commentbubble a {
background: #B127AF;
color: black;
}
.post .post-info .cal-icon {
background: #eeeeee;
-moz-box-shadow: 1px 1px 2px #444444;
-webkit-box-shadow: 1px 1px 2px #444444;
box-shadow: 1px 1px 2px #444444;
}
.post .post-meta {
color: #222;
}
.post-comments ol li .reply a {
background: #2d7dc5;
color: white;
border-color: #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b);
}
.post-comments ol li .reply a:hover {
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #1a4872);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
.post-comments .respond span.required {
color: #B127AF;
}
.wp-caption p.wp-caption-text {
background: transparent;
background: rgba(0, 0, 0, 0.5);
color: white;
}
.gallery img {
border-color: #f1f1f1;
}
.gallery img:hover {
border-color: #B127AF;
}
.gallery-caption {
color: #888;
}
.first-startpage-widget-area a.all-articles {
background: #2d7dc5;
color: white;
border-color: #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top-color: #4e96d7;
border-bottom-color: #1a4872;
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b);
}
.first-startpage-widget-area a.all-articles:hover {
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #1a4872);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
.content-aside a {
color: white;
background: #993399;
}
.content-aside a:hover {
color: white;
background: rgba(255, 255, 255, 0.2);
}
.content-aside #steckbrief a {
background: transparent;
}
.content-aside #steckbrief a:hover {
background: transparent;
}
.content-aside table td,
.content-aside table th {
border-top-color: #B127AF;
}
.content-aside blockquote {
border: 0 solid;
background: #993399;
background: rgba(255, 255, 255, 0.2);
}
.content-aside .newsletter {
background-color: #B127AF;
}
.content-aside ul.menu {
background: #993399;
background: rgba(255, 255, 255, 0.2);
}
.content-aside ul.menu li a {
background: white;
color: #2d7dc5;
}
.content-aside ul.menu li.active a,
.content-aside ul.menu li a:hover,
.content-aside ul.menu li a:focus {
color: white;
background: #2d7dc5;
}
.content-aside ul.menu li.current_page_item > a,
.content-aside ul.menu li.current-menu-item > a {
background: #2d7dc5 url("../images/plus-left.gif") center left no-repeat;
color: white;
}
.content-aside p {
color: black;
}
.subcontent {
background: black url("../images/int/bg-tags_gray.jpg") -20% top fixed;
}
.subcontent .row {
background: rgba(0, 0, 0, 0.2);
color: #eeeeee;
}
.subcontent a {
background: black;
color: #2d7dc5;
}
.subcontent a:hover {
background: #2d7dc5;
color: white;
}
.footer {
background: black url("../images/int/bg-tags_gray.jpg") -20% top fixed;
overflow: hidden;
}
.footer .row {
background: rgba(0, 0, 0, 0.2);
color: #eeeeee;
}
.footer a {
background: black;
color: #2d7dc5;
}
.footer a:hover {
background: #2d7dc5;
color: white;
}
.content-aside .widget li a.rsswidget {
background: #993399;
background: rgba(0, 0, 0, 0.2);
}
.content-aside .widget li a.rsswidget:hover,
.content-aside .widget li a.rsswidget:focus {
background: #B127AF;
}
.content-aside .widget li .rssSummary {
color:#333333;
}
#ics-calendar-widget li {
color: black;
background: #993399;
background: rgba(255, 255, 255, 0.2);
}
#ics-calendar-widget-next,
#ics-calendar-widget-prev {
background: #2d7dc5;
color: white;
border-color: #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top-color: #4e96d7;
border-bottom-color: #1a4872;
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b); }
#ics-calendar-widget-next:hover,
#ics-calendar-widget-prev:hover {
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #1a4872);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
.ics-calendar-header a {
background: #2d7dc5;
color: white;
border-color: #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top-color: #4e96d7;
border-bottom-color: #1a4872;
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b); }
.ics-calendar-header a:hover {
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #1a4872);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
div.ics-calendar-holder tr.ics-calendar-days td {
background: #eeeeee;
border-bottom-color: gray; }
div.ics-calendar-holder .ics-calendar-table td .date-holder {
background: white;
}
div.ics-calendar-holder .ics-calendar-table td .old-date-holder {
background: white;
color: #999999;
}
div.ics-calendar-holder .ics-calendar-table td .ics-calendar-today {
background-color: #B127AF;
color: black;
}
div.ics-calendar-holder .ics-calendar-event {
background: #2d7dc5;
color: white;
}
.nav-top div.menu-header ul.menu li a:hover,
.nav-top div.menu-header ul.menu li a:focus {
color: #2d7dc5;
}
}
@media only screen and (max-width: 600px) {
.nav-top ul.menu li a {
background: #2d7dc5;
color: white;
border-color: #993399;
text-shadow: 0 -1px 0 #993399;
background-color: #B127AF;
}
.nav-top ul.menu li a:hover {
background: #24639b;
}
.nav-main ul.menu li a {
color: white;
border-color: #2d7dc5;
border-top-color: #4e96d7;
border-bottom-color: #1a4872;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b);
}
.nav-main ul.menu li a:hover {
background: #4e96d7;
}
.nav-main ul.menu li a:focus,
.nav-main ul.menu li a:hover {
background: #24639b;
color: black;
}
.post-comments {
background: url("../images/int/bg-tags-lu.png") repeat fixed -20% top #B127AF;
}
.post-comments a {
color: black;
}
.post-comments ol li {
border-color: rgba(0, 0, 0, 0.2);
}
.post-comments ol li .comment-details {
color: #222222;
background: none repeat scroll 0 0 rgba(0, 0, 0, 0.2);
}
.post-comments ol li .comment-body {
background: white;
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,549 @@
/*
Document : colors_tk
Created on : 16.05.2012, 11:56:08
Author : xwolf
Description:
Define corporate design colors for the theme.
Each pirate party in several countries use their own set of colors;
Therefor all color-settings are outsourced in files in
the form colors_LANG.css.
Settings in the color files will override settings in the
current basemods, which defines the default style (german colors).
This is the turkey color file.
Base color: #00B5B1 (rgb: 0, 181, 177)
Special text font: Bebas Neue
NOTICE: This font must be replaced by another font, cause Bebas
does not contain all need chars. Please inform
at piratenkleider@xwolf.de about a possible and useful
font that can be used here.
*/
@media screen, projection {
body {
background: #00B5B1 url("../images/int/bg-tags-tk.png") -20% top fixed;
}
a {
color: #06C;
-webkit-tap-highlight-color: #2d7dc5;
}
a:visited {
color: #2d7dc5;
}
a:hover {
color: #111;
}
ins, mark {
background-color: #00B5B1;
}
::selection {
background: #2d7dc5;
color: white;
}
::-moz-selection {
background: #2d7dc5;
color: white;
}
input, select, textarea {
background: white;
background: rgba(255, 255, 255, 0.6);
}
input:focus, input:active,
select:focus, select:active,
textarea:focus, textarea:active {
background: white;
}
button, input[type="submit"],
.post-edit-link {
background: #2d7dc5;
color: white;
border: 1px solid #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top: 1px solid #4e96d7;
border-bottom: 1px solid #1a4872;
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b); }
button:hover,
input[type="submit"]:hover,
.post-edit-link:hover {
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #1a4872);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
.skiplinks li a:focus,
.skiplinks li a:active {
background: #2d7dc5;
color: white;
}
.skiplinks li a:hover {
background: #00B5B1;
color: black;
}
ul.socialmedia li a img {
border-color: #eee;
}
ul.socialmedia li a:hover img {
border-color: white;
}
ul.socialmedia li a:focus img {
border-color: #00B5B1;
}
.sticker ul li {
border-color: transparent;
}
.sticker ul li a:hover,
.sticker ul li a:focus {
color: #1a4872;
}
.sticker ul li a .cicolor {
color: #00B5B1;
}
.sticker ul li a:hover .cicolor,
.sticker ul li a:focus .cicolor {
color: #2d7dc5;
}
.sticker ul li a .shadow {
text-shadow: 1px 1px 1px #333;
}
.sticker li a img {
border-color: transparent;
}
.sticker li a:hover img,
.sticker li a:focus img {
border-color: #00B5B1;
}
.header .newsletter .skin {
background: #f7f7f7;
background: rgba(255, 255, 255, 0.5);
}
.teaser .row {
background: #00B4B1;
background: rgba(0, 0, 0, 0.3) -20% 0 fixed;
}
.teaser .first-teaser-widget-area {
background: #111;
}
.first-teaser-widget-area .slide .textslider {
background: #00B4B1;
}
.second-teaser-widget-area li {
background: #00B5B1;
}
.second-teaser-widget-area li a {
color: white;
text-shadow: 0 0 0;
}
.second-teaser-widget-area li a div {
color: black;
text-shadow: 0 -1px 1px #c36800;
}
.second-teaser-widget-area li a:focus,
.second-teaser-widget-area li a:hover {
background: #00B4B1;
background: rgba(0, 0, 0, 0.2);
color: white;
}
.second-teaser-widget-area .textwidget {
background: #00B5B1;
color: white;
text-shadow: 0 0 0;
}
.second-teaser-widget-area li.recentcomments {
color: white;
}
.teaserlinks ul li {
background-color: #00B5B1;
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}
.teaserlinks ul li a {
color: white;
text-shadow: 0 -1px 1px #c36800;
}
.teaserlinks ul li a:hover,
.teaserlinks ul li a:focus{
color: white;
background: none repeat scroll 0 0 #00B5B1;
}
.teaserlinks ul li a span {
color: black;
text-shadow: 0 0 0;
}
.teaserlinks ul li a:hover span,
.teaserlinks ul li a:focus span {
color: black;
}
.content .row {
background: #00B5B1;
background: rgba(0, 181, 177, 0.7);
}
.content .symbolbild .caption {
background: transparent;
background: rgba(0, 0, 0, 0.5);
color: white;
}
.content .symbolbild .aaarh {
background: transparent;
color: black;
}
.content-header-big {
background: url(../images/int/bg-tags-tk.png);
}
.content-primary input[type="text"]:hover,
.content-primary textarea:hover,
.content-primary input[type="text"]:focus,
.content-primary textarea:focus {
border-color: black;
background-color: beige;
}
.content-primary .sprungmarken ol li a:hover {
background: #00B5B1;
color: black;
}
.content-aside .newsletter {
background-color: #ffa500;
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}
.post .post-info .commentbubble a {
background: #00B5B1;
color: black;
}
.post .post-info .cal-icon {
background: #eeeeee;
-moz-box-shadow: 1px 1px 2px #444444;
-webkit-box-shadow: 1px 1px 2px #444444;
box-shadow: 1px 1px 2px #444444;
}
.post .post-meta {
color: #222;
}
.post-comments ol li .reply a {
background: #2d7dc5;
color: white;
border-color: #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b);
}
.post-comments ol li .reply a:hover {
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #1a4872);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
.post-comments .respond span.required {
color: #00B5B1;
}
.wp-caption p.wp-caption-text {
background: transparent;
background: rgba(0, 0, 0, 0.5);
color: white;
}
.gallery img {
border-color: #f1f1f1;
}
.gallery img:hover {
border-color: #00B5B1;
}
.gallery-caption {
color: #888;
}
.first-startpage-widget-area a.all-articles {
background: #2d7dc5;
color: white;
border-color: #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top-color: #4e96d7;
border-bottom-color: #1a4872;
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b);
}
.first-startpage-widget-area a.all-articles:hover {
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #1a4872);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
.content-aside a {
color: black;
background: #00B4B1;
}
.content-aside a:hover {
color: #000;
background: rgba(0, 0, 0, 0.2);
}
.content-aside #steckbrief a {
background: transparent;
}
.content-aside #steckbrief a:hover {
background: transparent;
}
.content-aside table td,
.content-aside table th {
border-top-color: #00B5B1;
}
.content-aside blockquote {
border: 0 solid;
background: #00B4B1;
background: rgba(0, 0, 0, 0.2);
}
.content-aside .newsletter {
background-color: #00B5B1;
}
.content-aside ul.menu {
background: #00B4B1;
background: rgba(0, 0, 0, 0.2);
}
.content-aside ul.menu li a {
background: white;
color: #2d7dc5;
}
.content-aside ul.menu li.active a,
.content-aside ul.menu li a:hover,
.content-aside ul.menu li a:focus {
color: white;
background: #2d7dc5;
}
.content-aside ul.menu li.current_page_item > a,
.content-aside ul.menu li.current-menu-item > a {
background: #2d7dc5 url("../images/plus-left.gif") center left no-repeat;
color: white;
}
.content-aside p {
color: black;
}
.subcontent {
background: black url("../images/int/bg-tags_gray.jpg") -20% top fixed;
}
.subcontent .row {
background: rgba(0, 0, 0, 0.2);
color: #eeeeee;
}
.subcontent a {
background: black;
color: #2d7dc5;
}
.subcontent a:hover {
background: #2d7dc5;
color: white;
}
.footer {
background: black url("../images/int/bg-tags_gray.jpg") -20% top fixed;
overflow: hidden;
}
.footer .row {
background: rgba(0, 0, 0, 0.2);
color: #eeeeee;
}
.footer a {
background: black;
color: #2d7dc5;
}
.footer a:hover {
background: #2d7dc5;
color: white;
}
.content-aside .widget li a.rsswidget {
background: #00B4B1;
background: rgba(0, 0, 0, 0.2);
}
.content-aside .widget li a.rsswidget:hover,
.content-aside .widget li a.rsswidget:focus {
background: #00B5B1;
}
.content-aside .widget li .rssSummary {
color:#333333;
}
#ics-calendar-widget li {
color: black;
background: #00B4B1;
background: rgba(0, 0, 0, 0.2);
}
#ics-calendar-widget-next,
#ics-calendar-widget-prev {
background: #2d7dc5;
color: white;
border-color: #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top-color: #4e96d7;
border-bottom-color: #1a4872;
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b); }
#ics-calendar-widget-next:hover,
#ics-calendar-widget-prev:hover {
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #1a4872);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
.ics-calendar-header a {
background: #2d7dc5;
color: white;
border-color: #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top-color: #4e96d7;
border-bottom-color: #1a4872;
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b); }
.ics-calendar-header a:hover {
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #1a4872);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
div.ics-calendar-holder tr.ics-calendar-days td {
background: #eeeeee;
border-bottom-color: gray; }
div.ics-calendar-holder .ics-calendar-table td .date-holder {
background: white;
}
div.ics-calendar-holder .ics-calendar-table td .old-date-holder {
background: white;
color: #999999;
}
div.ics-calendar-holder .ics-calendar-table td .ics-calendar-today {
background-color: #00B5B1;
color: black;
}
div.ics-calendar-holder .ics-calendar-event {
background: #2d7dc5;
color: white;
}
.nav-top div.menu-header ul.menu li a:hover,
.nav-top div.menu-header ul.menu li a:focus {
color: #2d7dc5;
}
}
@media only screen and (max-width: 600px) {
.nav-top ul.menu li a {
background: #2d7dc5;
color: white;
border-color: #00B4B1;
text-shadow: 0 -1px 0 #00B4B1;
background-color: #00B5B1;
}
.nav-top ul.menu li a:hover {
background: #24639b;
}
.nav-main ul.menu li a {
color: white;
border-color: #2d7dc5;
border-top-color: #4e96d7;
border-bottom-color: #1a4872;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b);
}
.nav-main ul.menu li a:hover {
background: #4e96d7;
}
.nav-main ul.menu li a:focus,
.nav-main ul.menu li a:hover {
background: #24639b;
color: black;
}
.post-comments {
background: url("../images/int/bg-tags-tk.png") repeat fixed -20% top #00B5B1;
}
.post-comments a {
color: black;
}
.post-comments ol li {
border-color: rgba(0, 0, 0, 0.2);
}
.post-comments ol li .comment-details {
color: #222222;
background: none repeat scroll 0 0 rgba(0, 0, 0, 0.2);
}
.post-comments ol li .comment-body {
background: white;
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,546 @@
/*
Document : colors_us
Created on : 16.05.2012, 11:56:08
Author : xwolf
Description:
Define corporate design colors for the theme.
Each pirate party in several countries use their own set of colors;
Therefor all color-settings are outsourced in files in
the form colors_LANG.css.
Settings in the color files will override settings in the
current basemods, which defines the default style (german colors).
This is the color file for USA.
Base color: #B127AF , rgba(153, 51, 153, 0.2);
Special text font: Bebas Neue
*/
@media screen, projection {
body {
background: #B127AF url("../images/int/bg-tags-us.png") -20% top fixed;
}
a {
color: #06C;
-webkit-tap-highlight-color: #2d7dc5;
}
a:visited {
color: #2d7dc5;
}
a:hover {
color: #111;
}
ins, mark {
background-color: #B127AF;
}
::selection {
background: #2d7dc5;
color: white;
}
::-moz-selection {
background: #2d7dc5;
color: white;
}
input, select, textarea {
background: white;
background: rgba(255, 255, 255, 0.6);
}
input:focus, input:active,
select:focus, select:active,
textarea:focus, textarea:active {
background: white;
}
button, input[type="submit"],
.post-edit-link {
background: #2d7dc5;
color: white;
border: 1px solid #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top: 1px solid #4e96d7;
border-bottom: 1px solid #1a4872;
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b); }
button:hover,
input[type="submit"]:hover,
.post-edit-link:hover {
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #1a4872);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
.skiplinks li a:focus,
.skiplinks li a:active {
background: #2d7dc5;
color: white;
}
.skiplinks li a:hover {
background: #B127AF;
color: black;
}
ul.socialmedia li a img {
border-color: #eee;
}
ul.socialmedia li a:hover img {
border-color: white;
}
ul.socialmedia li a:focus img {
border-color: #B127AF;
}
.sticker ul li {
border-color: transparent;
}
.sticker ul li a:hover,
.sticker ul li a:focus {
color: #1a4872;
}
.sticker ul li a .cicolor {
color: #B127AF;
}
.sticker ul li a:hover .cicolor,
.sticker ul li a:focus .cicolor {
color: #2d7dc5;
}
.sticker ul li a .shadow {
text-shadow: 1px 1px 1px #333;
}
.sticker li a img {
border-color: transparent;
}
.sticker li a:hover img,
.sticker li a:focus img {
border-color: #B127AF;
}
.header .newsletter .skin {
background: #f7f7f7;
background: rgba(255, 255, 255, 0.5);
}
.teaser .row {
background: #993399;
background: rgba(0, 0, 0, 0.3) -20% 0 fixed;
}
.teaser .first-teaser-widget-area {
background: #111;
}
.second-teaser-widget-area li {
background: #B127AF;
}
.second-teaser-widget-area li a {
color: white;
text-shadow: 0 0 0;
}
.second-teaser-widget-area li a div {
color: black;
text-shadow: 0 -1px 1px #552554;
}
.second-teaser-widget-area li a:focus,
.second-teaser-widget-area li a:hover {
background: #993399;
background: rgba(0, 0, 0, 0.5);
color: white;
}
.second-teaser-widget-area .textwidget {
background: #B127AF;
color: white;
text-shadow: 0 0 0;
}
.second-teaser-widget-area li.recentcomments {
color: white;
}
.teaserlinks ul li {
background-color: #B127AF;
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}
.teaserlinks ul li a {
color: white;
text-shadow: 0 -1px 1px #552554;
}
.teaserlinks ul li a:hover,
.teaserlinks ul li a:focus{
color: white;
background: none repeat scroll 0 0 #B127AF;
}
.teaserlinks ul li a span {
color: black;
text-shadow: 0 0 0;
}
.teaserlinks ul li a:hover span,
.teaserlinks ul li a:focus span {
color: black;
}
.content .row {
background: #B127AF;
background: rgba(153, 51, 153, 0.2);
}
.content .symbolbild .caption {
background: transparent;
background: rgba(0, 0, 0, 0.5);
color: white;
}
.content .symbolbild .aaarh {
background: transparent;
color: black;
}
.content-header-big {
background: url(../images/int/bg-tags-us.png);
}
.content-primary input[type="text"]:hover,
.content-primary textarea:hover,
.content-primary input[type="text"]:focus,
.content-primary textarea:focus {
border-color: black;
background-color: beige;
}
.content-primary .sprungmarken ol li a:hover {
background: #B127AF;
color: black;
}
.content-aside .newsletter {
background-color: #ffa500;
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}
.post .post-info .commentbubble a {
background: #B127AF;
color: black;
}
.post .post-info .cal-icon {
background: #eeeeee;
-moz-box-shadow: 1px 1px 2px #444444;
-webkit-box-shadow: 1px 1px 2px #444444;
box-shadow: 1px 1px 2px #444444;
}
.post .post-meta {
color: #222;
}
.post-comments ol li .reply a {
background: #2d7dc5;
color: white;
border-color: #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b);
}
.post-comments ol li .reply a:hover {
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #1a4872);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
.post-comments .respond span.required {
color: #B127AF;
}
.wp-caption p.wp-caption-text {
background: transparent;
background: rgba(0, 0, 0, 0.5);
color: white;
}
.gallery img {
border-color: #f1f1f1;
}
.gallery img:hover {
border-color: #B127AF;
}
.gallery-caption {
color: #888;
}
.first-startpage-widget-area a.all-articles {
background: #2d7dc5;
color: white;
border-color: #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top-color: #4e96d7;
border-bottom-color: #1a4872;
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b);
}
.first-startpage-widget-area a.all-articles:hover {
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #1a4872);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
.content-aside a {
color: white;
background: #993399;
}
.content-aside a:hover {
color: white;
background: rgba(255, 255, 255, 0.2);
}
.content-aside #steckbrief a {
background: transparent;
}
.content-aside #steckbrief a:hover {
background: transparent;
}
.content-aside table td,
.content-aside table th {
border-top-color: #B127AF;
}
.content-aside blockquote {
border: 0 solid;
background: #993399;
background: rgba(255, 255, 255, 0.2);
}
.content-aside .newsletter {
background-color: #B127AF;
}
.content-aside ul.menu {
background: #993399;
background: rgba(255, 255, 255, 0.2);
}
.content-aside ul.menu li a {
background: white;
color: #2d7dc5;
}
.content-aside ul.menu li.active a,
.content-aside ul.menu li a:hover,
.content-aside ul.menu li a:focus {
color: white;
background: #2d7dc5;
}
.content-aside ul.menu li.current_page_item > a,
.content-aside ul.menu li.current-menu-item > a {
background: #2d7dc5 url("../images/plus-left.gif") center left no-repeat;
color: white;
}
.content-aside p {
color: black;
}
.subcontent {
background: black url("../images/int/bg-tags_gray.jpg") -20% top fixed;
}
.subcontent .row {
background: rgba(0, 0, 0, 0.2);
color: #eeeeee;
}
.subcontent a {
background: black;
color: #2d7dc5;
}
.subcontent a:hover {
background: #2d7dc5;
color: white;
}
.footer {
background: black url("../images/int/bg-tags_gray.jpg") -20% top fixed;
overflow: hidden;
}
.footer .row {
background: rgba(0, 0, 0, 0.2);
color: #eeeeee;
}
.footer a {
background: black;
color: #2d7dc5;
}
.footer a:hover {
background: #2d7dc5;
color: white;
}
.content-aside .widget li a.rsswidget {
background: #993399;
background: rgba(0, 0, 0, 0.2);
}
.content-aside .widget li a.rsswidget:hover,
.content-aside .widget li a.rsswidget:focus {
background: #B127AF;
}
.content-aside .widget li .rssSummary {
color:#333333;
}
#ics-calendar-widget li {
color: black;
background: #993399;
background: rgba(255, 255, 255, 0.2);
}
#ics-calendar-widget-next,
#ics-calendar-widget-prev {
background: #2d7dc5;
color: white;
border-color: #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top-color: #4e96d7;
border-bottom-color: #1a4872;
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b); }
#ics-calendar-widget-next:hover,
#ics-calendar-widget-prev:hover {
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #1a4872);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
.ics-calendar-header a {
background: #2d7dc5;
color: white;
border-color: #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top-color: #4e96d7;
border-bottom-color: #1a4872;
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b); }
.ics-calendar-header a:hover {
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #1a4872);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #1a4872));
background-image: linear-gradient(top, #2d7dc5, #1a4872);
}
div.ics-calendar-holder tr.ics-calendar-days td {
background: #eeeeee;
border-bottom-color: gray; }
div.ics-calendar-holder .ics-calendar-table td .date-holder {
background: white;
}
div.ics-calendar-holder .ics-calendar-table td .old-date-holder {
background: white;
color: #999999;
}
div.ics-calendar-holder .ics-calendar-table td .ics-calendar-today {
background-color: #B127AF;
color: black;
}
div.ics-calendar-holder .ics-calendar-event {
background: #2d7dc5;
color: white;
}
.nav-top div.menu-header ul.menu li a:hover,
.nav-top div.menu-header ul.menu li a:focus {
color: #2d7dc5;
}
}
@media only screen and (max-width: 600px) {
.nav-top ul.menu li a {
background: #2d7dc5;
color: white;
border-color: #993399;
text-shadow: 0 -1px 0 #993399;
background-color: #B127AF;
}
.nav-top ul.menu li a:hover {
background: #24639b;
}
.nav-main ul.menu li a {
color: white;
border-color: #2d7dc5;
border-top-color: #4e96d7;
border-bottom-color: #1a4872;
background-color: #2d7dc5;
background-image: -moz-linear-gradient(top, #2d7dc5, #24639b);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2d7dc5), color-stop(1, #24639b));
background-image: linear-gradient(top, #2d7dc5, #24639b);
}
.nav-main ul.menu li a:hover {
background: #4e96d7;
}
.nav-main ul.menu li a:focus,
.nav-main ul.menu li a:hover {
background: #24639b;
color: black;
}
.post-comments {
background: url("../images/int/bg-tags-us.png") repeat fixed -20% top #B127AF;
}
.post-comments a {
color: black;
}
.post-comments ol li {
border-color: rgba(0, 0, 0, 0.2);
}
.post-comments ol li .comment-details {
color: #222222;
background: none repeat scroll 0 0 rgba(0, 0, 0, 0.2);
}
.post-comments ol li .comment-body {
background: white;
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,88 @@
/*
Color combination with white and transparent colors
*/
body, .header {
background-color: white !important;
background-image: url(../images/logo-background.png);;
background-attachment: fixed;
background-position: top left;
}
.logged-in .header {
/* background-position: 0 32px; */
}
.content-aside,
.content .row,
.teaser .row {
background: rgba(255,255,255,0.8);
}
.content-primary {
background: rgba(255,255,255,0.7);
}
.actionpage .content-primary {
background: rgba(255,255,255,0.5);
}
.teaserlinks ul li,
.content-aside .newsletter {
background: #ccc;
box-shadow:#000;
}
.sticker ul li a .cicolor {
color: navy;
}
.content-aside a:hover,.content-aside a:focus, .content-aside a:visited {
color: #000;
text-decoration: underline;
}
.teaserlinks ul li a,
.teaserlinks .symbol:before {
text-shadow: 0 -1px 1px #000000;
}
.teaserlinks ul li a:hover,
.teaserlinks ul li a:focus{
color: white;
background: none repeat scroll 0 0 #aaa;
}
.content-aside table {
background: #c96a00;
background: rgba(0, 0, 0, 0.2);
}
.content-aside table td,
.content-aside table th {
border-top: 1px solid #aaa;
}
.content-aside blockquote {
background: #c96a00;
background: rgba(0, 0, 0, 0.2);
}
.content-aside ul.menu {
background: #c96a00;
background: rgba(0, 0, 0, 0.2);
}
.content-aside ul.menu li a {
background: white;
color: #2d7dc5;
}
.content-aside ul.menu li.active a,
.content-aside ul.menu li a:hover,
.content-aside ul.menu li a:focus {
color: white;
background: #aaa;
}
.slide .caption h3 a:hover,
.content-aside .widget li:hover,
.content-aside .widget li:focus,
.content-aside .twitterwidget li:hover,
.content-aside .twitterwidget li:focus {
background: #aaa;
}

View File

@@ -0,0 +1 @@
body,.header{background-color:white!important;background-image:url(../images/logo-background.png);background-attachment:fixed;background-position:top left}.content-aside,.content .row,.teaser .row{background:rgba(255,255,255,0.8)}.content-primary{background:rgba(255,255,255,0.7)}.actionpage .content-primary{background:rgba(255,255,255,0.5)}.teaserlinks ul li,.content-aside .newsletter{background:#ccc;box-shadow:#000}.sticker ul li a .cicolor{color:navy}.content-aside a:hover,.content-aside a:focus,.content-aside a:visited{color:#000;text-decoration:underline}.teaserlinks ul li a,.teaserlinks .symbol:before{text-shadow:0 -1px 1px #000}.teaserlinks ul li a:hover,.teaserlinks ul li a:focus{color:white;background:none repeat scroll 0 0 #aaa}.content-aside table{background:#c96a00;background:rgba(0,0,0,0.2)}.content-aside table td,.content-aside table th{border-top:1px solid #aaa}.content-aside blockquote{background:#c96a00;background:rgba(0,0,0,0.2)}.content-aside ul.menu{background:#c96a00;background:rgba(0,0,0,0.2)}.content-aside ul.menu li a{background:white;color:#2d7dc5}.content-aside ul.menu li.active a,.content-aside ul.menu li a:hover,.content-aside ul.menu li a:focus{color:white;background:#aaa}.slide .caption h3 a:hover,.content-aside .widget li:hover,.content-aside .widget li:focus,.content-aside .twitterwidget li:hover,.content-aside .twitterwidget li:focus{background:#aaa}

View File

@@ -0,0 +1,69 @@
/*
* Document : custom-login
* Author : xwolf
* Description:
* Pirate Login
*/
html {
height: auto;
}
body.login {
padding: 20px 0;
color: #888;
background: #dddddd;
background: -webkit-linear-gradient(top, #dddddd 23%, #0e0e0e 100%);
background: linear-gradient(to bottom, #dddddd 23%, #0e0e0e 100%);
}
#login {
width: 100%;
max-width: 500px;
background: black url(../images/login-wallpaper.jpg) no-repeat;
background-size: 100%;
padding-top: 20px;
box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3);
}
.login h1 {
display: none;
}
.login h1 a {
background: transparent;
}
.login form {
background: rgba(0, 0, 0, 0.3);
margin: auto;
margin-top: 380px;
width: 260px;
border: none;
border-radius: 0;
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}
.login label {
color: white;
}
.login p#backtoblog,
.login p#nav {
background: none repeat fixed -20% 0 rgba(0, 0, 0, 0.1);
width: auto;
text-shadow: none;
margin: 0 auto;
padding-bottom: 1em;
text-align: center;
}
.login #nav a, .login #backtoblog a {
color: white !important;
}
@media screen and (max-width: 500px) {
body.login {
padding: 0;
}
}

View File

@@ -0,0 +1 @@
html{height:auto}body.login{padding:20px 0;color:#888;background:#ddd;background:-webkit-linear-gradient(top,#ddd 23%,#0e0e0e 100%);background:linear-gradient(to bottom,#ddd 23%,#0e0e0e 100%)}#login{width:100%;max-width:500px;background:black url(../images/login-wallpaper.jpg) no-repeat;background-size:100%;padding-top:20px;box-shadow:3px 3px 5px rgba(0,0,0,0.3)}.login h1{display:none}.login h1 a{background:transparent}.login form{background:rgba(0,0,0,0.3);margin:auto;margin-top:380px;width:260px;border:0;border-radius:0;box-shadow:1px 1px 2px rgba(0,0,0,0.5)}.login label{color:white}.login p#backtoblog,.login p#nav{background:none repeat fixed -20% 0 rgba(0,0,0,0.1);width:auto;text-shadow:none;margin:0 auto;padding-bottom:1em;text-align:center}.login #nav a,.login #backtoblog a{color:white!important}@media screen and (max-width:500px){body.login{padding:0}}

View File

@@ -0,0 +1,213 @@
/*
* Optional Hamburger Menu for small screen displays
*/
@media only screen and (max-width: 768px) {
.skiplinks li a {
position: absolute;
display: block;
top: -100px;
}
/* Header Navigation Menu Icon properties */
#header-menu-icon {
border-bottom: 1px solid #ddd;
border-top: 1px solid #ddd;
cursor: pointer;
display: block;
padding: 5px;
padding: 0.5rem;
text-align: center;
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -webkit-gradient(top, #2d7dc5, #24639b);
background-image: linear-gradient(to bottom, #2d7dc5, #24639b);
}
#header-menu-icon::after {
color: white;
content: '\2630';
font-weight: bold;
letter-spacing: 1px;
font-size: 1.5em;
right: 10px;
position: absolute;
}
#header-menu-icon:hover::after,
#header-menu-icon:active::after {
color: #ccc;
}
/* Hide Header Navigation Menu until it's toggled via script */
.header {
display: none;
}
/* Header Navigation Menu misc properties */
.nav-main {
clear: both;
color: #999;
font-family: sans-serif;
line-height: 1.5;
width: 100%;
z-index: 9999;
}
.nav-main ul.menu li a,
.nav-main .menu-item {
display: block;
text-align: left;
}
.nav-main a {
background-color: #f0f0f0;
border-bottom: 1px solid #ccc;
color: #222;
display: block;
padding: 18px 30px;
position: relative;
font-family: sans-serif;
text-transform: uppercase;
letter-spacing: 1px;
text-align: left;
}
.nav-main ul.menu li a {
padding: 18px 30px;
}
.nav-main .sub-menu {
display: block;
top: inherit;
position: relative;
}
.nav-main a:hover,
.nav-main ul.menu a:hover,
.nav-main ul.menu li a:hover,
.nav-main ul.menu li ul li a:hover,
.nav-main .sub-menu li a:hover,
.nav-main .sub-menu li ul li a:hover,
.nav-main .sub-menu a:hover {
background-color: #ddd;
color: #222;
letter-spacing: 1px;
}
.nav-main .sub-menu .current-menu-item > a {
color: #999;
}
.nav-main > .menu-item > a {
text-transform: uppercase;
}
.nav-main .sub-menu {
left: 0px;
opacity: 1;
width: 100%;
z-index: 99;
}
.nav-main .sub-menu a {
background-color: #fff;
border-bottom: 1px solid #ccc;
font-size: 1em;
padding: 12px 45x;
position: relative;
width: 100%;
}
.nav-main .sub-menu a::before {
content: "- ";
}
.nav-main .sub-menu li a,
.nav-main ul.menu li a,
.nav-main ul.menu li ul li a,
.nav-main ul.menu li ul li ul li a {
font-size: 1em;
border: none;
margin: 0;
}
.nav-main li,
.nav-main ul.menu li {
float: none;
border: none;
margin: 0;
}
.nav-main ul li ul {
display: inline-block;
}
.nav-main .sub-menu .sub-menu {
margin: 0;
}
.nav-main ul.menu li ul {
position: relative;
top: inherit;
left: inherit;
}
.nav-main .menu-item:hover {
position: static;
}
.nav-main .menu-item:hover > .sub-menu {
left: 0;
opacity: 1;
}
.nav-main hr {
display: none;
}
.nav-main ul.menu li:hover ul li ul,
.nav-main ul.menu li.hover ul li ul {
top: inherit;
}
.nav-main ul.menu li:hover ul,
.nav-main ul.menu li.hover ul,
.nav-main ul.menu li:hover ul li:hover ul,
.nav-main ul.menu li.hover ul li.hover ul,
.nav-main ul.menu li:hover ul li:hover ul li>ul,
.nav-main ul.menu li.hover ul li.hover ul li>ul,
.nav-main ul.menu li:hover ul li:hover ul li:hover ul,
.nav-main ul.menu li.hover ul li.hover ul li.hover ul,
.nav-main ul.menu li:hover ul li:hover ul li:hover ul li>ul,
.nav-main ul.menu li.hover ul li.hover ul li.hover ul li>ul,
.nav-main ul.menu li:hover ul li:hover ul li:hover ul li:hover ul,
.nav-main ul.menu li.hover ul li.hover ul li.hover ul li.hover ul,
.nav-main ul.menu li:hover ul li:hover ul li:hover ul li:hover ul li>ul,
.nav-main ul.menu li.hover ul li.hover ul li.hover ul li.hover ul li>ul{
top: inherit;
left: inherit;
width: 100%;
margin: 0;
padding: 0;
}
.nav-main ul.menu li:hover ul li a,
.nav-main ul.menu li.hover ul li a,
.nav-main ul.menu li:hover ul li:hover a,
.nav-main ul.menu li.hover ul li.hover a,
.nav-main ul.menu li li a,
.nav-main ul.menu li li li a,
.nav-main ul.menu li li li li a {
width: 100%;
outline: 0px;
text-align: left;
font-size: 1em;
margin-bottom: 0px;
padding: 18px 30px;
box-shadow: none;
background-color: #1a4862;
text-transform: uppercase;
letter-spacing: 1px;
}
}

View File

@@ -0,0 +1 @@
@media only screen and (max-width:768px){.skiplinks li a{position:absolute;display:block;top:-100px}#header-menu-icon{border-bottom:1px solid #ddd;border-top:1px solid #ddd;cursor:pointer;display:block;padding:5px;padding:.5rem;text-align:center;text-shadow:0 -1px 0 #112e48;background-color:#2d7dc5;background-image:-webkit-gradient(top,#2d7dc5,#24639b);background-image:linear-gradient(to bottom,#2d7dc5,#24639b)}#header-menu-icon::after{color:white;content:'\2630';font-weight:bold;letter-spacing:1px;font-size:1.5em;right:10px;position:absolute}#header-menu-icon:hover::after,#header-menu-icon:active::after{color:#ccc}.header{display:none}.nav-main{clear:both;color:#999;font-family:sans-serif;line-height:1.5;width:100%;z-index:9999}.nav-main ul.menu li a,.nav-main .menu-item{display:block;text-align:left}.nav-main a{background-color:#f0f0f0;border-bottom:1px solid #ccc;color:#222;display:block;padding:18px 30px;position:relative;font-family:sans-serif;text-transform:uppercase;letter-spacing:1px;text-align:left}.nav-main ul.menu li a{padding:18px 30px}.nav-main .sub-menu{display:block;top:inherit;position:relative}.nav-main a:hover,.nav-main ul.menu a:hover,.nav-main ul.menu li a:hover,.nav-main ul.menu li ul li a:hover,.nav-main .sub-menu li a:hover,.nav-main .sub-menu li ul li a:hover,.nav-main .sub-menu a:hover{background-color:#ddd;color:#222;letter-spacing:1px}.nav-main .sub-menu .current-menu-item>a{color:#999}.nav-main>.menu-item>a{text-transform:uppercase}.nav-main .sub-menu{left:0;opacity:1;width:100%;z-index:99}.nav-main .sub-menu a{background-color:#fff;border-bottom:1px solid #ccc;font-size:1em;padding:12px 45x;position:relative;width:100%}.nav-main .sub-menu a::before{content:"- "}.nav-main .sub-menu li a,.nav-main ul.menu li a,.nav-main ul.menu li ul li a,.nav-main ul.menu li ul li ul li a{font-size:1em;border:0;margin:0}.nav-main li,.nav-main ul.menu li{float:none;border:0;margin:0}.nav-main ul li ul{display:inline-block}.nav-main .sub-menu .sub-menu{margin:0}.nav-main ul.menu li ul{position:relative;top:inherit;left:inherit}.nav-main .menu-item:hover{position:static}.nav-main .menu-item:hover>.sub-menu{left:0;opacity:1}.nav-main hr{display:none}.nav-main ul.menu li:hover ul li ul,.nav-main ul.menu li.hover ul li ul{top:inherit}.nav-main ul.menu li:hover ul,.nav-main ul.menu li.hover ul,.nav-main ul.menu li:hover ul li:hover ul,.nav-main ul.menu li.hover ul li.hover ul,.nav-main ul.menu li:hover ul li:hover ul li>ul,.nav-main ul.menu li.hover ul li.hover ul li>ul,.nav-main ul.menu li:hover ul li:hover ul li:hover ul,.nav-main ul.menu li.hover ul li.hover ul li.hover ul,.nav-main ul.menu li:hover ul li:hover ul li:hover ul li>ul,.nav-main ul.menu li.hover ul li.hover ul li.hover ul li>ul,.nav-main ul.menu li:hover ul li:hover ul li:hover ul li:hover ul,.nav-main ul.menu li.hover ul li.hover ul li.hover ul li.hover ul,.nav-main ul.menu li:hover ul li:hover ul li:hover ul li:hover ul li>ul,.nav-main ul.menu li.hover ul li.hover ul li.hover ul li.hover ul li>ul{top:inherit;left:inherit;width:100%;margin:0;padding:0}.nav-main ul.menu li:hover ul li a,.nav-main ul.menu li.hover ul li a,.nav-main ul.menu li:hover ul li:hover a,.nav-main ul.menu li.hover ul li.hover a,.nav-main ul.menu li li a,.nav-main ul.menu li li li a,.nav-main ul.menu li li li li a{width:100%;outline:0;text-align:left;font-size:1em;margin-bottom:0;padding:18px 30px;box-shadow:none;background-color:#1a4862;text-transform:uppercase;letter-spacing:1px}}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,404 @@
/*
* Document : pluginsupport
* Created on : 26.12.2013, 18:32:44
* Author : xwolf
* Description:
* CSS styles for plugin support
*/
/* Contact Form 7 */
.wpcf7-mail-sent-ok {
padding: 20px;
border: 1px solid #109e06;
font-weight: bold;
}
/* ICS Kalender */
#ics-calendar-widget {
overflow: hidden;
margin-bottom: 5px;
}
#ics-calendar-widget li {
color: black;
background: #c96a00;
background: rgba(0, 0, 0, 0.1);
margin-bottom: 1px;
padding: 1px 5px;
list-style: none;
}
#ics-calendar-widget li strong {
margin-right: 4px;
display: block;
height: 100%;
float: left;
}
#ics-calendar-widget-next,
#ics-calendar-widget-prev {
padding: 5px 10px;
overflow: visible;
position: relative;
background: #2d7dc5;
color: white !important;
margin: 0 2px 2px 0;
border: 1px solid #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top: 1px solid #4e96d7;
border-bottom: 1px solid #1a4872;
display: inline-block;
border-radius: 2px;
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -webkit-linear-gradient(top, #2d7dc5, #24639b);
background-image: linear-gradient(to bottom, #2d7dc5, #24639b);
}
#ics-calendar-widget-next:hover,
#ics-calendar-widget-prev:hover {
background-color: #2d7dc5;
background-image: -webkit-linear-gradient(top, #2d7dc5, #1a4872);
background-image: linear-gradient(to bottom, #2d7dc5, #1a4872);
-webkit-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
}
#ics-calendar-widget-next:active,
#ics-calendar-widget-prev:active {
top: 1px;
}
#ics-calendar-widget-next {
float: right;
}
#ics-calendar-widget-prev {
float: left;
}
.ics-calendar-header {
padding: 0 0 20px 0;
text-align: left;
}
.ics-calendar-header a {
padding: 5px 10px;
overflow: visible;
position: relative;
background: #2d7dc5;
color: white;
margin: 0 2px 2px 0;
border: 1px solid #2d7dc5;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1);
border-top: 1px solid #4e96d7;
border-bottom: 1px solid #1a4872;
display: inline-block;
border-radius: 2px;
text-shadow: 0 -1px 0 #112e48;
background-color: #2d7dc5;
background-image: -webkit-linear-gradient(top, #2d7dc5, #24639b);
background-image: linear-gradient(to bottom, #2d7dc5, #24639b);
}
.ics-calendar-header a:hover {
background-color: #2d7dc5;
background-image: -webkit-linear-gradient(top, #2d7dc5, #1a4872);
background-image: linear-gradient(to bottom, #2d7dc5, #1a4872);
-webkit-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
}
.ics-calendar-header a:active {
top: 1px;
}
div.ics-calendar-holder tr.ics-calendar-days td {
background: #eeeeee;
font-weight: bold;
border-bottom: 1px solid gray;
}
div.ics-calendar-holder .ics-calendar-table td {
height: auto !important;
text-align: left !important;
}
div.ics-calendar-holder .ics-calendar-table td .date-holder, div.ics-calendar-holder .ics-calendar-table td .old-date-holder, div.ics-calendar-holder .ics-calendar-table td .date-holder p {
text-align: left;
height: auto !important;
}
div.ics-calendar-holder .ics-calendar-table td .date-holder {
background: white;
}
div.ics-calendar-holder .ics-calendar-table td .old-date-holder {
background: white;
color: #999999;
}
div.ics-calendar-holder .ics-calendar-table td .ics-calendar-today {
background-color: #ff8800;
color: black;
padding: 0 2px;
border-radius: 2px;
}
div.ics-calendar-holder .ics-calendar-event {
cursor: pointer;
width: 100%;
overflow: hidden;
white-space: nowrap;
font-size: 10px;
background: #2d7dc5;
padding: 0 2px;
color: white;
border-radius: 2px;
}
#ics-calendar-widget li:hover,
#ics-calendar-widget li:focus {
background: #ff8800;
}
/* Social Share Privacy */
.single .social_share_privacy ul {
margin: 0;
}
.single .social_share_privacy ul li {
list-style: none;
height: auto;
}
.single .social_share_privacy ul li .dummy_btn {
margin-left: 0;
}
.single .social_share_privacy ul li .switch {
background: white;
width: 0;
}
.single .social_share_privacy ul li.facebook, .single .social_share_privacy ul li.twitter {
width: 120px;
}
.single .social_share_privacy ul .help_info.icon {
background: #2d7dc5 url("../images/info.png") no-repeat center center scroll;
border: 2px solid;
width: 0;
height: 0;
padding: 6px 10px 8px 4px;
margin-top: 2px;
}
ul.social_share_privacy_area {
list-style: none outside none;
}
/* All in One Calendar */
.ai1ec_event .cal-icon {
display: none;
}
ul.ts-fab-list li {
margin-bottom: 0px;
display: inline-block;
}
ul.ts-fab-list li a {
height: auto;
}
.content-primary .ts-fab-tabs a.extern,
.content .ts-fab-tabs a.extern {
background: none;
padding-left: 0px;
}
/* Liveblog */
.liveblog-entry .liveblog-entry-text {
font-size: 1em;
line-height: 1em;
}
.liveblog-entry .liveblog-meta .liveblog-author-name {
color: #555555;
}
/* wp-liveticker */
#ticker hr {
border-top: none;
}
/* Kalender-Widget */
.content-aside ul li.calendar-widget {
padding: 0;
}
.content-aside ul li.calendar-widget .datetime {
height: 36px;
width:48px;
float: left;
background-color: #EEE;
color: #333;
box-shadow: 1px 1px 2px #444444;
padding-top: 6px;
padding-bottom: 6px;
}
.content-aside ul li.calendar-widget .date {
font-size: 20px;
font-family: FontPiratenkleiderHeadlines, Helvetica, Arial, sans-serif;
line-height: 12px;
display: block;
text-align: center;
}
.content-aside ul li.calendar-widget .time {
font-size: 10px;
line-height: 18px;
display: block;
text-align: center;
}
.content-aside ul li.calendar-widget .event {
padding-left: 55px;
}
.content-aside ul li.calendar-widget b {
font-size: 14px;
line-height: 14px;
font-weight: lighter;
letter-spacing: -1px;
}
.content-aside ul li.calendar-widget i {
color: #DDD;
font-size:13px;
font-style:normal;
}
.content-aside ul li.calendar-widget a {
background: transparent;
margin: 0;
padding: 0;
text-decoration: underline;
}
.content-aside ul li.calendar-widget a:hover {
color: #fff;
}
/* Wiki Embed */
.wiki-embed th, td {
text-align: inherit;
border-top: inherit;
}
.wiki-embed .vertical-navbox p br {
display: inline-block;
}
.wiki-embed .noprint {
display: none;
}
.wiki-embed .wikiembed-fragment p span {
display: inline;
margin-top: 0.5em;
}
.wiki-embed .wikiembed-fragment p span:before {
content: "a";
white-space: pre;
}
/* Kraehennest Player */
.post-entry .kraehennestplayer {
float: right;
width: 185px;
padding: 0px 5px;
overflow: visible;
position: relative;
background: none repeat scroll 0 0 #EEEEEE;
box-shadow: 1px 1px 2px #444444;
margin-bottom: 5px;
}
.post-entry .kraehennestplayer p,
.kraehennestplayer p {
margin-bottom: 0px;
}
.post-entry p.kraehennestplayerTitle {
background: url(../images/kraehennest-50.png) 5px 5px no-repeat;
padding-left: 60px;
min-height: 65px;
}
.kraehennestplayer object {
margin: 0 auto;
}
/* Support for shariff and diaspora */
.content-primary .wp-flattr-button a:before,
.content-primary #diaspora-button-container a:before {
background: none;
width: 0;
display: inline-block;
content: '';
height: auto;
margin: 0;
}
/* Support for disaspora */
#diaspora-button-container {
display: inline;
float: left;
margin: 0;
padding: 0;
}
#diaspora-button-box {
width: 120px;
height: 25px;
margin: 0 14px 0 0;
background-color: #777;
color: white;
padding: 5px 0 0;
border-radius: 0;
border: 0;
text-align: left;
}
#diaspora-button-box:hover {
background-color: #aaa;
color: white;
}
#diaspora-button-box font {
font-family: Arial,Helvetica,sans-serif;
font-size: 12px;
vertical-align: middle;
padding-left: 10px;
}
#diaspora-button-inner {
float: left;
}
/* Flattr Button */
p.wp-flattr-button {
width: 120px;
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,136 @@
@media print {
body {
font-size: 10pt;
padding: 0 5px;
}
nav,
.p3-searchform {
display: none;
}
h1,h2,h3,h4,h5,h6 {
page-break-after: avoid;
}
abbr[title]:after,
acronym[title]:after {
content: '(' attr(title) ')';
}
.content-primary .post .post-entry a[href]:after {
content: " <URL: "attr(href) ">";
color: #444;
background: inherit;
font-style: italic;
}
.post-info a[href]:after,
.post-meta a[href]:after,
.post-comments a[href]:after,
.post-title h2 a[href]:after,
.tagcloud a[href]:after,
.content .content-aside a[href]:after {
content: "";
}
.teaser,
.breadcrumbs,
.newsletter,
.nav-top,
.nav-main,
.flexslider,
.sticker,
.symbolbild,
.startpage-widget-area,
.switchon, .switchoff,
.content-primary .post-nav,
#socialmedia_iconbar,
#respond {
display: none;
}
.header {
background: white !important;
background-image: none !important;
border-bottom: 1px solid #000;
margin: 0;
padding: 10px;
position: relative;
display: block;
float: none;
height: auto;
width: auto;
}
.header .branding {
margin: 0;
padding: 0;
height: auto;
float: none;
display: block;
}
.row {
max-width: inherit;
margin: 0;
padding: 0;
display: inherit;
position: relative;
}
.content,
.content-primary,
.content-aside,
.content-aside .skin {
width: 100%;
margin: 0;
position: relative;
display: block;
float: none;
background-image: none;
background-color: white;
height: auto;
min-height: inherit;
}
.post {
position: relative;
}
.section {
padding: 0;
}
.post-comments ol li .reply {
display: none;
}
.footer {
color: #999;
text-align: center;
font-size: 10pt;
width: 100%;
border-top: 1px solid #CCC;
position: relative;
background-image: none;
background-color: #eee;
}
.footer .row {
background-image: none;
background-color: #eee;
}
.first-footer-widget-area,
.second-footer-widget-area {
display: block;
float: none;
width: 100%;
}
.footer a {
color: black;
background: #eee;
}
}

View File

@@ -0,0 +1 @@
@media print{body{font-size:10pt;padding:0 5px}nav,.p3-searchform{display:none}h1,h2,h3,h4,h5,h6{page-break-after:avoid}abbr[title]:after,acronym[title]:after{content:'(' attr(title) ')'}.content-primary .post .post-entry a[href]:after{content:" <URL: "attr(href) ">";color:#444;background:inherit;font-style:italic}.post-info a[href]:after,.post-meta a[href]:after,.post-comments a[href]:after,.post-title h2 a[href]:after,.tagcloud a[href]:after,.content .content-aside a[href]:after{content:""}.teaser,.breadcrumbs,.newsletter,.nav-top,.nav-main,.flexslider,.sticker,.symbolbild,.startpage-widget-area,.switchon,.switchoff,.content-primary .post-nav,#socialmedia_iconbar,#respond{display:none}.header{background:white!important;background-image:none!important;border-bottom:1px solid #000;margin:0;padding:10px;position:relative;display:block;float:none;height:auto;width:auto}.header .branding{margin:0;padding:0;height:auto;float:none;display:block}.row{max-width:inherit;margin:0;padding:0;display:inherit;position:relative}.content,.content-primary,.content-aside,.content-aside .skin{width:100%;margin:0;position:relative;display:block;float:none;background-image:none;background-color:white;height:auto;min-height:inherit}.post{position:relative}.section{padding:0}.post-comments ol li .reply{display:none}.footer{color:#999;text-align:center;font-size:10pt;width:100%;border-top:1px solid #CCC;position:relative;background-image:none;background-color:#eee}.footer .row{background-image:none;background-color:#eee}.first-footer-widget-area,.second-footer-widget-area{display:block;float:none;width:100%}.footer a{color:black;background:#eee}}

View File

@@ -0,0 +1,20 @@
/*
Document : sample
Created on : 13.06.2013, 16:46:30
Author : unrz59
Description:
Alternative css design. Sample file to be filled.
*/
@media only screen and (max-width: 430px) {
}
@media only screen and (min-width: 431px) {
}
@media screen, projection and (min-width: 601px) {
}
@media screen, projection and (min-width: 1021px) {
}

View File

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,50 @@
/*
Document : zeitleiste
Created on : 07.01.2015, 21:45:27
Author : Wiese
Description:
Purpose of the stylesheet follows.
*/
#zeitleiste #monate{display:block;width:45%}
#zeitleiste #legende{min-width:45%;display:block;z-index:250}
#zeitleiste #legende ul{list-style-type:none;margin:0;padding:5px;padding-left:15px}
#zeitleiste #legende li{border:none;padding:5px;display:block}
#zeitleiste #tlnav{max-width:60%;margin-left:120px}
#zeitleiste .aktion{background-color:#F5AC00}
#zeitleiste .demo{background-color:#E30E0D}
#zeitleiste .ini{background-color:#4F9ED3}
#zeitleiste .wahl{background-color:#E97213}
#zeitleiste #timeline{list-style:none;margin:30px 0 30px 120px;padding-left:30px;border-left:8px solid #FFD016;max-width:60%;}
#zeitleiste #timeline li{list-style:none;margin:40px 0;padding-left:10px;position:relative}
#zeitleiste #timeline p{margin:0 0 15px}
#zeitleiste .tldate{margin-top:-10px;top:50%;left:-150px;font-size:.8em;line-height:20px;position:absolute;color:#000}
#zeitleiste .tlcircle{margin-top:-10px;top:50%;left:-44px;width:10px;height:10px;background:#9c0;border:5px solid #fff;border-radius:50%;display:block;position:absolute}
#zeitleiste .tlcontent{max-height:20px;padding:20px 20px 0;border-color:transparent;border-width:2px;border-style:solid;position:relative}
#zeitleiste .tlcontent:before,#zeitleiste .tlcontent:after{content:"";width:0;height:0;border:solid transparent;position:absolute;pointer-events:none;right:100%}
#zeitleiste .tlcontent:before{border-right-color:inherit;border-width:20px;top:50%;margin-top:-20px}
#zeitleiste .tlcontent:after{border-right-color:inherit;border-width:17px;top:50%;margin-top:-17px}
#zeitleiste .tlcontent p{max-height:0;color:transparent;text-align:left;word-break:break-word;hyphens:auto;overflow:hidden}
#zeitleiste .tlcontent a{max-height:0;color:transparent;text-align:left;word-break:break-word;hyphens:auto;overflow:hidden}
#zeitleiste label{font-size:1em;position:absolute;z-index:1;cursor:pointer;top:20px;color:#fff;transition:transform .2s linear;-webkit-transition:transform .2s linear;-moz-transition: transform 0.2s linear; -o-transition: transform 0.2s linear;}
#zeitleiste .radio{display:none}
#zeitleiste .radio:checked + .relative label{cursor:auto;transform:translateX(22px);transition:transform .2s linear;-webkit-transition:transform .2s linear;-moz-transition: transform 0.2s linear;-o-transition: transform 0.2s linear;}
#zeitleiste .radio:checked + .relative .tlcircle{background:#fff;border-radius:50%;border-color:#9c0;transition:background .3s ease,border-color .3s ease;-webkit-transition:background .3s ease,border-color .3s ease;-moz-transition: background 0.3s ease, border-color 0.3s ease;-o-transition: background 0.3s ease, border-color 0.3s ease;}
#zeitleiste .radio:checked ~ .tlcontent{max-height:230px;margin-right:20px;transform:translateX(20px);transition:max-height .4s linear,border-color .5s linear,transform .2s linear;-webkit-transition:max-height .4s linear,border-color .5s linear,transform .2s linear;-moz-transition: max-height 0.4s linear, border-color 0.5s linear, transform 0.2s linear;
-o-transition: max-height 0.4s linear, border-color 0.5s linear, transform 0.2s linear;}
#zeitleiste .radio:checked ~ .tlcontent p{max-height:250px;color:#fff;transition:color .2s linear .2s;-webkit-transition:color .2s linear .2s;-moz-transition: color 0.2s linear 0.2s;-o-transition: color 0.2s linear 0.2s;}
#zeitleiste .radio:checked ~ .tlcontent a{max-height:220px;color:#272828;transition:color .2s linear .2s;-webkit-transition:color .2s linear .2s;-moz-transition: color 0.2s linear 0.2s;-o-transition: color 0.2s linear 0.2s;}
@media screen and (max-width: 767px){
#zeitleiste #tlnav{min-width:100%;margin-left:0}
#zeitleiste #timeline{margin-left:0;padding-left:0;border-left:none;max-width:none;}
#zeitleiste #timeline li{margin:50px 0;padding:none}
#zeitleiste #tlnav{max-width:none;}
#zeitleiste label{width:85%;font-size:1.1em;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;transform:translateX(18px)}
#zeitleiste .tlcontent{padding-top:15px;margin-right:0;border:none}
#zeitleiste .tlcontent:before,#zeitleiste .tlcontent:after{bottom:100%;border:none}
#zeitleiste .tlcontent:before{top:-16px;left:50px;margin-left:-17px;border:none}
#zeitleiste .tlcontent:after{top:-20px;left:50px;margin-left:-20px;border:none}
#zeitleiste .tlcontent p{font-size:.8em;line-height:1.4}
#zeitleiste .tlcircle,.tldate{display:none}}

View File

@@ -0,0 +1 @@
#zeitleiste #monate{display:block;width:45%}#zeitleiste #legende{min-width:45%;display:block;z-index:250}#zeitleiste #legende ul{list-style-type:none;margin:0;padding:5px;padding-left:15px}#zeitleiste #legende li{border:0;padding:5px;display:block}#zeitleiste #tlnav{max-width:60%;margin-left:120px}#zeitleiste .aktion{background-color:#f5ac00}#zeitleiste .demo{background-color:#e30e0d}#zeitleiste .ini{background-color:#4f9ed3}#zeitleiste .wahl{background-color:#e97213}#zeitleiste #timeline{list-style:none;margin:30px 0 30px 120px;padding-left:30px;border-left:8px solid #ffd016;max-width:60%}#zeitleiste #timeline li{list-style:none;margin:40px 0;padding-left:10px;position:relative}#zeitleiste #timeline p{margin:0 0 15px}#zeitleiste .tldate{margin-top:-10px;top:50%;left:-150px;font-size:.8em;line-height:20px;position:absolute;color:#000}#zeitleiste .tlcircle{margin-top:-10px;top:50%;left:-44px;width:10px;height:10px;background:#9c0;border:5px solid #fff;border-radius:50%;display:block;position:absolute}#zeitleiste .tlcontent{max-height:20px;padding:20px 20px 0;border-color:transparent;border-width:2px;border-style:solid;position:relative}#zeitleiste .tlcontent:before,#zeitleiste .tlcontent:after{content:"";width:0;height:0;border:solid transparent;position:absolute;pointer-events:none;right:100%}#zeitleiste .tlcontent:before{border-right-color:inherit;border-width:20px;top:50%;margin-top:-20px}#zeitleiste .tlcontent:after{border-right-color:inherit;border-width:17px;top:50%;margin-top:-17px}#zeitleiste .tlcontent p{max-height:0;color:transparent;text-align:left;word-break:break-word;hyphens:auto;overflow:hidden}#zeitleiste .tlcontent a{max-height:0;color:transparent;text-align:left;word-break:break-word;hyphens:auto;overflow:hidden}#zeitleiste label{font-size:1em;position:absolute;z-index:1;cursor:pointer;top:20px;color:#fff;transition:transform .2s linear;-webkit-transition:transform .2s linear;-moz-transition:transform .2s linear;-o-transition:transform .2s linear}#zeitleiste .radio{display:none}#zeitleiste .radio:checked+.relative label{cursor:auto;transform:translateX(22px);transition:transform .2s linear;-webkit-transition:transform .2s linear;-moz-transition:transform .2s linear;-o-transition:transform .2s linear}#zeitleiste .radio:checked+.relative .tlcircle{background:#fff;border-radius:50%;border-color:#9c0;transition:background .3s ease,border-color .3s ease;-webkit-transition:background .3s ease,border-color .3s ease;-moz-transition:background .3s ease,border-color .3s ease;-o-transition:background .3s ease,border-color .3s ease}#zeitleiste .radio:checked ~ .tlcontent{max-height:230px;margin-right:20px;transform:translateX(20px);transition:max-height .4s linear,border-color .5s linear,transform .2s linear;-webkit-transition:max-height .4s linear,border-color .5s linear,transform .2s linear;-moz-transition:max-height .4s linear,border-color .5s linear,transform .2s linear;-o-transition:max-height .4s linear,border-color .5s linear,transform .2s linear}#zeitleiste .radio:checked ~ .tlcontent p{max-height:250px;color:#fff;transition:color .2s linear .2s;-webkit-transition:color .2s linear .2s;-moz-transition:color .2s linear .2s;-o-transition:color .2s linear .2s}#zeitleiste .radio:checked ~ .tlcontent a{max-height:220px;color:#272828;transition:color .2s linear .2s;-webkit-transition:color .2s linear .2s;-moz-transition:color .2s linear .2s;-o-transition:color .2s linear .2s}@media screen and (max-width:767px){#zeitleiste #tlnav{min-width:100%;margin-left:0}#zeitleiste #timeline{margin-left:0;padding-left:0;border-left:none;max-width:none}#zeitleiste #timeline li{margin:50px 0;padding:none}#zeitleiste #tlnav{max-width:none}#zeitleiste label{width:85%;font-size:1.1em;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;transform:translateX(18px)}#zeitleiste .tlcontent{padding-top:15px;margin-right:0;border:0}#zeitleiste .tlcontent:before,#zeitleiste .tlcontent:after{bottom:100%;border:0}#zeitleiste .tlcontent:before{top:-16px;left:50px;margin-left:-17px;border:0}#zeitleiste .tlcontent:after{top:-20px;left:50px;margin-left:-20px;border:0}#zeitleiste .tlcontent p{font-size:.8em;line-height:1.4}#zeitleiste .tlcircle,.tldate{display:none}}

View File

@@ -0,0 +1,85 @@
<?php
/**
* If 'Default Events Template' is selected in Settings -> The Events Calendar -> Theme Settings -> Events Template,
* then this file loads the page template for all ECP views except for the individual
* event view. Generally, this setting should only be used if you want to manually
* specify all the shell HTML of your ECP pages in this template file. Use one of the other Theme
* Settings -> Events Template to automatically integrate views into your
* theme.
*
* You can customize this view by putting a replacement file of the same name (ecp-page-template.php) in the events/ directory of your theme.
*/
// Don't load directly
if ( !defined('ABSPATH') ) { die('-1'); }
?>
<?php get_header();
global $options;
?>
<?php tribe_events_before_html(); ?>
<div class="section content" id="main-content">
<div class="row">
<div class="content-primary">
<?php
$image_url = '';
$image_alt = '';
if (has_post_thumbnail()) {
$thumbid = get_post_thumbnail_id(get_the_ID());
$image_url_data = wp_get_attachment_image_src( $thumbid, 'full');
$image_url = $image_url_data[0];
$attribs = piratenkleider_get_image_attributs($thumbid);
} else {
if (($options['aktiv-platzhalterbilder-indexseiten']==1) && (isset($options['src-default-symbolbild']))) {
$image_url = $options['src-default-symbolbild'];
}
}
if (isset($image_url) && (strlen($image_url)>4)) {
if ($options['indexseitenbild-size']==1) {
echo '<div class="content-header-big">';
} else {
echo '<div class="content-header">';
}
?>
<h1 class="post-title"><span><?php tribe_events_title(); ?></span></h1>
<div class="symbolbild"><img src="<?php echo piratenkleider_make_link_relative($image_url); ?>" alt="">
<?php if (isset($attribs["credits"]) && (strlen($attribs["credits"])>1)) {
echo '<div class="caption">'.$attribs["credits"].'</div>';
} ?>
</div>
</div>
<?php } ?>
<div class="skin">
<?php if (!(isset($image_url) && (strlen($image_url)>4))) { ?>
<h1 class="post-title"><span><?php tribe_events_title(); ?></span></h1>
<?php } ?>
<?php echo tribe_get_current_template(); ?>
</div>
</div>
<div class="content-aside">
<div class="skin">
<h1 class="skip"><?php _e( 'More information', 'piratenkleider' ); ?></h1>
<?php
get_piratenkleider_seitenmenu($options['zeige_sidebarpagemenu'],$options['zeige_subpagesonly'],$options['seitenmenu_mode']);
get_sidebar();
?>
</div>
</div>
</div>
<?php get_piratenkleider_socialmediaicons(2); ?>
</div>
<?php
tribe_events_after_html();
get_footer();
?>

View File

@@ -0,0 +1,92 @@
<?php
/**
* If 'Default Events Template' is selected in Settings -> The Events Calendar -> Theme Settings -> Events Template,
* then this file loads the page template for all for the individual
* event view. Generally, this setting should only be used if you want to manually
* specify all the shell HTML of your ECP pages in this template file. Use one of the other Theme
* Settings -> Events Template to automatically integrate views into your
* theme.
*
* You can customize this view by putting a replacement file of the same name (ecp-single-template.php) in the events/ directory of your theme.
*/
// Don't load directly
if ( !defined('ABSPATH') ) { die('-1'); }
?>
<?php get_header();
global $options;
?>
<?php tribe_events_before_html() ?>
<div class="section content" id="main-content">
<div class="row">
<div class="content-primary">
<?php
$image_url = '';
$image_alt = '';
if (has_post_thumbnail()) {
$thumbid = get_post_thumbnail_id(get_the_ID());
$image_url_data = wp_get_attachment_image_src( $thumbid, 'full');
$image_url = $image_url_data[0];
$attribs = piratenkleider_get_image_attributs($thumbid);
} else {
if (($options['aktiv-platzhalterbilder-indexseiten']==1) && (isset($options['src-default-symbolbild']))) {
$image_url = $options['src-default-symbolbild'];
}
}
if (isset($image_url) && (strlen($image_url)>4)) {
if ($options['indexseitenbild-size']==1) {
echo '<div class="content-header-big">';
} else {
echo '<div class="content-header">';
}
?>
<h1 class="post-title"><span><?php tribe_events_title(); ?></span></h1>
<div class="symbolbild"><img src="<?php echo piratenkleider_make_link_relative($image_url); ?>" alt="">
<?php if (isset($attribs["credits"]) && (strlen($attribs["credits"])>1)) {
echo '<div class="caption">'.$attribs["credits"].'</div>';
} ?>
</div>
</div>
<?php } ?>
<div class="skin">
<?php if (!(isset($image_url) && (strlen($image_url)>4))) { ?>
<h1 class="post-title"><span><?php tribe_events_title(); ?></span></h1>
<?php } ?>
<div class="tribe-events-event widecolumn">
<?php the_post(); global $post; ?>
<div id="post-<?php the_ID() ?>" <?php post_class() ?>>
<h2 class="entry-title"><?php the_title() ?></h2>
<?php echo tribe_get_current_template(); ?>
<?php edit_post_link(__('Edit','piratenkleider'), '<span class="edit-link">', '</span>'); ?>
</div><!-- post -->
<?php if(tribe_get_option('showComments','no') == 'yes'){ comments_template();} ?>
</div>
</div>
</div>
<div class="content-aside">
<div class="skin">
<h1 class="skip"><?php _e( 'More information', 'piratenkleider' ); ?></h1>
<?php
get_piratenkleider_seitenmenu($options['zeige_sidebarpagemenu'],$options['zeige_subpagesonly'],$options['seitenmenu_mode']);
get_sidebar();
?>
</div>
</div>
</div>
<?php get_piratenkleider_socialmediaicons(2); ?>
</div>
<?php
tribe_events_after_html();
get_footer();
?>

View File

@@ -0,0 +1,2 @@
Special Template-overwrites in use of plugin 'the-events-calendar'.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,26 @@
<?php
global $options;
?>
</div> <!-- #content-body -->
<div class="section footer">
<nav role="navigation">
<ul class="nav skiplinks">
<li><a class="p3-skip" id="skiplink-top" href="#top"><?php _e( 'Back to top.', 'piratenkleider' ); ?></a></li>
<li><a class="p3-skip" id="skiplink-content-bottom" href="#main-content"><?php _e( 'Back to start of content.', 'piratenkleider' ); ?></a></li>
<?php if ( $options['aktiv-suche'] == "1" ){ ?>
<li><a class="p3-skip" id="skiplink-search-bottom" href="#searchform"><?php _e( 'Back to search form.', 'piratenkleider' ); ?></a></li>
<?php } ?>
</ul>
</nav>
</div>
<?php
wp_footer();
if (isset($options['html-eigene-anweisungen'])
&& strlen(trim($options['html-eigene-anweisungen'])) > 0) {
echo $options['html-eigene-anweisungen'];
} ?>
</body>
</html>

View File

@@ -0,0 +1,93 @@
<?php
global $options;
global $defaultoptions;
?>
</div> <!-- #content-body -->
<div class="section footer">
<div class="row">
<?php get_sidebar( 'footer' ); ?>
<?php get_sidebar( 'footer-secondary' ); ?>
</div>
<nav role="navigation">
<ul class="nav skiplinks">
<li><a class="p3-skip" id="skiplink-top" href="#top"><?php _e( 'Back to top.', 'piratenkleider' ); ?></a></li>
<li><a class="p3-skip" id="skiplink-content-bottom" href="#main-content"><?php _e( 'Back to start of content.', 'piratenkleider' ); ?></a></li>
<?php if ( $options['aktiv-suche'] == "1" ){ ?>
<li><a class="p3-skip" id="skiplink-search-bottom" href="#searchform"><?php _e( 'Back to search form.', 'piratenkleider' ); ?></a></li>
<?php } ?>
</ul>
</nav>
</div>
<?php
wp_footer();
$slideshowSpeed = $options['slider-slideshowSpeed'];
$animationDuration = $options['slider-animationDuration'];
$slideDirection = $options['slider-Direction'];
$animationType = $options['slider-animationType'];
if ( (($options['slider-aktiv']==1) && (is_home() || is_front_page()))
|| (is_category() && ($options['category-teaser']==1))
|| ( get_page_template_slug( ) )
|| ($options['slider-defaultwerbeplakate']==1) ) {
if ($slideshowSpeed <1000) {$slideshowSpeed=8000;}
if ($animationDuration <100) {$animationDuration=600;}
if (! isset($slideDirection)) $slideDirection = 'horizontal';
if (! isset($animationType)) $animationType = 'slide';
?>
<script src="<?php echo $defaultoptions['src-flexslider'] ?>"></script>
<script type="text/javascript">
/* <![CDATA[ */
jQuery(document).ready(function($) {
<?php if ($options['slider-aktiv']==1) { ?>
$('.flexslider').flexslider({
slideshowSpeed: <?php echo $slideshowSpeed ?>,
animationSpeed: <?php echo $animationDuration ?>,
direction: "<?php echo $slideDirection ?>",
animation: "<?php echo $animationType ?>",
pausePlay: true,
keyboard: true,
multipleKeyboard: true,
touch: true,
directionNav: false,
controlNav: true,
pauseText: "<?php _e('Stop','piratenkleider'); ?>",
playText: "<?php _e('Start','piratenkleider'); ?>",
});
<?php }
if ($options['slider-defaultwerbeplakate']==1) { ?>
var breite = $(window).width();
if (breite > 600) {
$('.slidersidebar').flexslider({
slideshowSpeed: <?php echo $slideshowSpeed ?>,
animationSpeed: <?php echo $animationDuration ?>,
animation: "fade",
pausePlay: true,
keyboard: true,
multipleKeyboard: true,
touch: true,
smoothHeight: true,
directionNav: true,
controlNav: false,
nextText: "<?php _e('Next','piratenkleider'); ?>",
prevText: "<?php _e('Back','piratenkleider'); ?>",
pauseText: "<?php _e('Stop','piratenkleider'); ?>",
playText: "<?php _e('Start','piratenkleider'); ?>",
});
}
<?php } ?>
});
/* ]]> */
</script>
<?php }
if (isset($options['html-eigene-anweisungen'])
&& strlen(trim($options['html-eigene-anweisungen'])) > 0) {
echo $options['html-eigene-anweisungen'];
} ?>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,90 @@
<?php
global $defaultoptions;
global $options;
?>
<!DOCTYPE html>
<!--[if IE 8 ]> <html <?php language_attributes(); ?> class="ie8"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html <?php echo piratenkleider_html_tag_schema(); ?> <?php language_attributes(); ?>> <!--<![endif]-->
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<?php wp_head();
$cssadd = '';
if (isset($options['css-eigene-anweisungen'])) {
$cssadd .= $options['css-eigene-anweisungen'];
$cssadd .= "\n";
}
if ((isset($cssadd)) && (strlen(trim($cssadd))>1)) {
echo "<style type=\"text/css\">\n";
echo $cssadd;
echo "</style>\n";
}
?>
</head>
<body <?php body_class(); ?>>
<nav role="navigation">
<ul id="top" class="nav skiplinks">
<li><a id="skiplink-nav" href="#nav"><?php _e( 'Jump to navigation.', 'piratenkleider' ); ?></a></li>
<li><a id="skiplink-content" href="#main-content"><?php _e( 'Jump to content.', 'piratenkleider' ); ?></a></li>
</ul>
</nav>
<header class="section header actionpage" role="banner">
<div class="row">
<div class="nav-top" role="navigation">
<h2 class="skip"><?php _e( 'Service-Navigation', 'piratenkleider' ); ?></h2>
<?php
get_piratenkleider_socialmediaicons(1);
if ( $options['aktiv-linkmenu'] == "1" ){
if ( has_nav_menu( 'top' ) ) {
wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'top' ) );
} else {
global $default_toplink_liste;
if (is_array($default_toplink_liste)) { ?>
<div class="menu-header">
<ul id="menu-topmenu" class="menu"> <?php
foreach ( $default_toplink_liste as $entry => $listdata ) {
$value = '';
$active = 0;
if (isset($options['toplinkliste'][$entry]['content'])) {
$value = $options['toplinkliste'][$entry]['content'];
} else {
$value = $default_toplink_liste[$entry]['content'];
}
if (isset($options['toplinkliste'][$entry]['active'])) {
$active = $options['toplinkliste'][$entry]['active'];
}
if (($active ==1) && ($value)) {
echo "\t\t\t";
echo '<li><a class="icon_'.$entry.'" href="'.$value.'">';
echo $listdata['name'].'</a></li>';
echo "\n";
}
} ?>
</ul>
</div>
<?php
}
}
} ?>
</div>
<div class="branding">
<?php if ( ! is_home() ) { ?>
<a href="<?php echo home_url( '/' ); ?>" title="<?php echo $defaultoptions['default_text_title_home_backlink']; ?>" rel="home" class="logo">
<?php } ?>
<h1><img src="<?php header_image(); ?>" alt="<?php bloginfo( 'name' ); ?>"></h1>
<?php
if ( ! is_home() ) { ?> </a> <?php }
if (strlen(trim(get_bloginfo( 'description' )))>1) { ?>
<p class="description slogan"><?php bloginfo( 'description' ); ?></p>
<?php } ?>
</div>
</div>
</header>
<div id="content-body">

View File

@@ -0,0 +1,155 @@
<!DOCTYPE html>
<!--[if IE 8 ]> <html <?php language_attributes(); ?> class="ie8"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html <?php echo piratenkleider_html_tag_schema(); ?> <?php language_attributes(); ?>> <!--<![endif]-->
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<?php wp_head();
global $defaultoptions;
global $options;
$cssadd = '';
if (isset($options['css-eigene-anweisungen'])) {
$cssadd .= $options['css-eigene-anweisungen'];
$cssadd .= "\n";
}
if ((isset($cssadd)) && (strlen(trim($cssadd))>1)) {
echo "<style type=\"text/css\">\n";
echo $cssadd;
echo "</style>\n";
} ?>
</head>
<body <?php body_class(); ?>>
<nav aria-label="Skiplinks">
<ul id="top" class="nav skiplinks">
<li><a id="skiplink-nav" href="#nav"><?php _e( 'Jump to navigation.', 'piratenkleider' ); ?></a></li>
<li><a id="skiplink-content" href="#main-content"><?php _e( 'Jump to content.', 'piratenkleider' ); ?></a></li>
<?php if ( $options['aktiv-suche'] == "1" ){ ?><li><a id="skiplink-search" href="#searchform"><?php _e( 'Jump to search form.', 'piratenkleider' ); ?></a></li><?php } ?>
</ul>
</nav>
<header class="section header">
<div class="row">
<div class="nav-top" role="navigation">
<h2 class="skip"><?php _e( 'Service-Navigation', 'piratenkleider' ); ?></h2>
<?php
get_piratenkleider_socialmediaicons(1);
if ( $options['aktiv-linkmenu'] == "1" ){
if ( has_nav_menu( 'top' ) ) {
wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'top' ) );
} else {
global $default_toplink_liste;
if (is_array($default_toplink_liste)) { ?>
<div class="menu-header">
<ul id="menu-topmenu" class="menu"><?php
echo "\n";
foreach ( $default_toplink_liste as $entry => $listdata ) {
$value = '';
$active = 0;
if ((isset($options['toplinkliste'])) &&
(isset($options['toplinkliste'][$entry]['content']))) {
$value = $options['toplinkliste'][$entry]['content'];
if (isset($options['toplinkliste'][$entry]['active'])) {
$active = $options['toplinkliste'][$entry]['active'];
}
} else {
$value = $default_toplink_liste[$entry]['content'];
$active = $default_toplink_liste[$entry]['active'];
}
if (($active ==1) && ($value)) {
echo "\t\t\t\t\t\t";
echo '<li><a class="icon_'.$entry.'" href="'.$value.'">';
echo $listdata['name'].'</a></li>';
echo "\n";
}
}
?>
</ul>
</div>
<?php
}
}
}
if ( $options['aktiv-suche'] == "1" ){ ?>
<div class="search-top">
<h2 class="skip"><?php _e("Search", 'piratenkleider'); ?></h2>
<form method="get" class="searchform" action="<?php echo home_url('','relative'); ?>/" role="search">
<label class="skip" for="s"><?php _e("Searching for", 'piratenkleider'); ?>:</label>
<input type="text" value="<?php the_search_query(); ?>" name="s" id="s" placeholder="<?php _e("Enter search term", 'piratenkleider'); ?>"
onfocus="if(this.value=='<?php _e("Enter search term", 'piratenkleider'); ?>')this.value='';" onblur="if(this.value=='')this.value='<?php _e("Enter search term", 'piratenkleider'); ?>';" />
<input type="submit" class="searchsubmit" value="<?php _e("Search", 'piratenkleider'); ?>" />
</form>
</div>
<?php } ?>
</div>
<div class="branding" role="banner" itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<?php if ( ! is_home() ) { ?>
<a itemprop="url" href="<?php echo home_url( '/' ); ?>" title="<?php echo $defaultoptions['default_text_title_home_backlink']; ?>" rel="home" class="logo">
<?php } ?>
<h1><img itemprop="logo" src="<?php echo wp_make_link_relative(get_header_image()); ?>" alt="<?php bloginfo( 'name' ); ?>"></h1>
<meta itemprop="name" content="<?php echo esc_attr(piratenkleider_tag_schema_org_name()); ?>" />
<?php if ( ! is_home() ) { ?>
</a>
<?php } if (strlen(trim(get_bloginfo( 'description' )))>1) { ?>
<p class="description slogan" itemprop="description"><?php echo esc_attr(piratenkleider_tag_schema_org_desc()); ?></p>
<?php } ?>
</div>
<div class="sticker" aria-hidden="true">
<?php if ( $options['defaultwerbesticker'] == "1" ){ ?>
<div class="skin">
<h2 class="skip"><?php _e( 'Sticker', 'piratenkleider' ); ?></h2>
<ul>
<?php if (isset($options['stickerlink1-content']) && (strlen($options['stickerlink1-content']) > 1)
&& isset($options['stickerlink1-url']) && (strlen($options['stickerlink1-url']) > 5) ) {
echo '<li><a href="'.$options['stickerlink1-url'].'">'.$options['stickerlink1-content'].'</a></li>';
} ?>
<?php if (isset($options['stickerlink2-content']) && (strlen($options['stickerlink2-content']) > 1)
&& isset($options['stickerlink2-url']) && (strlen($options['stickerlink2-url']) > 5) ) {
echo '<li><a href="'.$options['stickerlink2-url'].'">'.$options['stickerlink2-content'].'</a></li>';
} ?>
<?php if (isset($options['stickerlink3-content']) && (strlen($options['stickerlink3-content']) > 1)
&& isset($options['stickerlink3-url']) && (strlen($options['stickerlink3-url']) > 5) ) {
echo '<li><a href="'.$options['stickerlink3-url'].'">'.$options['stickerlink3-content'].'</a></li>';
} ?>
</ul>
</div>
<?php } ?>
</div>
<nav aria-label="<?php _e( 'Navigation', 'piratenkleider' ); ?>" class="nav-main" id="nav" role="navigation" itemscope itemtype="http://schema.org/SiteNavigationElement">
<h2 class="skip"><?php _e( 'Navigation', 'piratenkleider' ); ?></h2>
<?php
if ( has_nav_menu( 'primary' ) ) {
wp_nav_menu( array( 'theme_location' => 'primary', 'walker' => new Piratenkleider_Menu_Walker()) );
} else { ?>
<div class="menu-hauptmenu-container">
<ul id="menu-mainmenu" class="menu">
<?php wp_page_menu( array(
'menu_class' => '',
'sort_column' => 'menu_order, post_title',
'echo' => 1,
'show_home' => 1 ) ); ?>
</ul>
</div>
<?php } ?>
</nav>
</div>
</header>
<?php if ($options['zeige_breadcrump']==1) { ?>
<div id="content-body" class="with-breadcrumb">
<div class="section breadcrumbs">
<div class="row"><div class="skin">
<?php if (function_exists('piratenkleider_breadcrumb')) piratenkleider_breadcrumb();
?>
</div></div>
</div>
<?php } else { ?>
<div id="content-body">
<?php }

Some files were not shown because too many files have changed in this diff Show More