Version Description
2017-10-13 =
Fix for assets enqueue, loading them where are needed only.
Removes duplicates readme.md files.
Download this release
Release Info
Developer | codeinwp |
Plugin | FEEDZY RSS Feeds Lite |
Version | 3.2.4 |
Comparing to | |
See all releases |
Code changes from version 1.2.0 to 3.2.4
- CHANGELOG.md +152 -38
- LICENSE.txt +339 -0
- css/admin.css +0 -37
- css/bg.png +0 -0
- css/disable_controls.css +0 -29
- css/feedzy-rss-feeds.css +524 -0
- css/form.css +725 -0
- css/logo.png +0 -0
- css/metabox-settings.css +2026 -0
- css/security.png +0 -0
- customizer.php +0 -718
- feedzy-rss-feed.php +142 -0
- form/form.php +135 -0
- img/features-affiliate-ready.jpg +0 -0
- img/features-caching.jpg +0 -0
- img/features-feed-to-post.jpg +0 -0
- img/features-templates.jpg +0 -0
- img/features-widgets-support.jpg +0 -0
- img/feedzy-default-template.jpg +0 -0
- img/feedzy-default.jpg +0 -0
- img/feedzy-style1-template.jpg +0 -0
- img/feedzy-style2-template.jpg +0 -0
- img/feedzy.png +0 -0
- img/feedzy.svg +1 -0
- includes/abstract/feedzy-rss-feeds-admin-abstract.php +1022 -0
- includes/admin/feedzy-rss-feeds-admin.php +508 -0
- includes/admin/feedzy-rss-feeds-options.php +84 -0
- includes/admin/feedzy-rss-feeds-ui-lang.php +369 -0
- includes/admin/feedzy-rss-feeds-ui.php +146 -0
- includes/admin/feedzy-rss-feeds-upgrader.php +68 -0
- includes/admin/feedzy-wp-widget.php +244 -0
- includes/feedzy-rss-feeds-activator.php +49 -0
- includes/feedzy-rss-feeds-deactivator.php +36 -0
- includes/feedzy-rss-feeds-feed-tweaks.php +66 -0
- includes/feedzy-rss-feeds-i18n.php +49 -0
- includes/feedzy-rss-feeds-loader.php +155 -0
- includes/feedzy-rss-feeds.php +253 -0
- includes/layouts/css/upsell.css +236 -0
- includes/layouts/feedzy-upsell.php +47 -0
- includes/layouts/header.php +25 -0
- includes/layouts/settings.php +119 -0
- index.php +9 -0
- js/admin.js +0 -8
- js/feedzy-rss-feeds-ui-mce.js +96 -0
- languages/feedzy-rss-feeds-de_DE.mo +0 -0
- languages/feedzy-rss-feeds-de_DE.po +141 -0
- languages/feedzy-rss-feeds-es_ES.mo +0 -0
- languages/feedzy-rss-feeds-es_ES.po +163 -0
- languages/feedzy-rss-feeds-fr_FR.mo +0 -0
- languages/feedzy-rss-feeds-fr_FR.po +217 -0
- languages/feedzy-rss-feeds-ja.mo +0 -0
- languages/feedzy-rss-feeds-ja.po +189 -0
- languages/feedzy-rss-feeds-sr_RS.mo +0 -0
- languages/feedzy-rss-feeds-sr_RS.po +204 -0
- languages/feedzy-rss-feeds.pot +459 -0
- languages/login-customizer.pot +0 -263
- login-customizer.php +0 -52
- mailin.php +0 -868
- option-panel.php +0 -93
- readme.md +480 -27
- readme.txt +480 -27
- screenshot-1.png +0 -0
- screenshot-2.png +0 -0
- uninstall.php +24 -0
- vendor/autoload.php +1 -1
- vendor/autoload_52.php +1 -1
- vendor/composer/autoload_files.php +1 -1
- vendor/composer/autoload_real.php +5 -5
- vendor/composer/autoload_real_52.php +3 -3
CHANGELOG.md
CHANGED
@@ -1,59 +1,177 @@
|
|
1 |
|
2 |
-
###
|
3 |
**Changes:**
|
4 |
|
5 |
-
###
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
**Changes:**
|
7 |
-
|
8 |
-
|
9 |
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
|
28 |
-
|
29 |
|
30 |
-
|
31 |
|
32 |
|
33 |
-
|
34 |
|
|
|
35 |
|
36 |
-
|
37 |
|
38 |
-
|
39 |
|
|
|
40 |
|
41 |
-
* * added notification for security addon
|
42 |
-
* Improved code format
|
43 |
-
* Merge pull request #7 from cristian-ungureanu/development
|
44 |
|
45 |
-
|
46 |
|
|
|
47 |
|
48 |
-
|
49 |
|
50 |
-
Changes:
|
51 |
|
|
|
52 |
|
53 |
-
|
54 |
-
* Remove phpstorm files
|
55 |
-
* Merge branch 'development' of https://github.com/Codeinwp/login-customizer into development
|
56 |
|
|
|
57 |
|
58 |
-
### 1.0.2 - 23/06/2015
|
59 |
|
60 |
-
|
61 |
|
|
|
62 |
|
63 |
-
|
1 |
|
2 |
+
### v3.2.4 - 2017-10-16
|
3 |
**Changes:**
|
4 |
|
5 |
+
### v3.2.4 - 2017-10-13
|
6 |
+
**Changes:**
|
7 |
+
* Fix for assets enqueue, loading them where are needed only.
|
8 |
+
* Removes duplicates readme.md files.
|
9 |
+
|
10 |
+
### v3.2.1 - 2017-10-12
|
11 |
+
**Changes:**
|
12 |
+
* Adds global settings page.
|
13 |
+
* Adds User Agent and Proxy settings.
|
14 |
+
* Fix for some edge cases regarding images in the feed.
|
15 |
+
|
16 |
+
### v3.2.0 - 2017-08-17
|
17 |
+
**Changes:**
|
18 |
+
* Fix for image URL issue following some strange patterns.
|
19 |
+
* Added fallback for broken feed, now if one feed from the list is not working, others will will be used.
|
20 |
+
* Added shortcode parameter for feed cache control.
|
21 |
+
|
22 |
+
### v3.1.10 - 2017-08-03
|
23 |
+
**Changes:**
|
24 |
+
* Fixed typos in shortcode builder.
|
25 |
+
* Fixed image encoding issue.
|
26 |
+
|
27 |
+
### v3.1.9 - 2017-07-21
|
28 |
+
**Changes:**
|
29 |
+
* Fixed issue with fetching images containg GET parameters.
|
30 |
+
|
31 |
+
### v3.1.8 - 2017-07-17
|
32 |
+
**Changes:**
|
33 |
+
* Fixed image fetching issues.
|
34 |
+
* Fixed link opening behaviour
|
35 |
+
* Improved description ( Thanks to @chesio )
|
36 |
+
|
37 |
+
### v3.1.7 - 2017-06-21
|
38 |
+
**Changes:**
|
39 |
+
* Added new sdk logic.
|
40 |
+
* Improved compatibility with the pro version.
|
41 |
+
|
42 |
+
### v3.1.6 - 2017-06-02
|
43 |
+
**Changes:**
|
44 |
+
- Added sdk test.
|
45 |
+
|
46 |
+
### v3.1.5 - 2017-05-31
|
47 |
**Changes:**
|
48 |
+
- Fixed sdk notifications issues.
|
49 |
+
- Added compatibility with pro version.
|
50 |
|
51 |
+
### v3.1.4 - 2017-05-30
|
52 |
+
**Changes:**
|
53 |
+
- Added new doc for feedzy categories.
|
54 |
+
- Bump themeisle-sdk version.
|
55 |
+
|
56 |
+
### v3.1.3 - 2017-05-29
|
57 |
+
**Changes:**
|
58 |
+
- * Added new SDK features.
|
59 |
+
- * Fixed some edge case issues on image parsing.
|
60 |
+
|
61 |
+
### v3.1.2 - 2017-05-25
|
62 |
+
**Changes:**
|
63 |
+
- Release 3.1.2
|
64 |
+
|
65 |
+
### v3.1.1 - 2017-05-22
|
66 |
+
**Changes:**
|
67 |
+
- Replace alt in span with title
|
68 |
+
|
69 |
+
### v3.1.0 - 2017-05-17
|
70 |
+
**Changes:**
|
71 |
+
- Added feed to post compatibility
|
72 |
+
- Added categories to group urls
|
73 |
+
- Added filter for author url
|
74 |
+
- Fixed regex for jpeg images.
|
75 |
+
|
76 |
+
### v3.0.12 - 2017-04-24
|
77 |
+
**Changes:**
|
78 |
+
- Fixed svn commit.
|
79 |
+
|
80 |
+
### v3.0.11 - 2017-04-24
|
81 |
+
**Changes:**
|
82 |
+
- Changed deploy mechanism.
|
83 |
+
|
84 |
+
|
85 |
+
### 3.0.10 - 24/04/2017
|
86 |
+
|
87 |
+
**Changes:**
|
88 |
+
|
89 |
+
- Fixed wrong image regex.
|
90 |
+
- Fixed image compression.
|
91 |
+
- Added wraith.
|
92 |
+
|
93 |
+
|
94 |
+
### 3.0.9 - 21/02/2017
|
95 |
+
|
96 |
+
**Changes:**
|
97 |
+
|
98 |
+
- Fixed wrong empty title check.
|
99 |
+
|
100 |
+
|
101 |
+
### 3.0.8 - 20/02/2017
|
102 |
+
|
103 |
+
**Changes:**
|
104 |
+
|
105 |
+
- Added sizes param to feedzy_thumb_output.
|
106 |
+
|
107 |
+
- Dont show items with empty title.
|
108 |
+
|
109 |
+
|
110 |
+
### 3.0.7 - 03/02/2017
|
111 |
+
|
112 |
+
**Changes:**
|
113 |
+
|
114 |
+
- Fixed is_new when pro is active.
|
115 |
+
|
116 |
+
- Fixed redundant auto options.
|
117 |
+
|
118 |
+
- Fixed auto option in widget for image option.
|
119 |
+
|
120 |
+
|
121 |
+
### 3.0.6 - 27/01/2017
|
122 |
+
|
123 |
+
**Changes:**
|
124 |
+
|
125 |
+
-
|
126 |
+
|
127 |
+
- Added feedzy_feed_timestamp filter.
|
128 |
+
|
129 |
+
- Fixed issue with edge cases feed urls.
|
130 |
+
|
131 |
+
- Fixed error when using [] on string vars.
|
132 |
+
|
133 |
+
|
134 |
+
### 3.0.5 - 13/01/2017
|
135 |
+
|
136 |
+
**Changes:**
|
137 |
+
|
138 |
+
- Fixed issue with google news feeds
|
139 |
+
|
140 |
+
|
141 |
+
### 3.0.4 - 11/01/2017
|
142 |
|
143 |
+
**Changes:**
|
144 |
|
145 |
+
- Release 3.0.4
|
146 |
|
147 |
|
148 |
+
### 3.0.3 - 10/01/2017
|
149 |
|
150 |
+
**Changes:**
|
151 |
|
152 |
+
- Added compatibility with the new pro options
|
153 |
|
154 |
+
- Added new documentation help
|
155 |
|
156 |
+
- Added legacy filters and functions
|
157 |
|
|
|
|
|
|
|
158 |
|
159 |
+
### 3.0.2 - 06/01/2017
|
160 |
|
161 |
+
**Changes:**
|
162 |
|
163 |
+
- Added default image class back
|
164 |
|
|
|
165 |
|
166 |
+
### 3.0.1 - 05/01/2017
|
167 |
|
168 |
+
**Changes:**
|
|
|
|
|
169 |
|
170 |
+
- Fixed html markup error
|
171 |
|
|
|
172 |
|
173 |
+
### 3.0.0 - 03/01/2017
|
174 |
|
175 |
+
**Changes:**
|
176 |
|
177 |
+
- Release 3.0.0 version
|
LICENSE.txt
ADDED
@@ -0,0 +1,339 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
GNU GENERAL PUBLIC LICENSE
|
2 |
+
Version 2, June 1991
|
3 |
+
|
4 |
+
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
5 |
+
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
6 |
+
Everyone is permitted to copy and distribute verbatim copies
|
7 |
+
of this license document, but changing it is not allowed.
|
8 |
+
|
9 |
+
Preamble
|
10 |
+
|
11 |
+
The licenses for most software are designed to take away your
|
12 |
+
freedom to share and change it. By contrast, the GNU General Public
|
13 |
+
License is intended to guarantee your freedom to share and change free
|
14 |
+
software--to make sure the software is free for all its users. This
|
15 |
+
General Public License applies to most of the Free Software
|
16 |
+
Foundation's software and to any other program whose authors commit to
|
17 |
+
using it. (Some other Free Software Foundation software is covered by
|
18 |
+
the GNU Lesser General Public License instead.) You can apply it to
|
19 |
+
your programs, too.
|
20 |
+
|
21 |
+
When we speak of free software, we are referring to freedom, not
|
22 |
+
price. Our General Public Licenses are designed to make sure that you
|
23 |
+
have the freedom to distribute copies of free software (and charge for
|
24 |
+
this service if you wish), that you receive source code or can get it
|
25 |
+
if you want it, that you can change the software or use pieces of it
|
26 |
+
in new free programs; and that you know you can do these things.
|
27 |
+
|
28 |
+
To protect your rights, we need to make restrictions that forbid
|
29 |
+
anyone to deny you these rights or to ask you to surrender the rights.
|
30 |
+
These restrictions translate to certain responsibilities for you if you
|
31 |
+
distribute copies of the software, or if you modify it.
|
32 |
+
|
33 |
+
For example, if you distribute copies of such a program, whether
|
34 |
+
gratis or for a fee, you must give the recipients all the rights that
|
35 |
+
you have. You must make sure that they, too, receive or can get the
|
36 |
+
source code. And you must show them these terms so they know their
|
37 |
+
rights.
|
38 |
+
|
39 |
+
We protect your rights with two steps: (1) copyright the software, and
|
40 |
+
(2) offer you this license which gives you legal permission to copy,
|
41 |
+
distribute and/or modify the software.
|
42 |
+
|
43 |
+
Also, for each author's protection and ours, we want to make certain
|
44 |
+
that everyone understands that there is no warranty for this free
|
45 |
+
software. If the software is modified by someone else and passed on, we
|
46 |
+
want its recipients to know that what they have is not the original, so
|
47 |
+
that any problems introduced by others will not reflect on the original
|
48 |
+
authors' reputations.
|
49 |
+
|
50 |
+
Finally, any free program is threatened constantly by software
|
51 |
+
patents. We wish to avoid the danger that redistributors of a free
|
52 |
+
program will individually obtain patent licenses, in effect making the
|
53 |
+
program proprietary. To prevent this, we have made it clear that any
|
54 |
+
patent must be licensed for everyone's free use or not licensed at all.
|
55 |
+
|
56 |
+
The precise terms and conditions for copying, distribution and
|
57 |
+
modification follow.
|
58 |
+
|
59 |
+
GNU GENERAL PUBLIC LICENSE
|
60 |
+
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
61 |
+
|
62 |
+
0. This License applies to any program or other work which contains
|
63 |
+
a notice placed by the copyright holder saying it may be distributed
|
64 |
+
under the terms of this General Public License. The "Program", below,
|
65 |
+
refers to any such program or work, and a "work based on the Program"
|
66 |
+
means either the Program or any derivative work under copyright law:
|
67 |
+
that is to say, a work containing the Program or a portion of it,
|
68 |
+
either verbatim or with modifications and/or translated into another
|
69 |
+
language. (Hereinafter, translation is included without limitation in
|
70 |
+
the term "modification".) Each licensee is addressed as "you".
|
71 |
+
|
72 |
+
Activities other than copying, distribution and modification are not
|
73 |
+
covered by this License; they are outside its scope. The act of
|
74 |
+
running the Program is not restricted, and the output from the Program
|
75 |
+
is covered only if its contents constitute a work based on the
|
76 |
+
Program (independent of having been made by running the Program).
|
77 |
+
Whether that is true depends on what the Program does.
|
78 |
+
|
79 |
+
1. You may copy and distribute verbatim copies of the Program's
|
80 |
+
source code as you receive it, in any medium, provided that you
|
81 |
+
conspicuously and appropriately publish on each copy an appropriate
|
82 |
+
copyright notice and disclaimer of warranty; keep intact all the
|
83 |
+
notices that refer to this License and to the absence of any warranty;
|
84 |
+
and give any other recipients of the Program a copy of this License
|
85 |
+
along with the Program.
|
86 |
+
|
87 |
+
You may charge a fee for the physical act of transferring a copy, and
|
88 |
+
you may at your option offer warranty protection in exchange for a fee.
|
89 |
+
|
90 |
+
2. You may modify your copy or copies of the Program or any portion
|
91 |
+
of it, thus forming a work based on the Program, and copy and
|
92 |
+
distribute such modifications or work under the terms of Section 1
|
93 |
+
above, provided that you also meet all of these conditions:
|
94 |
+
|
95 |
+
a) You must cause the modified files to carry prominent notices
|
96 |
+
stating that you changed the files and the date of any change.
|
97 |
+
|
98 |
+
b) You must cause any work that you distribute or publish, that in
|
99 |
+
whole or in part contains or is derived from the Program or any
|
100 |
+
part thereof, to be licensed as a whole at no charge to all third
|
101 |
+
parties under the terms of this License.
|
102 |
+
|
103 |
+
c) If the modified program normally reads commands interactively
|
104 |
+
when run, you must cause it, when started running for such
|
105 |
+
interactive use in the most ordinary way, to print or display an
|
106 |
+
announcement including an appropriate copyright notice and a
|
107 |
+
notice that there is no warranty (or else, saying that you provide
|
108 |
+
a warranty) and that users may redistribute the program under
|
109 |
+
these conditions, and telling the user how to view a copy of this
|
110 |
+
License. (Exception: if the Program itself is interactive but
|
111 |
+
does not normally print such an announcement, your work based on
|
112 |
+
the Program is not required to print an announcement.)
|
113 |
+
|
114 |
+
These requirements apply to the modified work as a whole. If
|
115 |
+
identifiable sections of that work are not derived from the Program,
|
116 |
+
and can be reasonably considered independent and separate works in
|
117 |
+
themselves, then this License, and its terms, do not apply to those
|
118 |
+
sections when you distribute them as separate works. But when you
|
119 |
+
distribute the same sections as part of a whole which is a work based
|
120 |
+
on the Program, the distribution of the whole must be on the terms of
|
121 |
+
this License, whose permissions for other licensees extend to the
|
122 |
+
entire whole, and thus to each and every part regardless of who wrote it.
|
123 |
+
|
124 |
+
Thus, it is not the intent of this section to claim rights or contest
|
125 |
+
your rights to work written entirely by you; rather, the intent is to
|
126 |
+
exercise the right to control the distribution of derivative or
|
127 |
+
collective works based on the Program.
|
128 |
+
|
129 |
+
In addition, mere aggregation of another work not based on the Program
|
130 |
+
with the Program (or with a work based on the Program) on a volume of
|
131 |
+
a storage or distribution medium does not bring the other work under
|
132 |
+
the scope of this License.
|
133 |
+
|
134 |
+
3. You may copy and distribute the Program (or a work based on it,
|
135 |
+
under Section 2) in object code or executable form under the terms of
|
136 |
+
Sections 1 and 2 above provided that you also do one of the following:
|
137 |
+
|
138 |
+
a) Accompany it with the complete corresponding machine-readable
|
139 |
+
source code, which must be distributed under the terms of Sections
|
140 |
+
1 and 2 above on a medium customarily used for software interchange; or,
|
141 |
+
|
142 |
+
b) Accompany it with a written offer, valid for at least three
|
143 |
+
years, to give any third party, for a charge no more than your
|
144 |
+
cost of physically performing source distribution, a complete
|
145 |
+
machine-readable copy of the corresponding source code, to be
|
146 |
+
distributed under the terms of Sections 1 and 2 above on a medium
|
147 |
+
customarily used for software interchange; or,
|
148 |
+
|
149 |
+
c) Accompany it with the information you received as to the offer
|
150 |
+
to distribute corresponding source code. (This alternative is
|
151 |
+
allowed only for noncommercial distribution and only if you
|
152 |
+
received the program in object code or executable form with such
|
153 |
+
an offer, in accord with Subsection b above.)
|
154 |
+
|
155 |
+
The source code for a work means the preferred form of the work for
|
156 |
+
making modifications to it. For an executable work, complete source
|
157 |
+
code means all the source code for all modules it contains, plus any
|
158 |
+
associated interface definition files, plus the scripts used to
|
159 |
+
control compilation and installation of the executable. However, as a
|
160 |
+
special exception, the source code distributed need not include
|
161 |
+
anything that is normally distributed (in either source or binary
|
162 |
+
form) with the major components (compiler, kernel, and so on) of the
|
163 |
+
operating system on which the executable runs, unless that component
|
164 |
+
itself accompanies the executable.
|
165 |
+
|
166 |
+
If distribution of executable or object code is made by offering
|
167 |
+
access to copy from a designated place, then offering equivalent
|
168 |
+
access to copy the source code from the same place counts as
|
169 |
+
distribution of the source code, even though third parties are not
|
170 |
+
compelled to copy the source along with the object code.
|
171 |
+
|
172 |
+
4. You may not copy, modify, sublicense, or distribute the Program
|
173 |
+
except as expressly provided under this License. Any attempt
|
174 |
+
otherwise to copy, modify, sublicense or distribute the Program is
|
175 |
+
void, and will automatically terminate your rights under this License.
|
176 |
+
However, parties who have received copies, or rights, from you under
|
177 |
+
this License will not have their licenses terminated so long as such
|
178 |
+
parties remain in full compliance.
|
179 |
+
|
180 |
+
5. You are not required to accept this License, since you have not
|
181 |
+
signed it. However, nothing else grants you permission to modify or
|
182 |
+
distribute the Program or its derivative works. These actions are
|
183 |
+
prohibited by law if you do not accept this License. Therefore, by
|
184 |
+
modifying or distributing the Program (or any work based on the
|
185 |
+
Program), you indicate your acceptance of this License to do so, and
|
186 |
+
all its terms and conditions for copying, distributing or modifying
|
187 |
+
the Program or works based on it.
|
188 |
+
|
189 |
+
6. Each time you redistribute the Program (or any work based on the
|
190 |
+
Program), the recipient automatically receives a license from the
|
191 |
+
original licensor to copy, distribute or modify the Program subject to
|
192 |
+
these terms and conditions. You may not impose any further
|
193 |
+
restrictions on the recipients' exercise of the rights granted herein.
|
194 |
+
You are not responsible for enforcing compliance by third parties to
|
195 |
+
this License.
|
196 |
+
|
197 |
+
7. If, as a consequence of a court judgment or allegation of patent
|
198 |
+
infringement or for any other reason (not limited to patent issues),
|
199 |
+
conditions are imposed on you (whether by court order, agreement or
|
200 |
+
otherwise) that contradict the conditions of this License, they do not
|
201 |
+
excuse you from the conditions of this License. If you cannot
|
202 |
+
distribute so as to satisfy simultaneously your obligations under this
|
203 |
+
License and any other pertinent obligations, then as a consequence you
|
204 |
+
may not distribute the Program at all. For example, if a patent
|
205 |
+
license would not permit royalty-free redistribution of the Program by
|
206 |
+
all those who receive copies directly or indirectly through you, then
|
207 |
+
the only way you could satisfy both it and this License would be to
|
208 |
+
refrain entirely from distribution of the Program.
|
209 |
+
|
210 |
+
If any portion of this section is held invalid or unenforceable under
|
211 |
+
any particular circumstance, the balance of the section is intended to
|
212 |
+
apply and the section as a whole is intended to apply in other
|
213 |
+
circumstances.
|
214 |
+
|
215 |
+
It is not the purpose of this section to induce you to infringe any
|
216 |
+
patents or other property right claims or to contest validity of any
|
217 |
+
such claims; this section has the sole purpose of protecting the
|
218 |
+
integrity of the free software distribution system, which is
|
219 |
+
implemented by public license practices. Many people have made
|
220 |
+
generous contributions to the wide range of software distributed
|
221 |
+
through that system in reliance on consistent application of that
|
222 |
+
system; it is up to the author/donor to decide if he or she is willing
|
223 |
+
to distribute software through any other system and a licensee cannot
|
224 |
+
impose that choice.
|
225 |
+
|
226 |
+
This section is intended to make thoroughly clear what is believed to
|
227 |
+
be a consequence of the rest of this License.
|
228 |
+
|
229 |
+
8. If the distribution and/or use of the Program is restricted in
|
230 |
+
certain countries either by patents or by copyrighted interfaces, the
|
231 |
+
original copyright holder who places the Program under this License
|
232 |
+
may add an explicit geographical distribution limitation excluding
|
233 |
+
those countries, so that distribution is permitted only in or among
|
234 |
+
countries not thus excluded. In such case, this License incorporates
|
235 |
+
the limitation as if written in the body of this License.
|
236 |
+
|
237 |
+
9. The Free Software Foundation may publish revised and/or new versions
|
238 |
+
of the General Public License from time to time. Such new versions will
|
239 |
+
be similar in spirit to the present version, but may differ in detail to
|
240 |
+
address new problems or concerns.
|
241 |
+
|
242 |
+
Each version is given a distinguishing version number. If the Program
|
243 |
+
specifies a version number of this License which applies to it and "any
|
244 |
+
later version", you have the option of following the terms and conditions
|
245 |
+
either of that version or of any later version published by the Free
|
246 |
+
Software Foundation. If the Program does not specify a version number of
|
247 |
+
this License, you may choose any version ever published by the Free Software
|
248 |
+
Foundation.
|
249 |
+
|
250 |
+
10. If you wish to incorporate parts of the Program into other free
|
251 |
+
programs whose distribution conditions are different, write to the author
|
252 |
+
to ask for permission. For software which is copyrighted by the Free
|
253 |
+
Software Foundation, write to the Free Software Foundation; we sometimes
|
254 |
+
make exceptions for this. Our decision will be guided by the two goals
|
255 |
+
of preserving the free status of all derivatives of our free software and
|
256 |
+
of promoting the sharing and reuse of software generally.
|
257 |
+
|
258 |
+
NO WARRANTY
|
259 |
+
|
260 |
+
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
261 |
+
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
262 |
+
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
263 |
+
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
264 |
+
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
265 |
+
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
266 |
+
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
267 |
+
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
268 |
+
REPAIR OR CORRECTION.
|
269 |
+
|
270 |
+
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
271 |
+
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
272 |
+
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
273 |
+
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
274 |
+
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
275 |
+
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
276 |
+
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
277 |
+
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
278 |
+
POSSIBILITY OF SUCH DAMAGES.
|
279 |
+
|
280 |
+
END OF TERMS AND CONDITIONS
|
281 |
+
|
282 |
+
How to Apply These Terms to Your New Programs
|
283 |
+
|
284 |
+
If you develop a new program, and you want it to be of the greatest
|
285 |
+
possible use to the public, the best way to achieve this is to make it
|
286 |
+
free software which everyone can redistribute and change under these terms.
|
287 |
+
|
288 |
+
To do so, attach the following notices to the program. It is safest
|
289 |
+
to attach them to the start of each source file to most effectively
|
290 |
+
convey the exclusion of warranty; and each file should have at least
|
291 |
+
the "copyright" line and a pointer to where the full notice is found.
|
292 |
+
|
293 |
+
<one line to give the program's name and a brief idea of what it does.>
|
294 |
+
Copyright (C) <year> <name of author>
|
295 |
+
|
296 |
+
This program is free software; you can redistribute it and/or modify
|
297 |
+
it under the terms of the GNU General Public License as published by
|
298 |
+
the Free Software Foundation; either version 2 of the License, or
|
299 |
+
(at your option) any later version.
|
300 |
+
|
301 |
+
This program is distributed in the hope that it will be useful,
|
302 |
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
303 |
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
304 |
+
GNU General Public License for more details.
|
305 |
+
|
306 |
+
You should have received a copy of the GNU General Public License along
|
307 |
+
with this program; if not, write to the Free Software Foundation, Inc.,
|
308 |
+
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
309 |
+
|
310 |
+
Also add information on how to contact you by electronic and paper mail.
|
311 |
+
|
312 |
+
If the program is interactive, make it output a short notice like this
|
313 |
+
when it starts in an interactive mode:
|
314 |
+
|
315 |
+
Gnomovision version 69, Copyright (C) year name of author
|
316 |
+
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
317 |
+
This is free software, and you are welcome to redistribute it
|
318 |
+
under certain conditions; type `show c' for details.
|
319 |
+
|
320 |
+
The hypothetical commands `show w' and `show c' should show the appropriate
|
321 |
+
parts of the General Public License. Of course, the commands you use may
|
322 |
+
be called something other than `show w' and `show c'; they could even be
|
323 |
+
mouse-clicks or menu items--whatever suits your program.
|
324 |
+
|
325 |
+
You should also get your employer (if you work as a programmer) or your
|
326 |
+
school, if any, to sign a "copyright disclaimer" for the program, if
|
327 |
+
necessary. Here is a sample; alter the names:
|
328 |
+
|
329 |
+
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
330 |
+
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
331 |
+
|
332 |
+
<signature of Ty Coon>, 1 April 1989
|
333 |
+
Ty Coon, President of Vice
|
334 |
+
|
335 |
+
This General Public License does not permit incorporating your program into
|
336 |
+
proprietary programs. If your program is a subroutine library, you may
|
337 |
+
consider it more useful to permit linking proprietary applications with the
|
338 |
+
library. If this is what you want to do, use the GNU Lesser General
|
339 |
+
Public License instead of this License.
|
css/admin.css
DELETED
@@ -1,37 +0,0 @@
|
|
1 |
-
.logincust-success {
|
2 |
-
border: 2px solid #398f14;
|
3 |
-
}
|
4 |
-
|
5 |
-
.appearance_page_logincust_options #wpcontent #wrap h3,
|
6 |
-
.appearance_page_logincust_options #wpcontent #wrap h2,
|
7 |
-
.appearance_page_logincust_options #wpcontent #wrap a,
|
8 |
-
.appearance_page_logincust_options #wpcontent #wrap {
|
9 |
-
color: #777;
|
10 |
-
}
|
11 |
-
|
12 |
-
#logincust-logo {
|
13 |
-
position: absolute;
|
14 |
-
right: 13%;
|
15 |
-
width: 123px;
|
16 |
-
height: 85px;
|
17 |
-
background: url("<?php echo LOGINCUST_FREE_URL; ?>/css/logo.png");
|
18 |
-
background-repeat: no-repeat;
|
19 |
-
background-position: center;
|
20 |
-
}
|
21 |
-
|
22 |
-
.appearance_page_logincust_options #submit:hover {
|
23 |
-
border-color: #ff9d89 !important;
|
24 |
-
background: #ff907a !important;
|
25 |
-
}
|
26 |
-
|
27 |
-
.appearance_page_logincust_options #submit {
|
28 |
-
border-color: #ff5f3f !important;
|
29 |
-
color: #fff !important;
|
30 |
-
background: #ff7f66 !important;
|
31 |
-
box-shadow: 0 1px 0 #ff9682 inset, 0 1px 0 rgba(0, 0, 0, 0.15);
|
32 |
-
text-shadow: none;
|
33 |
-
}
|
34 |
-
|
35 |
-
.appearance_page_logincust_options #wpcontent {
|
36 |
-
background: #fff;
|
37 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
css/bg.png
DELETED
Binary file
|
css/disable_controls.css
DELETED
@@ -1,29 +0,0 @@
|
|
1 |
-
.logincust_pro_text a {
|
2 |
-
color: #a00;
|
3 |
-
}
|
4 |
-
|
5 |
-
.logincust_pro_text {
|
6 |
-
width: 94%;
|
7 |
-
margin-top: 0;
|
8 |
-
margin-top: -10px;
|
9 |
-
margin-left: -21px;
|
10 |
-
padding: 10px;
|
11 |
-
padding: 0;
|
12 |
-
padding-top: 3px;
|
13 |
-
padding-right: 28px;
|
14 |
-
padding-left: 28px;
|
15 |
-
background-color: #f5f5f5;
|
16 |
-
font-size: 12px;
|
17 |
-
font-weight: bold;
|
18 |
-
text-align: center;
|
19 |
-
}
|
20 |
-
|
21 |
-
#accordion-section-logincust_security_section h3:hover,
|
22 |
-
#accordion-section-logincust_security_section h3 {
|
23 |
-
background-image: url("security.png") !important;
|
24 |
-
background-repeat: no-repeat!important;
|
25 |
-
background-position: 85% !important;
|
26 |
-
background-size: 25% !important;
|
27 |
-
;
|
28 |
-
;
|
29 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
css/feedzy-rss-feeds.css
ADDED
@@ -0,0 +1,524 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* feedzy-rss-feeds.css
|
3 |
+
* Feedzy RSS Feed
|
4 |
+
* Copyright: (c) 2016 Themeisle, themeisle.com
|
5 |
+
* Version: 3.2.4
|
6 |
+
* Plugin Name: FEEDZY RSS Feeds
|
7 |
+
* Plugin URI: http://themeisle.com/plugins/feedzy-rss-feeds/
|
8 |
+
* Author: Themeisle
|
9 |
+
*/
|
10 |
+
.feedzy-rss > ul {
|
11 |
+
margin: 0;
|
12 |
+
padding: 0;
|
13 |
+
}
|
14 |
+
|
15 |
+
/*noinspection CssUnusedSymbol*/
|
16 |
+
.feedzy-rss .rss_item {
|
17 |
+
border-bottom: 1px solid #eee;
|
18 |
+
list-style: none;
|
19 |
+
}
|
20 |
+
|
21 |
+
.feedzy-rss .rss_item .title {
|
22 |
+
font-weight: bold;
|
23 |
+
}
|
24 |
+
|
25 |
+
/*noinspection CssUnusedSymbol*/
|
26 |
+
.feedzy-rss .rss_item:after {
|
27 |
+
display: block;
|
28 |
+
clear: both;
|
29 |
+
content: "";
|
30 |
+
}
|
31 |
+
|
32 |
+
/*noinspection CssUnusedSymbol*/
|
33 |
+
.feedzy-rss .rss_item .rss_image {
|
34 |
+
float: left;
|
35 |
+
position: relative;
|
36 |
+
border: none;
|
37 |
+
text-decoration: none;
|
38 |
+
}
|
39 |
+
|
40 |
+
.feedzy-rss .rss_item .rss_image span {
|
41 |
+
display: inline-block;
|
42 |
+
position: absolute;
|
43 |
+
width: 100%;
|
44 |
+
height: 100%;
|
45 |
+
background-position: 50%;
|
46 |
+
background-size: cover;
|
47 |
+
}
|
48 |
+
|
49 |
+
/*noinspection CssUnusedSymbol*/
|
50 |
+
.feedzy-rss .rss_item .rss_image .fetched {
|
51 |
+
z-index: 9;
|
52 |
+
}
|
53 |
+
|
54 |
+
.feedzy-rss .rss_item .rss_image {
|
55 |
+
margin: 0.3em 1em 0 0;
|
56 |
+
}
|
57 |
+
|
58 |
+
.feedzy-rss .rss_item .rss_content small {
|
59 |
+
display: block;
|
60 |
+
font-size: 0.9em;
|
61 |
+
font-style: italic;
|
62 |
+
}
|
63 |
+
|
64 |
+
/*TinyMce UI button*/
|
65 |
+
/*noinspection CssUnusedSymbol*/
|
66 |
+
i.mce-i-feedzy-icon {
|
67 |
+
background-image: none, url("../img/feedzy.svg"), url("../img/feedzy.png");
|
68 |
+
}
|
69 |
+
|
70 |
+
#feedzy-rss-button-insert {
|
71 |
+
border-color: #4cae4c;
|
72 |
+
color: #fff;
|
73 |
+
background-color: #5cb85c;
|
74 |
+
}
|
75 |
+
|
76 |
+
#feedzy-rss-button-insert button {
|
77 |
+
color: #fff;
|
78 |
+
}
|
79 |
+
|
80 |
+
#feedzy-rss-button-insert:hover,
|
81 |
+
#feedzy-rss-button-insert:focus {
|
82 |
+
border-color: #398439;
|
83 |
+
color: #fff;
|
84 |
+
background-color: #449d44;
|
85 |
+
}
|
86 |
+
|
87 |
+
#feedzy-rss-button-cancel {
|
88 |
+
border-color: #ccc;
|
89 |
+
color: #333;
|
90 |
+
background-color: #fff;
|
91 |
+
}
|
92 |
+
|
93 |
+
#feedzy-rss-button-cancel button {
|
94 |
+
color: #333;
|
95 |
+
}
|
96 |
+
|
97 |
+
#feedzy-rss-button-cancel:hover,
|
98 |
+
#feedzy-rss-button-cancel:focus {
|
99 |
+
border-color: #adadad;
|
100 |
+
color: #333;
|
101 |
+
background-color: #e6e6e6;
|
102 |
+
}
|
103 |
+
|
104 |
+
#feedzy-rss-button-pro {
|
105 |
+
position: absolute;
|
106 |
+
left: 10px !important;
|
107 |
+
border-color: #46b8da;
|
108 |
+
color: #fff;
|
109 |
+
background-color: #5bc0de;
|
110 |
+
}
|
111 |
+
|
112 |
+
#feedzy-rss-button-pro button {
|
113 |
+
color: #fff;
|
114 |
+
}
|
115 |
+
|
116 |
+
#feedzy-rss-button-pro:hover,
|
117 |
+
#feedzy-rss-button-pro:focus {
|
118 |
+
border-color: #269abc;
|
119 |
+
color: #fff;
|
120 |
+
background-color: #31b0d5;
|
121 |
+
}
|
122 |
+
|
123 |
+
#feedzy-rss-insert-dialog-title {
|
124 |
+
font-weight: 300;
|
125 |
+
text-align: center;
|
126 |
+
}
|
127 |
+
|
128 |
+
/* PRO */
|
129 |
+
.feedzy-rss ul {
|
130 |
+
margin: 0 -2%;
|
131 |
+
}
|
132 |
+
|
133 |
+
.feedzy-rss ul:before,
|
134 |
+
.feedzy-rss ul:after {
|
135 |
+
display: table;
|
136 |
+
content: " ";
|
137 |
+
}
|
138 |
+
|
139 |
+
.feedzy-rss ul:after {
|
140 |
+
clear: both;
|
141 |
+
}
|
142 |
+
|
143 |
+
.feedzy-rss .rss_item {
|
144 |
+
margin: 2%;
|
145 |
+
padding: 0;
|
146 |
+
}
|
147 |
+
|
148 |
+
/* Default */
|
149 |
+
/*
|
150 |
+
.feedzy-rss .feedzy-default .rss_image,
|
151 |
+
.feedzy-rss .feedzy-default .rss_content_wrap {
|
152 |
+
display: inline-block;
|
153 |
+
width: 100%;
|
154 |
+
}
|
155 |
+
|
156 |
+
.feedzy-rss .feedzy-default .rss_image {
|
157 |
+
float: none;
|
158 |
+
padding: 0;
|
159 |
+
text-align: center;
|
160 |
+
width: 100%;
|
161 |
+
}
|
162 |
+
|
163 |
+
.feedzy-rss .feedzy-default .rss_content_wrap {
|
164 |
+
margin: 10px 0 0;
|
165 |
+
padding: 0;
|
166 |
+
}*/
|
167 |
+
|
168 |
+
/* Style1 */
|
169 |
+
.feedzy-rss .feedzy-style1 .rss_image,
|
170 |
+
.feedzy-rss .feedzy-style1 .rss_content_wrap {
|
171 |
+
display: inline-block;
|
172 |
+
width: 100%;
|
173 |
+
}
|
174 |
+
|
175 |
+
.feedzy-rss .feedzy-style1 .rss_item .rss_image span {
|
176 |
+
width: 100%;
|
177 |
+
}
|
178 |
+
|
179 |
+
.feedzy-rss .feedzy-style1 .rss_content_wrap {
|
180 |
+
text-align: left;
|
181 |
+
}
|
182 |
+
|
183 |
+
.feedzy-rss .feedzy-style1 .rss_item {
|
184 |
+
text-align: center;
|
185 |
+
}
|
186 |
+
|
187 |
+
.feedzy-rss .feedzy-style2 .rss_item .rss_image {
|
188 |
+
float: none;
|
189 |
+
}
|
190 |
+
|
191 |
+
.feedzy-rss .feedzy-style2 .rss_item .rss_image span {
|
192 |
+
width: 100%;
|
193 |
+
}
|
194 |
+
|
195 |
+
.feedzy-rss .feedzy-style2 .rss_content_wrap {
|
196 |
+
text-align: left;
|
197 |
+
}
|
198 |
+
|
199 |
+
.feedzy-rss .feedzy-style2 .rss_item {
|
200 |
+
text-align: center;
|
201 |
+
}
|
202 |
+
|
203 |
+
.feedzy-rss .feedzy-style1 .rss_image {
|
204 |
+
float: none;
|
205 |
+
width: 100%;
|
206 |
+
padding: 0;
|
207 |
+
text-align: center;
|
208 |
+
-webkit-transition: 0.75s ease;
|
209 |
+
transition: 0.75s ease;
|
210 |
+
}
|
211 |
+
|
212 |
+
.feedzy-rss .feedzy-style1 .rss_image a {
|
213 |
+
border: 3px solid transparent;
|
214 |
+
border-radius: 50%;
|
215 |
+
-webkit-transition: 0.5s ease;
|
216 |
+
transition: 0.5s ease;
|
217 |
+
}
|
218 |
+
|
219 |
+
.feedzy-rss .feedzy-style1 .rss_image a span {
|
220 |
+
display: inline-block;
|
221 |
+
left: 0;
|
222 |
+
border-radius: 50%;
|
223 |
+
}
|
224 |
+
|
225 |
+
.feedzy-rss .feedzy-style1 .rss_item:hover .rss_image a {
|
226 |
+
box-shadow: 0 0 10px rgba(0,0,0,0.25);
|
227 |
+
}
|
228 |
+
|
229 |
+
.feedzy-rss .feedzy-style1 .rss_content_wrap {
|
230 |
+
margin: 10px 0 0;
|
231 |
+
padding: 0;
|
232 |
+
}
|
233 |
+
|
234 |
+
.feedzy-rss .feedzy-style1 .rss_content_wrap .title a {
|
235 |
+
text-decoration: none;
|
236 |
+
}
|
237 |
+
|
238 |
+
.feedzy-rss .feedzy-style1 .rss_content_wrap .title a:hover {
|
239 |
+
text-decoration: underline;
|
240 |
+
}
|
241 |
+
|
242 |
+
.feedzy-rss .feedzy-style1 .rss_content .description {
|
243 |
+
margin: 0;
|
244 |
+
padding: 0;
|
245 |
+
font-size: 90%;
|
246 |
+
}
|
247 |
+
|
248 |
+
.feedzy-rss .feedzy-style1 .rss_content .price-wrap {
|
249 |
+
margin: 10px 0 0;
|
250 |
+
text-align: center;
|
251 |
+
}
|
252 |
+
|
253 |
+
.feedzy-rss .feedzy-style1 .rss_content .price {
|
254 |
+
display: inline-block;
|
255 |
+
padding: 5px 10px;
|
256 |
+
border-radius: 5px;
|
257 |
+
color: #fff;
|
258 |
+
background: #4f6d8d;
|
259 |
+
font-weight: 700;
|
260 |
+
}
|
261 |
+
|
262 |
+
/* Style2 */
|
263 |
+
.feedzy-rss .feedzy-style2 .rss_item {
|
264 |
+
padding: 0 !important;
|
265 |
+
border: 1px solid #e3edeb;
|
266 |
+
border-radius: 5px;
|
267 |
+
}
|
268 |
+
|
269 |
+
.feedzy-rss .feedzy-style2 .rss_image span {
|
270 |
+
left: 0;
|
271 |
+
}
|
272 |
+
|
273 |
+
.feedzy-rss .feedzy-style2 .rss_image,
|
274 |
+
.feedzy-rss .feedzy-style2 .rss_content_wrap {
|
275 |
+
display: inline-block;
|
276 |
+
width: 100%;
|
277 |
+
}
|
278 |
+
|
279 |
+
.feedzy-rss .feedzy-style2 .rss_image {
|
280 |
+
overflow: hidden;
|
281 |
+
width: 100%;
|
282 |
+
padding: 0;
|
283 |
+
border-bottom: 7px solid #355c7d;
|
284 |
+
line-height: 0;
|
285 |
+
text-align: center;
|
286 |
+
}
|
287 |
+
|
288 |
+
.feedzy-rss .feedzy-style2 .rss_image a span {
|
289 |
+
display: inline-block;
|
290 |
+
-webkit-transition: 0.3s ease;
|
291 |
+
transition: 0.3s ease;
|
292 |
+
}
|
293 |
+
|
294 |
+
.feedzy-rss .feedzy-style2 .rss_item:hover .rss_image a span {
|
295 |
+
-webkit-transform: scale(1.2);
|
296 |
+
-ms-transform: scale(1.2);
|
297 |
+
transform: scale(1.2);
|
298 |
+
}
|
299 |
+
|
300 |
+
.feedzy-rss .feedzy-style2 .rss_content_wrap {
|
301 |
+
margin: 0;
|
302 |
+
padding: 0;
|
303 |
+
letter-spacing: 0;
|
304 |
+
}
|
305 |
+
|
306 |
+
.feedzy-rss .feedzy-style2 .rss_content_wrap .title {
|
307 |
+
display: block;
|
308 |
+
padding: 10px 15px;
|
309 |
+
}
|
310 |
+
|
311 |
+
.feedzy-rss .feedzy-style2 .rss_content_wrap .title a {
|
312 |
+
/*color: #355c7d;*/
|
313 |
+
text-decoration: none;
|
314 |
+
}
|
315 |
+
|
316 |
+
.feedzy-rss .feedzy-style2 .rss_content_wrap .title a:hover {
|
317 |
+
text-decoration: underline;
|
318 |
+
}
|
319 |
+
|
320 |
+
.feedzy-rss .feedzy-style2 .rss_content .meta {
|
321 |
+
padding: 10px 15px;
|
322 |
+
border-top: 1px solid #e3edeb;
|
323 |
+
border-bottom: 1px solid #e3edeb;
|
324 |
+
background-color: #f1f5f4;
|
325 |
+
}
|
326 |
+
|
327 |
+
.feedzy-rss .feedzy-style2 .rss_content .description {
|
328 |
+
margin: 0;
|
329 |
+
padding: 10px 15px;
|
330 |
+
font-size: 90%;
|
331 |
+
line-height: 1.5;
|
332 |
+
}
|
333 |
+
|
334 |
+
.feedzy-rss .feedzy-style2 .rss_content .price-wrap {
|
335 |
+
margin: 10px 0 15px;
|
336 |
+
text-align: center;
|
337 |
+
}
|
338 |
+
|
339 |
+
.feedzy-rss .feedzy-style2 .rss_content .price {
|
340 |
+
display: inline-block;
|
341 |
+
padding: 8px 15px;
|
342 |
+
color: #fff;
|
343 |
+
background: #355c7d;
|
344 |
+
font-weight: 700;
|
345 |
+
}
|
346 |
+
|
347 |
+
/* Columns */
|
348 |
+
.feedzy-rss .feedzy-rss-col-1 {
|
349 |
+
width: 96%;
|
350 |
+
}
|
351 |
+
|
352 |
+
/* SCHIMBAT DIN ID in CLASA */
|
353 |
+
.feedzy-rss .feedzy-rss-col-2,
|
354 |
+
.feedzy-rss .feedzy-rss-col-3,
|
355 |
+
.feedzy-rss .feedzy-rss-col-4,
|
356 |
+
.feedzy-rss .feedzy-rss-col-5,
|
357 |
+
.feedzy-rss .feedzy-rss-col-6 {
|
358 |
+
float: left;
|
359 |
+
width: 96%;
|
360 |
+
}
|
361 |
+
|
362 |
+
@media screen and (min-width: 768px) {
|
363 |
+
.feedzy-rss .feedzy-rss-col-2,
|
364 |
+
.feedzy-rss .feedzy-rss-col-3,
|
365 |
+
.feedzy-rss .feedzy-rss-col-4,
|
366 |
+
.feedzy-rss .feedzy-rss-col-5,
|
367 |
+
.feedzy-rss .feedzy-rss-col-6 {
|
368 |
+
width: 46%;
|
369 |
+
}
|
370 |
+
|
371 |
+
.feedzy-rss .feedzy-rss-col-2:nth-child(2n+1),
|
372 |
+
.feedzy-rss .feedzy-rss-col-3:nth-child(2n+1),
|
373 |
+
.feedzy-rss .feedzy-rss-col-4:nth-child(2n+1),
|
374 |
+
.feedzy-rss .feedzy-rss-col-5:nth-child(2n+1),
|
375 |
+
.feedzy-rss .feedzy-rss-col-6:nth-child(2n+1) {
|
376 |
+
clear: both;
|
377 |
+
}
|
378 |
+
}
|
379 |
+
|
380 |
+
@media screen and (min-width: 992px) {
|
381 |
+
.feedzy-rss .feedzy-rss-col-3,
|
382 |
+
.feedzy-rss .feedzy-rss-col-4,
|
383 |
+
.feedzy-rss .feedzy-rss-col-5,
|
384 |
+
.feedzy-rss .feedzy-rss-col-6 {
|
385 |
+
width: 29.33333%;
|
386 |
+
}
|
387 |
+
|
388 |
+
.feedzy-rss .feedzy-rss-col-3:nth-child(2n+1),
|
389 |
+
.feedzy-rss .feedzy-rss-col-4:nth-child(2n+1),
|
390 |
+
.feedzy-rss .feedzy-rss-col-5:nth-child(2n+1),
|
391 |
+
.feedzy-rss .feedzy-rss-col-6:nth-child(2n+1) {
|
392 |
+
clear: none;
|
393 |
+
}
|
394 |
+
|
395 |
+
.feedzy-rss .feedzy-rss-col-3:nth-child(3n+1),
|
396 |
+
.feedzy-rss .feedzy-rss-col-4:nth-child(3n+1),
|
397 |
+
.feedzy-rss .feedzy-rss-col-5:nth-child(3n+1),
|
398 |
+
.feedzy-rss .feedzy-rss-col-6:nth-child(3n+1) {
|
399 |
+
clear: both;
|
400 |
+
}
|
401 |
+
}
|
402 |
+
|
403 |
+
@media screen and (min-width: 1200px) {
|
404 |
+
.feedzy-rss .feedzy-rss-col-4 {
|
405 |
+
width: 21%;
|
406 |
+
}
|
407 |
+
|
408 |
+
.feedzy-rss .feedzy-rss-col-5 {
|
409 |
+
width: 16%;
|
410 |
+
}
|
411 |
+
|
412 |
+
.feedzy-rss .feedzy-rss-col-6 {
|
413 |
+
width: 12.66666%;
|
414 |
+
}
|
415 |
+
|
416 |
+
.feedzy-rss .feedzy-rss-col-4:nth-child(3n+1),
|
417 |
+
.feedzy-rss .feedzy-rss-col-5:nth-child(3n+1),
|
418 |
+
.feedzy-rss .feedzy-rss-col-6:nth-child(3n+1) {
|
419 |
+
clear: none;
|
420 |
+
}
|
421 |
+
|
422 |
+
.feedzy-rss .feedzy-rss-col-4:nth-child(4n+1),
|
423 |
+
.feedzy-rss .feedzy-rss-col-5:nth-child(5n+1),
|
424 |
+
.feedzy-rss .feedzy-rss-col-6:nth-child(6n+1) {
|
425 |
+
/* PANA AICI INCLUSIV */
|
426 |
+
clear: both;
|
427 |
+
}
|
428 |
+
}
|
429 |
+
|
430 |
+
/* The switch - the box around the slider */
|
431 |
+
.feedzy-switch {
|
432 |
+
display: inline-block;
|
433 |
+
position: relative;
|
434 |
+
width: 30px;
|
435 |
+
height: 18px;
|
436 |
+
margin-left: 20px;
|
437 |
+
}
|
438 |
+
|
439 |
+
/* Hide default HTML checkbox */
|
440 |
+
.feedzy-switch input {
|
441 |
+
display: none;
|
442 |
+
}
|
443 |
+
|
444 |
+
/* The slider */
|
445 |
+
.feedzy-tracking sup {
|
446 |
+
vertical-align: 3px;
|
447 |
+
}
|
448 |
+
|
449 |
+
.feedzy-track {
|
450 |
+
position: absolute;
|
451 |
+
top: 0;
|
452 |
+
right: 0;
|
453 |
+
bottom: 0;
|
454 |
+
left: 0;
|
455 |
+
background-color: #ccc;
|
456 |
+
cursor: pointer;
|
457 |
+
-webkit-transition: 0.4s;
|
458 |
+
transition: 0.4s;
|
459 |
+
}
|
460 |
+
|
461 |
+
.feedzy-track:before {
|
462 |
+
position: absolute;
|
463 |
+
bottom: 1.5px;
|
464 |
+
left: 2px;
|
465 |
+
width: 15px;
|
466 |
+
height: 15px;
|
467 |
+
background-color: white;
|
468 |
+
content: "";
|
469 |
+
-webkit-transition: 0.4s;
|
470 |
+
transition: 0.4s;
|
471 |
+
}
|
472 |
+
|
473 |
+
input:checked + .feedzy-track {
|
474 |
+
background-color: #0085ba;
|
475 |
+
}
|
476 |
+
|
477 |
+
input:focus + .feedzy-track {
|
478 |
+
box-shadow: 0 0 1px #0085ba;
|
479 |
+
}
|
480 |
+
|
481 |
+
input:checked + .feedzy-track:before {
|
482 |
+
-webkit-transform: translateX(11px);
|
483 |
+
-ms-transform: translateX(11px);
|
484 |
+
transform: translateX(11px);
|
485 |
+
}
|
486 |
+
|
487 |
+
/* Rounded sliders */
|
488 |
+
.feedzy-track.visualizer-round {
|
489 |
+
border-radius: 34px;
|
490 |
+
}
|
491 |
+
|
492 |
+
.feedzy-track.visualizer-round:before {
|
493 |
+
border-radius: 50%;
|
494 |
+
}
|
495 |
+
|
496 |
+
.feedzy-tracking p small sup {
|
497 |
+
margin-left: -3px;
|
498 |
+
}
|
499 |
+
|
500 |
+
.feedzy-tracking p {
|
501 |
+
padding-left: 14px;
|
502 |
+
color: #23282d;
|
503 |
+
font-size: 12px;
|
504 |
+
line-height: 12px;
|
505 |
+
text-align: left;
|
506 |
+
}
|
507 |
+
|
508 |
+
.feedzy-tracking span {
|
509 |
+
margin-left: 10px;
|
510 |
+
color: #23282d;
|
511 |
+
background: none;
|
512 |
+
font-size: 14px;
|
513 |
+
font-weight: bold;
|
514 |
+
}
|
515 |
+
|
516 |
+
|
517 |
+
.post-type-feedzy_categories .postbox-container div#submitdiv,
|
518 |
+
.post-type-feedzy_categories #feedzy_category_feeds_rn {
|
519 |
+
display: block !important;
|
520 |
+
}
|
521 |
+
|
522 |
+
.post-type-feedzy_categories .postbox-container > div > .postbox:not(#feedzy_category_feeds) {
|
523 |
+
display: none;
|
524 |
+
}
|
css/form.css
ADDED
@@ -0,0 +1,725 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* form.css
|
3 |
+
* Feedzy RSS Feeds Form CSS
|
4 |
+
*/
|
5 |
+
|
6 |
+
html {
|
7 |
+
box-sizing: border-box;
|
8 |
+
font-size: 62.5%;
|
9 |
+
}
|
10 |
+
|
11 |
+
body {
|
12 |
+
color: #606c76;
|
13 |
+
font-family: "Roboto", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
|
14 |
+
font-size: 1.6em;
|
15 |
+
font-weight: 300;
|
16 |
+
line-height: 1.6;
|
17 |
+
letter-spacing: 0.01em;
|
18 |
+
}
|
19 |
+
|
20 |
+
*,
|
21 |
+
*:after,
|
22 |
+
*:before {
|
23 |
+
box-sizing: inherit;
|
24 |
+
}
|
25 |
+
|
26 |
+
.button,
|
27 |
+
button,
|
28 |
+
input[type="button"],
|
29 |
+
input[type="reset"],
|
30 |
+
input[type="submit"] {
|
31 |
+
display: inline-block;
|
32 |
+
height: 3.8rem;
|
33 |
+
padding: 0 3.0rem;
|
34 |
+
border: 0.1rem solid #31b0d5;
|
35 |
+
border-radius: 0.4rem;
|
36 |
+
color: #fff;
|
37 |
+
background-color: #31b0d5;
|
38 |
+
font-size: 1.1rem;
|
39 |
+
font-weight: 700;
|
40 |
+
line-height: 3.8rem;
|
41 |
+
text-align: center;
|
42 |
+
white-space: nowrap;
|
43 |
+
text-decoration: none;
|
44 |
+
letter-spacing: 0.1rem;
|
45 |
+
text-transform: uppercase;
|
46 |
+
cursor: pointer;
|
47 |
+
}
|
48 |
+
|
49 |
+
.button:focus,
|
50 |
+
.button:hover,
|
51 |
+
button:focus,
|
52 |
+
button:hover,
|
53 |
+
input[type="button"]:focus,
|
54 |
+
input[type="button"]:hover,
|
55 |
+
input[type="reset"]:focus,
|
56 |
+
input[type="reset"]:hover,
|
57 |
+
input[type="submit"]:focus,
|
58 |
+
input[type="submit"]:hover {
|
59 |
+
border-color: #606c76;
|
60 |
+
outline: 0;
|
61 |
+
color: #fff;
|
62 |
+
background-color: #606c76;
|
63 |
+
}
|
64 |
+
|
65 |
+
.button[disabled],
|
66 |
+
button[disabled],
|
67 |
+
input[type="button"][disabled],
|
68 |
+
input[type="reset"][disabled],
|
69 |
+
input[type="submit"][disabled] {
|
70 |
+
opacity: 0.5;
|
71 |
+
cursor: default;
|
72 |
+
}
|
73 |
+
|
74 |
+
.button[disabled]:focus,
|
75 |
+
.button[disabled]:hover,
|
76 |
+
button[disabled]:focus,
|
77 |
+
button[disabled]:hover,
|
78 |
+
input[type="button"][disabled]:focus,
|
79 |
+
input[type="button"][disabled]:hover,
|
80 |
+
input[type="reset"][disabled]:focus,
|
81 |
+
input[type="reset"][disabled]:hover,
|
82 |
+
input[type="submit"][disabled]:focus,
|
83 |
+
input[type="submit"][disabled]:hover {
|
84 |
+
border-color: #31b0d5;
|
85 |
+
background-color: #31b0d5;
|
86 |
+
}
|
87 |
+
|
88 |
+
.button.button-outline,
|
89 |
+
button.button-outline,
|
90 |
+
input[type="button"].button-outline,
|
91 |
+
input[type="reset"].button-outline,
|
92 |
+
input[type="submit"].button-outline {
|
93 |
+
color: #31b0d5;
|
94 |
+
background-color: transparent;
|
95 |
+
}
|
96 |
+
|
97 |
+
.button.button-outline:focus,
|
98 |
+
.button.button-outline:hover,
|
99 |
+
button.button-outline:focus,
|
100 |
+
button.button-outline:hover,
|
101 |
+
input[type="button"].button-outline:focus,
|
102 |
+
input[type="button"].button-outline:hover,
|
103 |
+
input[type="reset"].button-outline:focus,
|
104 |
+
input[type="reset"].button-outline:hover,
|
105 |
+
input[type="submit"].button-outline:focus,
|
106 |
+
input[type="submit"].button-outline:hover {
|
107 |
+
border-color: #606c76;
|
108 |
+
color: #606c76;
|
109 |
+
background-color: transparent;
|
110 |
+
}
|
111 |
+
|
112 |
+
.button.button-outline[disabled]:focus,
|
113 |
+
.button.button-outline[disabled]:hover,
|
114 |
+
button.button-outline[disabled]:focus,
|
115 |
+
button.button-outline[disabled]:hover,
|
116 |
+
input[type="button"].button-outline[disabled]:focus,
|
117 |
+
input[type="button"].button-outline[disabled]:hover,
|
118 |
+
input[type="reset"].button-outline[disabled]:focus,
|
119 |
+
input[type="reset"].button-outline[disabled]:hover,
|
120 |
+
input[type="submit"].button-outline[disabled]:focus,
|
121 |
+
input[type="submit"].button-outline[disabled]:hover {
|
122 |
+
border-color: inherit;
|
123 |
+
color: #31b0d5;
|
124 |
+
}
|
125 |
+
|
126 |
+
.button.button-clear,
|
127 |
+
button.button-clear,
|
128 |
+
input[type="button"].button-clear,
|
129 |
+
input[type="reset"].button-clear,
|
130 |
+
input[type="submit"].button-clear {
|
131 |
+
border-color: transparent;
|
132 |
+
color: #31b0d5;
|
133 |
+
background-color: transparent;
|
134 |
+
}
|
135 |
+
|
136 |
+
.button.button-clear:focus,
|
137 |
+
.button.button-clear:hover,
|
138 |
+
button.button-clear:focus,
|
139 |
+
button.button-clear:hover,
|
140 |
+
input[type="button"].button-clear:focus,
|
141 |
+
input[type="button"].button-clear:hover,
|
142 |
+
input[type="reset"].button-clear:focus,
|
143 |
+
input[type="reset"].button-clear:hover,
|
144 |
+
input[type="submit"].button-clear:focus,
|
145 |
+
input[type="submit"].button-clear:hover {
|
146 |
+
border-color: transparent;
|
147 |
+
color: #606c76;
|
148 |
+
background-color: transparent;
|
149 |
+
}
|
150 |
+
|
151 |
+
.button.button-clear[disabled]:focus,
|
152 |
+
.button.button-clear[disabled]:hover,
|
153 |
+
button.button-clear[disabled]:focus,
|
154 |
+
button.button-clear[disabled]:hover,
|
155 |
+
input[type="button"].button-clear[disabled]:focus,
|
156 |
+
input[type="button"].button-clear[disabled]:hover,
|
157 |
+
input[type="reset"].button-clear[disabled]:focus,
|
158 |
+
input[type="reset"].button-clear[disabled]:hover,
|
159 |
+
input[type="submit"].button-clear[disabled]:focus,
|
160 |
+
input[type="submit"].button-clear[disabled]:hover {
|
161 |
+
color: #31b0d5;
|
162 |
+
}
|
163 |
+
|
164 |
+
hr {
|
165 |
+
margin: 3.0rem 0;
|
166 |
+
border: 0;
|
167 |
+
border-top: 0.1rem solid #f4f5f6;
|
168 |
+
}
|
169 |
+
|
170 |
+
input[type="email"],
|
171 |
+
input[type="number"],
|
172 |
+
input[type="password"],
|
173 |
+
input[type="search"],
|
174 |
+
input[type="tel"],
|
175 |
+
input[type="text"],
|
176 |
+
input[type="url"],
|
177 |
+
textarea,
|
178 |
+
select {
|
179 |
+
box-sizing: inherit;
|
180 |
+
width: 100%;
|
181 |
+
height: 3.8rem;
|
182 |
+
padding: 0.6rem 1.0rem;
|
183 |
+
border: 0.1rem solid #d1d1d1;
|
184 |
+
border-radius: 0.4rem;
|
185 |
+
background-color: transparent;
|
186 |
+
box-shadow: none;
|
187 |
+
|
188 |
+
-webkit-appearance: none;
|
189 |
+
-moz-appearance: none;
|
190 |
+
appearance: none;
|
191 |
+
}
|
192 |
+
|
193 |
+
input[type="email"]:focus,
|
194 |
+
input[type="number"]:focus,
|
195 |
+
input[type="password"]:focus,
|
196 |
+
input[type="search"]:focus,
|
197 |
+
input[type="tel"]:focus,
|
198 |
+
input[type="text"]:focus,
|
199 |
+
input[type="url"]:focus,
|
200 |
+
textarea:focus,
|
201 |
+
select:focus {
|
202 |
+
border-color: #31b0d5;
|
203 |
+
outline: 0;
|
204 |
+
}
|
205 |
+
|
206 |
+
select {
|
207 |
+
padding-right: 3.0rem;
|
208 |
+
background: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"14\" viewBox=\"0 0 29 14\" width=\"29\"><path fill=\"#d1d1d1\" d=\"M9.37727 3.625l5.08154 6.93523L19.54036 3.625\"/></svg>") center right no-repeat;
|
209 |
+
}
|
210 |
+
|
211 |
+
select:focus {
|
212 |
+
background-image: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"14\" viewBox=\"0 0 29 14\" width=\"29\"><path fill=\"#31b0d5\" d=\"M9.37727 3.625l5.08154 6.93523L19.54036 3.625\"/></svg>");
|
213 |
+
}
|
214 |
+
|
215 |
+
textarea {
|
216 |
+
min-height: 6.5rem;
|
217 |
+
}
|
218 |
+
|
219 |
+
label,
|
220 |
+
legend {
|
221 |
+
display: block;
|
222 |
+
margin-bottom: 0.5rem;
|
223 |
+
font-size: 1.2rem;
|
224 |
+
font-weight: 300;
|
225 |
+
}
|
226 |
+
|
227 |
+
fieldset {
|
228 |
+
padding: 0;
|
229 |
+
border-width: 0;
|
230 |
+
}
|
231 |
+
|
232 |
+
input[type="checkbox"],
|
233 |
+
input[type="radio"] {
|
234 |
+
display: inline;
|
235 |
+
}
|
236 |
+
|
237 |
+
.label-inline {
|
238 |
+
display: inline-block;
|
239 |
+
margin-left: 0.5rem;
|
240 |
+
font-weight: normal;
|
241 |
+
}
|
242 |
+
|
243 |
+
.container {
|
244 |
+
position: relative;
|
245 |
+
width: 100%;
|
246 |
+
max-width: 112.0rem;
|
247 |
+
margin: 0 auto;
|
248 |
+
padding: 0 2.0rem;
|
249 |
+
}
|
250 |
+
|
251 |
+
.row {
|
252 |
+
display: -webkit-box;
|
253 |
+
display: -webkit-flex;
|
254 |
+
display: -ms-flexbox;
|
255 |
+
display: flex;
|
256 |
+
flex-direction: column;
|
257 |
+
width: 100%;
|
258 |
+
padding: 0;
|
259 |
+
|
260 |
+
-webkit-box-direction: normal;
|
261 |
+
-webkit-box-orient: vertical;
|
262 |
+
-webkit-flex-direction: column;
|
263 |
+
-ms-flex-direction: column;
|
264 |
+
}
|
265 |
+
|
266 |
+
.row.row-no-padding {
|
267 |
+
padding: 0;
|
268 |
+
}
|
269 |
+
|
270 |
+
.row.row-no-padding > .column {
|
271 |
+
padding: 0;
|
272 |
+
}
|
273 |
+
|
274 |
+
.row.row-wrap {
|
275 |
+
-webkit-flex-wrap: wrap;
|
276 |
+
-ms-flex-wrap: wrap;
|
277 |
+
flex-wrap: wrap;
|
278 |
+
}
|
279 |
+
|
280 |
+
.row.row-top {
|
281 |
+
-webkit-align-items: flex-start;
|
282 |
+
align-items: flex-start;
|
283 |
+
-webkit-box-align: start;
|
284 |
+
-ms-flex-align: start;
|
285 |
+
}
|
286 |
+
|
287 |
+
.row.row-bottom {
|
288 |
+
-webkit-align-items: flex-end;
|
289 |
+
align-items: flex-end;
|
290 |
+
-webkit-box-align: end;
|
291 |
+
-ms-flex-align: end;
|
292 |
+
}
|
293 |
+
|
294 |
+
.row.row-center {
|
295 |
+
-webkit-align-items: center;
|
296 |
+
align-items: center;
|
297 |
+
-webkit-box-align: center;
|
298 |
+
-ms-flex-align: center;
|
299 |
+
}
|
300 |
+
|
301 |
+
.row.row-stretch {
|
302 |
+
-webkit-align-items: stretch;
|
303 |
+
align-items: stretch;
|
304 |
+
-webkit-box-align: stretch;
|
305 |
+
-ms-flex-align: stretch;
|
306 |
+
}
|
307 |
+
|
308 |
+
.row.row-baseline {
|
309 |
+
-webkit-align-items: baseline;
|
310 |
+
align-items: baseline;
|
311 |
+
-webkit-box-align: baseline;
|
312 |
+
-ms-flex-align: baseline;
|
313 |
+
}
|
314 |
+
|
315 |
+
.row .column {
|
316 |
+
display: block;
|
317 |
+
width: 100%;
|
318 |
+
max-width: 100%;
|
319 |
+
margin-left: 0;
|
320 |
+
|
321 |
+
-webkit-box-flex: 1;
|
322 |
+
-webkit-flex: 1;
|
323 |
+
-ms-flex: 1;
|
324 |
+
flex: 1;
|
325 |
+
}
|
326 |
+
|
327 |
+
.row .column.column-offset-10 {
|
328 |
+
margin-left: 10%;
|
329 |
+
}
|
330 |
+
|
331 |
+
.row .column.column-offset-20 {
|
332 |
+
margin-left: 20%;
|
333 |
+
}
|
334 |
+
|
335 |
+
.row .column.column-offset-25 {
|
336 |
+
margin-left: 25%;
|
337 |
+
}
|
338 |
+
|
339 |
+
.row .column.column-offset-33,
|
340 |
+
.row .column.column-offset-34 {
|
341 |
+
margin-left: 33.3333%;
|
342 |
+
}
|
343 |
+
|
344 |
+
.row .column.column-offset-50 {
|
345 |
+
margin-left: 50%;
|
346 |
+
}
|
347 |
+
|
348 |
+
.row .column.column-offset-66,
|
349 |
+
.row .column.column-offset-67 {
|
350 |
+
margin-left: 66.6666%;
|
351 |
+
}
|
352 |
+
|
353 |
+
.row .column.column-offset-75 {
|
354 |
+
margin-left: 75%;
|
355 |
+
}
|
356 |
+
|
357 |
+
.row .column.column-offset-80 {
|
358 |
+
margin-left: 80%;
|
359 |
+
}
|
360 |
+
|
361 |
+
.row .column.column-offset-90 {
|
362 |
+
margin-left: 90%;
|
363 |
+
}
|
364 |
+
|
365 |
+
.row .column.column-10 {
|
366 |
+
max-width: 10%;
|
367 |
+
|
368 |
+
-webkit-box-flex: 0;
|
369 |
+
-webkit-flex: 0 0 10%;
|
370 |
+
-ms-flex: 0 0 10%;
|
371 |
+
flex: 0 0 10%;
|
372 |
+
}
|
373 |
+
|
374 |
+
.row .column.column-20 {
|
375 |
+
max-width: 20%;
|
376 |
+
|
377 |
+
-webkit-box-flex: 0;
|
378 |
+
-webkit-flex: 0 0 20%;
|
379 |
+
-ms-flex: 0 0 20%;
|
380 |
+
flex: 0 0 20%;
|
381 |
+
}
|
382 |
+
|
383 |
+
.row .column.column-25 {
|
384 |
+
max-width: 25%;
|
385 |
+
|
386 |
+
-webkit-box-flex: 0;
|
387 |
+
-webkit-flex: 0 0 25%;
|
388 |
+
-ms-flex: 0 0 25%;
|
389 |
+
flex: 0 0 25%;
|
390 |
+
}
|
391 |
+
|
392 |
+
.row .column.column-33,
|
393 |
+
.row .column.column-34 {
|
394 |
+
max-width: 33.3333%;
|
395 |
+
|
396 |
+
-webkit-box-flex: 0;
|
397 |
+
-webkit-flex: 0 0 33.3333%;
|
398 |
+
-ms-flex: 0 0 33.3333%;
|
399 |
+
flex: 0 0 33.3333%;
|
400 |
+
}
|
401 |
+
|
402 |
+
.row .column.column-40 {
|
403 |
+
max-width: 40%;
|
404 |
+
|
405 |
+
-webkit-box-flex: 0;
|
406 |
+
-webkit-flex: 0 0 40%;
|
407 |
+
-ms-flex: 0 0 40%;
|
408 |
+
flex: 0 0 40%;
|
409 |
+
}
|
410 |
+
|
411 |
+
.row .column.column-50 {
|
412 |
+
max-width: 50%;
|
413 |
+
|
414 |
+
-webkit-box-flex: 0;
|
415 |
+
-webkit-flex: 0 0 50%;
|
416 |
+
-ms-flex: 0 0 50%;
|
417 |
+
flex: 0 0 50%;
|
418 |
+
}
|
419 |
+
|
420 |
+
.row .column.column-60 {
|
421 |
+
max-width: 60%;
|
422 |
+
|
423 |
+
-webkit-box-flex: 0;
|
424 |
+
-webkit-flex: 0 0 60%;
|
425 |
+
-ms-flex: 0 0 60%;
|
426 |
+
flex: 0 0 60%;
|
427 |
+
}
|
428 |
+
|
429 |
+
.row .column.column-66,
|
430 |
+
.row .column.column-67 {
|
431 |
+
max-width: 66.6666%;
|
432 |
+
|
433 |
+
-webkit-box-flex: 0;
|
434 |
+
-webkit-flex: 0 0 66.6666%;
|
435 |
+
-ms-flex: 0 0 66.6666%;
|
436 |
+
flex: 0 0 66.6666%;
|
437 |
+
}
|
438 |
+
|
439 |
+
.row .column.column-75 {
|
440 |
+
max-width: 75%;
|
441 |
+
|
442 |
+
-webkit-box-flex: 0;
|
443 |
+
-webkit-flex: 0 0 75%;
|
444 |
+
-ms-flex: 0 0 75%;
|
445 |
+
flex: 0 0 75%;
|
446 |
+
}
|
447 |
+
|
448 |
+
.row .column.column-80 {
|
449 |
+
max-width: 80%;
|
450 |
+
|
451 |
+
-webkit-box-flex: 0;
|
452 |
+
-webkit-flex: 0 0 80%;
|
453 |
+
-ms-flex: 0 0 80%;
|
454 |
+
flex: 0 0 80%;
|
455 |
+
}
|
456 |
+
|
457 |
+
.row .column.column-90 {
|
458 |
+
max-width: 90%;
|
459 |
+
|
460 |
+
-webkit-box-flex: 0;
|
461 |
+
-webkit-flex: 0 0 90%;
|
462 |
+
-ms-flex: 0 0 90%;
|
463 |
+
flex: 0 0 90%;
|
464 |
+
}
|
465 |
+
|
466 |
+
.row .column .column-top {
|
467 |
+
-webkit-align-self: flex-start;
|
468 |
+
align-self: flex-start;
|
469 |
+
-ms-flex-item-align: start;
|
470 |
+
}
|
471 |
+
|
472 |
+
.row .column .column-bottom {
|
473 |
+
-webkit-align-self: flex-end;
|
474 |
+
align-self: flex-end;
|
475 |
+
-ms-flex-item-align: end;
|
476 |
+
}
|
477 |
+
|
478 |
+
.row .column .column-center {
|
479 |
+
-webkit-align-self: center;
|
480 |
+
align-self: center;
|
481 |
+
-ms-flex-item-align: center;
|
482 |
+
-ms-grid-row-align: center;
|
483 |
+
}
|
484 |
+
|
485 |
+
@media (min-width: 40rem) {
|
486 |
+
.row {
|
487 |
+
flex-direction: row;
|
488 |
+
width: -webkit-calc(100% + 2.0rem);
|
489 |
+
width: calc(100% + 2.0rem);
|
490 |
+
margin-left: -1.0rem;
|
491 |
+
|
492 |
+
-webkit-box-direction: normal;
|
493 |
+
-webkit-box-orient: horizontal;
|
494 |
+
-webkit-flex-direction: row;
|
495 |
+
-ms-flex-direction: row;
|
496 |
+
}
|
497 |
+
|
498 |
+
.row .column {
|
499 |
+
margin-bottom: inherit;
|
500 |
+
padding: 0 1.0rem;
|
501 |
+
}
|
502 |
+
}
|
503 |
+
|
504 |
+
a {
|
505 |
+
color: #31b0d5;
|
506 |
+
text-decoration: none;
|
507 |
+
}
|
508 |
+
|
509 |
+
a:focus,
|
510 |
+
a:hover {
|
511 |
+
color: #606c76;
|
512 |
+
}
|
513 |
+
|
514 |
+
dl,
|
515 |
+
ol,
|
516 |
+
ul {
|
517 |
+
margin-top: 0;
|
518 |
+
padding-left: 0;
|
519 |
+
list-style: none;
|
520 |
+
}
|
521 |
+
|
522 |
+
dl dl,
|
523 |
+
dl ol,
|
524 |
+
dl ul,
|
525 |
+
ol dl,
|
526 |
+
ol ol,
|
527 |
+
ol ul,
|
528 |
+
ul dl,
|
529 |
+
ul ol,
|
530 |
+
ul ul {
|
531 |
+
margin: 1.5rem 0 1.5rem 3.0rem;
|
532 |
+
font-size: 90%;
|
533 |
+
}
|
534 |
+
|
535 |
+
ol {
|
536 |
+
list-style: decimal inside;
|
537 |
+
}
|
538 |
+
|
539 |
+
ul {
|
540 |
+
list-style: circle inside;
|
541 |
+
}
|
542 |
+
|
543 |
+
.button,
|
544 |
+
button,
|
545 |
+
dd,
|
546 |
+
dt,
|
547 |
+
li {
|
548 |
+
margin-bottom: 1.0rem;
|
549 |
+
}
|
550 |
+
|
551 |
+
fieldset,
|
552 |
+
input,
|
553 |
+
select,
|
554 |
+
textarea {
|
555 |
+
margin-bottom: 1.5rem;
|
556 |
+
}
|
557 |
+
|
558 |
+
blockquote,
|
559 |
+
dl,
|
560 |
+
figure,
|
561 |
+
form,
|
562 |
+
ol,
|
563 |
+
p,
|
564 |
+
pre,
|
565 |
+
table,
|
566 |
+
ul {
|
567 |
+
margin-bottom: 2.5rem;
|
568 |
+
}
|
569 |
+
|
570 |
+
table {
|
571 |
+
width: 100%;
|
572 |
+
}
|
573 |
+
|
574 |
+
td,
|
575 |
+
th {
|
576 |
+
padding: 1.2rem 1.5rem;
|
577 |
+
border-bottom: 0.1rem solid #e1e1e1;
|
578 |
+
text-align: left;
|
579 |
+
}
|
580 |
+
|
581 |
+
td:first-child,
|
582 |
+
th:first-child {
|
583 |
+
padding-left: 0;
|
584 |
+
}
|
585 |
+
|
586 |
+
td:last-child,
|
587 |
+
th:last-child {
|
588 |
+
padding-right: 0;
|
589 |
+
}
|
590 |
+
|
591 |
+
p {
|
592 |
+
margin-top: 0;
|
593 |
+
font-size: 1.4rem;
|
594 |
+
}
|
595 |
+
|
596 |
+
h1,
|
597 |
+
h2,
|
598 |
+
h3,
|
599 |
+
h4,
|
600 |
+
h5,
|
601 |
+
h6 {
|
602 |
+
margin-top: 0;
|
603 |
+
margin-bottom: 2.0rem;
|
604 |
+
font-weight: 300;
|
605 |
+
letter-spacing: -0.1rem;
|
606 |
+
}
|
607 |
+
|
608 |
+
h1 {
|
609 |
+
font-size: 4.0rem;
|
610 |
+
line-height: 1.2;
|
611 |
+
}
|
612 |
+
|
613 |
+
h2 {
|
614 |
+
font-size: 3.6rem;
|
615 |
+
line-height: 1.25;
|
616 |
+
}
|
617 |
+
|
618 |
+
h3 {
|
619 |
+
font-size: 3.0rem;
|
620 |
+
line-height: 1.3;
|
621 |
+
}
|
622 |
+
|
623 |
+
h4 {
|
624 |
+
font-size: 2.4rem;
|
625 |
+
line-height: 1.35;
|
626 |
+
letter-spacing: -0.08rem;
|
627 |
+
}
|
628 |
+
|
629 |
+
h5 {
|
630 |
+
border-bottom: 1px solid #31b0d5;
|
631 |
+
font-size: 1.8rem;
|
632 |
+
line-height: 1.5;
|
633 |
+
letter-spacing: -0.05rem;
|
634 |
+
}
|
635 |
+
|
636 |
+
h6 {
|
637 |
+
font-size: 1.6rem;
|
638 |
+
line-height: 1.4;
|
639 |
+
letter-spacing: 0;
|
640 |
+
}
|
641 |
+
|
642 |
+
@media (min-width: 40rem) {
|
643 |
+
h1 {
|
644 |
+
font-size: 5.0rem;
|
645 |
+
}
|
646 |
+
|
647 |
+
h2 {
|
648 |
+
font-size: 4.2rem;
|
649 |
+
}
|
650 |
+
|
651 |
+
h3 {
|
652 |
+
font-size: 3.6rem;
|
653 |
+
}
|
654 |
+
|
655 |
+
h4 {
|
656 |
+
font-size: 3.0rem;
|
657 |
+
}
|
658 |
+
|
659 |
+
h5 {
|
660 |
+
font-size: 2.4rem;
|
661 |
+
}
|
662 |
+
|
663 |
+
h6 {
|
664 |
+
font-size: 1.5rem;
|
665 |
+
}
|
666 |
+
}
|
667 |
+
|
668 |
+
img {
|
669 |
+
max-width: 100%;
|
670 |
+
}
|
671 |
+
|
672 |
+
.clearfix:after {
|
673 |
+
display: table;
|
674 |
+
clear: both;
|
675 |
+
content: " ";
|
676 |
+
}
|
677 |
+
|
678 |
+
.float-left {
|
679 |
+
float: left;
|
680 |
+
}
|
681 |
+
|
682 |
+
.float-right {
|
683 |
+
float: right;
|
684 |
+
}
|
685 |
+
|
686 |
+
.feedzy_section_pro {
|
687 |
+
background-color: #fefefe;
|
688 |
+
}
|
689 |
+
|
690 |
+
.feedzy_section_pro h5 {
|
691 |
+
border-bottom-color: #d9a404;
|
692 |
+
color: #d9a404;
|
693 |
+
}
|
694 |
+
|
695 |
+
.feedzy_pro_tag {
|
696 |
+
margin-left: 10px;
|
697 |
+
padding: 3px 6px;
|
698 |
+
border-radius: 3px;
|
699 |
+
color: #fff;
|
700 |
+
background-color: #d9a404;
|
701 |
+
}
|
702 |
+
|
703 |
+
.feedzy-radio-image {
|
704 |
+
display: inline-block;
|
705 |
+
width: 100px;
|
706 |
+
margin-right: 20px;
|
707 |
+
padding-bottom: 60px;
|
708 |
+
}
|
709 |
+
|
710 |
+
.feedzy-template-default {
|
711 |
+
background: url(../img/feedzy-default-template.jpg) no-repeat bottom center;
|
712 |
+
}
|
713 |
+
|
714 |
+
.feedzy-template-style1 {
|
715 |
+
background: url(../img/feedzy-style1-template.jpg) no-repeat bottom center;
|
716 |
+
}
|
717 |
+
|
718 |
+
.feedzy-template-style2 {
|
719 |
+
background: url(../img/feedzy-style2-template.jpg) no-repeat bottom center;
|
720 |
+
}
|
721 |
+
|
722 |
+
input[disabled],
|
723 |
+
select[disabled] {
|
724 |
+
cursor: not-allowed;
|
725 |
+
}
|
css/logo.png
DELETED
Binary file
|
css/metabox-settings.css
ADDED
@@ -0,0 +1,2026 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* import-metabox-edit.css
|
3 |
+
*
|
4 |
+
* @since 1.2.0
|
5 |
+
* @package feedzy-rss-feeds-pro
|
6 |
+
*/
|
7 |
+
.fz-form-control {
|
8 |
+
display: block;
|
9 |
+
width: 100%;
|
10 |
+
height: 34px;
|
11 |
+
padding: 6px 12px;
|
12 |
+
border: 1px solid #ccc;
|
13 |
+
border-radius: 4px;
|
14 |
+
color: #555;
|
15 |
+
background-color: #fff;
|
16 |
+
background-image: none;
|
17 |
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
|
18 |
+
font-size: 14px;
|
19 |
+
line-height: 1.42857143;
|
20 |
+
-webkit-transition: border-color ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s;
|
21 |
+
-webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
|
22 |
+
transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
|
23 |
+
}
|
24 |
+
|
25 |
+
.fz-form-control:focus {
|
26 |
+
border-color: #66afe9;
|
27 |
+
outline: 0;
|
28 |
+
box-shadow: inset 0 1px 1px rgba(0,0,0,0.075), 0 0 8px rgba(102, 175, 233, 0.6);
|
29 |
+
}
|
30 |
+
|
31 |
+
.fz-form-control::-moz-placeholder {
|
32 |
+
opacity: 1;
|
33 |
+
color: #999;
|
34 |
+
}
|
35 |
+
|
36 |
+
.fz-form-control:-ms-input-placeholder {
|
37 |
+
color: #999;
|
38 |
+
}
|
39 |
+
|
40 |
+
.fz-form-control::-webkit-input-placeholder {
|
41 |
+
color: #999;
|
42 |
+
}
|
43 |
+
|
44 |
+
.fz-form-control::-ms-expand {
|
45 |
+
border: 0;
|
46 |
+
background-color: transparent;
|
47 |
+
}
|
48 |
+
|
49 |
+
.fz-form-control[disabled],
|
50 |
+
.fz-form-control[readonly],
|
51 |
+
fieldset[disabled] .fz-form-control {
|
52 |
+
opacity: 1;
|
53 |
+
background-color: #eee;
|
54 |
+
}
|
55 |
+
|
56 |
+
.fz-form-control[disabled],
|
57 |
+
fieldset[disabled] .fz-form-control {
|
58 |
+
cursor: not-allowed;
|
59 |
+
}
|
60 |
+
|
61 |
+
textarea.fz-form-control {
|
62 |
+
height: auto;
|
63 |
+
}
|
64 |
+
|
65 |
+
input[type="search"] {
|
66 |
+
-webkit-appearance: none;
|
67 |
+
}
|
68 |
+
|
69 |
+
@media screen and (-webkit-min-device-pixel-ratio: 0) {
|
70 |
+
input[type="date"].fz-form-control,
|
71 |
+
input[type="time"].fz-form-control,
|
72 |
+
input[type="datetime-local"].fz-form-control,
|
73 |
+
input[type="month"].fz-form-control {
|
74 |
+
line-height: 34px;
|
75 |
+
}
|
76 |
+
|
77 |
+
input[type="date"].input-sm,
|
78 |
+
input[type="time"].input-sm,
|
79 |
+
input[type="datetime-local"].input-sm,
|
80 |
+
input[type="month"].input-sm,
|
81 |
+
.fz-input-group-sm input[type="date"],
|
82 |
+
.fz-input-group-sm input[type="time"],
|
83 |
+
.fz-input-group-sm input[type="datetime-local"],
|
84 |
+
.fz-input-group-sm input[type="month"] {
|
85 |
+
line-height: 30px;
|
86 |
+
}
|
87 |
+
|
88 |
+
input[type="date"].input-lg,
|
89 |
+
input[type="time"].input-lg,
|
90 |
+
input[type="datetime-local"].input-lg,
|
91 |
+
input[type="month"].input-lg,
|
92 |
+
.fz-input-group-lg input[type="date"],
|
93 |
+
.fz-input-group-lg input[type="time"],
|
94 |
+
.fz-input-group-lg input[type="datetime-local"],
|
95 |
+
.fz-input-group-lg input[type="month"] {
|
96 |
+
line-height: 46px;
|
97 |
+
}
|
98 |
+
}
|
99 |
+
|
100 |
+
.fz-form-group {
|
101 |
+
margin-bottom: 15px;
|
102 |
+
}
|
103 |
+
|
104 |
+
.radio,
|
105 |
+
.checkbox {
|
106 |
+
display: block;
|
107 |
+
position: relative;
|
108 |
+
margin-top: 10px;
|
109 |
+
margin-bottom: 10px;
|
110 |
+
}
|
111 |
+
|
112 |
+
.radio label,
|
113 |
+
.checkbox label {
|
114 |
+
min-height: 20px;
|
115 |
+
margin-bottom: 0;
|
116 |
+
padding-left: 20px;
|
117 |
+
font-weight: normal;
|
118 |
+
cursor: pointer;
|
119 |
+
}
|
120 |
+
|
121 |
+
.radio input[type="radio"],
|
122 |
+
.radio-inline input[type="radio"],
|
123 |
+
.checkbox input[type="checkbox"],
|
124 |
+
.checkbox-inline input[type="checkbox"] {
|
125 |
+
position: absolute;
|
126 |
+
margin-top: 4px \9;
|
127 |
+
margin-left: -20px;
|
128 |
+
}
|
129 |
+
|
130 |
+
.radio + .radio,
|
131 |
+
.checkbox + .checkbox {
|
132 |
+
margin-top: -5px;
|
133 |
+
}
|
134 |
+
|
135 |
+
.radio-inline,
|
136 |
+
.checkbox-inline {
|
137 |
+
display: inline-block;
|
138 |
+
position: relative;
|
139 |
+
margin-bottom: 0;
|
140 |
+
padding-left: 20px;
|
141 |
+
font-weight: normal;
|
142 |
+
vertical-align: middle;
|
143 |
+
cursor: pointer;
|
144 |
+
}
|
145 |
+
|
146 |
+
.radio-inline + .radio-inline,
|
147 |
+
.checkbox-inline + .checkbox-inline {
|
148 |
+
margin-top: 0;
|
149 |
+
margin-left: 10px;
|
150 |
+
}
|
151 |
+
|
152 |
+
input[type="radio"][disabled],
|
153 |
+
input[type="checkbox"][disabled],
|
154 |
+
input[type="radio"].disabled,
|
155 |
+
input[type="checkbox"].disabled,
|
156 |
+
fieldset[disabled] input[type="radio"],
|
157 |
+
fieldset[disabled] input[type="checkbox"] {
|
158 |
+
cursor: not-allowed;
|
159 |
+
}
|
160 |
+
|
161 |
+
.radio-inline.disabled,
|
162 |
+
.checkbox-inline.disabled,
|
163 |
+
fieldset[disabled] .radio-inline,
|
164 |
+
fieldset[disabled] .checkbox-inline {
|
165 |
+
cursor: not-allowed;
|
166 |
+
}
|
167 |
+
|
168 |
+
.radio.disabled label,
|
169 |
+
.checkbox.disabled label,
|
170 |
+
fieldset[disabled] .radio label,
|
171 |
+
fieldset[disabled] .checkbox label {
|
172 |
+
cursor: not-allowed;
|
173 |
+
}
|
174 |
+
|
175 |
+
.fz-form-control-static {
|
176 |
+
min-height: 34px;
|
177 |
+
margin-bottom: 0;
|
178 |
+
padding-top: 7px;
|
179 |
+
padding-bottom: 7px;
|
180 |
+
}
|
181 |
+
|
182 |
+
.fz-form-control-static.input-lg,
|
183 |
+
.fz-form-control-static.input-sm {
|
184 |
+
padding-right: 0;
|
185 |
+
padding-left: 0;
|
186 |
+
}
|
187 |
+
|
188 |
+
.input-sm {
|
189 |
+
height: 30px;
|
190 |
+
padding: 5px 10px;
|
191 |
+
border-radius: 3px;
|
192 |
+
font-size: 12px;
|
193 |
+
line-height: 1.5;
|
194 |
+
}
|
195 |
+
|
196 |
+
select.input-sm {
|
197 |
+
height: 30px;
|
198 |
+
line-height: 30px;
|
199 |
+
}
|
200 |
+
|
201 |
+
textarea.input-sm,
|
202 |
+
select[multiple].input-sm {
|
203 |
+
height: auto;
|
204 |
+
}
|
205 |
+
|
206 |
+
.fz-form-group-sm .fz-form-control {
|
207 |
+
height: 30px;
|
208 |
+
padding: 5px 10px;
|
209 |
+
border-radius: 3px;
|
210 |
+
font-size: 12px;
|
211 |
+
line-height: 1.5;
|
212 |
+
}
|
213 |
+
|
214 |
+
.fz-form-group-sm select.fz-form-control {
|
215 |
+
height: 30px;
|
216 |
+
line-height: 30px;
|
217 |
+
}
|
218 |
+
|
219 |
+
.fz-form-group-sm textarea.fz-form-control,
|
220 |
+
.fz-form-group-sm select[multiple].fz-form-control {
|
221 |
+
height: auto;
|
222 |
+
}
|
223 |
+
|
224 |
+
.fz-form-group-sm .fz-form-control-static {
|
225 |
+
height: 30px;
|
226 |
+
min-height: 32px;
|
227 |
+
padding: 6px 10px;
|
228 |
+
font-size: 12px;
|
229 |
+
line-height: 1.5;
|
230 |
+
}
|
231 |
+
|
232 |
+
.input-lg {
|
233 |
+
height: 46px;
|
234 |
+
padding: 10px 16px;
|
235 |
+
border-radius: 6px;
|
236 |
+
font-size: 18px;
|
237 |
+
line-height: 1.3333333;
|
238 |
+
}
|
239 |
+
|
240 |
+
select.input-lg {
|
241 |
+
height: 46px;
|
242 |
+
line-height: 46px;
|
243 |
+
}
|
244 |
+
|
245 |
+
textarea.input-lg,
|
246 |
+
select[multiple].input-lg {
|
247 |
+
height: auto;
|
248 |
+
}
|
249 |
+
|
250 |
+
.fz-form-group-lg .fz-form-control {
|
251 |
+
height: 46px;
|
252 |
+
padding: 10px 16px;
|
253 |
+
border-radius: 6px;
|
254 |
+
font-size: 18px;
|
255 |
+
line-height: 1.3333333;
|
256 |
+
}
|
257 |
+
|
258 |
+
.fz-form-group-lg select.fz-form-control {
|
259 |
+
height: 46px;
|
260 |
+
line-height: 46px;
|
261 |
+
}
|
262 |
+
|
263 |
+
.fz-form-group-lg textarea.fz-form-control,
|
264 |
+
.fz-form-group-lg select[multiple].fz-form-control {
|
265 |
+
height: auto;
|
266 |
+
}
|
267 |
+
|
268 |
+
.fz-form-group-lg .fz-form-control-static {
|
269 |
+
height: 46px;
|
270 |
+
min-height: 38px;
|
271 |
+
padding: 11px 16px;
|
272 |
+
font-size: 18px;
|
273 |
+
line-height: 1.3333333;
|
274 |
+
}
|
275 |
+
|
276 |
+
.has-feedback {
|
277 |
+
position: relative;
|
278 |
+
}
|
279 |
+
|
280 |
+
.has-feedback .fz-form-control {
|
281 |
+
padding-right: 42.5px;
|
282 |
+
}
|
283 |
+
|
284 |
+
.fz-form-control-feedback {
|
285 |
+
display: block;
|
286 |
+
position: absolute;
|
287 |
+
z-index: 2;
|
288 |
+
top: 0;
|
289 |
+
right: 0;
|
290 |
+
width: 34px;
|
291 |
+
height: 34px;
|
292 |
+
line-height: 34px;
|
293 |
+
text-align: center;
|
294 |
+
pointer-events: none;
|
295 |
+
}
|
296 |
+
|
297 |
+
.input-lg + .fz-form-control-feedback,
|
298 |
+
.fz-input-group-lg + .fz-form-control-feedback,
|
299 |
+
.fz-form-group-lg .fz-form-control + .fz-form-control-feedback {
|
300 |
+
width: 46px;
|
301 |
+
height: 46px;
|
302 |
+
line-height: 46px;
|
303 |
+
}
|
304 |
+
|
305 |
+
.input-sm + .fz-form-control-feedback,
|
306 |
+
.fz-input-group-sm + .fz-form-control-feedback,
|
307 |
+
.fz-form-group-sm .fz-form-control + .fz-form-control-feedback {
|
308 |
+
width: 30px;
|
309 |
+
height: 30px;
|
310 |
+
line-height: 30px;
|
311 |
+
}
|
312 |
+
|
313 |
+
.has-success .help-block,
|
314 |
+
.has-success .control-label,
|
315 |
+
.has-success .radio,
|
316 |
+
.has-success .checkbox,
|
317 |
+
.has-success .radio-inline,
|
318 |
+
.has-success .checkbox-inline,
|
319 |
+
.has-success.radio label,
|
320 |
+
.has-success.checkbox label,
|
321 |
+
.has-success.radio-inline label,
|
322 |
+
.has-success.checkbox-inline label {
|
323 |
+
color: #3c763d;
|
324 |
+
}
|
325 |
+
|
326 |
+
.has-success .fz-form-control {
|
327 |
+
border-color: #3c763d;
|
328 |
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
|
329 |
+
}
|
330 |
+
|
331 |
+
.has-success .fz-form-control:focus {
|
332 |
+
border-color: #2b542c;
|
333 |
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
|
334 |
+
}
|
335 |
+
|
336 |
+
.has-success .fz-input-group-addon {
|
337 |
+
border-color: #3c763d;
|
338 |
+
color: #3c763d;
|
339 |
+
background-color: #dff0d8;
|
340 |
+
}
|
341 |
+
|
342 |
+
.has-success .fz-form-control-feedback {
|
343 |
+
color: #3c763d;
|
344 |
+
}
|
345 |
+
|
346 |
+
.has-warning .help-block,
|
347 |
+
.has-warning .control-label,
|
348 |
+
.has-warning .radio,
|
349 |
+
.has-warning .checkbox,
|
350 |
+
.has-warning .radio-inline,
|
351 |
+
.has-warning .checkbox-inline,
|
352 |
+
.has-warning.radio label,
|
353 |
+
.has-warning.checkbox label,
|
354 |
+
.has-warning.radio-inline label,
|
355 |
+
.has-warning.checkbox-inline label {
|
356 |
+
color: #8a6d3b;
|
357 |
+
}
|
358 |
+
|
359 |
+
.has-warning .fz-form-control {
|
360 |
+
border-color: #8a6d3b;
|
361 |
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
|
362 |
+
}
|
363 |
+
|
364 |
+
.has-warning .fz-form-control:focus {
|
365 |
+
border-color: #66512c;
|
366 |
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
|
367 |
+
}
|
368 |
+
|
369 |
+
.has-warning .fz-input-group-addon {
|
370 |
+
border-color: #8a6d3b;
|
371 |
+
color: #8a6d3b;
|
372 |
+
background-color: #fcf8e3;
|
373 |
+
}
|
374 |
+
|
375 |
+
.has-warning .fz-form-control-feedback {
|
376 |
+
color: #8a6d3b;
|
377 |
+
}
|
378 |
+
|
379 |
+
.has-error .help-block,
|
380 |
+
.has-error .control-label,
|
381 |
+
.has-error .radio,
|
382 |
+
.has-error .checkbox,
|
383 |
+
.has-error .radio-inline,
|
384 |
+
.has-error .checkbox-inline,
|
385 |
+
.has-error.radio label,
|
386 |
+
.has-error.checkbox label,
|
387 |
+
.has-error.radio-inline label,
|
388 |
+
.has-error.checkbox-inline label {
|
389 |
+
color: #a94442;
|
390 |
+
}
|
391 |
+
|
392 |
+
.has-error .fz-form-control {
|
393 |
+
border-color: #a94442;
|
394 |
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
|
395 |
+
}
|
396 |
+
|
397 |
+
.has-error .fz-form-control:focus {
|
398 |
+
border-color: #843534;
|
399 |
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
|
400 |
+
}
|
401 |
+
|
402 |
+
.has-error .fz-input-group-addon {
|
403 |
+
border-color: #a94442;
|
404 |
+
color: #a94442;
|
405 |
+
background-color: #f2dede;
|
406 |
+
}
|
407 |
+
|
408 |
+
.has-error .fz-form-control-feedback {
|
409 |
+
color: #a94442;
|
410 |
+
}
|
411 |
+
|
412 |
+
.has-feedback label ~ .fz-form-control-feedback {
|
413 |
+
top: 25px;
|
414 |
+
}
|
415 |
+
|
416 |
+
.has-feedback label.feedzy-sr-only ~ .fz-form-control-feedback {
|
417 |
+
top: 0;
|
418 |
+
}
|
419 |
+
|
420 |
+
.help-block {
|
421 |
+
display: block;
|
422 |
+
margin-top: 5px;
|
423 |
+
margin-bottom: 10px;
|
424 |
+
color: #737373;
|
425 |
+
}
|
426 |
+
|
427 |
+
@media (min-width: 768px) {
|
428 |
+
.form-inline .fz-form-group {
|
429 |
+
display: inline-block;
|
430 |
+
margin-bottom: 0;
|
431 |
+
vertical-align: middle;
|
432 |
+
}
|
433 |
+
|
434 |
+
.form-inline .fz-form-control {
|
435 |
+
display: inline-block;
|
436 |
+
width: auto;
|
437 |
+
vertical-align: middle;
|
438 |
+
}
|
439 |
+
|
440 |
+
.form-inline .fz-form-control-static {
|
441 |
+
display: inline-block;
|
442 |
+
}
|
443 |
+
|
444 |
+
.form-inline .fz-input-group {
|
445 |
+
display: inline-table;
|
446 |
+
vertical-align: middle;
|
447 |
+
}
|
448 |
+
|
449 |
+
.form-inline .fz-input-group .fz-input-group-addon,
|
450 |
+
.form-inline .fz-input-group .fz-input-group-btn,
|
451 |
+
.form-inline .fz-input-group .fz-form-control {
|
452 |
+
width: auto;
|
453 |
+
}
|
454 |
+
|
455 |
+
.form-inline .fz-input-group > .fz-form-control {
|
456 |
+
width: 100%;
|
457 |
+
}
|
458 |
+
|
459 |
+
.form-inline .control-label {
|
460 |
+
margin-bottom: 0;
|
461 |
+
vertical-align: middle;
|
462 |
+
}
|
463 |
+
|
464 |
+
.form-inline .radio,
|
465 |
+
.form-inline .checkbox {
|
466 |
+
display: inline-block;
|
467 |
+
margin-top: 0;
|
468 |
+
margin-bottom: 0;
|
469 |
+
vertical-align: middle;
|
470 |
+
}
|
471 |
+
|
472 |
+
.form-inline .radio label,
|
473 |
+
.form-inline .checkbox label {
|
474 |
+
padding-left: 0;
|
475 |
+
}
|
476 |
+
|
477 |
+
.form-inline .radio input[type="radio"],
|
478 |
+
.form-inline .checkbox input[type="checkbox"] {
|
479 |
+
position: relative;
|
480 |
+
margin-left: 0;
|
481 |
+
}
|
482 |
+
|
483 |
+
.form-inline .has-feedback .fz-form-control-feedback {
|
484 |
+
top: 0;
|
485 |
+
}
|
486 |
+
}
|
487 |
+
|
488 |
+
.form-horizontal .radio,
|
489 |
+
.form-horizontal .checkbox,
|
490 |
+
.form-horizontal .radio-inline,
|
491 |
+
.form-horizontal .checkbox-inline {
|
492 |
+
margin-top: 0;
|
493 |
+
margin-bottom: 0;
|
494 |
+
padding-top: 7px;
|
495 |
+
}
|
496 |
+
|
497 |
+
.form-horizontal .radio,
|
498 |
+
.form-horizontal .checkbox {
|
499 |
+
min-height: 27px;
|
500 |
+
}
|
501 |
+
|
502 |
+
.form-horizontal .fz-form-group {
|
503 |
+
margin-right: -15px;
|
504 |
+
margin-left: -15px;
|
505 |
+
}
|
506 |
+
|
507 |
+
@media (min-width: 768px) {
|
508 |
+
.form-horizontal .control-label {
|
509 |
+
margin-bottom: 0;
|
510 |
+
padding-top: 7px;
|
511 |
+
text-align: right;
|
512 |
+
}
|
513 |
+
}
|
514 |
+
|
515 |
+
.form-horizontal .has-feedback .fz-form-control-feedback {
|
516 |
+
right: 15px;
|
517 |
+
}
|
518 |
+
|
519 |
+
@media (min-width: 768px) {
|
520 |
+
.form-horizontal .fz-form-group-lg .control-label {
|
521 |
+
padding-top: 11px;
|
522 |
+
font-size: 18px;
|
523 |
+
}
|
524 |
+
}
|
525 |
+
|
526 |
+
@media (min-width: 768px) {
|
527 |
+
.form-horizontal .fz-form-group-sm .control-label {
|
528 |
+
padding-top: 6px;
|
529 |
+
font-size: 12px;
|
530 |
+
}
|
531 |
+
}
|
532 |
+
|
533 |
+
.fz-btn {
|
534 |
+
display: inline-block;
|
535 |
+
margin-bottom: 0;
|
536 |
+
padding: 6px 12px;
|
537 |
+
border: 1px solid transparent;
|
538 |
+
border-radius: 4px;
|
539 |
+
background-image: none;
|
540 |
+
font-size: 14px;
|
541 |
+
font-weight: normal;
|
542 |
+
line-height: 1.42857143;
|
543 |
+
text-align: center;
|
544 |
+
vertical-align: middle;
|
545 |
+
white-space: nowrap;
|
546 |
+
cursor: pointer;
|
547 |
+
-webkit-user-select: none;
|
548 |
+
-moz-user-select: none;
|
549 |
+
-ms-user-select: none;
|
550 |
+
user-select: none;
|
551 |
+
|
552 |
+
-ms-touch-action: manipulation;
|
553 |
+
touch-action: manipulation;
|
554 |
+
}
|
555 |
+
|
556 |
+
.fz-btn:focus,
|
557 |
+
.fz-btn:active:focus,
|
558 |
+
.fz-btn.active:focus,
|
559 |
+
.fz-btn.focus,
|
560 |
+
.fz-btn:active.focus,
|
561 |
+
.fz-btn.active.focus {
|
562 |
+
outline: 5px auto -webkit-focus-ring-color;
|
563 |
+
outline-offset: -2px;
|
564 |
+
}
|
565 |
+
|
566 |
+
.fz-btn:hover,
|
567 |
+
.fz-btn:focus,
|
568 |
+
.fz-btn.focus {
|
569 |
+
color: #333;
|
570 |
+
text-decoration: none;
|
571 |
+
}
|
572 |
+
|
573 |
+
.fz-btn:active,
|
574 |
+
.fz-btn.active {
|
575 |
+
outline: 0;
|
576 |
+
background-image: none;
|
577 |
+
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
|
578 |
+
}
|
579 |
+
|
580 |
+
.fz-btn.disabled,
|
581 |
+
.fz-btn[disabled],
|
582 |
+
fieldset[disabled] .fz-btn {
|
583 |
+
opacity: 0.65;
|
584 |
+
box-shadow: none;
|
585 |
+
cursor: not-allowed;
|
586 |
+
|
587 |
+
filter: alpha(opacity=65);
|
588 |
+
}
|
589 |
+
|
590 |
+
a.fz-btn.disabled,
|
591 |
+
fieldset[disabled] a.fz-btn {
|
592 |
+
pointer-events: none;
|
593 |
+
}
|
594 |
+
|
595 |
+
.fz-btn-default {
|
596 |
+
border-color: #ccc;
|
597 |
+
color: #333;
|
598 |
+
background-color: #fff;
|
599 |
+
}
|
600 |
+
|
601 |
+
.fz-btn-default:focus,
|
602 |
+
.fz-btn-default.focus {
|
603 |
+
border-color: #8c8c8c;
|
604 |
+
color: #333;
|
605 |
+
background-color: #e6e6e6;
|
606 |
+
}
|
607 |
+
|
608 |
+
.fz-btn-default:hover {
|
609 |
+
border-color: #adadad;
|
610 |
+
color: #333;
|
611 |
+
background-color: #e6e6e6;
|
612 |
+
}
|
613 |
+
|
614 |
+
.fz-btn-default:active,
|
615 |
+
.fz-btn-default.active,
|
616 |
+
.open > .dropdown-toggle.fz-btn-default {
|
617 |
+
border-color: #adadad;
|
618 |
+
color: #333;
|
619 |
+
background-color: #e6e6e6;
|
620 |
+
}
|
621 |
+
|
622 |
+
.fz-btn-default:active:hover,
|
623 |
+
.fz-btn-default.active:hover,
|
624 |
+
.open > .dropdown-toggle.fz-btn-default:hover,
|
625 |
+
.fz-btn-default:active:focus,
|
626 |
+
.fz-btn-default.active:focus,
|
627 |
+
.open > .dropdown-toggle.fz-btn-default:focus,
|
628 |
+
.fz-btn-default:active.focus,
|
629 |
+
.fz-btn-default.active.focus,
|
630 |
+
.open > .dropdown-toggle.fz-btn-default.focus {
|
631 |
+
border-color: #8c8c8c;
|
632 |
+
color: #333;
|
633 |
+
background-color: #d4d4d4;
|
634 |
+
}
|
635 |
+
|
636 |
+
.fz-btn-default:active,
|
637 |
+
.fz-btn-default.active,
|
638 |
+
.open > .dropdown-toggle.fz-btn-default {
|
639 |
+
background-image: none;
|
640 |
+
}
|
641 |
+
|
642 |
+
.fz-btn-default.disabled:hover,
|
643 |
+
.fz-btn-default[disabled]:hover,
|
644 |
+
fieldset[disabled] .fz-btn-default:hover,
|
645 |
+
.fz-btn-default.disabled:focus,
|
646 |
+
.fz-btn-default[disabled]:focus,
|
647 |
+
fieldset[disabled] .fz-btn-default:focus,
|
648 |
+
.fz-btn-default.disabled.focus,
|
649 |
+
.fz-btn-default[disabled].focus,
|
650 |
+
fieldset[disabled] .fz-btn-default.focus {
|
651 |
+
border-color: #ccc;
|
652 |
+
background-color: #fff;
|
653 |
+
}
|
654 |
+
|
655 |
+
.fz-btn-default .badge {
|
656 |
+
color: #fff;
|
657 |
+
background-color: #333;
|
658 |
+
}
|
659 |
+
|
660 |
+
.fz-btn-primary {
|
661 |
+
border-color: #2e6da4;
|
662 |
+
color: #fff;
|
663 |
+
background-color: #337ab7;
|
664 |
+
}
|
665 |
+
|
666 |
+
.fz-btn-primary:focus,
|
667 |
+
.fz-btn-primary.focus {
|
668 |
+
border-color: #122b40;
|
669 |
+
color: #fff;
|
670 |
+
background-color: #286090;
|
671 |
+
}
|
672 |
+
|
673 |
+
.fz-btn-primary:hover {
|
674 |
+
border-color: #204d74;
|
675 |
+
color: #fff;
|
676 |
+
background-color: #286090;
|
677 |
+
}
|
678 |
+
|
679 |
+
.fz-btn-primary:active,
|
680 |
+
.fz-btn-primary.active,
|
681 |
+
.open > .dropdown-toggle.fz-btn-primary {
|
682 |
+
border-color: #204d74;
|
683 |
+
color: #fff;
|
684 |
+
background-color: #286090;
|
685 |
+
}
|
686 |
+
|
687 |
+
.fz-btn-primary:active:hover,
|
688 |
+
.fz-btn-primary.active:hover,
|
689 |
+
.open > .dropdown-toggle.fz-btn-primary:hover,
|
690 |
+
.fz-btn-primary:active:focus,
|
691 |
+
.fz-btn-primary.active:focus,
|
692 |
+
.open > .dropdown-toggle.fz-btn-primary:focus,
|
693 |
+
.fz-btn-primary:active.focus,
|
694 |
+
.fz-btn-primary.active.focus,
|
695 |
+
.open > .dropdown-toggle.fz-btn-primary.focus {
|
696 |
+
border-color: #122b40;
|
697 |
+
color: #fff;
|
698 |
+
background-color: #204d74;
|
699 |
+
}
|
700 |
+
|
701 |
+
.fz-btn-primary:active,
|
702 |
+
.fz-btn-primary.active,
|
703 |
+
.open > .dropdown-toggle.fz-btn-primary {
|
704 |
+
background-image: none;
|
705 |
+
}
|
706 |
+
|
707 |
+
.fz-btn-primary.disabled:hover,
|
708 |
+
.fz-btn-primary[disabled]:hover,
|
709 |
+
fieldset[disabled] .fz-btn-primary:hover,
|
710 |
+
.fz-btn-primary.disabled:focus,
|
711 |
+
.fz-btn-primary[disabled]:focus,
|
712 |
+
fieldset[disabled] .fz-btn-primary:focus,
|
713 |
+
.fz-btn-primary.disabled.focus,
|
714 |
+
.fz-btn-primary[disabled].focus,
|
715 |
+
fieldset[disabled] .fz-btn-primary.focus {
|
716 |
+
border-color: #2e6da4;
|
717 |
+
background-color: #337ab7;
|
718 |
+
}
|
719 |
+
|
720 |
+
.fz-btn-primary .badge {
|
721 |
+
color: #337ab7;
|
722 |
+
background-color: #fff;
|
723 |
+
}
|
724 |
+
|
725 |
+
.fz-btn-success {
|
726 |
+
border-color: #4cae4c;
|
727 |
+
color: #fff;
|
728 |
+
background-color: #5cb85c;
|
729 |
+
}
|
730 |
+
|
731 |
+
.fz-btn-success:focus,
|
732 |
+
.fz-btn-success.focus {
|
733 |
+
border-color: #255625;
|
734 |
+
color: #fff;
|
735 |
+
background-color: #449d44;
|
736 |
+
}
|
737 |
+
|
738 |
+
.fz-btn-success:hover {
|
739 |
+
border-color: #398439;
|
740 |
+
color: #fff;
|
741 |
+
background-color: #449d44;
|
742 |
+
}
|
743 |
+
|
744 |
+
.fz-btn-success:active,
|
745 |
+
.fz-btn-success.active,
|
746 |
+
.open > .dropdown-toggle.fz-btn-success {
|
747 |
+
border-color: #398439;
|
748 |
+
color: #fff;
|
749 |
+
background-color: #449d44;
|
750 |
+
}
|
751 |
+
|
752 |
+
.fz-btn-success:active:hover,
|
753 |
+
.fz-btn-success.active:hover,
|
754 |
+
.open > .dropdown-toggle.fz-btn-success:hover,
|
755 |
+
.fz-btn-success:active:focus,
|
756 |
+
.fz-btn-success.active:focus,
|
757 |
+
.open > .dropdown-toggle.fz-btn-success:focus,
|
758 |
+
.fz-btn-success:active.focus,
|
759 |
+
.fz-btn-success.active.focus,
|
760 |
+
.open > .dropdown-toggle.fz-btn-success.focus {
|
761 |
+
border-color: #255625;
|
762 |
+
color: #fff;
|
763 |
+
background-color: #398439;
|
764 |
+
}
|
765 |
+
|
766 |
+
.fz-btn-success:active,
|
767 |
+
.fz-btn-success.active,
|
768 |
+
.open > .dropdown-toggle.fz-btn-success {
|
769 |
+
background-image: none;
|
770 |
+
}
|
771 |
+
|
772 |
+
.fz-btn-success.disabled:hover,
|
773 |
+
.fz-btn-success[disabled]:hover,
|
774 |
+
fieldset[disabled] .fz-btn-success:hover,
|
775 |
+
.fz-btn-success.disabled:focus,
|
776 |
+
.fz-btn-success[disabled]:focus,
|
777 |
+
fieldset[disabled] .fz-btn-success:focus,
|
778 |
+
.fz-btn-success.disabled.focus,
|
779 |
+
.fz-btn-success[disabled].focus,
|
780 |
+
fieldset[disabled] .fz-btn-success.focus {
|
781 |
+
border-color: #4cae4c;
|
782 |
+
background-color: #5cb85c;
|
783 |
+
}
|
784 |
+
|
785 |
+
.fz-btn-success .badge {
|
786 |
+
color: #5cb85c;
|
787 |
+
background-color: #fff;
|
788 |
+
}
|
789 |
+
|
790 |
+
.fz-btn-info {
|
791 |
+
border-color: #46b8da;
|
792 |
+
color: #fff;
|
793 |
+
background-color: #5bc0de;
|
794 |
+
}
|
795 |
+
|
796 |
+
.fz-btn-info:focus,
|
797 |
+
.fz-btn-info.focus {
|
798 |
+
border-color: #1b6d85;
|
799 |
+
color: #fff;
|
800 |
+
background-color: #31b0d5;
|
801 |
+
}
|
802 |
+
|
803 |
+
.fz-btn-info:hover {
|
804 |
+
border-color: #269abc;
|
805 |
+
color: #fff;
|
806 |
+
background-color: #31b0d5;
|
807 |
+
}
|
808 |
+
|
809 |
+
.fz-btn-info:active,
|
810 |
+
.fz-btn-info.active,
|
811 |
+
.open > .dropdown-toggle.fz-btn-info {
|
812 |
+
border-color: #269abc;
|
813 |
+
color: #fff;
|
814 |
+
background-color: #31b0d5;
|
815 |
+
}
|
816 |
+
|
817 |
+
.fz-btn-info:active:hover,
|
818 |
+
.fz-btn-info.active:hover,
|
819 |
+
.open > .dropdown-toggle.fz-btn-info:hover,
|
820 |
+
.fz-btn-info:active:focus,
|
821 |
+
.fz-btn-info.active:focus,
|
822 |
+
.open > .dropdown-toggle.fz-btn-info:focus,
|
823 |
+
.fz-btn-info:active.focus,
|
824 |
+
.fz-btn-info.active.focus,
|
825 |
+
.open > .dropdown-toggle.fz-btn-info.focus {
|
826 |
+
border-color: #1b6d85;
|
827 |
+
color: #fff;
|
828 |
+
background-color: #269abc;
|
829 |
+
}
|
830 |
+
|
831 |
+
.fz-btn-info:active,
|
832 |
+
.fz-btn-info.active,
|
833 |
+
.open > .dropdown-toggle.fz-btn-info {
|
834 |
+
background-image: none;
|
835 |
+
}
|
836 |
+
|
837 |
+
.fz-btn-info.disabled:hover,
|
838 |
+
.fz-btn-info[disabled]:hover,
|
839 |
+
fieldset[disabled] .fz-btn-info:hover,
|
840 |
+
.fz-btn-info.disabled:focus,
|
841 |
+
.fz-btn-info[disabled]:focus,
|
842 |
+
fieldset[disabled] .fz-btn-info:focus,
|
843 |
+
.fz-btn-info.disabled.focus,
|
844 |
+
.fz-btn-info[disabled].focus,
|
845 |
+
fieldset[disabled] .fz-btn-info.focus {
|
846 |
+
border-color: #46b8da;
|
847 |
+
background-color: #5bc0de;
|
848 |
+
}
|
849 |
+
|
850 |
+
.fz-btn-info .badge {
|
851 |
+
color: #5bc0de;
|
852 |
+
background-color: #fff;
|
853 |
+
}
|
854 |
+
|
855 |
+
.fz-btn-warning {
|
856 |
+
border-color: #eea236;
|
857 |
+
color: #fff;
|
858 |
+
background-color: #f0ad4e;
|
859 |
+
}
|
860 |
+
|
861 |
+
.fz-btn-warning:focus,
|
862 |
+
.fz-btn-warning.focus {
|
863 |
+
border-color: #985f0d;
|
864 |
+
color: #fff;
|
865 |
+
background-color: #ec971f;
|
866 |
+
}
|
867 |
+
|
868 |
+
.fz-btn-warning:hover {
|
869 |
+
border-color: #d58512;
|
870 |
+
color: #fff;
|
871 |
+
background-color: #ec971f;
|
872 |
+
}
|
873 |
+
|
874 |
+
.fz-btn-warning:active,
|
875 |
+
.fz-btn-warning.active,
|
876 |
+
.open > .dropdown-toggle.fz-btn-warning {
|
877 |
+
border-color: #d58512;
|
878 |
+
color: #fff;
|
879 |
+
background-color: #ec971f;
|
880 |
+
}
|
881 |
+
|
882 |
+
.fz-btn-warning:active:hover,
|
883 |
+
.fz-btn-warning.active:hover,
|
884 |
+
.open > .dropdown-toggle.fz-btn-warning:hover,
|
885 |
+
.fz-btn-warning:active:focus,
|
886 |
+
.fz-btn-warning.active:focus,
|
887 |
+
.open > .dropdown-toggle.fz-btn-warning:focus,
|
888 |
+
.fz-btn-warning:active.focus,
|
889 |
+
.fz-btn-warning.active.focus,
|
890 |
+
.open > .dropdown-toggle.fz-btn-warning.focus {
|
891 |
+
border-color: #985f0d;
|
892 |
+
color: #fff;
|
893 |
+
background-color: #d58512;
|
894 |
+
}
|
895 |
+
|
896 |
+
.fz-btn-warning:active,
|
897 |
+
.fz-btn-warning.active,
|
898 |
+
.open > .dropdown-toggle.fz-btn-warning {
|
899 |
+
background-image: none;
|
900 |
+
}
|
901 |
+
|
902 |
+
.fz-btn-warning.disabled:hover,
|
903 |
+
.fz-btn-warning[disabled]:hover,
|
904 |
+
fieldset[disabled] .fz-btn-warning:hover,
|
905 |
+
.fz-btn-warning.disabled:focus,
|
906 |
+
.fz-btn-warning[disabled]:focus,
|
907 |
+
fieldset[disabled] .fz-btn-warning:focus,
|
908 |
+
.fz-btn-warning.disabled.focus,
|
909 |
+
.fz-btn-warning[disabled].focus,
|
910 |
+
fieldset[disabled] .fz-btn-warning.focus {
|
911 |
+
border-color: #eea236;
|
912 |
+
background-color: #f0ad4e;
|
913 |
+
}
|
914 |
+
|
915 |
+
.fz-btn-warning .badge {
|
916 |
+
color: #f0ad4e;
|
917 |
+
background-color: #fff;
|
918 |
+
}
|
919 |
+
|
920 |
+
.fz-btn-danger {
|
921 |
+
border-color: #d43f3a;
|
922 |
+
color: #fff;
|
923 |
+
background-color: #d9534f;
|
924 |
+
}
|
925 |
+
|
926 |
+
.fz-btn-danger:focus,
|
927 |
+
.fz-btn-danger.focus {
|
928 |
+
border-color: #761c19;
|
929 |
+
color: #fff;
|
930 |
+
background-color: #c9302c;
|
931 |
+
}
|
932 |
+
|
933 |
+
.fz-btn-danger:hover {
|
934 |
+
border-color: #ac2925;
|
935 |
+
color: #fff;
|
936 |
+
background-color: #c9302c;
|
937 |
+
}
|
938 |
+
|
939 |
+
.fz-btn-danger:active,
|
940 |
+
.fz-btn-danger.active,
|
941 |
+
.open > .dropdown-toggle.fz-btn-danger {
|
942 |
+
border-color: #ac2925;
|
943 |
+
color: #fff;
|
944 |
+
background-color: #c9302c;
|
945 |
+
}
|
946 |
+
|
947 |
+
.fz-btn-danger:active:hover,
|
948 |
+
.fz-btn-danger.active:hover,
|
949 |
+
.open > .dropdown-toggle.fz-btn-danger:hover,
|
950 |
+
.fz-btn-danger:active:focus,
|
951 |
+
.fz-btn-danger.active:focus,
|
952 |
+
.open > .dropdown-toggle.fz-btn-danger:focus,
|
953 |
+
.fz-btn-danger:active.focus,
|
954 |
+
.fz-btn-danger.active.focus,
|
955 |
+
.open > .dropdown-toggle.fz-btn-danger.focus {
|
956 |
+
border-color: #761c19;
|
957 |
+
color: #fff;
|
958 |
+
background-color: #ac2925;
|
959 |
+
}
|
960 |
+
|
961 |
+
.fz-btn-danger:active,
|
962 |
+
.fz-btn-danger.active,
|
963 |
+
.open > .dropdown-toggle.fz-btn-danger {
|
964 |
+
background-image: none;
|
965 |
+
}
|
966 |
+
|
967 |
+
.fz-btn-danger.disabled:hover,
|
968 |
+
.fz-btn-danger[disabled]:hover,
|
969 |
+
fieldset[disabled] .fz-btn-danger:hover,
|
970 |
+
.fz-btn-danger.disabled:focus,
|
971 |
+
.fz-btn-danger[disabled]:focus,
|
972 |
+
fieldset[disabled] .fz-btn-danger:focus,
|
973 |
+
.fz-btn-danger.disabled.focus,
|
974 |
+
.fz-btn-danger[disabled].focus,
|
975 |
+
fieldset[disabled] .fz-btn-danger.focus {
|
976 |
+
border-color: #d43f3a;
|
977 |
+
background-color: #d9534f;
|
978 |
+
}
|
979 |
+
|
980 |
+
.fz-btn-danger .badge {
|
981 |
+
color: #d9534f;
|
982 |
+
background-color: #fff;
|
983 |
+
}
|
984 |
+
|
985 |
+
.fz-btn-link {
|
986 |
+
border-radius: 0;
|
987 |
+
color: #337ab7;
|
988 |
+
font-weight: normal;
|
989 |
+
}
|
990 |
+
|
991 |
+
.fz-btn-link,
|
992 |
+
.fz-btn-link:active,
|
993 |
+
.fz-btn-link.active,
|
994 |
+
.fz-btn-link[disabled],
|
995 |
+
fieldset[disabled] .fz-btn-link {
|
996 |
+
background-color: transparent;
|
997 |
+
box-shadow: none;
|
998 |
+
}
|
999 |
+
|
1000 |
+
.fz-btn-link,
|
1001 |
+
.fz-btn-link:hover,
|
1002 |
+
.fz-btn-link:focus,
|
1003 |
+
.fz-btn-link:active {
|
1004 |
+
border-color: transparent;
|
1005 |
+
}
|
1006 |
+
|
1007 |
+
.fz-btn-link:hover,
|
1008 |
+
.fz-btn-link:focus {
|
1009 |
+
color: #23527c;
|
1010 |
+
background-color: transparent;
|
1011 |
+
text-decoration: underline;
|
1012 |
+
}
|
1013 |
+
|
1014 |
+
.fz-btn-link[disabled]:hover,
|
1015 |
+
fieldset[disabled] .fz-btn-link:hover,
|
1016 |
+
.fz-btn-link[disabled]:focus,
|
1017 |
+
fieldset[disabled] .fz-btn-link:focus {
|
1018 |
+
color: #777;
|
1019 |
+
text-decoration: none;
|
1020 |
+
}
|
1021 |
+
|
1022 |
+
.fz-btn-lg,
|
1023 |
+
.fz-btn-group-lg > .fz-btn {
|
1024 |
+
padding: 10px 16px;
|
1025 |
+
border-radius: 6px;
|
1026 |
+
font-size: 18px;
|
1027 |
+
line-height: 1.3333333;
|
1028 |
+
}
|
1029 |
+
|
1030 |
+
.fz-btn-sm,
|
1031 |
+
.fz-btn-group-sm > .fz-btn {
|
1032 |
+
padding: 5px 10px;
|
1033 |
+
border-radius: 3px;
|
1034 |
+
font-size: 12px;
|
1035 |
+
line-height: 1.5;
|
1036 |
+
}
|
1037 |
+
|
1038 |
+
.fz-btn-xs,
|
1039 |
+
.fz-btn-group-xs > .fz-btn {
|
1040 |
+
padding: 1px 5px;
|
1041 |
+
border-radius: 3px;
|
1042 |
+
font-size: 12px;
|
1043 |
+
line-height: 1.5;
|
1044 |
+
}
|
1045 |
+
|
1046 |
+
.fz-btn-block {
|
1047 |
+
display: block;
|
1048 |
+
width: 100%;
|
1049 |
+
}
|
1050 |
+
|
1051 |
+
.fz-btn-block + .fz-btn-block {
|
1052 |
+
margin-top: 5px;
|
1053 |
+
}
|
1054 |
+
|
1055 |
+
input[type="submit"].fz-btn-block,
|
1056 |
+
input[type="reset"].fz-btn-block,
|
1057 |
+
input[type="button"].fz-btn-block {
|
1058 |
+
width: 100%;
|
1059 |
+
}
|
1060 |
+
|
1061 |
+
.caret {
|
1062 |
+
display: inline-block;
|
1063 |
+
width: 0;
|
1064 |
+
height: 0;
|
1065 |
+
margin-left: 2px;
|
1066 |
+
border-top: 4px dashed;
|
1067 |
+
border-top: 4px solid \9;
|
1068 |
+
border-right: 4px solid transparent;
|
1069 |
+
border-left: 4px solid transparent;
|
1070 |
+
vertical-align: middle;
|
1071 |
+
}
|
1072 |
+
|
1073 |
+
.dropup,
|
1074 |
+
.dropdown {
|
1075 |
+
position: relative;
|
1076 |
+
}
|
1077 |
+
|
1078 |
+
.dropdown-toggle:focus {
|
1079 |
+
outline: 0;
|
1080 |
+
}
|
1081 |
+
|
1082 |
+
.dropdown-menu {
|
1083 |
+
display: none;
|
1084 |
+
float: left;
|
1085 |
+
position: absolute;
|
1086 |
+
z-index: 1000;
|
1087 |
+
top: 40px;
|
1088 |
+
left: 0;
|
1089 |
+
min-width: 160px;
|
1090 |
+
/* fallback if 100% not supported */
|
1091 |
+
min-width: 100%;
|
1092 |
+
margin: 2px 0 0;
|
1093 |
+
padding: 5px 0;
|
1094 |
+
border: 1px solid #ccc;
|
1095 |
+
border: 1px solid rgba(0, 0, 0, 0.15);
|
1096 |
+
border-radius: 4px;
|
1097 |
+
background-color: #fff;
|
1098 |
+
background-clip: padding-box;
|
1099 |
+
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
|
1100 |
+
font-size: 14px;
|
1101 |
+
text-align: left;
|
1102 |
+
list-style: none;
|
1103 |
+
}
|
1104 |
+
|
1105 |
+
.dropdown-menu.pull-right {
|
1106 |
+
right: 0;
|
1107 |
+
left: auto;
|
1108 |
+
}
|
1109 |
+
|
1110 |
+
.dropdown-menu .divider {
|
1111 |
+
overflow: hidden;
|
1112 |
+
height: 1px;
|
1113 |
+
margin: 9px 0;
|
1114 |
+
background-color: #e5e5e5;
|
1115 |
+
}
|
1116 |
+
|
1117 |
+
.dropdown-menu > li > a {
|
1118 |
+
display: block;
|
1119 |
+
clear: both;
|
1120 |
+
padding: 3px 20px;
|
1121 |
+
color: #333;
|
1122 |
+
font-weight: normal;
|
1123 |
+
line-height: 1.42857143;
|
1124 |
+
white-space: nowrap;
|
1125 |
+
}
|
1126 |
+
|
1127 |
+
.dropdown-menu > li > a:hover,
|
1128 |
+
.dropdown-menu > li > a:focus {
|
1129 |
+
color: #262626;
|
1130 |
+
background-color: #f5f5f5;
|
1131 |
+
text-decoration: none;
|
1132 |
+
}
|
1133 |
+
|
1134 |
+
.dropdown-menu > .active > a,
|
1135 |
+
.dropdown-menu > .active > a:hover,
|
1136 |
+
.dropdown-menu > .active > a:focus {
|
1137 |
+
outline: 0;
|
1138 |
+
color: #fff;
|
1139 |
+
background-color: #337ab7;
|
1140 |
+
text-decoration: none;
|
1141 |
+
}
|
1142 |
+
|
1143 |
+
.dropdown-menu > .disabled > a,
|
1144 |
+
.dropdown-menu > .disabled > a:hover,
|
1145 |
+
.dropdown-menu > .disabled > a:focus {
|
1146 |
+
color: #777;
|
1147 |
+
}
|
1148 |
+
|
1149 |
+
.dropdown-menu > .disabled > a:hover,
|
1150 |
+
.dropdown-menu > .disabled > a:focus {
|
1151 |
+
background-color: transparent;
|
1152 |
+
background-image: none;
|
1153 |
+
text-decoration: none;
|
1154 |
+
cursor: not-allowed;
|
1155 |
+
|
1156 |
+
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
1157 |
+
}
|
1158 |
+
|
1159 |
+
.open > .dropdown-menu {
|
1160 |
+
display: block;
|
1161 |
+
}
|
1162 |
+
|
1163 |
+
.open > a {
|
1164 |
+
outline: 0;
|
1165 |
+
}
|
1166 |
+
|
1167 |
+
.dropdown-menu-right {
|
1168 |
+
right: 0;
|
1169 |
+
left: auto;
|
1170 |
+
}
|
1171 |
+
|
1172 |
+
.dropdown-menu-left {
|
1173 |
+
right: auto;
|
1174 |
+
left: 0;
|
1175 |
+
}
|
1176 |
+
|
1177 |
+
.dropdown-header {
|
1178 |
+
display: block;
|
1179 |
+
padding: 3px 20px;
|
1180 |
+
color: #777;
|
1181 |
+
font-size: 12px;
|
1182 |
+
line-height: 1.42857143;
|
1183 |
+
white-space: nowrap;
|
1184 |
+
}
|
1185 |
+
|
1186 |
+
.dropdown-backdrop {
|
1187 |
+
position: fixed;
|
1188 |
+
z-index: 990;
|
1189 |
+
top: 0;
|
1190 |
+
right: 0;
|
1191 |
+
bottom: 0;
|
1192 |
+
left: 0;
|
1193 |
+
}
|
1194 |
+
|
1195 |
+
.pull-right > .dropdown-menu {
|
1196 |
+
right: 0;
|
1197 |
+
left: auto;
|
1198 |
+
}
|
1199 |
+
|
1200 |
+
.dropup .caret,
|
1201 |
+
.navbar-fixed-bottom .dropdown .caret {
|
1202 |
+
border-top: 0;
|
1203 |
+
border-bottom: 4px dashed;
|
1204 |
+
border-bottom: 4px solid \9;
|
1205 |
+
content: "";
|
1206 |
+
}
|
1207 |
+
|
1208 |
+
.dropup .dropdown-menu,
|
1209 |
+
.navbar-fixed-bottom .dropdown .dropdown-menu {
|
1210 |
+
top: auto;
|
1211 |
+
bottom: 100%;
|
1212 |
+
margin-bottom: 2px;
|
1213 |
+
}
|
1214 |
+
|
1215 |
+
@media (min-width: 768px) {
|
1216 |
+
.navbar-right .dropdown-menu {
|
1217 |
+
right: 0;
|
1218 |
+
left: auto;
|
1219 |
+
}
|
1220 |
+
|
1221 |
+
.navbar-right .dropdown-menu-left {
|
1222 |
+
right: auto;
|
1223 |
+
left: 0;
|
1224 |
+
}
|
1225 |
+
}
|
1226 |
+
|
1227 |
+
.fz-btn-group,
|
1228 |
+
.fz-btn-group-vertical {
|
1229 |
+
display: inline-block;
|
1230 |
+
position: relative;
|
1231 |
+
vertical-align: middle;
|
1232 |
+
}
|
1233 |
+
|
1234 |
+
.fz-btn-group > .fz-btn,
|
1235 |
+
.fz-btn-group-vertical > .fz-btn {
|
1236 |
+
float: left;
|
1237 |
+
position: relative;
|
1238 |
+
}
|
1239 |
+
|
1240 |
+
.fz-btn-group > .fz-btn:hover,
|
1241 |
+
.fz-btn-group-vertical > .fz-btn:hover,
|
1242 |
+
.fz-btn-group > .fz-btn:focus,
|
1243 |
+
.fz-btn-group-vertical > .fz-btn:focus,
|
1244 |
+
.fz-btn-group > .fz-btn:active,
|
1245 |
+
.fz-btn-group-vertical > .fz-btn:active,
|
1246 |
+
.fz-btn-group > .fz-btn.active,
|
1247 |
+
.fz-btn-group-vertical > .fz-btn.active {
|
1248 |
+
z-index: 2;
|
1249 |
+
}
|
1250 |
+
|
1251 |
+
.fz-btn-group .fz-btn + .fz-btn,
|
1252 |
+
.fz-btn-group .fz-btn + .fz-btn-group,
|
1253 |
+
.fz-btn-group .fz-btn-group + .fz-btn,
|
1254 |
+
.fz-btn-group .fz-btn-group + .fz-btn-group {
|
1255 |
+
margin-left: -1px;
|
1256 |
+
}
|
1257 |
+
|
1258 |
+
.fz-btn-toolbar {
|
1259 |
+
margin-left: -5px;
|
1260 |
+
}
|
1261 |
+
|
1262 |
+
.fz-btn-toolbar .fz-btn,
|
1263 |
+
.fz-btn-toolbar .fz-btn-group,
|
1264 |
+
.fz-btn-toolbar .fz-input-group {
|
1265 |
+
float: left;
|
1266 |
+
}
|
1267 |
+
|
1268 |
+
.fz-btn-toolbar > .fz-btn,
|
1269 |
+
.fz-btn-toolbar > .fz-btn-group,
|
1270 |
+
.fz-btn-toolbar > .fz-input-group {
|
1271 |
+
margin-left: 5px;
|
1272 |
+
}
|
1273 |
+
|
1274 |
+
.fz-btn-group > .fz-btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
|
1275 |
+
border-radius: 0;
|
1276 |
+
}
|
1277 |
+
|
1278 |
+
.fz-btn-group > .fz-btn:first-child {
|
1279 |
+
margin-left: 0;
|
1280 |
+
}
|
1281 |
+
|
1282 |
+
.fz-btn-group > .fz-btn:first-child:not(:last-child):not(.dropdown-toggle) {
|
1283 |
+
border-top-right-radius: 0;
|
1284 |
+
border-bottom-right-radius: 0;
|
1285 |
+
}
|
1286 |
+
|
1287 |
+
.fz-btn-group > .fz-btn:last-child:not(:first-child),
|
1288 |
+
.fz-btn-group > .dropdown-toggle:not(:first-child) {
|
1289 |
+
border-top-left-radius: 0;
|
1290 |
+
border-bottom-left-radius: 0;
|
1291 |
+
}
|
1292 |
+
|
1293 |
+
.fz-btn-group > .fz-btn-group {
|
1294 |
+
float: left;
|
1295 |
+
}
|
1296 |
+
|
1297 |
+
.fz-btn-group > .fz-btn-group:not(:first-child):not(:last-child) > .fz-btn {
|
1298 |
+
border-radius: 0;
|
1299 |
+
}
|
1300 |
+
|
1301 |
+
.fz-btn-group > .fz-btn-group:first-child:not(:last-child) > .fz-btn:last-child,
|
1302 |
+
.fz-btn-group > .fz-btn-group:first-child:not(:last-child) > .dropdown-toggle {
|
1303 |
+
border-top-right-radius: 0;
|
1304 |
+
border-bottom-right-radius: 0;
|
1305 |
+
}
|
1306 |
+
|
1307 |
+
.fz-btn-group > .fz-btn-group:last-child:not(:first-child) > .fz-btn:first-child {
|
1308 |
+
border-top-left-radius: 0;
|
1309 |
+
border-bottom-left-radius: 0;
|
1310 |
+
}
|
1311 |
+
|
1312 |
+
.fz-btn-group .dropdown-toggle:active,
|
1313 |
+
.fz-btn-group.open .dropdown-toggle {
|
1314 |
+
outline: 0;
|
1315 |
+
}
|
1316 |
+
|
1317 |
+
.fz-btn-group > .fz-btn + .dropdown-toggle {
|
1318 |
+
padding-right: 8px;
|
1319 |
+
padding-left: 8px;
|
1320 |
+
}
|
1321 |
+
|
1322 |
+
.fz-btn-group > .fz-btn-lg + .dropdown-toggle {
|
1323 |
+
padding-right: 12px;
|
1324 |
+
padding-left: 12px;
|
1325 |
+
}
|
1326 |
+
|
1327 |
+
.fz-btn-group.open .dropdown-toggle {
|
1328 |
+
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
|
1329 |
+
}
|
1330 |
+
|
1331 |
+
.fz-btn-group.open .dropdown-toggle.fz-btn-link {
|
1332 |
+
box-shadow: none;
|
1333 |
+
}
|
1334 |
+
|
1335 |
+
.fz-btn .caret {
|
1336 |
+
margin-left: 0;
|
1337 |
+
}
|
1338 |
+
|
1339 |
+
.fz-btn-lg .caret {
|
1340 |
+
border-width: 5px 5px 0;
|
1341 |
+
border-bottom-width: 0;
|
1342 |
+
}
|
1343 |
+
|
1344 |
+
.dropup .fz-btn-lg .caret {
|
1345 |
+
border-width: 0 5px 5px;
|
1346 |
+
}
|
1347 |
+
|
1348 |
+
.fz-btn-group-vertical > .fz-btn,
|
1349 |
+
.fz-btn-group-vertical > .fz-btn-group,
|
1350 |
+
.fz-btn-group-vertical > .fz-btn-group > .fz-btn {
|
1351 |
+
display: block;
|
1352 |
+
float: none;
|
1353 |
+
width: 100%;
|
1354 |
+
max-width: 100%;
|
1355 |
+
}
|
1356 |
+
|
1357 |
+
.fz-btn-group-vertical > .fz-btn-group > .fz-btn {
|
1358 |
+
float: none;
|
1359 |
+
}
|
1360 |
+
|
1361 |
+
.fz-btn-group-vertical > .fz-btn + .fz-btn,
|
1362 |
+
.fz-btn-group-vertical > .fz-btn + .fz-btn-group,
|
1363 |
+
.fz-btn-group-vertical > .fz-btn-group + .fz-btn,
|
1364 |
+
.fz-btn-group-vertical > .fz-btn-group + .fz-btn-group {
|
1365 |
+
margin-top: -1px;
|
1366 |
+
margin-left: 0;
|
1367 |
+
}
|
1368 |
+
|
1369 |
+
.fz-btn-group-vertical > .fz-btn:not(:first-child):not(:last-child) {
|
1370 |
+
border-radius: 0;
|
1371 |
+
}
|
1372 |
+
|
1373 |
+
.fz-btn-group-vertical > .fz-btn:first-child:not(:last-child) {
|
1374 |
+
border-top-left-radius: 4px;
|
1375 |
+
border-top-right-radius: 4px;
|
1376 |
+
border-bottom-right-radius: 0;
|
1377 |
+
border-bottom-left-radius: 0;
|
1378 |
+
}
|
1379 |
+
|
1380 |
+
.fz-btn-group-vertical > .fz-btn:last-child:not(:first-child) {
|
1381 |
+
border-top-left-radius: 0;
|
1382 |
+
border-top-right-radius: 0;
|
1383 |
+
border-bottom-right-radius: 4px;
|
1384 |
+
border-bottom-left-radius: 4px;
|
1385 |
+
}
|
1386 |
+
|
1387 |
+
.fz-btn-group-vertical > .fz-btn-group:not(:first-child):not(:last-child) > .fz-btn {
|
1388 |
+
border-radius: 0;
|
1389 |
+
}
|
1390 |
+
|
1391 |
+
.fz-btn-group-vertical > .fz-btn-group:first-child:not(:last-child) > .fz-btn:last-child,
|
1392 |
+
.fz-btn-group-vertical > .fz-btn-group:first-child:not(:last-child) > .dropdown-toggle {
|
1393 |
+
border-bottom-right-radius: 0;
|
1394 |
+
border-bottom-left-radius: 0;
|
1395 |
+
}
|
1396 |
+
|
1397 |
+
.fz-btn-group-vertical > .fz-btn-group:last-child:not(:first-child) > .fz-btn:first-child {
|
1398 |
+
border-top-left-radius: 0;
|
1399 |
+
border-top-right-radius: 0;
|
1400 |
+
}
|
1401 |
+
|
1402 |
+
.fz-btn-group-justified {
|
1403 |
+
display: table;
|
1404 |
+
width: 100%;
|
1405 |
+
table-layout: fixed;
|
1406 |
+
border-collapse: separate;
|
1407 |
+
}
|
1408 |
+
|
1409 |
+
.fz-btn-group-justified > .fz-btn,
|
1410 |
+
.fz-btn-group-justified > .fz-btn-group {
|
1411 |
+
display: table-cell;
|
1412 |
+
float: none;
|
1413 |
+
width: 1%;
|
1414 |
+
}
|
1415 |
+
|
1416 |
+
.fz-btn-group-justified > .fz-btn-group .fz-btn {
|
1417 |
+
width: 100%;
|
1418 |
+
}
|
1419 |
+
|
1420 |
+
.fz-btn-group-justified > .fz-btn-group .dropdown-menu {
|
1421 |
+
left: auto;
|
1422 |
+
}
|
1423 |
+
|
1424 |
+
[data-toggle="buttons"] > .fz-btn input[type="radio"],
|
1425 |
+
[data-toggle="buttons"] > .fz-btn-group > .fz-btn input[type="radio"],
|
1426 |
+
[data-toggle="buttons"] > .fz-btn input[type="checkbox"],
|
1427 |
+
[data-toggle="buttons"] > .fz-btn-group > .fz-btn input[type="checkbox"] {
|
1428 |
+
clip: rect(0, 0, 0, 0);
|
1429 |
+
position: absolute;
|
1430 |
+
pointer-events: none;
|
1431 |
+
}
|
1432 |
+
|
1433 |
+
.fz-input-group {
|
1434 |
+
display: table;
|
1435 |
+
position: relative;
|
1436 |
+
border-collapse: separate;
|
1437 |
+
}
|
1438 |
+
|
1439 |
+
.fz-input-group[class*="col-"] {
|
1440 |
+
float: none;
|
1441 |
+
padding-right: 0;
|
1442 |
+
padding-left: 0;
|
1443 |
+
}
|
1444 |
+
|
1445 |
+
.fz-input-group .fz-form-control {
|
1446 |
+
float: left;
|
1447 |
+
position: relative;
|
1448 |
+
z-index: 2;
|
1449 |
+
width: 100%;
|
1450 |
+
margin-bottom: 0;
|
1451 |
+
}
|
1452 |
+
|
1453 |
+
.fz-input-group .fz-form-control:focus {
|
1454 |
+
z-index: 3;
|
1455 |
+
}
|
1456 |
+
|
1457 |
+
.fz-input-group-lg > .fz-form-control,
|
1458 |
+
.fz-input-group-lg > .fz-input-group-addon,
|
1459 |
+
.fz-input-group-lg > .fz-input-group-btn > .fz-btn {
|
1460 |
+
height: 46px;
|
1461 |
+
padding: 10px 16px;
|
1462 |
+
border-radius: 6px;
|
1463 |
+
font-size: 18px;
|
1464 |
+
line-height: 1.3333333;
|
1465 |
+
}
|
1466 |
+
|
1467 |
+
select.fz-input-group-lg > .fz-form-control,
|
1468 |
+
select.fz-input-group-lg > .fz-input-group-addon,
|
1469 |
+
select.fz-input-group-lg > .fz-input-group-btn > .fz-btn {
|
1470 |
+
height: 46px;
|
1471 |
+
line-height: 46px;
|
1472 |
+
}
|
1473 |
+
|
1474 |
+
textarea.fz-input-group-lg > .fz-form-control,
|
1475 |
+
textarea.fz-input-group-lg > .fz-input-group-addon,
|
1476 |
+
textarea.fz-input-group-lg > .fz-input-group-btn > .fz-btn,
|
1477 |
+
select[multiple].fz-input-group-lg > .fz-form-control,
|
1478 |
+
select[multiple].fz-input-group-lg > .fz-input-group-addon,
|
1479 |
+
select[multiple].fz-input-group-lg > .fz-input-group-btn > .fz-btn {
|
1480 |
+
height: auto;
|
1481 |
+
}
|
1482 |
+
|
1483 |
+
.fz-input-group-sm > .fz-form-control,
|
1484 |
+
.fz-input-group-sm > .fz-input-group-addon,
|
1485 |
+
.fz-input-group-sm > .fz-input-group-btn > .fz-btn {
|
1486 |
+
height: 30px;
|
1487 |
+
padding: 5px 10px;
|
1488 |
+
border-radius: 3px;
|
1489 |
+
font-size: 12px;
|
1490 |
+
line-height: 1.5;
|
1491 |
+
}
|
1492 |
+
|
1493 |
+
select.fz-input-group-sm > .fz-form-control,
|
1494 |
+
select.fz-input-group-sm > .fz-input-group-addon,
|
1495 |
+
select.fz-input-group-sm > .fz-input-group-btn > .fz-btn {
|
1496 |
+
height: 30px;
|
1497 |
+
line-height: 30px;
|
1498 |
+
}
|
1499 |
+
|
1500 |
+
textarea.fz-input-group-sm > .fz-form-control,
|
1501 |
+
textarea.fz-input-group-sm > .fz-input-group-addon,
|
1502 |
+
textarea.fz-input-group-sm > .fz-input-group-btn > .fz-btn,
|
1503 |
+
select[multiple].fz-input-group-sm > .fz-form-control,
|
1504 |
+
select[multiple].fz-input-group-sm > .fz-input-group-addon,
|
1505 |
+
select[multiple].fz-input-group-sm > .fz-input-group-btn > .fz-btn {
|
1506 |
+
height: auto;
|
1507 |
+
}
|
1508 |
+
|
1509 |
+
.fz-input-group-addon,
|
1510 |
+
.fz-input-group-btn,
|
1511 |
+
.fz-input-group .fz-form-control {
|
1512 |
+
display: table-cell;
|
1513 |
+
}
|
1514 |
+
|
1515 |
+
.fz-input-group-addon:not(:first-child):not(:last-child),
|
1516 |
+
.fz-input-group-btn:not(:first-child):not(:last-child),
|
1517 |
+
.fz-input-group .fz-form-control:not(:first-child):not(:last-child) {
|
1518 |
+
border-radius: 0;
|
1519 |
+
}
|
1520 |
+
|
1521 |
+
.fz-input-group-addon,
|
1522 |
+
.fz-input-group-btn {
|
1523 |
+
width: 1%;
|
1524 |
+
vertical-align: top;
|
1525 |
+
white-space: nowrap;
|
1526 |
+
}
|
1527 |
+
|
1528 |
+
.fz-input-group-addon {
|
1529 |
+
padding: 6px 12px;
|
1530 |
+
border: 1px solid #ccc;
|
1531 |
+
border-radius: 4px;
|
1532 |
+
color: #555;
|
1533 |
+
background-color: #eee;
|
1534 |
+
font-size: 14px;
|
1535 |
+
font-weight: normal;
|
1536 |
+
line-height: 1;
|
1537 |
+
text-align: center;
|
1538 |
+
}
|
1539 |
+
|
1540 |
+
.fz-input-group-addon.input-sm {
|
1541 |
+
padding: 5px 10px;
|
1542 |
+
border-radius: 3px;
|
1543 |
+
font-size: 12px;
|
1544 |
+
}
|
1545 |
+
|
1546 |
+
.fz-input-group-addon.input-lg {
|
1547 |
+
padding: 10px 16px;
|
1548 |
+
border-radius: 6px;
|
1549 |
+
font-size: 18px;
|
1550 |
+
}
|
1551 |
+
|
1552 |
+
.fz-input-group-addon input[type="radio"],
|
1553 |
+
.fz-input-group-addon input[type="checkbox"] {
|
1554 |
+
margin-top: 0;
|
1555 |
+
}
|
1556 |
+
|
1557 |
+
.fz-input-group .fz-form-control:first-child,
|
1558 |
+
.fz-input-group-addon:first-child,
|
1559 |
+
.fz-input-group-btn:first-child > .fz-btn,
|
1560 |
+
.fz-input-group-btn:first-child > .fz-btn-group > .fz-btn,
|
1561 |
+
.fz-input-group-btn:first-child > .dropdown-toggle,
|
1562 |
+
.fz-input-group-btn:last-child > .fz-btn:not(:last-child):not(.dropdown-toggle),
|
1563 |
+
.fz-input-group-btn:last-child > .fz-btn-group:not(:last-child) > .fz-btn {
|
1564 |
+
border-top-right-radius: 0;
|
1565 |
+
border-bottom-right-radius: 0;
|
1566 |
+
}
|
1567 |
+
|
1568 |
+
.fz-input-group-addon:first-child {
|
1569 |
+
border-right: 0;
|
1570 |
+
}
|
1571 |
+
|
1572 |
+
.fz-input-group .fz-form-control:last-child,
|
1573 |
+
.fz-input-group-addon:last-child,
|
1574 |
+
.fz-input-group-btn:last-child > .fz-btn,
|
1575 |
+
.fz-input-group-btn:last-child > .fz-btn-group > .fz-btn,
|
1576 |
+
.fz-input-group-btn:last-child > .dropdown-toggle,
|
1577 |
+
.fz-input-group-btn:first-child > .fz-btn:not(:first-child),
|
1578 |
+
.fz-input-group-btn:first-child > .fz-btn-group:not(:first-child) > .fz-btn {
|
1579 |
+
border-top-left-radius: 0;
|
1580 |
+
border-bottom-left-radius: 0;
|
1581 |
+
}
|
1582 |
+
|
1583 |
+
.fz-input-group-addon:last-child {
|
1584 |
+
border-left: 0;
|
1585 |
+
}
|
1586 |
+
|
1587 |
+
.fz-input-group-btn {
|
1588 |
+
position: relative;
|
1589 |
+
font-size: 0;
|
1590 |
+
white-space: nowrap;
|
1591 |
+
}
|
1592 |
+
|
1593 |
+
.fz-input-group-btn > .fz-btn {
|
1594 |
+
position: relative;
|
1595 |
+
}
|
1596 |
+
|
1597 |
+
.fz-input-group-btn > .fz-btn + .fz-btn {
|
1598 |
+
margin-left: -1px;
|
1599 |
+
}
|
1600 |
+
|
1601 |
+
.fz-input-group-btn > .fz-btn:hover,
|
1602 |
+
.fz-input-group-btn > .fz-btn:focus,
|
1603 |
+
.fz-input-group-btn > .fz-btn:active {
|
1604 |
+
z-index: 2;
|
1605 |
+
}
|
1606 |
+
|
1607 |
+
.fz-input-group-btn:first-child > .fz-btn,
|
1608 |
+
.fz-input-group-btn:first-child > .fz-btn-group {
|
1609 |
+
margin-right: -1px;
|
1610 |
+
}
|
1611 |
+
|
1612 |
+
.fz-input-group-btn:last-child > .fz-btn,
|
1613 |
+
.fz-input-group-btn:last-child > .fz-btn-group {
|
1614 |
+
z-index: 2;
|
1615 |
+
margin-left: -1px;
|
1616 |
+
}
|
1617 |
+
|
1618 |
+
.col-left,
|
1619 |
+
.col-right {
|
1620 |
+
display: inline-block;
|
1621 |
+
float: left;
|
1622 |
+
position: relative;
|
1623 |
+
width: -webkit-calc( 50% - 34px );
|
1624 |
+
width: calc( 50% - 34px );
|
1625 |
+
min-height: 36px;
|
1626 |
+
}
|
1627 |
+
|
1628 |
+
.col-left::after {
|
1629 |
+
position: absolute;
|
1630 |
+
top: calc( 50% - 18px );
|
1631 |
+
top: -webkit-calc( 50% - 18px );
|
1632 |
+
left: -webkit-calc( 100% + 5px );
|
1633 |
+
left: calc( 100% + 5px );
|
1634 |
+
left: -webkit-calc( 100% + 8px );
|
1635 |
+
width: 36px;
|
1636 |
+
height: 36px;
|
1637 |
+
color: #ccc;
|
1638 |
+
font-family: "dashicons";
|
1639 |
+
font-size: 36px;
|
1640 |
+
line-height: 36px;
|
1641 |
+
content: "\f503";
|
1642 |
+
}
|
1643 |
+
|
1644 |
+
.col-left.fields::after {
|
1645 |
+
content: "\f229";
|
1646 |
+
}
|
1647 |
+
|
1648 |
+
.col-left {
|
1649 |
+
padding: 8px 8px 8px 0;
|
1650 |
+
border-right: 1px solid #ccc;
|
1651 |
+
}
|
1652 |
+
|
1653 |
+
.col-right {
|
1654 |
+
margin-left: 50px;
|
1655 |
+
padding: 8px 0 8px 8px;
|
1656 |
+
border-left: 1px solid #ccc;
|
1657 |
+
}
|
1658 |
+
|
1659 |
+
.label_description,
|
1660 |
+
.form_item {
|
1661 |
+
margin-top: 8px;
|
1662 |
+
margin-bottom: 8px;
|
1663 |
+
}
|
1664 |
+
|
1665 |
+
.label_description {
|
1666 |
+
border-bottom: 1px solid #efefef;
|
1667 |
+
}
|
1668 |
+
|
1669 |
+
.form_item {
|
1670 |
+
padding-top: 12px;
|
1671 |
+
}
|
1672 |
+
|
1673 |
+
a.dropdown-item {
|
1674 |
+
display: block;
|
1675 |
+
padding: 5px 8px;
|
1676 |
+
color: #f35b3f;
|
1677 |
+
text-align: center;
|
1678 |
+
text-decoration: none;
|
1679 |
+
}
|
1680 |
+
|
1681 |
+
a:hover.dropdown-item,
|
1682 |
+
a:focus.dropdown-item {
|
1683 |
+
color: #f89c8b;
|
1684 |
+
background-color: #f8f8f8;
|
1685 |
+
}
|
1686 |
+
|
1687 |
+
.fz-btn.fz-btn-add-fields {
|
1688 |
+
background-color: #099bb2;
|
1689 |
+
}
|
1690 |
+
|
1691 |
+
.fz-btn.fz-btn-add-fields:hover {
|
1692 |
+
background-color: #14b2cc;
|
1693 |
+
}
|
1694 |
+
|
1695 |
+
.fz-btn.fz-btn-remove-fields {
|
1696 |
+
color: #f35b3f;
|
1697 |
+
}
|
1698 |
+
|
1699 |
+
.fz-btn.fz-btn-remove-fields:hover {
|
1700 |
+
color: #f89c8b;
|
1701 |
+
}
|
1702 |
+
|
1703 |
+
.fz-btn > span.dashicons {
|
1704 |
+
vertical-align: middle;
|
1705 |
+
}
|
1706 |
+
|
1707 |
+
.f1 {
|
1708 |
+
padding: 25px;
|
1709 |
+
border-radius: 4px;
|
1710 |
+
background: #fff;
|
1711 |
+
}
|
1712 |
+
|
1713 |
+
.f1 h3 {
|
1714 |
+
margin-top: 0;
|
1715 |
+
margin-bottom: 5px;
|
1716 |
+
text-transform: uppercase;
|
1717 |
+
}
|
1718 |
+
|
1719 |
+
.f1-steps {
|
1720 |
+
overflow: hidden;
|
1721 |
+
position: relative;
|
1722 |
+
margin-top: 20px;
|
1723 |
+
}
|
1724 |
+
|
1725 |
+
.f1-progress {
|
1726 |
+
position: absolute;
|
1727 |
+
top: 24px;
|
1728 |
+
left: 0;
|
1729 |
+
width: 100%;
|
1730 |
+
height: 1px;
|
1731 |
+
background: #ddd;
|
1732 |
+
}
|
1733 |
+
|
1734 |
+
.f1-progress-line {
|
1735 |
+
position: absolute;
|
1736 |
+
top: 0;
|
1737 |
+
left: 0;
|
1738 |
+
height: 1px;
|
1739 |
+
background: #f35b3f;
|
1740 |
+
}
|
1741 |
+
|
1742 |
+
.f1-step {
|
1743 |
+
display: inline-block;
|
1744 |
+
position: relative;
|
1745 |
+
width: calc(100%/3 - 10px);
|
1746 |
+
width: -webkit-calc(100%/3 - 10px);
|
1747 |
+
text-align: center;
|
1748 |
+
}
|
1749 |
+
|
1750 |
+
.f1-step-icon {
|
1751 |
+
display: inline-block;
|
1752 |
+
width: 40px;
|
1753 |
+
height: 40px;
|
1754 |
+
margin-top: 4px;
|
1755 |
+
border-radius: 50%;
|
1756 |
+
color: #fff;
|
1757 |
+
background: #ddd;
|
1758 |
+
font-size: 16px;
|
1759 |
+
line-height: 40px;
|
1760 |
+
}
|
1761 |
+
|
1762 |
+
.f1-step-icon span {
|
1763 |
+
display: inline-block;
|
1764 |
+
width: 18px;
|
1765 |
+
height: 18px;
|
1766 |
+
padding: 11px;
|
1767 |
+
font-size: 18px;
|
1768 |
+
}
|
1769 |
+
|
1770 |
+
.f1-step.activated .f1-step-icon span {
|
1771 |
+
width: 20px;
|
1772 |
+
height: 20px;
|
1773 |
+
margin-top: -2px;
|
1774 |
+
margin-left: -1px;
|
1775 |
+
padding: 12px;
|
1776 |
+
font-size: 20px;
|
1777 |
+
}
|
1778 |
+
|
1779 |
+
.f1-step.active .f1-step-icon span {
|
1780 |
+
width: 24px;
|
1781 |
+
height: 24px;
|
1782 |
+
padding: 12px;
|
1783 |
+
font-size: 24px;
|
1784 |
+
}
|
1785 |
+
|
1786 |
+
.f1-step.activated .f1-step-icon {
|
1787 |
+
border: 1px solid #f35b3f;
|
1788 |
+
color: #f35b3f;
|
1789 |
+
background: #fff;
|
1790 |
+
line-height: 48px;
|
1791 |
+
}
|
1792 |
+
|
1793 |
+
.f1-step.active .f1-step-icon {
|
1794 |
+
width: 48px;
|
1795 |
+
height: 48px;
|
1796 |
+
margin-top: 0;
|
1797 |
+
background: #f35b3f;
|
1798 |
+
font-size: 22px;
|
1799 |
+
line-height: 48px;
|
1800 |
+
}
|
1801 |
+
|
1802 |
+
.f1-step p {
|
1803 |
+
color: #ccc;
|
1804 |
+
}
|
1805 |
+
|
1806 |
+
.f1-step.activated p {
|
1807 |
+
color: #f35b3f;
|
1808 |
+
}
|
1809 |
+
|
1810 |
+
.f1-step.active p {
|
1811 |
+
color: #f35b3f;
|
1812 |
+
}
|
1813 |
+
|
1814 |
+
.f1 fieldset {
|
1815 |
+
display: none;
|
1816 |
+
text-align: left;
|
1817 |
+
}
|
1818 |
+
|
1819 |
+
.f1-buttons {
|
1820 |
+
text-align: right;
|
1821 |
+
}
|
1822 |
+
|
1823 |
+
.f1 .input-error {
|
1824 |
+
border-color: #f35b3f;
|
1825 |
+
}
|
1826 |
+
|
1827 |
+
input[type="password"].fz-form-control,
|
1828 |
+
textarea.fz-form-control {
|
1829 |
+
width: 100%;
|
1830 |
+
height: 44px;
|
1831 |
+
margin: 0;
|
1832 |
+
padding: 0 20px;
|
1833 |
+
border: 1px solid #ddd;
|
1834 |
+
border-radius: 4px;
|
1835 |
+
color: #888;
|
1836 |
+
background: #fff;
|
1837 |
+
box-shadow: none;
|
1838 |
+
font-family: "Roboto", sans-serif;
|
1839 |
+
font-size: 16px;
|
1840 |
+
font-weight: 300;
|
1841 |
+
line-height: 44px;
|
1842 |
+
vertical-align: middle;
|
1843 |
+
-webkit-transition: all 0.3s;
|
1844 |
+
transition: all 0.3s;
|
1845 |
+
}
|
1846 |
+
|
1847 |
+
textarea.fz-form-control {
|
1848 |
+
height: 90px;
|
1849 |
+
padding-top: 8px;
|
1850 |
+
padding-bottom: 8px;
|
1851 |
+
line-height: 30px;
|
1852 |
+
}
|
1853 |
+
|
1854 |
+
textarea.fz-form-control:focus {
|
1855 |
+
border: 1px solid #ccc;
|
1856 |
+
outline: 0;
|
1857 |
+
background: #fff;
|
1858 |
+
box-shadow: none;
|
1859 |
+
}
|
1860 |
+
|
1861 |
+
textarea.fz-form-control:-moz-placeholder {
|
1862 |
+
color: #888;
|
1863 |
+
}
|
1864 |
+
|
1865 |
+
textarea.fz-form-control:-ms-input-placeholder {
|
1866 |
+
color: #888;
|
1867 |
+
}
|
1868 |
+
|
1869 |
+
textarea.fz-form-control::-webkit-input-placeholder {
|
1870 |
+
color: #888;
|
1871 |
+
}
|
1872 |
+
|
1873 |
+
|
1874 |
+
button.fz-btn {
|
1875 |
+
min-width: 105px;
|
1876 |
+
height: 44px;
|
1877 |
+
margin: 0;
|
1878 |
+
padding: 0 20px;
|
1879 |
+
border: 0;
|
1880 |
+
border-radius: 4px;
|
1881 |
+
color: #fff;
|
1882 |
+
box-shadow: none;
|
1883 |
+
text-shadow: none;
|
1884 |
+
font-family: "Roboto", sans-serif;
|
1885 |
+
font-size: 16px;
|
1886 |
+
font-weight: 300;
|
1887 |
+
line-height: 40px;
|
1888 |
+
vertical-align: middle;
|
1889 |
+
-webkit-transition: all 0.3s;
|
1890 |
+
transition: all 0.3s;
|
1891 |
+
}
|
1892 |
+
|
1893 |
+
button.fz-btn:hover {
|
1894 |
+
opacity: 0.6;
|
1895 |
+
color: #fff;
|
1896 |
+
}
|
1897 |
+
|
1898 |
+
button.fz-btn:active {
|
1899 |
+
outline: 0;
|
1900 |
+
opacity: 0.6;
|
1901 |
+
color: #fff;
|
1902 |
+
box-shadow: none;
|
1903 |
+
}
|
1904 |
+
|
1905 |
+
button.fz-btn:focus,
|
1906 |
+
button.fz-btn:active:focus,
|
1907 |
+
button.fz-btn.active:focus {
|
1908 |
+
outline: 0;
|
1909 |
+
opacity: 0.6;
|
1910 |
+
color: #fff;
|
1911 |
+
}
|
1912 |
+
|
1913 |
+
button.fz-btn.fz-btn-next,
|
1914 |
+
button.fz-btn.fz-btn-next:focus,
|
1915 |
+
button.fz-btn.fz-btn-next:active:focus,
|
1916 |
+
button.fz-btn.fz-btn-next.active:focus {
|
1917 |
+
background: #f35b3f;
|
1918 |
+
}
|
1919 |
+
|
1920 |
+
button.fz-btn.fz-btn-submit,
|
1921 |
+
button.fz-btn.fz-btn-submit:focus,
|
1922 |
+
button.fz-btn.fz-btn-submit:active:focus,
|
1923 |
+
button.fz-btn.fz-btn-submit.active:focus {
|
1924 |
+
background: #f35b3f;
|
1925 |
+
}
|
1926 |
+
|
1927 |
+
button.fz-btn.fz-btn-previous,
|
1928 |
+
button.fz-btn.fz-btn-previous:focus,
|
1929 |
+
button.fz-btn.fz-btn-previous:active:focus,
|
1930 |
+
button.fz-btn.fz-btn-previous.active:focus {
|
1931 |
+
background: #bbb;
|
1932 |
+
}
|
1933 |
+
|
1934 |
+
button.fz-btn.fz-btn-submit.fz-btn-activate,
|
1935 |
+
button.fz-btn.fz-btn-submit.fz-btn-activate:focus,
|
1936 |
+
button.fz-btn.fz-btn-submit.fz-btn-activate:active:focus,
|
1937 |
+
button.fz-btn.fz-btn-submit.fz-btn-activate.active:focus {
|
1938 |
+
background: #8ce196;
|
1939 |
+
}
|
1940 |
+
|
1941 |
+
/*
|
1942 |
+
Toggle switches
|
1943 |
+
*/
|
1944 |
+
.feedzy-toggle {
|
1945 |
+
visibility: hidden;
|
1946 |
+
position: absolute;
|
1947 |
+
margin-left: -9999px;
|
1948 |
+
}
|
1949 |
+
|
1950 |
+
.feedzy-toggle + label {
|
1951 |
+
display: block;
|
1952 |
+
position: relative;
|
1953 |
+
outline: none;
|
1954 |
+
cursor: pointer;
|
1955 |
+
-webkit-user-select: none;
|
1956 |
+
-moz-user-select: none;
|
1957 |
+
-ms-user-select: none;
|
1958 |
+
user-select: none;
|
1959 |
+
}
|
1960 |
+
|
1961 |
+
input.feedzy-toggle-round + label {
|
1962 |
+
padding: 2px;
|
1963 |
+
background-color: #ddd;
|
1964 |
+
}
|
1965 |
+
|
1966 |
+
input.feedzy-toggle-round + label:before,
|
1967 |
+
input.feedzy-toggle-round + label:after {
|
1968 |
+
display: block;
|
1969 |
+
position: absolute;
|
1970 |
+
top: 1px;
|
1971 |
+
bottom: 1px;
|
1972 |
+
left: 1px;
|
1973 |
+
content: "";
|
1974 |
+
}
|
1975 |
+
|
1976 |
+
input.feedzy-toggle-round + label:before {
|
1977 |
+
right: 1px;
|
1978 |
+
border-radius: 15px;
|
1979 |
+
background-color: #f1f1f1;
|
1980 |
+
-webkit-transition: background 0.4s;
|
1981 |
+
transition: background 0.4s;
|
1982 |
+
}
|
1983 |
+
|
1984 |
+
input.feedzy-toggle-round + label:after {
|
1985 |
+
width: 28px;
|
1986 |
+
border-radius: 100%;
|
1987 |
+
background-color: #fff;
|
1988 |
+
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
|
1989 |
+
-webkit-transition: margin 0.4s;
|
1990 |
+
transition: margin 0.4s;
|
1991 |
+
}
|
1992 |
+
|
1993 |
+
input.feedzy-toggle-round:checked + label:before {
|
1994 |
+
background-color: #8ce196;
|
1995 |
+
}
|
1996 |
+
|
1997 |
+
input.feedzy-toggle-round:checked + label:after {
|
1998 |
+
margin-left: 34px;
|
1999 |
+
}
|
2000 |
+
|
2001 |
+
/*
|
2002 |
+
!!! CAUTION -- Hides Core WordPress Post Elements
|
2003 |
+
*/
|
2004 |
+
|
2005 |
+
.post-type-feedzy_imports #poststuff #post-body.columns-2 {
|
2006 |
+
margin-right: 0;
|
2007 |
+
}
|
2008 |
+
|
2009 |
+
.post-type-feedzy_imports div#side-sortables {
|
2010 |
+
display: none;
|
2011 |
+
}
|
2012 |
+
|
2013 |
+
.post-type-feedzy_imports #titlediv .inside {
|
2014 |
+
display: none;
|
2015 |
+
}
|
2016 |
+
|
2017 |
+
.post-type-feedzy_imports div#advanced-sortables {
|
2018 |
+
display: none;
|
2019 |
+
}
|
2020 |
+
|
2021 |
+
.fz-feature-features button.fz-btn.fz-btn-submit.fz-btn-activate,
|
2022 |
+
.fz-feature-features button.fz-btn.fz-btn-submit.fz-btn-activate:focus,
|
2023 |
+
.fz-feature-features button.fz-btn.fz-btn-submit.fz-btn-activate:active:focus,
|
2024 |
+
.fz-feature-features button.fz-btn.fz-btn-submit.fz-btn-activate.active:focus {
|
2025 |
+
background-color: #62c370;
|
2026 |
+
}
|
css/security.png
DELETED
Binary file
|
customizer.php
DELETED
@@ -1,718 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
|
4 |
-
function logincust_customize_register( $wp_customize ) {
|
5 |
-
$wp_customize->add_panel(
|
6 |
-
'logincust_panel', array(
|
7 |
-
'priority' => 30,
|
8 |
-
'capability' => 'edit_theme_options',
|
9 |
-
'title' => __( 'Login Customizer', 'login-customizer' ),
|
10 |
-
'description' => __( 'This section allows you to customize the login page of your website.<br/>Login Customizer by <a target="_blank" rel="nofollow" href="https://themeisle.com">ThemeIsle</a>', 'login-customizer' ),
|
11 |
-
)
|
12 |
-
);
|
13 |
-
|
14 |
-
$wp_customize->add_section(
|
15 |
-
'logincust_logo_section', array(
|
16 |
-
'priority' => 5,
|
17 |
-
'title' => __( 'Logo', 'login-customizer' ),
|
18 |
-
'panel' => 'logincust_panel',
|
19 |
-
)
|
20 |
-
);
|
21 |
-
|
22 |
-
$wp_customize->add_section(
|
23 |
-
'logincust_background_section', array(
|
24 |
-
'priority' => 10,
|
25 |
-
'title' => __( 'Background', 'login-customizer' ),
|
26 |
-
'panel' => 'logincust_panel',
|
27 |
-
)
|
28 |
-
);
|
29 |
-
|
30 |
-
$wp_customize->add_section(
|
31 |
-
'logincust_form_bg_section', array(
|
32 |
-
'priority' => 15,
|
33 |
-
'title' => __( 'Form Background', 'login-customizer' ),
|
34 |
-
'panel' => 'logincust_panel',
|
35 |
-
)
|
36 |
-
);
|
37 |
-
|
38 |
-
$wp_customize->add_section(
|
39 |
-
'logincust_form_section', array(
|
40 |
-
'priority' => 20,
|
41 |
-
'title' => __( 'Form Styling', 'login-customizer' ),
|
42 |
-
'panel' => 'logincust_panel',
|
43 |
-
)
|
44 |
-
);
|
45 |
-
|
46 |
-
$wp_customize->add_section(
|
47 |
-
'logincust_field_section', array(
|
48 |
-
'priority' => 25,
|
49 |
-
'title' => __( 'Fields Styling', 'login-customizer' ),
|
50 |
-
'panel' => 'logincust_panel',
|
51 |
-
)
|
52 |
-
);
|
53 |
-
|
54 |
-
$wp_customize->add_section(
|
55 |
-
'logincust_button_section', array(
|
56 |
-
'priority' => 30,
|
57 |
-
'title' => __( 'Button Styling', 'login-customizer' ),
|
58 |
-
'panel' => 'logincust_panel',
|
59 |
-
)
|
60 |
-
);
|
61 |
-
|
62 |
-
$wp_customize->add_section(
|
63 |
-
'logincust_other_section', array(
|
64 |
-
'priority' => 35,
|
65 |
-
'title' => __( 'Other', 'login-customizer' ),
|
66 |
-
'panel' => 'logincust_panel',
|
67 |
-
)
|
68 |
-
);
|
69 |
-
|
70 |
-
$wp_customize->add_section(
|
71 |
-
'logincust_security_section', array(
|
72 |
-
'priority' => 40,
|
73 |
-
'title' => __( 'Security', 'login-customizer' ),
|
74 |
-
'panel' => 'logincust_panel',
|
75 |
-
)
|
76 |
-
);
|
77 |
-
|
78 |
-
$wp_customize->add_setting(
|
79 |
-
'logincust_logo', array(
|
80 |
-
'type' => 'option',
|
81 |
-
'capability' => 'edit_theme_options',
|
82 |
-
)
|
83 |
-
);
|
84 |
-
|
85 |
-
$wp_customize->add_control(
|
86 |
-
new WP_Customize_Image_Control(
|
87 |
-
$wp_customize, 'logincust_logo', array(
|
88 |
-
'label' => __( 'Login Logo', 'login-customizer' ),
|
89 |
-
'section' => 'logincust_logo_section',
|
90 |
-
'priority' => 5,
|
91 |
-
'settings' => 'logincust_logo',
|
92 |
-
)
|
93 |
-
)
|
94 |
-
);
|
95 |
-
|
96 |
-
$wp_customize->add_setting(
|
97 |
-
'logincust_logo_width', array(
|
98 |
-
'default' => '84px',
|
99 |
-
'type' => 'option',
|
100 |
-
'capability' => 'edit_theme_options',
|
101 |
-
)
|
102 |
-
);
|
103 |
-
|
104 |
-
$wp_customize->add_control(
|
105 |
-
'logincust_logo_width', array(
|
106 |
-
'label' => __( 'Logo Width', 'login-customizer' ),
|
107 |
-
'section' => 'logincust_logo_section',
|
108 |
-
'priority' => 10,
|
109 |
-
'settings' => 'logincust_logo_width',
|
110 |
-
)
|
111 |
-
);
|
112 |
-
|
113 |
-
$wp_customize->add_setting(
|
114 |
-
'logincust_logo_height', array(
|
115 |
-
'default' => '84px',
|
116 |
-
'type' => 'option',
|
117 |
-
'capability' => 'edit_theme_options',
|
118 |
-
)
|
119 |
-
);
|
120 |
-
|
121 |
-
$wp_customize->add_control(
|
122 |
-
'logincust_logo_height', array(
|
123 |
-
'label' => __( 'Logo Height', 'login-customizer' ),
|
124 |
-
'section' => 'logincust_logo_section',
|
125 |
-
'priority' => 15,
|
126 |
-
'settings' => 'logincust_logo_height',
|
127 |
-
)
|
128 |
-
);
|
129 |
-
|
130 |
-
$wp_customize->add_setting(
|
131 |
-
'logincust_logo_padding', array(
|
132 |
-
'default' => '5px',
|
133 |
-
'type' => 'option',
|
134 |
-
'capability' => 'edit_theme_options',
|
135 |
-
)
|
136 |
-
);
|
137 |
-
|
138 |
-
$wp_customize->add_control(
|
139 |
-
'logincust_logo_padding', array(
|
140 |
-
'label' => __( 'Padding Bottom', 'login-customizer' ),
|
141 |
-
'section' => 'logincust_logo_section',
|
142 |
-
'priority' => 20,
|
143 |
-
'settings' => 'logincust_logo_padding',
|
144 |
-
)
|
145 |
-
);
|
146 |
-
|
147 |
-
$wp_customize->add_setting(
|
148 |
-
'logincust_bg_image', array(
|
149 |
-
'type' => 'option',
|
150 |
-
'capability' => 'edit_theme_options',
|
151 |
-
)
|
152 |
-
);
|
153 |
-
|
154 |
-
$wp_customize->add_control(
|
155 |
-
new WP_Customize_Image_Control(
|
156 |
-
$wp_customize, 'logincust_bg_image', array(
|
157 |
-
'label' => __( 'Background Image', 'login-customizer' ),
|
158 |
-
'section' => 'logincust_background_section',
|
159 |
-
'priority' => 5,
|
160 |
-
'settings' => 'logincust_bg_image',
|
161 |
-
)
|
162 |
-
)
|
163 |
-
);
|
164 |
-
|
165 |
-
$wp_customize->add_setting(
|
166 |
-
'logincust_bg_color', array(
|
167 |
-
'default' => '#F1F1F1',
|
168 |
-
'type' => 'option',
|
169 |
-
'capability' => 'edit_theme_options',
|
170 |
-
)
|
171 |
-
);
|
172 |
-
|
173 |
-
$wp_customize->add_control(
|
174 |
-
new WP_Customize_Color_Control(
|
175 |
-
$wp_customize, 'logincust_bg_color', array(
|
176 |
-
'label' => __( 'Background Color', 'login-customizer' ),
|
177 |
-
'section' => 'logincust_background_section',
|
178 |
-
'priority' => 10,
|
179 |
-
'settings' => 'logincust_bg_color',
|
180 |
-
)
|
181 |
-
)
|
182 |
-
);
|
183 |
-
|
184 |
-
$wp_customize->add_setting(
|
185 |
-
'logincust_bg_size', array(
|
186 |
-
'type' => 'option',
|
187 |
-
'capability' => 'edit_theme_options',
|
188 |
-
)
|
189 |
-
);
|
190 |
-
|
191 |
-
$wp_customize->add_control(
|
192 |
-
'logincust_bg_size', array(
|
193 |
-
'label' => __( 'Background Size', 'login-customizer' ),
|
194 |
-
'section' => 'logincust_background_section',
|
195 |
-
'priority' => 15,
|
196 |
-
'settings' => 'logincust_bg_size',
|
197 |
-
)
|
198 |
-
);
|
199 |
-
|
200 |
-
$wp_customize->add_setting(
|
201 |
-
'logincust_form_bg_image', array(
|
202 |
-
'type' => 'option',
|
203 |
-
'capability' => 'edit_theme_options',
|
204 |
-
)
|
205 |
-
);
|
206 |
-
|
207 |
-
$wp_customize->add_control(
|
208 |
-
new WP_Customize_Image_Control(
|
209 |
-
$wp_customize, 'logincust_form_bg_image', array(
|
210 |
-
'label' => __( 'Background Image', 'login-customizer' ),
|
211 |
-
'section' => 'logincust_form_bg_section',
|
212 |
-
'priority' => 5,
|
213 |
-
'settings' => 'logincust_form_bg_image',
|
214 |
-
)
|
215 |
-
)
|
216 |
-
);
|
217 |
-
|
218 |
-
$wp_customize->add_setting(
|
219 |
-
'logincust_form_bg_color', array(
|
220 |
-
'default' => '#FFF',
|
221 |
-
'type' => 'option',
|
222 |
-
'capability' => 'edit_theme_options',
|
223 |
-
)
|
224 |
-
);
|
225 |
-
|
226 |
-
$wp_customize->add_control(
|
227 |
-
new WP_Customize_Color_Control(
|
228 |
-
$wp_customize, 'logincust_form_bg_color', array(
|
229 |
-
'label' => __( 'Background Color', 'login-customizer' ),
|
230 |
-
'section' => 'logincust_form_bg_section',
|
231 |
-
'priority' => 10,
|
232 |
-
'settings' => 'logincust_form_bg_color',
|
233 |
-
)
|
234 |
-
)
|
235 |
-
);
|
236 |
-
|
237 |
-
$wp_customize->add_setting(
|
238 |
-
'logincust_form_width', array(
|
239 |
-
'default' => '320px',
|
240 |
-
'type' => 'option',
|
241 |
-
'capability' => 'edit_theme_options',
|
242 |
-
)
|
243 |
-
);
|
244 |
-
|
245 |
-
$wp_customize->add_control(
|
246 |
-
'logincust_form_width', array(
|
247 |
-
'label' => __( 'Width', 'login-customizer' ),
|
248 |
-
'section' => 'logincust_form_section',
|
249 |
-
'priority' => 15,
|
250 |
-
'settings' => 'logincust_form_width',
|
251 |
-
)
|
252 |
-
);
|
253 |
-
|
254 |
-
$wp_customize->add_setting(
|
255 |
-
'logincust_form_height', array(
|
256 |
-
'default' => '194px',
|
257 |
-
'type' => 'option',
|
258 |
-
'capability' => 'edit_theme_options',
|
259 |
-
)
|
260 |
-
);
|
261 |
-
|
262 |
-
$wp_customize->add_control(
|
263 |
-
'logincust_form_height', array(
|
264 |
-
'label' => __( 'Height', 'login-customizer' ),
|
265 |
-
'section' => 'logincust_form_section',
|
266 |
-
'priority' => 20,
|
267 |
-
'settings' => 'logincust_form_height',
|
268 |
-
)
|
269 |
-
);
|
270 |
-
|
271 |
-
$wp_customize->add_setting(
|
272 |
-
'logincust_form_padding', array(
|
273 |
-
'default' => '26px 24px 46px',
|
274 |
-
'type' => 'option',
|
275 |
-
'capability' => 'edit_theme_options',
|
276 |
-
)
|
277 |
-
);
|
278 |
-
|
279 |
-
$wp_customize->add_control(
|
280 |
-
'logincust_form_padding', array(
|
281 |
-
'label' => __( 'Padding', 'login-customizer' ),
|
282 |
-
'section' => 'logincust_form_section',
|
283 |
-
'priority' => 25,
|
284 |
-
'settings' => 'logincust_form_padding',
|
285 |
-
)
|
286 |
-
);
|
287 |
-
|
288 |
-
$wp_customize->add_setting(
|
289 |
-
'logincust_form_border', array(
|
290 |
-
'type' => 'option',
|
291 |
-
'capability' => 'edit_theme_options',
|
292 |
-
)
|
293 |
-
);
|
294 |
-
|
295 |
-
$wp_customize->add_control(
|
296 |
-
'logincust_form_border', array(
|
297 |
-
'label' => __( 'Border (Example: 2px dotted black) ', 'login-customizer' ),
|
298 |
-
'section' => 'logincust_form_section',
|
299 |
-
'priority' => 30,
|
300 |
-
'settings' => 'logincust_form_border',
|
301 |
-
)
|
302 |
-
);
|
303 |
-
|
304 |
-
$wp_customize->add_setting(
|
305 |
-
'logincust_field_width', array(
|
306 |
-
'default' => '100%',
|
307 |
-
'type' => 'option',
|
308 |
-
'capability' => 'edit_theme_options',
|
309 |
-
)
|
310 |
-
);
|
311 |
-
|
312 |
-
$wp_customize->add_control(
|
313 |
-
'logincust_field_width', array(
|
314 |
-
'label' => __( 'Input Field Width', 'login-customizer' ),
|
315 |
-
'section' => 'logincust_field_section',
|
316 |
-
'priority' => 5,
|
317 |
-
'settings' => 'logincust_field_width',
|
318 |
-
)
|
319 |
-
);
|
320 |
-
|
321 |
-
$wp_customize->add_setting(
|
322 |
-
'logincust_field_margin', array(
|
323 |
-
'default' => '2px 6px 16px 0px',
|
324 |
-
'type' => 'option',
|
325 |
-
'capability' => 'edit_theme_options',
|
326 |
-
)
|
327 |
-
);
|
328 |
-
|
329 |
-
$wp_customize->add_control(
|
330 |
-
'logincust_field_margin', array(
|
331 |
-
'label' => __( 'Input Field Margin', 'login-customizer' ),
|
332 |
-
'section' => 'logincust_field_section',
|
333 |
-
'priority' => 10,
|
334 |
-
'settings' => 'logincust_field_margin',
|
335 |
-
)
|
336 |
-
);
|
337 |
-
|
338 |
-
$wp_customize->add_setting(
|
339 |
-
'logincust_field_bg', array(
|
340 |
-
'default' => '#FFF',
|
341 |
-
'type' => 'option',
|
342 |
-
'capability' => 'edit_theme_options',
|
343 |
-
)
|
344 |
-
);
|
345 |
-
|
346 |
-
$wp_customize->add_control(
|
347 |
-
new WP_Customize_Color_Control(
|
348 |
-
$wp_customize, 'logincust_field_bg', array(
|
349 |
-
'label' => __( 'Input Field Background', 'login-customizer' ),
|
350 |
-
'section' => 'logincust_field_section',
|
351 |
-
'priority' => 15,
|
352 |
-
'settings' => 'logincust_field_bg',
|
353 |
-
)
|
354 |
-
)
|
355 |
-
);
|
356 |
-
|
357 |
-
$wp_customize->add_setting(
|
358 |
-
'logincust_field_color', array(
|
359 |
-
'default' => '#333',
|
360 |
-
'type' => 'option',
|
361 |
-
'capability' => 'edit_theme_options',
|
362 |
-
)
|
363 |
-
);
|
364 |
-
|
365 |
-
$wp_customize->add_control(
|
366 |
-
new WP_Customize_Color_Control(
|
367 |
-
$wp_customize, 'logincust_field_color', array(
|
368 |
-
'label' => __( 'Input Field Color', 'login-customizer' ),
|
369 |
-
'section' => 'logincust_field_section',
|
370 |
-
'priority' => 20,
|
371 |
-
'settings' => 'logincust_field_color',
|
372 |
-
)
|
373 |
-
)
|
374 |
-
);
|
375 |
-
|
376 |
-
$wp_customize->add_setting(
|
377 |
-
'logincust_field_label', array(
|
378 |
-
'default' => '#777',
|
379 |
-
'type' => 'option',
|
380 |
-
'capability' => 'edit_theme_options',
|
381 |
-
)
|
382 |
-
);
|
383 |
-
|
384 |
-
$wp_customize->add_control(
|
385 |
-
new WP_Customize_Color_Control(
|
386 |
-
$wp_customize, 'logincust_field_label', array(
|
387 |
-
'label' => __( 'Label Color', 'login-customizer' ),
|
388 |
-
'section' => 'logincust_field_section',
|
389 |
-
'priority' => 25,
|
390 |
-
'settings' => 'logincust_field_label',
|
391 |
-
)
|
392 |
-
)
|
393 |
-
);
|
394 |
-
|
395 |
-
$wp_customize->add_setting(
|
396 |
-
'logincust_button_bg', array(
|
397 |
-
'default' => '#2EA2CC',
|
398 |
-
'type' => 'option',
|
399 |
-
'capability' => 'edit_theme_options',
|
400 |
-
)
|
401 |
-
);
|
402 |
-
|
403 |
-
$wp_customize->add_control(
|
404 |
-
new WP_Customize_Color_Control(
|
405 |
-
$wp_customize, 'logincust_button_bg', array(
|
406 |
-
'label' => __( 'Button Background', 'login-customizer' ),
|
407 |
-
'section' => 'logincust_button_section',
|
408 |
-
'priority' => 5,
|
409 |
-
'settings' => 'logincust_button_bg',
|
410 |
-
)
|
411 |
-
)
|
412 |
-
);
|
413 |
-
|
414 |
-
$wp_customize->add_setting(
|
415 |
-
'logincust_button_border', array(
|
416 |
-
'default' => '#0074A2',
|
417 |
-
'type' => 'option',
|
418 |
-
'capability' => 'edit_theme_options',
|
419 |
-
)
|
420 |
-
);
|
421 |
-
|
422 |
-
$wp_customize->add_control(
|
423 |
-
new WP_Customize_Color_Control(
|
424 |
-
$wp_customize, 'logincust_button_border', array(
|
425 |
-
'label' => __( 'Button Border', 'login-customizer' ),
|
426 |
-
'section' => 'logincust_button_section',
|
427 |
-
'priority' => 10,
|
428 |
-
'settings' => 'logincust_button_border',
|
429 |
-
)
|
430 |
-
)
|
431 |
-
);
|
432 |
-
|
433 |
-
$wp_customize->add_setting(
|
434 |
-
'logincust_button_hover_bg', array(
|
435 |
-
'default' => '#1E8CBE',
|
436 |
-
'type' => 'option',
|
437 |
-
'capability' => 'edit_theme_options',
|
438 |
-
)
|
439 |
-
);
|
440 |
-
|
441 |
-
$wp_customize->add_control(
|
442 |
-
new WP_Customize_Color_Control(
|
443 |
-
$wp_customize, 'logincust_button_hover_bg', array(
|
444 |
-
'label' => __( 'Button Background (Hover)', 'login-customizer' ),
|
445 |
-
'section' => 'logincust_button_section',
|
446 |
-
'priority' => 15,
|
447 |
-
'settings' => 'logincust_button_hover_bg',
|
448 |
-
)
|
449 |
-
)
|
450 |
-
);
|
451 |
-
|
452 |
-
$wp_customize->add_setting(
|
453 |
-
'logincust_button_hover_border', array(
|
454 |
-
'default' => '#0074A2',
|
455 |
-
'type' => 'option',
|
456 |
-
'capability' => 'edit_theme_options',
|
457 |
-
)
|
458 |
-
);
|
459 |
-
|
460 |
-
$wp_customize->add_control(
|
461 |
-
new WP_Customize_Color_Control(
|
462 |
-
$wp_customize, 'logincust_button_hover_border', array(
|
463 |
-
'label' => __( 'Button Border (Hover)', 'login-customizer' ),
|
464 |
-
'section' => 'logincust_button_section',
|
465 |
-
'priority' => 20,
|
466 |
-
'settings' => 'logincust_button_hover_border',
|
467 |
-
)
|
468 |
-
)
|
469 |
-
);
|
470 |
-
|
471 |
-
$wp_customize->add_setting(
|
472 |
-
'logincust_button_shadow', array(
|
473 |
-
'default' => '#78C8E6',
|
474 |
-
'type' => 'option',
|
475 |
-
'capability' => 'edit_theme_options',
|
476 |
-
)
|
477 |
-
);
|
478 |
-
|
479 |
-
$wp_customize->add_control(
|
480 |
-
new WP_Customize_Color_Control(
|
481 |
-
$wp_customize, 'logincust_button_shadow', array(
|
482 |
-
'label' => __( 'Button Box Shadow', 'login-customizer' ),
|
483 |
-
'section' => 'logincust_button_section',
|
484 |
-
'priority' => 25,
|
485 |
-
'settings' => 'logincust_button_shadow',
|
486 |
-
)
|
487 |
-
)
|
488 |
-
);
|
489 |
-
|
490 |
-
$wp_customize->add_setting(
|
491 |
-
'logincust_button_color', array(
|
492 |
-
'default' => '#FFF',
|
493 |
-
'type' => 'option',
|
494 |
-
'capability' => 'edit_theme_options',
|
495 |
-
)
|
496 |
-
);
|
497 |
-
|
498 |
-
$wp_customize->add_control(
|
499 |
-
new WP_Customize_Color_Control(
|
500 |
-
$wp_customize, 'logincust_button_color', array(
|
501 |
-
'label' => __( 'Button Color', 'login-customizer' ),
|
502 |
-
'section' => 'logincust_button_section',
|
503 |
-
'priority' => 30,
|
504 |
-
'settings' => 'logincust_button_color',
|
505 |
-
)
|
506 |
-
)
|
507 |
-
);
|
508 |
-
|
509 |
-
$wp_customize->add_setting(
|
510 |
-
'logincust_other_color', array(
|
511 |
-
'default' => '#999',
|
512 |
-
'type' => 'option',
|
513 |
-
'capability' => 'edit_theme_options',
|
514 |
-
)
|
515 |
-
);
|
516 |
-
|
517 |
-
$wp_customize->add_control(
|
518 |
-
new WP_Customize_Color_Control(
|
519 |
-
$wp_customize, 'logincust_other_color', array(
|
520 |
-
'label' => __( 'Text Color', 'login-customizer' ),
|
521 |
-
'section' => 'logincust_other_section',
|
522 |
-
'priority' => 5,
|
523 |
-
'settings' => 'logincust_other_color',
|
524 |
-
)
|
525 |
-
)
|
526 |
-
);
|
527 |
-
|
528 |
-
$wp_customize->add_setting(
|
529 |
-
'logincust_other_color_hover', array(
|
530 |
-
'default' => '#2EA2CC',
|
531 |
-
'type' => 'option',
|
532 |
-
'capability' => 'edit_theme_options',
|
533 |
-
)
|
534 |
-
);
|
535 |
-
|
536 |
-
$wp_customize->add_control(
|
537 |
-
new WP_Customize_Color_Control(
|
538 |
-
$wp_customize, 'logincust_other_color_hover', array(
|
539 |
-
'label' => __( 'Text Color (Hover)', 'login-customizer' ),
|
540 |
-
'section' => 'logincust_other_section',
|
541 |
-
'priority' => 10,
|
542 |
-
'settings' => 'logincust_other_color_hover',
|
543 |
-
)
|
544 |
-
)
|
545 |
-
);
|
546 |
-
|
547 |
-
$wp_customize->add_setting(
|
548 |
-
'logincust_other_css', array(
|
549 |
-
'type' => 'option',
|
550 |
-
'capability' => 'edit_theme_options',
|
551 |
-
)
|
552 |
-
);
|
553 |
-
|
554 |
-
$wp_customize->add_control(
|
555 |
-
'logincust_other_css', array(
|
556 |
-
'label' => __( 'Custom CSS', 'login-customizer' ),
|
557 |
-
'type' => 'textarea',
|
558 |
-
'section' => 'logincust_other_section',
|
559 |
-
'priority' => 15,
|
560 |
-
'settings' => 'logincust_other_css',
|
561 |
-
)
|
562 |
-
);
|
563 |
-
|
564 |
-
}
|
565 |
-
add_action( 'customize_register', 'logincust_customize_register' );
|
566 |
-
|
567 |
-
function logincust_customizer() {
|
568 |
-
$logo_url = get_option( 'logincust_logo' );
|
569 |
-
$logo_width = get_option( 'logincust_logo_width' );
|
570 |
-
$logo_height = get_option( 'logincust_logo_height' );
|
571 |
-
$logo_padding = get_option( 'logincust_logo_padding' );
|
572 |
-
$bg_img = get_option( 'logincust_bg_image' );
|
573 |
-
$bg_color = get_option( 'logincust_bg_color' );
|
574 |
-
$bg_size = get_option( 'logincust_bg_size' );
|
575 |
-
$form_bg_image = get_option( 'logincust_form_bg_image' );
|
576 |
-
$form_bg_color = get_option( 'logincust_form_bg_color' );
|
577 |
-
$form_width = get_option( 'logincust_form_width' );
|
578 |
-
$form_height = get_option( 'logincust_form_height' );
|
579 |
-
$form_padding = get_option( 'logincust_form_padding' );
|
580 |
-
$form_border = get_option( 'logincust_form_border' );
|
581 |
-
$field_width = get_option( 'logincust_field_width' );
|
582 |
-
$field_margin = get_option( 'logincust_field_margin' );
|
583 |
-
$field_bg = get_option( 'logincust_field_bg' );
|
584 |
-
$field_color = get_option( 'logincust_field_color' );
|
585 |
-
$field_label = get_option( 'logincust_field_label' );
|
586 |
-
$button_bg = get_option( 'logincust_button_bg' );
|
587 |
-
$button_border = get_option( 'logincust_button_border' );
|
588 |
-
$button_shadow = get_option( 'logincust_button_shadow' );
|
589 |
-
$button_color = get_option( 'logincust_button_color' );
|
590 |
-
$button_hover_bg = get_option( 'logincust_button_hover_bg' );
|
591 |
-
$button_hover_border = get_option( 'logincust_button_hover_border' );
|
592 |
-
$other_color = get_option( 'logincust_other_color' );
|
593 |
-
$other_color_hover = get_option( 'logincust_other_color_hover' );
|
594 |
-
$other_css = get_option( 'logincust_other_css' );
|
595 |
-
?>
|
596 |
-
<style type="text/css">
|
597 |
-
html, body {
|
598 |
-
<?php if ( ! empty( $bg_img ) ) : ?>
|
599 |
-
background-image: url(<?php echo $bg_img; ?>) !important;
|
600 |
-
<?php endif; ?>
|
601 |
-
<?php if ( ! empty( $bg_color ) ) : ?>
|
602 |
-
background-color: <?php echo $bg_color; ?> !important;
|
603 |
-
<?php endif; ?>
|
604 |
-
<?php if ( ! empty( $bg_url ) ) : ?>
|
605 |
-
background-size: <?php echo $bg_size; ?> !important;
|
606 |
-
<?php endif; ?>
|
607 |
-
}
|
608 |
-
body.login div#login h1 a {
|
609 |
-
<?php if ( ! empty( $logo_url ) ) : ?>
|
610 |
-
background-image: url(<?php echo $logo_url; ?>) !important;
|
611 |
-
<?php endif; ?>
|
612 |
-
<?php if ( ! empty( $logo_width ) ) : ?>
|
613 |
-
width: <?php echo $logo_width; ?> !important;
|
614 |
-
<?php endif; ?>
|
615 |
-
<?php if ( ! empty( $logo_height ) ) : ?>
|
616 |
-
height: <?php echo $logo_height; ?> !important;
|
617 |
-
<?php endif; ?>
|
618 |
-
<?php if ( ! empty( $logo_width ) || ! empty( $logo_height ) ) : ?>
|
619 |
-
background-size: <?php echo $logo_width; ?> <?php echo $logo_height; ?> !important;
|
620 |
-
<?php endif; ?>
|
621 |
-
<?php if ( ! empty( $logo_padding ) ) : ?>
|
622 |
-
padding-bottom: <?php echo $logo_padding; ?> !important;
|
623 |
-
<?php endif; ?>
|
624 |
-
}
|
625 |
-
#loginform {
|
626 |
-
<?php if ( ! empty( $form_bg_image ) ) : ?>
|
627 |
-
background-image: url(<?php echo $form_bg_image; ?>) !important;
|
628 |
-
<?php endif; ?>
|
629 |
-
<?php if ( ! empty( $form_bg_color ) ) : ?>
|
630 |
-
background-color: <?php echo $form_bg_color; ?> !important;
|
631 |
-
<?php endif; ?>
|
632 |
-
<?php if ( ! empty( $form_height ) ) : ?>
|
633 |
-
height: <?php echo $form_height; ?> !important;
|
634 |
-
<?php endif; ?>
|
635 |
-
<?php if ( ! empty( $form_padding ) ) : ?>
|
636 |
-
padding: <?php echo $form_padding; ?> !important;
|
637 |
-
<?php endif; ?>
|
638 |
-
<?php if ( ! empty( $form_border ) ) : ?>
|
639 |
-
border: <?php echo $form_border; ?> !important;
|
640 |
-
<?php endif; ?>
|
641 |
-
}
|
642 |
-
#login {
|
643 |
-
<?php if ( ! empty( $form_width ) ) : ?>
|
644 |
-
width: <?php echo $form_width; ?> !important;
|
645 |
-
<?php endif; ?>
|
646 |
-
}
|
647 |
-
.login form .input, .login input[type="text"] {
|
648 |
-
<?php if ( ! empty( $field_width ) ) : ?>
|
649 |
-
width: <?php echo $field_width; ?> !important;
|
650 |
-
<?php endif; ?>
|
651 |
-
<?php if ( ! empty( $field_margin ) ) : ?>
|
652 |
-
margin: <?php echo $field_margin; ?> !important;
|
653 |
-
<?php endif; ?>
|
654 |
-
<?php if ( ! empty( $field_bg ) ) : ?>
|
655 |
-
background: <?php echo $field_bg; ?> !important;
|
656 |
-
<?php endif; ?>
|
657 |
-
<?php if ( ! empty( $field_color ) ) : ?>
|
658 |
-
color: <?php echo $field_color; ?> !important;
|
659 |
-
<?php endif; ?>
|
660 |
-
}
|
661 |
-
.login label {
|
662 |
-
<?php if ( ! empty( $field_label ) ) : ?>
|
663 |
-
color: <?php echo $field_label; ?> !important;
|
664 |
-
<?php endif; ?>
|
665 |
-
}
|
666 |
-
.wp-core-ui .button-primary {
|
667 |
-
<?php if ( ! empty( $button_bg ) ) : ?>
|
668 |
-
background: <?php echo $button_bg; ?> !important;
|
669 |
-
<?php endif; ?>
|
670 |
-
<?php if ( ! empty( $button_border ) ) : ?>
|
671 |
-
border-color: <?php echo $button_border; ?> !important;
|
672 |
-
<?php endif; ?>
|
673 |
-
<?php if ( ! empty( $button_shadow ) ) : ?>
|
674 |
-
box-shadow: 0px 1px 0px <?php echo $button_shadow; ?> inset, 0px 1px 0px rgba(0, 0, 0, 0.15);
|
675 |
-
<?php endif; ?>
|
676 |
-
<?php if ( ! empty( $button_color ) ) : ?>
|
677 |
-
color: <?php echo $button_color; ?> !important;
|
678 |
-
<?php endif; ?>
|
679 |
-
}
|
680 |
-
.wp-core-ui .button-primary.focus, .wp-core-ui .button-primary.hover, .wp-core-ui .button-primary:focus, .wp-core-ui .button-primary:hover {
|
681 |
-
<?php if ( ! empty( $button_hover_bg ) ) : ?>
|
682 |
-
background: <?php echo $button_hover_bg; ?> !important;
|
683 |
-
<?php endif; ?>
|
684 |
-
<?php if ( ! empty( $button_hover_border ) ) : ?>
|
685 |
-
border-color: <?php echo $button_hover_border; ?> !important;
|
686 |
-
<?php endif; ?>
|
687 |
-
}
|
688 |
-
.login #backtoblog a, .login #nav a {
|
689 |
-
<?php if ( ! empty( $other_color ) ) : ?>
|
690 |
-
color: <?php echo $other_color; ?> !important;
|
691 |
-
<?php endif; ?>
|
692 |
-
}
|
693 |
-
.login #backtoblog a:hover, .login #nav a:hover, .login h1 a:hover {
|
694 |
-
<?php if ( ! empty( $other_color_hover ) ) : ?>
|
695 |
-
color: <?php echo $other_color_hover; ?> !important;
|
696 |
-
<?php endif; ?>
|
697 |
-
}
|
698 |
-
<?php if ( ! empty( $other_css ) ) : ?>
|
699 |
-
<?php echo $other_css; ?>
|
700 |
-
<?php endif; ?>
|
701 |
-
</style>
|
702 |
-
<?php
|
703 |
-
}
|
704 |
-
|
705 |
-
add_action( 'login_enqueue_scripts', 'logincust_customizer' );
|
706 |
-
|
707 |
-
function logincust_login_logo_url() {
|
708 |
-
return get_bloginfo( 'url' );
|
709 |
-
}
|
710 |
-
add_filter( 'login_headerurl', 'logincust_login_logo_url' );
|
711 |
-
|
712 |
-
function logincust_login_logo_url_title() {
|
713 |
-
$title = get_bloginfo( 'name', 'display' );
|
714 |
-
return $title;
|
715 |
-
}
|
716 |
-
add_filter( 'login_headertitle', 'logincust_login_logo_url_title' );
|
717 |
-
|
718 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
feedzy-rss-feed.php
ADDED
@@ -0,0 +1,142 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The plugin bootstrap file
|
4 |
+
*
|
5 |
+
* This file is read by WordPress to generate the plugin information in the plugin
|
6 |
+
* admin area. This file also includes all of the dependencies used by the plugin,
|
7 |
+
* registers the activation and deactivation functions, and defines a function
|
8 |
+
* that starts the plugin.
|
9 |
+
*
|
10 |
+
* @link http://themeisle.com
|
11 |
+
* @since 3.0.0
|
12 |
+
* @package feedzy-rss-feeds
|
13 |
+
*
|
14 |
+
* @wordpress-plugin
|
15 |
+
* Plugin Name: Feedzy RSS Feeds Lite
|
16 |
+
* Plugin URI: https://themeisle.com/plugins/feedzy-rss-feeds-lite/
|
17 |
+
* Description: A small and lightweight RSS aggregator plugin. Fast and very easy to use, it allows you to aggregate multiple RSS feeds into your WordPress site through fully customizable shortcodes & widgets.
|
18 |
+
* Version: 3.2.4
|
19 |
+
* Author: Themeisle
|
20 |
+
* Author URI: http://themeisle.com
|
21 |
+
* License: GPL-2.0+
|
22 |
+
* License URI: http://www.gnu.org/licenses/gpl-2.0.txt
|
23 |
+
* Text Domain: feedzy-rss-feeds
|
24 |
+
* Domain Path: /languages
|
25 |
+
* WordPress Available: yes
|
26 |
+
* Pro Slug: feedzy-rss-feeds-pro
|
27 |
+
* Requires License: no
|
28 |
+
*/
|
29 |
+
// If this file is called directly, abort.
|
30 |
+
if ( ! defined( 'WPINC' ) ) {
|
31 |
+
die;
|
32 |
+
}
|
33 |
+
/**
|
34 |
+
* The code that runs during plugin activation.
|
35 |
+
* This action is documented in includes/feedzy-rss-feeds-activator.php
|
36 |
+
*/
|
37 |
+
function activate_feedzy_rss_feeds() {
|
38 |
+
Feedzy_Rss_Feeds_Activator::activate();
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* The code that runs during plugin deactivation.
|
43 |
+
* This action is documented in includes/feedzy-rss-feeds-deactivator.php
|
44 |
+
*
|
45 |
+
* @since 3.0.0
|
46 |
+
*/
|
47 |
+
function deactivate_feedzy_rss_feeds() {
|
48 |
+
Feedzy_Rss_Feeds_Deactivator::deactivate();
|
49 |
+
}
|
50 |
+
|
51 |
+
register_activation_hook( __FILE__, 'activate_feedzy_rss_feeds' );
|
52 |
+
register_deactivation_hook( __FILE__, 'deactivate_feedzy_rss_feeds' );
|
53 |
+
/**
|
54 |
+
* The function that will handle the queue for autoloader.
|
55 |
+
*
|
56 |
+
* @since 3.0.0
|
57 |
+
*/
|
58 |
+
function feedzy_rss_feeds_autoload( $class ) {
|
59 |
+
$namespaces = array( 'Feedzy_Rss_Feeds' );
|
60 |
+
foreach ( $namespaces as $namespace ) {
|
61 |
+
if ( substr( $class, 0, strlen( $namespace ) ) == $namespace ) {
|
62 |
+
$filename = plugin_dir_path( __FILE__ ) . 'includes/' . str_replace( '_', '-', strtolower( $class ) ) . '.php';
|
63 |
+
if ( is_readable( $filename ) ) {
|
64 |
+
require_once $filename;
|
65 |
+
|
66 |
+
return true;
|
67 |
+
}
|
68 |
+
$filename = plugin_dir_path( __FILE__ ) . 'includes/abstract/' . str_replace( '_', '-', strtolower( $class ) ) . '.php';
|
69 |
+
if ( is_readable( $filename ) ) {
|
70 |
+
require_once $filename;
|
71 |
+
|
72 |
+
return true;
|
73 |
+
}
|
74 |
+
$filename = plugin_dir_path( __FILE__ ) . 'includes/admin/' . str_replace( '_', '-', strtolower( $class ) ) . '.php';
|
75 |
+
if ( is_readable( $filename ) ) {
|
76 |
+
require_once $filename;
|
77 |
+
|
78 |
+
return true;
|
79 |
+
}
|
80 |
+
}
|
81 |
+
}
|
82 |
+
if ( is_readable( plugin_dir_path( __FILE__ ) . 'includes/admin/feedzy-wp-widget.php' ) ) {
|
83 |
+
require_once plugin_dir_path( __FILE__ ) . 'includes/admin/feedzy-wp-widget.php';
|
84 |
+
|
85 |
+
return true;
|
86 |
+
}
|
87 |
+
|
88 |
+
return false;
|
89 |
+
}
|
90 |
+
|
91 |
+
/**
|
92 |
+
* Begins execution of the plugin.
|
93 |
+
*
|
94 |
+
* Since everything within the plugin is registered via hooks,
|
95 |
+
* then kicking off the plugin from this point in the file does
|
96 |
+
* not affect the page life cycle.
|
97 |
+
*
|
98 |
+
* @since 3.0.0
|
99 |
+
*/
|
100 |
+
function run_feedzy_rss_feeds() {
|
101 |
+
define( 'FEEDZY_BASEFILE', __FILE__ );
|
102 |
+
define( 'FEEDZY_ABSURL', plugins_url( '/', __FILE__ ) );
|
103 |
+
define( 'FEEDZY_ABSPATH', dirname( __FILE__ ) );
|
104 |
+
define( 'FEEDZY_UPSELL_LINK', 'https://themeisle.com/plugins/feedzy-rss-feeds/' );
|
105 |
+
define( 'FEEDZY_NAME', 'Feedzy RSS Feeds' );
|
106 |
+
|
107 |
+
// always make this true before testing
|
108 |
+
define( 'FEEDZY_DISABLE_CACHE_FOR_TESTING', false );
|
109 |
+
$feedzy = Feedzy_Rss_Feeds::instance();
|
110 |
+
$feedzy->run();
|
111 |
+
$vendor_file = FEEDZY_ABSPATH . '/vendor/autoload_52.php';
|
112 |
+
if ( is_readable( $vendor_file ) ) {
|
113 |
+
require_once $vendor_file;
|
114 |
+
}
|
115 |
+
|
116 |
+
add_filter( 'themeisle_sdk_products', 'feedzy_register_sdk', 10, 1 );
|
117 |
+
add_filter( 'pirate_parrot_log', 'feedzy_register_parrot', 10, 1 );
|
118 |
+
|
119 |
+
}
|
120 |
+
|
121 |
+
/**
|
122 |
+
* Registers with the SDK
|
123 |
+
*
|
124 |
+
* @since 1.0.0
|
125 |
+
*/
|
126 |
+
function feedzy_register_sdk( $products ) {
|
127 |
+
$products[] = FEEDZY_BASEFILE;
|
128 |
+
return $products;
|
129 |
+
}
|
130 |
+
|
131 |
+
/**
|
132 |
+
* Registers with the parrot plugin
|
133 |
+
*
|
134 |
+
* @since 1.0.0
|
135 |
+
*/
|
136 |
+
function feedzy_register_parrot( $plugins ) {
|
137 |
+
$plugins[] = FEEDZY_NAME;
|
138 |
+
return $plugins;
|
139 |
+
}
|
140 |
+
|
141 |
+
spl_autoload_register( 'feedzy_rss_feeds_autoload' );
|
142 |
+
run_feedzy_rss_feeds();
|
form/form.php
ADDED
@@ -0,0 +1,135 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The file that defines the core plugin class
|
4 |
+
*
|
5 |
+
* A class definition that includes attributes and functions used across both the
|
6 |
+
* public-facing side of the site and the admin area.
|
7 |
+
*
|
8 |
+
* @link http://themeisle.com
|
9 |
+
* @since 3.0.0
|
10 |
+
*
|
11 |
+
* @package feedzy-rss-feeds
|
12 |
+
* @subpackage feedzy-rss-feeds/form
|
13 |
+
*/
|
14 |
+
|
15 |
+
$html_parts = Feedzy_Rss_Feeds_Ui_Lang::get_form_elements();
|
16 |
+
?>
|
17 |
+
<!DOCTYPE html>
|
18 |
+
<html>
|
19 |
+
<head>
|
20 |
+
<!-- Disable browser caching of dialog window -->
|
21 |
+
<meta http-equiv="cache-control" content="no-cache" />
|
22 |
+
<meta http-equiv="expires" content="0" />
|
23 |
+
<meta http-equiv="pragma" content="no-cache" />
|
24 |
+
<link rel="stylesheet" href="<?php echo FEEDZY_ABSURL . 'css/form.css?h=' . date( 'dmYHis' ); ?>" type="text/css" media="all" />
|
25 |
+
</head>
|
26 |
+
<body>
|
27 |
+
<div class="feedzy-popup-form container">
|
28 |
+
<?php
|
29 |
+
$output = '';
|
30 |
+
if ( ! empty( $html_parts ) ) {
|
31 |
+
foreach ( $html_parts as $item => $section ) {
|
32 |
+
$output .= '<div class="container feedzy_' . $item . '">';
|
33 |
+
$output .= '<h5>' . $section['title'] . '</h5>';
|
34 |
+
if ( isset( $section['description'] ) ) {
|
35 |
+
$output .= '<p>' . $section['description'] . '</p>';
|
36 |
+
}
|
37 |
+
if ( ! empty( $section['elements'] ) ) {
|
38 |
+
foreach ( $section['elements'] as $name => $props ) {
|
39 |
+
$element = '';
|
40 |
+
$disabled = '';
|
41 |
+
$badge = '';
|
42 |
+
if ( isset( $props['disabled'] ) && $props['disabled'] ) {
|
43 |
+
$disabled = 'disabled="true"';
|
44 |
+
$badge = '<small class="feedzy_pro_tag">' . __( 'Premium', 'feedzy-rss-feeds' ) . '</small>';
|
45 |
+
}
|
46 |
+
switch ( $props['type'] ) {
|
47 |
+
case 'select':
|
48 |
+
$element = '<select name="' . $name . '" data-feedzy="' . $name . '" ' . $disabled . ' >';
|
49 |
+
foreach ( $props['opts'] as $opt => $values ) {
|
50 |
+
$checked = '';
|
51 |
+
if ( $props['value'] == $values['value'] ) {
|
52 |
+
$checked = 'selected';
|
53 |
+
}
|
54 |
+
$element .= '<option value="' . $values['value'] . '" ' . $checked . ' > ' . $values['label'] . '</option>';
|
55 |
+
}
|
56 |
+
$element .= '</select>';
|
57 |
+
break;
|
58 |
+
case 'radio':
|
59 |
+
foreach ( $props['opts'] as $opt => $values ) {
|
60 |
+
$checked = '';
|
61 |
+
if ( $props['value'] == $values['value'] ) {
|
62 |
+
$checked = 'checked="checked"';
|
63 |
+
}
|
64 |
+
$element .= '<label class="feedzy-radio-image feedzy-template-' . $values['value']
|
65 |
+
. '"><input type="radio" name="' . $name . '" data-feedzy="' . $name . '" value="' . $values['value'] . '" ' . $checked . ' ' . $disabled . ' />' .
|
66 |
+
$values['label'] . '</label>';
|
67 |
+
}
|
68 |
+
break;
|
69 |
+
case 'checkbox':
|
70 |
+
foreach ( $props['opts'] as $opt => $values ) {
|
71 |
+
$checked = '';
|
72 |
+
if ( $props['value'] == $values['value'] ) {
|
73 |
+
$checked = 'checked="checked"';
|
74 |
+
}
|
75 |
+
$element .= '<input type="checkbox" name="' . $name . '" data-feedzy="' . $name . '" value="' . $values['value'] . '" ' . $checked . ' ' . $disabled . ' /> ' . $values['label'];
|
76 |
+
}
|
77 |
+
break;
|
78 |
+
case 'file':
|
79 |
+
$element = '
|
80 |
+
<input type="text" class="column column-50 float-left" name="' . $name . '" data-feedzy="' . $name . '" id="feedzy_image_url" placeholder="' . $props['placeholder'] . '" value="' . $props['value'] . '">
|
81 |
+
<input type="button" class="column column-50 float-right button-outline" name="upload-btn" id="feedzy_upload_btn" value="' . $props['button']['button_text'] . '">
|
82 |
+
';
|
83 |
+
break;
|
84 |
+
default:
|
85 |
+
$element = '<input type="text" name="' . $name . '" data-feedzy="' . $name . '" value="' . $props['value'] . '" placeholder="' . $props['placeholder'] . '" ' . $disabled . ' />';
|
86 |
+
break;
|
87 |
+
} // End switch().
|
88 |
+
$output .= '
|
89 |
+
<div class="row feedzy_element_' . $name . '">
|
90 |
+
<div class="column column-50">
|
91 |
+
<label for="' . $name . '">' . $props['label'] . $badge . '</label>
|
92 |
+
</div>
|
93 |
+
<div class="column column-50">
|
94 |
+
' . $element . '
|
95 |
+
</div>
|
96 |
+
<hr/>
|
97 |
+
</div>
|
98 |
+
';
|
99 |
+
} // End foreach().
|
100 |
+
} // End if().
|
101 |
+
$output .= '</div>';
|
102 |
+
} // End foreach().
|
103 |
+
} // End if().
|
104 |
+
echo $output;
|
105 |
+
?>
|
106 |
+
</div>
|
107 |
+
<script type="text/javascript">
|
108 |
+
var args = top.tinymce.activeEditor.windowManager.getParams();
|
109 |
+
var $ = args.jquery;
|
110 |
+
var editor = args.editor;
|
111 |
+
var wp = args.wp;
|
112 |
+
var custom_uploader;
|
113 |
+
$(document).ready(function($) {
|
114 |
+
$(document).on('click', '#feedzy_upload_btn', function (e) {
|
115 |
+
e.preventDefault();
|
116 |
+
var upload_button = $(this);
|
117 |
+
custom_uploader = wp.media.frames.file_frame = wp.media({
|
118 |
+
title: editor.getLang( 'feedzy_tinymce_plugin.image_button' ),
|
119 |
+
button: {
|
120 |
+
text: editor.getLang( 'feedzy_tinymce_plugin.image_button' )
|
121 |
+
},
|
122 |
+
multiple: false
|
123 |
+
});
|
124 |
+
|
125 |
+
custom_uploader.on('select', function () {
|
126 |
+
var attachment = custom_uploader.state().get('selection').first().toJSON();
|
127 |
+
upload_button.siblings('input[type="text"]').val(attachment.url);
|
128 |
+
});
|
129 |
+
|
130 |
+
custom_uploader.open();
|
131 |
+
});
|
132 |
+
});
|
133 |
+
</script>
|
134 |
+
</body>
|
135 |
+
</html>
|
img/features-affiliate-ready.jpg
ADDED
Binary file
|
img/features-caching.jpg
ADDED
Binary file
|
img/features-feed-to-post.jpg
ADDED
Binary file
|
img/features-templates.jpg
ADDED
Binary file
|
img/features-widgets-support.jpg
ADDED
Binary file
|
img/feedzy-default-template.jpg
ADDED
Binary file
|
img/feedzy-default.jpg
ADDED
Binary file
|
img/feedzy-style1-template.jpg
ADDED
Binary file
|
img/feedzy-style2-template.jpg
ADDED
Binary file
|
img/feedzy.png
ADDED
Binary file
|
img/feedzy.svg
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" width="850.39" height="850.39"><path fill="#DB3939" d="M425.2 2C190.36 2 0 191.92 0 426.2c0 234.27 190.37 424.2 425.2 424.2 234.82 0 425.2-189.93 425.2-424.2C850.4 191.9 660 2 425.2 2zm-46.55 668.66h-91.58v-57.1L237.5 564.1h-57.26v-91.24h95.25l103.15 102.8v95zm152.52 0H439.6v-133.3L313.85 411.94h-133.6v-91.36H351.7L531.18 499.6v171.06zm152.55 0h-91.58V461.2L390.06 259.74H180.24v-91.36h247.8l255.68 255.07v247.22z"/></svg>
|
includes/abstract/feedzy-rss-feeds-admin-abstract.php
ADDED
@@ -0,0 +1,1022 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The Abstract class with reusable functionality of the plugin.
|
4 |
+
*
|
5 |
+
* @link http://themeisle.com
|
6 |
+
* @since 3.0.0
|
7 |
+
*
|
8 |
+
* @package feedzy-rss-feeds
|
9 |
+
* @subpackage feedzy-rss-feeds/includes/abstract
|
10 |
+
*/
|
11 |
+
|
12 |
+
/**
|
13 |
+
* The Feedzy RSS functions of the plugin.
|
14 |
+
*
|
15 |
+
* Abstract class containing functions for the Feedzy Admin Class
|
16 |
+
*
|
17 |
+
* @package feedzy-rss-feeds
|
18 |
+
* @subpackage feedzy-rss-feeds/includes/abstract
|
19 |
+
* @author Themeisle <friends@themeisle.com>
|
20 |
+
* @abstract
|
21 |
+
*/
|
22 |
+
abstract class Feedzy_Rss_Feeds_Admin_Abstract {
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Defines the default image to use on RSS Feeds
|
26 |
+
*
|
27 |
+
* @since 3.0.0
|
28 |
+
* @access public
|
29 |
+
*
|
30 |
+
* @param string $imageSrc The image source, currently not used.
|
31 |
+
*
|
32 |
+
* @return string
|
33 |
+
*/
|
34 |
+
public function feedzy_define_default_image( $imageSrc ) {
|
35 |
+
$defaultImg = FEEDZY_ABSURL . '/img/feedzy-default.jpg';
|
36 |
+
|
37 |
+
return apply_filters( 'feedzy_define_default_image_filter', $defaultImg );
|
38 |
+
}
|
39 |
+
|
40 |
+
/**
|
41 |
+
* Defines the default error notice
|
42 |
+
*
|
43 |
+
* Logs error to the log file
|
44 |
+
* Returns the error message
|
45 |
+
*
|
46 |
+
* @since 3.0.0
|
47 |
+
* @access public
|
48 |
+
*
|
49 |
+
* @param object $error The error Object.
|
50 |
+
* @param string $feedURL The feed URL.
|
51 |
+
*
|
52 |
+
* @return string
|
53 |
+
*/
|
54 |
+
public function feedzy_default_error_notice( $error, $feedURL ) {
|
55 |
+
error_log( 'Feedzy RSS Feeds - related feed: ' . print_r( $feedURL ) . ' - Error message: ' . $this->feedzy_array_obj_string( $error ) );
|
56 |
+
|
57 |
+
return '<div id="message" class="error" data-error"' . esc_attr( $this->feedzy_array_obj_string( $error ) ) . '"><p>' . __( 'Sorry, this feed is currently unavailable or does not exists anymore.', 'feedzy-rss-feeds' ) . '</p></div>';
|
58 |
+
}
|
59 |
+
|
60 |
+
/**
|
61 |
+
* Converts an object to string
|
62 |
+
*
|
63 |
+
* @since 3.0.0
|
64 |
+
* @access public
|
65 |
+
*
|
66 |
+
* @param object $error The error Object.
|
67 |
+
*
|
68 |
+
* @return string
|
69 |
+
*/
|
70 |
+
public function feedzy_array_obj_string( $error ) {
|
71 |
+
if ( is_array( $error ) || is_object( $error ) ) {
|
72 |
+
return print_r( $error, true );
|
73 |
+
} else {
|
74 |
+
return $error;
|
75 |
+
}
|
76 |
+
}
|
77 |
+
|
78 |
+
/**
|
79 |
+
* Padding ratio based on image size
|
80 |
+
*
|
81 |
+
* @since 3.0.0
|
82 |
+
* @access public
|
83 |
+
*
|
84 |
+
* @param string $itemAttr The item attribute.
|
85 |
+
* @param array $sizes An array with the current sizes.
|
86 |
+
*
|
87 |
+
* @return string
|
88 |
+
*/
|
89 |
+
public function feedzy_add_item_padding( $itemAttr, $sizes ) {
|
90 |
+
$paddinTop = number_format( ( 15 / 150 ) * $sizes['height'], 0 );
|
91 |
+
$paddinBottom = number_format( ( 25 / 150 ) * $sizes['height'], 0 );
|
92 |
+
$stylePadding = ' style="padding: ' . $paddinTop . 'px 0 ' . $paddinBottom . 'px"';
|
93 |
+
|
94 |
+
return $itemAttr . $stylePadding;
|
95 |
+
}
|
96 |
+
|
97 |
+
/**
|
98 |
+
* Appends classes to the feed item
|
99 |
+
*
|
100 |
+
* @since 3.0.0
|
101 |
+
* @access public
|
102 |
+
*
|
103 |
+
* @param string $itemAttr The item attribute.
|
104 |
+
* @param string $sizes The item sizes.
|
105 |
+
* @param string $item The feed item.
|
106 |
+
* @param string $feedURL The feed URL.
|
107 |
+
* @param string $sc The short code attributes.
|
108 |
+
*
|
109 |
+
* @return string
|
110 |
+
*/
|
111 |
+
public function feedzy_classes_item( $itemAttr = '', $sizes = '', $item = '', $feedURL = '', $sc = '' ) {
|
112 |
+
$classes = array( 'rss_item' );
|
113 |
+
$classes = apply_filters( 'feedzy_add_classes_item', $classes, $sc );
|
114 |
+
$classes = ' class="' . implode( ' ', $classes ) . '"';
|
115 |
+
|
116 |
+
return $itemAttr . $classes;
|
117 |
+
}
|
118 |
+
|
119 |
+
/**
|
120 |
+
* Filter feed description input
|
121 |
+
*
|
122 |
+
* @since 3.0.0
|
123 |
+
* @access public
|
124 |
+
*
|
125 |
+
* @param string $description The feed description.
|
126 |
+
* @param string $content The feed description.
|
127 |
+
* @param string $feedURL The feed URL.
|
128 |
+
*
|
129 |
+
* @return string
|
130 |
+
*/
|
131 |
+
public function feedzy_summary_input_filter( $description, $content, $feedURL ) {
|
132 |
+
$description = trim( strip_tags( $description ) );
|
133 |
+
$description = trim( chop( $description, '[…]' ) );
|
134 |
+
|
135 |
+
return $description;
|
136 |
+
}
|
137 |
+
|
138 |
+
/**
|
139 |
+
* Check title for keywords
|
140 |
+
*
|
141 |
+
* @since 3.0.0
|
142 |
+
* @access public
|
143 |
+
*
|
144 |
+
* @param boolean $continue A boolean to stop the script.
|
145 |
+
* @param array $sc The shortcode attributes.
|
146 |
+
* @param object $item The feed item.
|
147 |
+
* @param string $feedURL The feed URL.
|
148 |
+
*
|
149 |
+
* @return boolean
|
150 |
+
*/
|
151 |
+
public function feedzy_feed_item_keywords_title( $continue, $sc, $item, $feedURL ) {
|
152 |
+
if ( feedzy_is_new() && ! feedzy_is_pro() ) {
|
153 |
+
return true;
|
154 |
+
}
|
155 |
+
$keywords_title = $sc['keywords_title'];
|
156 |
+
if ( ! empty( $keywords_title ) ) {
|
157 |
+
$continue = false;
|
158 |
+
foreach ( $keywords_title as $keyword ) {
|
159 |
+
if ( strpos( $item->get_title(), $keyword ) !== false ) {
|
160 |
+
$continue = true;
|
161 |
+
}
|
162 |
+
}
|
163 |
+
}
|
164 |
+
|
165 |
+
return $continue;
|
166 |
+
}
|
167 |
+
|
168 |
+
/**
|
169 |
+
* Include cover picture (medium) to rss feed enclosure
|
170 |
+
* and media:content
|
171 |
+
*
|
172 |
+
* @since 3.0.0
|
173 |
+
* @access public
|
174 |
+
*/
|
175 |
+
public function feedzy_include_thumbnail_rss() {
|
176 |
+
global $post;
|
177 |
+
if ( has_post_thumbnail( $post->ID ) ) {
|
178 |
+
$postThumbnailId = get_post_thumbnail_id( $post->ID );
|
179 |
+
$attachmentMeta = wp_get_attachment_metadata( $postThumbnailId );
|
180 |
+
$imageUrl = wp_get_attachment_image_src( $postThumbnailId, 'medium' );
|
181 |
+
echo '<enclosure url="' . $imageUrl[0] . '" length="' . filesize( get_attached_file( $postThumbnailId ) ) . '" type="image/jpg" />';
|
182 |
+
echo '<media:content url="' . $imageUrl[0] . '" width="' . $attachmentMeta['sizes']['medium']['width'] . '" height="' . $attachmentMeta['sizes']['medium']['height'] . '" medium="image" type="' . $attachmentMeta['sizes']['medium']['mime-type'] . '" />';
|
183 |
+
|
184 |
+
}
|
185 |
+
}
|
186 |
+
|
187 |
+
/**
|
188 |
+
* Utility method to check if source is a URL's string
|
189 |
+
* or if is a post type slug.
|
190 |
+
*
|
191 |
+
* @since 3.0.12
|
192 |
+
* @access public
|
193 |
+
*
|
194 |
+
* @param string $src The feeds source string.
|
195 |
+
*
|
196 |
+
* @return bool|string
|
197 |
+
*/
|
198 |
+
public function process_feed_source( $src ) {
|
199 |
+
$regex = '((https?|ftp)\:\/\/)?'; // Contains Protocol
|
200 |
+
$regex .= '([a-z0-9+!*(),;?&=\$_.-]+(\:[a-z0-9+!*(),;?&=\$_.-]+)?@)?'; // Uses User and Pass
|
201 |
+
$regex .= '([a-z0-9-.]*)\.([a-z]{2,3})'; // Has Host or IP
|
202 |
+
$regex .= '(\:[0-9]{2,5})?'; // Uses Port
|
203 |
+
$regex .= '(\/([a-z0-9+\$_-]\.?)+)*\/?'; // Has Path
|
204 |
+
$regex .= '(\?[a-z+&\$_.-][a-z0-9;:@&%=+\/\$_.-]*)?'; // Has GET Query
|
205 |
+
$regex .= '(#[a-z_.-][a-z0-9+\$_.-]*)?'; // Uses Anchor
|
206 |
+
if ( preg_match( "/^$regex$/", $src ) ) {
|
207 |
+
// If it matches Regex ( it's not a slug ) so return the sources.
|
208 |
+
return $src;
|
209 |
+
} else {
|
210 |
+
$src = trim( $src );
|
211 |
+
if ( $post = get_page_by_path( $src, OBJECT, 'feedzy_categories' ) ) {
|
212 |
+
return trim( preg_replace( '/\s+/', ' ', get_post_meta( $post->ID, 'feedzy_category_feed', true ) ) );
|
213 |
+
} else {
|
214 |
+
return $src;
|
215 |
+
}
|
216 |
+
}
|
217 |
+
|
218 |
+
}
|
219 |
+
|
220 |
+
/**
|
221 |
+
* Main shortcode function
|
222 |
+
*
|
223 |
+
* @since 3.0.0
|
224 |
+
* @access public
|
225 |
+
*
|
226 |
+
* @param array $atts Shortcode attributes.
|
227 |
+
* @param string $content The item feed content.
|
228 |
+
*
|
229 |
+
* @return mixed
|
230 |
+
*/
|
231 |
+
public function feedzy_rss( $atts, $content = '' ) {
|
232 |
+
$sc = $this->get_short_code_attributes( $atts );
|
233 |
+
$feedURL = $this->normalize_urls( $sc['feeds'] );
|
234 |
+
$cache = $sc['refresh'];
|
235 |
+
$feed = $this->fetch_feed( $feedURL, $cache );
|
236 |
+
if ( is_string( $feed ) ) {
|
237 |
+
return $feed;
|
238 |
+
}
|
239 |
+
$sc = $this->sanitize_attr( $sc, $feedURL );
|
240 |
+
$content = $this->render_content( $sc, $feed, $content, $feedURL );
|
241 |
+
|
242 |
+
return $content;
|
243 |
+
}
|
244 |
+
|
245 |
+
/**
|
246 |
+
* Returns the attributes of the shortcode
|
247 |
+
*
|
248 |
+
* @since 3.0.0
|
249 |
+
* @access public
|
250 |
+
*
|
251 |
+
* @param array $atts The attributes passed by WordPress.
|
252 |
+
*
|
253 |
+
* @return array
|
254 |
+
*/
|
255 |
+
public function get_short_code_attributes( $atts ) {
|
256 |
+
// Retrieve & extract shorcode parameters
|
257 |
+
$sc = shortcode_atts(
|
258 |
+
array(
|
259 |
+
'feeds' => '',
|
260 |
+
// comma separated feeds url
|
261 |
+
'max' => '5',
|
262 |
+
// number of feeds items (0 for unlimited)
|
263 |
+
'feed_title' => 'yes',
|
264 |
+
// display feed title yes/no
|
265 |
+
'target' => '_blank',
|
266 |
+
// _blank, _self
|
267 |
+
'title' => '',
|
268 |
+
// strip title after X char
|
269 |
+
'meta' => 'yes',
|
270 |
+
// yes, no
|
271 |
+
'summary' => 'yes',
|
272 |
+
// strip title
|
273 |
+
'summarylength' => '',
|
274 |
+
// strip summary after X char
|
275 |
+
'thumb' => 'auto',
|
276 |
+
// yes, no, auto
|
277 |
+
'default' => '',
|
278 |
+
// default thumb URL if no image found (only if thumb is set to yes or auto)
|
279 |
+
'size' => '',
|
280 |
+
// thumbs pixel size
|
281 |
+
'keywords_title' => '',
|
282 |
+
// cache refresh
|
283 |
+
'refresh' => '12_hours',
|
284 |
+
// only display item if title contains specific keywords (comma-separated list/case sensitive)
|
285 |
+
), $atts, 'feedzy_default'
|
286 |
+
);
|
287 |
+
$sc = array_merge( $sc, apply_filters( 'feedzy_get_short_code_attributes_filter', $atts ) );
|
288 |
+
|
289 |
+
return $sc;
|
290 |
+
}
|
291 |
+
|
292 |
+
/**
|
293 |
+
* Validate feeds attribute.
|
294 |
+
*
|
295 |
+
* @since 3.0.0
|
296 |
+
* @updated 3.1.7 Take into account $feedURL as array from PRO version.
|
297 |
+
*
|
298 |
+
* @param string $raw Url or list of urls.
|
299 |
+
*
|
300 |
+
* @return mixed|void Urls of the feeds.
|
301 |
+
*/
|
302 |
+
public function normalize_urls( $raw ) {
|
303 |
+
$feeds = apply_filters( 'feedzy_process_feed_source', $raw );
|
304 |
+
$feedURL = apply_filters( 'feedzy_get_feed_url', $feeds );
|
305 |
+
if ( is_array( $feedURL ) ) {
|
306 |
+
foreach ( $feedURL as $index => $url ) {
|
307 |
+
$feedURL[ $index ] = htmlspecialchars_decode( $url );
|
308 |
+
}
|
309 |
+
} else {
|
310 |
+
$feedURL = htmlspecialchars_decode( $feedURL );
|
311 |
+
}
|
312 |
+
|
313 |
+
return $feedURL;
|
314 |
+
}
|
315 |
+
|
316 |
+
/**
|
317 |
+
* Fetch the content feed from a group of urls.
|
318 |
+
*
|
319 |
+
* @since 3.0.0
|
320 |
+
* @access public
|
321 |
+
* @updated 3.2.0
|
322 |
+
*
|
323 |
+
* @param array $feedURL The feeds urls to fetch content from.
|
324 |
+
* @param string $cache The cache string (eg. 1_hour, 30_min etc.).
|
325 |
+
*
|
326 |
+
* @return SimplePie|string|void|WP_Error The feed resource.
|
327 |
+
*/
|
328 |
+
public function fetch_feed( $feedURL, $cache = '12_hours' ) {
|
329 |
+
// Load SimplePie if not already
|
330 |
+
do_action( 'feedzy_pre_http_setup', $feedURL );
|
331 |
+
|
332 |
+
// Load SimplePie Instance
|
333 |
+
$feed = $this->init_feed( $feedURL, $cache ); // Not used as log as #41304 is Opened.
|
334 |
+
|
335 |
+
// Report error when is an error loading the feed
|
336 |
+
if ( is_wp_error( $feed ) ) {
|
337 |
+
// Fallback for different edge cases.
|
338 |
+
if ( is_array( $feedURL ) ) {
|
339 |
+
$feedURL = array_map( 'html_entity_decode', $feedURL );
|
340 |
+
} else {
|
341 |
+
$feedURL = html_entity_decode( $feedURL );
|
342 |
+
}
|
343 |
+
|
344 |
+
$feedURL = $this->get_valid_feed_urls( $feedURL, $cache );
|
345 |
+
|
346 |
+
$feed = $this->init_feed( $feedURL, $cache ); // Not used as log as #41304 is Opened.
|
347 |
+
|
348 |
+
}
|
349 |
+
|
350 |
+
do_action( 'feedzy_post_http_teardown', $feedURL );
|
351 |
+
|
352 |
+
// var_dump( $feed );
|
353 |
+
return $feed;
|
354 |
+
}
|
355 |
+
|
356 |
+
/**
|
357 |
+
*
|
358 |
+
* Method to avoid using core implementation in order
|
359 |
+
* order to fix issues reported here: https://core.trac.wordpress.org/ticket/41304
|
360 |
+
* Bug: #41304 with WP wp_kses sanitizer used by WP SimplePie implementation.
|
361 |
+
*
|
362 |
+
* NOTE: This is temporary should be removed as soon as #41304 is patched.
|
363 |
+
*
|
364 |
+
* @since 3.1.7
|
365 |
+
* @access private
|
366 |
+
*
|
367 |
+
* @param string $feedURL The feed URL.
|
368 |
+
* @param string $cache The cache string (eg. 1_hour, 30_min etc.).
|
369 |
+
*
|
370 |
+
* @return SimplePie
|
371 |
+
*/
|
372 |
+
private function init_feed( $feedURL, $cache ) {
|
373 |
+
if ( ! class_exists( 'SimplePie' ) ) {
|
374 |
+
require_once( ABSPATH . WPINC . '/class-simplepie.php' );
|
375 |
+
require_once( ABSPATH . WPINC . '/class-wp-feed-cache.php' );
|
376 |
+
require_once( ABSPATH . WPINC . '/class-wp-feed-cache-transient.php' );
|
377 |
+
require_once( ABSPATH . WPINC . '/class-wp-simplepie-file.php' );
|
378 |
+
}
|
379 |
+
$unit_defaults = array(
|
380 |
+
'mins' => MINUTE_IN_SECONDS,
|
381 |
+
'hours' => HOUR_IN_SECONDS,
|
382 |
+
'days' => DAY_IN_SECONDS,
|
383 |
+
);
|
384 |
+
$cache_time = 12 * HOUR_IN_SECONDS;
|
385 |
+
if ( isset( $cache ) && $cache != '' ) {
|
386 |
+
list( $value, $unit ) = explode( '_', $cache );
|
387 |
+
if ( isset( $value ) && is_numeric( $value ) && $value >= 1 && $value <= 100 ) {
|
388 |
+
if ( isset( $unit ) && in_array( strtolower( $unit ), array( 'mins', 'hours', 'days' ) ) ) {
|
389 |
+
$cache_time = $value * $unit_defaults[ $unit ];
|
390 |
+
}
|
391 |
+
}
|
392 |
+
}
|
393 |
+
|
394 |
+
$feed = new SimplePie();
|
395 |
+
$feed->set_file_class( 'WP_SimplePie_File' );
|
396 |
+
$feed->set_useragent( apply_filters( 'http_headers_useragent', SIMPLEPIE_USERAGENT ) );
|
397 |
+
if ( ! FEEDZY_DISABLE_CACHE_FOR_TESTING ) {
|
398 |
+
$feed->set_cache_class( 'WP_Feed_Cache' );
|
399 |
+
$feed->set_cache_duration( apply_filters( 'wp_feed_cache_transient_lifetime', $cache_time, $feedURL ) );
|
400 |
+
}
|
401 |
+
$feed->set_feed_url( $feedURL );
|
402 |
+
$feed->init();
|
403 |
+
$feed->handle_content_type();
|
404 |
+
|
405 |
+
return $feed;
|
406 |
+
}
|
407 |
+
|
408 |
+
/**
|
409 |
+
* Returns only valid URLs for fetching.
|
410 |
+
*
|
411 |
+
* @since 3.2.0
|
412 |
+
* @access private
|
413 |
+
*
|
414 |
+
* @param array|string $feedURL The feeds URL/s.
|
415 |
+
* @param string $cache The cache string (eg. 1_hour, 30_min etc.).
|
416 |
+
*
|
417 |
+
* @return array
|
418 |
+
*/
|
419 |
+
private function get_valid_feed_urls( $feedURL, $cache ) {
|
420 |
+
$validFeedURL = array();
|
421 |
+
if ( is_array( $feedURL ) ) {
|
422 |
+
foreach ( $feedURL as $url ) {
|
423 |
+
if ( $this->check_valid_xml( $url, $cache ) ) {
|
424 |
+
$validFeedURL[] = $url;
|
425 |
+
} else {
|
426 |
+
echo sprintf( __( 'Feed URL: %s not valid and removed from fetch.', 'feedzy-rss-feeds' ), '<b>' . $url . '</b>' );
|
427 |
+
}
|
428 |
+
}
|
429 |
+
} else {
|
430 |
+
if ( $this->check_valid_xml( $feedURL, $cache ) ) {
|
431 |
+
$validFeedURL[] = $feedURL;
|
432 |
+
} else {
|
433 |
+
echo sprintf( __( 'Feed URL: %s not valid and removed from fetch.', 'feedzy-rss-feeds' ), '<b>' . $feedURL . '</b>' );
|
434 |
+
}
|
435 |
+
}
|
436 |
+
|
437 |
+
return $validFeedURL;
|
438 |
+
}
|
439 |
+
|
440 |
+
/**
|
441 |
+
* Checks if a url is a valid feed.
|
442 |
+
*
|
443 |
+
* @since 3.2.0
|
444 |
+
* @access private
|
445 |
+
*
|
446 |
+
* @param string $url The URL to validate.
|
447 |
+
* @param string $cache The cache string (eg. 1_hour, 30_min etc.).
|
448 |
+
*
|
449 |
+
* @return bool
|
450 |
+
*/
|
451 |
+
private function check_valid_xml( $url, $cache ) {
|
452 |
+
$feed = $this->init_feed( $url, $cache );
|
453 |
+
if ( $feed->error() ) {
|
454 |
+
return false;
|
455 |
+
}
|
456 |
+
|
457 |
+
return true;
|
458 |
+
}
|
459 |
+
|
460 |
+
/**
|
461 |
+
* Sanitizes the shortcode array and sets the defaults
|
462 |
+
*
|
463 |
+
* @since 3.0.0
|
464 |
+
* @access public
|
465 |
+
*
|
466 |
+
* @param array $sc The shorcode attributes array.
|
467 |
+
* @param string $feedURL The feed url.
|
468 |
+
*
|
469 |
+
* @return mixed
|
470 |
+
*/
|
471 |
+
public function sanitize_attr( $sc, $feedURL ) {
|
472 |
+
if ( $sc['max'] == '0' ) {
|
473 |
+
$sc['max'] = '999';
|
474 |
+
} elseif ( empty( $sc['max'] ) || ! ctype_digit( $sc['max'] ) ) {
|
475 |
+
$sc['max'] = '5';
|
476 |
+
}
|
477 |
+
if ( empty( $sc['size'] ) || ! ctype_digit( $sc['size'] ) ) {
|
478 |
+
$sc['size'] = '150';
|
479 |
+
}
|
480 |
+
if ( ! empty( $sc['title'] ) && ! ctype_digit( $sc['title'] ) ) {
|
481 |
+
$sc['title'] = '';
|
482 |
+
}
|
483 |
+
if ( ! empty( $sc['keywords_title'] ) ) {
|
484 |
+
$sc['keywords_title'] = rtrim( $sc['keywords_title'], ',' );
|
485 |
+
$sc['keywords_title'] = array_map( 'trim', explode( ',', $sc['keywords_title'] ) );
|
486 |
+
}
|
487 |
+
if ( ! empty( $sc['keywords_ban'] ) ) {
|
488 |
+
$sc['keywords_ban'] = rtrim( $sc['keywords_ban'], ',' );
|
489 |
+
$sc['keywords_ban'] = array_map( 'trim', explode( ',', $sc['keywords_ban'] ) );
|
490 |
+
}
|
491 |
+
if ( ! empty( $sc['summarylength'] ) && ! ctype_digit( $sc['summarylength'] ) ) {
|
492 |
+
$sc['summarylength'] = '';
|
493 |
+
}
|
494 |
+
if ( empty( $sc['default'] ) ) {
|
495 |
+
$sc['default'] = apply_filters( 'feedzy_default_image', $sc['default'], $feedURL );
|
496 |
+
}
|
497 |
+
|
498 |
+
return $sc;
|
499 |
+
}
|
500 |
+
|
501 |
+
/**
|
502 |
+
* Render the content to be displayed
|
503 |
+
*
|
504 |
+
* @since 3.0.0
|
505 |
+
* @access public
|
506 |
+
*
|
507 |
+
* @param array $sc The shorcode attributes array.
|
508 |
+
* @param object $feed The feed object.
|
509 |
+
* @param string $content The original content.
|
510 |
+
* @param string $feedURL The feed url.
|
511 |
+
*
|
512 |
+
* @return string
|
513 |
+
*/
|
514 |
+
public function render_content( $sc, $feed, $content = '', $feedURL ) {
|
515 |
+
$count = 0;
|
516 |
+
$sizes = array(
|
517 |
+
'width' => $sc['size'],
|
518 |
+
'height' => $sc['size'],
|
519 |
+
);
|
520 |
+
$sizes = apply_filters( 'feedzy_thumb_sizes', $sizes, $feedURL );
|
521 |
+
$feed_title['use_title'] = false;
|
522 |
+
if ( $sc['feed_title'] == 'yes' ) {
|
523 |
+
$feed_title = $this->get_feed_title_filter( $feed );
|
524 |
+
$feed_title['use_title'] = true;
|
525 |
+
}
|
526 |
+
// Display the error message
|
527 |
+
if ( $feed->error() ) {
|
528 |
+
$content .= apply_filters( 'feedzy_default_error', $feed->error(), $feedURL );
|
529 |
+
}
|
530 |
+
$feed_items = apply_filters( 'feedzy_get_feed_array', array(), $sc, $feed, $feedURL, $sizes );
|
531 |
+
$content = '<div class="feedzy-rss">';
|
532 |
+
if ( $feed_title['use_title'] ) {
|
533 |
+
$content .= '<div class="rss_header">';
|
534 |
+
$content .= '<h2><a href="' . $feed->get_permalink() . '" class="rss_title">' . html_entity_decode( $feed->get_title() ) . '</a> <span class="rss_description"> ' . $feed->get_description() . '</span></h2>';
|
535 |
+
$content .= '</div>';
|
536 |
+
}
|
537 |
+
$content .= '<ul>';
|
538 |
+
foreach ( $feed_items as $item ) {
|
539 |
+
$content .= '
|
540 |
+
<li ' . $item['itemAttr'] . '>
|
541 |
+
' . ( ( ! empty( $item['item_img'] ) && $sc['thumb'] != 'no' ) ? '
|
542 |
+
<div class="' . $item['item_img_class'] . '" style="' . $item['item_img_style'] . '">
|
543 |
+
<a href="' . $item['item_url'] . '" target="' . $item['item_url_target'] . '" title="' . $item['item_url_title'] . '" style="' . $item['item_img_style'] . '">
|
544 |
+
' . $item['item_img'] . '
|
545 |
+
</a>
|
546 |
+
</div>' : '' ) . '
|
547 |
+
<span class="title">
|
548 |
+
<a href="' . $item['item_url'] . '" target="' . $item['item_url_target'] . '">
|
549 |
+
' . $item['item_title'] . '
|
550 |
+
</a>
|
551 |
+
</span>
|
552 |
+
<div class="' . $item['item_content_class'] . '" style="' . $item['item_content_style'] . '">
|
553 |
+
' . ( ! empty( $item['item_meta'] ) ? '<small>
|
554 |
+
' . $item['item_meta'] . '
|
555 |
+
</small>' : '' ) . '
|
556 |
+
' . ( ! empty( $item['item_description'] ) ? '<p>' . $item['item_description'] . '</p>' : '' ) . '
|
557 |
+
</div>
|
558 |
+
</li>
|
559 |
+
';
|
560 |
+
}
|
561 |
+
$content .= '</ul> </div>';
|
562 |
+
$content = apply_filters( 'feedzy_global_output', $content, $sc, $feed_title, $feed_items );
|
563 |
+
|
564 |
+
return $content;
|
565 |
+
}
|
566 |
+
|
567 |
+
/**
|
568 |
+
* Retrive the filter rss title array
|
569 |
+
*
|
570 |
+
* @since 3.0.0
|
571 |
+
* @access private
|
572 |
+
*
|
573 |
+
* @param object $feed The feed object.
|
574 |
+
*
|
575 |
+
* @return array
|
576 |
+
*/
|
577 |
+
private function get_feed_title_filter( $feed ) {
|
578 |
+
return array(
|
579 |
+
'rss_url' => $feed->get_permalink(),
|
580 |
+
'rss_title_class' => 'rss_title',
|
581 |
+
'rss_title' => html_entity_decode( $feed->get_title() ),
|
582 |
+
'rss_description_class' => 'rss_description',
|
583 |
+
'rss_description' => $feed->get_description(),
|
584 |
+
);
|
585 |
+
}
|
586 |
+
|
587 |
+
/**
|
588 |
+
* Get the feed url based on the feeds passed from the shortcode attribute.
|
589 |
+
*
|
590 |
+
* @since 3.0.0
|
591 |
+
* @access public
|
592 |
+
*
|
593 |
+
* @param string $feeds The feeds from the shortcode attribute.
|
594 |
+
*
|
595 |
+
* @return array|mixed
|
596 |
+
*/
|
597 |
+
public function get_feed_url( $feeds ) {
|
598 |
+
$feedURL = '';
|
599 |
+
if ( ! empty( $feeds ) ) {
|
600 |
+
$feeds = rtrim( $feeds, ',' );
|
601 |
+
$feeds = explode( ',', $feeds );
|
602 |
+
$feedURL = array();
|
603 |
+
// Remove SSL from HTTP request to prevent fetching errors
|
604 |
+
foreach ( $feeds as $feed ) {
|
605 |
+
$feedURL[] = preg_replace( '/^https:/i', 'http:', $feed );
|
606 |
+
}
|
607 |
+
if ( count( $feedURL ) === 1 ) {
|
608 |
+
$feedURL = $feedURL[0];
|
609 |
+
}
|
610 |
+
}
|
611 |
+
|
612 |
+
return $feedURL;
|
613 |
+
}
|
614 |
+
|
615 |
+
/**
|
616 |
+
* Utility method to return feed in array format
|
617 |
+
* before content render.
|
618 |
+
*
|
619 |
+
* @since 3.0.12
|
620 |
+
* @access public
|
621 |
+
*
|
622 |
+
* @param array $feed_items The feed items array.
|
623 |
+
* @param array $sc The short code attributes.
|
624 |
+
* @param object $feed The feed object.
|
625 |
+
* @param string $feedURL The feed URL source/s.
|
626 |
+
* @param array $sizes Sizes array.
|
627 |
+
*
|
628 |
+
* @return array
|
629 |
+
*/
|
630 |
+
public function get_feed_array( $feed_items, $sc, $feed, $feedURL, $sizes ) {
|
631 |
+
$count = 0;
|
632 |
+
$items = apply_filters( 'feedzy_feed_items', $feed->get_items(), $feedURL );
|
633 |
+
foreach ( (array) $items as $item ) {
|
634 |
+
if ( trim( $item->get_title() ) != '' ) {
|
635 |
+
$continue = apply_filters( 'feedzy_item_keyword', true, $sc, $item, $feedURL );
|
636 |
+
if ( $continue == true ) {
|
637 |
+
// Count items
|
638 |
+
if ( $count >= $sc['max'] ) {
|
639 |
+
break;
|
640 |
+
}
|
641 |
+
$itemAttr = apply_filters( 'feedzy_item_attributes', $itemAttr = '', $sizes, $item, $feedURL, $sc );
|
642 |
+
$feed_items[ $count ] = $this->get_feed_item_filter( $sc, $sizes, $item, $feedURL );
|
643 |
+
$feed_items[ $count ]['itemAttr'] = $itemAttr;
|
644 |
+
$count ++;
|
645 |
+
}
|
646 |
+
}
|
647 |
+
}
|
648 |
+
|
649 |
+
return $feed_items;
|
650 |
+
}
|
651 |
+
|
652 |
+
/**
|
653 |
+
* Retrive the filter item array
|
654 |
+
*
|
655 |
+
* @since 3.0.0
|
656 |
+
* @access private
|
657 |
+
*
|
658 |
+
* @param array $sc The shorcode attributes array.
|
659 |
+
* @param array $sizes The sizes array.
|
660 |
+
* @param object $item The feed item object.
|
661 |
+
* @param string $feedURL The feed url.
|
662 |
+
*
|
663 |
+
* @return array
|
664 |
+
*/
|
665 |
+
private function get_feed_item_filter( $sc, $sizes, $item, $feedURL ) {
|
666 |
+
$itemLink = $item->get_permalink();
|
667 |
+
$newLink = apply_filters( 'feedzy_item_url_filter', $itemLink, $sc );
|
668 |
+
// Fetch image thumbnail
|
669 |
+
if ( $sc['thumb'] == 'yes' || $sc['thumb'] == 'auto' ) {
|
670 |
+
$theThumbnail = $this->feedzy_retrieve_image( $item );
|
671 |
+
}
|
672 |
+
if ( $sc['thumb'] == 'yes' || $sc['thumb'] == 'auto' ) {
|
673 |
+
$contentThumb = '';
|
674 |
+
if ( ( ! empty( $theThumbnail ) && $sc['thumb'] == 'auto' ) || $sc['thumb'] == 'yes' ) {
|
675 |
+
if ( ! empty( $theThumbnail ) ) {
|
676 |
+
$theThumbnail = $this->feedzy_image_encode( $theThumbnail );
|
677 |
+
$contentThumb .= '<span class="fetched" style="background-image: url(\'' . $theThumbnail . '\');" title="' . $item->get_title() . '"></span>';
|
678 |
+
}
|
679 |
+
if ( $sc['thumb'] == 'yes' ) {
|
680 |
+
$contentThumb .= '<span class="default" style="background-image:url(' . $sc['default'] . ');" title="' . $item->get_title() . '"></span>';
|
681 |
+
}
|
682 |
+
}
|
683 |
+
$contentThumb = apply_filters( 'feedzy_thumb_output', $contentThumb, $feedURL, $sizes );
|
684 |
+
} else {
|
685 |
+
$contentThumb = '';
|
686 |
+
$contentThumb .= '<span class="default" style="width:' . $sizes['width'] . 'px; height:' . $sizes['height'] . 'px; background-image:url(' . $sc['default'] . ');" title="' . $item->get_title() . '"></span>';
|
687 |
+
$contentThumb = apply_filters( 'feedzy_thumb_output', $contentThumb, $feedURL, $sizes );
|
688 |
+
}
|
689 |
+
$contentTitle = '';
|
690 |
+
if ( is_numeric( $sc['title'] ) && strlen( $item->get_title() ) > $sc['title'] ) {
|
691 |
+
$contentTitle .= preg_replace( '/\s+?(\S+)?$/', '', substr( $item->get_title(), 0, $sc['title'] ) ) . '...';
|
692 |
+
} else {
|
693 |
+
$contentTitle .= $item->get_title();
|
694 |
+
}
|
695 |
+
$contentTitle = apply_filters( 'feedzy_title_output', $contentTitle, $feedURL );
|
696 |
+
// Define Meta args
|
697 |
+
$metaArgs = array(
|
698 |
+
'author' => true,
|
699 |
+
'date' => true,
|
700 |
+
'date_format' => get_option( 'date_format' ),
|
701 |
+
'time_format' => get_option( 'time_format' ),
|
702 |
+
);
|
703 |
+
// Filter: feedzy_meta_args
|
704 |
+
$metaArgs = apply_filters( 'feedzy_meta_args', $metaArgs, $feedURL );
|
705 |
+
$contentMeta = '';
|
706 |
+
if ( $sc['meta'] == 'yes' && ( $metaArgs['author'] || $metaArgs['date'] ) ) {
|
707 |
+
$contentMeta = '';
|
708 |
+
if ( $item->get_author() && $metaArgs['author'] ) {
|
709 |
+
$author = $item->get_author();
|
710 |
+
if ( ! $authorName = $author->get_name() ) {
|
711 |
+
$authorName = $author->get_email();
|
712 |
+
}
|
713 |
+
if ( $authorName ) {
|
714 |
+
$domain = parse_url( $newLink );
|
715 |
+
$authorURL = '//' . $domain['host'];
|
716 |
+
$authorURL = apply_filters( 'feedzy_author_url', $authorURL, $authorName, $feedURL );
|
717 |
+
$contentMeta .= __( 'by', 'feedzy-rss-feeds' ) . ' <a href="' . $authorURL . '" target="' . $sc['target'] . '" title="' . $domain['host'] . '" >' . $authorName . '</a> ';
|
718 |
+
}
|
719 |
+
}
|
720 |
+
if ( $metaArgs['date'] ) {
|
721 |
+
$date_time = $item->get_date( 'U' );
|
722 |
+
$date_time = apply_filters( 'feedzy_feed_timestamp', $date_time, $feedURL );
|
723 |
+
$contentMeta .= __( 'on', 'feedzy-rss-feeds' ) . ' ' . date_i18n( $metaArgs['date_format'], $date_time );
|
724 |
+
$contentMeta .= ' ';
|
725 |
+
$contentMeta .= __( 'at', 'feedzy-rss-feeds' ) . ' ' . date_i18n( $metaArgs['time_format'], $date_time );
|
726 |
+
}
|
727 |
+
}
|
728 |
+
$contentMeta = apply_filters( 'feedzy_meta_output', $contentMeta, $feedURL );
|
729 |
+
$contentSummary = '';
|
730 |
+
if ( $sc['summary'] == 'yes' ) {
|
731 |
+
$contentSummary = '';
|
732 |
+
$description = $item->get_description();
|
733 |
+
$description = apply_filters( 'feedzy_summary_input', $description, $item->get_content(), $feedURL );
|
734 |
+
if ( is_numeric( $sc['summarylength'] ) && strlen( $description ) > $sc['summarylength'] ) {
|
735 |
+
$contentSummary .= preg_replace( '/\s+?(\S+)?$/', '', substr( $description, 0, $sc['summarylength'] ) ) . ' […]';
|
736 |
+
} else {
|
737 |
+
$contentSummary .= $description . ' […]';
|
738 |
+
}
|
739 |
+
$contentSummary = apply_filters( 'feedzy_summary_output', $contentSummary, $newLink, $feedURL );
|
740 |
+
}
|
741 |
+
$itemArray = array(
|
742 |
+
'item_img_class' => 'rss_image',
|
743 |
+
'item_img_style' => 'width:' . $sizes['width'] . 'px; height:' . $sizes['height'] . 'px;',
|
744 |
+
'item_url' => $newLink,
|
745 |
+
'item_url_target' => $sc['target'],
|
746 |
+
'item_url_title' => $item->get_title(),
|
747 |
+
'item_img' => $contentThumb,
|
748 |
+
'item_img_path' => $this->feedzy_retrieve_image( $item ),
|
749 |
+
'item_title' => $contentTitle,
|
750 |
+
'item_content_class' => 'rss_content',
|
751 |
+
'item_content_style' => '',
|
752 |
+
'item_meta' => $contentMeta,
|
753 |
+
'item_date' => $item->get_date( 'U' ),
|
754 |
+
'item_author' => $item->get_author(),
|
755 |
+
'item_description' => $contentSummary,
|
756 |
+
);
|
757 |
+
$itemArray = apply_filters( 'feedzy_item_filter', $itemArray, $item );
|
758 |
+
|
759 |
+
return $itemArray;
|
760 |
+
}
|
761 |
+
|
762 |
+
/**
|
763 |
+
* Retrive image from the item object
|
764 |
+
*
|
765 |
+
* @since 3.0.0
|
766 |
+
* @access public
|
767 |
+
*
|
768 |
+
* @param object $item The item object.
|
769 |
+
*
|
770 |
+
* @return string
|
771 |
+
*/
|
772 |
+
public function feedzy_retrieve_image( $item ) {
|
773 |
+
$theThumbnail = '';
|
774 |
+
if ( $enclosures = $item->get_enclosures() ) {
|
775 |
+
foreach ( (array) $enclosures as $enclosure ) {
|
776 |
+
// Item thumbnail
|
777 |
+
if ( $thumbnail = $enclosure->get_thumbnail() ) {
|
778 |
+
$theThumbnail = $thumbnail;
|
779 |
+
}
|
780 |
+
if ( isset( $enclosure->thumbnails ) ) {
|
781 |
+
foreach ( (array) $enclosure->thumbnails as $thumbnail ) {
|
782 |
+
$theThumbnail = $thumbnail;
|
783 |
+
}
|
784 |
+
}
|
785 |
+
if ( $thumbnail = $enclosure->embed() ) {
|
786 |
+
$pattern = '/https?:\/\/.*\.(?:jpg|JPG|jpeg|JPEG|jpe|JPE|gif|GIF|png|PNG)/i';
|
787 |
+
if ( preg_match( $pattern, $thumbnail, $matches ) ) {
|
788 |
+
$theThumbnail = $matches[0];
|
789 |
+
}
|
790 |
+
}
|
791 |
+
foreach ( (array) $enclosure->get_link() as $thumbnail ) {
|
792 |
+
$pattern = '/https?:\/\/.*\.(?:jpg|JPG|jpeg|JPEG|jpe|JPE|gif|GIF|png|PNG)/i';
|
793 |
+
$imgsrc = $thumbnail;
|
794 |
+
if ( preg_match( $pattern, $imgsrc, $matches ) ) {
|
795 |
+
$theThumbnail = $thumbnail;
|
796 |
+
break;
|
797 |
+
}
|
798 |
+
}
|
799 |
+
// Break loop if thumbnail is found
|
800 |
+
if ( ! empty( $theThumbnail ) ) {
|
801 |
+
break;
|
802 |
+
}
|
803 |
+
}
|
804 |
+
}
|
805 |
+
// xmlns:itunes podcast
|
806 |
+
if ( empty( $theThumbnail ) ) {
|
807 |
+
$data = $item->get_item_tags( 'http://www.itunes.com/dtds/podcast-1.0.dtd', 'image' );
|
808 |
+
if ( isset( $data['0']['attribs']['']['href'] ) && ! empty( $data['0']['attribs']['']['href'] ) ) {
|
809 |
+
$theThumbnail = $data['0']['attribs']['']['href'];
|
810 |
+
}
|
811 |
+
}
|
812 |
+
// Content image
|
813 |
+
if ( empty( $theThumbnail ) ) {
|
814 |
+
$feedDescription = $item->get_content();
|
815 |
+
$theThumbnail = $this->feedzy_return_image( $feedDescription );
|
816 |
+
}
|
817 |
+
// Description image
|
818 |
+
if ( empty( $theThumbnail ) ) {
|
819 |
+
$feedDescription = $item->get_description();
|
820 |
+
$theThumbnail = $this->feedzy_return_image( $feedDescription );
|
821 |
+
}
|
822 |
+
|
823 |
+
return $theThumbnail;
|
824 |
+
}
|
825 |
+
|
826 |
+
/**
|
827 |
+
* Get an image from a string
|
828 |
+
*
|
829 |
+
* @since 3.0.0
|
830 |
+
* @access public
|
831 |
+
*
|
832 |
+
* @param string $string A string with an <img/> tag.
|
833 |
+
*
|
834 |
+
* @return string
|
835 |
+
*/
|
836 |
+
public function feedzy_return_image( $string ) {
|
837 |
+
$img = html_entity_decode( $string, ENT_QUOTES, 'UTF-8' );
|
838 |
+
$pattern = '/<img[^>]+\>/i';
|
839 |
+
preg_match( $pattern, $img, $matches );
|
840 |
+
if ( isset( $matches[0] ) ) {
|
841 |
+
$blacklistCount = 0;
|
842 |
+
foreach ( $matches as $matche ) {
|
843 |
+
$link = $this->feedzy_scrape_image( $matche );
|
844 |
+
$blacklist = array();
|
845 |
+
$blacklist = apply_filters( 'feedzy_feed_blacklist_images', $this->feedzy_blacklist_images( $blacklist ) );
|
846 |
+
foreach ( $blacklist as $string ) {
|
847 |
+
if ( strpos( (string) $link, $string ) !== false ) {
|
848 |
+
$blacklistCount ++;
|
849 |
+
}
|
850 |
+
}
|
851 |
+
if ( $blacklistCount == 0 ) {
|
852 |
+
break;
|
853 |
+
}
|
854 |
+
}
|
855 |
+
if ( $blacklistCount == 0 ) {
|
856 |
+
return $link;
|
857 |
+
}
|
858 |
+
}
|
859 |
+
|
860 |
+
return '';
|
861 |
+
}
|
862 |
+
|
863 |
+
/**
|
864 |
+
* Scrape an image for link from a string with an <img/>
|
865 |
+
*
|
866 |
+
* @since 3.0.0
|
867 |
+
* @access public
|
868 |
+
*
|
869 |
+
* @param string $string A string with an <img/> tag.
|
870 |
+
* @param string $link The link to search for.
|
871 |
+
*
|
872 |
+
* @return string
|
873 |
+
*/
|
874 |
+
public function feedzy_scrape_image( $string, $link = '' ) {
|
875 |
+
$pattern = '/src=[\'"]?([^\'" >]+)[\'" >]/';
|
876 |
+
$match = $link;
|
877 |
+
preg_match( $pattern, $string, $link );
|
878 |
+
if ( ! empty( $link ) && isset( $link[1] ) ) {
|
879 |
+
$match = $link[1];
|
880 |
+
}
|
881 |
+
|
882 |
+
return $match;
|
883 |
+
}
|
884 |
+
|
885 |
+
/**
|
886 |
+
* List blacklisted images to prevent fetching emoticons
|
887 |
+
*
|
888 |
+
* @since 3.0.0
|
889 |
+
* @access public
|
890 |
+
*
|
891 |
+
* @param array $blacklist An array with blacklisted resources.
|
892 |
+
*
|
893 |
+
* @return array
|
894 |
+
*/
|
895 |
+
public function feedzy_blacklist_images( $blacklist ) {
|
896 |
+
$blacklist = array(
|
897 |
+
'frownie.png',
|
898 |
+
'icon_arrow.gif',
|
899 |
+
'icon_biggrin.gif',
|
900 |
+
'icon_confused.gif',
|
901 |
+
'icon_cool.gif',
|
902 |
+
'icon_cry.gif',
|
903 |
+
'icon_eek.gif',
|
904 |
+
'icon_evil.gif',
|
905 |
+
'icon_exclaim.gif',
|
906 |
+
'icon_idea.gif',
|
907 |
+
'icon_lol.gif',
|
908 |
+
'icon_mad.gif',
|
909 |
+
'icon_mrgreen.gif',
|
910 |
+
'icon_neutral.gif',
|
911 |
+
'icon_question.gif',
|
912 |
+
'icon_razz.gif',
|
913 |
+
'icon_redface.gif',
|
914 |
+
'icon_rolleyes.gif',
|
915 |
+
'icon_sad.gif',
|
916 |
+
'icon_smile.gif',
|
917 |
+
'icon_surprised.gif',
|
918 |
+
'icon_twisted.gif',
|
919 |
+
'icon_wink.gif',
|
920 |
+
'mrgreen.png',
|
921 |
+
'rolleyes.png',
|
922 |
+
'simple-smile.png',
|
923 |
+
);
|
924 |
+
|
925 |
+
return $blacklist;
|
926 |
+
}
|
927 |
+
|
928 |
+
/**
|
929 |
+
* Image name encoder and url retrive if in url param
|
930 |
+
*
|
931 |
+
* @since 3.0.0
|
932 |
+
* @access public
|
933 |
+
*
|
934 |
+
* @param string $string A string containing the image URL.
|
935 |
+
*
|
936 |
+
* @return string
|
937 |
+
*/
|
938 |
+
public function feedzy_image_encode( $string ) {
|
939 |
+
// Check if img url is set as an URL parameter
|
940 |
+
$url_tab = parse_url( $string );
|
941 |
+
if ( isset( $url_tab['query'] ) ) {
|
942 |
+
preg_match_all( '/(http|https):\/\/[^ ]+(\.gif|\.GIF|\.jpg|\.JPG|\.jpeg|\.JPEG|\.png|\.PNG)/', $url_tab['query'], $imgUrl );
|
943 |
+
if ( isset( $imgUrl[0][0] ) ) {
|
944 |
+
$string = $imgUrl[0][0];
|
945 |
+
}
|
946 |
+
}
|
947 |
+
// Encode image name only en keep extra parameters
|
948 |
+
$query = '';
|
949 |
+
if ( isset( $url_tab['query'] ) ) {
|
950 |
+
$query = '?' . $url_tab['query'];
|
951 |
+
}
|
952 |
+
$path = $url_tab['path'];
|
953 |
+
|
954 |
+
// Return a well encoded image url
|
955 |
+
return $url_tab['scheme'] . '://' . $url_tab['host'] . '/' . $path . $query;
|
956 |
+
}
|
957 |
+
|
958 |
+
/**
|
959 |
+
* Render the form template for tinyMCE popup.
|
960 |
+
* Called via ajax.
|
961 |
+
*
|
962 |
+
* @since 3.0.0
|
963 |
+
* @access public
|
964 |
+
*/
|
965 |
+
public function get_tinymce_form() {
|
966 |
+
die( include FEEDZY_ABSPATH . '/form/form.php' );
|
967 |
+
}
|
968 |
+
|
969 |
+
/**
|
970 |
+
* Method used to render upsell page.
|
971 |
+
*
|
972 |
+
* @since 3.0.12
|
973 |
+
* @access public
|
974 |
+
*/
|
975 |
+
public function render_upsell() {
|
976 |
+
$this->load_layout( 'feedzy-upsell' );
|
977 |
+
}
|
978 |
+
|
979 |
+
/**
|
980 |
+
* Method used to render pages
|
981 |
+
*
|
982 |
+
* @since 3.0.12
|
983 |
+
* @access public
|
984 |
+
*
|
985 |
+
* @param string $layout_name The name of the layout.
|
986 |
+
*
|
987 |
+
* @return mixed
|
988 |
+
*/
|
989 |
+
public function load_layout( $layout_name ) {
|
990 |
+
include( FEEDZY_ABSPATH . '/includes/layouts/' . $layout_name . '.php' );
|
991 |
+
}
|
992 |
+
|
993 |
+
/**
|
994 |
+
* Utility method to insert before specific key
|
995 |
+
* in an associative array.
|
996 |
+
*
|
997 |
+
* @since 3.0.12
|
998 |
+
* @access public
|
999 |
+
*
|
1000 |
+
* @param string $key The key before to insert.
|
1001 |
+
* @param array $array The array in which to insert the new key.
|
1002 |
+
* @param string $new_key The new key name.
|
1003 |
+
* @param mixed $new_value The new key value.
|
1004 |
+
*
|
1005 |
+
* @return array|bool
|
1006 |
+
*/
|
1007 |
+
protected function array_insert_before( $key, &$array, $new_key, $new_value ) {
|
1008 |
+
if ( array_key_exists( $key, $array ) ) {
|
1009 |
+
$new = array();
|
1010 |
+
foreach ( $array as $k => $value ) {
|
1011 |
+
if ( $k === $key ) {
|
1012 |
+
$new[ $new_key ] = $new_value;
|
1013 |
+
}
|
1014 |
+
$new[ $k ] = $value;
|
1015 |
+
}
|
1016 |
+
|
1017 |
+
return $new;
|
1018 |
+
}
|
1019 |
+
|
1020 |
+
return false;
|
1021 |
+
}
|
1022 |
+
}
|
includes/admin/feedzy-rss-feeds-admin.php
ADDED
@@ -0,0 +1,508 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The admin-specific functionality of the plugin.
|
4 |
+
*
|
5 |
+
* @link http://themeisle.com
|
6 |
+
* @since 3.0.0
|
7 |
+
*
|
8 |
+
* @package feedzy-rss-feeds
|
9 |
+
* @subpackage feedzy-rss-feeds/includes/admin
|
10 |
+
*/
|
11 |
+
/**
|
12 |
+
* The admin-specific functionality of the plugin.
|
13 |
+
*
|
14 |
+
* Defines the plugin name, version, and two examples hooks for how to
|
15 |
+
* enqueue the admin-specific stylesheet and JavaScript.
|
16 |
+
*
|
17 |
+
* @package feedzy-rss-feeds
|
18 |
+
* @subpackage feedzy-rss-feeds/includes/admin
|
19 |
+
* @author Themeisle <friends@themeisle.com>
|
20 |
+
*/
|
21 |
+
|
22 |
+
/**
|
23 |
+
* Class Feedzy_Rss_Feeds_Admin
|
24 |
+
*/
|
25 |
+
class Feedzy_Rss_Feeds_Admin extends Feedzy_Rss_Feeds_Admin_Abstract {
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Any notice we want to show in the settings screen.
|
29 |
+
*
|
30 |
+
* @access public
|
31 |
+
* @var string $notice The notice.
|
32 |
+
*/
|
33 |
+
public $notice;
|
34 |
+
/**
|
35 |
+
* Any error we want to show in the settings screen.
|
36 |
+
*
|
37 |
+
* @access public
|
38 |
+
* @var string $error The error.
|
39 |
+
*/
|
40 |
+
public $error;
|
41 |
+
/**
|
42 |
+
* The version of this plugin.
|
43 |
+
*
|
44 |
+
* @since 3.0.0
|
45 |
+
* @access protected
|
46 |
+
* @var string $version The current version of this plugin.
|
47 |
+
*/
|
48 |
+
protected $version;
|
49 |
+
/**
|
50 |
+
* The ID of this plugin.
|
51 |
+
*
|
52 |
+
* @since 3.0.0
|
53 |
+
* @access private
|
54 |
+
* @var string $plugin_name The ID of this plugin.
|
55 |
+
*/
|
56 |
+
private $plugin_name;
|
57 |
+
|
58 |
+
/**
|
59 |
+
* Initialize the class and set its properties.
|
60 |
+
*
|
61 |
+
* @since 3.0.0
|
62 |
+
* @access public
|
63 |
+
*
|
64 |
+
* @param string $plugin_name The name of this plugin.
|
65 |
+
* @param string $version The version of this plugin.
|
66 |
+
*/
|
67 |
+
public function __construct( $plugin_name, $version ) {
|
68 |
+
$this->plugin_name = $plugin_name;
|
69 |
+
$this->version = $version;
|
70 |
+
}
|
71 |
+
|
72 |
+
/**
|
73 |
+
* Register the stylesheets for the admin area.
|
74 |
+
*
|
75 |
+
* @since 3.0.0
|
76 |
+
* @access public
|
77 |
+
*/
|
78 |
+
public function enqueue_styles() {
|
79 |
+
/**
|
80 |
+
* This function is provided for demonstration purposes only.
|
81 |
+
*
|
82 |
+
* An instance of this class should be passed to the run() function
|
83 |
+
* defined in Feedzy_Rss_Feeds_Loader as all of the hooks are defined
|
84 |
+
* in that particular class.
|
85 |
+
*
|
86 |
+
* The Feedzy_Rss_Feeds_Loader will then create the relationship
|
87 |
+
* between the defined hooks and the functions defined in this
|
88 |
+
* class.
|
89 |
+
*/
|
90 |
+
|
91 |
+
wp_enqueue_style( $this->plugin_name, FEEDZY_ABSURL . 'css/feedzy-rss-feeds.css', array(), $this->version, 'all' );
|
92 |
+
if ( ! is_admin() ) {
|
93 |
+
return;
|
94 |
+
}
|
95 |
+
$screen = get_current_screen();
|
96 |
+
if ( empty( $screen ) ) {
|
97 |
+
return;
|
98 |
+
}
|
99 |
+
if ( ! isset( $screen->base ) ) {
|
100 |
+
return;
|
101 |
+
}
|
102 |
+
|
103 |
+
$upsell_screens = array( 'feedzy-rss_page_feedzy-settings', 'feedzy-rss_page_feedzy-admin-menu-pro-upsell' );
|
104 |
+
|
105 |
+
if ( ! in_array( $screen->base, $upsell_screens ) && strpos( $screen->id, 'feedzy' ) === false ) {
|
106 |
+
return;
|
107 |
+
}
|
108 |
+
wp_enqueue_style( $this->plugin_name . '-upsell', FEEDZY_ABSURL . 'includes/layouts/css/upsell.css' );
|
109 |
+
wp_enqueue_style( $this->plugin_name . '-settings', FEEDZY_ABSURL . 'css/metabox-settings.css', array( $this->plugin_name . '-upsell' ) );
|
110 |
+
}
|
111 |
+
|
112 |
+
/**
|
113 |
+
* Register the JavaScript for the admin area.
|
114 |
+
*
|
115 |
+
* @since 3.0.0
|
116 |
+
* @access public
|
117 |
+
*/
|
118 |
+
public function enqueue_scripts() {
|
119 |
+
|
120 |
+
/**
|
121 |
+
* This function is provided for demonstration purposes only.
|
122 |
+
*
|
123 |
+
* An instance of this class should be passed to the run() function
|
124 |
+
* defined in Feedzy_Rss_Feeds_Loader as all of the hooks are defined
|
125 |
+
* in that particular class.
|
126 |
+
*
|
127 |
+
* The Feedzy_Rss_Feeds_Loader will then create the relationship
|
128 |
+
* between the defined hooks and the functions defined in this
|
129 |
+
* class.
|
130 |
+
*/
|
131 |
+
}
|
132 |
+
|
133 |
+
/**
|
134 |
+
* Method to register custom post type for
|
135 |
+
* Feedzy RSS Feeds Categories.
|
136 |
+
*
|
137 |
+
* @since 3.0.12
|
138 |
+
* @access public
|
139 |
+
*/
|
140 |
+
public function register_post_type() {
|
141 |
+
$labels = array(
|
142 |
+
'name' => __( 'Feed Categories', 'feedzy-rss-feeds' ),
|
143 |
+
'singular_name' => __( 'Feed Category', 'feedzy-rss-feeds' ),
|
144 |
+
'add_new' => __( 'Add Category', 'feedzy-rss-feeds' ),
|
145 |
+
'add_new_item' => __( 'Add Category', 'feedzy-rss-feeds' ),
|
146 |
+
'edit_item' => __( 'Edit Category', 'feedzy-rss-feeds' ),
|
147 |
+
'new_item' => __( 'New Feed Category', 'feedzy-rss-feeds' ),
|
148 |
+
'view_item' => __( 'View Category', 'feedzy-rss-feeds' ),
|
149 |
+
'search_items' => __( 'Search Category', 'feedzy-rss-feeds' ),
|
150 |
+
'not_found' => __( 'No categories found', 'feedzy-rss-feeds' ),
|
151 |
+
'not_found_in_trash' => __( 'No categories in the trash', 'feedzy-rss-feeds' ),
|
152 |
+
);
|
153 |
+
$supports = array(
|
154 |
+
'title',
|
155 |
+
);
|
156 |
+
$args = array(
|
157 |
+
'labels' => $labels,
|
158 |
+
'supports' => $supports,
|
159 |
+
'public' => true,
|
160 |
+
'exclude_from_search' => true,
|
161 |
+
'publicly_queryable' => false,
|
162 |
+
'show_in_nav_menus' => false,
|
163 |
+
'capability_type' => 'post',
|
164 |
+
'rewrite' => array( 'slug' => 'feedzy-category' ),
|
165 |
+
'show_in_menu' => 'feedzy-admin-menu',
|
166 |
+
'register_meta_box_cb' => array( $this, 'add_feedzy_post_type_metaboxes' ),
|
167 |
+
);
|
168 |
+
$args = apply_filters( 'feedzy_post_type_args', $args );
|
169 |
+
register_post_type( 'feedzy_categories', $args );
|
170 |
+
}
|
171 |
+
|
172 |
+
/**
|
173 |
+
* Method to add a meta box to `feedzy_categories`
|
174 |
+
* custom post type.
|
175 |
+
*
|
176 |
+
* @since 3.0.12
|
177 |
+
* @access public
|
178 |
+
*/
|
179 |
+
public function add_feedzy_post_type_metaboxes() {
|
180 |
+
add_meta_box(
|
181 |
+
'feedzy_category_feeds', __( 'Category Feeds', 'feedzy-rss-feeds' ), array(
|
182 |
+
$this,
|
183 |
+
'feedzy_category_feed',
|
184 |
+
), 'feedzy_categories', 'normal', 'high'
|
185 |
+
);
|
186 |
+
add_meta_box(
|
187 |
+
'feedzy_category_feeds_rn', __( 'Increase your social media presence', 'feedzy-rss-feeds' ), array(
|
188 |
+
$this,
|
189 |
+
'render_upsell_rn',
|
190 |
+
), 'feedzy_categories', 'side', 'low'
|
191 |
+
);
|
192 |
+
}
|
193 |
+
|
194 |
+
/**
|
195 |
+
* Render RN upsell metabox.
|
196 |
+
*/
|
197 |
+
public function render_upsell_rn() {
|
198 |
+
echo '<p>Learn how you can connect with people by sharing content from RSS feeds on your social media accounts. </p>';
|
199 |
+
echo '<a class="button button-primary " href="https://revive.social/plugins/revive-network/" target="_blank">View more details</a>';
|
200 |
+
|
201 |
+
}
|
202 |
+
|
203 |
+
/**
|
204 |
+
* Meta box callback function to display a textarea
|
205 |
+
* inside the custom post edit page.
|
206 |
+
*
|
207 |
+
* @since 3.0.12
|
208 |
+
* @access public
|
209 |
+
* @return mixed
|
210 |
+
*/
|
211 |
+
public function feedzy_category_feed() {
|
212 |
+
global $post;
|
213 |
+
$nonce = wp_create_nonce( FEEDZY_BASEFILE );
|
214 |
+
$feed = get_post_meta( $post->ID, 'feedzy_category_feed', true );
|
215 |
+
$output = '
|
216 |
+
<input type="hidden" name="feedzy_category_meta_noncename" id="feedzy_category_meta_noncename" value="' . $nonce . '" />
|
217 |
+
<textarea name="feedzy_category_feed" rows="15" class="widefat" placeholder="' . __( 'Place your URL\'s here followed by a comma.', 'feedzy-rss-feeds' ) . '" >' . $feed . '</textarea>
|
218 |
+
';
|
219 |
+
echo $output;
|
220 |
+
}
|
221 |
+
|
222 |
+
/**
|
223 |
+
* Utility method to save metabox data to
|
224 |
+
* custom post type.
|
225 |
+
*
|
226 |
+
* @since 3.0.12
|
227 |
+
* @access public
|
228 |
+
*
|
229 |
+
* @param integer $post_id The active post ID.
|
230 |
+
* @param object $post The post object.
|
231 |
+
*
|
232 |
+
* @return mixed|integer
|
233 |
+
*/
|
234 |
+
public function save_feedzy_post_type_meta( $post_id, $post ) {
|
235 |
+
if (
|
236 |
+
empty( $_POST ) ||
|
237 |
+
( isset( $_POST['feedzy_category_meta_noncename'] ) && ! wp_verify_nonce( $_POST['feedzy_category_meta_noncename'], FEEDZY_BASEFILE ) ) ||
|
238 |
+
! current_user_can( 'edit_post', $post_id )
|
239 |
+
) {
|
240 |
+
return $post_id;
|
241 |
+
}
|
242 |
+
$category_meta['feedzy_category_feed'] = array();
|
243 |
+
if ( isset( $_POST['feedzy_category_feed'] ) ) {
|
244 |
+
$category_meta['feedzy_category_feed'] = $_POST['feedzy_category_feed'];
|
245 |
+
}
|
246 |
+
if ( $post->post_type == 'revision' ) {
|
247 |
+
return true;
|
248 |
+
} else {
|
249 |
+
foreach ( $category_meta as $key => $value ) {
|
250 |
+
$value = implode( ',', (array) $value );
|
251 |
+
if ( get_post_meta( $post_id, $key, false ) ) {
|
252 |
+
update_post_meta( $post_id, $key, $value );
|
253 |
+
} else {
|
254 |
+
add_post_meta( $post_id, $key, $value );
|
255 |
+
}
|
256 |
+
if ( ! $value ) {
|
257 |
+
delete_post_meta( $post_id, $key );
|
258 |
+
}
|
259 |
+
}
|
260 |
+
|
261 |
+
return true;
|
262 |
+
}
|
263 |
+
}
|
264 |
+
|
265 |
+
/**
|
266 |
+
* Method for adding `slug` column to post type
|
267 |
+
* table and internalize the `title`. Used for
|
268 |
+
* table head.
|
269 |
+
*
|
270 |
+
* @since 3.0.12
|
271 |
+
* @access public
|
272 |
+
*
|
273 |
+
* @param array $columns The default columns array.
|
274 |
+
*
|
275 |
+
* @return array
|
276 |
+
*/
|
277 |
+
public function feedzy_category_columns( $columns ) {
|
278 |
+
$columns['title'] = __( 'Category Title', 'feedzy-rss-feeds' );
|
279 |
+
if ( $new_columns = $this->array_insert_before( 'date', $columns, 'slug', __( 'Slug', 'feedzy-rss-feeds' ) ) ) {
|
280 |
+
$columns = $new_columns;
|
281 |
+
} else {
|
282 |
+
$columns['slug'] = __( 'Slug', 'feedzy-rss-feeds' );
|
283 |
+
}
|
284 |
+
|
285 |
+
return $columns;
|
286 |
+
}
|
287 |
+
|
288 |
+
/**
|
289 |
+
* Method for displaying post type data in custom
|
290 |
+
* added columns.
|
291 |
+
*
|
292 |
+
* @since 3.0.12
|
293 |
+
* @access public
|
294 |
+
*
|
295 |
+
* @param string $column The column string.
|
296 |
+
* @param integer $post_id The active post ID.
|
297 |
+
*
|
298 |
+
* @return mixed
|
299 |
+
*/
|
300 |
+
public function manage_feedzy_category_columns( $column, $post_id ) {
|
301 |
+
global $post;
|
302 |
+
switch ( $column ) {
|
303 |
+
case 'slug':
|
304 |
+
$slug = $post->post_name;
|
305 |
+
if ( empty( $slug ) ) {
|
306 |
+
echo __( 'Undefined', 'feedzy-rss-feeds' );
|
307 |
+
} else {
|
308 |
+
echo '<code>' . $slug . '</code>';
|
309 |
+
}
|
310 |
+
break;
|
311 |
+
default:
|
312 |
+
break;
|
313 |
+
}
|
314 |
+
}
|
315 |
+
|
316 |
+
/**
|
317 |
+
* The custom plugin_row_meta function
|
318 |
+
* Adds additional links on the plugins page for this plugin
|
319 |
+
*
|
320 |
+
* @since 3.0.0
|
321 |
+
* @access public
|
322 |
+
*
|
323 |
+
* @param array $links The array having default links for the plugin.
|
324 |
+
* @param string $file The name of the plugin file.
|
325 |
+
*
|
326 |
+
* @return array
|
327 |
+
*/
|
328 |
+
public function feedzy_filter_plugin_row_meta( $links, $file ) {
|
329 |
+
if ( strpos( $file, 'feedzy-rss-feed.php' ) !== false ) {
|
330 |
+
$new_links = array(
|
331 |
+
'doc' => '<a href="http://docs.themeisle.com/article/277-feedzy-rss-feeds-hooks" target="_blank" title="' . __( 'Documentation and examples', 'feedzy-rss-feeds' ) . '">' . __( 'Documentation and examples', 'feedzy-rss-feeds' ) . '</a>',
|
332 |
+
'more_features' => '<a href="' . FEEDZY_UPSELL_LINK . '" target="_blank" title="' . __( 'More Plugins', 'feedzy-rss-feeds' ) . '">' . __( 'More Features', 'feedzy-rss-feeds' ) . '<i style="width: 17px; height: 17px; margin-left: 4px; color: #ffca54; font-size: 17px; vertical-align: -3px;" class="dashicons dashicons-unlock more-features-icon"></i></a>',
|
333 |
+
);
|
334 |
+
$links = array_merge( $links, $new_links );
|
335 |
+
}
|
336 |
+
|
337 |
+
return $links;
|
338 |
+
}
|
339 |
+
|
340 |
+
/**
|
341 |
+
* Method to register pages for admin menu.
|
342 |
+
*
|
343 |
+
* @since 3.0.12
|
344 |
+
* @access public
|
345 |
+
*/
|
346 |
+
public function feedzy_menu_pages() {
|
347 |
+
$svg_base64_icon = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4NTAuMzkiIGhlaWdodD0iODUwLjM5Ij48cGF0aCBmaWxsPSIjREIzOTM5IiBkPSJNNDI1LjIgMkMxOTAuMzYgMiAwIDE5MS45MiAwIDQyNi4yYzAgMjM0LjI3IDE5MC4zNyA0MjQuMiA0MjUuMiA0MjQuMiAyMzQuODIgMCA0MjUuMi0xODkuOTMgNDI1LjItNDI0LjJDODUwLjQgMTkxLjkgNjYwIDIgNDI1LjIgMnptLTQ2LjU1IDY2OC42NmgtOTEuNTh2LTU3LjFMMjM3LjUgNTY0LjFoLTU3LjI2di05MS4yNGg5NS4yNWwxMDMuMTUgMTAyLjh2OTV6bTE1Mi41MiAwSDQzOS42di0xMzMuM0wzMTMuODUgNDExLjk0aC0xMzMuNnYtOTEuMzZIMzUxLjdMNTMxLjE4IDQ5OS42djE3MS4wNnptMTUyLjU1IDBoLTkxLjU4VjQ2MS4yTDM5MC4wNiAyNTkuNzRIMTgwLjI0di05MS4zNmgyNDcuOGwyNTUuNjggMjU1LjA3djI0Ny4yMnoiLz48L3N2Zz4=';
|
348 |
+
add_menu_page( __( 'Feedzy RSS Feeds', 'feedzy-rss-feeds' ), __( 'Feedzy RSS', 'feedzy-rss-feeds' ), 'manage_options', 'feedzy-admin-menu', '', $svg_base64_icon, 98.7666 );
|
349 |
+
if ( ! class_exists( 'Feedzy_Rss_Feeds_Pro' ) ) {
|
350 |
+
add_submenu_page(
|
351 |
+
'feedzy-admin-menu', __( 'More Features', 'feedzy-rss-feeds' ), __( 'More Features', 'feedzy-rss-feeds' ) . '<span class="dashicons
|
352 |
+
dashicons-star-filled more-features-icon" style="width: 17px; height: 17px; margin-left: 4px; color: #ffca54; font-size: 17px; vertical-align: -3px;"></span>', 'manage_options', 'feedzy-admin-menu-pro-upsell',
|
353 |
+
array(
|
354 |
+
$this,
|
355 |
+
'render_upsell',
|
356 |
+
)
|
357 |
+
);
|
358 |
+
} else {
|
359 |
+
$is_business = apply_filters( 'feedzy_is_business_filter', false );
|
360 |
+
if ( $is_business != false ) {
|
361 |
+
add_submenu_page( 'feedzy-admin-menu', __( 'Import Posts', 'feedzy-rss-feeds' ), __( 'Import Posts', 'feedzy-rss-feeds' ), 'manage_options', 'edit.php?post_type=feedzy_imports' );
|
362 |
+
}
|
363 |
+
}
|
364 |
+
add_submenu_page(
|
365 |
+
'feedzy-admin-menu', __( 'Settings', 'feedzy-rss-feeds' ), __( 'Settings', 'feedzy-rss-feeds' ), 'manage_options', 'feedzy-settings', array(
|
366 |
+
$this,
|
367 |
+
'feedzy_settings_page',
|
368 |
+
)
|
369 |
+
);
|
370 |
+
}
|
371 |
+
|
372 |
+
/**
|
373 |
+
* Method to register the settings page.
|
374 |
+
*
|
375 |
+
* @access public
|
376 |
+
*/
|
377 |
+
public function feedzy_settings_page() {
|
378 |
+
if ( isset( $_POST['feedzy-settings-submit'] ) && isset( $_POST['tab'] ) && wp_verify_nonce( $_POST['nonce'], $_POST['tab'] ) ) {
|
379 |
+
$this->save_settings();
|
380 |
+
$this->notice = __( 'Your settings were saved.', 'feedzy-rss-feeds' );
|
381 |
+
}
|
382 |
+
|
383 |
+
$settings = apply_filters( 'feedzy_get_settings', array() );
|
384 |
+
include( FEEDZY_ABSPATH . '/includes/layouts/settings.php' );
|
385 |
+
}
|
386 |
+
|
387 |
+
/**
|
388 |
+
* Method to save the settings.
|
389 |
+
*
|
390 |
+
* @access private
|
391 |
+
*/
|
392 |
+
private function save_settings() {
|
393 |
+
$settings = apply_filters( 'feedzy_get_settings', array() );
|
394 |
+
switch ( $_POST['tab'] ) {
|
395 |
+
case 'headers':
|
396 |
+
$settings['header']['user-agent'] = $_POST['user-agent'];
|
397 |
+
break;
|
398 |
+
case 'proxy':
|
399 |
+
$settings['proxy'] = array(
|
400 |
+
'host' => $_POST['proxy-host'],
|
401 |
+
'port' => $_POST['proxy-port'],
|
402 |
+
'user' => $_POST['proxy-user'],
|
403 |
+
'pass' => $_POST['proxy-pass'],
|
404 |
+
);
|
405 |
+
break;
|
406 |
+
}
|
407 |
+
|
408 |
+
update_option( 'feedzy-settings', $settings );
|
409 |
+
}
|
410 |
+
|
411 |
+
/**
|
412 |
+
* Method to get the settings.
|
413 |
+
*
|
414 |
+
* @access public
|
415 |
+
*/
|
416 |
+
public function get_settings() {
|
417 |
+
$settings = get_option( 'feedzy-settings' );
|
418 |
+
|
419 |
+
return $settings;
|
420 |
+
}
|
421 |
+
|
422 |
+
/**
|
423 |
+
* Set up the HTTP parameters/headers.
|
424 |
+
*
|
425 |
+
* @access public
|
426 |
+
*/
|
427 |
+
public function pre_http_setup( $url ) {
|
428 |
+
$this->add_proxy( $url );
|
429 |
+
add_filter( 'http_headers_useragent', array( $this, 'add_user_agent' ) );
|
430 |
+
}
|
431 |
+
|
432 |
+
/**
|
433 |
+
* Add the proxy settings as specified in the settings.
|
434 |
+
*
|
435 |
+
* @access private
|
436 |
+
*/
|
437 |
+
private function add_proxy( $url ) {
|
438 |
+
$settings = apply_filters( 'feedzy_get_settings', null );
|
439 |
+
if ( $settings && is_array( $settings['proxy'] ) && ! empty( $settings['proxy'] ) ) {
|
440 |
+
// if even one constant is defined, escape.
|
441 |
+
if ( defined( 'WP_PROXY_HOST' ) || defined( 'WP_PROXY_PORT' ) || defined( 'WP_PROXY_USERNAME' ) || defined( 'WP_PROXY_PASSWORD' ) ) {
|
442 |
+
do_action( 'themeisle_log_event', FEEDZY_NAME, 'Some proxy constants already defined; ignoring proxy settings', 'info', __FILE__, __LINE__ );
|
443 |
+
|
444 |
+
return;
|
445 |
+
}
|
446 |
+
if ( isset( $settings['proxy']['host'] ) ) {
|
447 |
+
define( 'WP_PROXY_HOST', $settings['proxy']['host'] );
|
448 |
+
}
|
449 |
+
if ( isset( $settings['proxy']['port'] ) ) {
|
450 |
+
define( 'WP_PROXY_PORT', $settings['proxy']['port'] );
|
451 |
+
}
|
452 |
+
if ( isset( $settings['proxy']['user'] ) ) {
|
453 |
+
define( 'WP_PROXY_USERNAME', $settings['proxy']['user'] );
|
454 |
+
}
|
455 |
+
if ( isset( $settings['proxy']['pass'] ) ) {
|
456 |
+
define( 'WP_PROXY_PASSWORD', $settings['proxy']['pass'] );
|
457 |
+
}
|
458 |
+
|
459 |
+
// temporary constant for use in the pre_http_send_through_proxy filter.
|
460 |
+
if ( ! defined( 'FEEZY_URL_THRU_PROXY' ) ) {
|
461 |
+
define( 'FEEZY_URL_THRU_PROXY', $url );
|
462 |
+
}
|
463 |
+
add_filter( 'pre_http_send_through_proxy', array( $this, 'send_through_proxy' ), 10, 4 );
|
464 |
+
}
|
465 |
+
}
|
466 |
+
|
467 |
+
/**
|
468 |
+
* Add the user agent if specified in the settings.
|
469 |
+
*
|
470 |
+
* @access public
|
471 |
+
*/
|
472 |
+
public function add_user_agent( $ua ) {
|
473 |
+
$settings = apply_filters( 'feedzy_get_settings', null );
|
474 |
+
if ( $settings && isset( $settings['header']['user-agent'] ) && ! empty( $settings['header']['user-agent'] ) ) {
|
475 |
+
do_action( 'themeisle_log_event', FEEDZY_NAME, sprintf( 'Override user-agent from %s to %s', $ua, $settings['header']['user-agent'] ), 'info', __FILE__, __LINE__ );
|
476 |
+
$ua = $settings['header']['user-agent'];
|
477 |
+
}
|
478 |
+
|
479 |
+
return $ua;
|
480 |
+
}
|
481 |
+
|
482 |
+
/**
|
483 |
+
* Check if the uri should go through the proxy.
|
484 |
+
*
|
485 |
+
* @access public
|
486 |
+
*/
|
487 |
+
public function send_through_proxy( $return, $uri, $check, $home ) {
|
488 |
+
$proxied = defined( 'FEEZY_URL_THRU_PROXY' ) ? FEEZY_URL_THRU_PROXY : null;
|
489 |
+
if ( $proxied && ( ( is_array( $proxied ) && in_array( $uri, $proxied ) ) || $uri === $proxied ) ) {
|
490 |
+
do_action( 'themeisle_log_event', FEEDZY_NAME, sprintf( 'sending %s through proxy', $uri ), 'info', __FILE__, __LINE__ );
|
491 |
+
|
492 |
+
return true;
|
493 |
+
}
|
494 |
+
|
495 |
+
return false;
|
496 |
+
}
|
497 |
+
|
498 |
+
/**
|
499 |
+
* Teardown the HTTP parameters/headers.
|
500 |
+
*
|
501 |
+
* @access public
|
502 |
+
*/
|
503 |
+
public function post_http_teardown( $url ) {
|
504 |
+
remove_filter( 'http_headers_useragent', array( $this, 'add_user_agent' ) );
|
505 |
+
}
|
506 |
+
|
507 |
+
|
508 |
+
}
|
includes/admin/feedzy-rss-feeds-options.php
ADDED
@@ -0,0 +1,84 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The Options main wrapper class.
|
4 |
+
*
|
5 |
+
* @link http://themeisle.com
|
6 |
+
* @since 3.0.3
|
7 |
+
*
|
8 |
+
* @package feedzy-rss-feeds
|
9 |
+
* @subpackage feedzy-rss-feeds/includes/admin
|
10 |
+
*/
|
11 |
+
if ( ! class_exists( 'Feedy_Rss_Feeds_Options' ) ) {
|
12 |
+
/**
|
13 |
+
* Singleton class for options wrapper
|
14 |
+
*/
|
15 |
+
class Feedzy_Rss_Feeds_Options {
|
16 |
+
|
17 |
+
/**
|
18 |
+
* The main instance var.
|
19 |
+
*
|
20 |
+
* @var Feedzy_Rss_Feeds_Options The one Feedy_Rss_Feeds_Options istance.
|
21 |
+
* @since 3.0.3
|
22 |
+
*/
|
23 |
+
private static $instance;
|
24 |
+
|
25 |
+
/**
|
26 |
+
* The main options array.
|
27 |
+
*
|
28 |
+
* @var array The options array.
|
29 |
+
* @since 3.0.3
|
30 |
+
*/
|
31 |
+
private $options;
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Init the main singleton instance class.
|
35 |
+
*
|
36 |
+
* @return Feedzy_Rss_Feeds_Options Return the instance class
|
37 |
+
*/
|
38 |
+
public static function instance() {
|
39 |
+
if ( ! isset( self::$instance ) && ! ( self::$instance instanceof Feedzy_Rss_Feeds_Options ) ) {
|
40 |
+
self::$instance = new Feedzy_Rss_Feeds_Options;
|
41 |
+
self::$instance->init();
|
42 |
+
}
|
43 |
+
|
44 |
+
return self::$instance;
|
45 |
+
}
|
46 |
+
|
47 |
+
/**
|
48 |
+
* Init the default values of the options class.
|
49 |
+
*/
|
50 |
+
public function init() {
|
51 |
+
self::$instance->options = get_option( Feedzy_Rss_Feeds::get_plugin_name() );
|
52 |
+
}
|
53 |
+
|
54 |
+
/**
|
55 |
+
* Get the key option value from DB.
|
56 |
+
*
|
57 |
+
* @param string $key The key name of the option.
|
58 |
+
*
|
59 |
+
* @return bool|mixed The value of the option
|
60 |
+
*/
|
61 |
+
public function get_var( $key ) {
|
62 |
+
if ( isset( self::$instance->options[ $key ] ) ) {
|
63 |
+
return self::$instance->options[ $key ];
|
64 |
+
}
|
65 |
+
|
66 |
+
return false;
|
67 |
+
}
|
68 |
+
|
69 |
+
/**
|
70 |
+
* Setter method for updating the options array.
|
71 |
+
*
|
72 |
+
* @param string $key The name of option.
|
73 |
+
* @param string $value The value of the option.
|
74 |
+
*
|
75 |
+
* @return bool|mixed The value of the option.
|
76 |
+
*/
|
77 |
+
public function set_var( $key, $value = '' ) {
|
78 |
+
self::$instance->options[ $key ] = apply_filters( 'feedzy_pre_set_option_' . $key, $value );
|
79 |
+
|
80 |
+
return update_option( Feedzy_Rss_Feeds::get_plugin_name(), self::$instance->options );
|
81 |
+
|
82 |
+
}
|
83 |
+
}
|
84 |
+
}// End if().
|
includes/admin/feedzy-rss-feeds-ui-lang.php
ADDED
@@ -0,0 +1,369 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The Language function file for tinymce.
|
4 |
+
*
|
5 |
+
* @link http://themeisle.com
|
6 |
+
* @since 3.0.0
|
7 |
+
*
|
8 |
+
* @package feedzy-rss-feeds
|
9 |
+
* @subpackage feedzy-rss-feeds/includes/admin
|
10 |
+
*/
|
11 |
+
/**
|
12 |
+
*
|
13 |
+
* SECURITY : Exit if accessed directly
|
14 |
+
*/
|
15 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
16 |
+
die( 'Direct access not allowed!' );
|
17 |
+
}
|
18 |
+
|
19 |
+
/**
|
20 |
+
*
|
21 |
+
* Translation for TinyMCE
|
22 |
+
*/
|
23 |
+
|
24 |
+
if ( ! class_exists( '_WP_Editors' ) ) {
|
25 |
+
require( ABSPATH . WPINC . '/class-wp-editor.php' );
|
26 |
+
}
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Class Feedzy_Rss_Feeds_Ui_Lang
|
30 |
+
*/
|
31 |
+
class Feedzy_Rss_Feeds_Ui_Lang {
|
32 |
+
|
33 |
+
/**
|
34 |
+
* The strings for translation.
|
35 |
+
*
|
36 |
+
* @since 3.0.0
|
37 |
+
* @access protected
|
38 |
+
* @var array $strings The ID of this plugin.
|
39 |
+
*/
|
40 |
+
protected $strings;
|
41 |
+
|
42 |
+
/**
|
43 |
+
* Initialize the class and set its properties.
|
44 |
+
*
|
45 |
+
* @since 3.0.0
|
46 |
+
* @access public
|
47 |
+
*/
|
48 |
+
public function __construct() {
|
49 |
+
$this->strings = array(
|
50 |
+
'popup_url' => wp_nonce_url( 'admin-ajax.php', 'feedzy_ajax_token', 'feedzy_request_form_token' ),
|
51 |
+
'pro_url' => FEEDZY_UPSELL_LINK,
|
52 |
+
'plugin_label' => __( 'Feedzy Lite', 'feedzy-rss-feeds' ),
|
53 |
+
'plugin_title' => __( 'Insert Feedzy RSS Feeds Shortcode', 'feedzy-rss-feeds' ),
|
54 |
+
'image_button' => __( 'Use Image', 'feedzy-rss-feeds' ),
|
55 |
+
'insert_button' => __( 'Insert Shortcode', 'feedzy-rss-feeds' ),
|
56 |
+
'cancel_button' => __( 'Cancel', 'feedzy-rss-feeds' ),
|
57 |
+
'pro_button' => __( 'Get Feedzy RSS Feeds Premium', 'feedzy-rss-feeds' ),
|
58 |
+
);
|
59 |
+
}
|
60 |
+
|
61 |
+
/**
|
62 |
+
* Return the default values of the forms elements
|
63 |
+
*
|
64 |
+
* @return array The default values of shortcode elements
|
65 |
+
*/
|
66 |
+
public static function get_form_defaults() {
|
67 |
+
|
68 |
+
$html_parts = self::get_form_elements();
|
69 |
+
$all_options = wp_list_pluck( array_values( $html_parts ), 'elements' );
|
70 |
+
$all_options = call_user_func_array( 'array_merge', $all_options );
|
71 |
+
$defaults = array();
|
72 |
+
|
73 |
+
foreach ( $all_options as $id => $option ) {
|
74 |
+
$defaults[ $id ] = $option['value'];
|
75 |
+
}
|
76 |
+
|
77 |
+
return $defaults;
|
78 |
+
}
|
79 |
+
|
80 |
+
/**
|
81 |
+
* The method for localizing and generating of the tinyMCE popup form.
|
82 |
+
*
|
83 |
+
* It returns an array, use it to add more options to the popup window.
|
84 |
+
* Can be hook-ed into via 'feedzy_get_form_elements'.
|
85 |
+
*
|
86 |
+
* @since 3.0.0
|
87 |
+
* @access public
|
88 |
+
* @return array|mixed|void
|
89 |
+
*/
|
90 |
+
public static function get_form_elements() {
|
91 |
+
$elements = array(
|
92 |
+
'section_feed' => array(
|
93 |
+
'title' => __( 'Feed Source', 'feedzy-rss-feeds' ),
|
94 |
+
'elements' => array(
|
95 |
+
'feeds' => array(
|
96 |
+
'label' => __( 'The feed(s) URL (comma-separated list).', 'feedzy-rss-feeds' ) . ' ' . __( 'Check feed before insert.', 'feedzy-rss-feeds' ),
|
97 |
+
'placeholder' => __( 'Feed URL', 'feedzy-rss-feeds' ),
|
98 |
+
'type' => 'text',
|
99 |
+
'value' => '',
|
100 |
+
),
|
101 |
+
'max' => array(
|
102 |
+
'label' => __( 'Number of items to display.', 'feedzy-rss-feeds' ),
|
103 |
+
'placeholder' => __( '(eg: 5)', 'feedzy-rss-feeds' ),
|
104 |
+
'type' => 'text',
|
105 |
+
'value' => '',
|
106 |
+
),
|
107 |
+
'feed_title' => array(
|
108 |
+
'label' => __( 'Should we display the RSS title?', 'feedzy-rss-feeds' ),
|
109 |
+
'type' => 'select',
|
110 |
+
'value' => '',
|
111 |
+
'opts' => array(
|
112 |
+
'yes' => array(
|
113 |
+
'label' => __( 'Yes', 'feedzy-rss-feeds' ),
|
114 |
+
'value' => 'yes',
|
115 |
+
),
|
116 |
+
'no' => array(
|
117 |
+
'label' => __( 'No', 'feedzy-rss-feeds' ),
|
118 |
+
'value' => 'no',
|
119 |
+
),
|
120 |
+
),
|
121 |
+
),
|
122 |
+
'refresh' => array(
|
123 |
+
'label' => __( 'For how long we will cache the feed results.', 'feedzy-rss-feeds' ),
|
124 |
+
'placeholder' => __( '(eg: 1_days, defaults: 12_hours)', 'feedzy-rss-feeds' ),
|
125 |
+
'type' => 'select',
|
126 |
+
'value' => '12_hours',
|
127 |
+
'opts' => array(
|
128 |
+
'1_hours' => array(
|
129 |
+
'label' => '1' . ' ' . __( 'Hour', 'feedzy-rss-feeds' ),
|
130 |
+
'value' => '1_hours',
|
131 |
+
),
|
132 |
+
'3_hours' => array(
|
133 |
+
'label' => '3' . ' ' . __( 'Hours', 'feedzy-rss-feeds' ),
|
134 |
+
'value' => '3_hours',
|
135 |
+
),
|
136 |
+
'12_hours' => array(
|
137 |
+
'label' => '12' . ' ' . __( 'Hours', 'feedzy-rss-feeds' ),
|
138 |
+
'value' => '12_hours',
|
139 |
+
),
|
140 |
+
'1_days' => array(
|
141 |
+
'label' => '1' . ' ' . __( 'Day', 'feedzy-rss-feeds' ),
|
142 |
+
'value' => '1_days',
|
143 |
+
),
|
144 |
+
'3_days' => array(
|
145 |
+
'label' => '3' . ' ' . __( 'Days', 'feedzy-rss-feeds' ),
|
146 |
+
'value' => '3_days',
|
147 |
+
),
|
148 |
+
'15_days' => array(
|
149 |
+
'label' => '15' . ' ' . __( 'Days', 'feedzy-rss-feeds' ),
|
150 |
+
'value' => '15_days',
|
151 |
+
),
|
152 |
+
),
|
153 |
+
),
|
154 |
+
),
|
155 |
+
),
|
156 |
+
'section_item' => array(
|
157 |
+
'title' => __( 'Item Options', 'feedzy-rss-feeds' ),
|
158 |
+
'elements' => array(
|
159 |
+
'target' => array(
|
160 |
+
'label' => __( 'Links may be opened in the same window or a new tab.', 'feedzy-rss-feeds' ),
|
161 |
+
'type' => 'select',
|
162 |
+
'value' => '',
|
163 |
+
'opts' => array(
|
164 |
+
'auto' => array(
|
165 |
+
'label' => __( 'Auto', 'feedzy-rss-feeds' ),
|
166 |
+
'value' => '',
|
167 |
+
),
|
168 |
+
'_blank' => array(
|
169 |
+
'label' => __( '_blank', 'feedzy-rss-feeds' ),
|
170 |
+
'value' => '_blank',
|
171 |
+
),
|
172 |
+
'_self' => array(
|
173 |
+
'label' => __( '_self', 'feedzy-rss-feeds' ),
|
174 |
+
'value' => '_self',
|
175 |
+
),
|
176 |
+
'_parent' => array(
|
177 |
+
'label' => __( '_parent', 'feedzy-rss-feeds' ),
|
178 |
+
'value' => '_parent',
|
179 |
+
),
|
180 |
+
'_top' => array(
|
181 |
+
'label' => __( '_top', 'feedzy-rss-feeds' ),
|
182 |
+
'value' => '_top',
|
183 |
+
),
|
184 |
+
'framename' => array(
|
185 |
+
'label' => __( 'framename', 'feedzy-rss-feeds' ),
|
186 |
+
'value' => 'framename',
|
187 |
+
),
|
188 |
+
),
|
189 |
+
),
|
190 |
+
'title' => array(
|
191 |
+
'label' => __( 'Trim the title of the item after X characters.', 'feedzy-rss-feeds' ),
|
192 |
+
'placeholder' => __( '(eg: 160)', 'feedzy-rss-feeds' ),
|
193 |
+
'type' => 'text',
|
194 |
+
'value' => '',
|
195 |
+
),
|
196 |
+
'meta' => array(
|
197 |
+
'label' => __( 'Should we display the date of publication and the author name?', 'feedzy-rss-feeds' ),
|
198 |
+
'type' => 'select',
|
199 |
+
'value' => '',
|
200 |
+
'opts' => array(
|
201 |
+
'yes' => array(
|
202 |
+
'label' => __( 'Yes', 'feedzy-rss-feeds' ),
|
203 |
+
'value' => 'yes',
|
204 |
+
),
|
205 |
+
'no' => array(
|
206 |
+
'label' => __( 'No', 'feedzy-rss-feeds' ),
|
207 |
+
'value' => 'no',
|
208 |
+
),
|
209 |
+
),
|
210 |
+
),
|
211 |
+
'summary' => array(
|
212 |
+
'label' => __( 'Should we display a description (abstract) of the retrieved item?', 'feedzy-rss-feeds' ),
|
213 |
+
'type' => 'select',
|
214 |
+
'value' => '',
|
215 |
+
'opts' => array(
|
216 |
+
'yes' => array(
|
217 |
+
'label' => __( 'Yes', 'feedzy-rss-feeds' ),
|
218 |
+
'value' => 'yes',
|
219 |
+
),
|
220 |
+
'no' => array(
|
221 |
+
'label' => __( 'No', 'feedzy-rss-feeds' ),
|
222 |
+
'value' => 'no',
|
223 |
+
),
|
224 |
+
),
|
225 |
+
),
|
226 |
+
'summarylength' => array(
|
227 |
+
'label' => __( 'Crop description (summary) of the element after X characters.', 'feedzy-rss-feeds' ),
|
228 |
+
'type' => 'text',
|
229 |
+
'placeholder' => __( '(eg: 160)', 'feedzy-rss-feeds' ),
|
230 |
+
'value' => '',
|
231 |
+
),
|
232 |
+
'keywords_title' => array(
|
233 |
+
'label' => __( 'Only display item if title contains specific keyword(s) (comma-separated list/case sensitive).', 'feedzy-rss-feeds' ),
|
234 |
+
'placeholder' => __( '(eg: news, sports etc.)', 'feedzy-rss-feeds' ),
|
235 |
+
'type' => 'text',
|
236 |
+
'value' => '',
|
237 |
+
'disabled' => feedzy_is_new(),
|
238 |
+
),
|
239 |
+
'keywords_ban' => array(
|
240 |
+
'label' => __( 'Exclude items if title or content contains specific keyword(s) (comma-separated list/case sensitive). ', 'feedzy-rss-feeds' ),
|
241 |
+
'placeholder' => __( '(eg: politics, gossip etc.)', 'feedzy-rss-feeds' ),
|
242 |
+
'type' => 'text',
|
243 |
+
'value' => '',
|
244 |
+
'disabled' => true,
|
245 |
+
),
|
246 |
+
),
|
247 |
+
),
|
248 |
+
'section_image' => array(
|
249 |
+
'title' => __( 'Item Image Options', 'feedzy-rss-feeds' ),
|
250 |
+
'elements' => array(
|
251 |
+
'thumb' => array(
|
252 |
+
'label' => __( 'Should we display the first image of the content if it is available?', 'feedzy-rss-feeds' ),
|
253 |
+
'type' => 'select',
|
254 |
+
'value' => '',
|
255 |
+
'opts' => array(
|
256 |
+
'auto' => array(
|
257 |
+
'label' => __( 'Auto', 'feedzy-rss-feeds' ),
|
258 |
+
'value' => '',
|
259 |
+
),
|
260 |
+
'yes' => array(
|
261 |
+
'label' => __( 'Yes', 'feedzy-rss-feeds' ),
|
262 |
+
'value' => 'yes',
|
263 |
+
),
|
264 |
+
'no' => array(
|
265 |
+
'label' => __( 'No', 'feedzy-rss-feeds' ),
|
266 |
+
'value' => 'no',
|
267 |
+
),
|
268 |
+
),
|
269 |
+
),
|
270 |
+
'default' => array(
|
271 |
+
'label' => __( 'Default thumbnail URL if no image is found.', 'feedzy-rss-feeds' ),
|
272 |
+
'placeholder' => __( 'Image URL', 'feedzy-rss-feeds' ),
|
273 |
+
'type' => 'file',
|
274 |
+
'value' => '',
|
275 |
+
'button' => array(
|
276 |
+
'button_text' => __( 'Select from Gallery', 'feedzy-rss-feeds' ),
|
277 |
+
),
|
278 |
+
),
|
279 |
+
'size' => array(
|
280 |
+
'label' => __( 'Thumbnails dimension. Do not include "px". Eg: 150', 'feedzy-rss-feeds' ),
|
281 |
+
'placeholder' => __( '(eg: 150)', 'feedzy-rss-feeds' ),
|
282 |
+
'type' => 'text',
|
283 |
+
'value' => '',
|
284 |
+
),
|
285 |
+
),
|
286 |
+
),
|
287 |
+
'section_pro' => array(
|
288 |
+
'title' => __( 'PRO Options', 'feedzy-rss-feeds' ),
|
289 |
+
'description' => __( 'Get access to more options and customizations with full version of Feedzy RSS Feeds . Use existing templates or extend them and make them your own.', 'feedzy-rss-feeds' ) . '<br/>' . '<a href="' . FEEDZY_UPSELL_LINK . '" target="_blank"><small>' . __( 'See more features of Feedzy RSS Feeds ', 'feedzy-rss-feeds' ) . '</small></a>',
|
290 |
+
'elements' => array(
|
291 |
+
'price' => array(
|
292 |
+
'label' => __( 'Should we display the price from the feed if it is available?', 'feedzy-rss-feeds' ),
|
293 |
+
'type' => 'select',
|
294 |
+
'disabled' => true,
|
295 |
+
'value' => '',
|
296 |
+
'opts' => array(
|
297 |
+
'yes' => array(
|
298 |
+
'label' => __( 'Yes', 'feedzy-rss-feeds' ),
|
299 |
+
'value' => 'yes',
|
300 |
+
),
|
301 |
+
'no' => array(
|
302 |
+
'label' => __( 'No', 'feedzy-rss-feeds' ),
|
303 |
+
'value' => 'no',
|
304 |
+
),
|
305 |
+
),
|
306 |
+
),
|
307 |
+
'referral_url' => array(
|
308 |
+
'label' => __( 'Referral URL parameters (w/o "?").', 'feedzy-rss-feeds' ),
|
309 |
+
'placeholder' => __( '(eg. promo_code=feedzy_is_awesome)', 'feedzy-rss-feeds' ),
|
310 |
+
'type' => 'text',
|
311 |
+
'disabled' => true,
|
312 |
+
'value' => '',
|
313 |
+
),
|
314 |
+
'columns' => array(
|
315 |
+
'label' => __( 'How many columns we should use to display the feed items', 'feedzy-rss-feeds' ),
|
316 |
+
'placeholder' => __( '(eg. 1, 2, ..., 6)', 'feedzy-rss-feeds' ),
|
317 |
+
'type' => 'number',
|
318 |
+
'disabled' => true,
|
319 |
+
'value' => '1',
|
320 |
+
),
|
321 |
+
'template' => array(
|
322 |
+
'label' => __( 'Template to use when displaying the feed.', 'feedzy-rss-feeds' ),
|
323 |
+
'type' => 'radio',
|
324 |
+
'disabled' => true,
|
325 |
+
'value' => '',
|
326 |
+
'opts' => array(
|
327 |
+
'auto' => array(
|
328 |
+
'label' => __( 'Default', 'feedzy-rss-feeds' ),
|
329 |
+
'value' => 'default',
|
330 |
+
),
|
331 |
+
'yes' => array(
|
332 |
+
'label' => __( 'Style 1', 'feedzy-rss-feeds' ),
|
333 |
+
'value' => 'style1',
|
334 |
+
),
|
335 |
+
'no' => array(
|
336 |
+
'label' => __( 'Style 2', 'feedzy-rss-feeds' ),
|
337 |
+
'value' => 'style2',
|
338 |
+
),
|
339 |
+
),
|
340 |
+
),
|
341 |
+
),
|
342 |
+
),
|
343 |
+
);
|
344 |
+
|
345 |
+
$elements = apply_filters( 'feedzy_get_form_elements_filter', $elements );
|
346 |
+
|
347 |
+
return $elements;
|
348 |
+
}
|
349 |
+
|
350 |
+
/**
|
351 |
+
*
|
352 |
+
* The method that returns the translation array
|
353 |
+
*
|
354 |
+
* @since 3.0.0
|
355 |
+
* @access public
|
356 |
+
* @return string
|
357 |
+
*/
|
358 |
+
public function feedzy_tinymce_translation() {
|
359 |
+
|
360 |
+
$locale = _WP_Editors::$mce_locale;
|
361 |
+
$translated = 'tinyMCE.addI18n("' . $locale . '.feedzy_tinymce_plugin", ' . json_encode( $this->strings ) . ");\n";
|
362 |
+
|
363 |
+
return $translated;
|
364 |
+
}
|
365 |
+
|
366 |
+
}
|
367 |
+
|
368 |
+
$feedzyLangClass = new Feedzy_Rss_Feeds_Ui_Lang();
|
369 |
+
$strings = $feedzyLangClass->feedzy_tinymce_translation();
|
includes/admin/feedzy-rss-feeds-ui.php
ADDED
@@ -0,0 +1,146 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The UI functionality of the plugin.
|
4 |
+
*
|
5 |
+
* @link http://themeisle.com
|
6 |
+
* @since 3.0.0
|
7 |
+
*
|
8 |
+
* @package feedzy-rss-feeds
|
9 |
+
* @subpackage feedzy-rss-feeds/includes/admin
|
10 |
+
*/
|
11 |
+
|
12 |
+
/**
|
13 |
+
* The UI functionality of the plugin.
|
14 |
+
*
|
15 |
+
* @package feedzy-rss-feeds
|
16 |
+
* @subpackage feedzy-rss-feeds/includes/admin
|
17 |
+
* @author Themeisle <friends@themeisle.com>
|
18 |
+
*/
|
19 |
+
class Feedzy_Rss_Feeds_Ui {
|
20 |
+
|
21 |
+
/**
|
22 |
+
* The ID of this plugin.
|
23 |
+
*
|
24 |
+
* @since 3.0.0
|
25 |
+
* @access private
|
26 |
+
* @var string $plugin_name The ID of this plugin.
|
27 |
+
*/
|
28 |
+
private $plugin_name;
|
29 |
+
|
30 |
+
/**
|
31 |
+
* The version of this plugin.
|
32 |
+
*
|
33 |
+
* @since 3.0.0
|
34 |
+
* @access private
|
35 |
+
* @var string $version The current version of this plugin.
|
36 |
+
*/
|
37 |
+
private $version;
|
38 |
+
|
39 |
+
/**
|
40 |
+
* The loader class.
|
41 |
+
*
|
42 |
+
* @since 3.0.0
|
43 |
+
* @access private
|
44 |
+
* @var Feedzy_Rss_Feeds_Loader $loader The loader class of the plugin.
|
45 |
+
*/
|
46 |
+
private $loader;
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Initialize the class and set its properties.
|
50 |
+
*
|
51 |
+
* @since 3.0.0
|
52 |
+
* @access public
|
53 |
+
* @param string $plugin_name The name of this plugin.
|
54 |
+
* @param string $version The version of this plugin.
|
55 |
+
* @param Feedzy_Rss_Feeds_Loader $loader The version of this plugin.
|
56 |
+
*/
|
57 |
+
public function __construct( $plugin_name, $version, Feedzy_Rss_Feeds_Loader $loader ) {
|
58 |
+
|
59 |
+
$this->plugin_name = $plugin_name;
|
60 |
+
$this->version = $version;
|
61 |
+
$this->loader = $loader;
|
62 |
+
|
63 |
+
}
|
64 |
+
|
65 |
+
/**
|
66 |
+
* Initialize the hooks and filters for the tinymce button
|
67 |
+
*
|
68 |
+
* @since 3.0.0
|
69 |
+
* @access public
|
70 |
+
*/
|
71 |
+
public function register_init() {
|
72 |
+
if ( current_user_can( 'edit_posts' ) && current_user_can( 'edit_pages' ) ) {
|
73 |
+
if ( 'true' == get_user_option( 'rich_editing' ) ) {
|
74 |
+
|
75 |
+
$this->loader->add_filter( 'mce_external_plugins', $this, 'feedzy_tinymce_plugin', 10, 1 );
|
76 |
+
$this->loader->add_filter( 'mce_buttons', $this, 'feedzy_register_mce_button', 10, 1 );
|
77 |
+
|
78 |
+
$this->loader->add_action( 'admin_enqueue_scripts', $this, 'enqueue_scripts', 10 );
|
79 |
+
|
80 |
+
$this->loader->run();
|
81 |
+
}
|
82 |
+
}
|
83 |
+
}
|
84 |
+
|
85 |
+
/**
|
86 |
+
* Register the JavaScript for the admin area.
|
87 |
+
*
|
88 |
+
* @since 3.0.0
|
89 |
+
* @access public
|
90 |
+
*/
|
91 |
+
public function enqueue_scripts() {
|
92 |
+
|
93 |
+
/**
|
94 |
+
* This function is provided for demonstration purposes only.
|
95 |
+
*
|
96 |
+
* An instance of this class should be passed to the run() function
|
97 |
+
* defined in Feedzy_Rss_Feeds_Loader as all of the hooks are defined
|
98 |
+
* in that particular class.
|
99 |
+
*
|
100 |
+
* The Feedzy_Rss_Feeds_Loader will then create the relationship
|
101 |
+
* between the defined hooks and the functions defined in this
|
102 |
+
* class.
|
103 |
+
*/
|
104 |
+
}
|
105 |
+
|
106 |
+
/**
|
107 |
+
* Load plugin translation for - TinyMCE API
|
108 |
+
*
|
109 |
+
* @since 3.0.0
|
110 |
+
* @access public
|
111 |
+
* @param array $arr The tinymce_lang array.
|
112 |
+
* @return array
|
113 |
+
*/
|
114 |
+
public function feedzy_add_tinymce_lang( $arr ) {
|
115 |
+
$feedzy_rss_feeds_ui_lang = FEEDZY_ABSPATH . '/includes/admin/feedzy-rss-feeds-ui-lang.php';
|
116 |
+
$feedzy_rss_feeds_ui_lang = apply_filters( 'feedzy_rss_feeds_ui_lang_filter', $feedzy_rss_feeds_ui_lang );
|
117 |
+
$arr[] = $feedzy_rss_feeds_ui_lang;
|
118 |
+
return $arr;
|
119 |
+
}
|
120 |
+
|
121 |
+
/**
|
122 |
+
* Load custom js options - TinyMCE API
|
123 |
+
*
|
124 |
+
* @since 3.0.0
|
125 |
+
* @access public
|
126 |
+
* @param array $plugin_array The tinymce plugin array.
|
127 |
+
* @return array
|
128 |
+
*/
|
129 |
+
public function feedzy_tinymce_plugin( $plugin_array ) {
|
130 |
+
$plugin_array['feedzy_mce_button'] = FEEDZY_ABSURL . 'js/feedzy-rss-feeds-ui-mce.js';
|
131 |
+
return $plugin_array;
|
132 |
+
}
|
133 |
+
|
134 |
+
/**
|
135 |
+
* Register new button in the editor
|
136 |
+
*
|
137 |
+
* @since 3.0.0
|
138 |
+
* @access public
|
139 |
+
* @param array $buttons The tinymce buttons array.
|
140 |
+
* @return array
|
141 |
+
*/
|
142 |
+
public function feedzy_register_mce_button( $buttons ) {
|
143 |
+
array_push( $buttons, 'feedzy_mce_button' );
|
144 |
+
return $buttons;
|
145 |
+
}
|
146 |
+
}
|
includes/admin/feedzy-rss-feeds-upgrader.php
ADDED
@@ -0,0 +1,68 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The Options main wrapper class.
|
4 |
+
*
|
5 |
+
* @link http://themeisle.com
|
6 |
+
* @since 3.0.3
|
7 |
+
*
|
8 |
+
* @package feedzy-rss-feeds
|
9 |
+
* @subpackage feedzy-rss-feeds/includes/admin
|
10 |
+
*/
|
11 |
+
if ( ! class_exists( 'Feedzy_Rss_Feeds_Upgrader' ) ) {
|
12 |
+
/**
|
13 |
+
* Class Feedzy_Rss_Feeds_Upgrader for upgrading processes
|
14 |
+
*/
|
15 |
+
class Feedzy_Rss_Feeds_Upgrader {
|
16 |
+
/**
|
17 |
+
* Store the database version of the plugin.
|
18 |
+
*
|
19 |
+
* @var string $db_version Version from the database of the plugin.
|
20 |
+
*/
|
21 |
+
public $db_version;
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Stores the plugin php version.
|
25 |
+
*
|
26 |
+
* @var string $php_version The plugin php version
|
27 |
+
*/
|
28 |
+
public $php_version;
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Feedzy_Rss_Feeds_Upgrader constructor.
|
32 |
+
*/
|
33 |
+
public function __construct() {
|
34 |
+
$php_version = Feedzy_Rss_Feeds::get_version();
|
35 |
+
$db_version = feedzy_options()->get_var( 'db_version' );
|
36 |
+
if ( $db_version === false ) {
|
37 |
+
feedzy_options()->set_var( 'db_version', $php_version );
|
38 |
+
$this->db_version = $php_version;
|
39 |
+
} else {
|
40 |
+
if ( feedzy_options()->get_var( 'is_new' ) === false ) {
|
41 |
+
feedzy_options()->set_var( 'is_new', 'no' );
|
42 |
+
}
|
43 |
+
$this->db_version = $db_version;
|
44 |
+
}
|
45 |
+
$this->php_version = $php_version;
|
46 |
+
}
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Check if we need to run an upgrade or not.
|
50 |
+
*/
|
51 |
+
public function check() {
|
52 |
+
if ( version_compare( $this->db_version, $this->php_version ) === - 1 ) {
|
53 |
+
do_action( 'feedzy_upgrade_to_' . self::version_to_hook( $this->php_version ), $this->db_version );
|
54 |
+
}
|
55 |
+
}
|
56 |
+
|
57 |
+
/**
|
58 |
+
* Normalize version to be used in hooks.
|
59 |
+
*
|
60 |
+
* @param string $version In format 2.0.0.
|
61 |
+
*
|
62 |
+
* @return string Version format 2_0_0.
|
63 |
+
*/
|
64 |
+
public static function version_to_hook( $version ) {
|
65 |
+
return str_replace( '.', '_', $version );
|
66 |
+
}
|
67 |
+
}
|
68 |
+
}// End if().
|
includes/admin/feedzy-wp-widget.php
ADDED
@@ -0,0 +1,244 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The Widget functionality of the plugin.
|
4 |
+
*
|
5 |
+
* @link http://themeisle.com
|
6 |
+
* @since 3.0.0
|
7 |
+
*
|
8 |
+
* @package feedzy-rss-feeds
|
9 |
+
* @subpackage feedzy-rss-feeds/includes/admin
|
10 |
+
*/
|
11 |
+
|
12 |
+
/**
|
13 |
+
* The Widget functionality of the plugin.
|
14 |
+
*
|
15 |
+
* @package feedzy-rss-feeds
|
16 |
+
* @subpackage feedzy-rss-feeds/includes/admin
|
17 |
+
* @author Themeisle <friends@themeisle.com>
|
18 |
+
*/
|
19 |
+
// @codingStandardsIgnoreStart
|
20 |
+
class feedzy_wp_widget extends WP_Widget {
|
21 |
+
// @codingStandardsIgnoreEnd
|
22 |
+
/**
|
23 |
+
* The class instance.
|
24 |
+
*
|
25 |
+
* @since 3.0.0
|
26 |
+
* @access public
|
27 |
+
* @var feedzy_wp_widget $instance The instance of the class.
|
28 |
+
*/
|
29 |
+
public static $instance;
|
30 |
+
|
31 |
+
/**
|
32 |
+
* The feedzy_wp_widget constructor method
|
33 |
+
*
|
34 |
+
* @since 3.0.0
|
35 |
+
* @access public
|
36 |
+
*
|
37 |
+
* @param Feedzy_Rss_Feeds_Admin $plugin_admin The Feedzy_Rss_Feeds_Admin object.
|
38 |
+
*/
|
39 |
+
public function __construct( $plugin_admin = null ) {
|
40 |
+
parent::__construct( false, $name = __( 'Feedzy RSS Feeds', 'feedzy-rss-feeds' ) );
|
41 |
+
self::$instance = $this;
|
42 |
+
|
43 |
+
}
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Returns the instance of this class as in the singleton pattern
|
47 |
+
*
|
48 |
+
* @since 3.0.0
|
49 |
+
* @access public
|
50 |
+
* @return feedzy_wp_widget
|
51 |
+
*/
|
52 |
+
public static function get_instance() {
|
53 |
+
if ( self::$instance === null ) {
|
54 |
+
self::$instance = new self();
|
55 |
+
}
|
56 |
+
|
57 |
+
return self::$instance;
|
58 |
+
}
|
59 |
+
|
60 |
+
/**
|
61 |
+
* The register method for registering this widget class
|
62 |
+
*
|
63 |
+
* @since 3.0.0
|
64 |
+
* @access public
|
65 |
+
*/
|
66 |
+
public function registerWidget() {
|
67 |
+
register_widget( 'feedzy_wp_widget' );
|
68 |
+
}
|
69 |
+
|
70 |
+
/**
|
71 |
+
* The widget form creation
|
72 |
+
*
|
73 |
+
* @since 3.0.0
|
74 |
+
* @access public
|
75 |
+
*
|
76 |
+
* @param string $instance The Widget instance.
|
77 |
+
*
|
78 |
+
* @return mixed
|
79 |
+
*/
|
80 |
+
public function form( $instance ) {
|
81 |
+
$instance = wp_parse_args( $instance, $this->get_widget_defaults() );
|
82 |
+
$widget_form = '<p>
|
83 |
+
<label for="' . $this->get_field_id( 'title' ) . '">' . __( 'Widget Title', 'feedzy-rss-feeds' ) . '</label>
|
84 |
+
<input class="widefat" id="' . $this->get_field_id( 'title' ) . '" name="' . $this->get_field_name( 'title' ) . '" type="text" value="' . esc_attr( $instance['title'] ) . '" />
|
85 |
+
</p>
|
86 |
+
<p>
|
87 |
+
<label for="' . $this->get_field_id( 'textarea' ) . '">' . __( 'Intro text', 'feedzy-rss-feeds' ) . '</label>
|
88 |
+
<textarea class="widefat" id="' . $this->get_field_id( 'textarea' ) . '" name="' . $this->get_field_name( 'textarea' ) . '">' . esc_attr( $instance['textarea'] ) . '</textarea>
|
89 |
+
</p>';
|
90 |
+
foreach ( Feedzy_Rss_Feeds_Ui_Lang::get_form_elements() as $key_section => $section ) {
|
91 |
+
$widget_form .= '<hr/><h4>' . $section['title'] . '</h4>';
|
92 |
+
if ( isset( $section['description'] ) ) {
|
93 |
+
$widget_form .= '<small>' . $section['description'] . '</small>';
|
94 |
+
}
|
95 |
+
foreach ( $section['elements'] as $id => $element ) {
|
96 |
+
if ( isset( $element['disabled'] ) && $element['disabled'] ) {
|
97 |
+
continue;
|
98 |
+
}
|
99 |
+
if ( $id == 'feed_title' ) {
|
100 |
+
continue;
|
101 |
+
}
|
102 |
+
if ( $id == 'title' ) {
|
103 |
+
$id = 'titlelength';
|
104 |
+
}
|
105 |
+
$widget_form .= '<p>';
|
106 |
+
$widget_form .= '<label for="' . $this->get_field_id( $id ) . '">' . $element['label'] . '</label>';
|
107 |
+
if ( $element['type'] == 'text' || $element['type'] == 'file' ) {
|
108 |
+
$widget_form .= '<input class="widefat" id="' . $this->get_field_id( $id ) . '" name="' . $this->get_field_name( $id ) . '" type="text" value="' . esc_attr( $instance[ $id ] ) . '" />';
|
109 |
+
}
|
110 |
+
if ( $element['type'] == 'number' ) {
|
111 |
+
$widget_form .= '<input class="widefat" id="' . $this->get_field_id( $id ) . '" name="' . $this->get_field_name( $id ) . '" type="number" value="' . esc_attr( $instance[ $id ] ) . '" />';
|
112 |
+
}
|
113 |
+
if ( $element['type'] == 'select' || $element['type'] == 'radio' ) {
|
114 |
+
$widget_form .= '<select class="widefat" id="' . $this->get_field_id( $id ) . '" name="' . $this->get_field_name( $id ) . '" >';
|
115 |
+
foreach ( $element['opts'] as $select_option ) {
|
116 |
+
$widget_form .= '<option ' . selected( esc_attr( $select_option['value'] ), self::bool_to_enum( $instance[ $id ] ), false ) . 'value="' . esc_attr( $select_option['value'] ) . '">' . esc_html( $select_option['label'] ) . '</option>';
|
117 |
+
}
|
118 |
+
$widget_form .= '</select>';
|
119 |
+
}
|
120 |
+
$widget_form .= '</p>';
|
121 |
+
|
122 |
+
}
|
123 |
+
}
|
124 |
+
$widget_form .= '<hr/>';
|
125 |
+
$widget_form = apply_filters( 'feedzy_widget_form_filter', $widget_form, $instance, $this->get_widget_defaults() );
|
126 |
+
echo $widget_form;
|
127 |
+
|
128 |
+
}
|
129 |
+
|
130 |
+
/**
|
131 |
+
* Get widget default values for params
|
132 |
+
*
|
133 |
+
* @return array List of defaults values
|
134 |
+
*/
|
135 |
+
public function get_widget_defaults() {
|
136 |
+
$defaults = Feedzy_Rss_Feeds_Ui_Lang::get_form_defaults();
|
137 |
+
// rename title to title length as widget instance already have one
|
138 |
+
$defaults['titlelength'] = $defaults['title'];
|
139 |
+
$defaults['title'] = '';
|
140 |
+
$defaults['textarea'] = '';
|
141 |
+
|
142 |
+
return $defaults;
|
143 |
+
}
|
144 |
+
|
145 |
+
/**
|
146 |
+
* Convert binary values to yes/no touple.
|
147 |
+
*
|
148 |
+
* @param mixed $value string Value to convert to yes/no.
|
149 |
+
*
|
150 |
+
* @return bool
|
151 |
+
*/
|
152 |
+
public static function bool_to_enum( $value ) {
|
153 |
+
if ( in_array( $value, array( 'yes', 'no' ) ) ) {
|
154 |
+
return $value;
|
155 |
+
}
|
156 |
+
$value = strval( $value );
|
157 |
+
if ( $value == '1' || $value == 'true' ) {
|
158 |
+
return 'yes';
|
159 |
+
}
|
160 |
+
if ( $value == '0' || $value == 'false' ) {
|
161 |
+
return 'no';
|
162 |
+
}
|
163 |
+
if ( $value == '' ) {
|
164 |
+
return 'auto';
|
165 |
+
}
|
166 |
+
return $value;
|
167 |
+
|
168 |
+
}
|
169 |
+
|
170 |
+
/**
|
171 |
+
*
|
172 |
+
* The update method
|
173 |
+
*
|
174 |
+
* @since 3.0.0
|
175 |
+
* @access public
|
176 |
+
*
|
177 |
+
* @param array $new_instance The new widget instance.
|
178 |
+
* @param array $old_instance The old widget instance.
|
179 |
+
*
|
180 |
+
* @return array
|
181 |
+
*/
|
182 |
+
public function update( $new_instance, $old_instance ) {
|
183 |
+
$instance = $old_instance;
|
184 |
+
$instance['title'] = strip_tags( $new_instance['title'] );
|
185 |
+
if ( current_user_can( 'unfiltered_html' ) ) {
|
186 |
+
$instance['textarea'] = $new_instance['textarea'];
|
187 |
+
} else {
|
188 |
+
$instance['textarea'] = stripslashes( wp_filter_post_kses( addslashes( $new_instance['textarea'] ) ) );
|
189 |
+
}
|
190 |
+
$forms_ids = array_keys( $this->get_widget_defaults() );
|
191 |
+
foreach ( $forms_ids as $key ) {
|
192 |
+
$instance[ $key ] = strip_tags( isset( $new_instance[ $key ] ) ? $new_instance[ $key ] : '' );
|
193 |
+
}
|
194 |
+
$instance = apply_filters( 'feedzy_widget_update_filter', $instance, $new_instance );
|
195 |
+
|
196 |
+
return $instance;
|
197 |
+
|
198 |
+
}
|
199 |
+
|
200 |
+
/**
|
201 |
+
*
|
202 |
+
* The widget function
|
203 |
+
*
|
204 |
+
* @since 3.0.0
|
205 |
+
* @access public
|
206 |
+
*
|
207 |
+
* @param array $args The args to use.
|
208 |
+
* @param array $instance The widget instance.
|
209 |
+
*/
|
210 |
+
public function widget( $args, $instance ) {
|
211 |
+
$title = apply_filters( 'widget_title', $instance['title'] );
|
212 |
+
$textarea = apply_filters( 'widget_textarea', empty( $instance['textarea'] ) ? '' : $instance['textarea'], $instance );
|
213 |
+
// Display the widget body
|
214 |
+
echo $args['before_widget'];
|
215 |
+
// Check if title is set
|
216 |
+
if ( $title ) {
|
217 |
+
echo $args['before_title'] . $title . $args['after_title'];
|
218 |
+
}
|
219 |
+
// Check if text intro is set
|
220 |
+
if ( isset( $instance['textarea'] ) && ! empty( $instance['textarea'] ) ) {
|
221 |
+
echo '<p class="feedzy-widget-intro">' . wpautop( $textarea ) . '</p>';
|
222 |
+
}
|
223 |
+
$feedzy_widget_shortcode_attributes = array(
|
224 |
+
'feeds' => $instance['feeds'],
|
225 |
+
'max' => $instance['max'],
|
226 |
+
'feed_title' => 'no',
|
227 |
+
'target' => $instance['target'],
|
228 |
+
'title' => $instance['titlelength'],
|
229 |
+
'meta' => self::bool_to_enum( $instance['meta'] ),
|
230 |
+
'summary' => self::bool_to_enum( $instance['summary'] ),
|
231 |
+
'summarylength' => $instance['summarylength'],
|
232 |
+
'thumb' => self::bool_to_enum( $instance['thumb'] ),
|
233 |
+
'default' => $instance['default'],
|
234 |
+
'size' => $instance['size'],
|
235 |
+
'keywords_title' => $instance['keywords_title'],
|
236 |
+
);
|
237 |
+
$feedzy_widget_shortcode_attributes = apply_filters( 'feedzy_widget_shortcode_attributes_filter', $feedzy_widget_shortcode_attributes, $args, $instance );
|
238 |
+
|
239 |
+
echo feedzy_rss( $feedzy_widget_shortcode_attributes );
|
240 |
+
echo $args['after_widget'];
|
241 |
+
|
242 |
+
}
|
243 |
+
|
244 |
+
}
|
includes/feedzy-rss-feeds-activator.php
ADDED
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Fired during plugin activation
|
4 |
+
*
|
5 |
+
* @link http://themeisle.com
|
6 |
+
* @since 3.0.0
|
7 |
+
*
|
8 |
+
* @package feedzy-rss-feeds
|
9 |
+
* @subpackage feedzy-rss-feeds/includes
|
10 |
+
*/
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Fired during plugin activation.
|
14 |
+
*
|
15 |
+
* This class defines all code necessary to run during the plugin's activation.
|
16 |
+
*
|
17 |
+
* @since 3.0.0
|
18 |
+
* @package feedzy-rss-feeds
|
19 |
+
* @subpackage feedzy-rss-feeds/includes
|
20 |
+
* @author Themeisle <friends@themeisle.com>
|
21 |
+
*/
|
22 |
+
class Feedzy_Rss_Feeds_Activator {
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Plugin activation action.
|
26 |
+
*
|
27 |
+
* Triggers the plugin activation action on plugin activate.
|
28 |
+
*
|
29 |
+
* @since 3.0.0
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public static function activate() {
|
33 |
+
$options = get_option( Feedzy_Rss_Feeds::get_plugin_name(), array() );
|
34 |
+
$old_logger_option = get_option( 'feedzy_logger_flag', 'no' );
|
35 |
+
if ( $old_logger_option == 'yes' ) {
|
36 |
+
update_option( 'feedzy_rss_feeds_logger_flag', 'yes' );
|
37 |
+
update_option( 'feedzy_logger_flag', 'no' );
|
38 |
+
}
|
39 |
+
if ( ! isset( $options['is_new'] ) ) {
|
40 |
+
update_option(
|
41 |
+
Feedzy_Rss_Feeds::get_plugin_name(), array(
|
42 |
+
'is_new' => 'yes',
|
43 |
+
)
|
44 |
+
);
|
45 |
+
}
|
46 |
+
|
47 |
+
}
|
48 |
+
|
49 |
+
}
|
includes/feedzy-rss-feeds-deactivator.php
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Fired during plugin deactivation
|
4 |
+
*
|
5 |
+
* @link http://themeisle.com
|
6 |
+
* @since 3.0.0
|
7 |
+
*
|
8 |
+
* @package feedzy-rss-feeds
|
9 |
+
* @subpackage feedzy-rss-feeds/includes
|
10 |
+
*/
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Fired during plugin deactivation.
|
14 |
+
*
|
15 |
+
* This class defines all code necessary to run during the plugin's deactivation.
|
16 |
+
*
|
17 |
+
* @since 3.0.0
|
18 |
+
* @package feedzy-rss-feeds
|
19 |
+
* @subpackage feedzy-rss-feeds/includes
|
20 |
+
* @author Themeisle <friends@themeisle.com>
|
21 |
+
*/
|
22 |
+
class Feedzy_Rss_Feeds_Deactivator {
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Short Description. (use period)
|
26 |
+
*
|
27 |
+
* Long Description.
|
28 |
+
*
|
29 |
+
* @since 3.0.0
|
30 |
+
* @access public
|
31 |
+
*/
|
32 |
+
public static function deactivate() {
|
33 |
+
|
34 |
+
}
|
35 |
+
|
36 |
+
}
|
includes/feedzy-rss-feeds-feed-tweaks.php
ADDED
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Useful helper functions for plugin.
|
4 |
+
*
|
5 |
+
* @link http://themeisle.com
|
6 |
+
* @since 3.0.0
|
7 |
+
*
|
8 |
+
* @package feedzy-rss-feeds
|
9 |
+
* @subpackage feedzy-rss-feeds/includes
|
10 |
+
*/
|
11 |
+
// @codingStandardsIgnoreStart
|
12 |
+
/**
|
13 |
+
* @param string $content
|
14 |
+
*
|
15 |
+
* @return string
|
16 |
+
*/
|
17 |
+
function feedzy_insert_thumbnail_RSS( $content ) {
|
18 |
+
// @codingStandardsIgnoreEnd
|
19 |
+
global $post;
|
20 |
+
if ( has_post_thumbnail( $post->ID ) ) {
|
21 |
+
$content = '' . get_the_post_thumbnail( $post->ID, 'thumbnail' ) . '' . $content;
|
22 |
+
}
|
23 |
+
|
24 |
+
return $content;
|
25 |
+
}
|
26 |
+
|
27 |
+
// Alter the main blog feed to insert the thumbnail image.
|
28 |
+
add_filter( 'the_excerpt_rss', 'feedzy_insert_thumbnail_RSS' );
|
29 |
+
add_filter( 'the_content_feed', 'feedzy_insert_thumbnail_RSS' );
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Boostrap the plugin view.
|
33 |
+
*
|
34 |
+
* @param array $options The shortcode attributes.
|
35 |
+
*/
|
36 |
+
function feedzy_rss( $options = array() ) {
|
37 |
+
$admin = Feedzy_Rss_Feeds::instance()->get_admin();
|
38 |
+
return $admin->feedzy_rss( $options );
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* The helper method for options wrapper
|
43 |
+
*
|
44 |
+
* @return Feedzy_Rss_Feeds_Options
|
45 |
+
*/
|
46 |
+
function feedzy_options() {
|
47 |
+
return Feedzy_Rss_Feeds_Options::instance();
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Check if the user is before 3.0.3 or not.
|
52 |
+
*
|
53 |
+
* @return bool If the users is before 3.0.3 or after
|
54 |
+
*/
|
55 |
+
function feedzy_is_new() {
|
56 |
+
return feedzy_options()->get_var( 'is_new' ) === 'yes' && ! feedzy_is_pro();
|
57 |
+
}
|
58 |
+
|
59 |
+
/**
|
60 |
+
* Check if the user is pro or not.
|
61 |
+
*
|
62 |
+
* @return bool If the users is pro or not
|
63 |
+
*/
|
64 |
+
function feedzy_is_pro() {
|
65 |
+
return defined( 'FEEDZY_PRO_ABSPATH' );
|
66 |
+
}
|
includes/feedzy-rss-feeds-i18n.php
ADDED
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Define the internationalization functionality
|
4 |
+
*
|
5 |
+
* Loads and defines the internationalization files for this plugin
|
6 |
+
* so that it is ready for translation.
|
7 |
+
*
|
8 |
+
* @link http://themeisle.com
|
9 |
+
* @since 3.0.0
|
10 |
+
*
|
11 |
+
* @package feedzy-rss-feeds
|
12 |
+
* @subpackage feedzy-rss-feeds/includes
|
13 |
+
*/
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Define the internationalization functionality.
|
17 |
+
*
|
18 |
+
* Loads and defines the internationalization files for this plugin
|
19 |
+
* so that it is ready for translation.
|
20 |
+
*
|
21 |
+
* @since 3.0.0
|
22 |
+
* @package feedzy-rss-feeds
|
23 |
+
* @subpackage feedzy-rss-feeds/includes
|
24 |
+
* @author Themeisle <friends@themeisle.com>
|
25 |
+
*/
|
26 |
+
|
27 |
+
// @codingStandardsIgnoreStart
|
28 |
+
class Feedzy_Rss_Feeds_i18n {
|
29 |
+
// @codingStandardsIgnoreEnd
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Load the plugin text domain for translation.
|
33 |
+
*
|
34 |
+
* @since 3.0.0
|
35 |
+
* @access public
|
36 |
+
*/
|
37 |
+
public function load_plugin_textdomain() {
|
38 |
+
|
39 |
+
load_plugin_textdomain(
|
40 |
+
'feedzy-rss-feeds',
|
41 |
+
false,
|
42 |
+
dirname( dirname( plugin_basename( __FILE__ ) ) ) . '/languages/'
|
43 |
+
);
|
44 |
+
|
45 |
+
}
|
46 |
+
|
47 |
+
|
48 |
+
|
49 |
+
}
|
includes/feedzy-rss-feeds-loader.php
ADDED
@@ -0,0 +1,155 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Register all actions and filters for the plugin
|
4 |
+
*
|
5 |
+
* @link http://themeisle.com
|
6 |
+
* @since 3.0.0
|
7 |
+
*
|
8 |
+
* @package feedzy-rss-feeds
|
9 |
+
* @subpackage feedzy-rss-feeds/includes
|
10 |
+
*/
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Register all actions and filters for the plugin.
|
14 |
+
*
|
15 |
+
* Maintain a list of all hooks that are registered throughout
|
16 |
+
* the plugin, and register them with the WordPress API. Call the
|
17 |
+
* run function to execute the list of actions and filters.
|
18 |
+
*
|
19 |
+
* @package feedzy-rss-feeds
|
20 |
+
* @subpackage feedzy-rss-feeds/includes
|
21 |
+
* @author Themeisle <friends@themeisle.com>
|
22 |
+
*/
|
23 |
+
class Feedzy_Rss_Feeds_Loader {
|
24 |
+
|
25 |
+
/**
|
26 |
+
* The array of actions registered with WordPress.
|
27 |
+
*
|
28 |
+
* @since 3.0.0
|
29 |
+
* @access protected
|
30 |
+
* @var array $actions The actions registered with WordPress to fire when the plugin loads.
|
31 |
+
*/
|
32 |
+
protected $actions;
|
33 |
+
|
34 |
+
/**
|
35 |
+
* The array of filters registered with WordPress.
|
36 |
+
*
|
37 |
+
* @since 3.0.0
|
38 |
+
* @access protected
|
39 |
+
* @var array $filters The filters registered with WordPress to fire when the plugin loads.
|
40 |
+
*/
|
41 |
+
protected $filters;
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Initialize the collections used to maintain the actions and filters.
|
45 |
+
*
|
46 |
+
* @since 3.0.0
|
47 |
+
* @access public
|
48 |
+
*/
|
49 |
+
public function __construct() {
|
50 |
+
|
51 |
+
$this->actions = array();
|
52 |
+
$this->filters = array();
|
53 |
+
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Add a new action to the collection to be registered with WordPress.
|
58 |
+
*
|
59 |
+
* @since 3.0.0
|
60 |
+
* @access public
|
61 |
+
* @param string $hook The name of the WordPress action that is being registered.
|
62 |
+
* @param object $component A reference to the instance of the object on which the action is defined.
|
63 |
+
* @param string $callback The name of the function definition on the $component.
|
64 |
+
* @param int $priority Optional. he priority at which the function should be fired. Default is 10.
|
65 |
+
* @param int $accepted_args Optional. The number of arguments that should be passed to the $callback. Default is 1.
|
66 |
+
*/
|
67 |
+
public function add_action( $hook, $component, $callback, $priority = 10, $accepted_args = 1 ) {
|
68 |
+
$this->actions = $this->add( $this->actions, $hook, $component, $callback, $priority, $accepted_args );
|
69 |
+
}
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Add a new filter to the collection to be registered with WordPress.
|
73 |
+
*
|
74 |
+
* @since 3.0.0
|
75 |
+
* @access public
|
76 |
+
* @param string $hook The name of the WordPress filter that is being registered.
|
77 |
+
* @param object $component A reference to the instance of the object on which the filter is defined.
|
78 |
+
* @param string $callback The name of the function definition on the $component.
|
79 |
+
* @param int $priority Optional. he priority at which the function should be fired. Default is 10.
|
80 |
+
* @param int $accepted_args Optional. The number of arguments that should be passed to the $callback. Default is 1.
|
81 |
+
*/
|
82 |
+
public function add_filter( $hook, $component, $callback, $priority = 10, $accepted_args = 1 ) {
|
83 |
+
$this->filters = $this->add( $this->filters, $hook, $component, $callback, $priority, $accepted_args );
|
84 |
+
}
|
85 |
+
|
86 |
+
/**
|
87 |
+
* Registers AJAX action hook.
|
88 |
+
*
|
89 |
+
* @since 3.0.0
|
90 |
+
* @access public
|
91 |
+
* @param string $tag The name of the AJAX action to which the $method is hooked.
|
92 |
+
* @param object $component A reference to the instance of the object on which the filter is defined.
|
93 |
+
* @param string $callback The name of the function definition on the $component.
|
94 |
+
* @param int $priority Optional. he priority at which the function should be fired. Default is 10.
|
95 |
+
* @param int $accepted_args Optional. The number of arguments that should be passed to the $callback. Default is 1.
|
96 |
+
* @param boolean $private Optional. Determines if we should register hook for logged in users.
|
97 |
+
* @param boolean $public Optional. Determines if we should register hook for not logged in users.
|
98 |
+
*/
|
99 |
+
public function add_ajax_action( $tag, $component, $callback, $priority = 10, $accepted_args = 1, $private = true, $public = false ) {
|
100 |
+
if ( $private ) {
|
101 |
+
$this->actions = $this->add( $this->actions, 'wp_ajax_' . $tag, $component, $callback, $priority, $accepted_args );
|
102 |
+
}
|
103 |
+
|
104 |
+
if ( $public ) {
|
105 |
+
$this->actions = $this->add( $this->actions, 'wp_ajax_nopriv_' . $tag, $component, $callback, $priority, $accepted_args );
|
106 |
+
}
|
107 |
+
}
|
108 |
+
|
109 |
+
/**
|
110 |
+
* A utility function that is used to register the actions and hooks into a single
|
111 |
+
* collection.
|
112 |
+
*
|
113 |
+
* @since 3.0.0
|
114 |
+
* @access private
|
115 |
+
* @param array $hooks The collection of hooks that is being registered (that is, actions or filters).
|
116 |
+
* @param string $hook The name of the WordPress filter that is being registered.
|
117 |
+
* @param object $component A reference to the instance of the object on which the filter is defined.
|
118 |
+
* @param string $callback The name of the function definition on the $component.
|
119 |
+
* @param int $priority The priority at which the function should be fired.
|
120 |
+
* @param int $accepted_args The number of arguments that should be passed to the $callback.
|
121 |
+
* @return array The collection of actions and filters registered with WordPress.
|
122 |
+
*/
|
123 |
+
private function add( $hooks, $hook, $component, $callback, $priority, $accepted_args ) {
|
124 |
+
|
125 |
+
$hooks[] = array(
|
126 |
+
'hook' => $hook,
|
127 |
+
'component' => $component,
|
128 |
+
'callback' => $callback,
|
129 |
+
'priority' => $priority,
|
130 |
+
'accepted_args' => $accepted_args,
|
131 |
+
);
|
132 |
+
|
133 |
+
return $hooks;
|
134 |
+
|
135 |
+
}
|
136 |
+
|
137 |
+
/**
|
138 |
+
* Register the filters and actions with WordPress.
|
139 |
+
*
|
140 |
+
* @since 3.0.0
|
141 |
+
* @access public
|
142 |
+
*/
|
143 |
+
public function run() {
|
144 |
+
|
145 |
+
foreach ( $this->filters as $hook ) {
|
146 |
+
add_filter( $hook['hook'], array( $hook['component'], $hook['callback'] ), $hook['priority'], $hook['accepted_args'] );
|
147 |
+
}
|
148 |
+
|
149 |
+
foreach ( $this->actions as $hook ) {
|
150 |
+
add_action( $hook['hook'], array( $hook['component'], $hook['callback'] ), $hook['priority'], $hook['accepted_args'] );
|
151 |
+
}
|
152 |
+
|
153 |
+
}
|
154 |
+
|
155 |
+
}
|
includes/feedzy-rss-feeds.php
ADDED
@@ -0,0 +1,253 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The file that defines the core plugin class
|
4 |
+
*
|
5 |
+
* A class definition that includes attributes and functions used across both the
|
6 |
+
* public-facing side of the site and the admin area.
|
7 |
+
*
|
8 |
+
* @link http://themeisle.com
|
9 |
+
* @since 3.0.0
|
10 |
+
*
|
11 |
+
* @package feedzy-rss-feeds
|
12 |
+
* @subpackage feedzy-rss-feeds/includes
|
13 |
+
*/
|
14 |
+
|
15 |
+
/**
|
16 |
+
* The core plugin class.
|
17 |
+
*
|
18 |
+
* This is used to define internationalization, admin-specific hooks, and
|
19 |
+
* public-facing site hooks.
|
20 |
+
*
|
21 |
+
* Also maintains the unique identifier of this plugin as well as the current
|
22 |
+
* version of the plugin.
|
23 |
+
*
|
24 |
+
* @since 3.0.0
|
25 |
+
* @package feedzy-rss-feeds
|
26 |
+
* @subpackage feedzy-rss-feeds/includes
|
27 |
+
* @author Themeisle <friends@themeisle.com>
|
28 |
+
*/
|
29 |
+
class Feedzy_Rss_Feeds {
|
30 |
+
|
31 |
+
/**
|
32 |
+
* The unique identifier of this plugin.
|
33 |
+
*
|
34 |
+
* @since 3.0.0
|
35 |
+
* @access protected
|
36 |
+
* @var string $plugin_name The string used to uniquely identify this plugin.
|
37 |
+
*/
|
38 |
+
protected static $plugin_name;
|
39 |
+
/**
|
40 |
+
* The current version of the plugin.
|
41 |
+
*
|
42 |
+
* @since 3.0.0
|
43 |
+
* @access protected
|
44 |
+
* @var string $version The current version of the plugin.
|
45 |
+
*/
|
46 |
+
protected static $version;
|
47 |
+
|
48 |
+
/**
|
49 |
+
* The main instance var.
|
50 |
+
*
|
51 |
+
* @var Feedzy_Rss_Feeds The one Feedzy_Rss_Feeds instance.
|
52 |
+
* @since 3.0.4
|
53 |
+
*/
|
54 |
+
private static $instance;
|
55 |
+
/**
|
56 |
+
* The loader that's responsible for maintaining and registering all hooks that power
|
57 |
+
* the plugin.
|
58 |
+
*
|
59 |
+
* @since 3.0.0
|
60 |
+
* @access protected
|
61 |
+
* @var Feedzy_Rss_Feeds_Loader $loader Maintains and registers all hooks for the plugin.
|
62 |
+
*/
|
63 |
+
protected $loader;
|
64 |
+
/**
|
65 |
+
* The class responsible for all upgrading proceses.
|
66 |
+
*
|
67 |
+
* @since 3.0.3
|
68 |
+
* @access protected
|
69 |
+
* @var Feedzy_Rss_Feeds_Upgrader $upgrader Responsible for the upgrading processes.
|
70 |
+
*/
|
71 |
+
protected $upgrader;
|
72 |
+
/**
|
73 |
+
* The class responsible for all admin processes.
|
74 |
+
*
|
75 |
+
* @since 3.0.3
|
76 |
+
* @access protected
|
77 |
+
* @var Feedzy_Rss_Feeds_Admin $admin Responsible for the admin processes.
|
78 |
+
*/
|
79 |
+
protected $admin;
|
80 |
+
|
81 |
+
/**
|
82 |
+
* Init the main singleton instance class.
|
83 |
+
*
|
84 |
+
* @return Feedzy_Rss_Feeds Return the instance class
|
85 |
+
*/
|
86 |
+
public static function instance() {
|
87 |
+
if ( ! isset( self::$instance ) && ! ( self::$instance instanceof Feedzy_Rss_Feeds ) ) {
|
88 |
+
self::$instance = new Feedzy_Rss_Feeds;
|
89 |
+
self::$instance->init();
|
90 |
+
}
|
91 |
+
|
92 |
+
return self::$instance;
|
93 |
+
}
|
94 |
+
|
95 |
+
/**
|
96 |
+
* Define the core functionality of the plugin.
|
97 |
+
*
|
98 |
+
* Set the plugin name and the plugin version that can be used throughout the plugin.
|
99 |
+
* Load the dependencies, define the locale, and set the hooks for the admin area and
|
100 |
+
* the public-facing side of the site.
|
101 |
+
*
|
102 |
+
* @since 3.0.0
|
103 |
+
* @access public
|
104 |
+
*/
|
105 |
+
public function init() {
|
106 |
+
self::$plugin_name = 'feedzy-rss-feeds';
|
107 |
+
self::$version = '3.2.4';
|
108 |
+
self::$instance->load_dependencies();
|
109 |
+
self::$instance->set_locale();
|
110 |
+
self::$instance->define_admin_hooks();
|
111 |
+
|
112 |
+
}
|
113 |
+
|
114 |
+
/**
|
115 |
+
* Load the required dependencies for this plugin.
|
116 |
+
*
|
117 |
+
* Include the following files that make up the plugin:
|
118 |
+
*
|
119 |
+
* - Feedzy_Rss_Feeds_Loader. Orchestrates the hooks of the plugin.
|
120 |
+
* - Feedzy_Rss_Feeds_i18n. Defines internationalization functionality.
|
121 |
+
* - Feedzy_Rss_Feeds_Admin. Defines all hooks for the admin area.
|
122 |
+
* - Feedzy_Rss_Feeds_Public. Defines all hooks for the public side of the site.
|
123 |
+
*
|
124 |
+
* Create an instance of the loader which will be used to register the hooks
|
125 |
+
* with WordPress.
|
126 |
+
*
|
127 |
+
* @since 3.0.0
|
128 |
+
* @access private
|
129 |
+
*/
|
130 |
+
private function load_dependencies() {
|
131 |
+
include_once FEEDZY_ABSPATH . '/includes/feedzy-rss-feeds-feed-tweaks.php';
|
132 |
+
self::$instance->loader = new Feedzy_Rss_Feeds_Loader();
|
133 |
+
self::$instance->upgrader = new Feedzy_Rss_Feeds_Upgrader();
|
134 |
+
self::$instance->admin = new Feedzy_Rss_Feeds_Admin( self::$instance->get_plugin_name(), self::$instance->get_version() );
|
135 |
+
|
136 |
+
}
|
137 |
+
|
138 |
+
/**
|
139 |
+
* The name of the plugin used to uniquely identify it within the context of
|
140 |
+
* WordPress and to define internationalization functionality.
|
141 |
+
*
|
142 |
+
* @since 3.0.0
|
143 |
+
* @access public
|
144 |
+
* @return string The name of the plugin.
|
145 |
+
*/
|
146 |
+
public static function get_plugin_name() {
|
147 |
+
return self::$plugin_name;
|
148 |
+
}
|
149 |
+
|
150 |
+
/**
|
151 |
+
* Retrieve the version number of the plugin.
|
152 |
+
*
|
153 |
+
* @since 3.0.0
|
154 |
+
* @access public
|
155 |
+
* @return string The version number of the plugin.
|
156 |
+
*/
|
157 |
+
public static function get_version() {
|
158 |
+
return self::$version;
|
159 |
+
}
|
160 |
+
|
161 |
+
/**
|
162 |
+
* Define the locale for this plugin for internationalization.
|
163 |
+
*
|
164 |
+
* Uses the Feedzy_Rss_Feeds_i18n class in order to set the domain and to register the hook
|
165 |
+
* with WordPress.
|
166 |
+
*
|
167 |
+
* @since 3.0.0
|
168 |
+
* @access private
|
169 |
+
*/
|
170 |
+
private function set_locale() {
|
171 |
+
/**
|
172 |
+
* The class responsible for defining internationalization functionality
|
173 |
+
* of the plugin.
|
174 |
+
*/
|
175 |
+
$plugin_i18n = new Feedzy_Rss_Feeds_i18n();
|
176 |
+
self::$instance->loader->add_action( 'plugins_loaded', $plugin_i18n, 'load_plugin_textdomain' );
|
177 |
+
|
178 |
+
}
|
179 |
+
|
180 |
+
/**
|
181 |
+
* Register all of the hooks related to the admin area functionality
|
182 |
+
* of the plugin.
|
183 |
+
*
|
184 |
+
* @since 3.0.0
|
185 |
+
* @updated 3.0.12
|
186 |
+
* @access private
|
187 |
+
*/
|
188 |
+
private function define_admin_hooks() {
|
189 |
+
$plugin_ui = new Feedzy_Rss_Feeds_Ui( self::$instance->get_plugin_name(), self::$instance->get_version(), self::$instance->loader );
|
190 |
+
self::$instance->loader->add_action( 'init', $plugin_ui, 'register_init' );
|
191 |
+
self::$instance->loader->add_action( 'init', self::$instance->admin, 'register_post_type' );
|
192 |
+
self::$instance->loader->add_action( 'save_post', self::$instance->admin, 'save_feedzy_post_type_meta', 1, 2 );
|
193 |
+
self::$instance->loader->add_action( 'feedzy_pre_http_setup', self::$instance->admin, 'pre_http_setup', 10, 1 );
|
194 |
+
self::$instance->loader->add_action( 'feedzy_post_http_teardown', self::$instance->admin, 'post_http_teardown', 10, 1 );
|
195 |
+
|
196 |
+
self::$instance->loader->add_action( 'manage_feedzy_categories_posts_custom_column', self::$instance->admin, 'manage_feedzy_category_columns', 10, 2 );
|
197 |
+
self::$instance->loader->add_filter( 'manage_feedzy_categories_posts_columns', self::$instance->admin, 'feedzy_category_columns' );
|
198 |
+
|
199 |
+
self::$instance->loader->add_action( 'admin_menu', self::$instance->admin, 'feedzy_menu_pages' );
|
200 |
+
self::$instance->loader->add_filter( 'mce_external_languages', $plugin_ui, 'feedzy_add_tinymce_lang', 10, 1 );
|
201 |
+
self::$instance->loader->add_filter( 'plugin_row_meta', self::$instance->admin, 'feedzy_filter_plugin_row_meta', 10, 2 );
|
202 |
+
self::$instance->loader->add_filter( 'feedzy_default_image', self::$instance->admin, 'feedzy_define_default_image' );
|
203 |
+
self::$instance->loader->add_filter( 'feedzy_default_error', self::$instance->admin, 'feedzy_default_error_notice', 9, 2 );
|
204 |
+
self::$instance->loader->add_filter( 'feedzy_item_attributes', self::$instance->admin, 'feedzy_add_item_padding', 10, 2 );
|
205 |
+
self::$instance->loader->add_filter( 'feedzy_item_attributes', self::$instance->admin, 'feedzy_classes_item', 99, 5 );
|
206 |
+
self::$instance->loader->add_filter( 'feedzy_register_options', self::$instance->admin, 'register_options' );
|
207 |
+
self::$instance->loader->add_filter( 'feedzy_summary_input', self::$instance->admin, 'feedzy_summary_input_filter', 9, 3 );
|
208 |
+
self::$instance->loader->add_filter( 'feedzy_item_keyword', self::$instance->admin, 'feedzy_feed_item_keywords_title', 9, 4 );
|
209 |
+
self::$instance->loader->add_filter( 'feedzy_get_feed_array', self::$instance->admin, 'get_feed_array', 10, 5 );
|
210 |
+
self::$instance->loader->add_filter( 'feedzy_process_feed_source', self::$instance->admin, 'process_feed_source', 10, 1 );
|
211 |
+
self::$instance->loader->add_filter( 'feedzy_get_feed_url', self::$instance->admin, 'get_feed_url', 10, 1 );
|
212 |
+
self::$instance->loader->add_filter( 'feedzy_get_settings', self::$instance->admin, 'get_settings', 10, 1 );
|
213 |
+
add_shortcode( 'feedzy-rss', array( self::$instance->admin, 'feedzy_rss' ) );
|
214 |
+
self::$instance->loader->add_action( 'wp_ajax_get_tinymce_form', self::$instance->admin, 'get_tinymce_form' );
|
215 |
+
self::$instance->loader->add_action( 'wp_enqueue_scripts', self::$instance->admin, 'enqueue_styles' );
|
216 |
+
self::$instance->loader->add_action( 'admin_enqueue_scripts', self::$instance->admin, 'enqueue_styles' );
|
217 |
+
$plugin_widget = new feedzy_wp_widget();
|
218 |
+
self::$instance->loader->add_action( 'widgets_init', $plugin_widget, 'registerWidget', 10 );
|
219 |
+
}
|
220 |
+
|
221 |
+
/**
|
222 |
+
* Run the loader to execute all of the hooks with WordPress.
|
223 |
+
*
|
224 |
+
* @since 3.0.0
|
225 |
+
* @access public
|
226 |
+
*/
|
227 |
+
public function run() {
|
228 |
+
self::$instance->loader->run();
|
229 |
+
}
|
230 |
+
|
231 |
+
/**
|
232 |
+
* The reference to the class that orchestrates the hooks with the plugin.
|
233 |
+
*
|
234 |
+
* @since 3.0.0
|
235 |
+
* @access public
|
236 |
+
* @return Feedzy_Rss_Feeds_Loader Orchestrates the hooks of the plugin.
|
237 |
+
*/
|
238 |
+
public function get_loader() {
|
239 |
+
return self::$instance->loader;
|
240 |
+
}
|
241 |
+
|
242 |
+
/**
|
243 |
+
* The reference to the class that run the admin with the plugin.
|
244 |
+
*
|
245 |
+
* @since 3.0.0
|
246 |
+
* @access public
|
247 |
+
* @return Feedzy_Rss_Feeds_Admin Orchestrates the admin of the plugin.
|
248 |
+
*/
|
249 |
+
public function get_admin() {
|
250 |
+
return self::$instance->admin;
|
251 |
+
}
|
252 |
+
|
253 |
+
}
|
includes/layouts/css/upsell.css
ADDED
@@ -0,0 +1,236 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* upsell.css
|
3 |
+
* Feedzy RSS Feed Upsell Style
|
4 |
+
*
|
5 |
+
* @since 3.0.12
|
6 |
+
* @package feedzy-rss-feeds
|
7 |
+
*/
|
8 |
+
|
9 |
+
#fz-features .fz-features-header {
|
10 |
+
box-sizing: border-box;
|
11 |
+
padding: 20px 30px 30px;
|
12 |
+
border-top: 5px solid #252b37;
|
13 |
+
background: #fff;
|
14 |
+
}
|
15 |
+
|
16 |
+
#fz-features .logo {
|
17 |
+
display: inline-block;
|
18 |
+
margin: 0 0 0 20px;
|
19 |
+
padding: 0 0 0 70px;
|
20 |
+
color: #3c3c3c;
|
21 |
+
background: url(../../../img/feedzy.svg) no-repeat left center;
|
22 |
+
background-size: 48px;
|
23 |
+
font-family: "Open Sans", sans-serif;
|
24 |
+
font-size: 28px;
|
25 |
+
font-weight: 700;
|
26 |
+
line-height: 60px;
|
27 |
+
letter-spacing: -1px;
|
28 |
+
}
|
29 |
+
|
30 |
+
#fz-features .slogan {
|
31 |
+
display: inline-block;
|
32 |
+
margin: 0 0 0 8px;
|
33 |
+
padding: 0;
|
34 |
+
color: #858585;
|
35 |
+
font-family: "Open Sans", sans-serif;
|
36 |
+
font-size: 17px;
|
37 |
+
line-height: 1;
|
38 |
+
vertical-align: 4px;
|
39 |
+
}
|
40 |
+
|
41 |
+
#fz-features .slogan a {
|
42 |
+
color: #858585;
|
43 |
+
font-weight: 600;
|
44 |
+
font-style: italic;
|
45 |
+
text-decoration: none;
|
46 |
+
-webkit-transition: all 0.250s ease-in-out;
|
47 |
+
transition: all 0.250s ease-in-out;
|
48 |
+
}
|
49 |
+
|
50 |
+
#fz-features .slogan a:hover {
|
51 |
+
color: #ff6160;
|
52 |
+
}
|
53 |
+
|
54 |
+
#fz-features .slogan a:focus {
|
55 |
+
outline: none;
|
56 |
+
box-shadow: none;
|
57 |
+
}
|
58 |
+
|
59 |
+
#fz-features .header-btns {
|
60 |
+
float: right;
|
61 |
+
margin: 7px 20px;
|
62 |
+
text-align: right;
|
63 |
+
}
|
64 |
+
|
65 |
+
#fz-features .header-btns .buy-now {
|
66 |
+
display: inline-block;
|
67 |
+
margin-top: 2px;
|
68 |
+
margin-right: 5px;
|
69 |
+
padding: 15px 25px;
|
70 |
+
border-radius: 3px;
|
71 |
+
border-radius: 3px;
|
72 |
+
color: #fff;
|
73 |
+
background: #e33b3f;
|
74 |
+
font-family: "Open Sans", sans-serif;
|
75 |
+
font-size: 18px;
|
76 |
+
font-weight: bold;
|
77 |
+
text-decoration: none;
|
78 |
+
text-transform: uppercase;
|
79 |
+
-webkit-transition: all 0.250s ease-in-out;
|
80 |
+
transition: all 0.250s ease-in-out;
|
81 |
+
}
|
82 |
+
|
83 |
+
#fz-features .header-btns .buy-now:hover {
|
84 |
+
background: #252b37;
|
85 |
+
}
|
86 |
+
|
87 |
+
#fz-features .header-btns .buy-now .dashicons {
|
88 |
+
padding-right: 3px;
|
89 |
+
}
|
90 |
+
|
91 |
+
#fz-features {
|
92 |
+
padding: 0;
|
93 |
+
}
|
94 |
+
|
95 |
+
#fz-features .fz-features-content {
|
96 |
+
width: 100%;
|
97 |
+
padding: 0;
|
98 |
+
}
|
99 |
+
|
100 |
+
#fz-features .fz-features-header,
|
101 |
+
#fz-features .fz-feature {
|
102 |
+
display: table;
|
103 |
+
float: left;
|
104 |
+
box-sizing: border-box;
|
105 |
+
width: 100%;
|
106 |
+
margin: 30px 0 0;
|
107 |
+
padding: 30px;
|
108 |
+
background-color: #fff;
|
109 |
+
box-shadow: 0 1px 1px 0 rgba(0,0,0,0.1);
|
110 |
+
}
|
111 |
+
|
112 |
+
#fz-features .fz-feature .fz-feature-features,
|
113 |
+
#fz-features .fz-feature .fz-feature-image {
|
114 |
+
display: table-cell;
|
115 |
+
margin: 0;
|
116 |
+
vertical-align: middle;
|
117 |
+
}
|
118 |
+
|
119 |
+
#fz-features .fz-feature .fz-feature-features {
|
120 |
+
box-sizing: border-box;
|
121 |
+
padding: 0 0 20px;
|
122 |
+
}
|
123 |
+
|
124 |
+
#fz-features .fz-feature .fz-feature-image {
|
125 |
+
width: 470px;
|
126 |
+
}
|
127 |
+
|
128 |
+
#fz-features .fz-feature .fz-feature-features h2 {
|
129 |
+
margin: 0 0 20px;
|
130 |
+
font-size: 28px;
|
131 |
+
font-weight: 700;
|
132 |
+
line-height: 1.2;
|
133 |
+
}
|
134 |
+
|
135 |
+
#fz-features .fz-feature .fz-feature-features h4 {
|
136 |
+
margin: 0 0 10px;
|
137 |
+
font-size: 24px;
|
138 |
+
}
|
139 |
+
|
140 |
+
#fz-features .fz-feature .fz-feature-features p {
|
141 |
+
margin: 0 0 15px;
|
142 |
+
font-size: 18px;
|
143 |
+
line-height: 1.5;
|
144 |
+
}
|
145 |
+
|
146 |
+
#fz-features .fz-feature .fz-feature-image img {
|
147 |
+
width: 100%;
|
148 |
+
height: auto;
|
149 |
+
}
|
150 |
+
|
151 |
+
@media screen and (min-width: 768px) {
|
152 |
+
#fz-features {
|
153 |
+
padding: 0 15px;
|
154 |
+
}
|
155 |
+
}
|
156 |
+
|
157 |
+
@media screen and (min-width: 1200px) {
|
158 |
+
#fz-features .fz-feature {
|
159 |
+
padding: 30px 60px;
|
160 |
+
}
|
161 |
+
|
162 |
+
#fz-features .fz-feature .fz-feature-features {
|
163 |
+
padding: 0 30px 0 0;
|
164 |
+
}
|
165 |
+
|
166 |
+
#fz-features .fz-feature .fz-feature-features h2 {
|
167 |
+
font-size: 30px;
|
168 |
+
}
|
169 |
+
|
170 |
+
#fz-features .fz-feature .fz-feature-features p {
|
171 |
+
font-size: 20px;
|
172 |
+
}
|
173 |
+
}
|
174 |
+
|
175 |
+
@media screen and (min-width: 1500px) {
|
176 |
+
#fz-features .fz-feature .fz-feature-features {
|
177 |
+
padding: 0 120px 0 0;
|
178 |
+
}
|
179 |
+
}
|
180 |
+
|
181 |
+
@media screen and (max-width: 1100px) {
|
182 |
+
#fz-features {
|
183 |
+
text-align: center;
|
184 |
+
}
|
185 |
+
|
186 |
+
#fz-features .logo {
|
187 |
+
margin-left: 0;
|
188 |
+
}
|
189 |
+
|
190 |
+
#fz-features .header-btns {
|
191 |
+
display: block;
|
192 |
+
float: none;
|
193 |
+
margin: 10px 0 0;
|
194 |
+
text-align: center;
|
195 |
+
}
|
196 |
+
}
|
197 |
+
|
198 |
+
@media screen and (max-width: 1200px) {
|
199 |
+
#fz-features .fz-feature .fz-feature-features,
|
200 |
+
#fz-features .fz-feature .fz-feature-image {
|
201 |
+
display: block;
|
202 |
+
}
|
203 |
+
|
204 |
+
#fz-features .fz-feature .fz-feature-image {
|
205 |
+
display: inline-block;
|
206 |
+
max-width: 100%;
|
207 |
+
margin: 0 auto 30px;
|
208 |
+
}
|
209 |
+
|
210 |
+
#fz-features .slogan {
|
211 |
+
display: none;
|
212 |
+
}
|
213 |
+
}
|
214 |
+
|
215 |
+
#fz-features.fz-settings .fz-feature {
|
216 |
+
margin-top: 0;
|
217 |
+
border: none;
|
218 |
+
}
|
219 |
+
|
220 |
+
#fz-features.fz-settings .nav-tab-wrapper {
|
221 |
+
border-bottom: none;
|
222 |
+
}
|
223 |
+
|
224 |
+
#fz-features.fz-settings .nav-tab-wrapper a.nav-tab-active,
|
225 |
+
#fz-features.fz-settings .nav-tab-wrapper a:hover {
|
226 |
+
background: #fff;
|
227 |
+
}
|
228 |
+
|
229 |
+
#fz-features.fz-settings .nav-tab-wrapper a {
|
230 |
+
margin-top: 10px;
|
231 |
+
padding: 10px 20px;
|
232 |
+
border: 0;
|
233 |
+
color: #000;
|
234 |
+
background: #e0e0e0;
|
235 |
+
box-shadow: 0 1px 1px 0 rgba(0,0,0,0.1);
|
236 |
+
}
|
includes/layouts/feedzy-upsell.php
ADDED
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!--
|
2 |
+
Layout For Upsell Page of Feedzy RSS Feeds
|
3 |
+
|
4 |
+
@since 3.0.12
|
5 |
+
@package feedzy-rss-feeds
|
6 |
+
-->
|
7 |
+
<div id="fz-features">
|
8 |
+
|
9 |
+
<?php load_template( FEEDZY_ABSPATH . '/includes/layouts/header.php' ); ?>
|
10 |
+
|
11 |
+
<div class="fz-features-content">
|
12 |
+
|
13 |
+
<div class="fz-feature">
|
14 |
+
<div class="fz-feature-features">
|
15 |
+
<h2>Feed to post</h2>
|
16 |
+
<p>Insert into your site, content from various RSS sources. Feedzy will automatically filter the feed items and place the content wherever you want in your WordPress instance with no hassle.</p>
|
17 |
+
</div>
|
18 |
+
<div class="fz-feature-image">
|
19 |
+
<img src="<?php echo FEEDZY_ABSURL; ?>/img/features-feed-to-post.jpg" alt="Feed to post">
|
20 |
+
</div>
|
21 |
+
</div>
|
22 |
+
<div class="fz-feature">
|
23 |
+
<div class="fz-feature-features">
|
24 |
+
<h2>Feed templates</h2>
|
25 |
+
<p>Use the style that best fits your website design with three available templates. For fzduct related
|
26 |
+
feeds, the plugin fetches and displays the price separately.</p>
|
27 |
+
</div>
|
28 |
+
<div class="fz-feature-image">
|
29 |
+
<img src="<?php echo FEEDZY_ABSURL; ?>/img/features-templates.jpg" alt="Feed templates">
|
30 |
+
</div>
|
31 |
+
</div>
|
32 |
+
<div class="fz-feature">
|
33 |
+
<div class="fz-feature-features">
|
34 |
+
<h2>Affiliate ready</h2>
|
35 |
+
<p>Make some extra money by featuring affiliate links on your site. Feedzy RSS plugin automatically
|
36 |
+
includes your referral/affiliate ID to the feed links.</p>
|
37 |
+
</div>
|
38 |
+
<div class="fz-feature-image">
|
39 |
+
<img src="<?php echo FEEDZY_ABSURL; ?>/img/features-affiliate-ready.jpg" alt="Affiliate ready">
|
40 |
+
</div>
|
41 |
+
</div>
|
42 |
+
|
43 |
+
|
44 |
+
|
45 |
+
</div><!-- .fz-features-content -->
|
46 |
+
|
47 |
+
</div>
|
includes/layouts/header.php
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Header file for admin pages
|
4 |
+
*
|
5 |
+
* @package Feedzy
|
6 |
+
* @copyright Copyright (c) 2017, Marius Cristea
|
7 |
+
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
|
8 |
+
*/
|
9 |
+
?>
|
10 |
+
<div class="fz-features-header">
|
11 |
+
<p class="logo">Feedzy RSS Feeds</p>
|
12 |
+
<span class="slogan">by <a
|
13 |
+
href="https://themeisle.com/">ThemeIsle</a></span>
|
14 |
+
<div class="header-btns">
|
15 |
+
<?php
|
16 |
+
if ( ! defined( 'FEEDZY_PRO_ABSURL' ) ) :
|
17 |
+
?>
|
18 |
+
|
19 |
+
<a target="_blank" href="<?php echo FEEDZY_UPSELL_LINK; ?>" class="buy-now"><span
|
20 |
+
class="dashicons dashicons-cart"></span> Upgrade</a>
|
21 |
+
<?php
|
22 |
+
endif;
|
23 |
+
?>
|
24 |
+
</div>
|
25 |
+
</div><!-- .fz-features-header -->
|
includes/layouts/settings.php
ADDED
@@ -0,0 +1,119 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div id="fz-features" class="fz-settings">
|
2 |
+
|
3 |
+
<?php load_template( FEEDZY_ABSPATH . '/includes/layouts/header.php' ); ?>
|
4 |
+
|
5 |
+
<?php
|
6 |
+
$active_tab = isset( $_REQUEST['tab'] ) ? sanitize_text_field( $_REQUEST['tab'] ) : 'headers';
|
7 |
+
$show_button = true;
|
8 |
+
?>
|
9 |
+
|
10 |
+
<h2 class="nav-tab-wrapper">
|
11 |
+
<a href="<?php echo esc_url( admin_url( 'admin.php?page=feedzy-settings&tab=headers' ) ); ?>"
|
12 |
+
class="nav-tab <?php echo $active_tab == 'headers' ? 'nav-tab-active' : ''; ?>"><?php _e( 'Headers', 'feedzy-rss-feeds' ); ?></a>
|
13 |
+
<a href="<?php echo esc_url( admin_url( 'admin.php?page=feedzy-settings&tab=proxy' ) ); ?>"
|
14 |
+
class="nav-tab <?php echo $active_tab == 'proxy' ? 'nav-tab-active' : ''; ?>"><?php _e( 'Proxy', 'feedzy-rss-feeds' ); ?></a>
|
15 |
+
<?php
|
16 |
+
$tabs = apply_filters( 'feedzy_settings_tabs', array() );
|
17 |
+
if ( $tabs ) {
|
18 |
+
foreach ( $tabs as $tab => $label ) {
|
19 |
+
?>
|
20 |
+
<a href="<?php echo esc_url( admin_url( 'admin.php?page=feedzy-settings&tab=' . $tab ) ); ?>"
|
21 |
+
class="nav-tab <?php echo $active_tab == $tab ? 'nav-tab-active' : ''; ?>"><?php echo $label; ?></a>
|
22 |
+
<?php
|
23 |
+
}
|
24 |
+
}
|
25 |
+
?>
|
26 |
+
</h2>
|
27 |
+
|
28 |
+
<?php if ( $this->notice ) { ?>
|
29 |
+
<div class="updated"><p><?php echo $this->notice; ?></p></div>
|
30 |
+
<?php } ?>
|
31 |
+
|
32 |
+
<?php if ( $this->error ) { ?>
|
33 |
+
<div class="error"><p><?php echo $this->error; ?></p></div>
|
34 |
+
<?php } ?>
|
35 |
+
|
36 |
+
<div class="fz-features-content">
|
37 |
+
<div class="fz-feature">
|
38 |
+
<div id="feedzy_import_feeds" class="fz-feature-features">
|
39 |
+
|
40 |
+
<form method="post" action="">
|
41 |
+
<?php
|
42 |
+
switch ( $active_tab ) {
|
43 |
+
case 'headers':
|
44 |
+
?>
|
45 |
+
<h2><?php _e( 'Headers', 'feedzy-rss-feeds' ); ?></h2>
|
46 |
+
<div class="fz-form-group">
|
47 |
+
<label><?php echo __( 'User Agent to use when accessing the feed', 'feedzy-rss-feeds' ); ?>:</label>
|
48 |
+
</div>
|
49 |
+
<div class="fz-form-group">
|
50 |
+
<input type="text" class="fz-form-control" name="user-agent"
|
51 |
+
value="<?php echo isset( $settings['header']['user-agent'] ) ? $settings['header']['user-agent'] : ''; ?>">
|
52 |
+
</div>
|
53 |
+
<?php
|
54 |
+
break;
|
55 |
+
case 'proxy':
|
56 |
+
?>
|
57 |
+
<h2><?php _e( 'Proxy Settings', 'feedzy-rss-feeds' ); ?></h2>
|
58 |
+
<div class="fz-form-group">
|
59 |
+
<label><?php echo __( 'Host', 'feedzy-rss-feeds' ); ?>:</label>
|
60 |
+
</div>
|
61 |
+
<div class="fz-form-group">
|
62 |
+
<input type="text" class="fz-form-control" name="proxy-host"
|
63 |
+
value="<?php echo isset( $settings['proxy']['host'] ) ? $settings['proxy']['host'] : ''; ?>">
|
64 |
+
</div>
|
65 |
+
|
66 |
+
<div class="fz-form-group">
|
67 |
+
<label><?php echo __( 'Port', 'feedzy-rss-feeds' ); ?>:</label>
|
68 |
+
</div>
|
69 |
+
<div class="fz-form-group">
|
70 |
+
<input type="number" min="0" max="65535" class="fz-form-control" name="proxy-port"
|
71 |
+
value="<?php echo isset( $settings['proxy']['port'] ) ? $settings['proxy']['port'] : ''; ?>">
|
72 |
+
</div>
|
73 |
+
|
74 |
+
<div class="fz-form-group">
|
75 |
+
<label><?php echo __( 'Username', 'feedzy-rss-feeds' ); ?>:</label>
|
76 |
+
</div>
|
77 |
+
<div class="fz-form-group">
|
78 |
+
<input type="text" class="fz-form-control" name="proxy-user"
|
79 |
+
value="<?php echo isset( $settings['proxy']['user'] ) ? $settings['proxy']['user'] : ''; ?>">
|
80 |
+
</div>
|
81 |
+
|
82 |
+
<div class="fz-form-group">
|
83 |
+
<label><?php echo __( 'Password', 'feedzy-rss-feeds' ); ?>:</label>
|
84 |
+
</div>
|
85 |
+
<div class="fz-form-group">
|
86 |
+
<input type="password" class="fz-form-control" name="proxy-pass"
|
87 |
+
value="<?php echo isset( $settings['proxy']['pass'] ) ? $settings['proxy']['pass'] : ''; ?>">
|
88 |
+
</div>
|
89 |
+
<?php
|
90 |
+
break;
|
91 |
+
default:
|
92 |
+
$field = apply_filters( 'feedzy_display_tab_settings', array(), $active_tab );
|
93 |
+
if ( $field ) {
|
94 |
+
echo $field['content'];
|
95 |
+
if ( isset( $field['ajax'] ) && $field['ajax'] ) {
|
96 |
+
$show_button = false;
|
97 |
+
}
|
98 |
+
}
|
99 |
+
break;
|
100 |
+
}
|
101 |
+
?>
|
102 |
+
|
103 |
+
<input type="hidden" name="tab" value="<?php echo $active_tab; ?>">
|
104 |
+
|
105 |
+
<?php
|
106 |
+
wp_nonce_field( $active_tab, 'nonce' );
|
107 |
+
if ( $show_button ) {
|
108 |
+
?>
|
109 |
+
<button type="submit" class="fz-btn fz-btn-submit fz-btn-activate" id="feedzy-settings-submit"
|
110 |
+
name="feedzy-settings-submit"><?php _e( 'Save', 'feedzy-rss-feeds' ); ?></button>
|
111 |
+
<?php
|
112 |
+
}
|
113 |
+
?>
|
114 |
+
</form>
|
115 |
+
</div>
|
116 |
+
</div>
|
117 |
+
</div>
|
118 |
+
|
119 |
+
</div>
|
index.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Nothing to do here
|
4 |
+
*
|
5 |
+
* @link http://themeisle.com/plugins/feedzy-rss-feed/
|
6 |
+
* @since 3.0.0
|
7 |
+
*
|
8 |
+
* @package feedzy-rss-feeds
|
9 |
+
*/
|
js/admin.js
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
/* global login_cust */
|
2 |
-
(function($) {
|
3 |
-
wp.customize( login_cust.name, function( value ) {
|
4 |
-
value.bind( function( to ) {
|
5 |
-
$( 'html, body' ).css('background-color', to);
|
6 |
-
} );
|
7 |
-
} );
|
8 |
-
})( jQuery, login_cust );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
js/feedzy-rss-feeds-ui-mce.js
ADDED
@@ -0,0 +1,96 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Plugin Name: FEEDZY RSS Feeds
|
3 |
+
* Plugin URI: http://themeisle.com/plugins/feedzy-rss-feeds/
|
4 |
+
* Author: Themeisle
|
5 |
+
*
|
6 |
+
* @package feedzy-rss-feeds
|
7 |
+
*/
|
8 |
+
/* global tinymce */
|
9 |
+
/* jshint unused:false */
|
10 |
+
(function($) {
|
11 |
+
tinymce.PluginManager.add('feedzy_mce_button', function( editor, url ) {
|
12 |
+
editor.addButton( 'feedzy_mce_button', {
|
13 |
+
title: editor.getLang( 'feedzy_tinymce_plugin.plugin_label' ),
|
14 |
+
label: editor.getLang( 'feedzy_tinymce_plugin.plugin_label' ),
|
15 |
+
icon: 'feedzy-icon',
|
16 |
+
onclick: function() {
|
17 |
+
editor.windowManager.open( {
|
18 |
+
title: editor.getLang( 'feedzy_tinymce_plugin.plugin_title' ),
|
19 |
+
url: editor.getLang( 'feedzy_tinymce_plugin.popup_url' ) + '&action=get_tinymce_form',
|
20 |
+
width: $( window ).width() * 0.7,
|
21 |
+
height: ($( window ).height() - 36 - 50) * 0.7,
|
22 |
+
inline: 1,
|
23 |
+
id: 'feedzy-rss-insert-dialog',
|
24 |
+
buttons: [{
|
25 |
+
text: editor.getLang( 'feedzy_tinymce_plugin.pro_button' ),
|
26 |
+
id: 'feedzy-rss-button-pro',
|
27 |
+
onclick: function( e ) {
|
28 |
+
openProLink( e, editor );
|
29 |
+
},
|
30 |
+
},
|
31 |
+
{
|
32 |
+
text: editor.getLang( 'feedzy_tinymce_plugin.cancel_button' ),
|
33 |
+
id: 'feedzy-rss-button-cancel',
|
34 |
+
onclick: 'close'
|
35 |
+
},
|
36 |
+
{
|
37 |
+
text: editor.getLang( 'feedzy_tinymce_plugin.insert_button' ),
|
38 |
+
id: 'feedzy-rss-button-insert',
|
39 |
+
class: 'insert',
|
40 |
+
onclick: function( e ) {
|
41 |
+
insertShortcode( e, editor );
|
42 |
+
},
|
43 |
+
|
44 |
+
}],
|
45 |
+
}, {
|
46 |
+
editor: editor,
|
47 |
+
jquery: $,
|
48 |
+
wp: wp,
|
49 |
+
});
|
50 |
+
}
|
51 |
+
});
|
52 |
+
});
|
53 |
+
|
54 |
+
function insertShortcode( e, editor ) {
|
55 |
+
var frame = $( e.currentTarget ).find( 'iframe' ).get( 0 );
|
56 |
+
var content = frame.contentDocument;
|
57 |
+
|
58 |
+
var feedzy_form = $( '*[data-feedzy]', content );
|
59 |
+
var shortCode = '';
|
60 |
+
$.each( feedzy_form, function( index, element ) {
|
61 |
+
if ( ! $( element ).attr( 'disabled' ) ) {
|
62 |
+
var shortCodeParams = '';
|
63 |
+
var eName = $( element ).attr( 'data-feedzy' );
|
64 |
+
var eValue = '';
|
65 |
+
if ($( element ).is( 'input' )) {
|
66 |
+
if ($( element ).attr( 'type' ) === 'radio' || $( element ).attr( 'type' ) === 'checkbox') {
|
67 |
+
if ( $( element ).is( ':checked' ) ) {
|
68 |
+
eValue = $( element ).val();
|
69 |
+
}
|
70 |
+
} else {
|
71 |
+
eValue = $( element ).val();
|
72 |
+
}
|
73 |
+
} else {
|
74 |
+
eValue = $( element ).val();
|
75 |
+
}
|
76 |
+
|
77 |
+
if ( eValue !== '' && typeof eValue !== 'undefined' ) {
|
78 |
+
shortCodeParams = eName + '="' + eValue + '" ';
|
79 |
+
} else {
|
80 |
+
if ( eName === 'feeds' ) {
|
81 |
+
shortCodeParams = eName + '="http://themeisle.com/feed" ';
|
82 |
+
}
|
83 |
+
}
|
84 |
+
shortCode += shortCodeParams;
|
85 |
+
}
|
86 |
+
});
|
87 |
+
editor.insertContent(
|
88 |
+
'[feedzy-rss ' + shortCode + ']'
|
89 |
+
);
|
90 |
+
editor.windowManager.close();
|
91 |
+
}
|
92 |
+
|
93 |
+
function openProLink( e , editor ) {
|
94 |
+
window.open( editor.getLang( 'feedzy_tinymce_plugin.pro_url' ), '_blank' );
|
95 |
+
}
|
96 |
+
})(jQuery);
|
languages/feedzy-rss-feeds-de_DE.mo
ADDED
Binary file
|
languages/feedzy-rss-feeds-de_DE.po
ADDED
@@ -0,0 +1,141 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: FEEDZY RSS Feeds by b*web\n"
|
4 |
+
"Report-Msgid-Bugs-To: \n"
|
5 |
+
"POT-Creation-Date: Fri Jul 17 2015 11:41:38 GMT+0200\n"
|
6 |
+
"PO-Revision-Date: Fri Jul 17 2015 11:59:48 GMT+0200\n"
|
7 |
+
"Last-Translator: Ralf Steck <rsteck@engineeringspot.de>\n"
|
8 |
+
"Language-Team: \n"
|
9 |
+
"Language: German\n"
|
10 |
+
"Plural-Forms: nplurals=2; plural=n != 1\n"
|
11 |
+
"MIME-Version: 1.0\n"
|
12 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
13 |
+
"Content-Transfer-Encoding: 8bit\n"
|
14 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
15 |
+
"X-Poedit-Basepath: .\n"
|
16 |
+
"X-Poedit-SearchPath-0: ..\n"
|
17 |
+
"X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;"
|
18 |
+
"__:1;_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;"
|
19 |
+
"_x:1,2c;_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;"
|
20 |
+
"esc_attr__:1;esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;"
|
21 |
+
"esc_html_x:1,2c;comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
|
22 |
+
"X-Loco-Target-Locale: de_DE\n"
|
23 |
+
"X-Generator: Loco - https://localise.biz/"
|
24 |
+
|
25 |
+
#: ../feedzy-rss-feed.php:52 ../feedzy-rss-feed.php:52
|
26 |
+
msgid "Documentation and examples"
|
27 |
+
msgstr "Dokumentation und Beispiele"
|
28 |
+
|
29 |
+
#: ../feedzy-rss-feed.php:53 ../feedzy-rss-feed.php:53
|
30 |
+
msgid "More b*web Plugins"
|
31 |
+
msgstr "Weitere b*web Plugins"
|
32 |
+
|
33 |
+
#: ../feedzy-rss-feed.php:54 ../feedzy-rss-feed.php:54
|
34 |
+
msgid "Donate to this plugin »"
|
35 |
+
msgstr "Spenden Sie für dieses Plugin »"
|
36 |
+
|
37 |
+
#: ../feedzy-rss-feeds-widget.php:18
|
38 |
+
msgid "Feedzy RSS Feeds"
|
39 |
+
msgstr "Feedzy RSS Feeds"
|
40 |
+
|
41 |
+
#: ../feedzy-rss-feeds-widget.php:57
|
42 |
+
msgid "Widget Title"
|
43 |
+
msgstr "Widget-Titel"
|
44 |
+
|
45 |
+
#: ../feedzy-rss-feeds-widget.php:61
|
46 |
+
msgid "Intro text"
|
47 |
+
msgstr "Einleitungstext"
|
48 |
+
|
49 |
+
#: ../feedzy-rss-feeds-widget.php:65 ../feedzy-rss-feeds-ui-lang.php:20
|
50 |
+
msgid "The feed(s) URL (comma-separated list)."
|
51 |
+
msgstr "Feed URLs (kommaseparierte Liste)."
|
52 |
+
|
53 |
+
#: ../feedzy-rss-feeds-widget.php:69 ../feedzy-rss-feeds-ui-lang.php:21
|
54 |
+
msgid "Number of items to display."
|
55 |
+
msgstr "Anzahl der darzustellenden Elemente"
|
56 |
+
|
57 |
+
#: ../feedzy-rss-feeds-widget.php:73 ../feedzy-rss-feeds-ui-lang.php:23
|
58 |
+
msgid "Links may be opened in the same window or a new tab."
|
59 |
+
msgstr "Links können im selben Fenster oder einem neuen Tab geöffnet werden"
|
60 |
+
|
61 |
+
#: ../feedzy-rss-feeds-widget.php:84 ../feedzy-rss-feeds-ui-lang.php:24
|
62 |
+
msgid "Trim the title of the item after X characters."
|
63 |
+
msgstr "Titel nach X Zeichen abschneiden"
|
64 |
+
|
65 |
+
#: ../feedzy-rss-feeds-widget.php:89 ../feedzy-rss-feeds-ui-lang.php:25
|
66 |
+
msgid "Should we display the date of publication and the author name?"
|
67 |
+
msgstr "Veröffentlichungsdatum und Autorname anzeigen?"
|
68 |
+
|
69 |
+
#: ../feedzy-rss-feeds-widget.php:93 ../feedzy-rss-feeds-ui-lang.php:26
|
70 |
+
msgid "Should we display a description (abstract) of the retrieved item?"
|
71 |
+
msgstr "Kurzbeschreibung (Zusammenfassung) des Elements anzeigen?"
|
72 |
+
|
73 |
+
#: ../feedzy-rss-feeds-widget.php:96 ../feedzy-rss-feeds-ui-lang.php:27
|
74 |
+
msgid "Crop description (summary) of the element after X characters."
|
75 |
+
msgstr "Kurzbeschreibung (Zusammenfassung) nach X Zeichen abschneiden"
|
76 |
+
|
77 |
+
#: ../feedzy-rss-feeds-widget.php:100 ../feedzy-rss-feeds-ui-lang.php:28
|
78 |
+
msgid "Should we display the first image of the content if it is available?"
|
79 |
+
msgstr "Erstes Bild - wenn vorhanden - des Inhalts anzeigen?"
|
80 |
+
|
81 |
+
#: ../feedzy-rss-feeds-widget.php:111 ../feedzy-rss-feeds-ui-lang.php:33
|
82 |
+
msgid "No"
|
83 |
+
msgstr "Nein"
|
84 |
+
|
85 |
+
#: ../feedzy-rss-feeds-widget.php:112 ../feedzy-rss-feeds-ui-lang.php:34
|
86 |
+
msgid "Yes"
|
87 |
+
msgstr "Ja"
|
88 |
+
|
89 |
+
#: ../feedzy-rss-feeds-widget.php:113 ../feedzy-rss-feeds-ui-lang.php:35
|
90 |
+
msgid "Auto"
|
91 |
+
msgstr "Auto"
|
92 |
+
|
93 |
+
#: ../feedzy-rss-feeds-widget.php:123 ../feedzy-rss-feeds-ui-lang.php:29
|
94 |
+
msgid "Default thumbnail URL if no image is found."
|
95 |
+
msgstr "Standard-Thumnail-Bild, wenn kein Bild im Text vorhanden ist."
|
96 |
+
|
97 |
+
#: ../feedzy-rss-feeds-widget.php:127 ../feedzy-rss-feeds-ui-lang.php:30
|
98 |
+
msgid "Thumblails dimension. Do not include \"px\". Eg: 150"
|
99 |
+
msgstr "Thumbnail-Größe. Bitte ohne \"px\" angeben, z.B. 150"
|
100 |
+
|
101 |
+
#: ../feedzy-rss-feeds-widget.php:131 ../feedzy-rss-feeds-ui-lang.php:31
|
102 |
+
msgid ""
|
103 |
+
"Only display item if title contains specific keyword(s) (comma-separated "
|
104 |
+
"list/case sensitive)."
|
105 |
+
msgstr ""
|
106 |
+
"Elemente nur anzeigen, wenn sie folgende Keywords enthalten (Kommaseparierte "
|
107 |
+
"Liste)."
|
108 |
+
|
109 |
+
#: ../feedzy-rss-feeds-ui-lang.php:19
|
110 |
+
msgid "Insert FEEDZY RSS Feeds Shortcode"
|
111 |
+
msgstr "FEEDZY RSS Feeds Shortcode einfügen"
|
112 |
+
|
113 |
+
#: ../feedzy-rss-feeds-ui-lang.php:22
|
114 |
+
msgid "Should we display the RSS title?"
|
115 |
+
msgstr "RSS-Titel darstellen?"
|
116 |
+
|
117 |
+
#: ../feedzy-rss-feeds-ui-lang.php:32
|
118 |
+
msgid "Do not specify"
|
119 |
+
msgstr "nicht angeben"
|
120 |
+
|
121 |
+
#: ../feedzy-rss-feeds-shortcode.php:98
|
122 |
+
msgid "Sorry, this feed is currently unavailable or does not exists anymore."
|
123 |
+
msgstr ""
|
124 |
+
"Tut uns leid, dieser Feed ist derzeit nicht verfügbar oder existiert nicht "
|
125 |
+
"mehr."
|
126 |
+
|
127 |
+
#: ../feedzy-rss-feeds-shortcode.php:205
|
128 |
+
msgid "Posted"
|
129 |
+
msgstr "Veröffentlicht"
|
130 |
+
|
131 |
+
#: ../feedzy-rss-feeds-shortcode.php:216
|
132 |
+
msgid "by"
|
133 |
+
msgstr "von"
|
134 |
+
|
135 |
+
#: ../feedzy-rss-feeds-shortcode.php:222
|
136 |
+
msgid "on"
|
137 |
+
msgstr "am"
|
138 |
+
|
139 |
+
#: ../feedzy-rss-feeds-shortcode.php:222
|
140 |
+
msgid "at"
|
141 |
+
msgstr "um"
|
languages/feedzy-rss-feeds-es_ES.mo
ADDED
Binary file
|
languages/feedzy-rss-feeds-es_ES.po
ADDED
@@ -0,0 +1,163 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: FEEDZY RSS Feeds by b*web\n"
|
4 |
+
"POT-Creation-Date: 2015-10-12 21:49+0200\n"
|
5 |
+
"PO-Revision-Date: 2015-10-12 22:13+0200\n"
|
6 |
+
"Last-Translator: \n"
|
7 |
+
"Language-Team: \n"
|
8 |
+
"Language: es_ES\n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"X-Generator: Poedit 1.8.4\n"
|
13 |
+
"X-Poedit-Basepath: ..\n"
|
14 |
+
"X-Poedit-WPHeader: feedzy-rss-feed.php\n"
|
15 |
+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
16 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
17 |
+
"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
|
18 |
+
"esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
|
19 |
+
"_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
|
20 |
+
"X-Poedit-SearchPath-0: .\n"
|
21 |
+
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
22 |
+
|
23 |
+
#: feedzy-rss-feed.php:52
|
24 |
+
msgid "Documentation and examples"
|
25 |
+
msgstr "Documentación y ejemplos"
|
26 |
+
|
27 |
+
#: feedzy-rss-feed.php:53
|
28 |
+
msgid "More b*web Plugins"
|
29 |
+
msgstr "Más plugins de b*web"
|
30 |
+
|
31 |
+
#: feedzy-rss-feed.php:54
|
32 |
+
msgid "Donate to this plugin »"
|
33 |
+
msgstr "Donar a este plugin »"
|
34 |
+
|
35 |
+
#: feedzy-rss-feeds-shortcode.php:98
|
36 |
+
msgid "Sorry, this feed is currently unavailable or does not exists anymore."
|
37 |
+
msgstr "Lo sentimos, este feed no está disponible en este momento o no existe."
|
38 |
+
|
39 |
+
#: feedzy-rss-feeds-shortcode.php:205
|
40 |
+
msgid "Posted"
|
41 |
+
msgstr "Publicado"
|
42 |
+
|
43 |
+
#: feedzy-rss-feeds-shortcode.php:216
|
44 |
+
msgid "by"
|
45 |
+
msgstr "por"
|
46 |
+
|
47 |
+
#: feedzy-rss-feeds-shortcode.php:222
|
48 |
+
msgid "on"
|
49 |
+
msgstr "el día"
|
50 |
+
|
51 |
+
#: feedzy-rss-feeds-shortcode.php:224
|
52 |
+
msgid "at"
|
53 |
+
msgstr "a las"
|
54 |
+
|
55 |
+
#: feedzy-rss-feeds-ui-lang.php:19
|
56 |
+
msgid "Insert FEEDZY RSS Feeds Shortcode"
|
57 |
+
msgstr "Insertar shortcode feeds FEEDZY RSS"
|
58 |
+
|
59 |
+
#: feedzy-rss-feeds-ui-lang.php:20 feedzy-rss-feeds-widget.php:65
|
60 |
+
msgid "The feed(s) URL (comma-separated list)."
|
61 |
+
msgstr "Las Url's de los feed(s) (lista separada por comas)."
|
62 |
+
|
63 |
+
#: feedzy-rss-feeds-ui-lang.php:21 feedzy-rss-feeds-widget.php:69
|
64 |
+
msgid "Number of items to display."
|
65 |
+
msgstr "Número de artículos a mostrar."
|
66 |
+
|
67 |
+
#: feedzy-rss-feeds-ui-lang.php:22
|
68 |
+
msgid "Should we display the RSS title?"
|
69 |
+
msgstr "¿Mostrar el título del RSS?"
|
70 |
+
|
71 |
+
#: feedzy-rss-feeds-ui-lang.php:23 feedzy-rss-feeds-widget.php:73
|
72 |
+
msgid "Links may be opened in the same window or a new tab."
|
73 |
+
msgstr "Seleccionar como se mostrarán los enlaces al hacer click."
|
74 |
+
|
75 |
+
#: feedzy-rss-feeds-ui-lang.php:24 feedzy-rss-feeds-widget.php:84
|
76 |
+
msgid "Trim the title of the item after X characters."
|
77 |
+
msgstr "Recortar el título del artículo después de X caracteres."
|
78 |
+
|
79 |
+
#: feedzy-rss-feeds-ui-lang.php:25 feedzy-rss-feeds-widget.php:89
|
80 |
+
msgid "Should we display the date of publication and the author name?"
|
81 |
+
msgstr "¿Mostrar el día de publicación y el nombre del autor?"
|
82 |
+
|
83 |
+
#: feedzy-rss-feeds-ui-lang.php:26 feedzy-rss-feeds-widget.php:93
|
84 |
+
msgid "Should we display a description (abstract) of the retrieved item?"
|
85 |
+
msgstr "¿Mostrar una descripción (extracto) del artículo?"
|
86 |
+
|
87 |
+
#: feedzy-rss-feeds-ui-lang.php:27 feedzy-rss-feeds-widget.php:96
|
88 |
+
msgid "Crop description (summary) of the element after X characters."
|
89 |
+
msgstr "Cortar la descripción (sumario) del elemento después de X caracteres."
|
90 |
+
|
91 |
+
#: feedzy-rss-feeds-ui-lang.php:28 feedzy-rss-feeds-widget.php:100
|
92 |
+
msgid "Should we display the first image of the content if it is available?"
|
93 |
+
msgstr "¿Mostrar la primera imagen del contenido si está disponible?"
|
94 |
+
|
95 |
+
#: feedzy-rss-feeds-ui-lang.php:29 feedzy-rss-feeds-widget.php:123
|
96 |
+
msgid "Default thumbnail URL if no image is found."
|
97 |
+
msgstr "Enlace de la imagen por defecto si no la hay disponible."
|
98 |
+
|
99 |
+
#: feedzy-rss-feeds-ui-lang.php:30 feedzy-rss-feeds-widget.php:127
|
100 |
+
msgid "Thumblails dimension. Do not include \"px\". Eg: 150"
|
101 |
+
msgstr "Dimensiones de las imágenes. No incluir \"px\". Ejemplo: 150"
|
102 |
+
|
103 |
+
#: feedzy-rss-feeds-ui-lang.php:31 feedzy-rss-feeds-widget.php:131
|
104 |
+
msgid ""
|
105 |
+
"Only display item if title contains specific keyword(s) (comma-separated "
|
106 |
+
"list/case sensitive)."
|
107 |
+
msgstr ""
|
108 |
+
"Sólo mostrar el artículo si el título contiene las palabra(s) "
|
109 |
+
"especificada(s) (lista separada por comas/distingue mayúsculas de "
|
110 |
+
"minúsculas)."
|
111 |
+
|
112 |
+
#: feedzy-rss-feeds-ui-lang.php:32
|
113 |
+
msgid "Do not specify"
|
114 |
+
msgstr "no especificado"
|
115 |
+
|
116 |
+
#: feedzy-rss-feeds-ui-lang.php:33 feedzy-rss-feeds-widget.php:111
|
117 |
+
msgid "No"
|
118 |
+
msgstr "No"
|
119 |
+
|
120 |
+
#: feedzy-rss-feeds-ui-lang.php:34 feedzy-rss-feeds-widget.php:112
|
121 |
+
msgid "Yes"
|
122 |
+
msgstr "Si"
|
123 |
+
|
124 |
+
#: feedzy-rss-feeds-ui-lang.php:35 feedzy-rss-feeds-widget.php:113
|
125 |
+
msgid "Auto"
|
126 |
+
msgstr "Auto"
|
127 |
+
|
128 |
+
#: feedzy-rss-feeds-widget.php:18
|
129 |
+
msgid "Feedzy RSS Feeds"
|
130 |
+
msgstr "Feedzy RSS Feeds"
|
131 |
+
|
132 |
+
#: feedzy-rss-feeds-widget.php:57
|
133 |
+
msgid "Widget Title"
|
134 |
+
msgstr "Título del Widget"
|
135 |
+
|
136 |
+
#: feedzy-rss-feeds-widget.php:61
|
137 |
+
msgid "Intro text"
|
138 |
+
msgstr "Texto introductorio"
|
139 |
+
|
140 |
+
#. Plugin Name of the plugin/theme
|
141 |
+
msgid "FEEDZY RSS Feeds by b*web"
|
142 |
+
msgstr "FEEDZY RSS Feeds por b*web"
|
143 |
+
|
144 |
+
#. Plugin URI of the plugin/theme
|
145 |
+
msgid "http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie"
|
146 |
+
msgstr "http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie"
|
147 |
+
|
148 |
+
#. Description of the plugin/theme
|
149 |
+
msgid ""
|
150 |
+
"FEEDZY RSS Feeds is a small and lightweight plugin. Fast and easy to use, it "
|
151 |
+
"aggregates RSS feeds into your WordPress site through simple shortcodes."
|
152 |
+
msgstr ""
|
153 |
+
"FEEDZY RSS Feeds es un pequeño y ligero plugin. Rápido y fácil de usar, "
|
154 |
+
"agrupa los canales RSS en su sitio de WordPress a través de simples "
|
155 |
+
"shortcodes."
|
156 |
+
|
157 |
+
#. Author of the plugin/theme
|
158 |
+
msgid "Brice CAPOBIANCO"
|
159 |
+
msgstr "Brice CAPOBIANCO"
|
160 |
+
|
161 |
+
#. Author URI of the plugin/theme
|
162 |
+
msgid "http://b-website.com/"
|
163 |
+
msgstr "http://b-website.com/"
|
languages/feedzy-rss-feeds-fr_FR.mo
ADDED
Binary file
|
languages/feedzy-rss-feeds-fr_FR.po
ADDED
@@ -0,0 +1,217 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: FEEDZY RSS Feeds by b*web v2.7\n"
|
4 |
+
"Report-Msgid-Bugs-To: \n"
|
5 |
+
"POT-Creation-Date: \n"
|
6 |
+
"PO-Revision-Date: 2015-12-07 11:46:59+0000\n"
|
7 |
+
"Last-Translator: superadminopl <brice.capobianco@openlog.fr>\n"
|
8 |
+
"Language-Team: \n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"Plural-Forms: nplurals=2; plural=n>1;\n"
|
13 |
+
"X-Generator: CSL v1.x\n"
|
14 |
+
"X-Poedit-Language: French\n"
|
15 |
+
"X-Poedit-Country: FRANCE\n"
|
16 |
+
"X-Poedit-SourceCharset: utf-8\n"
|
17 |
+
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
|
18 |
+
"X-Poedit-Basepath: \n"
|
19 |
+
"X-Poedit-Bookmarks: \n"
|
20 |
+
"X-Poedit-SearchPath-0: .\n"
|
21 |
+
"X-Textdomain-Support: yes"
|
22 |
+
|
23 |
+
#: feedzy-rss-feeds-functions.php:26
|
24 |
+
#@ feedzy-rss-feeds
|
25 |
+
msgid "Sorry, this feed is currently unavailable or does not exists anymore."
|
26 |
+
msgstr "Désolé, ce flux est actuellement indisponible ou n'existe plus."
|
27 |
+
|
28 |
+
#: feedzy-rss-feeds-shortcode.php:228
|
29 |
+
#@ feedzy-rss-feeds
|
30 |
+
msgid "on"
|
31 |
+
msgstr "le"
|
32 |
+
|
33 |
+
#: feedzy-rss-feeds-shortcode.php:230
|
34 |
+
#@ feedzy-rss-feeds
|
35 |
+
msgid "at"
|
36 |
+
msgstr "à"
|
37 |
+
|
38 |
+
#: feedzy-rss-feed.php:52
|
39 |
+
#@ feedzy-rss-feeds
|
40 |
+
msgid "Documentation and examples"
|
41 |
+
msgstr "Documentation et exemples"
|
42 |
+
|
43 |
+
#: feedzy-rss-feed.php:53
|
44 |
+
#@ feedzy-rss-feeds
|
45 |
+
msgid "More b*web Plugins"
|
46 |
+
msgstr "Plus de plugins b*web"
|
47 |
+
|
48 |
+
#: feedzy-rss-feeds-ui-lang.php:19
|
49 |
+
#@ feedzy-rss-feeds
|
50 |
+
msgid "Insert FEEDZY RSS Feeds Shortcode"
|
51 |
+
msgstr "Insérer un shortcode FEEDZY RSS Feeds"
|
52 |
+
|
53 |
+
#: feedzy-rss-feeds-ui-lang.php:21
|
54 |
+
#: feedzy-rss-feeds-widget.php:69
|
55 |
+
#@ feedzy-rss-feeds
|
56 |
+
msgid "Number of items to display."
|
57 |
+
msgstr "Nombre d’éléments à remonter."
|
58 |
+
|
59 |
+
#: feedzy-rss-feeds-ui-lang.php:23
|
60 |
+
#: feedzy-rss-feeds-widget.php:73
|
61 |
+
#@ feedzy-rss-feeds
|
62 |
+
msgid "Links may be opened in the same window or a new tab."
|
63 |
+
msgstr "Les liens peuvent être ouverts dans la même fenêtre ou dans un nouvel onglet."
|
64 |
+
|
65 |
+
#: feedzy-rss-feeds-ui-lang.php:24
|
66 |
+
#: feedzy-rss-feeds-widget.php:84
|
67 |
+
#@ feedzy-rss-feeds
|
68 |
+
msgid "Trim the title of the item after X characters."
|
69 |
+
msgstr "Rogner le titre de l’élément après X caractères."
|
70 |
+
|
71 |
+
#: feedzy-rss-feeds-ui-lang.php:25
|
72 |
+
#: feedzy-rss-feeds-widget.php:89
|
73 |
+
#@ feedzy-rss-feeds
|
74 |
+
msgid "Should we display the date of publication and the author name?"
|
75 |
+
msgstr "Doit-on afficher la date de publication ainsi que le nom de l’auteur de l’élément ?"
|
76 |
+
|
77 |
+
#: feedzy-rss-feeds-ui-lang.php:26
|
78 |
+
#: feedzy-rss-feeds-widget.php:93
|
79 |
+
#@ feedzy-rss-feeds
|
80 |
+
msgid "Should we display a description (abstract) of the retrieved item?"
|
81 |
+
msgstr "Doit-on afficher la description (le résumé) de l’élément ?"
|
82 |
+
|
83 |
+
#: feedzy-rss-feeds-ui-lang.php:27
|
84 |
+
#: feedzy-rss-feeds-widget.php:96
|
85 |
+
#@ feedzy-rss-feeds
|
86 |
+
msgid "Crop description (summary) of the element after X characters."
|
87 |
+
msgstr "Rogner la description (le résumé) de l’élément après X caractères."
|
88 |
+
|
89 |
+
#: feedzy-rss-feeds-ui-lang.php:28
|
90 |
+
#: feedzy-rss-feeds-widget.php:100
|
91 |
+
#@ feedzy-rss-feeds
|
92 |
+
msgid "Should we display the first image of the content if it is available?"
|
93 |
+
msgstr "Doit-on afficher la première image du contenu si elle est disponible ?"
|
94 |
+
|
95 |
+
#: feedzy-rss-feeds-ui-lang.php:29
|
96 |
+
#: feedzy-rss-feeds-widget.php:123
|
97 |
+
#@ feedzy-rss-feeds
|
98 |
+
msgid "Default thumbnail URL if no image is found."
|
99 |
+
msgstr "URL de la miniature par défaut si aucune image n’est trouvée."
|
100 |
+
|
101 |
+
#: feedzy-rss-feeds-ui-lang.php:30
|
102 |
+
#: feedzy-rss-feeds-widget.php:127
|
103 |
+
#@ feedzy-rss-feeds
|
104 |
+
msgid "Thumblails dimension. Do not include \"px\". Eg: 150"
|
105 |
+
msgstr "Dimensions de la miniature. Ne pas inclure “px”. Ex : 150"
|
106 |
+
|
107 |
+
#: feedzy-rss-feeds-ui-lang.php:31
|
108 |
+
#: feedzy-rss-feeds-widget.php:131
|
109 |
+
#@ feedzy-rss-feeds
|
110 |
+
msgid "Only display item if title contains specific keyword(s) (comma-separated list/case sensitive)."
|
111 |
+
msgstr "Afficher un élément seulement si son titre contient l’un des mots clés spécifiés (liste séparée par des virgules/sensible à la case)"
|
112 |
+
|
113 |
+
#: feedzy-rss-feeds-ui-lang.php:32
|
114 |
+
#@ feedzy-rss-feeds
|
115 |
+
msgid "Do not specify"
|
116 |
+
msgstr "Ne pas préciser"
|
117 |
+
|
118 |
+
#: feedzy-rss-feeds-ui-lang.php:33
|
119 |
+
#: feedzy-rss-feeds-widget.php:111
|
120 |
+
#@ feedzy-rss-feeds
|
121 |
+
msgid "No"
|
122 |
+
msgstr "Non"
|
123 |
+
|
124 |
+
#: feedzy-rss-feeds-ui-lang.php:34
|
125 |
+
#: feedzy-rss-feeds-widget.php:112
|
126 |
+
#@ feedzy-rss-feeds
|
127 |
+
msgid "Yes"
|
128 |
+
msgstr "Oui"
|
129 |
+
|
130 |
+
#: feedzy-rss-feeds-ui-lang.php:20
|
131 |
+
#: feedzy-rss-feeds-widget.php:65
|
132 |
+
#@ feedzy-rss-feeds
|
133 |
+
msgid "The feed(s) URL (comma-separated list)."
|
134 |
+
msgstr "URL(s) du(des) flux RSS (liste séparée par des virgules)."
|
135 |
+
|
136 |
+
#: feedzy-rss-feeds-ui-lang.php:22
|
137 |
+
#@ feedzy-rss-feeds
|
138 |
+
msgid "Should we display the RSS title?"
|
139 |
+
msgstr "Doit-on afficher le titre du flux RSS ?"
|
140 |
+
|
141 |
+
#. translators: plugin header field 'Name'
|
142 |
+
#: feedzy-rss-feed.php:0
|
143 |
+
#@ feedzy-rss-feeds
|
144 |
+
msgid "FEEDZY RSS Feeds by b*web"
|
145 |
+
msgstr ""
|
146 |
+
|
147 |
+
#. translators: plugin header field 'Description'
|
148 |
+
#: feedzy-rss-feed.php:0
|
149 |
+
#@ feedzy-rss-feeds
|
150 |
+
msgid "FEEDZY RSS Feeds is a small and lightweight plugin. Fast and easy to use, it aggregates RSS feeds into your WordPress site through simple shortcodes."
|
151 |
+
msgstr "FEEDZY RSS Feeds est un petit plugin léger, rapide et très simple d'utilisation qui vous permet d'agréger des flux RSS dans votre site WordPress grâce à des shortcodes entièrement paramétrables."
|
152 |
+
|
153 |
+
#. translators: plugin header field 'Author'
|
154 |
+
#: feedzy-rss-feed.php:0
|
155 |
+
#@ feedzy-rss-feeds
|
156 |
+
msgid "Brice CAPOBIANCO"
|
157 |
+
msgstr ""
|
158 |
+
|
159 |
+
#. translators: plugin header field 'AuthorURI'
|
160 |
+
#: feedzy-rss-feed.php:0
|
161 |
+
#@ feedzy-rss-feeds
|
162 |
+
msgid "http://b-website.com/"
|
163 |
+
msgstr ""
|
164 |
+
|
165 |
+
#. translators: plugin header field 'PluginURI'
|
166 |
+
#: feedzy-rss-feed.php:0
|
167 |
+
#@ feedzy-rss-feeds
|
168 |
+
msgid "http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie"
|
169 |
+
msgstr "http://b-website.com/feedzy-rss-feeds-plugin-wordpress-gratuit-utilisant-simplepie"
|
170 |
+
|
171 |
+
#: feedzy-rss-feeds-widget.php:18
|
172 |
+
#@ feedzy_wp_widget
|
173 |
+
msgid "Feedzy RSS Feeds"
|
174 |
+
msgstr ""
|
175 |
+
|
176 |
+
#: feedzy-rss-feeds-widget.php:57
|
177 |
+
#@ feedzy-rss-feeds
|
178 |
+
msgid "Widget Title"
|
179 |
+
msgstr "Titre du Widget"
|
180 |
+
|
181 |
+
#: feedzy-rss-feeds-widget.php:61
|
182 |
+
#@ feedzy-rss-feeds
|
183 |
+
msgid "Intro text"
|
184 |
+
msgstr "Texte d'intro"
|
185 |
+
|
186 |
+
#: feedzy-rss-feed.php:54
|
187 |
+
#@ default
|
188 |
+
msgid "Donate to this plugin »"
|
189 |
+
msgstr ""
|
190 |
+
|
191 |
+
#: feedzy-rss-feeds-shortcode.php:211
|
192 |
+
#@ feedzy-rss-feeds
|
193 |
+
msgid "Posted"
|
194 |
+
msgstr "Posté"
|
195 |
+
|
196 |
+
#: feedzy-rss-feeds-shortcode.php:222
|
197 |
+
#@ feedzy-rss-feeds
|
198 |
+
msgid "by"
|
199 |
+
msgstr "par"
|
200 |
+
|
201 |
+
#. translators: plugin header field 'Version'
|
202 |
+
#: feedzy-rss-feed.php:0
|
203 |
+
#@ feedzy-rss-feeds
|
204 |
+
msgid "2.7"
|
205 |
+
msgstr ""
|
206 |
+
|
207 |
+
#: feedzy-rss-feeds-ui-lang.php:20
|
208 |
+
#@ feedzy-rss-feeds
|
209 |
+
msgid "If your feed is not valid, it won't work."
|
210 |
+
msgstr "Si votre flux n'est pas valide, cela ne fonctionnera pas."
|
211 |
+
|
212 |
+
#: feedzy-rss-feeds-ui-lang.php:35
|
213 |
+
#: feedzy-rss-feeds-widget.php:113
|
214 |
+
#@ feedzy-rss-feeds
|
215 |
+
msgid "Auto"
|
216 |
+
msgstr ""
|
217 |
+
|
languages/feedzy-rss-feeds-ja.mo
ADDED
Binary file
|
languages/feedzy-rss-feeds-ja.po
ADDED
@@ -0,0 +1,189 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: FEEDZY RSS Feeds by b*web v2.2\n"
|
4 |
+
"Report-Msgid-Bugs-To: \n"
|
5 |
+
"POT-Creation-Date: \n"
|
6 |
+
"PO-Revision-Date: 2015-06-28 08:42+0900\n"
|
7 |
+
"Last-Translator: Shinichiro Sato <sama55@cmsbox.jp>\n"
|
8 |
+
"Language-Team: \n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"Plural-Forms: nplurals=2; plural=n>1;\n"
|
13 |
+
"X-Generator: Poedit 1.8.1\n"
|
14 |
+
"X-Poedit-SourceCharset: utf-8\n"
|
15 |
+
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
|
16 |
+
"X-Textdomain-Support: yes\n"
|
17 |
+
"Language: fr_FR\n"
|
18 |
+
"X-Poedit-SearchPath-0: .\n"
|
19 |
+
|
20 |
+
# @ feedzy-rss-feeds
|
21 |
+
#: feedzy-rss-feeds-shortcode.php:120
|
22 |
+
msgid "Sorry, this feed is currently unavailable or does not exists anymore."
|
23 |
+
msgstr "このフィードは現在利用できないか存在しません。"
|
24 |
+
|
25 |
+
# @ feedzy-rss-feeds
|
26 |
+
#: feedzy-rss-feeds-shortcode.php:298
|
27 |
+
msgid "on"
|
28 |
+
msgstr "on"
|
29 |
+
|
30 |
+
# @ feedzy-rss-feeds
|
31 |
+
#: feedzy-rss-feeds-shortcode.php:298
|
32 |
+
msgid "at"
|
33 |
+
msgstr "at"
|
34 |
+
|
35 |
+
# @ feedzy-rss-feeds
|
36 |
+
#: feedzy-rss-feed.php:37
|
37 |
+
msgid "Documentation and examples"
|
38 |
+
msgstr "ドキュメントと例"
|
39 |
+
|
40 |
+
# @ feedzy-rss-feeds
|
41 |
+
#: feedzy-rss-feed.php:38
|
42 |
+
msgid "More b*web Plugins"
|
43 |
+
msgstr "他の b*web プラグイン"
|
44 |
+
|
45 |
+
# @ feedzy-rss-feeds
|
46 |
+
#: feedzy-rss-feeds-ui-lang.php:19
|
47 |
+
msgid "Insert FEEDZY RSS Feeds Shortcode"
|
48 |
+
msgstr "FEEDZY RSSフィード ショートコードを追加"
|
49 |
+
|
50 |
+
# @ feedzy-rss-feeds
|
51 |
+
#: feedzy-rss-feeds-ui-lang.php:21 feedzy-rss-feeds-widget.php:69
|
52 |
+
msgid "Number of items to display."
|
53 |
+
msgstr "表示数:"
|
54 |
+
|
55 |
+
# @ feedzy-rss-feeds
|
56 |
+
#: feedzy-rss-feeds-ui-lang.php:23 feedzy-rss-feeds-widget.php:73
|
57 |
+
msgid "Links may be opened in the same window or a new tab."
|
58 |
+
msgstr "リンク先の開き方:"
|
59 |
+
|
60 |
+
# @ feedzy-rss-feeds
|
61 |
+
#: feedzy-rss-feeds-ui-lang.php:24 feedzy-rss-feeds-widget.php:84
|
62 |
+
msgid "Trim the title of the item after X characters."
|
63 |
+
msgstr "タイトルの切り取り文字数:"
|
64 |
+
|
65 |
+
# @ feedzy-rss-feeds
|
66 |
+
#: feedzy-rss-feeds-ui-lang.php:25 feedzy-rss-feeds-widget.php:89
|
67 |
+
msgid "Should we display the date of publication and the author name?"
|
68 |
+
msgstr "公開日と著作者を表示:"
|
69 |
+
|
70 |
+
# @ feedzy-rss-feeds
|
71 |
+
#: feedzy-rss-feeds-ui-lang.php:26 feedzy-rss-feeds-widget.php:93
|
72 |
+
msgid "Should we display a description (abstract) of the retrieved item?"
|
73 |
+
msgstr "詳細を表示:"
|
74 |
+
|
75 |
+
# @ feedzy-rss-feeds
|
76 |
+
#: feedzy-rss-feeds-ui-lang.php:27 feedzy-rss-feeds-widget.php:96
|
77 |
+
msgid "Crop description (summary) of the element after X characters."
|
78 |
+
msgstr "詳細の切り取り文字数:"
|
79 |
+
|
80 |
+
# @ feedzy-rss-feeds
|
81 |
+
#: feedzy-rss-feeds-ui-lang.php:28 feedzy-rss-feeds-widget.php:101
|
82 |
+
msgid "Should we display the first image of the content if it is available?"
|
83 |
+
msgstr "最初の画像を表示:"
|
84 |
+
|
85 |
+
# @ feedzy-rss-feeds
|
86 |
+
#: feedzy-rss-feeds-ui-lang.php:29 feedzy-rss-feeds-widget.php:104
|
87 |
+
msgid "Default thumbnail URL if no image is found."
|
88 |
+
msgstr "画像がない場合のデフォルトサムネイル:"
|
89 |
+
|
90 |
+
# @ feedzy-rss-feeds
|
91 |
+
#: feedzy-rss-feeds-ui-lang.php:30 feedzy-rss-feeds-widget.php:108
|
92 |
+
msgid "Thumblails dimension. Do not include \"px\". Eg: 150"
|
93 |
+
msgstr "サムネイルのサイズ(\"px\"はなし 例:150):"
|
94 |
+
|
95 |
+
# @ feedzy-rss-feeds
|
96 |
+
#: feedzy-rss-feeds-ui-lang.php:31 feedzy-rss-feeds-widget.php:112
|
97 |
+
msgid "Only display item if title contains specific keyword(s) (comma-separated list/case sensitive)."
|
98 |
+
msgstr "特定なキーワードがタイトルに含まれる項目のみ表示 (複数指定時は大文字小文字を意識してカンマ区切り):"
|
99 |
+
|
100 |
+
# @ feedzy-rss-feeds
|
101 |
+
#: feedzy-rss-feeds-ui-lang.php:32
|
102 |
+
msgid "Do not specify"
|
103 |
+
msgstr "指定しない"
|
104 |
+
|
105 |
+
# @ feedzy-rss-feeds
|
106 |
+
#: feedzy-rss-feeds-ui-lang.php:33
|
107 |
+
msgid "No"
|
108 |
+
msgstr "しない"
|
109 |
+
|
110 |
+
# @ feedzy-rss-feeds
|
111 |
+
#: feedzy-rss-feeds-ui-lang.php:34
|
112 |
+
msgid "Yes"
|
113 |
+
msgstr "する"
|
114 |
+
|
115 |
+
# @ feedzy-rss-feeds
|
116 |
+
#: feedzy-rss-feeds-ui-lang.php:20 feedzy-rss-feeds-widget.php:65
|
117 |
+
msgid "The feed(s) URL (comma-separated list)."
|
118 |
+
msgstr "フィードアドレス (複数指定する場合はカンマ区切り):"
|
119 |
+
|
120 |
+
# @ feedzy-rss-feeds
|
121 |
+
#: feedzy-rss-feeds-ui-lang.php:22
|
122 |
+
msgid "Should we display the RSS title?"
|
123 |
+
msgstr "タイトルを表示:"
|
124 |
+
|
125 |
+
# @ feedzy-rss-feeds
|
126 |
+
#. translators: plugin header field 'Name'
|
127 |
+
#: feedzy-rss-feed.php:0
|
128 |
+
msgid "FEEDZY RSS Feeds by b*web"
|
129 |
+
msgstr "FEEDZY RSS Feeds by b*web"
|
130 |
+
|
131 |
+
# @ feedzy-rss-feeds
|
132 |
+
#. translators: plugin header field 'Description'
|
133 |
+
#: feedzy-rss-feed.php:0
|
134 |
+
msgid "FEEDZY RSS Feeds is a small and lightweight plugin. Fast and easy to use, it aggregates RSS feeds into your WordPress site through simple shortcodes."
|
135 |
+
msgstr "FEEDZY RSS Feeds は小さく軽いプラグインです。高速で使い方も簡単。あなたのワードプレスサイトにシンプルなショートコードによるRSSフィードの収集機能を追加します。"
|
136 |
+
|
137 |
+
# @ feedzy-rss-feeds
|
138 |
+
#. translators: plugin header field 'Author'
|
139 |
+
#: feedzy-rss-feed.php:0
|
140 |
+
msgid "Brice CAPOBIANCO"
|
141 |
+
msgstr "Brice CAPOBIANCO"
|
142 |
+
|
143 |
+
# @ feedzy-rss-feeds
|
144 |
+
#. translators: plugin header field 'AuthorURI'
|
145 |
+
#: feedzy-rss-feed.php:0
|
146 |
+
msgid "http://b-website.com/"
|
147 |
+
msgstr "http://b-website.com/"
|
148 |
+
|
149 |
+
# @ feedzy-rss-feeds
|
150 |
+
#. translators: plugin header field 'PluginURI'
|
151 |
+
#: feedzy-rss-feed.php:0
|
152 |
+
msgid "http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie"
|
153 |
+
msgstr "http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie"
|
154 |
+
|
155 |
+
# @ feedzy_wp_widget
|
156 |
+
#: feedzy-rss-feeds-widget.php:18
|
157 |
+
msgid "Feedzy RSS Feeds"
|
158 |
+
msgstr "Feedzy RSS フィード"
|
159 |
+
|
160 |
+
# @ feedzy-rss-feeds
|
161 |
+
#: feedzy-rss-feeds-widget.php:57
|
162 |
+
msgid "Widget Title"
|
163 |
+
msgstr "タイトル"
|
164 |
+
|
165 |
+
# @ feedzy-rss-feeds
|
166 |
+
#: feedzy-rss-feeds-widget.php:61
|
167 |
+
msgid "Intro text"
|
168 |
+
msgstr "イントロテキスト"
|
169 |
+
|
170 |
+
# @ default
|
171 |
+
#: feedzy-rss-feed.php:39
|
172 |
+
msgid "Donate to this plugin »"
|
173 |
+
msgstr "このプラグインに寄付 »"
|
174 |
+
|
175 |
+
# @ feedzy-rss-feeds
|
176 |
+
#. translators: plugin header field 'Version'
|
177 |
+
#: feedzy-rss-feed.php:0
|
178 |
+
msgid "2.2"
|
179 |
+
msgstr "2.2"
|
180 |
+
|
181 |
+
# @ feedzy-rss-feeds
|
182 |
+
#: feedzy-rss-feeds-shortcode.php:289
|
183 |
+
msgid "Posted"
|
184 |
+
msgstr "投稿日"
|
185 |
+
|
186 |
+
# @ feedzy-rss-feeds
|
187 |
+
#: feedzy-rss-feeds-shortcode.php:294
|
188 |
+
msgid "by"
|
189 |
+
msgstr "by"
|
languages/feedzy-rss-feeds-sr_RS.mo
ADDED
Binary file
|
languages/feedzy-rss-feeds-sr_RS.po
ADDED
@@ -0,0 +1,204 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: FEEDZY RSS Feeds by b*web v2.2.1\n"
|
4 |
+
"Report-Msgid-Bugs-To: \n"
|
5 |
+
"POT-Creation-Date: \n"
|
6 |
+
"PO-Revision-Date: 2015-01-13 19:54:39+0000\n"
|
7 |
+
"Last-Translator: Borisa Djuraskovic <borisad@webhostinghub.com>\n"
|
8 |
+
"Language-Team: \n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
13 |
+
"X-Generator: Poedit 1.5.4\n"
|
14 |
+
"X-Poedit-Language: \n"
|
15 |
+
"X-Poedit-Country: \n"
|
16 |
+
"X-Poedit-SourceCharset: utf-8\n"
|
17 |
+
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
|
18 |
+
"X-Poedit-Basepath: \n"
|
19 |
+
"X-Poedit-Bookmarks: \n"
|
20 |
+
"X-Poedit-SearchPath-0: .\n"
|
21 |
+
"X-Textdomain-Support: yes"
|
22 |
+
|
23 |
+
#: feedzy-rss-feeds-shortcode.php:120
|
24 |
+
#@ feedzy-rss-feeds
|
25 |
+
msgid "Sorry, this feed is currently unavailable or does not exists anymore."
|
26 |
+
msgstr "Žao nam je, ovo polje trenutno nije dostupno ili više ne postoji."
|
27 |
+
|
28 |
+
#: feedzy-rss-feeds-shortcode.php:298
|
29 |
+
#@ feedzy-rss-feeds
|
30 |
+
msgid "on"
|
31 |
+
msgstr "na"
|
32 |
+
|
33 |
+
#: feedzy-rss-feeds-shortcode.php:298
|
34 |
+
#@ feedzy-rss-feeds
|
35 |
+
msgid "at"
|
36 |
+
msgstr "u"
|
37 |
+
|
38 |
+
#: feedzy-rss-feed.php:37
|
39 |
+
#@ feedzy-rss-feeds
|
40 |
+
msgid "Documentation and examples"
|
41 |
+
msgstr "Dokumentacija i primeri"
|
42 |
+
|
43 |
+
#: feedzy-rss-feed.php:38
|
44 |
+
#@ feedzy-rss-feeds
|
45 |
+
msgid "More b*web Plugins"
|
46 |
+
msgstr "Više b*web Plugin-ova"
|
47 |
+
|
48 |
+
#: feedzy-rss-feeds-ui-lang.php:19
|
49 |
+
#@ feedzy-rss-feeds
|
50 |
+
msgid "Insert FEEDZY RSS Feeds Shortcode"
|
51 |
+
msgstr "Unesite FEEDZY RSS Feeds Shortcode"
|
52 |
+
|
53 |
+
#: feedzy-rss-feeds-ui-lang.php:21
|
54 |
+
#: feedzy-rss-feeds-widget.php:69
|
55 |
+
#@ feedzy-rss-feeds
|
56 |
+
msgid "Number of items to display."
|
57 |
+
msgstr "Broj stavki za prikazivanje"
|
58 |
+
|
59 |
+
#: feedzy-rss-feeds-ui-lang.php:23
|
60 |
+
#: feedzy-rss-feeds-widget.php:73
|
61 |
+
#@ feedzy-rss-feeds
|
62 |
+
msgid "Links may be opened in the same window or a new tab."
|
63 |
+
msgstr "Linkovi mogu biti otvoreni u istom prozoru ili u novom tabulatoru."
|
64 |
+
|
65 |
+
#: feedzy-rss-feeds-ui-lang.php:24
|
66 |
+
#: feedzy-rss-feeds-widget.php:84
|
67 |
+
#@ feedzy-rss-feeds
|
68 |
+
msgid "Trim the title of the item after X characters."
|
69 |
+
msgstr "Skratite naslov stavke posle X karaktera."
|
70 |
+
|
71 |
+
#: feedzy-rss-feeds-ui-lang.php:25
|
72 |
+
#: feedzy-rss-feeds-widget.php:89
|
73 |
+
#@ feedzy-rss-feeds
|
74 |
+
msgid "Should we display the date of publication and the author name?"
|
75 |
+
msgstr "Treba li da prikažemo datum publikacije i ime autora?"
|
76 |
+
|
77 |
+
#: feedzy-rss-feeds-ui-lang.php:26
|
78 |
+
#: feedzy-rss-feeds-widget.php:93
|
79 |
+
#@ feedzy-rss-feeds
|
80 |
+
msgid "Should we display a description (abstract) of the retrieved item?"
|
81 |
+
msgstr "Treba li da prikažemo opis (siže) dobavljene stavke?"
|
82 |
+
|
83 |
+
#: feedzy-rss-feeds-ui-lang.php:27
|
84 |
+
#: feedzy-rss-feeds-widget.php:96
|
85 |
+
#@ feedzy-rss-feeds
|
86 |
+
msgid "Crop description (summary) of the element after X characters."
|
87 |
+
msgstr "Kropuj opis (siže) elementa posle X karaktera."
|
88 |
+
|
89 |
+
#: feedzy-rss-feeds-ui-lang.php:28
|
90 |
+
#: feedzy-rss-feeds-widget.php:101
|
91 |
+
#@ feedzy-rss-feeds
|
92 |
+
msgid "Should we display the first image of the content if it is available?"
|
93 |
+
msgstr "Treba li da prikažemo prvu sliku sadržaja ako je raspoloživa?"
|
94 |
+
|
95 |
+
#: feedzy-rss-feeds-ui-lang.php:29
|
96 |
+
#: feedzy-rss-feeds-widget.php:104
|
97 |
+
#@ feedzy-rss-feeds
|
98 |
+
msgid "Default thumbnail URL if no image is found."
|
99 |
+
msgstr "URL podrazumevane sličice ako nije pronađena nijedna slika."
|
100 |
+
|
101 |
+
#: feedzy-rss-feeds-ui-lang.php:30
|
102 |
+
#: feedzy-rss-feeds-widget.php:108
|
103 |
+
#@ feedzy-rss-feeds
|
104 |
+
msgid "Thumblails dimension. Do not include \"px\". Eg: 150"
|
105 |
+
msgstr "Dimenzije sličice. Nemojte unositi \"px\". Npr. 150"
|
106 |
+
|
107 |
+
#: feedzy-rss-feeds-ui-lang.php:31
|
108 |
+
#: feedzy-rss-feeds-widget.php:112
|
109 |
+
#@ feedzy-rss-feeds
|
110 |
+
msgid "Only display item if title contains specific keyword(s) (comma-separated list/case sensitive)."
|
111 |
+
msgstr "Prikaži stavku samo ako naslov sadrži specifične ključne reči (odvojene zarezima/osetljive na velika i mala slova)."
|
112 |
+
|
113 |
+
#: feedzy-rss-feeds-ui-lang.php:32
|
114 |
+
#@ feedzy-rss-feeds
|
115 |
+
msgid "Do not specify"
|
116 |
+
msgstr "Nemoj određivati"
|
117 |
+
|
118 |
+
#: feedzy-rss-feeds-ui-lang.php:33
|
119 |
+
#@ feedzy-rss-feeds
|
120 |
+
msgid "No"
|
121 |
+
msgstr "Ne"
|
122 |
+
|
123 |
+
#: feedzy-rss-feeds-ui-lang.php:34
|
124 |
+
#@ feedzy-rss-feeds
|
125 |
+
msgid "Yes"
|
126 |
+
msgstr "Da"
|
127 |
+
|
128 |
+
#: feedzy-rss-feeds-ui-lang.php:20
|
129 |
+
#: feedzy-rss-feeds-widget.php:65
|
130 |
+
#@ feedzy-rss-feeds
|
131 |
+
msgid "The feed(s) URL (comma-separated list)."
|
132 |
+
msgstr "URL feed-ova (odvojenih zarezima ako je lista)."
|
133 |
+
|
134 |
+
#: feedzy-rss-feeds-ui-lang.php:22
|
135 |
+
#@ feedzy-rss-feeds
|
136 |
+
msgid "Should we display the RSS title?"
|
137 |
+
msgstr "Treba li da prikažemo RSS naslov?"
|
138 |
+
|
139 |
+
#. translators: plugin header field 'Name'
|
140 |
+
#: feedzy-rss-feed.php:0
|
141 |
+
#@ feedzy-rss-feeds
|
142 |
+
msgid "FEEDZY RSS Feeds by b*web"
|
143 |
+
msgstr "FEEDZY RSS Feeds, autor b*web"
|
144 |
+
|
145 |
+
#. translators: plugin header field 'Description'
|
146 |
+
#: feedzy-rss-feed.php:0
|
147 |
+
#@ feedzy-rss-feeds
|
148 |
+
msgid "FEEDZY RSS Feeds is a small and lightweight plugin. Fast and easy to use, it aggregates RSS feeds into your WordPress site through simple shortcodes."
|
149 |
+
msgstr "FEEDZY RSS Feeds je mali i lagan plugin. Brz i jednostavan za upotrebu, sakuplja RSS feed-ove na vaš WordPress site uz pomoć jednostavnih shortcode-ova."
|
150 |
+
|
151 |
+
#. translators: plugin header field 'Author'
|
152 |
+
#: feedzy-rss-feed.php:0
|
153 |
+
#@ feedzy-rss-feeds
|
154 |
+
msgid "Brice CAPOBIANCO"
|
155 |
+
msgstr "Brice CAPOBIANCO"
|
156 |
+
|
157 |
+
#. translators: plugin header field 'AuthorURI'
|
158 |
+
#: feedzy-rss-feed.php:0
|
159 |
+
#@ feedzy-rss-feeds
|
160 |
+
msgid "http://b-website.com/"
|
161 |
+
msgstr "http://b-website.com/"
|
162 |
+
|
163 |
+
#. translators: plugin header field 'PluginURI'
|
164 |
+
#: feedzy-rss-feed.php:0
|
165 |
+
#@ feedzy-rss-feeds
|
166 |
+
msgid "http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie"
|
167 |
+
msgstr "http://b-website.com/feedzy-rss-feeds-wordpress-plugin-using-simplepie"
|
168 |
+
|
169 |
+
#. translators: plugin header field 'Version'
|
170 |
+
#: feedzy-rss-feed.php:0
|
171 |
+
#@ feedzy-rss-feeds
|
172 |
+
msgid "2.2.1"
|
173 |
+
msgstr ""
|
174 |
+
|
175 |
+
#: feedzy-rss-feed.php:39
|
176 |
+
#@ default
|
177 |
+
msgid "Donate to this plugin »"
|
178 |
+
msgstr ""
|
179 |
+
|
180 |
+
#: feedzy-rss-feeds-shortcode.php:289
|
181 |
+
#@ feedzy-rss-feeds
|
182 |
+
msgid "Posted"
|
183 |
+
msgstr "Objavljeno"
|
184 |
+
|
185 |
+
#: feedzy-rss-feeds-shortcode.php:294
|
186 |
+
#@ feedzy-rss-feeds
|
187 |
+
msgid "by"
|
188 |
+
msgstr "po"
|
189 |
+
|
190 |
+
#: feedzy-rss-feeds-widget.php:18
|
191 |
+
#@ feedzy_wp_widget
|
192 |
+
msgid "Feedzy RSS Feeds"
|
193 |
+
msgstr ""
|
194 |
+
|
195 |
+
#: feedzy-rss-feeds-widget.php:57
|
196 |
+
#@ feedzy-rss-feeds
|
197 |
+
msgid "Widget Title"
|
198 |
+
msgstr "dodatak Naslov"
|
199 |
+
|
200 |
+
#: feedzy-rss-feeds-widget.php:61
|
201 |
+
#@ feedzy-rss-feeds
|
202 |
+
msgid "Intro text"
|
203 |
+
msgstr "Uvodni tekst"
|
204 |
+
|
languages/feedzy-rss-feeds.pot
ADDED
@@ -0,0 +1,459 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Copyright (C) 2017 Themeisle
|
2 |
+
# This file is distributed under the GPL-2.0+.
|
3 |
+
msgid ""
|
4 |
+
msgstr ""
|
5 |
+
"Project-Id-Version: Feedzy RSS Feeds Lite 3.2.1\n"
|
6 |
+
"Report-Msgid-Bugs-To: https://github.com/Codeinwp/feedzy-rss-feeds/issues\n"
|
7 |
+
"POT-Creation-Date: 2017-10-12 09:53:07+00:00\n"
|
8 |
+
"MIME-Version: 1.0\n"
|
9 |
+
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
+
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"PO-Revision-Date: 2017-MO-DA HO:MI+ZONE\n"
|
12 |
+
"Last-Translator: Themeisle Translate Team <friends@themeisle.com>\n"
|
13 |
+
"Language-Team: Themeisle Translate <friends@themeisle.com>\n"
|
14 |
+
"X-Generator: grunt-wp-i18n 0.5.4\n"
|
15 |
+
"X-Poedit-KeywordsList: "
|
16 |
+
"__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
|
17 |
+
"attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
|
18 |
+
"Language: en\n"
|
19 |
+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
20 |
+
"X-Poedit-Country: United States\n"
|
21 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
22 |
+
"X-Poedit-Basepath: ../\n"
|
23 |
+
"X-Poedit-SearchPath-0: .\n"
|
24 |
+
"X-Poedit-Bookmarks: \n"
|
25 |
+
"X-Textdomain-Support: yes\n"
|
26 |
+
|
27 |
+
#: form/form.php:44
|
28 |
+
msgid "Premium"
|
29 |
+
msgstr ""
|
30 |
+
|
31 |
+
#: includes/abstract/feedzy-rss-feeds-admin-abstract.php:57
|
32 |
+
msgid "Sorry, this feed is currently unavailable or does not exists anymore."
|
33 |
+
msgstr ""
|
34 |
+
|
35 |
+
#: includes/abstract/feedzy-rss-feeds-admin-abstract.php:426
|
36 |
+
#: includes/abstract/feedzy-rss-feeds-admin-abstract.php:433
|
37 |
+
msgid "Feed URL: %s not valid and removed from fetch."
|
38 |
+
msgstr ""
|
39 |
+
|
40 |
+
#: includes/abstract/feedzy-rss-feeds-admin-abstract.php:717
|
41 |
+
msgid "by"
|
42 |
+
msgstr ""
|
43 |
+
|
44 |
+
#: includes/abstract/feedzy-rss-feeds-admin-abstract.php:723
|
45 |
+
msgid "on"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: includes/abstract/feedzy-rss-feeds-admin-abstract.php:725
|
49 |
+
msgid "at"
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
+
#: includes/admin/feedzy-rss-feeds-admin.php:128
|
53 |
+
msgid "Feed Categories"
|
54 |
+
msgstr ""
|
55 |
+
|
56 |
+
#: includes/admin/feedzy-rss-feeds-admin.php:129
|
57 |
+
msgid "Feed Category"
|
58 |
+
msgstr ""
|
59 |
+
|
60 |
+
#: includes/admin/feedzy-rss-feeds-admin.php:130
|
61 |
+
#: includes/admin/feedzy-rss-feeds-admin.php:131
|
62 |
+
msgid "Add Category"
|
63 |
+
msgstr ""
|
64 |
+
|
65 |
+
#: includes/admin/feedzy-rss-feeds-admin.php:132
|
66 |
+
msgid "Edit Category"
|
67 |
+
msgstr ""
|
68 |
+
|
69 |
+
#: includes/admin/feedzy-rss-feeds-admin.php:133
|
70 |
+
msgid "New Feed Category"
|
71 |
+
msgstr ""
|
72 |
+
|
73 |
+
#: includes/admin/feedzy-rss-feeds-admin.php:134
|
74 |
+
msgid "View Category"
|
75 |
+
msgstr ""
|
76 |
+
|
77 |
+
#: includes/admin/feedzy-rss-feeds-admin.php:135
|
78 |
+
msgid "Search Category"
|
79 |
+
msgstr ""
|
80 |
+
|
81 |
+
#: includes/admin/feedzy-rss-feeds-admin.php:136
|
82 |
+
msgid "No categories found"
|
83 |
+
msgstr ""
|
84 |
+
|
85 |
+
#: includes/admin/feedzy-rss-feeds-admin.php:137
|
86 |
+
msgid "No categories in the trash"
|
87 |
+
msgstr ""
|
88 |
+
|
89 |
+
#: includes/admin/feedzy-rss-feeds-admin.php:167
|
90 |
+
msgid "Category Feeds"
|
91 |
+
msgstr ""
|
92 |
+
|
93 |
+
#: includes/admin/feedzy-rss-feeds-admin.php:173
|
94 |
+
msgid "Increase your social media presence"
|
95 |
+
msgstr ""
|
96 |
+
|
97 |
+
#: includes/admin/feedzy-rss-feeds-admin.php:203
|
98 |
+
msgid "Place your URL's here followed by a comma."
|
99 |
+
msgstr ""
|
100 |
+
|
101 |
+
#: includes/admin/feedzy-rss-feeds-admin.php:264
|
102 |
+
msgid "Category Title"
|
103 |
+
msgstr ""
|
104 |
+
|
105 |
+
#: includes/admin/feedzy-rss-feeds-admin.php:265
|
106 |
+
#: includes/admin/feedzy-rss-feeds-admin.php:268
|
107 |
+
msgid "Slug"
|
108 |
+
msgstr ""
|
109 |
+
|
110 |
+
#: includes/admin/feedzy-rss-feeds-admin.php:292
|
111 |
+
msgid "Undefined"
|
112 |
+
msgstr ""
|
113 |
+
|
114 |
+
#: includes/admin/feedzy-rss-feeds-admin.php:317
|
115 |
+
msgid "Documentation and examples"
|
116 |
+
msgstr ""
|
117 |
+
|
118 |
+
#: includes/admin/feedzy-rss-feeds-admin.php:318
|
119 |
+
msgid "More Plugins"
|
120 |
+
msgstr ""
|
121 |
+
|
122 |
+
#: includes/admin/feedzy-rss-feeds-admin.php:318
|
123 |
+
#: includes/admin/feedzy-rss-feeds-admin.php:337
|
124 |
+
msgid "More Features"
|
125 |
+
msgstr ""
|
126 |
+
|
127 |
+
#: includes/admin/feedzy-rss-feeds-admin.php:334
|
128 |
+
#: includes/admin/feedzy-wp-widget.php:40
|
129 |
+
msgid "Feedzy RSS Feeds"
|
130 |
+
msgstr ""
|
131 |
+
|
132 |
+
#: includes/admin/feedzy-rss-feeds-admin.php:334
|
133 |
+
msgid "Feedzy RSS"
|
134 |
+
msgstr ""
|
135 |
+
|
136 |
+
#: includes/admin/feedzy-rss-feeds-admin.php:347
|
137 |
+
msgid "Import Posts"
|
138 |
+
msgstr ""
|
139 |
+
|
140 |
+
#: includes/admin/feedzy-rss-feeds-admin.php:351
|
141 |
+
msgid "Settings"
|
142 |
+
msgstr ""
|
143 |
+
|
144 |
+
#: includes/admin/feedzy-rss-feeds-admin.php:366
|
145 |
+
msgid "Your settings were saved."
|
146 |
+
msgstr ""
|
147 |
+
|
148 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:52
|
149 |
+
msgid "Feedzy Lite"
|
150 |
+
msgstr ""
|
151 |
+
|
152 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:53
|
153 |
+
msgid "Insert Feedzy RSS Feeds Shortcode"
|
154 |
+
msgstr ""
|
155 |
+
|
156 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:54
|
157 |
+
msgid "Use Image"
|
158 |
+
msgstr ""
|
159 |
+
|
160 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:55
|
161 |
+
msgid "Insert Shortcode"
|
162 |
+
msgstr ""
|
163 |
+
|
164 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:56
|
165 |
+
msgid "Cancel"
|
166 |
+
msgstr ""
|
167 |
+
|
168 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:57
|
169 |
+
msgid "Get Feedzy RSS Feeds Premium"
|
170 |
+
msgstr ""
|
171 |
+
|
172 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:93
|
173 |
+
msgid "Feed Source"
|
174 |
+
msgstr ""
|
175 |
+
|
176 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:96
|
177 |
+
msgid "The feed(s) URL (comma-separated list)."
|
178 |
+
msgstr ""
|
179 |
+
|
180 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:96
|
181 |
+
msgid "Check feed before insert."
|
182 |
+
msgstr ""
|
183 |
+
|
184 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:97
|
185 |
+
msgid "Feed URL"
|
186 |
+
msgstr ""
|
187 |
+
|
188 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:102
|
189 |
+
msgid "Number of items to display."
|
190 |
+
msgstr ""
|
191 |
+
|
192 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:103
|
193 |
+
msgid "(eg: 5)"
|
194 |
+
msgstr ""
|
195 |
+
|
196 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:108
|
197 |
+
msgid "Should we display the RSS title?"
|
198 |
+
msgstr ""
|
199 |
+
|
200 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:113
|
201 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:202
|
202 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:217
|
203 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:261
|
204 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:298
|
205 |
+
msgid "Yes"
|
206 |
+
msgstr ""
|
207 |
+
|
208 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:117
|
209 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:206
|
210 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:221
|
211 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:265
|
212 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:302
|
213 |
+
msgid "No"
|
214 |
+
msgstr ""
|
215 |
+
|
216 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:123
|
217 |
+
msgid "For how long we will cache the feed results."
|
218 |
+
msgstr ""
|
219 |
+
|
220 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:124
|
221 |
+
msgid "(eg: 1_days, defaults: 12_hours)"
|
222 |
+
msgstr ""
|
223 |
+
|
224 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:129
|
225 |
+
msgid "Hour"
|
226 |
+
msgstr ""
|
227 |
+
|
228 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:133
|
229 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:137
|
230 |
+
msgid "Hours"
|
231 |
+
msgstr ""
|
232 |
+
|
233 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:141
|
234 |
+
msgid "Day"
|
235 |
+
msgstr ""
|
236 |
+
|
237 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:145
|
238 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:149
|
239 |
+
msgid "Days"
|
240 |
+
msgstr ""
|
241 |
+
|
242 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:157
|
243 |
+
msgid "Item Options"
|
244 |
+
msgstr ""
|
245 |
+
|
246 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:160
|
247 |
+
msgid "Links may be opened in the same window or a new tab."
|
248 |
+
msgstr ""
|
249 |
+
|
250 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:165
|
251 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:257
|
252 |
+
msgid "Auto"
|
253 |
+
msgstr ""
|
254 |
+
|
255 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:169
|
256 |
+
msgid "_blank"
|
257 |
+
msgstr ""
|
258 |
+
|
259 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:173
|
260 |
+
msgid "_self"
|
261 |
+
msgstr ""
|
262 |
+
|
263 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:177
|
264 |
+
msgid "_parent"
|
265 |
+
msgstr ""
|
266 |
+
|
267 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:181
|
268 |
+
msgid "_top"
|
269 |
+
msgstr ""
|
270 |
+
|
271 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:185
|
272 |
+
msgid "framename"
|
273 |
+
msgstr ""
|
274 |
+
|
275 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:191
|
276 |
+
msgid "Trim the title of the item after X characters."
|
277 |
+
msgstr ""
|
278 |
+
|
279 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:192
|
280 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:229
|
281 |
+
msgid "(eg: 160)"
|
282 |
+
msgstr ""
|
283 |
+
|
284 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:197
|
285 |
+
msgid "Should we display the date of publication and the author name?"
|
286 |
+
msgstr ""
|
287 |
+
|
288 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:212
|
289 |
+
msgid "Should we display a description (abstract) of the retrieved item?"
|
290 |
+
msgstr ""
|
291 |
+
|
292 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:227
|
293 |
+
msgid "Crop description (summary) of the element after X characters."
|
294 |
+
msgstr ""
|
295 |
+
|
296 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:233
|
297 |
+
msgid ""
|
298 |
+
"Only display item if title contains specific keyword(s) (comma-separated "
|
299 |
+
"list/case sensitive)."
|
300 |
+
msgstr ""
|
301 |
+
|
302 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:234
|
303 |
+
msgid "(eg: news, sports etc.)"
|
304 |
+
msgstr ""
|
305 |
+
|
306 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:240
|
307 |
+
msgid ""
|
308 |
+
"Exclude items if title or content contains specific keyword(s) "
|
309 |
+
"(comma-separated list/case sensitive). "
|
310 |
+
msgstr ""
|
311 |
+
|
312 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:241
|
313 |
+
msgid "(eg: politics, gossip etc.)"
|
314 |
+
msgstr ""
|
315 |
+
|
316 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:249
|
317 |
+
msgid "Item Image Options"
|
318 |
+
msgstr ""
|
319 |
+
|
320 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:252
|
321 |
+
msgid "Should we display the first image of the content if it is available?"
|
322 |
+
msgstr ""
|
323 |
+
|
324 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:271
|
325 |
+
msgid "Default thumbnail URL if no image is found."
|
326 |
+
msgstr ""
|
327 |
+
|
328 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:272
|
329 |
+
msgid "Image URL"
|
330 |
+
msgstr ""
|
331 |
+
|
332 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:276
|
333 |
+
msgid "Select from Gallery"
|
334 |
+
msgstr ""
|
335 |
+
|
336 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:280
|
337 |
+
msgid "Thumbnails dimension. Do not include \"px\". Eg: 150"
|
338 |
+
msgstr ""
|
339 |
+
|
340 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:281
|
341 |
+
msgid "(eg: 150)"
|
342 |
+
msgstr ""
|
343 |
+
|
344 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:288
|
345 |
+
msgid "PRO Options"
|
346 |
+
msgstr ""
|
347 |
+
|
348 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:289
|
349 |
+
msgid ""
|
350 |
+
"Get access to more options and customizations with full version of Feedzy "
|
351 |
+
"RSS Feeds . Use existing templates or extend them and make them your own."
|
352 |
+
msgstr ""
|
353 |
+
|
354 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:289
|
355 |
+
msgid "See more features of Feedzy RSS Feeds "
|
356 |
+
msgstr ""
|
357 |
+
|
358 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:292
|
359 |
+
msgid "Should we display the price from the feed if it is available?"
|
360 |
+
msgstr ""
|
361 |
+
|
362 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:308
|
363 |
+
msgid "Referral URL parameters (w/o \"?\")."
|
364 |
+
msgstr ""
|
365 |
+
|
366 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:309
|
367 |
+
msgid "(eg. promo_code=feedzy_is_awesome)"
|
368 |
+
msgstr ""
|
369 |
+
|
370 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:315
|
371 |
+
msgid "How many columns we should use to display the feed items"
|
372 |
+
msgstr ""
|
373 |
+
|
374 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:316
|
375 |
+
msgid "(eg. 1, 2, ..., 6)"
|
376 |
+
msgstr ""
|
377 |
+
|
378 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:322
|
379 |
+
msgid "Template to use when displaying the feed."
|
380 |
+
msgstr ""
|
381 |
+
|
382 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:328
|
383 |
+
msgid "Default"
|
384 |
+
msgstr ""
|
385 |
+
|
386 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:332
|
387 |
+
msgid "Style 1"
|
388 |
+
msgstr ""
|
389 |
+
|
390 |
+
#: includes/admin/feedzy-rss-feeds-ui-lang.php:336
|
391 |
+
msgid "Style 2"
|
392 |
+
msgstr ""
|
393 |
+
|
394 |
+
#: includes/admin/feedzy-wp-widget.php:83
|
395 |
+
msgid "Widget Title"
|
396 |
+
msgstr ""
|
397 |
+
|
398 |
+
#: includes/admin/feedzy-wp-widget.php:87
|
399 |
+
msgid "Intro text"
|
400 |
+
msgstr ""
|
401 |
+
|
402 |
+
#: includes/layouts/settings.php:12 includes/layouts/settings.php:45
|
403 |
+
msgid "Headers"
|
404 |
+
msgstr ""
|
405 |
+
|
406 |
+
#: includes/layouts/settings.php:14
|
407 |
+
msgid "Proxy"
|
408 |
+
msgstr ""
|
409 |
+
|
410 |
+
#: includes/layouts/settings.php:47
|
411 |
+
msgid "User Agent to use when accessing the feed"
|
412 |
+
msgstr ""
|
413 |
+
|
414 |
+
#: includes/layouts/settings.php:57
|
415 |
+
msgid "Proxy Settings"
|
416 |
+
msgstr ""
|
417 |
+
|
418 |
+
#: includes/layouts/settings.php:59
|
419 |
+
msgid "Host"
|
420 |
+
msgstr ""
|
421 |
+
|
422 |
+
#: includes/layouts/settings.php:67
|
423 |
+
msgid "Port"
|
424 |
+
msgstr ""
|
425 |
+
|
426 |
+
#: includes/layouts/settings.php:75
|
427 |
+
msgid "Username"
|
428 |
+
msgstr ""
|
429 |
+
|
430 |
+
#: includes/layouts/settings.php:83
|
431 |
+
msgid "Password"
|
432 |
+
msgstr ""
|
433 |
+
|
434 |
+
#: includes/layouts/settings.php:110
|
435 |
+
msgid "Save"
|
436 |
+
msgstr ""
|
437 |
+
|
438 |
+
#. Plugin Name of the plugin/theme
|
439 |
+
msgid "Feedzy RSS Feeds Lite"
|
440 |
+
msgstr ""
|
441 |
+
|
442 |
+
#. Plugin URI of the plugin/theme
|
443 |
+
msgid "https://themeisle.com/plugins/feedzy-rss-feeds-lite/"
|
444 |
+
msgstr ""
|
445 |
+
|
446 |
+
#. Description of the plugin/theme
|
447 |
+
msgid ""
|
448 |
+
"A small and lightweight RSS aggregator plugin. Fast and very easy to use, "
|
449 |
+
"it allows you to aggregate multiple RSS feeds into your WordPress site "
|
450 |
+
"through fully customizable shortcodes & widgets."
|
451 |
+
msgstr ""
|
452 |
+
|
453 |
+
#. Author of the plugin/theme
|
454 |
+
msgid "Themeisle"
|
455 |
+
msgstr ""
|
456 |
+
|
457 |
+
#. Author URI of the plugin/theme
|
458 |
+
msgid "http://themeisle.com"
|
459 |
+
msgstr ""
|
languages/login-customizer.pot
DELETED
@@ -1,263 +0,0 @@
|
|
1 |
-
# Copyright (C) 2017 Hardeep Asrani
|
2 |
-
# This file is distributed under the same license as the Custom Login Page Customizer package.
|
3 |
-
msgid ""
|
4 |
-
msgstr ""
|
5 |
-
"Project-Id-Version: Custom Login Page Customizer 1.2.0\n"
|
6 |
-
"Report-Msgid-Bugs-To: https://github.com/Codeinwp/login-customizer/issues\n"
|
7 |
-
"POT-Creation-Date: 2017-10-16 09:40:07+00:00\n"
|
8 |
-
"MIME-Version: 1.0\n"
|
9 |
-
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
-
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"PO-Revision-Date: 2017-MO-DA HO:MI+ZONE\n"
|
12 |
-
"Last-Translator: Themeisle Translate Team <friends@themeisle.com>\n"
|
13 |
-
"Language-Team: Themeisle Translate <friends@themeisle.com>\n"
|
14 |
-
"X-Generator: grunt-wp-i18n 0.5.4\n"
|
15 |
-
"X-Poedit-KeywordsList: "
|
16 |
-
"__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
|
17 |
-
"attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
|
18 |
-
"Language: en\n"
|
19 |
-
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
20 |
-
"X-Poedit-Country: United States\n"
|
21 |
-
"X-Poedit-SourceCharset: UTF-8\n"
|
22 |
-
"X-Poedit-Basepath: ../\n"
|
23 |
-
"X-Poedit-SearchPath-0: .\n"
|
24 |
-
"X-Poedit-Bookmarks: \n"
|
25 |
-
"X-Textdomain-Support: yes\n"
|
26 |
-
|
27 |
-
#: customizer.php:9 option-panel.php:3 option-panel.php:17
|
28 |
-
msgid "Login Customizer"
|
29 |
-
msgstr ""
|
30 |
-
|
31 |
-
#: customizer.php:10
|
32 |
-
msgid ""
|
33 |
-
"This section allows you to customize the login page of your "
|
34 |
-
"website.<br/>Login Customizer by <a target=\"_blank\" rel=\"nofollow\" "
|
35 |
-
"href=\"https://themeisle.com\">ThemeIsle</a>"
|
36 |
-
msgstr ""
|
37 |
-
|
38 |
-
#: customizer.php:17
|
39 |
-
msgid "Logo"
|
40 |
-
msgstr ""
|
41 |
-
|
42 |
-
#: customizer.php:25
|
43 |
-
msgid "Background"
|
44 |
-
msgstr ""
|
45 |
-
|
46 |
-
#: customizer.php:33
|
47 |
-
msgid "Form Background"
|
48 |
-
msgstr ""
|
49 |
-
|
50 |
-
#: customizer.php:41
|
51 |
-
msgid "Form Styling"
|
52 |
-
msgstr ""
|
53 |
-
|
54 |
-
#: customizer.php:49
|
55 |
-
msgid "Fields Styling"
|
56 |
-
msgstr ""
|
57 |
-
|
58 |
-
#: customizer.php:57
|
59 |
-
msgid "Button Styling"
|
60 |
-
msgstr ""
|
61 |
-
|
62 |
-
#: customizer.php:65
|
63 |
-
msgid "Other"
|
64 |
-
msgstr ""
|
65 |
-
|
66 |
-
#: customizer.php:73
|
67 |
-
msgid "Security"
|
68 |
-
msgstr ""
|
69 |
-
|
70 |
-
#: customizer.php:88
|
71 |
-
msgid "Login Logo"
|
72 |
-
msgstr ""
|
73 |
-
|
74 |
-
#: customizer.php:106
|
75 |
-
msgid "Logo Width"
|
76 |
-
msgstr ""
|
77 |
-
|
78 |
-
#: customizer.php:123
|
79 |
-
msgid "Logo Height"
|
80 |
-
msgstr ""
|
81 |
-
|
82 |
-
#: customizer.php:140
|
83 |
-
msgid "Padding Bottom"
|
84 |
-
msgstr ""
|
85 |
-
|
86 |
-
#: customizer.php:157 customizer.php:210
|
87 |
-
msgid "Background Image"
|
88 |
-
msgstr ""
|
89 |
-
|
90 |
-
#: customizer.php:176 customizer.php:229
|
91 |
-
msgid "Background Color"
|
92 |
-
msgstr ""
|
93 |
-
|
94 |
-
#: customizer.php:193
|
95 |
-
msgid "Background Size"
|
96 |
-
msgstr ""
|
97 |
-
|
98 |
-
#: customizer.php:247
|
99 |
-
msgid "Width"
|
100 |
-
msgstr ""
|
101 |
-
|
102 |
-
#: customizer.php:264
|
103 |
-
msgid "Height"
|
104 |
-
msgstr ""
|
105 |
-
|
106 |
-
#: customizer.php:281
|
107 |
-
msgid "Padding"
|
108 |
-
msgstr ""
|
109 |
-
|
110 |
-
#: customizer.php:297
|
111 |
-
msgid "Border (Example: 2px dotted black) "
|
112 |
-
msgstr ""
|
113 |
-
|
114 |
-
#: customizer.php:314
|
115 |
-
msgid "Input Field Width"
|
116 |
-
msgstr ""
|
117 |
-
|
118 |
-
#: customizer.php:331
|
119 |
-
msgid "Input Field Margin"
|
120 |
-
msgstr ""
|
121 |
-
|
122 |
-
#: customizer.php:349
|
123 |
-
msgid "Input Field Background"
|
124 |
-
msgstr ""
|
125 |
-
|
126 |
-
#: customizer.php:368
|
127 |
-
msgid "Input Field Color"
|
128 |
-
msgstr ""
|
129 |
-
|
130 |
-
#: customizer.php:387
|
131 |
-
msgid "Label Color"
|
132 |
-
msgstr ""
|
133 |
-
|
134 |
-
#: customizer.php:406
|
135 |
-
msgid "Button Background"
|
136 |
-
msgstr ""
|
137 |
-
|
138 |
-
#: customizer.php:425
|
139 |
-
msgid "Button Border"
|
140 |
-
msgstr ""
|
141 |
-
|
142 |
-
#: customizer.php:444
|
143 |
-
msgid "Button Background (Hover)"
|
144 |
-
msgstr ""
|
145 |
-
|
146 |
-
#: customizer.php:463
|
147 |
-
msgid "Button Border (Hover)"
|
148 |
-
msgstr ""
|
149 |
-
|
150 |
-
#: customizer.php:482
|
151 |
-
msgid "Button Box Shadow"
|
152 |
-
msgstr ""
|
153 |
-
|
154 |
-
#: customizer.php:501
|
155 |
-
msgid "Button Color"
|
156 |
-
msgstr ""
|
157 |
-
|
158 |
-
#: customizer.php:520
|
159 |
-
msgid "Text Color"
|
160 |
-
msgstr ""
|
161 |
-
|
162 |
-
#: customizer.php:539
|
163 |
-
msgid "Text Color (Hover)"
|
164 |
-
msgstr ""
|
165 |
-
|
166 |
-
#: customizer.php:556
|
167 |
-
msgid "Custom CSS"
|
168 |
-
msgstr ""
|
169 |
-
|
170 |
-
#: login-customizer.php:25
|
171 |
-
msgid ""
|
172 |
-
"<p class=\"logincust_pro_text\">You need to buy the <a "
|
173 |
-
"href=\"http://themeisle.com/plugins/custom-login-customizer-security-addon/\""
|
174 |
-
" target=\"_blank\">SECURITY ADDON</a> to have this options. </p>"
|
175 |
-
msgstr ""
|
176 |
-
|
177 |
-
#: option-panel.php:18
|
178 |
-
msgid "Howdy!"
|
179 |
-
msgstr ""
|
180 |
-
|
181 |
-
#: option-panel.php:19
|
182 |
-
msgid ""
|
183 |
-
"Login Customizer plugin allows you to easily customize your login page "
|
184 |
-
"straight from your WordPress Customizer! You can preview your changes "
|
185 |
-
"before you save them! Awesome, right?"
|
186 |
-
msgstr ""
|
187 |
-
|
188 |
-
#: option-panel.php:20
|
189 |
-
msgid "In Customizer, navigate to Login Customizer"
|
190 |
-
msgstr ""
|
191 |
-
|
192 |
-
#: option-panel.php:21
|
193 |
-
msgid "Start Customizing!"
|
194 |
-
msgstr ""
|
195 |
-
|
196 |
-
#: option-panel.php:22
|
197 |
-
msgid "Credits/Support (All the unwanted crap)"
|
198 |
-
msgstr ""
|
199 |
-
|
200 |
-
#: option-panel.php:23
|
201 |
-
msgid ""
|
202 |
-
"If you find any issues or if you want to contribute, then please free to "
|
203 |
-
"drop me a mail at"
|
204 |
-
msgstr ""
|
205 |
-
|
206 |
-
#: option-panel.php:23
|
207 |
-
msgid "this link"
|
208 |
-
msgstr ""
|
209 |
-
|
210 |
-
#: option-panel.php:24
|
211 |
-
msgid "Thanks for using this plugin. Don not forget to leave a review."
|
212 |
-
msgstr ""
|
213 |
-
|
214 |
-
#: option-panel.php:25
|
215 |
-
msgid "ThemeIsle :)"
|
216 |
-
msgstr ""
|
217 |
-
|
218 |
-
#: option-panel.php:27 option-panel.php:62
|
219 |
-
msgid "Subscribe"
|
220 |
-
msgstr ""
|
221 |
-
|
222 |
-
#: option-panel.php:51 option-panel.php:89
|
223 |
-
msgid ""
|
224 |
-
"Our free, 4-lesson course on how to make your WordPress site run incredibly "
|
225 |
-
"fast is barely waiting for its students. Ready to learn how to reduce your "
|
226 |
-
"loading times by half? Come and join the 1st lesson here!"
|
227 |
-
msgstr ""
|
228 |
-
|
229 |
-
#: option-panel.php:53
|
230 |
-
msgid ""
|
231 |
-
"Thank you for subscribing! You have been added to the mailing list and will "
|
232 |
-
"receive the next email information in the coming weeks. If you ever wish to "
|
233 |
-
"unsubscribe, simply use the Unsubscribe link included in each newsletter."
|
234 |
-
msgstr ""
|
235 |
-
|
236 |
-
#: option-panel.php:91
|
237 |
-
msgid ""
|
238 |
-
"Thank you for subscribing! You have been added to the mailing list and will "
|
239 |
-
"receive the next email information in the coming weeks. If you ever wish to "
|
240 |
-
"unsubscribe, simply use the Unsubscribe link included in each newsletter."
|
241 |
-
msgstr ""
|
242 |
-
|
243 |
-
#. Plugin Name of the plugin/theme
|
244 |
-
msgid "Custom Login Page Customizer"
|
245 |
-
msgstr ""
|
246 |
-
|
247 |
-
#. Plugin URI of the plugin/theme
|
248 |
-
msgid "https://themeisle.com/plugins/login-customizer/"
|
249 |
-
msgstr ""
|
250 |
-
|
251 |
-
#. Description of the plugin/theme
|
252 |
-
msgid ""
|
253 |
-
"Custom Login Customizer plugin allows you to easily customize your login "
|
254 |
-
"page straight from your WordPress Customizer! Awesome, right?"
|
255 |
-
msgstr ""
|
256 |
-
|
257 |
-
#. Author of the plugin/theme
|
258 |
-
msgid "Hardeep Asrani"
|
259 |
-
msgstr ""
|
260 |
-
|
261 |
-
#. Author URI of the plugin/theme
|
262 |
-
msgid "https://themeisle.com/"
|
263 |
-
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
login-customizer.php
DELETED
@@ -1,52 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Plugin loader
|
4 |
-
*
|
5 |
-
* @package LOGINCUST
|
6 |
-
* @author Themeisle
|
7 |
-
* @since 1.0.0
|
8 |
-
*/
|
9 |
-
|
10 |
-
/**
|
11 |
-
* Plugin Name: Custom Login Page Customizer
|
12 |
-
* Plugin URI: https://themeisle.com/plugins/login-customizer/
|
13 |
-
* Description: Custom Login Customizer plugin allows you to easily customize your login page straight from your WordPress Customizer! Awesome, right?
|
14 |
-
* Author: Hardeep Asrani
|
15 |
-
* Author URI: https://themeisle.com/
|
16 |
-
* Version: 1.2.0
|
17 |
-
* WordPress Available: yes
|
18 |
-
* Requires License: no
|
19 |
-
*/
|
20 |
-
|
21 |
-
define( 'LOGINCUST_VERSION', '1.2.0' );
|
22 |
-
define( 'LOGINCUST_FREE_PATH', plugin_dir_path( __FILE__ ) );
|
23 |
-
define( 'LOGINCUST_FREE_URL', plugin_dir_url( __FILE__ ) );
|
24 |
-
if ( ! defined( 'login-customizer' ) ) {
|
25 |
-
define( 'LOGINCUST_TEXTDOMAIN', 'login-customizer' );
|
26 |
-
}
|
27 |
-
define( 'LOGINCUST_PRO_TEXT', __( '<p class="logincust_pro_text">You need to buy the <a href="http://themeisle.com/plugins/custom-login-customizer-security-addon/" target="_blank">SECURITY ADDON</a> to have this options. </p>', 'login-customizer' ) );
|
28 |
-
|
29 |
-
/**
|
30 |
-
* Check if security addon is active
|
31 |
-
*
|
32 |
-
* @package LOGINCUST
|
33 |
-
* @since 1.0.2
|
34 |
-
* @version 1.0.0
|
35 |
-
* @return bool
|
36 |
-
*/
|
37 |
-
function logincust_check_security() {
|
38 |
-
return ( defined( 'LOGINCUST_SECURITY_VERSION' ) );
|
39 |
-
}
|
40 |
-
|
41 |
-
add_filter( 'themeisle_sdk_products', 'login_customizer_register_sdk', 10, 1 );
|
42 |
-
|
43 |
-
function login_customizer_register_sdk( $products ) {
|
44 |
-
$products[] = __FILE__;
|
45 |
-
|
46 |
-
return $products;
|
47 |
-
}
|
48 |
-
|
49 |
-
include( LOGINCUST_FREE_PATH . 'vendor/autoload.php' );
|
50 |
-
include( LOGINCUST_FREE_PATH . 'customizer.php' );
|
51 |
-
include( LOGINCUST_FREE_PATH . 'option-panel.php' );
|
52 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mailin.php
DELETED
@@ -1,868 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* SendinBlue REST client
|
5 |
-
*/
|
6 |
-
|
7 |
-
class Mailin {
|
8 |
-
|
9 |
-
public $api_key;
|
10 |
-
public $base_url;
|
11 |
-
public $curl_opts = array();
|
12 |
-
public function __construct( $base_url, $api_key ) {
|
13 |
-
if ( ! function_exists( 'curl_init' ) ) {
|
14 |
-
throw new Exception( 'Mailin requires CURL module' );
|
15 |
-
}
|
16 |
-
$this->base_url = $base_url;
|
17 |
-
$this->api_key = $api_key;
|
18 |
-
}
|
19 |
-
/**
|
20 |
-
* Do CURL request with authorization
|
21 |
-
*/
|
22 |
-
private function do_request( $resource, $method, $input ) {
|
23 |
-
$called_url = $this->base_url . '/' . $resource;
|
24 |
-
$ch = curl_init( $called_url );
|
25 |
-
$auth_header = 'api-key:' . $this->api_key;
|
26 |
-
$content_header = 'Content-Type:application/json';
|
27 |
-
if ( strtoupper( substr( PHP_OS, 0, 3 ) ) === 'WIN' ) {
|
28 |
-
// Windows only over-ride
|
29 |
-
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
|
30 |
-
}
|
31 |
-
curl_setopt( $ch, CURLOPT_HTTPHEADER, array($auth_header, $content_header) );
|
32 |
-
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1 );
|
33 |
-
curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, $method );
|
34 |
-
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
|
35 |
-
curl_setopt( $ch, CURLOPT_HEADER, 0 );
|
36 |
-
curl_setopt( $ch, CURLOPT_POSTFIELDS, $input );
|
37 |
-
$data = curl_exec( $ch );
|
38 |
-
if ( curl_errno( $ch ) ) {
|
39 |
-
echo 'Curl error: ' . curl_error( $ch ) . '\n';
|
40 |
-
}
|
41 |
-
curl_close( $ch );
|
42 |
-
return json_decode( $data,true );
|
43 |
-
}
|
44 |
-
public function get( $resource, $input ) {
|
45 |
-
return $this->do_request( $resource,'GET',$input );
|
46 |
-
}
|
47 |
-
public function put( $resource, $input ) {
|
48 |
-
return $this->do_request( $resource,'PUT',$input );
|
49 |
-
}
|
50 |
-
public function post( $resource, $input ) {
|
51 |
-
return $this->do_request( $resource,'POST',$input );
|
52 |
-
}
|
53 |
-
public function delete( $resource, $input ) {
|
54 |
-
return $this->do_request( $resource,'DELETE',$input );
|
55 |
-
}
|
56 |
-
|
57 |
-
/*
|
58 |
-
Get Account.
|
59 |
-
No input required
|
60 |
-
*/
|
61 |
-
public function get_account() {
|
62 |
-
return $this->get( 'account','' );
|
63 |
-
}
|
64 |
-
|
65 |
-
/*
|
66 |
-
Get SMTP details.
|
67 |
-
No input required
|
68 |
-
*/
|
69 |
-
public function get_smtp_details() {
|
70 |
-
return $this->get( 'account/smtpdetail','' );
|
71 |
-
}
|
72 |
-
|
73 |
-
/*
|
74 |
-
Create Child Account.
|
75 |
-
@param {Array} data contains php array with key value pair.
|
76 |
-
@options data {String} child_email: Email address of Reseller child [Mandatory]
|
77 |
-
@options data {String} password: Password of Reseller child to login [Mandatory]
|
78 |
-
@options data {String} company_org: Name of Reseller child’s company [Mandatory]
|
79 |
-
@options data {String} first_name: First name of Reseller child [Mandatory]
|
80 |
-
@options data {String} last_name: Last name of Reseller child [Mandatory]
|
81 |
-
@options data {Array} credits: Number of email & sms credits respectively, which will be assigned to the Reseller child’s account [Optional]
|
82 |
-
- email_credit {Integer} number of email credits
|
83 |
-
- sms_credit {Integer} Number of sms credts
|
84 |
-
@options data {Array} associate_ip: Associate dedicated IPs to reseller child. You can use commas to separate multiple IPs [Optional]
|
85 |
-
*/
|
86 |
-
public function create_child_account( $data ) {
|
87 |
-
return $this->post( 'account',json_encode( $data ) );
|
88 |
-
}
|
89 |
-
|
90 |
-
/*
|
91 |
-
Update Child Account.
|
92 |
-
@param {Array} data contains php array with key value pair.
|
93 |
-
@options data {String} auth_key: 16 character authorization key of Reseller child to be modified [Mandatory]
|
94 |
-
@options data {String} company_org: Name of Reseller child’s company [Optional]
|
95 |
-
@options data {String} first_name: First name of Reseller child [Optional]
|
96 |
-
@options data {String} last_name: Last name of Reseller child [Optional]
|
97 |
-
@options data {String} password: Password of Reseller child to login [Optional]
|
98 |
-
@options data {Array} associate_ip: Associate dedicated IPs to reseller child. You can use commas to separate multiple IPs [Optional]
|
99 |
-
@options data {Array} disassociate_ip: Disassociate dedicated IPs from reseller child. You can use commas to separate multiple IPs [Optional]
|
100 |
-
*/
|
101 |
-
public function update_child_account( $data ) {
|
102 |
-
return $this->put( 'account',json_encode( $data ) );
|
103 |
-
}
|
104 |
-
|
105 |
-
/*
|
106 |
-
Delete Child Account.
|
107 |
-
@param {Array} data contains php array with key value pair.
|
108 |
-
@options data {String} auth_key: 16 character authorization key of Reseller child to be deleted [Mandatory]
|
109 |
-
*/
|
110 |
-
public function delete_child_account( $data ) {
|
111 |
-
return $this->delete( 'account/' . $data['auth_key'],'' );
|
112 |
-
}
|
113 |
-
|
114 |
-
/*
|
115 |
-
Get Reseller child Account.
|
116 |
-
@param {Array} data contains php array with key value pair.
|
117 |
-
@options data {String} auth_key: 16 character authorization key of Reseller child. Example : To get the details of more than one child account, use, {"key1":"abC01De2fGHI3jkL","key2":"mnO45Pq6rSTU7vWX"} [Mandatory]
|
118 |
-
*/
|
119 |
-
public function get_reseller_child( $data ) {
|
120 |
-
return $this->post( 'account/getchildv2',json_encode( $data ) );
|
121 |
-
}
|
122 |
-
|
123 |
-
/*
|
124 |
-
Add/Remove Reseller child's Email/Sms credits.
|
125 |
-
@param {Array} data contains php array with key value pair.
|
126 |
-
@options data {String} auth_key: 16 character authorization key of Reseller child to modify credits [Mandatory]
|
127 |
-
@options data {Array} add_credit: Number of email & sms credits to be added. You can assign either email or sms credits, one at a time other will remain 0. [Mandatory: if rmv_credit is empty]
|
128 |
-
- email_credit {Integer} number of email credits
|
129 |
-
- sms_credit {Integer} Number of sms credts
|
130 |
-
@options data {Array} rmv_credit: Number of email & sms credits to be removed. You can assign either email or sms credits, one at a time other will remain 0. [Mandatory: if add_credits is empty]
|
131 |
-
- email_credit {Integer} number of email credits
|
132 |
-
- sms_credit {Integer} Number of sms credts
|
133 |
-
*/
|
134 |
-
public function add_remove_child_credits( $data ) {
|
135 |
-
return $this->post( 'account/addrmvcredit',json_encode( $data ) );
|
136 |
-
}
|
137 |
-
|
138 |
-
/*
|
139 |
-
Get a particular campaign detail.
|
140 |
-
@param {Array} data contains php array with key value pair.
|
141 |
-
@options data {Integer} id: Unique Id of the campaign [Mandatory]
|
142 |
-
*/
|
143 |
-
public function get_campaign_v2( $data ) {
|
144 |
-
return $this->get( 'campaign/' . $data['id'] . '/detailsv2','' );
|
145 |
-
}
|
146 |
-
|
147 |
-
/*
|
148 |
-
Get all campaigns detail.
|
149 |
-
@param {Array} data contains php array with key value pair.
|
150 |
-
@options data {String} type: Type of campaign. Possible values – classic, trigger, sms, template ( case sensitive ) [Optional]
|
151 |
-
@options data {String} status: Status of campaign. Possible values – draft, sent, archive, queued, suspended, in_process, temp_active, temp_inactive ( case sensitive ) [Optional]
|
152 |
-
@options data {Integer} page: Maximum number of records per request is 500, if there are more than 500 campaigns then you can use this parameter to get next 500 results [Optional]
|
153 |
-
@options data {Integer} page_limit: This should be a valid number between 1-500 [Optional]
|
154 |
-
*/
|
155 |
-
public function get_campaigns_v2( $data ) {
|
156 |
-
return $this->get( 'campaign/detailsv2',json_encode( $data ) );
|
157 |
-
}
|
158 |
-
|
159 |
-
/*
|
160 |
-
Create and Schedule your campaigns. It returns the ID of the created campaign.
|
161 |
-
@param {Array} data contains php array with key value pair.
|
162 |
-
@options data {String} category: Tag name of the campaign [Optional]
|
163 |
-
@options data {String} from_name: Sender name from which the campaign emails are sent [Mandatory: for Dedicated IP clients, please make sure that the sender details are defined here, and in case of no sender, you can add them also via API & for Shared IP clients, if sender exists]
|
164 |
-
@options data {String} name: Name of the campaign [Mandatory]
|
165 |
-
@options data {String} bat: Email address for test mail [Optional]
|
166 |
-
@options data {String} html_content: Body of the content. The HTML content field must have more than 10 characters [Mandatory: if html_url is empty]
|
167 |
-
@options data {String} html_url: Url which content is the body of content [Mandatory: if html_content is empty]
|
168 |
-
@options data {Array} listid: These are the lists to which the campaign has been sent [Mandatory: if scheduled_date is not empty]
|
169 |
-
@options data {String} scheduled_date: The day on which the campaign is supposed to run[Optional]
|
170 |
-
@options data {String} subject: Subject of the campaign [Mandatory]
|
171 |
-
@options data {String} from_email: Sender email from which the campaign emails are sent [Mandatory: for Dedicated IP clients, please make sure that the sender details are defined here, and in case of no sender, you can add them also via API & for Shared IP clients, if sender exists]
|
172 |
-
@options data {String} reply_to: The reply to email in the campaign emails [Optional]
|
173 |
-
@options data {String} to_field: This is to personalize the «To» Field. If you want to include the first name and last name of your recipient, add [PRENOM] [NOM] To use the contact attributes here, these should already exist in SendinBlue account [Optional]
|
174 |
-
@options data {Array} exclude_list: These are the lists which must be excluded from the campaign [Optional]
|
175 |
-
@options data {String} attachment_url: Provide the absolute url of the attachment [Optional]
|
176 |
-
@options data {Integer} inline_image: Status of inline image. Possible values = 0 (default) & 1. inline_image = 0 means image can’t be embedded, & inline_image = 1 means image can be embedded, in the email [Optional]
|
177 |
-
@options data {Integer} mirror_active: Status of mirror links in campaign. Possible values = 0 & 1 (default). mirror_active = 0 means mirror links are deactivated, & mirror_active = 1 means mirror links are activated, in the campaign [Optional]
|
178 |
-
@options data {Integer} send_now: Flag to send campaign now. Possible values = 0 (default) & 1. send_now = 0 means campaign can’t be send now, & send_now = 1 means campaign ready to send now [Optional]
|
179 |
-
|
180 |
-
*/
|
181 |
-
public function create_campaign( $data ) {
|
182 |
-
return $this->post( 'campaign',json_encode( $data ) );
|
183 |
-
}
|
184 |
-
|
185 |
-
/*
|
186 |
-
Update your campaign.
|
187 |
-
@param {Array} data contains php array with key value pair.
|
188 |
-
@options data {Integer} id: Id of campaign to be modified [Mandatory]
|
189 |
-
@options data {String} category: Tag name of the campaign [Optional]
|
190 |
-
@options data {String} from_name: Sender name from which the campaign emails are sent [Mandatory: for Dedicated IP clients, please make sure that the sender details are defined here, and in case of no sender, you can add them also via API & for Shared IP clients, if sender exists]
|
191 |
-
@options data {String} name: Name of the campaign [Optional]
|
192 |
-
@options data {String} bat: Email address for test mail [Optional]
|
193 |
-
@options data {String} html_content: Body of the content. The HTML content field must have more than 10 characters [Optional]
|
194 |
-
@options data {String} html_url: Url which content is the body of content [Optional]
|
195 |
-
@options data {Array} listid These are the lists to which the campaign has been sent [Mandatory: if scheduled_date is not empty]
|
196 |
-
@options data {String} scheduled_date: The day on which the campaign is supposed to run[Optional]
|
197 |
-
@options data {String} subject: Subject of the campaign.
|
198 |
-
@options data {String} from_email: Sender email from which the campaign emails are sent [Mandatory: for Dedicated IP clients, please make sure that the sender details are defined here, and in case of no sender, you can add them also via API & for Shared IP clients, if sender exists]
|
199 |
-
@options data {String} reply_to: The reply to email in the campaign emails [Optional]
|
200 |
-
@options data {String} to_field: This is to personalize the «To» Field. If you want to include the first name and last name of your recipient, add [PRENOM] [NOM]. To use the contact attributes here, these should already exist in SendinBlue account [Optional]
|
201 |
-
@options data {Array} exclude_list: These are the lists which must be excluded from the campaign [Optional]
|
202 |
-
@options data {String} attachment_url: Provide the absolute url of the attachment [Optional]
|
203 |
-
@options data {Integer} inline_image: Status of inline image. Possible values = 0 (default) & 1. inline_image = 0 means image can’t be embedded, & inline_image = 1 means image can be embedded, in the email [Optional]
|
204 |
-
@options data {Integer} mirror_active: Status of mirror links in campaign. Possible values = 0 & 1 (default). mirror_active = 0 means mirror links are deactivated, & mirror_active = 1 means mirror links are activated, in the campaign [Optional]
|
205 |
-
@options data {Integer} send_now: Flag to send campaign now. Possible values = 0 (default) & 1. send_now = 0 means campaign can’t be send now, & send_now = 1 means campaign ready to send now [Optional]
|
206 |
-
*/
|
207 |
-
public function update_campaign( $data ) {
|
208 |
-
$id = $data['id'];
|
209 |
-
unset( $data['id'] );
|
210 |
-
return $this->put( 'campaign/' . $id,json_encode( $data ) );
|
211 |
-
}
|
212 |
-
|
213 |
-
/*
|
214 |
-
Delete your campaigns.
|
215 |
-
@param {Array} data contains php array with key value pair.
|
216 |
-
@options data {Integer} id: Id of campaign to be deleted [Mandatory]
|
217 |
-
*/
|
218 |
-
public function delete_campaign( $data ) {
|
219 |
-
return $this->delete( 'campaign/' . $data['id'],'' );
|
220 |
-
}
|
221 |
-
|
222 |
-
/*
|
223 |
-
Send report of Sent and Archived campaign.
|
224 |
-
@param {Array} data contains php array with key value pair.
|
225 |
-
@options data {Integer} id: Id of campaign to send its report [Mandatory]
|
226 |
-
@options data {String} lang: Language of email content. Possible values – fr (default), en, es, it & pt [Optional]
|
227 |
-
@options data {String} email_subject: Message subject [Mandatory]
|
228 |
-
@options data {Array} email_to: Email address of the recipient(s). Example: "test@example.net". You can use commas to separate multiple recipients [Mandatory]
|
229 |
-
@options data {String} email_content_type: Body of the message in text/HTML version. Possible values – text & html [Mandatory]
|
230 |
-
@options data {Array} email_bcc: Same as email_to but for Bcc [Optional]
|
231 |
-
@options data {Array} email_cc: Same as email_to but for Cc [Optional]
|
232 |
-
@options data {String} email_body: Body of the message [Mandatory]
|
233 |
-
*/
|
234 |
-
public function campaign_report_email( $data ) {
|
235 |
-
$id = $data['id'];
|
236 |
-
unset( $data['id'] );
|
237 |
-
return $this->post( 'campaign/' . $id . '/report',json_encode( $data ) );
|
238 |
-
}
|
239 |
-
|
240 |
-
/*
|
241 |
-
Export the recipients of a specified campaign.
|
242 |
-
@param {Array} data contains php array with key value pair.
|
243 |
-
@options data {Integer} id: Id of campaign to export its recipients [Mandatory]
|
244 |
-
@options data {String} notify_url: URL that will be called once the export process is finished [Mandatory]
|
245 |
-
@options data {String} type: Type of recipients. Possible values – all, non_clicker, non_opener, clicker, opener, soft_bounces, hard_bounces & unsubscribes [Mandatory]
|
246 |
-
*/
|
247 |
-
public function campaign_recipients_export( $data ) {
|
248 |
-
$id = $data['id'];
|
249 |
-
unset( $data['id'] );
|
250 |
-
return $this->post( 'campaign/' . $id . '/recipients',json_encode( $data ) );
|
251 |
-
}
|
252 |
-
|
253 |
-
/*
|
254 |
-
Get the Campaign name, subject and share link of the classic type campaigns only which are sent, for those which are not sent and the rest of campaign types like trigger, template & sms, will return an error message of share link not available.
|
255 |
-
@param {Array} data contains php array with key value pair.
|
256 |
-
@options data {Array} camp_ids: Id of campaign to get share link. You can use commas to separate multiple ids [Mandatory]
|
257 |
-
*/
|
258 |
-
|
259 |
-
public function share_campaign( $data ) {
|
260 |
-
return $this->post( 'campaign/sharelinkv2',json_encode( $data ) );
|
261 |
-
}
|
262 |
-
|
263 |
-
/*
|
264 |
-
Send a Test Campaign.
|
265 |
-
@param {Array} data contains php array with key value pair.
|
266 |
-
@options data {Integer} id: Id of the campaign [Mandatory]
|
267 |
-
@options data {Array} emails: Email address of recipient(s) existing in the one of the lists & should not be blacklisted. Example: "test@example.net". You can use commas to separate multiple recipients [Mandatory]
|
268 |
-
*/
|
269 |
-
public function send_bat_email( $data ) {
|
270 |
-
$id = $data['id'];
|
271 |
-
unset( $data['id'] );
|
272 |
-
return $this->post( 'campaign/' . $id . '/test',json_encode( $data ) );
|
273 |
-
}
|
274 |
-
|
275 |
-
/*
|
276 |
-
Update the Campaign status.
|
277 |
-
@param {Array} data contains php array with key value pair.
|
278 |
-
@options data {Integer} id: Id of campaign to update its status [Mandatory]
|
279 |
-
@options data {String} status: Types of status. Possible values – suspended, archive, darchive, sent, queued, replicate and replicate_template ( case sensitive ) [Mandatory]
|
280 |
-
*/
|
281 |
-
public function update_campaign_status( $data ) {
|
282 |
-
$id = $data['id'];
|
283 |
-
unset( $data['id'] );
|
284 |
-
return $this->put( 'campaign/' . $id . '/updatecampstatus',json_encode( $data ) );
|
285 |
-
}
|
286 |
-
|
287 |
-
/*
|
288 |
-
Create and schedule your Trigger campaigns.
|
289 |
-
@param {Array} data contains php array with key value pair.
|
290 |
-
@options data {String} category: Tag name of the campaign [Optional]
|
291 |
-
@options data {String} from_name: Sender name from which the campaign emails are sent [Mandatory: for Dedicated IP clients, please make sure that the sender details are defined here, and in case of no sender, you can add them also via API & for Shared IP clients, if sender exists]
|
292 |
-
@options data {String} trigger_name: Name of the campaign [Mandatory]
|
293 |
-
@options data {String} bat: Email address for test mail [Optional]
|
294 |
-
@options data {String} html_content: Body of the content. The HTML content field must have more than 10 characters [Mandatory: if html_url is empty]
|
295 |
-
@options data {String} html_url: Url which content is the body of content [Mandatory: if html_content is empty]
|
296 |
-
@options data {Array} listid: These are the lists to which the campaign has been sent [Mandatory: if scheduled_date is not empty]
|
297 |
-
@options data {String} scheduled_date: The day on which the campaign is supposed to run[Optional]
|
298 |
-
@options data {String} subject: Subject of the campaign [Mandatory]
|
299 |
-
@options data {String} from_email: Sender email from which the campaign emails are sent [Mandatory: for Dedicated IP clients, please make sure that the sender details are defined here, and in case of no sender, you can add them also via API & for Shared IP clients, if sender exists]
|
300 |
-
@options data {String} reply_to: The reply to email in the campaign emails [Optional]
|
301 |
-
@options data {String} to_field: This is to personalize the «To» Field. If you want to include the first name and last name of your recipient, add [PRENOM] [NOM]. To use the contact attributes here, these should already exist in SendinBlue account [Optional]
|
302 |
-
@options data {Array} exclude_list: These are the lists which must be excluded from the campaign [Optional]
|
303 |
-
@options data {Integer} recurring: Type of trigger campaign. Possible values = 0 (default) & 1. recurring = 0 means contact can receive the same Trigger campaign only once, & recurring = 1 means contact can receive the same Trigger campaign several times [Optional]
|
304 |
-
@options data {String} attachment_url: Provide the absolute url of the attachment [Optional]
|
305 |
-
@options data {Integer} inline_image: Status of inline image. Possible values = 0 (default) & 1. inline_image = 0 means image can’t be embedded, & inline_image = 1 means image can be embedded, in the email [Optional]
|
306 |
-
@options data {Integer} mirror_active: Status of mirror links in campaign. Possible values = 0 & 1 (default). mirror_active = 0 means mirror links are deactivated, & mirror_active = 1 means mirror links are activated, in the campaign [Optional]
|
307 |
-
@options data {Integer} send_now: Flag to send campaign now. Possible values = 0 (default) & 1. send_now = 0 means campaign can’t be send now, & send_now = 1 means campaign ready to send now [Optional]
|
308 |
-
*/
|
309 |
-
public function create_trigger_campaign( $data ) {
|
310 |
-
return $this->post( 'campaign',json_encode( $data ) );
|
311 |
-
}
|
312 |
-
|
313 |
-
/*
|
314 |
-
Update and schedule your Trigger campaigns.
|
315 |
-
@param {Array} data contains php array with key value pair.
|
316 |
-
@options data {Integer} id: Id of Trigger campaign to be modified [Mandatory]
|
317 |
-
@options data {String} category: Tag name of the campaign [Optional]
|
318 |
-
@options data {String} from_name: Sender name from which the campaign emails are sent [Mandatory: for Dedicated IP clients, please make sure that the sender details are defined here, and in case of no sender, you can add them also via API & for Shared IP clients, if sender exists]
|
319 |
-
@options data {String} trigger_name: Name of the campaign [Mandatory]
|
320 |
-
@options data {String} bat Email address for test mail [Optional]
|
321 |
-
@options data {String} html_content: Body of the content. The HTML content field must have more than 10 characters [Mandatory: if html_url is empty]
|
322 |
-
@options data {String} html_url: Url which content is the body of content [Mandatory: if html_content is empty]
|
323 |
-
@options data {Array} listid: These are the lists to which the campaign has been sent [Mandatory: if scheduled_date is not empty]
|
324 |
-
@options data {String} scheduled_date: The day on which the campaign is supposed to run[Optional]
|
325 |
-
@options data {String} subject: Subject of the campaign [Mandatory]
|
326 |
-
@options data {String} from_email: Sender email from which the campaign emails are sent [Mandatory: for Dedicated IP clients, please make sure that the sender details are defined here, and in case of no sender, you can add them also via API & for Shared IP clients, if sender exists]
|
327 |
-
@options data {String} reply_to: The reply to email in the campaign emails [Optional]
|
328 |
-
@options data {String} to_field: This is to personalize the «To» Field. If you want to include the first name and last name of your recipient, add [PRENOM] [NOM]. To use the contact attributes here, these should already exist in SendinBlue account [Optional]
|
329 |
-
@options data {Array} exclude_list: These are the lists which must be excluded from the campaign [Optional]
|
330 |
-
@options data {Integer} recurring: Type of trigger campaign. Possible values = 0 (default) & 1. recurring = 0 means contact can receive the same Trigger campaign only once, & recurring = 1 means contact can receive the same Trigger campaign several times [Optional]
|
331 |
-
@options data {String} attachment_url: Provide the absolute url of the attachment [Optional]
|
332 |
-
@options data {Integer} inline_image: Status of inline image. Possible values = 0 (default) & 1. inline_image = 0 means image can’t be embedded, & inline_image = 1 means image can be embedded, in the email [Optional]
|
333 |
-
@options data {Integer} mirror_active: Status of mirror links in campaign. Possible values = 0 & 1 (default). mirror_active = 0 means mirror links are deactivated, & mirror_active = 1 means mirror links are activated, in the campaign [Optional]
|
334 |
-
@options data {Integer} send_now: Flag to send campaign now. Possible values = 0 (default) & 1. send_now = 0 means campaign can’t be send now, & send_now = 1 means campaign ready to send now [Optional]
|
335 |
-
*/
|
336 |
-
public function update_trigger_campaign( $data ) {
|
337 |
-
$id = $data['id'];
|
338 |
-
unset( $data['id'] );
|
339 |
-
return $this->put( 'campaign/' . $id,json_encode( $data ) );
|
340 |
-
}
|
341 |
-
|
342 |
-
/*
|
343 |
-
Get all folders detail.
|
344 |
-
@param {Array} data contains php array with key value pair.
|
345 |
-
@options data {Integer} page: Maximum number of records per request is 50, if there are more than 50 folders then you can use this parameter to get next 50 results [Mandatory]
|
346 |
-
@options data {Integer} page_limit: This should be a valid number between 1-50 [Mandatory]
|
347 |
-
*/
|
348 |
-
public function get_folders( $data ) {
|
349 |
-
return $this->get( 'folder',json_encode( $data ) );
|
350 |
-
}
|
351 |
-
|
352 |
-
/*
|
353 |
-
Get a particular folder detail.
|
354 |
-
@param {Array} data contains php array with key value pair.
|
355 |
-
@options data {Integer} id: Id of folder to get details [Mandatory]
|
356 |
-
*/
|
357 |
-
public function get_folder( $data ) {
|
358 |
-
return $this->get( 'folder/' . $data['id'],'' );
|
359 |
-
}
|
360 |
-
|
361 |
-
/*
|
362 |
-
Create a new folder.
|
363 |
-
@param {Array} data contains php array with key value pair.
|
364 |
-
@options data {String} name: Desired name of the folder to be created [Mandatory]
|
365 |
-
*/
|
366 |
-
public function create_folder( $data ) {
|
367 |
-
return $this->post( 'folder',json_encode( $data ) );
|
368 |
-
}
|
369 |
-
|
370 |
-
/*
|
371 |
-
Delete a specific folder information.
|
372 |
-
@param {Array} data contains php array with key value pair.
|
373 |
-
@options data {Integer} id: Id of folder to be deleted [Mandatory]
|
374 |
-
*/
|
375 |
-
public function delete_folder( $data ) {
|
376 |
-
return $this->delete( 'folder/' . $data['id'],'' );
|
377 |
-
}
|
378 |
-
|
379 |
-
/*
|
380 |
-
Update an existing folder.
|
381 |
-
@param {Array} data contains php array with key value pair.
|
382 |
-
@options data {Integer} id: Id of folder to be modified [Mandatory]
|
383 |
-
@options data {String} name: Desired name of the folder to be modified [Mandatory]
|
384 |
-
*/
|
385 |
-
public function update_folder( $data ) {
|
386 |
-
$id = $data['id'];
|
387 |
-
unset( $data['id'] );
|
388 |
-
return $this->put( 'folder/' . $id,json_encode( $data ) );
|
389 |
-
}
|
390 |
-
|
391 |
-
/*
|
392 |
-
Get all lists detail.
|
393 |
-
@param {Array} data contains php array with key value pair.
|
394 |
-
@options data {Integer} list_parent: This is the existing folder id & can be used to get all lists belonging to it [Optional]
|
395 |
-
@options data {Integer} page: Maximum number of records per request is 50, if there are more than 50 processes then you can use this parameter to get next 50 results [Mandatory]
|
396 |
-
@options data {Integer} page_limit: This should be a valid number between 1-50 [Mandatory]
|
397 |
-
*/
|
398 |
-
public function get_lists( $data ) {
|
399 |
-
return $this->get( 'list',json_encode( $data ) );
|
400 |
-
}
|
401 |
-
|
402 |
-
/*
|
403 |
-
Get a particular list detail.
|
404 |
-
@param {Array} data contains php array with key value pair.
|
405 |
-
@options data {Integer} id: Id of list to get details [Mandatory]
|
406 |
-
*/
|
407 |
-
public function get_list( $data ) {
|
408 |
-
return $this->get( 'list/' . $data['id'],'' );
|
409 |
-
}
|
410 |
-
|
411 |
-
/*
|
412 |
-
Create a new list.
|
413 |
-
@param {Array} data contains php array with key value pair.
|
414 |
-
@options data {String} list_name: Desired name of the list to be created [Mandatory]
|
415 |
-
@options data {Integer} list_parent: Folder ID [Mandatory]
|
416 |
-
*/
|
417 |
-
public function create_list( $data ) {
|
418 |
-
return $this->post( 'list',json_encode( $data ) );
|
419 |
-
}
|
420 |
-
|
421 |
-
/*
|
422 |
-
Update a list.
|
423 |
-
@param {Array} data contains php array with key value pair.
|
424 |
-
@options data {Integer} id: Id of list to be modified [Mandatory]
|
425 |
-
@options data {String} list_name: Desired name of the list to be modified [Optional]
|
426 |
-
@options data {Integer} list_parent: Folder ID [Mandatory]
|
427 |
-
*/
|
428 |
-
public function update_list( $data ) {
|
429 |
-
$id = $data['id'];
|
430 |
-
unset( $data['id'] );
|
431 |
-
return $this->put( 'list/' . $id,json_encode( $data ) );
|
432 |
-
}
|
433 |
-
|
434 |
-
/*
|
435 |
-
Delete a specific list.
|
436 |
-
@param {Array} data contains php array with key value pair.
|
437 |
-
@options data {Integer} id: Id of list to be deleted [Mandatory]
|
438 |
-
*/
|
439 |
-
public function delete_list( $data ) {
|
440 |
-
return $this->delete( 'list/' . $data['id'],'' );
|
441 |
-
}
|
442 |
-
|
443 |
-
/*
|
444 |
-
Display details of all users for the given lists.
|
445 |
-
@param {Array} data contains php array with key value pair.
|
446 |
-
@options data {Array} listids: These are the list ids to get their data. The ids found will display records [Mandatory]
|
447 |
-
@options data {String} timestamp: This is date-time filter to fetch modified user records >= this time. Valid format Y-m-d H:i:s. Example: "2015-05-22 14:30:00" [Optional]
|
448 |
-
@options data {Integer} page: Maximum number of records per request is 500, if in your list there are more than 500 users then you can use this parameter to get next 500 results [Optional]
|
449 |
-
@options data {Integer} page_limit: This should be a valid number between 1-500 [Optional]
|
450 |
-
*/
|
451 |
-
public function display_list_users( $data ) {
|
452 |
-
return $this->post( 'list/display',json_encode( $data ) );
|
453 |
-
}
|
454 |
-
|
455 |
-
/*
|
456 |
-
Add already existing users in the SendinBlue contacts to the list.
|
457 |
-
@param {Array} data contains php array with key value pair.
|
458 |
-
@options data {Integer} id: Id of list to link users in it [Mandatory]
|
459 |
-
@options data {Array} users: Email address of the already existing user(s) in the SendinBlue contacts. Example: "test@example.net". You can use commas to separate multiple users [Mandatory]
|
460 |
-
*/
|
461 |
-
|
462 |
-
public function add_users_list( $data ) {
|
463 |
-
$id = $data['id'];
|
464 |
-
unset( $data['id'] );
|
465 |
-
return $this->post( 'list/' . $id . '/users',json_encode( $data ) );
|
466 |
-
}
|
467 |
-
|
468 |
-
/*
|
469 |
-
Delete already existing users in the SendinBlue contacts from the list.
|
470 |
-
@param {Array} data contains php array with key value pair.
|
471 |
-
@options data {Integer} id: Id of list to unlink users from it [Mandatory]
|
472 |
-
@options data {Array} users: Email address of the already existing user(s) in the SendinBlue contacts to be modified. Example: "test@example.net". You can use commas to separate multiple users [Mandatory]
|
473 |
-
*/
|
474 |
-
public function delete_users_list( $data ) {
|
475 |
-
$id = $data['id'];
|
476 |
-
unset( $data['id'] );
|
477 |
-
return $this->delete( 'list/' . $id . '/delusers',json_encode( $data ) );
|
478 |
-
}
|
479 |
-
|
480 |
-
/*
|
481 |
-
Access all the attributes information under the account.
|
482 |
-
No input required
|
483 |
-
*/
|
484 |
-
public function get_attributes() {
|
485 |
-
return $this->get( 'attribute','' );
|
486 |
-
}
|
487 |
-
|
488 |
-
/*
|
489 |
-
Access the specific type of attribute information.
|
490 |
-
@param {Array} data contains php array with key value pair.
|
491 |
-
@options data {String} type: Type of attribute. Possible values – normal, transactional, category, calculated & global [Optional]
|
492 |
-
*/
|
493 |
-
public function get_attribute( $data ) {
|
494 |
-
return $this->get( 'attribute/' . $data['type'],'' );
|
495 |
-
}
|
496 |
-
|
497 |
-
/*
|
498 |
-
Create an Attribute.
|
499 |
-
@param {Array} data contains php array with key value pair.
|
500 |
-
@options data {String} type: Type of attribute. Possible values – normal, transactional, category, calculated & global ( case sensitive ) [Mandatory]
|
501 |
-
@options data {Array} data: The name and data type of ‘normal’ & ‘transactional’ attribute to be created in your SendinBlue account. It should be sent as an associative array. Example: array(‘ATTRIBUTE_NAME1′ => ‘DATA_TYPE1′, ‘ATTRIBUTE_NAME2’=> ‘DATA_TYPE2′).
|
502 |
-
The name and data value of ‘category’, ‘calculated’ & ‘global’, should be sent as JSON string. Example: ‘[{ "name":"ATTRIBUTE_NAME1", "value":"Attribute_value1" }, { "name":"ATTRIBUTE_NAME2", "value":"Attribute_value2" }]’. You can use commas to separate multiple attributes [Mandatory]
|
503 |
-
*/
|
504 |
-
public function create_attribute( $data ) {
|
505 |
-
return $this->post( 'attribute/',json_encode( $data ) );
|
506 |
-
}
|
507 |
-
|
508 |
-
/*
|
509 |
-
Delete a specific type of attribute information.
|
510 |
-
@param {Array} data contains php array with key value pair.
|
511 |
-
@options data {Integer} type: Type of attribute to be deleted [Mandatory]
|
512 |
-
*/
|
513 |
-
public function delete_attribute( $type, $data ) {
|
514 |
-
$type = $data['type'];
|
515 |
-
unset( $data['type'] );
|
516 |
-
return $this->post( 'attribute/' . $type,json_encode( $data ) );
|
517 |
-
}
|
518 |
-
|
519 |
-
/*
|
520 |
-
Create a new user if an email provided as input, doesn’t exists in the contact list of your SendinBlue account, otherwise it will update the existing user.
|
521 |
-
@param {Array} data contains php array with key value pair.
|
522 |
-
@options data {String} email: Email address of the user to be created in SendinBlue contacts. Already existing email address of user in the SendinBlue contacts to be modified [Mandatory]
|
523 |
-
@options data {Array} attributes: The name of attribute present in your SendinBlue account. It should be sent as an associative array. Example: array("NAME"=>"name"). You can use commas to separate multiple attributes [Optional]
|
524 |
-
@options data {Integer} blacklisted: This is used to blacklist/ Unblacklist a user. Possible values – 0 & 1. blacklisted = 1 means user has been blacklisted [Optional]
|
525 |
-
@options data {Array} listid: The list id(s) to be linked from user [Optional]
|
526 |
-
@options data {Array} listid_unlink: The list id(s) to be unlinked from user [Optional]
|
527 |
-
@options data {Array} blacklisted_sms: This is used to blacklist/ Unblacklist a user’s SMS number. Possible values – 0 & 1. blacklisted_sms = 1 means user’s SMS number has been blacklisted [Optional]
|
528 |
-
*/
|
529 |
-
public function create_update_user( $data ) {
|
530 |
-
return $this->post( 'user/createdituser',json_encode( $data ) );
|
531 |
-
}
|
532 |
-
|
533 |
-
/*
|
534 |
-
Get Access a specific user Information.
|
535 |
-
@param {Array} data contains php array with key value pair.
|
536 |
-
@options data {String} email: Email address of the already existing user in the SendinBlue contacts [Mandatory]
|
537 |
-
*/
|
538 |
-
public function get_user( $data ) {
|
539 |
-
return $this->get( 'user/' . $data['email'],'' );
|
540 |
-
}
|
541 |
-
|
542 |
-
/*
|
543 |
-
Unlink existing user from all lists.
|
544 |
-
@param {Array} data contains php array with key value pair.
|
545 |
-
@options data {String} email: Email address of the already existing user in the SendinBlue contacts to be unlinked from all lists [Mandatory]
|
546 |
-
*/
|
547 |
-
public function delete_user( $data ) {
|
548 |
-
return $this->delete( 'user/' . $data['email'],'' );
|
549 |
-
}
|
550 |
-
|
551 |
-
/*
|
552 |
-
Import Users Information.
|
553 |
-
@param {Array} data contains php array with key value pair.
|
554 |
-
@options data {String} url: The URL of the file to be imported. Possible file types – .txt, .csv [Mandatory: if body is empty]
|
555 |
-
@options data {String} body: The Body with csv content to be imported. Example: ‘NAME;SURNAME;EMAIL\n"Name1";"Surname1";"example1@example.net"\n"Name2";"Surname2";"example2@example.net"‘, where \n separates each user data. You can use semicolon to separate multiple attributes [Mandatory: if url is empty]
|
556 |
-
@options data {Array} listids: These are the list ids in which the the users will be imported [Mandatory: if name is empty]
|
557 |
-
@options data {String} notify_url: URL that will be called once the import process is finished [Optional] In notify_url, we are sending the content using POST method
|
558 |
-
@options data {String} name: This is new list name which will be created first & then users will be imported in it [Mandatory: if listids is empty]
|
559 |
-
@options data {Integer} list_parent: This is the existing folder id & can be used with name parameter to make newly created list’s desired parent [Optional]
|
560 |
-
*/
|
561 |
-
public function import_users( $data ) {
|
562 |
-
return $this->post( 'user/import',json_encode( $data ) );
|
563 |
-
}
|
564 |
-
|
565 |
-
/*
|
566 |
-
Export Users Information.
|
567 |
-
@param {Array} data contains php array with key value pair.
|
568 |
-
@options data {String} export_attrib: The name of attribute present in your SendinBlue account. You can use commas to separate multiple attributes. Example: "EMAIL,NAME,SMS" [Optional]
|
569 |
-
@options data {String} filter: Filter can be added to export users. Example: "{\"blacklisted\":1}", will export all blacklisted users [Mandatory]
|
570 |
-
@options data {String} notify_url: URL that will be called once the export process is finished [Optional]
|
571 |
-
*/
|
572 |
-
public function export_users( $data ) {
|
573 |
-
return $this->post( 'user/export',json_encode( $data ) );
|
574 |
-
}
|
575 |
-
|
576 |
-
/*
|
577 |
-
Get all the processes information under the account.
|
578 |
-
@param {Array} data contains php array with key value pair.
|
579 |
-
@options data {Integer} page: Maximum number of records per request is 50, if there are more than 50 processes then you can use this parameter to get next 50 results [Mandatory]
|
580 |
-
@options data {Integer} page_limit: This should be a valid number between 1-50 [Mandatory]
|
581 |
-
*/
|
582 |
-
public function get_processes( $data ) {
|
583 |
-
return $this->get( 'process',json_encode( $data ) );
|
584 |
-
}
|
585 |
-
|
586 |
-
/*
|
587 |
-
Get the process information.
|
588 |
-
@param {Array} data contains php array with key value pair.
|
589 |
-
@options data {Integer} id: Id of process to get details [Mandatory]
|
590 |
-
*/
|
591 |
-
public function get_process( $data ) {
|
592 |
-
return $this->get( 'process/' . $data['id'],'' );
|
593 |
-
}
|
594 |
-
|
595 |
-
/*
|
596 |
-
To retrieve details of all webhooks.
|
597 |
-
@param {Array} data contains php array with key value pair.
|
598 |
-
@options data {String} is_plat: Flag to get webhooks. Possible values – 0 & 1. Example: to get Transactional webhooks, use $is_plat=0, to get Marketing webhooks, use $is_plat=1, & to get all webhooks, use $is_plat="" [Optional]
|
599 |
-
*/
|
600 |
-
public function get_webhooks( $data ) {
|
601 |
-
return $this->get( 'webhook',json_encode( $data ) );
|
602 |
-
}
|
603 |
-
|
604 |
-
/*
|
605 |
-
To retrieve details of any particular webhook.
|
606 |
-
@param {Array} data contains php array with key value pair.
|
607 |
-
@options data {Integer} id: Id of webhook to get details [Mandatory]
|
608 |
-
*/
|
609 |
-
public function get_webhook( $data ) {
|
610 |
-
return $this->get( 'webhook/' . $data['id'],'' );
|
611 |
-
}
|
612 |
-
|
613 |
-
/*
|
614 |
-
Create a Webhook.
|
615 |
-
@param {Array} data contains php array with key value pair.
|
616 |
-
@options data {String} url: URL that will be triggered by a webhook [Mandatory]
|
617 |
-
@options data {String} description: Webook description [Optional]
|
618 |
-
@options data {Array} events: Set of events. You can use commas to separate multiple events. Possible values for Transcational webhook – request, delivered, hard_bounce, soft_bounce, blocked, spam, invalid_email, deferred, click, & opened and Possible Values for Marketing webhook – spam, opened, click, hard_bounce, unsubscribe, soft_bounce & list_addition ( case sensitive ) [Mandatory]
|
619 |
-
@options data {Integer} is_plat: Flag to create webhook type. Possible values – 0 (default) & 1. Example: to create Transactional webhooks, use $is_plat=0, & to create Marketing webhooks, use $is_plat=1 [Optional]
|
620 |
-
*/
|
621 |
-
public function create_webhook( $data ) {
|
622 |
-
return $this->post( 'webhook',json_encode( $data ) );
|
623 |
-
}
|
624 |
-
|
625 |
-
/*
|
626 |
-
Delete a webhook.
|
627 |
-
@param {Array} data contains php array with key value pair.
|
628 |
-
@options data {Integer} id: Id of webhook to be deleted [Mandatory]
|
629 |
-
*/
|
630 |
-
public function delete_webhook( $data ) {
|
631 |
-
return $this->delete( 'webhook/' . $data['id'],'' );
|
632 |
-
}
|
633 |
-
|
634 |
-
/*
|
635 |
-
Update a webhook.
|
636 |
-
@param {Array} data contains php array with key value pair.
|
637 |
-
@options data {Integer} id: Id of webhook to be modified [Mandatory]
|
638 |
-
@options data {String} url: URL that will be triggered by a webhook [Mandatory]
|
639 |
-
@options data {String} description: Webook description [Optional]
|
640 |
-
@options data {Array} events: Set of events. You can use commas to separate multiple events. Possible values for Transcational webhook – request, delivered, hard_bounce, soft_bounce, blocked, spam, invalid_email, deferred, click, & opened and Possible Values for Marketing webhook – spam, opened, click, hard_bounce, unsubscribe, soft_bounce & list_addition ( case sensitive ) [Mandatory]
|
641 |
-
*/
|
642 |
-
public function update_webhook( $data ) {
|
643 |
-
$id = $data['id'];
|
644 |
-
unset( $data['id'] );
|
645 |
-
return $this->put( 'webhook/' . $id,json_encode( $data ) );
|
646 |
-
}
|
647 |
-
|
648 |
-
/*
|
649 |
-
Get Access of created senders information.
|
650 |
-
@param {Array} data contains php array with key value pair.
|
651 |
-
@options data {String} option: Options to get senders. Possible options – IP-wise, & Domain-wise ( only for dedicated IP clients ). Example: to get senders with specific IP, use $option=’1.2.3.4′, to get senders with specific domain use, $option=’domain.com’, & to get all senders, use $option="" [Optional]
|
652 |
-
*/
|
653 |
-
public function get_senders( $data ) {
|
654 |
-
return $this->get( 'advanced',json_encode( $data ) );
|
655 |
-
}
|
656 |
-
|
657 |
-
/*
|
658 |
-
Create your Senders.
|
659 |
-
@param {Array} data contains php array with key value pair.
|
660 |
-
@options data {String} name: Name of the sender [Mandatory]
|
661 |
-
@options data {String} email: Email address of the sender [Mandatory]
|
662 |
-
@options data {Array} ip_domain: Pass pipe ( | ) separated Dedicated IP and its associated Domain. Example: "1.2.3.4|mydomain.com". You can use commas to separate multiple ip_domain’s [Mandatory: Only for Dedicated IP clients, for Shared IP clients, it should be kept blank]
|
663 |
-
*/
|
664 |
-
public function create_sender( $data ) {
|
665 |
-
return $this->post( 'advanced',json_encode( $data ) );
|
666 |
-
}
|
667 |
-
|
668 |
-
/*
|
669 |
-
Update your Senders.
|
670 |
-
@param {Array} data contains php array with key value pair.
|
671 |
-
@options data {Integer} id: Id of sender to be modified [Mandatory]
|
672 |
-
@options data {String} name: Name of the sender [Mandatory]
|
673 |
-
@options data {Array} ip_domain: Pass pipe ( | ) separated Dedicated IP and its associated Domain. Example: "1.2.3.4|mydomain.com". You can use commas to separate multiple ip_domain’s [Mandatory: Only for Dedicated IP clients, for Shared IP clients, it should be kept blank]
|
674 |
-
*/
|
675 |
-
public function update_sender( $data ) {
|
676 |
-
$id = $data['id'];
|
677 |
-
unset( $data['id'] );
|
678 |
-
return $this->put( 'advanced/' . $id,json_encode( $data ) );
|
679 |
-
}
|
680 |
-
|
681 |
-
/*
|
682 |
-
Delete your Sender Information.
|
683 |
-
@param {Array} data contains php array with key value pair.
|
684 |
-
@options data {Integer} id: Id of sender to be deleted [Mandatory]
|
685 |
-
*/
|
686 |
-
public function delete_sender( $data ) {
|
687 |
-
return $this->delete( 'advanced/' . $data['id'],'' );
|
688 |
-
}
|
689 |
-
|
690 |
-
/*
|
691 |
-
Send Transactional Email.
|
692 |
-
@param {Array} data contains php array with key value pair.
|
693 |
-
@options data {Array} to: Email address of the recipient(s). It should be sent as an associative array. Example: array("to@example.net"=>"to whom"). You can use commas to separate multiple recipients [Mandatory]
|
694 |
-
@options data {String} subject: Message subject [Mandatory]
|
695 |
-
@options data {Array} from Email address for From header. It should be sent as an array. Example: array("from@email.com","from email") [Mandatory]
|
696 |
-
@options data {String} html: Body of the message. (HTML version) [Mandatory]. To send inline images, use <img src="{YourFileName.Extension}" alt="image" border="0" >, the 'src' attribute value inside {} (curly braces) should be same as the filename used in 'inline_image' parameter
|
697 |
-
@options data {String} text: Body of the message. (text version) [Optional]
|
698 |
-
@options data {Array} cc: Same as to but for Cc. Example: array("cc@example.net","cc whom") [Optional]
|
699 |
-
@options data {Array} bcc: Same as to but for Bcc. Example: array("bcc@example.net","bcc whom") [Optional]
|
700 |
-
@options data {Array} replyto: Same as from but for Reply To. Example: array("from@email.com","from email") [Optional]
|
701 |
-
@options data {Array} attachment: Provide the absolute url of the attachment/s. Possible extension values = gif, png, bmp, cgm, jpg, jpeg, txt, css, shtml, html, htm, csv, zip, pdf, xml, doc, xls, ppt, tar, and ez. To send attachment/s generated on the fly you have to pass your attachment/s filename & its base64 encoded chunk data as an associative array. Example: array("YourFileName.Extension"=>"Base64EncodedChunkData"). You can use commas to separate multiple attachments [Optional]
|
702 |
-
@options data {Array} headers: The headers will be sent along with the mail headers in original email. Example: array("Content-Type"=>"text/html; charset=iso-8859-1"). You can use commas to separate multiple headers [Optional]
|
703 |
-
@options data {Array} inline_image: Pass your inline image/s filename & its base64 encoded chunk data as an associative array. Example: array("YourFileName.Extension"=>"Base64EncodedChunkData"). You can use commas to separate multiple inline images [Optional]
|
704 |
-
*/
|
705 |
-
public function send_email( $data ) {
|
706 |
-
return $this->post( 'email',json_encode( $data ) );
|
707 |
-
}
|
708 |
-
|
709 |
-
/*
|
710 |
-
Aggregate / date-wise report of the SendinBlue SMTP account.
|
711 |
-
@param {Array} data contains php array with key value pair.
|
712 |
-
@options data {Integer} aggregate: This is used to indicate, you are interested in all-time totals. Possible values – 0 & 1. aggregate = 0 means it will not aggregate records, and will show stats per day/date wise [Optional]
|
713 |
-
@options data {String} start_date: The start date to look up statistics. Date must be in YYYY-MM-DD format and should be before the end_date [Optional]
|
714 |
-
@options data {String} end_date: The end date to look up statistics. Date must be in YYYY-MM-DD format and should be after the start_date [Optional]
|
715 |
-
@options data {Integer} days: Number of days in the past to include statistics ( Includes today ). It must be an integer greater than 0 [Optional]
|
716 |
-
@options data {String} tag: The tag you will specify to retrieve detailed stats. It must be an existing tag that has statistics [Optional]
|
717 |
-
*/
|
718 |
-
public function get_statistics( $data ) {
|
719 |
-
return $this->post( 'statistics',json_encode( $data ) );
|
720 |
-
}
|
721 |
-
|
722 |
-
/*
|
723 |
-
Get Email Event report.
|
724 |
-
@param {Array} data contains php array with key value pair.
|
725 |
-
@options data {Integer} limit: To limit the number of results returned. It should be an integer [Optional]
|
726 |
-
@options data {String} start_date: The start date to get report from. Date must be in YYYY-MM-DD format and should be before the end_date [Optional]
|
727 |
-
@options data {String} end_date: The end date to get report till date. Date must be in YYYY-MM-DD format and should be after the start_date [Optional]
|
728 |
-
@options data {Integer} offset: Beginning point in the list to retrieve from. It should be an integer [Optional]
|
729 |
-
@options data {String} date: Specific date to get its report. Date must be in YYYY-MM-DD format and should be earlier than todays date [Optional]
|
730 |
-
@options data {Integer} days: Number of days in the past (includes today). If specified, must be an integer greater than 0 [Optional]
|
731 |
-
@options data {String} email: Email address to search report for [Optional]
|
732 |
-
*/
|
733 |
-
public function get_report( $data ) {
|
734 |
-
return $this->post( 'report',json_encode( $data ) );
|
735 |
-
}
|
736 |
-
|
737 |
-
/*
|
738 |
-
Delete any hardbounce, which actually would have been blocked due to some temporary ISP failures.
|
739 |
-
@param {Array} data contains php array with key value pair.
|
740 |
-
@options data {String} start_date: The start date to get report from. Date must be in YYYY-MM-DD format and should be before the end_date [Optional]
|
741 |
-
@options data {String} end_date: The end date to get report till date. Date must be in YYYY-MM-DD format and should be after the start_date [Optional]
|
742 |
-
@options data {String} email: Email address to delete its bounces [Optional]
|
743 |
-
*/
|
744 |
-
public function delete_bounces( $data ) {
|
745 |
-
return $this->post( 'bounces',json_encode( $data ) );
|
746 |
-
}
|
747 |
-
|
748 |
-
/*
|
749 |
-
Send templates created on SendinBlue, through SendinBlue SMTP (transactional mails).
|
750 |
-
@param {Array} data contains php array with key value pair.
|
751 |
-
@options data {Integer} id: Id of the template created on SendinBlue account [Mandatory]
|
752 |
-
@options data {String} to: Email address of the recipient(s). You can use pipe ( | ) to separate multiple recipients. Example: "to-example@example.net|to2-example@example.net" [Mandatory]
|
753 |
-
@options data {String} cc: Same as to but for Cc [Optional]
|
754 |
-
@options data {String} bcc: Same as to but for Bcc [Optional]
|
755 |
-
@options data {Array} attrv The name of attribute present in your SendinBlue account. It should be sent as an associative array. Example: array("NAME"=>"name"). You can use commas to separate multiple attributes [Optional]
|
756 |
-
@options data {String} attachment_url: Provide the absolute url of the attachment. Url not allowed from local machine. File must be hosted somewhere [Optional]
|
757 |
-
@options data {Array} attachment: To send attachment/s generated on the fly you have to pass your attachment/s filename & its base64 encoded chunk data as an associative array [Optional]
|
758 |
-
*/
|
759 |
-
public function send_transactional_template( $data ) {
|
760 |
-
$id = $data['id'];
|
761 |
-
unset( $data['id'] );
|
762 |
-
return $this->put( 'template/' . $id,json_encode( $data ) );
|
763 |
-
}
|
764 |
-
|
765 |
-
/*
|
766 |
-
Create a Template.
|
767 |
-
@param {Array} data contains php array with key value pair.
|
768 |
-
@options data {String} from_name: Sender name from which the campaign emails are sent [Mandatory: for Dedicated IP clients & for Shared IP clients, if sender exists]
|
769 |
-
@options data {String} template_name: Name of the Template [Mandatory]
|
770 |
-
@options data {String} bat: Email address for test mail [Optional]
|
771 |
-
@options data {String} html_content: Body of the content. The HTML content field must have more than 10 characters [Mandatory: if html_url is empty]
|
772 |
-
@options data {String} html_url Url: which content is the body of content [Mandatory: if html_content is empty]
|
773 |
-
@options data {String} subject: Subject of the campaign [Mandatory]
|
774 |
-
@options data {String} from_email: Sender email from which the campaign emails are sent [Mandatory: for Dedicated IP clients & for Shared IP clients, if sender exists]
|
775 |
-
@options data {String} reply_to: The reply to email in the campaign emails [Optional]
|
776 |
-
@options data {String} to_fieldv This is to personalize the «To» Field. If you want to include the first name and last name of your recipient, add [PRENOM] [NOM]. To use the contact attributes here, these should already exist in SendinBlue account [Optional]
|
777 |
-
@options data {Integer} status: Status of template. Possible values = 0 (default) & 1. status = 0 means template is inactive, & status = 1 means template is active [Optional]
|
778 |
-
@options data {Integer} attachment: Status of attachment. Possible values = 0 (default) & 1. attach = 0 means an attachment can’t be sent, & attach = 1 means an attachment can be sent, in the email [Optional]
|
779 |
-
*/
|
780 |
-
public function create_template( $data ) {
|
781 |
-
return $this->post( 'template',json_encode( $data ) );
|
782 |
-
}
|
783 |
-
|
784 |
-
/*
|
785 |
-
Update a Template.
|
786 |
-
@param {Array} data contains php array with key value pair.
|
787 |
-
@options data {Integer} id: Id of Template to be modified [Mandatory]
|
788 |
-
@options data {String} from_name: Sender name from which the campaign emails are sent [Mandatory: for Dedicated IP clients & for Shared IP clients, if sender exists]
|
789 |
-
@options data {String} template_name: Name of the Template [Mandatory]
|
790 |
-
@options data {String} bat: Email address for test mail [Optional]
|
791 |
-
@options data {String} html_content: Body of the content. The HTML content field must have more than 10 characters [Mandatory: if html_url is empty]
|
792 |
-
@options data {String} html_url: Url which content is the body of content [Mandatory: if html_content is empty]
|
793 |
-
@options data {String} subject: Subject of the campaign [Mandatory]
|
794 |
-
@options data {String} from_email: Sender email from which the campaign emails are sent [Mandatory: for Dedicated IP clients & for Shared IP clients, if sender exists]
|
795 |
-
@options data {String} reply_to: The reply to email in the campaign emails [Optional]
|
796 |
-
@options data {String} to_field: This is to personalize the «To» Field. If you want to include the first name and last name of your recipient, add [PRENOM] [NOM]. To use the contact attributes here, these should already exist in SendinBlue account [Optional]
|
797 |
-
@options data {Integer} status: Status of template. Possible values = 0 (default) & 1. status = 0 means template is inactive, & status = 1 means template is active [Optional]
|
798 |
-
@options data {Integer} attachment: Status of attachment. Possible values = 0 (default) & 1. attach = 0 means an attachment can’t be sent, & attach = 1 means an attachment can be sent, in the email [Optional]
|
799 |
-
*/
|
800 |
-
public function update_template( $data ) {
|
801 |
-
$id = $data['id'];
|
802 |
-
unset( $data['id'] );
|
803 |
-
return $this->put( 'template/' . $id,json_encode( $data ) );
|
804 |
-
}
|
805 |
-
|
806 |
-
/*
|
807 |
-
Send a transactional SMS.
|
808 |
-
@param {Array} data contains php array with key value pair.
|
809 |
-
@options data {String} to: The mobile number to send SMS to with country code [Mandatory]
|
810 |
-
@options data {String} from: The name of the sender. The number of characters is limited to 11 (alphanumeric format) [Mandatory]
|
811 |
-
@options data {String} text: The text of the message. The maximum characters used per SMS is 160, if used more than that, it will be counted as more than one SMS [Mandatory]
|
812 |
-
@options data {String} web_url: The web URL that can be called once the message is successfully delivered [Optional]
|
813 |
-
@options data {String} tag: The tag that you can associate with the message [Optional]
|
814 |
-
@options data {String} type: Type of message. Possible values – marketing (default) & transactional. You can use marketing for sending marketing SMS, & for sending transactional SMS, use transactional type [Optional]
|
815 |
-
*/
|
816 |
-
public function send_sms( $data ) {
|
817 |
-
return $this->post( 'sms',json_encode( $data ) );
|
818 |
-
}
|
819 |
-
|
820 |
-
/*
|
821 |
-
Create & Schedule your SMS campaigns.
|
822 |
-
@param {Array} data contains php array with key value pair.
|
823 |
-
@options data {String} name: Name of the SMS campaign [Mandatory]
|
824 |
-
@options data {String} sender: This allows you to customize the SMS sender. The number of characters is limited to 11 ( alphanumeric format ) [Optional]
|
825 |
-
@options data {String} content: Content of the message. The maximum characters used per SMS is 160, if used more than that, it will be counted as more than one SMS [Optional]
|
826 |
-
@options data {String} bat: Mobile number with the country code to send test SMS. The mobile number defined here should belong to one of your contacts in SendinBlue account and should not be blacklisted [Optional]
|
827 |
-
@options data {Array} listid: These are the list ids to which the SMS campaign is sent [Mandatory: if scheduled_date is not empty]
|
828 |
-
@options data {Array} exclude_list: These are the list ids which will be excluded from the SMS campaign [Optional]
|
829 |
-
@options data {String} scheduled_date: The day on which the SMS campaign is supposed to run [Optional]
|
830 |
-
@options data {Integer} send_now: Flag to send campaign now. Possible values = 0 (default) & 1. send_now = 0 means campaign can’t be send now, & send_now = 1 means campaign ready to send now [Optional]
|
831 |
-
*/
|
832 |
-
public function create_sms_campaign( $data ) {
|
833 |
-
return $this->post( 'sms',json_encode( $data ) );
|
834 |
-
}
|
835 |
-
|
836 |
-
/*
|
837 |
-
Update your SMS campaigns.
|
838 |
-
@param {Array} data contains php array with key value pair.
|
839 |
-
@options data {Integer} id: Id of the SMS campaign [Mandatory]
|
840 |
-
@options data {String} name: Name of the SMS campaign [Optional]
|
841 |
-
@options data {String} sender: This allows you to customize the SMS sender. The number of characters is limited to 11 ( alphanumeric format ) [Optional]
|
842 |
-
@options data {String} content: Content of the message. The maximum characters used per SMS is 160, if used more than that, it will be counted as more than one SMS [Optional]
|
843 |
-
@options data {String} bat: Mobile number with the country code to send test SMS. The mobile number defined here should belong to one of your contacts in SendinBlue account and should not be blacklisted [Optional]
|
844 |
-
@options data {Array} listid: hese are the list ids to which the SMS campaign is sent [Mandatory: if scheduled_date is not empty]
|
845 |
-
@options data {Array} exclude_list: These are the list ids which will be excluded from the SMS campaign [Optional]
|
846 |
-
@options data {String} scheduled_date: The day on which the SMS campaign is supposed to run [Optional]
|
847 |
-
@options data {Integer} send_now: Flag to send campaign now. Possible values = 0 (default) & 1. send_now = 0 means campaign can’t be send now, & send_now = 1 means campaign ready to send now [Optional]
|
848 |
-
*/
|
849 |
-
public function update_sms_campaign( $data ) {
|
850 |
-
$id = $data['id'];
|
851 |
-
unset( $data['id'] );
|
852 |
-
return $this->put( 'sms/' . $id,json_encode( $data ) );
|
853 |
-
}
|
854 |
-
|
855 |
-
/*
|
856 |
-
Send a Test SMS.
|
857 |
-
@param {Array} data contains php array with key value pair.
|
858 |
-
@options data {Integer} id: Id of the SMS campaign [Mandatory]
|
859 |
-
@options data {String} to: Mobile number with the country code to send test SMS. The mobile number defined here should belong to one of your contacts in SendinBlue account and should not be blacklisted [Mandatory]
|
860 |
-
*/
|
861 |
-
public function send_bat_sms( $data ) {
|
862 |
-
$id = $data['id'];
|
863 |
-
unset( $data['id'] );
|
864 |
-
return $this->get( 'sms/' . $id,json_encode( $data ) );
|
865 |
-
}
|
866 |
-
|
867 |
-
}
|
868 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
option-panel.php
DELETED
@@ -1,93 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
function logincust_register_options_page() {
|
3 |
-
add_theme_page( __( 'Login Customizer','login-customizer' ), __( 'Login Customizer','login-customizer' ), 'manage_options', 'logincust_options', 'logincust_options_page' );
|
4 |
-
}
|
5 |
-
add_action( 'admin_menu', 'logincust_register_options_page' );
|
6 |
-
|
7 |
-
function logincust_admin_style() {
|
8 |
-
wp_enqueue_style( 'admin_style', LOGINCUST_FREE_URL . '/css/admin.css',array(), LOGINCUST_VERSION, false );
|
9 |
-
}
|
10 |
-
add_action( 'admin_enqueue_scripts', 'logincust_admin_style' );
|
11 |
-
|
12 |
-
|
13 |
-
function logincust_options_page() {
|
14 |
-
?>
|
15 |
-
<div class="wrap">
|
16 |
-
<div id="logincust-logo"></div>
|
17 |
-
<h2><?php _e( 'Login Customizer', 'login-customizer' ); ?></h2>
|
18 |
-
<h3><?php _e( 'Howdy!', 'login-customizer' ); ?></h3>
|
19 |
-
<p><?php _e( 'Login Customizer plugin allows you to easily customize your login page straight from your WordPress Customizer! You can preview your changes before you save them! Awesome, right?', 'login-customizer' ); ?></p>
|
20 |
-
<p><?php _e( 'In Customizer, navigate to Login Customizer', 'login-customizer' ); ?>.</p>
|
21 |
-
<a href="<?php echo get_admin_url(); ?>customize.php?url=<?php echo wp_login_url(); ?>" id="submit" class="button button-primary"><?php _e( 'Start Customizing!', 'login-customizer' ); ?></a>
|
22 |
-
<h3><?php _e( 'Credits/Support (All the unwanted crap)', 'login-customizer' ); ?></h3>
|
23 |
-
<p><?php _e( 'If you find any issues or if you want to contribute, then please free to drop me a mail at', 'login-customizer' ); ?> <a href="https://themeisle.com/contact" target="_blank" rel="nofollow"><?php _e( 'this link', 'login-customizer' ); ?></a>.</p>
|
24 |
-
<p><?php _e( 'Thanks for using this plugin. Don not forget to leave a review.', 'login-customizer' ); ?></p>
|
25 |
-
<p> <a href="https://themeisle.com/" target="_blank" rel="nofollow"><?php _e( 'ThemeIsle :)', 'login-customizer' ); ?></a>.</p>
|
26 |
-
|
27 |
-
<h3><?php _e( 'Subscribe', 'login-customizer' ); ?></h3>
|
28 |
-
<?php
|
29 |
-
if ( ! empty( $_POST['logincust_mail'] ) ) {
|
30 |
-
require( LOGINCUST_FREE_PATH . 'mailin.php' );
|
31 |
-
$was_submited = get_option( 'mail_was_submited', false );
|
32 |
-
$user_info = get_userdata( 1 );
|
33 |
-
$mailin = new Mailin( 'https://api.sendinblue.com/v2.0','cHW5sxZnzE7mhaYb' );
|
34 |
-
$data = array(
|
35 |
-
'email' => $_POST['logincust_mail'],
|
36 |
-
'attributes' => array('NAME' => $user_info->first_name, 'SURNAME' => $user_info->last_name),
|
37 |
-
'blacklisted' => 0,
|
38 |
-
'listid' => array(34),
|
39 |
-
'blacklisted_sms' => 0,
|
40 |
-
);
|
41 |
-
$status = $mailin->create_update_user( $data );
|
42 |
-
if ( $status['code'] == 'success' ) {
|
43 |
-
if ( empty( $was_submited ) ) {
|
44 |
-
add_option( 'logincust_mail_was_submited', true );
|
45 |
-
}
|
46 |
-
}
|
47 |
-
}
|
48 |
-
|
49 |
-
$was_submited = get_option( 'logincust_mail_was_submited', false );
|
50 |
-
if ( $was_submited == false ) {
|
51 |
-
echo sprintf( '<p> %s </p><form class="logincust-submit-mail" method="post"><input name="logincust_mail" type="email" class="wp-pointer-input" value="' . get_option( 'admin_email' ) . '" /><input class="button wp-pointer-submit button-primary" type="submit" value="Join Now !"></form>', esc_html__( 'Our free, 4-lesson course on how to make your WordPress site run incredibly fast is barely waiting for its students. Ready to learn how to reduce your loading times by half? Come and join the 1st lesson here!', 'login-customizer' ) );
|
52 |
-
} else {
|
53 |
-
echo sprintf( '<p> %s </p>', esc_html__( 'Thank you for subscribing! You have been added to the mailing list and will receive the next email information in the coming weeks. If you ever wish to unsubscribe, simply use the Unsubscribe link included in each newsletter.', 'login-customizer' ) );
|
54 |
-
}
|
55 |
-
?>
|
56 |
-
</div>
|
57 |
-
<?php
|
58 |
-
}
|
59 |
-
|
60 |
-
|
61 |
-
function logincust_dashboard_widget() {
|
62 |
-
wp_add_dashboard_widget( 'logincust_subscribe_widget', __( 'Subscribe', 'login-customizer' ),'logincust_subscribe_widget' );
|
63 |
-
}
|
64 |
-
add_action( 'wp_dashboard_setup', 'logincust_dashboard_widget' );
|
65 |
-
|
66 |
-
function logincust_subscribe_widget() {
|
67 |
-
if ( ! empty( $_POST['logincust_mail'] ) ) {
|
68 |
-
require( LOGINCUST_FREE_PATH . 'mailin.php' );
|
69 |
-
$was_submited = get_option( 'logincust_mail_was_submited', false );
|
70 |
-
$user_info = get_userdata( 1 );
|
71 |
-
$mailin = new Mailin( 'https://api.sendinblue.com/v2.0','cHW5sxZnzE7mhaYb' );
|
72 |
-
$data = array(
|
73 |
-
'email' => $_POST['logincust_mail'],
|
74 |
-
'attributes' => array('NAME' => $user_info->first_name, 'SURNAME' => $user_info->last_name),
|
75 |
-
'blacklisted' => 0,
|
76 |
-
'listid' => array(34),
|
77 |
-
'blacklisted_sms' => 0,
|
78 |
-
);
|
79 |
-
$status = $mailin->create_update_user( $data );
|
80 |
-
if ( $status['code'] == 'success' ) {
|
81 |
-
if ( empty( $was_submited ) ) {
|
82 |
-
add_option( 'logincust_mail_was_submited', true );
|
83 |
-
}
|
84 |
-
}
|
85 |
-
}
|
86 |
-
|
87 |
-
$was_submited = get_option( 'logincust_mail_was_submited', false );
|
88 |
-
if ( $was_submited == false ) {
|
89 |
-
echo sprintf( '<p> %s </p><form class="logincust-submit-mail" method="post"><input name="logincust_mail" type="email" class="wp-pointer-input" value="' . get_option( 'admin_email' ) . '" /><input class="button wp-pointer-submit" type="submit" value="Submit"></form>', esc_html__( 'Our free, 4-lesson course on how to make your WordPress site run incredibly fast is barely waiting for its students. Ready to learn how to reduce your loading times by half? Come and join the 1st lesson here!', 'login-customizer' ) );
|
90 |
-
} else {
|
91 |
-
echo sprintf( '<p> %s </p>', esc_html__( 'Thank you for subscribing! You have been added to the mailing list and will receive the next email information in the coming weeks. If you ever wish to unsubscribe, simply use the Unsubscribe link included in each newsletter.', 'login-customizer' ) );
|
92 |
-
}
|
93 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
readme.md
CHANGED
@@ -1,57 +1,510 @@
|
|
1 |
-
#
|
2 |
-
**
|
3 |
-
**
|
|
|
4 |
**Tested up to:** 4.8
|
5 |
-
**
|
6 |
-
**Author URI:** https://themeisle.com
|
7 |
-
**Tags:** login, customizer, logo, login logo, login customizer, login page,admin, branding, customization, custom login, error, login error, custom login pro
|
8 |
**License:** GPLv2 or later
|
9 |
**License URI:** http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
11 |
-
|
|
|
|
|
12 |
|
13 |
## Description ##
|
14 |
|
15 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
|
17 |
-
In your WordPress Dashboard, navigate to Appearance > Custom Login Page Customizer to get started.
|
18 |
|
19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
|
21 |
-
If you are looking for the best WordPress themes that works with Login Customizer check this out : <a href="http://www.codeinwp.com/blog/best-free-wordpress-themes/" target="_blank" rel="nofollow">http://www.codeinwp.com/blog/best-free-wordpress-themes/</a>
|
22 |
## Installation ##
|
23 |
|
24 |
-
1. Upload the plugin
|
25 |
-
2.
|
26 |
|
27 |
## Frequently Asked Questions ##
|
28 |
|
29 |
-
###
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
|
31 |
-
|
|
|
32 |
|
33 |
-
### How to
|
|
|
34 |
|
35 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
|
37 |
## Screenshots ##
|
38 |
|
39 |
-
1.
|
40 |
-
2.
|
|
|
|
|
|
|
41 |
|
42 |
## Changelog ##
|
43 |
-
### 1.2.0 - 2017-10-16 ###
|
44 |
|
45 |
-
|
46 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
|
|
|
|
|
48 |
|
|
|
|
|
|
|
|
|
49 |
|
50 |
-
|
|
|
51 |
|
52 |
-
|
53 |
|
54 |
-
|
|
|
55 |
|
56 |
-
|
57 |
-
*
|
1 |
+
# FEEDZY RSS Feeds Lite #
|
2 |
+
**Contributors:** [themeisle](https://profiles.wordpress.org/themeisle), [codeinwp](https://profiles.wordpress.org/codeinwp), [hardeepasrani](https://profiles.wordpress.org/hardeepasrani)
|
3 |
+
**Tags:** RSS, SimplePie, shortcode, feed, thumbnail, image, rss feeds, aggregator, tinyMCE, WYSIWYG, MCE, UI, flux, plugin, WordPress, widget, importer, XML, ATOM, API, parser
|
4 |
+
**Requires at least:** 3.7
|
5 |
**Tested up to:** 4.8
|
6 |
+
**Stable tag:** trunk
|
|
|
|
|
7 |
**License:** GPLv2 or later
|
8 |
**License URI:** http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
10 |
+
|
11 |
+
FEEDZY RSS Feeds is a small & lightweight plugin. Fast and easy to use, it aggregates RSS feeds into your site with shortcodes & widgets.
|
12 |
+
|
13 |
|
14 |
## Description ##
|
15 |
|
16 |
+
FEEDZY RSS Feeds is a small and lightweight RSS aggregator plugin. Fast and very easy to use, it allows you to aggregate multiple RSS feeds into your WordPress site through fully customizable shortcodes & widgets.
|
17 |
+
|
18 |
+
> **Time-saving features available in the FULL version:**
|
19 |
+
>
|
20 |
+
> * Integration with WordAI to avoid duplicate content
|
21 |
+
> * Audio playback template
|
22 |
+
> * Convert feed items to WordPress posts/pages/any
|
23 |
+
> * Multiple templates for feed items
|
24 |
+
> * Automatically build affiliate links
|
25 |
+
> * Parse price from product feeds
|
26 |
+
> * Blacklist specific keywords from feeds
|
27 |
+
> * Priority email support from the developer of the plugin
|
28 |
+
> * Support and updates for 12 months
|
29 |
+
>
|
30 |
+
> **[Learn more about Feedzy Full version]( https://themeisle.com/plugins/feedzy-rss-feeds/ )**
|
31 |
+
|
32 |
+
|
33 |
+
The plugin uses the SimplePie php CLASS natively included in WordPress. SimplePie is a RSS parser that can read the information contained in a feed, process it, and finally display it.
|
34 |
+
|
35 |
+
**Full cache control**
|
36 |
+
|
37 |
+
Choose right from the shortcode how often do you want your content from feeds to get updated.
|
38 |
+
|
39 |
+
**Feed Categories**
|
40 |
+
|
41 |
+
You can now group feeds into categories and reuse them across your content without worrying of their url.
|
42 |
+
|
43 |
+
|
44 |
+
FEEDZY RSS Feeds therefore supports any additional library and uses only the bare minimum to ensure good performance (minimalistic CSS + cache). This will ensure compatibility with any hosting provider that supports WordPress, but if for any reason it doesn't work for yours feel free to <a href="http://themeisle.com/contact/" rel="nofollow">contact us</a>.
|
45 |
+
|
46 |
+
|
47 |
+
= See how Feedzy can integrate with your website =
|
48 |
+
|
49 |
+
* [Audio playback template](https://demo.themeisle.com/feedzy-rss-feeds/audio-feed-template/)
|
50 |
+
* [Shop feed – 3 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/shop-feed/)
|
51 |
+
* [Feed categories – 1 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/group-feeds-categories/)
|
52 |
+
* [Large image square grid – 2 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/2-columns-large-images-square-grid/)
|
53 |
+
* [Square grid template – 3 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/square-template/)
|
54 |
+
* [Round grid templates – 3 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/round-grid-template/)
|
55 |
+
* [Standard grid layout – 2 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/grid-layout-feed-items/)
|
56 |
+
* [Blog layout – 1 column layout](https://demo.themeisle.com/feedzy-rss-feeds/blog-layout/)
|
57 |
+
|
58 |
+
|
59 |
+
You may use this plugin in your widgets and your pages and reuse the shortcode + widget several times within the same page.
|
60 |
+
|
61 |
+
By activating this plugin, your cover picture will be inserted into your RSS feeds. By doing so, you'll make it will easier for external sites to retrieve images from your feeds.
|
62 |
+
|
63 |
+
**Please ask for help or report bugs if anything goes wrong. It is the best way to make the community benefit!**
|
64 |
+
|
65 |
+
|
66 |
+
= Shortcode Parameters =
|
67 |
+
|
68 |
+
|
69 |
+
* feeds
|
70 |
+
* max
|
71 |
+
* feed_title
|
72 |
+
* target
|
73 |
+
* title
|
74 |
+
* meta
|
75 |
+
* summary
|
76 |
+
* summarylength
|
77 |
+
* thumb
|
78 |
+
* default
|
79 |
+
* refresh
|
80 |
+
* size
|
81 |
+
* keywords_title
|
82 |
+
|
83 |
+
|
84 |
+
|
85 |
+
**Plugin is now using the TinyMCE API to improve UI and makes it easy to insert shortcodes!**
|
86 |
+
|
87 |
+
|
88 |
+
### Basic example ###
|
89 |
+
|
90 |
+
`[feedzy-rss feeds="http://themeisle.com/feed"]`
|
91 |
+
|
92 |
+
|
93 |
+
### Advanced example ###
|
94 |
+
|
95 |
+
`[feedzy-rss feeds="http://themeisle.com/feed" max="2" feed_title="yes" target="_blank" refresh="12_hours" title="50" meta="yes" summary="yes" summarylength="300" thumb="yes" size="100" default="http://your-site/default-image.jpg" keywords_title="WordPress"]`
|
96 |
|
|
|
97 |
|
98 |
+
### Available Hooks ###
|
99 |
+
|
100 |
+
|
101 |
+
* feedzy_feed_items
|
102 |
+
* feedzy_item_keyword
|
103 |
+
* feedzy_item_attributes
|
104 |
+
* feedzy_thumb_output
|
105 |
+
* feedzy_title_output
|
106 |
+
* feedzy_meta_args
|
107 |
+
* feedzy_meta_output
|
108 |
+
* feedzy_summary_input
|
109 |
+
* feedzy_summary_output
|
110 |
+
* feedzy_global_output
|
111 |
+
* feedzy_thumb_sizes
|
112 |
+
* feedzy_feed_blacklist_images
|
113 |
+
* feedzy_default_image
|
114 |
+
* feedzy_default_error
|
115 |
+
* feedzy_item_filter
|
116 |
+
* feedzy_author_url
|
117 |
+
* feedzy_item_url_filter
|
118 |
+
* feedzy_feed_timestamp
|
119 |
+
* shortcode_atts_feedzy_default
|
120 |
+
|
121 |
+
This plugin is maintained and supported by Themeisle, check out some of the other <a href="http://themeisle.com/wordpress-plugins/" rel="nofollow">WordPress plugins</a> and <a href="http://themeisle.com/wordpress-themes/free/" rel="nofollow">free themes</a> we've developed.
|
122 |
+
|
123 |
+
### Languages ###
|
124 |
+
|
125 |
+
* English
|
126 |
+
* French
|
127 |
+
* Serbian [Borisa Djuraskovic](http://www.webhostinghub.com/ "Borisa Djuraskovic")
|
128 |
+
* Japanese [sama55](http://askive.cmsbox.jp/ "sama55")
|
129 |
+
* German [ralfsteck](https://profiles.wordpress.org/ralfsteck/ "ralfsteck")
|
130 |
+
* Spanish [Angel Calzado](http://sintaxisweb.es "Angel Calzado")
|
131 |
+
|
132 |
+
Become a translator and send me your translation! [Contact-me](http://themeisle.com/contact "Contact")
|
133 |
|
|
|
134 |
## Installation ##
|
135 |
|
136 |
+
1. Upload and activate the plugin (or install it through the WP admin console)
|
137 |
+
2. Insert shortcode ! ;-)
|
138 |
|
139 |
## Frequently Asked Questions ##
|
140 |
|
141 |
+
### Is it responsive friendly? ###
|
142 |
+
|
143 |
+
Yes it is.
|
144 |
+
|
145 |
+
### My feed is not displayed and the following message appears "Sorry, this feed is currently unavailable or does not exists anymore." ###
|
146 |
+
|
147 |
+
You have to check first if your feed is valid. Please test it here: https://validator.w3.org/feed/
|
148 |
+
|
149 |
+
### Where do i find the plugin documentation ###
|
150 |
+
[http://docs.themeisle.com/article/658-feedzy-rss-feeds](http://docs.themeisle.com/article/658-feedzy-rss-feeds)
|
151 |
+
|
152 |
+
### How to fix images that are not showing in the feed ###
|
153 |
+
[http://docs.themeisle.com/article/666-how-to-fix-images-that-are-not-showing-in-the-feed](http://docs.themeisle.com/article/666-how-to-fix-images-that-are-not-showing-in-the-feed)
|
154 |
+
|
155 |
+
### How to change cache lifetime for a specific feed ###
|
156 |
+
[http://docs.themeisle.com/article/547-how-to-change-cache-lifetime-for-a-specific-feed](http://docs.themeisle.com/article/547-how-to-change-cache-lifetime-for-a-specific-feed)
|
157 |
+
|
158 |
+
### How to change thumbs size and aspect ratio ###
|
159 |
+
[http://docs.themeisle.com/article/551-how-to-change-thumbs-size-and-aspect-ratio](http://docs.themeisle.com/article/551-how-to-change-thumbs-size-and-aspect-ratio)
|
160 |
+
|
161 |
+
### What hooks and filters are available in Feedzy ###
|
162 |
+
[http://docs.themeisle.com/article/540-what-hooks-and-filters-are-available-in-feedzy](http://docs.themeisle.com/article/540-what-hooks-and-filters-are-available-in-feedzy)
|
163 |
+
|
164 |
+
### How to change the blacklist image name ###
|
165 |
+
[http://docs.themeisle.com/article/552-how-to-change-the-blacklist-image-name](http://docs.themeisle.com/article/552-how-to-change-the-blacklist-image-name)
|
166 |
+
|
167 |
+
### How to decode item title ###
|
168 |
+
[http://docs.themeisle.com/article/548-how-to-decode-item-title-with](http://docs.themeisle.com/article/548-how-to-decode-item-title-with)
|
169 |
|
170 |
+
### How to remove featured image from blog feed ###
|
171 |
+
[http://docs.themeisle.com/article/554-how-to-remove-featured-image-from-blog-feed](http://docs.themeisle.com/article/554-how-to-remove-featured-image-from-blog-feed)
|
172 |
|
173 |
+
### How to keep html in feed items content ###
|
174 |
+
[http://docs.themeisle.com/article/542-how-to-keep-html-in-feed-items-content](http://docs.themeisle.com/article/542-how-to-keep-html-in-feed-items-content)
|
175 |
|
176 |
+
### How to remove plugin css ###
|
177 |
+
[http://docs.themeisle.com/article/545-how-to-remove-plugin-css](http://docs.themeisle.com/article/545-how-to-remove-plugin-css)
|
178 |
+
|
179 |
+
### How to remove links ###
|
180 |
+
[http://docs.themeisle.com/article/541-how-to-remove-links](http://docs.themeisle.com/article/541-how-to-remove-links)
|
181 |
+
|
182 |
+
### How to add a read more link ###
|
183 |
+
[http://docs.themeisle.com/article/544-how-to-add-a-read-more-link](http://docs.themeisle.com/article/544-how-to-add-a-read-more-link)
|
184 |
+
|
185 |
+
### How to remove time from publication date ###
|
186 |
+
[http://docs.themeisle.com/article/553-how-to-remove-time-from-publication-date](http://docs.themeisle.com/article/553-how-to-remove-time-from-publication-date)
|
187 |
+
|
188 |
+
### How to handle publication date and author content ###
|
189 |
+
[http://docs.themeisle.com/article/549-how-to-handle-time-and-date-content](http://docs.themeisle.com/article/549-how-to-handle-time-and-date-content)
|
190 |
+
|
191 |
+
### How to use your own inline css ###
|
192 |
+
[http://docs.themeisle.com/article/546-how-to-use-your-own-inline-css](http://docs.themeisle.com/article/546-how-to-use-your-own-inline-css)
|
193 |
+
|
194 |
+
### How to remove the end hellip ###
|
195 |
+
[http://docs.themeisle.com/article/543-how-to-remove-the-end-hellip](http://docs.themeisle.com/article/543-how-to-remove-the-end-hellip)
|
196 |
+
|
197 |
+
### How to display items in a random order ###
|
198 |
+
[http://docs.themeisle.com/article/550-how-to-display-items-in-a-random-order](http://docs.themeisle.com/article/550-how-to-display-items-in-a-random-order)
|
199 |
+
|
200 |
+
### How to sort items alphabetically by their title ###
|
201 |
+
[http://docs.themeisle.com/article/633-how-to-sort-feed-items-by-title](http://docs.themeisle.com/article/633-how-to-sort-feed-items-by-title)
|
202 |
+
|
203 |
+
### How to display RSS feed time and date in local time ###
|
204 |
+
[http://docs.themeisle.com/article/567-how-to-display-rss-feed-time-and-date-in-local-time](http://docs.themeisle.com/article/567-how-to-display-rss-feed-time-and-date-in-local-time)
|
205 |
+
|
206 |
+
### How to change author url ###
|
207 |
+
[http://docs.themeisle.com/article/636-how-to-change-author-url](http://docs.themeisle.com/article/636-how-to-change-author-url)
|
208 |
+
|
209 |
+
### How remove feed items duplicates by url ###
|
210 |
+
[http://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-item](http://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-item)
|
211 |
+
|
212 |
+
### How to use feedzy categories ###
|
213 |
+
[http://docs.themeisle.com/article/640-how-to-use-feedzy-categories](http://docs.themeisle.com/article/640-how-to-use-feedzy-categories)
|
214 |
|
215 |
## Screenshots ##
|
216 |
|
217 |
+
1. Simple example
|
218 |
+
2. Inserting a shortcode in the WYSIWYG
|
219 |
+
3. Widget admin
|
220 |
+
4. Widget render
|
221 |
+
|
222 |
|
223 |
## Changelog ##
|
|
|
224 |
|
225 |
+
### 3.2.4 - 2017-10-13 ###
|
226 |
+
|
227 |
+
* Fix for assets enqueue, loading them where are needed only.
|
228 |
+
* Removes duplicates readme.md files.
|
229 |
+
|
230 |
+
|
231 |
+
### 3.2.1 - 2017-10-12 ###
|
232 |
+
|
233 |
+
* Adds global settings page.
|
234 |
+
* Adds User Agent and Proxy settings.
|
235 |
+
* Fix for some edge cases regarding images in the feed.
|
236 |
+
|
237 |
+
|
238 |
+
### 3.2.0 - 2017-08-17 ###
|
239 |
+
|
240 |
+
* Fix for image URL issue following some strange patterns.
|
241 |
+
* Added fallback for broken feed, now if one feed from the list is not working, others will will be used.
|
242 |
+
* Added shortcode parameter for feed cache control.
|
243 |
+
|
244 |
+
|
245 |
+
### 3.1.10 - 2017-08-03 ###
|
246 |
+
|
247 |
+
* Fixed typos in shortcode builder.
|
248 |
+
* Fixed image encoding issue.
|
249 |
+
|
250 |
+
|
251 |
+
### 3.1.9 - 2017-07-21 ###
|
252 |
+
|
253 |
+
* Fixed issue with fetching images containg GET parameters.
|
254 |
+
|
255 |
+
|
256 |
+
### 3.1.8 - 2017-07-17 ###
|
257 |
+
|
258 |
+
* Fixed image fetching issues.
|
259 |
+
* Fixed link opening behaviour
|
260 |
+
* Improved description ( Thanks to @chesio )
|
261 |
+
|
262 |
+
|
263 |
+
### 3.1.7 ###
|
264 |
+
|
265 |
+
* Added new sdk logic.
|
266 |
+
* Improved compatibility with the pro version.
|
267 |
+
|
268 |
+
|
269 |
+
|
270 |
+
### 3.1.5 - 30/05/2017 ###
|
271 |
+
* Fixed issues with sdk notifications.
|
272 |
+
* Added more compatibility with pro version.
|
273 |
+
|
274 |
+
### 3.1.4 - 29/05/2017 ###
|
275 |
+
* Added new doc on how to use feedzy categories.
|
276 |
+
|
277 |
+
### 3.1.3 - 29/05/2017 ###
|
278 |
+
* Added new SDK features.
|
279 |
+
* Fixed some edge case issues on image parsing.
|
280 |
+
|
281 |
+
### 3.1.2 - 22/05/2017 ###
|
282 |
+
* Fixed author protocol.
|
283 |
+
* Added core fetch_feed method.
|
284 |
+
|
285 |
+
### 3.1.1 - 22/05/2017 ###
|
286 |
+
* Fixed span alt tag, replaced with title.
|
287 |
+
|
288 |
+
### 3.1.0 - 17/05/2017 ###
|
289 |
+
* Added feed categories for grouping urls.
|
290 |
+
* Added support for feed to post feature.
|
291 |
+
* Fixed regex for jpeg image ( Reported by @piccart )
|
292 |
+
* Added filter for author url ( Thanks to @piccart )
|
293 |
+
|
294 |
+
### 3.0.10 - 24/04/2017 ###
|
295 |
+
* Fixed wrong image regex.
|
296 |
+
* Fixed image compression.
|
297 |
+
|
298 |
+
### 3.0.9 - 21/02/2017 ###
|
299 |
+
* Added wrong feed title check.
|
300 |
+
|
301 |
+
### 3.0.8 - 20/02/2017 ###
|
302 |
+
* Added $sizes param to feedzy_thumb_output.
|
303 |
+
* Added check when title is empty.
|
304 |
+
* Fixed image encoding url.
|
305 |
+
|
306 |
+
### 3.0.6 - 27/01/2017 ###
|
307 |
+
* Added feedzy_feed_timestamp filter.
|
308 |
+
* Fixed issue with edge cases feed urls.
|
309 |
+
* Fixed error when using [] on string vars.
|
310 |
+
|
311 |
+
|
312 |
+
### 3.0.5 - 06/01/2017 ###
|
313 |
+
* Fixed issue with google news feed
|
314 |
+
|
315 |
+
### 3.0.4 - 06/01/2017 ###
|
316 |
+
* Fixed thumb='auto' behaviour
|
317 |
+
|
318 |
+
### 3.0.3 - 06/01/2017 ###
|
319 |
+
* Fixed blog feed feature image filter
|
320 |
+
* Improved documentation and examples
|
321 |
+
|
322 |
+
### 3.0.2 - 06/01/2017 ###
|
323 |
+
* Fixed default class back
|
324 |
+
|
325 |
+
### 3.0.1 - 05/01/2017 ###
|
326 |
+
* Fixed html markup error which was breaking user websites
|
327 |
+
|
328 |
+
### 3.0.0 - 10/11/2016 ###
|
329 |
+
* Refactored code base from 2.8.1 to OOP style
|
330 |
+
* Added support for PRO version
|
331 |
+
* Added new hooks feedzy_item_filter, feedzy_item_url_filter
|
332 |
+
|
333 |
+
|
334 |
+
### 2.8 - 04/14/2016 ###
|
335 |
+
* Tested on WP 4.5 with success!
|
336 |
+
* themeisle added as plugin author
|
337 |
+
* Fix a PHP7 warning in the widget contructor regarding [this topic](https://wordpress.org/support/topic/php7-debug-error?replies=1)
|
338 |
+
|
339 |
+
### 2.7.1 ###
|
340 |
+
* Remove unnecessary and redundant feedzy_wp_widget_box div container in the widget's body
|
341 |
+
* Best compliance with WordPress coding standards
|
342 |
+
* Fix a PHP warning on SimplePie error display & log
|
343 |
+
* Readme.txt update
|
344 |
+
|
345 |
+
### 2.7 ###
|
346 |
+
* Better displaying of fetching feeds errors (see error message div error-attr).
|
347 |
+
* Write errors in the WP log file
|
348 |
+
* New hook: feedzy_default_error to filter error message
|
349 |
+
* New hook: shortcode_atts_feedzy_default to filter default shortcode attibutes
|
350 |
+
* Add a link to validate feed in the TinyMCE popup modal
|
351 |
+
* French translation update
|
352 |
+
* Remove unnecessary functions
|
353 |
+
* New constant FEEDZY_VERSION
|
354 |
+
* readme.txt and hooks documentation update
|
355 |
+
|
356 |
+
### 2.6.2 ###
|
357 |
+
* Spanish translation thanks to [Angel Calzado](http://sintaxisweb.es "Angel Calzado")
|
358 |
+
* PHP issue fix in feedzy_returnImage() "strpos() expects parameter 1 to be string"
|
359 |
+
* Remove SSL from feeds URL to prevent fetching errors
|
360 |
+
* New hook: feedzy_default_image
|
361 |
+
* readme.txt and hooks documentation update
|
362 |
+
|
363 |
+
### 2.6.1 ###
|
364 |
+
* Replace jQuery live() function by on() function to prevent JS error (fix the issue with Visual composer)
|
365 |
+
* Improve image's fetching on itunes feeds
|
366 |
+
* New feature: default WP smilies are now blacklisted from image fetching
|
367 |
+
* New hook: feedzy_feed_blacklist_images
|
368 |
+
* Tested on WP 4.3 with success!
|
369 |
+
|
370 |
+
### 2.6 ###
|
371 |
+
* Fix a conflict with PageBuilder where Feedzy button does not show up in the visual editor
|
372 |
+
* Fix a typo in feedzy-rss-feeds-shortcode.php on the thumbnails span
|
373 |
+
* Replace WP_Widget by __construct() to initiate the widget because it has been deprecated since version 4.3.0
|
374 |
+
* German translation thanks to [ralfsteck](https://profiles.wordpress.org/ralfsteck/ "ralfsteck")
|
375 |
+
* Tested on WP 4.3 with success!
|
376 |
+
|
377 |
+
### 2.5.1 ###
|
378 |
+
* Japanese translation thanks to [sama55](http://askive.cmsbox.jp/ "sama55")
|
379 |
+
* Image optimisation (feedzy-default.jpg)
|
380 |
+
* Improve image's fetching to avoid catching audio or video files from item description
|
381 |
+
|
382 |
+
### 2.5 ###
|
383 |
+
* Improve author name fetching
|
384 |
+
* Better HTML marckup
|
385 |
+
* Fix PHP warning within the widget
|
386 |
+
* Fix CSS on IE when displaying images as a fallback
|
387 |
+
* CSS stylesheet update
|
388 |
+
* New hook: feedzy_item_attributes
|
389 |
+
|
390 |
+
### 2.4.3 ###
|
391 |
+
* Improve image fetching (again...)
|
392 |
+
* Fix an issue on files encoding (UTF8)
|
393 |
+
* Minor PHP improvements on the main shortcode's function
|
394 |
+
|
395 |
+
### 2.4.2 ###
|
396 |
+
* Minor fix on already encoded images names
|
397 |
+
|
398 |
+
### 2.4.1 ###
|
399 |
+
* Fix an issue on img url encode
|
400 |
+
* Retrive img url in url parameters
|
401 |
+
* Fix minor PHP warning
|
402 |
+
* New hook: feedzy_add_classes_item
|
403 |
+
|
404 |
+
### 2.4 ###
|
405 |
+
* New feature: 'auto' thumbs option added
|
406 |
+
* New hook: feedzy_thumb_sizes
|
407 |
+
* Fix issue on max number of feeds to display
|
408 |
+
* Fix HTML decode in the feed's title
|
409 |
+
* Minor PHP improvements
|
410 |
+
* readme.txt and hooks documentation update
|
411 |
+
|
412 |
+
### 2.3 ###
|
413 |
+
* New hook: feedzy_feed_items
|
414 |
+
* New hook: feedzy_item_keyword
|
415 |
+
* Introduce SimplePie native strip_htmltags() method
|
416 |
+
* Use PNG icon as SVG fallback on the visual editor button
|
417 |
+
* Improve plugin's files structure
|
418 |
+
* readme.txt and hooks documentation update
|
419 |
+
|
420 |
+
### 2.2.2 ###
|
421 |
+
* New hook: feedzy_meta_args
|
422 |
+
|
423 |
+
### 2.2.1 ###
|
424 |
+
* Minor security improvements
|
425 |
+
* Better WordPress coding standard respect
|
426 |
+
* Minor fix if does not provide item's author
|
427 |
+
* Translations update
|
428 |
+
|
429 |
+
### 2.2 ###
|
430 |
+
* Minor PHP improvements
|
431 |
+
* Remove logo from plugin meta
|
432 |
+
* New hook: feedzy_summary_input
|
433 |
+
* $feedURL argument added on every available hooks
|
434 |
+
* French translation update
|
435 |
+
* readme.txt and hooks documentation update
|
436 |
+
|
437 |
+
### 2.1 ###
|
438 |
+
* internationalization of feeds dates and times (date_i18n)
|
439 |
+
|
440 |
+
### 2.0 ###
|
441 |
+
* Widget added
|
442 |
+
* Translation update
|
443 |
+
* Better plugin file structure
|
444 |
+
* Improve image fetching with multiple enclosures
|
445 |
+
* Tested on WP 4.1 with success!
|
446 |
+
|
447 |
+
### 1.7.1 ###
|
448 |
+
* Fix typo in PHP which cause issue on fetching images
|
449 |
+
|
450 |
+
### 1.7 ###
|
451 |
+
* Minor Template and CSS changes
|
452 |
+
* New hook: feedzy_thumb_output
|
453 |
+
* New hook: feedzy_title_output
|
454 |
+
* New hook: feedzy_meta_output
|
455 |
+
* New hook: feedzy_summary_output
|
456 |
+
* New hook: feedzy_global_output
|
457 |
+
* readme.txt update
|
458 |
+
|
459 |
+
### 1.6 ###
|
460 |
+
* Minor CSS fix
|
461 |
+
* Add actions: add_action('rss_item', 'feedzy_include_thumbnail_RSS'); & add_action('rss2_item', 'feedzy_include_thumbnail_RSS')
|
462 |
+
|
463 |
+
### 1.5.4 ###
|
464 |
+
* Plugin meta translation
|
465 |
+
* Remove unnecessary spaces
|
466 |
+
|
467 |
+
### 1.5.3 ###
|
468 |
+
* TinyMCE UI translation
|
469 |
+
* Better fetching image
|
470 |
+
* Space between items is calculated based on thumbs size
|
471 |
+
|
472 |
+
### 1.5.2 ###
|
473 |
+
* Plugin meta update
|
474 |
+
|
475 |
+
### 1.5.1 ###
|
476 |
+
* New logo
|
477 |
+
* Minor CSS fixes
|
478 |
+
|
479 |
+
### 1.5 ###
|
480 |
+
* New param added to filter item with keywords
|
481 |
+
* Default thumb added
|
482 |
+
* Fix minor php issue
|
483 |
+
* Rename files of the plugin
|
484 |
+
* New logo + screenshot (assets)
|
485 |
+
|
486 |
+
### 1.4 ###
|
487 |
+
* Add "default" parameter to fill image container if no image is fetch or if it is offline
|
488 |
+
* Add more control over numeric format in max, size, title & summarylength parameters
|
489 |
+
|
490 |
+
### 1.03 ###
|
491 |
+
* Shortcode can now be displayed everywhere in the page (CSS is loaded via global var)
|
492 |
|
493 |
+
### 1.02 ###
|
494 |
+
* Error on svn tag
|
495 |
|
496 |
+
### 1.01 ###
|
497 |
+
* Minor CSS fix.
|
498 |
+
* Minor PHP changes.
|
499 |
+
* Readme.txt updated
|
500 |
|
501 |
+
### 1.0 ###
|
502 |
+
* First release.
|
503 |
|
504 |
+
## Upgrade Notice ##
|
505 |
|
506 |
+
### 1.5 ###
|
507 |
+
* IMPORTANT: You have to reactivate the plugin after its update!
|
508 |
|
509 |
+
### 1.0 ###
|
510 |
+
* First release.
|
readme.txt
CHANGED
@@ -1,57 +1,510 @@
|
|
1 |
-
===
|
2 |
-
|
3 |
-
|
|
|
4 |
Tested up to: 4.8
|
5 |
-
|
6 |
-
Author URI: https://themeisle.com
|
7 |
-
Tags: login, customizer, logo, login logo, login customizer, login page,admin, branding, customization, custom login, error, login error, custom login pro
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
11 |
-
|
|
|
|
|
12 |
|
13 |
== Description ==
|
14 |
|
15 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
|
17 |
-
|
18 |
|
19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
|
21 |
-
If you are looking for the best WordPress themes that works with Login Customizer check this out : <a href="http://www.codeinwp.com/blog/best-free-wordpress-themes/" target="_blank" rel="nofollow">http://www.codeinwp.com/blog/best-free-wordpress-themes/</a>
|
22 |
== Installation ==
|
23 |
|
24 |
-
1. Upload the plugin
|
25 |
-
2.
|
26 |
|
27 |
== Frequently Asked Questions ==
|
28 |
|
29 |
-
=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
|
31 |
-
|
|
|
32 |
|
33 |
-
= How to
|
|
|
34 |
|
35 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
|
37 |
== Screenshots ==
|
38 |
|
39 |
-
1.
|
40 |
-
2.
|
|
|
|
|
|
|
41 |
|
42 |
== Changelog ==
|
43 |
-
= 1.2.0 - 2017-10-16 =
|
44 |
|
45 |
-
|
46 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
|
|
|
|
|
48 |
|
|
|
|
|
|
|
|
|
49 |
|
50 |
-
|
|
|
51 |
|
52 |
-
|
53 |
|
54 |
-
|
|
|
55 |
|
56 |
-
|
57 |
-
*
|
1 |
+
=== FEEDZY RSS Feeds Lite ===
|
2 |
+
Contributors: themeisle,codeinwp,hardeepasrani
|
3 |
+
Tags: RSS, SimplePie, shortcode, feed, thumbnail, image, rss feeds, aggregator, tinyMCE, WYSIWYG, MCE, UI, flux, plugin, WordPress, widget, importer, XML, ATOM, API, parser
|
4 |
+
Requires at least: 3.7
|
5 |
Tested up to: 4.8
|
6 |
+
Stable tag: trunk
|
|
|
|
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
10 |
+
|
11 |
+
FEEDZY RSS Feeds is a small & lightweight plugin. Fast and easy to use, it aggregates RSS feeds into your site with shortcodes & widgets.
|
12 |
+
|
13 |
|
14 |
== Description ==
|
15 |
|
16 |
+
FEEDZY RSS Feeds is a small and lightweight RSS aggregator plugin. Fast and very easy to use, it allows you to aggregate multiple RSS feeds into your WordPress site through fully customizable shortcodes & widgets.
|
17 |
+
|
18 |
+
> **Time-saving features available in the FULL version:**
|
19 |
+
>
|
20 |
+
> * Integration with WordAI to avoid duplicate content
|
21 |
+
> * Audio playback template
|
22 |
+
> * Convert feed items to WordPress posts/pages/any
|
23 |
+
> * Multiple templates for feed items
|
24 |
+
> * Automatically build affiliate links
|
25 |
+
> * Parse price from product feeds
|
26 |
+
> * Blacklist specific keywords from feeds
|
27 |
+
> * Priority email support from the developer of the plugin
|
28 |
+
> * Support and updates for 12 months
|
29 |
+
>
|
30 |
+
> **[Learn more about Feedzy Full version]( https://themeisle.com/plugins/feedzy-rss-feeds/ )**
|
31 |
+
|
32 |
+
|
33 |
+
The plugin uses the SimplePie php CLASS natively included in WordPress. SimplePie is a RSS parser that can read the information contained in a feed, process it, and finally display it.
|
34 |
+
|
35 |
+
**Full cache control**
|
36 |
+
|
37 |
+
Choose right from the shortcode how often do you want your content from feeds to get updated.
|
38 |
+
|
39 |
+
**Feed Categories**
|
40 |
+
|
41 |
+
You can now group feeds into categories and reuse them across your content without worrying of their url.
|
42 |
+
|
43 |
+
|
44 |
+
FEEDZY RSS Feeds therefore supports any additional library and uses only the bare minimum to ensure good performance (minimalistic CSS + cache). This will ensure compatibility with any hosting provider that supports WordPress, but if for any reason it doesn't work for yours feel free to <a href="http://themeisle.com/contact/" rel="nofollow">contact us</a>.
|
45 |
+
|
46 |
+
|
47 |
+
= See how Feedzy can integrate with your website =
|
48 |
+
|
49 |
+
* [Audio playback template](https://demo.themeisle.com/feedzy-rss-feeds/audio-feed-template/)
|
50 |
+
* [Shop feed – 3 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/shop-feed/)
|
51 |
+
* [Feed categories – 1 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/group-feeds-categories/)
|
52 |
+
* [Large image square grid – 2 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/2-columns-large-images-square-grid/)
|
53 |
+
* [Square grid template – 3 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/square-template/)
|
54 |
+
* [Round grid templates – 3 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/round-grid-template/)
|
55 |
+
* [Standard grid layout – 2 columns layout](https://demo.themeisle.com/feedzy-rss-feeds/grid-layout-feed-items/)
|
56 |
+
* [Blog layout – 1 column layout](https://demo.themeisle.com/feedzy-rss-feeds/blog-layout/)
|
57 |
+
|
58 |
+
|
59 |
+
You may use this plugin in your widgets and your pages and reuse the shortcode + widget several times within the same page.
|
60 |
+
|
61 |
+
By activating this plugin, your cover picture will be inserted into your RSS feeds. By doing so, you'll make it will easier for external sites to retrieve images from your feeds.
|
62 |
+
|
63 |
+
**Please ask for help or report bugs if anything goes wrong. It is the best way to make the community benefit!**
|
64 |
+
|
65 |
+
|
66 |
+
= Shortcode Parameters =
|
67 |
+
|
68 |
+
`
|
69 |
+
* feeds
|
70 |
+
* max
|
71 |
+
* feed_title
|
72 |
+
* target
|
73 |
+
* title
|
74 |
+
* meta
|
75 |
+
* summary
|
76 |
+
* summarylength
|
77 |
+
* thumb
|
78 |
+
* default
|
79 |
+
* refresh
|
80 |
+
* size
|
81 |
+
* keywords_title
|
82 |
+
`
|
83 |
+
|
84 |
+
|
85 |
+
**Plugin is now using the TinyMCE API to improve UI and makes it easy to insert shortcodes!**
|
86 |
+
|
87 |
+
|
88 |
+
= Basic example =
|
89 |
+
|
90 |
+
`[feedzy-rss feeds="http://themeisle.com/feed"]`
|
91 |
+
|
92 |
+
|
93 |
+
= Advanced example =
|
94 |
+
|
95 |
+
`[feedzy-rss feeds="http://themeisle.com/feed" max="2" feed_title="yes" target="_blank" refresh="12_hours" title="50" meta="yes" summary="yes" summarylength="300" thumb="yes" size="100" default="http://your-site/default-image.jpg" keywords_title="WordPress"]`
|
96 |
+
|
97 |
|
98 |
+
= Available Hooks =
|
99 |
|
100 |
+
`
|
101 |
+
* feedzy_feed_items
|
102 |
+
* feedzy_item_keyword
|
103 |
+
* feedzy_item_attributes
|
104 |
+
* feedzy_thumb_output
|
105 |
+
* feedzy_title_output
|
106 |
+
* feedzy_meta_args
|
107 |
+
* feedzy_meta_output
|
108 |
+
* feedzy_summary_input
|
109 |
+
* feedzy_summary_output
|
110 |
+
* feedzy_global_output
|
111 |
+
* feedzy_thumb_sizes
|
112 |
+
* feedzy_feed_blacklist_images
|
113 |
+
* feedzy_default_image
|
114 |
+
* feedzy_default_error
|
115 |
+
* feedzy_item_filter
|
116 |
+
* feedzy_author_url
|
117 |
+
* feedzy_item_url_filter
|
118 |
+
* feedzy_feed_timestamp
|
119 |
+
* shortcode_atts_feedzy_default
|
120 |
+
`
|
121 |
+
This plugin is maintained and supported by Themeisle, check out some of the other <a href="http://themeisle.com/wordpress-plugins/" rel="nofollow">WordPress plugins</a> and <a href="http://themeisle.com/wordpress-themes/free/" rel="nofollow">free themes</a> we've developed.
|
122 |
+
|
123 |
+
= Languages =
|
124 |
+
|
125 |
+
* English
|
126 |
+
* French
|
127 |
+
* Serbian [Borisa Djuraskovic](http://www.webhostinghub.com/ "Borisa Djuraskovic")
|
128 |
+
* Japanese [sama55](http://askive.cmsbox.jp/ "sama55")
|
129 |
+
* German [ralfsteck](https://profiles.wordpress.org/ralfsteck/ "ralfsteck")
|
130 |
+
* Spanish [Angel Calzado](http://sintaxisweb.es "Angel Calzado")
|
131 |
+
|
132 |
+
Become a translator and send me your translation! [Contact-me](http://themeisle.com/contact "Contact")
|
133 |
|
|
|
134 |
== Installation ==
|
135 |
|
136 |
+
1. Upload and activate the plugin (or install it through the WP admin console)
|
137 |
+
2. Insert shortcode ! ;-)
|
138 |
|
139 |
== Frequently Asked Questions ==
|
140 |
|
141 |
+
= Is it responsive friendly? =
|
142 |
+
|
143 |
+
Yes it is.
|
144 |
+
|
145 |
+
= My feed is not displayed and the following message appears "Sorry, this feed is currently unavailable or does not exists anymore." =
|
146 |
+
|
147 |
+
You have to check first if your feed is valid. Please test it here: https://validator.w3.org/feed/
|
148 |
+
|
149 |
+
= Where do i find the plugin documentation =
|
150 |
+
[http://docs.themeisle.com/article/658-feedzy-rss-feeds](http://docs.themeisle.com/article/658-feedzy-rss-feeds)
|
151 |
+
|
152 |
+
= How to fix images that are not showing in the feed =
|
153 |
+
[http://docs.themeisle.com/article/666-how-to-fix-images-that-are-not-showing-in-the-feed](http://docs.themeisle.com/article/666-how-to-fix-images-that-are-not-showing-in-the-feed)
|
154 |
+
|
155 |
+
= How to change cache lifetime for a specific feed =
|
156 |
+
[http://docs.themeisle.com/article/547-how-to-change-cache-lifetime-for-a-specific-feed](http://docs.themeisle.com/article/547-how-to-change-cache-lifetime-for-a-specific-feed)
|
157 |
+
|
158 |
+
= How to change thumbs size and aspect ratio =
|
159 |
+
[http://docs.themeisle.com/article/551-how-to-change-thumbs-size-and-aspect-ratio](http://docs.themeisle.com/article/551-how-to-change-thumbs-size-and-aspect-ratio)
|
160 |
+
|
161 |
+
= What hooks and filters are available in Feedzy =
|
162 |
+
[http://docs.themeisle.com/article/540-what-hooks-and-filters-are-available-in-feedzy](http://docs.themeisle.com/article/540-what-hooks-and-filters-are-available-in-feedzy)
|
163 |
+
|
164 |
+
= How to change the blacklist image name =
|
165 |
+
[http://docs.themeisle.com/article/552-how-to-change-the-blacklist-image-name](http://docs.themeisle.com/article/552-how-to-change-the-blacklist-image-name)
|
166 |
+
|
167 |
+
= How to decode item title =
|
168 |
+
[http://docs.themeisle.com/article/548-how-to-decode-item-title-with](http://docs.themeisle.com/article/548-how-to-decode-item-title-with)
|
169 |
+
|
170 |
+
= How to remove featured image from blog feed =
|
171 |
+
[http://docs.themeisle.com/article/554-how-to-remove-featured-image-from-blog-feed](http://docs.themeisle.com/article/554-how-to-remove-featured-image-from-blog-feed)
|
172 |
+
|
173 |
+
= How to keep html in feed items content =
|
174 |
+
[http://docs.themeisle.com/article/542-how-to-keep-html-in-feed-items-content](http://docs.themeisle.com/article/542-how-to-keep-html-in-feed-items-content)
|
175 |
+
|
176 |
+
= How to remove plugin css =
|
177 |
+
[http://docs.themeisle.com/article/545-how-to-remove-plugin-css](http://docs.themeisle.com/article/545-how-to-remove-plugin-css)
|
178 |
|
179 |
+
= How to remove links =
|
180 |
+
[http://docs.themeisle.com/article/541-how-to-remove-links](http://docs.themeisle.com/article/541-how-to-remove-links)
|
181 |
|
182 |
+
= How to add a read more link =
|
183 |
+
[http://docs.themeisle.com/article/544-how-to-add-a-read-more-link](http://docs.themeisle.com/article/544-how-to-add-a-read-more-link)
|
184 |
|
185 |
+
= How to remove time from publication date =
|
186 |
+
[http://docs.themeisle.com/article/553-how-to-remove-time-from-publication-date](http://docs.themeisle.com/article/553-how-to-remove-time-from-publication-date)
|
187 |
+
|
188 |
+
= How to handle publication date and author content =
|
189 |
+
[http://docs.themeisle.com/article/549-how-to-handle-time-and-date-content](http://docs.themeisle.com/article/549-how-to-handle-time-and-date-content)
|
190 |
+
|
191 |
+
= How to use your own inline css =
|
192 |
+
[http://docs.themeisle.com/article/546-how-to-use-your-own-inline-css](http://docs.themeisle.com/article/546-how-to-use-your-own-inline-css)
|
193 |
+
|
194 |
+
= How to remove the end hellip =
|
195 |
+
[http://docs.themeisle.com/article/543-how-to-remove-the-end-hellip](http://docs.themeisle.com/article/543-how-to-remove-the-end-hellip)
|
196 |
+
|
197 |
+
= How to display items in a random order =
|
198 |
+
[http://docs.themeisle.com/article/550-how-to-display-items-in-a-random-order](http://docs.themeisle.com/article/550-how-to-display-items-in-a-random-order)
|
199 |
+
|
200 |
+
= How to sort items alphabetically by their title =
|
201 |
+
[http://docs.themeisle.com/article/633-how-to-sort-feed-items-by-title](http://docs.themeisle.com/article/633-how-to-sort-feed-items-by-title)
|
202 |
+
|
203 |
+
= How to display RSS feed time and date in local time =
|
204 |
+
[http://docs.themeisle.com/article/567-how-to-display-rss-feed-time-and-date-in-local-time](http://docs.themeisle.com/article/567-how-to-display-rss-feed-time-and-date-in-local-time)
|
205 |
+
|
206 |
+
= How to change author url =
|
207 |
+
[http://docs.themeisle.com/article/636-how-to-change-author-url](http://docs.themeisle.com/article/636-how-to-change-author-url)
|
208 |
+
|
209 |
+
= How remove feed items duplicates by url =
|
210 |
+
[http://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-item](http://docs.themeisle.com/article/638-how-to-eliminate-duplicate-feed-item)
|
211 |
+
|
212 |
+
= How to use feedzy categories =
|
213 |
+
[http://docs.themeisle.com/article/640-how-to-use-feedzy-categories](http://docs.themeisle.com/article/640-how-to-use-feedzy-categories)
|
214 |
|
215 |
== Screenshots ==
|
216 |
|
217 |
+
1. Simple example
|
218 |
+
2. Inserting a shortcode in the WYSIWYG
|
219 |
+
3. Widget admin
|
220 |
+
4. Widget render
|
221 |
+
|
222 |
|
223 |
== Changelog ==
|
|
|
224 |
|
225 |
+
= 3.2.4 - 2017-10-13 =
|
226 |
+
|
227 |
+
* Fix for assets enqueue, loading them where are needed only.
|
228 |
+
* Removes duplicates readme.md files.
|
229 |
+
|
230 |
+
|
231 |
+
= 3.2.1 - 2017-10-12 =
|
232 |
+
|
233 |
+
* Adds global settings page.
|
234 |
+
* Adds User Agent and Proxy settings.
|
235 |
+
* Fix for some edge cases regarding images in the feed.
|
236 |
+
|
237 |
+
|
238 |
+
= 3.2.0 - 2017-08-17 =
|
239 |
+
|
240 |
+
* Fix for image URL issue following some strange patterns.
|
241 |
+
* Added fallback for broken feed, now if one feed from the list is not working, others will will be used.
|
242 |
+
* Added shortcode parameter for feed cache control.
|
243 |
+
|
244 |
+
|
245 |
+
= 3.1.10 - 2017-08-03 =
|
246 |
+
|
247 |
+
* Fixed typos in shortcode builder.
|
248 |
+
* Fixed image encoding issue.
|
249 |
+
|
250 |
+
|
251 |
+
= 3.1.9 - 2017-07-21 =
|
252 |
+
|
253 |
+
* Fixed issue with fetching images containg GET parameters.
|
254 |
+
|
255 |
+
|
256 |
+
= 3.1.8 - 2017-07-17 =
|
257 |
+
|
258 |
+
* Fixed image fetching issues.
|
259 |
+
* Fixed link opening behaviour
|
260 |
+
* Improved description ( Thanks to @chesio )
|
261 |
+
|
262 |
+
|
263 |
+
= 3.1.7 =
|
264 |
+
|
265 |
+
* Added new sdk logic.
|
266 |
+
* Improved compatibility with the pro version.
|
267 |
+
|
268 |
+
|
269 |
+
|
270 |
+
= 3.1.5 - 30/05/2017 =
|
271 |
+
* Fixed issues with sdk notifications.
|
272 |
+
* Added more compatibility with pro version.
|
273 |
+
|
274 |
+
= 3.1.4 - 29/05/2017 =
|
275 |
+
* Added new doc on how to use feedzy categories.
|
276 |
+
|
277 |
+
= 3.1.3 - 29/05/2017 =
|
278 |
+
* Added new SDK features.
|
279 |
+
* Fixed some edge case issues on image parsing.
|
280 |
+
|
281 |
+
= 3.1.2 - 22/05/2017 =
|
282 |
+
* Fixed author protocol.
|
283 |
+
* Added core fetch_feed method.
|
284 |
+
|
285 |
+
= 3.1.1 - 22/05/2017 =
|
286 |
+
* Fixed span alt tag, replaced with title.
|
287 |
+
|
288 |
+
= 3.1.0 - 17/05/2017 =
|
289 |
+
* Added feed categories for grouping urls.
|
290 |
+
* Added support for feed to post feature.
|
291 |
+
* Fixed regex for jpeg image ( Reported by @piccart )
|
292 |
+
* Added filter for author url ( Thanks to @piccart )
|
293 |
+
|
294 |
+
= 3.0.10 - 24/04/2017 =
|
295 |
+
* Fixed wrong image regex.
|
296 |
+
* Fixed image compression.
|
297 |
+
|
298 |
+
= 3.0.9 - 21/02/2017 =
|
299 |
+
* Added wrong feed title check.
|
300 |
+
|
301 |
+
= 3.0.8 - 20/02/2017 =
|
302 |
+
* Added $sizes param to feedzy_thumb_output.
|
303 |
+
* Added check when title is empty.
|
304 |
+
* Fixed image encoding url.
|
305 |
+
|
306 |
+
= 3.0.6 - 27/01/2017 =
|
307 |
+
* Added feedzy_feed_timestamp filter.
|
308 |
+
* Fixed issue with edge cases feed urls.
|
309 |
+
* Fixed error when using [] on string vars.
|
310 |
+
|
311 |
+
|
312 |
+
= 3.0.5 - 06/01/2017 =
|
313 |
+
* Fixed issue with google news feed
|
314 |
+
|
315 |
+
= 3.0.4 - 06/01/2017 =
|
316 |
+
* Fixed thumb='auto' behaviour
|
317 |
+
|
318 |
+
= 3.0.3 - 06/01/2017 =
|
319 |
+
* Fixed blog feed feature image filter
|
320 |
+
* Improved documentation and examples
|
321 |
+
|
322 |
+
= 3.0.2 - 06/01/2017 =
|
323 |
+
* Fixed default class back
|
324 |
+
|
325 |
+
= 3.0.1 - 05/01/2017 =
|
326 |
+
* Fixed html markup error which was breaking user websites
|
327 |
+
|
328 |
+
= 3.0.0 - 10/11/2016 =
|
329 |
+
* Refactored code base from 2.8.1 to OOP style
|
330 |
+
* Added support for PRO version
|
331 |
+
* Added new hooks feedzy_item_filter, feedzy_item_url_filter
|
332 |
+
|
333 |
+
|
334 |
+
= 2.8 - 04/14/2016 =
|
335 |
+
* Tested on WP 4.5 with success!
|
336 |
+
* themeisle added as plugin author
|
337 |
+
* Fix a PHP7 warning in the widget contructor regarding [this topic](https://wordpress.org/support/topic/php7-debug-error?replies=1)
|
338 |
+
|
339 |
+
= 2.7.1 =
|
340 |
+
* Remove unnecessary and redundant feedzy_wp_widget_box div container in the widget's body
|
341 |
+
* Best compliance with WordPress coding standards
|
342 |
+
* Fix a PHP warning on SimplePie error display & log
|
343 |
+
* Readme.txt update
|
344 |
+
|
345 |
+
= 2.7 =
|
346 |
+
* Better displaying of fetching feeds errors (see error message div error-attr).
|
347 |
+
* Write errors in the WP log file
|
348 |
+
* New hook: feedzy_default_error to filter error message
|
349 |
+
* New hook: shortcode_atts_feedzy_default to filter default shortcode attibutes
|
350 |
+
* Add a link to validate feed in the TinyMCE popup modal
|
351 |
+
* French translation update
|
352 |
+
* Remove unnecessary functions
|
353 |
+
* New constant FEEDZY_VERSION
|
354 |
+
* readme.txt and hooks documentation update
|
355 |
+
|
356 |
+
= 2.6.2 =
|
357 |
+
* Spanish translation thanks to [Angel Calzado](http://sintaxisweb.es "Angel Calzado")
|
358 |
+
* PHP issue fix in feedzy_returnImage() "strpos() expects parameter 1 to be string"
|
359 |
+
* Remove SSL from feeds URL to prevent fetching errors
|
360 |
+
* New hook: feedzy_default_image
|
361 |
+
* readme.txt and hooks documentation update
|
362 |
+
|
363 |
+
= 2.6.1 =
|
364 |
+
* Replace jQuery live() function by on() function to prevent JS error (fix the issue with Visual composer)
|
365 |
+
* Improve image's fetching on itunes feeds
|
366 |
+
* New feature: default WP smilies are now blacklisted from image fetching
|
367 |
+
* New hook: feedzy_feed_blacklist_images
|
368 |
+
* Tested on WP 4.3 with success!
|
369 |
+
|
370 |
+
= 2.6 =
|
371 |
+
* Fix a conflict with PageBuilder where Feedzy button does not show up in the visual editor
|
372 |
+
* Fix a typo in feedzy-rss-feeds-shortcode.php on the thumbnails span
|
373 |
+
* Replace WP_Widget by __construct() to initiate the widget because it has been deprecated since version 4.3.0
|
374 |
+
* German translation thanks to [ralfsteck](https://profiles.wordpress.org/ralfsteck/ "ralfsteck")
|
375 |
+
* Tested on WP 4.3 with success!
|
376 |
+
|
377 |
+
= 2.5.1 =
|
378 |
+
* Japanese translation thanks to [sama55](http://askive.cmsbox.jp/ "sama55")
|
379 |
+
* Image optimisation (feedzy-default.jpg)
|
380 |
+
* Improve image's fetching to avoid catching audio or video files from item description
|
381 |
+
|
382 |
+
= 2.5 =
|
383 |
+
* Improve author name fetching
|
384 |
+
* Better HTML marckup
|
385 |
+
* Fix PHP warning within the widget
|
386 |
+
* Fix CSS on IE when displaying images as a fallback
|
387 |
+
* CSS stylesheet update
|
388 |
+
* New hook: feedzy_item_attributes
|
389 |
+
|
390 |
+
= 2.4.3 =
|
391 |
+
* Improve image fetching (again...)
|
392 |
+
* Fix an issue on files encoding (UTF8)
|
393 |
+
* Minor PHP improvements on the main shortcode's function
|
394 |
+
|
395 |
+
= 2.4.2 =
|
396 |
+
* Minor fix on already encoded images names
|
397 |
+
|
398 |
+
= 2.4.1 =
|
399 |
+
* Fix an issue on img url encode
|
400 |
+
* Retrive img url in url parameters
|
401 |
+
* Fix minor PHP warning
|
402 |
+
* New hook: feedzy_add_classes_item
|
403 |
+
|
404 |
+
= 2.4 =
|
405 |
+
* New feature: 'auto' thumbs option added
|
406 |
+
* New hook: feedzy_thumb_sizes
|
407 |
+
* Fix issue on max number of feeds to display
|
408 |
+
* Fix HTML decode in the feed's title
|
409 |
+
* Minor PHP improvements
|
410 |
+
* readme.txt and hooks documentation update
|
411 |
+
|
412 |
+
= 2.3 =
|
413 |
+
* New hook: feedzy_feed_items
|
414 |
+
* New hook: feedzy_item_keyword
|
415 |
+
* Introduce SimplePie native strip_htmltags() method
|
416 |
+
* Use PNG icon as SVG fallback on the visual editor button
|
417 |
+
* Improve plugin's files structure
|
418 |
+
* readme.txt and hooks documentation update
|
419 |
+
|
420 |
+
= 2.2.2 =
|
421 |
+
* New hook: feedzy_meta_args
|
422 |
+
|
423 |
+
= 2.2.1 =
|
424 |
+
* Minor security improvements
|
425 |
+
* Better WordPress coding standard respect
|
426 |
+
* Minor fix if does not provide item's author
|
427 |
+
* Translations update
|
428 |
+
|
429 |
+
= 2.2 =
|
430 |
+
* Minor PHP improvements
|
431 |
+
* Remove logo from plugin meta
|
432 |
+
* New hook: feedzy_summary_input
|
433 |
+
* $feedURL argument added on every available hooks
|
434 |
+
* French translation update
|
435 |
+
* readme.txt and hooks documentation update
|
436 |
+
|
437 |
+
= 2.1 =
|
438 |
+
* internationalization of feeds dates and times (date_i18n)
|
439 |
+
|
440 |
+
= 2.0 =
|
441 |
+
* Widget added
|
442 |
+
* Translation update
|
443 |
+
* Better plugin file structure
|
444 |
+
* Improve image fetching with multiple enclosures
|
445 |
+
* Tested on WP 4.1 with success!
|
446 |
+
|
447 |
+
= 1.7.1 =
|
448 |
+
* Fix typo in PHP which cause issue on fetching images
|
449 |
+
|
450 |
+
= 1.7 =
|
451 |
+
* Minor Template and CSS changes
|
452 |
+
* New hook: feedzy_thumb_output
|
453 |
+
* New hook: feedzy_title_output
|
454 |
+
* New hook: feedzy_meta_output
|
455 |
+
* New hook: feedzy_summary_output
|
456 |
+
* New hook: feedzy_global_output
|
457 |
+
* readme.txt update
|
458 |
+
|
459 |
+
= 1.6 =
|
460 |
+
* Minor CSS fix
|
461 |
+
* Add actions: add_action('rss_item', 'feedzy_include_thumbnail_RSS'); & add_action('rss2_item', 'feedzy_include_thumbnail_RSS')
|
462 |
+
|
463 |
+
= 1.5.4 =
|
464 |
+
* Plugin meta translation
|
465 |
+
* Remove unnecessary spaces
|
466 |
+
|
467 |
+
= 1.5.3 =
|
468 |
+
* TinyMCE UI translation
|
469 |
+
* Better fetching image
|
470 |
+
* Space between items is calculated based on thumbs size
|
471 |
+
|
472 |
+
= 1.5.2 =
|
473 |
+
* Plugin meta update
|
474 |
+
|
475 |
+
= 1.5.1 =
|
476 |
+
* New logo
|
477 |
+
* Minor CSS fixes
|
478 |
+
|
479 |
+
= 1.5 =
|
480 |
+
* New param added to filter item with keywords
|
481 |
+
* Default thumb added
|
482 |
+
* Fix minor php issue
|
483 |
+
* Rename files of the plugin
|
484 |
+
* New logo + screenshot (assets)
|
485 |
+
|
486 |
+
= 1.4 =
|
487 |
+
* Add "default" parameter to fill image container if no image is fetch or if it is offline
|
488 |
+
* Add more control over numeric format in max, size, title & summarylength parameters
|
489 |
+
|
490 |
+
= 1.03 =
|
491 |
+
* Shortcode can now be displayed everywhere in the page (CSS is loaded via global var)
|
492 |
|
493 |
+
= 1.02 =
|
494 |
+
* Error on svn tag
|
495 |
|
496 |
+
= 1.01 =
|
497 |
+
* Minor CSS fix.
|
498 |
+
* Minor PHP changes.
|
499 |
+
* Readme.txt updated
|
500 |
|
501 |
+
= 1.0 =
|
502 |
+
* First release.
|
503 |
|
504 |
+
== Upgrade Notice ==
|
505 |
|
506 |
+
= 1.5 =
|
507 |
+
* IMPORTANT: You have to reactivate the plugin after its update!
|
508 |
|
509 |
+
= 1.0 =
|
510 |
+
* First release.
|
screenshot-1.png
DELETED
Binary file
|
screenshot-2.png
DELETED
Binary file
|
uninstall.php
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Fired when the plugin is uninstalled.
|
4 |
+
*
|
5 |
+
* When populating this file, consider the following flow
|
6 |
+
* of control:
|
7 |
+
*
|
8 |
+
* - This method should be static
|
9 |
+
* - Check if the $_REQUEST content actually is the plugin name
|
10 |
+
* - Run an admin referrer check to make sure it goes through authentication
|
11 |
+
* - Verify the output of $_GET makes sense
|
12 |
+
* - Repeat with other user roles. Best directly by using the links/query string parameters.
|
13 |
+
* - Repeat things for multisite. Once for a single site in the network, once sitewide.
|
14 |
+
*
|
15 |
+
* @link http://themeisle.com
|
16 |
+
* @since 3.0.0
|
17 |
+
*
|
18 |
+
* @package Feedzy_Rss_Feeds
|
19 |
+
*/
|
20 |
+
|
21 |
+
// If uninstall not called from WordPress, then exit.
|
22 |
+
if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
|
23 |
+
exit;
|
24 |
+
}
|
vendor/autoload.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once __DIR__ . '/composer' . '/autoload_real.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once __DIR__ . '/composer' . '/autoload_real.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInit71b9976292a72846b9d61edd36602f54::getLoader();
|
vendor/autoload_52.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInit0ee835a1dc3b31d64dca86f79d70c22c::getLoader();
|
vendor/composer/autoload_files.php
CHANGED
@@ -7,5 +7,5 @@ $baseDir = dirname($vendorDir);
|
|
7 |
|
8 |
return array(
|
9 |
'957c51f8f334b5ea3be310bfb8b3492c' => $vendorDir . '/codeinwp/themeisle-sdk/load.php',
|
10 |
-
'
|
11 |
);
|
7 |
|
8 |
return array(
|
9 |
'957c51f8f334b5ea3be310bfb8b3492c' => $vendorDir . '/codeinwp/themeisle-sdk/load.php',
|
10 |
+
'3df8ee254224091c21b9aebb792d2f8b' => $vendorDir . '/codeinwp/themeisle-sdk/load.php',
|
11 |
);
|
vendor/composer/autoload_real.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit5d593ec899c187d7e85d0e35ce2a5203
|
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
25 |
|
26 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
27 |
foreach ($map as $namespace => $path) {
|
@@ -42,14 +42,14 @@ class ComposerAutoloaderInit5d593ec899c187d7e85d0e35ce2a5203
|
|
42 |
|
43 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
44 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
45 |
-
|
46 |
}
|
47 |
|
48 |
return $loader;
|
49 |
}
|
50 |
}
|
51 |
|
52 |
-
function
|
53 |
{
|
54 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
55 |
require $file;
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInit71b9976292a72846b9d61edd36602f54
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
+
spl_autoload_register(array('ComposerAutoloaderInit71b9976292a72846b9d61edd36602f54', 'loadClassLoader'), true, true);
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit71b9976292a72846b9d61edd36602f54', 'loadClassLoader'));
|
25 |
|
26 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
27 |
foreach ($map as $namespace => $path) {
|
42 |
|
43 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
44 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
45 |
+
composerRequire71b9976292a72846b9d61edd36602f54($fileIdentifier, $file);
|
46 |
}
|
47 |
|
48 |
return $loader;
|
49 |
}
|
50 |
}
|
51 |
|
52 |
+
function composerRequire71b9976292a72846b9d61edd36602f54($fileIdentifier, $file)
|
53 |
{
|
54 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
55 |
require $file;
|
vendor/composer/autoload_real_52.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real_52.php generated by xrstf/composer-php52
|
4 |
|
5 |
-
class
|
6 |
private static $loader;
|
7 |
|
8 |
public static function loadClassLoader($class) {
|
@@ -19,9 +19,9 @@ class ComposerAutoloaderInite571e19d9881ee8f827ce1bbf4c5fff5 {
|
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
self::$loader = $loader = new xrstf_Composer52_ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
25 |
|
26 |
$vendorDir = dirname(dirname(__FILE__));
|
27 |
$baseDir = dirname($vendorDir);
|
2 |
|
3 |
// autoload_real_52.php generated by xrstf/composer-php52
|
4 |
|
5 |
+
class ComposerAutoloaderInit0ee835a1dc3b31d64dca86f79d70c22c {
|
6 |
private static $loader;
|
7 |
|
8 |
public static function loadClassLoader($class) {
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
+
spl_autoload_register(array('ComposerAutoloaderInit0ee835a1dc3b31d64dca86f79d70c22c', 'loadClassLoader'), true /*, true */);
|
23 |
self::$loader = $loader = new xrstf_Composer52_ClassLoader();
|
24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit0ee835a1dc3b31d64dca86f79d70c22c', 'loadClassLoader'));
|
25 |
|
26 |
$vendorDir = dirname(dirname(__FILE__));
|
27 |
$baseDir = dirname($vendorDir);
|