Version Description
- New media selection on newsletter editor with size picker
- Fixed the required attribute on profile form
- Support for Analytics extension
Download this release
Release Info
Developer | satollo |
Plugin | Newsletter |
Version | 4.8.0 |
Comparing to | |
See all releases |
Code changes from version 4.5.5 to 4.8.0
- admin.css +374 -43
- api/add.php +0 -46
- api/delete.php +0 -13
- css/dropdown.css +2 -1
- css/jquery-ui/jquery-ui.css +4 -4
- do/change.php +0 -48
- do/confirm.php +0 -6
- do/profile.php +0 -7
- do/save.php +0 -10
- do/subscribe.php +0 -6
- do/subscription.php +0 -26
- do/unlock.php +0 -6
- do/unsubscribe.php +0 -5
- do/unsubscription.php +0 -6
- do/view.php +0 -3
- emails/composer.php +5 -0
- emails/cpreview.php +40 -14
- emails/create.php +0 -54
- emails/css.php +0 -17
- emails/edit.php +70 -31
- emails/emails.php +132 -7
- emails/index.php +5 -2
- emails/new.php +29 -29
- emails/preview-text.php +0 -15
- emails/preview.php +0 -13
- emails/theme.php +6 -4
- emails/themes/blank/theme-options.php +8 -5
- emails/themes/blank/theme-text.php +3 -0
- emails/themes/blank/theme.php +3 -1
- emails/themes/cta-2015/theme-options.php +10 -7
- emails/themes/cta-2015/theme.php +166 -159
- emails/themes/default/footer.php +10 -7
- emails/themes/default/images/instagram.png +0 -0
- emails/themes/default/images/pinterest.png +0 -0
- emails/themes/default/images/tumblr.png +0 -0
- emails/themes/default/social-options.php +45 -38
- emails/themes/default/social.php +62 -55
- emails/themes/default/social_main.php +50 -43
- emails/themes/default/theme-options.php +60 -78
- emails/themes/default/theme-text.php +3 -1
- emails/themes/default/theme.php +6 -4
- emails/themes/linear/theme-options.php +21 -17
- emails/themes/linear/theme-text.php +4 -1
- emails/themes/linear/theme.php +4 -1
- emails/themes/pint/theme-options.php +18 -14
- emails/themes/pint/theme-text.php +4 -1
- emails/themes/pint/theme.php +2 -0
- emails/themes/simple/theme-text.php +4 -1
- emails/themes/simple/theme.php +3 -0
- emails/themes/theme-1/theme-options.php +46 -42
- emails/themes/theme-1/theme-text.php +3 -0
- emails/themes/theme-1/theme.php +3 -0
- emails/themes/theme-3/theme-options.php +47 -43
- emails/themes/theme-3/theme-text.php +3 -0
- emails/themes/theme-3/theme.php +3 -0
- emails/themes/vimeo-like/theme-options.php +64 -60
- emails/themes/vimeo-like/theme-text.php +4 -1
- emails/themes/vimeo-like/theme.php +3 -0
- emails/themes/xmas-2014/theme.php +124 -121
- emails/tnp-composer/_css/newsletter-builder.css +1 -0
- emails/tnp-composer/_scripts/newsletter-builder.js +361 -354
- emails/tnp-composer/blocks/{content-01-hero.block → content-01-hero.block.php} +1 -1
- emails/tnp-composer/blocks/{content-01-hero.png → content-01-hero.block.png} +0 -0
- emails/tnp-composer/blocks/{content-02-heading.block → content-02-heading.block.php} +1 -1
- emails/tnp-composer/blocks/{content-02-heading.png → content-02-heading.block.png} +0 -0
- emails/tnp-composer/blocks/content-03-text.block +0 -12
- trunk/emails/tnp-composer/blocks/content-03-text.block → emails/tnp-composer/blocks/content-03-text.block.php +1 -1
- emails/tnp-composer/blocks/{content-03-text.png → content-03-text.block.png} +0 -0
- emails/tnp-composer/blocks/{content-04-cta.block → content-04-cta.block.php} +0 -0
- emails/tnp-composer/blocks/{content-04-cta.png → content-04-cta.block.png} +0 -0
- emails/tnp-composer/blocks/content-05-image.block +0 -12
- trunk/emails/tnp-composer/blocks/content-05-image.block → emails/tnp-composer/blocks/content-05-image.block.php +1 -1
- emails/tnp-composer/blocks/{content-05-image.png → content-05-image.block.png} +0 -0
- emails/tnp-composer/blocks/content-06-posts.block +0 -84
- trunk/emails/tnp-composer/blocks/content-06-posts.block → emails/tnp-composer/blocks/content-06-posts.block.php +2 -2
- emails/tnp-composer/blocks/{content-06-posts.png → content-06-posts.block.png} +0 -0
- emails/tnp-composer/blocks/{content-07-twocols.block → content-07-twocols.block.php} +1 -1
- emails/tnp-composer/blocks/{content-07-twocols.png → content-07-twocols.block.png} +0 -0
- emails/tnp-composer/blocks/{footer-01-footer.block → footer-01-footer.block.php} +0 -0
- emails/tnp-composer/blocks/{footer-01-footer.png → footer-01-footer.block.png} +0 -0
- emails/tnp-composer/blocks/{footer-02-canspam.block → footer-02-canspam.block.php} +0 -0
- emails/tnp-composer/blocks/{footer-02-canspam.png → footer-02-canspam.block.png} +0 -0
- emails/tnp-composer/blocks/{footer-03-social.block → footer-03-social.block.php} +5 -0
- emails/tnp-composer/blocks/{footer-03-social.png → footer-03-social.block.png} +0 -0
- emails/tnp-composer/blocks/header-01-header.block +0 -34
- trunk/emails/tnp-composer/blocks/header-01-header.block → emails/tnp-composer/blocks/header-01-header.block.php +6 -2
- emails/tnp-composer/blocks/{header-01-header.png → header-01-header.block.png} +0 -0
- emails/tnp-composer/edit.php +50 -42
- emails/tnp-composer/index.php +87 -85
- feed/feed.php +0 -26
- feed/index.php +0 -26
- header-extension.php +31 -28
- includes/controls.php +109 -82
- includes/helper.php +2 -0
- includes/logger.php +84 -77
- includes/module.php +21 -26
- includes/store.php +8 -2
- includes/themes.php +218 -217
- lock/index.php +2 -0
- lock/lock.php +1 -0
- main/diagnostic.php +74 -276
- main/extensions.php +154 -14
- main/index.php +3 -1
- main/info.php +202 -191
- main/main.php +49 -16
- main/smtp.php +2 -0
- main/startup.php +163 -161
- main/status.php +892 -0
- plugin.php +136 -96
- readme.txt +137 -4
- statistics/index.php +8 -7
- statistics/link.php +0 -69
- statistics/newsletters.php +5 -3
- statistics/open.php +0 -21
- statistics/settings.php +2 -0
- statistics/statistics.php +121 -16
- statistics/view-retarget.php +2 -0
- statistics/view-urls.php +2 -0
- statistics/view-users.php +2 -0
- statistics/view.php +16 -4
- subscription/forms.php +2 -0
- subscription/languages/en_US.php +2 -2
- subscription/lists.php +2 -0
- subscription/options.php +60 -14
- subscription/page.php +1 -1
- subscription/profile.php +4 -20
- subscription/style.css +261 -0
- subscription/styles/gray.css +0 -34
- subscription/styles/neutral.css +0 -62
- subscription/styles/shortcode/default.css +0 -36
- subscription/styles/white.css +0 -34
- subscription/styles/widget-neutral.css +0 -54
- subscription/styles/widget-neutral/button.png +0 -0
- subscription/subscription.php +501 -439
- subscription/template.php +29 -6
- subscription/unsubscription.php +2 -0
- subscription/validate.js +31 -0
- tnp-footer.php +3 -0
- tnp-header.php +8 -26
- trunk/admin.css +0 -1120
- trunk/admin.js +0 -41
- trunk/api/add.php +0 -46
- trunk/api/delete.php +0 -13
- trunk/css/dropdown.css +0 -150
- trunk/css/jquery-ui/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- trunk/css/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- trunk/css/jquery-ui/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- trunk/css/jquery-ui/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- trunk/css/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- trunk/css/jquery-ui/images/ui-bg_highlight-soft_100_f6f6f6_1x100.png +0 -0
- trunk/css/jquery-ui/images/ui-bg_highlight-soft_25_0073ea_1x100.png +0 -0
- trunk/css/jquery-ui/images/ui-bg_highlight-soft_50_dddddd_1x100.png +0 -0
- trunk/css/jquery-ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- trunk/css/jquery-ui/images/ui-icons_0073ea_256x240.png +0 -0
- trunk/css/jquery-ui/images/ui-icons_222222_256x240.png +0 -0
- trunk/css/jquery-ui/images/ui-icons_2e83ff_256x240.png +0 -0
- trunk/css/jquery-ui/images/ui-icons_454545_256x240.png +0 -0
- trunk/css/jquery-ui/images/ui-icons_666666_256x240.png +0 -0
- trunk/css/jquery-ui/images/ui-icons_888888_256x240.png +0 -0
- trunk/css/jquery-ui/images/ui-icons_cd0a0a_256x240.png +0 -0
- trunk/css/jquery-ui/images/ui-icons_ff0084_256x240.png +0 -0
- trunk/css/jquery-ui/images/ui-icons_ffffff_256x240.png +0 -0
- trunk/css/jquery-ui/jquery-ui.css +0 -1225
- trunk/css/jqvmap.css +0 -50
- trunk/do/change.php +0 -48
- trunk/do/confirm.php +0 -6
- trunk/do/profile.php +0 -7
- trunk/do/save.php +0 -10
- trunk/do/subscribe.php +0 -6
- trunk/do/subscription.php +0 -26
- trunk/do/unlock.php +0 -6
- trunk/do/unsubscribe.php +0 -5
- trunk/do/unsubscription.php +0 -6
- trunk/do/view.php +0 -3
- trunk/editor.css +0 -4
- trunk/emails/composer.php +0 -107
- trunk/emails/cpreview.php +0 -480
- trunk/emails/create.php +0 -54
- trunk/emails/css.php +0 -17
- trunk/emails/edit.php +0 -486
- trunk/emails/editor.css +0 -4
- trunk/emails/emails.php +0 -152
- trunk/emails/index.php +0 -155
- trunk/emails/languages/en_US.php +0 -7
- trunk/emails/languages/en_US.po +0 -172
- trunk/emails/languages/it_IT.mo +0 -0
- trunk/emails/languages/it_IT.po +0 -180
- trunk/emails/new.php +0 -172
- trunk/emails/preview-text.php +0 -15
- trunk/emails/preview.php +0 -13
- trunk/emails/theme.php +0 -89
- trunk/emails/themes/blank/screenshot.png +0 -0
- trunk/emails/themes/blank/theme-options.php +0 -6
- trunk/emails/themes/blank/theme-text.php +0 -8
- trunk/emails/themes/blank/theme.php +0 -43
- trunk/emails/themes/composer.gif +0 -0
- trunk/emails/themes/cta-2015/images/facebook.png +0 -0
- trunk/emails/themes/cta-2015/images/flickr.png +0 -0
- trunk/emails/themes/cta-2015/images/googleplus.png +0 -0
- trunk/emails/themes/cta-2015/images/instagram.png +0 -0
- trunk/emails/themes/cta-2015/images/linkedin.png +0 -0
- trunk/emails/themes/cta-2015/images/pinterest.png +0 -0
- trunk/emails/themes/cta-2015/images/twitter.png +0 -0
- trunk/emails/themes/cta-2015/images/vimeo.png +0 -0
- trunk/emails/themes/cta-2015/images/youtube.png +0 -0
- trunk/emails/themes/cta-2015/screenshot.png +0 -0
- trunk/emails/themes/cta-2015/theme-options.php +0 -8
- trunk/emails/themes/cta-2015/theme.php +0 -160
- trunk/emails/themes/default/footer.php +0 -8
- trunk/emails/themes/default/images/facebook.png +0 -0
- trunk/emails/themes/default/images/googleplus.png +0 -0
- trunk/emails/themes/default/images/linkedin.png +0 -0
- trunk/emails/themes/default/images/pinterest.png +0 -0
- trunk/emails/themes/default/images/soundcloud.png +0 -0
- trunk/emails/themes/default/images/tumblr.png +0 -0
- trunk/emails/themes/default/images/twitter.png +0 -0
- trunk/emails/themes/default/images/vimeo.png +0 -0
- trunk/emails/themes/default/images/youtube.png +0 -0
- trunk/emails/themes/default/screenshot.png +0 -0
- trunk/emails/themes/default/social-options.php +0 -39
- trunk/emails/themes/default/social.php +0 -56
- trunk/emails/themes/default/social_main.php +0 -44
- trunk/emails/themes/default/theme-options.php +0 -78
- trunk/emails/themes/default/theme-text.php +0 -8
- trunk/emails/themes/default/theme.php +0 -116
- trunk/emails/themes/linear/images/facebook.png +0 -0
- trunk/emails/themes/linear/images/purple.png +0 -0
- trunk/emails/themes/linear/images/twitter.png +0 -0
- trunk/emails/themes/linear/images/youtube.png +0 -0
- trunk/emails/themes/linear/screenshot.png +0 -0
- trunk/emails/themes/linear/theme-options.php +0 -18
- trunk/emails/themes/linear/theme-text.php +0 -8
- trunk/emails/themes/linear/theme.php +0 -118
- trunk/emails/themes/pint/images/bg.jpg +0 -0
- trunk/emails/themes/pint/screenshot.png +0 -0
- trunk/emails/themes/pint/theme-options.php +0 -15
- trunk/emails/themes/pint/theme-text.php +0 -8
- trunk/emails/themes/pint/theme.php +0 -83
- trunk/emails/themes/simple/screenshot.png +0 -0
- trunk/emails/themes/simple/theme-options.php +0 -1
- trunk/emails/themes/simple/theme-text.php +0 -8
- trunk/emails/themes/simple/theme.php +0 -155
- trunk/emails/themes/theme-1/screenshot.png +0 -0
- trunk/emails/themes/theme-1/theme-options.php +0 -42
- trunk/emails/themes/theme-1/theme-text.php +0 -46
- trunk/emails/themes/theme-1/theme.php +0 -110
- trunk/emails/themes/theme-3/header.jpg +0 -0
- trunk/emails/themes/theme-3/screenshot.png +0 -0
- trunk/emails/themes/theme-3/theme-options.php +0 -43
- trunk/emails/themes/theme-3/theme-text.php +0 -46
- trunk/emails/themes/theme-3/theme.php +0 -121
- trunk/emails/themes/vimeo-like/bg_header_email.gif +0 -0
- trunk/emails/themes/vimeo-like/screenshot.png +0 -0
- trunk/emails/themes/vimeo-like/theme-options.php +0 -60
- trunk/emails/themes/vimeo-like/theme-text.php +0 -8
- trunk/emails/themes/vimeo-like/theme.php +0 -152
- trunk/emails/themes/xmas-2014/images/footer.png +0 -0
- trunk/emails/themes/xmas-2014/images/header.png +0 -0
- trunk/emails/themes/xmas-2014/screenshot.png +0 -0
- trunk/emails/themes/xmas-2014/theme.php +0 -122
- trunk/emails/tnp-composer/_assets/background.png +0 -0
- trunk/emails/tnp-composer/_css/Icomoon/icomoon.eot +0 -0
- trunk/emails/tnp-composer/_css/Icomoon/icomoon.svg +0 -1536
admin.css
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
|
2 |
@import url(//fonts.googleapis.com/css?family=Montserrat:400,700);
|
3 |
@import url(//fonts.googleapis.com/css?family=Source+Sans+Pro:700);
|
4 |
-
@import url(//maxcdn.bootstrapcdn.com/font-awesome/4.
|
5 |
@import url(css/dropdown.css);
|
6 |
@import url(css/jquery-ui/jquery-ui.css);
|
7 |
@import url(statistics/css/tnp-statistics.css);
|
@@ -99,12 +99,7 @@
|
|
99 |
.col-md-offset-0 {margin-left: 0;}
|
100 |
|
101 |
|
102 |
-
|
103 |
-
.ui-widget-header {
|
104 |
-
background: none;
|
105 |
-
border: 0;
|
106 |
-
border-bottom: 1px solid #ddd;
|
107 |
-
}
|
108 |
|
109 |
/* HEADER *********************************************************************/
|
110 |
#tnp-header {
|
@@ -196,63 +191,171 @@
|
|
196 |
}
|
197 |
*/
|
198 |
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
206 |
}
|
207 |
|
208 |
-
|
209 |
-
|
|
|
|
|
210 |
}
|
211 |
|
212 |
-
|
213 |
-
|
214 |
}
|
215 |
|
216 |
-
|
|
|
|
|
217 |
}
|
218 |
|
219 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
220 |
}
|
221 |
|
222 |
-
|
|
|
|
|
|
|
|
|
|
|
223 |
}
|
224 |
|
225 |
-
|
226 |
-
|
|
|
|
|
227 |
}
|
228 |
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
}
|
233 |
|
234 |
-
.form-table {
|
235 |
background-color: #fff;
|
236 |
border: 1px solid #ddd;
|
237 |
}
|
238 |
|
239 |
-
.form-table th {
|
240 |
text-align: right;
|
241 |
font-weight: bold;
|
242 |
border-right: 1px solid #ddd;
|
243 |
max-width: 200px;
|
244 |
color: #000000;
|
245 |
}
|
246 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
247 |
font-weight: normal;
|
|
|
248 |
}
|
249 |
|
250 |
-
.
|
251 |
text-align: left;
|
|
|
252 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
253 |
|
254 |
|
255 |
-
|
256 |
margin-top: 5px;
|
257 |
padding: 5px;
|
258 |
}
|
@@ -291,9 +394,7 @@ table.clicks {
|
|
291 |
background-color: #aaa;
|
292 |
}
|
293 |
|
294 |
-
|
295 |
-
width: 100%;
|
296 |
-
}
|
297 |
|
298 |
.hints {
|
299 |
xborder: 1px solid #e4e4ee;
|
@@ -704,11 +805,11 @@ p.description {
|
|
704 |
|
705 |
#tnp-body {
|
706 |
padding: 10px;
|
707 |
-
background-color: #
|
708 |
-
border-
|
709 |
-
border-color: #34495E;
|
710 |
border-width: 10px;
|
711 |
border-style: solid;
|
|
|
712 |
}
|
713 |
|
714 |
.tnp-darkbg {
|
@@ -716,7 +817,7 @@ p.description {
|
|
716 |
}
|
717 |
|
718 |
#tnp-body h3 {
|
719 |
-
margin-top:
|
720 |
clear: both;
|
721 |
}
|
722 |
|
@@ -729,7 +830,7 @@ p.description {
|
|
729 |
|
730 |
#tnp-heading {
|
731 |
padding: 10px;
|
732 |
-
background-color: #
|
733 |
margin-bottom: 10px;
|
734 |
border-radius: 5px;
|
735 |
}
|
@@ -848,6 +949,10 @@ p.description {
|
|
848 |
|
849 |
/* Dashboard Box */
|
850 |
|
|
|
|
|
|
|
|
|
851 |
.postbox {
|
852 |
border: none;
|
853 |
}
|
@@ -935,8 +1040,7 @@ p.description {
|
|
935 |
#tnp-footer {
|
936 |
margin-top: 10px;
|
937 |
padding: 20px 10px 10px 40px;
|
938 |
-
background-color: #
|
939 |
-
border-radius: 5px;
|
940 |
font-family: "Montserrat", sans-serif;
|
941 |
}
|
942 |
|
@@ -970,7 +1074,7 @@ p.description {
|
|
970 |
/* Wrapper Background */
|
971 |
|
972 |
#wpwrap {
|
973 |
-
background-color: #
|
974 |
}
|
975 |
|
976 |
/* Global buttons styles */
|
@@ -1117,4 +1221,231 @@ span.wp-media-buttons-icon:before {
|
|
1117 |
|
1118 |
.tnp-chart {
|
1119 |
border: 1px solid #eee;
|
1120 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
2 |
@import url(//fonts.googleapis.com/css?family=Montserrat:400,700);
|
3 |
@import url(//fonts.googleapis.com/css?family=Source+Sans+Pro:700);
|
4 |
+
@import url(//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css);
|
5 |
@import url(css/dropdown.css);
|
6 |
@import url(css/jquery-ui/jquery-ui.css);
|
7 |
@import url(statistics/css/tnp-statistics.css);
|
99 |
.col-md-offset-0 {margin-left: 0;}
|
100 |
|
101 |
|
102 |
+
|
|
|
|
|
|
|
|
|
|
|
103 |
|
104 |
/* HEADER *********************************************************************/
|
105 |
#tnp-header {
|
191 |
}
|
192 |
*/
|
193 |
|
194 |
+
#tnp-body,
|
195 |
+
#tnp-body p,
|
196 |
+
#tnp-body td,
|
197 |
+
#tnp-body th,
|
198 |
+
#tnp-body input,
|
199 |
+
#tnp-body select,
|
200 |
+
#tnp-body textarea
|
201 |
+
{
|
202 |
+
xfont-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
|
203 |
+
}
|
204 |
+
|
205 |
+
/* Default font colors for our dark background page body */
|
206 |
+
#tnp-body h1,
|
207 |
+
#tnp-body h2,
|
208 |
+
#tnp-body h3,
|
209 |
+
#tnp-body h4,
|
210 |
+
#tnp-body p {
|
211 |
+
color: #fff;
|
212 |
}
|
213 |
|
214 |
+
#tnp-body .form-table h1,
|
215 |
+
#tnp-body .form-table h2,
|
216 |
+
#tnp-body .form-table h3 {
|
217 |
+
font-family: "Montserrat",sans-serif!important;
|
218 |
}
|
219 |
|
220 |
+
#tnp-body a, #tnp-body a:hover, #tnp-body a:visited, #tnp-body a:active {
|
221 |
+
color: #E67E22; /* Orange */
|
222 |
}
|
223 |
|
224 |
+
/* Actiojn button container */
|
225 |
+
#tnp-body .tnp-submit {
|
226 |
+
margin-bottom: 10px;
|
227 |
}
|
228 |
|
229 |
+
/* Primary button correction */
|
230 |
+
#tnp-body .button,
|
231 |
+
#tnp-body .button:visited,
|
232 |
+
#tnp-body .button:hover,
|
233 |
+
#tnp-body .button-primary,
|
234 |
+
#tnp-body .button-primary:visited,
|
235 |
+
#tnp-body .button-primary:hover,
|
236 |
+
#tnp-body .button-secondary,
|
237 |
+
#tnp-body .button-secondary:visited,
|
238 |
+
#tnp-body .button-secondary:hover {
|
239 |
+
color: #fff;
|
240 |
}
|
241 |
|
242 |
+
/* Form tables correction */
|
243 |
+
#tnp-body .form-table h1,
|
244 |
+
#tnp-body .form-table h2,
|
245 |
+
#tnp-body .form-table h4,
|
246 |
+
#tnp-body .form-table h3 {
|
247 |
+
color: #444;
|
248 |
}
|
249 |
|
250 |
+
#tnp-body .form-table th,
|
251 |
+
#tnp-body .form-table td,
|
252 |
+
#tnp-body .form-table p {
|
253 |
+
color: #444;
|
254 |
}
|
255 |
|
256 |
+
#tnp-body .form-table td a,
|
257 |
+
#tnp-body .form-table td a:visited {
|
258 |
+
color: #27AE60; /* Green */
|
259 |
}
|
260 |
|
261 |
+
#tnp-body .form-table {
|
262 |
background-color: #fff;
|
263 |
border: 1px solid #ddd;
|
264 |
}
|
265 |
|
266 |
+
#tnp-body .form-table th {
|
267 |
text-align: right;
|
268 |
font-weight: bold;
|
269 |
border-right: 1px solid #ddd;
|
270 |
max-width: 200px;
|
271 |
color: #000000;
|
272 |
}
|
273 |
+
|
274 |
+
#tnp-body .form-table th small {
|
275 |
+
font-weight: normal;
|
276 |
+
}
|
277 |
+
|
278 |
+
#tnp-body .form-table textarea {
|
279 |
+
width: 100%;
|
280 |
+
}
|
281 |
+
|
282 |
+
/* Table inside a field form table to create a grid of options */
|
283 |
+
#tnp-body .form-table table {
|
284 |
+
border-collapse: collapse;
|
285 |
+
}
|
286 |
+
|
287 |
+
#tnp-body .form-table table td,
|
288 |
+
.form-table table th {
|
289 |
+
padding: 5px;
|
290 |
+
font-size: .9em;
|
291 |
font-weight: normal;
|
292 |
+
border: 1px solid #eee;
|
293 |
}
|
294 |
|
295 |
+
#tnp-body .form-table table thead th {
|
296 |
text-align: left;
|
297 |
+
font-weight: bold;
|
298 |
}
|
299 |
+
/* End of a table inside a form table */
|
300 |
+
|
301 |
+
/* Wide fat tables */
|
302 |
+
#tnp-body .widefat th {
|
303 |
+
text-align: left;
|
304 |
+
}
|
305 |
+
|
306 |
+
/* Buttons on widgets top bar */
|
307 |
+
#tnp-body .tnp-widget h3 a,
|
308 |
+
#tnp-body .tnp-widget h3 a:visited,
|
309 |
+
#tnp-body .tnp-widget h3 a:hover {
|
310 |
+
color: #fff;
|
311 |
+
}
|
312 |
+
|
313 |
+
/* jQuery UI tabs corrections */
|
314 |
+
#tnp-body #tabs h1,
|
315 |
+
#tnp-body #tabs h2,
|
316 |
+
#tnp-body #tabs h3,
|
317 |
+
#tnp-body #tabs h4,
|
318 |
+
#tnp-body #tabs p,
|
319 |
+
#tnp-body #tabs td,
|
320 |
+
#tnp-body #tabs th,
|
321 |
+
#tnp-body #tabs input,
|
322 |
+
#tnp-body #tabs select,
|
323 |
+
#tnp-body #tabs textarea,
|
324 |
+
#tnp-body #tabs a {
|
325 |
+
color: #444;
|
326 |
+
}
|
327 |
+
|
328 |
+
/* Button correction */
|
329 |
+
#tnp-body #tabs .button,
|
330 |
+
#tnp-body #tabs .button:visited,
|
331 |
+
#tnp-body #tabs .button:hover,
|
332 |
+
#tnp-body #tabs .button-primary,
|
333 |
+
#tnp-body #tabs .button-primary:visited,
|
334 |
+
#tnp-body #tabs .button-primary:hover,
|
335 |
+
#tnp-body #tabs .button-secondary,
|
336 |
+
#tnp-body #tabs .button-secondary:visited,
|
337 |
+
#tnp-body #tabs .button-secondary:hover {
|
338 |
+
color: #fff;
|
339 |
+
}
|
340 |
+
|
341 |
+
#tnp-body #tabs .ui-widget-header {
|
342 |
+
background: none;
|
343 |
+
border: 0;
|
344 |
+
border-bottom: 1px solid #ddd;
|
345 |
+
}
|
346 |
+
|
347 |
+
#tnp-body #tabs .ui-tabs-panel {
|
348 |
+
padding: 15px!important;
|
349 |
+
}
|
350 |
+
|
351 |
+
#tnp-body #tabs a.ui-tabs-anchor,
|
352 |
+
#tnp-body #tabs a.ui-tabs-anchor:visited {
|
353 |
+
color: #444;
|
354 |
+
}
|
355 |
+
|
356 |
|
357 |
|
358 |
+
div.submit {
|
359 |
margin-top: 5px;
|
360 |
padding: 5px;
|
361 |
}
|
394 |
background-color: #aaa;
|
395 |
}
|
396 |
|
397 |
+
|
|
|
|
|
398 |
|
399 |
.hints {
|
400 |
xborder: 1px solid #e4e4ee;
|
805 |
|
806 |
#tnp-body {
|
807 |
padding: 10px;
|
808 |
+
background-color: #28313C;
|
809 |
+
border-color: #28313C;
|
|
|
810 |
border-width: 10px;
|
811 |
border-style: solid;
|
812 |
+
overflow: auto;
|
813 |
}
|
814 |
|
815 |
.tnp-darkbg {
|
817 |
}
|
818 |
|
819 |
#tnp-body h3 {
|
820 |
+
margin-top: 25px;
|
821 |
clear: both;
|
822 |
}
|
823 |
|
830 |
|
831 |
#tnp-heading {
|
832 |
padding: 10px;
|
833 |
+
background-color: #28313C;
|
834 |
margin-bottom: 10px;
|
835 |
border-radius: 5px;
|
836 |
}
|
949 |
|
950 |
/* Dashboard Box */
|
951 |
|
952 |
+
.metabox-holder {
|
953 |
+
width: 100%;
|
954 |
+
}
|
955 |
+
|
956 |
.postbox {
|
957 |
border: none;
|
958 |
}
|
1040 |
#tnp-footer {
|
1041 |
margin-top: 10px;
|
1042 |
padding: 20px 10px 10px 40px;
|
1043 |
+
background-color: #28313C;
|
|
|
1044 |
font-family: "Montserrat", sans-serif;
|
1045 |
}
|
1046 |
|
1074 |
/* Wrapper Background */
|
1075 |
|
1076 |
#wpwrap {
|
1077 |
+
background-color: #222B36 !important;
|
1078 |
}
|
1079 |
|
1080 |
/* Global buttons styles */
|
1221 |
|
1222 |
.tnp-chart {
|
1223 |
border: 1px solid #eee;
|
1224 |
+
}
|
1225 |
+
|
1226 |
+
.tnp-db-table {
|
1227 |
+
width: auto;
|
1228 |
+
background-color: #fff;
|
1229 |
+
}
|
1230 |
+
|
1231 |
+
.tnp-db-table thead {
|
1232 |
+
border-bottom: 1px solid #eee;
|
1233 |
+
}
|
1234 |
+
|
1235 |
+
.tnp-db-table th {
|
1236 |
+
font-weight: bold;
|
1237 |
+
}
|
1238 |
+
|
1239 |
+
.tnp-db-table td, .tnp-db-table th {
|
1240 |
+
padding: 3px;
|
1241 |
+
font-family: monospace;
|
1242 |
+
border: 0;
|
1243 |
+
}
|
1244 |
+
|
1245 |
+
/* STATUS PANEL */
|
1246 |
+
|
1247 |
+
.tnp-main-status h3, .tnp-main-status h4 {
|
1248 |
+
color: #fff;
|
1249 |
+
}
|
1250 |
+
|
1251 |
+
#tnp-status-table .tnp-ok {
|
1252 |
+
font-weight: bold;
|
1253 |
+
color: white;
|
1254 |
+
font-size: 14px;
|
1255 |
+
background-color: #27AE60;
|
1256 |
+
padding: 2px 10px;
|
1257 |
+
border-radius: 10px;
|
1258 |
+
}
|
1259 |
+
|
1260 |
+
#tnp-status-table .tnp-ko {
|
1261 |
+
font-weight: bold;
|
1262 |
+
color: white;
|
1263 |
+
font-size: 14px;
|
1264 |
+
background-color: #E74C41;
|
1265 |
+
padding: 2px 10px;
|
1266 |
+
border-radius: 10px;
|
1267 |
+
}
|
1268 |
+
|
1269 |
+
#tnp-status-table .tnp-maybe {
|
1270 |
+
font-weight: bold;
|
1271 |
+
color: white;
|
1272 |
+
font-size: 14px;
|
1273 |
+
background-color: #F1C40F;
|
1274 |
+
padding: 2px 10px;
|
1275 |
+
border-radius: 10px;
|
1276 |
+
}
|
1277 |
+
|
1278 |
+
.tnp-main-status .tnp-log-files li {
|
1279 |
+
padding-left: 15px;
|
1280 |
+
}
|
1281 |
+
|
1282 |
+
.tnp-main-status .tnp-log-files li, .tnp-main-status .tnp-log-files li a {
|
1283 |
+
color: #fff;
|
1284 |
+
}
|
1285 |
+
|
1286 |
+
.tnp-main-status .tnp-log-files .tnp-log-size {
|
1287 |
+
font-style: italic;
|
1288 |
+
}
|
1289 |
+
|
1290 |
+
table.widefat {
|
1291 |
+
border: 0;
|
1292 |
+
box-shadow: none;
|
1293 |
+
}
|
1294 |
+
|
1295 |
+
#tnp-status-table tbody tr:nth-child(2n+1) {
|
1296 |
+
background-color: #ECF0F1;
|
1297 |
+
border-radius: 2px;
|
1298 |
+
margin: 5px;
|
1299 |
+
}
|
1300 |
+
|
1301 |
+
#tnp-parameters-table tbody tr:nth-child(2n+1) {
|
1302 |
+
background-color: #ECF0F1;
|
1303 |
+
border-radius: 2px;
|
1304 |
+
margin: 5px;
|
1305 |
+
}
|
1306 |
+
|
1307 |
+
|
1308 |
+
|
1309 |
+
|
1310 |
+
/* Extension Panel */
|
1311 |
+
|
1312 |
+
|
1313 |
+
|
1314 |
+
.tnp-extension-premium-box, .tnp-extension-free-box, .tnp-integration-box {
|
1315 |
+
width: 300px;
|
1316 |
+
height: 220px;
|
1317 |
+
background-color: #222B36;
|
1318 |
+
text-align: center;
|
1319 |
+
margin: 20px;
|
1320 |
+
float: left;
|
1321 |
+
position: relative;
|
1322 |
+
}
|
1323 |
+
|
1324 |
+
.tnp-extension-premium-box:hover, .tnp-extension-free-box:hover, .tnp-integration-box:hover {
|
1325 |
+
background-color: #232C35;
|
1326 |
+
box-shadow: 1px 1px 15px #222B36;
|
1327 |
+
}
|
1328 |
+
|
1329 |
+
.tnp-extension-premium-box p, .tnp-extension-free-box p, .tnp-integration-box p {
|
1330 |
+
padding: 5px 10px;
|
1331 |
+
color: #72777c;
|
1332 |
+
font-size: 14px;
|
1333 |
+
margin-top: 0px;
|
1334 |
+
}
|
1335 |
+
|
1336 |
+
/*.tnp-extension-premium-box {
|
1337 |
+
border-top: 10px solid #F39C12;
|
1338 |
+
}
|
1339 |
+
|
1340 |
+
.tnp-extension-free-box {
|
1341 |
+
border-top: 10px solid #2ECC71;
|
1342 |
+
}
|
1343 |
+
|
1344 |
+
.tnp-integration-box {
|
1345 |
+
border-top: 10px solid #3498DB;
|
1346 |
+
}*/
|
1347 |
+
|
1348 |
+
.tnp-extension-premium-box h3 {
|
1349 |
+
font-family: "Montserrat", sans-serif;
|
1350 |
+
padding: 5px 8px;
|
1351 |
+
border-radius: 3px;
|
1352 |
+
display: inline-block;
|
1353 |
+
font-size: 16px;
|
1354 |
+
color: #fff;
|
1355 |
+
margin-bottom: 0px;
|
1356 |
+
margin-top: 0px;
|
1357 |
+
font-weight: 300;
|
1358 |
+
}
|
1359 |
+
|
1360 |
+
.tnp-extension-free-box h3 {
|
1361 |
+
font-family: "Montserrat", sans-serif;
|
1362 |
+
padding: 5px 8px;
|
1363 |
+
border-radius: 3px;
|
1364 |
+
display: inline-block;
|
1365 |
+
font-size: 16px;
|
1366 |
+
color: #fff;
|
1367 |
+
margin-bottom: 0;
|
1368 |
+
margin-top: 0px;
|
1369 |
+
font-weight: 300;
|
1370 |
+
}
|
1371 |
+
|
1372 |
+
.tnp-integration-box h3 {
|
1373 |
+
font-family: "Montserrat", sans-serif;
|
1374 |
+
padding: 5px 8px;
|
1375 |
+
border-radius: 3px;
|
1376 |
+
display: inline-block;
|
1377 |
+
font-size: 16px;
|
1378 |
+
color: #fff;
|
1379 |
+
margin-bottom: 0;
|
1380 |
+
margin-top: 0px;
|
1381 |
+
font-weight: 300;
|
1382 |
+
}
|
1383 |
+
|
1384 |
+
.tnp-extension-premium-action {
|
1385 |
+
bottom: 0;
|
1386 |
+
position: absolute;
|
1387 |
+
width: 100%;
|
1388 |
+
padding: 12px;
|
1389 |
+
font-family: "Montserrat", sans-serif;
|
1390 |
+
}
|
1391 |
+
|
1392 |
+
.tnp-extension-free-action {
|
1393 |
+
bottom: 0;
|
1394 |
+
position: absolute;
|
1395 |
+
width: 100%;
|
1396 |
+
padding: 12px;
|
1397 |
+
font-family: "Montserrat", sans-serif;
|
1398 |
+
}
|
1399 |
+
|
1400 |
+
.tnp-integration-action {
|
1401 |
+
bottom: 0;
|
1402 |
+
position: absolute;
|
1403 |
+
width: 100%;
|
1404 |
+
padding: 12px;
|
1405 |
+
font-family: "Montserrat", sans-serif;
|
1406 |
+
}
|
1407 |
+
|
1408 |
+
|
1409 |
+
.tnp-extension-premium-action span {
|
1410 |
+
color: #27AE60;
|
1411 |
+
}
|
1412 |
+
|
1413 |
+
.tnp-extension-free-action span {
|
1414 |
+
color: #27AE60;
|
1415 |
+
}
|
1416 |
+
|
1417 |
+
.tnp-integration-action span {
|
1418 |
+
color: #27AE60;
|
1419 |
+
}
|
1420 |
+
|
1421 |
+
.tnp-extension-activate {
|
1422 |
+
color: #1ABC9C;
|
1423 |
+
padding: 5px 8px;
|
1424 |
+
text-decoration: none;
|
1425 |
+
cursor: pointer;
|
1426 |
+
}
|
1427 |
+
|
1428 |
+
.tnp-extension-install {
|
1429 |
+
color: #2980B9;
|
1430 |
+
padding: 5px 8px;
|
1431 |
+
text-decoration: none;
|
1432 |
+
cursor: pointer;
|
1433 |
+
}
|
1434 |
+
|
1435 |
+
.tnp-extension-buy {
|
1436 |
+
color: #F1C40F;
|
1437 |
+
padding: 5px 8px;
|
1438 |
+
text-decoration: none;
|
1439 |
+
cursor: pointer;
|
1440 |
+
}
|
1441 |
+
|
1442 |
+
.tnp-extension-free {
|
1443 |
+
color: #D35400;
|
1444 |
+
padding: 5px 8px;
|
1445 |
+
text-decoration: none;
|
1446 |
+
cursor: pointer;
|
1447 |
+
}
|
1448 |
+
|
1449 |
+
.tnp-extensions-image img {
|
1450 |
+
margin: 25px 0px -10px;
|
1451 |
+
}
|
api/add.php
DELETED
@@ -1,46 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
include '../../../../wp-load.php';
|
4 |
-
|
5 |
-
if (!isset($newsletter)) $newsletter = new Newsletter();
|
6 |
-
|
7 |
-
$key = stripslashes($_REQUEST['nk']);
|
8 |
-
if (empty($newsletter->options['api_key']) || $key != $newsletter->options['api_key']) {
|
9 |
-
die('Wrong API key');
|
10 |
-
}
|
11 |
-
|
12 |
-
if (!is_email($_REQUEST['ne'])) {
|
13 |
-
die('Wrong email');
|
14 |
-
}
|
15 |
-
|
16 |
-
$subscriber = array();
|
17 |
-
$subscriber['name'] = stripslashes($_REQUEST['nn']);
|
18 |
-
$subscriber['surname'] = stripslashes($_REQUEST['ns']);
|
19 |
-
$subscriber['email'] = $newsletter->normalize_email(stripslashes($_REQUEST['ne']));
|
20 |
-
|
21 |
-
if (is_array($_REQUEST['nl'])) {
|
22 |
-
foreach ($_REQUEST['nl'] as $add_list) {
|
23 |
-
$subscriber['list_' . $add_list] = 1;
|
24 |
-
}
|
25 |
-
}
|
26 |
-
else if (!empty($_REQUEST['nl'])) {
|
27 |
-
$add_lists = explode('|', $_REQUEST['nl']);
|
28 |
-
foreach ($add_lists as $add_list) {
|
29 |
-
$subscriber['list_' . $add_list] = 1;
|
30 |
-
}
|
31 |
-
}
|
32 |
-
|
33 |
-
$options_feed = get_option('newsletter_feed', array());
|
34 |
-
if ($options_feed['add_new'] == 1) $subscriber['feed'] = 1;
|
35 |
-
|
36 |
-
$options_followup = get_option('newsletter_followup', array());
|
37 |
-
if ($options_followup['add_new'] == 1) {
|
38 |
-
$subscriber['followup'] = 1;
|
39 |
-
$subscriber['followup_time'] = time() + $options_followup['interval'] * 3600;
|
40 |
-
}
|
41 |
-
|
42 |
-
$subscriber['status'] = 'C';
|
43 |
-
|
44 |
-
// TODO: add control for already subscribed emails
|
45 |
-
NewsletterUsers::instance()->save_user($subscriber);
|
46 |
-
die('ok');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
api/delete.php
DELETED
@@ -1,13 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
include '../../../../wp-load.php';
|
4 |
-
|
5 |
-
if (!isset($newsletter)) $newsletter = new Newsletter();
|
6 |
-
|
7 |
-
$key = stripslashes($_REQUEST['nk']);
|
8 |
-
if (empty(trim($newsletter->options['api_key'])) || $key != $newsletter->options['api_key'])
|
9 |
-
die('Wrong API key');
|
10 |
-
|
11 |
-
$email = $newsletter->normalize_email(stripslashes($_REQUEST['ne']));
|
12 |
-
$r = $wpdb->query($wpdb->prepare("delete from " . NEWSLETTER_USERS_TABLE . " where email=%s", $email));
|
13 |
-
die($r = 0 ? 'ko' : 'ok');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
css/dropdown.css
CHANGED
@@ -2,8 +2,9 @@
|
|
2 |
margin: 0; padding: 0; border: 0;
|
3 |
}
|
4 |
|
|
|
5 |
.tnp-drowpdown li {
|
6 |
-
min-width: 150px
|
7 |
}
|
8 |
|
9 |
.tnp-drowpdown {
|
2 |
margin: 0; padding: 0; border: 0;
|
3 |
}
|
4 |
|
5 |
+
/* Removed by Stefano */
|
6 |
.tnp-drowpdown li {
|
7 |
+
/*min-width: 150px;*/
|
8 |
}
|
9 |
|
10 |
.tnp-drowpdown {
|
css/jquery-ui/jquery-ui.css
CHANGED
@@ -830,8 +830,8 @@ body .ui-tooltip {
|
|
830 |
/* Component containers
|
831 |
----------------------------------*/
|
832 |
.ui-widget {
|
833 |
-
|
834 |
-
|
835 |
}
|
836 |
.ui-widget .ui-widget {
|
837 |
font-size: 1em;
|
@@ -840,8 +840,8 @@ body .ui-tooltip {
|
|
840 |
.ui-widget select,
|
841 |
.ui-widget textarea,
|
842 |
.ui-widget button {
|
843 |
-
|
844 |
-
|
845 |
}
|
846 |
.ui-widget-content {
|
847 |
border: 1px solid #aaaaaa;
|
830 |
/* Component containers
|
831 |
----------------------------------*/
|
832 |
.ui-widget {
|
833 |
+
xfont-family: Verdana,Arial,sans-serif;
|
834 |
+
xfont-size: 1.1em;
|
835 |
}
|
836 |
.ui-widget .ui-widget {
|
837 |
font-size: 1em;
|
840 |
.ui-widget select,
|
841 |
.ui-widget textarea,
|
842 |
.ui-widget button {
|
843 |
+
xfont-family: Verdana,Arial,sans-serif;
|
844 |
+
xfont-size: 1em;
|
845 |
}
|
846 |
.ui-widget-content {
|
847 |
border: 1px solid #aaaaaa;
|
do/change.php
DELETED
@@ -1,48 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
header('Content-Type: text/html;charset=UTF-8');
|
4 |
-
header('X-Robots-Tag: noindex,nofollow,noarchive');
|
5 |
-
header('Cache-Control: no-cache,no-store,private');
|
6 |
-
include '../../../../wp-load.php';
|
7 |
-
|
8 |
-
$user = Newsletter::instance()->get_user_from_request(true);
|
9 |
-
$field = $_REQUEST['nf'];
|
10 |
-
$value = $_REQUEST['nv'];
|
11 |
-
$url = $_REQUEST['nu'];
|
12 |
-
|
13 |
-
|
14 |
-
switch ($field) {
|
15 |
-
case 'sex':
|
16 |
-
if (!in_array($value, array('f', 'm', 'n')))
|
17 |
-
die('Invalid sex value');
|
18 |
-
NewsletterUsers::instance()->set_user_field($user->id, 'sex', $value);
|
19 |
-
break;
|
20 |
-
// Should be managed by Feed by Mail
|
21 |
-
case 'feed':
|
22 |
-
if (isset($value) && ($value === '0' || $value === '1')) {
|
23 |
-
NewsletterUsers::instance()->set_user_field($user->id, 'feed', $value);
|
24 |
-
} else
|
25 |
-
die('Invalid feed value');
|
26 |
-
break;
|
27 |
-
}
|
28 |
-
|
29 |
-
if (strpos($field, 'preference_') === 0) {
|
30 |
-
$idx = (int) substr($field, 11);
|
31 |
-
$options_profile = get_option('newsletter_profile');
|
32 |
-
|
33 |
-
if ($options_profile['list_' . $idx . '_status'] == 0) {
|
34 |
-
die('Not allowed field.');
|
35 |
-
}
|
36 |
-
|
37 |
-
if (isset($value) && ($value === '0' || $value === '1')) {
|
38 |
-
NewsletterUsers::instance()->set_user_field($user->id, 'list_' . $idx, $value);
|
39 |
-
} else {
|
40 |
-
die('Invalid preference value');
|
41 |
-
}
|
42 |
-
}
|
43 |
-
|
44 |
-
if (isset($url)) {
|
45 |
-
header("Location: $url");
|
46 |
-
} else {
|
47 |
-
NewsletterSubscription::instance()->show_message('profile', $user, NewsletterSubscription::instance()->options['profile_saved']);
|
48 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
do/confirm.php
DELETED
@@ -1,6 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if (!defined('ABSPATH')) {
|
4 |
-
$_GET['na'] = 'c';
|
5 |
-
require_once '../../../../wp-load.php';
|
6 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
do/profile.php
DELETED
@@ -1,7 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if (!defined('ABSPATH')) {
|
4 |
-
$_GET['na'] = 'p';
|
5 |
-
require_once '../../../../wp-load.php';
|
6 |
-
}
|
7 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
do/save.php
DELETED
@@ -1,10 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
header('Content-Type: text/html;charset=UTF-8');
|
4 |
-
header('X-Robots-Tag: noindex,nofollow,noarchive');
|
5 |
-
header('Cache-Control: no-cache,no-store,private');
|
6 |
-
include '../../../../wp-load.php';
|
7 |
-
|
8 |
-
$user = NewsletterSubscription::instance()->save_profile();
|
9 |
-
// $user->alert is a temporary field
|
10 |
-
NewsletterSubscription::instance()->show_message('profile', $user, $user->alert);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
do/subscribe.php
DELETED
@@ -1,6 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
|
4 |
-
$_GET['na'] = 's';
|
5 |
-
require_once '../../../../wp-load.php';
|
6 |
-
|
|
|
|
|
|
|
|
|
|
|
|
do/subscription.php
DELETED
@@ -1,26 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once '../../../../wp-load.php';
|
4 |
-
|
5 |
-
if (!isset($newsletter)) $newsletter = new Newsletter();
|
6 |
-
|
7 |
-
$options_main = get_option('newsletter_main', array());
|
8 |
-
|
9 |
-
if (!empty($options_main['url'])) {
|
10 |
-
header('Location: ' . $options_main['url']);
|
11 |
-
die();
|
12 |
-
}
|
13 |
-
|
14 |
-
$options = get_option('newsletter', array());
|
15 |
-
|
16 |
-
if (stripos($options['subscription_text'], '<form') !== false) {
|
17 |
-
$message = str_ireplace('<form', '<form method="post" action="' . plugins_url('newsletter/do/subscribe.php') . '" onsubmit="return newsletter_check(this)"', $options['subscription_text']);
|
18 |
-
$message = $this->replace_lists($message);
|
19 |
-
} else {
|
20 |
-
$form = $newsletter->subscription_form();
|
21 |
-
|
22 |
-
if (strpos($options['subscription_text'], '{subscription_form}') !== false)
|
23 |
-
$message = str_replace('{subscription_form}', $form, $options['subscription_text']);
|
24 |
-
else $message = $options['subscription_text'] . $form;
|
25 |
-
}
|
26 |
-
include NEWSLETTER_DIR . '/page.php';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
do/unlock.php
DELETED
@@ -1,6 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if (!defined('ABSPATH')) {
|
4 |
-
$_GET['na'] = 'ul';
|
5 |
-
include '../../../../wp-load.php';
|
6 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
do/unsubscribe.php
DELETED
@@ -1,5 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
if (!defined('ABSPATH')) {
|
3 |
-
$_GET['na'] = 'uc';
|
4 |
-
require_once '../../../../wp-load.php';
|
5 |
-
}
|
|
|
|
|
|
|
|
|
|
do/unsubscription.php
DELETED
@@ -1,6 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if (!defined('ABSPATH')) {
|
4 |
-
$_GET['na'] = 'u';
|
5 |
-
require_once '../../../../wp-load.php';
|
6 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
do/view.php
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
$_GET['na'] = 'v';
|
3 |
-
require_once '../../../../wp-load.php';
|
|
|
|
|
|
emails/composer.php
CHANGED
@@ -1,4 +1,6 @@
|
|
1 |
<?php
|
|
|
|
|
2 |
require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
3 |
$controls = new NewsletterControls();
|
4 |
$module = NewsletterEmails::instance();
|
@@ -19,6 +21,7 @@ if (($controls->is_action('save') || $controls->is_action('preview')) && !$_GET[
|
|
19 |
$email['status'] = 'new';
|
20 |
$email['subject'] = __('Here the email subject', 'newsletter');
|
21 |
$email['track'] = 1;
|
|
|
22 |
|
23 |
$email['message'] = $controls->data['body'];
|
24 |
$email['subject'] = $controls->data['subject'];
|
@@ -34,6 +37,8 @@ To change your subscription follow: {profile_url}.';
|
|
34 |
|
35 |
$email['type'] = 'message';
|
36 |
$email['send_on'] = time();
|
|
|
|
|
37 |
$email = Newsletter::instance()->save_email($email, ARRAY_A);
|
38 |
} elseif (isset($_GET['id'])) {
|
39 |
|
1 |
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
|
4 |
require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
5 |
$controls = new NewsletterControls();
|
6 |
$module = NewsletterEmails::instance();
|
21 |
$email['status'] = 'new';
|
22 |
$email['subject'] = __('Here the email subject', 'newsletter');
|
23 |
$email['track'] = 1;
|
24 |
+
$email['token'] = $module->get_token();
|
25 |
|
26 |
$email['message'] = $controls->data['body'];
|
27 |
$email['subject'] = $controls->data['subject'];
|
37 |
|
38 |
$email['type'] = 'message';
|
39 |
$email['send_on'] = time();
|
40 |
+
$email['query'] = "select * from " . NEWSLETTER_USERS_TABLE . " where status='C'";
|
41 |
+
|
42 |
$email = Newsletter::instance()->save_email($email, ARRAY_A);
|
43 |
} elseif (isset($_GET['id'])) {
|
44 |
|
emails/cpreview.php
CHANGED
@@ -1,4 +1,6 @@
|
|
1 |
<?php
|
|
|
|
|
2 |
require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
3 |
$controls = new NewsletterControls();
|
4 |
$module = NewsletterEmails::instance();
|
@@ -27,6 +29,10 @@ if (!$controls->is_action()) {
|
|
27 |
$email_options = unserialize($email['options']);
|
28 |
if (is_array($email_options)) {
|
29 |
$controls->data = array_merge($controls->data, $email_options);
|
|
|
|
|
|
|
|
|
30 |
}
|
31 |
}
|
32 |
|
@@ -54,6 +60,12 @@ if ($controls->is_action('test') || $controls->is_action('save') || $controls->i
|
|
54 |
$email['options']['sex'] = $controls->data['sex'];
|
55 |
}
|
56 |
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
$email['options']['status'] = $controls->data['status'];
|
58 |
$email['options']['preferences_status_operator'] = $controls->data['preferences_status_operator'];
|
59 |
$email['options']['wp_users'] = $controls->data['wp_users'];
|
@@ -108,19 +120,26 @@ if ($controls->is_action('test') || $controls->is_action('save') || $controls->i
|
|
108 |
}
|
109 |
}
|
110 |
|
111 |
-
|
112 |
-
|
113 |
-
$
|
114 |
-
|
115 |
-
$
|
|
|
|
|
|
|
|
|
116 |
}
|
117 |
-
$query = substr($query, 0, -2);
|
118 |
-
$query .= ")";
|
119 |
}
|
120 |
|
121 |
$email['query'] = $query;
|
122 |
-
$email['
|
123 |
-
|
|
|
|
|
|
|
|
|
|
|
124 |
if ($controls->is_action('send') && $controls->data['send_on'] < time()) {
|
125 |
$controls->data['send_on'] = time();
|
126 |
}
|
@@ -236,7 +255,7 @@ if ($controls->is_action('test')) {
|
|
236 |
|
237 |
<p class="submit">
|
238 |
<?php $controls->button_back('?page=newsletter_emails_composer&id=' . $email['id']) ?>
|
239 |
-
<?php if ($email['status'] != 'sending') $controls->button_save(); ?>
|
240 |
<?php if ($email['status'] != 'sending' && $email['status'] != 'sent') $controls->button_confirm('test', 'Save and test', 'Save and send test emails to test addresses?'); ?>
|
241 |
|
242 |
<?php if ($email['status'] == 'new') $controls->button_confirm('send', __('Send', 'newsletter'), __('Start real delivery?', 'newsletter')); ?>
|
@@ -304,7 +323,7 @@ if ($controls->is_action('test')) {
|
|
304 |
|
305 |
<input id="options-message" name="options[message]" type="hidden">
|
306 |
|
307 |
-
<div id="tnpc-html-editor"><?php echo
|
308 |
<script src="<?php echo plugins_url('newsletter') ?>/js/ace/ace.js" type="text/javascript" charset="utf-8"></script>
|
309 |
<script>
|
310 |
var editor = ace.edit("tnpc-html-editor");
|
@@ -429,21 +448,28 @@ echo $wpdb->get_var(str_replace('*', 'count(*)', $email['query']));
|
|
429 |
</td>
|
430 |
</tr>
|
431 |
</table>
|
|
|
|
|
|
|
432 |
</div>
|
433 |
<div id="tabs-status">
|
434 |
<table class="form-table">
|
435 |
<tr valign="top">
|
436 |
<th>Email status</th>
|
437 |
-
<td><?php echo $email['status']
|
438 |
</tr>
|
439 |
<tr valign="top">
|
440 |
<th>Messages sent</th>
|
441 |
-
<td><?php echo $email['sent']
|
442 |
</tr>
|
443 |
<tr valign="top">
|
444 |
<th>Query (tech)</th>
|
445 |
-
<td><?php echo $email['query']
|
446 |
</tr>
|
|
|
|
|
|
|
|
|
447 |
</table>
|
448 |
</div>
|
449 |
|
1 |
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
|
4 |
require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
5 |
$controls = new NewsletterControls();
|
6 |
$module = NewsletterEmails::instance();
|
29 |
$email_options = unserialize($email['options']);
|
30 |
if (is_array($email_options)) {
|
31 |
$controls->data = array_merge($controls->data, $email_options);
|
32 |
+
|
33 |
+
foreach ($email_options as $name=>$value) {
|
34 |
+
$controls->data['options_' . $name] = $value;
|
35 |
+
}
|
36 |
}
|
37 |
}
|
38 |
|
60 |
$email['options']['sex'] = $controls->data['sex'];
|
61 |
}
|
62 |
|
63 |
+
foreach($controls->data as $name=>$value) {
|
64 |
+
if (strpos($name, 'options_') === 0) {
|
65 |
+
$email['options'][substr($name, 8)] = $value;
|
66 |
+
}
|
67 |
+
}
|
68 |
+
|
69 |
$email['options']['status'] = $controls->data['status'];
|
70 |
$email['options']['preferences_status_operator'] = $controls->data['preferences_status_operator'];
|
71 |
$email['options']['wp_users'] = $controls->data['wp_users'];
|
120 |
}
|
121 |
}
|
122 |
|
123 |
+
if (isset($controls->data['sex'])) {
|
124 |
+
$sex = $controls->data['sex'];
|
125 |
+
if (is_array($sex)) {
|
126 |
+
$query .= " and sex in (";
|
127 |
+
foreach ($sex as $x) {
|
128 |
+
$query .= "'" . $x . "', ";
|
129 |
+
}
|
130 |
+
$query = substr($query, 0, -2);
|
131 |
+
$query .= ")";
|
132 |
}
|
|
|
|
|
133 |
}
|
134 |
|
135 |
$email['query'] = $query;
|
136 |
+
if ($email['status'] == 'sent') {
|
137 |
+
$email['total'] = $email['sent'];
|
138 |
+
} else {
|
139 |
+
$email['total'] = $wpdb->get_var(str_replace('*', 'count(*)', $query));
|
140 |
+
}
|
141 |
+
|
142 |
+
|
143 |
if ($controls->is_action('send') && $controls->data['send_on'] < time()) {
|
144 |
$controls->data['send_on'] = time();
|
145 |
}
|
255 |
|
256 |
<p class="submit">
|
257 |
<?php $controls->button_back('?page=newsletter_emails_composer&id=' . $email['id']) ?>
|
258 |
+
<?php if ($email['status'] != 'sending' && $email['status'] != 'sent') $controls->button_save(); ?>
|
259 |
<?php if ($email['status'] != 'sending' && $email['status'] != 'sent') $controls->button_confirm('test', 'Save and test', 'Save and send test emails to test addresses?'); ?>
|
260 |
|
261 |
<?php if ($email['status'] == 'new') $controls->button_confirm('send', __('Send', 'newsletter'), __('Start real delivery?', 'newsletter')); ?>
|
323 |
|
324 |
<input id="options-message" name="options[message]" type="hidden">
|
325 |
|
326 |
+
<div id="tnpc-html-editor"><?php echo esc_html($email['message']) ?></div>
|
327 |
<script src="<?php echo plugins_url('newsletter') ?>/js/ace/ace.js" type="text/javascript" charset="utf-8"></script>
|
328 |
<script>
|
329 |
var editor = ace.edit("tnpc-html-editor");
|
448 |
</td>
|
449 |
</tr>
|
450 |
</table>
|
451 |
+
|
452 |
+
<?php do_action('newsletter_emails_edit_other', $module->get_email($email_id), $controls) ?>
|
453 |
+
|
454 |
</div>
|
455 |
<div id="tabs-status">
|
456 |
<table class="form-table">
|
457 |
<tr valign="top">
|
458 |
<th>Email status</th>
|
459 |
+
<td><?php echo $email['status'] ?></td>
|
460 |
</tr>
|
461 |
<tr valign="top">
|
462 |
<th>Messages sent</th>
|
463 |
+
<td><?php echo $email['sent'] ?> of <?php echo $email['total'] ?></td>
|
464 |
</tr>
|
465 |
<tr valign="top">
|
466 |
<th>Query (tech)</th>
|
467 |
+
<td><?php echo esc_html($email['query']) ?></td>
|
468 |
</tr>
|
469 |
+
<tr valign="top">
|
470 |
+
<th>Token (tech)</th>
|
471 |
+
<td><?php echo esc_html($email['token']) ?></td>
|
472 |
+
</tr>
|
473 |
</table>
|
474 |
</div>
|
475 |
|
emails/create.php
DELETED
@@ -1,54 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
// Stops WP Super Cache which removes the logged_in cookie
|
4 |
-
$_GET['preview'] = 'true';
|
5 |
-
|
6 |
-
require_once '../../../../wp-load.php';
|
7 |
-
|
8 |
-
if (!is_user_logged_in()) {
|
9 |
-
die('No logged in user found. A plugin is almost surely removing the authentication cookies, usually a cache plugin. Try to report the issue on http://www.thenewsletterplugin.com forum.');
|
10 |
-
}
|
11 |
-
|
12 |
-
if (!current_user_can('manage_categories')) {
|
13 |
-
die('Not enough privileges');
|
14 |
-
}
|
15 |
-
|
16 |
-
if (Newsletter::instance()->options['editor'] != 1 && !current_user_can('manage_options')) {
|
17 |
-
die('Not enough privileges');
|
18 |
-
}
|
19 |
-
|
20 |
-
require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
21 |
-
$controls = new NewsletterControls();
|
22 |
-
$module = NewsletterEmails::instance();
|
23 |
-
|
24 |
-
if ($controls->is_action('create')) {
|
25 |
-
$module->save_options($controls->data);
|
26 |
-
|
27 |
-
$email = array();
|
28 |
-
$email['status'] = 'new';
|
29 |
-
$email['subject'] = ''; //__('Here the email subject', 'newsletter');
|
30 |
-
$email['track'] = 1;
|
31 |
-
|
32 |
-
$theme_options = $module->get_current_theme_options();
|
33 |
-
|
34 |
-
$theme_url = $module->get_current_theme_url();
|
35 |
-
$theme_subject = '';
|
36 |
-
|
37 |
-
ob_start();
|
38 |
-
include $module->get_current_theme_file_path('theme.php');
|
39 |
-
$email['message'] = ob_get_clean();
|
40 |
-
|
41 |
-
if (!empty($theme_subject)) {
|
42 |
-
$email['subject'] = $theme_subject;
|
43 |
-
}
|
44 |
-
|
45 |
-
ob_start();
|
46 |
-
include $module->get_current_theme_file_path('theme-text.php');
|
47 |
-
$email['message_text'] = ob_get_clean();
|
48 |
-
|
49 |
-
$email['type'] = 'message';
|
50 |
-
$email['send_on'] = time();
|
51 |
-
$email = Newsletter::instance()->save_email($email);
|
52 |
-
|
53 |
-
header('Location: ' . $module->get_admin_page_url('edit') . '&id=' . $email->id);
|
54 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
emails/css.php
DELETED
@@ -1,17 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
include '../../../../wp-load.php';
|
4 |
-
|
5 |
-
$email_id = (int)$_GET['id'];
|
6 |
-
|
7 |
-
$body = Newsletter::instance()->get_email_field($email_id, 'message');
|
8 |
-
|
9 |
-
$x = strpos($body, '<style');
|
10 |
-
if ($x === false) return;
|
11 |
-
|
12 |
-
$x = strpos($body, '>', $x);
|
13 |
-
$y = strpos($body, '</style>');
|
14 |
-
|
15 |
-
header('Content-Type: text/css');
|
16 |
-
|
17 |
-
echo substr($body, $x+1, $y-$x-1);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
emails/edit.php
CHANGED
@@ -26,12 +26,18 @@ if (!$controls->is_action()) {
|
|
26 |
$email_options = unserialize($email['options']);
|
27 |
if (is_array($email_options)) {
|
28 |
$controls->data = array_merge($controls->data, $email_options);
|
|
|
|
|
|
|
|
|
29 |
}
|
30 |
}
|
31 |
|
32 |
if ($controls->is_action('test') || $controls->is_action('save') || $controls->is_action('send') || $controls->is_action('editor')) {
|
33 |
|
34 |
// If we were editing with visual editor (==0), we must read the extra <body> content
|
|
|
|
|
35 |
if ($email['editor'] == 0) {
|
36 |
$x = strpos($email['message'], '<body');
|
37 |
if ($x !== false) {
|
@@ -43,7 +49,7 @@ if ($controls->is_action('test') || $controls->is_action('save') || $controls->i
|
|
43 |
} else {
|
44 |
$email['message'] = $controls->data['message'];
|
45 |
}
|
46 |
-
$email['message_text'] = $controls->data['message_text'];
|
47 |
$email['subject'] = $controls->data['subject'];
|
48 |
$email['track'] = $controls->data['track'];
|
49 |
$email['private'] = $controls->data['private'];
|
@@ -57,6 +63,12 @@ if ($controls->is_action('test') || $controls->is_action('save') || $controls->i
|
|
57 |
if (isset($controls->data['sex'])) {
|
58 |
$email['options']['sex'] = $controls->data['sex'];
|
59 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
60 |
|
61 |
$email['options']['status'] = $controls->data['status'];
|
62 |
$email['options']['preferences_status_operator'] = $controls->data['preferences_status_operator'];
|
@@ -111,19 +123,24 @@ if ($controls->is_action('test') || $controls->is_action('save') || $controls->i
|
|
111 |
}
|
112 |
}
|
113 |
|
114 |
-
|
115 |
-
|
116 |
-
$
|
117 |
-
|
118 |
-
$
|
|
|
|
|
|
|
|
|
119 |
}
|
120 |
-
$query = substr($query, 0, -2);
|
121 |
-
$query .= ")";
|
122 |
}
|
123 |
|
124 |
$email['query'] = $query;
|
125 |
-
$email['
|
126 |
-
|
|
|
|
|
|
|
127 |
if ($controls->is_action('send') && $controls->data['send_on'] < time()) {
|
128 |
$controls->data['send_on'] = time();
|
129 |
}
|
@@ -232,21 +249,33 @@ if ($email['editor'] == 0) {
|
|
232 |
theme_advanced_resizing: true,
|
233 |
theme_advanced_toolbar_location: "top",
|
234 |
document_base_url: "<?php echo get_option('home'); ?>/",
|
235 |
-
content_css: ["<?php echo plugins_url('newsletter') ?>/emails/editor.css", "<?php echo
|
236 |
-
});
|
237 |
-
|
238 |
-
jQuery(document).ready(function () {
|
239 |
-
jQuery('#upload_image_button').click(function () {
|
240 |
-
tb_show('', 'media-upload.php?type=image&TB_iframe=true');
|
241 |
-
return false;
|
242 |
-
});
|
243 |
-
|
244 |
-
window.send_to_editor = function (html) {
|
245 |
-
var imgURL = html.match(/src=\"(.*?)\"/);
|
246 |
-
tinyMCE.execCommand('mceInsertContent', false, '<img src="' + imgURL[1] + '" />');
|
247 |
-
tb_remove();
|
248 |
-
}
|
249 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
250 |
|
251 |
function template_refresh() {
|
252 |
var d = document.getElementById('options_preview').contentWindow.document;
|
@@ -279,9 +308,9 @@ if ($email['editor'] == 0) {
|
|
279 |
<form method="post" action="" id="newsletter-form">
|
280 |
<?php $controls->init(array('cookie_name' => 'newsletter_emails_edit_tab')); ?>
|
281 |
|
282 |
-
<
|
283 |
<?php $controls->button_back('?page=newsletter_emails_index') ?>
|
284 |
-
<?php if ($email['status'] != 'sending') $controls->button_save(); ?>
|
285 |
<?php if ($email['status'] != 'sending' && $email['status'] != 'sent') $controls->button_confirm('test', 'Save and test', 'Save and send test emails to test addresses?'); ?>
|
286 |
|
287 |
<?php if ($email['status'] == 'new') $controls->button_confirm('send', __('Send', 'newsletter'), __('Start real delivery?', 'newsletter')); ?>
|
@@ -289,7 +318,7 @@ if ($email['editor'] == 0) {
|
|
289 |
<?php if ($email['status'] == 'paused') $controls->button_confirm('continue', __('Continue', 'newsletter'), 'Continue the delivery?'); ?>
|
290 |
<?php if ($email['status'] == 'paused') $controls->button_confirm('abort', __('Stop', 'newsletter'), __('This totally stop the delivery, ok?', 'newsletter')); ?>
|
291 |
<?php if ($email['status'] != 'sending' && $email['status'] != 'sent') $controls->button_confirm('editor', 'Save and switch to ' . ($email['editor'] == 0 ? 'HTML source' : 'visual') . ' editor', 'Sure?'); ?>
|
292 |
-
</
|
293 |
|
294 |
<div id="tabs">
|
295 |
<ul>
|
@@ -307,7 +336,7 @@ if ($email['editor'] == 0) {
|
|
307 |
|
308 |
|
309 |
|
310 |
-
<input
|
311 |
|
312 |
<a href="http://www.thenewsletterplugin.com/plugins/newsletter/newsletter-tags" target="_blank"><?php _e('Available tags', 'newsletter') ?></a>
|
313 |
|
@@ -396,7 +425,11 @@ if ($email['editor'] == 0) {
|
|
396 |
</th>
|
397 |
<td>
|
398 |
<?php
|
399 |
-
|
|
|
|
|
|
|
|
|
400 |
?>
|
401 |
<p class="description">
|
402 |
<?php _e('Save to update if on targeting filters have been changed', 'newsletter') ?>
|
@@ -435,13 +468,15 @@ if ($email['editor'] == 0) {
|
|
435 |
</td>
|
436 |
</tr>
|
437 |
</table>
|
|
|
|
|
438 |
</div>
|
439 |
|
440 |
<div id="tabs-status">
|
441 |
<table class="form-table">
|
442 |
<tr valign="top">
|
443 |
<th>Email status</th>
|
444 |
-
<td><?php echo $email['status']; ?></td>
|
445 |
</tr>
|
446 |
<tr valign="top">
|
447 |
<th>Messages sent</th>
|
@@ -449,7 +484,11 @@ if ($email['editor'] == 0) {
|
|
449 |
</tr>
|
450 |
<tr valign="top">
|
451 |
<th>Query (tech)</th>
|
452 |
-
<td><?php echo $email['query']; ?></td>
|
|
|
|
|
|
|
|
|
453 |
</tr>
|
454 |
</table>
|
455 |
</div>
|
26 |
$email_options = unserialize($email['options']);
|
27 |
if (is_array($email_options)) {
|
28 |
$controls->data = array_merge($controls->data, $email_options);
|
29 |
+
|
30 |
+
foreach ($email_options as $name=>$value) {
|
31 |
+
$controls->data['options_' . $name] = $value;
|
32 |
+
}
|
33 |
}
|
34 |
}
|
35 |
|
36 |
if ($controls->is_action('test') || $controls->is_action('save') || $controls->is_action('send') || $controls->is_action('editor')) {
|
37 |
|
38 |
// If we were editing with visual editor (==0), we must read the extra <body> content
|
39 |
+
$controls->data['message'] = str_ireplace('<script', '<noscript', $controls->data['message']);
|
40 |
+
$controls->data['message'] = str_ireplace('</script', '</noscript', $controls->data['message']);
|
41 |
if ($email['editor'] == 0) {
|
42 |
$x = strpos($email['message'], '<body');
|
43 |
if ($x !== false) {
|
49 |
} else {
|
50 |
$email['message'] = $controls->data['message'];
|
51 |
}
|
52 |
+
$email['message_text'] = str_ireplace('<script', '', $controls->data['message_text']);
|
53 |
$email['subject'] = $controls->data['subject'];
|
54 |
$email['track'] = $controls->data['track'];
|
55 |
$email['private'] = $controls->data['private'];
|
63 |
if (isset($controls->data['sex'])) {
|
64 |
$email['options']['sex'] = $controls->data['sex'];
|
65 |
}
|
66 |
+
|
67 |
+
foreach($controls->data as $name=>$value) {
|
68 |
+
if (strpos($name, 'options_') === 0) {
|
69 |
+
$email['options'][substr($name, 8)] = $value;
|
70 |
+
}
|
71 |
+
}
|
72 |
|
73 |
$email['options']['status'] = $controls->data['status'];
|
74 |
$email['options']['preferences_status_operator'] = $controls->data['preferences_status_operator'];
|
123 |
}
|
124 |
}
|
125 |
|
126 |
+
if (isset($controls->data['sex'])) {
|
127 |
+
$sex = $controls->data['sex'];
|
128 |
+
if (is_array($sex)) {
|
129 |
+
$query .= " and sex in (";
|
130 |
+
foreach ($sex as $x) {
|
131 |
+
$query .= "'" . esc_sql($x) . "', ";
|
132 |
+
}
|
133 |
+
$query = substr($query, 0, -2);
|
134 |
+
$query .= ")";
|
135 |
}
|
|
|
|
|
136 |
}
|
137 |
|
138 |
$email['query'] = $query;
|
139 |
+
if ($email['status'] == 'sent') {
|
140 |
+
$email['total'] = $email['sent'];
|
141 |
+
} else {
|
142 |
+
$email['total'] = $wpdb->get_var(str_replace('*', 'count(*)', $query));
|
143 |
+
}
|
144 |
if ($controls->is_action('send') && $controls->data['send_on'] < time()) {
|
145 |
$controls->data['send_on'] = time();
|
146 |
}
|
249 |
theme_advanced_resizing: true,
|
250 |
theme_advanced_toolbar_location: "top",
|
251 |
document_base_url: "<?php echo get_option('home'); ?>/",
|
252 |
+
content_css: ["<?php echo plugins_url('newsletter') ?>/emails/editor.css", "<?php echo home_url('/') . '?na=emails-css&id=' . $email_id . '&' . time(); ?>"]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
253 |
});
|
254 |
+
|
255 |
+
function tnp_media(name) {
|
256 |
+
var tnp_uploader = wp.media({
|
257 |
+
title: "Select an image",
|
258 |
+
button: {
|
259 |
+
text: "Select"
|
260 |
+
},
|
261 |
+
frame: 'post',
|
262 |
+
multiple: false,
|
263 |
+
displaySetting: true,
|
264 |
+
displayUserSettings: true
|
265 |
+
}).on("insert", function() {
|
266 |
+
wp.media;
|
267 |
+
var media = tnp_uploader.state().get("selection").first();
|
268 |
+
if (media.attributes.url.indexOf("http") !== 0) media.attributes.url = "http:" + media.attributes.url;
|
269 |
+
|
270 |
+
if (!media.attributes.mime.startsWith("image")) {
|
271 |
+
tinyMCE.execCommand('mceInsertLink', false, media.attributes.url);
|
272 |
+
} else {
|
273 |
+
var display = tnp_uploader.state().display(media);
|
274 |
+
var url = media.attributes.sizes[display.attributes.size].url;
|
275 |
+
tinyMCE.execCommand('mceInsertContent', false, '<img src="' + url + '" />');
|
276 |
+
}
|
277 |
+
}).open();
|
278 |
+
}
|
279 |
|
280 |
function template_refresh() {
|
281 |
var d = document.getElementById('options_preview').contentWindow.document;
|
308 |
<form method="post" action="" id="newsletter-form">
|
309 |
<?php $controls->init(array('cookie_name' => 'newsletter_emails_edit_tab')); ?>
|
310 |
|
311 |
+
<div class="tnp-submit">
|
312 |
<?php $controls->button_back('?page=newsletter_emails_index') ?>
|
313 |
+
<?php if ($email['status'] != 'sending' && $email['status'] != 'sent') $controls->button_save(); ?>
|
314 |
<?php if ($email['status'] != 'sending' && $email['status'] != 'sent') $controls->button_confirm('test', 'Save and test', 'Save and send test emails to test addresses?'); ?>
|
315 |
|
316 |
<?php if ($email['status'] == 'new') $controls->button_confirm('send', __('Send', 'newsletter'), __('Start real delivery?', 'newsletter')); ?>
|
318 |
<?php if ($email['status'] == 'paused') $controls->button_confirm('continue', __('Continue', 'newsletter'), 'Continue the delivery?'); ?>
|
319 |
<?php if ($email['status'] == 'paused') $controls->button_confirm('abort', __('Stop', 'newsletter'), __('This totally stop the delivery, ok?', 'newsletter')); ?>
|
320 |
<?php if ($email['status'] != 'sending' && $email['status'] != 'sent') $controls->button_confirm('editor', 'Save and switch to ' . ($email['editor'] == 0 ? 'HTML source' : 'visual') . ' editor', 'Sure?'); ?>
|
321 |
+
</div>
|
322 |
|
323 |
<div id="tabs">
|
324 |
<ul>
|
336 |
|
337 |
|
338 |
|
339 |
+
<input type="button" value="Add media" onclick="tnp_media()">
|
340 |
|
341 |
<a href="http://www.thenewsletterplugin.com/plugins/newsletter/newsletter-tags" target="_blank"><?php _e('Available tags', 'newsletter') ?></a>
|
342 |
|
425 |
</th>
|
426 |
<td>
|
427 |
<?php
|
428 |
+
if ($email['status'] != 'sent') {
|
429 |
+
echo $wpdb->get_var(str_replace('*', 'count(*)', $email['query']));
|
430 |
+
} else {
|
431 |
+
echo $email['sent'];
|
432 |
+
}
|
433 |
?>
|
434 |
<p class="description">
|
435 |
<?php _e('Save to update if on targeting filters have been changed', 'newsletter') ?>
|
468 |
</td>
|
469 |
</tr>
|
470 |
</table>
|
471 |
+
|
472 |
+
<?php do_action('newsletter_emails_edit_other', $module->get_email($email_id), $controls) ?>
|
473 |
</div>
|
474 |
|
475 |
<div id="tabs-status">
|
476 |
<table class="form-table">
|
477 |
<tr valign="top">
|
478 |
<th>Email status</th>
|
479 |
+
<td><?php echo esc_html($email['status']); ?></td>
|
480 |
</tr>
|
481 |
<tr valign="top">
|
482 |
<th>Messages sent</th>
|
484 |
</tr>
|
485 |
<tr valign="top">
|
486 |
<th>Query (tech)</th>
|
487 |
+
<td><?php echo esc_html($email['query']); ?></td>
|
488 |
+
</tr>
|
489 |
+
<tr valign="top">
|
490 |
+
<th>Token (tech)</th>
|
491 |
+
<td><?php echo esc_html($email['token']); ?></td>
|
492 |
</tr>
|
493 |
</table>
|
494 |
</div>
|
emails/emails.php
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
<?php
|
|
|
2 |
|
3 |
require_once NEWSLETTER_INCLUDES_DIR . '/themes.php';
|
4 |
require_once NEWSLETTER_INCLUDES_DIR . '/module.php';
|
@@ -19,12 +20,15 @@ class NewsletterEmails extends NewsletterModule {
|
|
19 |
|
20 |
function __construct() {
|
21 |
$this->themes = new NewsletterThemes('emails');
|
22 |
-
parent::__construct('emails', '1.1.
|
23 |
add_action('wp_loaded', array($this, 'hook_wp_loaded'));
|
24 |
}
|
25 |
|
26 |
function hook_wp_loaded() {
|
27 |
-
global $
|
|
|
|
|
|
|
28 |
switch ($newsletter->action) {
|
29 |
case 'v':
|
30 |
// TODO: Change to Newsletter::instance()->get:email(), not urgent
|
@@ -32,15 +36,17 @@ class NewsletterEmails extends NewsletterModule {
|
|
32 |
if (empty($email)) {
|
33 |
die('Email not found');
|
34 |
}
|
35 |
-
|
36 |
if ($email->private == 1) {
|
37 |
-
die('
|
38 |
}
|
39 |
|
40 |
$user = NewsletterSubscription::instance()->get_user_from_request();
|
41 |
header('Content-Type: text/html;charset=UTF-8');
|
42 |
header('X-Robots-Tag: noindex,nofollow,noarchive');
|
43 |
header('Cache-Control: no-cache,no-store,private');
|
|
|
|
|
44 |
if (is_file(WP_CONTENT_DIR . '/extensions/newsletter/view.php')) {
|
45 |
include WP_CONTENT_DIR . '/extensions/newsletter/view.php';
|
46 |
die();
|
@@ -49,6 +55,121 @@ class NewsletterEmails extends NewsletterModule {
|
|
49 |
echo $newsletter->replace($email->message, $user, $email->id);
|
50 |
|
51 |
die();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
}
|
53 |
}
|
54 |
|
@@ -60,12 +181,16 @@ class NewsletterEmails extends NewsletterModule {
|
|
60 |
$this->upgrade_query("alter table " . NEWSLETTER_EMAILS_TABLE . " change column `type` `type` varchar(50) not null default ''");
|
61 |
$this->upgrade_query("alter table " . NEWSLETTER_EMAILS_TABLE . " add column token varchar(10) not null default ''");
|
62 |
$this->upgrade_query("alter table " . NEWSLETTER_EMAILS_TABLE . " drop column visibility");
|
63 |
-
$this->upgrade_query("update " . NEWSLETTER_EMAILS_TABLE . " set type='message' where type=''");
|
64 |
$this->upgrade_query("alter table " . NEWSLETTER_EMAILS_TABLE . " add column private tinyint(1) not null default 0");
|
65 |
|
66 |
// Force a token to email without one already set.
|
67 |
-
|
68 |
-
|
|
|
|
|
|
|
|
|
|
|
69 |
|
70 |
return true;
|
71 |
}
|
1 |
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
|
4 |
require_once NEWSLETTER_INCLUDES_DIR . '/themes.php';
|
5 |
require_once NEWSLETTER_INCLUDES_DIR . '/module.php';
|
20 |
|
21 |
function __construct() {
|
22 |
$this->themes = new NewsletterThemes('emails');
|
23 |
+
parent::__construct('emails', '1.1.5');
|
24 |
add_action('wp_loaded', array($this, 'hook_wp_loaded'));
|
25 |
}
|
26 |
|
27 |
function hook_wp_loaded() {
|
28 |
+
global $wpdb;
|
29 |
+
|
30 |
+
$newsletter = Newsletter::instance();
|
31 |
+
|
32 |
switch ($newsletter->action) {
|
33 |
case 'v':
|
34 |
// TODO: Change to Newsletter::instance()->get:email(), not urgent
|
36 |
if (empty($email)) {
|
37 |
die('Email not found');
|
38 |
}
|
39 |
+
|
40 |
if ($email->private == 1) {
|
41 |
+
die('No available for online view');
|
42 |
}
|
43 |
|
44 |
$user = NewsletterSubscription::instance()->get_user_from_request();
|
45 |
header('Content-Type: text/html;charset=UTF-8');
|
46 |
header('X-Robots-Tag: noindex,nofollow,noarchive');
|
47 |
header('Cache-Control: no-cache,no-store,private');
|
48 |
+
|
49 |
+
// TODO: To be removed
|
50 |
if (is_file(WP_CONTENT_DIR . '/extensions/newsletter/view.php')) {
|
51 |
include WP_CONTENT_DIR . '/extensions/newsletter/view.php';
|
52 |
die();
|
55 |
echo $newsletter->replace($email->message, $user, $email->id);
|
56 |
|
57 |
die();
|
58 |
+
break;
|
59 |
+
|
60 |
+
case 'emails-css':
|
61 |
+
$email_id = (int) $_GET['id'];
|
62 |
+
|
63 |
+
$body = Newsletter::instance()->get_email_field($email_id, 'message');
|
64 |
+
|
65 |
+
$x = strpos($body, '<style');
|
66 |
+
if ($x === false)
|
67 |
+
return;
|
68 |
+
|
69 |
+
$x = strpos($body, '>', $x);
|
70 |
+
$y = strpos($body, '</style>');
|
71 |
+
|
72 |
+
header('Content-Type: text/css;charset=UTF-8');
|
73 |
+
|
74 |
+
echo substr($body, $x + 1, $y - $x - 1);
|
75 |
+
|
76 |
+
die();
|
77 |
+
break;
|
78 |
+
|
79 |
+
case 'emails-preview':
|
80 |
+
if (!current_user_can('manage_categories')) {
|
81 |
+
die('Not enough privileges');
|
82 |
+
}
|
83 |
+
|
84 |
+
if (Newsletter::instance()->options['editor'] != 1 && !current_user_can('manage_options')) {
|
85 |
+
die('Not enough privileges');
|
86 |
+
}
|
87 |
+
if (!check_admin_referer('view')) {
|
88 |
+
die();
|
89 |
+
}
|
90 |
+
|
91 |
+
// Used by theme code
|
92 |
+
$theme_options = $this->get_current_theme_options();
|
93 |
+
$theme_url = $this->get_current_theme_url();
|
94 |
+
header('Content-Type: text/html;charset=UTF-8');
|
95 |
+
|
96 |
+
include($this->get_current_theme_file_path('theme.php'));
|
97 |
+
|
98 |
+
die();
|
99 |
+
break;
|
100 |
+
|
101 |
+
case 'emails-preview-text':
|
102 |
+
header('Content-Type: text/plain;charset=UTF-8');
|
103 |
+
if (!current_user_can('manage_categories')) {
|
104 |
+
die('Not enough privileges');
|
105 |
+
}
|
106 |
+
|
107 |
+
if (Newsletter::instance()->options['editor'] != 1 && !current_user_can('manage_options')) {
|
108 |
+
die('Not enough privileges');
|
109 |
+
}
|
110 |
+
|
111 |
+
if (!check_admin_referer('view')) {
|
112 |
+
die();
|
113 |
+
}
|
114 |
+
|
115 |
+
// Used by theme code
|
116 |
+
$theme_options = $this->get_current_theme_options();
|
117 |
+
|
118 |
+
$file = $this->get_current_theme_file_path('theme-text.php');
|
119 |
+
if (is_file($file)) {
|
120 |
+
include($this->get_current_theme_file_path('theme-text.php'));
|
121 |
+
}
|
122 |
+
|
123 |
+
die();
|
124 |
+
break;
|
125 |
+
|
126 |
+
|
127 |
+
case 'emails-create':
|
128 |
+
|
129 |
+
if (!current_user_can('manage_categories')) {
|
130 |
+
die('Not enough privileges');
|
131 |
+
}
|
132 |
+
|
133 |
+
if ($newsletter->options['editor'] != 1 && !current_user_can('manage_options')) {
|
134 |
+
die('Not enough privileges');
|
135 |
+
}
|
136 |
+
|
137 |
+
require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
138 |
+
$controls = new NewsletterControls();
|
139 |
+
|
140 |
+
if ($controls->is_action('create')) {
|
141 |
+
$this->save_options($controls->data);
|
142 |
+
|
143 |
+
$email = array();
|
144 |
+
$email['status'] = 'new';
|
145 |
+
$email['subject'] = ''; //__('Here the email subject', 'newsletter');
|
146 |
+
$email['track'] = 1;
|
147 |
+
|
148 |
+
$theme_options = $this->get_current_theme_options();
|
149 |
+
|
150 |
+
$theme_url = $this->get_current_theme_url();
|
151 |
+
$theme_subject = '';
|
152 |
+
|
153 |
+
ob_start();
|
154 |
+
include $this->get_current_theme_file_path('theme.php');
|
155 |
+
$email['message'] = ob_get_clean();
|
156 |
+
|
157 |
+
if (!empty($theme_subject)) {
|
158 |
+
$email['subject'] = $theme_subject;
|
159 |
+
}
|
160 |
+
|
161 |
+
ob_start();
|
162 |
+
include $this->get_current_theme_file_path('theme-text.php');
|
163 |
+
$email['message_text'] = ob_get_clean();
|
164 |
+
|
165 |
+
$email['type'] = 'message';
|
166 |
+
$email['send_on'] = time();
|
167 |
+
$email = $newsletter->save_email($email);
|
168 |
+
|
169 |
+
header('Location: ' . $this->get_admin_page_url('edit') . '&id=' . $email->id);
|
170 |
+
}
|
171 |
+
die();
|
172 |
+
break;
|
173 |
}
|
174 |
}
|
175 |
|
181 |
$this->upgrade_query("alter table " . NEWSLETTER_EMAILS_TABLE . " change column `type` `type` varchar(50) not null default ''");
|
182 |
$this->upgrade_query("alter table " . NEWSLETTER_EMAILS_TABLE . " add column token varchar(10) not null default ''");
|
183 |
$this->upgrade_query("alter table " . NEWSLETTER_EMAILS_TABLE . " drop column visibility");
|
|
|
184 |
$this->upgrade_query("alter table " . NEWSLETTER_EMAILS_TABLE . " add column private tinyint(1) not null default 0");
|
185 |
|
186 |
// Force a token to email without one already set.
|
187 |
+
//$token = self::get_token();
|
188 |
+
//$wpdb->query("update " . NEWSLETTER_EMAILS_TABLE . " set token='" . $token . "' where token=''");
|
189 |
+
if ($this->old_version < '1.1.5') {
|
190 |
+
$this->upgrade_query("update " . NEWSLETTER_EMAILS_TABLE . " set type='message' where type=''");
|
191 |
+
$wpdb->query("update " . NEWSLETTER_EMAILS_TABLE . " set token=''");
|
192 |
+
}
|
193 |
+
$wpdb->query("update " . NEWSLETTER_EMAILS_TABLE . " set total=sent where status='sent' and type='message'");
|
194 |
|
195 |
return true;
|
196 |
}
|
emails/index.php
CHANGED
@@ -1,4 +1,6 @@
|
|
1 |
<?php
|
|
|
|
|
2 |
require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
3 |
$controls = new NewsletterControls();
|
4 |
$module = NewsletterEmails::instance();
|
@@ -101,7 +103,7 @@ $emails = Newsletter::instance()->get_emails('message');
|
|
101 |
</thead>
|
102 |
|
103 |
<tbody>
|
104 |
-
<?php foreach ($emails as
|
105 |
$email_options = unserialize($email->options);
|
106 |
?>
|
107 |
<tr>
|
@@ -112,7 +114,8 @@ $emails = Newsletter::instance()->get_emails('message');
|
|
112 |
echo htmlspecialchars($email->subject);
|
113 |
else
|
114 |
echo "Newsletter #" . $email->id;
|
115 |
-
|
|
|
116 |
|
117 |
<td>
|
118 |
<?php
|
1 |
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
|
4 |
require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
5 |
$controls = new NewsletterControls();
|
6 |
$module = NewsletterEmails::instance();
|
103 |
</thead>
|
104 |
|
105 |
<tbody>
|
106 |
+
<?php foreach ($emails as $email) {
|
107 |
$email_options = unserialize($email->options);
|
108 |
?>
|
109 |
<tr>
|
114 |
echo htmlspecialchars($email->subject);
|
115 |
else
|
116 |
echo "Newsletter #" . $email->id;
|
117 |
+
?>
|
118 |
+
</td>
|
119 |
|
120 |
<td>
|
121 |
<?php
|
emails/new.php
CHANGED
@@ -13,6 +13,7 @@ if ($controls->is_action('theme')) {
|
|
13 |
$email['status'] = 'new';
|
14 |
$email['subject'] = __('Here the email subject', 'newsletter');
|
15 |
$email['track'] = 1;
|
|
|
16 |
|
17 |
$theme_options = $module->get_current_theme_options();
|
18 |
$theme_url = $module->get_current_theme_url();
|
@@ -124,7 +125,6 @@ function newsletter_emails_get_theme_options($theme) {
|
|
124 |
|
125 |
<div class="wrap" id="tnp-wrap">
|
126 |
|
127 |
-
<?php $help_url = 'http://www.thenewsletterplugin.com/plugins/newsletter/newsletters-module'; ?>
|
128 |
<?php include NEWSLETTER_DIR . '/tnp-header.php'; ?>
|
129 |
|
130 |
<div id="tnp-heading">
|
@@ -138,34 +138,34 @@ function newsletter_emails_get_theme_options($theme) {
|
|
138 |
</div>
|
139 |
|
140 |
<div id="tnp-body" class="tnp-body-lite">
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
</div>
|
169 |
|
170 |
<?php include NEWSLETTER_DIR . '/tnp-footer.php'; ?>
|
171 |
|
13 |
$email['status'] = 'new';
|
14 |
$email['subject'] = __('Here the email subject', 'newsletter');
|
15 |
$email['track'] = 1;
|
16 |
+
$email['token'] = $module->get_token();
|
17 |
|
18 |
$theme_options = $module->get_current_theme_options();
|
19 |
$theme_url = $module->get_current_theme_url();
|
125 |
|
126 |
<div class="wrap" id="tnp-wrap">
|
127 |
|
|
|
128 |
<?php include NEWSLETTER_DIR . '/tnp-header.php'; ?>
|
129 |
|
130 |
<div id="tnp-heading">
|
138 |
</div>
|
139 |
|
140 |
<div id="tnp-body" class="tnp-body-lite">
|
141 |
+
|
142 |
+
<form method="post" action="<?php echo $module->get_admin_page_url('new'); ?>">
|
143 |
+
<?php $controls->init(); ?>
|
144 |
+
<?php $controls->hidden('theme'); ?>
|
145 |
+
|
146 |
+
<table style="width: 100%; border-collapse: collapse">
|
147 |
+
<tr>
|
148 |
+
<td style="text-align: left; vertical-align: top; border-bottom: 1px solid #ddd; padding-bottom: 10px">
|
149 |
+
<div style="float: right; margin-left: 15px;"><?php $controls->button_primary('save', __('Refresh the preview', 'newsletter')); ?></div>
|
150 |
+
|
151 |
+
</td>
|
152 |
+
<td style="text-align: left; vertical-align: top; border-bottom: 1px solid #ddd; padding-bottom: 10px">
|
153 |
+
<div style="float: right"><?php $controls->button_primary('create', 'Proceed to edit »', 'this.form.action=\'' . home_url('/') . '?na=emails-create\';this.form.submit()'); ?></div>
|
154 |
+
<img style="position: relative; left: 5px; top: 10px;"src="<?php echo plugins_url('newsletter') ?>/images/arrow.png" height="35">
|
155 |
+
</td>
|
156 |
+
</tr>
|
157 |
+
<tr>
|
158 |
+
<td style="width: 600px; vertical-align: top; padding-top: 10px">
|
159 |
+
<?php @include $module->get_current_theme_file_path('theme-options.php'); ?>
|
160 |
+
</td>
|
161 |
+
<td style="vertical-align: top; padding-top: 15px; padding-left: 15px">
|
162 |
+
<iframe src="<?php echo wp_nonce_url(home_url('/') . '?na=emails-preview&ts=' . time(), 'view'); ?>" height="700" style="width: 100%; border: 1px solid #ccc"></iframe>
|
163 |
+
</td>
|
164 |
+
</tr>
|
165 |
+
</table>
|
166 |
+
|
167 |
+
</form>
|
168 |
+
</div>
|
169 |
|
170 |
<?php include NEWSLETTER_DIR . '/tnp-footer.php'; ?>
|
171 |
|
emails/preview-text.php
DELETED
@@ -1,15 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
header('Content-Type: text/plain;charset=UTF-8');
|
3 |
-
|
4 |
-
include '../../../../wp-load.php';
|
5 |
-
|
6 |
-
if (!check_admin_referer('view'))
|
7 |
-
die('Only the administrator can view the preview');
|
8 |
-
|
9 |
-
// Used by theme code
|
10 |
-
$theme_options = NewsletterEmails::instance()->get_current_theme_options();
|
11 |
-
|
12 |
-
$file = NewsletterEmails::instance()->get_current_theme_file_path('theme-text.php');
|
13 |
-
if (is_file($file)) {
|
14 |
-
include(NewsletterEmails::instance()->get_current_theme_file_path('theme-text.php'));
|
15 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
emails/preview.php
DELETED
@@ -1,13 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
include '../../../../wp-load.php';
|
4 |
-
|
5 |
-
if (!check_admin_referer('view'))
|
6 |
-
die('Only the administrator can view the preview');
|
7 |
-
|
8 |
-
// Used by theme code
|
9 |
-
$theme_options = NewsletterEmails::instance()->get_current_theme_options();
|
10 |
-
$theme_url = NewsletterEmails::instance()->get_current_theme_url();
|
11 |
-
header('Content-Type: text/html;charset=UTF-8');
|
12 |
-
|
13 |
-
include(NewsletterEmails::instance()->get_current_theme_file_path('theme.php'));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
emails/theme.php
CHANGED
@@ -1,4 +1,6 @@
|
|
1 |
<?php
|
|
|
|
|
2 |
require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
3 |
$controls = new NewsletterControls();
|
4 |
$module = NewsletterEmails::instance();
|
@@ -69,15 +71,15 @@ $themes = $module->themes->get_all_with_data();
|
|
69 |
</a>
|
70 |
</div>
|
71 |
|
72 |
-
<?php foreach ($themes as $key =>
|
73 |
<div class="tnp-theme-preview">
|
74 |
-
<p><?php echo $data['name']
|
75 |
<a href="#" onclick="var f = document.getElementById('newsletter-form');
|
76 |
f.act.value = 'theme';
|
77 |
-
f.elements['options[theme]'].value = '<?php echo $data['id']
|
78 |
f.submit();
|
79 |
return false;" style="margin-right: 20px; margin-bottom: 20px">
|
80 |
-
<img src="<?php echo $data['screenshot'] ?>" width="200" height="200">
|
81 |
</a>
|
82 |
</div>
|
83 |
<?php } ?>
|
1 |
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
|
4 |
require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
5 |
$controls = new NewsletterControls();
|
6 |
$module = NewsletterEmails::instance();
|
71 |
</a>
|
72 |
</div>
|
73 |
|
74 |
+
<?php foreach ($themes as $key => $data) { ?>
|
75 |
<div class="tnp-theme-preview">
|
76 |
+
<p><?php echo esc_html($data['name']) ?></p>
|
77 |
<a href="#" onclick="var f = document.getElementById('newsletter-form');
|
78 |
f.act.value = 'theme';
|
79 |
+
f.elements['options[theme]'].value = '<?php echo esc_js($data['id']) ?>';
|
80 |
f.submit();
|
81 |
return false;" style="margin-right: 20px; margin-bottom: 20px">
|
82 |
+
<img src="<?php echo esc_attr($data['screenshot']) ?>" width="200" height="200">
|
83 |
</a>
|
84 |
</div>
|
85 |
<?php } ?>
|
emails/themes/blank/theme-options.php
CHANGED
@@ -1,6 +1,9 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
|
|
|
|
|
|
6 |
</table>
|
1 |
+
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
?>
|
4 |
+
<table class="form-table">
|
5 |
+
<tr>
|
6 |
+
<th>Disable social links</th>
|
7 |
+
<td><?php $controls->checkbox('theme_social_disable', ''); ?></td>
|
8 |
+
</tr>
|
9 |
</table>
|
emails/themes/blank/theme-text.php
CHANGED
@@ -1,3 +1,6 @@
|
|
|
|
|
|
|
|
1 |
This email requires a modern e-mail reader but you can view the email online here:
|
2 |
|
3 |
{email_url}.
|
1 |
+
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
?>
|
4 |
This email requires a modern e-mail reader but you can view the email online here:
|
5 |
|
6 |
{email_url}.
|
emails/themes/blank/theme.php
CHANGED
@@ -1,4 +1,6 @@
|
|
1 |
-
|
|
|
|
|
2 |
<head>
|
3 |
<style>
|
4 |
body {
|
1 |
+
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
?><html>
|
4 |
<head>
|
5 |
<style>
|
6 |
body {
|
emails/themes/cta-2015/theme-options.php
CHANGED
@@ -1,8 +1,11 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
</
|
7 |
-
|
|
|
|
|
|
|
8 |
</table>
|
1 |
+
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
?>
|
4 |
+
<table class="form-table">
|
5 |
+
<tr>
|
6 |
+
<th>Main color</th>
|
7 |
+
<td>
|
8 |
+
<?php $controls->color('theme_color'); ?> (eg. #87aa14)
|
9 |
+
</td>
|
10 |
+
</tr>
|
11 |
</table>
|
emails/themes/cta-2015/theme.php
CHANGED
@@ -1,160 +1,167 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Name: CTA 2015
|
4 |
-
* Type: standard
|
5 |
-
* Description: Single call to action marketing template
|
6 |
-
*/
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
$header = '<h2 style="color: ' . $header_color . '">' .
|
22 |
-
}
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
//
|
32 |
-
$
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
<?php
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
<?php
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
<?php
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
<?php
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
<?php
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
160 |
</html>
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Name: CTA 2015
|
4 |
+
* Type: standard
|
5 |
+
* Description: Single call to action marketing template
|
6 |
+
*/
|
7 |
+
|
8 |
+
if (!defined('ABSPATH')) exit;
|
9 |
+
|
10 |
+
$color = '#87aa14';
|
11 |
+
if (!empty($theme_options['theme_color'])) {
|
12 |
+
$color = $theme_options['theme_color'];
|
13 |
+
}
|
14 |
+
|
15 |
+
$header = '';
|
16 |
+
$header_color = '#000000';
|
17 |
+
if (!empty($theme_options['main_header_logo']['url'])) {
|
18 |
+
$header = '<img src="' . $theme_options['main_header_logo']['url'] . '" style="max-width: 500px">';
|
19 |
+
} else {
|
20 |
+
if (!empty($theme_options['main_header_title'])) {
|
21 |
+
$header = '<h2 style="color: ' . $header_color . '">' . $theme_options['main_header_title'] . '</h2>';
|
22 |
+
} else {
|
23 |
+
$header = '<h2 style="color: ' . $header_color . '">' . get_option('blogname') . '</h2>';
|
24 |
+
}
|
25 |
+
if (!empty($theme_options['main_header_sub'])) {
|
26 |
+
$header .= '<p style="color: #666666">' . $theme_options['main_header_sub'] . '</p>';
|
27 |
+
}
|
28 |
+
}
|
29 |
+
$font_family = 'Verdana';
|
30 |
+
//$cta_bgcolor = '#008800';
|
31 |
+
//if (!empty($theme_options['theme_cta_bgcolor'])) {
|
32 |
+
// $cta_bgcolor = $theme_options['theme_cta_bgcolor'];
|
33 |
+
//}
|
34 |
+
$social_icon_url = plugins_url('newsletter') . '/emails/themes/cta-2015/images';
|
35 |
+
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
36 |
+
<html>
|
37 |
+
<head>
|
38 |
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
39 |
+
<title></title>
|
40 |
+
</head>
|
41 |
+
<body bgcolor="#ffffff">
|
42 |
+
<table width="500" cellpadding="0" cellspacing="0" align="center" bgcolor="#ffffff" border="0">
|
43 |
+
<tr>
|
44 |
+
<td align="center" style="font-family: Verdana">
|
45 |
+
<table cellpadding="10" cellspacing="0" border="0" width="100%">
|
46 |
+
<tr>
|
47 |
+
<td style="font-size: 12px" align="center">
|
48 |
+
<a href="{email_url}" style="text-decoration: none">View online</a>
|
49 |
+
</td>
|
50 |
+
</tr>
|
51 |
+
</table>
|
52 |
+
</td>
|
53 |
+
</tr>
|
54 |
+
|
55 |
+
<!-- header -->
|
56 |
+
<tr>
|
57 |
+
<td align="center" style="font-family: Verdana">
|
58 |
+
<?php echo $header; ?>
|
59 |
+
</td>
|
60 |
+
</tr>
|
61 |
+
|
62 |
+
<!-- body -->
|
63 |
+
<tr>
|
64 |
+
<td style="font-family: Verdana">
|
65 |
+
|
66 |
+
<!-- main text -->
|
67 |
+
<table cellpadding="15" cellspacing="0" align="center" border="0" width="100%">
|
68 |
+
<tr>
|
69 |
+
<td style="font-size: 15px" align="center">
|
70 |
+
<h1>Super catching title</h1>
|
71 |
+
<p>
|
72 |
+
Here you should introduce your incredible offer. Remeber the golden rule: write
|
73 |
+
something useful for your readers, not for yourself.
|
74 |
+
</p>
|
75 |
+
<p>
|
76 |
+
If a reader ask the question: what's here for me, the content is answering?
|
77 |
+
</p>
|
78 |
+
</td>
|
79 |
+
</tr>
|
80 |
+
</table>
|
81 |
+
|
82 |
+
<!-- cta -->
|
83 |
+
<table cellpadding="15" cellspacing="0" align="center" bgcolor="<?php echo $color ?>" border="0" style="border-radius: 5px">
|
84 |
+
<tr>
|
85 |
+
<td><a href="#" style="font-size: 15px; color: #ffffff; text-decoration: none">Call to action</a></td>
|
86 |
+
</tr>
|
87 |
+
</table>
|
88 |
+
|
89 |
+
<!-- spacer -->
|
90 |
+
<table cellpadding="0" cellspacing="0" align="center" bgcolor="#ffffff" border="0" width="100%">
|
91 |
+
<tr>
|
92 |
+
<td>
|
93 |
+
|
94 |
+
</td>
|
95 |
+
</tr>
|
96 |
+
</table>
|
97 |
+
|
98 |
+
<!-- social -->
|
99 |
+
<table cellpadding="5" align="center">
|
100 |
+
<tr>
|
101 |
+
<?php if (!empty($theme_options['main_facebook_url'])) { ?>
|
102 |
+
<td align="center" valign="top">
|
103 |
+
<a href="<?php echo $theme_options['main_facebook_url'] ?>"><img src="<?php echo $social_icon_url ?>/facebook.png" alt="Facebook"></a>
|
104 |
+
</td>
|
105 |
+
<?php } ?>
|
106 |
+
|
107 |
+
<?php if (!empty($theme_options['main_googleplus_url'])) { ?>
|
108 |
+
<td align="center" valign="top">
|
109 |
+
<a href="<?php echo $theme_options['main_googleplus_url'] ?>"><img src="<?php echo $social_icon_url ?>/googleplus.png"></a>
|
110 |
+
</td>
|
111 |
+
<?php } ?>
|
112 |
+
|
113 |
+
<?php if (!empty($theme_options['main_twitter_url'])) { ?>
|
114 |
+
<td align="center" valign="top">
|
115 |
+
<a href="<?php echo $theme_options['main_twitter_url'] ?>"><img src="<?php echo $social_icon_url ?>/twitter.png"></a>
|
116 |
+
</td>
|
117 |
+
<?php } ?>
|
118 |
+
|
119 |
+
<?php if (!empty($theme_options['main_linkedin_url'])) { ?>
|
120 |
+
<td align="center" valign="top">
|
121 |
+
<a href="<?php echo $theme_options['main_linkedin_url'] ?>"><img src="<?php echo $social_icon_url ?>/linkedin.png"></a>
|
122 |
+
</td>
|
123 |
+
<?php } ?>
|
124 |
+
|
125 |
+
<?php if (!empty($theme_options['main_youtube_url'])) { ?>
|
126 |
+
<td align="center" valign="top">
|
127 |
+
<a href="<?php echo $theme_options['main_youtube_url'] ?>"><img src="<?php echo $social_icon_url ?>/youtube.png"></a>
|
128 |
+
</td>
|
129 |
+
<?php } ?>
|
130 |
+
|
131 |
+
<?php if (!empty($theme_options['main_vimeo_url'])) { ?>
|
132 |
+
<td align="center" valign="top">
|
133 |
+
<a href="<?php echo $theme_options['main_vimeo_url'] ?>"><img src="<?php echo $social_icon_url ?>/vimeo.png"></a>
|
134 |
+
</td>
|
135 |
+
<?php } ?>
|
136 |
+
<?php if (!empty($theme_options['main_instagram_url'])) { ?>
|
137 |
+
<td align="center" valign="top">
|
138 |
+
<a href="<?php echo $theme_options['main_instagram_url'] ?>"><img src="<?php echo $social_icon_url ?>/instagram.png"></a>
|
139 |
+
</td>
|
140 |
+
<?php } ?>
|
141 |
+
</tr>
|
142 |
+
</table>
|
143 |
+
|
144 |
+
<!-- spacer -->
|
145 |
+
<table cellpadding="0" cellspacing="0" align="center" bgcolor="#ffffff" border="0" width="100%">
|
146 |
+
<tr>
|
147 |
+
<td>
|
148 |
+
|
149 |
+
</td>
|
150 |
+
</tr>
|
151 |
+
</table>
|
152 |
+
|
153 |
+
<!-- footer -->
|
154 |
+
<table cellpadding="15" cellspacing="0" align="center" width="100%" bgcolor="#eeeeee" border="0">
|
155 |
+
<tr>
|
156 |
+
<td style="font-size: 12px">
|
157 |
+
<p><a href="{profile_url}">Manage your subscription</a></p>
|
158 |
+
<p><?php echo $theme_options['main_footer_contact'] ?></p>
|
159 |
+
<p><?php echo $theme_options['main_footer_legal'] ?></p>
|
160 |
+
</td>
|
161 |
+
</tr>
|
162 |
+
</table>
|
163 |
+
</td>
|
164 |
+
</tr>
|
165 |
+
</table>
|
166 |
+
</body>
|
167 |
</html>
|
emails/themes/default/footer.php
CHANGED
@@ -1,8 +1,11 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
|
|
|
|
|
|
8 |
<div style="text-align: center; color: #888">To change your subscription, <a target="_blank" href="{profile_url}">click here</a>.</div>
|
1 |
+
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
?>
|
4 |
+
<!-- Footer -->
|
5 |
+
<div style="text-align: center; font-weight: bold; margin: 40px 0 10px;"><?php echo $theme_options['main_footer_title'] ?></div>
|
6 |
+
<div style="text-align: center; margin: 10px 0 20px;"><?php echo $theme_options['main_footer_contact'] ?></div>
|
7 |
+
|
8 |
+
<?php include WP_PLUGIN_DIR . '/newsletter/emails/themes/default/social_main.php'; ?>
|
9 |
+
|
10 |
+
<div style="text-align: center; color: #888; margin-top: 20px;"><?php echo $theme_options['main_footer_legal'] ?></div>
|
11 |
<div style="text-align: center; color: #888">To change your subscription, <a target="_blank" href="{profile_url}">click here</a>.</div>
|
emails/themes/default/images/instagram.png
ADDED
Binary file
|
emails/themes/default/images/pinterest.png
CHANGED
Binary file
|
emails/themes/default/images/tumblr.png
CHANGED
Binary file
|
emails/themes/default/social-options.php
CHANGED
@@ -1,39 +1,46 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
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 |
</table>
|
1 |
+
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
?>
|
4 |
+
<h3>Social icons</h3>
|
5 |
+
<table class="form-table">
|
6 |
+
<tr>
|
7 |
+
<th>Social block</th>
|
8 |
+
<td><?php $controls->checkbox('theme_social_disable'); ?> Disable</td>
|
9 |
+
</tr>
|
10 |
+
<tr>
|
11 |
+
<th>Facebook</th>
|
12 |
+
<td><?php $controls->text_url('theme_facebook', 30); ?></td>
|
13 |
+
</tr>
|
14 |
+
<tr>
|
15 |
+
<th>Twitter</th>
|
16 |
+
<td><?php $controls->text_url('theme_twitter', 30); ?></td>
|
17 |
+
</tr>
|
18 |
+
<tr>
|
19 |
+
<th>Pinterest</th>
|
20 |
+
<td><?php $controls->text_url('theme_pinterest', 30); ?></td>
|
21 |
+
</tr>
|
22 |
+
<tr>
|
23 |
+
<th>Google+</th>
|
24 |
+
<td><?php $controls->text_url('theme_googleplus', 30); ?></td>
|
25 |
+
</tr>
|
26 |
+
<tr>
|
27 |
+
<th>LinkedIn</th>
|
28 |
+
<td><?php $controls->text_url('theme_linkedin', 30); ?></td>
|
29 |
+
</tr>
|
30 |
+
<tr>
|
31 |
+
<th>Tumblr</th>
|
32 |
+
<td><?php $controls->text_url('theme_tumblr', 30); ?></td>
|
33 |
+
</tr>
|
34 |
+
<tr>
|
35 |
+
<th>YouTube</th>
|
36 |
+
<td><?php $controls->text_url('theme_youtube', 30); ?></td>
|
37 |
+
</tr>
|
38 |
+
<tr>
|
39 |
+
<th>Soundcloud</th>
|
40 |
+
<td><?php $controls->text_url('theme_soundcloud', 30); ?></td>
|
41 |
+
</tr>
|
42 |
+
<tr>
|
43 |
+
<th>Instagram</th>
|
44 |
+
<td><?php $controls->text_url('theme_instagram', 30); ?></td>
|
45 |
+
</tr>
|
46 |
</table>
|
emails/themes/default/social.php
CHANGED
@@ -1,56 +1,63 @@
|
|
1 |
-
<!-- Social -->
|
2 |
-
<?php
|
3 |
-
if (
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
<?php
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
<?php
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
<?php
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
<?php
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
<?php
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
<?php
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
<?php
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
</table>
|
1 |
+
<!-- Social -->
|
2 |
+
<?php
|
3 |
+
if (!defined('ABSPATH')) exit;
|
4 |
+
|
5 |
+
if (isset($theme_options['theme_social_disable'])) return;
|
6 |
+
$social_icon_url = plugins_url('newsletter') . '/emails/themes/default/images';
|
7 |
+
?>
|
8 |
+
<table cellpadding="5" align="center">
|
9 |
+
<tr>
|
10 |
+
<?php if (!empty($theme_options['theme_facebook'])) { ?>
|
11 |
+
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
12 |
+
<a href="<?php echo esc_attr($theme_options['theme_facebook']) ?>"><img src="<?php echo $social_icon_url ?>/facebook.png"><br>Facebook</a>
|
13 |
+
</td>
|
14 |
+
<?php } ?>
|
15 |
+
|
16 |
+
<?php if (!empty($theme_options['theme_twitter'])) { ?>
|
17 |
+
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
18 |
+
<a href="<?php echo esc_attr($theme_options['theme_twitter']) ?>"><img src="<?php echo $social_icon_url ?>/twitter.png"><br>Twitter</a>
|
19 |
+
</td>
|
20 |
+
<?php } ?>
|
21 |
+
|
22 |
+
<?php if (!empty($theme_options['theme_googleplus'])) { ?>
|
23 |
+
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
24 |
+
<a href="<?php echo esc_attr($theme_options['theme_googleplus']) ?>"><img src="<?php echo $social_icon_url ?>/googleplus.png"><br>Google+</a>
|
25 |
+
</td>
|
26 |
+
<?php } ?>
|
27 |
+
|
28 |
+
<?php if (!empty($theme_options['theme_pinterest'])) { ?>
|
29 |
+
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
30 |
+
<a href="<?php echo esc_attr($theme_options['theme_pinterest']) ?>"><img src="<?php echo $social_icon_url ?>/pinterest.png"><br>Pinterest</a>
|
31 |
+
</td>
|
32 |
+
<?php } ?>
|
33 |
+
|
34 |
+
<?php if (!empty($theme_options['theme_linkedin'])) { ?>
|
35 |
+
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
36 |
+
<a href="<?php echo esc_attr($theme_options['theme_linkedin']) ?>"><img src="<?php echo $social_icon_url ?>/linkedin.png"><br>LinkedIn</a>
|
37 |
+
</td>
|
38 |
+
<?php } ?>
|
39 |
+
|
40 |
+
<?php if (!empty($theme_options['theme_tumblr'])) { ?>
|
41 |
+
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
42 |
+
<a href="<?php echo esc_attr($theme_options['theme_tumblr']) ?>"><img src="<?php echo $social_icon_url ?>/tumblr.png"><br>Tumblr</a>
|
43 |
+
</td>
|
44 |
+
<?php } ?>
|
45 |
+
|
46 |
+
<?php if (!empty($theme_options['theme_youtube'])) { ?>
|
47 |
+
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
48 |
+
<a href="<?php echo esc_attr($theme_options['theme_youtube']) ?>"><img src="<?php echo $social_icon_url ?>/youtube.png"><br>Youtube</a>
|
49 |
+
</td>
|
50 |
+
<?php } ?>
|
51 |
+
|
52 |
+
<?php if (!empty($theme_options['theme_soundcloud'])) { ?>
|
53 |
+
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
54 |
+
<a href="<?php echo esc_attr($theme_options['theme_soundcloud']) ?>"><img src="<?php echo $social_icon_url ?>/soundcloud.png"><br>SoundCloud</a>
|
55 |
+
</td>
|
56 |
+
<?php } ?>
|
57 |
+
<?php if (!empty($theme_options['theme_instagram'])) { ?>
|
58 |
+
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
59 |
+
<a href="<?php echo esc_attr($theme_options['theme_instagram']) ?>"><img src="<?php echo $social_icon_url ?>/instagram.png"><br>Instagram</a>
|
60 |
+
</td>
|
61 |
+
<?php } ?>
|
62 |
+
</tr>
|
63 |
</table>
|
emails/themes/default/social_main.php
CHANGED
@@ -1,44 +1,51 @@
|
|
1 |
-
<!-- Social -->
|
2 |
-
<?php
|
3 |
-
if (
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
<?php
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
<?php
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
<?php
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
<?php
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
<?php
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
</table>
|
1 |
+
<!-- Social -->
|
2 |
+
<?php
|
3 |
+
if (!defined('ABSPATH')) exit;
|
4 |
+
|
5 |
+
if (isset($theme_options['theme_social_disable'])) return;
|
6 |
+
$social_icon_url = plugins_url('newsletter') . '/emails/themes/default/images';
|
7 |
+
?>
|
8 |
+
<table cellpadding="5" align="center">
|
9 |
+
<tr>
|
10 |
+
<?php if (!empty($theme_options['main_facebook_url'])) { ?>
|
11 |
+
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
12 |
+
<a href="<?php echo esc_attr($theme_options['main_facebook_url']) ?>"><img src="<?php echo $social_icon_url ?>/facebook.png" alt="Facebook"></a>
|
13 |
+
</td>
|
14 |
+
<?php } ?>
|
15 |
+
|
16 |
+
<?php if (!empty($theme_options['main_googleplus_url'])) { ?>
|
17 |
+
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
18 |
+
<a href="<?php echo esc_attr($theme_options['main_googleplus_url']) ?>"><img src="<?php echo $social_icon_url ?>/googleplus.png"></a>
|
19 |
+
</td>
|
20 |
+
<?php } ?>
|
21 |
+
|
22 |
+
<?php if (!empty($theme_options['main_twitter_url'])) { ?>
|
23 |
+
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
24 |
+
<a href="<?php echo esc_attr($theme_options['main_twitter_url']) ?>"><img src="<?php echo $social_icon_url ?>/twitter.png"></a>
|
25 |
+
</td>
|
26 |
+
<?php } ?>
|
27 |
+
|
28 |
+
<?php if (!empty($theme_options['main_linkedin_url'])) { ?>
|
29 |
+
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
30 |
+
<a href="<?php echo esc_attr($theme_options['main_linkedin_url']) ?>"><img src="<?php echo $social_icon_url ?>/linkedin.png"></a>
|
31 |
+
</td>
|
32 |
+
<?php } ?>
|
33 |
+
|
34 |
+
<?php if (!empty($theme_options['main_youtube_url'])) { ?>
|
35 |
+
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
36 |
+
<a href="<?php echo esc_attr($theme_options['main_youtube_url']) ?>"><img src="<?php echo $social_icon_url ?>/youtube.png"></a>
|
37 |
+
</td>
|
38 |
+
<?php } ?>
|
39 |
+
|
40 |
+
<?php if (!empty($theme_options['main_vimeo_url'])) { ?>
|
41 |
+
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
42 |
+
<a href="<?php echo esc_attr($theme_options['main_vimeo_url']) ?>"><img src="<?php echo $social_icon_url ?>/vimeo.png"></a>
|
43 |
+
</td>
|
44 |
+
<?php } ?>
|
45 |
+
<?php if (!empty($theme_options['main_instagram_url'])) { ?>
|
46 |
+
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
47 |
+
<a href="<?php echo esc_attr($theme_options['main_instagram_url']) ?>"><img src="<?php echo $social_icon_url ?>/instagram.png"></a>
|
48 |
+
</td>
|
49 |
+
<?php } ?>
|
50 |
+
</tr>
|
51 |
</table>
|
emails/themes/default/theme-options.php
CHANGED
@@ -1,78 +1,60 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
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 |
-
|
42 |
-
|
43 |
-
<?php $controls->
|
44 |
-
<
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
<
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
<
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
<tr>
|
62 |
-
<th>Max posts</th>
|
63 |
-
<td>
|
64 |
-
<?php $controls->text('theme_max_posts', 5); ?>
|
65 |
-
</td>
|
66 |
-
</tr>
|
67 |
-
<tr>
|
68 |
-
<th>Post types to include</th>
|
69 |
-
<td>
|
70 |
-
<?php $controls->post_types('theme_post_types'); ?>
|
71 |
-
<div class="hints">Leave all unchecked for default behaviour.</div>
|
72 |
-
</td>
|
73 |
-
</tr>
|
74 |
-
</table>
|
75 |
-
<!--</div>-->
|
76 |
-
<!--<div id="tab-posts">-->
|
77 |
-
<!--</div>-->
|
78 |
-
<!--</div>-->
|
1 |
+
<?php
|
2 |
+
if (!defined('ABSPATH'))
|
3 |
+
exit;
|
4 |
+
?>
|
5 |
+
|
6 |
+
<table class="form-table">
|
7 |
+
<tr><td colspan="2">General options for header, social links and footer sections could also be set in <a href="?page=newsletter_main_main">Blog Info panel</a>.</td></tr>
|
8 |
+
<tr>
|
9 |
+
<th>Base color</th>
|
10 |
+
<td>
|
11 |
+
<?php $controls->color('theme_color'); ?>
|
12 |
+
<p class="description" style="display: inline">Hex values, e.g. #FF0000</p>
|
13 |
+
</td>
|
14 |
+
</tr>
|
15 |
+
<tr>
|
16 |
+
<th>Disable social links</th>
|
17 |
+
<td><?php $controls->checkbox('theme_social_disable', ''); ?></td>
|
18 |
+
</tr>
|
19 |
+
|
20 |
+
</table>
|
21 |
+
|
22 |
+
<h3>Posts</h3>
|
23 |
+
<table class="form-table">
|
24 |
+
<tr>
|
25 |
+
<th>Posts</th>
|
26 |
+
<td>
|
27 |
+
<?php $controls->checkbox('theme_posts', 'Add latest posts'); ?>
|
28 |
+
<br>
|
29 |
+
<?php $controls->checkbox('theme_thumbnails', 'Add post thumbnails'); ?>
|
30 |
+
<br>
|
31 |
+
<?php $controls->checkbox('theme_excerpts', 'Add post excerpts'); ?>
|
32 |
+
</td>
|
33 |
+
</tr>
|
34 |
+
<tr>
|
35 |
+
<th>Categories</th>
|
36 |
+
<td>
|
37 |
+
<?php $controls->categories_group('theme_categories'); ?>
|
38 |
+
</td>
|
39 |
+
</tr>
|
40 |
+
<tr>
|
41 |
+
<th>Tags</th>
|
42 |
+
<td>
|
43 |
+
<?php $controls->text('theme_tags', 30); ?>
|
44 |
+
<p class="description" style="display: inline"> comma separated</p>
|
45 |
+
</td>
|
46 |
+
</tr>
|
47 |
+
<tr>
|
48 |
+
<th>Max posts</th>
|
49 |
+
<td>
|
50 |
+
<?php $controls->text('theme_max_posts', 5); ?>
|
51 |
+
</td>
|
52 |
+
</tr>
|
53 |
+
<tr>
|
54 |
+
<th>Post types to include</th>
|
55 |
+
<td>
|
56 |
+
<?php $controls->post_types('theme_post_types'); ?>
|
57 |
+
<div class="hints">Leave all unchecked for default behaviour.</div>
|
58 |
+
</td>
|
59 |
+
</tr>
|
60 |
+
</table>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
emails/themes/default/theme-text.php
CHANGED
@@ -1,4 +1,6 @@
|
|
1 |
-
|
|
|
|
|
2 |
|
3 |
{email_url}.
|
4 |
|
1 |
+
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
?>This email requires a modern e-mail reader but you can view the email online here:
|
4 |
|
5 |
{email_url}.
|
6 |
|
emails/themes/default/theme.php
CHANGED
@@ -12,6 +12,8 @@
|
|
12 |
|
13 |
global $newsletter, $post;
|
14 |
|
|
|
|
|
15 |
$color = $theme_options['theme_color'];
|
16 |
if (empty($color)) $color = '#000000';
|
17 |
|
@@ -47,20 +49,20 @@ if (isset($theme_options['theme_posts'])) {
|
|
47 |
}
|
48 |
</style>
|
49 |
</head>
|
50 |
-
<body style="background-color: #
|
51 |
<br>
|
52 |
<table align="center">
|
53 |
<tr>
|
54 |
-
<td valign="top" style="font-family: Helvetica Neue, Helvetica, Arial, sans-serif; font-size: 14px; color: #666;">
|
55 |
<div style="text-align: left; background-color: #fff; max-width: 500px;">
|
56 |
<div style="text-align: center">
|
57 |
<?php //HEADER
|
58 |
// if (!empty($theme_options['theme_banner'])) {
|
59 |
// echo $theme_options['theme_banner'];
|
60 |
if (!empty($theme_options['theme_header_logo']['url'])) { ?>
|
61 |
-
<img style="max-width: 500px" alt="<?php echo $theme_options['main_header_title'] ?>" src="<?php echo $theme_options['theme_header_logo']['url'] ?>"
|
62 |
<?php } elseif (!empty($theme_options['main_header_logo']['url'])) { ?>
|
63 |
-
<img style="max-width: 500px" alt="<?php echo $theme_options['main_header_title'] ?>" src="<?php echo $theme_options['main_header_logo']['url'] ?>"
|
64 |
<?php } elseif (!empty($theme_options['main_header_title'])) { ?>
|
65 |
<div style="padding: 30px 0; color: #000; font-size: 28px; background-color: #EFEFEF; border-bottom: 1px solid #ddd; text-align: center;">
|
66 |
<?php echo $theme_options['main_header_title'] ?>
|
12 |
|
13 |
global $newsletter, $post;
|
14 |
|
15 |
+
if (!defined('ABSPATH')) exit;
|
16 |
+
|
17 |
$color = $theme_options['theme_color'];
|
18 |
if (empty($color)) $color = '#000000';
|
19 |
|
49 |
}
|
50 |
</style>
|
51 |
</head>
|
52 |
+
<body style="background-color: #ECF2F6; font-family: Helvetica Neue, Helvetica, Arial, sans-serif; font-size: 14px; color: #666; margin: 0 auto; padding: 0;">
|
53 |
<br>
|
54 |
<table align="center">
|
55 |
<tr>
|
56 |
+
<td valign="top" width="500" bgcolor="#ffffff" style="font-family: Helvetica Neue, Helvetica, Arial, sans-serif; font-size: 14px; color: #666;">
|
57 |
<div style="text-align: left; background-color: #fff; max-width: 500px;">
|
58 |
<div style="text-align: center">
|
59 |
<?php //HEADER
|
60 |
// if (!empty($theme_options['theme_banner'])) {
|
61 |
// echo $theme_options['theme_banner'];
|
62 |
if (!empty($theme_options['theme_header_logo']['url'])) { ?>
|
63 |
+
<img style="max-width: 500px" alt="<?php echo esc_attr($theme_options['main_header_title']) ?>" src="<?php echo esc_attr($theme_options['theme_header_logo']['url']) ?>">
|
64 |
<?php } elseif (!empty($theme_options['main_header_logo']['url'])) { ?>
|
65 |
+
<img style="max-width: 500px" alt="<?php echo esc_attr($theme_options['main_header_title']) ?>" src="<?php echo esc_attr($theme_options['main_header_logo']['url']) ?>">
|
66 |
<?php } elseif (!empty($theme_options['main_header_title'])) { ?>
|
67 |
<div style="padding: 30px 0; color: #000; font-size: 28px; background-color: #EFEFEF; border-bottom: 1px solid #ddd; text-align: center;">
|
68 |
<?php echo $theme_options['main_header_title'] ?>
|
emails/themes/linear/theme-options.php
CHANGED
@@ -1,18 +1,22 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
<tr>
|
7 |
-
<th>
|
8 |
-
<td><?php $controls->
|
9 |
-
</tr>
|
10 |
-
<tr>
|
11 |
-
<th>
|
12 |
-
<td>
|
13 |
-
|
14 |
-
|
15 |
-
</
|
16 |
-
|
17 |
-
|
|
|
|
|
|
|
|
|
18 |
<?php include WP_PLUGIN_DIR . '/newsletter/emails/themes/default/social-options.php'; ?>
|
1 |
+
<?php
|
2 |
+
if (!defined('ABSPATH'))
|
3 |
+
exit;
|
4 |
+
?>
|
5 |
+
<table class="form-table">
|
6 |
+
<tr>
|
7 |
+
<th>Max posts</th>
|
8 |
+
<td><?php $controls->text('theme_max_posts', 5); ?></td>
|
9 |
+
</tr>
|
10 |
+
<tr>
|
11 |
+
<th>Categories</th>
|
12 |
+
<td><?php $controls->categories_group('theme_categories'); ?></td>
|
13 |
+
</tr>
|
14 |
+
<tr>
|
15 |
+
<th>Post types</th>
|
16 |
+
<td>
|
17 |
+
<?php $controls->post_types('theme_post_types'); ?>
|
18 |
+
<p class="description">Leave all uncheck for a default behavior.</p>
|
19 |
+
</td>
|
20 |
+
</tr>
|
21 |
+
</table>
|
22 |
<?php include WP_PLUGIN_DIR . '/newsletter/emails/themes/default/social-options.php'; ?>
|
emails/themes/linear/theme-text.php
CHANGED
@@ -1,4 +1,7 @@
|
|
1 |
-
|
|
|
|
|
|
|
2 |
|
3 |
{email_url}.
|
4 |
|
1 |
+
<?php
|
2 |
+
if (!defined('ABSPATH'))
|
3 |
+
exit;
|
4 |
+
?>This email requires a modern e-mail reader but you can view the email online here:
|
5 |
|
6 |
{email_url}.
|
7 |
|
emails/themes/linear/theme.php
CHANGED
@@ -1,6 +1,9 @@
|
|
1 |
<?php
|
2 |
global $post;
|
3 |
|
|
|
|
|
|
|
4 |
$filters = array();
|
5 |
if (!empty($theme_options['theme_categories'])) {
|
6 |
$filters['category__in'] = $theme_options['theme_categories'];
|
@@ -73,7 +76,7 @@ $posts = get_posts($filters);
|
|
73 |
<tr>
|
74 |
<td valign="top" align="left">
|
75 |
<?php
|
76 |
-
foreach (array('facebook', 'twitter', 'youtube', 'linkedin', 'googleplus', 'pinterest', 'tumblr') as $social) {
|
77 |
if (empty($theme_options["theme_$social"]))
|
78 |
continue;
|
79 |
?>
|
1 |
<?php
|
2 |
global $post;
|
3 |
|
4 |
+
if (!defined('ABSPATH'))
|
5 |
+
exit;
|
6 |
+
|
7 |
$filters = array();
|
8 |
if (!empty($theme_options['theme_categories'])) {
|
9 |
$filters['category__in'] = $theme_options['theme_categories'];
|
76 |
<tr>
|
77 |
<td valign="top" align="left">
|
78 |
<?php
|
79 |
+
foreach (array('facebook', 'twitter', 'youtube', 'linkedin', 'googleplus', 'pinterest', 'tumblr', 'instagram') as $social) {
|
80 |
if (empty($theme_options["theme_$social"]))
|
81 |
continue;
|
82 |
?>
|
emails/themes/pint/theme-options.php
CHANGED
@@ -1,15 +1,19 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
<
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
<tr>
|
11 |
-
<th>
|
12 |
-
<td><?php $controls->
|
13 |
-
</tr>
|
14 |
-
|
|
|
|
|
|
|
|
|
15 |
<?php include WP_PLUGIN_DIR . '/newsletter/emails/themes/default/social-options.php'; ?>
|
1 |
+
<?php
|
2 |
+
if (!defined('ABSPATH'))
|
3 |
+
exit;
|
4 |
+
?>
|
5 |
+
<p>
|
6 |
+
This theme requires posts with at least one image and a number of posts like
|
7 |
+
3, 6, 9, ...
|
8 |
+
</p>
|
9 |
+
<table class="form-table">
|
10 |
+
<tr>
|
11 |
+
<th>Max posts</th>
|
12 |
+
<td><?php $controls->text('theme_max_posts', 5); ?></td>
|
13 |
+
</tr>
|
14 |
+
<tr>
|
15 |
+
<th>Categories</th>
|
16 |
+
<td><?php $controls->categories_group('theme_categories'); ?></td>
|
17 |
+
</tr>
|
18 |
+
</table>
|
19 |
<?php include WP_PLUGIN_DIR . '/newsletter/emails/themes/default/social-options.php'; ?>
|
emails/themes/pint/theme-text.php
CHANGED
@@ -1,4 +1,7 @@
|
|
1 |
-
|
|
|
|
|
|
|
2 |
|
3 |
{email_url}.
|
4 |
|
1 |
+
<?php
|
2 |
+
if (!defined('ABSPATH'))
|
3 |
+
exit;
|
4 |
+
?>This email requires a modern e-mail reader but you can view the email online here:
|
5 |
|
6 |
{email_url}.
|
7 |
|
emails/themes/pint/theme.php
CHANGED
@@ -10,6 +10,8 @@
|
|
10 |
|
11 |
global $newsletter, $post;
|
12 |
|
|
|
|
|
13 |
$filters = array();
|
14 |
if (!empty($theme_options['theme_categories'])) {
|
15 |
$filters['category__in'] = $theme_options['theme_categories'];
|
10 |
|
11 |
global $newsletter, $post;
|
12 |
|
13 |
+
if (!defined('ABSPATH')) exit;
|
14 |
+
|
15 |
$filters = array();
|
16 |
if (!empty($theme_options['theme_categories'])) {
|
17 |
$filters['category__in'] = $theme_options['theme_categories'];
|
emails/themes/simple/theme-text.php
CHANGED
@@ -1,4 +1,7 @@
|
|
1 |
-
|
|
|
|
|
|
|
2 |
|
3 |
{email_url}.
|
4 |
|
1 |
+
<?php
|
2 |
+
if (!defined('ABSPATH'))
|
3 |
+
exit;
|
4 |
+
?>This email requires a modern e-mail reader but you can view the email online here:
|
5 |
|
6 |
{email_url}.
|
7 |
|
emails/themes/simple/theme.php
CHANGED
@@ -10,6 +10,9 @@
|
|
10 |
|
11 |
global $newsletter, $post;
|
12 |
|
|
|
|
|
|
|
13 |
$color = $theme_options['theme_color'];
|
14 |
if (empty($color))
|
15 |
$color = '#0088cc';
|
10 |
|
11 |
global $newsletter, $post;
|
12 |
|
13 |
+
if (!defined('ABSPATH'))
|
14 |
+
exit;
|
15 |
+
|
16 |
$color = $theme_options['theme_color'];
|
17 |
if (empty($color))
|
18 |
$color = '#0088cc';
|
emails/themes/theme-1/theme-options.php
CHANGED
@@ -1,42 +1,46 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* This is a pre packaged theme options page. Every option name
|
4 |
-
* must start with "theme_" so Newsletter can distinguish them from other
|
5 |
-
* options that are specific to the object using the theme.
|
6 |
-
*
|
7 |
-
* An array of theme default options should always be present and that default options
|
8 |
-
* should be merged with the current complete set of options as shown below.
|
9 |
-
*
|
10 |
-
* Every theme can define its own set of options, the will be used in the theme.php
|
11 |
-
* file while composing the email body. Newsletter knows nothing about theme options
|
12 |
-
* (other than saving them) and does not use or relies on any of them.
|
13 |
-
*
|
14 |
-
* For multilanguage purpose you can actually check the constants "WP_LANG", until
|
15 |
-
* a decent system will be implemented.
|
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 |
-
|
42 |
-
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* This is a pre packaged theme options page. Every option name
|
4 |
+
* must start with "theme_" so Newsletter can distinguish them from other
|
5 |
+
* options that are specific to the object using the theme.
|
6 |
+
*
|
7 |
+
* An array of theme default options should always be present and that default options
|
8 |
+
* should be merged with the current complete set of options as shown below.
|
9 |
+
*
|
10 |
+
* Every theme can define its own set of options, the will be used in the theme.php
|
11 |
+
* file while composing the email body. Newsletter knows nothing about theme options
|
12 |
+
* (other than saving them) and does not use or relies on any of them.
|
13 |
+
*
|
14 |
+
* For multilanguage purpose you can actually check the constants "WP_LANG", until
|
15 |
+
* a decent system will be implemented.
|
16 |
+
*/
|
17 |
+
|
18 |
+
if (!defined('ABSPATH'))
|
19 |
+
exit;
|
20 |
+
|
21 |
+
$theme_defaults = array(
|
22 |
+
'theme_max_posts'=>10,
|
23 |
+
'theme_categories'=>array()
|
24 |
+
);
|
25 |
+
|
26 |
+
// Mandatory!
|
27 |
+
$controls->merge_defaults($theme_defaults);
|
28 |
+
?>
|
29 |
+
|
30 |
+
<table class="form-table">
|
31 |
+
<tr valign="top">
|
32 |
+
<th>Max new posts to include</th>
|
33 |
+
<td>
|
34 |
+
<?php $controls->text('theme_max_posts', 5); ?> (it defaults to 10 if empty or invalid)
|
35 |
+
</td>
|
36 |
+
</tr>
|
37 |
+
<tr valign="top">
|
38 |
+
<th>Categories</th>
|
39 |
+
<td>
|
40 |
+
<?php $controls->categories_group('theme_categories'); ?>
|
41 |
+
</td>
|
42 |
+
</tr>
|
43 |
+
</table>
|
44 |
+
|
45 |
+
<?php include WP_PLUGIN_DIR . '/newsletter/emails/themes/default/social-options.php'; ?>
|
46 |
+
|
emails/themes/theme-1/theme-text.php
CHANGED
@@ -2,6 +2,9 @@
|
|
2 |
global $newsletter; // Newsletter object
|
3 |
global $post; // Current post managed by WordPress
|
4 |
|
|
|
|
|
|
|
5 |
// This file is included inside a function so it inherit all the local variables.
|
6 |
|
7 |
// Since a theme has it's own options, it must check if there is new content to send
|
2 |
global $newsletter; // Newsletter object
|
3 |
global $post; // Current post managed by WordPress
|
4 |
|
5 |
+
if (!defined('ABSPATH'))
|
6 |
+
exit;
|
7 |
+
|
8 |
// This file is included inside a function so it inherit all the local variables.
|
9 |
|
10 |
// Since a theme has it's own options, it must check if there is new content to send
|
emails/themes/theme-1/theme.php
CHANGED
@@ -2,6 +2,9 @@
|
|
2 |
global $newsletter; // Newsletter object
|
3 |
global $post; // Current post managed by WordPress
|
4 |
|
|
|
|
|
|
|
5 |
/*
|
6 |
* Some variabled are prepared by Newsletter Plus and are available inside the theme,
|
7 |
* for example the theme options used to build the email body as configured by blog
|
2 |
global $newsletter; // Newsletter object
|
3 |
global $post; // Current post managed by WordPress
|
4 |
|
5 |
+
if (!defined('ABSPATH'))
|
6 |
+
exit;
|
7 |
+
|
8 |
/*
|
9 |
* Some variabled are prepared by Newsletter Plus and are available inside the theme,
|
10 |
* for example the theme options used to build the email body as configured by blog
|
emails/themes/theme-3/theme-options.php
CHANGED
@@ -1,43 +1,47 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* This is a pre packaged theme options page. Every option name
|
4 |
-
* must start with "theme_" so Newsletter can distinguish them from other
|
5 |
-
* options that are specific to the object using the theme.
|
6 |
-
*
|
7 |
-
* An array of theme default options should always be present and that default options
|
8 |
-
* should be merged with the current complete set of options as shown below.
|
9 |
-
*
|
10 |
-
* Every theme can define its own set of options, the will be used in the theme.php
|
11 |
-
* file while composing the email body. Newsletter knows nothing about theme options
|
12 |
-
* (other than saving them) and does not use or relies on any of them.
|
13 |
-
*
|
14 |
-
* For multilanguage purpose you can actually check the constants "WP_LANG", until
|
15 |
-
* a decent system will be implemented.
|
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 |
-
|
42 |
-
|
43 |
-
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* This is a pre packaged theme options page. Every option name
|
4 |
+
* must start with "theme_" so Newsletter can distinguish them from other
|
5 |
+
* options that are specific to the object using the theme.
|
6 |
+
*
|
7 |
+
* An array of theme default options should always be present and that default options
|
8 |
+
* should be merged with the current complete set of options as shown below.
|
9 |
+
*
|
10 |
+
* Every theme can define its own set of options, the will be used in the theme.php
|
11 |
+
* file while composing the email body. Newsletter knows nothing about theme options
|
12 |
+
* (other than saving them) and does not use or relies on any of them.
|
13 |
+
*
|
14 |
+
* For multilanguage purpose you can actually check the constants "WP_LANG", until
|
15 |
+
* a decent system will be implemented.
|
16 |
+
*/
|
17 |
+
|
18 |
+
if (!defined('ABSPATH'))
|
19 |
+
exit;
|
20 |
+
|
21 |
+
$theme_defaults = array(
|
22 |
+
'theme_max_posts'=>10,
|
23 |
+
|
24 |
+
'theme_categories'=>array()
|
25 |
+
);
|
26 |
+
|
27 |
+
// Mandatory!
|
28 |
+
$controls->merge_defaults($theme_defaults);
|
29 |
+
?>
|
30 |
+
<p>This theme build an email loading all new posts after the date of the last run.</p>
|
31 |
+
<table class="form-table">
|
32 |
+
<tr valign="top">
|
33 |
+
<th>Max new posts to include</th>
|
34 |
+
<td>
|
35 |
+
<?php $controls->text('theme_max_posts', 5); ?> (it defaults to 10 if empty or invalid)
|
36 |
+
</td>
|
37 |
+
</tr>
|
38 |
+
<tr valign="top">
|
39 |
+
<th>Categories</th>
|
40 |
+
<td>
|
41 |
+
<?php $controls->categories_group('theme_categories'); ?>
|
42 |
+
</td>
|
43 |
+
</tr>
|
44 |
+
</table>
|
45 |
+
|
46 |
+
<?php include WP_PLUGIN_DIR . '/newsletter/emails/themes/default/social-options.php'; ?>
|
47 |
+
|
emails/themes/theme-3/theme-text.php
CHANGED
@@ -2,6 +2,9 @@
|
|
2 |
global $newsletter; // Newsletter object
|
3 |
global $post; // Current post managed by WordPress
|
4 |
|
|
|
|
|
|
|
5 |
// This file is included inside a function so it inherit all the local variables.
|
6 |
|
7 |
// Since a theme has it's own options, it must check if there is new content to send
|
2 |
global $newsletter; // Newsletter object
|
3 |
global $post; // Current post managed by WordPress
|
4 |
|
5 |
+
if (!defined('ABSPATH'))
|
6 |
+
exit;
|
7 |
+
|
8 |
// This file is included inside a function so it inherit all the local variables.
|
9 |
|
10 |
// Since a theme has it's own options, it must check if there is new content to send
|
emails/themes/theme-3/theme.php
CHANGED
@@ -2,6 +2,9 @@
|
|
2 |
global $newsletter; // Newsletter object
|
3 |
global $post; // Current post managed by WordPress
|
4 |
|
|
|
|
|
|
|
5 |
/*
|
6 |
* Some variabled are prepared by Newsletter Plus and are available inside the theme,
|
7 |
* for example the theme options used to build the email body as configured by blog
|
2 |
global $newsletter; // Newsletter object
|
3 |
global $post; // Current post managed by WordPress
|
4 |
|
5 |
+
if (!defined('ABSPATH'))
|
6 |
+
exit;
|
7 |
+
|
8 |
/*
|
9 |
* Some variabled are prepared by Newsletter Plus and are available inside the theme,
|
10 |
* for example the theme options used to build the email body as configured by blog
|
emails/themes/vimeo-like/theme-options.php
CHANGED
@@ -1,60 +1,64 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* This is a pre packaged theme options page. Every option name
|
4 |
-
* must start with "theme_" so Newsletter can distinguish them from other
|
5 |
-
* options that are specific to the object using the theme.
|
6 |
-
*
|
7 |
-
* An array of theme default options should always be present and that default options
|
8 |
-
* should be merged with the current complete set of options as shown below.
|
9 |
-
*
|
10 |
-
* Every theme can define its own set of options, the will be used in the theme.php
|
11 |
-
* file while composing the email body. Newsletter knows nothing about theme options
|
12 |
-
* (other than saving them) and does not use or relies on any of them.
|
13 |
-
*
|
14 |
-
* For multilanguage purpose you can actually check the constants "WP_LANG", until
|
15 |
-
* a decent system will be implemented.
|
16 |
-
*/
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
</tr>
|
39 |
-
<tr>
|
40 |
-
<th>
|
41 |
-
<td>
|
42 |
-
|
43 |
-
|
44 |
-
</
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* This is a pre packaged theme options page. Every option name
|
4 |
+
* must start with "theme_" so Newsletter can distinguish them from other
|
5 |
+
* options that are specific to the object using the theme.
|
6 |
+
*
|
7 |
+
* An array of theme default options should always be present and that default options
|
8 |
+
* should be merged with the current complete set of options as shown below.
|
9 |
+
*
|
10 |
+
* Every theme can define its own set of options, the will be used in the theme.php
|
11 |
+
* file while composing the email body. Newsletter knows nothing about theme options
|
12 |
+
* (other than saving them) and does not use or relies on any of them.
|
13 |
+
*
|
14 |
+
* For multilanguage purpose you can actually check the constants "WP_LANG", until
|
15 |
+
* a decent system will be implemented.
|
16 |
+
*/
|
17 |
+
|
18 |
+
if (!defined('ABSPATH'))
|
19 |
+
exit;
|
20 |
+
|
21 |
+
$theme_defaults = array(
|
22 |
+
'theme_max_posts'=>5,
|
23 |
+
'theme_read_more'=>'Read More',
|
24 |
+
'theme_pre_message'=>'This email has been sent to {email} because subscribed and confirmed on ' . get_option('blogname') . '. <a href="{profile_url}">Click here to modify you subscription or unsubscribe</a>.',
|
25 |
+
'theme_categories'=>array()
|
26 |
+
);
|
27 |
+
|
28 |
+
// Mandatory!
|
29 |
+
$controls->merge_defaults($theme_defaults);
|
30 |
+
?>
|
31 |
+
|
32 |
+
<table class="form-table">
|
33 |
+
<tr valign="top">
|
34 |
+
<th>Max new posts to include</th>
|
35 |
+
<td>
|
36 |
+
<?php $controls->text('theme_max_posts', 5); ?> (it defaults to 10 if empty or invalid)
|
37 |
+
</td>
|
38 |
+
</tr>
|
39 |
+
<tr valign="top">
|
40 |
+
<th>Categories to include</th>
|
41 |
+
<td><?php $controls->categories_group('theme_categories'); ?></td>
|
42 |
+
</tr>
|
43 |
+
<tr>
|
44 |
+
<th>Post types</th>
|
45 |
+
<td>
|
46 |
+
<?php $controls->post_types('theme_post_types'); ?>
|
47 |
+
<p class="description">Leave all uncheck for a default behavior.</p>
|
48 |
+
</td>
|
49 |
+
</tr>
|
50 |
+
<tr valign="top">
|
51 |
+
<th>Pre message</th>
|
52 |
+
<td>
|
53 |
+
<?php $controls->text('theme_pre_message', 70); ?>
|
54 |
+
</td>
|
55 |
+
</tr>
|
56 |
+
<tr valign="top">
|
57 |
+
<th>Read more label</th>
|
58 |
+
<td>
|
59 |
+
<?php $controls->text('theme_read_more'); ?>
|
60 |
+
</td>
|
61 |
+
</tr>
|
62 |
+
</table>
|
63 |
+
|
64 |
+
<?php include WP_PLUGIN_DIR . '/newsletter/emails/themes/default/social-options.php'; ?>
|
emails/themes/vimeo-like/theme-text.php
CHANGED
@@ -1,4 +1,7 @@
|
|
1 |
-
|
|
|
|
|
|
|
2 |
|
3 |
{email_url}.
|
4 |
|
1 |
+
<?php
|
2 |
+
if (!defined('ABSPATH'))
|
3 |
+
exit;
|
4 |
+
?>This email requires a modern e-mail reader but you can view the email online here:
|
5 |
|
6 |
{email_url}.
|
7 |
|
emails/themes/vimeo-like/theme.php
CHANGED
@@ -2,6 +2,9 @@
|
|
2 |
global $newsletter; // Newsletter object
|
3 |
global $post; // Current post managed by WordPress
|
4 |
|
|
|
|
|
|
|
5 |
/*
|
6 |
* Some variabled are prepared by Newsletter Plus and are available inside the theme,
|
7 |
* for example the theme options used to build the email body as configured by blog
|
2 |
global $newsletter; // Newsletter object
|
3 |
global $post; // Current post managed by WordPress
|
4 |
|
5 |
+
if (!defined('ABSPATH'))
|
6 |
+
exit;
|
7 |
+
|
8 |
/*
|
9 |
* Some variabled are prepared by Newsletter Plus and are available inside the theme,
|
10 |
* for example the theme options used to build the email body as configured by blog
|
emails/themes/xmas-2014/theme.php
CHANGED
@@ -1,122 +1,125 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
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 |
-
|
42 |
-
|
43 |
-
span.yshortcuts
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
<tr>
|
79 |
-
<td width="600"
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
<p>
|
92 |
-
|
93 |
-
|
94 |
-
<p>
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
</
|
107 |
-
<
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
<td width="
|
113 |
-
|
114 |
-
|
115 |
-
<td width="
|
116 |
-
</tr>
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
|
|
|
|
|
|
122 |
</html>
|
1 |
+
<?php
|
2 |
+
if (!defined('ABSPATH'))
|
3 |
+
exit;
|
4 |
+
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
5 |
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
6 |
+
<head>
|
7 |
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
8 |
+
<title></title>
|
9 |
+
|
10 |
+
<style type="text/css">
|
11 |
+
.ExternalClass {width:100%;}
|
12 |
+
|
13 |
+
.ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div {
|
14 |
+
line-height: 100%;
|
15 |
+
}
|
16 |
+
|
17 |
+
body {-webkit-text-size-adjust:none; -ms-text-size-adjust:none;}
|
18 |
+
|
19 |
+
body {margin:0; padding:0;}
|
20 |
+
|
21 |
+
table td {border-collapse:collapse;}
|
22 |
+
|
23 |
+
p {margin:0; padding:0; margin-bottom:1em;}
|
24 |
+
|
25 |
+
h1, h2, h3, h4, h5, h6 {
|
26 |
+
color: #666;
|
27 |
+
line-height: 100%;
|
28 |
+
}
|
29 |
+
|
30 |
+
a, a:link {
|
31 |
+
color:#2A5DB0;
|
32 |
+
text-decoration: underline;
|
33 |
+
}
|
34 |
+
|
35 |
+
body, #body_style {
|
36 |
+
background:#A52B00;
|
37 |
+
min-height:1000px;
|
38 |
+
xcolor:#000;
|
39 |
+
font-family:Arial, Helvetica, sans-serif;
|
40 |
+
font-size:14px;
|
41 |
+
}
|
42 |
+
|
43 |
+
span.yshortcuts { color:#000; background-color:none; border:none;}
|
44 |
+
span.yshortcuts:hover,
|
45 |
+
span.yshortcuts:active,
|
46 |
+
span.yshortcuts:focus {color:#000; background-color:none; border:none;}
|
47 |
+
|
48 |
+
a:visited { color: #3c96e2; text-decoration: none}
|
49 |
+
a:focus { color: #3c96e2; text-decoration: underline}
|
50 |
+
a:hover { color: #3c96e2; text-decoration: underline}
|
51 |
+
|
52 |
+
@media only screen and (max-device-width: 480px) {
|
53 |
+
|
54 |
+
|
55 |
+
body[yahoo] #container1 {display:block !important}
|
56 |
+
body[yahoo] p {font-size: 10px}
|
57 |
+
|
58 |
+
}
|
59 |
+
|
60 |
+
@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) {
|
61 |
+
|
62 |
+
|
63 |
+
body[yahoo] #container1 {display:block !important}
|
64 |
+
body[yahoo] p {font-size: 14px}
|
65 |
+
|
66 |
+
}
|
67 |
+
|
68 |
+
</style>
|
69 |
+
|
70 |
+
|
71 |
+
</head>
|
72 |
+
<body style="margin-top: 0; background:#A52B00; min-height:1000px; color:#000;font-family:Arial, Helvetica, sans-serif; font-size:14px"
|
73 |
+
alink="#FF0000" link="#FF0000" bgcolor="#A52B00" text="#000000" yahoo="fix">
|
74 |
+
|
75 |
+
<div id="body_style" style="padding:0px">
|
76 |
+
|
77 |
+
<table cellpadding="0" cellspacing="0" border="0" bgcolor="#ffffff" width="600" align="center">
|
78 |
+
<tr>
|
79 |
+
<td width="600" colspan="3"><img src="<?php echo $theme_url; ?>/images/header.png"></td>
|
80 |
+
</tr>
|
81 |
+
<tr>
|
82 |
+
<td width="600" align="center" colspan="3">
|
83 |
+
<h1><?php echo get_option('blogname'); ?></h1>
|
84 |
+
</td>
|
85 |
+
</tr>
|
86 |
+
<tr>
|
87 |
+
<td width="20"> </td>
|
88 |
+
<td width="560">
|
89 |
+
<p>Hi {name},</p>
|
90 |
+
|
91 |
+
<p>The Newsletter Team wishes you merry Christmas and happy New Year. This time of year is special for us and we would like
|
92 |
+
to share this time with you, also.</p>
|
93 |
+
|
94 |
+
<p>We'll take a rest for few days with our families but we have a <strong>big surprise</strong> for YOU that will
|
95 |
+
be unvealed the first days of the New Year.</p>
|
96 |
+
|
97 |
+
<p>Curious? You can <a href="<?php echo get_option('blogname'); ?>">discover a little more right now</a>.</p>
|
98 |
+
|
99 |
+
<p>
|
100 |
+
See you soon, TNT.<br>
|
101 |
+
<a href="<?php echo get_option('blogname'); ?>">http://www.thenewsletterplugin.com</a>
|
102 |
+
</p>
|
103 |
+
|
104 |
+
</td>
|
105 |
+
<td width="20"> </td>
|
106 |
+
</tr>
|
107 |
+
<td width="600" colspan="3">
|
108 |
+
<?php include WP_PLUGIN_DIR . '/newsletter/emails/themes/default/social.php'; ?>
|
109 |
+
</td>
|
110 |
+
<tr>
|
111 |
+
<td width="20"> </td>
|
112 |
+
<td width="560" style="color:#666">
|
113 |
+
<p>To change your subscription, <a target="_blank" href="{profile_url}">click here</a>.
|
114 |
+
</td>
|
115 |
+
<td width="20"> </td>
|
116 |
+
</tr>
|
117 |
+
<tr>
|
118 |
+
<td width="600" colspan="3" bgcolor="#A52B00"><img src="<?php echo $theme_url; ?>/images/footer.png"></td>
|
119 |
+
</tr>
|
120 |
+
</table>
|
121 |
+
|
122 |
+
</div>
|
123 |
+
|
124 |
+
</body>
|
125 |
</html>
|
emails/tnp-composer/_css/newsletter-builder.css
CHANGED
@@ -444,6 +444,7 @@
|
|
444 |
.tnpc-subject input {
|
445 |
padding: 12px 15px;
|
446 |
margin-left: 20px;
|
|
|
447 |
}
|
448 |
|
449 |
.tnpc-subject a {
|
444 |
.tnpc-subject input {
|
445 |
padding: 12px 15px;
|
446 |
margin-left: 20px;
|
447 |
+
width: 70%;
|
448 |
}
|
449 |
|
450 |
.tnpc-subject a {
|
emails/tnp-composer/_scripts/newsletter-builder.js
CHANGED
@@ -1,354 +1,361 @@
|
|
1 |
-
jQuery.fn.hover_edit = function () {
|
2 |
-
|
3 |
-
this.hover(
|
4 |
-
function () {
|
5 |
-
jQuery(this).append('<div class="tnpc-row-edit-hover"><i class="fa fa-pencil" style="line-height:30px;"></i></div>');
|
6 |
-
jQuery(".tnpc-row-edit-hover").click(function (e) {
|
7 |
-
e.preventDefault()
|
8 |
-
});
|
9 |
-
jQuery(".tnpc-row-edit-hover i").click(function (e) {
|
10 |
-
e.preventDefault();
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
jQuery("#tnpc-edit-image").
|
18 |
-
jQuery("#tnpc-edit-image .
|
19 |
-
jQuery("#tnpc-edit-image .
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
jQuery("#tnpc-edit-link .
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
jQuery('.bgcolor').wpColorPicker(
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
jQuery("#tnpc-edit-title .color").wpColorPicker(
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
"
|
110 |
-
"
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
{text: '{
|
124 |
-
{text: '{
|
125 |
-
{text: '{
|
126 |
-
{text: '{
|
127 |
-
{text: '{
|
128 |
-
{text: '{
|
129 |
-
{text: '{
|
130 |
-
{text: '{
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
}
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
}
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
this.
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
jQuery(
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
jQuery(
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
jQuery(
|
227 |
-
jQuery(
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
};
|
240 |
-
|
241 |
-
|
242 |
-
target.parent().
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
}
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
jQuery
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
new_row
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
});
|
290 |
-
|
291 |
-
jQuery(".
|
292 |
-
connectToSortable: "#newsletter-builder-area-center-frame-content",
|
293 |
-
helper: "clone",
|
294 |
-
revert: false,
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
jQuery(".tnpc-
|
315 |
-
|
316 |
-
|
317 |
-
});
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
jQuery("
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery.fn.hover_edit = function () {
|
2 |
+
|
3 |
+
this.hover(
|
4 |
+
function () {
|
5 |
+
jQuery(this).append('<div class="tnpc-row-edit-hover"><i class="fa fa-pencil" style="line-height:30px;"></i></div>');
|
6 |
+
jQuery(".tnpc-row-edit-hover").click(function (e) {
|
7 |
+
e.preventDefault()
|
8 |
+
});
|
9 |
+
jQuery(".tnpc-row-edit-hover i").click(function (e) {
|
10 |
+
e.preventDefault();
|
11 |
+
$this = jQuery(this);
|
12 |
+
target = $this.parent().parent();
|
13 |
+
$this.parent().remove();
|
14 |
+
|
15 |
+
//edit image
|
16 |
+
if (target.attr("data-type") == 'image') {
|
17 |
+
jQuery("#tnpc-edit-image .image").val(target.find('img').attr("src"));
|
18 |
+
jQuery("#tnpc-edit-image .alt").val(target.find('img').attr("alt"));
|
19 |
+
jQuery("#tnpc-edit-image .url").val(target.find('a').attr("href"));
|
20 |
+
jQuery("#tnpc-edit-image").fadeIn(500);
|
21 |
+
jQuery("#tnpc-edit-image .tnpc-edit-box").slideDown(500);
|
22 |
+
jQuery("#tnpc-edit-image .tnpc-edit-box-buttons-save").click(function () {
|
23 |
+
jQuery(this).parent().parent().parent().fadeOut(500)
|
24 |
+
jQuery(this).parent().parent().slideUp(500)
|
25 |
+
target.find('img').attr("src", jQuery("#tnpc-edit-image .image").val());
|
26 |
+
target.find('img').attr("alt", jQuery("#tnpc-edit-image .alt").val());
|
27 |
+
target.find('a').attr("href", jQuery("#tnpc-edit-image .url").val());
|
28 |
+
});
|
29 |
+
}
|
30 |
+
|
31 |
+
//edit link
|
32 |
+
if (target.attr("data-type") == 'link') {
|
33 |
+
jQuery("#tnpc-edit-link .title").val(target.text());
|
34 |
+
jQuery("#tnpc-edit-link .url").val(target.attr("href"));
|
35 |
+
jQuery("#tnpc-edit-link").show();
|
36 |
+
jQuery("#tnpc-edit-link .tnpc-edit-box").show();
|
37 |
+
//jQuery("#tnpc-edit-link .tnpc-edit-box").slideDown(300);
|
38 |
+
jQuery("#tnpc-edit-link .tnpc-edit-box-buttons-save").click(function () {
|
39 |
+
jQuery(this).parent().parent().parent().fadeOut(500)
|
40 |
+
jQuery(this).parent().parent().slideUp(500)
|
41 |
+
target.text(jQuery("#tnpc-edit-link .title").val());
|
42 |
+
target.attr("href", jQuery("#tnpc-edit-link .url").val());
|
43 |
+
});
|
44 |
+
}
|
45 |
+
|
46 |
+
//edit button
|
47 |
+
if (target.attr("data-type") == 'button') {
|
48 |
+
jQuery("#tnpc-edit-button .title").val(target.text());
|
49 |
+
jQuery("#tnpc-edit-button .url").val(target.attr("href"));
|
50 |
+
jQuery('.bgcolor, .fgcolor').wpColorPicker({
|
51 |
+
// change: function (event, ui) {
|
52 |
+
// jQuery('.bgcolor').iris('hide');
|
53 |
+
// },
|
54 |
+
});
|
55 |
+
jQuery('.bgcolor').wpColorPicker().iris('color', target.css("background-color"));
|
56 |
+
jQuery('.fgcolor').wpColorPicker().iris('color', target.css("color"));
|
57 |
+
jQuery("#tnpc-edit-button").fadeIn(500);
|
58 |
+
jQuery("#tnpc-edit-button .tnpc-edit-box").slideDown(500);
|
59 |
+
jQuery("#tnpc-edit-button .tnpc-edit-box-buttons-save").click(function () {
|
60 |
+
jQuery(this).parent().parent().parent().fadeOut(500)
|
61 |
+
jQuery(this).parent().parent().slideUp(500)
|
62 |
+
target.text(jQuery("#tnpc-edit-button .title").val());
|
63 |
+
target.attr("href", jQuery("#tnpc-edit-button .url").val());
|
64 |
+
target.css("color", jQuery("#tnpc-edit-button .fgcolor").val());
|
65 |
+
target.css("background-color", jQuery("#tnpc-edit-button .bgcolor").val());
|
66 |
+
target.css("border-color", jQuery("#tnpc-edit-button .bgcolor").val());
|
67 |
+
});
|
68 |
+
}
|
69 |
+
|
70 |
+
//edit title
|
71 |
+
if (target.attr("data-type") == 'title') {
|
72 |
+
jQuery("#tnpc-edit-title .title").val(target.text());
|
73 |
+
jQuery("#tnpc-edit-title .color").val(target.css("color"));
|
74 |
+
jQuery("#tnpc-edit-title .color").wpColorPicker({
|
75 |
+
// change: function (event, ui) {
|
76 |
+
// jQuery('.bgcolor').iris('hide');
|
77 |
+
// },
|
78 |
+
});
|
79 |
+
jQuery("#tnpc-edit-title .color").wpColorPicker().iris('color', target.css("color"));
|
80 |
+
jQuery("#tnpc-edit-title").fadeIn(500);
|
81 |
+
jQuery("#tnpc-edit-title .tnpc-edit-box").slideDown(500);
|
82 |
+
jQuery("#tnpc-edit-title .tnpc-edit-box-buttons-save").click(function () {
|
83 |
+
jQuery(this).parent().parent().parent().fadeOut(500)
|
84 |
+
jQuery(this).parent().parent().slideUp(500)
|
85 |
+
target.text(jQuery("#tnpc-edit-title .title").val());
|
86 |
+
target.css("color", jQuery("#tnpc-edit-title .color").val());
|
87 |
+
});
|
88 |
+
}
|
89 |
+
|
90 |
+
//edit text
|
91 |
+
if (target.attr("data-type") == 'text') {
|
92 |
+
jQuery("#tnpc-edit-text .text").val(target.text());
|
93 |
+
tinymce.init({
|
94 |
+
selector: '#tnpc-edit-text .text',
|
95 |
+
menubar: false,
|
96 |
+
relative_urls: false,
|
97 |
+
remove_script_host: false,
|
98 |
+
toolbar: [
|
99 |
+
'fontselect fontsizeselect forecolor | bold italic underline | link | bullist numlist | emoticons | alignleft aligncenter alignright alignjustify tnp'
|
100 |
+
],
|
101 |
+
plugins: "textcolor,link,emoticons",
|
102 |
+
init_instance_callback: function (editor) {
|
103 |
+
editor.setContent(target.html());
|
104 |
+
},
|
105 |
+
elementpath: false,
|
106 |
+
statusbar: false,
|
107 |
+
forced_root_block: false,
|
108 |
+
font_formats: "Arial=arial,helvetica,sans-serif" +
|
109 |
+
"Arial Black=arial black,avant garde;" +
|
110 |
+
"Tahoma=tahoma,arial,helvetica,sans-serif;" +
|
111 |
+
"Trebuchet MS=trebuchet ms,geneva;" +
|
112 |
+
"Verdana=verdana,geneva;" +
|
113 |
+
"Georgia=georgia,palatino;" +
|
114 |
+
"Times=times,times new roman;" +
|
115 |
+
"Times New Roman=times new roman,times;" +
|
116 |
+
"Courier=courier,courier new;" +
|
117 |
+
"Courier New=courier new,courier",
|
118 |
+
setup: function (editor) {
|
119 |
+
editor.addButton('tnp', {
|
120 |
+
type: 'menubutton',
|
121 |
+
image: tinymce.baseURL + '/skins/tnp.png',
|
122 |
+
menu: [
|
123 |
+
{text: '{blog_url}', onclick: function () {console.log(this.text); editor.insertContent(' {blog_url} ');}},
|
124 |
+
{text: '{blog_title}', onclick: function () {console.log(this.text); editor.insertContent(' {blog_title} ');}},
|
125 |
+
{text: '{blog_description}', onclick: function () {console.log(this.text); editor.insertContent(' {blog_description} ');}},
|
126 |
+
{text: '{date}', onclick: function () {console.log(this.text); editor.insertContent(' {date} ');}},
|
127 |
+
{text: '{date_NNN}', onclick: function () {console.log(this.text); editor.insertContent(' {date_NNN} ');}},
|
128 |
+
{text: '{email_url}', onclick: function () {console.log(this.text); editor.insertContent(' {email_url} ');}},
|
129 |
+
{text: '{name}', onclick: function () {console.log(this.text); editor.insertContent(' {name} ');}},
|
130 |
+
{text: '{surname}', onclick: function () {console.log(this.text); editor.insertContent(' {surname} ');}},
|
131 |
+
{text: '{title}', onclick: function () {console.log(this.text); editor.insertContent(' {title} ');}},
|
132 |
+
{text: '{email}', onclick: function () {console.log(this.text); editor.insertContent(' {email} ');}},
|
133 |
+
{text: '{profile_N}', onclick: function () {console.log(this.text); editor.insertContent(' {profile_N} ');}},
|
134 |
+
{text: '{ip}', onclick: function () {console.log(this.text); editor.insertContent(' {ip} ');}},
|
135 |
+
{text: '{subscription_confirm_url}', onclick: function () {console.log(this.text); editor.insertContent(' {subscription_confirm_url} ');}},
|
136 |
+
{text: '{unsubscription_confirm_url}', onclick: function () {console.log(this.text); editor.insertContent(' {unsubscription_confirm_url} ');}},
|
137 |
+
{text: '{profile_url}', onclick: function () {console.log(this.text); editor.insertContent(' {profile_url} ');}},
|
138 |
+
],
|
139 |
+
});
|
140 |
+
},
|
141 |
+
});
|
142 |
+
if (tinymce.activeEditor != null)
|
143 |
+
tinymce.activeEditor.setContent(target.html());
|
144 |
+
jQuery("#tnpc-edit-text").fadeIn(500);
|
145 |
+
jQuery("#tnpc-edit-text .tnpc-edit-box").slideDown(500);
|
146 |
+
jQuery("#tnpc-edit-text .tnpc-edit-box-buttons-save").click(function () {
|
147 |
+
jQuery(this).parent().parent().parent().fadeOut(500)
|
148 |
+
jQuery(this).parent().parent().slideUp(500)
|
149 |
+
target.html(tinymce.activeEditor.getContent());
|
150 |
+
});
|
151 |
+
}
|
152 |
+
|
153 |
+
//edit icon
|
154 |
+
if (target.attr("data-type") == 'icon') {
|
155 |
+
jQuery("#tnpc-edit-icon").fadeIn(500);
|
156 |
+
jQuery("#tnpc-edit-icon .tnpc-edit-box").slideDown(500);
|
157 |
+
jQuery("#tnpc-edit-icon i").click(function () {
|
158 |
+
jQuery(this).parent().parent().parent().parent().fadeOut(500)
|
159 |
+
jQuery(this).parent().parent().parent().slideUp(500)
|
160 |
+
target.children('i').attr('class', jQuery(this).attr('class'));
|
161 |
+
});
|
162 |
+
}//
|
163 |
+
|
164 |
+
});
|
165 |
+
}, function () {
|
166 |
+
jQuery(this).children(".tnpc-row-edit-hover").remove();
|
167 |
+
}
|
168 |
+
);
|
169 |
+
}
|
170 |
+
|
171 |
+
jQuery.fn.add_delete = function () {
|
172 |
+
this.append('<div class="tnpc-row-delete"><i class="fa fa-times" ></i></div>');
|
173 |
+
this.find('.tnpc-row-delete').perform_delete();
|
174 |
+
}
|
175 |
+
|
176 |
+
jQuery.fn.perform_delete = function () {
|
177 |
+
this.click(function () {
|
178 |
+
jQuery(this).parent().remove();
|
179 |
+
});
|
180 |
+
}
|
181 |
+
|
182 |
+
jQuery.fn.add_block_edit = function () {
|
183 |
+
this.append('<div class="tnpc-row-edit-block"><i class="fa fa-pencil" ></i></div>');
|
184 |
+
this.find('.tnpc-row-edit-block i').perform_block_edit();
|
185 |
+
}
|
186 |
+
|
187 |
+
jQuery.fn.perform_block_edit = function () {
|
188 |
+
|
189 |
+
jQuery(".tnpc-row-edit-block").click(function (e) {
|
190 |
+
e.preventDefault()
|
191 |
+
});
|
192 |
+
|
193 |
+
this.click(function (e) {
|
194 |
+
|
195 |
+
e.preventDefault();
|
196 |
+
|
197 |
+
target = jQuery(this).parent().parent().find('.edit-block');
|
198 |
+
|
199 |
+
jQuery("#tnpc-edit-block .bgcolor").val(target.css("background-color"));
|
200 |
+
jQuery("#tnpc-edit-block .font").val(target.css("font-family"));
|
201 |
+
|
202 |
+
jQuery('.bgcolor').wpColorPicker({
|
203 |
+
// change: function (event, ui) {
|
204 |
+
// jQuery('.bgcolor').iris('hide');
|
205 |
+
// },
|
206 |
+
});
|
207 |
+
jQuery('.bgcolor').wpColorPicker().iris('color', target.css("background-color"));
|
208 |
+
|
209 |
+
// posts block
|
210 |
+
if (jQuery(this).parent().parent().hasClass('tnpc-row-posts')) {
|
211 |
+
|
212 |
+
jQuery("#tnpc-edit-posts").fadeIn(500);
|
213 |
+
jQuery("#tnpc-edit-posts .tnpc-edit-box").slideDown(500);
|
214 |
+
|
215 |
+
} else {
|
216 |
+
|
217 |
+
jQuery("#tnpc-edit-block").fadeIn(500);
|
218 |
+
jQuery("#tnpc-edit-block .tnpc-edit-box").slideDown(500);
|
219 |
+
|
220 |
+
}
|
221 |
+
|
222 |
+
jQuery("#tnpc-edit-block .tnpc-edit-box-buttons-save").click(function () {
|
223 |
+
jQuery(this).parent().parent().parent().fadeOut(500)
|
224 |
+
jQuery(this).parent().parent().slideUp(500)
|
225 |
+
|
226 |
+
target.css("background-color", jQuery("#tnpc-edit-block .bgcolor").val());
|
227 |
+
target.css("font-family", jQuery("#tnpc-edit-block .font").val());
|
228 |
+
|
229 |
+
});
|
230 |
+
|
231 |
+
jQuery("#tnpc-edit-posts .tnpc-edit-box-buttons-save").click(function () {
|
232 |
+
|
233 |
+
jQuery(this).parent().parent().parent().fadeOut(500)
|
234 |
+
jQuery(this).parent().parent().slideUp(500)
|
235 |
+
var categories = [];
|
236 |
+
jQuery('#tnpc-edit-posts input[name="options[theme_categories][]"]:checked').each(function ()
|
237 |
+
{
|
238 |
+
categories.push(jQuery(this).val());
|
239 |
+
});
|
240 |
+
var data = {
|
241 |
+
'action': 'tnpc_render',
|
242 |
+
'b': target.parent().parent().parent().data('block') + ".block",
|
243 |
+
'num': jQuery("#tnpc-edit-posts .number").val(),
|
244 |
+
'tags': jQuery("#tnpc-edit-posts .tags").val(),
|
245 |
+
'categories': categories
|
246 |
+
};
|
247 |
+
jQuery.post(ajaxurl, data, function (response) {
|
248 |
+
new_row = jQuery(response);
|
249 |
+
target.parent().before(new_row).remove();
|
250 |
+
new_row.add_delete();
|
251 |
+
new_row.add_block_edit();
|
252 |
+
new_row.find(".tnpc-row-edit").hover_edit();
|
253 |
+
});
|
254 |
+
});
|
255 |
+
|
256 |
+
});
|
257 |
+
|
258 |
+
}
|
259 |
+
|
260 |
+
jQuery(function () {
|
261 |
+
|
262 |
+
// collapse wp menu
|
263 |
+
jQuery('body').addClass('folded');
|
264 |
+
|
265 |
+
//Drag & Drop
|
266 |
+
jQuery("#newsletter-builder-area-center-frame-content").sortable({
|
267 |
+
revert: false,
|
268 |
+
stop: function (event, ui) {
|
269 |
+
if (ui.item.hasClass("newsletter-sidebar-buttons-content-tab")) {
|
270 |
+
loading_row = jQuery('<div style="text-align: center; padding: 20px; background-color: #d4d5d6; color: #52BE7F;"><i class="fa fa-cog fa-2x fa-spin" /></div>');
|
271 |
+
ui.item.before(loading_row);
|
272 |
+
ui.item.remove();
|
273 |
+
var data = {
|
274 |
+
'action': 'tnpc_render',
|
275 |
+
'b': ui.item.data("file")
|
276 |
+
};
|
277 |
+
jQuery.post(ajaxurl, data, function (response) {
|
278 |
+
new_row = jQuery(response);
|
279 |
+
// ui.item.before(new_row);
|
280 |
+
// ui.item.remove();
|
281 |
+
loading_row.before(new_row);
|
282 |
+
loading_row.remove();
|
283 |
+
new_row.add_delete();
|
284 |
+
new_row.add_block_edit();
|
285 |
+
new_row.find(".tnpc-row-edit").hover_edit();
|
286 |
+
});
|
287 |
+
}
|
288 |
+
}
|
289 |
+
});
|
290 |
+
|
291 |
+
jQuery(".tnpc-row").draggable({
|
292 |
+
connectToSortable: "#newsletter-builder-area-center-frame-content",
|
293 |
+
//helper: "clone",
|
294 |
+
revert: false,
|
295 |
+
handle: ".tnpc-row-move"
|
296 |
+
});
|
297 |
+
|
298 |
+
jQuery(".newsletter-sidebar-buttons-content-tab").draggable({
|
299 |
+
connectToSortable: "#newsletter-builder-area-center-frame-content",
|
300 |
+
helper: "clone",
|
301 |
+
revert: false,
|
302 |
+
start: function () {
|
303 |
+
if (jQuery('.tnpc-row').length)
|
304 |
+
jQuery('.tnpc-row').append('<div class="tnpc-drop-here">Drag&Drop blocks here!</div>');
|
305 |
+
else
|
306 |
+
jQuery('#newsletter-builder-area-center-frame-content').append('<div class="tnpc-drop-here">Drag&Drop blocks here!</div>');
|
307 |
+
},
|
308 |
+
stop: function () {
|
309 |
+
jQuery('.tnpc-drop-here').remove();
|
310 |
+
}
|
311 |
+
});
|
312 |
+
|
313 |
+
//close edit
|
314 |
+
jQuery(".tnpc-edit-box-buttons-cancel").click(function () {
|
315 |
+
jQuery(this).parent().parent().parent().fadeOut(500)
|
316 |
+
jQuery(this).parent().parent().slideUp(500)
|
317 |
+
});
|
318 |
+
|
319 |
+
// initialize controls
|
320 |
+
jQuery(".tnpc-row").add_delete();
|
321 |
+
jQuery(".tnpc-row").add_block_edit();
|
322 |
+
jQuery(".tnpc-row-edit").hover_edit();
|
323 |
+
|
324 |
+
});
|
325 |
+
|
326 |
+
function create() {
|
327 |
+
|
328 |
+
jQuery("#newsletter-preloaded-export").html(jQuery("#newsletter-builder-area-center-frame-content").html());
|
329 |
+
|
330 |
+
jQuery("#newsletter-preloaded-export .tnpc-row-delete").remove();
|
331 |
+
jQuery("#newsletter-preloaded-export .tnpc-row-edit-block").remove();
|
332 |
+
jQuery("#newsletter-preloaded-export .tnpc-row").removeClass("ui-draggable");
|
333 |
+
// jQuery("#newsletter-preloaded-export .tnpc-row-edit").removeAttr("data-type");
|
334 |
+
// jQuery("#newsletter-preloaded-export .tnpc-row-edit").removeClass("tnpc-row-edit");
|
335 |
+
preload_export_html = jQuery("#newsletter-preloaded-export").html();
|
336 |
+
|
337 |
+
if (preload_export_html.indexOf('<style type="text/css">') > -1) {
|
338 |
+
export_content = preload_export_html;
|
339 |
+
jQuery("#tnpc-edit-export .text").val(export_content);
|
340 |
+
jQuery('#tnpc-form input[name="options[body]"]').attr('value', export_content);
|
341 |
+
jQuery("#tnpc-form").submit();
|
342 |
+
} else {
|
343 |
+
jQuery.get(ajaxurl, {action: "tnpc_css"}, function (data) {
|
344 |
+
// export_content = '<style>' + data + '</style><link href="http://fonts.googleapis.com/css?family=Source+Sans+Pro:200,300,400,600,700,900,200italic,300italic,400italic,600italic,700italic,900italic" rel="stylesheet" type="text/css"><link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css"><div id="tnpc-wrapper"><div id="tnpc-wrapper-newsletter">' + preload_export_html + '</div></div>';
|
345 |
+
export_content = '<!DOCTYPE html><html><head><title>Newsletter</title><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta http-equiv="X-UA-Compatible" content="IE=edge" />';
|
346 |
+
export_content += '<style type="text/css">' + data + '</style>';
|
347 |
+
export_content += '<link href="http://fonts.googleapis.com/css?family=Source+Sans+Pro:200,300,400,600,700,900,200italic,300italic,400italic,600italic,700italic,900italic" rel="stylesheet" type="text/css">';
|
348 |
+
export_content += '<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">';
|
349 |
+
export_content += '</head><body style="margin: 0; padding: 0;">';
|
350 |
+
export_content += preload_export_html;
|
351 |
+
export_content += '</body></html>';
|
352 |
+
jQuery("#tnpc-edit-export .text").val(export_content);
|
353 |
+
jQuery('#tnpc-form input[name="options[body]"]').attr('value', export_content);
|
354 |
+
jQuery("#tnpc-form").submit();
|
355 |
+
});
|
356 |
+
}
|
357 |
+
|
358 |
+
jQuery("#newsletter-preloaded-export").html(' ');
|
359 |
+
|
360 |
+
}
|
361 |
+
|
emails/tnp-composer/blocks/{content-01-hero.block → content-01-hero.block.php}
RENAMED
@@ -10,7 +10,7 @@
|
|
10 |
<tr>
|
11 |
<td class="padding-copy tnpc-row-edit" data-type="image">
|
12 |
<a href="#" target="_blank">
|
13 |
-
<img src="https://unsplash.it/500/300?image=885" width="500"
|
14 |
</a>
|
15 |
</td>
|
16 |
</tr>
|
10 |
<tr>
|
11 |
<td class="padding-copy tnpc-row-edit" data-type="image">
|
12 |
<a href="#" target="_blank">
|
13 |
+
<img src="https://unsplash.it/500/300?image=885" width="500" border="0" alt="Insert alt text here" style="max-width: 100%!important; width: 500px!important; height: auto!important; display: block; color: #666666; font-family: Helvetica, arial, sans-serif; font-size: 16px;" class="img-max">
|
14 |
</a>
|
15 |
</td>
|
16 |
</tr>
|
emails/tnp-composer/blocks/{content-01-hero.png → content-01-hero.block.png}
RENAMED
File without changes
|
emails/tnp-composer/blocks/{content-02-heading.block → content-02-heading.block.php}
RENAMED
@@ -2,7 +2,7 @@
|
|
2 |
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="tnpc-row" data-id="content-02">
|
3 |
<tr>
|
4 |
<td bgcolor="#ffffff" align="center" style="padding: 15px; font-family: Helvetica, Arial, sans-serif;" class="section-padding edit-block">
|
5 |
-
<table border="0" cellpadding="0" cellspacing="0" width="500" class="responsive-table">
|
6 |
<tr>
|
7 |
<td align="center" style="font-size: 25px; color: #333333; padding-top: 30px;" class="padding-copy tnpc-row-edit" data-type="title">An Awesome Title</td>
|
8 |
</tr>
|
2 |
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="tnpc-row" data-id="content-02">
|
3 |
<tr>
|
4 |
<td bgcolor="#ffffff" align="center" style="padding: 15px; font-family: Helvetica, Arial, sans-serif;" class="section-padding edit-block">
|
5 |
+
<table border="0" cellpadding="0" cellspacing="0" width="500" class="responsive-table" style="max-width: 100%!important">
|
6 |
<tr>
|
7 |
<td align="center" style="font-size: 25px; color: #333333; padding-top: 30px;" class="padding-copy tnpc-row-edit" data-type="title">An Awesome Title</td>
|
8 |
</tr>
|
emails/tnp-composer/blocks/{content-02-heading.png → content-02-heading.block.png}
RENAMED
File without changes
|
emails/tnp-composer/blocks/content-03-text.block
DELETED
@@ -1,12 +0,0 @@
|
|
1 |
-
<!-- ONE COLUMN SECTION -->
|
2 |
-
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="tnpc-row" data-id="content-03">
|
3 |
-
<tr>
|
4 |
-
<td bgcolor="#ffffff" align="center" style="padding: 20px 15px 20px 15px; font-family: Helvetica, Arial, sans-serif;" class="section-padding edit-block">
|
5 |
-
<table border="0" cellpadding="0" cellspacing="0" width="500" class="responsive-table">
|
6 |
-
<tr>
|
7 |
-
<td align="center" style="padding: 0 0 0 0; font-size: 16px; line-height: 25px; color: #666666;" class="padding-copy tnpc-row-edit" data-type="text">The judge, by the way, was the King; and as he wore his crown over the wig, (look at the frontispiece if you want to see how he did it,) he did not look at all comfortable, and it was certainly not becoming.</td>
|
8 |
-
</tr>
|
9 |
-
</table>
|
10 |
-
</td>
|
11 |
-
</tr>
|
12 |
-
</table>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/tnp-composer/blocks/content-03-text.block → emails/tnp-composer/blocks/content-03-text.block.php
RENAMED
@@ -2,7 +2,7 @@
|
|
2 |
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="tnpc-row" data-id="content-03">
|
3 |
<tr>
|
4 |
<td bgcolor="#ffffff" align="center" style="padding: 20px 15px 20px 15px; font-family: Helvetica, Arial, sans-serif;" class="section-padding edit-block">
|
5 |
-
<table border="0" cellpadding="0" cellspacing="0"
|
6 |
<tr>
|
7 |
<td align="center" style="padding: 0 0 0 0; font-size: 16px; line-height: 25px; color: #666666;" class="padding-copy tnpc-row-edit" data-type="text">The judge, by the way, was the King; and as he wore his crown over the wig, (look at the frontispiece if you want to see how he did it,) he did not look at all comfortable, and it was certainly not becoming.</td>
|
8 |
</tr>
|
2 |
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="tnpc-row" data-id="content-03">
|
3 |
<tr>
|
4 |
<td bgcolor="#ffffff" align="center" style="padding: 20px 15px 20px 15px; font-family: Helvetica, Arial, sans-serif;" class="section-padding edit-block">
|
5 |
+
<table border="0" cellpadding="0" cellspacing="0" class="responsive-table" style="width: 100%!important">
|
6 |
<tr>
|
7 |
<td align="center" style="padding: 0 0 0 0; font-size: 16px; line-height: 25px; color: #666666;" class="padding-copy tnpc-row-edit" data-type="text">The judge, by the way, was the King; and as he wore his crown over the wig, (look at the frontispiece if you want to see how he did it,) he did not look at all comfortable, and it was certainly not becoming.</td>
|
8 |
</tr>
|
emails/tnp-composer/blocks/{content-03-text.png → content-03-text.block.png}
RENAMED
File without changes
|
emails/tnp-composer/blocks/{content-04-cta.block → content-04-cta.block.php}
RENAMED
File without changes
|
emails/tnp-composer/blocks/{content-04-cta.png → content-04-cta.block.png}
RENAMED
File without changes
|
emails/tnp-composer/blocks/content-05-image.block
DELETED
@@ -1,12 +0,0 @@
|
|
1 |
-
<!-- ONE COLUMN SECTION -->
|
2 |
-
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="tnpc-row" data-id="content-05">
|
3 |
-
<tr>
|
4 |
-
<td bgcolor="#ffffff" align="center" style="padding: 0; font-family: Helvetica, Arial, sans-serif;" class="section-padding edit-block">
|
5 |
-
<div class="tnpc-row-edit" data-type="image">
|
6 |
-
<a href="#" target="_blank">
|
7 |
-
<img src="https://unsplash.it/800/300?image=998" width="800" height="300" border="0" alt="Insert alt text here" style="display: block; color: #666666; font-family: Helvetica, arial, sans-serif; font-size: 16px;" class="img-max">
|
8 |
-
</a>
|
9 |
-
</div>
|
10 |
-
</td>
|
11 |
-
</tr>
|
12 |
-
</table>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/tnp-composer/blocks/content-05-image.block → emails/tnp-composer/blocks/content-05-image.block.php
RENAMED
@@ -4,7 +4,7 @@
|
|
4 |
<td bgcolor="#ffffff" align="center" style="padding: 0; font-family: Helvetica, Arial, sans-serif;" class="section-padding edit-block">
|
5 |
<div class="tnpc-row-edit" data-type="image">
|
6 |
<a href="#" target="_blank">
|
7 |
-
<img src="https://unsplash.it/800/300?image=998" width="800"
|
8 |
</a>
|
9 |
</div>
|
10 |
</td>
|
4 |
<td bgcolor="#ffffff" align="center" style="padding: 0; font-family: Helvetica, Arial, sans-serif;" class="section-padding edit-block">
|
5 |
<div class="tnpc-row-edit" data-type="image">
|
6 |
<a href="#" target="_blank">
|
7 |
+
<img src="https://unsplash.it/800/300?image=998" width="800" border="0" alt="Insert alt text here" style="max-width: 100%!important; width: 800px!important; height: auto!important;display: block; color: #666666; font-family: Helvetica, arial, sans-serif; font-size: 16px;" class="img-max">
|
8 |
</a>
|
9 |
</div>
|
10 |
</td>
|
emails/tnp-composer/blocks/{content-05-image.png → content-05-image.block.png}
RENAMED
File without changes
|
emails/tnp-composer/blocks/content-06-posts.block
DELETED
@@ -1,84 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
include NEWSLETTER_INCLUDES_DIR . '/helper.php';
|
3 |
-
|
4 |
-
$filters = array();
|
5 |
-
$filters['showposts'] = $_POST['num'] ? intval($_POST['num']) : 3;
|
6 |
-
if (!empty($_POST['categories'])) {
|
7 |
-
$filters['category__in'] = $_POST['categories'];
|
8 |
-
}
|
9 |
-
if (!empty($_POST['tags'])) {
|
10 |
-
$filters['tag'] = $_POST['tags'];
|
11 |
-
}
|
12 |
-
$posts = get_posts($filters);
|
13 |
-
?>
|
14 |
-
|
15 |
-
<!-- COMPACT ARTICLE SECTION -->
|
16 |
-
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="tnpc-row tnpc-row-posts" data-id="content-06" data-block="content-06-posts">
|
17 |
-
<tr>
|
18 |
-
<td bgcolor="#E6E9ED" align="center" style="padding: 70px 15px 70px 15px;" class="section-padding edit-block">
|
19 |
-
<table border="0" cellpadding="0" cellspacing="0" width="500" style="padding:0 0 20px 0;" class="responsive-table">
|
20 |
-
<!-- TITLE -->
|
21 |
-
<tr>
|
22 |
-
<td align="center" style="padding: 0 0 10px 0; font-size: 25px; font-family: Helvetica, Arial, sans-serif; font-weight: normal; color: #333333;" class="padding-copy tnpc-row-edit" data-type="title" colspan="2">From Our Blog</td>
|
23 |
-
</tr>
|
24 |
-
|
25 |
-
<?php foreach ($posts AS $post) { ?>
|
26 |
-
|
27 |
-
<tr>
|
28 |
-
<td valign="top" style="padding: 40px 0 0 0;" class="mobile-hide tnpc-row-edit" data-type="image">
|
29 |
-
<a href="<?php echo tnp_post_permalink($post) ?>" target="_blank">
|
30 |
-
<img src="<?php echo tnp_post_thumbnail_src($post) ?>" width="105" height="105" border="0" style="display: block; font-family: Arial; color: #666666; font-size: 14px; width: 105px; height: 105px;">
|
31 |
-
</a>
|
32 |
-
</td>
|
33 |
-
<td style="padding: 40px 0 0 0;" class="no-padding">
|
34 |
-
<!-- ARTICLE -->
|
35 |
-
<table border="0" cellspacing="0" cellpadding="0" width="100%">
|
36 |
-
<tr>
|
37 |
-
<td align="left" style="padding: 0 0 5px 25px; font-size: 13px; font-family: Helvetica, Arial, sans-serif; font-weight: normal; color: #aaaaaa;" class="padding-meta">
|
38 |
-
<?php echo tnp_post_date($post) ?>
|
39 |
-
</td>
|
40 |
-
</tr>
|
41 |
-
<tr>
|
42 |
-
<td align="left" style="padding: 0 0 5px 25px; font-size: 22px; font-family: Helvetica, Arial, sans-serif; font-weight: normal; color: #333333;" class="padding-copy tnpc-row-edit" data-type="title">
|
43 |
-
<?php echo tnp_post_title($post) ?>
|
44 |
-
</td>
|
45 |
-
</tr>
|
46 |
-
<tr>
|
47 |
-
<td align="left" style="padding: 10px 0 15px 25px; font-size: 16px; line-height: 24px; font-family: Helvetica, Arial, sans-serif; color: #666666;" class="padding-copy tnpc-row-edit" data-type="text">
|
48 |
-
<?php echo tnp_post_excerpt($post) ?>
|
49 |
-
</td>
|
50 |
-
</tr>
|
51 |
-
<tr>
|
52 |
-
<td style="padding:0 0 45px 25px;" align="left" class="padding">
|
53 |
-
<table border="0" cellspacing="0" cellpadding="0" class="mobile-button-container">
|
54 |
-
<tr>
|
55 |
-
<td align="center">
|
56 |
-
<!-- BULLETPROOF BUTTON -->
|
57 |
-
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="mobile-button-container">
|
58 |
-
<tr>
|
59 |
-
<td align="center" style="padding: 0;" class="padding-copy">
|
60 |
-
<table border="0" cellspacing="0" cellpadding="0" class="responsive-table">
|
61 |
-
<tr>
|
62 |
-
<td align="center">
|
63 |
-
<a href="<?php echo tnp_post_permalink($post) ?>" target="_blank" style="font-size: 15px; font-family: Helvetica, Arial, sans-serif; font-weight: normal; color: #ffffff; text-decoration: none; background-color: #256F9C; border-top: 10px solid #256F9C; border-bottom: 10px solid #256F9C; border-left: 20px solid #256F9C; border-right: 20px solid #256F9C; border-radius: 3px; -webkit-border-radius: 3px; -moz-border-radius: 3px; display: inline-block;" class="mobile-button tnpc-row-edit" data-type="link">Go To Article →</a>
|
64 |
-
</td>
|
65 |
-
</tr>
|
66 |
-
</table>
|
67 |
-
</td>
|
68 |
-
</tr>
|
69 |
-
</table>
|
70 |
-
</td>
|
71 |
-
</tr>
|
72 |
-
</table>
|
73 |
-
</td>
|
74 |
-
</tr>
|
75 |
-
</table>
|
76 |
-
</td>
|
77 |
-
</tr>
|
78 |
-
|
79 |
-
<?php } ?>
|
80 |
-
|
81 |
-
</table>
|
82 |
-
</td>
|
83 |
-
</tr>
|
84 |
-
</table>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/tnp-composer/blocks/content-06-posts.block → emails/tnp-composer/blocks/content-06-posts.block.php
RENAMED
@@ -2,7 +2,7 @@
|
|
2 |
include NEWSLETTER_INCLUDES_DIR . '/helper.php';
|
3 |
|
4 |
$filters = array();
|
5 |
-
$filters['showposts'] = $_POST['num'] ? intval($_POST['num']) : 3;
|
6 |
if (!empty($_POST['categories'])) {
|
7 |
$filters['category__in'] = $_POST['categories'];
|
8 |
}
|
@@ -27,7 +27,7 @@ $posts = get_posts($filters);
|
|
27 |
<tr>
|
28 |
<td valign="top" style="padding: 40px 0 0 0;" class="mobile-hide tnpc-row-edit" data-type="image">
|
29 |
<a href="<?php echo tnp_post_permalink($post) ?>" target="_blank">
|
30 |
-
<img src="<?php echo tnp_post_thumbnail_src($post) ?>" width="105" height="105" border="0" style="display: block; font-family: Arial; color: #666666; font-size: 14px; width: 105px; height: 105px;">
|
31 |
</a>
|
32 |
</td>
|
33 |
<td style="padding: 40px 0 0 0;" class="no-padding">
|
2 |
include NEWSLETTER_INCLUDES_DIR . '/helper.php';
|
3 |
|
4 |
$filters = array();
|
5 |
+
$filters['showposts'] = isset($_POST['num']) ? intval($_POST['num']) : 3;
|
6 |
if (!empty($_POST['categories'])) {
|
7 |
$filters['category__in'] = $_POST['categories'];
|
8 |
}
|
27 |
<tr>
|
28 |
<td valign="top" style="padding: 40px 0 0 0;" class="mobile-hide tnpc-row-edit" data-type="image">
|
29 |
<a href="<?php echo tnp_post_permalink($post) ?>" target="_blank">
|
30 |
+
<img src="<?php echo tnp_post_thumbnail_src($post) ?>" width="105" height="105" border="0" style="display: block; font-family: Arial; color: #666666; font-size: 14px; width: 105px!important; height: 105px!important;">
|
31 |
</a>
|
32 |
</td>
|
33 |
<td style="padding: 40px 0 0 0;" class="no-padding">
|
emails/tnp-composer/blocks/{content-06-posts.png → content-06-posts.block.png}
RENAMED
File without changes
|
emails/tnp-composer/blocks/{content-07-twocols.block → content-07-twocols.block.php}
RENAMED
@@ -2,7 +2,7 @@
|
|
2 |
include NEWSLETTER_INCLUDES_DIR . '/helper.php';
|
3 |
|
4 |
$filters = array();
|
5 |
-
$filters['showposts'] = $_POST['num'] ? intval($_POST['num']) : 3;
|
6 |
if (!empty($_POST['categories'])) {
|
7 |
$filters['category__in'] = $_POST['categories'];
|
8 |
}
|
2 |
include NEWSLETTER_INCLUDES_DIR . '/helper.php';
|
3 |
|
4 |
$filters = array();
|
5 |
+
$filters['showposts'] = isset($_POST['num']) ? intval($_POST['num']) : 3;
|
6 |
if (!empty($_POST['categories'])) {
|
7 |
$filters['category__in'] = $_POST['categories'];
|
8 |
}
|
emails/tnp-composer/blocks/{content-07-twocols.png → content-07-twocols.block.png}
RENAMED
File without changes
|
emails/tnp-composer/blocks/{footer-01-footer.block → footer-01-footer.block.php}
RENAMED
File without changes
|
emails/tnp-composer/blocks/{footer-01-footer.png → footer-01-footer.block.png}
RENAMED
File without changes
|
emails/tnp-composer/blocks/{footer-02-canspam.block → footer-02-canspam.block.php}
RENAMED
File without changes
|
emails/tnp-composer/blocks/{footer-02-canspam.png → footer-02-canspam.block.png}
RENAMED
File without changes
|
emails/tnp-composer/blocks/{footer-03-social.block → footer-03-social.block.php}
RENAMED
@@ -47,6 +47,11 @@
|
|
47 |
<a href="<?php echo $block_options['soundcloud'] ?>"><img src="<?php echo $social_icon_url ?>/soundcloud.png" alt="SoundCloud"></a>
|
48 |
</span>
|
49 |
<?php } ?>
|
|
|
|
|
|
|
|
|
|
|
50 |
<?php if (!$configured) { ?>
|
51 |
<p>Configure your social links in the <a href="?page=newsletter_main_info">Social configuration section</a>.<br/>
|
52 |
Then remove and add again this block.</p>
|
47 |
<a href="<?php echo $block_options['soundcloud'] ?>"><img src="<?php echo $social_icon_url ?>/soundcloud.png" alt="SoundCloud"></a>
|
48 |
</span>
|
49 |
<?php } ?>
|
50 |
+
<?php if (!empty($block_options['instagram_url'])) { $configured = true; ?>
|
51 |
+
<span class="tnpc-row-edit" data-type="image">
|
52 |
+
<a href="<?php echo $block_options['instagram'] ?>"><img src="<?php echo $social_icon_url ?>/instagram.png" alt="Instagram"></a>
|
53 |
+
</span>
|
54 |
+
<?php } ?>
|
55 |
<?php if (!$configured) { ?>
|
56 |
<p>Configure your social links in the <a href="?page=newsletter_main_info">Social configuration section</a>.<br/>
|
57 |
Then remove and add again this block.</p>
|
emails/tnp-composer/blocks/{footer-03-social.png → footer-03-social.block.png}
RENAMED
File without changes
|
emails/tnp-composer/blocks/header-01-header.block
DELETED
@@ -1,34 +0,0 @@
|
|
1 |
-
<!-- HEADER -->
|
2 |
-
<table border="0" cellpadding="0" cellspacing="0" width="100%" data-id="header-01" class="tnpc-row" data-id="header-01">
|
3 |
-
<tr>
|
4 |
-
<td bgcolor="#333333" class="edit-block">
|
5 |
-
<div align="center" style="padding: 0px 15px 0px 15px;">
|
6 |
-
<table border="0" cellpadding="0" cellspacing="0" width="500" class="wrapper">
|
7 |
-
<!-- LOGO/PREHEADER TEXT -->
|
8 |
-
<tr>
|
9 |
-
<td style="padding: 20px 0px 30px 0px;" class="logo">
|
10 |
-
<table border="0" cellpadding="0" cellspacing="0" width="100%">
|
11 |
-
<tr>
|
12 |
-
<td width="100" align="left" class="tnpc-row-edit" data-type="image">
|
13 |
-
<a href="#" target="_blank">
|
14 |
-
<img alt="Logo" src="<?php echo isset($block_options['header_logo']) ? $block_options['header_logo']['url'] : 'http://placehold.it/180x50?text=' . isset($block_options['header_title']) ? $block_options['header_title'] : "" ?>" style="display: block; width: 180px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; font-size: 16px;" border="0">
|
15 |
-
</a>
|
16 |
-
</td>
|
17 |
-
<td width="400" align="right" class="mobile-hide">
|
18 |
-
<table border="0" cellpadding="0" cellspacing="0">
|
19 |
-
<tr>
|
20 |
-
<td align="right" style="padding: 0 0 5px 0; font-size: 14px; font-family: Arial, sans-serif; color: #666666; text-decoration: none;" class="tnpc-row-edit" data-type="text">
|
21 |
-
<span style="color: #666666; text-decoration: none;" ><?php echo isset($block_options['header_sub']) ? $block_options['header_sub'] : 'A little text up top can be nice.<br>Maybe a link to tweet?' ?></span>
|
22 |
-
</td>
|
23 |
-
</tr>
|
24 |
-
</table>
|
25 |
-
</td>
|
26 |
-
</tr>
|
27 |
-
</table>
|
28 |
-
</td>
|
29 |
-
</tr>
|
30 |
-
</table>
|
31 |
-
</div>
|
32 |
-
</td>
|
33 |
-
</tr>
|
34 |
-
</table>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/tnp-composer/blocks/header-01-header.block → emails/tnp-composer/blocks/header-01-header.block.php
RENAMED
@@ -11,14 +11,18 @@
|
|
11 |
<tr>
|
12 |
<td width="100" align="left" class="tnpc-row-edit" data-type="image">
|
13 |
<a href="#" target="_blank">
|
14 |
-
|
|
|
|
|
|
|
|
|
15 |
</a>
|
16 |
</td>
|
17 |
<td width="400" align="right" class="mobile-hide">
|
18 |
<table border="0" cellpadding="0" cellspacing="0">
|
19 |
<tr>
|
20 |
<td align="right" style="padding: 0 0 5px 0; font-size: 14px; font-family: Arial, sans-serif; color: #666666; text-decoration: none;" class="tnpc-row-edit" data-type="text">
|
21 |
-
<span style="color: #666666; text-decoration: none;" ><?php echo
|
22 |
</td>
|
23 |
</tr>
|
24 |
</table>
|
11 |
<tr>
|
12 |
<td width="100" align="left" class="tnpc-row-edit" data-type="image">
|
13 |
<a href="#" target="_blank">
|
14 |
+
<?php if (!empty($block_options['header_logo']['url'])) { ?>
|
15 |
+
<img alt="<?php echo $block_options['header_title'] ?>" src="<?php echo $block_options['header_logo']['url'] ?>" style="display: block; width: 180px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; font-size: 16px;" border="0">
|
16 |
+
<?php } else { ?>
|
17 |
+
<?php echo $block_options['header_title'] ?>
|
18 |
+
<?php } ?>
|
19 |
</a>
|
20 |
</td>
|
21 |
<td width="400" align="right" class="mobile-hide">
|
22 |
<table border="0" cellpadding="0" cellspacing="0">
|
23 |
<tr>
|
24 |
<td align="right" style="padding: 0 0 5px 0; font-size: 14px; font-family: Arial, sans-serif; color: #666666; text-decoration: none;" class="tnpc-row-edit" data-type="text">
|
25 |
+
<span style="color: #666666; text-decoration: none;" ><?php echo !empty($block_options['header_sub']) ? $block_options['header_sub'] : 'A little text up top can be nice.<br>Maybe a link to tweet?' ?></span>
|
26 |
</td>
|
27 |
</tr>
|
28 |
</table>
|
emails/tnp-composer/blocks/{header-01-header.png → header-01-header.block.png}
RENAMED
File without changes
|
emails/tnp-composer/edit.php
CHANGED
@@ -1,18 +1,23 @@
|
|
|
|
|
|
|
|
1 |
<div class="tnpc-edit" id="tnpc-edit-image">
|
2 |
<div class="tnpc-edit-box">
|
3 |
-
<div class="tnpc-edit-box-title"
|
4 |
<div class="tnpc-edit-box-content">
|
5 |
-
<div class="tnpc-edit-box-content-text"
|
6 |
<div class="tnpc-edit-box-content-field">
|
7 |
<input type="text" class="tnpc-edit-box-content-field-input image"/>
|
8 |
<input class="button select_image" value="Select or Upload Image" type="button">
|
9 |
</div>
|
10 |
-
<div class="tnpc-edit-box-content-text"
|
|
|
|
|
11 |
<div class="tnpc-edit-box-content-field"><input type="text" class="tnpc-edit-box-content-field-input url"/></div>
|
12 |
</div>
|
13 |
<div class="tnpc-edit-box-buttons">
|
14 |
-
<div class="tnpc-edit-box-buttons-save"
|
15 |
-
<div class="tnpc-edit-box-buttons-cancel"
|
16 |
</div>
|
17 |
</div>
|
18 |
</div>
|
@@ -38,6 +43,8 @@
|
|
38 |
// We set multiple to false so only get one image from the uploader
|
39 |
attachment = file_frame.state().get('selection').first().toJSON();
|
40 |
// Do something with attachment.id and/or attachment.url here
|
|
|
|
|
41 |
jQuery('#tnpc-edit-image .image').val(attachment.url);
|
42 |
});
|
43 |
// Finally, open the modal
|
@@ -47,55 +54,55 @@
|
|
47 |
|
48 |
<div class="tnpc-edit" id="tnpc-edit-link">
|
49 |
<div class="tnpc-edit-box">
|
50 |
-
<div class="tnpc-edit-box-title"
|
51 |
|
52 |
<div class="tnpc-edit-box-content">
|
53 |
-
<div class="tnpc-edit-box-content-text"
|
54 |
<div class="tnpc-edit-box-content-field"><input type="text" class="tnpc-edit-box-content-field-input title"/></div>
|
55 |
-
<div class="tnpc-edit-box-content-text"
|
56 |
<div class="tnpc-edit-box-content-field"><input type="text" class="tnpc-edit-box-content-field-input url"/></div>
|
57 |
</div>
|
58 |
<div class="tnpc-edit-box-buttons">
|
59 |
-
<div class="tnpc-edit-box-buttons-save"
|
60 |
-
<div class="tnpc-edit-box-buttons-cancel"
|
61 |
</div>
|
62 |
</div>
|
63 |
</div>
|
64 |
|
65 |
<div class="tnpc-edit" id="tnpc-edit-button">
|
66 |
<div class="tnpc-edit-box">
|
67 |
-
<div class="tnpc-edit-box-title"
|
68 |
|
69 |
<div class="tnpc-edit-box-content">
|
70 |
-
<div class="tnpc-edit-box-content-text"
|
71 |
<div class="tnpc-edit-box-content-field"><input type="text" class="tnpc-edit-box-content-field-input title"/></div>
|
72 |
-
<div class="tnpc-edit-box-content-text"
|
73 |
<div class="tnpc-edit-box-content-field"><input type="text" class="tnpc-edit-box-content-field-input url"/></div>
|
74 |
-
<div class="tnpc-edit-box-content-text"
|
75 |
<div class="tnpc-edit-box-content-field"><input type="text" class="tnpc-edit-box-content-field-input fgcolor"/></div>
|
76 |
-
<div class="tnpc-edit-box-content-text"
|
77 |
<div class="tnpc-edit-box-content-field"><input type="text" class="tnpc-edit-box-content-field-input bgcolor"/></div>
|
78 |
</div>
|
79 |
<div class="tnpc-edit-box-buttons">
|
80 |
-
<div class="tnpc-edit-box-buttons-save"
|
81 |
-
<div class="tnpc-edit-box-buttons-cancel"
|
82 |
</div>
|
83 |
</div>
|
84 |
</div>
|
85 |
|
86 |
<div class="tnpc-edit" id="tnpc-edit-title">
|
87 |
<div class="tnpc-edit-box">
|
88 |
-
<div class="tnpc-edit-box-title"
|
89 |
|
90 |
<div class="tnpc-edit-box-content">
|
91 |
-
<div class="tnpc-edit-box-content-text"
|
92 |
<div class="tnpc-edit-box-content-field"><input type="text" class="tnpc-edit-box-content-field-input title"/></div>
|
93 |
-
<div class="tnpc-edit-box-content-text"
|
94 |
<div class="tnpc-edit-box-content-field"><input type="text" class="tnpc-edit-box-content-field-input color"/></div>
|
95 |
</div>
|
96 |
<div class="tnpc-edit-box-buttons">
|
97 |
-
<div class="tnpc-edit-box-buttons-save"
|
98 |
-
<div class="tnpc-edit-box-buttons-cancel"
|
99 |
</div>
|
100 |
</div>
|
101 |
</div>
|
@@ -103,15 +110,15 @@
|
|
103 |
|
104 |
<div class="tnpc-edit" id="tnpc-edit-text">
|
105 |
<div class="tnpc-edit-box">
|
106 |
-
<div class="tnpc-edit-box-title"
|
107 |
|
108 |
<div class="tnpc-edit-box-content">
|
109 |
-
<div class="tnpc-edit-box-content-text"
|
110 |
<div class="tnpc-edit-box-content-field"><textarea class="tnpc-edit-box-content-field-textarea text"></textarea></div>
|
111 |
</div>
|
112 |
<div class="tnpc-edit-box-buttons">
|
113 |
-
<div class="tnpc-edit-box-buttons-save"
|
114 |
-
<div class="tnpc-edit-box-buttons-cancel"
|
115 |
</div>
|
116 |
</div>
|
117 |
</div>
|
@@ -119,10 +126,10 @@
|
|
119 |
|
120 |
<div class="tnpc-edit" id="tnpc-edit-icon">
|
121 |
<div class="tnpc-edit-box">
|
122 |
-
<div class="tnpc-edit-box-title"
|
123 |
|
124 |
<div class="tnpc-edit-box-content">
|
125 |
-
<div class="tnpc-edit-box-content-text"
|
126 |
<div class="tnpc-edit-box-content-icons">
|
127 |
|
128 |
|
@@ -1377,19 +1384,19 @@
|
|
1377 |
</div>
|
1378 |
</div>
|
1379 |
<div class="tnpc-edit-box-buttons">
|
1380 |
-
<div class="tnpc-edit-box-buttons-cancel" style="margin-left:0px;"
|
1381 |
</div>
|
1382 |
</div>
|
1383 |
</div>
|
1384 |
|
1385 |
<div class="tnpc-edit" id="tnpc-edit-block">
|
1386 |
<div class="tnpc-edit-box">
|
1387 |
-
<div class="tnpc-edit-box-title"
|
1388 |
|
1389 |
<div class="tnpc-edit-box-content">
|
1390 |
-
<div class="tnpc-edit-box-content-text"
|
1391 |
<div class="tnpc-edit-box-content-field"><input type="text" class="tnpc-edit-box-content-field-input bgcolor"/></div>
|
1392 |
-
<div class="tnpc-edit-box-content-text"
|
1393 |
<div class="tnpc-edit-box-content-field">
|
1394 |
<select class="tnpc-edit-box-content-field-input font">
|
1395 |
<optgroup label="Sans Serif Web Safe Fonts">
|
@@ -1412,20 +1419,20 @@
|
|
1412 |
</div>
|
1413 |
</div>
|
1414 |
<div class="tnpc-edit-box-buttons">
|
1415 |
-
<div class="tnpc-edit-box-buttons-save"
|
1416 |
-
<div class="tnpc-edit-box-buttons-cancel"
|
1417 |
</div>
|
1418 |
</div>
|
1419 |
</div>
|
1420 |
|
1421 |
<div class="tnpc-edit" id="tnpc-edit-posts">
|
1422 |
<div class="tnpc-edit-box">
|
1423 |
-
<div class="tnpc-edit-box-title"
|
1424 |
|
1425 |
<div class="tnpc-edit-box-content">
|
1426 |
-
<div class="tnpc-edit-box-content-text"
|
1427 |
<div class="tnpc-edit-box-content-field"><input type="text" class="tnpc-edit-box-content-field-input bgcolor"/></div>
|
1428 |
-
<div class="tnpc-edit-box-content-text"
|
1429 |
<div class="tnpc-edit-box-content-field">
|
1430 |
<select class="tnpc-edit-box-content-field-input font">
|
1431 |
<optgroup label="Sans Serif Web Safe Fonts">
|
@@ -1448,19 +1455,20 @@
|
|
1448 |
</optgroup>
|
1449 |
</select>
|
1450 |
</div>
|
1451 |
-
<div class="tnpc-edit-box-content-text"
|
1452 |
<div class="tnpc-edit-box-content-field"><input type="number" class="tnpc-edit-box-content-field-input number" value="3"/></div>
|
1453 |
-
<div class="tnpc-edit-box-content-text"
|
1454 |
<div class="tnpc-edit-box-content-field">
|
1455 |
<!-- <input type="text" class="tnpc-edit-box-content-field-input categories"/>-->
|
1456 |
<?php $controls->categories_group('theme_categories'); ?>
|
1457 |
</div>
|
1458 |
-
<div class="tnpc-edit-box-content-text"
|
1459 |
<div class="tnpc-edit-box-content-field"><input type="text" class="tnpc-edit-box-content-field-input tags"/></div>
|
1460 |
</div>
|
1461 |
<div class="tnpc-edit-box-buttons">
|
1462 |
-
|
1463 |
-
<div class="tnpc-edit-box-buttons-
|
|
|
1464 |
</div>
|
1465 |
</div>
|
1466 |
</div>
|
1 |
+
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
?>
|
4 |
<div class="tnpc-edit" id="tnpc-edit-image">
|
5 |
<div class="tnpc-edit-box">
|
6 |
+
<div class="tnpc-edit-box-title"><?php _e("Edit Image", "newsletter") ?></div>
|
7 |
<div class="tnpc-edit-box-content">
|
8 |
+
<div class="tnpc-edit-box-content-text"><?php _e("SOURCE", "newsletter") ?> <span>(full image URL including http://)</span></div>
|
9 |
<div class="tnpc-edit-box-content-field">
|
10 |
<input type="text" class="tnpc-edit-box-content-field-input image"/>
|
11 |
<input class="button select_image" value="Select or Upload Image" type="button">
|
12 |
</div>
|
13 |
+
<div class="tnpc-edit-box-content-text"><?php _e("ALT TEXT", "newsletter") ?><span>(optional but recommended)</span></div>
|
14 |
+
<div class="tnpc-edit-box-content-field"><input type="text" class="tnpc-edit-box-content-field-input alt"/></div>
|
15 |
+
<div class="tnpc-edit-box-content-text"><?php _e("LINK", "newsletter") ?> <span>(optional link address including http://)</span></div>
|
16 |
<div class="tnpc-edit-box-content-field"><input type="text" class="tnpc-edit-box-content-field-input url"/></div>
|
17 |
</div>
|
18 |
<div class="tnpc-edit-box-buttons">
|
19 |
+
<div class="tnpc-edit-box-buttons-save"><?php _e("Save", "newsletter") ?></div>
|
20 |
+
<div class="tnpc-edit-box-buttons-cancel"><?php _e("Cancel", "newsletter") ?></div>
|
21 |
</div>
|
22 |
</div>
|
23 |
</div>
|
43 |
// We set multiple to false so only get one image from the uploader
|
44 |
attachment = file_frame.state().get('selection').first().toJSON();
|
45 |
// Do something with attachment.id and/or attachment.url here
|
46 |
+
// Patch for plugins which remove the protocol (not good for a newsletter...)
|
47 |
+
if (attachment.url.indexOf("http") !== 0) attachment.url = "http:" + attachment.url;
|
48 |
jQuery('#tnpc-edit-image .image').val(attachment.url);
|
49 |
});
|
50 |
// Finally, open the modal
|
54 |
|
55 |
<div class="tnpc-edit" id="tnpc-edit-link">
|
56 |
<div class="tnpc-edit-box">
|
57 |
+
<div class="tnpc-edit-box-title"><?php _e("Edit Link", "newsletter") ?></div>
|
58 |
|
59 |
<div class="tnpc-edit-box-content">
|
60 |
+
<div class="tnpc-edit-box-content-text"><?php _e("TITLE", "newsletter") ?> </div>
|
61 |
<div class="tnpc-edit-box-content-field"><input type="text" class="tnpc-edit-box-content-field-input title"/></div>
|
62 |
+
<div class="tnpc-edit-box-content-text"><?php _e("URL", "newsletter") ?> <span>(full address including http://)</span></div>
|
63 |
<div class="tnpc-edit-box-content-field"><input type="text" class="tnpc-edit-box-content-field-input url"/></div>
|
64 |
</div>
|
65 |
<div class="tnpc-edit-box-buttons">
|
66 |
+
<div class="tnpc-edit-box-buttons-save"><?php _e("Save", "newsletter") ?></div>
|
67 |
+
<div class="tnpc-edit-box-buttons-cancel"><?php _e("Cancel", "newsletter") ?></div>
|
68 |
</div>
|
69 |
</div>
|
70 |
</div>
|
71 |
|
72 |
<div class="tnpc-edit" id="tnpc-edit-button">
|
73 |
<div class="tnpc-edit-box">
|
74 |
+
<div class="tnpc-edit-box-title"><?php _e("Edit Button", "newsletter") ?></div>
|
75 |
|
76 |
<div class="tnpc-edit-box-content">
|
77 |
+
<div class="tnpc-edit-box-content-text"><?php _e("TITLE", "newsletter") ?> </div>
|
78 |
<div class="tnpc-edit-box-content-field"><input type="text" class="tnpc-edit-box-content-field-input title"/></div>
|
79 |
+
<div class="tnpc-edit-box-content-text"><?php _e("URL", "newsletter") ?> <span>(full address including http://)</span></div>
|
80 |
<div class="tnpc-edit-box-content-field"><input type="text" class="tnpc-edit-box-content-field-input url"/></div>
|
81 |
+
<div class="tnpc-edit-box-content-text"><?php _e("Text Color", "newsletter") ?></div>
|
82 |
<div class="tnpc-edit-box-content-field"><input type="text" class="tnpc-edit-box-content-field-input fgcolor"/></div>
|
83 |
+
<div class="tnpc-edit-box-content-text"><?php _e("Background Color", "newsletter") ?></div>
|
84 |
<div class="tnpc-edit-box-content-field"><input type="text" class="tnpc-edit-box-content-field-input bgcolor"/></div>
|
85 |
</div>
|
86 |
<div class="tnpc-edit-box-buttons">
|
87 |
+
<div class="tnpc-edit-box-buttons-save"><?php _e("Save", "newsletter") ?></div>
|
88 |
+
<div class="tnpc-edit-box-buttons-cancel"><?php _e("Cancel", "newsletter") ?></div>
|
89 |
</div>
|
90 |
</div>
|
91 |
</div>
|
92 |
|
93 |
<div class="tnpc-edit" id="tnpc-edit-title">
|
94 |
<div class="tnpc-edit-box">
|
95 |
+
<div class="tnpc-edit-box-title"><?php _e("Edit Title", "newsletter") ?></div>
|
96 |
|
97 |
<div class="tnpc-edit-box-content">
|
98 |
+
<div class="tnpc-edit-box-content-text"><?php _e("Title", "newsletter") ?></div>
|
99 |
<div class="tnpc-edit-box-content-field"><input type="text" class="tnpc-edit-box-content-field-input title"/></div>
|
100 |
+
<div class="tnpc-edit-box-content-text"><?php _e("Text Color", "newsletter") ?></div>
|
101 |
<div class="tnpc-edit-box-content-field"><input type="text" class="tnpc-edit-box-content-field-input color"/></div>
|
102 |
</div>
|
103 |
<div class="tnpc-edit-box-buttons">
|
104 |
+
<div class="tnpc-edit-box-buttons-save"><?php _e("Save", "newsletter") ?></div>
|
105 |
+
<div class="tnpc-edit-box-buttons-cancel"><?php _e("Cancel", "newsletter") ?></div>
|
106 |
</div>
|
107 |
</div>
|
108 |
</div>
|
110 |
|
111 |
<div class="tnpc-edit" id="tnpc-edit-text">
|
112 |
<div class="tnpc-edit-box">
|
113 |
+
<div class="tnpc-edit-box-title"><?php _e("Edit Text", "newsletter") ?></div>
|
114 |
|
115 |
<div class="tnpc-edit-box-content">
|
116 |
+
<div class="tnpc-edit-box-content-text"><?php _e("Text", "newsletter") ?></div>
|
117 |
<div class="tnpc-edit-box-content-field"><textarea class="tnpc-edit-box-content-field-textarea text"></textarea></div>
|
118 |
</div>
|
119 |
<div class="tnpc-edit-box-buttons">
|
120 |
+
<div class="tnpc-edit-box-buttons-save"><?php _e("Save", "newsletter") ?></div>
|
121 |
+
<div class="tnpc-edit-box-buttons-cancel"><?php _e("Cancel", "newsletter") ?></div>
|
122 |
</div>
|
123 |
</div>
|
124 |
</div>
|
126 |
|
127 |
<div class="tnpc-edit" id="tnpc-edit-icon">
|
128 |
<div class="tnpc-edit-box">
|
129 |
+
<div class="tnpc-edit-box-title"><?php _e("Edit Icon", "newsletter") ?></div>
|
130 |
|
131 |
<div class="tnpc-edit-box-content">
|
132 |
+
<div class="tnpc-edit-box-content-text"><?php _e("Select Icon", "newsletter") ?></div>
|
133 |
<div class="tnpc-edit-box-content-icons">
|
134 |
|
135 |
|
1384 |
</div>
|
1385 |
</div>
|
1386 |
<div class="tnpc-edit-box-buttons">
|
1387 |
+
<div class="tnpc-edit-box-buttons-cancel" style="margin-left:0px;"><?php _e("Cancel", "newsletter") ?></div>
|
1388 |
</div>
|
1389 |
</div>
|
1390 |
</div>
|
1391 |
|
1392 |
<div class="tnpc-edit" id="tnpc-edit-block">
|
1393 |
<div class="tnpc-edit-box">
|
1394 |
+
<div class="tnpc-edit-box-title"><?php _e("Edit Block", "newsletter") ?></div>
|
1395 |
|
1396 |
<div class="tnpc-edit-box-content">
|
1397 |
+
<div class="tnpc-edit-box-content-text"><?php _e("Background Color", "newsletter") ?></div>
|
1398 |
<div class="tnpc-edit-box-content-field"><input type="text" class="tnpc-edit-box-content-field-input bgcolor"/></div>
|
1399 |
+
<div class="tnpc-edit-box-content-text"><?php _e("Font Family", "newsletter") ?></div>
|
1400 |
<div class="tnpc-edit-box-content-field">
|
1401 |
<select class="tnpc-edit-box-content-field-input font">
|
1402 |
<optgroup label="Sans Serif Web Safe Fonts">
|
1419 |
</div>
|
1420 |
</div>
|
1421 |
<div class="tnpc-edit-box-buttons">
|
1422 |
+
<div class="tnpc-edit-box-buttons-save"><?php _e("Save", "newsletter") ?></div>
|
1423 |
+
<div class="tnpc-edit-box-buttons-cancel"><?php _e("Cancel", "newsletter") ?></div>
|
1424 |
</div>
|
1425 |
</div>
|
1426 |
</div>
|
1427 |
|
1428 |
<div class="tnpc-edit" id="tnpc-edit-posts">
|
1429 |
<div class="tnpc-edit-box">
|
1430 |
+
<div class="tnpc-edit-box-title"><?php _e("Edit Block", "newsletter") ?></div>
|
1431 |
|
1432 |
<div class="tnpc-edit-box-content">
|
1433 |
+
<div class="tnpc-edit-box-content-text"><?php _e("Background Color", "newsletter") ?></div>
|
1434 |
<div class="tnpc-edit-box-content-field"><input type="text" class="tnpc-edit-box-content-field-input bgcolor"/></div>
|
1435 |
+
<div class="tnpc-edit-box-content-text"><?php _e("Font Family", "newsletter") ?></div>
|
1436 |
<div class="tnpc-edit-box-content-field">
|
1437 |
<select class="tnpc-edit-box-content-field-input font">
|
1438 |
<optgroup label="Sans Serif Web Safe Fonts">
|
1455 |
</optgroup>
|
1456 |
</select>
|
1457 |
</div>
|
1458 |
+
<div class="tnpc-edit-box-content-text"><?php _e("Number of posts", "newsletter") ?></div>
|
1459 |
<div class="tnpc-edit-box-content-field"><input type="number" class="tnpc-edit-box-content-field-input number" value="3"/></div>
|
1460 |
+
<div class="tnpc-edit-box-content-text"><?php _e("Categories", "newsletter") ?></div>
|
1461 |
<div class="tnpc-edit-box-content-field">
|
1462 |
<!-- <input type="text" class="tnpc-edit-box-content-field-input categories"/>-->
|
1463 |
<?php $controls->categories_group('theme_categories'); ?>
|
1464 |
</div>
|
1465 |
+
<div class="tnpc-edit-box-content-text"><?php _e("Tags (comma separated)", "newsletter") ?></div>
|
1466 |
<div class="tnpc-edit-box-content-field"><input type="text" class="tnpc-edit-box-content-field-input tags"/></div>
|
1467 |
</div>
|
1468 |
<div class="tnpc-edit-box-buttons">
|
1469 |
+
<?php _e("Any prior changes to single posts will be lost when editing these settings.", "newsletter") ?>
|
1470 |
+
<div class="tnpc-edit-box-buttons-save"><?php _e("Save", "newsletter") ?></div>
|
1471 |
+
<div class="tnpc-edit-box-buttons-cancel"><?php _e("Cancel", "newsletter") ?></div>
|
1472 |
</div>
|
1473 |
</div>
|
1474 |
</div>
|
emails/tnp-composer/index.php
CHANGED
@@ -1,86 +1,88 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
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 |
-
<?php
|
39 |
-
<img src="
|
40 |
-
<?php } ?>
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
echo $body;
|
65 |
-
}
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
include $blocks_dir . '
|
70 |
-
include $blocks_dir . '
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
</div>
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
|
|
|
|
86 |
<script type="text/javascript" src="<?php echo plugins_url('newsletter'); ?>/tinymce4/tinymce.min.js"></script>
|
1 |
+
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
|
4 |
+
/* READ THE BLOCKS */
|
5 |
+
$blocks_dir = NEWSLETTER_DIR . '/emails/tnp-composer/blocks/';
|
6 |
+
$files = glob($blocks_dir . '*.block.php', GLOB_BRACE);
|
7 |
+
foreach ($files as $file) {
|
8 |
+
$path_parts = pathinfo($file);
|
9 |
+
$filename = $path_parts['filename'];
|
10 |
+
$section = substr($filename, 0, strpos($filename, '-'));
|
11 |
+
$index = substr($filename, strpos($filename, '-') + 1, 2);
|
12 |
+
$blocks[$section][$index]['name'] = substr($filename, strrpos($filename, '-') + 1);
|
13 |
+
$blocks[$section][$index]['filename'] = $filename;
|
14 |
+
}
|
15 |
+
// order the sections
|
16 |
+
$blocks = array_merge(array_flip(array('header', 'content', 'footer')), $blocks);
|
17 |
+
|
18 |
+
// prepare the options for the default blocks
|
19 |
+
$block_options = get_option('newsletter_main');
|
20 |
+
?>
|
21 |
+
|
22 |
+
<div id="newsletter-preloaded-export" style="display: none;"></div>
|
23 |
+
|
24 |
+
<?php include NEWSLETTER_DIR . '/emails/tnp-composer/edit.php'; ?>
|
25 |
+
|
26 |
+
<div id="newsletter-builder">
|
27 |
+
|
28 |
+
<?php /* SIDEBAR */ ?>
|
29 |
+
<div id="newsletter-builder-sidebar">
|
30 |
+
|
31 |
+
<?php
|
32 |
+
foreach ($blocks as $k => $section) {
|
33 |
+
?>
|
34 |
+
<div class="newsletter-sidebar-add-buttons" id="sidebar-add-<?php echo $k ?>">
|
35 |
+
<h4><span><?php echo ucfirst($k) ?></span></h4>
|
36 |
+
<?php foreach ($section AS $key => $block) { ?>
|
37 |
+
<div class="newsletter-sidebar-buttons-content-tab" data-id="<?php echo $k . '-' . $key ?>" data-file="<?php echo $block['filename'] ?>">
|
38 |
+
<?php if (file_exists(NEWSLETTER_DIR . '/emails/tnp-composer/blocks/' . $block['filename'] . '.png')) { ?>
|
39 |
+
<img src="<?php echo plugins_url('newsletter'); ?>/emails/tnp-composer/blocks/<?php echo $block['filename'] ?>.png" title="Drag&Drop" />
|
40 |
+
<?php } else { ?>
|
41 |
+
<img src="http://placehold.it/200x100?text=<?php echo $block['name'] ?>" title="Drag&Drop" />
|
42 |
+
<?php } ?>
|
43 |
+
</div>
|
44 |
+
<?php } ?>
|
45 |
+
</div>
|
46 |
+
<?php } ?>
|
47 |
+
|
48 |
+
</div>
|
49 |
+
|
50 |
+
<div id="newsletter-builder-area">
|
51 |
+
|
52 |
+
<div id="newsletter-builder-area-center">
|
53 |
+
|
54 |
+
<div id="newsletter-builder-area-center-frame">
|
55 |
+
|
56 |
+
<div id="newsletter-builder-area-center-frame-content">
|
57 |
+
|
58 |
+
<?php
|
59 |
+
if (isset($email)) {
|
60 |
+
$x = strpos($body, '<body');
|
61 |
+
if ($x !== false) {
|
62 |
+
$x = strpos($body, '>', $x);
|
63 |
+
$y = strpos($body, '</body>');
|
64 |
+
echo substr($body, $x + 1, $y - $x - 1);
|
65 |
+
} else {
|
66 |
+
echo $body;
|
67 |
+
}
|
68 |
+
} else {
|
69 |
+
include $blocks_dir . 'header-01-header.block.php';
|
70 |
+
include $blocks_dir . 'content-01-hero.block.php';
|
71 |
+
include $blocks_dir . 'footer-01-footer.block.php';
|
72 |
+
include $blocks_dir . 'footer-02-canspam.block.php';
|
73 |
+
}
|
74 |
+
?>
|
75 |
+
|
76 |
+
</div>
|
77 |
+
</div>
|
78 |
+
</div>
|
79 |
+
</div>
|
80 |
+
</div>
|
81 |
+
|
82 |
+
<script type="text/javascript">
|
83 |
+
TNP_PLUGIN_URL = "<?php echo NEWSLETTER_URL ?>";
|
84 |
+
</script>
|
85 |
+
<!--<script type="text/javascript" src="<?php echo plugins_url('newsletter'); ?>/emails/tnp-composer/_scripts/jquery-2.2.3.min.js"></script>-->
|
86 |
+
<!--<script type="text/javascript" src="<?php echo plugins_url('newsletter'); ?>/emails/tnp-composer/_scripts/jquery-ui-1.10.4.min.js"></script>-->
|
87 |
+
<script type="text/javascript" src="<?php echo plugins_url('newsletter'); ?>/emails/tnp-composer/_scripts/newsletter-builder.js"></script>
|
88 |
<script type="text/javascript" src="<?php echo plugins_url('newsletter'); ?>/tinymce4/tinymce.min.js"></script>
|
feed/feed.php
DELETED
@@ -1,26 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* This is only demo code just to make the demo Feed by Mail panel work.
|
5 |
-
*/
|
6 |
-
class NewsletterFeed extends NewsletterModule {
|
7 |
-
|
8 |
-
static $instance;
|
9 |
-
|
10 |
-
static function instance() {
|
11 |
-
if (self::$instance == null) {
|
12 |
-
self::$instance = new NewsletterFeed();
|
13 |
-
}
|
14 |
-
return self::$instance;
|
15 |
-
}
|
16 |
-
|
17 |
-
function __construct() {
|
18 |
-
parent::__construct('feed', '1.0.0');
|
19 |
-
}
|
20 |
-
|
21 |
-
function admin_menu() {
|
22 |
-
// $this->add_menu_page('index', 'Feed by Mail');
|
23 |
-
}
|
24 |
-
}
|
25 |
-
|
26 |
-
NewsletterFeed::instance();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
feed/index.php
DELETED
@@ -1,26 +0,0 @@
|
|
1 |
-
|
2 |
-
<div class="wrap" id="tnp-wrap">
|
3 |
-
|
4 |
-
<?php include NEWSLETTER_DIR . '/tnp-header.php'; ?>
|
5 |
-
|
6 |
-
<div id="tnp-heading">
|
7 |
-
|
8 |
-
<h2>Feed by Mail</h2>
|
9 |
-
|
10 |
-
</div>
|
11 |
-
|
12 |
-
<div id="tnp-body">
|
13 |
-
|
14 |
-
<div class="updated">
|
15 |
-
<p>
|
16 |
-
The Feed by Mail demo has been removed to make the plugin <strong>faster</strong>. You can install the demo separately getting it
|
17 |
-
from <a href="http://www.thenewsletterplugin.com/downloads/demos" target="_blank">here</a> or directly the full version from
|
18 |
-
<a href="http://www.thenewsletterplugin.com/downloads" target="_blank">here</a>.
|
19 |
-
</p>
|
20 |
-
</div>
|
21 |
-
|
22 |
-
</div>
|
23 |
-
|
24 |
-
<?php include NEWSLETTER_DIR . '/tnp-footer.php'; ?>
|
25 |
-
|
26 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
header-extension.php
CHANGED
@@ -1,28 +1,31 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Header file for the extensions administrative panels.
|
4 |
-
*
|
5 |
-
* - no top noticies
|
6 |
-
* - no donation link
|
7 |
-
*/
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
<
|
15 |
-
" target="_blank"><img style="vertical-align: bottom" src="<?php echo plugins_url('newsletter'); ?>/images/header/
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Header file for the extensions administrative panels.
|
4 |
+
*
|
5 |
+
* - no top noticies
|
6 |
+
* - no donation link
|
7 |
+
*/
|
8 |
+
|
9 |
+
if (!defined('ABSPATH')) exit;
|
10 |
+
|
11 |
+
?>
|
12 |
+
<?php if (NEWSLETTER_HEADER) { ?>
|
13 |
+
<div id="newsletter-header-ext">
|
14 |
+
<div style="text-align: center; margin-top: 5px;">
|
15 |
+
<a href="http://www.thenewsletterplugin.com/plugins/newsletter/newsletter-documentation" target="_blank"><img style="vertical-align: bottom" src="<?php echo plugins_url('newsletter'); ?>/images/header/documentation.png"> Documentation</a>
|
16 |
+
<a href="http://www.thenewsletterplugin.com/forums" target="_blank"><img style="vertical-align: bottom" src="<?php echo plugins_url('newsletter'); ?>/images/header/forum.png"> Forum</a>
|
17 |
+
<a href="https://www.facebook.com/thenewsletterplugin
|
18 |
+
" target="_blank"><img style="vertical-align: bottom" src="<?php echo plugins_url('newsletter'); ?>/images/header/facebook.png"> Facebook</a>
|
19 |
+
|
20 |
+
<!--<a href="http://www.thenewsletterplugin.com/plugins/newsletter/newsletter-collaboration" target="_blank">Collaboration</a>-->
|
21 |
+
</div>
|
22 |
+
|
23 |
+
<div style="text-align: center; margin-top: 5px;">
|
24 |
+
<form style="margin: 0;" action="http://www.thenewsletterplugin.com/wp-content/plugins/newsletter/do/subscribe.php" method="post" target="_blank">
|
25 |
+
My Newsletter<!-- to thenewsletterplugin.com--> <input type="email" name="ne" required placeholder="Your email" style="padding: 2px">
|
26 |
+
<input type="submit" value="Go" style="padding: 2px">
|
27 |
+
</form>
|
28 |
+
</div>
|
29 |
+
</div>
|
30 |
+
<?php } ?>
|
31 |
+
|
includes/controls.php
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
<?php
|
|
|
2 |
|
3 |
class NewsletterControls {
|
4 |
|
@@ -112,16 +113,25 @@ class NewsletterControls {
|
|
112 |
}
|
113 |
|
114 |
function add_message_saved() {
|
115 |
-
if (!empty($this->messages))
|
116 |
$this->messages .= '<br><br>';
|
|
|
117 |
$this->messages .= __('Saved.', 'newsletter');
|
118 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
|
120 |
function hint($text, $url = '') {
|
121 |
echo '<div class="hints">';
|
|
|
122 |
echo $text;
|
123 |
if (!empty($url)) {
|
124 |
-
echo
|
125 |
}
|
126 |
echo '</div>';
|
127 |
}
|
@@ -129,14 +139,16 @@ class NewsletterControls {
|
|
129 |
function yesno($name) {
|
130 |
$value = isset($this->data[$name]) ? (int) $this->data[$name] : 0;
|
131 |
|
132 |
-
echo '<select style="width: 60px" name="options[' . $name . ']">';
|
133 |
echo '<option value="0"';
|
134 |
-
if ($value == 0)
|
135 |
echo ' selected';
|
|
|
136 |
echo '>No</option>';
|
137 |
echo '<option value="1"';
|
138 |
-
if ($value == 1)
|
139 |
echo ' selected';
|
|
|
140 |
echo '>Yes</option>';
|
141 |
echo '</select> ';
|
142 |
}
|
@@ -144,7 +156,7 @@ class NewsletterControls {
|
|
144 |
function enabled($name) {
|
145 |
$value = isset($this->data[$name]) ? (int) $this->data[$name] : 0;
|
146 |
|
147 |
-
echo '<select style="width: 100px" name="options[' . $name . ']">';
|
148 |
echo '<option value="0"';
|
149 |
if ($value == 0) {
|
150 |
echo ' selected';
|
@@ -161,14 +173,16 @@ class NewsletterControls {
|
|
161 |
function disabled($name) {
|
162 |
$value = isset($this->data[$name]) ? (int) $this->data[$name] : 0;
|
163 |
|
164 |
-
echo '<select style="width: 100px" name="options[' . $name . ']">';
|
165 |
echo '<option value="0"';
|
166 |
-
if ($value == 0)
|
167 |
echo ' selected';
|
|
|
168 |
echo '>Enabled</option>';
|
169 |
echo '<option value="1"';
|
170 |
-
if ($value == 1)
|
171 |
echo ' selected';
|
|
|
172 |
echo '>Disabled</option>';
|
173 |
echo '</select>';
|
174 |
}
|
@@ -191,12 +205,14 @@ class NewsletterControls {
|
|
191 |
echo "<div class='newsletter-checkboxes-group'>";
|
192 |
foreach ($values_labels as $value => $label) {
|
193 |
echo "<div class='newsletter-checkboxes-item'>";
|
194 |
-
echo
|
195 |
-
if (array_search($value, $value_array) !== false)
|
196 |
-
echo
|
197 |
-
|
198 |
-
|
199 |
-
|
|
|
|
|
200 |
echo "</label></div>";
|
201 |
}
|
202 |
echo "</div><div style='clear: both'></div>";
|
@@ -207,12 +223,21 @@ class NewsletterControls {
|
|
207 |
function post_types($name = 'post_types') {
|
208 |
$list = array();
|
209 |
$post_types = get_post_types(array('public' => true), 'objects', 'and');
|
210 |
-
foreach ($post_types as
|
211 |
$list[$post_type->name] = $post_type->labels->name;
|
212 |
}
|
213 |
|
214 |
$this->checkboxes_group($name, $list);
|
215 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
216 |
|
217 |
/** Used to create a select which is part of a group of controls identified by $name that will
|
218 |
* produce an array of values as $_REQUEST['name'].
|
@@ -222,14 +247,14 @@ class NewsletterControls {
|
|
222 |
function select_group($name, $options) {
|
223 |
$value_array = $this->get_value_array($name);
|
224 |
|
225 |
-
echo '<select name="options[' . $name . '][]">';
|
226 |
|
227 |
foreach ($options as $key => $label) {
|
228 |
-
echo '<option value="' . $key . '"';
|
229 |
if (array_search($key, $value_array) !== false) {
|
230 |
echo ' selected';
|
231 |
}
|
232 |
-
echo '>' .
|
233 |
}
|
234 |
|
235 |
echo '</select>';
|
@@ -238,15 +263,15 @@ class NewsletterControls {
|
|
238 |
function select($name, $options, $first = null) {
|
239 |
$value = $this->get_value($name);
|
240 |
|
241 |
-
echo '<select id="options-' . $name . '" name="options[' . $name . ']">';
|
242 |
if (!empty($first)) {
|
243 |
-
echo '<option value="">' .
|
244 |
}
|
245 |
foreach ($options as $key => $label) {
|
246 |
-
echo '<option value="' . $key . '"';
|
247 |
if ($value == $key)
|
248 |
echo ' selected';
|
249 |
-
echo '>' .
|
250 |
}
|
251 |
echo '</select>';
|
252 |
}
|
@@ -257,15 +282,17 @@ class NewsletterControls {
|
|
257 |
echo '<select name="options[' . $name . ']">';
|
258 |
|
259 |
foreach ($groups as $group) {
|
260 |
-
echo '<optgroup label="' .
|
261 |
if (!empty($group)) {
|
262 |
foreach ($group as $key => $label) {
|
263 |
-
if ($key == '')
|
264 |
continue;
|
265 |
-
|
266 |
-
|
|
|
267 |
echo ' selected';
|
268 |
-
|
|
|
269 |
}
|
270 |
}
|
271 |
echo '</optgroup>';
|
@@ -280,9 +307,9 @@ class NewsletterControls {
|
|
280 |
function themes($name, $themes, $submit_on_click = true) {
|
281 |
foreach ($themes as $key => $data) {
|
282 |
echo '<label style="display: block; float: left; text-align: center; margin-right: 10px;">';
|
283 |
-
echo $key . '<br>';
|
284 |
-
echo '<img src="' . $data['screenshot'] . '" width="100" height="100" style="border: 1px solid #666; padding: 5px"><br>';
|
285 |
-
echo '<input style="position: relative; top: -40px" type="radio" onchange="this.form.act.value=\'theme\';this.form.submit()" name="options[' . $name . ']" value="' . $key . '"';
|
286 |
if ($this->data[$name] == $key) {
|
287 |
echo ' checked';
|
288 |
}
|
@@ -326,32 +353,32 @@ class NewsletterControls {
|
|
326 |
|
327 |
function text_email($name, $size = 40) {
|
328 |
$value = $this->get_value($name);
|
329 |
-
echo '<input name="options[' . $name . ']" type="email" placeholder="';
|
330 |
echo esc_attr(__('Valid email address', 'newsletter'));
|
331 |
-
echo '" size="' . $size . '" value="';
|
332 |
echo esc_attr($value);
|
333 |
echo '">';
|
334 |
}
|
335 |
|
336 |
function text_url($name, $size = 40) {
|
337 |
$value = $this->get_value($name);
|
338 |
-
echo '<input name="options[' . $name . ']" type="url" placeholder="http://..." size="' . $size . '" value="';
|
339 |
-
echo
|
340 |
echo '"/>';
|
341 |
}
|
342 |
|
343 |
function hidden($name) {
|
344 |
$value = $this->get_value($name);
|
345 |
echo '<input name="options[' . $name . ']" type="hidden" value="';
|
346 |
-
echo
|
347 |
echo '"/>';
|
348 |
}
|
349 |
|
350 |
function button($action, $label, $function = null) {
|
351 |
if ($function != null) {
|
352 |
-
echo '<input class="button-secondary" type="button" value="' . $label . '" onclick="this.form.act.value=\'' . $action . '\';' .
|
353 |
} else {
|
354 |
-
echo '<input class="button-secondary" type="submit" value="' . $label . '" onclick="this.form.act.value=\'' . $action . '\';return true;"/>';
|
355 |
}
|
356 |
}
|
357 |
|
@@ -373,7 +400,7 @@ class NewsletterControls {
|
|
373 |
|
374 |
function button_back($url) {
|
375 |
echo '<a href="';
|
376 |
-
echo $url;
|
377 |
echo '" class="button"><i class="fa fa-chevron-left"></i> ';
|
378 |
_e('Back', 'newsletter');
|
379 |
echo '</a>';
|
@@ -407,30 +434,30 @@ class NewsletterControls {
|
|
407 |
|
408 |
function button_primary($action, $label, $function = null) {
|
409 |
if ($function != null) {
|
410 |
-
echo '<input class="button-primary" type="button" value="' . $label . '" onclick="this.form.act.value=\'' . $action . '\';' .
|
411 |
} else {
|
412 |
-
echo '<input class="button-primary" type="button" value="' . $label . '" onclick="this.form.act.value=\'' . $action . '\';this.form.submit()"/>';
|
413 |
}
|
414 |
}
|
415 |
|
416 |
function button_confirm($action, $label, $message = '', $data = '') {
|
417 |
if (empty($message)) {
|
418 |
-
echo '<input class="button-secondary" type="button" value="' . $label . '" onclick="this.form.btn.value=\'' . $data . '\';this.form.act.value=\'' . $action . '\';this.form.submit()"/>';
|
419 |
} else {
|
420 |
-
echo '<input class="button-secondary" type="button" value="' . $label . '" onclick="this.form.btn.value=\'' . $data . '\';this.form.act.value=\'' . $action . '\';if (confirm(\'' .
|
421 |
esc_attr(esc_js($message)) . '\')) this.form.submit()"/>';
|
422 |
}
|
423 |
}
|
424 |
|
425 |
function editor($name, $rows = 5, $cols = 75) {
|
426 |
-
echo '<textarea class="visual" name="options[' . $name . ']" style="width: 100%" wrap="off" rows="' . $rows . '">';
|
427 |
echo esc_html($this->get_value($name));
|
428 |
echo '</textarea>';
|
429 |
}
|
430 |
|
431 |
function wp_editor($name, $settings = array()) {
|
432 |
$value = $this->get_value($name);
|
433 |
-
wp_editor($value, $name, array_merge(array('textarea_name' => 'options[' . $name . ']', 'wpautop' => false), $settings));
|
434 |
if (!is_plugin_active('mce_table_buttons/mce_table_buttons.php')) {
|
435 |
echo '<p class="description">You can install <a href="https://wordpress.org/plugins/mce-table-buttons/" target="_blank">MCE Table Button</a> for a table management toolbar add on.</p>';
|
436 |
}
|
@@ -438,14 +465,14 @@ class NewsletterControls {
|
|
438 |
|
439 |
function textarea($name, $width = '100%', $height = '50') {
|
440 |
$value = $this->get_value($name);
|
441 |
-
echo '<textarea class="dynamic" name="options[' . $name . ']" wrap="off" style="width:' . $width . ';height:' . $height . '">';
|
442 |
echo esc_html($value);
|
443 |
echo '</textarea>';
|
444 |
}
|
445 |
|
446 |
function textarea_fixed($name, $width = '100%', $height = '200') {
|
447 |
$value = $this->get_value($name);
|
448 |
-
echo '<textarea id="options-' . $name . '" name="options[' . $name . ']" wrap="off" style="width:' . $width . ';height:' . $height . 'px">';
|
449 |
echo esc_html($value);
|
450 |
echo '</textarea>';
|
451 |
}
|
@@ -453,13 +480,13 @@ class NewsletterControls {
|
|
453 |
function textarea_preview($name, $width = '100%', $height = '200', $header = '', $footer = '') {
|
454 |
$value = $this->get_value($name);
|
455 |
//do_action('newsletter_controls_textarea_preview', $name);
|
456 |
-
echo '<input class="button" type="button" onclick="newsletter_textarea_preview(\'options-' . $name . '\', \'\', \'\')" value="Switch editor/preview">';
|
457 |
echo '<br><br>';
|
458 |
echo '<div style="position: relative">';
|
459 |
-
echo '<textarea id="options-' . $name . '" name="options[' . $name . ']" wrap="off" style="width:' . $width . ';height:' . $height . 'px">';
|
460 |
echo esc_html($value);
|
461 |
echo '</textarea>';
|
462 |
-
echo '<iframe id="options-' . $name . '-iframe" class="newsletter-textarea-preview" style="background-color: #fff; width: ' . $width . '; height: ' . $height . 'px; position: absolute; top: 0; left: 0; z-index: 10000; display: none"></iframe>';
|
463 |
echo '</div>';
|
464 |
}
|
465 |
|
@@ -484,13 +511,13 @@ class NewsletterControls {
|
|
484 |
if ($label != '') {
|
485 |
echo '<label>';
|
486 |
}
|
487 |
-
echo '<input type="checkbox" id="' . $name . '" name="options[' . $name . ']" value="1"';
|
488 |
if (!empty($this->data[$name])) {
|
489 |
echo ' checked="checked"';
|
490 |
}
|
491 |
echo '>';
|
492 |
if ($label != '') {
|
493 |
-
echo ' ' . $label . '</label>';
|
494 |
}
|
495 |
}
|
496 |
|
@@ -498,15 +525,15 @@ class NewsletterControls {
|
|
498 |
if ($label != '') {
|
499 |
echo '<label>';
|
500 |
}
|
501 |
-
echo '<input type="checkbox" id="' . $name . '" onchange="document.getElementById(\'' . $name . '_hidden\').value=this.checked?\'1\':\'0\'"';
|
502 |
if (!empty($this->data[$name])) {
|
503 |
echo ' checked="checked"';
|
504 |
}
|
505 |
echo '>';
|
506 |
if ($label != '') {
|
507 |
-
echo ' ' . $label . '</label>';
|
508 |
}
|
509 |
-
echo '<input type="hidden" id="' . $name . '_hidden" name="options[' . $name . ']" value="';
|
510 |
|
511 |
echo empty($this->data[$name]) ? '0' : '1';
|
512 |
echo '">';
|
@@ -516,14 +543,14 @@ class NewsletterControls {
|
|
516 |
if ($label != '') {
|
517 |
echo '<label>';
|
518 |
}
|
519 |
-
echo '<input type="radio" id="' . $name . '" name="options[' . $name . ']" value="' . esc_attr($value) . '"';
|
520 |
$v = $this->get_value($name);
|
521 |
if ($v == $value) {
|
522 |
echo ' checked="checked"';
|
523 |
}
|
524 |
echo '>';
|
525 |
if ($label != '') {
|
526 |
-
echo ' ' . $label . '</label>';
|
527 |
}
|
528 |
}
|
529 |
|
@@ -532,13 +559,13 @@ class NewsletterControls {
|
|
532 |
* the key $name an array containig the passed value.
|
533 |
*/
|
534 |
function checkbox_group($name, $value, $label = '') {
|
535 |
-
echo '<label><input type="checkbox" id="' . $name . '" name="options[' . $name . '][]" value="' . esc_attr($value) . '"';
|
536 |
if (isset($this->data[$name]) && is_array($this->data[$name]) && array_search($value, $this->data[$name]) !== false) {
|
537 |
echo ' checked';
|
538 |
}
|
539 |
-
echo '
|
540 |
if ($label != '') {
|
541 |
-
echo $label;
|
542 |
}
|
543 |
echo '</label>';
|
544 |
}
|
@@ -552,7 +579,7 @@ class NewsletterControls {
|
|
552 |
function categories($name = 'category') {
|
553 |
$categories = get_categories();
|
554 |
echo '<div class="newsletter-checkboxes-group">';
|
555 |
-
foreach ($categories as
|
556 |
echo '<div class="newsletter-checkboxes-item">';
|
557 |
$this->checkbox($name . '_' . $c->cat_ID, esc_html($c->cat_name));
|
558 |
echo '</div>';
|
@@ -671,8 +698,8 @@ class NewsletterControls {
|
|
671 |
$year = date('Y', $this->data[$name]);
|
672 |
$day = date('j', $this->data[$name]);
|
673 |
$month = date('m', $this->data[$name]);
|
674 |
-
$onchange = "this.form.elements['options[" . $name . "]'].value = new Date(document.getElementById('" . $name . "_year').value, document.getElementById('" . $name . "_month').value, document.getElementById('" . $name . "_day').value, 12, 0, 0).getTime()/1000";
|
675 |
-
echo '<select id="' . $name . '_month" onchange="' . $onchange . '">';
|
676 |
for ($i = 0; $i < 12; $i++) {
|
677 |
echo '<option value="' . $i . '"';
|
678 |
if ($month - 1 == $i) {
|
@@ -682,7 +709,7 @@ class NewsletterControls {
|
|
682 |
}
|
683 |
echo '</select>';
|
684 |
|
685 |
-
echo '<select id="' . $name . '_day" onchange="' . $onchange . '">';
|
686 |
for ($i = 1; $i <= 31; $i++) {
|
687 |
echo '<option value="' . $i . '"';
|
688 |
if ($day == $i) {
|
@@ -692,7 +719,7 @@ class NewsletterControls {
|
|
692 |
}
|
693 |
echo '</select>';
|
694 |
|
695 |
-
echo '<select id="' . $name . '_year" onchange="' . $onchange . '">';
|
696 |
for ($i = 2011; $i <= 2021; $i++) {
|
697 |
echo '<option value="' . $i . '"';
|
698 |
if ($year == $i) {
|
@@ -707,14 +734,14 @@ class NewsletterControls {
|
|
707 |
* Date and time (hour) selector. Timestamp stored.
|
708 |
*/
|
709 |
function datetime($name) {
|
710 |
-
echo '<input type="hidden" name="fields[' . $name . ']" value="datetime">';
|
711 |
$time = $this->data[$name] + get_option('gmt_offset') * 3600;
|
712 |
$year = gmdate('Y', $time);
|
713 |
$day = gmdate('j', $time);
|
714 |
$month = gmdate('m', $time);
|
715 |
$hour = gmdate('H', $time);
|
716 |
|
717 |
-
echo '<select name="' . $name . '_month">';
|
718 |
for ($i = 1; $i <= 12; $i++) {
|
719 |
echo '<option value="' . $i . '"';
|
720 |
if ($month == $i) {
|
@@ -724,7 +751,7 @@ class NewsletterControls {
|
|
724 |
}
|
725 |
echo '</select>';
|
726 |
|
727 |
-
echo '<select name="' . $name . '_day">';
|
728 |
for ($i = 1; $i <= 31; $i++) {
|
729 |
echo '<option value="' . $i . '"';
|
730 |
if ($day == $i) {
|
@@ -734,7 +761,7 @@ class NewsletterControls {
|
|
734 |
}
|
735 |
echo '</select>';
|
736 |
|
737 |
-
echo '<select name="' . $name . '_year">';
|
738 |
for ($i = 2011; $i <= 2021; $i++) {
|
739 |
echo '<option value="' . $i . '"';
|
740 |
if ($year == $i) {
|
@@ -744,7 +771,7 @@ class NewsletterControls {
|
|
744 |
}
|
745 |
echo '</select>';
|
746 |
|
747 |
-
echo '<select name="' . $name . '_hour">';
|
748 |
for ($i = 0; $i <= 23; $i++) {
|
749 |
echo '<option value="' . $i . '"';
|
750 |
if ($hour == $i) {
|
@@ -838,7 +865,7 @@ class NewsletterControls {
|
|
838 |
|
839 |
function js_redirect($url) {
|
840 |
echo '<script>';
|
841 |
-
echo 'location.href="' . $url . '"';
|
842 |
echo '</script>';
|
843 |
}
|
844 |
|
@@ -859,7 +886,7 @@ class NewsletterControls {
|
|
859 |
function css_font_size($name) {
|
860 |
$value = $this->get_value($name);
|
861 |
|
862 |
-
echo '<select id="options-' . $name . '" name="options[' . $name . ']">';
|
863 |
for ($i = 8; $i < 50; $i++) {
|
864 |
echo '<option value="' . $i . '"';
|
865 |
if ($value == $i) {
|
@@ -873,7 +900,7 @@ class NewsletterControls {
|
|
873 |
function css_border($name) {
|
874 |
$value = $this->get_value($name . '_width');
|
875 |
|
876 |
-
echo 'width <select id="options-' . $name . '-width" name="options[' . $name . '_width]">';
|
877 |
for ($i = 0; $i < 10; $i++) {
|
878 |
echo '<option value="' . $i . '"';
|
879 |
if ($value == $i) {
|
@@ -889,7 +916,7 @@ class NewsletterControls {
|
|
889 |
|
890 |
$value = $this->get_value($name . '_radius');
|
891 |
|
892 |
-
echo ' radius <select id="options-' . $name . '-radius" name="options[' . $name . '_radius]">';
|
893 |
for ($i = 0; $i < 10; $i++) {
|
894 |
echo '<option value="' . $i . '"';
|
895 |
if ($value == $i) {
|
@@ -907,24 +934,24 @@ class NewsletterControls {
|
|
907 |
|
908 |
if ($media === false) {
|
909 |
$media = array('', '', '');
|
910 |
-
echo '<img style="width: 200px" id="' . $name . '_img" src="' . plugins_url('newsletter') . '/images/nomedia.png" onclick="newsletter_media(\'' . $name . '\')">';
|
911 |
} else {
|
912 |
-
echo '<img style="width: 200px" id="' . $name . '_img" src="' . $media[0] . '" onclick="newsletter_media(\'' . $name . '\')">';
|
913 |
echo '<br>';
|
914 |
-
echo '<a href="#" onclick="newsletter_media_remove(\'' . $name . '\'); return false">Remove</a>';
|
915 |
}
|
916 |
|
917 |
-
echo '<input type="hidden" id="' . $name . '_id" name="options[' . $name . '][id]" value="' . $media_id . '" size="5">';
|
918 |
-
echo '<input type="hidden" id="' . $name . '_url" name="options[' . $name . '][url]" value="' . esc_attr($media_full[0]) . '" size="50">';
|
919 |
}
|
920 |
|
921 |
function media_input($option, $name, $label) {
|
922 |
|
923 |
if (!empty($label)) {
|
924 |
-
$output = '<label class="select" for="tnp_' . $name . '">' . $label . ':</label>';
|
925 |
}
|
926 |
-
$output .= '<input id="tnp_' . $name . '" type="text" size="36" name="' . $option . '[' . $name . ']" value="' . esc_attr($val) . '" />';
|
927 |
-
$output .= '<input id="tnp_' . $name . '_button" class="button" type="button" value="Select Image" />';
|
928 |
$output .= '<br class="clear"/>';
|
929 |
|
930 |
echo $output;
|
1 |
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
|
4 |
class NewsletterControls {
|
5 |
|
113 |
}
|
114 |
|
115 |
function add_message_saved() {
|
116 |
+
if (!empty($this->messages)) {
|
117 |
$this->messages .= '<br><br>';
|
118 |
+
}
|
119 |
$this->messages .= __('Saved.', 'newsletter');
|
120 |
}
|
121 |
+
|
122 |
+
function add_message_done() {
|
123 |
+
if (!empty($this->messages)) {
|
124 |
+
$this->messages .= '<br><br>';
|
125 |
+
}
|
126 |
+
$this->messages .= __('Done.', 'newsletter');
|
127 |
+
}
|
128 |
|
129 |
function hint($text, $url = '') {
|
130 |
echo '<div class="hints">';
|
131 |
+
// Do not escape that, it can be formatted
|
132 |
echo $text;
|
133 |
if (!empty($url)) {
|
134 |
+
echo ' <a href="' . esc_attr($url) . '" target="_blank">Read more</a>.';
|
135 |
}
|
136 |
echo '</div>';
|
137 |
}
|
139 |
function yesno($name) {
|
140 |
$value = isset($this->data[$name]) ? (int) $this->data[$name] : 0;
|
141 |
|
142 |
+
echo '<select style="width: 60px" name="options[' . esc_attr($name) . ']">';
|
143 |
echo '<option value="0"';
|
144 |
+
if ($value == 0) {
|
145 |
echo ' selected';
|
146 |
+
}
|
147 |
echo '>No</option>';
|
148 |
echo '<option value="1"';
|
149 |
+
if ($value == 1) {
|
150 |
echo ' selected';
|
151 |
+
}
|
152 |
echo '>Yes</option>';
|
153 |
echo '</select> ';
|
154 |
}
|
156 |
function enabled($name) {
|
157 |
$value = isset($this->data[$name]) ? (int) $this->data[$name] : 0;
|
158 |
|
159 |
+
echo '<select style="width: 100px" name="options[' . esc_attr($name) . ']">';
|
160 |
echo '<option value="0"';
|
161 |
if ($value == 0) {
|
162 |
echo ' selected';
|
173 |
function disabled($name) {
|
174 |
$value = isset($this->data[$name]) ? (int) $this->data[$name] : 0;
|
175 |
|
176 |
+
echo '<select style="width: 100px" name="options[' . esc_attr($name) . ']">';
|
177 |
echo '<option value="0"';
|
178 |
+
if ($value == 0) {
|
179 |
echo ' selected';
|
180 |
+
}
|
181 |
echo '>Enabled</option>';
|
182 |
echo '<option value="1"';
|
183 |
+
if ($value == 1) {
|
184 |
echo ' selected';
|
185 |
+
}
|
186 |
echo '>Disabled</option>';
|
187 |
echo '</select>';
|
188 |
}
|
205 |
echo "<div class='newsletter-checkboxes-group'>";
|
206 |
foreach ($values_labels as $value => $label) {
|
207 |
echo "<div class='newsletter-checkboxes-item'>";
|
208 |
+
echo '<label><input type="checkbox" id="' . esc_attr($name) . '" name="options[' . esc_attr($name) . '][]" value="' . esc_attr($value) . '"';
|
209 |
+
if (array_search($value, $value_array) !== false) {
|
210 |
+
echo ' checked';
|
211 |
+
}
|
212 |
+
echo '>';
|
213 |
+
if ($label != '') {
|
214 |
+
echo esc_html($label);
|
215 |
+
}
|
216 |
echo "</label></div>";
|
217 |
}
|
218 |
echo "</div><div style='clear: both'></div>";
|
223 |
function post_types($name = 'post_types') {
|
224 |
$list = array();
|
225 |
$post_types = get_post_types(array('public' => true), 'objects', 'and');
|
226 |
+
foreach ($post_types as $post_type) {
|
227 |
$list[$post_type->name] = $post_type->labels->name;
|
228 |
}
|
229 |
|
230 |
$this->checkboxes_group($name, $list);
|
231 |
}
|
232 |
+
|
233 |
+
function page($name='page', $first = null) {
|
234 |
+
$pages = get_pages();
|
235 |
+
$options = array();
|
236 |
+
foreach ($pages as $page) {
|
237 |
+
$options[$page->ID] = $page->post_title;
|
238 |
+
}
|
239 |
+
$this->select($name, $options, $first);
|
240 |
+
}
|
241 |
|
242 |
/** Used to create a select which is part of a group of controls identified by $name that will
|
243 |
* produce an array of values as $_REQUEST['name'].
|
247 |
function select_group($name, $options) {
|
248 |
$value_array = $this->get_value_array($name);
|
249 |
|
250 |
+
echo '<select name="options[' . esc_attr($name) . '][]">';
|
251 |
|
252 |
foreach ($options as $key => $label) {
|
253 |
+
echo '<option value="' . esc_attr($key) . '"';
|
254 |
if (array_search($key, $value_array) !== false) {
|
255 |
echo ' selected';
|
256 |
}
|
257 |
+
echo '>' . esc_html($label) . '</option>';
|
258 |
}
|
259 |
|
260 |
echo '</select>';
|
263 |
function select($name, $options, $first = null) {
|
264 |
$value = $this->get_value($name);
|
265 |
|
266 |
+
echo '<select id="options-' . esc_attr($name) . '" name="options[' . esc_attr($name) . ']">';
|
267 |
if (!empty($first)) {
|
268 |
+
echo '<option value="">' . esc_html($first) . '</option>';
|
269 |
}
|
270 |
foreach ($options as $key => $label) {
|
271 |
+
echo '<option value="' . esc_attr($key) . '"';
|
272 |
if ($value == $key)
|
273 |
echo ' selected';
|
274 |
+
echo '>' . esc_html($label) . '</option>';
|
275 |
}
|
276 |
echo '</select>';
|
277 |
}
|
282 |
echo '<select name="options[' . $name . ']">';
|
283 |
|
284 |
foreach ($groups as $group) {
|
285 |
+
echo '<optgroup label="' . esc_attr($group['']) . '">';
|
286 |
if (!empty($group)) {
|
287 |
foreach ($group as $key => $label) {
|
288 |
+
if ($key == '') {
|
289 |
continue;
|
290 |
+
}
|
291 |
+
echo '<option value="' . esc_attr($key) . '"';
|
292 |
+
if ($value == $key) {
|
293 |
echo ' selected';
|
294 |
+
}
|
295 |
+
echo '>' . esc_html($label) . '</option>';
|
296 |
}
|
297 |
}
|
298 |
echo '</optgroup>';
|
307 |
function themes($name, $themes, $submit_on_click = true) {
|
308 |
foreach ($themes as $key => $data) {
|
309 |
echo '<label style="display: block; float: left; text-align: center; margin-right: 10px;">';
|
310 |
+
echo esc_html($key) . '<br>';
|
311 |
+
echo '<img src="' . esc_attr($data['screenshot']) . '" width="100" height="100" style="border: 1px solid #666; padding: 5px"><br>';
|
312 |
+
echo '<input style="position: relative; top: -40px" type="radio" onchange="this.form.act.value=\'theme\';this.form.submit()" name="options[' . esc_attr($name) . ']" value="' . esc_attr($key) . '"';
|
313 |
if ($this->data[$name] == $key) {
|
314 |
echo ' checked';
|
315 |
}
|
353 |
|
354 |
function text_email($name, $size = 40) {
|
355 |
$value = $this->get_value($name);
|
356 |
+
echo '<input name="options[' . esc_attr($name) . ']" type="email" placeholder="';
|
357 |
echo esc_attr(__('Valid email address', 'newsletter'));
|
358 |
+
echo '" size="' . esc_attr($size) . '" value="';
|
359 |
echo esc_attr($value);
|
360 |
echo '">';
|
361 |
}
|
362 |
|
363 |
function text_url($name, $size = 40) {
|
364 |
$value = $this->get_value($name);
|
365 |
+
echo '<input name="options[' . esc_attr($name) . ']" type="url" placeholder="http://..." size="' . esc_attr($size) . '" value="';
|
366 |
+
echo esc_attr($value);
|
367 |
echo '"/>';
|
368 |
}
|
369 |
|
370 |
function hidden($name) {
|
371 |
$value = $this->get_value($name);
|
372 |
echo '<input name="options[' . $name . ']" type="hidden" value="';
|
373 |
+
echo esc_attr($value);
|
374 |
echo '"/>';
|
375 |
}
|
376 |
|
377 |
function button($action, $label, $function = null) {
|
378 |
if ($function != null) {
|
379 |
+
echo '<input class="button-secondary" type="button" value="' . esc_attr($label) . '" onclick="this.form.act.value=\'' . esc_attr($action) . '\';' . esc_html($function) . '"/>';
|
380 |
} else {
|
381 |
+
echo '<input class="button-secondary" type="submit" value="' . esc_attr($label) . '" onclick="this.form.act.value=\'' . esc_attr($action) . '\';return true;"/>';
|
382 |
}
|
383 |
}
|
384 |
|
400 |
|
401 |
function button_back($url) {
|
402 |
echo '<a href="';
|
403 |
+
echo esc_attr($url);
|
404 |
echo '" class="button"><i class="fa fa-chevron-left"></i> ';
|
405 |
_e('Back', 'newsletter');
|
406 |
echo '</a>';
|
434 |
|
435 |
function button_primary($action, $label, $function = null) {
|
436 |
if ($function != null) {
|
437 |
+
echo '<input class="button-primary" type="button" value="' . esc_attr($label) . '" onclick="this.form.act.value=\'' . esc_attr($action) . '\';' . esc_attr($function) . '"/>';
|
438 |
} else {
|
439 |
+
echo '<input class="button-primary" type="button" value="' . esc_attr($label) . '" onclick="this.form.act.value=\'' . esc_attr($action) . '\';this.form.submit()"/>';
|
440 |
}
|
441 |
}
|
442 |
|
443 |
function button_confirm($action, $label, $message = '', $data = '') {
|
444 |
if (empty($message)) {
|
445 |
+
echo '<input class="button-secondary" type="button" value="' . esc_attr($label) . '" onclick="this.form.btn.value=\'' . esc_attr($data) . '\';this.form.act.value=\'' . esc_attr($action) . '\';this.form.submit()"/>';
|
446 |
} else {
|
447 |
+
echo '<input class="button-secondary" type="button" value="' . esc_attr($label) . '" onclick="this.form.btn.value=\'' . esc_attr($data) . '\';this.form.act.value=\'' . esc_attr($action) . '\';if (confirm(\'' .
|
448 |
esc_attr(esc_js($message)) . '\')) this.form.submit()"/>';
|
449 |
}
|
450 |
}
|
451 |
|
452 |
function editor($name, $rows = 5, $cols = 75) {
|
453 |
+
echo '<textarea class="visual" name="options[' . esc_attr($name) . ']" style="width: 100%" wrap="off" rows="' . esc_attr($rows) . '">';
|
454 |
echo esc_html($this->get_value($name));
|
455 |
echo '</textarea>';
|
456 |
}
|
457 |
|
458 |
function wp_editor($name, $settings = array()) {
|
459 |
$value = $this->get_value($name);
|
460 |
+
wp_editor($value, $name, array_merge(array('textarea_name' => 'options[' . esc_attr($name) . ']', 'wpautop' => false), $settings));
|
461 |
if (!is_plugin_active('mce_table_buttons/mce_table_buttons.php')) {
|
462 |
echo '<p class="description">You can install <a href="https://wordpress.org/plugins/mce-table-buttons/" target="_blank">MCE Table Button</a> for a table management toolbar add on.</p>';
|
463 |
}
|
465 |
|
466 |
function textarea($name, $width = '100%', $height = '50') {
|
467 |
$value = $this->get_value($name);
|
468 |
+
echo '<textarea id="options-' . esc_attr($name) . '" class="dynamic" name="options[' . esc_attr($name) . ']" wrap="off" style="width:' . esc_attr($width) . ';height:' . esc_attr($height) . '">';
|
469 |
echo esc_html($value);
|
470 |
echo '</textarea>';
|
471 |
}
|
472 |
|
473 |
function textarea_fixed($name, $width = '100%', $height = '200') {
|
474 |
$value = $this->get_value($name);
|
475 |
+
echo '<textarea id="options-' . esc_attr($name) . '" name="options[' . esc_attr($name) . ']" wrap="off" style="width:' . esc_attr($width) . ';height:' . esc_attr($height) . 'px">';
|
476 |
echo esc_html($value);
|
477 |
echo '</textarea>';
|
478 |
}
|
480 |
function textarea_preview($name, $width = '100%', $height = '200', $header = '', $footer = '') {
|
481 |
$value = $this->get_value($name);
|
482 |
//do_action('newsletter_controls_textarea_preview', $name);
|
483 |
+
echo '<input class="button" type="button" onclick="newsletter_textarea_preview(\'options-' . esc_attr($name) . '\', \'\', \'\')" value="Switch editor/preview">';
|
484 |
echo '<br><br>';
|
485 |
echo '<div style="position: relative">';
|
486 |
+
echo '<textarea id="options-' . esc_attr($name) . '" name="options[' . esc_attr($name) . ']" wrap="off" style="width:' . esc_attr($width) . ';height:' . esc_attr($height) . 'px">';
|
487 |
echo esc_html($value);
|
488 |
echo '</textarea>';
|
489 |
+
echo '<iframe id="options-' . esc_attr($name) . '-iframe" class="newsletter-textarea-preview" style="background-color: #fff; width: ' . esc_attr($width) . '; height: ' . esc_attr($height) . 'px; position: absolute; top: 0; left: 0; z-index: 10000; display: none"></iframe>';
|
490 |
echo '</div>';
|
491 |
}
|
492 |
|
511 |
if ($label != '') {
|
512 |
echo '<label>';
|
513 |
}
|
514 |
+
echo '<input type="checkbox" id="' . esc_attr($name) . '" name="options[' . esc_attr($name) . ']" value="1"';
|
515 |
if (!empty($this->data[$name])) {
|
516 |
echo ' checked="checked"';
|
517 |
}
|
518 |
echo '>';
|
519 |
if ($label != '') {
|
520 |
+
echo ' ' . esc_html($label) . '</label>';
|
521 |
}
|
522 |
}
|
523 |
|
525 |
if ($label != '') {
|
526 |
echo '<label>';
|
527 |
}
|
528 |
+
echo '<input type="checkbox" id="' . esc_attr($name) . '" onchange="document.getElementById(\'' . esc_attr($name) . '_hidden\').value=this.checked?\'1\':\'0\'"';
|
529 |
if (!empty($this->data[$name])) {
|
530 |
echo ' checked="checked"';
|
531 |
}
|
532 |
echo '>';
|
533 |
if ($label != '') {
|
534 |
+
echo ' ' . esc_html($label) . '</label>';
|
535 |
}
|
536 |
+
echo '<input type="hidden" id="' . esc_attr($name) . '_hidden" name="options[' . esc_attr($name) . ']" value="';
|
537 |
|
538 |
echo empty($this->data[$name]) ? '0' : '1';
|
539 |
echo '">';
|
543 |
if ($label != '') {
|
544 |
echo '<label>';
|
545 |
}
|
546 |
+
echo '<input type="radio" id="' . esc_attr($name) . '" name="options[' . esc_attr($name) . ']" value="' . esc_attr($value) . '"';
|
547 |
$v = $this->get_value($name);
|
548 |
if ($v == $value) {
|
549 |
echo ' checked="checked"';
|
550 |
}
|
551 |
echo '>';
|
552 |
if ($label != '') {
|
553 |
+
echo ' ' . esc_html($label) . '</label>';
|
554 |
}
|
555 |
}
|
556 |
|
559 |
* the key $name an array containig the passed value.
|
560 |
*/
|
561 |
function checkbox_group($name, $value, $label = '') {
|
562 |
+
echo '<label><input type="checkbox" id="' . esc_attr($name) . '" name="options[' . esc_attr($name) . '][]" value="' . esc_attr($value) . '"';
|
563 |
if (isset($this->data[$name]) && is_array($this->data[$name]) && array_search($value, $this->data[$name]) !== false) {
|
564 |
echo ' checked';
|
565 |
}
|
566 |
+
echo '>';
|
567 |
if ($label != '') {
|
568 |
+
echo esc_html($label);
|
569 |
}
|
570 |
echo '</label>';
|
571 |
}
|
579 |
function categories($name = 'category') {
|
580 |
$categories = get_categories();
|
581 |
echo '<div class="newsletter-checkboxes-group">';
|
582 |
+
foreach ($categories as $c) {
|
583 |
echo '<div class="newsletter-checkboxes-item">';
|
584 |
$this->checkbox($name . '_' . $c->cat_ID, esc_html($c->cat_name));
|
585 |
echo '</div>';
|
698 |
$year = date('Y', $this->data[$name]);
|
699 |
$day = date('j', $this->data[$name]);
|
700 |
$month = date('m', $this->data[$name]);
|
701 |
+
$onchange = "this.form.elements['options[" . esc_attr($name) . "]'].value = new Date(document.getElementById('" . esc_attr($name) . "_year').value, document.getElementById('" . esc_attr($name) . "_month').value, document.getElementById('" . esc_attr($name) . "_day').value, 12, 0, 0).getTime()/1000";
|
702 |
+
echo '<select id="' . $name . '_month" onchange="' . esc_attr($onchange) . '">';
|
703 |
for ($i = 0; $i < 12; $i++) {
|
704 |
echo '<option value="' . $i . '"';
|
705 |
if ($month - 1 == $i) {
|
709 |
}
|
710 |
echo '</select>';
|
711 |
|
712 |
+
echo '<select id="' . esc_attr($name) . '_day" onchange="' . esc_attr($onchange) . '">';
|
713 |
for ($i = 1; $i <= 31; $i++) {
|
714 |
echo '<option value="' . $i . '"';
|
715 |
if ($day == $i) {
|
719 |
}
|
720 |
echo '</select>';
|
721 |
|
722 |
+
echo '<select id="' . esc_attr($name) . '_year" onchange="' . esc_attr($onchange) . '">';
|
723 |
for ($i = 2011; $i <= 2021; $i++) {
|
724 |
echo '<option value="' . $i . '"';
|
725 |
if ($year == $i) {
|
734 |
* Date and time (hour) selector. Timestamp stored.
|
735 |
*/
|
736 |
function datetime($name) {
|
737 |
+
echo '<input type="hidden" name="fields[' . esc_attr($name) . ']" value="datetime">';
|
738 |
$time = $this->data[$name] + get_option('gmt_offset') * 3600;
|
739 |
$year = gmdate('Y', $time);
|
740 |
$day = gmdate('j', $time);
|
741 |
$month = gmdate('m', $time);
|
742 |
$hour = gmdate('H', $time);
|
743 |
|
744 |
+
echo '<select name="' . esc_attr($name) . '_month">';
|
745 |
for ($i = 1; $i <= 12; $i++) {
|
746 |
echo '<option value="' . $i . '"';
|
747 |
if ($month == $i) {
|
751 |
}
|
752 |
echo '</select>';
|
753 |
|
754 |
+
echo '<select name="' . esc_attr($name) . '_day">';
|
755 |
for ($i = 1; $i <= 31; $i++) {
|
756 |
echo '<option value="' . $i . '"';
|
757 |
if ($day == $i) {
|
761 |
}
|
762 |
echo '</select>';
|
763 |
|
764 |
+
echo '<select name="' . esc_attr($name) . '_year">';
|
765 |
for ($i = 2011; $i <= 2021; $i++) {
|
766 |
echo '<option value="' . $i . '"';
|
767 |
if ($year == $i) {
|
771 |
}
|
772 |
echo '</select>';
|
773 |
|
774 |
+
echo '<select name="' . esc_attr($name) . '_hour">';
|
775 |
for ($i = 0; $i <= 23; $i++) {
|
776 |
echo '<option value="' . $i . '"';
|
777 |
if ($hour == $i) {
|
865 |
|
866 |
function js_redirect($url) {
|
867 |
echo '<script>';
|
868 |
+
echo 'location.href="' . esc_js($url) . '"';
|
869 |
echo '</script>';
|
870 |
}
|
871 |
|
886 |
function css_font_size($name) {
|
887 |
$value = $this->get_value($name);
|
888 |
|
889 |
+
echo '<select id="options-' . esc_attr($name) . '" name="options[' . esc_attr($name) . ']">';
|
890 |
for ($i = 8; $i < 50; $i++) {
|
891 |
echo '<option value="' . $i . '"';
|
892 |
if ($value == $i) {
|
900 |
function css_border($name) {
|
901 |
$value = $this->get_value($name . '_width');
|
902 |
|
903 |
+
echo 'width <select id="options-' . esc_attr($name) . '-width" name="options[' . esc_attr($name) . '_width]">';
|
904 |
for ($i = 0; $i < 10; $i++) {
|
905 |
echo '<option value="' . $i . '"';
|
906 |
if ($value == $i) {
|
916 |
|
917 |
$value = $this->get_value($name . '_radius');
|
918 |
|
919 |
+
echo ' radius <select id="options-' . esc_attr($name) . '-radius" name="options[' . esc_attr($name) . '_radius]">';
|
920 |
for ($i = 0; $i < 10; $i++) {
|
921 |
echo '<option value="' . $i . '"';
|
922 |
if ($value == $i) {
|
934 |
|
935 |
if ($media === false) {
|
936 |
$media = array('', '', '');
|
937 |
+
echo '<img style="width: 200px" id="' . esc_attr($name) . '_img" src="' . plugins_url('newsletter') . '/images/nomedia.png" onclick="newsletter_media(\'' . esc_attr($name) . '\')">';
|
938 |
} else {
|
939 |
+
echo '<img style="width: 200px" id="' . esc_attr($name) . '_img" src="' . $media[0] . '" onclick="newsletter_media(\'' . esc_attr($name) . '\')">';
|
940 |
echo '<br>';
|
941 |
+
echo '<a href="#" onclick="newsletter_media_remove(\'' . esc_attr($name) . '\'); return false">Remove</a>';
|
942 |
}
|
943 |
|
944 |
+
echo '<input type="hidden" id="' . esc_attr($name) . '_id" name="options[' . esc_attr($name) . '][id]" value="' . esc_attr($media_id) . '" size="5">';
|
945 |
+
echo '<input type="hidden" id="' . esc_attr($name) . '_url" name="options[' . esc_attr($name) . '][url]" value="' . esc_attr($media_full[0]) . '" size="50">';
|
946 |
}
|
947 |
|
948 |
function media_input($option, $name, $label) {
|
949 |
|
950 |
if (!empty($label)) {
|
951 |
+
$output = '<label class="select" for="tnp_' . esc_attr($name) . '">' . esc_html($label) . ':</label>';
|
952 |
}
|
953 |
+
$output .= '<input id="tnp_' . esc_attr($name) . '" type="text" size="36" name="' . esc_attr($option) . '[' . esc_attr($name) . ']" value="' . esc_attr($val) . '" />';
|
954 |
+
$output .= '<input id="tnp_' . esc_attr($name) . '_button" class="button" type="button" value="Select Image" />';
|
955 |
$output .= '<br class="clear"/>';
|
956 |
|
957 |
echo $output;
|
includes/helper.php
CHANGED
@@ -1,7 +1,9 @@
|
|
1 |
<?php
|
|
|
2 |
|
3 |
function tnp_post_thumbnail_src($post, $size = 'thumbnail') {
|
4 |
$media = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), $size);
|
|
|
5 |
return $media[0];
|
6 |
}
|
7 |
|
1 |
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
|
4 |
function tnp_post_thumbnail_src($post, $size = 'thumbnail') {
|
5 |
$media = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), $size);
|
6 |
+
if (strpos($media[0], 'http') !== 0) $media[0] = 'http:' . $media[0];
|
7 |
return $media[0];
|
8 |
}
|
9 |
|
includes/logger.php
CHANGED
@@ -1,77 +1,84 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
const
|
11 |
-
const
|
12 |
-
const
|
13 |
-
const
|
14 |
-
|
15 |
-
|
16 |
-
var $
|
17 |
-
var $
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
$
|
58 |
-
}
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
|
4 |
+
if (!defined('NEWSLETTER_LOG_DIR')) {
|
5 |
+
define('NEWSLETTER_LOG_DIR', WP_CONTENT_DIR . '/logs/newsletter/');
|
6 |
+
}
|
7 |
+
|
8 |
+
class NewsletterLogger {
|
9 |
+
|
10 |
+
const NONE = 0;
|
11 |
+
const FATAL = 1;
|
12 |
+
const ERROR = 2;
|
13 |
+
const INFO = 3;
|
14 |
+
const DEBUG = 4;
|
15 |
+
|
16 |
+
var $level;
|
17 |
+
var $module;
|
18 |
+
var $file;
|
19 |
+
|
20 |
+
function __construct($module) {
|
21 |
+
$this->module = $module;
|
22 |
+
if (defined('NEWSLETTER_LOG_LEVEL')) $this->level = NEWSLETTER_LOG_LEVEL;
|
23 |
+
else $this->level = get_option('newsletter_log_level', self::ERROR);
|
24 |
+
|
25 |
+
$secret = get_option('newsletter_logger_secret');
|
26 |
+
if (strlen($secret) < 8) {
|
27 |
+
$secret = NewsletterModule::get_token(8);
|
28 |
+
update_option('newsletter_logger_secret', $secret);
|
29 |
+
}
|
30 |
+
|
31 |
+
if (!wp_mkdir_p(NEWSLETTER_LOG_DIR)) {
|
32 |
+
$this->level = self::NONE;
|
33 |
+
}
|
34 |
+
|
35 |
+
$this->file = NEWSLETTER_LOG_DIR . '/' . $module . '-' . date('Y-m') . '-' . $secret . '.txt';
|
36 |
+
}
|
37 |
+
|
38 |
+
function log($text, $level = self::ERROR) {
|
39 |
+
|
40 |
+
if ($this->level < $level) return;
|
41 |
+
|
42 |
+
$time = date('d-m-Y H:i:s ');
|
43 |
+
switch ($level) {
|
44 |
+
case self::FATAL: $time .= '- FATAL';
|
45 |
+
break;
|
46 |
+
case self::ERROR: $time .= '- ERROR';
|
47 |
+
break;
|
48 |
+
case self::INFO: $time .= '- INFO ';
|
49 |
+
break;
|
50 |
+
case self::DEBUG: $time .= '- DEBUG';
|
51 |
+
break;
|
52 |
+
}
|
53 |
+
if (is_wp_error($text)) {
|
54 |
+
/* @var $text WP_Error */
|
55 |
+
$text = $text->get_error_message() . ' (' . $text->get_error_code() . ')';
|
56 |
+
} else {
|
57 |
+
if (is_array($text) || is_object($text)) $text = print_r($text, true);
|
58 |
+
}
|
59 |
+
// The "logs" dir is created on Newsletter constructor.
|
60 |
+
$current_user_id = 0;
|
61 |
+
if (function_exists('get_current_user_id')) $current_user_id = get_current_user_id();
|
62 |
+
$res = @file_put_contents($this->file, $time . ' - m: ' . size_format(memory_get_usage(), 1) . ', u: ' . $current_user_id . ' - ' . $text . "\n", FILE_APPEND | FILE_TEXT);
|
63 |
+
if ($res === false) {
|
64 |
+
$this->level = self::NONE;
|
65 |
+
}
|
66 |
+
}
|
67 |
+
|
68 |
+
function error($text) {
|
69 |
+
self::log($text, self::ERROR);
|
70 |
+
}
|
71 |
+
|
72 |
+
function info($text) {
|
73 |
+
$this->log($text, self::INFO);
|
74 |
+
}
|
75 |
+
|
76 |
+
function fatal($text) {
|
77 |
+
$this->log($text, self::FATAL);
|
78 |
+
}
|
79 |
+
|
80 |
+
function debug($text) {
|
81 |
+
$this->log($text, self::DEBUG);
|
82 |
+
}
|
83 |
+
|
84 |
+
}
|
includes/module.php
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
<?php
|
|
|
2 |
|
3 |
class NewsletterModule {
|
4 |
|
@@ -61,6 +62,7 @@ class NewsletterModule {
|
|
61 |
|
62 |
if ($this->old_version == '0.0.0') {
|
63 |
$this->first_install();
|
|
|
64 |
}
|
65 |
|
66 |
if (strcmp($this->old_version, $this->version) != 0) {
|
@@ -100,9 +102,9 @@ class NewsletterModule {
|
|
100 |
$options = array_merge($default_options, $options);
|
101 |
$this->save_options($options, $sub);
|
102 |
if ($autoload) {
|
103 |
-
$this->upgrade_query('update ' . $wpdb->options . " set autoload='
|
104 |
} else {
|
105 |
-
$this->upgrade_query('update ' . $wpdb->options . " set autoload='no' where option_name='" . $this->get_prefix($sub) . "' limit 1");
|
106 |
}
|
107 |
}
|
108 |
|
@@ -375,7 +377,7 @@ class NewsletterModule {
|
|
375 |
static function format_scheduler_time($name) {
|
376 |
$time = wp_next_scheduled($name);
|
377 |
if ($time === false) {
|
378 |
-
return '
|
379 |
}
|
380 |
$delta = $time - time();
|
381 |
// If less 10 minutes late it can be a cron problem but now it is working
|
@@ -496,19 +498,21 @@ class NewsletterModule {
|
|
496 |
}
|
497 |
|
498 |
$dir = WP_CONTENT_DIR . '/extensions/newsletter/' . $this->module . '/styles';
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
|
|
|
|
|
|
510 |
}
|
511 |
-
closedir($handle);
|
512 |
}
|
513 |
return $list;
|
514 |
}
|
@@ -526,16 +530,6 @@ class NewsletterModule {
|
|
526 |
|
527 |
function add_menu_page($page, $title) {
|
528 |
global $newsletter;
|
529 |
-
|
530 |
-
// Why check the plugin dir? I don't remember!
|
531 |
-
// $file = WP_PLUGIN_DIR . '/newsletter-' . $this->module . '/' . $page . '.php';
|
532 |
-
// if (!is_file($file)) {
|
533 |
-
// $file = WP_CONTENT_DIR . '/extensions/newsletter/' . $this->module . '/' . $page . '.php';
|
534 |
-
// }
|
535 |
-
// if (!is_file($file)) {
|
536 |
-
// $file = NEWSLETTER_DIR . '/' . $this->module . '/' . $page . '.php';
|
537 |
-
// }
|
538 |
-
|
539 |
$name = 'newsletter_' . $this->module . '_' . $page;
|
540 |
add_submenu_page('newsletter_main_index', $title, $title, ($newsletter->options['editor'] == 1) ? 'manage_categories' : 'manage_options', $name, array($this, 'menu_page'));
|
541 |
}
|
@@ -546,7 +540,7 @@ class NewsletterModule {
|
|
546 |
$name = apply_filters('newsletter_admin_page', $name);
|
547 |
add_submenu_page(null, $title, $title, ($newsletter->options['editor'] == 1) ? 'manage_categories' : 'manage_options', $name, array($this, 'menu_page'));
|
548 |
}
|
549 |
-
|
550 |
function sanitize_file_name($name) {
|
551 |
return preg_replace('/[^a-z_\\-]/i', '', $name);
|
552 |
}
|
@@ -757,6 +751,7 @@ class NewsletterModule {
|
|
757 |
echo '<html><head></head><body>';
|
758 |
echo '<form method="post" action="' . home_url('/') . '" id="form">';
|
759 |
foreach ($_REQUEST as $name => $value) {
|
|
|
760 |
if (is_array($value)) {
|
761 |
foreach ($value as $element) {
|
762 |
echo '<input type="hidden" name="';
|
1 |
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
|
4 |
class NewsletterModule {
|
5 |
|
62 |
|
63 |
if ($this->old_version == '0.0.0') {
|
64 |
$this->first_install();
|
65 |
+
update_option($this->prefix."_first_install_time", time(), FALSE);
|
66 |
}
|
67 |
|
68 |
if (strcmp($this->old_version, $this->version) != 0) {
|
102 |
$options = array_merge($default_options, $options);
|
103 |
$this->save_options($options, $sub);
|
104 |
if ($autoload) {
|
105 |
+
$this->upgrade_query('update ' . $wpdb->options . " set autoload='yes' where option_name='" . esc_sql($this->get_prefix($sub)) . "' limit 1");
|
106 |
} else {
|
107 |
+
$this->upgrade_query('update ' . $wpdb->options . " set autoload='no' where option_name='" . esc_sql($this->get_prefix($sub)) . "' limit 1");
|
108 |
}
|
109 |
}
|
110 |
|
377 |
static function format_scheduler_time($name) {
|
378 |
$time = wp_next_scheduled($name);
|
379 |
if ($time === false) {
|
380 |
+
return 'No next run scheduled';
|
381 |
}
|
382 |
$delta = $time - time();
|
383 |
// If less 10 minutes late it can be a cron problem but now it is working
|
498 |
}
|
499 |
|
500 |
$dir = WP_CONTENT_DIR . '/extensions/newsletter/' . $this->module . '/styles';
|
501 |
+
if (is_dir($dir)) {
|
502 |
+
$handle = @opendir($dir);
|
503 |
+
|
504 |
+
if ($handle !== false) {
|
505 |
+
while ($file = readdir($handle)) {
|
506 |
+
if ($file == '.' || $file == '..')
|
507 |
+
continue;
|
508 |
+
if (isset($list[$file]))
|
509 |
+
continue;
|
510 |
+
if (substr($file, -4) != '.css')
|
511 |
+
continue;
|
512 |
+
$list[$file] = substr($file, 0, strlen($file) - 4);
|
513 |
+
}
|
514 |
+
closedir($handle);
|
515 |
}
|
|
|
516 |
}
|
517 |
return $list;
|
518 |
}
|
530 |
|
531 |
function add_menu_page($page, $title) {
|
532 |
global $newsletter;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
533 |
$name = 'newsletter_' . $this->module . '_' . $page;
|
534 |
add_submenu_page('newsletter_main_index', $title, $title, ($newsletter->options['editor'] == 1) ? 'manage_categories' : 'manage_options', $name, array($this, 'menu_page'));
|
535 |
}
|
540 |
$name = apply_filters('newsletter_admin_page', $name);
|
541 |
add_submenu_page(null, $title, $title, ($newsletter->options['editor'] == 1) ? 'manage_categories' : 'manage_options', $name, array($this, 'menu_page'));
|
542 |
}
|
543 |
+
|
544 |
function sanitize_file_name($name) {
|
545 |
return preg_replace('/[^a-z_\\-]/i', '', $name);
|
546 |
}
|
751 |
echo '<html><head></head><body>';
|
752 |
echo '<form method="post" action="' . home_url('/') . '" id="form">';
|
753 |
foreach ($_REQUEST as $name => $value) {
|
754 |
+
if ($name == 'submit') continue;
|
755 |
if (is_array($value)) {
|
756 |
foreach ($value as $element) {
|
757 |
echo '<input type="hidden" name="';
|
includes/store.php
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
<?php
|
|
|
2 |
|
3 |
@require_once NEWSLETTER_INCLUDES_DIR . '/logger.php';
|
4 |
|
@@ -106,6 +107,11 @@ class NewsletterStore {
|
|
106 |
if (is_object($data)) {
|
107 |
$data = (array) $data;
|
108 |
}
|
|
|
|
|
|
|
|
|
|
|
109 |
|
110 |
if (isset($data['id'])) {
|
111 |
$id = $data['id'];
|
@@ -115,7 +121,7 @@ class NewsletterStore {
|
|
115 |
if ($r === false) {
|
116 |
$this->logger->fatal($wpdb->last_error);
|
117 |
$this->logger->fatal($wpdb->last_query);
|
118 |
-
die('Database error
|
119 |
}
|
120 |
}
|
121 |
//$this->logger->debug('save: ' . $wpdb->last_query);
|
@@ -124,7 +130,7 @@ class NewsletterStore {
|
|
124 |
if ($r === false) {
|
125 |
$this->logger->fatal($wpdb->last_error);
|
126 |
$this->logger->fatal($wpdb->last_query);
|
127 |
-
die('Database error
|
128 |
}
|
129 |
$id = $wpdb->insert_id;
|
130 |
}
|
1 |
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
|
4 |
@require_once NEWSLETTER_INCLUDES_DIR . '/logger.php';
|
5 |
|
107 |
if (is_object($data)) {
|
108 |
$data = (array) $data;
|
109 |
}
|
110 |
+
|
111 |
+
// Remove transient fields
|
112 |
+
foreach (array_keys($data) as $key) {
|
113 |
+
if (substr($key, 0, 1) == '_') unset($data[$key]);
|
114 |
+
}
|
115 |
|
116 |
if (isset($data['id'])) {
|
117 |
$id = $data['id'];
|
121 |
if ($r === false) {
|
122 |
$this->logger->fatal($wpdb->last_error);
|
123 |
$this->logger->fatal($wpdb->last_query);
|
124 |
+
die('Database error see the log files (log files path can be found on Newsletter diagnostic panel)');
|
125 |
}
|
126 |
}
|
127 |
//$this->logger->debug('save: ' . $wpdb->last_query);
|
130 |
if ($r === false) {
|
131 |
$this->logger->fatal($wpdb->last_error);
|
132 |
$this->logger->fatal($wpdb->last_query);
|
133 |
+
die('Database error see the log files (log files path can be found on Newsletter diagnostic panel)');
|
134 |
}
|
135 |
$id = $wpdb->insert_id;
|
136 |
}
|
includes/themes.php
CHANGED
@@ -1,217 +1,218 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
var $
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
$this->
|
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 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
$
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
$
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
$data
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
$
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
$data
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
*
|
144 |
-
* @param type $
|
145 |
-
* @param type $
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
$
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
@include $path2 . '/
|
194 |
-
|
195 |
-
|
196 |
-
$
|
197 |
-
|
198 |
-
@include $
|
199 |
-
@include $
|
200 |
-
@include $
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
$
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
|
1 |
+
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
|
4 |
+
class NewsletterThemes {
|
5 |
+
|
6 |
+
var $module;
|
7 |
+
var $is_extension = false;
|
8 |
+
|
9 |
+
function __construct($module, $is_extension = false) {
|
10 |
+
$this->module = $module;
|
11 |
+
$this->is_extension = $is_extension;
|
12 |
+
}
|
13 |
+
|
14 |
+
/** Loads all themes of a module (actually only "emails" module makes sense). Themes are located inside the subfolder
|
15 |
+
* named as the module on plugin folder and on a subfolder named as the module on wp-content/newsletter folder (which
|
16 |
+
* must be manually created).
|
17 |
+
*
|
18 |
+
* @param type $module
|
19 |
+
* @return type
|
20 |
+
*/
|
21 |
+
function get_all() {
|
22 |
+
$list = array();
|
23 |
+
|
24 |
+
$dir = WP_CONTENT_DIR . '/extensions/newsletter/' . $this->module . '/themes';
|
25 |
+
$handle = @opendir($dir);
|
26 |
+
|
27 |
+
if ($handle !== false) {
|
28 |
+
while ($file = readdir($handle)) {
|
29 |
+
if ($file == '.' || $file == '..')
|
30 |
+
continue;
|
31 |
+
if (!is_file($dir . '/' . $file . '/theme.php'))
|
32 |
+
continue;
|
33 |
+
$list[$file] = $file;
|
34 |
+
}
|
35 |
+
closedir($handle);
|
36 |
+
}
|
37 |
+
|
38 |
+
if (!$this->is_extension) {
|
39 |
+
$dir = NEWSLETTER_DIR . '/' . $this->module . '/themes';
|
40 |
+
$handle = @opendir($dir);
|
41 |
+
|
42 |
+
if ($handle !== false) {
|
43 |
+
while ($file = readdir($handle)) {
|
44 |
+
if ($file == '.' || $file == '..')
|
45 |
+
continue;
|
46 |
+
if (isset($list[$file]))
|
47 |
+
continue;
|
48 |
+
if (!is_file($dir . '/' . $file . '/theme.php'))
|
49 |
+
continue;
|
50 |
+
|
51 |
+
$list[$file] = $file;
|
52 |
+
}
|
53 |
+
closedir($handle);
|
54 |
+
}
|
55 |
+
}
|
56 |
+
|
57 |
+
return $list;
|
58 |
+
}
|
59 |
+
|
60 |
+
function themescmp($a, $b) {
|
61 |
+
$al = strtolower($a['name']);
|
62 |
+
$bl = strtolower($b['name']);
|
63 |
+
if ($al == 'default') {
|
64 |
+
return -1;
|
65 |
+
}
|
66 |
+
return (strcmp($al, $bl));
|
67 |
+
}
|
68 |
+
|
69 |
+
function get_all_with_data() {
|
70 |
+
$list = array();
|
71 |
+
|
72 |
+
$dir = WP_CONTENT_DIR . '/extensions/newsletter/' . $this->module . '/themes';
|
73 |
+
$handle = @opendir($dir);
|
74 |
+
|
75 |
+
if ($handle !== false) {
|
76 |
+
while ($file = readdir($handle)) {
|
77 |
+
if ($file == '.' || $file == '..') {
|
78 |
+
continue;
|
79 |
+
}
|
80 |
+
if (isset($list[$file])) {
|
81 |
+
continue;
|
82 |
+
}
|
83 |
+
if (!is_file($dir . '/' . $file . '/theme.php')) {
|
84 |
+
continue;
|
85 |
+
}
|
86 |
+
$data = get_file_data($dir . '/' . $file . '/theme.php', array('name' => 'Name', 'type' => 'Type', 'description'=>'Description'));
|
87 |
+
$data['id'] = $file;
|
88 |
+
if (empty($data['name'])) {
|
89 |
+
$data['name'] = $file;
|
90 |
+
}
|
91 |
+
if (empty($data['type'])) {
|
92 |
+
$data['type'] = 'standard';
|
93 |
+
}
|
94 |
+
$screenshot = $dir . '/' . $file . '/screenshot.png';
|
95 |
+
if (is_file($screenshot)) {
|
96 |
+
$data['screenshot'] = $this->get_theme_url($file) . '/screenshot.png';
|
97 |
+
} else {
|
98 |
+
$data['screenshot'] = plugins_url('newsletter') . '/images/theme-screenshot.png';
|
99 |
+
}
|
100 |
+
$list[$file] = $data;
|
101 |
+
}
|
102 |
+
closedir($handle);
|
103 |
+
}
|
104 |
+
|
105 |
+
if (!$this->is_extension) {
|
106 |
+
$dir = NEWSLETTER_DIR . '/' . $this->module . '/themes';
|
107 |
+
$handle = @opendir($dir);
|
108 |
+
|
109 |
+
if ($handle !== false) {
|
110 |
+
while ($file = readdir($handle)) {
|
111 |
+
if ($file == '.' || $file == '..') {
|
112 |
+
continue;
|
113 |
+
}
|
114 |
+
if (!is_file($dir . '/' . $file . '/theme.php')) {
|
115 |
+
continue;
|
116 |
+
}
|
117 |
+
$data = get_file_data($dir . '/' . $file . '/theme.php', array('name' => 'Name', 'type' => 'Type', 'description'=>'Description'));
|
118 |
+
$data['id'] = $file;
|
119 |
+
if (empty($data['name'])) {
|
120 |
+
$data['name'] = $file;
|
121 |
+
}
|
122 |
+
if (empty($data['type'])) {
|
123 |
+
$data['type'] = 'standard';
|
124 |
+
}
|
125 |
+
$screenshot = $dir . '/' . $file . '/screenshot.png';
|
126 |
+
if (is_file($screenshot)) {
|
127 |
+
$data['screenshot'] = $this->get_theme_url($file) . '/screenshot.png';
|
128 |
+
} else {
|
129 |
+
$data['screenshot'] = plugins_url('newsletter') . '/images/theme-screenshot.png';
|
130 |
+
}
|
131 |
+
$list[$file] = $data;
|
132 |
+
}
|
133 |
+
closedir($handle);
|
134 |
+
}
|
135 |
+
}
|
136 |
+
|
137 |
+
usort($list, array($this, "themescmp"));
|
138 |
+
|
139 |
+
return $list;
|
140 |
+
}
|
141 |
+
|
142 |
+
/**
|
143 |
+
*
|
144 |
+
* @param type $theme
|
145 |
+
* @param type $options
|
146 |
+
* @param type $module
|
147 |
+
*/
|
148 |
+
function save_options($theme, &$options) {
|
149 |
+
add_option('newsletter_' . $this->module . '_theme_' . $theme, array(), null, 'no');
|
150 |
+
$theme_options = array();
|
151 |
+
foreach ($options as $key => &$value) {
|
152 |
+
if (substr($key, 0, 6) != 'theme_')
|
153 |
+
continue;
|
154 |
+
$theme_options[$key] = $value;
|
155 |
+
}
|
156 |
+
update_option('newsletter_' . $this->module . '_theme_' . $theme, $theme_options);
|
157 |
+
}
|
158 |
+
|
159 |
+
function get_options($theme) {
|
160 |
+
$options = get_option('newsletter_' . $this->module . '_theme_' . $theme);
|
161 |
+
// To avoid merge problems.
|
162 |
+
if (!is_array($options)) {
|
163 |
+
return array();
|
164 |
+
}
|
165 |
+
return $options;
|
166 |
+
}
|
167 |
+
|
168 |
+
function get_file_path($theme, $file) {
|
169 |
+
$path = WP_CONTENT_DIR . '/extensions/newsletter/' . $this->module . '/themes/' . $theme . '/' . $file;
|
170 |
+
if (is_file($path)) {
|
171 |
+
return $path;
|
172 |
+
} else {
|
173 |
+
return NEWSLETTER_DIR . '/' . $this->module . '/themes/' . $theme . '/' . $file;
|
174 |
+
}
|
175 |
+
}
|
176 |
+
|
177 |
+
function get_theme_url($theme) {
|
178 |
+
if ($this->is_extension) {
|
179 |
+
return WP_CONTENT_URL . '/extensions/newsletter/' . $this->module . '/themes/' . $theme;
|
180 |
+
}
|
181 |
+
|
182 |
+
$path = NEWSLETTER_DIR . '/' . $this->module . '/themes/' . $theme;
|
183 |
+
if (is_dir($path)) {
|
184 |
+
return plugins_url('newsletter') . '/' . $this->module . '/themes/' . $theme;
|
185 |
+
} else {
|
186 |
+
return WP_CONTENT_URL . '/extensions/newsletter/' . $this->module . '/themes/' . $theme;
|
187 |
+
}
|
188 |
+
}
|
189 |
+
|
190 |
+
function get_default_options() {
|
191 |
+
if ($this->is_extension) {
|
192 |
+
$path2 = WP_CONTENT_DIR . '/extensions/newsletter/' . $this->module . '/themes/' . $theme . '/languages';
|
193 |
+
@include $path2 . '/en_US.php';
|
194 |
+
@include $path2 . '/' . WPLANG . '.php';
|
195 |
+
} else {
|
196 |
+
$path1 = NEWSLETTER_DIR . '/' . $this->module . '/themes/' . $theme . '/languages';
|
197 |
+
$path2 = WP_CONTENT_DIR . '/extensions/newsletter/' . $this->module . '/themes/' . $theme . '/languages';
|
198 |
+
@include $path1 . '/en_US.php';
|
199 |
+
@include $path2 . '/en_US.php';
|
200 |
+
@include $path1 . '/' . WPLANG . '.php';
|
201 |
+
@include $path2 . '/' . WPLANG . '.php';
|
202 |
+
}
|
203 |
+
|
204 |
+
if (!is_array($options))
|
205 |
+
return array();
|
206 |
+
return $options;
|
207 |
+
}
|
208 |
+
|
209 |
+
}
|
210 |
+
|
211 |
+
function nt_option($name, $def = null) {
|
212 |
+
$options = get_option('newsletter_email');
|
213 |
+
$option = $options['theme_' . $name];
|
214 |
+
if (!isset($option))
|
215 |
+
return $def;
|
216 |
+
else
|
217 |
+
return $option;
|
218 |
+
}
|
lock/index.php
CHANGED
@@ -1,4 +1,6 @@
|
|
1 |
<?php
|
|
|
|
|
2 |
@include_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
3 |
$controls = new NewsletterControls();
|
4 |
$module = NewsletterLock::instance();
|
1 |
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
|
4 |
@include_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
5 |
$controls = new NewsletterControls();
|
6 |
$module = NewsletterLock::instance();
|
lock/lock.php
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
<?php
|
|
|
2 |
|
3 |
require_once NEWSLETTER_INCLUDES_DIR . '/module.php';
|
4 |
|
1 |
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
|
4 |
require_once NEWSLETTER_INCLUDES_DIR . '/module.php';
|
5 |
|
main/diagnostic.php
CHANGED
@@ -1,4 +1,7 @@
|
|
1 |
<?php
|
|
|
|
|
|
|
2 |
@include_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
3 |
$module = Newsletter::instance();
|
4 |
$controls = new NewsletterControls();
|
@@ -39,6 +42,11 @@ if ($controls->is_action('engine_on')) {
|
|
39 |
$controls->messages = 'Delivery engine reactivated.';
|
40 |
}
|
41 |
|
|
|
|
|
|
|
|
|
|
|
42 |
if ($controls->is_action('upgrade')) {
|
43 |
// TODO: Compact them in a call to Newsletter which should be able to manage the installed modules
|
44 |
Newsletter::instance()->upgrade();
|
@@ -165,7 +173,34 @@ if (count($calls) > 1) {
|
|
165 |
$max = $diff;
|
166 |
}
|
167 |
}
|
168 |
-
$mean = $mean / count($calls) - 1;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
169 |
}
|
170 |
?>
|
171 |
|
@@ -194,14 +229,10 @@ if (count($calls) > 1) {
|
|
194 |
<div id="tabs">
|
195 |
|
196 |
<ul>
|
197 |
-
<li><a href="#tabs-tests"
|
198 |
-
<li><a href="#tabs-
|
199 |
-
<li><a href="#tabs-
|
200 |
-
<li><a href="#tabs-
|
201 |
-
<li><a href="#tabs-upgrade">Maintenance</a></li>
|
202 |
-
<?php if (isset($_GET['debug'])) { ?>
|
203 |
-
<li><a href="#tabs-debug">Debug Data</a></li>
|
204 |
-
<?php } ?>
|
205 |
</ul>
|
206 |
|
207 |
<!-- TESTS -->
|
@@ -234,13 +265,7 @@ if (count($calls) > 1) {
|
|
234 |
<code>wp-content/logs/newsletter</code>.
|
235 |
</p>
|
236 |
|
237 |
-
<table class="
|
238 |
-
<thead>
|
239 |
-
<tr>
|
240 |
-
<th>Name</th>
|
241 |
-
<th>Active since</th>
|
242 |
-
</tr>
|
243 |
-
</thead>
|
244 |
|
245 |
<tbody>
|
246 |
<tr>
|
@@ -256,6 +281,8 @@ if (count($calls) > 1) {
|
|
256 |
Log folder
|
257 |
</td>
|
258 |
<td>
|
|
|
|
|
259 |
<?php
|
260 |
if (!is_dir(NEWSLETTER_LOG_DIR)) {
|
261 |
echo '<span class="newsletter-error-span">The log folder does not exists, no logging possible!</span>';
|
@@ -265,6 +292,8 @@ if (count($calls) > 1) {
|
|
265 |
?>
|
266 |
</td>
|
267 |
</tr>
|
|
|
|
|
268 |
</tbody>
|
269 |
</table>
|
270 |
|
@@ -273,36 +302,9 @@ if (count($calls) > 1) {
|
|
273 |
|
274 |
<!-- SEMAPHORES -->
|
275 |
<div id="tabs-2">
|
276 |
-
<h4>Semaphores</h4>
|
277 |
-
<table class="widefat">
|
278 |
-
<thead>
|
279 |
-
<tr>
|
280 |
-
<th>Name</th>
|
281 |
-
<th>Active since</th>
|
282 |
-
</tr>
|
283 |
-
</thead>
|
284 |
|
285 |
-
|
286 |
-
|
287 |
-
<td>
|
288 |
-
Newsletter delivery
|
289 |
-
</td>
|
290 |
-
<td>
|
291 |
-
<?php
|
292 |
-
$value = get_transient('newsletter_main_engine');
|
293 |
-
if ($value)
|
294 |
-
echo (time() - $value) . ' seconds';
|
295 |
-
else
|
296 |
-
echo 'Not set';
|
297 |
-
?>
|
298 |
-
<?php $controls->button('delete_transient', 'Delete', null, 'newsletter_main_engine'); ?>
|
299 |
-
</td>
|
300 |
-
</tr>
|
301 |
-
</tbody>
|
302 |
-
</table>
|
303 |
-
|
304 |
-
<h4>Crons</h4>
|
305 |
-
<table class="widefat">
|
306 |
<thead>
|
307 |
<tr>
|
308 |
<th>Function</th>
|
@@ -311,254 +313,61 @@ if (count($calls) > 1) {
|
|
311 |
</thead>
|
312 |
|
313 |
<tbody>
|
314 |
-
<tr>
|
315 |
-
<td>
|
316 |
-
WordPress Cron System
|
317 |
-
</td>
|
318 |
-
<td>
|
319 |
-
<?php
|
320 |
-
if (defined('DISABLE_WP_CRON') && DISABLE_WP_CRON)
|
321 |
-
echo 'DISABLED. (can be a problem, see the <a href="http://www.thenewsletterplugin.com/plugins/newsletter/newsletter-delivery-engine" target="_tab">delivery engine documentation</a>)';
|
322 |
-
else
|
323 |
-
echo "ENABLED. (it's ok)";
|
324 |
-
?>
|
325 |
-
</td>
|
326 |
-
</tr>
|
327 |
|
328 |
-
<tr>
|
329 |
-
<td>
|
330 |
-
WordPress schedules
|
331 |
-
</td>
|
332 |
-
<td>
|
333 |
-
<?php
|
334 |
-
$schedules = wp_get_schedules();
|
335 |
-
if (empty($schedules)) {
|
336 |
-
echo 'Really bad, no schedules found, missing even the WordPress default schedules!';
|
337 |
-
} else {
|
338 |
-
$found = false;
|
339 |
|
340 |
-
foreach ($schedules as $key => &$data) {
|
341 |
-
if ($key == 'newsletter')
|
342 |
-
$found = true;
|
343 |
-
echo $key . ' - ' . $data['interval'] . ' s<br>';
|
344 |
-
}
|
345 |
|
346 |
-
|
347 |
-
echo 'The "newsletter" schedule was not found, email delivery won\'t work.';
|
348 |
-
}
|
349 |
-
}
|
350 |
-
?>
|
351 |
-
</td>
|
352 |
-
</tr>
|
353 |
|
354 |
<tr>
|
|
|
355 |
<td>
|
356 |
-
Delivery Engine
|
357 |
-
</td>
|
358 |
-
<td>
|
359 |
-
<?php echo NewsletterModule::format_scheduler_time('newsletter'); ?>
|
360 |
-
<?php $controls->button('trigger', 'Trigger now'); ?>
|
361 |
-
<p class="description">
|
362 |
-
If inactive or always in "running now" status your blog has a problem: <a href="http://www.thenewsletterplugin.com/how-to-make-the-wordpress-cron-work" target="_blank">read more here</a>.
|
363 |
-
</p>
|
364 |
-
</td>
|
365 |
-
</tr>
|
366 |
-
<tr>
|
367 |
-
<td>Collected samples</td>
|
368 |
-
<td>
|
369 |
-
<?php echo count($calls); ?>
|
370 |
-
<p class="description">Samples are collected in a maximum number of <?php echo Newsletter::MAX_CRON_SAMPLES; ?></p>
|
371 |
-
</td>
|
372 |
-
</tr>
|
373 |
-
<tr>
|
374 |
-
<td>Scheduler execution interval mean</td>
|
375 |
-
<td>
|
376 |
-
<?php
|
377 |
-
if (count($calls) > 10) {
|
378 |
-
echo (int) $mean . ' seconds';
|
379 |
-
if ($mean < NEWSLETTER_CRON_INTERVAL * 1.2) {
|
380 |
-
echo ' (<span style="color: green; font-weight: bold">OK</span>)';
|
381 |
-
} else {
|
382 |
-
echo ' (<span style="color: red; font-weight: bold">KO</span>)';
|
383 |
-
}
|
384 |
-
} else {
|
385 |
-
echo 'Still not enough data. It requires few hours to collect a relevant data set.';
|
386 |
-
}
|
387 |
-
?>
|
388 |
-
|
389 |
-
<p class="description">
|
390 |
-
Should be less than <?php echo NEWSLETTER_CRON_INTERVAL; ?> seconds.
|
391 |
-
<a href="http://www.thenewsletterplugin.com/plugins/newsletter/newsletter-delivery-engine" target="_blank">Read more</a>.
|
392 |
-
</p>
|
393 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
394 |
</td>
|
395 |
</tr>
|
|
|
396 |
|
397 |
</tbody>
|
398 |
</table>
|
399 |
-
</div>
|
400 |
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
<table class="widefat">
|
405 |
<thead>
|
406 |
<tr>
|
407 |
-
<th>
|
408 |
-
<th>
|
409 |
</tr>
|
410 |
</thead>
|
|
|
411 |
<tbody>
|
412 |
<tr>
|
413 |
-
<td>PHP Version</td>
|
414 |
-
<td>
|
415 |
-
<?php echo phpversion(); ?>
|
416 |
-
</td>
|
417 |
-
</tr>
|
418 |
-
<tr>
|
419 |
-
<td>Database Wait Timeout</td>
|
420 |
<td>
|
421 |
-
|
422 |
-
<?php echo $wait_timeout; ?> (seconds)
|
423 |
-
</td>
|
424 |
-
</tr>
|
425 |
-
<tr>
|
426 |
-
<td>PHP Execution Time</td>
|
427 |
-
<td>
|
428 |
-
<?php echo ini_get('max_execution_time'); ?> (seconds)
|
429 |
</td>
|
430 |
-
</tr>
|
431 |
-
<tr>
|
432 |
-
<td>NEWSLETTER_MAX_EXECUTION_TIME</td>
|
433 |
<td>
|
434 |
<?php
|
435 |
-
|
436 |
-
|
437 |
-
|
|
|
438 |
echo 'Not set';
|
439 |
-
}
|
440 |
-
?>
|
441 |
-
</td>
|
442 |
-
</tr>
|
443 |
-
<tr>
|
444 |
-
<td>NEWSLETTER_CRON_INTERVAL</td>
|
445 |
-
<td>
|
446 |
-
<?php echo NEWSLETTER_CRON_INTERVAL . ' (seconds)'; ?>
|
447 |
-
</td>
|
448 |
-
</tr>
|
449 |
-
<tr>
|
450 |
-
<td>PHP Memory Limit</td>
|
451 |
-
<td>
|
452 |
-
<?php echo @ini_get('memory_limit'); ?>
|
453 |
-
</td>
|
454 |
-
</tr>
|
455 |
-
<tr>
|
456 |
-
<td>WordPress plugin url</td>
|
457 |
-
<td>
|
458 |
-
<?php echo WP_PLUGIN_URL; ?>
|
459 |
-
<br>
|
460 |
-
Filters:
|
461 |
-
|
462 |
-
<?php
|
463 |
-
$filters = $wp_filter['plugins_url'];
|
464 |
-
if (!is_array($filters))
|
465 |
-
echo 'no filters attached to "plugin_urls"';
|
466 |
-
else {
|
467 |
-
echo '<ul>';
|
468 |
-
foreach ($filters as &$filter) {
|
469 |
-
foreach ($filter as &$entry) {
|
470 |
-
echo '<li>';
|
471 |
-
if (is_array($entry['function']))
|
472 |
-
echo get_class($entry['function'][0]) . '->' . $entry['function'][1];
|
473 |
-
else
|
474 |
-
echo $entry['function'];
|
475 |
-
echo '</li>';
|
476 |
-
}
|
477 |
-
}
|
478 |
-
echo '</ul>';
|
479 |
-
}
|
480 |
-
?>
|
481 |
-
<p class="description">
|
482 |
-
This value should contains the full URL to your plugin folder. If there are filters
|
483 |
-
attached, the value can be different from the original generated by WordPress and sometime worng.
|
484 |
-
</p>
|
485 |
-
</td>
|
486 |
-
</tr>
|
487 |
-
<tr>
|
488 |
-
<td>Blog Charset</td>
|
489 |
-
<td>
|
490 |
-
<?php echo get_option('blog_charset'); ?>
|
491 |
-
</td>
|
492 |
-
</tr>
|
493 |
-
<tr>
|
494 |
-
<td>WordPress Memory limit</td>
|
495 |
-
<td>
|
496 |
-
<?php echo WP_MEMORY_LIMIT; ?>
|
497 |
-
</td>
|
498 |
-
</tr>
|
499 |
-
<tr>
|
500 |
-
<td>WP_DEBUG</td>
|
501 |
-
<td>
|
502 |
-
<?php echo WP_DEBUG ? 'true' : 'false'; ?>
|
503 |
-
</td>
|
504 |
-
</tr>
|
505 |
-
<tr>
|
506 |
-
<td>Absolute path</td>
|
507 |
-
<td>
|
508 |
-
<?php echo ABSPATH; ?>
|
509 |
-
</td>
|
510 |
-
</tr>
|
511 |
-
<tr>
|
512 |
-
<td>Tables Prefix</td>
|
513 |
-
<td>
|
514 |
-
<?php echo $wpdb->prefix; ?>
|
515 |
-
</td>
|
516 |
-
</tr>
|
517 |
-
<tr>
|
518 |
-
<td>Database Charset and Collate</td>
|
519 |
-
<td>
|
520 |
-
<?php echo DB_CHARSET; ?> <?php echo DB_COLLATE; ?>
|
521 |
-
</td>
|
522 |
-
</tr>
|
523 |
-
<tr>
|
524 |
-
<td>Action file accessibility (obsolete)</td>
|
525 |
-
<td>
|
526 |
-
<?php
|
527 |
-
$res = wp_remote_get(plugins_url('newsletter') . '/do/subscribe.php?test=1');
|
528 |
-
if (is_wp_error($res)) {
|
529 |
-
echo 'It seems the Newsletter action files are not reachable. See the note and the file permission check below.';
|
530 |
-
} else {
|
531 |
-
echo 'OK';
|
532 |
-
}
|
533 |
-
?>
|
534 |
-
<p class="description">
|
535 |
-
If this internal test fails, subscription, confirmation and so on could fail. Try to open
|
536 |
-
<a href="<?php echo plugins_url('newsletter') . '/do/subscribe.php?test=1' ?>" target="_blank">this link</a>: if
|
537 |
-
it reports "ok", consider this test as passed.
|
538 |
-
</p>
|
539 |
-
</td>
|
540 |
-
</tr>
|
541 |
-
<tr>
|
542 |
-
<td>File permissions (obsolete)</td>
|
543 |
-
<td>
|
544 |
-
<?php
|
545 |
-
$index_owner = fileowner(ABSPATH . '/index.php');
|
546 |
-
$index_permissions = fileperms(ABSPATH . '/index.php');
|
547 |
-
$subscribe_permissions = fileperms(NEWSLETTER_DIR . '/do/subscribe.php');
|
548 |
-
$subscribe_owner = fileowner(NEWSLETTER_DIR . '/do/subscribe.php');
|
549 |
-
if ($index_permissions != $subscribe_permissions || $index_owner != $subscribe_owner) {
|
550 |
-
echo 'Plugin file permissions or owner differ from blog index.php permissions, that may compromise the subscription process';
|
551 |
-
} else {
|
552 |
-
echo 'OK';
|
553 |
-
}
|
554 |
?>
|
|
|
555 |
</td>
|
556 |
</tr>
|
557 |
</tbody>
|
558 |
</table>
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
<div id="tabs-upgrade">
|
563 |
<p>
|
564 |
Plugin and modules are able to upgrade them self when needed. If you urgently need to try to force an upgrade, press the
|
@@ -588,21 +397,10 @@ if (count($calls) > 1) {
|
|
588 |
</p>
|
589 |
</div>
|
590 |
|
591 |
-
<?php if (isset($_GET['debug'])) { ?>
|
592 |
-
<div id="tabs-debug">
|
593 |
-
<h3>Extension versions data</h3>
|
594 |
-
<pre style="font-size: 11px"><?php echo esc_html(print_r(get_option('newsletter_extension_versions'), true)); ?></pre>
|
595 |
-
|
596 |
-
<h3>Update plugins data</h3>
|
597 |
-
<pre style="font-size: 11px"><?php echo esc_html(print_r(get_site_transient('update_plugins'), true)); ?></pre>
|
598 |
-
</div>
|
599 |
-
<?php } ?>
|
600 |
-
</div>
|
601 |
-
|
602 |
</form>
|
603 |
|
604 |
</div>
|
605 |
|
606 |
<?php include NEWSLETTER_DIR . '/tnp-footer.php'; ?>
|
607 |
|
608 |
-
</div>
|
1 |
<?php
|
2 |
+
if (!defined('ABSPATH'))
|
3 |
+
exit;
|
4 |
+
|
5 |
@include_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
6 |
$module = Newsletter::instance();
|
7 |
$controls = new NewsletterControls();
|
42 |
$controls->messages = 'Delivery engine reactivated.';
|
43 |
}
|
44 |
|
45 |
+
if ($controls->is_action('reset_stats')) {
|
46 |
+
update_option('newsletter_diagnostic_cron_calls', array(), false);
|
47 |
+
$controls->messages = 'Scheduler statistics reset.';
|
48 |
+
}
|
49 |
+
|
50 |
if ($controls->is_action('upgrade')) {
|
51 |
// TODO: Compact them in a call to Newsletter which should be able to manage the installed modules
|
52 |
Newsletter::instance()->upgrade();
|
173 |
$max = $diff;
|
174 |
}
|
175 |
}
|
176 |
+
$mean = $mean / (count($calls) - 1);
|
177 |
+
}
|
178 |
+
|
179 |
+
// Send calls stats
|
180 |
+
$send_calls = get_option('newsletter_diagnostic_send_calls', array());
|
181 |
+
if (count($send_calls)) {
|
182 |
+
$send_max = 0;
|
183 |
+
$send_min = PHP_INT_MAX;
|
184 |
+
$send_total_time = 0;
|
185 |
+
$send_total_emails = 0;
|
186 |
+
$send_completed = 0;
|
187 |
+
for ($i = 0; $i < count($send_calls); $i++) {
|
188 |
+
if (empty($send_calls[$i][2])) continue;
|
189 |
+
|
190 |
+
$delta = $send_calls[$i][1] - $send_calls[$i][0];
|
191 |
+
$send_total_time += $delta;
|
192 |
+
$send_total_emails += $send_calls[$i][2];
|
193 |
+
$send_mean = $delta / $send_calls[$i][2];
|
194 |
+
if ($send_min > $send_mean) {
|
195 |
+
$send_min = $send_mean;
|
196 |
+
}
|
197 |
+
if ($send_max < $send_mean) {
|
198 |
+
$send_max = $send_mean;
|
199 |
+
}
|
200 |
+
if (isset($send_calls[$i][3]))
|
201 |
+
$send_completed++;
|
202 |
+
}
|
203 |
+
$send_mean = $send_total_time / $send_total_emails;
|
204 |
}
|
205 |
?>
|
206 |
|
229 |
<div id="tabs">
|
230 |
|
231 |
<ul>
|
232 |
+
<li><a href="#tabs-tests"><?php _e('Tests', 'newsletter') ?></a></li>
|
233 |
+
<li><a href="#tabs-2"><?php _e('Scheduler', 'newsletter') ?></a></li>
|
234 |
+
<li><a href="#tabs-logging"><?php _e('Logging', 'newsletter') ?></a></li>
|
235 |
+
<li><a href="#tabs-upgrade"><?php _e('Maintenance', 'newsletter') ?></a></li>
|
|
|
|
|
|
|
|
|
236 |
</ul>
|
237 |
|
238 |
<!-- TESTS -->
|
265 |
<code>wp-content/logs/newsletter</code>.
|
266 |
</p>
|
267 |
|
268 |
+
<table class="form-table">
|
|
|
|
|
|
|
|
|
|
|
|
|
269 |
|
270 |
<tbody>
|
271 |
<tr>
|
281 |
Log folder
|
282 |
</td>
|
283 |
<td>
|
284 |
+
<code><?php echo NEWSLETTER_LOG_DIR ?></code>
|
285 |
+
<br>
|
286 |
<?php
|
287 |
if (!is_dir(NEWSLETTER_LOG_DIR)) {
|
288 |
echo '<span class="newsletter-error-span">The log folder does not exists, no logging possible!</span>';
|
292 |
?>
|
293 |
</td>
|
294 |
</tr>
|
295 |
+
|
296 |
+
|
297 |
</tbody>
|
298 |
</table>
|
299 |
|
302 |
|
303 |
<!-- SEMAPHORES -->
|
304 |
<div id="tabs-2">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
305 |
|
306 |
+
<h3>Scheduler</h3>
|
307 |
+
<table class="widefat" style="width: auto; margin: 0">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
308 |
<thead>
|
309 |
<tr>
|
310 |
<th>Function</th>
|
313 |
</thead>
|
314 |
|
315 |
<tbody>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
316 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
317 |
|
|
|
|
|
|
|
|
|
|
|
318 |
|
319 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
320 |
|
321 |
<tr>
|
322 |
+
<td>Sending statistics</td>
|
323 |
<td>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
324 |
|
325 |
+
<?php if (!$send_calls) { ?>
|
326 |
+
<em>Still not enough data.</em>
|
327 |
+
<?php } else { ?>
|
328 |
+
Average time to send an email: <?php echo sprintf("%.2f", $send_mean) ?> seconds<br>
|
329 |
+
Max mean time measured: <?php echo $send_max ?> seconds<br>
|
330 |
+
Min mean time measured: <?php echo $send_min ?> seconds<br>
|
331 |
+
Total emails: <?php echo $send_total_emails ?><br>
|
332 |
+
Batches prematurely interrupted: <?php echo sprintf("%.2f", (count($send_calls) - $send_completed) * 100.0 / count($send_calls)) ?>%<br>
|
333 |
+
Collected batch samples: <?php echo count($send_calls); ?><br>
|
334 |
+
<?php } ?>
|
335 |
</td>
|
336 |
</tr>
|
337 |
+
|
338 |
|
339 |
</tbody>
|
340 |
</table>
|
|
|
341 |
|
342 |
+
<h3>Semaphores</h3>
|
343 |
+
<table class="widefat" style="width: auto; margin: 0">
|
|
|
|
|
344 |
<thead>
|
345 |
<tr>
|
346 |
+
<th>Name</th>
|
347 |
+
<th>Active since</th>
|
348 |
</tr>
|
349 |
</thead>
|
350 |
+
|
351 |
<tbody>
|
352 |
<tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
353 |
<td>
|
354 |
+
Newsletter delivery
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
355 |
</td>
|
|
|
|
|
|
|
356 |
<td>
|
357 |
<?php
|
358 |
+
$value = get_transient('newsletter_main_engine');
|
359 |
+
if ($value)
|
360 |
+
echo (time() - $value) . ' seconds';
|
361 |
+
else
|
362 |
echo 'Not set';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
363 |
?>
|
364 |
+
<?php $controls->button('delete_transient', 'Delete', null, 'newsletter_main_engine'); ?>
|
365 |
</td>
|
366 |
</tr>
|
367 |
</tbody>
|
368 |
</table>
|
369 |
+
|
370 |
+
</div>
|
|
|
371 |
<div id="tabs-upgrade">
|
372 |
<p>
|
373 |
Plugin and modules are able to upgrade them self when needed. If you urgently need to try to force an upgrade, press the
|
397 |
</p>
|
398 |
</div>
|
399 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
400 |
</form>
|
401 |
|
402 |
</div>
|
403 |
|
404 |
<?php include NEWSLETTER_DIR . '/tnp-footer.php'; ?>
|
405 |
|
406 |
+
</div>
|
main/extensions.php
CHANGED
@@ -2,16 +2,66 @@
|
|
2 |
@include_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
3 |
$controls = new NewsletterControls();
|
4 |
$module = Newsletter::instance();
|
|
|
5 |
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
|
|
|
|
|
|
|
|
|
|
11 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
}
|
13 |
-
?>
|
14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
|
16 |
<div class="wrap" id="tnp-wrap">
|
17 |
|
@@ -19,19 +69,109 @@ if (!$controls->is_action()) {
|
|
19 |
|
20 |
<div id="tnp-heading">
|
21 |
|
22 |
-
<h2><?php _e('
|
23 |
|
24 |
</div>
|
25 |
|
26 |
<div id="tnp-body">
|
27 |
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
|
36 |
</div>
|
37 |
|
2 |
@include_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
3 |
$controls = new NewsletterControls();
|
4 |
$module = Newsletter::instance();
|
5 |
+
$extensions = $module->getTnpExtensions();
|
6 |
|
7 |
+
$controls->data = get_option('newsletter_main');
|
8 |
+
|
9 |
+
if ($controls->is_action('install')) {
|
10 |
+
|
11 |
+
$extension = null;
|
12 |
+
foreach ($extensions as $e) {
|
13 |
+
if ($e->id == $_GET['id']) {
|
14 |
+
$extension = $e;
|
15 |
+
break;
|
16 |
+
}
|
17 |
}
|
18 |
+
|
19 |
+
$id = $extension->id;
|
20 |
+
$slug = $extension->slug;
|
21 |
+
|
22 |
+
$source = 'http://www.thenewsletterplugin.com/wp-content/plugins/file-commerce-pro/get.php?f=' . $id .
|
23 |
+
'&k=' . urlencode(Newsletter::instance()->options['contract_key']);
|
24 |
+
|
25 |
+
if (!class_exists('Plugin_Upgrader', false)) {
|
26 |
+
require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
|
27 |
+
}
|
28 |
+
|
29 |
+
$upgrader = new Plugin_Upgrader(new Automatic_Upgrader_Skin());
|
30 |
+
|
31 |
+
$result = $upgrader->install($source);
|
32 |
+
if (!$result || is_wp_error($result)) {
|
33 |
+
$controls->errors = __('Error while installing','newsletter');
|
34 |
+
if (is_wp_error($result)) {
|
35 |
+
$controls->errors .= ': ' . $result->get_error_message();
|
36 |
+
}
|
37 |
+
} else {
|
38 |
+
$result = activate_plugin($extension->wp_slug);
|
39 |
+
if (is_wp_error($result)) {
|
40 |
+
$controls->errors .= __('Error while activating:','newsletter') . " " . $result->get_error_message();
|
41 |
+
} else {
|
42 |
+
$controls->messages .= __('Installed and activated','newsletter');
|
43 |
+
}
|
44 |
+
}
|
45 |
+
wp_clean_plugins_cache(false);
|
46 |
}
|
|
|
47 |
|
48 |
+
if ($controls->is_action('activate')) {
|
49 |
+
$extension = null;
|
50 |
+
foreach ($extensions as $e) {
|
51 |
+
if ($e->id == $_GET['id']) {
|
52 |
+
$extension = $e;
|
53 |
+
break;
|
54 |
+
}
|
55 |
+
}
|
56 |
+
$result = activate_plugin($extension->wp_slug);
|
57 |
+
if (is_wp_error($result)) {
|
58 |
+
$controls->errors .= __('Error while activating:', 'newsletter') . " " . $result->get_error_message();
|
59 |
+
} else {
|
60 |
+
$controls->messages .= __('Activated', 'newsletter');
|
61 |
+
}
|
62 |
+
wp_clean_plugins_cache(false);
|
63 |
+
}
|
64 |
+
?>
|
65 |
|
66 |
<div class="wrap" id="tnp-wrap">
|
67 |
|
69 |
|
70 |
<div id="tnp-heading">
|
71 |
|
72 |
+
<h2><?php _e('Extensions', 'newsletter') ?></h2>
|
73 |
|
74 |
</div>
|
75 |
|
76 |
<div id="tnp-body">
|
77 |
|
78 |
+
<?php if (is_array($extensions)) { ?>
|
79 |
+
|
80 |
+
<?php foreach ($extensions AS $e) { ?>
|
81 |
+
|
82 |
+
<?php
|
83 |
+
$e->activate_url = wp_nonce_url(admin_url('admin.php') . '?page=newsletter_main_extensions&act=activate&id=' . $e->id, 'save');
|
84 |
+
$e->install_url = wp_nonce_url(admin_url('admin.php') . '?page=newsletter_main_extensions&act=install&id=' . $e->id, 'save');
|
85 |
+
?>
|
86 |
+
|
87 |
+
<!--PREMIUM EXTENSIONS-->
|
88 |
+
<?php if ($e->type == "premium") { ?>
|
89 |
+
<div class="tnp-extension-premium-box <?php echo $e->slug ?>">
|
90 |
+
<div class="tnp-extensions-image"><img src="<?php echo $e->image ?>" alt="" /></div>
|
91 |
+
<h3><?php echo $e->title ?></h3>
|
92 |
+
<p><?php echo $e->description ?></p>
|
93 |
+
<div class="tnp-extension-premium-action">
|
94 |
+
<?php if (is_plugin_active($e->wp_slug)) { ?>
|
95 |
+
<span><i class="fa fa-check" aria-hidden="true"></i> <?php _e('Plugin active', 'newsletter') ?></span>
|
96 |
+
<?php } elseif (file_exists(WP_PLUGIN_DIR . "/" . $e->wp_slug)) { ?>
|
97 |
+
<a href="<?php echo $e->activate_url ?>" class="tnp-extension-activate">
|
98 |
+
<i class="fa fa-power-off" aria-hidden="true"></i> <?php _e('Activate', 'newsletter') ?>
|
99 |
+
</a>
|
100 |
+
<?php } elseif ($e->downloadable) { ?>
|
101 |
+
<a href="<?php echo $e->install_url ?>" class="tnp-extension-install">
|
102 |
+
<i class="fa fa-download" aria-hidden="true"></i> Install Now
|
103 |
+
</a>
|
104 |
+
<?php } else { ?>
|
105 |
+
<a href="http://www.thenewsletterplugin.com/premium?utm_source=plugin&utm_medium=link&utm_campaign=extpanel" class="tnp-extension-buy" target="_blank">
|
106 |
+
<i class="fa fa-shopping-cart" aria-hidden="true"></i> Buy Now
|
107 |
+
</a>
|
108 |
+
<?php } ?>
|
109 |
+
</div>
|
110 |
+
</div>
|
111 |
+
<?php } ?>
|
112 |
+
|
113 |
+
<!--FREE EXTENSIONS-->
|
114 |
+
<?php if ($e->type == "free") { ?>
|
115 |
+
<div class="tnp-extension-free-box <?php echo $e->slug ?>">
|
116 |
+
<div class="tnp-extensions-image"><img src="<?php echo $e->image ?>" alt="" /></div>
|
117 |
+
<h3><?php echo $e->title ?></h3>
|
118 |
+
<p><?php echo $e->description ?></p>
|
119 |
+
<div class="tnp-extension-free-action">
|
120 |
+
<?php if (is_plugin_active($e->wp_slug)) { ?>
|
121 |
+
<span><i class="fa fa-check" aria-hidden="true"></i> <?php _e('Plugin active', 'newsletter') ?></span>
|
122 |
+
<?php } elseif (file_exists(WP_PLUGIN_DIR . "/" . $e->wp_slug)) { ?>
|
123 |
+
<a href="<?php echo $e->activate_url ?>" class="tnp-extension-activate">
|
124 |
+
<i class="fa fa-power-off" aria-hidden="true"></i> <?php _e('Activate', 'newsletter') ?>
|
125 |
+
</a>
|
126 |
+
<?php } elseif ($e->downloadable) { ?>
|
127 |
+
<a href="<?php echo $e->install_url ?>" class="tnp-extension-install">
|
128 |
+
<i class="fa fa-download" aria-hidden="true"></i> Install Now
|
129 |
+
</a>
|
130 |
+
<?php } else { ?>
|
131 |
+
<a href="http://www.thenewsletterplugin.com/account?utm_source=plugin&utm_medium=link&utm_campaign=extpanel" class="tnp-extension-free" target="_blank">
|
132 |
+
<i class="fa fa-gift" aria-hidden="true"></i> Free Download
|
133 |
+
</a>
|
134 |
+
<?php } ?>
|
135 |
+
</div>
|
136 |
+
</div>
|
137 |
+
<?php } ?>
|
138 |
+
|
139 |
+
<!--INTEGRATIONS-->
|
140 |
+
<?php if ($e->type == "integration") { ?>
|
141 |
+
<div class="tnp-integration-box <?php echo $e->slug ?>">
|
142 |
+
<div class="tnp-extensions-image"><img src="<?php echo $e->image ?>" alt="" /></div>
|
143 |
+
<h3><?php echo $e->title ?></h3>
|
144 |
+
<p><?php echo $e->description ?></p>
|
145 |
+
<div class="tnp-integration-action">
|
146 |
+
<?php if (is_plugin_active($e->wp_slug)) { ?>
|
147 |
+
<span><i class="fa fa-check" aria-hidden="true"></i> <?php _e('Plugin active', 'newsletter') ?></span>
|
148 |
+
<?php } elseif (file_exists(WP_PLUGIN_DIR . "/" . $e->wp_slug)) { ?>
|
149 |
+
<a href="<?php echo $e->activate_url ?>" class="tnp-extension-activate">
|
150 |
+
<i class="fa fa-power-off" aria-hidden="true"></i> <?php _e('Activate', 'newsletter') ?>
|
151 |
+
</a>
|
152 |
+
<?php } elseif ($e->downloadable) { ?>
|
153 |
+
<a href="<?php echo $e->install_url ?>" class="tnp-extension-install">
|
154 |
+
<i class="fa fa-download" aria-hidden="true"></i> Install Now
|
155 |
+
</a>
|
156 |
+
<?php } else { ?>
|
157 |
+
<a href="http://www.thenewsletterplugin.com/premium?utm_source=plugin&utm_medium=link&utm_campaign=extpanel" class="tnp-extension-buy" target="_blank">
|
158 |
+
<i class="fa fa-shopping-cart" aria-hidden="true"></i> Buy Now
|
159 |
+
</a>
|
160 |
+
<?php } ?>
|
161 |
+
</div>
|
162 |
+
</div>
|
163 |
+
<?php } ?>
|
164 |
+
|
165 |
+
<?php } ?>
|
166 |
+
|
167 |
+
<?php } else { ?>
|
168 |
+
|
169 |
+
<p style="color: white;">No extensions available.</p>
|
170 |
+
|
171 |
+
<?php } ?>
|
172 |
+
|
173 |
+
|
174 |
+
<p class="clear"></p>
|
175 |
|
176 |
</div>
|
177 |
|
main/index.php
CHANGED
@@ -1,4 +1,6 @@
|
|
1 |
<?php
|
|
|
|
|
2 |
@include_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
3 |
|
4 |
$controls = new NewsletterControls();
|
@@ -349,7 +351,7 @@ $labels = array_reverse($labels);
|
|
349 |
?></td>
|
350 |
<td style="white-space:nowrap">
|
351 |
<a class="button" title="<?php _e('Edit', 'newsletter') ?>" href="<?php echo $users_module->get_admin_page_url('edit'); ?>&id=<?php echo $s->id; ?>"><i class="fa fa-pencil"></i></a>
|
352 |
-
<a title="<?php _e('Profile', 'newsletter') ?>" href="<?php echo
|
353 |
</td>
|
354 |
</tr>
|
355 |
<?php } ?>
|
1 |
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
|
4 |
@include_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
5 |
|
6 |
$controls = new NewsletterControls();
|
351 |
?></td>
|
352 |
<td style="white-space:nowrap">
|
353 |
<a class="button" title="<?php _e('Edit', 'newsletter') ?>" href="<?php echo $users_module->get_admin_page_url('edit'); ?>&id=<?php echo $s->id; ?>"><i class="fa fa-pencil"></i></a>
|
354 |
+
<a title="<?php _e('Profile', 'newsletter') ?>" href="<?php echo home_url('/') ?>?na=p&nk=<?php echo $s->id . '-' . $s->token; ?>" class="button" target="_blank"><i class="fa fa-user"></i></a>
|
355 |
</td>
|
356 |
</tr>
|
357 |
<?php } ?>
|
main/info.php
CHANGED
@@ -1,191 +1,202 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
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 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
<
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
<
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
<
|
122 |
-
|
123 |
-
<
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
</
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
|
4 |
+
@include_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
5 |
+
$module = Newsletter::instance();
|
6 |
+
$controls = new NewsletterControls();
|
7 |
+
|
8 |
+
if (!$controls->is_action()) {
|
9 |
+
$controls->data = get_option('newsletter_main');
|
10 |
+
} else {
|
11 |
+
|
12 |
+
if ($controls->is_action('save')) {
|
13 |
+
$module->merge_options($controls->data);
|
14 |
+
$controls->messages .= 'Saved.';
|
15 |
+
}
|
16 |
+
}
|
17 |
+
?>
|
18 |
+
|
19 |
+
<div class="wrap" id="tnp-wrap">
|
20 |
+
|
21 |
+
<?php include NEWSLETTER_DIR . '/tnp-header.php'; ?>
|
22 |
+
|
23 |
+
<div id="tnp-heading">
|
24 |
+
|
25 |
+
<h2><?php _e('Company Info', 'newsletter') ?></h2>
|
26 |
+
<p>
|
27 |
+
These informations are used by Newsletter themes to automatically generate some sections of regular newsletters,
|
28 |
+
<a href="http://www.thenewsletterplugin.com/feed-by-mail-extension?utm_source=plugin&utm_medium=link&utm_campaign=newsletter-feed" target="_blank">
|
29 |
+
auto messages
|
30 |
+
</a> and
|
31 |
+
<a href="http://www.thenewsletterplugin.com/plugins/newsletter/follow-up-module?utm_source=plugin&utm_medium=link&utm_campaign=newsletter-followup" target="_blank">
|
32 |
+
follow-up mails
|
33 |
+
</a>.
|
34 |
+
Themes may not use all these fields and/or have specific alternate configurations. All fields are <strong>optional</strong>.
|
35 |
+
</p>
|
36 |
+
|
37 |
+
</div>
|
38 |
+
<div id="tnp-body">
|
39 |
+
|
40 |
+
<form method="post" action="">
|
41 |
+
<?php $controls->init(); ?>
|
42 |
+
|
43 |
+
<div id="tabs">
|
44 |
+
|
45 |
+
<ul>
|
46 |
+
<li><a href="#tabs-general"><?php _e('General', 'newsletter') ?></a></li>
|
47 |
+
<li><a href="#tabs-social"><?php _e('Social', 'newsletter') ?></a></li>
|
48 |
+
</ul>
|
49 |
+
|
50 |
+
<div id="tabs-general">
|
51 |
+
<h3>Header Settings</h3>
|
52 |
+
|
53 |
+
<table class="form-table">
|
54 |
+
<tr valign="top">
|
55 |
+
<th>
|
56 |
+
Logo
|
57 |
+
<div class="tnp-tip">
|
58 |
+
<span class="tip-button">Tip</span>
|
59 |
+
<span class="tip-content">
|
60 |
+
Keep the file lightweight and ideally smaller than 500px in width and 200px in height.
|
61 |
+
Remember that .png images provide best performances with text and shapes logos.
|
62 |
+
</span>
|
63 |
+
</div>
|
64 |
+
</th>
|
65 |
+
<td>
|
66 |
+
<?php $controls->media('header_logo', 'medium'); ?>
|
67 |
+
<p class="description">
|
68 |
+
Click to change. This should be your logo in .png or .jpg format.
|
69 |
+
</p>
|
70 |
+
</td>
|
71 |
+
</tr>
|
72 |
+
<tr>
|
73 |
+
<th>Title</th>
|
74 |
+
<td>
|
75 |
+
<?php $controls->text('header_title', 40); ?>
|
76 |
+
<p class="description">Appears only when no logo has been uploaded or when it's blocked by email clients.</p>
|
77 |
+
</td>
|
78 |
+
</tr>
|
79 |
+
<tr>
|
80 |
+
<th>Subtitle</th>
|
81 |
+
<td>
|
82 |
+
<?php $controls->text('header_sub', 40); ?>
|
83 |
+
<p class="description">Appears only if present.</p>
|
84 |
+
</td>
|
85 |
+
</tr>
|
86 |
+
</table>
|
87 |
+
|
88 |
+
<h3>Footer Settings</h3>
|
89 |
+
|
90 |
+
<table class="form-table">
|
91 |
+
<tr valign="top">
|
92 |
+
<th>Blog or company name</th>
|
93 |
+
<td>
|
94 |
+
<?php $controls->text('footer_title', 40); ?>
|
95 |
+
<p class="description">
|
96 |
+
User or corporation name to be displayed on the newsletter footer.
|
97 |
+
</p>
|
98 |
+
</td>
|
99 |
+
</tr>
|
100 |
+
<tr valign="top">
|
101 |
+
<th>Address</th>
|
102 |
+
<td>
|
103 |
+
<?php $controls->text('footer_contact', 40); ?>
|
104 |
+
<p class="description">
|
105 |
+
Your real address, if available. The CAN-SPAM Act requires it.
|
106 |
+
</p>
|
107 |
+
</td>
|
108 |
+
</tr>
|
109 |
+
<tr>
|
110 |
+
<th>Copyright, privacy or legal text</th>
|
111 |
+
<td>
|
112 |
+
<?php $controls->text('footer_legal', 40); ?>
|
113 |
+
<p class="description">
|
114 |
+
Any copyright, privacy or legal text you want on the newsletter footer.
|
115 |
+
</p>
|
116 |
+
</td>
|
117 |
+
</tr>
|
118 |
+
</table>
|
119 |
+
</div>
|
120 |
+
<div id="tabs-social">
|
121 |
+
<h3>Social Settings</h3>
|
122 |
+
|
123 |
+
<p>Social icons will be added automatically to your newsletter only for set URLs.</p>
|
124 |
+
|
125 |
+
<table class="form-table">
|
126 |
+
<tr valign="top">
|
127 |
+
<th>Facebook</th>
|
128 |
+
<td>
|
129 |
+
<?php $controls->text('facebook_url', 40); ?>
|
130 |
+
<p class="description">
|
131 |
+
Your Facebook url (e.g. https://www.facebook.com/thenewsletterplugin)
|
132 |
+
</p>
|
133 |
+
</td>
|
134 |
+
</tr>
|
135 |
+
<tr valign="top">
|
136 |
+
<th>Google+</th>
|
137 |
+
<td>
|
138 |
+
<?php $controls->text('googleplus_url', 40); ?>
|
139 |
+
<p class="description">
|
140 |
+
Your Google+ url (e.g. https://plus.google.com/...)
|
141 |
+
</p>
|
142 |
+
</td>
|
143 |
+
</tr>
|
144 |
+
<tr valign="top">
|
145 |
+
<th>Twitter</th>
|
146 |
+
<td>
|
147 |
+
<?php $controls->text('twitter_url', 40); ?>
|
148 |
+
<p class="description">
|
149 |
+
Your Twitter url (e.g. https://twitter.com/...)
|
150 |
+
</p>
|
151 |
+
</td>
|
152 |
+
</tr>
|
153 |
+
<tr valign="top">
|
154 |
+
<th>Linkedin</th>
|
155 |
+
<td>
|
156 |
+
<?php $controls->text('linkedin_url', 40); ?>
|
157 |
+
<p class="description">
|
158 |
+
Your Linkedin url (e.g. https://www.linkedin.com/in/...)
|
159 |
+
</p>
|
160 |
+
</td>
|
161 |
+
</tr>
|
162 |
+
<tr valign="top">
|
163 |
+
<th>YouTube</th>
|
164 |
+
<td>
|
165 |
+
<?php $controls->text('youtube_url', 40); ?>
|
166 |
+
<p class="description">
|
167 |
+
Your YouTube url (e.g. https://www.youtube.com/channel/...)
|
168 |
+
</p>
|
169 |
+
</td>
|
170 |
+
</tr>
|
171 |
+
<tr valign="top">
|
172 |
+
<th>Vimeo</th>
|
173 |
+
<td>
|
174 |
+
<?php $controls->text('vimeo_url', 40); ?>
|
175 |
+
<p class="description">
|
176 |
+
Your Vimeo url (e.g. http://vimeo.com/...)
|
177 |
+
</p>
|
178 |
+
</td>
|
179 |
+
</tr>
|
180 |
+
<tr valign="top">
|
181 |
+
<th>Instagram</th>
|
182 |
+
<td>
|
183 |
+
<?php $controls->text('instagram_url', 40); ?>
|
184 |
+
<p class="description">
|
185 |
+
Your Vimeo url (e.g. http://instagram.com/...)
|
186 |
+
</p>
|
187 |
+
</td>
|
188 |
+
</tr>
|
189 |
+
</table>
|
190 |
+
</div>
|
191 |
+
</div>
|
192 |
+
|
193 |
+
<p>
|
194 |
+
<?php $controls->button('save', 'Save'); ?>
|
195 |
+
</p>
|
196 |
+
|
197 |
+
</form>
|
198 |
+
</div>
|
199 |
+
|
200 |
+
<?php include NEWSLETTER_DIR . '/tnp-footer.php'; ?>
|
201 |
+
|
202 |
+
</div>
|
main/main.php
CHANGED
@@ -1,4 +1,7 @@
|
|
1 |
<?php
|
|
|
|
|
|
|
2 |
@include_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
3 |
$controls = new NewsletterControls();
|
4 |
$module = Newsletter::instance();
|
@@ -45,11 +48,18 @@ if (!$controls->is_action()) {
|
|
45 |
if (!$newsletter->is_email($controls->data['reply_to'], true)) {
|
46 |
$controls->errors .= __('Reply to email is not correct.', 'newsletter') . '<br>';
|
47 |
}
|
|
|
|
|
|
|
48 |
if (empty($controls->errors)) {
|
49 |
$module->merge_options($controls->data);
|
50 |
$controls->messages .= __('Saved.', 'newsletter');
|
51 |
}
|
|
|
|
|
|
|
52 |
$module->hook_newsletter_extension_versions(true);
|
|
|
53 |
}
|
54 |
}
|
55 |
|
@@ -57,21 +67,35 @@ if (!empty($controls->data['contract_key'])) {
|
|
57 |
$response = wp_remote_get('http://www.thenewsletterplugin.com/wp-content/plugins/file-commerce-pro/check.php?k=' . $controls->data['contract_key']);
|
58 |
if (is_wp_error($response)) {
|
59 |
/* @var $response WP_Error */
|
60 |
-
$controls->errors .= 'It seems that your blog cannot contact the license validator
|
61 |
$controls->errors .= $response->get_error_code() . ' - ' . $response->get_error_message();
|
62 |
$controls->data['licence_expires'] = "";
|
63 |
} else if ($response['response']['code'] != 200) {
|
64 |
-
$controls->errors .= 'The license seems expired or not valid, please check your
|
65 |
$controls->data['licence_expires'] = "";
|
66 |
} elseif ($expires = json_decode(wp_remote_retrieve_body($response))) {
|
67 |
$controls->data['licence_expires'] = $expires->expire;
|
|
|
68 |
} else {
|
|
|
69 |
$controls->data['licence_expires'] = "";
|
70 |
}
|
71 |
$module->merge_options($controls->data);
|
72 |
}
|
73 |
|
74 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
?>
|
76 |
|
77 |
<div class="wrap" id="tnp-wrap">
|
@@ -220,6 +244,25 @@ if (!empty($controls->data['contract_key'])) {
|
|
220 |
</td>
|
221 |
</tr>
|
222 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
223 |
<tr valign="top">
|
224 |
<th>API key</th>
|
225 |
<td>
|
@@ -236,18 +279,16 @@ if (!empty($controls->data['contract_key'])) {
|
|
236 |
<td>
|
237 |
<?php $controls->textarea('css'); ?>
|
238 |
<p class="description">
|
239 |
-
|
240 |
-
"newsletter" and it's made with a table (guys, I know about your table less design
|
241 |
-
mission, don't blame me too much!)
|
242 |
</p>
|
243 |
</td>
|
244 |
</tr>
|
245 |
<tr valign="top">
|
246 |
-
<th>Send
|
247 |
<td>
|
248 |
<?php $controls->yesno('phpmailer'); ?>
|
249 |
<p class="description">
|
250 |
-
Instead of using WordPress
|
251 |
This enable the textual part of newsletters and the content encoding setting.
|
252 |
Keep at "No" if you're using
|
253 |
ans SMTP plugin like Postman.
|
@@ -276,14 +317,6 @@ if (!empty($controls->data['contract_key'])) {
|
|
276 |
</p>
|
277 |
</td>
|
278 |
</tr>
|
279 |
-
<!--
|
280 |
-
<tr valign="top">
|
281 |
-
<th>Totally remove this plugin</th>
|
282 |
-
<td>
|
283 |
-
<?php $controls->button_confirm('remove', 'Totally remove this plugin', 'Really sure to totally remove this plugin. All data will be lost!'); ?>
|
284 |
-
</td>
|
285 |
-
</tr>
|
286 |
-
-->
|
287 |
</table>
|
288 |
|
289 |
</div>
|
1 |
<?php
|
2 |
+
if (!defined('ABSPATH'))
|
3 |
+
exit;
|
4 |
+
|
5 |
@include_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
6 |
$controls = new NewsletterControls();
|
7 |
$module = Newsletter::instance();
|
48 |
if (!$newsletter->is_email($controls->data['reply_to'], true)) {
|
49 |
$controls->errors .= __('Reply to email is not correct.', 'newsletter') . '<br>';
|
50 |
}
|
51 |
+
|
52 |
+
$controls->data['contract_key'] = trim($controls->data['contract_key']);
|
53 |
+
|
54 |
if (empty($controls->errors)) {
|
55 |
$module->merge_options($controls->data);
|
56 |
$controls->messages .= __('Saved.', 'newsletter');
|
57 |
}
|
58 |
+
|
59 |
+
update_option('newsletter_log_level', $controls->data['log_level']);
|
60 |
+
|
61 |
$module->hook_newsletter_extension_versions(true);
|
62 |
+
delete_transient("tnp_extensions_json");
|
63 |
}
|
64 |
}
|
65 |
|
67 |
$response = wp_remote_get('http://www.thenewsletterplugin.com/wp-content/plugins/file-commerce-pro/check.php?k=' . $controls->data['contract_key']);
|
68 |
if (is_wp_error($response)) {
|
69 |
/* @var $response WP_Error */
|
70 |
+
$controls->errors .= 'It seems that your blog cannot contact the license validator. Ask your provider to unlock the HTTP/HTTPS connections to www.thenewsletterplugin.com<br>';
|
71 |
$controls->errors .= $response->get_error_code() . ' - ' . $response->get_error_message();
|
72 |
$controls->data['licence_expires'] = "";
|
73 |
} else if ($response['response']['code'] != 200) {
|
74 |
+
$controls->errors .= 'The license seems expired or not valid, please check your <a href="http://www.thenewsletterplugin.com/account">license code and status</a>, thank you.';
|
75 |
$controls->data['licence_expires'] = "";
|
76 |
} elseif ($expires = json_decode(wp_remote_retrieve_body($response))) {
|
77 |
$controls->data['licence_expires'] = $expires->expire;
|
78 |
+
$controls->messages = 'Your license is valid and expires on ' . date('Y-m-d', $expires->expire);
|
79 |
} else {
|
80 |
+
$controls->errors = 'Unable to detect the license expiration. Debug data to report to the support: <code>' . wp_remote_retrieve_body($response) . '</code>';
|
81 |
$controls->data['licence_expires'] = "";
|
82 |
}
|
83 |
$module->merge_options($controls->data);
|
84 |
}
|
85 |
|
86 |
+
|
87 |
+
$return_path = $module->options['return_path'];
|
88 |
+
if (!empty($return_path)) {
|
89 |
+
list($return_path_local, $return_path_domain) = explode('@', $return_path);
|
90 |
+
|
91 |
+
$sender = $module->options['sender_email'];
|
92 |
+
list($sender_local, $sender_domain) = explode('@', $sender);
|
93 |
+
|
94 |
+
|
95 |
+
if ($sender_domain != $return_path_domain) {
|
96 |
+
$controls->messages .= '<br><br>Your Return Path domain is different from your Sender domain. Providers may require them to be identical';
|
97 |
+
}
|
98 |
+
}
|
99 |
?>
|
100 |
|
101 |
<div class="wrap" id="tnp-wrap">
|
244 |
</td>
|
245 |
</tr>
|
246 |
|
247 |
+
<tr>
|
248 |
+
<th>
|
249 |
+
Log level
|
250 |
+
</th>
|
251 |
+
<td>
|
252 |
+
<?php $controls->log_level('log_level'); ?>
|
253 |
+
</td>
|
254 |
+
</tr>
|
255 |
+
|
256 |
+
<tr valign="top">
|
257 |
+
<th>Debug mode</th>
|
258 |
+
<td>
|
259 |
+
<?php $controls->yesno('debug', 40); ?>
|
260 |
+
<p class="description">
|
261 |
+
In debug mode Newsletter intercepts PHP errors. To be used only by the support team.
|
262 |
+
</p>
|
263 |
+
</td>
|
264 |
+
</tr>
|
265 |
+
|
266 |
<tr valign="top">
|
267 |
<th>API key</th>
|
268 |
<td>
|
279 |
<td>
|
280 |
<?php $controls->textarea('css'); ?>
|
281 |
<p class="description">
|
282 |
+
This option is obsolete and will be removed, use the custom style field in the subscription configuration panel.
|
|
|
|
|
283 |
</p>
|
284 |
</td>
|
285 |
</tr>
|
286 |
<tr valign="top">
|
287 |
+
<th>Send email directly</th>
|
288 |
<td>
|
289 |
<?php $controls->yesno('phpmailer'); ?>
|
290 |
<p class="description">
|
291 |
+
Instead of using WordPress email are sent directly by Newsletter.
|
292 |
This enable the textual part of newsletters and the content encoding setting.
|
293 |
Keep at "No" if you're using
|
294 |
ans SMTP plugin like Postman.
|
317 |
</p>
|
318 |
</td>
|
319 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
320 |
</table>
|
321 |
|
322 |
</div>
|
main/smtp.php
CHANGED
@@ -1,4 +1,6 @@
|
|
1 |
<?php
|
|
|
|
|
2 |
@include_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
3 |
$module = Newsletter::instance();
|
4 |
$controls = new NewsletterControls();
|
1 |
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
|
4 |
@include_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
5 |
$module = Newsletter::instance();
|
6 |
$controls = new NewsletterControls();
|
main/startup.php
CHANGED
@@ -1,161 +1,163 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
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 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
<
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
<a
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
<
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
<li><a href="http://www.thenewsletterplugin.com/
|
121 |
-
<li
|
122 |
-
<li>
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
<li><a href="http://www.thenewsletterplugin.com/plugins/newsletter
|
135 |
-
<li><a href="http://www.thenewsletterplugin.com/plugins/newsletter/newsletter-
|
136 |
-
<li><a href="http://www.thenewsletterplugin.com/plugins/newsletter/newsletter-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
<li><a href="http://www.thenewsletterplugin.com/plugins/newsletter/
|
142 |
-
|
143 |
-
<li><a href="http://www.thenewsletterplugin.com/plugins/newsletter/
|
144 |
-
|
145 |
-
|
146 |
-
<li><a href="http://www.thenewsletterplugin.com/plugins/newsletter/
|
147 |
-
|
148 |
-
|
149 |
-
<li><a href="http://www.thenewsletterplugin.com/
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
|
4 |
+
@include_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
5 |
+
|
6 |
+
$controls = new NewsletterControls();
|
7 |
+
|
8 |
+
if ($controls->is_action('feed_enable')) {
|
9 |
+
delete_option('newsletter_feed_demo_disable');
|
10 |
+
$controls->messages = 'Feed by Mail demo panels enabled. On next page reload it will show up.';
|
11 |
+
}
|
12 |
+
|
13 |
+
if ($controls->is_action('feed_disable')) {
|
14 |
+
update_option('newsletter_feed_demo_disable', 1);
|
15 |
+
$controls->messages = 'Feed by Mail demo panel disabled. On next page reload it will disappear.';
|
16 |
+
}
|
17 |
+
?>
|
18 |
+
|
19 |
+
<div class="wrap" id="tnp-wrap">
|
20 |
+
|
21 |
+
<?php $help_url = 'http://www.thenewsletterplugin.com/plugins/newsletter'; ?>
|
22 |
+
<?php include NEWSLETTER_DIR . '/tnp-header.php'; ?>
|
23 |
+
|
24 |
+
<div id="tnp-heading">
|
25 |
+
|
26 |
+
<h2><?php _e('Quick Startup', 'newsletter') ?></h2>
|
27 |
+
<p>
|
28 |
+
With my horrible English, everything can be found starting from <a href="http://www.thenewsletterplugin.com/plugins/newsletter" target="_blank">Newsletter Official page</a>
|
29 |
+
and every configuration panel has some included documentation just to avoid the most common mistakes.
|
30 |
+
</p>
|
31 |
+
|
32 |
+
</div>
|
33 |
+
|
34 |
+
<div id="tnp-body" class="tnp-body-lite">
|
35 |
+
|
36 |
+
<?php $controls->show(); ?>
|
37 |
+
<form method="post" action="">
|
38 |
+
<?php $controls->init(); ?>
|
39 |
+
|
40 |
+
<h3>Few minutes to get the most out of Newsletter</h3>
|
41 |
+
|
42 |
+
<ol>
|
43 |
+
<li>
|
44 |
+
<em>It (should) work!</em> Newsletter <strong>works out of the box</strong>, you should only
|
45 |
+
<a href="widgets.php"><strong>add the Newsletter Widget</strong></a> to the sidebar and subscriptions will start to get in.
|
46 |
+
</li>
|
47 |
+
|
48 |
+
<li>
|
49 |
+
<em>Subscription page.</em> If you feel more confortable with a <strong>subscription page</strong>, let Newsletter create one for you: on
|
50 |
+
the <a href="admin.php?page=newsletter_subscription_options">subscription configuration panel</a>. You can keep both the
|
51 |
+
widget and the page, of course.
|
52 |
+
</li>
|
53 |
+
|
54 |
+
<li>
|
55 |
+
<em>Translations.</em> The <strong>administrative panels</strong> are only in (my bad) English but any other public
|
56 |
+
message and label and button can be translated on <a href="admin.php?page=newsletter_subscription_options">subscription configuration panel</a>:
|
57 |
+
please <strong>explore it</strong>.
|
58 |
+
</li>
|
59 |
+
|
60 |
+
<li>
|
61 |
+
<em>More about subscription.</em> The subscription and unsubscription processes to a mailing
|
62 |
+
list <strong>must be clear</strong> to the blog owner. <a href="http://www.thenewsletterplugin.com/plugins/newsletter/subscription-module" target="_blank">You can find more on thenewsletterplugin.com</a>.
|
63 |
+
</li>
|
64 |
+
</ol>
|
65 |
+
|
66 |
+
<h3>Something is not working (it could happen)</h3>
|
67 |
+
|
68 |
+
<ol>
|
69 |
+
<li>
|
70 |
+
<em>No emails are sent.</em> This is mostly a problem of your provider. <strong>Make a test</strong> using the instructions you find on
|
71 |
+
the diagnostic panel.
|
72 |
+
</li>
|
73 |
+
<li>
|
74 |
+
<em>I get a 500/fatal error during subscription.</em> This is mostly a problem of file permissions. On the diagnostic
|
75 |
+
panel there is a check and on
|
76 |
+
<a target="_blank" href="http://www.thenewsletterplugin.com/plugins/newsletter/subscription-module#errors">thenewsletterplugin.com there are some solutions</a>.
|
77 |
+
</li>
|
78 |
+
</ol>
|
79 |
+
|
80 |
+
<h3>I want to create and send a newsletter</h3>
|
81 |
+
|
82 |
+
<ol>
|
83 |
+
<li>
|
84 |
+
<em>I want to create a newsletter.</em> Use the <a href="admin.php?page=newsletter_emails_index">newsletters panel</a>
|
85 |
+
<strong>choose a theme</strong>, preview, twick it if needed and create your message.
|
86 |
+
</li>
|
87 |
+
<li>
|
88 |
+
<em>I want to test my newsletter.</em> Save the newsletter and move to the
|
89 |
+
<a href="admin.php?page=newsletter_users_index">subscribers panel</a>.
|
90 |
+
Create some subscribers manually using your own email addresses and mark them as test subscribers. They will be
|
91 |
+
used for newsletter tests.
|
92 |
+
</li>
|
93 |
+
<li>
|
94 |
+
<em>I want to send my newsletter.</em> Simple, press the send button. The email is created and put on
|
95 |
+
<a href="http://www.thenewsletterplugin.com/plugins/newsletter/newsletter-delivery-engine" target="_blank">delivery engine queue</a>.
|
96 |
+
On newsletter list, it will be shown as "sending".
|
97 |
+
</li>
|
98 |
+
<li>
|
99 |
+
<em>The newsletter is going out too slowly.</em> The <a href="http://www.thenewsletterplugin.com/plugins/newsletter/newsletter-delivery-engine" target="_blank">delivery engine</a> sends
|
100 |
+
emails as quickly as configured, see the <a href="admin.php?page=newsletter_main_main">main
|
101 |
+
configuration panel</a>. Look at your provider documentation as well, since it surely has a hourly limit.
|
102 |
+
</li>
|
103 |
+
</ol>
|
104 |
+
|
105 |
+
<h3>Extensions</h3>
|
106 |
+
<p>
|
107 |
+
Newsletter plugin can be extended with advanced features installing one or more of the
|
108 |
+
available Professional Extensions you can find on <a href="http://www.thenewsletterplugin.com/downloads" target="_blank">www.thenewsletterplugin.com/downloads</a>.
|
109 |
+
</p>
|
110 |
+
<p>
|
111 |
+
Newsletter Extensions are regular plugins (from version 2.x) and can be managed from the plugin panel of your
|
112 |
+
once installed for the first time.
|
113 |
+
</p>
|
114 |
+
|
115 |
+
<h3>Support</h3>
|
116 |
+
<p>
|
117 |
+
There are few options to find or ask for support:
|
118 |
+
</p>
|
119 |
+
<ul>
|
120 |
+
<li><a href="http://www.thenewsletterplugin.com/plugins/newsletter" target="_blank">The official Newsletter page</a> contains information and links to documentation and FAQ</li>
|
121 |
+
<li><a href="http://www.thenewsletterplugin.com/forums/forum/newsletter-plugin" target="_blank">The official Newsletter forum</a> where to find solutions or create new requests</li>
|
122 |
+
<li><a href="http://www.thenewsletterplugin.com/tag/newsletter" target="_blank">Newsletter articles and comments</a> are a source of solutions</li>
|
123 |
+
<li>Only for <a href="http://www.thenewsletterplugin.com/membership" target="_blank">members</a> the <a href="http://www.thenewsletterplugin.com/support-form" target="_blank">support page</a>
|
124 |
+
<li>Write directly to us at info@thenewsletterplugin.com</li>
|
125 |
+
</ul>
|
126 |
+
|
127 |
+
<h3>Documentation</h3>
|
128 |
+
<p>
|
129 |
+
Below are the pages on www.thenewsletterplugin.com which document Newsletter. Since the site evolves, more pages can be available and
|
130 |
+
the full list is always up-to-date on main Newsletter page.
|
131 |
+
</p>
|
132 |
+
|
133 |
+
<ul>
|
134 |
+
<li><a href="http://www.thenewsletterplugin.com/plugins/newsletter" target="_blank">Official Newsletter page</a></li>
|
135 |
+
<li><a href="http://www.thenewsletterplugin.com/plugins/newsletter/newsletter-configuration" target="_blank">Main configuration</a></li>
|
136 |
+
<li><a href="http://www.thenewsletterplugin.com/plugins/newsletter/newsletter-diagnostic" target="_blank">Diagnostic</a></li>
|
137 |
+
<li><a href="http://www.thenewsletterplugin.com/plugins/newsletter/newsletter-faq" target="_blank">FAQ</a></li>
|
138 |
+
<li><a href="http://www.thenewsletterplugin.com/plugins/newsletter/newsletter-delivery-engine" target="_blank">Delivery Engine</a></li>
|
139 |
+
|
140 |
+
|
141 |
+
<li><a href="http://www.thenewsletterplugin.com/plugins/newsletter/subscription-module" target="_blank">Subscription Module</a></li>
|
142 |
+
<li><a href="http://www.thenewsletterplugin.com/plugins/newsletter/newsletter-forms" target="_blank">Subscription Forms</a></li>
|
143 |
+
<li><a href="http://www.thenewsletterplugin.com/plugins/newsletter/newsletter-preferences" target="_blank">Subscriber's preferences</a></li>
|
144 |
+
|
145 |
+
<li><a href="http://www.thenewsletterplugin.com/plugins/newsletter/newsletters-module" target="_blank">Newsletters Module</a></li>
|
146 |
+
<li><a href="http://www.thenewsletterplugin.com/plugins/newsletter/newsletter-themes" target="_blank">Themes</a></li>
|
147 |
+
|
148 |
+
<li><a href="http://www.thenewsletterplugin.com/plugins/newsletter/subscribers-module" target="_blank">Subscribers Module</a></li>
|
149 |
+
<li><a href="http://www.thenewsletterplugin.com/plugins/newsletter/statistics-module" target="_blank">Statistics Module</a></li>
|
150 |
+
|
151 |
+
<li><a href="http://www.thenewsletterplugin.com/feed-by-mail-extension?utm_source=plugin&utm_medium=link&utm_campaign=newsletter-feed" target="_blank">Feed by Mail Module</a></li>
|
152 |
+
<!--<li><a href="http://www.thenewsletterplugin.com/plugins/newsletter/follow-up-module" target="_blank">Follow Up Module</a></li>
|
153 |
+
-->
|
154 |
+
</ul>
|
155 |
+
|
156 |
+
|
157 |
+
</form>
|
158 |
+
|
159 |
+
</div>
|
160 |
+
|
161 |
+
<?php include NEWSLETTER_DIR . '/tnp-footer.php'; ?>
|
162 |
+
|
163 |
+
</div>
|
main/status.php
ADDED
@@ -0,0 +1,892 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('ABSPATH'))
|
3 |
+
exit;
|
4 |
+
|
5 |
+
@include_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
6 |
+
$module = Newsletter::instance();
|
7 |
+
$controls = new NewsletterControls();
|
8 |
+
/* @var $wpdb wpdb */
|
9 |
+
|
10 |
+
|
11 |
+
$wp_cron_calls = get_option('newsletter_diagnostic_cron_calls', array());
|
12 |
+
if (count($wp_cron_calls) > 20) {
|
13 |
+
$total = 0;
|
14 |
+
$wp_cron_calls_max = 0;
|
15 |
+
$wp_cron_calls_min = 0;
|
16 |
+
for ($i = 1; $i < count($wp_cron_calls); $i++) {
|
17 |
+
$diff = $wp_cron_calls[$i] - $wp_cron_calls[$i - 1];
|
18 |
+
$total += $diff;
|
19 |
+
if ($wp_cron_calls_min == 0 || $wp_cron_calls_min > $diff) {
|
20 |
+
$wp_cron_calls_min = $diff;
|
21 |
+
}
|
22 |
+
if ($wp_cron_calls_max < $diff) {
|
23 |
+
$wp_cron_calls_max = $diff;
|
24 |
+
}
|
25 |
+
}
|
26 |
+
$wp_cron_calls_avg = (int) ($total / (count($wp_cron_calls) - 1));
|
27 |
+
}
|
28 |
+
|
29 |
+
if ($controls->is_action('delete_logs')) {
|
30 |
+
$files = glob(WP_CONTENT_DIR . '/logs/newsletter/*.txt');
|
31 |
+
foreach ($files as $file) {
|
32 |
+
if (is_file($file))
|
33 |
+
unlink($file);
|
34 |
+
}
|
35 |
+
$secret = NewsletterModule::get_token(8);
|
36 |
+
update_option('newsletter_logger_secret', $secret);
|
37 |
+
$controls->messages = 'Logs deleted';
|
38 |
+
}
|
39 |
+
|
40 |
+
if ($controls->is_action('test')) {
|
41 |
+
|
42 |
+
if (!NewsletterModule::is_email($controls->data['test_email'])) {
|
43 |
+
$controls->errors = 'The test email address is not set or is not correct.';
|
44 |
+
}
|
45 |
+
|
46 |
+
if (empty($controls->errors)) {
|
47 |
+
|
48 |
+
$options = $controls->data;
|
49 |
+
|
50 |
+
if ($controls->data['test_email'] == $module->options['sender_email']) {
|
51 |
+
$controls->messages .= '<strong>Warning:</strong> you are using as test email the same address configured as sender in main configuration. Test can fail because of that.<br>';
|
52 |
+
}
|
53 |
+
|
54 |
+
// Newsletter mail
|
55 |
+
$text = array();
|
56 |
+
$text['html'] = '<p>This is an <b>HTML</b> test email sent using the sender data set on Newsletter main setting. <a href="http://www.thenewsletterplugin.com">This is a link to an external site</a>.</p>';
|
57 |
+
$text['text'] = 'This is a textual test email part sent using the sender data set on Newsletter main setting.';
|
58 |
+
$r = $module->mail($controls->data['test_email'], 'Newsletter test email at ' . date(DATE_ISO8601), $text);
|
59 |
+
|
60 |
+
$controls->messages .= 'Email sent with Newsletter';
|
61 |
+
if ($module->mail_method) {
|
62 |
+
$controls->messages .= ' (with a mail delivery extension)';
|
63 |
+
} else {
|
64 |
+
$smtp_options = $module->get_smtp_options();
|
65 |
+
|
66 |
+
if (!empty($smtp_options['enabled'])) {
|
67 |
+
$controls->messages .= ' (with an SMTP)';
|
68 |
+
}
|
69 |
+
}
|
70 |
+
$controls->messages .= ': ';
|
71 |
+
|
72 |
+
if ($r) {
|
73 |
+
$options['mail'] = 1;
|
74 |
+
$controls->messages .= '<strong>SUCCESS</strong><br>';
|
75 |
+
} else {
|
76 |
+
$options['mail'] = 0;
|
77 |
+
$options['mail_error'] = $module->mail_last_error;
|
78 |
+
|
79 |
+
$controls->messages .= '<strong>FAILED</strong> (' . $module->mail_last_error . ')<br>';
|
80 |
+
|
81 |
+
if ($module->mail_method) {
|
82 |
+
$controls->messages .= '- You are using a mail delivery extension. Check and test its configuration.<br>';
|
83 |
+
} else {
|
84 |
+
$smtp_options = $module->get_smtp_options();
|
85 |
+
if (!empty($smtp_options['enabled'])) {
|
86 |
+
$controls->messages .= '- You are using an SMTP (' . $smtp_options['host'] . '). Check its configuration on main configuration or on SMTP Newsletter extensions if used.<br>';
|
87 |
+
}
|
88 |
+
}
|
89 |
+
|
90 |
+
if (!empty($module->options['return_path'])) {
|
91 |
+
$controls->messages .= '- Try to remove the return path on main settings.<br>';
|
92 |
+
}
|
93 |
+
|
94 |
+
$parts = explode('@', $module->options['sender_email']);
|
95 |
+
$sitename = strtolower($_SERVER['SERVER_NAME']);
|
96 |
+
if (substr($sitename, 0, 4) == 'www.') {
|
97 |
+
$sitename = substr($sitename, 4);
|
98 |
+
}
|
99 |
+
if (strtolower($sitename) != strtolower($parts[1])) {
|
100 |
+
$controls->messages .= '- Try to set on main setting a sender address with the same domain of your blog: ' . $sitename . ' (you are using ' . $module->options['sender_email'] . ')<br>';
|
101 |
+
}
|
102 |
+
}
|
103 |
+
$module->save_options($options, 'status');
|
104 |
+
}
|
105 |
+
}
|
106 |
+
|
107 |
+
$options = $module->get_options('status');
|
108 |
+
?>
|
109 |
+
|
110 |
+
<div class="wrap tnp-main-status" id="tnp-wrap">
|
111 |
+
|
112 |
+
<?php include NEWSLETTER_DIR . '/tnp-header.php'; ?>
|
113 |
+
|
114 |
+
<div id="tnp-heading">
|
115 |
+
|
116 |
+
<h2><?php _e('System Status', 'newsletter') ?></h2>
|
117 |
+
|
118 |
+
</div>
|
119 |
+
|
120 |
+
<div id="tnp-body">
|
121 |
+
|
122 |
+
<form method="post" action="">
|
123 |
+
<?php $controls->init(); ?>
|
124 |
+
|
125 |
+
<h3>General checks</h3>
|
126 |
+
<table class="widefat" id="tnp-status-table">
|
127 |
+
|
128 |
+
<thead>
|
129 |
+
<tr>
|
130 |
+
<th>Parameter</th>
|
131 |
+
<th><?php _e('Status', 'newsletter') ?></th>
|
132 |
+
<th>Action</th>
|
133 |
+
</tr>
|
134 |
+
</thead>
|
135 |
+
|
136 |
+
<tbody>
|
137 |
+
|
138 |
+
<tr>
|
139 |
+
<td>Mailing</td>
|
140 |
+
<td>
|
141 |
+
<?php if (empty($options['mail'])) { ?>
|
142 |
+
<span class="tnp-ko">KO</span>
|
143 |
+
<?php } else { ?>
|
144 |
+
<span class="tnp-ok">OK</span>
|
145 |
+
<?php } ?>
|
146 |
+
|
147 |
+
</td>
|
148 |
+
<td>
|
149 |
+
<?php if (empty($options['mail'])) { ?>
|
150 |
+
<?php if (empty($options['mail_error'])) { ?>
|
151 |
+
A test has never run.
|
152 |
+
<?php } else { ?>
|
153 |
+
Last test failed with error "<?php echo esc_html($options['mail_error']) ?>".
|
154 |
+
<?php } ?>
|
155 |
+
<?php } else { ?>
|
156 |
+
Last test was successful. If you dind't receive the test email:
|
157 |
+
<ol>
|
158 |
+
<li>If you set the Newsletter SMTP, do a test from that panel</li>
|
159 |
+
<li>If you're using a integration extension do a test from its configuration panel</li>
|
160 |
+
<li>If previous points do not apply to you, ask for support to your provider reporting the emails from your blog are not delivered</li>
|
161 |
+
</ol>
|
162 |
+
<?php } ?>
|
163 |
+
<br>
|
164 |
+
Email: <?php $controls->text_email('test_email') ?> <?php $controls->button('test', __('Send a test message')) ?>
|
165 |
+
</td>
|
166 |
+
|
167 |
+
</tr>
|
168 |
+
|
169 |
+
<?php
|
170 |
+
$return_path = $module->options['return_path'];
|
171 |
+
if (!empty($return_path)) {
|
172 |
+
list($return_path_local, $return_path_domain) = explode('@', $return_path);
|
173 |
+
}
|
174 |
+
$sender = $module->options['sender_email'];
|
175 |
+
if (!empty($sender)) {
|
176 |
+
list($sender_local, $sender_domain) = explode('@', $sender);
|
177 |
+
}
|
178 |
+
?>
|
179 |
+
<tr>
|
180 |
+
<td>Return path</td>
|
181 |
+
<td>
|
182 |
+
<?php if (empty($return_path)) { ?>
|
183 |
+
<span class="tnp-ok">OK</span>
|
184 |
+
<?php } else { ?>
|
185 |
+
<?php if ($sender_domain != $return_path_domain) { ?>
|
186 |
+
<span class="tnp-maybe">MAYBE</span>
|
187 |
+
<?php } else { ?>
|
188 |
+
<span class="tnp-ok">OK</span>
|
189 |
+
<?php } ?>
|
190 |
+
<?php } ?>
|
191 |
+
|
192 |
+
</td>
|
193 |
+
<td>
|
194 |
+
<?php if (!empty($return_path)) { ?>
|
195 |
+
Some providers require the return path domain <code><?php echo esc_html($return_path_domain) ?></code> to be identical
|
196 |
+
to the sender domain <code><?php echo esc_html($sender_domain) ?></code>. See the main settings.
|
197 |
+
<?php } else { ?>
|
198 |
+
<?php } ?>
|
199 |
+
</td>
|
200 |
+
|
201 |
+
</tr>
|
202 |
+
|
203 |
+
<tr>
|
204 |
+
<td>Blog Charset</td>
|
205 |
+
<td>
|
206 |
+
<?php if (get_option('blog_charset') == 'UTF-8') { ?>
|
207 |
+
<span class="tnp-ok">OK</span>
|
208 |
+
<?php } else { ?>
|
209 |
+
<span class="tnp-ko">KO</span>
|
210 |
+
<?php } ?>
|
211 |
+
</td>
|
212 |
+
<td>
|
213 |
+
Charset: <?php echo esc_html(get_option('blog_charset')) ?>
|
214 |
+
<br>
|
215 |
+
|
216 |
+
<?php if (get_option('blog_charset') == 'UTF-8') { ?>
|
217 |
+
|
218 |
+
<?php } else { ?>
|
219 |
+
Your blog charset is <?php echo esc_html(get_option('blog_charset')) ?> but it is recommended to use
|
220 |
+
the <code>UTF-8</code> charset but the <a href="https://codex.wordpress.org/Converting_Database_Character_Sets" target="_blank">conversion</a>
|
221 |
+
could be tricky. If you're not experiencing problem, leave things as is.
|
222 |
+
<?php } ?>
|
223 |
+
</td>
|
224 |
+
</tr>
|
225 |
+
|
226 |
+
<tr>
|
227 |
+
<td>PHP version</td>
|
228 |
+
<td>
|
229 |
+
<?php if (version_compare(phpversion(), '5.3', '<')) { ?>
|
230 |
+
<span class="tnp-ko">KO</span>
|
231 |
+
<?php } else { ?>
|
232 |
+
<span class="tnp-ok">OK</span>
|
233 |
+
<?php } ?>
|
234 |
+
|
235 |
+
</td>
|
236 |
+
<td>
|
237 |
+
Your PHP version is <?php echo phpversion() ?><br>
|
238 |
+
<?php if (version_compare(phpversion(), '5.3', '<')) { ?>
|
239 |
+
Newsletter plugin works correctly with PHP version 5.3 or greater. Ask your provider to upgrade your PHP. Your version is
|
240 |
+
unsupported even by the PHP community.
|
241 |
+
<?php } ?>
|
242 |
+
</td>
|
243 |
+
|
244 |
+
</tr>
|
245 |
+
|
246 |
+
<?php
|
247 |
+
$value = (int) ini_get('max_execution_time');
|
248 |
+
if ($value != 0 && $value < NEWSLETTER_CRON_INTERVAL) {
|
249 |
+
$res = set_time_limit(NEWSLETTER_CRON_INTERVAL * 1.2);
|
250 |
+
}
|
251 |
+
?>
|
252 |
+
|
253 |
+
<tr>
|
254 |
+
<td>PHP execution time limit</td>
|
255 |
+
<td>
|
256 |
+
<?php if ($res) { ?>
|
257 |
+
<span class="tnp-ok">OK</span>
|
258 |
+
<?php } else { ?>
|
259 |
+
<span class="tnp-ko">KO</span>
|
260 |
+
<?php } ?>
|
261 |
+
|
262 |
+
</td>
|
263 |
+
<td>
|
264 |
+
<?php if (!$res) { ?>
|
265 |
+
Your PHP execution time limit is <?php echo $value ?> seconds and cannot be changed or
|
266 |
+
is too lower to grant the maximum delivery rate of Newsletter.
|
267 |
+
<?php } else { ?>
|
268 |
+
Your PHP execution time limit is <?php echo $value ?> seconds and can be eventually changed by Newsletter<br>
|
269 |
+
<?php } ?>
|
270 |
+
|
271 |
+
</td>
|
272 |
+
|
273 |
+
</tr>
|
274 |
+
|
275 |
+
<tr>
|
276 |
+
<td>Database Charset</td>
|
277 |
+
<td>
|
278 |
+
<?php if (DB_CHARSET != 'utf8' && DB_CHARSET != 'utf8mb4') { ?>
|
279 |
+
<span class="tnp-ko">KO</span>
|
280 |
+
<?php } else { ?>
|
281 |
+
<span class="tnp-ok">OK</span>
|
282 |
+
<?php } ?>
|
283 |
+
|
284 |
+
</td>
|
285 |
+
<td>
|
286 |
+
Charset: <?php echo DB_CHARSET; ?>
|
287 |
+
<br>
|
288 |
+
<?php if (DB_CHARSET != 'utf8' && DB_CHARSET != 'utf8mb4') { ?>
|
289 |
+
The recommended charset for your database is <code>utf8</code> or <code>utf8mb4</code>
|
290 |
+
but the <a href="https://codex.wordpress.org/Converting_Database_Character_Sets" target="_blank">conversion</a>
|
291 |
+
could be tricky. If you're not experiencing problem, leave things as is.
|
292 |
+
<?php } else { ?>
|
293 |
+
|
294 |
+
<?php } ?>
|
295 |
+
</td>
|
296 |
+
</tr>
|
297 |
+
|
298 |
+
|
299 |
+
<?php $wait_timeout = $wpdb->get_var("select @@wait_timeout"); ?>
|
300 |
+
<tr>
|
301 |
+
<td>Database wait timeout</td>
|
302 |
+
<td>
|
303 |
+
<?php if ($wait_timeout < 300) { ?>
|
304 |
+
<span class="tnp-ko">KO</span>
|
305 |
+
<?php } else { ?>
|
306 |
+
<span class="tnp-ok">OK</span>
|
307 |
+
<?php } ?>
|
308 |
+
|
309 |
+
</td>
|
310 |
+
<td>
|
311 |
+
Your database wait timeout is <?php echo $wait_timeout; ?> seconds<br>
|
312 |
+
<?php if ($wait_timeout < 300) { ?>
|
313 |
+
That value is low and could produce database connection errors while sending emails. Ask the provider to raise it
|
314 |
+
at least to 300 seconds.
|
315 |
+
<?php } ?>
|
316 |
+
</td>
|
317 |
+
</tr>
|
318 |
+
|
319 |
+
<?php
|
320 |
+
$res = $wpdb->query("drop table if exists {$wpdb->prefix}newsletter_test");
|
321 |
+
$res = $wpdb->query("create table if not exists {$wpdb->prefix}newsletter_test (id int(20))");
|
322 |
+
?>
|
323 |
+
<tr>
|
324 |
+
<td>Database table creation</td>
|
325 |
+
<td>
|
326 |
+
<?php if ($res === false) { ?>
|
327 |
+
<span class="tnp-ko">KO</span>
|
328 |
+
<?php } else { ?>
|
329 |
+
<span class="tnp-ok">OK</span>
|
330 |
+
<?php } ?>
|
331 |
+
</td>
|
332 |
+
<td>
|
333 |
+
<?php if ($res === false) { ?>
|
334 |
+
Check the privileges of the user you use to connect to the database, it seems it cannot create tables.<br>
|
335 |
+
(<?php echo esc_html($wpdb->last_error) ?>)
|
336 |
+
<?php } else { ?>
|
337 |
+
<?php } ?>
|
338 |
+
</td>
|
339 |
+
</tr>
|
340 |
+
|
341 |
+
<?php
|
342 |
+
$res = $wpdb->query("alter table {$wpdb->prefix}newsletter_test add column id1 int(20)");
|
343 |
+
?>
|
344 |
+
<tr>
|
345 |
+
<td>Database table change</td>
|
346 |
+
<td>
|
347 |
+
<?php if ($res === false) { ?>
|
348 |
+
<span class="tnp-ko">KO</span>
|
349 |
+
<?php } else { ?>
|
350 |
+
<span class="tnp-ok">OK</span>
|
351 |
+
<?php } ?>
|
352 |
+
</td>
|
353 |
+
<td>
|
354 |
+
<?php if ($res === false) { ?>
|
355 |
+
Check the privileges of the user you use to connect to the database, it seems it cannot change the tables. It's require to update the
|
356 |
+
plugin.<br>
|
357 |
+
(<?php echo esc_html($wpdb->last_error) ?>)
|
358 |
+
<?php } else { ?>
|
359 |
+
<?php } ?>
|
360 |
+
</td>
|
361 |
+
</tr>
|
362 |
+
|
363 |
+
<?php
|
364 |
+
// Clean up
|
365 |
+
$res = $wpdb->query("drop table if exists {$wpdb->prefix}newsletter_test");
|
366 |
+
?>
|
367 |
+
|
368 |
+
<?php
|
369 |
+
set_transient('newsletter_transient_test', 1, 300);
|
370 |
+
delete_transient('newsletter_transient_test');
|
371 |
+
$res = get_transient('newsletter_transient_test');
|
372 |
+
?>
|
373 |
+
<tr>
|
374 |
+
<td>WordPress transients</td>
|
375 |
+
<td>
|
376 |
+
<?php if ($res !== false) { ?>
|
377 |
+
<span class="tnp-ko">KO</span>
|
378 |
+
<?php } else { ?>
|
379 |
+
<span class="tnp-ok">OK</span>
|
380 |
+
<?php } ?>
|
381 |
+
</td>
|
382 |
+
<td>
|
383 |
+
<?php if ($res !== false) { ?>
|
384 |
+
Transients cannot be delete. This can block the delivery engine. Usually it is due to a not well coded plugin installed.
|
385 |
+
<?php } else { ?>
|
386 |
+
<?php } ?>
|
387 |
+
</td>
|
388 |
+
</tr>
|
389 |
+
|
390 |
+
<?php
|
391 |
+
$time = wp_next_scheduled('newsletter');
|
392 |
+
$res = true;
|
393 |
+
if ($time === false) {
|
394 |
+
$res = false;
|
395 |
+
}
|
396 |
+
$delta = $time - time();
|
397 |
+
if ($delta <= -600) {
|
398 |
+
$res = false;
|
399 |
+
}
|
400 |
+
?>
|
401 |
+
<tr>
|
402 |
+
<td>Newsletter schedule timing</td>
|
403 |
+
<td>
|
404 |
+
<?php if ($res === false) { ?>
|
405 |
+
<span class="tnp-ko">KO</span>
|
406 |
+
<?php } else { ?>
|
407 |
+
<span class="tnp-ok">OK</span>
|
408 |
+
<?php } ?>
|
409 |
+
</td>
|
410 |
+
<td>
|
411 |
+
<?php if ($res === false) { ?>
|
412 |
+
No next execution is planned.
|
413 |
+
<?php } else { ?>
|
414 |
+
Next execution is planned in <?php echo $delta ?> seconds (negative values are ok).
|
415 |
+
<?php } ?>
|
416 |
+
</td>
|
417 |
+
</tr>
|
418 |
+
|
419 |
+
<?php
|
420 |
+
$schedules = wp_get_schedules();
|
421 |
+
$res = false;
|
422 |
+
if (!empty($schedules)) {
|
423 |
+
foreach ($schedules as $key => $data) {
|
424 |
+
if ($key == 'newsletter') {
|
425 |
+
$res = true;
|
426 |
+
break;
|
427 |
+
}
|
428 |
+
}
|
429 |
+
}
|
430 |
+
?>
|
431 |
+
|
432 |
+
<tr>
|
433 |
+
<td>
|
434 |
+
Newsletter schedule
|
435 |
+
</td>
|
436 |
+
<td>
|
437 |
+
<?php if ($res === false) { ?>
|
438 |
+
<span class="tnp-ko">KO</span>
|
439 |
+
<?php } else { ?>
|
440 |
+
<span class="tnp-ok">OK</span>
|
441 |
+
<?php } ?>
|
442 |
+
</td>
|
443 |
+
<td>
|
444 |
+
<?php if ($res === false) { ?>
|
445 |
+
The Newsletter schedule is not present probably another plugin is interfering with the starndard WordPress schuling system.<br>
|
446 |
+
<?php } else { ?>
|
447 |
+
<?php } ?>
|
448 |
+
|
449 |
+
WordPress registsred schedules:<br>
|
450 |
+
<?php
|
451 |
+
if (!empty($schedules)) {
|
452 |
+
foreach ($schedules as $key => $data) {
|
453 |
+
echo esc_html($key . ' - ' . $data['interval']) . ' seconds<br>';
|
454 |
+
}
|
455 |
+
}
|
456 |
+
?>
|
457 |
+
</td>
|
458 |
+
</tr>
|
459 |
+
|
460 |
+
<tr>
|
461 |
+
<td>
|
462 |
+
WordPress scheduler auto trigger
|
463 |
+
</td>
|
464 |
+
<td>
|
465 |
+
<?php if (defined('DISABLE_WP_CRON') && DISABLE_WP_CRON) { ?>
|
466 |
+
<span class="tnp-maybe">MAYBE</span>
|
467 |
+
<?php } else { ?>
|
468 |
+
<span class="tnp-ok">OK</span>
|
469 |
+
<?php } ?>
|
470 |
+
</td>
|
471 |
+
<td>
|
472 |
+
<?php if (defined('DISABLE_WP_CRON') && DISABLE_WP_CRON) { ?>
|
473 |
+
The constant DISABLE_WP_CRON is set to true (probably in wp-config.php). That disables the scheduler auto triggering and it's
|
474 |
+
good ONLY if you setup an external trigger.
|
475 |
+
<?php } else { ?>
|
476 |
+
|
477 |
+
<?php } ?>
|
478 |
+
</td>
|
479 |
+
</tr>
|
480 |
+
|
481 |
+
<?php
|
482 |
+
$res = true;
|
483 |
+
$response = wp_remote_post(home_url('/') . '?na=test');
|
484 |
+
if (is_wp_error($response)) {
|
485 |
+
$res = false;
|
486 |
+
$message = $reponse->get_error_message();
|
487 |
+
} else {
|
488 |
+
if (wp_remote_retrieve_response_code($response) != 200) {
|
489 |
+
$res = false;
|
490 |
+
$message = wp_remote_retrieve_response_message($response);
|
491 |
+
}
|
492 |
+
}
|
493 |
+
?>
|
494 |
+
<tr>
|
495 |
+
<td>
|
496 |
+
Action call
|
497 |
+
</td>
|
498 |
+
<td>
|
499 |
+
<?php if (!$res) { ?>
|
500 |
+
<span class="tnp-ko">KO</span>
|
501 |
+
<?php } else { ?>
|
502 |
+
<span class="tnp-ok">OK</span>
|
503 |
+
<?php } ?>
|
504 |
+
</td>
|
505 |
+
<td>
|
506 |
+
<?php if (!$res) { ?>
|
507 |
+
The blog is not responding to Newsletter URLs: ask the provider or your IT consultant to check this problem. Report the URL and error blow<br>
|
508 |
+
Error: <?php echo esc_html($message) ?><br>
|
509 |
+
<?php } else { ?>
|
510 |
+
|
511 |
+
<?php } ?>
|
512 |
+
Url: <?php echo esc_html(home_url('/') . '?na=test') ?><br>
|
513 |
+
</td>
|
514 |
+
</tr>
|
515 |
+
|
516 |
+
<?php
|
517 |
+
$res = true;
|
518 |
+
$response = wp_remote_get(site_url('/wp-cron.php') . '?' . time());
|
519 |
+
if (is_wp_error($response)) {
|
520 |
+
$res = false;
|
521 |
+
$message = $reponse->get_error_message();
|
522 |
+
} else {
|
523 |
+
if (wp_remote_retrieve_response_code($response) != 200) {
|
524 |
+
$res = false;
|
525 |
+
$message = wp_remote_retrieve_response_message($response);
|
526 |
+
}
|
527 |
+
}
|
528 |
+
?>
|
529 |
+
<tr>
|
530 |
+
<td>
|
531 |
+
WordPress scheduler auto trigger call
|
532 |
+
</td>
|
533 |
+
<td>
|
534 |
+
<?php if (!$res) { ?>
|
535 |
+
<span class="tnp-ko">KO</span>
|
536 |
+
<?php } else { ?>
|
537 |
+
<span class="tnp-ok">OK</span>
|
538 |
+
<?php } ?>
|
539 |
+
</td>
|
540 |
+
<td>
|
541 |
+
<?php if (!$res) { ?>
|
542 |
+
The blog cannot autotrigger the internal scheduler, if an external trigger is used this could not be a real problem.<br>
|
543 |
+
Error: <?php echo esc_html($message) ?><br>
|
544 |
+
<?php } else { ?>
|
545 |
+
|
546 |
+
<?php } ?>
|
547 |
+
Url: <?php echo esc_html(site_url('/wp-cron.php')) ?><br>
|
548 |
+
</td>
|
549 |
+
</tr>
|
550 |
+
|
551 |
+
<?php
|
552 |
+
$res = true;
|
553 |
+
$response = wp_remote_get('http://www.thenewsletterplugin.com/wp-content/versions/all.txt');
|
554 |
+
if (is_wp_error($response)) {
|
555 |
+
$res = false;
|
556 |
+
$message = $reponse->get_error_message();
|
557 |
+
} else {
|
558 |
+
if (wp_remote_retrieve_response_code($response) != 200) {
|
559 |
+
$res = false;
|
560 |
+
$message = wp_remote_retrieve_response_message($response);
|
561 |
+
}
|
562 |
+
}
|
563 |
+
?>
|
564 |
+
<tr>
|
565 |
+
<td>
|
566 |
+
Extension version check
|
567 |
+
</td>
|
568 |
+
<td>
|
569 |
+
<?php if (!$res) { ?>
|
570 |
+
<span class="tnp-ko">KO</span>
|
571 |
+
<?php } else { ?>
|
572 |
+
<span class="tnp-ok">OK</span>
|
573 |
+
<?php } ?>
|
574 |
+
</td>
|
575 |
+
<td>
|
576 |
+
<?php if (!$res) { ?>
|
577 |
+
The blog cannot contact www.thenewsletterplugin.com to check the license or the extension versions.<br>
|
578 |
+
Error: <?php echo esc_html($message) ?><br>
|
579 |
+
<?php } else { ?>
|
580 |
+
|
581 |
+
<?php } ?>
|
582 |
+
</td>
|
583 |
+
</tr>
|
584 |
+
|
585 |
+
<tr>
|
586 |
+
<td>
|
587 |
+
WordPress debug mode
|
588 |
+
</td>
|
589 |
+
<td>
|
590 |
+
<?php if (defined('WP_DEBUG') && WP_DEBUG) { ?>
|
591 |
+
<span class="tnp-maybe">MAYBE</span>
|
592 |
+
<?php } else { ?>
|
593 |
+
<span class="tnp-ok">OK</span>
|
594 |
+
<?php } ?>
|
595 |
+
</td>
|
596 |
+
<td>
|
597 |
+
<?php if (defined('WP_DEBUG') && WP_DEBUG) { ?>
|
598 |
+
WordPress is in debug mode it is not recommended on a production system. See the constant WP_DEBUG insde the wp-config.php.
|
599 |
+
<?php } else { ?>
|
600 |
+
|
601 |
+
<?php } ?>
|
602 |
+
</td>
|
603 |
+
</tr>
|
604 |
+
|
605 |
+
|
606 |
+
|
607 |
+
<?php
|
608 |
+
$memory = intval(WP_MEMORY_LIMIT);
|
609 |
+
if (false !== strpos(WP_MEMORY_LIMIT, 'G'))
|
610 |
+
$memory *= 1024;
|
611 |
+
?>
|
612 |
+
<tr>
|
613 |
+
<td>
|
614 |
+
PHP memory limit
|
615 |
+
</td>
|
616 |
+
<td>
|
617 |
+
<?php if ($memory < 64) { ?>
|
618 |
+
<span class="tnp-ko">KO</span>
|
619 |
+
<?php } else if ($memory < 128) { ?>
|
620 |
+
<span class="tnp-maybe">MAYBE</span>
|
621 |
+
<?php } else { ?>
|
622 |
+
<span class="tnp-ok">OK</span>
|
623 |
+
<?php } ?>
|
624 |
+
</td>
|
625 |
+
<td>
|
626 |
+
Your memory limit is set to <?php echo $memory ?> megabyte<br>
|
627 |
+
<?php if ($memory < 64) { ?>
|
628 |
+
This value is too low you should increase it adding <code>define('WP_MEMORY_LIMIT', '64M');</code> to your wp-config.php.
|
629 |
+
<?php } else if ($memory < 128) { ?>
|
630 |
+
The value should be fine, it depends on how many plugin you're running and how many resource are required by your theme.
|
631 |
+
Blank pages are usually syntoms of low memory. Eventually increase it adding <code>define('WP_MEMORY_LIMIT', '128M');</code>
|
632 |
+
to your wp-config.php.
|
633 |
+
<?php } else { ?>
|
634 |
+
|
635 |
+
<?php } ?>
|
636 |
+
|
637 |
+
</td>
|
638 |
+
</tr>
|
639 |
+
|
640 |
+
<?php
|
641 |
+
$ip = gethostbyname($_SERVER['HTTP_HOST']);
|
642 |
+
$name = gethostbyaddr($ip);
|
643 |
+
$res = true;
|
644 |
+
if (strpos($name, '.secureserver.net') !== false) {
|
645 |
+
//$smtp = get_option('newsletter_main_smtp');
|
646 |
+
//if (!empty($smtp['enabled']))
|
647 |
+
$res = false;
|
648 |
+
$message = 'If you\'re hosted with GoDaddy, be sure to set their SMTP (relay-hosting.secureserver.net, without username and password) to send emails
|
649 |
+
on Newsletter SMTP panel.
|
650 |
+
Remember they limits you to 250 emails per day. Open them a ticket for more details.';
|
651 |
+
}
|
652 |
+
if (strpos($name, '.aruba.it') !== false) {
|
653 |
+
$res = false;
|
654 |
+
$message = 'If you\'re hosted with Aruba consider to use an external SMTP (Sendgrid, Mailjet, Mailgun, Amazon SES, Elasticemail, Sparkpost, ...)
|
655 |
+
since their mail service is not good. If you have your personal email with them, you can try to use the SMTP of your
|
656 |
+
pesonal account. Ask the support for the SMTP parameters and configure them on Newsletter SMTP panel.';
|
657 |
+
}
|
658 |
+
?>
|
659 |
+
<tr>
|
660 |
+
<td>Your Server</td>
|
661 |
+
<td>
|
662 |
+
<?php if ($res === false) { ?>
|
663 |
+
<span class="tnp-maybe">MAYBE</span>
|
664 |
+
<?php } else { ?>
|
665 |
+
<span class="tnp-ok">OK</span>
|
666 |
+
<?php } ?>
|
667 |
+
|
668 |
+
|
669 |
+
</td>
|
670 |
+
<td>
|
671 |
+
<?php if ($res === false) { ?>
|
672 |
+
<?php echo $message ?>
|
673 |
+
<?php } else { ?>
|
674 |
+
|
675 |
+
<?php } ?>
|
676 |
+
IP: <?php echo $ip ?><br>
|
677 |
+
Name: <?php echo $name ?><br>
|
678 |
+
</td>
|
679 |
+
</tr>
|
680 |
+
|
681 |
+
<?php
|
682 |
+
wp_mkdir_p(NEWSLETTER_LOG_DIR);
|
683 |
+
$res = is_dir(NEWSLETTER_LOG_DIR);
|
684 |
+
if ($res) {
|
685 |
+
file_put_contents(NEWSLETTER_LOG_DIR . '/test.txt', "");
|
686 |
+
$res = is_file(NEWSLETTER_LOG_DIR . '/test.txt');
|
687 |
+
if ($res) {
|
688 |
+
@unlink(NEWSLETTER_LOG_DIR . '/test.txt');
|
689 |
+
}
|
690 |
+
}
|
691 |
+
?>
|
692 |
+
<tr>
|
693 |
+
<td>
|
694 |
+
Log folder
|
695 |
+
</td>
|
696 |
+
<td>
|
697 |
+
<?php if (!$res) { ?>
|
698 |
+
<span class="tnp-ko">KO</span>
|
699 |
+
<?php } else { ?>
|
700 |
+
<span class="tnp-ok">OK</span>
|
701 |
+
<?php } ?>
|
702 |
+
</td>
|
703 |
+
<td>
|
704 |
+
The log folder is <?php echo esc_html(NEWSLETTER_LOG_DIR) ?><br>
|
705 |
+
<?php if (!$res) { ?>
|
706 |
+
Cannot create the folder or it is not writable.
|
707 |
+
<?php } else { ?>
|
708 |
+
|
709 |
+
<?php } ?>
|
710 |
+
</td>
|
711 |
+
</tr>
|
712 |
+
</tbody>
|
713 |
+
</table>
|
714 |
+
|
715 |
+
<h3>General parameters</h3>
|
716 |
+
<table class="widefat" id="tnp-parameters-table">
|
717 |
+
<thead>
|
718 |
+
<tr>
|
719 |
+
<th>Parameter</th>
|
720 |
+
<th>Value</th>
|
721 |
+
</tr>
|
722 |
+
</thead>
|
723 |
+
<tbody>
|
724 |
+
|
725 |
+
<tr>
|
726 |
+
<td>Newsletter version</td>
|
727 |
+
<td>
|
728 |
+
<?php echo NEWSLETTER_VERSION ?>
|
729 |
+
</td>
|
730 |
+
</tr>
|
731 |
+
|
732 |
+
<tr>
|
733 |
+
<td>NEWSLETTER_MAX_EXECUTION_TIME</td>
|
734 |
+
<td>
|
735 |
+
<?php
|
736 |
+
if (defined('NEWSLETTER_MAX_EXECUTION_TIME')) {
|
737 |
+
echo NEWSLETTER_MAX_EXECUTION_TIME . ' (seconds)';
|
738 |
+
} else {
|
739 |
+
echo 'Not set';
|
740 |
+
}
|
741 |
+
?>
|
742 |
+
</td>
|
743 |
+
</tr>
|
744 |
+
<tr>
|
745 |
+
<td>NEWSLETTER_CRON_INTERVAL</td>
|
746 |
+
<td>
|
747 |
+
<?php echo NEWSLETTER_CRON_INTERVAL . ' (seconds)'; ?>
|
748 |
+
</td>
|
749 |
+
</tr>
|
750 |
+
|
751 |
+
<?php /*
|
752 |
+
<tr>
|
753 |
+
<td>WordPress plugin url</td>
|
754 |
+
<td>
|
755 |
+
<?php echo WP_PLUGIN_URL; ?>
|
756 |
+
<br>
|
757 |
+
Filters:
|
758 |
+
|
759 |
+
<?php
|
760 |
+
if (isset($wp_filter))
|
761 |
+
$filters = $wp_filter['plugins_url'];
|
762 |
+
if (!isset($filters) || !is_array($filters))
|
763 |
+
echo 'no filters attached to "plugin_urls"';
|
764 |
+
else {
|
765 |
+
echo '<ul>';
|
766 |
+
foreach ($filters as &$filter) {
|
767 |
+
foreach ($filter as &$entry) {
|
768 |
+
echo '<li>';
|
769 |
+
if (is_array($entry['function']))
|
770 |
+
echo esc_html(get_class($entry['function'][0]) . '->' . $entry['function'][1]);
|
771 |
+
else
|
772 |
+
echo esc_html($entry['function']);
|
773 |
+
echo '</li>';
|
774 |
+
}
|
775 |
+
}
|
776 |
+
echo '</ul>';
|
777 |
+
}
|
778 |
+
?>
|
779 |
+
<p class="description">
|
780 |
+
This value should contains the full URL to your plugin folder. If there are filters
|
781 |
+
attached, the value can be different from the original generated by WordPress and sometime worng.
|
782 |
+
</p>
|
783 |
+
</td>
|
784 |
+
</tr>
|
785 |
+
*/ ?>
|
786 |
+
|
787 |
+
<tr>
|
788 |
+
<td>Absolute path</td>
|
789 |
+
<td>
|
790 |
+
<?php echo esc_html(ABSPATH); ?>
|
791 |
+
</td>
|
792 |
+
</tr>
|
793 |
+
<tr>
|
794 |
+
<td>Tables Prefix</td>
|
795 |
+
<td>
|
796 |
+
<?php echo $wpdb->prefix; ?>
|
797 |
+
</td>
|
798 |
+
</tr>
|
799 |
+
</tbody>
|
800 |
+
</table>
|
801 |
+
|
802 |
+
<h3>Log files</h3>
|
803 |
+
|
804 |
+
<ul class="tnp-log-files">
|
805 |
+
<?php
|
806 |
+
$files = glob(WP_CONTENT_DIR . '/logs/newsletter/*.txt'); // get all file names
|
807 |
+
foreach ($files as $file) { // iterate files
|
808 |
+
echo '<li><a href="' . WP_CONTENT_URL . '/logs/newsletter/' . basename($file) . '" target="_blank">' . basename($file) . '</a>';
|
809 |
+
echo ' <span class="tnp-log-size">(' . size_format(filesize($file)) . ')</span>';
|
810 |
+
echo '</li>';
|
811 |
+
}
|
812 |
+
?>
|
813 |
+
</ul>
|
814 |
+
|
815 |
+
<?php $controls->button('delete_logs', 'Delete all'); ?>
|
816 |
+
|
817 |
+
|
818 |
+
<?php if (isset($_GET['debug'])) { ?>
|
819 |
+
|
820 |
+
|
821 |
+
<h3>Database Tables</h3>
|
822 |
+
<h4><?php echo $wpdb->prefix ?>newsletter</h4>
|
823 |
+
<?php
|
824 |
+
$rs = $wpdb->get_results("describe {$wpdb->prefix}newsletter");
|
825 |
+
?>
|
826 |
+
<table class="tnp-db-table">
|
827 |
+
<thead>
|
828 |
+
<tr>
|
829 |
+
<th>Field</th>
|
830 |
+
<th>Type</th>
|
831 |
+
<th>Null</th>
|
832 |
+
<th>Key</th>
|
833 |
+
<th>Default</th>
|
834 |
+
<th>Extra</th>
|
835 |
+
</tr>
|
836 |
+
</thead>
|
837 |
+
<tbody>
|
838 |
+
<?php foreach ($rs as $r) { ?>
|
839 |
+
<tr>
|
840 |
+
<td><?php echo esc_html($r->Field) ?></td>
|
841 |
+
<td><?php echo esc_html($r->Type) ?></td>
|
842 |
+
<td><?php echo esc_html($r->Null) ?></td>
|
843 |
+
<td><?php echo esc_html($r->Key) ?></td>
|
844 |
+
<td><?php echo esc_html($r->Default) ?></td>
|
845 |
+
<td><?php echo esc_html($r->Extra) ?></td>
|
846 |
+
</tr>
|
847 |
+
<?php } ?>
|
848 |
+
</tbody>
|
849 |
+
</table>
|
850 |
+
|
851 |
+
<h4><?php echo $wpdb->prefix ?>newsletter_emails</h4>
|
852 |
+
<?php
|
853 |
+
$rs = $wpdb->get_results("describe {$wpdb->prefix}newsletter_emails");
|
854 |
+
?>
|
855 |
+
<table class="tnp-db-table">
|
856 |
+
<thead>
|
857 |
+
<tr>
|
858 |
+
<th>Field</th>
|
859 |
+
<th>Type</th>
|
860 |
+
<th>Null</th>
|
861 |
+
<th>Key</th>
|
862 |
+
<th>Default</th>
|
863 |
+
<th>Extra</th>
|
864 |
+
</tr>
|
865 |
+
</thead>
|
866 |
+
<tbody>
|
867 |
+
<?php foreach ($rs as $r) { ?>
|
868 |
+
<tr>
|
869 |
+
<td><?php echo esc_html($r->Field) ?></td>
|
870 |
+
<td><?php echo esc_html($r->Type) ?></td>
|
871 |
+
<td><?php echo esc_html($r->Null) ?></td>
|
872 |
+
<td><?php echo esc_html($r->Key) ?></td>
|
873 |
+
<td><?php echo esc_html($r->Default) ?></td>
|
874 |
+
<td><?php echo esc_html($r->Extra) ?></td>
|
875 |
+
</tr>
|
876 |
+
<?php } ?>
|
877 |
+
</tbody>
|
878 |
+
</table>
|
879 |
+
|
880 |
+
|
881 |
+
<h3>Extensions</h3>
|
882 |
+
<pre style="font-size: 11px; font-family: monospace; background-color: #efefef; color: #444"><?php echo esc_html(print_r(get_option('newsletter_extension_versions'), true)); ?></pre>
|
883 |
+
|
884 |
+
<h3>Update plugins data</h3>
|
885 |
+
<pre style="font-size: 11px; font-family: monospace; background-color: #efefef; color: #444"><?php echo esc_html(print_r(get_site_transient('update_plugins'), true)); ?></pre>
|
886 |
+
|
887 |
+
<?php } ?>
|
888 |
+
</div>
|
889 |
+
|
890 |
+
<?php include NEWSLETTER_DIR . '/tnp-footer.php'; ?>
|
891 |
+
|
892 |
+
</div>
|
plugin.php
CHANGED
@@ -4,17 +4,17 @@
|
|
4 |
Plugin Name: Newsletter
|
5 |
Plugin URI: http://www.thenewsletterplugin.com/plugins/newsletter
|
6 |
Description: Newsletter is a cool plugin to create your own subscriber list, to send newsletters, to build your business. <strong>Before update give a look to <a href="http://www.thenewsletterplugin.com/category/release">this page</a> to know what's changed.</strong>
|
7 |
-
Version: 4.
|
8 |
Author: Stefano Lissa & The Newsletter Team
|
9 |
Author URI: http://www.thenewsletterplugin.com
|
10 |
Disclaimer: Use at your own risk. No warranty expressed or implied is provided.
|
11 |
Text Domain: newsletter
|
12 |
|
13 |
-
Copyright 2009-
|
14 |
*/
|
15 |
|
16 |
// Used as dummy parameter on css and js links
|
17 |
-
define('NEWSLETTER_VERSION', '4.
|
18 |
|
19 |
global $wpdb, $newsletter;
|
20 |
|
@@ -106,7 +106,7 @@ class Newsletter extends NewsletterModule {
|
|
106 |
var $action = '';
|
107 |
static $instance;
|
108 |
|
109 |
-
const MAX_CRON_SAMPLES =
|
110 |
|
111 |
/**
|
112 |
* @return Newsletter
|
@@ -127,6 +127,11 @@ class Newsletter extends NewsletterModule {
|
|
127 |
$this->action = $_POST['na'];
|
128 |
}
|
129 |
|
|
|
|
|
|
|
|
|
|
|
130 |
$this->time_start = time();
|
131 |
|
132 |
// Here because the upgrade is called by the parent constructor and uses the scheduler
|
@@ -150,14 +155,29 @@ class Newsletter extends NewsletterModule {
|
|
150 |
|
151 |
if (defined('DOING_CRON') && DOING_CRON) {
|
152 |
$calls = get_option('newsletter_diagnostic_cron_calls', array());
|
153 |
-
if (empty($calls)) {
|
154 |
-
add_option('newsletter_diagnostic_cron_calls', $calls, null, 'no');
|
155 |
-
}
|
156 |
$calls[] = time();
|
157 |
if (count($calls) > self::MAX_CRON_SAMPLES) {
|
158 |
array_shift($calls);
|
159 |
}
|
160 |
-
update_option('newsletter_diagnostic_cron_calls', $calls);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
161 |
return;
|
162 |
}
|
163 |
|
@@ -185,6 +205,8 @@ class Newsletter extends NewsletterModule {
|
|
185 |
add_action('wp_ajax_tnpc_render', 'tnpc_render_callback');
|
186 |
add_action('wp_ajax_tnpc_preview', 'tnpc_preview_callback');
|
187 |
add_action('wp_ajax_tnpc_css', 'tnpc_css_callback');
|
|
|
|
|
188 |
}
|
189 |
}
|
190 |
|
@@ -348,12 +370,18 @@ class Newsletter extends NewsletterModule {
|
|
348 |
|
349 |
$this->add_menu_page('index', 'Dashboard');
|
350 |
$this->add_menu_page('main', 'Settings and More');
|
|
|
351 |
$this->add_admin_page('smtp', 'SMTP');
|
|
|
352 |
$this->add_admin_page('info', 'Company info');
|
353 |
$this->add_admin_page('diagnostic', 'Diagnostic');
|
354 |
$this->add_admin_page('startup', 'Quick Startup');
|
355 |
}
|
356 |
|
|
|
|
|
|
|
|
|
357 |
/**
|
358 |
* Returns a set of warnings about this installtion the suser should be aware of. Return an empty string
|
359 |
* if there are no warnings.
|
@@ -365,6 +393,11 @@ class Newsletter extends NewsletterModule {
|
|
365 |
$warnings .= 'The delivery engine is off (it should never be off). Deactivate and reactivate the plugin. Thank you.<br>';
|
366 |
} else if (time() - $x > 900) {
|
367 |
$warnings .= 'The cron system seems not running correctly. See <a href="http://www.thenewsletterplugin.com/how-to-make-the-wordpress-cron-work" target="_blank">this page</a> for more information.<br>';
|
|
|
|
|
|
|
|
|
|
|
368 |
}
|
369 |
|
370 |
if (!empty($warnings)) {
|
@@ -377,12 +410,17 @@ class Newsletter extends NewsletterModule {
|
|
377 |
function hook_init() {
|
378 |
global $cache_stop, $hyper_cache_stop, $wpdb;
|
379 |
|
|
|
|
|
|
|
|
|
|
|
380 |
if (is_admin()) {
|
381 |
if ($this->is_admin_page()) {
|
382 |
wp_enqueue_script('jquery-ui-tabs');
|
383 |
-
wp_enqueue_script('media-upload');
|
384 |
-
wp_enqueue_script('thickbox');
|
385 |
-
wp_enqueue_style('thickbox');
|
386 |
wp_enqueue_media();
|
387 |
|
388 |
$dismissed = get_option('newsletter_dismissed', array());
|
@@ -418,6 +456,11 @@ class Newsletter extends NewsletterModule {
|
|
418 |
$this->message = $options_followup['unsubscribed_text'];
|
419 |
return;
|
420 |
}
|
|
|
|
|
|
|
|
|
|
|
421 |
}
|
422 |
|
423 |
function is_admin_page() {
|
@@ -445,19 +488,10 @@ class Newsletter extends NewsletterModule {
|
|
445 |
echo $this->options['css'];
|
446 |
echo "</style>";
|
447 |
}
|
448 |
-
|
449 |
-
// TODO: move on subscription module
|
450 |
-
$profile_options = get_option('newsletter_profile');
|
451 |
-
if (!empty($profile_options['style'])) {
|
452 |
-
echo '<link href="' . NewsletterSubscription::instance()->get_style_url($profile_options['style']) . '" type="text/css" rel="stylesheet">';
|
453 |
-
}
|
454 |
-
if (!empty($profile_options['widget_style'])) {
|
455 |
-
echo '<link href="' . NewsletterSubscription::instance()->get_style_url($profile_options['widget_style']) . '" type="text/css" rel="stylesheet">';
|
456 |
-
}
|
457 |
}
|
458 |
|
459 |
-
function relink($text, $email_id, $user_id) {
|
460 |
-
return NewsletterStatistics::instance()->relink($text, $email_id, $user_id);
|
461 |
}
|
462 |
|
463 |
/**
|
@@ -469,16 +503,18 @@ class Newsletter extends NewsletterModule {
|
|
469 |
$this->logger->debug('hook_newsletter> Start');
|
470 |
|
471 |
// Do not accept job activation before at least 4 minutes are elapsed from the last run.
|
472 |
-
if (!$this->check_transient('engine', NEWSLETTER_CRON_INTERVAL))
|
473 |
return;
|
|
|
474 |
|
475 |
// Retrieve all email in "sending" status
|
476 |
$emails = $wpdb->get_results("select * from " . NEWSLETTER_EMAILS_TABLE . " where status='sending' and send_on<" . time() . " order by id asc");
|
477 |
$this->logger->debug('hook_newsletter> Emails found in sending status: ' . count($emails));
|
478 |
-
foreach ($emails as
|
479 |
$this->logger->debug('hook_newsletter> Sending email ' . $email->id);
|
480 |
-
if (!$this->send($email))
|
481 |
break;
|
|
|
482 |
}
|
483 |
// Remove the semaphore so the delivery engine can be activated again
|
484 |
$this->delete_transient('engine');
|
@@ -487,7 +523,7 @@ class Newsletter extends NewsletterModule {
|
|
487 |
}
|
488 |
|
489 |
/**
|
490 |
-
* Sends an email to targeted users
|
491 |
* the query inside the email to retrieve users is not used.
|
492 |
*
|
493 |
* @global wpdb $wpdb
|
@@ -499,10 +535,11 @@ class Newsletter extends NewsletterModule {
|
|
499 |
function send($email, $users = null) {
|
500 |
global $wpdb;
|
501 |
|
502 |
-
if (is_array($email))
|
503 |
$email = (object) $email;
|
|
|
504 |
|
505 |
-
// This stops the update of last_id and sent fields since it's not a scheduled delivery but a test
|
506 |
$test = $users != null;
|
507 |
|
508 |
if ($users == null) {
|
@@ -525,11 +562,17 @@ class Newsletter extends NewsletterModule {
|
|
525 |
}
|
526 |
}
|
527 |
|
528 |
-
|
|
|
|
|
|
|
|
|
529 |
|
530 |
// Before try to send, check the limits.
|
531 |
-
if (!$test && $this->limits_exceeded())
|
532 |
-
|
|
|
|
|
533 |
|
534 |
$headers = array('List-Unsubscribe' => '<' . home_url('/') . '?na=u&nk=' . $user->id . '-' . $user->token . '>');
|
535 |
$headers['Precedence'] = 'bulk';
|
@@ -545,7 +588,7 @@ class Newsletter extends NewsletterModule {
|
|
545 |
|
546 |
|
547 |
if ($email->track == 1) {
|
548 |
-
$m = $this->relink($m, $email->id, $user->id);
|
549 |
}
|
550 |
|
551 |
$s = $this->replace($email->subject, $user);
|
@@ -569,9 +612,20 @@ class Newsletter extends NewsletterModule {
|
|
569 |
$wpdb->query($wpdb->prepare("insert into " . $wpdb->prefix . 'newsletter_sent (user_id, email_id, time, status, error) values (%d, %d, %d, %d, %s) on duplicate key update time=%d, status=%d, error=%s', $user->id, $email->id, time(), $status, $this->mail_last_error, time(), $status, $this->mail_last_error));
|
570 |
|
571 |
$this->email_limit--;
|
|
|
572 |
}
|
|
|
573 |
|
574 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
575 |
}
|
576 |
|
577 |
/**
|
@@ -608,6 +662,8 @@ class Newsletter extends NewsletterModule {
|
|
608 |
@set_time_limit((int) $this->options['php_time_limit']);
|
609 |
} else if (defined('NEWSLETTER_MAX_EXECUTION_TIME')) {
|
610 |
@set_time_limit(NEWSLETTER_MAX_EXECUTION_TIME);
|
|
|
|
|
611 |
}
|
612 |
|
613 |
$max_time = (int) (@ini_get('max_execution_time') * 0.95);
|
@@ -663,10 +719,10 @@ class Newsletter extends NewsletterModule {
|
|
663 |
|
664 |
function mail($to, $subject, $message, $headers = null) {
|
665 |
$this->mail_last_error = '';
|
666 |
-
|
667 |
-
|
668 |
if (empty($subject)) {
|
669 |
-
$this->logger->
|
670 |
return true;
|
671 |
}
|
672 |
|
@@ -690,7 +746,7 @@ class Newsletter extends NewsletterModule {
|
|
690 |
}
|
691 |
|
692 |
if ($this->mail_method != null) {
|
693 |
-
|
694 |
return call_user_func($this->mail_method, $to, $subject, $message, $headers);
|
695 |
}
|
696 |
|
@@ -795,13 +851,6 @@ class Newsletter extends NewsletterModule {
|
|
795 |
require_once ABSPATH . WPINC . '/class-smtp.php';
|
796 |
|
797 |
$smtp_options = $this->get_smtp_options();
|
798 |
-
// $smtp_options['enabled'] = $this->options['smtp_enabled'];
|
799 |
-
// $smtp_options['host'] = $this->options['smtp_host'];
|
800 |
-
// $smtp_options['port'] = $this->options['smtp_port'];
|
801 |
-
// $smtp_options['user'] = $this->options['smtp_user'];
|
802 |
-
// $smtp_options['pass'] = $this->options['smtp_pass'];
|
803 |
-
// $smtp_options['secure'] = $this->options['smtp_secure'];
|
804 |
-
//$smtp_options = apply_filters('newsletter_smtp', $smtp_options);
|
805 |
|
806 |
|
807 |
if ($smtp_options['enabled'] == 1) {
|
@@ -920,7 +969,7 @@ class Newsletter extends NewsletterModule {
|
|
920 |
list ($id, $token) = @explode('-', $_COOKIE['newsletter'], 2);
|
921 |
}
|
922 |
|
923 |
-
if (
|
924 |
return $wpdb->get_row($wpdb->prepare("select * from " . NEWSLETTER_USERS_TABLE . " where id=%d and token=%s limit 1", $id, $token));
|
925 |
}
|
926 |
|
@@ -930,43 +979,6 @@ class Newsletter extends NewsletterModule {
|
|
930 |
|
931 |
$user = $this->get_user_by_wp_user_id($wp_user_id);
|
932 |
return $user;
|
933 |
-
|
934 |
-
|
935 |
-
/*
|
936 |
-
if ($this->options_main['wp_integration'] != 1) {
|
937 |
-
return null;
|
938 |
-
}
|
939 |
-
|
940 |
-
get_currentuserinfo();
|
941 |
-
|
942 |
-
// Retrieve the related newsletter user
|
943 |
-
$user = $wpdb->get_row("select * from " . NEWSLETTER_USERS_TABLE . " where wp_user_id=" . $current_user->ID . " limit 1");
|
944 |
-
// There is an email matching?
|
945 |
-
if (empty($user)) {
|
946 |
-
$user = $wpdb->get_row($wpdb->prepare("select * from " . NEWSLETTER_USERS_TABLE . " where email=%s limit 1", strtolower($current_user->user_email)));
|
947 |
-
// If not found, create a new Newsletter user, else update the wp_user_id since this email must be linked
|
948 |
-
// to the WP user email.
|
949 |
-
if (empty($user)) {
|
950 |
-
return null;
|
951 |
-
//echo 'WP user not found';
|
952 |
-
$user = array();
|
953 |
-
$user['status'] = 'C';
|
954 |
-
$user['wp_user_id'] = $current_user->ID;
|
955 |
-
$user['token'] = $this->get_token();
|
956 |
-
$user['email'] = strtolower($current_user->user_email);
|
957 |
-
|
958 |
-
$id = $wpdb->insert(NEWSLETTER_USERS_TABLE, $user);
|
959 |
-
$user = NewsletterUsers::instance()->get_user($id);
|
960 |
-
} else {
|
961 |
-
//echo 'WP user found via email';
|
962 |
-
$wpdb->query($wpdb->prepare("update " . NEWSLETTER_USERS_TABLE . " set wp_user_id=" . $current_user->ID . ", email=%s", $current_user->user_email));
|
963 |
-
}
|
964 |
-
} else {
|
965 |
-
//echo 'WP user found via id';
|
966 |
-
}
|
967 |
-
|
968 |
-
return $user;
|
969 |
-
*/
|
970 |
}
|
971 |
|
972 |
function replace_date($text) {
|
@@ -1056,7 +1068,7 @@ class Newsletter extends NewsletterModule {
|
|
1056 |
$text = str_replace('%7Bkey%7D', $user->id . '-' . $user->token, $text);
|
1057 |
|
1058 |
if (strpos($text, '{profile_form}') !== false) {
|
1059 |
-
$text = str_replace('{profile_form}', NewsletterSubscription::instance()->
|
1060 |
}
|
1061 |
|
1062 |
for ($i = 1; $i < NEWSLETTER_PROFILE_MAX; $i++) {
|
@@ -1076,7 +1088,7 @@ class Newsletter extends NewsletterModule {
|
|
1076 |
$nk = $user->id . '-' . $user->token;
|
1077 |
|
1078 |
$options_subscription = NewsletterSubscription::instance()->options;
|
1079 |
-
|
1080 |
if ($email) {
|
1081 |
$text = str_replace('{email_id}', $email->id, $text);
|
1082 |
$text = str_replace('{email_subject}', $email->subject, $text);
|
@@ -1209,7 +1221,18 @@ class Newsletter extends NewsletterModule {
|
|
1209 |
return $user;
|
1210 |
}
|
1211 |
|
|
|
1212 |
function save_email($email, $return_format = OBJECT) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1213 |
return $this->store->save(NEWSLETTER_EMAILS_TABLE, $email, $return_format);
|
1214 |
}
|
1215 |
|
@@ -1353,6 +1376,32 @@ class Newsletter extends NewsletterModule {
|
|
1353 |
return $value;
|
1354 |
}
|
1355 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1356 |
/**
|
1357 |
* Load plugin textdomain.
|
1358 |
*
|
@@ -1392,19 +1441,9 @@ require_once NEWSLETTER_DIR . '/wp/wp.php';
|
|
1392 |
if (!is_dir(WP_PLUGIN_DIR . '/newsletter-feed')) {
|
1393 |
if (is_file(WP_CONTENT_DIR . '/extensions/newsletter/feed/feed.php')) {
|
1394 |
require_once WP_CONTENT_DIR . '/extensions/newsletter/feed/feed.php';
|
1395 |
-
} else {
|
1396 |
-
if (get_option('newsletter_feed_demo_disable') != 1) {
|
1397 |
-
if (is_file(NEWSLETTER_DIR . '/feed/feed.php')) {
|
1398 |
-
require_once NEWSLETTER_DIR . '/feed/feed.php';
|
1399 |
-
}
|
1400 |
-
}
|
1401 |
}
|
1402 |
}
|
1403 |
|
1404 |
-
//if (is_file(WP_CONTENT_DIR . '/extensions/newsletter/updates/updates.php')) {
|
1405 |
-
// require_once WP_CONTENT_DIR . '/extensions/newsletter/updates/updates.php';
|
1406 |
-
//}
|
1407 |
-
|
1408 |
if (!is_dir(WP_PLUGIN_DIR . '/newsletter-followup')) {
|
1409 |
if (is_file(WP_CONTENT_DIR . '/extensions/newsletter/followup/followup.php')) {
|
1410 |
require_once WP_CONTENT_DIR . '/extensions/newsletter/followup/followup.php';
|
@@ -1448,7 +1487,8 @@ if (!is_dir(WP_PLUGIN_DIR . '/newsletter-mandrill')) {
|
|
1448 |
}
|
1449 |
|
1450 |
|
1451 |
-
require_once(dirname(__FILE__) . '/widget.php');
|
|
|
1452 |
|
1453 |
register_activation_hook(__FILE__, 'newsletter_activate');
|
1454 |
|
@@ -1471,7 +1511,7 @@ function newsletter_deactivate() {
|
|
1471 |
|
1472 |
function tnpc_render_callback() {
|
1473 |
$block_options = get_option('newsletter_main');
|
1474 |
-
include NEWSLETTER_DIR . '/emails/tnp-composer/blocks/' . sanitize_file_name($_POST['b']) . '.
|
1475 |
wp_die(); // this is required to terminate immediately and return a proper response
|
1476 |
}
|
1477 |
|
4 |
Plugin Name: Newsletter
|
5 |
Plugin URI: http://www.thenewsletterplugin.com/plugins/newsletter
|
6 |
Description: Newsletter is a cool plugin to create your own subscriber list, to send newsletters, to build your business. <strong>Before update give a look to <a href="http://www.thenewsletterplugin.com/category/release">this page</a> to know what's changed.</strong>
|
7 |
+
Version: 4.8.0
|
8 |
Author: Stefano Lissa & The Newsletter Team
|
9 |
Author URI: http://www.thenewsletterplugin.com
|
10 |
Disclaimer: Use at your own risk. No warranty expressed or implied is provided.
|
11 |
Text Domain: newsletter
|
12 |
|
13 |
+
Copyright 2009-2017 The Newsletter Team (email: info@thenewsletterplugin.com, web: http://www.thenewsletterplugin.com)
|
14 |
*/
|
15 |
|
16 |
// Used as dummy parameter on css and js links
|
17 |
+
define('NEWSLETTER_VERSION', '4.8.0');
|
18 |
|
19 |
global $wpdb, $newsletter;
|
20 |
|
106 |
var $action = '';
|
107 |
static $instance;
|
108 |
|
109 |
+
const MAX_CRON_SAMPLES = 100;
|
110 |
|
111 |
/**
|
112 |
* @return Newsletter
|
127 |
$this->action = $_POST['na'];
|
128 |
}
|
129 |
|
130 |
+
if (!empty($this->action)) {
|
131 |
+
// For old versions of wp super cache
|
132 |
+
$_GET['preview'] = 'true';
|
133 |
+
}
|
134 |
+
|
135 |
$this->time_start = time();
|
136 |
|
137 |
// Here because the upgrade is called by the parent constructor and uses the scheduler
|
155 |
|
156 |
if (defined('DOING_CRON') && DOING_CRON) {
|
157 |
$calls = get_option('newsletter_diagnostic_cron_calls', array());
|
|
|
|
|
|
|
158 |
$calls[] = time();
|
159 |
if (count($calls) > self::MAX_CRON_SAMPLES) {
|
160 |
array_shift($calls);
|
161 |
}
|
162 |
+
update_option('newsletter_diagnostic_cron_calls', $calls, false);
|
163 |
+
|
164 |
+
if (count($calls) > 50) {
|
165 |
+
$mean = 0;
|
166 |
+
$max = 0;
|
167 |
+
$min = 0;
|
168 |
+
for ($i = 1; $i < count($calls); $i++) {
|
169 |
+
$diff = $calls[$i] - $calls[$i - 1];
|
170 |
+
$mean += $diff;
|
171 |
+
if ($min == 0 || $min > $diff) {
|
172 |
+
$min = $diff;
|
173 |
+
}
|
174 |
+
if ($max < $diff) {
|
175 |
+
$max = $diff;
|
176 |
+
}
|
177 |
+
}
|
178 |
+
$mean = $mean / count($calls) - 1;
|
179 |
+
update_option('newsletter_diagnostic_cron_data', array('mean' => $mean, 'max' => $max, 'min' => $min), false);
|
180 |
+
}
|
181 |
return;
|
182 |
}
|
183 |
|
205 |
add_action('wp_ajax_tnpc_render', 'tnpc_render_callback');
|
206 |
add_action('wp_ajax_tnpc_preview', 'tnpc_preview_callback');
|
207 |
add_action('wp_ajax_tnpc_css', 'tnpc_css_callback');
|
208 |
+
|
209 |
+
add_action('admin_menu', array($this, 'add_extensions_menu'), 90);
|
210 |
}
|
211 |
}
|
212 |
|
370 |
|
371 |
$this->add_menu_page('index', 'Dashboard');
|
372 |
$this->add_menu_page('main', 'Settings and More');
|
373 |
+
|
374 |
$this->add_admin_page('smtp', 'SMTP');
|
375 |
+
$this->add_admin_page('status', 'Status');
|
376 |
$this->add_admin_page('info', 'Company info');
|
377 |
$this->add_admin_page('diagnostic', 'Diagnostic');
|
378 |
$this->add_admin_page('startup', 'Quick Startup');
|
379 |
}
|
380 |
|
381 |
+
function add_extensions_menu() {
|
382 |
+
$this->add_menu_page('extensions', '<span style="color:#27AE60; font-weight: bold;">Extensions</span>');
|
383 |
+
}
|
384 |
+
|
385 |
/**
|
386 |
* Returns a set of warnings about this installtion the suser should be aware of. Return an empty string
|
387 |
* if there are no warnings.
|
393 |
$warnings .= 'The delivery engine is off (it should never be off). Deactivate and reactivate the plugin. Thank you.<br>';
|
394 |
} else if (time() - $x > 900) {
|
395 |
$warnings .= 'The cron system seems not running correctly. See <a href="http://www.thenewsletterplugin.com/how-to-make-the-wordpress-cron-work" target="_blank">this page</a> for more information.<br>';
|
396 |
+
} else {
|
397 |
+
$cron_data = get_option('newsletter_diagnostic_cron_data');
|
398 |
+
if ($cron_data && $cron_data['mean'] > 400) {
|
399 |
+
$warnings .= 'The WordPress internal schedule is not triggered enough often. See <a href="http://www.thenewsletterplugin.com/how-to-make-the-wordpress-cron-work" target="_blank">this page</a> for more information.<br>';
|
400 |
+
}
|
401 |
}
|
402 |
|
403 |
if (!empty($warnings)) {
|
410 |
function hook_init() {
|
411 |
global $cache_stop, $hyper_cache_stop, $wpdb;
|
412 |
|
413 |
+
if (isset($this->options['debug']) && $this->options['debug'] == 1) {
|
414 |
+
ini_set('log_errors', 1);
|
415 |
+
ini_set('error_log', WP_CONTENT_DIR . '/logs/newsletter/php-' . date('Y-m') . '-' . get_option('newsletter_logger_secret') . '.txt');
|
416 |
+
}
|
417 |
+
|
418 |
if (is_admin()) {
|
419 |
if ($this->is_admin_page()) {
|
420 |
wp_enqueue_script('jquery-ui-tabs');
|
421 |
+
//wp_enqueue_script('media-upload');
|
422 |
+
//wp_enqueue_script('thickbox');
|
423 |
+
//wp_enqueue_style('thickbox');
|
424 |
wp_enqueue_media();
|
425 |
|
426 |
$dismissed = get_option('newsletter_dismissed', array());
|
456 |
$this->message = $options_followup['unsubscribed_text'];
|
457 |
return;
|
458 |
}
|
459 |
+
|
460 |
+
if ($action == 'test') {
|
461 |
+
echo 'ok';
|
462 |
+
die();
|
463 |
+
}
|
464 |
}
|
465 |
|
466 |
function is_admin_page() {
|
488 |
echo $this->options['css'];
|
489 |
echo "</style>";
|
490 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
491 |
}
|
492 |
|
493 |
+
function relink($text, $email_id, $user_id, $email_token = '') {
|
494 |
+
return NewsletterStatistics::instance()->relink($text, $email_id, $user_id, $email_token);
|
495 |
}
|
496 |
|
497 |
/**
|
503 |
$this->logger->debug('hook_newsletter> Start');
|
504 |
|
505 |
// Do not accept job activation before at least 4 minutes are elapsed from the last run.
|
506 |
+
if (!$this->check_transient('engine', NEWSLETTER_CRON_INTERVAL)) {
|
507 |
return;
|
508 |
+
}
|
509 |
|
510 |
// Retrieve all email in "sending" status
|
511 |
$emails = $wpdb->get_results("select * from " . NEWSLETTER_EMAILS_TABLE . " where status='sending' and send_on<" . time() . " order by id asc");
|
512 |
$this->logger->debug('hook_newsletter> Emails found in sending status: ' . count($emails));
|
513 |
+
foreach ($emails as $email) {
|
514 |
$this->logger->debug('hook_newsletter> Sending email ' . $email->id);
|
515 |
+
if (!$this->send($email)) {
|
516 |
break;
|
517 |
+
}
|
518 |
}
|
519 |
// Remove the semaphore so the delivery engine can be activated again
|
520 |
$this->delete_transient('engine');
|
523 |
}
|
524 |
|
525 |
/**
|
526 |
+
* Sends an email to targeted users or to given users. If a list of users is given (usually a list of test users)
|
527 |
* the query inside the email to retrieve users is not used.
|
528 |
*
|
529 |
* @global wpdb $wpdb
|
535 |
function send($email, $users = null) {
|
536 |
global $wpdb;
|
537 |
|
538 |
+
if (is_array($email)) {
|
539 |
$email = (object) $email;
|
540 |
+
}
|
541 |
|
542 |
+
// This stops the update of last_id and sent fields since it's not a scheduled delivery but a test or something else (like an autoresponder)
|
543 |
$test = $users != null;
|
544 |
|
545 |
if ($users == null) {
|
562 |
}
|
563 |
}
|
564 |
|
565 |
+
$start_time = microtime(true);
|
566 |
+
$count = 0;
|
567 |
+
$result = true;
|
568 |
+
|
569 |
+
foreach ($users as $user) {
|
570 |
|
571 |
// Before try to send, check the limits.
|
572 |
+
if (!$test && $this->limits_exceeded()) {
|
573 |
+
$result = false;
|
574 |
+
break;
|
575 |
+
}
|
576 |
|
577 |
$headers = array('List-Unsubscribe' => '<' . home_url('/') . '?na=u&nk=' . $user->id . '-' . $user->token . '>');
|
578 |
$headers['Precedence'] = 'bulk';
|
588 |
|
589 |
|
590 |
if ($email->track == 1) {
|
591 |
+
$m = $this->relink($m, $email->id, $user->id, $email->token);
|
592 |
}
|
593 |
|
594 |
$s = $this->replace($email->subject, $user);
|
612 |
$wpdb->query($wpdb->prepare("insert into " . $wpdb->prefix . 'newsletter_sent (user_id, email_id, time, status, error) values (%d, %d, %d, %d, %s) on duplicate key update time=%d, status=%d, error=%s', $user->id, $email->id, time(), $status, $this->mail_last_error, time(), $status, $this->mail_last_error));
|
613 |
|
614 |
$this->email_limit--;
|
615 |
+
$count++;
|
616 |
}
|
617 |
+
$end_time = microtime(true);
|
618 |
|
619 |
+
if ($count > 0) {
|
620 |
+
$send_calls = get_option('newsletter_diagnostic_send_calls', array());
|
621 |
+
$send_calls[] = array($start_time, $end_time, $count, $result);
|
622 |
+
|
623 |
+
if (count($send_calls) > self::MAX_CRON_SAMPLES)
|
624 |
+
array_shift($send_calls);
|
625 |
+
|
626 |
+
update_option('newsletter_diagnostic_send_calls', $send_calls, false);
|
627 |
+
}
|
628 |
+
return $result;
|
629 |
}
|
630 |
|
631 |
/**
|
662 |
@set_time_limit((int) $this->options['php_time_limit']);
|
663 |
} else if (defined('NEWSLETTER_MAX_EXECUTION_TIME')) {
|
664 |
@set_time_limit(NEWSLETTER_MAX_EXECUTION_TIME);
|
665 |
+
} else {
|
666 |
+
@set_time_limit(NEWSLETTER_CRON_INTERVAL);
|
667 |
}
|
668 |
|
669 |
$max_time = (int) (@ini_get('max_execution_time') * 0.95);
|
719 |
|
720 |
function mail($to, $subject, $message, $headers = null) {
|
721 |
$this->mail_last_error = '';
|
722 |
+
//$this->logger->debug('mail> To: ' . $to);
|
723 |
+
//$this->logger->debug('mail> Subject: ' . $subject);
|
724 |
if (empty($subject)) {
|
725 |
+
$this->logger->error('mail> Subject empty, skipped');
|
726 |
return true;
|
727 |
}
|
728 |
|
746 |
}
|
747 |
|
748 |
if ($this->mail_method != null) {
|
749 |
+
//$this->logger->debug('mail> alternative mail method found');
|
750 |
return call_user_func($this->mail_method, $to, $subject, $message, $headers);
|
751 |
}
|
752 |
|
851 |
require_once ABSPATH . WPINC . '/class-smtp.php';
|
852 |
|
853 |
$smtp_options = $this->get_smtp_options();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
854 |
|
855 |
|
856 |
if ($smtp_options['enabled'] == 1) {
|
969 |
list ($id, $token) = @explode('-', $_COOKIE['newsletter'], 2);
|
970 |
}
|
971 |
|
972 |
+
if (!empty($id) && !empty($token)) {
|
973 |
return $wpdb->get_row($wpdb->prepare("select * from " . NEWSLETTER_USERS_TABLE . " where id=%d and token=%s limit 1", $id, $token));
|
974 |
}
|
975 |
|
979 |
|
980 |
$user = $this->get_user_by_wp_user_id($wp_user_id);
|
981 |
return $user;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
982 |
}
|
983 |
|
984 |
function replace_date($text) {
|
1068 |
$text = str_replace('%7Bkey%7D', $user->id . '-' . $user->token, $text);
|
1069 |
|
1070 |
if (strpos($text, '{profile_form}') !== false) {
|
1071 |
+
$text = str_replace('{profile_form}', NewsletterSubscription::instance()->get_profile_form_html5($user), $text);
|
1072 |
}
|
1073 |
|
1074 |
for ($i = 1; $i < NEWSLETTER_PROFILE_MAX; $i++) {
|
1088 |
$nk = $user->id . '-' . $user->token;
|
1089 |
|
1090 |
$options_subscription = NewsletterSubscription::instance()->options;
|
1091 |
+
|
1092 |
if ($email) {
|
1093 |
$text = str_replace('{email_id}', $email->id, $text);
|
1094 |
$text = str_replace('{email_subject}', $email->subject, $text);
|
1221 |
return $user;
|
1222 |
}
|
1223 |
|
1224 |
+
/** Save an email and provide serialization, if needed, of $email['options']. */
|
1225 |
function save_email($email, $return_format = OBJECT) {
|
1226 |
+
if (is_object($email)) {
|
1227 |
+
$email = (array) $email;
|
1228 |
+
}
|
1229 |
+
|
1230 |
+
if (isset($email['subject'])) {
|
1231 |
+
if (mb_strlen($email['subject'], 'UTF-8') > 250) {
|
1232 |
+
$email['subject'] = mb_substr($email['subject'], 0, 250, 'UTF-8');
|
1233 |
+
}
|
1234 |
+
}
|
1235 |
+
if (isset($email['options']) && is_array($email['options'])) $email['options'] = serialize($email['options']);
|
1236 |
return $this->store->save(NEWSLETTER_EMAILS_TABLE, $email, $return_format);
|
1237 |
}
|
1238 |
|
1376 |
return $value;
|
1377 |
}
|
1378 |
|
1379 |
+
/**
|
1380 |
+
* Retrieve the extensions form the tnp site
|
1381 |
+
* @return array
|
1382 |
+
*/
|
1383 |
+
function getTnpExtensions() {
|
1384 |
+
|
1385 |
+
$extensions_json = get_transient('tnp_extensions_json');
|
1386 |
+
|
1387 |
+
if (false === $extensions_json) {
|
1388 |
+
$url = "http://www.thenewsletterplugin.com/wp-content/extensions.json";
|
1389 |
+
if (!empty($this->options['contract_key'])) {
|
1390 |
+
$url = "http://www.thenewsletterplugin.com/wp-content/plugins/file-commerce-pro/extensions.php?k=" . $this->options['contract_key'];
|
1391 |
+
}
|
1392 |
+
|
1393 |
+
$extensions_response = wp_remote_get($url);
|
1394 |
+
$extensions_json = wp_remote_retrieve_body($extensions_response);
|
1395 |
+
if (!empty($extensions_json)) {
|
1396 |
+
set_transient('tnp_extensions_json', $extensions_json, 24 * 60 * 60);
|
1397 |
+
}
|
1398 |
+
}
|
1399 |
+
|
1400 |
+
$extensions = json_decode($extensions_json);
|
1401 |
+
|
1402 |
+
return $extensions;
|
1403 |
+
}
|
1404 |
+
|
1405 |
/**
|
1406 |
* Load plugin textdomain.
|
1407 |
*
|
1441 |
if (!is_dir(WP_PLUGIN_DIR . '/newsletter-feed')) {
|
1442 |
if (is_file(WP_CONTENT_DIR . '/extensions/newsletter/feed/feed.php')) {
|
1443 |
require_once WP_CONTENT_DIR . '/extensions/newsletter/feed/feed.php';
|
|
|
|
|
|
|
|
|
|
|
|
|
1444 |
}
|
1445 |
}
|
1446 |
|
|
|
|
|
|
|
|
|
1447 |
if (!is_dir(WP_PLUGIN_DIR . '/newsletter-followup')) {
|
1448 |
if (is_file(WP_CONTENT_DIR . '/extensions/newsletter/followup/followup.php')) {
|
1449 |
require_once WP_CONTENT_DIR . '/extensions/newsletter/followup/followup.php';
|
1487 |
}
|
1488 |
|
1489 |
|
1490 |
+
require_once(dirname(__FILE__) . '/widget/standard.php');
|
1491 |
+
require_once(dirname(__FILE__) . '/widget/minimal.php');
|
1492 |
|
1493 |
register_activation_hook(__FILE__, 'newsletter_activate');
|
1494 |
|
1511 |
|
1512 |
function tnpc_render_callback() {
|
1513 |
$block_options = get_option('newsletter_main');
|
1514 |
+
include NEWSLETTER_DIR . '/emails/tnp-composer/blocks/' . sanitize_file_name($_POST['b']) . '.php';
|
1515 |
wp_die(); // this is required to terminate immediately and return a proper response
|
1516 |
}
|
1517 |
|
readme.txt
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
=== Newsletter ===
|
2 |
Tags: newsletter,email,subscription,mass mail,list build,email marketing,direct mailing,automation,automated
|
3 |
Requires at least: 3.4.0
|
4 |
-
Tested up to: 4.
|
5 |
-
Stable tag: 4.
|
6 |
Contributors: satollo,webagile,michael-travan
|
7 |
|
8 |
Add a real newsletter system to your blog. For free. With unlimited newsletters and subscribers.
|
@@ -77,7 +77,140 @@ Thank you, The Newsletter Team
|
|
77 |
|
78 |
== Changelog ==
|
79 |
|
80 |
-
= 4.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
|
82 |
* New unified themes and composer selection screen
|
83 |
* Fixed the WP integration panel (incompatibility with WP 4.5.3)
|
@@ -306,7 +439,7 @@ Thank you, The Newsletter Team
|
|
306 |
* Added import subscribers from CSV file
|
307 |
* Updated the WP compatibility version number
|
308 |
* Fixed the save button on sent emails
|
309 |
-
* Fixed the List
|
310 |
|
311 |
= 3.7.8 =
|
312 |
|
1 |
=== Newsletter ===
|
2 |
Tags: newsletter,email,subscription,mass mail,list build,email marketing,direct mailing,automation,automated
|
3 |
Requires at least: 3.4.0
|
4 |
+
Tested up to: 4.7.2
|
5 |
+
Stable tag: 4.8.0
|
6 |
Contributors: satollo,webagile,michael-travan
|
7 |
|
8 |
Add a real newsletter system to your blog. For free. With unlimited newsletters and subscribers.
|
77 |
|
78 |
== Changelog ==
|
79 |
|
80 |
+
= 4.8.0 =
|
81 |
+
|
82 |
+
* New media selection on newsletter editor with size picker
|
83 |
+
* Fixed the required attribute on profile form
|
84 |
+
* Support for Analytics extension
|
85 |
+
|
86 |
+
= 4.7.9 =
|
87 |
+
|
88 |
+
* Removed the TGMPA library
|
89 |
+
* Some CSS fixes
|
90 |
+
* Fix few debug notices
|
91 |
+
|
92 |
+
= 4.7.8 =
|
93 |
+
|
94 |
+
* Old TGMPA library compatibility
|
95 |
+
|
96 |
+
= 4.7.7 =
|
97 |
+
|
98 |
+
* New extensions panel
|
99 |
+
* Minor fixes and enhancements
|
100 |
+
* New media selection on newsletter edit panel
|
101 |
+
* Removed enqueuing of no more used scripts
|
102 |
+
* Fixed the subscriber count on targeting panel
|
103 |
+
|
104 |
+
= 4.7.6 =
|
105 |
+
|
106 |
+
* New status panel
|
107 |
+
|
108 |
+
= 4.7.5 =
|
109 |
+
|
110 |
+
* Removed references to old css
|
111 |
+
* Fixed the relative URLs problem in the composer
|
112 |
+
|
113 |
+
= 4.7.4 =
|
114 |
+
|
115 |
+
* Improved widget CSS
|
116 |
+
* Added Instagram to social icons
|
117 |
+
* Little style improvements
|
118 |
+
|
119 |
+
= 4.7.3 =
|
120 |
+
|
121 |
+
* Added custom CSS field to customize the forms appearance
|
122 |
+
* Added codemirror for CSS edit
|
123 |
+
* Added plugin version to style link
|
124 |
+
* Added plugin version to script link
|
125 |
+
* Corrected a tag in newsletter widget minimal
|
126 |
+
* Added line height on form fields
|
127 |
+
* Changed CSS class prefixes to tnp
|
128 |
+
* Fixed a divide by zero on diagnostic panel
|
129 |
+
* Improved the collection of emails sending speed data
|
130 |
+
* Fixed a bug when adding a new subscriber from the admin panel
|
131 |
+
|
132 |
+
= 4.7.2 =
|
133 |
+
|
134 |
+
* Fixed a debug notice
|
135 |
+
|
136 |
+
= 4.7.1 =
|
137 |
+
|
138 |
+
* Fixed missing files in the package
|
139 |
+
|
140 |
+
= 4.7.0 =
|
141 |
+
|
142 |
+
* Added the selection for the Newsletter messages dedicated page
|
143 |
+
* New forms CSS and validator
|
144 |
+
* New widget for a minimal form
|
145 |
+
* Use shortcode attribute "layout" to revert to old style table forms, using layout=table
|
146 |
+
* Added reset button for diagnostic scheduler statistics
|
147 |
+
|
148 |
+
= 4.6.8 =
|
149 |
+
|
150 |
+
* Fixed the image browser/upload URL error in themes
|
151 |
+
|
152 |
+
= 4.6.7 =
|
153 |
+
|
154 |
+
* Fixed blank page without a newsletter dedicated page
|
155 |
+
|
156 |
+
= 4.6.6 =
|
157 |
+
|
158 |
+
* Fixed the blocks reload
|
159 |
+
|
160 |
+
= 4.6.5 =
|
161 |
+
|
162 |
+
* Fixed the style stripped when switching back and forth betwenn the visual and raw editor (from version 4.6.4)
|
163 |
+
|
164 |
+
= 4.6.4 =
|
165 |
+
|
166 |
+
* Fixed the profile link in admin panels
|
167 |
+
* Fixed the composer editor
|
168 |
+
* Cleanup of old code
|
169 |
+
* Force the composer editor to keep the absolute urls
|
170 |
+
|
171 |
+
= 4.6.3 =
|
172 |
+
|
173 |
+
* Fixed the profile save with new action url
|
174 |
+
|
175 |
+
= 4.6.2 =
|
176 |
+
|
177 |
+
* Fixed the import option "override status" not working in update mode
|
178 |
+
* Fixed the missing http when the couldflare plugin is installed (!)
|
179 |
+
* Improved controls and security on open tracking link
|
180 |
+
* Added few new diagnostic parameters
|
181 |
+
|
182 |
+
= 4.6.1 =
|
183 |
+
|
184 |
+
* Fixed a security issue on admin side only exploitable by logged in admins
|
185 |
+
|
186 |
+
= 4.6.0 =
|
187 |
+
|
188 |
+
* Fixed debug notices on composer post blocks
|
189 |
+
* Improved image styles on composer hero block
|
190 |
+
* Added support for WP_Error in the logger
|
191 |
+
* Improved the license checking
|
192 |
+
|
193 |
+
= 4.5.9 =
|
194 |
+
|
195 |
+
* Fixed a PHP syntax error on composer panel
|
196 |
+
|
197 |
+
= 4.5.8 =
|
198 |
+
|
199 |
+
* Edit image alt text in the composer
|
200 |
+
* Fixed german characters problem on visual composer
|
201 |
+
* Added new data to diagnostic panel
|
202 |
+
* Change the export to be more compatible with specific blog installations
|
203 |
+
* Added translations to export panel
|
204 |
+
|
205 |
+
= 4.5.7 =
|
206 |
+
|
207 |
+
* Fixed the total sent email in dashboard
|
208 |
+
* Fixed the total sent number on newsletter list when an already sent newsletter is edited
|
209 |
+
* Removed the save button on sent newsletter
|
210 |
+
* Code cleanup
|
211 |
+
* Service message for stats panel of draft newsletters
|
212 |
+
|
213 |
+
= 4.5.6 =
|
214 |
|
215 |
* New unified themes and composer selection screen
|
216 |
* Fixed the WP integration panel (incompatibility with WP 4.5.3)
|
439 |
* Added import subscribers from CSV file
|
440 |
* Updated the WP compatibility version number
|
441 |
* Fixed the save button on sent emails
|
442 |
+
* Fixed the List-�Unsubscribe header with new URL schema
|
443 |
|
444 |
= 3.7.8 =
|
445 |
|
statistics/index.php
CHANGED
@@ -1,5 +1,7 @@
|
|
1 |
<?php
|
2 |
/* @var $wpdb wpdb */
|
|
|
|
|
3 |
require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
4 |
$module = NewsletterStatistics::instance();
|
5 |
$controls = new NewsletterControls();
|
@@ -48,25 +50,24 @@ $open_count_total = 0;
|
|
48 |
$click_count_total = 0;
|
49 |
foreach ($emails as $email) {
|
50 |
$entry = array();
|
51 |
-
$total_sent += $email->
|
52 |
-
if (empty($email->
|
53 |
// $entry[0] = date('Y-m-d', $email->send_on);
|
54 |
// $entry[1] = 0;
|
55 |
-
// $entry[2] = $email->subject;// . ' (' . percent($open_count, $email->
|
56 |
// $entry[3] = 0;
|
57 |
continue;
|
58 |
}
|
59 |
//$entry[0] = $email->subject . ' [' . date('Y-m-d', $email->send_on) . ', ' . $email->type . ']';
|
60 |
-
$total_sent += $email->total;
|
61 |
$entry[0] = date('Y-m-d', $email->send_on);
|
62 |
$open_count = $wpdb->get_var("select count(distinct user_id) from " . NEWSLETTER_STATS_TABLE . " where email_id=" . $email->id);
|
63 |
$open_count_total += $open_count;
|
64 |
-
$entry[1] = $open_count / $email->
|
65 |
$entry[1] = round($entry[1], 2);
|
66 |
-
$entry[2] = $email->subject; // . ' (' . percent($open_count, $email->
|
67 |
$click_count = $wpdb->get_var("select count(distinct user_id) from " . NEWSLETTER_STATS_TABLE . " where url<>'' and email_id=" . $email->id);
|
68 |
$click_count_total += $click_count;
|
69 |
-
$entry[3] = $click_count / $email->
|
70 |
$entry[3] = round($entry[3], 2);
|
71 |
|
72 |
$overview_labels[] = strftime('%a, %e %b', $email->send_on);
|
1 |
<?php
|
2 |
/* @var $wpdb wpdb */
|
3 |
+
if (!defined('ABSPATH')) exit;
|
4 |
+
|
5 |
require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
6 |
$module = NewsletterStatistics::instance();
|
7 |
$controls = new NewsletterControls();
|
50 |
$click_count_total = 0;
|
51 |
foreach ($emails as $email) {
|
52 |
$entry = array();
|
53 |
+
$total_sent += $email->sent;
|
54 |
+
if (empty($email->sent)) {
|
55 |
// $entry[0] = date('Y-m-d', $email->send_on);
|
56 |
// $entry[1] = 0;
|
57 |
+
// $entry[2] = $email->subject;// . ' (' . percent($open_count, $email->sent) . ')';
|
58 |
// $entry[3] = 0;
|
59 |
continue;
|
60 |
}
|
61 |
//$entry[0] = $email->subject . ' [' . date('Y-m-d', $email->send_on) . ', ' . $email->type . ']';
|
|
|
62 |
$entry[0] = date('Y-m-d', $email->send_on);
|
63 |
$open_count = $wpdb->get_var("select count(distinct user_id) from " . NEWSLETTER_STATS_TABLE . " where email_id=" . $email->id);
|
64 |
$open_count_total += $open_count;
|
65 |
+
$entry[1] = $open_count / $email->sent * 100;
|
66 |
$entry[1] = round($entry[1], 2);
|
67 |
+
$entry[2] = $email->subject; // . ' (' . percent($open_count, $email->sent) . ')';
|
68 |
$click_count = $wpdb->get_var("select count(distinct user_id) from " . NEWSLETTER_STATS_TABLE . " where url<>'' and email_id=" . $email->id);
|
69 |
$click_count_total += $click_count;
|
70 |
+
$entry[3] = $click_count / $email->sent * 100;
|
71 |
$entry[3] = round($entry[3], 2);
|
72 |
|
73 |
$overview_labels[] = strftime('%a, %e %b', $email->send_on);
|
statistics/link.php
DELETED
@@ -1,69 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
global $wpdb;
|
3 |
-
|
4 |
-
if (!defined('ABSPATH')) {
|
5 |
-
include '../../../../wp-load.php';
|
6 |
-
}
|
7 |
-
list($email_id, $user_id, $url, $anchor, $key) = explode(';', base64_decode($_GET['r']), 5);
|
8 |
-
|
9 |
-
if (!is_user_logged_in()) {
|
10 |
-
if (empty($email_id) || empty($user_id) || empty($url)) {
|
11 |
-
header("HTTP/1.0 404 Not Found");
|
12 |
-
die();
|
13 |
-
}
|
14 |
-
}
|
15 |
-
|
16 |
-
$parts = parse_url($url);
|
17 |
-
//die($url);
|
18 |
-
$verified = $parts['host'] == $_SERVER['HTTP_HOST'];
|
19 |
-
if (!$verified) {
|
20 |
-
$options = NewsletterStatistics::instance()->options;
|
21 |
-
$verified = $key == md5($email_id . ';' . $user_id . ';' . $url . ';' . $anchor . $options['key']);
|
22 |
-
}
|
23 |
-
|
24 |
-
// For feed by mail tests
|
25 |
-
if ($verified && empty($email_id) && is_user_logged_in()) {
|
26 |
-
header('Location: ' . $url);
|
27 |
-
die();
|
28 |
-
}
|
29 |
-
|
30 |
-
$ip = preg_replace( '/[^0-9a-fA-F:., ]/', '', $_SERVER['REMOTE_ADDR'] );
|
31 |
-
|
32 |
-
if ($verified) {
|
33 |
-
$wpdb->insert(NEWSLETTER_STATS_TABLE, array(
|
34 |
-
'email_id' => $email_id,
|
35 |
-
'user_id' => $user_id,
|
36 |
-
'url' => $url,
|
37 |
-
//'anchor' => $anchor,
|
38 |
-
'ip' => $ip
|
39 |
-
)
|
40 |
-
);
|
41 |
-
|
42 |
-
$wpdb->query($wpdb->prepare("update " . NEWSLETTER_SENT_TABLE . " set open=2, ip=%s where email_id=%d and user_id=%d limit 1", $ip, $email_id, $user_id));
|
43 |
-
|
44 |
-
$user = Newsletter::instance()->get_user($user_id);
|
45 |
-
if ($user) {
|
46 |
-
setcookie('newsletter', $user->id . '-' . $user->token, time() + 60 * 60 * 24 * 365, '/');
|
47 |
-
}
|
48 |
-
header('Location: ' . $url);
|
49 |
-
die();
|
50 |
-
} else {
|
51 |
-
header("HTTP/1.0 404 Not Found");
|
52 |
-
//header('Location: ' . home_url());
|
53 |
-
//die();
|
54 |
-
}
|
55 |
-
?><html>
|
56 |
-
<head>
|
57 |
-
<style>
|
58 |
-
body {
|
59 |
-
font-family: sans-serif;
|
60 |
-
}
|
61 |
-
</style>
|
62 |
-
</head>
|
63 |
-
<body>
|
64 |
-
<div style="max-width: 100%; width: 500px; margin: 40px auto; text-align: center">
|
65 |
-
<p>The requested URL (<?php echo esc_html($url) ?>) has not been verified.</p>
|
66 |
-
<p>You can follow it if you recognize it as a valid URL.</p>
|
67 |
-
</div>
|
68 |
-
</body>
|
69 |
-
</html>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
statistics/newsletters.php
CHANGED
@@ -1,4 +1,6 @@
|
|
1 |
<?php
|
|
|
|
|
2 |
require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
3 |
$module = NewsletterStatistics::instance();
|
4 |
$controls = new NewsletterControls();
|
@@ -68,9 +70,9 @@ function percentValue($value, $total) {
|
|
68 |
<?php if ($email->type != 'message' && $email->type != 'feed') continue; ?>
|
69 |
<tr>
|
70 |
<td><?php echo $email->id; ?></td>
|
71 |
-
<td><?php echo
|
72 |
-
<td><?php echo $module->get_email_type_label($email) ?></td>
|
73 |
-
<td><?php echo $module->get_email_status_label($email)?></td>
|
74 |
<td><?php if ($email->status == 'sent' || $email->status == 'sending') echo $email->sent . ' ' . __('of', 'newsletter') . ' ' . $email->total; ?></td>
|
75 |
<td><?php if ($email->status == 'sent' || $email->status == 'sending') echo $module->format_date($email->send_on); ?></td>
|
76 |
<td><?php echo $email->track == 1 ? 'Yes' : 'No'; ?></td>
|
1 |
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
|
4 |
require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
5 |
$module = NewsletterStatistics::instance();
|
6 |
$controls = new NewsletterControls();
|
70 |
<?php if ($email->type != 'message' && $email->type != 'feed') continue; ?>
|
71 |
<tr>
|
72 |
<td><?php echo $email->id; ?></td>
|
73 |
+
<td><?php echo esc_html($email->subject); ?></td>
|
74 |
+
<td><?php echo esc_html($module->get_email_type_label($email)) ?></td>
|
75 |
+
<td><?php echo esc_html($module->get_email_status_label($email)) ?></td>
|
76 |
<td><?php if ($email->status == 'sent' || $email->status == 'sending') echo $email->sent . ' ' . __('of', 'newsletter') . ' ' . $email->total; ?></td>
|
77 |
<td><?php if ($email->status == 'sent' || $email->status == 'sending') echo $module->format_date($email->send_on); ?></td>
|
78 |
<td><?php echo $email->track == 1 ? 'Yes' : 'No'; ?></td>
|
statistics/open.php
DELETED
@@ -1,21 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
global $wpdb;
|
3 |
-
|
4 |
-
if (!defined('ABSPATH')) {
|
5 |
-
require_once '../../../../wp-load.php';
|
6 |
-
}
|
7 |
-
list($email_id, $user_id) = explode(';', base64_decode($_GET['r']), 2);
|
8 |
-
$ip = preg_replace( '/[^0-9a-fA-F:., ]/', '', $_SERVER['REMOTE_ADDR'] );
|
9 |
-
$wpdb->insert(NEWSLETTER_STATS_TABLE, array(
|
10 |
-
'email_id' => $email_id,
|
11 |
-
'user_id' => $user_id,
|
12 |
-
'ip' => $ip
|
13 |
-
)
|
14 |
-
);
|
15 |
-
|
16 |
-
$wpdb->query($wpdb->prepare("update " . NEWSLETTER_SENT_TABLE . " set open=1, ip=%s where email_id=%d and user_id=%d and open=0 limit 1", $ip, $email_id, $user_id));
|
17 |
-
|
18 |
-
header('Content-Type: image/gif');
|
19 |
-
echo base64_decode('_R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7');
|
20 |
-
die();
|
21 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
statistics/settings.php
CHANGED
@@ -1,4 +1,6 @@
|
|
1 |
<?php
|
|
|
|
|
2 |
require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
3 |
$module = NewsletterStatistics::instance();
|
4 |
$controls = new NewsletterControls();
|
1 |
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
|
4 |
require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
5 |
$module = NewsletterStatistics::instance();
|
6 |
$controls = new NewsletterControls();
|
statistics/statistics.php
CHANGED
@@ -1,5 +1,8 @@
|
|
1 |
<?php
|
2 |
|
|
|
|
|
|
|
3 |
require_once NEWSLETTER_INCLUDES_DIR . '/module.php';
|
4 |
|
5 |
class NewsletterStatistics extends NewsletterModule {
|
@@ -17,38 +20,137 @@ class NewsletterStatistics extends NewsletterModule {
|
|
17 |
}
|
18 |
|
19 |
function __construct() {
|
20 |
-
global $wpdb;
|
21 |
-
|
22 |
parent::__construct('statistics', '1.1.6');
|
23 |
-
|
24 |
add_action('wp_loaded', array($this, 'hook_wp_loaded'));
|
25 |
}
|
26 |
|
|
|
|
|
|
|
|
|
27 |
function hook_wp_loaded() {
|
28 |
global $wpdb;
|
29 |
|
30 |
// Newsletter Link Tracking
|
31 |
if (isset($_GET['nltr'])) {
|
32 |
-
|
33 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
die();
|
35 |
}
|
36 |
|
37 |
// Newsletter Open Traking Image
|
38 |
if (isset($_GET['noti'])) {
|
39 |
-
|
40 |
-
|
41 |
-
$
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
|
47 |
header('Content-Type: image/gif');
|
48 |
echo base64_decode('_R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7');
|
49 |
die();
|
50 |
}
|
51 |
-
|
52 |
}
|
53 |
|
54 |
function upgrade() {
|
@@ -88,7 +190,6 @@ class NewsletterStatistics extends NewsletterModule {
|
|
88 |
$this->upgrade_query("ALTER TABLE `{$wpdb->prefix}newsletter_emails` ADD COLUMN `open_count` int UNSIGNED NOT NULL DEFAULT 0");
|
89 |
$this->upgrade_query("ALTER TABLE `{$wpdb->prefix}newsletter_emails` ADD COLUMN `click_count` int UNSIGNED NOT NULL DEFAULT 0");
|
90 |
$this->upgrade_query("alter table {$wpdb->prefix}newsletter_emails change column read_count open_count int not null default 0");
|
91 |
-
|
92 |
}
|
93 |
|
94 |
function admin_menu() {
|
@@ -101,12 +202,16 @@ class NewsletterStatistics extends NewsletterModule {
|
|
101 |
$this->add_admin_page('view_users', 'Statistics');
|
102 |
}
|
103 |
|
104 |
-
function relink($text, $email_id, $user_id) {
|
105 |
$this->relink_email_id = $email_id;
|
106 |
$this->relink_user_id = $user_id;
|
|
|
|
|
|
|
107 |
$text = preg_replace_callback('/(<[aA][^>]+href=["\'])([^>"\']+)(["\'][^>]*>)(.*?)(<\/[Aa]>)/', array($this, 'relink_callback'), $text);
|
108 |
|
109 |
-
$
|
|
|
110 |
return $text;
|
111 |
}
|
112 |
|
1 |
<?php
|
2 |
|
3 |
+
if (!defined('ABSPATH'))
|
4 |
+
exit;
|
5 |
+
|
6 |
require_once NEWSLETTER_INCLUDES_DIR . '/module.php';
|
7 |
|
8 |
class NewsletterStatistics extends NewsletterModule {
|
20 |
}
|
21 |
|
22 |
function __construct() {
|
|
|
|
|
23 |
parent::__construct('statistics', '1.1.6');
|
|
|
24 |
add_action('wp_loaded', array($this, 'hook_wp_loaded'));
|
25 |
}
|
26 |
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
* @global wpdb $wpdb
|
30 |
+
*/
|
31 |
function hook_wp_loaded() {
|
32 |
global $wpdb;
|
33 |
|
34 |
// Newsletter Link Tracking
|
35 |
if (isset($_GET['nltr'])) {
|
36 |
+
|
37 |
+
// Patch for links with ;
|
38 |
+
$parts = explode(';', base64_decode($_GET['nltr']));
|
39 |
+
$email_id = (int) array_shift($parts);
|
40 |
+
$user_id = (int) array_shift($parts);
|
41 |
+
$signature = array_pop($parts);
|
42 |
+
$anchor = array_pop($parts); // No more used
|
43 |
+
// The remaining elements are the url splitted when it contains
|
44 |
+
$url = esc_url_raw(implode(';', $parts));
|
45 |
+
|
46 |
+
//list($email_id, $user_id, $url, $anchor, $signature) = explode(';', base64_decode($_GET['nltr']), 5);
|
47 |
+
|
48 |
+
//$url = esc_url_raw($url);
|
49 |
+
//$user_id = (int) $user_id;
|
50 |
+
//$email_id = (int) $email_id;
|
51 |
+
|
52 |
+
if (empty($user_id) || empty($url)) {
|
53 |
+
header("HTTP/1.0 404 Not Found");
|
54 |
+
die('Invalid data');
|
55 |
+
}
|
56 |
+
|
57 |
+
$parts = parse_url($url);
|
58 |
+
|
59 |
+
$verified = $parts['host'] == $_SERVER['HTTP_HOST'];
|
60 |
+
if (!$verified) {
|
61 |
+
$verified = $signature == md5($email_id . ';' . $user_id . ';' . $url . ';' . $anchor . $this->options['key']);
|
62 |
+
}
|
63 |
+
|
64 |
+
if (!$verified) {
|
65 |
+
header("HTTP/1.0 404 Not Found");
|
66 |
+
die('Url not verified');
|
67 |
+
}
|
68 |
+
|
69 |
+
$user = Newsletter::instance()->get_user($user_id);
|
70 |
+
if (!$user) {
|
71 |
+
header("HTTP/1.0 404 Not Found");
|
72 |
+
die('Invalid subscriber');
|
73 |
+
}
|
74 |
+
|
75 |
+
// Test emails
|
76 |
+
if (empty($email_id)) {
|
77 |
+
header('Location: ' . $url);
|
78 |
+
die();
|
79 |
+
}
|
80 |
+
|
81 |
+
$email = $this->get_email($email_id);
|
82 |
+
if (!$email) {
|
83 |
+
header("HTTP/1.0 404 Not Found");
|
84 |
+
die('Invalid newsletter');
|
85 |
+
}
|
86 |
+
|
87 |
+
setcookie('newsletter', $user->id . '-' . $user->token, time() + 60 * 60 * 24 * 365, '/');
|
88 |
+
|
89 |
+
$ip = preg_replace('/[^0-9a-fA-F:., ]/', '', $_SERVER['REMOTE_ADDR']);
|
90 |
+
|
91 |
+
$wpdb->insert(NEWSLETTER_STATS_TABLE, array(
|
92 |
+
'email_id' => $email_id,
|
93 |
+
'user_id' => $user_id,
|
94 |
+
'url' => $url,
|
95 |
+
'ip' => $ip
|
96 |
+
)
|
97 |
+
);
|
98 |
+
|
99 |
+
$wpdb->query($wpdb->prepare("update " . NEWSLETTER_SENT_TABLE . " set open=2, ip=%s where email_id=%d and user_id=%d limit 1", $ip, $email_id, $user_id));
|
100 |
+
|
101 |
+
header('Location: ' . apply_filters('newsletter_redirect_url', $url, $email, $user));
|
102 |
die();
|
103 |
}
|
104 |
|
105 |
// Newsletter Open Traking Image
|
106 |
if (isset($_GET['noti'])) {
|
107 |
+
$this->logger->debug('Open tracking: ' . $_GET['noti']);
|
108 |
+
|
109 |
+
list($email_id, $user_id, $signature) = explode(';', base64_decode($_GET['noti']), 3);
|
110 |
+
|
111 |
+
$email = $this->get_email($email_id);
|
112 |
+
if (!$email) {
|
113 |
+
$this->logger->error('Open tracking request for unexistant email');
|
114 |
+
die();
|
115 |
+
}
|
116 |
+
|
117 |
+
$user = $this->get_user($user_id);
|
118 |
+
if (!$user) {
|
119 |
+
$this->logger->error('Open tracking request for unexistant subscriber');
|
120 |
+
die();
|
121 |
+
}
|
122 |
+
|
123 |
+
if ($email->token) {
|
124 |
+
$this->logger->debug('Signature: ' . $signature);
|
125 |
+
$s = md5($email_id . $user_id . $email->token);
|
126 |
+
if ($s != $signature) {
|
127 |
+
$this->logger->error('Open tracking request with wrong signature. Email token: ' . $email->token);
|
128 |
+
die();
|
129 |
+
}
|
130 |
+
} else {
|
131 |
+
$this->logger->info('Email with no token hence not signature to check');
|
132 |
+
}
|
133 |
+
|
134 |
+
$row = $wpdb->get_row($wpdb->prepare("select * from " . NEWSLETTER_STATS_TABLE . " where email_id=%d and user_id=%d and url='' limit 1", $email->id, $user->id));
|
135 |
+
if ($row) {
|
136 |
+
$this->logger->info('Open already registered');
|
137 |
+
// MAybe an update for some fields?
|
138 |
+
} else {
|
139 |
+
|
140 |
+
$res = $wpdb->insert(NEWSLETTER_STATS_TABLE, array(
|
141 |
+
'email_id' => (int) $email_id,
|
142 |
+
'user_id' => (int) $user_id,
|
143 |
+
'ip' => $_SERVER['REMOTE_ADDR'])
|
144 |
+
);
|
145 |
+
if (!$res) {
|
146 |
+
$this->logger->fatal($wpdb->last_error);
|
147 |
+
}
|
148 |
+
}
|
149 |
|
150 |
header('Content-Type: image/gif');
|
151 |
echo base64_decode('_R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7');
|
152 |
die();
|
153 |
}
|
|
|
154 |
}
|
155 |
|
156 |
function upgrade() {
|
190 |
$this->upgrade_query("ALTER TABLE `{$wpdb->prefix}newsletter_emails` ADD COLUMN `open_count` int UNSIGNED NOT NULL DEFAULT 0");
|
191 |
$this->upgrade_query("ALTER TABLE `{$wpdb->prefix}newsletter_emails` ADD COLUMN `click_count` int UNSIGNED NOT NULL DEFAULT 0");
|
192 |
$this->upgrade_query("alter table {$wpdb->prefix}newsletter_emails change column read_count open_count int not null default 0");
|
|
|
193 |
}
|
194 |
|
195 |
function admin_menu() {
|
202 |
$this->add_admin_page('view_users', 'Statistics');
|
203 |
}
|
204 |
|
205 |
+
function relink($text, $email_id, $user_id, $email_token = '') {
|
206 |
$this->relink_email_id = $email_id;
|
207 |
$this->relink_user_id = $user_id;
|
208 |
+
$this->relink_email_token = $email_token;
|
209 |
+
|
210 |
+
$this->logger->debug('Relink with token: ' . $email_token);
|
211 |
$text = preg_replace_callback('/(<[aA][^>]+href=["\'])([^>"\']+)(["\'][^>]*>)(.*?)(<\/[Aa]>)/', array($this, 'relink_callback'), $text);
|
212 |
|
213 |
+
$signature = md5($email_id . $user_id . $email_token);
|
214 |
+
$text = str_replace('</body>', '<img width="1" height="1" alt="" src="' . home_url('/') . '?noti=' . urlencode(base64_encode($email_id . ';' . $user_id . ';' . $signature)) . '"/></body>', $text);
|
215 |
return $text;
|
216 |
}
|
217 |
|
statistics/view-retarget.php
CHANGED
@@ -1,4 +1,6 @@
|
|
1 |
<?php
|
|
|
|
|
2 |
$email_id = (int) $_GET['id'];
|
3 |
$module = NewsletterStatistics::instance();
|
4 |
|
1 |
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
|
4 |
$email_id = (int) $_GET['id'];
|
5 |
$module = NewsletterStatistics::instance();
|
6 |
|
statistics/view-urls.php
CHANGED
@@ -1,4 +1,6 @@
|
|
1 |
<?php
|
|
|
|
|
2 |
$email_id = (int) $_GET['id'];
|
3 |
$module = NewsletterStatistics::instance();
|
4 |
|
1 |
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
|
4 |
$email_id = (int) $_GET['id'];
|
5 |
$module = NewsletterStatistics::instance();
|
6 |
|
statistics/view-users.php
CHANGED
@@ -1,4 +1,6 @@
|
|
1 |
<?php
|
|
|
|
|
2 |
$email_id = (int) $_GET['id'];
|
3 |
$module = NewsletterStatistics::instance();
|
4 |
|
1 |
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
|
4 |
$email_id = (int) $_GET['id'];
|
5 |
$module = NewsletterStatistics::instance();
|
6 |
|
statistics/view.php
CHANGED
@@ -1,4 +1,6 @@
|
|
1 |
<?php
|
|
|
|
|
2 |
require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
3 |
|
4 |
$module = NewsletterStatistics::instance();
|
@@ -32,19 +34,21 @@ if (true || $count == 0) {
|
|
32 |
$wpdb->query($wpdb->prepare("update " . $wpdb->prefix . "newsletter_sent s1 join " . $wpdb->prefix . "newsletter_stats s2 on s1.user_id=s2.user_id and s1.email_id=s2.email_id and s2.url<>'' and s1.email_id=%d set s1.open=2, s1.ip=s2.ip", $email->id));
|
33 |
}
|
34 |
|
35 |
-
$total_count = $total_sent = $email->
|
36 |
$open_count = (int) $wpdb->get_var("select count(distinct user_id) from " . NEWSLETTER_STATS_TABLE . " where email_id=" . $email_id);
|
37 |
$click_count = (int) $wpdb->get_var("select count(distinct user_id) from " . NEWSLETTER_STATS_TABLE . " where url<>'' and email_id=" . $email_id);
|
38 |
|
39 |
function percent($value, $total) {
|
40 |
-
if ($total == 0)
|
41 |
return '-';
|
|
|
42 |
return sprintf("%.2f", $value / $total * 100) . '%';
|
43 |
}
|
44 |
|
45 |
function percentValue($value, $total) {
|
46 |
-
if ($total == 0)
|
47 |
return 0;
|
|
|
48 |
return round($value / $total * 100);
|
49 |
}
|
50 |
?>
|
@@ -65,6 +69,12 @@ function percentValue($value, $total) {
|
|
65 |
|
66 |
|
67 |
<div id="tnp-body" style="min-width: 500px">
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
|
69 |
<form action="" method="post">
|
70 |
<?php $controls->init(); ?>
|
@@ -143,7 +153,7 @@ function percentValue($value, $total) {
|
|
143 |
<div class="tnp-data-value"><?php echo $email->sent; ?> of <?php echo $email->total; ?></div>
|
144 |
<?php else: ?>
|
145 |
<div class="tnp-data-title">Total Sent</div>
|
146 |
-
<div class="tnp-data-value"><?php echo $email->
|
147 |
<?php endif; ?>
|
148 |
</div>
|
149 |
<div class="tnp-data">
|
@@ -184,6 +194,8 @@ function percentValue($value, $total) {
|
|
184 |
|
185 |
|
186 |
</form>
|
|
|
|
|
187 |
|
188 |
</div>
|
189 |
<?php include NEWSLETTER_DIR . '/tnp-footer.php' ?>
|
1 |
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
|
4 |
require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
5 |
|
6 |
$module = NewsletterStatistics::instance();
|
34 |
$wpdb->query($wpdb->prepare("update " . $wpdb->prefix . "newsletter_sent s1 join " . $wpdb->prefix . "newsletter_stats s2 on s1.user_id=s2.user_id and s1.email_id=s2.email_id and s2.url<>'' and s1.email_id=%d set s1.open=2, s1.ip=s2.ip", $email->id));
|
35 |
}
|
36 |
|
37 |
+
$total_count = $total_sent = $email->sent;
|
38 |
$open_count = (int) $wpdb->get_var("select count(distinct user_id) from " . NEWSLETTER_STATS_TABLE . " where email_id=" . $email_id);
|
39 |
$click_count = (int) $wpdb->get_var("select count(distinct user_id) from " . NEWSLETTER_STATS_TABLE . " where url<>'' and email_id=" . $email_id);
|
40 |
|
41 |
function percent($value, $total) {
|
42 |
+
if ($total == 0) {
|
43 |
return '-';
|
44 |
+
}
|
45 |
return sprintf("%.2f", $value / $total * 100) . '%';
|
46 |
}
|
47 |
|
48 |
function percentValue($value, $total) {
|
49 |
+
if ($total == 0) {
|
50 |
return 0;
|
51 |
+
}
|
52 |
return round($value / $total * 100);
|
53 |
}
|
54 |
?>
|
69 |
|
70 |
|
71 |
<div id="tnp-body" style="min-width: 500px">
|
72 |
+
|
73 |
+
<?php if ($email->status == 'new') { ?>
|
74 |
+
|
75 |
+
<div class="tnp-warning"><?php _e('No data, newsletter not sent yet.', 'newsletter')?></div>
|
76 |
+
|
77 |
+
<?php } else { ?>
|
78 |
|
79 |
<form action="" method="post">
|
80 |
<?php $controls->init(); ?>
|
153 |
<div class="tnp-data-value"><?php echo $email->sent; ?> of <?php echo $email->total; ?></div>
|
154 |
<?php else: ?>
|
155 |
<div class="tnp-data-title">Total Sent</div>
|
156 |
+
<div class="tnp-data-value"><?php echo $email->sent; ?></div>
|
157 |
<?php endif; ?>
|
158 |
</div>
|
159 |
<div class="tnp-data">
|
194 |
|
195 |
|
196 |
</form>
|
197 |
+
|
198 |
+
<?php } // if "new" ?>
|
199 |
|
200 |
</div>
|
201 |
<?php include NEWSLETTER_DIR . '/tnp-footer.php' ?>
|
subscription/forms.php
CHANGED
@@ -1,4 +1,6 @@
|
|
1 |
<?php
|
|
|
|
|
2 |
@include_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
3 |
$controls = new NewsletterControls();
|
4 |
$module = NewsletterSubscription::instance();
|
1 |
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
|
4 |
@include_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
5 |
$controls = new NewsletterControls();
|
6 |
$module = NewsletterSubscription::instance();
|
subscription/languages/en_US.php
CHANGED
@@ -38,8 +38,8 @@ $options['subscription_text'] =
|
|
38 |
// Message show after a subbscription request has made.
|
39 |
$options['confirmation_text'] =
|
40 |
"<p>You have successfully subscribed to the newsletter. You'll
|
41 |
-
receive a confirmation email in few minutes. Please follow the
|
42 |
-
link
|
43 |
more than 15 minutes to appear in your mailbox, please check
|
44 |
your spam folder.</p>";
|
45 |
|
38 |
// Message show after a subbscription request has made.
|
39 |
$options['confirmation_text'] =
|
40 |
"<p>You have successfully subscribed to the newsletter. You'll
|
41 |
+
receive a confirmation email in a few minutes. Please follow the
|
42 |
+
link to confirm your subscription. If the email takes
|
43 |
more than 15 minutes to appear in your mailbox, please check
|
44 |
your spam folder.</p>";
|
45 |
|
subscription/lists.php
CHANGED
@@ -1,4 +1,6 @@
|
|
1 |
<?php
|
|
|
|
|
2 |
@include_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
3 |
$controls = new NewsletterControls();
|
4 |
$module = NewsletterSubscription::instance();
|
1 |
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
|
4 |
@include_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
5 |
$controls = new NewsletterControls();
|
6 |
$module = NewsletterSubscription::instance();
|
subscription/options.php
CHANGED
@@ -1,4 +1,6 @@
|
|
1 |
<?php
|
|
|
|
|
2 |
@include_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
3 |
$controls = new NewsletterControls();
|
4 |
$module = NewsletterSubscription::instance();
|
@@ -51,6 +53,10 @@ if ($controls->is_action()) {
|
|
51 |
|
52 |
$controls->data['confirmed_url'] = trim($controls->data['confirmed_url']);
|
53 |
$controls->data['confirmation_url'] = trim($controls->data['confirmation_url']);
|
|
|
|
|
|
|
|
|
54 |
|
55 |
$module->merge_options($controls->data);
|
56 |
$controls->add_message_saved();
|
@@ -70,7 +76,7 @@ if ($controls->is_action()) {
|
|
70 |
$page_id = wp_insert_post($page);
|
71 |
|
72 |
$controls->data['url'] = get_permalink($page_id);
|
73 |
-
$module->
|
74 |
}
|
75 |
|
76 |
if ($controls->is_action('reset')) {
|
@@ -121,8 +127,44 @@ if ($controls->is_action()) {
|
|
121 |
} else {
|
122 |
$controls->data = get_option('newsletter', array());
|
123 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
?>
|
125 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
126 |
<div class="wrap" id="tnp-wrap">
|
127 |
|
128 |
<?php include NEWSLETTER_DIR . '/tnp-header.php'; ?>
|
@@ -171,25 +213,20 @@ if ($controls->is_action()) {
|
|
171 |
<tr valign="top">
|
172 |
<th>Newsletter dedicated page</th>
|
173 |
<td>
|
174 |
-
<?php $controls->
|
175 |
<?php
|
176 |
-
if (empty($controls->data['url'])) {
|
177 |
$controls->button('create', 'Create a page for me');
|
178 |
}
|
179 |
?>
|
180 |
-
|
181 |
<p class="description">
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
<?php if (!empty($controls->data['url'])) { ?>
|
188 |
-
<br>
|
189 |
-
If something is not working as expected with this address you can empty the field above and save: a button will appear
|
190 |
-
to create that page automatically.
|
191 |
-
<?php } ?>
|
192 |
</p>
|
|
|
193 |
</td>
|
194 |
</tr>
|
195 |
<tr valign="top">
|
@@ -202,6 +239,15 @@ if ($controls->is_action()) {
|
|
202 |
</p>
|
203 |
</td>
|
204 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
205 |
</table>
|
206 |
</div>
|
207 |
|
1 |
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
|
4 |
@include_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
5 |
$controls = new NewsletterControls();
|
6 |
$module = NewsletterSubscription::instance();
|
53 |
|
54 |
$controls->data['confirmed_url'] = trim($controls->data['confirmed_url']);
|
55 |
$controls->data['confirmation_url'] = trim($controls->data['confirmation_url']);
|
56 |
+
|
57 |
+
if (!empty($controls->data['page'])) {
|
58 |
+
$controls->data['url'] = ''; // do not unset
|
59 |
+
}
|
60 |
|
61 |
$module->merge_options($controls->data);
|
62 |
$controls->add_message_saved();
|
76 |
$page_id = wp_insert_post($page);
|
77 |
|
78 |
$controls->data['url'] = get_permalink($page_id);
|
79 |
+
$module->merge_options($controls->data);
|
80 |
}
|
81 |
|
82 |
if ($controls->is_action('reset')) {
|
127 |
} else {
|
128 |
$controls->data = get_option('newsletter', array());
|
129 |
}
|
130 |
+
|
131 |
+
if (empty($controls->data['page'])) {
|
132 |
+
$controls->messages .= '<p>You should set a dedicated page for Newsletter which used to interact with your subscribers.</p>';
|
133 |
+
} else {
|
134 |
+
$post = get_post($controls->data['page']);
|
135 |
+
|
136 |
+
if (!$post || $post->post_status != 'publish') {
|
137 |
+
$controls->errors .= '<p>The dedicated page selected below does not exist anymore or has been unpublished. Please, select a different one.</p>';
|
138 |
+
} else {
|
139 |
+
if (strpos($post->post_content, '[newsletter]') === false) {
|
140 |
+
$controls->errors .= '<p>The dedicated page selected DOES NOT contain the [newsletter] shortcode. Please fix it. It should contain ONLY the [newsletter] shortcode.</p>';
|
141 |
+
}
|
142 |
+
}
|
143 |
+
}
|
144 |
+
|
145 |
?>
|
146 |
|
147 |
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.20.2/codemirror.css" type="text/css">
|
148 |
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.20.2/addon/hint/show-hint.css">
|
149 |
+
<style>
|
150 |
+
.CodeMirror {
|
151 |
+
border: 1px solid #ddd;
|
152 |
+
}
|
153 |
+
</style>
|
154 |
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.20.2/codemirror.js"></script>
|
155 |
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.20.2/mode/css/css.js"></script>
|
156 |
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.20.2/addon/hint/show-hint.js"></script>
|
157 |
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.20.2/addon/hint/css-hint.js"></script>
|
158 |
+
<script>
|
159 |
+
jQuery(function () {
|
160 |
+
var editor = CodeMirror.fromTextArea(document.getElementById("options-css"), {
|
161 |
+
lineNumbers: true,
|
162 |
+
mode: 'css',
|
163 |
+
extraKeys: {"Ctrl-Space": "autocomplete"}
|
164 |
+
});
|
165 |
+
});
|
166 |
+
</script>
|
167 |
+
|
168 |
<div class="wrap" id="tnp-wrap">
|
169 |
|
170 |
<?php include NEWSLETTER_DIR . '/tnp-header.php'; ?>
|
213 |
<tr valign="top">
|
214 |
<th>Newsletter dedicated page</th>
|
215 |
<td>
|
216 |
+
<?php $controls->page('page', 'The Newsletter standard unstyled page'); ?>
|
217 |
<?php
|
218 |
+
if (empty($controls->data['url']) && empty($controls->data['page'])) {
|
219 |
$controls->button('create', 'Create a page for me');
|
220 |
}
|
221 |
?>
|
222 |
+
<?php if (!empty($controls->data['url'])) { ?>
|
223 |
<p class="description">
|
224 |
+
<strong>
|
225 |
+
You're currently using the URL <code><?php echo esc_html($controls->data['url'])?></code>
|
226 |
+
as dedicated page. Please select the corrisponding page above (new as version 4.6.5+).
|
227 |
+
</strong>
|
|
|
|
|
|
|
|
|
|
|
|
|
228 |
</p>
|
229 |
+
<?php } ?>
|
230 |
</td>
|
231 |
</tr>
|
232 |
<tr valign="top">
|
239 |
</p>
|
240 |
</td>
|
241 |
</tr>
|
242 |
+
<tr valign="top">
|
243 |
+
<th><?php _e('Custom styles', 'newsletter')?></th>
|
244 |
+
<td>
|
245 |
+
<?php if (apply_filters('newsletter_enqueue_style', true) === false) { ?>
|
246 |
+
<p><strong>Warning: Newsletter styles and custom styles are disable by your theme or a plugin.</strong></p>
|
247 |
+
<?php } ?>
|
248 |
+
<?php $controls->textarea('css'); ?>
|
249 |
+
</td>
|
250 |
+
</tr>
|
251 |
</table>
|
252 |
</div>
|
253 |
|
subscription/page.php
CHANGED
@@ -12,7 +12,7 @@
|
|
12 |
//
|
13 |
// and modify that copy.
|
14 |
|
15 |
-
|
16 |
|
17 |
$module = NewsletterSubscription::instance();
|
18 |
$user = $module->get_user_from_request();
|
12 |
//
|
13 |
// and modify that copy.
|
14 |
|
15 |
+
if (!defined('ABSPATH')) exit;
|
16 |
|
17 |
$module = NewsletterSubscription::instance();
|
18 |
$user = $module->get_user_from_request();
|
subscription/profile.php
CHANGED
@@ -1,4 +1,6 @@
|
|
1 |
<?php
|
|
|
|
|
2 |
@include_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
3 |
$controls = new NewsletterControls();
|
4 |
$module = NewsletterSubscription::instance();
|
@@ -52,7 +54,6 @@ $rules = array(0 => 'Optional', 1 => 'Required');
|
|
52 |
<li><a href="#tabs-2">Main profile fields</a></li>
|
53 |
<li><a href="#tabs-3">Extra profile fields</a></li>
|
54 |
<li><a href="#tabs-5">Form code</a></li>
|
55 |
-
<li><a href="#tabs-6">Form style</a></li>
|
56 |
</ul>
|
57 |
|
58 |
<div id="tabs-2">
|
@@ -106,6 +107,7 @@ $rules = array(0 => 'Optional', 1 => 'Required');
|
|
106 |
male: <?php $controls->text('sex_male'); ?>
|
107 |
not specified: <?php $controls->text('sex_none'); ?>
|
108 |
</td></tr>
|
|
|
109 |
|
110 |
<tr><th>Salutation titles</th><td>
|
111 |
|
@@ -208,24 +210,6 @@ $rules = array(0 => 'Optional', 1 => 'Required');
|
|
208 |
|
209 |
</div>
|
210 |
|
211 |
-
<div id="tabs-6">
|
212 |
-
|
213 |
-
<table class="form-table">
|
214 |
-
<tr>
|
215 |
-
<th>Subscription form style</th>
|
216 |
-
<td>
|
217 |
-
<?php $controls->select('style', $module->get_styles()); ?>
|
218 |
-
</td>
|
219 |
-
</tr>
|
220 |
-
<tr>
|
221 |
-
<th>Widget style</th>
|
222 |
-
<td>
|
223 |
-
<?php $controls->select('widget_style', $module->get_styles()); ?>
|
224 |
-
</td>
|
225 |
-
</tr>
|
226 |
-
</table>
|
227 |
-
</div>
|
228 |
-
|
229 |
</div>
|
230 |
|
231 |
<p>
|
@@ -238,4 +222,4 @@ $rules = array(0 => 'Optional', 1 => 'Required');
|
|
238 |
|
239 |
<?php include NEWSLETTER_DIR . '/tnp-footer.php'; ?>
|
240 |
|
241 |
-
</div>
|
1 |
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
|
4 |
@include_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
5 |
$controls = new NewsletterControls();
|
6 |
$module = NewsletterSubscription::instance();
|
54 |
<li><a href="#tabs-2">Main profile fields</a></li>
|
55 |
<li><a href="#tabs-3">Extra profile fields</a></li>
|
56 |
<li><a href="#tabs-5">Form code</a></li>
|
|
|
57 |
</ul>
|
58 |
|
59 |
<div id="tabs-2">
|
107 |
male: <?php $controls->text('sex_male'); ?>
|
108 |
not specified: <?php $controls->text('sex_none'); ?>
|
109 |
</td></tr>
|
110 |
+
<tr><th>Rules</th><td><?php $controls->select('sex_rules', $rules); ?></td></tr>
|
111 |
|
112 |
<tr><th>Salutation titles</th><td>
|
113 |
|
210 |
|
211 |
</div>
|
212 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
213 |
</div>
|
214 |
|
215 |
<p>
|
222 |
|
223 |
<?php include NEWSLETTER_DIR . '/tnp-footer.php'; ?>
|
224 |
|
225 |
+
</div>
|
subscription/style.css
ADDED
@@ -0,0 +1,261 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
|
3 |
+
THIS FILE IS OVERWRITTEN EVERY TIME YOU UPDATE THE PLUGIN.
|
4 |
+
USE THE CUSOTM CSS OPTION IN THE SUBSCRIPTION SETTING PANEL FOR YOUR
|
5 |
+
CUSTOM CSS RULES.
|
6 |
+
|
7 |
+
*/
|
8 |
+
|
9 |
+
.tnp-subscription {
|
10 |
+
font-size: 13px;
|
11 |
+
display: block;
|
12 |
+
margin: 15px auto;
|
13 |
+
max-width: 500px;
|
14 |
+
width: 100%;
|
15 |
+
}
|
16 |
+
|
17 |
+
/* Generic field wrapper */
|
18 |
+
.tnp-subscription div.tnp-field {
|
19 |
+
margin-bottom: 10px;
|
20 |
+
border: 0;
|
21 |
+
padding: 0;
|
22 |
+
}
|
23 |
+
|
24 |
+
.tnp-subscription label {
|
25 |
+
display: block;
|
26 |
+
color: inherit;
|
27 |
+
font-size: 14px;
|
28 |
+
font-weight: 700;
|
29 |
+
line-height: normal;
|
30 |
+
padding: 5px;
|
31 |
+
margin: 0;
|
32 |
+
}
|
33 |
+
|
34 |
+
.tnp-subscription input[type=text], .tnp-subscription input[type=email], .tnp-subscription input[type=submit], .tnp-subscription select {
|
35 |
+
width: 100%;
|
36 |
+
padding: 10px;
|
37 |
+
display: block;
|
38 |
+
border: 1px;
|
39 |
+
border-color: #ddd;
|
40 |
+
background-color: #f4f4f4;
|
41 |
+
color: #444;
|
42 |
+
font-size: 14px;
|
43 |
+
margin: 0;
|
44 |
+
line-height: normal;
|
45 |
+
box-sizing: border-box;
|
46 |
+
}
|
47 |
+
|
48 |
+
.tnp-subscription input[type=checkbox], .tnp-widget input[type=radio] {
|
49 |
+
width: auto;
|
50 |
+
display: inline;
|
51 |
+
}
|
52 |
+
|
53 |
+
/* Antireset - http://www.satollo.net/css-and-select-space-between-the-options-and-the-arrow */
|
54 |
+
.tnp-subscription select option {
|
55 |
+
margin-right: 10px;
|
56 |
+
}
|
57 |
+
|
58 |
+
.tnp-subscription input.tnp-submit {
|
59 |
+
background-color: #444;
|
60 |
+
color: #fff;
|
61 |
+
width: auto;
|
62 |
+
}
|
63 |
+
|
64 |
+
@media all and (max-width: 480px) {
|
65 |
+
.tnp-subscription input[type=submit] {
|
66 |
+
width: 100%;
|
67 |
+
}
|
68 |
+
}
|
69 |
+
|
70 |
+
|
71 |
+
/* Profile form */
|
72 |
+
|
73 |
+
.tnp-profile {
|
74 |
+
font-size: 13px;
|
75 |
+
}
|
76 |
+
|
77 |
+
.tnp-profile form .tnp-field {
|
78 |
+
margin-bottom: 10px;
|
79 |
+
border: 0;
|
80 |
+
padding: 0;
|
81 |
+
}
|
82 |
+
|
83 |
+
tnp-profile form .tnp-field label {
|
84 |
+
display: block;
|
85 |
+
color: #333;
|
86 |
+
font-size: 14px;
|
87 |
+
}
|
88 |
+
|
89 |
+
.tnp-profile form .tnp-field input[type=text],
|
90 |
+
.tnp-profile form .tnp-field input[type=email],
|
91 |
+
.tnp-profile form .tnp-field input[type=submit],
|
92 |
+
.tnp-profile form .tnp-field select {
|
93 |
+
padding: 10px;
|
94 |
+
display: block;
|
95 |
+
border: 1px;
|
96 |
+
border-color: #ddd;
|
97 |
+
background-color: #f4f4f4;
|
98 |
+
color: #444;
|
99 |
+
font-size: 14px;
|
100 |
+
margin: 0;
|
101 |
+
line-height: normal;
|
102 |
+
box-sizing: border-box;
|
103 |
+
border-radius: 0;
|
104 |
+
}
|
105 |
+
|
106 |
+
.tnp-profile form input[type=checkbox], .tnp-profile input[type=radio] {
|
107 |
+
width: auto;
|
108 |
+
display: inline;
|
109 |
+
}
|
110 |
+
|
111 |
+
.tnp-profile form .tnp-list-label {
|
112 |
+
margin-left: 15px;
|
113 |
+
}
|
114 |
+
|
115 |
+
/* Antireset - http://www.satollo.net/css-and-select-space-between-the-options-and-the-arrow */
|
116 |
+
.tnp-profile form select option {
|
117 |
+
margin-right: 10px;
|
118 |
+
}
|
119 |
+
|
120 |
+
.tnp-profile form .tnp-field input[type=submit] {
|
121 |
+
background-color: #444;
|
122 |
+
color: #fff;
|
123 |
+
}
|
124 |
+
|
125 |
+
|
126 |
+
|
127 |
+
.tnp-widget {
|
128 |
+
width: 100%;
|
129 |
+
display: block;
|
130 |
+
box-sizing: border-box;
|
131 |
+
}
|
132 |
+
|
133 |
+
.tnp-widget .tnp-field {
|
134 |
+
margin-bottom: 10px;
|
135 |
+
border: 0;
|
136 |
+
padding: 0;
|
137 |
+
}
|
138 |
+
|
139 |
+
.tnp-widget label {
|
140 |
+
display: block;
|
141 |
+
color: inherit;
|
142 |
+
font-size: 14px;
|
143 |
+
}
|
144 |
+
|
145 |
+
.tnp-widget input[type=text], .tnp-widget input[type=email], .tnp-widget input[type=submit], .tnp-widget select {
|
146 |
+
width: 100%;
|
147 |
+
padding: 10px;
|
148 |
+
display: block;
|
149 |
+
border: 1px solid #ddd ;
|
150 |
+
border-color: #ddd;
|
151 |
+
background-color: #f4f4f4;
|
152 |
+
color: #444;
|
153 |
+
font-size: 14px;
|
154 |
+
line-height: normal;
|
155 |
+
box-sizing: border-box;
|
156 |
+
}
|
157 |
+
|
158 |
+
.tnp-widget input[type=checkbox], .tnp-widget input[type=radio] {
|
159 |
+
width: auto;
|
160 |
+
display: inline;
|
161 |
+
}
|
162 |
+
|
163 |
+
/* Antireset - http://www.satollo.net/css-and-select-space-between-the-options-and-the-arrow */
|
164 |
+
.tnp-widget select option {
|
165 |
+
margin-right: 10px;
|
166 |
+
}
|
167 |
+
|
168 |
+
.tnp-widget input.tnp-submit {
|
169 |
+
background-color: #444;
|
170 |
+
color: #fff;
|
171 |
+
}
|
172 |
+
|
173 |
+
.tnp-field input[type="submit"] {
|
174 |
+
position: inherit;
|
175 |
+
}
|
176 |
+
|
177 |
+
.tnp-field label {
|
178 |
+
|
179 |
+
}
|
180 |
+
|
181 |
+
/* Newsletter Widget Minimal */
|
182 |
+
|
183 |
+
.tnp-widget-minimal {
|
184 |
+
width: 100%;
|
185 |
+
}
|
186 |
+
|
187 |
+
.tnp-widget-minimal form {
|
188 |
+
margin: 0;
|
189 |
+
padding: 0;
|
190 |
+
border: 0;
|
191 |
+
}
|
192 |
+
|
193 |
+
.tnp-widget-minimal input.tnp-email {
|
194 |
+
width: 100%;
|
195 |
+
box-sizing: border-box;
|
196 |
+
padding: 10px;
|
197 |
+
display: inline-block;
|
198 |
+
border: 1px;
|
199 |
+
border-color: #ddd;
|
200 |
+
background-color: #f4f4f4;
|
201 |
+
color: #444;
|
202 |
+
font-size: 14px;
|
203 |
+
box-sizing: border-box;
|
204 |
+
}
|
205 |
+
|
206 |
+
.tnp-widget-minimal input.tnp-submit {
|
207 |
+
width: 100%;
|
208 |
+
box-sizing: border-box;
|
209 |
+
padding: 10px;
|
210 |
+
display: inline-block;
|
211 |
+
border: 1px;
|
212 |
+
border-color: #ddd;
|
213 |
+
background-color: #444;
|
214 |
+
color: #fff;
|
215 |
+
font-size: 14px;
|
216 |
+
line-height: normal;
|
217 |
+
border-radius: 0px;
|
218 |
+
box-sizing: border-box;
|
219 |
+
}
|
220 |
+
|
221 |
+
|
222 |
+
.tnp-subscription-minimal {
|
223 |
+
width: 100%;
|
224 |
+
box-sizing: border-box;
|
225 |
+
}
|
226 |
+
|
227 |
+
.tnp-subscription-minimal form {
|
228 |
+
margin: 0;
|
229 |
+
padding: 0;
|
230 |
+
border: 0;
|
231 |
+
}
|
232 |
+
|
233 |
+
.tnp-subscription-minimal input.tnp-email {
|
234 |
+
width: 70%;
|
235 |
+
max-width: 300px;
|
236 |
+
box-sizing: border-box;
|
237 |
+
padding: 10px;
|
238 |
+
display: inline-block;
|
239 |
+
border: 1px;
|
240 |
+
border-color: #ddd;
|
241 |
+
background-color: #f4f4f4;
|
242 |
+
color: #444;
|
243 |
+
font-size: 14px;
|
244 |
+
box-sizing: border-box;
|
245 |
+
border-radius: 0px;
|
246 |
+
}
|
247 |
+
|
248 |
+
.tnp-subscription-minimal input.tnp-submit {
|
249 |
+
width: 29%;
|
250 |
+
box-sizing: border-box;
|
251 |
+
display: inline-block;
|
252 |
+
border: 1px;
|
253 |
+
border-color: #ddd;
|
254 |
+
background-color: #444;
|
255 |
+
color: #fff;
|
256 |
+
font-size: 14px;
|
257 |
+
box-sizing: border-box;
|
258 |
+
border-radius: 0px;
|
259 |
+
}
|
260 |
+
|
261 |
+
|
subscription/styles/gray.css
DELETED
@@ -1,34 +0,0 @@
|
|
1 |
-
.newsletter {
|
2 |
-
text-align: center;
|
3 |
-
}
|
4 |
-
|
5 |
-
.newsletter table {
|
6 |
-
margin-left: auto;
|
7 |
-
margin-right: auto;
|
8 |
-
text-align: left;
|
9 |
-
border: 1px solid #eee;
|
10 |
-
background-color: #f9f9f9;
|
11 |
-
box-shadow: 0px 0px 10px #999;
|
12 |
-
padding: 10px;
|
13 |
-
width: auto;
|
14 |
-
}
|
15 |
-
|
16 |
-
.newsletter th, .newsletter td {
|
17 |
-
padding: 10px;
|
18 |
-
border: 0;
|
19 |
-
}
|
20 |
-
|
21 |
-
.newsletter th {
|
22 |
-
text-align: right;
|
23 |
-
}
|
24 |
-
|
25 |
-
.newsletter-td-submit {
|
26 |
-
text-align: center;
|
27 |
-
}
|
28 |
-
|
29 |
-
.newsletter-submit {
|
30 |
-
font-size: 18px;
|
31 |
-
background-color: #eee;
|
32 |
-
padding: 10px;
|
33 |
-
border: 1px solid #ddd;
|
34 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
subscription/styles/neutral.css
DELETED
@@ -1,62 +0,0 @@
|
|
1 |
-
.newsletter, .newsletter td {
|
2 |
-
text-align: left;
|
3 |
-
font-family: sans-serif;
|
4 |
-
font-size: 14px;
|
5 |
-
line-height: normal;
|
6 |
-
}
|
7 |
-
|
8 |
-
.newsletter p {
|
9 |
-
margin: 0 0 10px 0;
|
10 |
-
padding: 0;
|
11 |
-
}
|
12 |
-
|
13 |
-
.newsletter input, .newsletter select {
|
14 |
-
border: 1px solid #ccc;
|
15 |
-
border-radius: 5px;
|
16 |
-
padding: 5px 8px 5px 8px;
|
17 |
-
color: #666;
|
18 |
-
background-color: #fff!important;
|
19 |
-
box-shadow: none;
|
20 |
-
line-height: normal;
|
21 |
-
font-size: 14px;
|
22 |
-
font-family: sans-serif;
|
23 |
-
}
|
24 |
-
|
25 |
-
.newsletter option {
|
26 |
-
padding-left: 0;
|
27 |
-
margin-left: 0;
|
28 |
-
}
|
29 |
-
.newsletter .newsletter-email {
|
30 |
-
|
31 |
-
}
|
32 |
-
|
33 |
-
.newsletter .newsletter-firstname {
|
34 |
-
|
35 |
-
}
|
36 |
-
|
37 |
-
.newsletter .newsletter-lastname {
|
38 |
-
|
39 |
-
}
|
40 |
-
|
41 |
-
.newsletter .newsletter-sex {
|
42 |
-
|
43 |
-
}
|
44 |
-
|
45 |
-
.newsletter .newsletter-profile {
|
46 |
-
|
47 |
-
}
|
48 |
-
|
49 |
-
.newsletter .newsletter-submit {
|
50 |
-
border: 1px solid #ccc;
|
51 |
-
border-radius: 3px;
|
52 |
-
background-image: url(widget-neutral/button.png);
|
53 |
-
color: #fff;
|
54 |
-
}
|
55 |
-
|
56 |
-
.newsletter td {
|
57 |
-
border: 0;
|
58 |
-
}
|
59 |
-
|
60 |
-
.newsletter table {
|
61 |
-
border: 0;
|
62 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
subscription/styles/shortcode/default.css
DELETED
@@ -1,36 +0,0 @@
|
|
1 |
-
.newsletter-form {
|
2 |
-
width: 100%;
|
3 |
-
display: block;
|
4 |
-
margin: 15px 0;
|
5 |
-
border: 0;
|
6 |
-
}
|
7 |
-
|
8 |
-
.newsletter-field {
|
9 |
-
clear: both;
|
10 |
-
text-align: left;
|
11 |
-
}
|
12 |
-
|
13 |
-
.newsletter-field label {
|
14 |
-
display: block;
|
15 |
-
font-size: 14px;
|
16 |
-
line-height: normal;
|
17 |
-
}
|
18 |
-
|
19 |
-
.newsletter-field input, .newsletter-field select {
|
20 |
-
padding: 5px;
|
21 |
-
font-size: 14px;
|
22 |
-
margin-right: 0;
|
23 |
-
line-height: normal;
|
24 |
-
border: 1px solid rgba(0,0,0,.1);
|
25 |
-
border-radius: 2px;
|
26 |
-
}
|
27 |
-
|
28 |
-
.newsletter-field-checkbox label, .newsletter-field-preference label, .newsletter-field-list label {
|
29 |
-
text-align: left;
|
30 |
-
display: inline;
|
31 |
-
padding-left: 1em;
|
32 |
-
}
|
33 |
-
|
34 |
-
@media all and (max-width: 480px) {
|
35 |
-
}
|
36 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
subscription/styles/white.css
DELETED
@@ -1,34 +0,0 @@
|
|
1 |
-
.newsletter {
|
2 |
-
text-align: center;
|
3 |
-
}
|
4 |
-
|
5 |
-
.newsletter table {
|
6 |
-
margin-left: auto;
|
7 |
-
margin-right: auto;
|
8 |
-
text-align: left;
|
9 |
-
border: 1px solid #eee;
|
10 |
-
background-color: #fff;
|
11 |
-
box-shadow: 0px 0px 10px #999;
|
12 |
-
padding: 10px;
|
13 |
-
width: auto;
|
14 |
-
}
|
15 |
-
|
16 |
-
.newsletter th, .newsletter td {
|
17 |
-
padding: 10px;
|
18 |
-
border: 0;
|
19 |
-
}
|
20 |
-
|
21 |
-
.newsletter th {
|
22 |
-
text-align: right;
|
23 |
-
}
|
24 |
-
|
25 |
-
.newsletter-td-submit {
|
26 |
-
text-align: center;
|
27 |
-
}
|
28 |
-
|
29 |
-
.newsletter-submit {
|
30 |
-
font-size: 18px;
|
31 |
-
background-color: #eee;
|
32 |
-
padding: 10px;
|
33 |
-
border: 1px solid #ddd;
|
34 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
subscription/styles/widget-neutral.css
DELETED
@@ -1,54 +0,0 @@
|
|
1 |
-
.newsletter-widget {
|
2 |
-
text-align: left;
|
3 |
-
font-family: sans-serif;
|
4 |
-
font-size: 14px;
|
5 |
-
line-height: normal;
|
6 |
-
}
|
7 |
-
|
8 |
-
.newsletter-widget p {
|
9 |
-
margin: 0 0 10px 0!important;
|
10 |
-
padding: 0;
|
11 |
-
}
|
12 |
-
|
13 |
-
.newsletter-widget input, .newsletter-widget select {
|
14 |
-
border: 1px solid #ccc;
|
15 |
-
border-radius: 5px;
|
16 |
-
padding: 5px 8px 5px 8px;
|
17 |
-
color: #666;
|
18 |
-
background-color: #fff!important;
|
19 |
-
box-shadow: none;
|
20 |
-
line-height: normal;
|
21 |
-
font-size: 14px;
|
22 |
-
font-family: sans-serif;
|
23 |
-
}
|
24 |
-
|
25 |
-
.newsletter-widget option {
|
26 |
-
padding-left: 0;
|
27 |
-
margin-left: 0;
|
28 |
-
}
|
29 |
-
.newsletter-widget .newsletter-email {
|
30 |
-
|
31 |
-
}
|
32 |
-
|
33 |
-
.newsletter-widget .newsletter-firstname {
|
34 |
-
|
35 |
-
}
|
36 |
-
|
37 |
-
.newsletter-widget .newsletter-lastname {
|
38 |
-
|
39 |
-
}
|
40 |
-
|
41 |
-
.newsletter-widget .newsletter-sex {
|
42 |
-
|
43 |
-
}
|
44 |
-
|
45 |
-
.newsletter-widget .newsletter-profile {
|
46 |
-
|
47 |
-
}
|
48 |
-
|
49 |
-
.newsletter-widget .newsletter-submit {
|
50 |
-
border: 1px solid #ccc;
|
51 |
-
border-radius: 3px;
|
52 |
-
background-image: url(widget-neutral/button.png);
|
53 |
-
color: #fff;
|
54 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
subscription/styles/widget-neutral/button.png
DELETED
Binary file
|
subscription/subscription.php
CHANGED
@@ -1,12 +1,14 @@
|
|
1 |
<?php
|
2 |
|
|
|
|
|
|
|
3 |
require_once NEWSLETTER_INCLUDES_DIR . '/module.php';
|
4 |
|
5 |
class NewsletterSubscription extends NewsletterModule {
|
6 |
|
7 |
const MESSAGE_CONFIRMED = 'confirmed';
|
8 |
|
9 |
-
// var $options_lock;
|
10 |
static $instance;
|
11 |
|
12 |
/**
|
@@ -21,11 +23,7 @@ class NewsletterSubscription extends NewsletterModule {
|
|
21 |
|
22 |
function __construct() {
|
23 |
|
24 |
-
parent::__construct('subscription', '2.0.
|
25 |
-
|
26 |
-
// $this->options_lock = $this->get_options('lock');
|
27 |
-
|
28 |
-
//add_action('wp_login', array($this, 'hook_wp_login'));
|
29 |
|
30 |
// Must be called after the Newsletter::hook_init, since some constants are defined
|
31 |
// there.
|
@@ -34,62 +32,113 @@ class NewsletterSubscription extends NewsletterModule {
|
|
34 |
|
35 |
function hook_init() {
|
36 |
add_action('wp_loaded', array($this, 'hook_wp_loaded'));
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
|
|
|
|
|
|
|
|
|
|
43 |
}
|
44 |
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
|
53 |
function hook_wp_loaded() {
|
54 |
global $newsletter, $wpdb;
|
55 |
|
56 |
switch ($newsletter->action) {
|
57 |
-
case '
|
|
|
|
|
58 |
|
59 |
-
|
|
|
|
|
|
|
60 |
|
61 |
-
$user =
|
62 |
|
63 |
if ($user->status == 'E')
|
64 |
-
|
65 |
if ($user->status == 'C')
|
66 |
-
|
67 |
if ($user->status == 'A')
|
68 |
-
|
69 |
if ($user->status == 'S')
|
70 |
-
|
71 |
} else {
|
72 |
|
73 |
-
|
74 |
}
|
75 |
die();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
case 'u':
|
77 |
-
$user =
|
78 |
$email = $this->get_email_from_request();
|
79 |
if ($user == null) {
|
80 |
-
|
81 |
} else {
|
82 |
-
|
83 |
}
|
84 |
die();
|
85 |
break;
|
86 |
case 'uc':
|
87 |
if ($this->antibot_form_check()) {
|
88 |
-
$user =
|
89 |
if ($user->status == 'E') {
|
90 |
-
|
91 |
} else {
|
92 |
-
|
93 |
}
|
94 |
return;
|
95 |
} else {
|
@@ -99,34 +148,51 @@ class NewsletterSubscription extends NewsletterModule {
|
|
99 |
break;
|
100 |
case 'p':
|
101 |
case 'pe':
|
102 |
-
$user =
|
103 |
if ($user == null) {
|
104 |
die('No subscriber found.');
|
105 |
}
|
106 |
|
107 |
-
|
108 |
die();
|
109 |
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
110 |
case 'c':
|
|
|
111 |
if ($this->antibot_form_check()) {
|
112 |
-
$user =
|
113 |
if ($user->status == 'E') {
|
114 |
-
|
115 |
} else {
|
116 |
setcookie('newsletter', $user->id . '-' . $user->token, time() + 60 * 60 * 24 * 365, '/');
|
117 |
-
|
118 |
}
|
119 |
} else {
|
120 |
$this->request_to_antibot_form('Confirm');
|
121 |
}
|
122 |
die();
|
123 |
break;
|
124 |
-
|
125 |
default:
|
126 |
return;
|
127 |
}
|
128 |
}
|
129 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
130 |
function upgrade() {
|
131 |
global $wpdb, $charset_collate, $newsletter;
|
132 |
|
@@ -135,8 +201,6 @@ class NewsletterSubscription extends NewsletterModule {
|
|
135 |
$this->init_options('profile');
|
136 |
$this->init_options('lists');
|
137 |
|
138 |
-
|
139 |
-
|
140 |
$default_options = $this->get_default_options();
|
141 |
|
142 |
if (empty($this->options['error_text'])) {
|
@@ -163,133 +227,40 @@ class NewsletterSubscription extends NewsletterModule {
|
|
163 |
update_option('newsletter_profile', $options_profile);
|
164 |
}
|
165 |
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
// $options_lock['url'] = $options_main['lock_url'];
|
179 |
-
// $options_lock['message'] = $options_main['lock_message'];
|
180 |
-
// update_option('newsletter_subscription_lock', $options_lock);
|
181 |
-
// }
|
182 |
-
// }
|
183 |
-
//
|
184 |
-
// $this->init_options('lock');
|
185 |
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
}
|
192 |
-
$this->init_options('template', false);
|
193 |
|
194 |
-
|
195 |
-
// if (empty($options_wp)) {
|
196 |
-
// if (isset($this->options['wp_welcome'])) {
|
197 |
-
// $options_wp['welcome'] = $this->options['wp_welcome'];
|
198 |
-
// }
|
199 |
-
// if (isset($this->options['wp_delete'])) {
|
200 |
-
// $options_wp['delete'] = $this->options['wp_delete'];
|
201 |
-
// }
|
202 |
-
// if (isset($this->options['subscribe_wp_users_label'])) {
|
203 |
-
// $options_wp['subscribe_label'] = $this->options['subscribe_wp_users_label'];
|
204 |
-
// }
|
205 |
-
// if (isset($this->options['subscribe_wp_users'])) {
|
206 |
-
// $options_wp['subscribe'] = $this->options['subscribe_wp_users'];
|
207 |
-
// }
|
208 |
-
// if (isset($this->options['send_confirmation'])) {
|
209 |
-
// $options_wp['confirmation'] = $this->options['send_confirmation'];
|
210 |
-
// }
|
211 |
-
// $this->save_options($options_wp, 'wp');
|
212 |
-
//
|
213 |
-
// unset($this->options['wp_welcome']);
|
214 |
-
// unset($this->options['wp_delete']);
|
215 |
-
// unset($this->options['subscribe_wp_users_label']);
|
216 |
-
// unset($this->options['subscribe_wp_users']);
|
217 |
-
// unset($this->options['send_confirmation']);
|
218 |
-
// $this->save_options($this->options);
|
219 |
-
// }
|
220 |
-
//
|
221 |
-
// $this->init_options('wp', false);
|
222 |
|
223 |
-
// Because users do not understand how to create an "extensions" folder...
|
224 |
-
//@wp_mkdir_p(WP_CONTENT_DIR . '/extensions/newsletter/subscription');
|
225 |
return true;
|
226 |
}
|
227 |
|
228 |
function admin_menu() {
|
229 |
$this->add_menu_page('options', 'List building');
|
230 |
$this->add_admin_page('profile', 'Subscription Form');
|
231 |
-
//$this->add_admin_page('lock', 'Locked content');
|
232 |
-
// $this->add_admin_page('wpusers', 'WP Registration');
|
233 |
$this->add_admin_page('forms', 'Forms');
|
234 |
$this->add_admin_page('lists', 'Lists');
|
235 |
$this->add_admin_page('template', 'Template');
|
236 |
$this->add_admin_page('unsubscription', 'Unsubscription');
|
237 |
}
|
238 |
|
239 |
-
// function hook_the_content($content) {
|
240 |
-
// global $post, $cache_stop;
|
241 |
-
//
|
242 |
-
// if ($this->lock_found || !is_singular() || is_user_logged_in()) {
|
243 |
-
// return $content;
|
244 |
-
// }
|
245 |
-
//
|
246 |
-
// if (!empty($this->options_lock['ids'])) {
|
247 |
-
// $ids = explode(',', $this->options_lock['ids']);
|
248 |
-
// }
|
249 |
-
//
|
250 |
-
// if (!empty($ids) && (has_tag($ids) || in_category($ids) || in_array($post->post_name, $ids))) {
|
251 |
-
// $cache_stop = true;
|
252 |
-
// $user = $this->check_user();
|
253 |
-
// if ($user == null || $user->status != 'C') {
|
254 |
-
// $buffer = $this->replace($this->options_lock['message']);
|
255 |
-
// return '<div class="newsletter-lock">' . do_shortcode($buffer) . '</div>';
|
256 |
-
// }
|
257 |
-
// }
|
258 |
-
//
|
259 |
-
// return $content;
|
260 |
-
// }
|
261 |
-
|
262 |
-
// function shortcode_newsletter_lock($attrs, $content = null) {
|
263 |
-
// global $hyper_cache_stop, $cache_stop;
|
264 |
-
//
|
265 |
-
// //$this->logger->debug('Lock short code start');
|
266 |
-
// $hyper_cache_stop = true;
|
267 |
-
// $cache_stop = true;
|
268 |
-
//
|
269 |
-
// $this->lock_found = true;
|
270 |
-
//
|
271 |
-
// $user = $this->check_user();
|
272 |
-
// if ($user != null && $user->status == 'C') {
|
273 |
-
// return do_shortcode($content);
|
274 |
-
// }
|
275 |
-
//
|
276 |
-
// $buffer = $this->options_lock['message'];
|
277 |
-
//// ob_start();
|
278 |
-
//// eval('? >' . $buffer . "\n");
|
279 |
-
//// $buffer = ob_get_clean();
|
280 |
-
// // TODO: add the newsletter check on submit
|
281 |
-
// $buffer = str_ireplace('<form', '<form method="post" action="' . plugins_url('newsletter/do/subscribe.php') . '"', $buffer);
|
282 |
-
// $buffer = Newsletter::instance()->replace($buffer, null, null, 'lock');
|
283 |
-
//
|
284 |
-
// $buffer = do_shortcode($buffer);
|
285 |
-
//
|
286 |
-
// return '<div class="newsletter-lock">' . $buffer . '</div>';
|
287 |
-
// }
|
288 |
-
|
289 |
-
function hook_wp_footer() {
|
290 |
-
|
291 |
-
}
|
292 |
-
|
293 |
/**
|
294 |
* This method has been redefined for compatibility with the old options naming. It would
|
295 |
* be better to change them instead. The subscription options should be named
|
@@ -324,27 +295,6 @@ class NewsletterSubscription extends NewsletterModule {
|
|
324 |
return parent::get_options($sub);
|
325 |
}
|
326 |
|
327 |
-
/**
|
328 |
-
* See wp-includes/user.php function wp_signon().
|
329 |
-
*/
|
330 |
-
// function hook_wp_login($user_login) {
|
331 |
-
//
|
332 |
-
// $newsletter = Newsletter::instance();
|
333 |
-
//
|
334 |
-
// //$this->logger->info(__METHOD__ . '> Start with ' . $user_login);
|
335 |
-
// $wp_user = get_user_by('login', $user_login);
|
336 |
-
// if (!empty($wp_user)) {
|
337 |
-
// //$this->logger->info($wp_user);
|
338 |
-
// // We have a user able to login, so his subscription can be confirmed if not confirmed
|
339 |
-
// $user = $newsletter->get_user($wp_user->user_email);
|
340 |
-
// if (!empty($user)) {
|
341 |
-
// $wp_options = $this->get_options('wp');
|
342 |
-
// $this->confirm($user->id, $wp_options['welcome'] == 1);
|
343 |
-
// }
|
344 |
-
// }
|
345 |
-
// //$this->logger->info(__METHOD__ . '> End');
|
346 |
-
// }
|
347 |
-
|
348 |
/**
|
349 |
* Return the subscribed user.
|
350 |
*
|
@@ -452,6 +402,7 @@ class NewsletterSubscription extends NewsletterModule {
|
|
452 |
|
453 |
// Notification to admin (only for new confirmed subscriptions)
|
454 |
if ($user->status == 'C') {
|
|
|
455 |
$this->notify_admin($user, 'Newsletter subscription');
|
456 |
setcookie('newsletter', $user->id . '-' . $user->token, time() + 60 * 60 * 24 * 365, '/');
|
457 |
}
|
@@ -516,7 +467,7 @@ class NewsletterSubscription extends NewsletterModule {
|
|
516 |
}
|
517 |
|
518 |
// Preferences (field names are nl[] and values the list number so special forms with radio button can work)
|
519 |
-
if (is_array($_REQUEST['nl'])) {
|
520 |
$this->logger->debug($_REQUEST['nl']);
|
521 |
for ($i = 1; $i <= NEWSLETTER_LIST_MAX; $i++) {
|
522 |
// If not zero it is selectable by user (on subscription or on profile)
|
@@ -606,6 +557,7 @@ class NewsletterSubscription extends NewsletterModule {
|
|
606 |
}
|
607 |
|
608 |
if ($user->status == 'C') {
|
|
|
609 |
return $user;
|
610 |
}
|
611 |
|
@@ -617,6 +569,7 @@ class NewsletterSubscription extends NewsletterModule {
|
|
617 |
setcookie('newsletter', $user->id . '-' . $user->token, time() + 60 * 60 * 24 * 365, '/');
|
618 |
$newsletter->set_user_status($user->id, 'C');
|
619 |
$user->status = 'C';
|
|
|
620 |
$this->notify_admin($user, 'Newsletter subscription');
|
621 |
|
622 |
// Check if is connected to a wp user
|
@@ -801,7 +754,7 @@ class NewsletterSubscription extends NewsletterModule {
|
|
801 |
}
|
802 |
|
803 |
if (isset($_REQUEST['ncu'])) {
|
804 |
-
$this->options['confirmation_url'] = $_REQUEST['ncu'];
|
805 |
}
|
806 |
|
807 |
if ($email) {
|
@@ -815,14 +768,20 @@ class NewsletterSubscription extends NewsletterModule {
|
|
815 |
die();
|
816 |
}
|
817 |
|
818 |
-
|
819 |
-
|
820 |
-
|
821 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
822 |
}
|
823 |
|
824 |
-
|
825 |
-
header('Location: ' . plugins_url('newsletter') . '/subscription/page.php?nm=' . $key . '&nk=' . $user->id . '-' . $user->token . $params);
|
826 |
die();
|
827 |
}
|
828 |
|
@@ -970,11 +929,11 @@ class NewsletterSubscription extends NewsletterModule {
|
|
970 |
}
|
971 |
|
972 |
if (!empty($label)) {
|
973 |
-
$buffer .= '<div class="
|
974 |
if (strpos($label, 'http') === 0) {
|
975 |
-
$buffer .= '<input class="
|
976 |
} else {
|
977 |
-
$buffer .= '<input class="
|
978 |
}
|
979 |
$buffer .= '</div>';
|
980 |
}
|
@@ -985,60 +944,72 @@ class NewsletterSubscription extends NewsletterModule {
|
|
985 |
}
|
986 |
|
987 |
function _shortcode_label($name, $attrs, $suffix = null) {
|
988 |
-
if (!$suffix)
|
989 |
$suffix = $name;
|
|
|
990 |
$options_profile = get_option('newsletter_profile');
|
991 |
-
$buffer = '<label for="
|
992 |
-
if (isset($attrs['label'])
|
993 |
-
|
|
|
|
|
|
|
|
|
994 |
} else {
|
995 |
-
$buffer .= $options_profile[$name];
|
996 |
}
|
997 |
$buffer .= "</label>\n";
|
998 |
return $buffer;
|
999 |
}
|
1000 |
|
1001 |
-
function
|
1002 |
$options_profile = get_option('newsletter_profile');
|
1003 |
$name = $attrs['name'];
|
1004 |
|
1005 |
$buffer = '';
|
1006 |
|
1007 |
if ($name == 'email') {
|
1008 |
-
$buffer .= '<div class="
|
1009 |
$buffer .= $this->_shortcode_label('email', $attrs);
|
1010 |
|
1011 |
-
$buffer .= '<input class="
|
|
|
|
|
|
|
1012 |
if (isset($attrs['button_label'])) {
|
1013 |
$label = $attrs['button_label'];
|
1014 |
if (strpos($label, 'http') === 0) {
|
1015 |
-
$buffer .= ' <input class="
|
1016 |
} else {
|
1017 |
-
$buffer .= ' <input class="
|
1018 |
}
|
1019 |
}
|
1020 |
-
$buffer .=
|
1021 |
return $buffer;
|
1022 |
}
|
1023 |
|
1024 |
if ($name == 'first_name' || $name == 'name') {
|
1025 |
-
$buffer .= '<div class="
|
1026 |
$buffer .= $this->_shortcode_label('name', $attrs);
|
1027 |
|
1028 |
-
$buffer .= '<input class="
|
|
|
|
|
1029 |
if ($options_profile['name_rules'] == 1) {
|
1030 |
$buffer .= ' required';
|
1031 |
}
|
1032 |
$buffer .= '>';
|
1033 |
-
$buffer .=
|
1034 |
return $buffer;
|
1035 |
}
|
1036 |
|
1037 |
if ($name == 'last_name' || $name == 'surname') {
|
1038 |
-
$buffer .= '<div class="
|
1039 |
$buffer .= $this->_shortcode_label('surname', $attrs);
|
1040 |
|
1041 |
-
$buffer .= '<input class="
|
|
|
|
|
1042 |
if ($options_profile['surname_rules'] == 1) {
|
1043 |
$buffer .= ' required';
|
1044 |
}
|
@@ -1050,56 +1021,57 @@ class NewsletterSubscription extends NewsletterModule {
|
|
1050 |
if ($name == 'preference' || $name == 'list') {
|
1051 |
$list = (int) $attrs['number'];
|
1052 |
if (isset($attrs['hidden'])) {
|
1053 |
-
return '<input type="hidden" name="nl[]" value="' . $list . '">';
|
1054 |
}
|
1055 |
-
$buffer .= '<div class="
|
1056 |
-
$buffer .= '<input type="checkbox" id="nl' . $list . '" name="nl[]" value="' . $list . '"';
|
1057 |
if (isset($attrs['checked'])) {
|
1058 |
$buffer .= ' checked';
|
1059 |
}
|
1060 |
$buffer .= '>';
|
1061 |
if (isset($attrs['label'])) {
|
1062 |
if ($attrs['label'] != '')
|
1063 |
-
$buffer .= '<label for="nl' . $list . '">' . $attrs['label'] . '</label>';
|
1064 |
} else {
|
1065 |
-
$buffer .= '<label for="nl' . $list . '">' . $options_profile['list_' . $list] . '</label>';
|
1066 |
}
|
1067 |
-
$buffer .=
|
1068 |
|
1069 |
return $buffer;
|
1070 |
}
|
1071 |
|
|
|
1072 |
if ($name == 'lists' || $name == 'preferences') {
|
1073 |
$lists = '';
|
1074 |
for ($i = 1; $i <= NEWSLETTER_LIST_MAX; $i++) {
|
1075 |
if ($options_profile['list_' . $i . '_status'] != 2) {
|
1076 |
continue;
|
1077 |
}
|
1078 |
-
$lists .= '<div class="
|
1079 |
$lists .= '<input type="checkbox" id="nl' . $i . '" name="nl[]" value="' . $i . '"';
|
1080 |
if ($options_profile['list_' . $i . '_checked'] == 1)
|
1081 |
$lists .= ' checked';
|
1082 |
-
$lists .= '> <label for="nl' . $i . '>' . $options_profile['list_' . $i] . '</label>';
|
1083 |
-
$lists .=
|
1084 |
}
|
1085 |
return $lists;
|
1086 |
}
|
1087 |
|
1088 |
// TODO: add the "not specified"
|
1089 |
if ($name == 'sex' || $name == 'gender') {
|
1090 |
-
$buffer .= '<div class="
|
1091 |
if (isset($attrs['label'])) {
|
1092 |
if ($attrs['label'] != '')
|
1093 |
-
$buffer .= '<label for="">' . $attrs['label'] . '</label>';
|
1094 |
} else {
|
1095 |
-
$buffer .= '<label for="">' . $options_profile['sex'] . '</label>';
|
1096 |
}
|
1097 |
|
1098 |
-
$buffer .= '<select name="nx" class="
|
1099 |
-
$buffer .= '<option value="m">' . $options_profile['sex_male'] . '</option>';
|
1100 |
-
$buffer .= '<option value="f">' . $options_profile['sex_female'] . '</option>';
|
1101 |
$buffer .= '</select>';
|
1102 |
-
$buffer .=
|
1103 |
return $buffer;
|
1104 |
}
|
1105 |
|
@@ -1107,13 +1079,13 @@ class NewsletterSubscription extends NewsletterModule {
|
|
1107 |
$number = (int) $attrs['number'];
|
1108 |
$type = $options_profile['profile_' . $number . '_type'];
|
1109 |
$size = isset($attrs['size']) ? $attrs['size'] : '';
|
1110 |
-
$buffer .= '<div class="
|
1111 |
if (isset($attrs['label'])) {
|
1112 |
if ($attrs['label'] != '') {
|
1113 |
-
$buffer .= '<label
|
1114 |
}
|
1115 |
} else {
|
1116 |
-
$buffer .= '<label
|
1117 |
}
|
1118 |
$placeholder = isset($attrs['placeholder']) ? $attrs['placeholder'] : $options_profile['profile_' . $number . '_placeholder'];
|
1119 |
|
@@ -1121,7 +1093,7 @@ class NewsletterSubscription extends NewsletterModule {
|
|
1121 |
|
1122 |
// Text field
|
1123 |
if ($type == 'text') {
|
1124 |
-
$buffer .= '<input class="
|
1125 |
if ($required) {
|
1126 |
$buffer .= ' required';
|
1127 |
}
|
@@ -1130,7 +1102,7 @@ class NewsletterSubscription extends NewsletterModule {
|
|
1130 |
|
1131 |
// Select field
|
1132 |
if ($type == 'select') {
|
1133 |
-
$buffer .= '<select class="
|
1134 |
if ($required) {
|
1135 |
$buffer .= ' required';
|
1136 |
}
|
@@ -1140,12 +1112,12 @@ class NewsletterSubscription extends NewsletterModule {
|
|
1140 |
}
|
1141 |
$opts = explode(',', $options_profile['profile_' . $number . '_options']);
|
1142 |
for ($j = 0; $j < count($opts); $j++) {
|
1143 |
-
$buffer .= '<option>' . trim($opts[$j]) . '</option>';
|
1144 |
}
|
1145 |
-
$buffer .=
|
1146 |
}
|
1147 |
|
1148 |
-
$buffer .=
|
1149 |
|
1150 |
return $buffer;
|
1151 |
}
|
@@ -1160,10 +1132,10 @@ class NewsletterSubscription extends NewsletterModule {
|
|
1160 |
$attrs['label'] = $options_profile['list_' . $i];
|
1161 |
}
|
1162 |
|
1163 |
-
$buffer .= '<div class="
|
1164 |
|
1165 |
-
$buffer .= '<input type="checkbox" name="ny" required class="
|
1166 |
-
$buffer .= '<label for="
|
1167 |
if (!empty($attrs['url'])) {
|
1168 |
$buffer .= '<a target="_blank" href="' . esc_attr($options_profile['privacy_url']) . '">';
|
1169 |
}
|
@@ -1200,7 +1172,7 @@ class NewsletterSubscription extends NewsletterModule {
|
|
1200 |
|
1201 |
$buffer = $this->get_form_javascript();
|
1202 |
|
1203 |
-
$buffer .= '<div class="
|
1204 |
$buffer .= '<form method="post" action="' . $action . '" onsubmit="return newsletter_check(this)">' . "\n\n";
|
1205 |
|
1206 |
if (isset($attrs['confirmation_url'])) {
|
@@ -1220,21 +1192,21 @@ class NewsletterSubscription extends NewsletterModule {
|
|
1220 |
$buffer .= '<table cellspacing="0" cellpadding="3" border="0">' . "\n\n";
|
1221 |
if ($options_profile['name_status'] == 2) {
|
1222 |
$buffer .= "<!-- first name -->\n";
|
1223 |
-
$buffer .= "<tr>\n\t" . '<th>' . $options_profile['name'] . '</th>' . "\n\t" . '<td><input class="
|
1224 |
}
|
1225 |
|
1226 |
if ($options_profile['surname_status'] == 2) {
|
1227 |
$buffer .= "<!-- last name -->\n";
|
1228 |
-
$buffer .= "<tr>\n\t" . '<th>' . $options_profile['surname'] . '</th>' . "\n\t" . '<td><input class="
|
1229 |
}
|
1230 |
|
1231 |
$buffer .= "<!-- email -->\n";
|
1232 |
-
$buffer .= "<tr>\n\t" . '<th>' . $options_profile['email'] . '</th>' . "\n\t" . '<td align="left"><input class="
|
1233 |
|
1234 |
if ($options_profile['sex_status'] == 2) {
|
1235 |
$buffer .= "<!-- sex -->\n";
|
1236 |
$buffer .= "<tr>\n\t<th>" . $options_profile['sex'] . "</th>\n";
|
1237 |
-
$buffer .= "\t<td>\n\t" . '<select name="nx" class="
|
1238 |
$buffer .= "\t\t" . '<option value="m">' . $options_profile['sex_male'] . '</option>' . "\n";
|
1239 |
$buffer .= "\t\t" . '<option value="f">' . $options_profile['sex_female'] . '</option>' . "\n";
|
1240 |
$buffer .= "\t</select>\n\t</td></tr>\n";
|
@@ -1275,7 +1247,7 @@ class NewsletterSubscription extends NewsletterModule {
|
|
1275 |
// Text field
|
1276 |
if ($options_profile['profile_' . $i . '_type'] == 'text') {
|
1277 |
$buffer .= "<tr>\n\t<th>" . $options_profile['profile_' . $i] . "</th>\n\t<td>\n\t\t";
|
1278 |
-
$buffer .= '<input class="
|
1279 |
$buffer .= ' placeholder="' . esc_attr($options_profile['profile_' . $i . '_placeholder']) . '"';
|
1280 |
if (!empty($options_profile['profile_' . $i . '_rules'])) {
|
1281 |
$buffer .= ' required';
|
@@ -1285,7 +1257,7 @@ class NewsletterSubscription extends NewsletterModule {
|
|
1285 |
|
1286 |
// Select field
|
1287 |
if ($options_profile['profile_' . $i . '_type'] == 'select') {
|
1288 |
-
$buffer .= "<tr>\n\t<th>" . $options_profile['profile_' . $i] . "</th>\n\t<td>\n\t\t" . '<select class="
|
1289 |
if (!empty($options_profile['profile_' . $i . '_rules'])) {
|
1290 |
$buffer .= ' required';
|
1291 |
}
|
@@ -1308,7 +1280,7 @@ class NewsletterSubscription extends NewsletterModule {
|
|
1308 |
}
|
1309 |
|
1310 |
if ($options_profile['privacy_status'] == 1) {
|
1311 |
-
$buffer .= "<tr>\n\t" . '<td colspan="2" class="
|
1312 |
$buffer .= "\t\t" . '<input type="checkbox" name="ny" required> ';
|
1313 |
if (!empty($options_profile['privacy_url'])) {
|
1314 |
$buffer .= '<a target="_blank" href="' . $options_profile['privacy_url'] . '">';
|
@@ -1319,18 +1291,26 @@ class NewsletterSubscription extends NewsletterModule {
|
|
1319 |
$buffer .= "\n\t</td>\n</tr>\n\n";
|
1320 |
}
|
1321 |
|
1322 |
-
$buffer .= "<tr>\n\t" . '<td colspan="2" class="
|
1323 |
|
1324 |
if (strpos($options_profile['subscribe'], 'http://') !== false) {
|
1325 |
-
$buffer .= "\t\t" . '<input class="
|
1326 |
} else {
|
1327 |
-
$buffer .= "\t\t" . '<input class="
|
1328 |
}
|
1329 |
|
1330 |
$buffer .= "</table>\n</form>\n</div>";
|
1331 |
return $buffer;
|
1332 |
}
|
1333 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1334 |
function get_subscription_form_html5($referrer = null, $action = null, $attrs = array()) {
|
1335 |
if (isset($attrs['action'])) {
|
1336 |
$action = $attrs['action'];
|
@@ -1341,18 +1321,23 @@ class NewsletterSubscription extends NewsletterModule {
|
|
1341 |
$options_profile = get_option('newsletter_profile');
|
1342 |
$options = get_option('newsletter');
|
1343 |
|
1344 |
-
$buffer =
|
1345 |
|
1346 |
if (empty($action)) {
|
1347 |
-
$action =
|
1348 |
}
|
1349 |
|
1350 |
-
$
|
1351 |
-
|
1352 |
-
|
|
|
|
|
|
|
|
|
|
|
1353 |
|
1354 |
if (!empty($referrer)) {
|
1355 |
-
$buffer .=
|
1356 |
}
|
1357 |
if (isset($attrs['confirmation_url'])) {
|
1358 |
$buffer .= "<input type='hidden' name='ncu' value='" . esc_attr($attrs['confirmation_url']) . "'>\n";
|
@@ -1361,31 +1346,36 @@ class NewsletterSubscription extends NewsletterModule {
|
|
1361 |
if (isset($attrs['list'])) {
|
1362 |
$arr = explode(',', $attrs['list']);
|
1363 |
foreach ($arr as $a) {
|
1364 |
-
$buffer .= "<input type='hidden' name='nl[]' value='" .
|
1365 |
}
|
1366 |
}
|
1367 |
|
1368 |
if ($options_profile['name_status'] == 2) {
|
1369 |
-
$buffer .= '<div class="
|
1370 |
-
$buffer .= '<input class="
|
1371 |
$buffer .= "\n";
|
1372 |
}
|
1373 |
|
1374 |
if ($options_profile['surname_status'] == 2) {
|
1375 |
-
$buffer .= '<div class="
|
1376 |
-
$buffer .= '<input class="
|
1377 |
$buffer .= "\n";
|
1378 |
}
|
1379 |
|
1380 |
-
$buffer .= '<div class="
|
1381 |
-
$buffer .= '<input class="
|
1382 |
$buffer .= "\n";
|
1383 |
|
1384 |
-
if ($options_profile['sex_status'] == 2) {
|
1385 |
-
$buffer .= '<div class="
|
1386 |
-
$buffer .= '<select name="nx" class="
|
1387 |
-
|
1388 |
-
|
|
|
|
|
|
|
|
|
|
|
1389 |
$buffer .= '</select></div>';
|
1390 |
$buffer .= "\n";
|
1391 |
}
|
@@ -1395,14 +1385,14 @@ class NewsletterSubscription extends NewsletterModule {
|
|
1395 |
if ($options_profile['list_' . $i . '_status'] != 2) {
|
1396 |
continue;
|
1397 |
}
|
1398 |
-
$lists .=
|
1399 |
if ($options_profile['list_' . $i . '_checked'] == 1) {
|
1400 |
$lists .= ' checked';
|
1401 |
}
|
1402 |
-
$lists .= '/> ' . $options_profile['list_' . $i] . '</label></div>';
|
1403 |
}
|
1404 |
if (!empty($lists)) {
|
1405 |
-
$buffer .= '<div class="
|
1406 |
}
|
1407 |
|
1408 |
// Extra profile fields
|
@@ -1413,23 +1403,21 @@ class NewsletterSubscription extends NewsletterModule {
|
|
1413 |
}
|
1414 |
|
1415 |
|
1416 |
-
$buffer .= '<div class="
|
1417 |
-
$options_profile['profile_' . $i] . '</label>';
|
1418 |
|
1419 |
// Text field
|
1420 |
if ($options_profile['profile_' . $i . '_type'] == 'text') {
|
1421 |
-
$buffer .= '<
|
1422 |
-
$options_profile['profile_' . $i] . "</label>' . "
|
1423 |
-
. '<input class="newsletter-profile newsletter-profile-' . $i . '" type="text" name="np' . $i . '">' .
|
1424 |
-
"\n";
|
1425 |
}
|
1426 |
|
1427 |
// Select field
|
1428 |
if ($options_profile['profile_' . $i . '_type'] == 'select') {
|
1429 |
-
$buffer .= '<select class="
|
|
|
1430 |
$opts = explode(',', $options_profile['profile_' . $i . '_options']);
|
1431 |
for ($j = 0; $j < count($opts); $j++) {
|
1432 |
-
$buffer .= "<option>" . trim($opts[$j]) . "</option>\n";
|
1433 |
}
|
1434 |
$buffer .= "</select>\n";
|
1435 |
}
|
@@ -1437,44 +1425,48 @@ class NewsletterSubscription extends NewsletterModule {
|
|
1437 |
}
|
1438 |
|
1439 |
$extra = apply_filters('newsletter_subscription_extra', array());
|
1440 |
-
foreach ($extra as
|
1441 |
$label = $x['label'];
|
1442 |
if (empty($label)) {
|
1443 |
$label = ' ';
|
1444 |
}
|
1445 |
$name = '';
|
1446 |
-
if (!empty($x['name']))
|
1447 |
$name = $x['name'];
|
1448 |
-
|
|
|
1449 |
$buffer .= $x['field'] . "</div>\n";
|
1450 |
}
|
1451 |
|
1452 |
if ($options_profile['privacy_status'] == 1) {
|
1453 |
-
$buffer .=
|
1454 |
-
$buffer .= '<input type="checkbox" name="ny" required class="
|
1455 |
if (!empty($options_profile['privacy_url'])) {
|
1456 |
-
$buffer .= '<
|
1457 |
-
$buffer .= $options_profile['privacy'] . '</a>';
|
1458 |
} else {
|
1459 |
-
$buffer .=
|
1460 |
}
|
1461 |
-
|
1462 |
-
$buffer .= "
|
1463 |
}
|
1464 |
|
1465 |
-
$buffer .= '<div class="
|
1466 |
|
1467 |
if (strpos($options_profile['subscribe'], 'http://') !== false) {
|
1468 |
-
$buffer .=
|
1469 |
} else {
|
1470 |
-
$buffer .=
|
1471 |
}
|
1472 |
|
1473 |
-
$buffer .= "</div>\n</form>\n
|
|
|
|
|
|
|
1474 |
return $buffer;
|
1475 |
}
|
1476 |
|
1477 |
-
function
|
1478 |
$user = $this->check_user();
|
1479 |
|
1480 |
if (empty($user)) {
|
@@ -1485,7 +1477,11 @@ class NewsletterSubscription extends NewsletterModule {
|
|
1485 |
}
|
1486 |
}
|
1487 |
|
1488 |
-
|
|
|
|
|
|
|
|
|
1489 |
}
|
1490 |
|
1491 |
/**
|
@@ -1494,26 +1490,23 @@ class NewsletterSubscription extends NewsletterModule {
|
|
1494 |
function get_profile_form($user) {
|
1495 |
$options = get_option('newsletter_profile');
|
1496 |
|
1497 |
-
$buffer .= '<div class="
|
1498 |
-
$buffer .= '<form action="' .
|
1499 |
// TODO: use nk
|
1500 |
-
$buffer .= '<input type="hidden" name="nk" value="' . $user->id . '-' . $user->token . '"
|
1501 |
$buffer .= '<table cellspacing="0" cellpadding="3" border="0">';
|
1502 |
-
$buffer .= '<tr><th align="right">' . $options['email'] . '</th><td><input class="
|
1503 |
if ($options['name_status'] >= 1) {
|
1504 |
-
$buffer .= '<tr><th align="right">' . $options['name'] . '</th><td><input class="
|
1505 |
}
|
1506 |
if ($options['surname_status'] >= 1) {
|
1507 |
-
$buffer .= '<tr><th align="right">' . $options['surname'] . '</th><td><input class="
|
1508 |
}
|
1509 |
if ($options['sex_status'] >= 1) {
|
1510 |
-
$buffer .= '<tr><th align="right">' . $options['sex'] . '</th><td><select name="nx" class="
|
1511 |
-
|
1512 |
-
|
1513 |
-
|
1514 |
-
$buffer .= '<option value="f"' . ($user->sex == 'f' ? ' selected' : '') . '>' . $options['sex_female'] . '</option>';
|
1515 |
-
$buffer .= '<option value="m"' . ($user->sex == 'm' ? ' selected' : '') . '>' . $options['sex_male'] . '</option>';
|
1516 |
-
$buffer .= '<option value="n"' . ($user->sex == 'n' ? ' selected' : '') . '>' . $options['sex_none'] . '</option>';
|
1517 |
$buffer .= '</select></td></tr>';
|
1518 |
}
|
1519 |
|
@@ -1522,23 +1515,23 @@ class NewsletterSubscription extends NewsletterModule {
|
|
1522 |
if ($options['profile_' . $i . '_status'] == 0)
|
1523 |
continue;
|
1524 |
|
1525 |
-
$buffer .= '<tr><th align="right">' . $options['profile_' . $i] . '</th><td>';
|
1526 |
-
|
1527 |
$field = 'profile_' . $i;
|
1528 |
|
1529 |
if ($options['profile_' . $i . '_type'] == 'text') {
|
1530 |
-
$buffer .= '<input class="
|
1531 |
}
|
1532 |
|
1533 |
if ($options['profile_' . $i . '_type'] == 'select') {
|
1534 |
-
$buffer .= '<select class="
|
1535 |
$opts = explode(',', $options['profile_' . $i . '_options']);
|
1536 |
for ($j = 0; $j < count($opts); $j++) {
|
1537 |
$opts[$j] = trim($opts[$j]);
|
1538 |
$buffer .= '<option';
|
1539 |
if ($opts[$j] == $user->$field)
|
1540 |
$buffer .= ' selected';
|
1541 |
-
$buffer .= '>' . $opts[$j] . '</option>';
|
1542 |
}
|
1543 |
$buffer .= '</select>';
|
1544 |
}
|
@@ -1547,17 +1540,17 @@ class NewsletterSubscription extends NewsletterModule {
|
|
1547 |
}
|
1548 |
|
1549 |
// Lists
|
1550 |
-
$buffer .= '<tr><th> </th><td style="text-align: left"><div class="
|
1551 |
for ($i = 1; $i <= NEWSLETTER_LIST_MAX; $i++) {
|
1552 |
if ($options['list_' . $i . '_status'] == 0) {
|
1553 |
continue;
|
1554 |
}
|
1555 |
-
$buffer .= '<input class="
|
1556 |
$list = 'list_' . $i;
|
1557 |
if ($user->$list == 1) {
|
1558 |
$buffer .= ' checked';
|
1559 |
}
|
1560 |
-
$buffer .= '/> <span class="
|
1561 |
}
|
1562 |
$buffer .= '</div></td></tr>';
|
1563 |
|
@@ -1567,12 +1560,12 @@ class NewsletterSubscription extends NewsletterModule {
|
|
1567 |
$buffer .= $x['field'] . "\n\t</td>\n</tr>\n\n";
|
1568 |
}
|
1569 |
|
1570 |
-
$buffer .= '<tr><td colspan="2" class="
|
1571 |
|
1572 |
if (strpos($options['save'], 'http://') !== false) {
|
1573 |
-
$buffer .= '<input class="
|
1574 |
} else {
|
1575 |
-
$buffer .= '<input class="
|
1576 |
}
|
1577 |
|
1578 |
$buffer .= '</table></form></div>';
|
@@ -1580,6 +1573,115 @@ class NewsletterSubscription extends NewsletterModule {
|
|
1580 |
return $buffer;
|
1581 |
}
|
1582 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1583 |
function get_form($number) {
|
1584 |
$options = get_option('newsletter_forms');
|
1585 |
|
@@ -1622,8 +1724,9 @@ class NewsletterSubscription extends NewsletterModule {
|
|
1622 |
|
1623 |
function notify_admin($user, $subject) {
|
1624 |
|
1625 |
-
if ($this->options['notify'] != 1)
|
1626 |
return;
|
|
|
1627 |
|
1628 |
$message = "Subscriber details:\n\n" .
|
1629 |
"email: " . $user->email . "\n" .
|
@@ -1633,167 +1736,143 @@ class NewsletterSubscription extends NewsletterModule {
|
|
1633 |
|
1634 |
$options_profile = get_option('newsletter_profile');
|
1635 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1636 |
for ($i = 0; $i < NEWSLETTER_PROFILE_MAX; $i++) {
|
1637 |
-
if ($options_profile['profile_' . $i]
|
1638 |
continue;
|
|
|
1639 |
$field = 'profile_' . $i;
|
1640 |
$message .= $options_profile['profile_' . $i] . ': ' . $user->$field . "\n";
|
1641 |
}
|
1642 |
|
1643 |
-
|
1644 |
-
if ($options_profile['list_' . $i] == '')
|
1645 |
-
continue;
|
1646 |
-
$field = 'list_' . $i;
|
1647 |
-
$message .= $options_profile['list_' . $i] . ': ' . $user->$field . "\n";
|
1648 |
-
}
|
1649 |
|
1650 |
$message .= "token: " . $user->token . "\n" .
|
1651 |
"status: " . $user->status . "\n";
|
1652 |
$email = trim($this->options['notify_email']);
|
1653 |
-
if (empty($email))
|
1654 |
$email = get_option('admin_email');
|
|
|
1655 |
$blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
|
1656 |
-
Newsletter::instance()->mail($email, '[' . $blogname . '] ' . $subject, array('text'
|
1657 |
-
//wp_mail($email, '[' . $blogname . '] ' . $subject, array('text'=>$message));
|
1658 |
}
|
1659 |
|
1660 |
-
|
|
|
|
|
|
|
|
|
1661 |
|
1662 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1663 |
|
1664 |
-
|
1665 |
-
|
1666 |
|
1667 |
-
|
1668 |
|
1669 |
-
|
1670 |
-
|
1671 |
-
|
1672 |
-
|
1673 |
-
|
1674 |
-
|
1675 |
-
|
1676 |
-
|
1677 |
-
|
1678 |
-
if (isset($attrs['
|
1679 |
-
return NewsletterSubscription::instance()->
|
1680 |
} else {
|
1681 |
-
|
|
|
|
|
|
|
|
|
1682 |
}
|
1683 |
}
|
1684 |
-
}
|
1685 |
-
|
1686 |
-
add_shortcode('newsletter', 'newsletter_shortcode');
|
1687 |
|
1688 |
-
/**
|
1689 |
-
|
1690 |
-
|
1691 |
-
|
1692 |
-
|
1693 |
-
|
1694 |
-
|
1695 |
-
|
1696 |
-
|
1697 |
-
function
|
1698 |
-
|
1699 |
|
1700 |
-
|
1701 |
|
1702 |
-
|
1703 |
-
|
1704 |
-
|
1705 |
|
1706 |
// if ($message_key != 'subscription' && $user == null) {
|
1707 |
// die('Invalid subscriber');
|
1708 |
// }
|
1709 |
|
1710 |
|
1711 |
-
|
1712 |
|
1713 |
-
|
1714 |
-
|
1715 |
-
|
1716 |
-
|
1717 |
|
1718 |
-
|
1719 |
-
|
1720 |
|
1721 |
-
|
1722 |
-
|
1723 |
-
|
1724 |
-
|
1725 |
-
|
1726 |
|
1727 |
-
|
1728 |
-
|
1729 |
-
|
1730 |
|
1731 |
-
|
1732 |
-
|
1733 |
-
} else {
|
1734 |
-
if (isset($attrs['layout']) && $attrs['layout'] == 'html5') {
|
1735 |
-
$message = str_replace('{subscription_form}', $module->get_subscription_form_html5('page'), $message);
|
1736 |
} else {
|
1737 |
-
|
|
|
|
|
|
|
|
|
1738 |
}
|
1739 |
}
|
1740 |
}
|
1741 |
-
}
|
1742 |
|
1743 |
-
|
1744 |
|
1745 |
-
|
1746 |
|
1747 |
-
|
1748 |
-
|
1749 |
-
|
|
|
|
|
|
|
1750 |
}
|
1751 |
|
1752 |
-
return $message;
|
1753 |
}
|
1754 |
|
1755 |
-
|
1756 |
-
//// option on every page load. The registration code should be moved inside the module...
|
1757 |
-
//add_action('user_register', 'newsletter_subscription_user_register');
|
1758 |
-
//
|
1759 |
-
//function newsletter_subscription_user_register($wp_user_id) {
|
1760 |
-
// global $wpdb, $newsletter;
|
1761 |
-
//
|
1762 |
-
// $module = NewsletterSubscription::instance();
|
1763 |
-
// $wp_options = $module->get_options('wp');
|
1764 |
-
// // If the integration is disabled...
|
1765 |
-
// if ($wp_options['subscribe'] == 0) {
|
1766 |
-
// return;
|
1767 |
-
// }
|
1768 |
-
//
|
1769 |
-
// // If not forced and the user didn't choose the newsletter...
|
1770 |
-
// if ($wp_options['subscribe'] != 1) {
|
1771 |
-
// if (!isset($_REQUEST['newsletter'])) {
|
1772 |
-
// return;
|
1773 |
-
// }
|
1774 |
-
// }
|
1775 |
-
//
|
1776 |
-
// $module->logger->info('Adding a registered WordPress user (' . $wp_user_id . ')');
|
1777 |
-
// $wp_user = $wpdb->get_row($wpdb->prepare("select * from $wpdb->users where id=%d limit 1", $wp_user_id));
|
1778 |
-
// if (empty($wp_user)) {
|
1779 |
-
// $module->logger->error('User not found?!');
|
1780 |
-
// return;
|
1781 |
-
// }
|
1782 |
-
//
|
1783 |
-
// // Yes, some registration procedures allow empty email
|
1784 |
-
// if (!NewsletterModule::is_email($wp_user->user_email)) {
|
1785 |
-
// return;
|
1786 |
-
// }
|
1787 |
-
//
|
1788 |
-
// $_REQUEST['ne'] = $wp_user->user_email;
|
1789 |
-
// $_REQUEST['nr'] = 'registration';
|
1790 |
-
// // Upon registration there is no last name and first name, sorry.
|
1791 |
-
// // $status is determined by the opt in
|
1792 |
-
// $user = $module->subscribe(null, $wp_options['confirmation'] == 1);
|
1793 |
-
//
|
1794 |
-
// // Now we associate it with wp
|
1795 |
-
// $module->set_user_wp_user_id($user->id, $wp_user_id);
|
1796 |
-
//}
|
1797 |
|
1798 |
// Compatibility code
|
1799 |
|
@@ -1804,20 +1883,3 @@ function newsletter_form($number = null) {
|
|
1804 |
echo NewsletterSubscription::instance()->get_subscription_form();
|
1805 |
}
|
1806 |
}
|
1807 |
-
|
1808 |
-
//add_action('register_form', 'newsletter_register_form');
|
1809 |
-
//
|
1810 |
-
//function newsletter_register_form() {
|
1811 |
-
// $module = NewsletterSubscription::instance();
|
1812 |
-
// $wp_options = $module->get_options('wp');
|
1813 |
-
// if ($wp_options['subscribe'] == 2 || $wp_options['subscribe'] == 3) {
|
1814 |
-
// echo '<p>';
|
1815 |
-
// echo '<input type="checkbox" value="1" name="newsletter"';
|
1816 |
-
// if ($wp_options['subscribe'] == 3) {
|
1817 |
-
// echo ' checked';
|
1818 |
-
// }
|
1819 |
-
// echo '> ';
|
1820 |
-
// echo $wp_options['subscribe_label'];
|
1821 |
-
// echo '</p>';
|
1822 |
-
// }
|
1823 |
-
//}
|
1 |
<?php
|
2 |
|
3 |
+
if (!defined('ABSPATH'))
|
4 |
+
exit;
|
5 |
+
|
6 |
require_once NEWSLETTER_INCLUDES_DIR . '/module.php';
|
7 |
|
8 |
class NewsletterSubscription extends NewsletterModule {
|
9 |
|
10 |
const MESSAGE_CONFIRMED = 'confirmed';
|
11 |
|
|
|
12 |
static $instance;
|
13 |
|
14 |
/**
|
23 |
|
24 |
function __construct() {
|
25 |
|
26 |
+
parent::__construct('subscription', '2.0.3');
|
|
|
|
|
|
|
|
|
27 |
|
28 |
// Must be called after the Newsletter::hook_init, since some constants are defined
|
29 |
// there.
|
32 |
|
33 |
function hook_init() {
|
34 |
add_action('wp_loaded', array($this, 'hook_wp_loaded'));
|
35 |
+
if (is_admin()) {
|
36 |
+
// Something
|
37 |
+
} else {
|
38 |
+
add_action('wp_enqueue_scripts', array($this, 'hook_wp_enqueue_scripts'));
|
39 |
+
add_action('wp_head', array($this, 'hook_wp_head'), 100);
|
40 |
+
add_action('wp_footer', array($this, 'hook_wp_footer'));
|
41 |
+
add_shortcode('newsletter', array($this, 'shortcode_newsletter'));
|
42 |
+
add_shortcode('newsletter_form', array($this, 'shortcode_newsletter_form'));
|
43 |
+
add_shortcode('newsletter_profile', array($this, 'shortcode_newsletter_profile'));
|
44 |
+
add_shortcode('newsletter_field', array($this, 'shortcode_newsletter_field'));
|
45 |
+
}
|
46 |
}
|
47 |
|
48 |
+
function hook_wp_enqueue_scripts() {
|
49 |
+
if (apply_filters('newsletter_enqueue_style', true)) {
|
50 |
+
wp_enqueue_style('newsletter-subscription', plugins_url('newsletter') . '/subscription/style.css', array(), NEWSLETTER_VERSION);
|
51 |
+
if (!empty($this->options['css'])) {
|
52 |
+
wp_add_inline_style('newsletter-subscription', $this->options['css']);
|
53 |
+
}
|
54 |
+
}
|
55 |
+
|
56 |
+
wp_enqueue_script('newsletter-subscription', plugins_url('newsletter') . '/subscription/validate.js', array(), NEWSLETTER_VERSION, true);
|
57 |
+
$options = $this->get_options('profile');
|
58 |
+
$data = array();
|
59 |
+
$data['messages'] = array();
|
60 |
+
if (isset($options['email_error'])) {
|
61 |
+
$data['messages']['email_error'] = $options['email_error'];
|
62 |
+
}
|
63 |
+
if (isset($options['name_error'])) {
|
64 |
+
$data['messages']['name_error'] = $options['name_error'];
|
65 |
+
}
|
66 |
+
if (isset($options['surname_error'])) {
|
67 |
+
$data['messages']['surname_error'] = $options['surname_error'];
|
68 |
+
}
|
69 |
+
if (isset($options['profile_error'])) {
|
70 |
+
$data['messages']['profile_error'] = $options['profile_error'];
|
71 |
+
}
|
72 |
+
if (isset($options['privacy_error'])) {
|
73 |
+
$data['messages']['privacy_error'] = $options['privacy_error'];
|
74 |
+
}
|
75 |
+
$data['profile_max'] = NEWSLETTER_PROFILE_MAX;
|
76 |
+
wp_localize_script('newsletter-subscription', 'newsletter', $data);
|
77 |
+
}
|
78 |
|
79 |
function hook_wp_loaded() {
|
80 |
global $newsletter, $wpdb;
|
81 |
|
82 |
switch ($newsletter->action) {
|
83 |
+
case 'm':
|
84 |
+
include dirname(__FILE__) . '/page.php';
|
85 |
+
die();
|
86 |
|
87 |
+
// normal subscription
|
88 |
+
case 's':
|
89 |
+
case 'subscribe':
|
90 |
+
if (isset($this->options['antibot_disable']) || $this->antibot_form_check()) {
|
91 |
|
92 |
+
$user = $this->subscribe();
|
93 |
|
94 |
if ($user->status == 'E')
|
95 |
+
$this->show_message('error', $user->id);
|
96 |
if ($user->status == 'C')
|
97 |
+
$this->show_message('confirmed', $user->id);
|
98 |
if ($user->status == 'A')
|
99 |
+
$this->show_message('already_confirmed', $user->id);
|
100 |
if ($user->status == 'S')
|
101 |
+
$this->show_message('confirmation', $user->id);
|
102 |
} else {
|
103 |
|
104 |
+
$this->request_to_antibot_form('Subscribe');
|
105 |
}
|
106 |
die();
|
107 |
+
|
108 |
+
// AJAX subscription
|
109 |
+
case 'ajaxsub':
|
110 |
+
$user = $this->subscribe();
|
111 |
+
if ($user->status == 'E')
|
112 |
+
$key = 'error';
|
113 |
+
if ($user->status == 'C')
|
114 |
+
$key = 'confirmed';
|
115 |
+
if ($user->status == 'A')
|
116 |
+
$key = 'already_confirmed';
|
117 |
+
if ($user->status == 'S')
|
118 |
+
$key = 'confirmation';
|
119 |
+
$module = NewsletterSubscription::instance();
|
120 |
+
$message = $newsletter->replace($module->options[$key . '_text'], $user);
|
121 |
+
$message .= $module->options[$key . '_tracking'];
|
122 |
+
echo $message;
|
123 |
+
die();
|
124 |
+
|
125 |
case 'u':
|
126 |
+
$user = $this->get_user_from_request();
|
127 |
$email = $this->get_email_from_request();
|
128 |
if ($user == null) {
|
129 |
+
$this->show_message('unsubscription_error', null);
|
130 |
} else {
|
131 |
+
$this->show_message('unsubscription', $user, null, $email);
|
132 |
}
|
133 |
die();
|
134 |
break;
|
135 |
case 'uc':
|
136 |
if ($this->antibot_form_check()) {
|
137 |
+
$user = $this->unsubscribe();
|
138 |
if ($user->status == 'E') {
|
139 |
+
$this->show_message('unsubscription_error', $user);
|
140 |
} else {
|
141 |
+
$this->show_message('unsubscribed', $user);
|
142 |
}
|
143 |
return;
|
144 |
} else {
|
148 |
break;
|
149 |
case 'p':
|
150 |
case 'pe':
|
151 |
+
$user = $this->check_user();
|
152 |
if ($user == null) {
|
153 |
die('No subscriber found.');
|
154 |
}
|
155 |
|
156 |
+
$this->show_message('profile', $user);
|
157 |
die();
|
158 |
break;
|
159 |
+
|
160 |
+
case 'ps':
|
161 |
+
$user = $this->save_profile();
|
162 |
+
// $user->alert is a temporary field
|
163 |
+
$this->show_message('profile', $user, $user->alert);
|
164 |
+
die();
|
165 |
+
break;
|
166 |
+
|
167 |
case 'c':
|
168 |
+
case 'confirm':
|
169 |
if ($this->antibot_form_check()) {
|
170 |
+
$user = $this->confirm();
|
171 |
if ($user->status == 'E') {
|
172 |
+
$this->show_message('error', $user->id);
|
173 |
} else {
|
174 |
setcookie('newsletter', $user->id . '-' . $user->token, time() + 60 * 60 * 24 * 365, '/');
|
175 |
+
$this->show_message('confirmed', $user);
|
176 |
}
|
177 |
} else {
|
178 |
$this->request_to_antibot_form('Confirm');
|
179 |
}
|
180 |
die();
|
181 |
break;
|
182 |
+
|
183 |
default:
|
184 |
return;
|
185 |
}
|
186 |
}
|
187 |
|
188 |
+
function hook_wp_head() {
|
189 |
+
|
190 |
+
}
|
191 |
+
|
192 |
+
function hook_wp_footer() {
|
193 |
+
// Consider this: http://stackoverflow.com/questions/574944/how-to-load-up-css-files-using-javascript
|
194 |
+
}
|
195 |
+
|
196 |
function upgrade() {
|
197 |
global $wpdb, $charset_collate, $newsletter;
|
198 |
|
201 |
$this->init_options('profile');
|
202 |
$this->init_options('lists');
|
203 |
|
|
|
|
|
204 |
$default_options = $this->get_default_options();
|
205 |
|
206 |
if (empty($this->options['error_text'])) {
|
227 |
update_option('newsletter_profile', $options_profile);
|
228 |
}
|
229 |
|
230 |
+
if ($this->old_version < '2.0.0') {
|
231 |
+
if (!isset($this->options['url']) && !empty($newsletter->options['url'])) {
|
232 |
+
$this->options['url'] = $newsletter->options['url'];
|
233 |
+
$this->save_options($this->options);
|
234 |
+
}
|
235 |
|
236 |
+
$options_template = $this->get_options('template');
|
237 |
+
if (empty($options_template) && isset($this->options['template'])) {
|
238 |
+
$options_template['enabled'] = isset($this->options['template_enabled']) ? 1 : 0;
|
239 |
+
$options_template['template'] = $this->options['template'];
|
240 |
+
add_option('newsletter_subscription_template', $options_template, null, 'no');
|
241 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
242 |
|
243 |
+
if (isset($this->options['template'])) {
|
244 |
+
unset($this->options['template']);
|
245 |
+
unset($this->options['template_enabled']);
|
246 |
+
$this->save_options($this->options);
|
247 |
+
}
|
248 |
}
|
|
|
249 |
|
250 |
+
$this->init_options('template', false);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
251 |
|
|
|
|
|
252 |
return true;
|
253 |
}
|
254 |
|
255 |
function admin_menu() {
|
256 |
$this->add_menu_page('options', 'List building');
|
257 |
$this->add_admin_page('profile', 'Subscription Form');
|
|
|
|
|
258 |
$this->add_admin_page('forms', 'Forms');
|
259 |
$this->add_admin_page('lists', 'Lists');
|
260 |
$this->add_admin_page('template', 'Template');
|
261 |
$this->add_admin_page('unsubscription', 'Unsubscription');
|
262 |
}
|
263 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
264 |
/**
|
265 |
* This method has been redefined for compatibility with the old options naming. It would
|
266 |
* be better to change them instead. The subscription options should be named
|
295 |
return parent::get_options($sub);
|
296 |
}
|
297 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
298 |
/**
|
299 |
* Return the subscribed user.
|
300 |
*
|
402 |
|
403 |
// Notification to admin (only for new confirmed subscriptions)
|
404 |
if ($user->status == 'C') {
|
405 |
+
do_action('newsletter_user_confirmed', $user);
|
406 |
$this->notify_admin($user, 'Newsletter subscription');
|
407 |
setcookie('newsletter', $user->id . '-' . $user->token, time() + 60 * 60 * 24 * 365, '/');
|
408 |
}
|
467 |
}
|
468 |
|
469 |
// Preferences (field names are nl[] and values the list number so special forms with radio button can work)
|
470 |
+
if (isset($_REQUEST['nl']) && is_array($_REQUEST['nl'])) {
|
471 |
$this->logger->debug($_REQUEST['nl']);
|
472 |
for ($i = 1; $i <= NEWSLETTER_LIST_MAX; $i++) {
|
473 |
// If not zero it is selectable by user (on subscription or on profile)
|
557 |
}
|
558 |
|
559 |
if ($user->status == 'C') {
|
560 |
+
do_action('newsletter_user_confirmed', $user);
|
561 |
return $user;
|
562 |
}
|
563 |
|
569 |
setcookie('newsletter', $user->id . '-' . $user->token, time() + 60 * 60 * 24 * 365, '/');
|
570 |
$newsletter->set_user_status($user->id, 'C');
|
571 |
$user->status = 'C';
|
572 |
+
do_action('newsletter_user_confirmed', $user);
|
573 |
$this->notify_admin($user, 'Newsletter subscription');
|
574 |
|
575 |
// Check if is connected to a wp user
|
754 |
}
|
755 |
|
756 |
if (isset($_REQUEST['ncu'])) {
|
757 |
+
$this->options['confirmation_url'] = esc_url($_REQUEST['ncu']);
|
758 |
}
|
759 |
|
760 |
if ($email) {
|
768 |
die();
|
769 |
}
|
770 |
|
771 |
+
if (!empty($this->options['page'])) {
|
772 |
+
$url = get_permalink($this->options['page']);
|
773 |
+
}
|
774 |
+
|
775 |
+
// Old URL
|
776 |
+
if (empty($url) && !empty($this->options['url'])) {
|
777 |
+
$url = $this->options['url'];
|
778 |
+
}
|
779 |
+
|
780 |
+
if (empty($url)) {
|
781 |
+
$url = home_url('/') . '?na=m';
|
782 |
}
|
783 |
|
784 |
+
header('Location: ' . self::add_qs($url, 'nm=' . $key . '&nk=' . $user->id . '-' . $user->token, false) . $params);
|
|
|
785 |
die();
|
786 |
}
|
787 |
|
929 |
}
|
930 |
|
931 |
if (!empty($label)) {
|
932 |
+
$buffer .= '<div class="tnp-field tnp-field-button">';
|
933 |
if (strpos($label, 'http') === 0) {
|
934 |
+
$buffer .= '<input class="tnp-button-image" type="image" src="' . $label . '">';
|
935 |
} else {
|
936 |
+
$buffer .= '<input class="tnp-button" type="submit" value="' . $label . '">';
|
937 |
}
|
938 |
$buffer .= '</div>';
|
939 |
}
|
944 |
}
|
945 |
|
946 |
function _shortcode_label($name, $attrs, $suffix = null) {
|
947 |
+
if (!$suffix) {
|
948 |
$suffix = $name;
|
949 |
+
}
|
950 |
$options_profile = get_option('newsletter_profile');
|
951 |
+
$buffer = '<label for="tnp-' . $suffix . '">';
|
952 |
+
if (isset($attrs['label'])) {
|
953 |
+
if (empty($attrs['label'])) {
|
954 |
+
return;
|
955 |
+
} else {
|
956 |
+
$buffer .= esc_html($attrs['label']);
|
957 |
+
}
|
958 |
} else {
|
959 |
+
$buffer .= esc_html($options_profile[$name]);
|
960 |
}
|
961 |
$buffer .= "</label>\n";
|
962 |
return $buffer;
|
963 |
}
|
964 |
|
965 |
+
function shortcode_newsletter_field($attrs, $content) {
|
966 |
$options_profile = get_option('newsletter_profile');
|
967 |
$name = $attrs['name'];
|
968 |
|
969 |
$buffer = '';
|
970 |
|
971 |
if ($name == 'email') {
|
972 |
+
$buffer .= '<div class="tnp-field tnp-field-email">';
|
973 |
$buffer .= $this->_shortcode_label('email', $attrs);
|
974 |
|
975 |
+
$buffer .= '<input class="tnp-email" type="email" name="ne" value=""';
|
976 |
+
if (isset($attrs['placeholder']))
|
977 |
+
$buffer .= ' placeholder="' . esc_attr($attrs['placeholder']) . '"';
|
978 |
+
$buffer .= 'required>';
|
979 |
if (isset($attrs['button_label'])) {
|
980 |
$label = $attrs['button_label'];
|
981 |
if (strpos($label, 'http') === 0) {
|
982 |
+
$buffer .= ' <input class="tnp-submit-image" type="image" src="' . esc_attr(esc_url_raw($label)) . '">';
|
983 |
} else {
|
984 |
+
$buffer .= ' <input class="tnp-submit" type="submit" value="' . esc_attr($label) . '" style="width: 29%">';
|
985 |
}
|
986 |
}
|
987 |
+
$buffer .= "</div>\n";
|
988 |
return $buffer;
|
989 |
}
|
990 |
|
991 |
if ($name == 'first_name' || $name == 'name') {
|
992 |
+
$buffer .= '<div class="tnp-field tnp-field-firstname">';
|
993 |
$buffer .= $this->_shortcode_label('name', $attrs);
|
994 |
|
995 |
+
$buffer .= '<input class="tnp-name" type="text" name="nn" value=""';
|
996 |
+
if (isset($attrs['placeholder']))
|
997 |
+
$buffer .= ' placeholder="' . esc_attr($attrs['placeholder']) . '"';
|
998 |
if ($options_profile['name_rules'] == 1) {
|
999 |
$buffer .= ' required';
|
1000 |
}
|
1001 |
$buffer .= '>';
|
1002 |
+
$buffer .= "</div>\n";
|
1003 |
return $buffer;
|
1004 |
}
|
1005 |
|
1006 |
if ($name == 'last_name' || $name == 'surname') {
|
1007 |
+
$buffer .= '<div class="tnp-field tnp-field-surname">';
|
1008 |
$buffer .= $this->_shortcode_label('surname', $attrs);
|
1009 |
|
1010 |
+
$buffer .= '<input class="tnp-surname" type="text" name="ns" value=""';
|
1011 |
+
if (isset($attrs['placeholder']))
|
1012 |
+
$buffer .= ' placeholder="' . esc_attr($attrs['placeholder']) . '"';
|
1013 |
if ($options_profile['surname_rules'] == 1) {
|
1014 |
$buffer .= ' required';
|
1015 |
}
|
1021 |
if ($name == 'preference' || $name == 'list') {
|
1022 |
$list = (int) $attrs['number'];
|
1023 |
if (isset($attrs['hidden'])) {
|
1024 |
+
return '<input type="hidden" name="nl[]" value="' . esc_attr($list) . '">';
|
1025 |
}
|
1026 |
+
$buffer .= '<div class="tnp-field tnp-field-checkbox tnp-field-list">';
|
1027 |
+
$buffer .= '<input type="checkbox" id="nl' . esc_attr($list) . '" name="nl[]" value="' . esc_attr($list) . '"';
|
1028 |
if (isset($attrs['checked'])) {
|
1029 |
$buffer .= ' checked';
|
1030 |
}
|
1031 |
$buffer .= '>';
|
1032 |
if (isset($attrs['label'])) {
|
1033 |
if ($attrs['label'] != '')
|
1034 |
+
$buffer .= '<label for="nl' . esc_attr($list) . '">' . esc_html($attrs['label']) . '</label>';
|
1035 |
} else {
|
1036 |
+
$buffer .= '<label for="nl' . esc_attr($list) . '">' . esc_html($options_profile['list_' . $list]) . '</label>';
|
1037 |
}
|
1038 |
+
$buffer .= "</div>\n";
|
1039 |
|
1040 |
return $buffer;
|
1041 |
}
|
1042 |
|
1043 |
+
// All the lists
|
1044 |
if ($name == 'lists' || $name == 'preferences') {
|
1045 |
$lists = '';
|
1046 |
for ($i = 1; $i <= NEWSLETTER_LIST_MAX; $i++) {
|
1047 |
if ($options_profile['list_' . $i . '_status'] != 2) {
|
1048 |
continue;
|
1049 |
}
|
1050 |
+
$lists .= '<div class="tnp-field tnp-field-checkbox tnp-field-list">';
|
1051 |
$lists .= '<input type="checkbox" id="nl' . $i . '" name="nl[]" value="' . $i . '"';
|
1052 |
if ($options_profile['list_' . $i . '_checked'] == 1)
|
1053 |
$lists .= ' checked';
|
1054 |
+
$lists .= '> <label for="nl' . $i . '>' . esc_html($options_profile['list_' . $i]) . '</label>';
|
1055 |
+
$lists .= "</div>\n";
|
1056 |
}
|
1057 |
return $lists;
|
1058 |
}
|
1059 |
|
1060 |
// TODO: add the "not specified"
|
1061 |
if ($name == 'sex' || $name == 'gender') {
|
1062 |
+
$buffer .= '<div class="tnp-field tnp-field-gender">';
|
1063 |
if (isset($attrs['label'])) {
|
1064 |
if ($attrs['label'] != '')
|
1065 |
+
$buffer .= '<label for="">' . esc_html($attrs['label']) . '</label>';
|
1066 |
} else {
|
1067 |
+
$buffer .= '<label for="">' . esc_html($options_profile['sex']) . '</label>';
|
1068 |
}
|
1069 |
|
1070 |
+
$buffer .= '<select name="nx" class="tnp-gender">';
|
1071 |
+
$buffer .= '<option value="m">' . esc_html($options_profile['sex_male']) . '</option>';
|
1072 |
+
$buffer .= '<option value="f">' . esc_html($options_profile['sex_female']) . '</option>';
|
1073 |
$buffer .= '</select>';
|
1074 |
+
$buffer .= "</div>\n";
|
1075 |
return $buffer;
|
1076 |
}
|
1077 |
|
1079 |
$number = (int) $attrs['number'];
|
1080 |
$type = $options_profile['profile_' . $number . '_type'];
|
1081 |
$size = isset($attrs['size']) ? $attrs['size'] : '';
|
1082 |
+
$buffer .= '<div class="tnp-field tnp-field-profile">';
|
1083 |
if (isset($attrs['label'])) {
|
1084 |
if ($attrs['label'] != '') {
|
1085 |
+
$buffer .= '<label>' . esc_html($attrs['label']) . '</label>';
|
1086 |
}
|
1087 |
} else {
|
1088 |
+
$buffer .= '<label>' . esc_html($options_profile['profile_' . $number]) . '</label>';
|
1089 |
}
|
1090 |
$placeholder = isset($attrs['placeholder']) ? $attrs['placeholder'] : $options_profile['profile_' . $number . '_placeholder'];
|
1091 |
|
1093 |
|
1094 |
// Text field
|
1095 |
if ($type == 'text') {
|
1096 |
+
$buffer .= '<input class="tnp-profile tnp-profile-' . $number . '" type="text" size="' . esc_attr($size) . '" name="np' . $number . '" placeholder="' . esc_attr($placeholder) . '"';
|
1097 |
if ($required) {
|
1098 |
$buffer .= ' required';
|
1099 |
}
|
1102 |
|
1103 |
// Select field
|
1104 |
if ($type == 'select') {
|
1105 |
+
$buffer .= '<select class="tnp-profile tnp-profile-' . $number . '" name="np' . $number . '"';
|
1106 |
if ($required) {
|
1107 |
$buffer .= ' required';
|
1108 |
}
|
1112 |
}
|
1113 |
$opts = explode(',', $options_profile['profile_' . $number . '_options']);
|
1114 |
for ($j = 0; $j < count($opts); $j++) {
|
1115 |
+
$buffer .= '<option>' . esc_html(trim($opts[$j])) . '</option>';
|
1116 |
}
|
1117 |
+
$buffer .= "</select>\n";
|
1118 |
}
|
1119 |
|
1120 |
+
$buffer .= "</div>\n";
|
1121 |
|
1122 |
return $buffer;
|
1123 |
}
|
1132 |
$attrs['label'] = $options_profile['list_' . $i];
|
1133 |
}
|
1134 |
|
1135 |
+
$buffer .= '<div class="tnp-field tnp-field-checkbox tnp-field-privacy">';
|
1136 |
|
1137 |
+
$buffer .= '<input type="checkbox" name="ny" required class="tnp-privacy" id="tnp-privacy"> ';
|
1138 |
+
$buffer .= '<label for="tnp-privacy">';
|
1139 |
if (!empty($attrs['url'])) {
|
1140 |
$buffer .= '<a target="_blank" href="' . esc_attr($options_profile['privacy_url']) . '">';
|
1141 |
}
|
1172 |
|
1173 |
$buffer = $this->get_form_javascript();
|
1174 |
|
1175 |
+
$buffer .= '<div class="tnp tnp-subscription">' . "\n";
|
1176 |
$buffer .= '<form method="post" action="' . $action . '" onsubmit="return newsletter_check(this)">' . "\n\n";
|
1177 |
|
1178 |
if (isset($attrs['confirmation_url'])) {
|
1192 |
$buffer .= '<table cellspacing="0" cellpadding="3" border="0">' . "\n\n";
|
1193 |
if ($options_profile['name_status'] == 2) {
|
1194 |
$buffer .= "<!-- first name -->\n";
|
1195 |
+
$buffer .= "<tr>\n\t" . '<th>' . $options_profile['name'] . '</th>' . "\n\t" . '<td><input class="tnp-firstname" type="text" name="nn" size="30"' . ($options_profile['name_rules'] == 1 ? 'required' : '') . '></td>' . "\n" . '</tr>' . "\n\n";
|
1196 |
}
|
1197 |
|
1198 |
if ($options_profile['surname_status'] == 2) {
|
1199 |
$buffer .= "<!-- last name -->\n";
|
1200 |
+
$buffer .= "<tr>\n\t" . '<th>' . $options_profile['surname'] . '</th>' . "\n\t" . '<td><input class="tnp-lastname" type="text" name="ns" size="30"' . ($options_profile['surname_rules'] == 1 ? 'required' : '') . '></td>' . "\n" . '</tr>' . "\n\n";
|
1201 |
}
|
1202 |
|
1203 |
$buffer .= "<!-- email -->\n";
|
1204 |
+
$buffer .= "<tr>\n\t" . '<th>' . $options_profile['email'] . '</th>' . "\n\t" . '<td align="left"><input class="tnp-email" type="email" name="ne" size="30" required></td>' . "\n" . '</tr>' . "\n\n";
|
1205 |
|
1206 |
if ($options_profile['sex_status'] == 2) {
|
1207 |
$buffer .= "<!-- sex -->\n";
|
1208 |
$buffer .= "<tr>\n\t<th>" . $options_profile['sex'] . "</th>\n";
|
1209 |
+
$buffer .= "\t<td>\n\t" . '<select name="nx" class="tnp-gender">' . "\n";
|
1210 |
$buffer .= "\t\t" . '<option value="m">' . $options_profile['sex_male'] . '</option>' . "\n";
|
1211 |
$buffer .= "\t\t" . '<option value="f">' . $options_profile['sex_female'] . '</option>' . "\n";
|
1212 |
$buffer .= "\t</select>\n\t</td></tr>\n";
|
1247 |
// Text field
|
1248 |
if ($options_profile['profile_' . $i . '_type'] == 'text') {
|
1249 |
$buffer .= "<tr>\n\t<th>" . $options_profile['profile_' . $i] . "</th>\n\t<td>\n\t\t";
|
1250 |
+
$buffer .= '<input class="tnp-profile tnp-profile-' . $i . '" type="text" size="30" name="np' . $i . '"';
|
1251 |
$buffer .= ' placeholder="' . esc_attr($options_profile['profile_' . $i . '_placeholder']) . '"';
|
1252 |
if (!empty($options_profile['profile_' . $i . '_rules'])) {
|
1253 |
$buffer .= ' required';
|
1257 |
|
1258 |
// Select field
|
1259 |
if ($options_profile['profile_' . $i . '_type'] == 'select') {
|
1260 |
+
$buffer .= "<tr>\n\t<th>" . $options_profile['profile_' . $i] . "</th>\n\t<td>\n\t\t" . '<select class="tnp-profile tnp-profile-' . $i . '" name="np' . $i . '"';
|
1261 |
if (!empty($options_profile['profile_' . $i . '_rules'])) {
|
1262 |
$buffer .= ' required';
|
1263 |
}
|
1280 |
}
|
1281 |
|
1282 |
if ($options_profile['privacy_status'] == 1) {
|
1283 |
+
$buffer .= "<tr>\n\t" . '<td colspan="2" class="tnp-td-privacy">' . "\n";
|
1284 |
$buffer .= "\t\t" . '<input type="checkbox" name="ny" required> ';
|
1285 |
if (!empty($options_profile['privacy_url'])) {
|
1286 |
$buffer .= '<a target="_blank" href="' . $options_profile['privacy_url'] . '">';
|
1291 |
$buffer .= "\n\t</td>\n</tr>\n\n";
|
1292 |
}
|
1293 |
|
1294 |
+
$buffer .= "<tr>\n\t" . '<td colspan="2" class="tnp-td-submit">' . "\n";
|
1295 |
|
1296 |
if (strpos($options_profile['subscribe'], 'http://') !== false) {
|
1297 |
+
$buffer .= "\t\t" . '<input class="tnp-submit-image" type="image" src="' . $options_profile['subscribe'] . '"/>' . "\n\t</td>\n</tr>\n\n";
|
1298 |
} else {
|
1299 |
+
$buffer .= "\t\t" . '<input class="tnp-submit" type="submit" value="' . $options_profile['subscribe'] . '"/>' . "\n\t</td>\n</tr>\n\n";
|
1300 |
}
|
1301 |
|
1302 |
$buffer .= "</table>\n</form>\n</div>";
|
1303 |
return $buffer;
|
1304 |
}
|
1305 |
|
1306 |
+
/**
|
1307 |
+
* The new standard form.
|
1308 |
+
*
|
1309 |
+
* @param type $referrer
|
1310 |
+
* @param type $action
|
1311 |
+
* @param type $attrs
|
1312 |
+
* @return string
|
1313 |
+
*/
|
1314 |
function get_subscription_form_html5($referrer = null, $action = null, $attrs = array()) {
|
1315 |
if (isset($attrs['action'])) {
|
1316 |
$action = $attrs['action'];
|
1321 |
$options_profile = get_option('newsletter_profile');
|
1322 |
$options = get_option('newsletter');
|
1323 |
|
1324 |
+
$buffer = '';
|
1325 |
|
1326 |
if (empty($action)) {
|
1327 |
+
$action = home_url('/') . '?na=s';
|
1328 |
}
|
1329 |
|
1330 |
+
if ($referrer != 'widget') {
|
1331 |
+
if (isset($attrs['class'])) {
|
1332 |
+
$buffer .= '<div class="tnp tnp-subscription ' . $attrs['class'] . '">' . "\n";
|
1333 |
+
} else {
|
1334 |
+
$buffer .= '<div class="tnp tnp-subscription">' . "\n";
|
1335 |
+
}
|
1336 |
+
}
|
1337 |
+
$buffer .= '<form method="post" action="' . esc_attr($action) . '" onsubmit="return newsletter_check(this)">' . "\n\n";
|
1338 |
|
1339 |
if (!empty($referrer)) {
|
1340 |
+
$buffer .= '<input type="hidden" name="nr" value="' . esc_attr($referrer) . '">' . "\n";
|
1341 |
}
|
1342 |
if (isset($attrs['confirmation_url'])) {
|
1343 |
$buffer .= "<input type='hidden' name='ncu' value='" . esc_attr($attrs['confirmation_url']) . "'>\n";
|
1346 |
if (isset($attrs['list'])) {
|
1347 |
$arr = explode(',', $attrs['list']);
|
1348 |
foreach ($arr as $a) {
|
1349 |
+
$buffer .= "<input type='hidden' name='nl[]' value='" . ((int) trim($a)) . "'>\n";
|
1350 |
}
|
1351 |
}
|
1352 |
|
1353 |
if ($options_profile['name_status'] == 2) {
|
1354 |
+
$buffer .= '<div class="tnp-field tnp-field-firstname"><label>' . esc_html($options_profile['name']) . '</label>';
|
1355 |
+
$buffer .= '<input class="tnp-firstname" type="text" name="nn" ' . ($options_profile['name_rules'] == 1 ? 'required' : '') . '></div>';
|
1356 |
$buffer .= "\n";
|
1357 |
}
|
1358 |
|
1359 |
if ($options_profile['surname_status'] == 2) {
|
1360 |
+
$buffer .= '<div class="tnp-field tnp-field-lastname"><label>' . esc_html($options_profile['surname']) . '</label>';
|
1361 |
+
$buffer .= '<input class="tnp-lastname" type="text" name="ns" ' . ($options_profile['surname_rules'] == 1 ? 'required' : '') . '></div>';
|
1362 |
$buffer .= "\n";
|
1363 |
}
|
1364 |
|
1365 |
+
$buffer .= '<div class="tnp-field tnp-field-email"><label>' . esc_html($options_profile['email']) . '</label>';
|
1366 |
+
$buffer .= '<input class="tnp-email" type="email" name="ne" required></div>';
|
1367 |
$buffer .= "\n";
|
1368 |
|
1369 |
+
if (isset($options_profile['sex_status']) && $options_profile['sex_status'] == 2) {
|
1370 |
+
$buffer .= '<div class="tnp-field tnp-field-gender"><label>' . esc_html($options_profile['sex']) . '</label>';
|
1371 |
+
$buffer .= '<select name="nx" class="tnp-gender"';
|
1372 |
+
if ($options_profile['sex_rules'] == 1) {
|
1373 |
+
$buffer .= ' required><option value=""></option>';
|
1374 |
+
} else {
|
1375 |
+
$buffer .= '><option value="n">' . esc_html($options_profile['sex_none']) . '</option>';
|
1376 |
+
}
|
1377 |
+
$buffer .= '<option value="m">' . esc_html($options_profile['sex_male']) . '</option>';
|
1378 |
+
$buffer .= '<option value="f">' . esc_html($options_profile['sex_female']) . '</option>';
|
1379 |
$buffer .= '</select></div>';
|
1380 |
$buffer .= "\n";
|
1381 |
}
|
1385 |
if ($options_profile['list_' . $i . '_status'] != 2) {
|
1386 |
continue;
|
1387 |
}
|
1388 |
+
$lists .= '<div class="tnp-field tnp-field-list"><label><input class="tnp-preference" type="checkbox" name="nl[]" value="' . $i . '"';
|
1389 |
if ($options_profile['list_' . $i . '_checked'] == 1) {
|
1390 |
$lists .= ' checked';
|
1391 |
}
|
1392 |
+
$lists .= '/> ' . esc_html($options_profile['list_' . $i]) . '</label></div>';
|
1393 |
}
|
1394 |
if (!empty($lists)) {
|
1395 |
+
$buffer .= '<div class="tnp-lists">' . $lists . '</div>';
|
1396 |
}
|
1397 |
|
1398 |
// Extra profile fields
|
1403 |
}
|
1404 |
|
1405 |
|
1406 |
+
$buffer .= '<div class="tnp-field tnp-field-profile"><label>' .
|
1407 |
+
esc_html($options_profile['profile_' . $i]) . '</label>';
|
1408 |
|
1409 |
// Text field
|
1410 |
if ($options_profile['profile_' . $i . '_type'] == 'text') {
|
1411 |
+
$buffer .= '<input class="tnp-profile tnp-profile-' . $i . '" type="text"' . ($options_profile['profile_' . $i . '_rules'] == 1 ? ' required' : '') . ' name="np' . $i . '">';
|
|
|
|
|
|
|
1412 |
}
|
1413 |
|
1414 |
// Select field
|
1415 |
if ($options_profile['profile_' . $i . '_type'] == 'select') {
|
1416 |
+
$buffer .= '<select class="tnp-profile tnp-profile-' . $i . '" name="np' . $i . '" required>' . "\n";
|
1417 |
+
$buffer .= "<option></option>\n";
|
1418 |
$opts = explode(',', $options_profile['profile_' . $i . '_options']);
|
1419 |
for ($j = 0; $j < count($opts); $j++) {
|
1420 |
+
$buffer .= "<option>" . esc_html(trim($opts[$j])) . "</option>\n";
|
1421 |
}
|
1422 |
$buffer .= "</select>\n";
|
1423 |
}
|
1425 |
}
|
1426 |
|
1427 |
$extra = apply_filters('newsletter_subscription_extra', array());
|
1428 |
+
foreach ($extra as $x) {
|
1429 |
$label = $x['label'];
|
1430 |
if (empty($label)) {
|
1431 |
$label = ' ';
|
1432 |
}
|
1433 |
$name = '';
|
1434 |
+
if (!empty($x['name'])) {
|
1435 |
$name = $x['name'];
|
1436 |
+
}
|
1437 |
+
$buffer .= '<div class="tnp-field tnp-field-' . $name . '"><label>' . $label . "</label>";
|
1438 |
$buffer .= $x['field'] . "</div>\n";
|
1439 |
}
|
1440 |
|
1441 |
if ($options_profile['privacy_status'] == 1) {
|
1442 |
+
$buffer .= '<div class="tnp-field tnp-field-privacy">';
|
1443 |
+
$buffer .= '<label><input type="checkbox" name="ny" required class="tnp-privacy"> ';
|
1444 |
if (!empty($options_profile['privacy_url'])) {
|
1445 |
+
$buffer .= '<a target="_blank" href="' . esc_attr($options_profile['privacy_url']) . '"></label>';
|
1446 |
+
$buffer .= esc_attr($options_profile['privacy']) . '</a>';
|
1447 |
} else {
|
1448 |
+
$buffer .= esc_html($options_profile['privacy']);
|
1449 |
}
|
1450 |
+
|
1451 |
+
$buffer .= "</label></div>\n";
|
1452 |
}
|
1453 |
|
1454 |
+
$buffer .= '<div class="tnp-field tnp-field-button">';
|
1455 |
|
1456 |
if (strpos($options_profile['subscribe'], 'http://') !== false) {
|
1457 |
+
$buffer .= '<input class="tnp-submit-image" type="image" src="' . esc_attr($options_profile['subscribe']) . '">' . "\n";
|
1458 |
} else {
|
1459 |
+
$buffer .= '<input class="tnp-submit" type="submit" value="' . esc_attr($options_profile['subscribe']) . '">' . "\n";
|
1460 |
}
|
1461 |
|
1462 |
+
$buffer .= "</div>\n</form>\n";
|
1463 |
+
if ($referrer != 'widget') {
|
1464 |
+
$buffer .= "</div>\n";
|
1465 |
+
}
|
1466 |
return $buffer;
|
1467 |
}
|
1468 |
|
1469 |
+
function shortcode_newsletter_profile($attrs, $content) {
|
1470 |
$user = $this->check_user();
|
1471 |
|
1472 |
if (empty($user)) {
|
1477 |
}
|
1478 |
}
|
1479 |
|
1480 |
+
if (isset($attrs['layout']) && $attrs['layout'] == 'table') {
|
1481 |
+
return $this->get_profile_form($user);
|
1482 |
+
} else {
|
1483 |
+
return $this->get_profile_form_html5($user);
|
1484 |
+
}
|
1485 |
}
|
1486 |
|
1487 |
/**
|
1490 |
function get_profile_form($user) {
|
1491 |
$options = get_option('newsletter_profile');
|
1492 |
|
1493 |
+
$buffer .= '<div class="tnp-profile">';
|
1494 |
+
$buffer .= '<form action="' . esc_attr(home_url('/') . '?na=ps') . '" method="post" onsubmit="return newsletter_check(this)">';
|
1495 |
// TODO: use nk
|
1496 |
+
$buffer .= '<input type="hidden" name="nk" value="' . esc_attr($user->id . '-' . $user->token) . '">';
|
1497 |
$buffer .= '<table cellspacing="0" cellpadding="3" border="0">';
|
1498 |
+
$buffer .= '<tr><th align="right">' . esc_html($options['email']) . '</th><td><input class="tnp-email" type="text" size="30" name="ne" required value="' . esc_attr($user->email) . '"></td></tr>';
|
1499 |
if ($options['name_status'] >= 1) {
|
1500 |
+
$buffer .= '<tr><th align="right">' . esc_html($options['name']) . '</th><td><input class="tnp-firstname" type="text" size="30" name="nn" value="' . esc_attr($user->name) . '"></td></tr>';
|
1501 |
}
|
1502 |
if ($options['surname_status'] >= 1) {
|
1503 |
+
$buffer .= '<tr><th align="right">' . esc_html($options['surname']) . '</th><td><input class="tnp-lastname" type="text" size="30" name="ns" value="' . esc_attr($user->surname) . '"></td></tr>';
|
1504 |
}
|
1505 |
if ($options['sex_status'] >= 1) {
|
1506 |
+
$buffer .= '<tr><th align="right">' . esc_html($options['sex']) . '</th><td><select name="nx" class="tnp-gender">';
|
1507 |
+
$buffer .= '<option value="f"' . ($user->sex == 'f' ? ' selected' : '') . '>' . esc_html($options['sex_female']) . '</option>';
|
1508 |
+
$buffer .= '<option value="m"' . ($user->sex == 'm' ? ' selected' : '') . '>' . esc_html($options['sex_male']) . '</option>';
|
1509 |
+
$buffer .= '<option value="n"' . ($user->sex == 'n' ? ' selected' : '') . '>' . esc_html($options['sex_none']) . '</option>';
|
|
|
|
|
|
|
1510 |
$buffer .= '</select></td></tr>';
|
1511 |
}
|
1512 |
|
1515 |
if ($options['profile_' . $i . '_status'] == 0)
|
1516 |
continue;
|
1517 |
|
1518 |
+
$buffer .= '<tr><th align="right">' . esc_html($options['profile_' . $i]) . '</th><td>';
|
1519 |
+
|
1520 |
$field = 'profile_' . $i;
|
1521 |
|
1522 |
if ($options['profile_' . $i . '_type'] == 'text') {
|
1523 |
+
$buffer .= '<input class="tnp-profile tnp-profile-' . $i . '" type="text" size="50" name="np' . $i . '" value="' . esc_attr($user->$field) . '"/>';
|
1524 |
}
|
1525 |
|
1526 |
if ($options['profile_' . $i . '_type'] == 'select') {
|
1527 |
+
$buffer .= '<select class="tnp-profile tnp-profile-' . $i . '" name="np' . $i . '">';
|
1528 |
$opts = explode(',', $options['profile_' . $i . '_options']);
|
1529 |
for ($j = 0; $j < count($opts); $j++) {
|
1530 |
$opts[$j] = trim($opts[$j]);
|
1531 |
$buffer .= '<option';
|
1532 |
if ($opts[$j] == $user->$field)
|
1533 |
$buffer .= ' selected';
|
1534 |
+
$buffer .= '>' . esc_html($opts[$j]) . '</option>';
|
1535 |
}
|
1536 |
$buffer .= '</select>';
|
1537 |
}
|
1540 |
}
|
1541 |
|
1542 |
// Lists
|
1543 |
+
$buffer .= '<tr><th> </th><td style="text-align: left"><div class="tnp-lists">';
|
1544 |
for ($i = 1; $i <= NEWSLETTER_LIST_MAX; $i++) {
|
1545 |
if ($options['list_' . $i . '_status'] == 0) {
|
1546 |
continue;
|
1547 |
}
|
1548 |
+
$buffer .= '<input class="tnp-list" type="checkbox" name="nl[]" value="' . $i . '"';
|
1549 |
$list = 'list_' . $i;
|
1550 |
if ($user->$list == 1) {
|
1551 |
$buffer .= ' checked';
|
1552 |
}
|
1553 |
+
$buffer .= '/> <span class="tnp-list-label">' . esc_html($options['list_' . $i]) . '</span><br />';
|
1554 |
}
|
1555 |
$buffer .= '</div></td></tr>';
|
1556 |
|
1560 |
$buffer .= $x['field'] . "\n\t</td>\n</tr>\n\n";
|
1561 |
}
|
1562 |
|
1563 |
+
$buffer .= '<tr><td colspan="2" class="tnp-td-submit">';
|
1564 |
|
1565 |
if (strpos($options['save'], 'http://') !== false) {
|
1566 |
+
$buffer .= '<input class="tnp-submit-image" type="image" src="' . esc_attr($options['save']) . '"></td></tr>';
|
1567 |
} else {
|
1568 |
+
$buffer .= '<input class="tnp-submit" type="submit" value="' . esc_attr($options['save']) . '"/></td></tr>';
|
1569 |
}
|
1570 |
|
1571 |
$buffer .= '</table></form></div>';
|
1573 |
return $buffer;
|
1574 |
}
|
1575 |
|
1576 |
+
function get_profile_form_html5($user) {
|
1577 |
+
$options = get_option('newsletter_profile');
|
1578 |
+
|
1579 |
+
$buffer .= '<div class="tnp tnp-profile">';
|
1580 |
+
$buffer .= '<form action="' . esc_attr(home_url('/') . '?na=ps') . '" method="post" onsubmit="return newsletter_check(this)">';
|
1581 |
+
$buffer .= '<input type="hidden" name="nk" value="' . esc_attr($user->id . '-' . $user->token) . '">';
|
1582 |
+
|
1583 |
+
$buffer .= '<div class="tnp-field tnp-field-email">';
|
1584 |
+
$buffer .= '<label>' . esc_html($options['email']) . '</label>';
|
1585 |
+
$buffer .= '<input class="tnp-email" type="text" name="ne" required value="' . esc_attr($user->email) . '">';
|
1586 |
+
$buffer .= "</div>\n";
|
1587 |
+
|
1588 |
+
|
1589 |
+
if ($options['name_status'] >= 1) {
|
1590 |
+
$buffer .= '<div class="tnp-field tnp-field-firstname">';
|
1591 |
+
$buffer .= '<label>' . esc_html($options['name']) . '</label>';
|
1592 |
+
$buffer .= '<input class="tnp-firstname" type="text" name="nn" value="' . esc_attr($user->name) . '"' . ($options['name_rules'] == 1 ? ' required' : '') . '>';
|
1593 |
+
$buffer .= "</div>\n";
|
1594 |
+
}
|
1595 |
+
|
1596 |
+
if ($options['surname_status'] >= 1) {
|
1597 |
+
$buffer .= '<div class="tnp-field tnp-field-lastname">';
|
1598 |
+
$buffer .= '<label>' . esc_html($options['surname']) . '</label>';
|
1599 |
+
$buffer .= '<input class="tnp-lastname" type="text" name="ns" value="' . esc_attr($user->surname) . '"' . ($options['surname_rules'] == 1 ? ' required' : '') . '>';
|
1600 |
+
$buffer .= "</div>\n";
|
1601 |
+
}
|
1602 |
+
|
1603 |
+
if ($options['sex_status'] >= 1) {
|
1604 |
+
$buffer .= '<div class="tnp-field tnp-field-gender">';
|
1605 |
+
$buffer .= '<label>' . esc_html($options['sex']) . '</label>';
|
1606 |
+
$buffer .= '<select name="nx" class="tnp-gender">';
|
1607 |
+
$buffer .= '<option value="f"' . ($user->sex == 'f' ? ' selected' : '') . '>' . esc_html($options['sex_female']) . '</option>';
|
1608 |
+
$buffer .= '<option value="m"' . ($user->sex == 'm' ? ' selected' : '') . '>' . esc_html($options['sex_male']) . '</option>';
|
1609 |
+
$buffer .= '<option value="n"' . ($user->sex == 'n' ? ' selected' : '') . '>' . esc_html($options['sex_none']) . '</option>';
|
1610 |
+
$buffer .= '</select>';
|
1611 |
+
$buffer .= "</div>\n";
|
1612 |
+
}
|
1613 |
+
|
1614 |
+
// Profile
|
1615 |
+
for ($i = 1; $i <= NEWSLETTER_PROFILE_MAX; $i++) {
|
1616 |
+
if ($options['profile_' . $i . '_status'] == 0) {
|
1617 |
+
continue;
|
1618 |
+
}
|
1619 |
+
|
1620 |
+
$buffer .= '<div class="tnp-field tnp-field-profile">';
|
1621 |
+
$buffer .= '<label>' . esc_html($options['profile_' . $i]) . '</label>';
|
1622 |
+
|
1623 |
+
$field = 'profile_' . $i;
|
1624 |
+
|
1625 |
+
if ($options['profile_' . $i . '_type'] == 'text') {
|
1626 |
+
$buffer .= '<input class="tnp-profile tnp-profile-' . $i . '" type="text" name="np' . $i . '" value="' . esc_attr($user->$field) . '"' .
|
1627 |
+
($options['profile_' . $i . '_rules'] == 1 ? ' required' : '') . '>';
|
1628 |
+
}
|
1629 |
+
|
1630 |
+
if ($options['profile_' . $i . '_type'] == 'select') {
|
1631 |
+
$buffer .= '<select class="tnp-profile tnp-profile-' . $i . '" name="np' . $i . '"' .
|
1632 |
+
($options['profile_' . $i . '_rules'] == 1 ? ' required' : '') . '>';
|
1633 |
+
$opts = explode(',', $options['profile_' . $i . '_options']);
|
1634 |
+
for ($j = 0; $j < count($opts); $j++) {
|
1635 |
+
$opts[$j] = trim($opts[$j]);
|
1636 |
+
$buffer .= '<option';
|
1637 |
+
if ($opts[$j] == $user->$field)
|
1638 |
+
$buffer .= ' selected';
|
1639 |
+
$buffer .= '>' . esc_html($opts[$j]) . '</option>';
|
1640 |
+
}
|
1641 |
+
$buffer .= '</select>';
|
1642 |
+
}
|
1643 |
+
|
1644 |
+
$buffer .= "</div>\n";
|
1645 |
+
}
|
1646 |
+
|
1647 |
+
// Lists
|
1648 |
+
$lists = '';
|
1649 |
+
for ($i = 1; $i <= NEWSLETTER_LIST_MAX; $i++) {
|
1650 |
+
if ($options['list_' . $i . '_status'] == 0) {
|
1651 |
+
continue;
|
1652 |
+
}
|
1653 |
+
|
1654 |
+
$lists .= '<div class="tnp-field tnp-field-list">';
|
1655 |
+
$lists .= '<label><input class="tnp-list tnp-list-' . $i . '" type="checkbox" name="nl[]" value="' . $i . '"';
|
1656 |
+
$field = 'list_' . $i;
|
1657 |
+
if ($user->$field == 1) {
|
1658 |
+
$lists .= ' checked';
|
1659 |
+
}
|
1660 |
+
$lists .= '><span class="tnp-list-label">' . esc_html($options['list_' . $i]) . '</span></label>';
|
1661 |
+
$lists .= "</div>\n";
|
1662 |
+
}
|
1663 |
+
|
1664 |
+
if (!empty($lists)) {
|
1665 |
+
$buffer .= '<div class="tnp-lists">' . "\n" . $lists . "\n" . '</div>';
|
1666 |
+
}
|
1667 |
+
|
1668 |
+
$extra = apply_filters('newsletter_profile_extra', array(), $user);
|
1669 |
+
foreach ($extra as $x) {
|
1670 |
+
$buffer .= '<div class="tnp-field">';
|
1671 |
+
$buffer .= '<label>' . $x['label'] . "</label>";
|
1672 |
+
$buffer .= $x['field'];
|
1673 |
+
$buffer .= "</div>\n";
|
1674 |
+
}
|
1675 |
+
|
1676 |
+
$buffer .= '<div class="tnp-field tnp-field-button">';
|
1677 |
+
$buffer .= '<input class="tnp-submit" type="submit" value="' . esc_attr($options['save']) . '">';
|
1678 |
+
$buffer .= "</div>\n";
|
1679 |
+
|
1680 |
+
$buffer .= "</form>\n</div>\n";
|
1681 |
+
|
1682 |
+
return $buffer;
|
1683 |
+
}
|
1684 |
+
|
1685 |
function get_form($number) {
|
1686 |
$options = get_option('newsletter_forms');
|
1687 |
|
1724 |
|
1725 |
function notify_admin($user, $subject) {
|
1726 |
|
1727 |
+
if ($this->options['notify'] != 1) {
|
1728 |
return;
|
1729 |
+
}
|
1730 |
|
1731 |
$message = "Subscriber details:\n\n" .
|
1732 |
"email: " . $user->email . "\n" .
|
1736 |
|
1737 |
$options_profile = get_option('newsletter_profile');
|
1738 |
|
1739 |
+
for ($i = 0; $i < NEWSLETTER_LIST_MAX; $i++) {
|
1740 |
+
if (empty($options_profile['list_' . $i])) {
|
1741 |
+
continue;
|
1742 |
+
}
|
1743 |
+
$field = 'list_' . $i;
|
1744 |
+
$message .= $options_profile['list_' . $i] . ': ' . (empty($user->$field) ? "NO" : "YES") . "\n";
|
1745 |
+
}
|
1746 |
+
|
1747 |
for ($i = 0; $i < NEWSLETTER_PROFILE_MAX; $i++) {
|
1748 |
+
if (empty($options_profile['profile_' . $i])) {
|
1749 |
continue;
|
1750 |
+
}
|
1751 |
$field = 'profile_' . $i;
|
1752 |
$message .= $options_profile['profile_' . $i] . ': ' . $user->$field . "\n";
|
1753 |
}
|
1754 |
|
1755 |
+
|
|
|
|
|
|
|
|
|
|
|
1756 |
|
1757 |
$message .= "token: " . $user->token . "\n" .
|
1758 |
"status: " . $user->status . "\n";
|
1759 |
$email = trim($this->options['notify_email']);
|
1760 |
+
if (empty($email)) {
|
1761 |
$email = get_option('admin_email');
|
1762 |
+
}
|
1763 |
$blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
|
1764 |
+
Newsletter::instance()->mail($email, '[' . $blogname . '] ' . $subject, array('text' => $message));
|
|
|
1765 |
}
|
1766 |
|
1767 |
+
function get_subscription_form_minimal($attrs) {
|
1768 |
+
$options_profile = get_option('newsletter_profile');
|
1769 |
+
if (!is_array($attrs))
|
1770 |
+
$attrs = array();
|
1771 |
+
$attrs = array_merge(array('referrer' => 'minimal', 'button' => $options_profile['subscribe'], 'placeholder' => $options_profile['email']), $attrs);
|
1772 |
|
1773 |
+
$form = '';
|
1774 |
+
$form .= '<div class="tnp tnp-subscription-minimal">';
|
1775 |
+
$form .= '<form action="' . esc_attr(home_url('/')) . '?na=s" method="post">';
|
1776 |
+
$form .= '<input type="hidden" name="nr" value="' . esc_attr($attrs['referrer']) . '">';
|
1777 |
+
$form .= '<input class="tnp-email" type="email" required name="ne" value="" placeholder="' . esc_attr($attrs['placeholder']) . '">';
|
1778 |
+
$form .= '<input class="tnp-submit" type="submit" value="' . esc_attr($attrs['button']) . '">';
|
1779 |
+
$form .= "</form></div>\n";
|
1780 |
|
1781 |
+
return $form;
|
1782 |
+
}
|
1783 |
|
1784 |
+
function shortcode_newsletter_form($attrs, $content) {
|
1785 |
|
1786 |
+
if (isset($attrs['type']) && $attrs['type'] == 'minimal') {
|
1787 |
+
return NewsletterSubscription::instance()->get_subscription_form_minimal($attrs);
|
1788 |
+
}
|
1789 |
+
|
1790 |
+
if (!empty($content)) {
|
1791 |
+
return NewsletterSubscription::instance()->shortcode_subscription($attrs, $content);
|
1792 |
+
}
|
1793 |
+
if (isset($attrs['form'])) {
|
1794 |
+
return NewsletterSubscription::instance()->get_form((int) $attrs['form']);
|
1795 |
+
} else if (isset($attrs['number'])) {
|
1796 |
+
return NewsletterSubscription::instance()->get_form((int) $attrs['number']);
|
1797 |
} else {
|
1798 |
+
if (isset($attrs['layout']) && $attrs['layout'] == 'table') {
|
1799 |
+
return NewsletterSubscription::instance()->get_subscription_form(null, null, $attrs);
|
1800 |
+
} else {
|
1801 |
+
return NewsletterSubscription::instance()->get_subscription_form_html5(null, null, $attrs);
|
1802 |
+
}
|
1803 |
}
|
1804 |
}
|
|
|
|
|
|
|
1805 |
|
1806 |
+
/**
|
1807 |
+
*
|
1808 |
+
* @global type $wpdb
|
1809 |
+
* @global boolean $cache_stop
|
1810 |
+
* @global Newsletter $newsletter
|
1811 |
+
* @param type $attrs
|
1812 |
+
* @param type $content
|
1813 |
+
* @return string
|
1814 |
+
*/
|
1815 |
+
function shortcode_newsletter($attrs, $content) {
|
1816 |
+
global $wpdb, $cache_stop, $newsletter;
|
1817 |
|
1818 |
+
$cache_stop = true;
|
1819 |
|
1820 |
+
$module = NewsletterSubscription::instance();
|
1821 |
+
$user = $module->get_user_from_request();
|
1822 |
+
$message_key = $module->get_message_key_from_request();
|
1823 |
|
1824 |
// if ($message_key != 'subscription' && $user == null) {
|
1825 |
// die('Invalid subscriber');
|
1826 |
// }
|
1827 |
|
1828 |
|
1829 |
+
$message = $module->options[$message_key . '_text'];
|
1830 |
|
1831 |
+
// TODO: the if can be removed
|
1832 |
+
if ($message_key == 'confirmed') {
|
1833 |
+
$message .= $module->options[$message_key . '_tracking'];
|
1834 |
+
}
|
1835 |
|
1836 |
+
// Now check what form must be added
|
1837 |
+
if ($message_key == 'subscription') {
|
1838 |
|
1839 |
+
// Compatibility check
|
1840 |
+
if (stripos($message, '<form') !== false) {
|
1841 |
+
$message .= $module->get_form_javascript();
|
1842 |
+
$message = str_ireplace('<form', '<form method="post" action="' . plugins_url('newsletter/do/subscribe.php') . '" onsubmit="return newsletter_check(this)"', $message);
|
1843 |
+
} else {
|
1844 |
|
1845 |
+
if (strpos($message, '{subscription_form') === false) {
|
1846 |
+
$message .= '{subscription_form}';
|
1847 |
+
}
|
1848 |
|
1849 |
+
if (isset($attrs['form'])) {
|
1850 |
+
$message = str_replace('{subscription_form}', $module->get_form($attrs['form']), $message);
|
|
|
|
|
|
|
1851 |
} else {
|
1852 |
+
if (isset($attrs['layout']) && $attrs['layout'] == 'table') {
|
1853 |
+
$message = str_replace('{subscription_form}', $module->get_subscription_form('page'), $message);
|
1854 |
+
} else {
|
1855 |
+
$message = str_replace('{subscription_form}', $module->get_subscription_form_html5('page'), $message);
|
1856 |
+
}
|
1857 |
}
|
1858 |
}
|
1859 |
}
|
|
|
1860 |
|
1861 |
+
$email = NewsletterSubscription::instance()->get_email_from_request();
|
1862 |
|
1863 |
+
$message = $newsletter->replace($message, $user, $email, 'page');
|
1864 |
|
1865 |
+
if (isset($_REQUEST['alert'])) {
|
1866 |
+
// slashes are already added by wordpress!
|
1867 |
+
$message .= '<script>alert("' . strip_tags($_REQUEST['alert']) . '");</script>';
|
1868 |
+
}
|
1869 |
+
|
1870 |
+
return $message;
|
1871 |
}
|
1872 |
|
|
|
1873 |
}
|
1874 |
|
1875 |
+
NewsletterSubscription::instance();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1876 |
|
1877 |
// Compatibility code
|
1878 |
|
1883 |
echo NewsletterSubscription::instance()->get_subscription_form();
|
1884 |
}
|
1885 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
subscription/template.php
CHANGED
@@ -1,4 +1,7 @@
|
|
1 |
<?php
|
|
|
|
|
|
|
2 |
@include_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
3 |
$controls = new NewsletterControls();
|
4 |
$module = NewsletterSubscription::instance();
|
@@ -10,21 +13,21 @@ if (!$controls->is_action()) {
|
|
10 |
$module->save_options($controls->data, 'template');
|
11 |
|
12 |
if (strpos($controls->data['template'], '{message}') === false) {
|
13 |
-
$controls->errors = '
|
14 |
}
|
15 |
|
16 |
-
$controls->
|
17 |
}
|
18 |
if ($controls->is_action('reset')) {
|
19 |
$controls->data['template'] = file_get_contents(dirname(__FILE__) . '/email.html');
|
20 |
-
$controls->
|
21 |
}
|
22 |
|
23 |
if ($controls->is_action('test')) {
|
24 |
|
25 |
$users = NewsletterUsers::instance()->get_test_users();
|
26 |
if (count($users) == 0) {
|
27 |
-
$controls->errors = '
|
28 |
} else {
|
29 |
$template = $controls->data['template'];
|
30 |
if (strpos($template, '{message}') === false) {
|
@@ -43,12 +46,32 @@ if (!$controls->is_action()) {
|
|
43 |
Newsletter::instance()->mail($user->email, 'Newsletter Messages Template Test', $newsletter->replace($message, $user));
|
44 |
}
|
45 |
$controls->messages .= 'Test emails sent to ' . count($users) . ' test subscribers: ' .
|
46 |
-
implode(', ', $addresses) . '.
|
47 |
}
|
48 |
}
|
49 |
}
|
50 |
?>
|
51 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
<div class="wrap" id="tnp-wrap">
|
53 |
|
54 |
<?php include NEWSLETTER_DIR . '/tnp-header.php'; ?>
|
1 |
<?php
|
2 |
+
if (!defined('ABSPATH'))
|
3 |
+
exit;
|
4 |
+
|
5 |
@include_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
6 |
$controls = new NewsletterControls();
|
7 |
$module = NewsletterSubscription::instance();
|
13 |
$module->save_options($controls->data, 'template');
|
14 |
|
15 |
if (strpos($controls->data['template'], '{message}') === false) {
|
16 |
+
$controls->errors = __('The tag {message} is missing in your template', 'newsletter');
|
17 |
}
|
18 |
|
19 |
+
$controls->add_message_saved();
|
20 |
}
|
21 |
if ($controls->is_action('reset')) {
|
22 |
$controls->data['template'] = file_get_contents(dirname(__FILE__) . '/email.html');
|
23 |
+
$controls->add_message_done();
|
24 |
}
|
25 |
|
26 |
if ($controls->is_action('test')) {
|
27 |
|
28 |
$users = NewsletterUsers::instance()->get_test_users();
|
29 |
if (count($users) == 0) {
|
30 |
+
$controls->errors = __('No test subscribers found.', 'newsletter') . ' <a href="http://www.thenewsletterplugin.com/plugins/newsletter/subscribers-module#test" target="_blank"><i class="fa fa-info-circle"></i></a>';
|
31 |
} else {
|
32 |
$template = $controls->data['template'];
|
33 |
if (strpos($template, '{message}') === false) {
|
46 |
Newsletter::instance()->mail($user->email, 'Newsletter Messages Template Test', $newsletter->replace($message, $user));
|
47 |
}
|
48 |
$controls->messages .= 'Test emails sent to ' . count($users) . ' test subscribers: ' .
|
49 |
+
implode(', ', $addresses) . '.' . ' <a href="http://www.thenewsletterplugin.com/plugins/newsletter/subscribers-module#test" target="_blank"><i class="fa fa-info-circle"></i></a>';
|
50 |
}
|
51 |
}
|
52 |
}
|
53 |
?>
|
54 |
+
<!--
|
55 |
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.20.2/codemirror.css" type="text/css">
|
56 |
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.20.2/addon/hint/show-hint.css">
|
57 |
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.20.2/codemirror.js"></script>
|
58 |
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.20.2/mode/xml/xml.js"></script>
|
59 |
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.20.2/mode/css/css.js"></script>
|
60 |
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.20.2/mode/javascript/javascript.js"></script>
|
61 |
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.20.2/mode/htmlmixed/htmlmixed.js"></script>
|
62 |
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.20.2/addon/hint/show-hint.js"></script>
|
63 |
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.20.2/addon/hint/xml-hint.js"></script>
|
64 |
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.20.2/addon/hint/html-hint.js"></script>
|
65 |
+
<script>
|
66 |
+
jQuery(function () {
|
67 |
+
var editor = CodeMirror.fromTextArea(document.getElementById("options-template"), {
|
68 |
+
lineNumbers: true,
|
69 |
+
mode: 'htmlmixed',
|
70 |
+
extraKeys: {"Ctrl-Space": "autocomplete"}
|
71 |
+
});
|
72 |
+
});
|
73 |
+
</script>
|
74 |
+
-->
|
75 |
<div class="wrap" id="tnp-wrap">
|
76 |
|
77 |
<?php include NEWSLETTER_DIR . '/tnp-header.php'; ?>
|
subscription/unsubscription.php
CHANGED
@@ -1,4 +1,6 @@
|
|
1 |
<?php
|
|
|
|
|
2 |
@include_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
3 |
$controls = new NewsletterControls();
|
4 |
$module = NewsletterSubscription::instance();
|
1 |
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
|
4 |
@include_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
5 |
$controls = new NewsletterControls();
|
6 |
$module = NewsletterSubscription::instance();
|
subscription/validate.js
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
function newsletter_check_field(field, message) {
|
2 |
+
if (!field) return true;
|
3 |
+
if (field.type == "checkbox" && !field.checked) {
|
4 |
+
alert(message);
|
5 |
+
return false;
|
6 |
+
}
|
7 |
+
|
8 |
+
if (field.required !== undefined && field.required !== false && field.value == "") {
|
9 |
+
alert(message);
|
10 |
+
return false;
|
11 |
+
}
|
12 |
+
return true;
|
13 |
+
}
|
14 |
+
|
15 |
+
function newsletter_check(f) {
|
16 |
+
var re = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-]{1,})+\.)+([a-zA-Z0-9]{2,})+$/;
|
17 |
+
if (!re.test(f.elements["ne"].value)) {
|
18 |
+
alert(newsletter.messages.email_error);
|
19 |
+
return false;
|
20 |
+
}
|
21 |
+
if (!newsletter_check_field(f.elements["nn"], newsletter.messages.name_error)) return false;
|
22 |
+
if (!newsletter_check_field(f.elements["ns"], newsletter.messages.surname_error)) return false;
|
23 |
+
|
24 |
+
for (var i=1; i<newsletter.profile_max; i++) {
|
25 |
+
if (!newsletter_check_field(f.elements["np" + i], newsletter.messages.profile_error)) return false;
|
26 |
+
}
|
27 |
+
|
28 |
+
if (!newsletter_check_field(f.elements["ny"], newsletter.messages.privacy_error)) return false;
|
29 |
+
|
30 |
+
return true;
|
31 |
+
}
|
tnp-footer.php
CHANGED
@@ -1,3 +1,6 @@
|
|
|
|
|
|
|
|
1 |
<div id="tnp-footer">
|
2 |
<div>
|
3 |
<ul>
|
1 |
+
<?php
|
2 |
+
if (!defined('ABSPATH')) exit;
|
3 |
+
?>
|
4 |
<div id="tnp-footer">
|
5 |
<div>
|
6 |
<ul>
|
tnp-header.php
CHANGED
@@ -1,6 +1,8 @@
|
|
1 |
<?php
|
2 |
global $current_user, $wpdb, $newsletter;
|
3 |
|
|
|
|
|
4 |
$dismissed = get_option('newsletter_dismissed', array());
|
5 |
|
6 |
$user_count = $wpdb->get_var("select count(*) from " . NEWSLETTER_USERS_TABLE . " where status='C'");
|
@@ -22,6 +24,7 @@ function newsletter_print_entries($group) {
|
|
22 |
}
|
23 |
}
|
24 |
}
|
|
|
25 |
?>
|
26 |
|
27 |
<div class="tnp-drowpdown" id="tnp-header">
|
@@ -50,7 +53,7 @@ function newsletter_print_entries($group) {
|
|
50 |
<small><?php _e('The subscription process in detail', 'newsletter') ?></small></a></li>
|
51 |
<li><a href="?page=newsletter_wp_index"><i class="fa fa-wordpress"></i> <?php _e('WP Registration', 'newsletter') ?>
|
52 |
<small><?php _e('Subscribe on WP registration', 'newsletter') ?></small></a></li>
|
53 |
-
<li><a href="?page=newsletter_subscription_profile"><i class="fa fa-check-square-o"></i> <?php _e('Subscription Form Fields', 'newsletter') ?>
|
54 |
<small><?php _e('When and what data to collect', 'newsletter') ?></small></a></li>
|
55 |
<li><a href="?page=newsletter_subscription_lists"><i class="fa fa-th-list"></i> <?php _e('Lists', 'newsletter') ?>
|
56 |
<small><?php _e('Profile the subscribers for a better targeting', 'newsletter') ?></small></a></li>
|
@@ -95,6 +98,7 @@ function newsletter_print_entries($group) {
|
|
95 |
?>
|
96 |
</ul>
|
97 |
</li>
|
|
|
98 |
<?php
|
99 |
if (empty(Newsletter::instance()->options['contract_key'])) {
|
100 |
?>
|
@@ -106,12 +110,12 @@ function newsletter_print_entries($group) {
|
|
106 |
<?php if (empty(Newsletter::instance()->options['licence_expires'])) { ?>
|
107 |
<li class="tnp-professional-extensions-button-red">
|
108 |
<a href="?page=newsletter_main_main">
|
109 |
-
<i class="fa fa-hand-paper-o" style="color: white"></i> <?php _e('Licence
|
110 |
</a>
|
111 |
<?php } else { ?>
|
112 |
<?php if (Newsletter::instance()->options['licence_expires'] > time()) { ?>
|
113 |
<li class="tnp-professional-extensions-button">
|
114 |
-
<a href="?page=
|
115 |
<i class="fa fa-check-square-o"></i> <?php _e('Licence active', 'newsletter') ?>
|
116 |
</a>
|
117 |
<?php } elseif (Newsletter::instance()->options['licence_expires'] < time()) { ?>
|
@@ -177,7 +181,7 @@ function newsletter_print_entries($group) {
|
|
177 |
</div>
|
178 |
<?php } ?>
|
179 |
|
180 |
-
<?php if (NEWSLETTER_DEBUG || !isset($dismissed['newsletter-page']) && empty(NewsletterSubscription::instance()->options['
|
181 |
<div class="tnp-notice">
|
182 |
<a href="<?php echo $_SERVER['REQUEST_URI'] . '&noheader=1&dismiss=newsletter-page' ?>" class="tnp-dismiss">×</a>
|
183 |
|
@@ -187,28 +191,6 @@ function newsletter_print_entries($group) {
|
|
187 |
</div>
|
188 |
<?php } ?>
|
189 |
|
190 |
-
<?php if (!isset($dismissed['wpmail'])) { ?>
|
191 |
-
<div class="tnp-notice">
|
192 |
-
<a href="<?php echo $_SERVER['REQUEST_URI'] . '&noheader=1&dismiss=wpmail' ?>" class="tnp-dismiss">×</a>
|
193 |
-
|
194 |
-
Important change: now Newsletter sends emails using WordPress! <a href="http://www.thenewsletterplugin.com/configuration-tnin-send-email" target="_blank">Read more</a>.
|
195 |
-
|
196 |
-
</div>
|
197 |
-
<?php } ?>
|
198 |
-
|
199 |
-
<?php /*
|
200 |
-
if (isset($_GET['page']) && !Newsletter::instance()->has_license()) {
|
201 |
-
$p = $_GET['page'];
|
202 |
-
if (strpos($p, 'newsletter_reports') === 0 || strpos($p, 'newsletter_automated') === 0 || strpos($p, 'newsletter_feed') === 0 ||
|
203 |
-
strpos($p, 'newsletter_followup') === 0 || strpos($p, 'newsletter_autoresponder') === 0 || strpos($p, 'newsletter_sendgrid') === 0) {
|
204 |
-
?>
|
205 |
-
<div class="tnp-notice">
|
206 |
-
You have not set your licence
|
207 |
-
</div>
|
208 |
-
<?php
|
209 |
-
}
|
210 |
-
} */
|
211 |
-
?>
|
212 |
<div id="tnp-notification">
|
213 |
<?php Newsletter::instance()->warnings(); ?>
|
214 |
<?php
|
1 |
<?php
|
2 |
global $current_user, $wpdb, $newsletter;
|
3 |
|
4 |
+
if (!defined('ABSPATH')) exit;
|
5 |
+
|
6 |
$dismissed = get_option('newsletter_dismissed', array());
|
7 |
|
8 |
$user_count = $wpdb->get_var("select count(*) from " . NEWSLETTER_USERS_TABLE . " where status='C'");
|
24 |
}
|
25 |
}
|
26 |
}
|
27 |
+
|
28 |
?>
|
29 |
|
30 |
<div class="tnp-drowpdown" id="tnp-header">
|
53 |
<small><?php _e('The subscription process in detail', 'newsletter') ?></small></a></li>
|
54 |
<li><a href="?page=newsletter_wp_index"><i class="fa fa-wordpress"></i> <?php _e('WP Registration', 'newsletter') ?>
|
55 |
<small><?php _e('Subscribe on WP registration', 'newsletter') ?></small></a></li>
|
56 |
+
<li><a href="?page=newsletter_subscription_profile"><i class="fa fa-check-square-o"></i> <?php _e('Subscription Form Fields, Buttons, Labels', 'newsletter') ?>
|
57 |
<small><?php _e('When and what data to collect', 'newsletter') ?></small></a></li>
|
58 |
<li><a href="?page=newsletter_subscription_lists"><i class="fa fa-th-list"></i> <?php _e('Lists', 'newsletter') ?>
|
59 |
<small><?php _e('Profile the subscribers for a better targeting', 'newsletter') ?></small></a></li>
|
98 |
?>
|
99 |
</ul>
|
100 |
</li>
|
101 |
+
<li><a href="?page=newsletter_main_status"><i class="fa fa-thermometer"></i> <?php _e('Status', 'newsletter') ?></a></li>
|
102 |
<?php
|
103 |
if (empty(Newsletter::instance()->options['contract_key'])) {
|
104 |
?>
|
110 |
<?php if (empty(Newsletter::instance()->options['licence_expires'])) { ?>
|
111 |
<li class="tnp-professional-extensions-button-red">
|
112 |
<a href="?page=newsletter_main_main">
|
113 |
+
<i class="fa fa-hand-paper-o" style="color: white"></i> <?php _e('Licence not valid', 'newsletter') ?>
|
114 |
</a>
|
115 |
<?php } else { ?>
|
116 |
<?php if (Newsletter::instance()->options['licence_expires'] > time()) { ?>
|
117 |
<li class="tnp-professional-extensions-button">
|
118 |
+
<a href="?page=newsletter_main_extensions">
|
119 |
<i class="fa fa-check-square-o"></i> <?php _e('Licence active', 'newsletter') ?>
|
120 |
</a>
|
121 |
<?php } elseif (Newsletter::instance()->options['licence_expires'] < time()) { ?>
|
181 |
</div>
|
182 |
<?php } ?>
|
183 |
|
184 |
+
<?php if (NEWSLETTER_DEBUG || !isset($dismissed['newsletter-page']) && empty(NewsletterSubscription::instance()->options['page'])) { ?>
|
185 |
<div class="tnp-notice">
|
186 |
<a href="<?php echo $_SERVER['REQUEST_URI'] . '&noheader=1&dismiss=newsletter-page' ?>" class="tnp-dismiss">×</a>
|
187 |
|
191 |
</div>
|
192 |
<?php } ?>
|
193 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
194 |
<div id="tnp-notification">
|
195 |
<?php Newsletter::instance()->warnings(); ?>
|
196 |
<?php
|
trunk/admin.css
DELETED
@@ -1,1120 +0,0 @@
|
|
1 |
-
|
2 |
-
@import url(//fonts.googleapis.com/css?family=Montserrat:400,700);
|
3 |
-
@import url(//fonts.googleapis.com/css?family=Source+Sans+Pro:700);
|
4 |
-
@import url(//maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css);
|
5 |
-
@import url(css/dropdown.css);
|
6 |
-
@import url(css/jquery-ui/jquery-ui.css);
|
7 |
-
@import url(statistics/css/tnp-statistics.css);
|
8 |
-
|
9 |
-
/* Bootstrap like */
|
10 |
-
|
11 |
-
#tnp-wrap * {
|
12 |
-
-webkit-box-sizing: border-box;
|
13 |
-
-moz-box-sizing: border-box;
|
14 |
-
box-sizing: border-box;
|
15 |
-
}
|
16 |
-
|
17 |
-
#tnp-wrap *:before,
|
18 |
-
#tnp-wrap *:after {
|
19 |
-
-webkit-box-sizing: border-box;
|
20 |
-
-moz-box-sizing: border-box;
|
21 |
-
box-sizing: border-box;
|
22 |
-
}
|
23 |
-
|
24 |
-
/*.row {
|
25 |
-
margin-right: -15px;
|
26 |
-
margin-left: -15px;
|
27 |
-
}*/
|
28 |
-
|
29 |
-
.row:before,
|
30 |
-
.row:after {
|
31 |
-
display: table;
|
32 |
-
content: " ";
|
33 |
-
}
|
34 |
-
.row:after {
|
35 |
-
clear: both;
|
36 |
-
}
|
37 |
-
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
|
38 |
-
position: relative;
|
39 |
-
min-height: 1px;
|
40 |
-
padding-right: 15px;
|
41 |
-
padding-left: 15px;
|
42 |
-
}
|
43 |
-
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
|
44 |
-
float: left;
|
45 |
-
}
|
46 |
-
.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
|
47 |
-
float: left;
|
48 |
-
}
|
49 |
-
.col-md-12 {width: 100%;}
|
50 |
-
.col-md-11 {width: 91.66666667%;}
|
51 |
-
.col-md-10 {width: 83.33333333%;}
|
52 |
-
.col-md-9 {width: 75%;}
|
53 |
-
.col-md-8 {width: 66.66666667%;}
|
54 |
-
.col-md-7 {width: 58.33333333%;}
|
55 |
-
.col-md-6 {width: 50%;}
|
56 |
-
.col-md-5 {width: 41.66666667%;}
|
57 |
-
.col-md-4 {width: 33.33333333%;}
|
58 |
-
.col-md-3 {width: 25%;}
|
59 |
-
.col-md-2 {width: 16.66666667%;}
|
60 |
-
.col-md-1 {width: 8.33333333%;}
|
61 |
-
.col-md-pull-12 {right: 100%;}
|
62 |
-
.col-md-pull-11 {right: 91.66666667%;}
|
63 |
-
.col-md-pull-10 {right: 83.33333333%;}
|
64 |
-
.col-md-pull-9 {right: 75%;}
|
65 |
-
.col-md-pull-8 {right: 66.66666667%;}
|
66 |
-
.col-md-pull-7 {right: 58.33333333%;}
|
67 |
-
.col-md-pull-6 {right: 50%;}
|
68 |
-
.col-md-pull-5 {right: 41.66666667%;}
|
69 |
-
.col-md-pull-4 {right: 33.33333333%;}
|
70 |
-
.col-md-pull-3 {right: 25%;}
|
71 |
-
.col-md-pull-2 {right: 16.66666667%;}
|
72 |
-
.col-md-pull-1 {right: 8.33333333%;}
|
73 |
-
.col-md-pull-0 {right: auto;}
|
74 |
-
.col-md-push-12 {left: 100%;}
|
75 |
-
.col-md-push-11 {left: 91.66666667%;}
|
76 |
-
.col-md-push-10 {left: 83.33333333%;}
|
77 |
-
.col-md-push-9 {left: 75%;}
|
78 |
-
.col-md-push-8 {left: 66.66666667%;}
|
79 |
-
.col-md-push-7 {left: 58.33333333%;}
|
80 |
-
.col-md-push-6 {left: 50%;}
|
81 |
-
.col-md-push-5 {left: 41.66666667%;}
|
82 |
-
.col-md-push-4 {left: 33.33333333%;}
|
83 |
-
.col-md-push-3 {left: 25%;}
|
84 |
-
.col-md-push-2 {left: 16.66666667%;}
|
85 |
-
.col-md-push-1 {left: 8.33333333%;}
|
86 |
-
.col-md-push-0 {left: auto;}
|
87 |
-
.col-md-offset-12 {margin-left: 100%;}
|
88 |
-
.col-md-offset-11 {margin-left: 91.66666667%;}
|
89 |
-
.col-md-offset-10 {margin-left: 83.33333333%;}
|
90 |
-
.col-md-offset-9 {margin-left: 75%;}
|
91 |
-
.col-md-offset-8 {margin-left: 66.66666667%;}
|
92 |
-
.col-md-offset-7 {margin-left: 58.33333333%;}
|
93 |
-
.col-md-offset-6 {margin-left: 50%;}
|
94 |
-
.col-md-offset-5 {margin-left: 41.66666667%;}
|
95 |
-
.col-md-offset-4 {margin-left: 33.33333333%;}
|
96 |
-
.col-md-offset-3 {margin-left: 25%;}
|
97 |
-
.col-md-offset-2 {margin-left: 16.66666667%;}
|
98 |
-
.col-md-offset-1 {margin-left: 8.33333333%;}
|
99 |
-
.col-md-offset-0 {margin-left: 0;}
|
100 |
-
|
101 |
-
|
102 |
-
/* jQuery UI tab patch */
|
103 |
-
.ui-widget-header {
|
104 |
-
background: none;
|
105 |
-
border: 0;
|
106 |
-
border-bottom: 1px solid #ddd;
|
107 |
-
}
|
108 |
-
|
109 |
-
/* HEADER *********************************************************************/
|
110 |
-
#tnp-header {
|
111 |
-
text-align: left;
|
112 |
-
font-size: 12px;
|
113 |
-
xheight: 110px;
|
114 |
-
color: #fff;
|
115 |
-
font-family: "Montserrat",sans-serif;
|
116 |
-
}
|
117 |
-
|
118 |
-
#tnp-header input {
|
119 |
-
font-size: 12px;
|
120 |
-
}
|
121 |
-
|
122 |
-
#tnp-header a {
|
123 |
-
text-decoration: none;
|
124 |
-
/*font-family: "Montserrat",sans-serif;*/
|
125 |
-
color: white;
|
126 |
-
letter-spacing: 0.1em;
|
127 |
-
}
|
128 |
-
|
129 |
-
#tnp-header a:hover {
|
130 |
-
color: #fff;
|
131 |
-
}
|
132 |
-
|
133 |
-
.error a, .error a:hover {
|
134 |
-
color: #000!important;
|
135 |
-
}
|
136 |
-
|
137 |
-
.updated a, .updated a:hover {
|
138 |
-
color: #000!important;
|
139 |
-
}
|
140 |
-
|
141 |
-
.tnp-error {
|
142 |
-
border-left: 5px solid #dd0000;
|
143 |
-
background-color: #fff;
|
144 |
-
padding: 10px;
|
145 |
-
margin: 15px 0;
|
146 |
-
}
|
147 |
-
|
148 |
-
.tnp-warning {
|
149 |
-
border-left: 5px solid #ffb900;
|
150 |
-
background-color: #fff;
|
151 |
-
padding: 10px;
|
152 |
-
margin: 15px 0;
|
153 |
-
}
|
154 |
-
|
155 |
-
.tnp-message {
|
156 |
-
border-left: 5px solid #46b450;
|
157 |
-
background-color: #fff;
|
158 |
-
padding: 10px;
|
159 |
-
margin: 15px 0;
|
160 |
-
}
|
161 |
-
|
162 |
-
/* Admin header for extensions */
|
163 |
-
#newsletter-header-ext {
|
164 |
-
text-align: left;
|
165 |
-
background-color: #fff;
|
166 |
-
padding: 10px;
|
167 |
-
font-size: 12px;
|
168 |
-
border: 1px solid #ccc;
|
169 |
-
float: right;
|
170 |
-
width: 300px;
|
171 |
-
}
|
172 |
-
|
173 |
-
#newsletter-header-ext a {
|
174 |
-
margin-right: 10px;
|
175 |
-
text-decoration: none;
|
176 |
-
}
|
177 |
-
|
178 |
-
#newsletter-path {
|
179 |
-
|
180 |
-
}
|
181 |
-
|
182 |
-
#newsletter-nav {
|
183 |
-
margin-bottom: 15px;
|
184 |
-
}
|
185 |
-
|
186 |
-
.newsletter-separator {
|
187 |
-
clear: both;
|
188 |
-
height: 5px;
|
189 |
-
}
|
190 |
-
|
191 |
-
/*
|
192 |
-
.tnp-wrap, .tnp-wrap td, .tnp-wrap th, .tnp-wrap input, .tnp-wrap textarea {
|
193 |
-
font-size: 13px;
|
194 |
-
font-family: sans-serif;
|
195 |
-
line-height: 130%;
|
196 |
-
}
|
197 |
-
*/
|
198 |
-
|
199 |
-
.tnp-wrap select {
|
200 |
-
height: auto;
|
201 |
-
vertical-align: initial;
|
202 |
-
}
|
203 |
-
.tnp-wrap {
|
204 |
-
/*background-color: white;*/
|
205 |
-
/*padding: 10px;*/
|
206 |
-
}
|
207 |
-
|
208 |
-
.tnp-wrap td a {
|
209 |
-
text-decoration: underline;
|
210 |
-
}
|
211 |
-
|
212 |
-
.tnp-wrap a {
|
213 |
-
font-weight: bold;
|
214 |
-
}
|
215 |
-
|
216 |
-
.tnp-wrap h2 {
|
217 |
-
}
|
218 |
-
|
219 |
-
.tnp-wrap h3 {
|
220 |
-
}
|
221 |
-
|
222 |
-
.tnp-wrap h4 {
|
223 |
-
}
|
224 |
-
|
225 |
-
.tnp-wrap h5 {
|
226 |
-
|
227 |
-
}
|
228 |
-
|
229 |
-
.tnp-wrap ul li {
|
230 |
-
margin-left: 20px;
|
231 |
-
list-style-type: disc;
|
232 |
-
}
|
233 |
-
|
234 |
-
.form-table {
|
235 |
-
background-color: #fff;
|
236 |
-
border: 1px solid #ddd;
|
237 |
-
}
|
238 |
-
|
239 |
-
.form-table th {
|
240 |
-
text-align: right;
|
241 |
-
font-weight: bold;
|
242 |
-
border-right: 1px solid #ddd;
|
243 |
-
max-width: 200px;
|
244 |
-
color: #000000;
|
245 |
-
}
|
246 |
-
.form-table th small {
|
247 |
-
font-weight: normal;
|
248 |
-
}
|
249 |
-
|
250 |
-
.widefat th {
|
251 |
-
text-align: left;
|
252 |
-
}
|
253 |
-
|
254 |
-
|
255 |
-
p.submit {
|
256 |
-
margin-top: 5px;
|
257 |
-
padding: 5px;
|
258 |
-
}
|
259 |
-
|
260 |
-
.bordered-table {
|
261 |
-
border-collapse: collapse;
|
262 |
-
}
|
263 |
-
|
264 |
-
.bordered-table td, .bordered-table th {
|
265 |
-
border: 1px solid #ccc;
|
266 |
-
padding: 3px;
|
267 |
-
}
|
268 |
-
|
269 |
-
.newsletter-button {
|
270 |
-
font-size: 10px;
|
271 |
-
}
|
272 |
-
table.clicks td {
|
273 |
-
border: 1px solid #666;
|
274 |
-
padding: 2px;
|
275 |
-
font-size: 10px;
|
276 |
-
}
|
277 |
-
|
278 |
-
table.clicks {
|
279 |
-
border-collapse: collapse;
|
280 |
-
}
|
281 |
-
|
282 |
-
.grid {
|
283 |
-
border-collapse: collapse;
|
284 |
-
}
|
285 |
-
.grid td, .grid th {
|
286 |
-
padding: 10px;
|
287 |
-
border: 1px solid #ddd;
|
288 |
-
margin: 0;
|
289 |
-
}
|
290 |
-
.grid th {
|
291 |
-
background-color: #aaa;
|
292 |
-
}
|
293 |
-
|
294 |
-
.form-table textarea {
|
295 |
-
width: 100%;
|
296 |
-
}
|
297 |
-
|
298 |
-
.hints {
|
299 |
-
xborder: 1px solid #e4e4ee;
|
300 |
-
xbackground-color: #f4f4ff;
|
301 |
-
xpadding: 5px;
|
302 |
-
margin-top: 10px;
|
303 |
-
xborder-radius: 4px 4px;
|
304 |
-
font-size: 13px;
|
305 |
-
color: #666;
|
306 |
-
font-style: italic;
|
307 |
-
xbackground-color: #fcf8e3;
|
308 |
-
xborder-color: #faebcc;
|
309 |
-
}
|
310 |
-
|
311 |
-
.intro {
|
312 |
-
font-size: 11px;
|
313 |
-
margin: 6px 6px 8px;
|
314 |
-
}
|
315 |
-
|
316 |
-
|
317 |
-
.newsletter-badge {
|
318 |
-
color: #fff;
|
319 |
-
background-color: #666;
|
320 |
-
border-radius: 5px;
|
321 |
-
padding: 1px 5px;
|
322 |
-
}
|
323 |
-
|
324 |
-
.newsletter-checkbox-group, .nl-checkbox-group {
|
325 |
-
float: left;
|
326 |
-
margin-right: 5px;
|
327 |
-
border: 1px solid #ccc;
|
328 |
-
background-color: #f4f4f4;
|
329 |
-
margin-bottom: 5px;
|
330 |
-
padding: 5px;
|
331 |
-
white-space: nowrap;
|
332 |
-
overflow: hidden;
|
333 |
-
}
|
334 |
-
|
335 |
-
/* Checkbox group */
|
336 |
-
.newsletter-checkboxes-item {
|
337 |
-
float: left;
|
338 |
-
margin-right: 5px;
|
339 |
-
border: 1px solid #ddd;
|
340 |
-
border-radius: 3px;
|
341 |
-
background-color: #f4f4f4;
|
342 |
-
width: 150px;
|
343 |
-
margin-bottom: 5px;
|
344 |
-
padding: 3px;
|
345 |
-
white-space: nowrap;
|
346 |
-
overflow: hidden;
|
347 |
-
}
|
348 |
-
|
349 |
-
.newsletter-checkboxes-item input {
|
350 |
-
vertical-align: text-bottom;
|
351 |
-
}
|
352 |
-
|
353 |
-
.newsletter-checkboxes-item label {
|
354 |
-
display: inline;
|
355 |
-
}
|
356 |
-
|
357 |
-
.newsletter-preferences-item {
|
358 |
-
float: left;
|
359 |
-
margin-right: 5px;
|
360 |
-
border: 1px solid #ccc;
|
361 |
-
background-color: #f4f4f4;
|
362 |
-
width: 250px;
|
363 |
-
margin-bottom: 5px;
|
364 |
-
padding: 5px;
|
365 |
-
white-space: nowrap;
|
366 |
-
overflow: hidden;
|
367 |
-
}
|
368 |
-
|
369 |
-
.newsletter-preferences-item label {
|
370 |
-
display: inline;
|
371 |
-
}
|
372 |
-
|
373 |
-
.form-table td .nl-checkbox-group label {
|
374 |
-
display: inline;
|
375 |
-
}
|
376 |
-
|
377 |
-
.ui-tabs .ui-tabs-nav li a {
|
378 |
-
font-size: 12px;
|
379 |
-
}
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
.widefat td, .widefat th {
|
384 |
-
vertical-align: middle;
|
385 |
-
}
|
386 |
-
|
387 |
-
/*
|
388 |
-
.form-table td label {
|
389 |
-
font-size: 10px;
|
390 |
-
display: block;
|
391 |
-
}
|
392 |
-
*/
|
393 |
-
|
394 |
-
.tnp-notice {
|
395 |
-
padding: 15px;
|
396 |
-
margin: 10px 0;
|
397 |
-
padding-right: 70px;
|
398 |
-
position: relative;
|
399 |
-
border: 1px sold #eee;
|
400 |
-
background-color: #fff;
|
401 |
-
color: #444;
|
402 |
-
font-size: 15px;
|
403 |
-
}
|
404 |
-
|
405 |
-
.tnp-notice a {
|
406 |
-
color: #0073aa;
|
407 |
-
text-decoration: none;
|
408 |
-
font-weight: bold;
|
409 |
-
}
|
410 |
-
|
411 |
-
.tnp-notice a.tnp-dismiss {
|
412 |
-
display: block;
|
413 |
-
position: absolute;
|
414 |
-
right: 10px;
|
415 |
-
top: 13px;
|
416 |
-
font-size: 25px;
|
417 |
-
text-decoration: none;
|
418 |
-
color: #666;
|
419 |
-
}
|
420 |
-
|
421 |
-
.newsletter-message {
|
422 |
-
background-color: #efe;
|
423 |
-
border-color: #393;
|
424 |
-
border-radius: 5px;
|
425 |
-
border-style: solid;
|
426 |
-
border-width: 3px;
|
427 |
-
padding: .6em;
|
428 |
-
margin-bottom: .6em;
|
429 |
-
}
|
430 |
-
|
431 |
-
.newsletter-error-span {
|
432 |
-
color: #f00;
|
433 |
-
font-weight: bold;
|
434 |
-
}
|
435 |
-
|
436 |
-
.newsletter-error {
|
437 |
-
background-color: #fee;
|
438 |
-
border-color: #933;
|
439 |
-
border-radius: 5px;
|
440 |
-
border-style: solid;
|
441 |
-
border-width: 2px;
|
442 |
-
padding: .6em;
|
443 |
-
margin-bottom: .6em;
|
444 |
-
}
|
445 |
-
|
446 |
-
.newsletter-error strong, .newsletter-message strong {
|
447 |
-
font-weight: bold;
|
448 |
-
}
|
449 |
-
|
450 |
-
#newsletter-warnings {
|
451 |
-
background-color: #FFEBE8;
|
452 |
-
border-color: #C00;
|
453 |
-
border-radius: 3px;
|
454 |
-
border-style: solid;
|
455 |
-
border-width: 1px;
|
456 |
-
padding: .6em;
|
457 |
-
margin-bottom: .6em;
|
458 |
-
}
|
459 |
-
|
460 |
-
.newsletter-buttons {
|
461 |
-
margin-top: 1em;
|
462 |
-
margin-bottom: 1em;
|
463 |
-
}
|
464 |
-
|
465 |
-
.newsletter-buttons-bottom {
|
466 |
-
}
|
467 |
-
|
468 |
-
.newsletter-buttons-top {
|
469 |
-
}
|
470 |
-
|
471 |
-
/* Text under the panel title to explain the panel purpose. */
|
472 |
-
/*
|
473 |
-
.preamble {
|
474 |
-
margin-bottom: 15px;
|
475 |
-
border-radius: 3px;
|
476 |
-
background-color: #f4f4f4;
|
477 |
-
padding: 10px;
|
478 |
-
background-image: url("images/preamble.png");
|
479 |
-
background-repeat: no-repeat;
|
480 |
-
background-position: left;
|
481 |
-
padding-left: 65px;
|
482 |
-
font-size: 13px;
|
483 |
-
font-family: sans-serif;
|
484 |
-
}
|
485 |
-
|
486 |
-
.preamble p {
|
487 |
-
margin: 0;
|
488 |
-
}
|
489 |
-
*/
|
490 |
-
|
491 |
-
.newsletter-preamble {
|
492 |
-
margin-bottom: 15px;
|
493 |
-
xborder-radius: 3px;
|
494 |
-
xbackground-color: #f4f4f4;
|
495 |
-
xpadding: 10px;
|
496 |
-
xbackground-image: url("images/preamble.png");
|
497 |
-
xbackground-repeat: no-repeat;
|
498 |
-
xbackground-position: left;
|
499 |
-
xpadding-left: 65px;
|
500 |
-
font-size: 13px;
|
501 |
-
xfont-family: sans-serif;
|
502 |
-
}
|
503 |
-
|
504 |
-
.newsletter-preamble p {
|
505 |
-
margin: 0;
|
506 |
-
}
|
507 |
-
|
508 |
-
.tab-preamble {
|
509 |
-
font-size: 13px;
|
510 |
-
line-height: normal;
|
511 |
-
xfont-family: sans-serif;
|
512 |
-
xcolor: #3a87ad;
|
513 |
-
xbackground-color: #d9edf7;
|
514 |
-
xborder: 1px solid #bce8f1;
|
515 |
-
xpadding: 15px;
|
516 |
-
xmargin-bottom: 20px;
|
517 |
-
xborder-radius: 4px;
|
518 |
-
}
|
519 |
-
|
520 |
-
.tab-preamble p {
|
521 |
-
margin: 0 0 5px 0;
|
522 |
-
}
|
523 |
-
|
524 |
-
.tnp-paginator {
|
525 |
-
margin-top: 10px;
|
526 |
-
margin-bottom: 5px;
|
527 |
-
}
|
528 |
-
|
529 |
-
.newsletter-option-grid th {
|
530 |
-
text-align: right;
|
531 |
-
width: auto;
|
532 |
-
border: 0;
|
533 |
-
padding: 3px;
|
534 |
-
font-weight: normal;
|
535 |
-
vertical-align: top;
|
536 |
-
padding-right: 15px;
|
537 |
-
}
|
538 |
-
.newsletter-option-grid td {
|
539 |
-
border: 0;
|
540 |
-
padding: 3px;
|
541 |
-
vertical-align: top;
|
542 |
-
}
|
543 |
-
|
544 |
-
.newsletter-box {
|
545 |
-
border: 1px solid #ddd;
|
546 |
-
padding: 10px;
|
547 |
-
background-color: #fafafa;
|
548 |
-
margin-bottom: 15px;
|
549 |
-
}
|
550 |
-
|
551 |
-
.newsletter-box h3 {
|
552 |
-
margin-top: 0;
|
553 |
-
}
|
554 |
-
|
555 |
-
.newsletter-textarea-preview {
|
556 |
-
border: 1px solid #ddd;
|
557 |
-
}
|
558 |
-
|
559 |
-
.tnp-tab-notice {
|
560 |
-
background-color: #fff;
|
561 |
-
border: 1px solid #eee;
|
562 |
-
border-left: 3px solid gray;
|
563 |
-
padding: 10px;
|
564 |
-
margin: 10px 0;
|
565 |
-
color: #444;
|
566 |
-
}
|
567 |
-
|
568 |
-
.tnp-tab-warning {
|
569 |
-
background-color: #fff;
|
570 |
-
border: 1px solid #eee;
|
571 |
-
border-left: 3px solid orange;
|
572 |
-
padding: 10px;
|
573 |
-
margin: 10px 0;
|
574 |
-
color: #444;
|
575 |
-
}
|
576 |
-
|
577 |
-
.tnp-tab-success {
|
578 |
-
background-color: #fff;
|
579 |
-
border: 1px solid #eee;
|
580 |
-
border-left: 3px solid green;
|
581 |
-
padding: 10px;
|
582 |
-
margin: 10px 0;
|
583 |
-
color: #444;
|
584 |
-
}
|
585 |
-
|
586 |
-
.tnp-tab-error {
|
587 |
-
background-color: #fff;
|
588 |
-
border: 1px solid #eee;
|
589 |
-
border-left: 3px solid red;
|
590 |
-
padding: 10px;
|
591 |
-
margin: 10px 0;
|
592 |
-
color: #444;
|
593 |
-
}
|
594 |
-
|
595 |
-
.tnp-wrap a[target=_blank] {
|
596 |
-
}
|
597 |
-
|
598 |
-
/* .tnp-wrap a[target=_blank]:after {
|
599 |
-
content: "»";
|
600 |
-
}*/
|
601 |
-
|
602 |
-
|
603 |
-
/* CSS The Newsletter Team */
|
604 |
-
|
605 |
-
/* CSS Tips */
|
606 |
-
|
607 |
-
.tnp-tip {
|
608 |
-
margin-top: 5px;
|
609 |
-
}
|
610 |
-
|
611 |
-
.tip-button {
|
612 |
-
padding: 0px 5px;
|
613 |
-
color: #FD5F65;
|
614 |
-
text-transform: uppercase;
|
615 |
-
letter-spacing: 0.2em;
|
616 |
-
/*font-family: "Montserrat";*/
|
617 |
-
font-size: 10px;
|
618 |
-
border: 1px red solid;
|
619 |
-
}
|
620 |
-
|
621 |
-
.tip-content {
|
622 |
-
/*font-family: "Montserrat";*/
|
623 |
-
font-weight: 500;
|
624 |
-
font-size: 11px;
|
625 |
-
color: #999999;
|
626 |
-
}
|
627 |
-
|
628 |
-
/* CSS General Font Styles */
|
629 |
-
|
630 |
-
.tnp-wrap p {
|
631 |
-
/*font-family: "Montserrat";*/
|
632 |
-
font-weight: 400;
|
633 |
-
}
|
634 |
-
|
635 |
-
p.description {
|
636 |
-
font-size: 12px !important;
|
637 |
-
}
|
638 |
-
|
639 |
-
|
640 |
-
/* CSS Themes Preview */
|
641 |
-
|
642 |
-
.tnp-theme-preview {
|
643 |
-
display: inline-block;
|
644 |
-
text-align: center;
|
645 |
-
}
|
646 |
-
|
647 |
-
.tnp-theme-preview p {
|
648 |
-
/*font-family: "Montserrat";*/
|
649 |
-
font-size: 11px;
|
650 |
-
letter-spacing: 0.2em;
|
651 |
-
text-transform: uppercase;
|
652 |
-
color: #fff;
|
653 |
-
}
|
654 |
-
|
655 |
-
.tnp-theme-preview img:hover {
|
656 |
-
border: 5px solid #FD5F65;
|
657 |
-
border-radius: 10px;
|
658 |
-
padding: 5px;
|
659 |
-
background-color: #FD5F65;
|
660 |
-
}
|
661 |
-
|
662 |
-
.tnp-theme-preview img {
|
663 |
-
border: 5px solid transparent;
|
664 |
-
border-radius: 10px;
|
665 |
-
padding: 5px;
|
666 |
-
}
|
667 |
-
|
668 |
-
|
669 |
-
.tnp-header-logo {
|
670 |
-
margin-left: 10px;
|
671 |
-
}
|
672 |
-
|
673 |
-
/* Stefano 4.0 */
|
674 |
-
|
675 |
-
.ui-tabs {
|
676 |
-
border-color: #ddd;
|
677 |
-
background-color: #f2f2f2;
|
678 |
-
border: 0;
|
679 |
-
}
|
680 |
-
|
681 |
-
.ui-tabs .ui-tabs-nav {
|
682 |
-
margin: 0;
|
683 |
-
padding: .2em .2em 0 0;
|
684 |
-
background-color: #f2f2f2;
|
685 |
-
}
|
686 |
-
|
687 |
-
.ui-tabs .ui-tabs-panel {
|
688 |
-
padding: 1em 0;
|
689 |
-
background-color: #f2f2f2;
|
690 |
-
margin: 0;
|
691 |
-
border: 0;
|
692 |
-
}
|
693 |
-
|
694 |
-
/* Altrimenti si crea una striscia bianca in mezzo alla pagina! */
|
695 |
-
|
696 |
-
|
697 |
-
.wp-core-ui .button-primary {
|
698 |
-
background-color: #2b2f3a;
|
699 |
-
color: #fff;
|
700 |
-
}
|
701 |
-
|
702 |
-
|
703 |
-
/* Regole Generali*/
|
704 |
-
|
705 |
-
#tnp-body {
|
706 |
-
padding: 10px;
|
707 |
-
background-color: #34495E;
|
708 |
-
border-radius: 5px;
|
709 |
-
border-color: #34495E;
|
710 |
-
border-width: 10px;
|
711 |
-
border-style: solid;
|
712 |
-
}
|
713 |
-
|
714 |
-
.tnp-darkbg {
|
715 |
-
background-color: #34495E!important;
|
716 |
-
}
|
717 |
-
|
718 |
-
#tnp-body h3 {
|
719 |
-
margin-top: 15px;
|
720 |
-
clear: both;
|
721 |
-
}
|
722 |
-
|
723 |
-
.tnp-body-lite {
|
724 |
-
background-color: #F1F1F1 !important;
|
725 |
-
}
|
726 |
-
|
727 |
-
|
728 |
-
/* Header & Sub-header Pannelli */
|
729 |
-
|
730 |
-
#tnp-heading {
|
731 |
-
padding: 10px;
|
732 |
-
background-color: #34495E;
|
733 |
-
margin-bottom: 10px;
|
734 |
-
border-radius: 5px;
|
735 |
-
}
|
736 |
-
|
737 |
-
#tnp-heading a {
|
738 |
-
color: #fff;
|
739 |
-
font-weight: bold;
|
740 |
-
border-bottom: 1.5px solid #fff;
|
741 |
-
text-decoration: none;
|
742 |
-
}
|
743 |
-
|
744 |
-
#tnp-heading a:hover {
|
745 |
-
color: #27AE60;
|
746 |
-
border-bottom: 1.5px solid #27AE60;
|
747 |
-
}
|
748 |
-
|
749 |
-
#tnp-heading div p {
|
750 |
-
color: #666;
|
751 |
-
}
|
752 |
-
|
753 |
-
#tnp-heading h2 {
|
754 |
-
color: #fff;
|
755 |
-
font-family: "Montserrat", sans-serif;
|
756 |
-
letter-spacing: 0.1rem;
|
757 |
-
font-size: 1.1rem;
|
758 |
-
line-height: 1.8rem;
|
759 |
-
text-transform: uppercase;
|
760 |
-
vertical-align: middle;
|
761 |
-
font-weight: 700;
|
762 |
-
padding: 0;
|
763 |
-
margin: 0px;
|
764 |
-
}
|
765 |
-
|
766 |
-
#tnp-heading p {
|
767 |
-
margin: 0px;
|
768 |
-
color: #fff;
|
769 |
-
}
|
770 |
-
|
771 |
-
#tnp-heading .tnp-btn-h1 {
|
772 |
-
color: #fff;
|
773 |
-
background-color: #3498db;
|
774 |
-
border-radius: 3px;
|
775 |
-
padding: 6px 11px;
|
776 |
-
text-decoration: none;
|
777 |
-
text-transform: capitalize;
|
778 |
-
font-family: "Montserrat", sans-serif;
|
779 |
-
margin-left: 10px;
|
780 |
-
font-size: 0.75rem;
|
781 |
-
font-weight: 300;
|
782 |
-
border: none;
|
783 |
-
}
|
784 |
-
|
785 |
-
#tnp-heading .tnp-btn-h1:hover {
|
786 |
-
color: #fff;
|
787 |
-
background-color: #5DADE2;
|
788 |
-
-webkit-transition: background-color .25s linear;
|
789 |
-
transition: background-color .25s linear;
|
790 |
-
-webkit-font-smoothing: subpixel-antialiased;
|
791 |
-
border: none;
|
792 |
-
color: #fff;
|
793 |
-
}
|
794 |
-
|
795 |
-
.tnp-widget {
|
796 |
-
width: 100%;
|
797 |
-
box-shadow: 0 1px 1px rgba(0,0,0,.04);
|
798 |
-
background: #fff;
|
799 |
-
min-height: 350px;
|
800 |
-
}
|
801 |
-
|
802 |
-
/* Widget title */
|
803 |
-
.tnp-widget h3 {
|
804 |
-
font-family: "Montserrat", sans-serif;
|
805 |
-
letter-spacing: 0.05rem;
|
806 |
-
background-color: #2980B9;
|
807 |
-
color: #fff;
|
808 |
-
margin: 15px 0px;
|
809 |
-
padding: 9px;
|
810 |
-
border: 0;
|
811 |
-
font-size: 14px;
|
812 |
-
font-weight: 400;
|
813 |
-
}
|
814 |
-
|
815 |
-
/* Widget title button */
|
816 |
-
.tnp-widget h3 a {
|
817 |
-
float: right;
|
818 |
-
color: white;
|
819 |
-
text-decoration: none;
|
820 |
-
margin-left: 5px;
|
821 |
-
padding: 2px 8px;
|
822 |
-
background-color: #26C281;
|
823 |
-
border-radius: 2px;
|
824 |
-
font-weight: 300;
|
825 |
-
text-transform: capitalize;
|
826 |
-
font-size: 0.8rem;
|
827 |
-
}
|
828 |
-
|
829 |
-
/* Widget title button hover */
|
830 |
-
.tnp-widget h3 a:hover {
|
831 |
-
color: white;
|
832 |
-
text-decoration: none;
|
833 |
-
margin-left: 5px;
|
834 |
-
background-color: #2ECC71;
|
835 |
-
}
|
836 |
-
|
837 |
-
.tnp-widget .inside p, .tnp-widget .inside li {
|
838 |
-
font-size: 12px;
|
839 |
-
margin: 10px;
|
840 |
-
}
|
841 |
-
|
842 |
-
.tnp-widget .inside ul {
|
843 |
-
list-style-type: circle;
|
844 |
-
list-style-position: inside;
|
845 |
-
}
|
846 |
-
|
847 |
-
|
848 |
-
|
849 |
-
/* Dashboard Box */
|
850 |
-
|
851 |
-
.postbox {
|
852 |
-
border: none;
|
853 |
-
}
|
854 |
-
|
855 |
-
.postbox h3 a {
|
856 |
-
float: right;
|
857 |
-
|
858 |
-
}
|
859 |
-
|
860 |
-
|
861 |
-
#dashboard-widgets .postbox-container {
|
862 |
-
width: 33.333%
|
863 |
-
}
|
864 |
-
|
865 |
-
#dashboard-widgets .postbox-container .postbox h3 {
|
866 |
-
font-family: "Montserrat", sans-serif;
|
867 |
-
letter-spacing: 0.05rem;
|
868 |
-
background-color: #415b76;
|
869 |
-
color: #fff;
|
870 |
-
margin: 15px 0px;
|
871 |
-
padding: 9px;
|
872 |
-
}
|
873 |
-
|
874 |
-
#dashboard-widgets .postbox-container h3 a {
|
875 |
-
color: white;
|
876 |
-
text-decoration: none;
|
877 |
-
margin-left: 5px;
|
878 |
-
padding: 2px 8px;
|
879 |
-
background-color: #26C281;
|
880 |
-
border-radius: 2px;
|
881 |
-
font-weight: 300;
|
882 |
-
text-transform: capitalize;
|
883 |
-
font-size: 0.8rem;
|
884 |
-
}
|
885 |
-
|
886 |
-
#dashboard-widgets .postbox-container h3 a:hover {
|
887 |
-
color: white;
|
888 |
-
text-decoration: none;
|
889 |
-
margin-left: 5px;
|
890 |
-
background-color: #2ECC71;
|
891 |
-
}
|
892 |
-
|
893 |
-
.postbox-container i {
|
894 |
-
margin-right: 3px;
|
895 |
-
}
|
896 |
-
#tnp-dash-newsletters tr td:last-of-type {
|
897 |
-
width: 80px;
|
898 |
-
text-align: right;
|
899 |
-
}
|
900 |
-
|
901 |
-
#tnp-dash-subscribers tr td:last-of-type {
|
902 |
-
width: 80px;
|
903 |
-
text-align: right;
|
904 |
-
}
|
905 |
-
|
906 |
-
#tnp-dash-subscribers tr td:first-of-type {
|
907 |
-
width: 250px;
|
908 |
-
overflow: hidden;
|
909 |
-
}
|
910 |
-
|
911 |
-
#tnp-dash-subscribers table {
|
912 |
-
table-layout: fixed;
|
913 |
-
}
|
914 |
-
|
915 |
-
#tnp-dash-documentation .inside div {
|
916 |
-
margin-top: 10px;
|
917 |
-
}
|
918 |
-
|
919 |
-
#tnp-dash-documentation .inside a {
|
920 |
-
text-decoration: none;
|
921 |
-
color: #fff;
|
922 |
-
display: block;
|
923 |
-
font-family: "Montserrat", sans-serif;
|
924 |
-
padding: 5px 10px;
|
925 |
-
}
|
926 |
-
|
927 |
-
|
928 |
-
/* Footer */
|
929 |
-
|
930 |
-
#tnp-footer div {
|
931 |
-
width: 33%;
|
932 |
-
display: inline-block;
|
933 |
-
}
|
934 |
-
|
935 |
-
#tnp-footer {
|
936 |
-
margin-top: 10px;
|
937 |
-
padding: 20px 10px 10px 40px;
|
938 |
-
background-color: #34495E;
|
939 |
-
border-radius: 5px;
|
940 |
-
font-family: "Montserrat", sans-serif;
|
941 |
-
}
|
942 |
-
|
943 |
-
#tnp-footer a {
|
944 |
-
color: #fff;
|
945 |
-
text-decoration: none;
|
946 |
-
}
|
947 |
-
|
948 |
-
#tnp-footer a:hover {
|
949 |
-
color: #BDC3C7;
|
950 |
-
}
|
951 |
-
|
952 |
-
#tnp-footer input[type="submit"] {
|
953 |
-
background-color: #2ECC71;
|
954 |
-
border: none;
|
955 |
-
padding: 5px;
|
956 |
-
color: #fff;
|
957 |
-
}
|
958 |
-
|
959 |
-
#tnp-footer form {
|
960 |
-
white-space: nowrap;
|
961 |
-
}
|
962 |
-
|
963 |
-
#tnp-footer li {
|
964 |
-
display: inline;
|
965 |
-
margin-left: 15px;
|
966 |
-
padding: 2px 5px;
|
967 |
-
border-left: 3px solid #2ECC71;
|
968 |
-
}
|
969 |
-
|
970 |
-
/* Wrapper Background */
|
971 |
-
|
972 |
-
#wpwrap {
|
973 |
-
background-color: #2C3E50;
|
974 |
-
}
|
975 |
-
|
976 |
-
/* Global buttons styles */
|
977 |
-
|
978 |
-
#dashboard-widgets .button {
|
979 |
-
border: none;
|
980 |
-
background: none;
|
981 |
-
box-shadow: none;
|
982 |
-
color: #322C39;
|
983 |
-
}
|
984 |
-
|
985 |
-
#dashboard-widgets .button:hover {
|
986 |
-
background-color: #ECF0F1;
|
987 |
-
}
|
988 |
-
|
989 |
-
.wp-core-ui .button-secondary, .wp-core-ui .button, .wp-core-ui .button-primary {
|
990 |
-
background-color: #3498db;
|
991 |
-
border: none;
|
992 |
-
box-shadow: none;
|
993 |
-
color: #fff;
|
994 |
-
font-family: 'Montserrat',sans-serif;
|
995 |
-
margin: 0px 2px;
|
996 |
-
}
|
997 |
-
|
998 |
-
.wp-core-ui .button-secondary:hover, .wp-core-ui .button:hover, .wp-core-ui .button-primary:hover {
|
999 |
-
background-color: #5DADE2;
|
1000 |
-
color: #fff;
|
1001 |
-
}
|
1002 |
-
|
1003 |
-
span.wp-media-buttons-icon:before {
|
1004 |
-
color: #fff;
|
1005 |
-
}
|
1006 |
-
|
1007 |
-
.tnp-paginator [value="Go"] {
|
1008 |
-
background-color: #27AE60;
|
1009 |
-
}
|
1010 |
-
|
1011 |
-
.tnp-paginator [value="Go"]:hover {
|
1012 |
-
background-color: #2ECC71;
|
1013 |
-
}
|
1014 |
-
|
1015 |
-
.notice-dismiss {
|
1016 |
-
padding: 3px;
|
1017 |
-
}
|
1018 |
-
|
1019 |
-
/*.widefat .button-secondary {
|
1020 |
-
background: none;
|
1021 |
-
color: #3498db;
|
1022 |
-
}*/
|
1023 |
-
|
1024 |
-
/* Paginator */
|
1025 |
-
|
1026 |
-
.tnp-paginator {
|
1027 |
-
color: #fff;
|
1028 |
-
font-family: "Montserrat",sans-serif;
|
1029 |
-
margin: 10px 0px;
|
1030 |
-
}
|
1031 |
-
|
1032 |
-
.tnp-paginator .button-secondary {
|
1033 |
-
padding: 5px;
|
1034 |
-
line-height: normal;
|
1035 |
-
height: auto;
|
1036 |
-
font-size: 12px;
|
1037 |
-
height: 25px;
|
1038 |
-
border: none;
|
1039 |
-
border-radius: 3px;
|
1040 |
-
vertical-align: baseline;
|
1041 |
-
}
|
1042 |
-
|
1043 |
-
.tnp-paginator [value="Go"] {
|
1044 |
-
background-color: #27AE60 !important;
|
1045 |
-
}
|
1046 |
-
|
1047 |
-
.tnp-paginator [value="Go"]:hover {
|
1048 |
-
background-color: #2ECC71 !important;
|
1049 |
-
}
|
1050 |
-
|
1051 |
-
.tnp-paginator input {
|
1052 |
-
background-color: #2C3E50;
|
1053 |
-
border: none;
|
1054 |
-
border-radius: 3px;
|
1055 |
-
color: #fff;
|
1056 |
-
padding: 5px;
|
1057 |
-
line-height: normal;
|
1058 |
-
font-size: 12px;
|
1059 |
-
height: 25px;
|
1060 |
-
}
|
1061 |
-
|
1062 |
-
/* Subscribers Search Box */
|
1063 |
-
|
1064 |
-
.tnp-subscribers-search {
|
1065 |
-
color: #fff;
|
1066 |
-
font-family: "Montserrat", sans-serif;
|
1067 |
-
background-color: #2C3E50;
|
1068 |
-
padding: 20px;
|
1069 |
-
border-radius: 5px;
|
1070 |
-
margin-bottom: 20px;
|
1071 |
-
display: inline-block;
|
1072 |
-
}
|
1073 |
-
|
1074 |
-
.tnp-subscribers-search select {
|
1075 |
-
margin-left: 5px;
|
1076 |
-
padding: none;
|
1077 |
-
line-height: inherit;
|
1078 |
-
}
|
1079 |
-
|
1080 |
-
|
1081 |
-
/* Responsive Video Embeds */
|
1082 |
-
|
1083 |
-
.tnp-video-container {
|
1084 |
-
position: relative;
|
1085 |
-
padding-bottom: 56.25%;
|
1086 |
-
padding-top: 30px; height: 0; overflow: hidden;
|
1087 |
-
}
|
1088 |
-
|
1089 |
-
.tnp-video-container iframe,
|
1090 |
-
.tnp-video-container object,
|
1091 |
-
.tnp-video-container embed {
|
1092 |
-
position: absolute;
|
1093 |
-
top: 0;
|
1094 |
-
left: 0;
|
1095 |
-
width: 100%;
|
1096 |
-
height: 100%;
|
1097 |
-
}
|
1098 |
-
|
1099 |
-
|
1100 |
-
/* Colors Palette */
|
1101 |
-
|
1102 |
-
.orange {
|
1103 |
-
background-color: #F39C12; /*Orange #F39C12 */
|
1104 |
-
}
|
1105 |
-
|
1106 |
-
.blue {
|
1107 |
-
background-color: #2980B9; /* Blue #2980B9 */
|
1108 |
-
}
|
1109 |
-
|
1110 |
-
.purple {
|
1111 |
-
background-color: #8E44AD; /* Purple #8E44AD */
|
1112 |
-
}
|
1113 |
-
|
1114 |
-
.notice a {
|
1115 |
-
color: #000 !important;
|
1116 |
-
}
|
1117 |
-
|
1118 |
-
.tnp-chart {
|
1119 |
-
border: 1px solid #eee;
|
1120 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/admin.js
DELETED
@@ -1,41 +0,0 @@
|
|
1 |
-
jQuery.cookie = function(name, value, options) {
|
2 |
-
if (typeof value != 'undefined') { // name and value given, set cookie
|
3 |
-
options = options || {};
|
4 |
-
if (value === null) {
|
5 |
-
value = '';
|
6 |
-
options.expires = -1;
|
7 |
-
}
|
8 |
-
var expires = '';
|
9 |
-
if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
|
10 |
-
var date;
|
11 |
-
if (typeof options.expires == 'number') {
|
12 |
-
date = new Date();
|
13 |
-
date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
|
14 |
-
} else {
|
15 |
-
date = options.expires;
|
16 |
-
}
|
17 |
-
expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
|
18 |
-
}
|
19 |
-
// CAUTION: Needed to parenthesize options.path and options.domain
|
20 |
-
// in the following expressions, otherwise they evaluate to undefined
|
21 |
-
// in the packed version for some reason...
|
22 |
-
var path = options.path ? '; path=' + (options.path) : '';
|
23 |
-
var domain = options.domain ? '; domain=' + (options.domain) : '';
|
24 |
-
var secure = options.secure ? '; secure' : '';
|
25 |
-
document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
|
26 |
-
} else { // only name given, get cookie
|
27 |
-
var cookieValue = null;
|
28 |
-
if (document.cookie && document.cookie != '') {
|
29 |
-
var cookies = document.cookie.split(';');
|
30 |
-
for (var i = 0; i < cookies.length; i++) {
|
31 |
-
var cookie = jQuery.trim(cookies[i]);
|
32 |
-
// Does this cookie string begin with the name we want?
|
33 |
-
if (cookie.substring(0, name.length + 1) == (name + '=')) {
|
34 |
-
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
|
35 |
-
break;
|
36 |
-
}
|
37 |
-
}
|
38 |
-
}
|
39 |
-
return cookieValue;
|
40 |
-
}
|
41 |
-
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/api/add.php
DELETED
@@ -1,46 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
include '../../../../wp-load.php';
|
4 |
-
|
5 |
-
if (!isset($newsletter)) $newsletter = new Newsletter();
|
6 |
-
|
7 |
-
$key = stripslashes($_REQUEST['nk']);
|
8 |
-
if (empty($newsletter->options['api_key']) || $key != $newsletter->options['api_key']) {
|
9 |
-
die('Wrong API key');
|
10 |
-
}
|
11 |
-
|
12 |
-
if (!is_email($_REQUEST['ne'])) {
|
13 |
-
die('Wrong email');
|
14 |
-
}
|
15 |
-
|
16 |
-
$subscriber = array();
|
17 |
-
$subscriber['name'] = stripslashes($_REQUEST['nn']);
|
18 |
-
$subscriber['surname'] = stripslashes($_REQUEST['ns']);
|
19 |
-
$subscriber['email'] = $newsletter->normalize_email(stripslashes($_REQUEST['ne']));
|
20 |
-
|
21 |
-
if (is_array($_REQUEST['nl'])) {
|
22 |
-
foreach ($_REQUEST['nl'] as $add_list) {
|
23 |
-
$subscriber['list_' . $add_list] = 1;
|
24 |
-
}
|
25 |
-
}
|
26 |
-
else if (!empty($_REQUEST['nl'])) {
|
27 |
-
$add_lists = explode('|', $_REQUEST['nl']);
|
28 |
-
foreach ($add_lists as $add_list) {
|
29 |
-
$subscriber['list_' . $add_list] = 1;
|
30 |
-
}
|
31 |
-
}
|
32 |
-
|
33 |
-
$options_feed = get_option('newsletter_feed', array());
|
34 |
-
if ($options_feed['add_new'] == 1) $subscriber['feed'] = 1;
|
35 |
-
|
36 |
-
$options_followup = get_option('newsletter_followup', array());
|
37 |
-
if ($options_followup['add_new'] == 1) {
|
38 |
-
$subscriber['followup'] = 1;
|
39 |
-
$subscriber['followup_time'] = time() + $options_followup['interval'] * 3600;
|
40 |
-
}
|
41 |
-
|
42 |
-
$subscriber['status'] = 'C';
|
43 |
-
|
44 |
-
// TODO: add control for already subscribed emails
|
45 |
-
NewsletterUsers::instance()->save_user($subscriber);
|
46 |
-
die('ok');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/api/delete.php
DELETED
@@ -1,13 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
include '../../../../wp-load.php';
|
4 |
-
|
5 |
-
if (!isset($newsletter)) $newsletter = new Newsletter();
|
6 |
-
|
7 |
-
$key = stripslashes($_REQUEST['nk']);
|
8 |
-
if (empty(trim($newsletter->options['api_key'])) || $key != $newsletter->options['api_key'])
|
9 |
-
die('Wrong API key');
|
10 |
-
|
11 |
-
$email = $newsletter->normalize_email(stripslashes($_REQUEST['ne']));
|
12 |
-
$r = $wpdb->query($wpdb->prepare("delete from " . NEWSLETTER_USERS_TABLE . " where email=%s", $email));
|
13 |
-
die($r = 0 ? 'ko' : 'ok');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/css/dropdown.css
DELETED
@@ -1,150 +0,0 @@
|
|
1 |
-
.tnp-drowpdown ul, .tnp-drowpdown li {
|
2 |
-
margin: 0; padding: 0; border: 0;
|
3 |
-
}
|
4 |
-
|
5 |
-
.tnp-drowpdown li {
|
6 |
-
min-width: 150px;
|
7 |
-
}
|
8 |
-
|
9 |
-
.tnp-drowpdown {
|
10 |
-
margin-top: 10px;
|
11 |
-
-webkit-transition-timing-function: ease;
|
12 |
-
padding: 5px;
|
13 |
-
font-size: 12px;
|
14 |
-
margin-bottom: 10px;
|
15 |
-
color: #fff;
|
16 |
-
}
|
17 |
-
|
18 |
-
.tnp-drowpdown a {
|
19 |
-
text-decoration: none;
|
20 |
-
color: white;
|
21 |
-
letter-spacing: 0.1em;
|
22 |
-
}
|
23 |
-
|
24 |
-
.tnp-drowpdown a:hover {
|
25 |
-
color: #fff;
|
26 |
-
}
|
27 |
-
|
28 |
-
.tnp-drowpdown {
|
29 |
-
-webkit-transition: width 2s;
|
30 |
-
transition: width 2s;
|
31 |
-
}
|
32 |
-
|
33 |
-
.tnp-drowpdown ul ul {
|
34 |
-
display: none;
|
35 |
-
z-index: 10000;
|
36 |
-
}
|
37 |
-
|
38 |
-
.tnp-drowpdown ul li:hover > ul {
|
39 |
-
display: block;
|
40 |
-
}
|
41 |
-
|
42 |
-
.tnp-drowpdown ul {
|
43 |
-
padding: 0 20px;
|
44 |
-
list-style: none;
|
45 |
-
position: relative;
|
46 |
-
display: inline-table;
|
47 |
-
}
|
48 |
-
.tnp-drowpdown ul:after {
|
49 |
-
content: "";
|
50 |
-
clear: both;
|
51 |
-
display: block;
|
52 |
-
}
|
53 |
-
|
54 |
-
.tnp-drowpdown ul li {
|
55 |
-
float: left;
|
56 |
-
margin-left: 10px;
|
57 |
-
text-transform: uppercase;
|
58 |
-
-webkit-transition: all 0.2s ease-in-out;
|
59 |
-
-moz-transition: all 0.2s ease-in-out;
|
60 |
-
-o-transition: all 0.2s ease-in-out;
|
61 |
-
transition: all 0.2s ease-in-out;
|
62 |
-
}
|
63 |
-
.tnp-drowpdown ul li:hover {
|
64 |
-
background-color: #34495E;
|
65 |
-
/*border: 1px solid #34495E;*/
|
66 |
-
}
|
67 |
-
.tnp-drowpdown ul li:hover a {
|
68 |
-
}
|
69 |
-
|
70 |
-
.tnp-drowpdown ul li a {
|
71 |
-
display: block;
|
72 |
-
padding: 10px 10px;
|
73 |
-
text-decoration: none;
|
74 |
-
}
|
75 |
-
|
76 |
-
.tnp-drowpdown ul li a small {
|
77 |
-
display: block;
|
78 |
-
color: #afafaf;
|
79 |
-
}
|
80 |
-
|
81 |
-
.tnp-drowpdown ul ul {
|
82 |
-
background: #332D39;
|
83 |
-
border-radius: 0px;
|
84 |
-
padding: 0;
|
85 |
-
position: absolute;
|
86 |
-
}
|
87 |
-
.tnp-drowpdown ul ul li {
|
88 |
-
float: none;
|
89 |
-
position: relative;
|
90 |
-
margin-left: 0;
|
91 |
-
border: none;
|
92 |
-
text-transform: none;
|
93 |
-
line-height: 1.6em;
|
94 |
-
}
|
95 |
-
|
96 |
-
|
97 |
-
.tnp-drowpdown ul ul li:nth-child(even) {
|
98 |
-
background-color: #3b3342;
|
99 |
-
}
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
.tnp-drowpdown ul ul li:hover {
|
104 |
-
background: inherit;
|
105 |
-
}
|
106 |
-
.tnp-drowpdown ul ul li a {
|
107 |
-
padding: 5px 15px;
|
108 |
-
color: #fff;
|
109 |
-
}
|
110 |
-
.tnp-drowpdown ul ul li a:hover {
|
111 |
-
background: #34495E;
|
112 |
-
}
|
113 |
-
|
114 |
-
.tnp-drowpdown ul ul ul {
|
115 |
-
position: absolute; left: 100%; top:0;
|
116 |
-
}
|
117 |
-
|
118 |
-
.tnp-wrap ul li {
|
119 |
-
list-style-type: none;
|
120 |
-
}
|
121 |
-
|
122 |
-
.tnp-professional-extensions-button {
|
123 |
-
background-color: #27AE60;
|
124 |
-
border: 1px solid #27AE60 !important;
|
125 |
-
-webkit-transition: all 1s ease-in-out;
|
126 |
-
-moz-transition: all 1s ease-in-out;
|
127 |
-
-o-transition: all 1s ease-in-out;
|
128 |
-
transition: all 1s ease-in-out;
|
129 |
-
border-radius: 3px;
|
130 |
-
}
|
131 |
-
|
132 |
-
.tnp-professional-extensions-button:hover {
|
133 |
-
background-color: #2ECC71 !important;
|
134 |
-
border: 1px solid #2ECC71 !important;
|
135 |
-
}
|
136 |
-
|
137 |
-
.tnp-professional-extensions-button-red {
|
138 |
-
background-color: #C0392B;
|
139 |
-
border: 1px solid #C0392B !important;
|
140 |
-
-webkit-transition: all 1s ease-in-out;
|
141 |
-
-moz-transition: all 1s ease-in-out;
|
142 |
-
-o-transition: all 1s ease-in-out;
|
143 |
-
transition: all 1s ease-in-out;
|
144 |
-
border-radius: 3px;
|
145 |
-
}
|
146 |
-
|
147 |
-
.tnp-professional-extensions-button-red:hover {
|
148 |
-
background-color: #E74C3C !important;
|
149 |
-
border: 1px solid #E74C3C !important;
|
150 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/css/jquery-ui/images/ui-bg_glass_55_fbf9ee_1x400.png
DELETED
Binary file
|
trunk/css/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png
DELETED
Binary file
|
trunk/css/jquery-ui/images/ui-bg_glass_75_dadada_1x400.png
DELETED
Binary file
|
trunk/css/jquery-ui/images/ui-bg_glass_75_e6e6e6_1x400.png
DELETED
Binary file
|
trunk/css/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png
DELETED
Binary file
|
trunk/css/jquery-ui/images/ui-bg_highlight-soft_100_f6f6f6_1x100.png
DELETED
Binary file
|
trunk/css/jquery-ui/images/ui-bg_highlight-soft_25_0073ea_1x100.png
DELETED
Binary file
|
trunk/css/jquery-ui/images/ui-bg_highlight-soft_50_dddddd_1x100.png
DELETED
Binary file
|
trunk/css/jquery-ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png
DELETED
Binary file
|
trunk/css/jquery-ui/images/ui-icons_0073ea_256x240.png
DELETED
Binary file
|
trunk/css/jquery-ui/images/ui-icons_222222_256x240.png
DELETED
Binary file
|
trunk/css/jquery-ui/images/ui-icons_2e83ff_256x240.png
DELETED
Binary file
|
trunk/css/jquery-ui/images/ui-icons_454545_256x240.png
DELETED
Binary file
|
trunk/css/jquery-ui/images/ui-icons_666666_256x240.png
DELETED
Binary file
|
trunk/css/jquery-ui/images/ui-icons_888888_256x240.png
DELETED
Binary file
|
trunk/css/jquery-ui/images/ui-icons_cd0a0a_256x240.png
DELETED
Binary file
|
trunk/css/jquery-ui/images/ui-icons_ff0084_256x240.png
DELETED
Binary file
|
trunk/css/jquery-ui/images/ui-icons_ffffff_256x240.png
DELETED
Binary file
|
trunk/css/jquery-ui/jquery-ui.css
DELETED
@@ -1,1225 +0,0 @@
|
|
1 |
-
/*! jQuery UI - v1.11.4 - 2015-12-31
|
2 |
-
* http://jqueryui.com
|
3 |
-
* Includes: core.css, draggable.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, menu.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css
|
4 |
-
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
|
5 |
-
* Copyright jQuery Foundation and other contributors; Licensed MIT */
|
6 |
-
|
7 |
-
/* Layout helpers
|
8 |
-
----------------------------------*/
|
9 |
-
.ui-helper-hidden {
|
10 |
-
display: none;
|
11 |
-
}
|
12 |
-
.ui-helper-hidden-accessible {
|
13 |
-
border: 0;
|
14 |
-
clip: rect(0 0 0 0);
|
15 |
-
height: 1px;
|
16 |
-
margin: -1px;
|
17 |
-
overflow: hidden;
|
18 |
-
padding: 0;
|
19 |
-
position: absolute;
|
20 |
-
width: 1px;
|
21 |
-
}
|
22 |
-
.ui-helper-reset {
|
23 |
-
margin: 0;
|
24 |
-
padding: 0;
|
25 |
-
border: 0;
|
26 |
-
outline: 0;
|
27 |
-
line-height: 1.3;
|
28 |
-
text-decoration: none;
|
29 |
-
font-size: 100%;
|
30 |
-
list-style: none;
|
31 |
-
}
|
32 |
-
.ui-helper-clearfix:before,
|
33 |
-
.ui-helper-clearfix:after {
|
34 |
-
content: "";
|
35 |
-
display: table;
|
36 |
-
border-collapse: collapse;
|
37 |
-
}
|
38 |
-
.ui-helper-clearfix:after {
|
39 |
-
clear: both;
|
40 |
-
}
|
41 |
-
.ui-helper-clearfix {
|
42 |
-
min-height: 0; /* support: IE7 */
|
43 |
-
}
|
44 |
-
.ui-helper-zfix {
|
45 |
-
width: 100%;
|
46 |
-
height: 100%;
|
47 |
-
top: 0;
|
48 |
-
left: 0;
|
49 |
-
position: absolute;
|
50 |
-
opacity: 0;
|
51 |
-
filter:Alpha(Opacity=0); /* support: IE8 */
|
52 |
-
}
|
53 |
-
|
54 |
-
.ui-front {
|
55 |
-
z-index: 100;
|
56 |
-
}
|
57 |
-
|
58 |
-
|
59 |
-
/* Interaction Cues
|
60 |
-
----------------------------------*/
|
61 |
-
.ui-state-disabled {
|
62 |
-
cursor: default !important;
|
63 |
-
}
|
64 |
-
|
65 |
-
|
66 |
-
/* Icons
|
67 |
-
----------------------------------*/
|
68 |
-
|
69 |
-
/* states and images */
|
70 |
-
.ui-icon {
|
71 |
-
display: block;
|
72 |
-
text-indent: -99999px;
|
73 |
-
overflow: hidden;
|
74 |
-
background-repeat: no-repeat;
|
75 |
-
}
|
76 |
-
|
77 |
-
|
78 |
-
/* Misc visuals
|
79 |
-
----------------------------------*/
|
80 |
-
|
81 |
-
/* Overlays */
|
82 |
-
.ui-widget-overlay {
|
83 |
-
position: fixed;
|
84 |
-
top: 0;
|
85 |
-
left: 0;
|
86 |
-
width: 100%;
|
87 |
-
height: 100%;
|
88 |
-
}
|
89 |
-
.ui-draggable-handle {
|
90 |
-
-ms-touch-action: none;
|
91 |
-
touch-action: none;
|
92 |
-
}
|
93 |
-
.ui-resizable {
|
94 |
-
position: relative;
|
95 |
-
}
|
96 |
-
.ui-resizable-handle {
|
97 |
-
position: absolute;
|
98 |
-
font-size: 0.1px;
|
99 |
-
display: block;
|
100 |
-
-ms-touch-action: none;
|
101 |
-
touch-action: none;
|
102 |
-
}
|
103 |
-
.ui-resizable-disabled .ui-resizable-handle,
|
104 |
-
.ui-resizable-autohide .ui-resizable-handle {
|
105 |
-
display: none;
|
106 |
-
}
|
107 |
-
.ui-resizable-n {
|
108 |
-
cursor: n-resize;
|
109 |
-
height: 7px;
|
110 |
-
width: 100%;
|
111 |
-
top: -5px;
|
112 |
-
left: 0;
|
113 |
-
}
|
114 |
-
.ui-resizable-s {
|
115 |
-
cursor: s-resize;
|
116 |
-
height: 7px;
|
117 |
-
width: 100%;
|
118 |
-
bottom: -5px;
|
119 |
-
left: 0;
|
120 |
-
}
|
121 |
-
.ui-resizable-e {
|
122 |
-
cursor: e-resize;
|
123 |
-
width: 7px;
|
124 |
-
right: -5px;
|
125 |
-
top: 0;
|
126 |
-
height: 100%;
|
127 |
-
}
|
128 |
-
.ui-resizable-w {
|
129 |
-
cursor: w-resize;
|
130 |
-
width: 7px;
|
131 |
-
left: -5px;
|
132 |
-
top: 0;
|
133 |
-
height: 100%;
|
134 |
-
}
|
135 |
-
.ui-resizable-se {
|
136 |
-
cursor: se-resize;
|
137 |
-
width: 12px;
|
138 |
-
height: 12px;
|
139 |
-
right: 1px;
|
140 |
-
bottom: 1px;
|
141 |
-
}
|
142 |
-
.ui-resizable-sw {
|
143 |
-
cursor: sw-resize;
|
144 |
-
width: 9px;
|
145 |
-
height: 9px;
|
146 |
-
left: -5px;
|
147 |
-
bottom: -5px;
|
148 |
-
}
|
149 |
-
.ui-resizable-nw {
|
150 |
-
cursor: nw-resize;
|
151 |
-
width: 9px;
|
152 |
-
height: 9px;
|
153 |
-
left: -5px;
|
154 |
-
top: -5px;
|
155 |
-
}
|
156 |
-
.ui-resizable-ne {
|
157 |
-
cursor: ne-resize;
|
158 |
-
width: 9px;
|
159 |
-
height: 9px;
|
160 |
-
right: -5px;
|
161 |
-
top: -5px;
|
162 |
-
}
|
163 |
-
.ui-selectable {
|
164 |
-
-ms-touch-action: none;
|
165 |
-
touch-action: none;
|
166 |
-
}
|
167 |
-
.ui-selectable-helper {
|
168 |
-
position: absolute;
|
169 |
-
z-index: 100;
|
170 |
-
border: 1px dotted black;
|
171 |
-
}
|
172 |
-
.ui-sortable-handle {
|
173 |
-
-ms-touch-action: none;
|
174 |
-
touch-action: none;
|
175 |
-
}
|
176 |
-
.ui-accordion .ui-accordion-header {
|
177 |
-
display: block;
|
178 |
-
cursor: pointer;
|
179 |
-
position: relative;
|
180 |
-
margin: 2px 0 0 0;
|
181 |
-
padding: .5em .5em .5em .7em;
|
182 |
-
min-height: 0; /* support: IE7 */
|
183 |
-
font-size: 100%;
|
184 |
-
}
|
185 |
-
.ui-accordion .ui-accordion-icons {
|
186 |
-
padding-left: 2.2em;
|
187 |
-
}
|
188 |
-
.ui-accordion .ui-accordion-icons .ui-accordion-icons {
|
189 |
-
padding-left: 2.2em;
|
190 |
-
}
|
191 |
-
.ui-accordion .ui-accordion-header .ui-accordion-header-icon {
|
192 |
-
position: absolute;
|
193 |
-
left: .5em;
|
194 |
-
top: 50%;
|
195 |
-
margin-top: -8px;
|
196 |
-
}
|
197 |
-
.ui-accordion .ui-accordion-content {
|
198 |
-
padding: 1em 2.2em;
|
199 |
-
border-top: 0;
|
200 |
-
overflow: auto;
|
201 |
-
}
|
202 |
-
.ui-autocomplete {
|
203 |
-
position: absolute;
|
204 |
-
top: 0;
|
205 |
-
left: 0;
|
206 |
-
cursor: default;
|
207 |
-
}
|
208 |
-
.ui-button {
|
209 |
-
display: inline-block;
|
210 |
-
position: relative;
|
211 |
-
padding: 0;
|
212 |
-
line-height: normal;
|
213 |
-
margin-right: .1em;
|
214 |
-
cursor: pointer;
|
215 |
-
vertical-align: middle;
|
216 |
-
text-align: center;
|
217 |
-
overflow: visible; /* removes extra width in IE */
|
218 |
-
}
|
219 |
-
.ui-button,
|
220 |
-
.ui-button:link,
|
221 |
-
.ui-button:visited,
|
222 |
-
.ui-button:hover,
|
223 |
-
.ui-button:active {
|
224 |
-
text-decoration: none;
|
225 |
-
}
|
226 |
-
/* to make room for the icon, a width needs to be set here */
|
227 |
-
.ui-button-icon-only {
|
228 |
-
width: 2.2em;
|
229 |
-
}
|
230 |
-
/* button elements seem to need a little more width */
|
231 |
-
button.ui-button-icon-only {
|
232 |
-
width: 2.4em;
|
233 |
-
}
|
234 |
-
.ui-button-icons-only {
|
235 |
-
width: 3.4em;
|
236 |
-
}
|
237 |
-
button.ui-button-icons-only {
|
238 |
-
width: 3.7em;
|
239 |
-
}
|
240 |
-
|
241 |
-
/* button text element */
|
242 |
-
.ui-button .ui-button-text {
|
243 |
-
display: block;
|
244 |
-
line-height: normal;
|
245 |
-
}
|
246 |
-
.ui-button-text-only .ui-button-text {
|
247 |
-
padding: .4em 1em;
|
248 |
-
}
|
249 |
-
.ui-button-icon-only .ui-button-text,
|
250 |
-
.ui-button-icons-only .ui-button-text {
|
251 |
-
padding: .4em;
|
252 |
-
text-indent: -9999999px;
|
253 |
-
}
|
254 |
-
.ui-button-text-icon-primary .ui-button-text,
|
255 |
-
.ui-button-text-icons .ui-button-text {
|
256 |
-
padding: .4em 1em .4em 2.1em;
|
257 |
-
}
|
258 |
-
.ui-button-text-icon-secondary .ui-button-text,
|
259 |
-
.ui-button-text-icons .ui-button-text {
|
260 |
-
padding: .4em 2.1em .4em 1em;
|
261 |
-
}
|
262 |
-
.ui-button-text-icons .ui-button-text {
|
263 |
-
padding-left: 2.1em;
|
264 |
-
padding-right: 2.1em;
|
265 |
-
}
|
266 |
-
/* no icon support for input elements, provide padding by default */
|
267 |
-
input.ui-button {
|
268 |
-
padding: .4em 1em;
|
269 |
-
}
|
270 |
-
|
271 |
-
/* button icon element(s) */
|
272 |
-
.ui-button-icon-only .ui-icon,
|
273 |
-
.ui-button-text-icon-primary .ui-icon,
|
274 |
-
.ui-button-text-icon-secondary .ui-icon,
|
275 |
-
.ui-button-text-icons .ui-icon,
|
276 |
-
.ui-button-icons-only .ui-icon {
|
277 |
-
position: absolute;
|
278 |
-
top: 50%;
|
279 |
-
margin-top: -8px;
|
280 |
-
}
|
281 |
-
.ui-button-icon-only .ui-icon {
|
282 |
-
left: 50%;
|
283 |
-
margin-left: -8px;
|
284 |
-
}
|
285 |
-
.ui-button-text-icon-primary .ui-button-icon-primary,
|
286 |
-
.ui-button-text-icons .ui-button-icon-primary,
|
287 |
-
.ui-button-icons-only .ui-button-icon-primary {
|
288 |
-
left: .5em;
|
289 |
-
}
|
290 |
-
.ui-button-text-icon-secondary .ui-button-icon-secondary,
|
291 |
-
.ui-button-text-icons .ui-button-icon-secondary,
|
292 |
-
.ui-button-icons-only .ui-button-icon-secondary {
|
293 |
-
right: .5em;
|
294 |
-
}
|
295 |
-
|
296 |
-
/* button sets */
|
297 |
-
.ui-buttonset {
|
298 |
-
margin-right: 7px;
|
299 |
-
}
|
300 |
-
.ui-buttonset .ui-button {
|
301 |
-
margin-left: 0;
|
302 |
-
margin-right: -.3em;
|
303 |
-
}
|
304 |
-
|
305 |
-
/* workarounds */
|
306 |
-
/* reset extra padding in Firefox, see h5bp.com/l */
|
307 |
-
input.ui-button::-moz-focus-inner,
|
308 |
-
button.ui-button::-moz-focus-inner {
|
309 |
-
border: 0;
|
310 |
-
padding: 0;
|
311 |
-
}
|
312 |
-
.ui-datepicker {
|
313 |
-
width: 17em;
|
314 |
-
padding: .2em .2em 0;
|
315 |
-
display: none;
|
316 |
-
}
|
317 |
-
.ui-datepicker .ui-datepicker-header {
|
318 |
-
position: relative;
|
319 |
-
padding: .2em 0;
|
320 |
-
}
|
321 |
-
.ui-datepicker .ui-datepicker-prev,
|
322 |
-
.ui-datepicker .ui-datepicker-next {
|
323 |
-
position: absolute;
|
324 |
-
top: 2px;
|
325 |
-
width: 1.8em;
|
326 |
-
height: 1.8em;
|
327 |
-
}
|
328 |
-
.ui-datepicker .ui-datepicker-prev-hover,
|
329 |
-
.ui-datepicker .ui-datepicker-next-hover {
|
330 |
-
top: 1px;
|
331 |
-
}
|
332 |
-
.ui-datepicker .ui-datepicker-prev {
|
333 |
-
left: 2px;
|
334 |
-
}
|
335 |
-
.ui-datepicker .ui-datepicker-next {
|
336 |
-
right: 2px;
|
337 |
-
}
|
338 |
-
.ui-datepicker .ui-datepicker-prev-hover {
|
339 |
-
left: 1px;
|
340 |
-
}
|
341 |
-
.ui-datepicker .ui-datepicker-next-hover {
|
342 |
-
right: 1px;
|
343 |
-
}
|
344 |
-
.ui-datepicker .ui-datepicker-prev span,
|
345 |
-
.ui-datepicker .ui-datepicker-next span {
|
346 |
-
display: block;
|
347 |
-
position: absolute;
|
348 |
-
left: 50%;
|
349 |
-
margin-left: -8px;
|
350 |
-
top: 50%;
|
351 |
-
margin-top: -8px;
|
352 |
-
}
|
353 |
-
.ui-datepicker .ui-datepicker-title {
|
354 |
-
margin: 0 2.3em;
|
355 |
-
line-height: 1.8em;
|
356 |
-
text-align: center;
|
357 |
-
}
|
358 |
-
.ui-datepicker .ui-datepicker-title select {
|
359 |
-
font-size: 1em;
|
360 |
-
margin: 1px 0;
|
361 |
-
}
|
362 |
-
.ui-datepicker select.ui-datepicker-month,
|
363 |
-
.ui-datepicker select.ui-datepicker-year {
|
364 |
-
width: 45%;
|
365 |
-
}
|
366 |
-
.ui-datepicker table {
|
367 |
-
width: 100%;
|
368 |
-
font-size: .9em;
|
369 |
-
border-collapse: collapse;
|
370 |
-
margin: 0 0 .4em;
|
371 |
-
}
|
372 |
-
.ui-datepicker th {
|
373 |
-
padding: .7em .3em;
|
374 |
-
text-align: center;
|
375 |
-
font-weight: bold;
|
376 |
-
border: 0;
|
377 |
-
}
|
378 |
-
.ui-datepicker td {
|
379 |
-
border: 0;
|
380 |
-
padding: 1px;
|
381 |
-
}
|
382 |
-
.ui-datepicker td span,
|
383 |
-
.ui-datepicker td a {
|
384 |
-
display: block;
|
385 |
-
padding: .2em;
|
386 |
-
text-align: right;
|
387 |
-
text-decoration: none;
|
388 |
-
}
|
389 |
-
.ui-datepicker .ui-datepicker-buttonpane {
|
390 |
-
background-image: none;
|
391 |
-
margin: .7em 0 0 0;
|
392 |
-
padding: 0 .2em;
|
393 |
-
border-left: 0;
|
394 |
-
border-right: 0;
|
395 |
-
border-bottom: 0;
|
396 |
-
}
|
397 |
-
.ui-datepicker .ui-datepicker-buttonpane button {
|
398 |
-
float: right;
|
399 |
-
margin: .5em .2em .4em;
|
400 |
-
cursor: pointer;
|
401 |
-
padding: .2em .6em .3em .6em;
|
402 |
-
width: auto;
|
403 |
-
overflow: visible;
|
404 |
-
}
|
405 |
-
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
|
406 |
-
float: left;
|
407 |
-
}
|
408 |
-
|
409 |
-
/* with multiple calendars */
|
410 |
-
.ui-datepicker.ui-datepicker-multi {
|
411 |
-
width: auto;
|
412 |
-
}
|
413 |
-
.ui-datepicker-multi .ui-datepicker-group {
|
414 |
-
float: left;
|
415 |
-
}
|
416 |
-
.ui-datepicker-multi .ui-datepicker-group table {
|
417 |
-
width: 95%;
|
418 |
-
margin: 0 auto .4em;
|
419 |
-
}
|
420 |
-
.ui-datepicker-multi-2 .ui-datepicker-group {
|
421 |
-
width: 50%;
|
422 |
-
}
|
423 |
-
.ui-datepicker-multi-3 .ui-datepicker-group {
|
424 |
-
width: 33.3%;
|
425 |
-
}
|
426 |
-
.ui-datepicker-multi-4 .ui-datepicker-group {
|
427 |
-
width: 25%;
|
428 |
-
}
|
429 |
-
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
|
430 |
-
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
|
431 |
-
border-left-width: 0;
|
432 |
-
}
|
433 |
-
.ui-datepicker-multi .ui-datepicker-buttonpane {
|
434 |
-
clear: left;
|
435 |
-
}
|
436 |
-
.ui-datepicker-row-break {
|
437 |
-
clear: both;
|
438 |
-
width: 100%;
|
439 |
-
font-size: 0;
|
440 |
-
}
|
441 |
-
|
442 |
-
/* RTL support */
|
443 |
-
.ui-datepicker-rtl {
|
444 |
-
direction: rtl;
|
445 |
-
}
|
446 |
-
.ui-datepicker-rtl .ui-datepicker-prev {
|
447 |
-
right: 2px;
|
448 |
-
left: auto;
|
449 |
-
}
|
450 |
-
.ui-datepicker-rtl .ui-datepicker-next {
|
451 |
-
left: 2px;
|
452 |
-
right: auto;
|
453 |
-
}
|
454 |
-
.ui-datepicker-rtl .ui-datepicker-prev:hover {
|
455 |
-
right: 1px;
|
456 |
-
left: auto;
|
457 |
-
}
|
458 |
-
.ui-datepicker-rtl .ui-datepicker-next:hover {
|
459 |
-
left: 1px;
|
460 |
-
right: auto;
|
461 |
-
}
|
462 |
-
.ui-datepicker-rtl .ui-datepicker-buttonpane {
|
463 |
-
clear: right;
|
464 |
-
}
|
465 |
-
.ui-datepicker-rtl .ui-datepicker-buttonpane button {
|
466 |
-
float: left;
|
467 |
-
}
|
468 |
-
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
|
469 |
-
.ui-datepicker-rtl .ui-datepicker-group {
|
470 |
-
float: right;
|
471 |
-
}
|
472 |
-
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
|
473 |
-
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
|
474 |
-
border-right-width: 0;
|
475 |
-
border-left-width: 1px;
|
476 |
-
}
|
477 |
-
.ui-dialog {
|
478 |
-
overflow: hidden;
|
479 |
-
position: absolute;
|
480 |
-
top: 0;
|
481 |
-
left: 0;
|
482 |
-
padding: .2em;
|
483 |
-
outline: 0;
|
484 |
-
}
|
485 |
-
.ui-dialog .ui-dialog-titlebar {
|
486 |
-
padding: .4em 1em;
|
487 |
-
position: relative;
|
488 |
-
}
|
489 |
-
.ui-dialog .ui-dialog-title {
|
490 |
-
float: left;
|
491 |
-
margin: .1em 0;
|
492 |
-
white-space: nowrap;
|
493 |
-
width: 90%;
|
494 |
-
overflow: hidden;
|
495 |
-
text-overflow: ellipsis;
|
496 |
-
}
|
497 |
-
.ui-dialog .ui-dialog-titlebar-close {
|
498 |
-
position: absolute;
|
499 |
-
right: .3em;
|
500 |
-
top: 50%;
|
501 |
-
width: 20px;
|
502 |
-
margin: -10px 0 0 0;
|
503 |
-
padding: 1px;
|
504 |
-
height: 20px;
|
505 |
-
}
|
506 |
-
.ui-dialog .ui-dialog-content {
|
507 |
-
position: relative;
|
508 |
-
border: 0;
|
509 |
-
padding: .5em 1em;
|
510 |
-
background: none;
|
511 |
-
overflow: auto;
|
512 |
-
}
|
513 |
-
.ui-dialog .ui-dialog-buttonpane {
|
514 |
-
text-align: left;
|
515 |
-
border-width: 1px 0 0 0;
|
516 |
-
background-image: none;
|
517 |
-
margin-top: .5em;
|
518 |
-
padding: .3em 1em .5em .4em;
|
519 |
-
}
|
520 |
-
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
|
521 |
-
float: right;
|
522 |
-
}
|
523 |
-
.ui-dialog .ui-dialog-buttonpane button {
|
524 |
-
margin: .5em .4em .5em 0;
|
525 |
-
cursor: pointer;
|
526 |
-
}
|
527 |
-
.ui-dialog .ui-resizable-se {
|
528 |
-
width: 12px;
|
529 |
-
height: 12px;
|
530 |
-
right: -5px;
|
531 |
-
bottom: -5px;
|
532 |
-
background-position: 16px 16px;
|
533 |
-
}
|
534 |
-
.ui-draggable .ui-dialog-titlebar {
|
535 |
-
cursor: move;
|
536 |
-
}
|
537 |
-
.ui-menu {
|
538 |
-
list-style: none;
|
539 |
-
padding: 0;
|
540 |
-
margin: 0;
|
541 |
-
display: block;
|
542 |
-
outline: none;
|
543 |
-
}
|
544 |
-
.ui-menu .ui-menu {
|
545 |
-
position: absolute;
|
546 |
-
}
|
547 |
-
.ui-menu .ui-menu-item {
|
548 |
-
position: relative;
|
549 |
-
margin: 0;
|
550 |
-
padding: 3px 1em 3px .4em;
|
551 |
-
cursor: pointer;
|
552 |
-
min-height: 0; /* support: IE7 */
|
553 |
-
/* support: IE10, see #8844 */
|
554 |
-
list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
|
555 |
-
}
|
556 |
-
.ui-menu .ui-menu-divider {
|
557 |
-
margin: 5px 0;
|
558 |
-
height: 0;
|
559 |
-
font-size: 0;
|
560 |
-
line-height: 0;
|
561 |
-
border-width: 1px 0 0 0;
|
562 |
-
}
|
563 |
-
.ui-menu .ui-state-focus,
|
564 |
-
.ui-menu .ui-state-active {
|
565 |
-
margin: -1px;
|
566 |
-
}
|
567 |
-
|
568 |
-
/* icon support */
|
569 |
-
.ui-menu-icons {
|
570 |
-
position: relative;
|
571 |
-
}
|
572 |
-
.ui-menu-icons .ui-menu-item {
|
573 |
-
padding-left: 2em;
|
574 |
-
}
|
575 |
-
|
576 |
-
/* left-aligned */
|
577 |
-
.ui-menu .ui-icon {
|
578 |
-
position: absolute;
|
579 |
-
top: 0;
|
580 |
-
bottom: 0;
|
581 |
-
left: .2em;
|
582 |
-
margin: auto 0;
|
583 |
-
}
|
584 |
-
|
585 |
-
/* right-aligned */
|
586 |
-
.ui-menu .ui-menu-icon {
|
587 |
-
left: auto;
|
588 |
-
right: 0;
|
589 |
-
}
|
590 |
-
.ui-progressbar {
|
591 |
-
height: 2em;
|
592 |
-
text-align: left;
|
593 |
-
overflow: hidden;
|
594 |
-
}
|
595 |
-
.ui-progressbar .ui-progressbar-value {
|
596 |
-
margin: -1px;
|
597 |
-
height: 100%;
|
598 |
-
}
|
599 |
-
.ui-progressbar .ui-progressbar-overlay {
|
600 |
-
background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");
|
601 |
-
height: 100%;
|
602 |
-
filter: alpha(opacity=25); /* support: IE8 */
|
603 |
-
opacity: 0.25;
|
604 |
-
}
|
605 |
-
.ui-progressbar-indeterminate .ui-progressbar-value {
|
606 |
-
background-image: none;
|
607 |
-
}
|
608 |
-
.ui-selectmenu-menu {
|
609 |
-
padding: 0;
|
610 |
-
margin: 0;
|
611 |
-
position: absolute;
|
612 |
-
top: 0;
|
613 |
-
left: 0;
|
614 |
-
display: none;
|
615 |
-
}
|
616 |
-
.ui-selectmenu-menu .ui-menu {
|
617 |
-
overflow: auto;
|
618 |
-
/* Support: IE7 */
|
619 |
-
overflow-x: hidden;
|
620 |
-
padding-bottom: 1px;
|
621 |
-
}
|
622 |
-
.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {
|
623 |
-
font-size: 1em;
|
624 |
-
font-weight: bold;
|
625 |
-
line-height: 1.5;
|
626 |
-
padding: 2px 0.4em;
|
627 |
-
margin: 0.5em 0 0 0;
|
628 |
-
height: auto;
|
629 |
-
border: 0;
|
630 |
-
}
|
631 |
-
.ui-selectmenu-open {
|
632 |
-
display: block;
|
633 |
-
}
|
634 |
-
.ui-selectmenu-button {
|
635 |
-
display: inline-block;
|
636 |
-
overflow: hidden;
|
637 |
-
position: relative;
|
638 |
-
text-decoration: none;
|
639 |
-
cursor: pointer;
|
640 |
-
}
|
641 |
-
.ui-selectmenu-button span.ui-icon {
|
642 |
-
right: 0.5em;
|
643 |
-
left: auto;
|
644 |
-
margin-top: -8px;
|
645 |
-
position: absolute;
|
646 |
-
top: 50%;
|
647 |
-
}
|
648 |
-
.ui-selectmenu-button span.ui-selectmenu-text {
|
649 |
-
text-align: left;
|
650 |
-
padding: 0.4em 2.1em 0.4em 1em;
|
651 |
-
display: block;
|
652 |
-
line-height: 1.4;
|
653 |
-
overflow: hidden;
|
654 |
-
text-overflow: ellipsis;
|
655 |
-
white-space: nowrap;
|
656 |
-
}
|
657 |
-
.ui-slider {
|
658 |
-
position: relative;
|
659 |
-
text-align: left;
|
660 |
-
}
|
661 |
-
.ui-slider .ui-slider-handle {
|
662 |
-
position: absolute;
|
663 |
-
z-index: 2;
|
664 |
-
width: 1.2em;
|
665 |
-
height: 1.2em;
|
666 |
-
cursor: default;
|
667 |
-
-ms-touch-action: none;
|
668 |
-
touch-action: none;
|
669 |
-
}
|
670 |
-
.ui-slider .ui-slider-range {
|
671 |
-
position: absolute;
|
672 |
-
z-index: 1;
|
673 |
-
font-size: .7em;
|
674 |
-
display: block;
|
675 |
-
border: 0;
|
676 |
-
background-position: 0 0;
|
677 |
-
}
|
678 |
-
|
679 |
-
/* support: IE8 - See #6727 */
|
680 |
-
.ui-slider.ui-state-disabled .ui-slider-handle,
|
681 |
-
.ui-slider.ui-state-disabled .ui-slider-range {
|
682 |
-
filter: inherit;
|
683 |
-
}
|
684 |
-
|
685 |
-
.ui-slider-horizontal {
|
686 |
-
height: .8em;
|
687 |
-
}
|
688 |
-
.ui-slider-horizontal .ui-slider-handle {
|
689 |
-
top: -.3em;
|
690 |
-
margin-left: -.6em;
|
691 |
-
}
|
692 |
-
.ui-slider-horizontal .ui-slider-range {
|
693 |
-
top: 0;
|
694 |
-
height: 100%;
|
695 |
-
}
|
696 |
-
.ui-slider-horizontal .ui-slider-range-min {
|
697 |
-
left: 0;
|
698 |
-
}
|
699 |
-
.ui-slider-horizontal .ui-slider-range-max {
|
700 |
-
right: 0;
|
701 |
-
}
|
702 |
-
|
703 |
-
.ui-slider-vertical {
|
704 |
-
width: .8em;
|
705 |
-
height: 100px;
|
706 |
-
}
|
707 |
-
.ui-slider-vertical .ui-slider-handle {
|
708 |
-
left: -.3em;
|
709 |
-
margin-left: 0;
|
710 |
-
margin-bottom: -.6em;
|
711 |
-
}
|
712 |
-
.ui-slider-vertical .ui-slider-range {
|
713 |
-
left: 0;
|
714 |
-
width: 100%;
|
715 |
-
}
|
716 |
-
.ui-slider-vertical .ui-slider-range-min {
|
717 |
-
bottom: 0;
|
718 |
-
}
|
719 |
-
.ui-slider-vertical .ui-slider-range-max {
|
720 |
-
top: 0;
|
721 |
-
}
|
722 |
-
.ui-spinner {
|
723 |
-
position: relative;
|
724 |
-
display: inline-block;
|
725 |
-
overflow: hidden;
|
726 |
-
padding: 0;
|
727 |
-
vertical-align: middle;
|
728 |
-
}
|
729 |
-
.ui-spinner-input {
|
730 |
-
border: none;
|
731 |
-
background: none;
|
732 |
-
color: inherit;
|
733 |
-
padding: 0;
|
734 |
-
margin: .2em 0;
|
735 |
-
vertical-align: middle;
|
736 |
-
margin-left: .4em;
|
737 |
-
margin-right: 22px;
|
738 |
-
}
|
739 |
-
.ui-spinner-button {
|
740 |
-
width: 16px;
|
741 |
-
height: 50%;
|
742 |
-
font-size: .5em;
|
743 |
-
padding: 0;
|
744 |
-
margin: 0;
|
745 |
-
text-align: center;
|
746 |
-
position: absolute;
|
747 |
-
cursor: default;
|
748 |
-
display: block;
|
749 |
-
overflow: hidden;
|
750 |
-
right: 0;
|
751 |
-
}
|
752 |
-
/* more specificity required here to override default borders */
|
753 |
-
.ui-spinner a.ui-spinner-button {
|
754 |
-
border-top: none;
|
755 |
-
border-bottom: none;
|
756 |
-
border-right: none;
|
757 |
-
}
|
758 |
-
/* vertically center icon */
|
759 |
-
.ui-spinner .ui-icon {
|
760 |
-
position: absolute;
|
761 |
-
margin-top: -8px;
|
762 |
-
top: 50%;
|
763 |
-
left: 0;
|
764 |
-
}
|
765 |
-
.ui-spinner-up {
|
766 |
-
top: 0;
|
767 |
-
}
|
768 |
-
.ui-spinner-down {
|
769 |
-
bottom: 0;
|
770 |
-
}
|
771 |
-
|
772 |
-
/* TR overrides */
|
773 |
-
.ui-spinner .ui-icon-triangle-1-s {
|
774 |
-
/* need to fix icons sprite */
|
775 |
-
background-position: -65px -16px;
|
776 |
-
}
|
777 |
-
.ui-tabs {
|
778 |
-
position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
|
779 |
-
padding: .2em;
|
780 |
-
}
|
781 |
-
.ui-tabs .ui-tabs-nav {
|
782 |
-
margin: 0;
|
783 |
-
padding: .2em .2em 0;
|
784 |
-
}
|
785 |
-
.ui-tabs .ui-tabs-nav li {
|
786 |
-
list-style: none;
|
787 |
-
float: left;
|
788 |
-
position: relative;
|
789 |
-
top: 0;
|
790 |
-
margin: 1px .2em 0 0;
|
791 |
-
border-bottom-width: 0;
|
792 |
-
padding: 0;
|
793 |
-
white-space: nowrap;
|
794 |
-
}
|
795 |
-
.ui-tabs .ui-tabs-nav .ui-tabs-anchor {
|
796 |
-
float: left;
|
797 |
-
padding: .5em 1em;
|
798 |
-
text-decoration: none;
|
799 |
-
}
|
800 |
-
.ui-tabs .ui-tabs-nav li.ui-tabs-active {
|
801 |
-
margin-bottom: -1px;
|
802 |
-
padding-bottom: 1px;
|
803 |
-
}
|
804 |
-
.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,
|
805 |
-
.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,
|
806 |
-
.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {
|
807 |
-
cursor: text;
|
808 |
-
}
|
809 |
-
.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {
|
810 |
-
cursor: pointer;
|
811 |
-
}
|
812 |
-
.ui-tabs .ui-tabs-panel {
|
813 |
-
display: block;
|
814 |
-
border-width: 0;
|
815 |
-
padding: 1em 1.4em;
|
816 |
-
background: none;
|
817 |
-
}
|
818 |
-
.ui-tooltip {
|
819 |
-
padding: 8px;
|
820 |
-
position: absolute;
|
821 |
-
z-index: 9999;
|
822 |
-
max-width: 300px;
|
823 |
-
-webkit-box-shadow: 0 0 5px #aaa;
|
824 |
-
box-shadow: 0 0 5px #aaa;
|
825 |
-
}
|
826 |
-
body .ui-tooltip {
|
827 |
-
border-width: 2px;
|
828 |
-
}
|
829 |
-
|
830 |
-
/* Component containers
|
831 |
-
----------------------------------*/
|
832 |
-
.ui-widget {
|
833 |
-
font-family: Verdana,Arial,sans-serif;
|
834 |
-
font-size: 1.1em;
|
835 |
-
}
|
836 |
-
.ui-widget .ui-widget {
|
837 |
-
font-size: 1em;
|
838 |
-
}
|
839 |
-
.ui-widget input,
|
840 |
-
.ui-widget select,
|
841 |
-
.ui-widget textarea,
|
842 |
-
.ui-widget button {
|
843 |
-
font-family: Verdana,Arial,sans-serif;
|
844 |
-
font-size: 1em;
|
845 |
-
}
|
846 |
-
.ui-widget-content {
|
847 |
-
border: 1px solid #aaaaaa;
|
848 |
-
background: #ffffff;
|
849 |
-
color: #222222;
|
850 |
-
}
|
851 |
-
.ui-widget-content a {
|
852 |
-
color: #222222;
|
853 |
-
}
|
854 |
-
.ui-widget-header {
|
855 |
-
border: 1px solid #aaaaaa;
|
856 |
-
background: #cccccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;
|
857 |
-
color: #222222;
|
858 |
-
font-weight: bold;
|
859 |
-
}
|
860 |
-
.ui-widget-header a {
|
861 |
-
color: #222222;
|
862 |
-
}
|
863 |
-
|
864 |
-
/* Interaction states
|
865 |
-
----------------------------------*/
|
866 |
-
.ui-state-default,
|
867 |
-
.ui-widget-content .ui-state-default,
|
868 |
-
.ui-widget-header .ui-state-default {
|
869 |
-
border: 1px solid #d3d3d3;
|
870 |
-
background: #e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;
|
871 |
-
font-weight: normal;
|
872 |
-
color: #555555;
|
873 |
-
}
|
874 |
-
.ui-state-default a,
|
875 |
-
.ui-state-default a:link,
|
876 |
-
.ui-state-default a:visited {
|
877 |
-
color: #555555;
|
878 |
-
text-decoration: none;
|
879 |
-
}
|
880 |
-
.ui-state-hover,
|
881 |
-
.ui-widget-content .ui-state-hover,
|
882 |
-
.ui-widget-header .ui-state-hover,
|
883 |
-
.ui-state-focus,
|
884 |
-
.ui-widget-content .ui-state-focus,
|
885 |
-
.ui-widget-header .ui-state-focus {
|
886 |
-
border: 1px solid #999999;
|
887 |
-
background: #dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;
|
888 |
-
font-weight: normal;
|
889 |
-
color: #212121;
|
890 |
-
}
|
891 |
-
.ui-state-hover a,
|
892 |
-
.ui-state-hover a:hover,
|
893 |
-
.ui-state-hover a:link,
|
894 |
-
.ui-state-hover a:visited,
|
895 |
-
.ui-state-focus a,
|
896 |
-
.ui-state-focus a:hover,
|
897 |
-
.ui-state-focus a:link,
|
898 |
-
.ui-state-focus a:visited {
|
899 |
-
color: #212121;
|
900 |
-
text-decoration: none;
|
901 |
-
}
|
902 |
-
.ui-state-active,
|
903 |
-
.ui-widget-content .ui-state-active,
|
904 |
-
.ui-widget-header .ui-state-active {
|
905 |
-
border: 1px solid #aaaaaa;
|
906 |
-
background: #ffffff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;
|
907 |
-
font-weight: normal;
|
908 |
-
color: #212121;
|
909 |
-
}
|
910 |
-
.ui-state-active a,
|
911 |
-
.ui-state-active a:link,
|
912 |
-
.ui-state-active a:visited {
|
913 |
-
color: #212121;
|
914 |
-
text-decoration: none;
|
915 |
-
}
|
916 |
-
|
917 |
-
/* Interaction Cues
|
918 |
-
----------------------------------*/
|
919 |
-
.ui-state-highlight,
|
920 |
-
.ui-widget-content .ui-state-highlight,
|
921 |
-
.ui-widget-header .ui-state-highlight {
|
922 |
-
border: 1px solid #fcefa1;
|
923 |
-
background: #fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;
|
924 |
-
color: #363636;
|
925 |
-
}
|
926 |
-
.ui-state-highlight a,
|
927 |
-
.ui-widget-content .ui-state-highlight a,
|
928 |
-
.ui-widget-header .ui-state-highlight a {
|
929 |
-
color: #363636;
|
930 |
-
}
|
931 |
-
.ui-state-error,
|
932 |
-
.ui-widget-content .ui-state-error,
|
933 |
-
.ui-widget-header .ui-state-error {
|
934 |
-
border: 1px solid #cd0a0a;
|
935 |
-
background: #fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;
|
936 |
-
color: #cd0a0a;
|
937 |
-
}
|
938 |
-
.ui-state-error a,
|
939 |
-
.ui-widget-content .ui-state-error a,
|
940 |
-
.ui-widget-header .ui-state-error a {
|
941 |
-
color: #cd0a0a;
|
942 |
-
}
|
943 |
-
.ui-state-error-text,
|
944 |
-
.ui-widget-content .ui-state-error-text,
|
945 |
-
.ui-widget-header .ui-state-error-text {
|
946 |
-
color: #cd0a0a;
|
947 |
-
}
|
948 |
-
.ui-priority-primary,
|
949 |
-
.ui-widget-content .ui-priority-primary,
|
950 |
-
.ui-widget-header .ui-priority-primary {
|
951 |
-
font-weight: bold;
|
952 |
-
}
|
953 |
-
.ui-priority-secondary,
|
954 |
-
.ui-widget-content .ui-priority-secondary,
|
955 |
-
.ui-widget-header .ui-priority-secondary {
|
956 |
-
opacity: .7;
|
957 |
-
filter:Alpha(Opacity=70); /* support: IE8 */
|
958 |
-
font-weight: normal;
|
959 |
-
}
|
960 |
-
.ui-state-disabled,
|
961 |
-
.ui-widget-content .ui-state-disabled,
|
962 |
-
.ui-widget-header .ui-state-disabled {
|
963 |
-
opacity: .35;
|
964 |
-
filter:Alpha(Opacity=35); /* support: IE8 */
|
965 |
-
background-image: none;
|
966 |
-
}
|
967 |
-
.ui-state-disabled .ui-icon {
|
968 |
-
filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
|
969 |
-
}
|
970 |
-
|
971 |
-
/* Icons
|
972 |
-
----------------------------------*/
|
973 |
-
|
974 |
-
/* states and images */
|
975 |
-
.ui-icon {
|
976 |
-
width: 16px;
|
977 |
-
height: 16px;
|
978 |
-
}
|
979 |
-
.ui-icon,
|
980 |
-
.ui-widget-content .ui-icon {
|
981 |
-
background-image: url("images/ui-icons_222222_256x240.png");
|
982 |
-
}
|
983 |
-
.ui-widget-header .ui-icon {
|
984 |
-
background-image: url("images/ui-icons_222222_256x240.png");
|
985 |
-
}
|
986 |
-
.ui-state-default .ui-icon {
|
987 |
-
background-image: url("images/ui-icons_888888_256x240.png");
|
988 |
-
}
|
989 |
-
.ui-state-hover .ui-icon,
|
990 |
-
.ui-state-focus .ui-icon {
|
991 |
-
background-image: url("images/ui-icons_454545_256x240.png");
|
992 |
-
}
|
993 |
-
.ui-state-active .ui-icon {
|
994 |
-
background-image: url("images/ui-icons_454545_256x240.png");
|
995 |
-
}
|
996 |
-
.ui-state-highlight .ui-icon {
|
997 |
-
background-image: url("images/ui-icons_2e83ff_256x240.png");
|
998 |
-
}
|
999 |
-
.ui-state-error .ui-icon,
|
1000 |
-
.ui-state-error-text .ui-icon {
|
1001 |
-
background-image: url("images/ui-icons_cd0a0a_256x240.png");
|
1002 |
-
}
|
1003 |
-
|
1004 |
-
/* positioning */
|
1005 |
-
.ui-icon-blank { background-position: 16px 16px; }
|
1006 |
-
.ui-icon-carat-1-n { background-position: 0 0; }
|
1007 |
-
.ui-icon-carat-1-ne { background-position: -16px 0; }
|
1008 |
-
.ui-icon-carat-1-e { background-position: -32px 0; }
|
1009 |
-
.ui-icon-carat-1-se { background-position: -48px 0; }
|
1010 |
-
.ui-icon-carat-1-s { background-position: -64px 0; }
|
1011 |
-
.ui-icon-carat-1-sw { background-position: -80px 0; }
|
1012 |
-
.ui-icon-carat-1-w { background-position: -96px 0; }
|
1013 |
-
.ui-icon-carat-1-nw { background-position: -112px 0; }
|
1014 |
-
.ui-icon-carat-2-n-s { background-position: -128px 0; }
|
1015 |
-
.ui-icon-carat-2-e-w { background-position: -144px 0; }
|
1016 |
-
.ui-icon-triangle-1-n { background-position: 0 -16px; }
|
1017 |
-
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
|
1018 |
-
.ui-icon-triangle-1-e { background-position: -32px -16px; }
|
1019 |
-
.ui-icon-triangle-1-se { background-position: -48px -16px; }
|
1020 |
-
.ui-icon-triangle-1-s { background-position: -64px -16px; }
|
1021 |
-
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
|
1022 |
-
.ui-icon-triangle-1-w { background-position: -96px -16px; }
|
1023 |
-
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
|
1024 |
-
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
|
1025 |
-
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
|
1026 |
-
.ui-icon-arrow-1-n { background-position: 0 -32px; }
|
1027 |
-
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
|
1028 |
-
.ui-icon-arrow-1-e { background-position: -32px -32px; }
|
1029 |
-
.ui-icon-arrow-1-se { background-position: -48px -32px; }
|
1030 |
-
.ui-icon-arrow-1-s { background-position: -64px -32px; }
|
1031 |
-
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
|
1032 |
-
.ui-icon-arrow-1-w { background-position: -96px -32px; }
|
1033 |
-
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
|
1034 |
-
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
|
1035 |
-
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
|
1036 |
-
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
|
1037 |
-
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
|
1038 |
-
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
|
1039 |
-
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
|
1040 |
-
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
|
1041 |
-
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
|
1042 |
-
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
|
1043 |
-
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
|
1044 |
-
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
|
1045 |
-
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
|
1046 |
-
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
|
1047 |
-
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
|
1048 |
-
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
|
1049 |
-
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
|
1050 |
-
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
|
1051 |
-
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
|
1052 |
-
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
|
1053 |
-
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
|
1054 |
-
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
|
1055 |
-
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
|
1056 |
-
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
|
1057 |
-
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
|
1058 |
-
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
|
1059 |
-
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
|
1060 |
-
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
|
1061 |
-
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
|
1062 |
-
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
|
1063 |
-
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
|
1064 |
-
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
|
1065 |
-
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
|
1066 |
-
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
|
1067 |
-
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
|
1068 |
-
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
|
1069 |
-
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
|
1070 |
-
.ui-icon-arrow-4 { background-position: 0 -80px; }
|
1071 |
-
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
|
1072 |
-
.ui-icon-extlink { background-position: -32px -80px; }
|
1073 |
-
.ui-icon-newwin { background-position: -48px -80px; }
|
1074 |
-
.ui-icon-refresh { background-position: -64px -80px; }
|
1075 |
-
.ui-icon-shuffle { background-position: -80px -80px; }
|
1076 |
-
.ui-icon-transfer-e-w { background-position: -96px -80px; }
|
1077 |
-
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
|
1078 |
-
.ui-icon-folder-collapsed { background-position: 0 -96px; }
|
1079 |
-
.ui-icon-folder-open { background-position: -16px -96px; }
|
1080 |
-
.ui-icon-document { background-position: -32px -96px; }
|
1081 |
-
.ui-icon-document-b { background-position: -48px -96px; }
|
1082 |
-
.ui-icon-note { background-position: -64px -96px; }
|
1083 |
-
.ui-icon-mail-closed { background-position: -80px -96px; }
|
1084 |
-
.ui-icon-mail-open { background-position: -96px -96px; }
|
1085 |
-
.ui-icon-suitcase { background-position: -112px -96px; }
|
1086 |
-
.ui-icon-comment { background-position: -128px -96px; }
|
1087 |
-
.ui-icon-person { background-position: -144px -96px; }
|
1088 |
-
.ui-icon-print { background-position: -160px -96px; }
|
1089 |
-
.ui-icon-trash { background-position: -176px -96px; }
|
1090 |
-
.ui-icon-locked { background-position: -192px -96px; }
|
1091 |
-
.ui-icon-unlocked { background-position: -208px -96px; }
|
1092 |
-
.ui-icon-bookmark { background-position: -224px -96px; }
|
1093 |
-
.ui-icon-tag { background-position: -240px -96px; }
|
1094 |
-
.ui-icon-home { background-position: 0 -112px; }
|
1095 |
-
.ui-icon-flag { background-position: -16px -112px; }
|
1096 |
-
.ui-icon-calendar { background-position: -32px -112px; }
|
1097 |
-
.ui-icon-cart { background-position: -48px -112px; }
|
1098 |
-
.ui-icon-pencil { background-position: -64px -112px; }
|
1099 |
-
.ui-icon-clock { background-position: -80px -112px; }
|
1100 |
-
.ui-icon-disk { background-position: -96px -112px; }
|
1101 |
-
.ui-icon-calculator { background-position: -112px -112px; }
|
1102 |
-
.ui-icon-zoomin { background-position: -128px -112px; }
|
1103 |
-
.ui-icon-zoomout { background-position: -144px -112px; }
|
1104 |
-
.ui-icon-search { background-position: -160px -112px; }
|
1105 |
-
.ui-icon-wrench { background-position: -176px -112px; }
|
1106 |
-
.ui-icon-gear { background-position: -192px -112px; }
|
1107 |
-
.ui-icon-heart { background-position: -208px -112px; }
|
1108 |
-
.ui-icon-star { background-position: -224px -112px; }
|
1109 |
-
.ui-icon-link { background-position: -240px -112px; }
|
1110 |
-
.ui-icon-cancel { background-position: 0 -128px; }
|
1111 |
-
.ui-icon-plus { background-position: -16px -128px; }
|
1112 |
-
.ui-icon-plusthick { background-position: -32px -128px; }
|
1113 |
-
.ui-icon-minus { background-position: -48px -128px; }
|
1114 |
-
.ui-icon-minusthick { background-position: -64px -128px; }
|
1115 |
-
.ui-icon-close { background-position: -80px -128px; }
|
1116 |
-
.ui-icon-closethick { background-position: -96px -128px; }
|
1117 |
-
.ui-icon-key { background-position: -112px -128px; }
|
1118 |
-
.ui-icon-lightbulb { background-position: -128px -128px; }
|
1119 |
-
.ui-icon-scissors { background-position: -144px -128px; }
|
1120 |
-
.ui-icon-clipboard { background-position: -160px -128px; }
|
1121 |
-
.ui-icon-copy { background-position: -176px -128px; }
|
1122 |
-
.ui-icon-contact { background-position: -192px -128px; }
|
1123 |
-
.ui-icon-image { background-position: -208px -128px; }
|
1124 |
-
.ui-icon-video { background-position: -224px -128px; }
|
1125 |
-
.ui-icon-script { background-position: -240px -128px; }
|
1126 |
-
.ui-icon-alert { background-position: 0 -144px; }
|
1127 |
-
.ui-icon-info { background-position: -16px -144px; }
|
1128 |
-
.ui-icon-notice { background-position: -32px -144px; }
|
1129 |
-
.ui-icon-help { background-position: -48px -144px; }
|
1130 |
-
.ui-icon-check { background-position: -64px -144px; }
|
1131 |
-
.ui-icon-bullet { background-position: -80px -144px; }
|
1132 |
-
.ui-icon-radio-on { background-position: -96px -144px; }
|
1133 |
-
.ui-icon-radio-off { background-position: -112px -144px; }
|
1134 |
-
.ui-icon-pin-w { background-position: -128px -144px; }
|
1135 |
-
.ui-icon-pin-s { background-position: -144px -144px; }
|
1136 |
-
.ui-icon-play { background-position: 0 -160px; }
|
1137 |
-
.ui-icon-pause { background-position: -16px -160px; }
|
1138 |
-
.ui-icon-seek-next { background-position: -32px -160px; }
|
1139 |
-
.ui-icon-seek-prev { background-position: -48px -160px; }
|
1140 |
-
.ui-icon-seek-end { background-position: -64px -160px; }
|
1141 |
-
.ui-icon-seek-start { background-position: -80px -160px; }
|
1142 |
-
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
|
1143 |
-
.ui-icon-seek-first { background-position: -80px -160px; }
|
1144 |
-
.ui-icon-stop { background-position: -96px -160px; }
|
1145 |
-
.ui-icon-eject { background-position: -112px -160px; }
|
1146 |
-
.ui-icon-volume-off { background-position: -128px -160px; }
|
1147 |
-
.ui-icon-volume-on { background-position: -144px -160px; }
|
1148 |
-
.ui-icon-power { background-position: 0 -176px; }
|
1149 |
-
.ui-icon-signal-diag { background-position: -16px -176px; }
|
1150 |
-
.ui-icon-signal { background-position: -32px -176px; }
|
1151 |
-
.ui-icon-battery-0 { background-position: -48px -176px; }
|
1152 |
-
.ui-icon-battery-1 { background-position: -64px -176px; }
|
1153 |
-
.ui-icon-battery-2 { background-position: -80px -176px; }
|
1154 |
-
.ui-icon-battery-3 { background-position: -96px -176px; }
|
1155 |
-
.ui-icon-circle-plus { background-position: 0 -192px; }
|
1156 |
-
.ui-icon-circle-minus { background-position: -16px -192px; }
|
1157 |
-
.ui-icon-circle-close { background-position: -32px -192px; }
|
1158 |
-
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
|
1159 |
-
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
|
1160 |
-
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
|
1161 |
-
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
|
1162 |
-
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
|
1163 |
-
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
|
1164 |
-
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
|
1165 |
-
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
|
1166 |
-
.ui-icon-circle-zoomin { background-position: -176px -192px; }
|
1167 |
-
.ui-icon-circle-zoomout { background-position: -192px -192px; }
|
1168 |
-
.ui-icon-circle-check { background-position: -208px -192px; }
|
1169 |
-
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
|
1170 |
-
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
|
1171 |
-
.ui-icon-circlesmall-close { background-position: -32px -208px; }
|
1172 |
-
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
|
1173 |
-
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
|
1174 |
-
.ui-icon-squaresmall-close { background-position: -80px -208px; }
|
1175 |
-
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
|
1176 |
-
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
|
1177 |
-
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
|
1178 |
-
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
|
1179 |
-
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
|
1180 |
-
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
|
1181 |
-
|
1182 |
-
|
1183 |
-
/* Misc visuals
|
1184 |
-
----------------------------------*/
|
1185 |
-
|
1186 |
-
/* Corner radius */
|
1187 |
-
.ui-corner-all,
|
1188 |
-
.ui-corner-top,
|
1189 |
-
.ui-corner-left,
|
1190 |
-
.ui-corner-tl {
|
1191 |
-
border-top-left-radius: 4px;
|
1192 |
-
}
|
1193 |
-
.ui-corner-all,
|
1194 |
-
.ui-corner-top,
|
1195 |
-
.ui-corner-right,
|
1196 |
-
.ui-corner-tr {
|
1197 |
-
border-top-right-radius: 4px;
|
1198 |
-
}
|
1199 |
-
.ui-corner-all,
|
1200 |
-
.ui-corner-bottom,
|
1201 |
-
.ui-corner-left,
|
1202 |
-
.ui-corner-bl {
|
1203 |
-
border-bottom-left-radius: 4px;
|
1204 |
-
}
|
1205 |
-
.ui-corner-all,
|
1206 |
-
.ui-corner-bottom,
|
1207 |
-
.ui-corner-right,
|
1208 |
-
.ui-corner-br {
|
1209 |
-
border-bottom-right-radius: 4px;
|
1210 |
-
}
|
1211 |
-
|
1212 |
-
/* Overlays */
|
1213 |
-
.ui-widget-overlay {
|
1214 |
-
background: #aaaaaa;
|
1215 |
-
opacity: .3;
|
1216 |
-
filter: Alpha(Opacity=30); /* support: IE8 */
|
1217 |
-
}
|
1218 |
-
.ui-widget-shadow {
|
1219 |
-
margin: -8px 0 0 -8px;
|
1220 |
-
padding: 8px;
|
1221 |
-
background: #aaaaaa;
|
1222 |
-
opacity: .3;
|
1223 |
-
filter: Alpha(Opacity=30); /* support: IE8 */
|
1224 |
-
border-radius: 8px;
|
1225 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/css/jqvmap.css
DELETED
@@ -1,50 +0,0 @@
|
|
1 |
-
.jqvmap-label
|
2 |
-
{
|
3 |
-
position: absolute;
|
4 |
-
display: none;
|
5 |
-
-webkit-border-radius: 3px;
|
6 |
-
-moz-border-radius: 3px;
|
7 |
-
border-radius: 3px;
|
8 |
-
background: #292929;
|
9 |
-
color: white;
|
10 |
-
font-family: sans-serif, Verdana;
|
11 |
-
font-size: smaller;
|
12 |
-
padding: 3px;
|
13 |
-
pointer-events:none;
|
14 |
-
}
|
15 |
-
.jqvmap-pin {
|
16 |
-
pointer-events:none;
|
17 |
-
}
|
18 |
-
.jqvmap-zoomin, .jqvmap-zoomout
|
19 |
-
{
|
20 |
-
position: absolute;
|
21 |
-
left: 10px;
|
22 |
-
-webkit-border-radius: 3px;
|
23 |
-
-moz-border-radius: 3px;
|
24 |
-
border-radius: 3px;
|
25 |
-
background: #000000;
|
26 |
-
padding: 3px;
|
27 |
-
color: white;
|
28 |
-
width: 10px;
|
29 |
-
height: 10px;
|
30 |
-
cursor: pointer;
|
31 |
-
line-height: 10px;
|
32 |
-
text-align: center;
|
33 |
-
}
|
34 |
-
.jqvmap-zoomin
|
35 |
-
{
|
36 |
-
top: 10px;
|
37 |
-
}
|
38 |
-
.jqvmap-zoomout
|
39 |
-
{
|
40 |
-
top: 30px;
|
41 |
-
}
|
42 |
-
.jqvmap-region
|
43 |
-
{
|
44 |
-
cursor: pointer;
|
45 |
-
}
|
46 |
-
.jqvmap-ajax_response
|
47 |
-
{
|
48 |
-
width: 100%;
|
49 |
-
height: 500px;
|
50 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/do/change.php
DELETED
@@ -1,48 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
header('Content-Type: text/html;charset=UTF-8');
|
4 |
-
header('X-Robots-Tag: noindex,nofollow,noarchive');
|
5 |
-
header('Cache-Control: no-cache,no-store,private');
|
6 |
-
include '../../../../wp-load.php';
|
7 |
-
|
8 |
-
$user = Newsletter::instance()->get_user_from_request(true);
|
9 |
-
$field = $_REQUEST['nf'];
|
10 |
-
$value = $_REQUEST['nv'];
|
11 |
-
$url = $_REQUEST['nu'];
|
12 |
-
|
13 |
-
|
14 |
-
switch ($field) {
|
15 |
-
case 'sex':
|
16 |
-
if (!in_array($value, array('f', 'm', 'n')))
|
17 |
-
die('Invalid sex value');
|
18 |
-
NewsletterUsers::instance()->set_user_field($user->id, 'sex', $value);
|
19 |
-
break;
|
20 |
-
// Should be managed by Feed by Mail
|
21 |
-
case 'feed':
|
22 |
-
if (isset($value) && ($value === '0' || $value === '1')) {
|
23 |
-
NewsletterUsers::instance()->set_user_field($user->id, 'feed', $value);
|
24 |
-
} else
|
25 |
-
die('Invalid feed value');
|
26 |
-
break;
|
27 |
-
}
|
28 |
-
|
29 |
-
if (strpos($field, 'preference_') === 0) {
|
30 |
-
$idx = (int) substr($field, 11);
|
31 |
-
$options_profile = get_option('newsletter_profile');
|
32 |
-
|
33 |
-
if ($options_profile['list_' . $idx . '_status'] == 0) {
|
34 |
-
die('Not allowed field.');
|
35 |
-
}
|
36 |
-
|
37 |
-
if (isset($value) && ($value === '0' || $value === '1')) {
|
38 |
-
NewsletterUsers::instance()->set_user_field($user->id, 'list_' . $idx, $value);
|
39 |
-
} else {
|
40 |
-
die('Invalid preference value');
|
41 |
-
}
|
42 |
-
}
|
43 |
-
|
44 |
-
if (isset($url)) {
|
45 |
-
header("Location: $url");
|
46 |
-
} else {
|
47 |
-
NewsletterSubscription::instance()->show_message('profile', $user, NewsletterSubscription::instance()->options['profile_saved']);
|
48 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/do/confirm.php
DELETED
@@ -1,6 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if (!defined('ABSPATH')) {
|
4 |
-
$_GET['na'] = 'c';
|
5 |
-
require_once '../../../../wp-load.php';
|
6 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
trunk/do/profile.php
DELETED
@@ -1,7 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if (!defined('ABSPATH')) {
|
4 |
-
$_GET['na'] = 'p';
|
5 |
-
require_once '../../../../wp-load.php';
|
6 |
-
}
|
7 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/do/save.php
DELETED
@@ -1,10 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
header('Content-Type: text/html;charset=UTF-8');
|
4 |
-
header('X-Robots-Tag: noindex,nofollow,noarchive');
|
5 |
-
header('Cache-Control: no-cache,no-store,private');
|
6 |
-
include '../../../../wp-load.php';
|
7 |
-
|
8 |
-
$user = NewsletterSubscription::instance()->save_profile();
|
9 |
-
// $user->alert is a temporary field
|
10 |
-
NewsletterSubscription::instance()->show_message('profile', $user, $user->alert);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/do/subscribe.php
DELETED
@@ -1,6 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
|
4 |
-
$_GET['na'] = 's';
|
5 |
-
require_once '../../../../wp-load.php';
|
6 |
-
|
|
|
|
|
|
|
|
|
|
|
|
trunk/do/subscription.php
DELETED
@@ -1,26 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once '../../../../wp-load.php';
|
4 |
-
|
5 |
-
if (!isset($newsletter)) $newsletter = new Newsletter();
|
6 |
-
|
7 |
-
$options_main = get_option('newsletter_main', array());
|
8 |
-
|
9 |
-
if (!empty($options_main['url'])) {
|
10 |
-
header('Location: ' . $options_main['url']);
|
11 |
-
die();
|
12 |
-
}
|
13 |
-
|
14 |
-
$options = get_option('newsletter', array());
|
15 |
-
|
16 |
-
if (stripos($options['subscription_text'], '<form') !== false) {
|
17 |
-
$message = str_ireplace('<form', '<form method="post" action="' . plugins_url('newsletter/do/subscribe.php') . '" onsubmit="return newsletter_check(this)"', $options['subscription_text']);
|
18 |
-
$message = $this->replace_lists($message);
|
19 |
-
} else {
|
20 |
-
$form = $newsletter->subscription_form();
|
21 |
-
|
22 |
-
if (strpos($options['subscription_text'], '{subscription_form}') !== false)
|
23 |
-
$message = str_replace('{subscription_form}', $form, $options['subscription_text']);
|
24 |
-
else $message = $options['subscription_text'] . $form;
|
25 |
-
}
|
26 |
-
include NEWSLETTER_DIR . '/page.php';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/do/unlock.php
DELETED
@@ -1,6 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if (!defined('ABSPATH')) {
|
4 |
-
$_GET['na'] = 'ul';
|
5 |
-
include '../../../../wp-load.php';
|
6 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
trunk/do/unsubscribe.php
DELETED
@@ -1,5 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
if (!defined('ABSPATH')) {
|
3 |
-
$_GET['na'] = 'uc';
|
4 |
-
require_once '../../../../wp-load.php';
|
5 |
-
}
|
|
|
|
|
|
|
|
|
|
trunk/do/unsubscription.php
DELETED
@@ -1,6 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if (!defined('ABSPATH')) {
|
4 |
-
$_GET['na'] = 'u';
|
5 |
-
require_once '../../../../wp-load.php';
|
6 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
trunk/do/view.php
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
$_GET['na'] = 'v';
|
3 |
-
require_once '../../../../wp-load.php';
|
|
|
|
|
|
trunk/editor.css
DELETED
@@ -1,4 +0,0 @@
|
|
1 |
-
body {
|
2 |
-
font-size: 12px;
|
3 |
-
}
|
4 |
-
|
|
|
|
|
|
|
|
trunk/emails/composer.php
DELETED
@@ -1,107 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
3 |
-
$controls = new NewsletterControls();
|
4 |
-
$module = NewsletterEmails::instance();
|
5 |
-
// Add the color picker css file
|
6 |
-
wp_enqueue_style('wp-color-picker');
|
7 |
-
// Include our custom jQuery file with WordPress Color Picker dependency
|
8 |
-
wp_enqueue_script('wp-color-picker');
|
9 |
-
|
10 |
-
// TNP Composer style
|
11 |
-
wp_enqueue_style('tnpc-style', plugins_url('/tnp-composer/_css/newsletter-builder.css', __FILE__));
|
12 |
-
wp_enqueue_style('tnpc-newsletter-style', plugins_url('/tnp-composer/css/newsletter.css', __FILE__));
|
13 |
-
|
14 |
-
if (($controls->is_action('save') || $controls->is_action('preview')) && !$_GET['id']) {
|
15 |
-
|
16 |
-
$module->save_options($controls->data);
|
17 |
-
|
18 |
-
$email = array();
|
19 |
-
$email['status'] = 'new';
|
20 |
-
$email['subject'] = __('Here the email subject', 'newsletter');
|
21 |
-
$email['track'] = 1;
|
22 |
-
|
23 |
-
$email['message'] = $controls->data['body'];
|
24 |
-
$email['subject'] = $controls->data['subject'];
|
25 |
-
|
26 |
-
$email['message_text'] = 'This email requires a modern e-mail reader but you can view the email online here:
|
27 |
-
{email_url}.
|
28 |
-
|
29 |
-
Thank you, ' . wp_specialchars_decode(get_option('blogname'), ENT_QUOTES) . '
|
30 |
-
|
31 |
-
To change your subscription follow: {profile_url}.';
|
32 |
-
|
33 |
-
$email['options'] = serialize(array('composer' => true));
|
34 |
-
|
35 |
-
$email['type'] = 'message';
|
36 |
-
$email['send_on'] = time();
|
37 |
-
$email = Newsletter::instance()->save_email($email, ARRAY_A);
|
38 |
-
} elseif (isset($_GET['id'])) {
|
39 |
-
|
40 |
-
$email = Newsletter::instance()->get_email((int) $_GET['id'], ARRAY_A);
|
41 |
-
|
42 |
-
if (empty($email)) {
|
43 |
-
echo 'Wrong email identifier';
|
44 |
-
return;
|
45 |
-
}
|
46 |
-
|
47 |
-
if ($controls->is_action('save') || $controls->is_action('preview')) {
|
48 |
-
|
49 |
-
$module->save_options($controls->data);
|
50 |
-
$email['message'] = $controls->data['body'];
|
51 |
-
$email = Newsletter::instance()->save_email($email, ARRAY_A);
|
52 |
-
}
|
53 |
-
}
|
54 |
-
|
55 |
-
if ($controls->is_action('preview')) {
|
56 |
-
?>
|
57 |
-
<script>
|
58 |
-
location.href = "<?php echo $module->get_admin_page_url('cpreview'); ?>&id=<?php echo $email['id']; ?>";
|
59 |
-
</script>
|
60 |
-
<div class="wrap">
|
61 |
-
<p><a href="<?php echo $module->get_admin_page_url('cpreview'); ?>&id=<?php echo $email['id']; ?>">click here to proceed</a>.</p>
|
62 |
-
</div>
|
63 |
-
<?php
|
64 |
-
return;
|
65 |
-
}
|
66 |
-
|
67 |
-
if ($controls->data == null) {
|
68 |
-
$controls->data = $module->get_options();
|
69 |
-
}
|
70 |
-
|
71 |
-
//$body = $controls->data['body'];
|
72 |
-
$body = "";
|
73 |
-
if (isset($email)) {
|
74 |
-
$body = $email['message'];
|
75 |
-
}
|
76 |
-
|
77 |
-
?>
|
78 |
-
|
79 |
-
<div class="wrap" id="tnp-wrap">
|
80 |
-
|
81 |
-
<?php $help_url = 'http://www.thenewsletterplugin.com/plugins/newsletter/newsletters-module'; ?>
|
82 |
-
<?php //include NEWSLETTER_DIR . '/tnp-header.php'; ?>
|
83 |
-
|
84 |
-
<div id="tnp-heading" class="tnp-composer-heading">
|
85 |
-
|
86 |
-
<img src="http://cdn.thenewsletterplugin.com/tests/tnp-composer-heading.png">
|
87 |
-
<h2><?php _e('Compose a newsletter', 'newsletter') ?></h2>
|
88 |
-
<a href="http://www.thenewsletterplugin.com/plugins/newsletter/composer" target="_blank"><i class="fa fa-life-ring"></i> <?php _e('Read the guide', 'newsletter') ?></a>
|
89 |
-
<form method="post" action="" id="tnpc-form">
|
90 |
-
<?php $controls->init(); ?>
|
91 |
-
<?php $controls->hidden('subject'); ?>
|
92 |
-
<?php $controls->hidden('body'); ?>
|
93 |
-
<?php $controls->button_reset(); ?>
|
94 |
-
<?php $controls->button('save', __('Save','newsletter'), 'create();'); ?>
|
95 |
-
<?php $controls->button('preview', __('Save & Preview','newsletter') . ' »', 'create();'); ?>
|
96 |
-
</form>
|
97 |
-
</div>
|
98 |
-
|
99 |
-
<div id="tnp-body" class="tnp-body-lite">
|
100 |
-
|
101 |
-
<?php include NEWSLETTER_DIR . '/emails/tnp-composer/index.php'; ?>
|
102 |
-
|
103 |
-
</div>
|
104 |
-
|
105 |
-
<?php //include NEWSLETTER_DIR . '/tnp-footer.php'; ?>
|
106 |
-
|
107 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/cpreview.php
DELETED
@@ -1,480 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
3 |
-
$controls = new NewsletterControls();
|
4 |
-
$module = NewsletterEmails::instance();
|
5 |
-
|
6 |
-
$email = Newsletter::instance()->get_email((int) $_GET['id'], ARRAY_A);
|
7 |
-
|
8 |
-
// TNP Composer style
|
9 |
-
wp_enqueue_style('tnpc-style', plugins_url('/tnp-composer/_css/newsletter-builder.css', __FILE__));
|
10 |
-
|
11 |
-
if (empty($email)) {
|
12 |
-
echo 'Wrong email identifier';
|
13 |
-
return;
|
14 |
-
}
|
15 |
-
$email_id = $email['id'];
|
16 |
-
|
17 |
-
// If there is no action we assume we are enter the first time so we populate the
|
18 |
-
// $nc->data with the editable email fields
|
19 |
-
if (!$controls->is_action()) {
|
20 |
-
$controls->data = $email;
|
21 |
-
if (!empty($email['preferences'])) {
|
22 |
-
$controls->data['preferences'] = explode(',', $email['preferences']);
|
23 |
-
}
|
24 |
-
if (!empty($email['sex'])) {
|
25 |
-
$controls->data['sex'] = explode(',', $email['sex']);
|
26 |
-
}
|
27 |
-
$email_options = unserialize($email['options']);
|
28 |
-
if (is_array($email_options)) {
|
29 |
-
$controls->data = array_merge($controls->data, $email_options);
|
30 |
-
}
|
31 |
-
}
|
32 |
-
|
33 |
-
if ($controls->is_action('test') || $controls->is_action('save') || $controls->is_action('send') || $controls->is_action('editor')) {
|
34 |
-
|
35 |
-
// If we were editing with visual editor (==0), we must read the extra <body> content
|
36 |
-
if ($email['editor'] == 0) {
|
37 |
-
// no editing possible, just preview
|
38 |
-
} else {
|
39 |
-
$email['message'] = $controls->data['message'];
|
40 |
-
}
|
41 |
-
|
42 |
-
$email['message_text'] = $controls->data['message_text'];
|
43 |
-
$email['subject'] = $controls->data['subject'];
|
44 |
-
$email['track'] = $controls->data['track'];
|
45 |
-
$email['private'] = $controls->data['private'];
|
46 |
-
|
47 |
-
// Builds the extended options
|
48 |
-
$email['options'] = array();
|
49 |
-
$email['options']['preferences_status'] = $controls->data['preferences_status'];
|
50 |
-
if (isset($controls->data['preferences'])) {
|
51 |
-
$email['options']['preferences'] = $controls->data['preferences'];
|
52 |
-
}
|
53 |
-
if (isset($controls->data['sex'])) {
|
54 |
-
$email['options']['sex'] = $controls->data['sex'];
|
55 |
-
}
|
56 |
-
|
57 |
-
$email['options']['status'] = $controls->data['status'];
|
58 |
-
$email['options']['preferences_status_operator'] = $controls->data['preferences_status_operator'];
|
59 |
-
$email['options']['wp_users'] = $controls->data['wp_users'];
|
60 |
-
$email['options']['composer'] = true;
|
61 |
-
|
62 |
-
$email['options'] = serialize($email['options']);
|
63 |
-
|
64 |
-
if (isset($controls->data['preferences'])) {
|
65 |
-
$email['preferences'] = implode(',', $controls->data['preferences']);
|
66 |
-
} else {
|
67 |
-
$email['preferences'] = '';
|
68 |
-
}
|
69 |
-
|
70 |
-
if (isset($controls->data['sex'])) {
|
71 |
-
$email['sex'] = implode(',', $controls->data['sex']);
|
72 |
-
} else {
|
73 |
-
$email['sex'] = '';
|
74 |
-
}
|
75 |
-
|
76 |
-
// Before send, we build the query to extract subscriber, so the delivery engine does not
|
77 |
-
// have to worry about the email parameters
|
78 |
-
if ($controls->data['status'] == 'S') {
|
79 |
-
$query = "select * from " . NEWSLETTER_USERS_TABLE . " where status='S'";
|
80 |
-
} else {
|
81 |
-
$query = "select * from " . NEWSLETTER_USERS_TABLE . " where status='C'";
|
82 |
-
}
|
83 |
-
|
84 |
-
if ($controls->data['wp_users'] == '1') {
|
85 |
-
$query .= " and wp_user_id<>0";
|
86 |
-
}
|
87 |
-
|
88 |
-
|
89 |
-
if (isset($controls->data['preferences'])) {
|
90 |
-
$preferences = $controls->data['preferences'];
|
91 |
-
|
92 |
-
// Not set one of the preferences specified
|
93 |
-
$operator = $controls->data['preferences_status_operator'] == 0 ? ' or ' : ' and ';
|
94 |
-
if ($controls->data['preferences_status'] == 1) {
|
95 |
-
$query .= " and (";
|
96 |
-
foreach ($preferences as $x) {
|
97 |
-
$query .= "list_" . $x . "=0" . $operator;
|
98 |
-
}
|
99 |
-
$query = substr($query, 0, -4);
|
100 |
-
$query .= ")";
|
101 |
-
} else {
|
102 |
-
$query .= " and (";
|
103 |
-
foreach ($preferences as $x) {
|
104 |
-
$query .= "list_" . $x . "=1" . $operator;
|
105 |
-
}
|
106 |
-
$query = substr($query, 0, -4);
|
107 |
-
$query .= ")";
|
108 |
-
}
|
109 |
-
}
|
110 |
-
|
111 |
-
$sex = $controls->data['sex'];
|
112 |
-
if (is_array($sex)) {
|
113 |
-
$query .= " and sex in (";
|
114 |
-
foreach ($sex as $x) {
|
115 |
-
$query .= "'" . $x . "', ";
|
116 |
-
}
|
117 |
-
$query = substr($query, 0, -2);
|
118 |
-
$query .= ")";
|
119 |
-
}
|
120 |
-
|
121 |
-
$email['query'] = $query;
|
122 |
-
$email['total'] = $wpdb->get_var(str_replace('*', 'count(*)', $query));
|
123 |
-
|
124 |
-
if ($controls->is_action('send') && $controls->data['send_on'] < time()) {
|
125 |
-
$controls->data['send_on'] = time();
|
126 |
-
}
|
127 |
-
$email['send_on'] = $controls->data['send_on'];
|
128 |
-
|
129 |
-
if ($controls->is_action('editor')) {
|
130 |
-
$email['editor'] = $email['editor'] == 0 ? 1 : 0;
|
131 |
-
}
|
132 |
-
|
133 |
-
// Cleans up of tag
|
134 |
-
$email['message'] = NewsletterModule::clean_url_tags($email['message']);
|
135 |
-
|
136 |
-
$res = Newsletter::instance()->save_email($email);
|
137 |
-
if ($res === false) {
|
138 |
-
$controls->errors = 'Unable to save. Try to deactivate and reactivate the plugin may be the database is out of sync.';
|
139 |
-
}
|
140 |
-
|
141 |
-
$controls->data['message'] = $email['message'];
|
142 |
-
|
143 |
-
$controls->add_message_saved();
|
144 |
-
}
|
145 |
-
|
146 |
-
if ($controls->is_action('send')) {
|
147 |
-
// Todo subject check
|
148 |
-
if ($email['subject'] == '') {
|
149 |
-
$controls->errors = __('A subject is required to send', 'newsletter');
|
150 |
-
} else {
|
151 |
-
$wpdb->update(NEWSLETTER_EMAILS_TABLE, array('status' => 'sending'), array('id' => $email_id));
|
152 |
-
$email['status'] = 'sending';
|
153 |
-
$controls->messages .= __('Now sending, see the progress on newsletter list', 'newsletter');
|
154 |
-
}
|
155 |
-
}
|
156 |
-
|
157 |
-
if ($controls->is_action('pause')) {
|
158 |
-
$wpdb->update(NEWSLETTER_EMAILS_TABLE, array('status' => 'paused'), array('id' => $email_id));
|
159 |
-
$email['status'] = 'paused';
|
160 |
-
}
|
161 |
-
|
162 |
-
if ($controls->is_action('continue')) {
|
163 |
-
$wpdb->update(NEWSLETTER_EMAILS_TABLE, array('status' => 'sending'), array('id' => $email_id));
|
164 |
-
$email['status'] = 'sending';
|
165 |
-
}
|
166 |
-
|
167 |
-
if ($controls->is_action('abort')) {
|
168 |
-
$wpdb->query("update " . NEWSLETTER_EMAILS_TABLE . " set last_id=0, sent=0, status='new' where id=" . $email_id);
|
169 |
-
$email['status'] = 'new';
|
170 |
-
$email['sent'] = 0;
|
171 |
-
$email['last_id'] = 0;
|
172 |
-
$controls->messages = __('Delivery definitively cancelled', 'newsletter');
|
173 |
-
}
|
174 |
-
|
175 |
-
if ($controls->is_action('test')) {
|
176 |
-
if ($email['subject'] == '') {
|
177 |
-
$controls->errors = __('A subject is required to send', 'newsletter');
|
178 |
-
} else {
|
179 |
-
$users = NewsletterUsers::instance()->get_test_users();
|
180 |
-
if (count($users) == 0) {
|
181 |
-
$controls->messages = '<strong>' . __('There are no test subscribers to send to', 'newsletter') . '</strong>';
|
182 |
-
} else {
|
183 |
-
Newsletter::instance()->send(Newsletter::instance()->get_email($email_id), $users);
|
184 |
-
$controls->messages = __('Test newsletter sent to:', 'newsletter');
|
185 |
-
foreach ($users as &$user) {
|
186 |
-
$controls->messages .= ' ' . $user->email;
|
187 |
-
}
|
188 |
-
$controls->messages .= '.';
|
189 |
-
}
|
190 |
-
|
191 |
-
$controls->messages .= '<br>';
|
192 |
-
$controls->messages .= '<a href="http://www.thenewsletterplugin.com/plugins/newsletter/subscribers-module#test" target="_blank">' .
|
193 |
-
__('Read more about test subscribers', 'newsletter') . '</a>.';
|
194 |
-
|
195 |
-
$controls->messages .= '<br>If diagnostic emails are delivered but test emails are not, try to change the encoding to "base 64" on main configuration panel';
|
196 |
-
}
|
197 |
-
}
|
198 |
-
|
199 |
-
//$template = '{message}';
|
200 |
-
//
|
201 |
-
//if ($email['editor'] == 0) {
|
202 |
-
// $x = strpos($controls->data['message'], '<body');
|
203 |
-
// // Some time the message in $nc->data is already cleaned up, it depends on action called
|
204 |
-
// if ($x !== false) {
|
205 |
-
// $x = strpos($controls->data['message'], '>', $x);
|
206 |
-
// $y = strpos($controls->data['message'], '</body>');
|
207 |
-
//
|
208 |
-
// $template = substr($controls->data['message'], 0, $x) . '{message}' . substr($controls->data['message'], $y);
|
209 |
-
// $controls->data['message'] = substr($controls->data['message'], $x + 1, $y - $x - 1);
|
210 |
-
// }
|
211 |
-
//}
|
212 |
-
|
213 |
-
?>
|
214 |
-
|
215 |
-
<div class="wrap" id="tnp-wrap">
|
216 |
-
|
217 |
-
<?php include NEWSLETTER_DIR . '/tnp-header.php'; ?>
|
218 |
-
|
219 |
-
<div id="tnp-heading">
|
220 |
-
|
221 |
-
<h2><?php _e('Preview Newsletter', 'newsletter') ?></h2>
|
222 |
-
|
223 |
-
</div>
|
224 |
-
|
225 |
-
<div id="tnp-body">
|
226 |
-
|
227 |
-
<?php
|
228 |
-
if ($controls->data['status'] == 'S') {
|
229 |
-
echo '<div class="newsletter-message">Warning! This email is configured to be sent to NOT CONFIRMED subscribers.</div>';
|
230 |
-
}
|
231 |
-
?>
|
232 |
-
|
233 |
-
<form method="post" action="" id="newsletter-form">
|
234 |
-
|
235 |
-
<?php $controls->init(array('cookie_name' => 'newsletter_emails_edit_tab')); ?>
|
236 |
-
|
237 |
-
<p class="submit">
|
238 |
-
<?php $controls->button_back('?page=newsletter_emails_composer&id=' . $email['id']) ?>
|
239 |
-
<?php if ($email['status'] != 'sending') $controls->button_save(); ?>
|
240 |
-
<?php if ($email['status'] != 'sending' && $email['status'] != 'sent') $controls->button_confirm('test', 'Save and test', 'Save and send test emails to test addresses?'); ?>
|
241 |
-
|
242 |
-
<?php if ($email['status'] == 'new') $controls->button_confirm('send', __('Send', 'newsletter'), __('Start real delivery?', 'newsletter')); ?>
|
243 |
-
<?php if ($email['status'] == 'sending') $controls->button_confirm('pause', __('Pause', 'newsletter'), __('Pause the delivery?', 'newsletter')); ?>
|
244 |
-
<?php if ($email['status'] == 'paused') $controls->button_confirm('continue', __('Continue', 'newsletter'), 'Continue the delivery?'); ?>
|
245 |
-
<?php if ($email['status'] == 'paused') $controls->button_confirm('abort', __('Stop', 'newsletter'), __('This totally stop the delivery, ok?', 'newsletter')); ?>
|
246 |
-
<?php if ($email['status'] != 'sending' && $email['status'] != 'sent') $controls->button_confirm('editor', 'Save and switch to ' . ($email['editor'] == 0 ? 'HTML source editor' : 'Preview'), 'Sure?'); ?>
|
247 |
-
</p>
|
248 |
-
|
249 |
-
<div id="tabs">
|
250 |
-
<ul>
|
251 |
-
<li><a href="#tabs-a"><?php _e('Message', 'newsletter') ?></a></li>
|
252 |
-
<li><a href="#tabs-b"><?php _e('Message (textual)', 'newsletter') ?></a></li>
|
253 |
-
<li><a href="#tabs-c"><?php _e('Targeting', 'newsletter') ?></a></li>
|
254 |
-
<li><a href="#tabs-d"><?php _e('Other', 'newsletter') ?></a></li>
|
255 |
-
<li><a href="#tabs-status"><?php _e('Status', 'newsletter') ?></a></li>
|
256 |
-
</ul>
|
257 |
-
|
258 |
-
|
259 |
-
<div id="tabs-a" class="tnpc-subject">
|
260 |
-
|
261 |
-
<?php $controls->text('subject', 100, 'Subject'); ?>
|
262 |
-
|
263 |
-
<a href="http://www.thenewsletterplugin.com/plugins/newsletter/newsletter-tags" target="_blank"><?php _e('Available tags', 'newsletter') ?></a>
|
264 |
-
|
265 |
-
<br><br>
|
266 |
-
|
267 |
-
<?php if ($email['editor'] == 0) { ?>
|
268 |
-
|
269 |
-
<div class="tnpc-preview">
|
270 |
-
<!-- Flat Laptop Browser -->
|
271 |
-
<div class="fake-browser-ui">
|
272 |
-
<div class="frame">
|
273 |
-
<span class="bt-1"></span>
|
274 |
-
<span class="bt-2"></span>
|
275 |
-
<span class="bt-3"></span>
|
276 |
-
</div>
|
277 |
-
<iframe id="tnpc-preview-desktop" src="" width="700" height="507" alt="Test" frameborder="0"></iframe>
|
278 |
-
</div>
|
279 |
-
|
280 |
-
<!-- Flat Mobile Browser -->
|
281 |
-
<div class="fake-mobile-browser-ui">
|
282 |
-
<iframe id="tnpc-preview-mobile" src="" width="250" height="445" alt="Test" frameborder="0"></iframe>
|
283 |
-
<div class="frame">
|
284 |
-
<span class="bt-4"></span>
|
285 |
-
</div>
|
286 |
-
</div>
|
287 |
-
</div>
|
288 |
-
|
289 |
-
<script type="text/javascript">
|
290 |
-
preview_url = ajaxurl + "?action=tnpc_preview&id=<?php echo $email_id ?>";
|
291 |
-
jQuery('#tnpc-preview-desktop, #tnpc-preview-mobile').attr("src", preview_url);
|
292 |
-
setTimeout(function () {
|
293 |
-
jQuery('#tnpc-preview-desktop, #tnpc-preview-mobile').contents().find("a").click(function (e) {
|
294 |
-
e.preventDefault();
|
295 |
-
})
|
296 |
-
}, 500);
|
297 |
-
</script>
|
298 |
-
|
299 |
-
<?php
|
300 |
-
} else {
|
301 |
-
|
302 |
-
// $controls->textarea_preview('message', '100%', '700');
|
303 |
-
?>
|
304 |
-
|
305 |
-
<input id="options-message" name="options[message]" type="hidden">
|
306 |
-
|
307 |
-
<div id="tnpc-html-editor"><?php echo htmlentities($email['message']) ?></div>
|
308 |
-
<script src="<?php echo plugins_url('newsletter') ?>/js/ace/ace.js" type="text/javascript" charset="utf-8"></script>
|
309 |
-
<script>
|
310 |
-
var editor = ace.edit("tnpc-html-editor");
|
311 |
-
editor.setTheme("ace/theme/idle_fingers");
|
312 |
-
editor.getSession().setMode("ace/mode/html");
|
313 |
-
var message_input = jQuery('#options-message');
|
314 |
-
// editor.getSession().setValue(message_input.val());
|
315 |
-
message_input.val(editor.getSession().getValue());
|
316 |
-
editor.getSession().on('change', function () {
|
317 |
-
message_input.val(editor.getSession().getValue());
|
318 |
-
});
|
319 |
-
</script>
|
320 |
-
|
321 |
-
<?php }
|
322 |
-
?>
|
323 |
-
|
324 |
-
</div>
|
325 |
-
|
326 |
-
|
327 |
-
<div id="tabs-b">
|
328 |
-
<p>
|
329 |
-
This is the textual version of your newsletter. If you empty it, only an HTML version will be sent but
|
330 |
-
is an anti-spam best practice to include a text only version.
|
331 |
-
</p>
|
332 |
-
|
333 |
-
<?php $controls->textarea_fixed('message_text', '100%', '500'); ?>
|
334 |
-
</div>
|
335 |
-
|
336 |
-
|
337 |
-
<div id="tabs-c">
|
338 |
-
<table class="form-table">
|
339 |
-
|
340 |
-
<tr valign="top">
|
341 |
-
<th><?php _e('Gender', 'newsletter'); ?></th>
|
342 |
-
<td>
|
343 |
-
<?php $controls->checkboxes_group('sex', array('f' => 'Women', 'm' => 'Men', 'n' => 'Not specified')); ?>
|
344 |
-
<p class="description">
|
345 |
-
Leaving all gender options unselected disable this filter.
|
346 |
-
</p>
|
347 |
-
</td>
|
348 |
-
</tr>
|
349 |
-
<tr valign="top">
|
350 |
-
<th><?php _e('Lists', 'newsletter'); ?></th>
|
351 |
-
<td>
|
352 |
-
Subscribers with
|
353 |
-
<?php $controls->select('preferences_status_operator', array(0 => 'at least one list', 1 => 'all lists')); ?>
|
354 |
-
|
355 |
-
<?php $controls->select('preferences_status', array(0 => 'active', 1 => 'not active')); ?>
|
356 |
-
<?php _e('checked below', 'newsletter') ?>
|
357 |
-
|
358 |
-
<?php $controls->preferences_group('preferences', true); ?>
|
359 |
-
<p class="description">
|
360 |
-
You can address the newsletter to subscribers who selected at least one of the options or to who
|
361 |
-
has not selected at least one of the options.
|
362 |
-
<a href="http://www.thenewsletterplugin.com/plugins/newsletter/newsletter-preferences" target="_blank">Read more about the "NOT ACTIVE" usage</a>.
|
363 |
-
</p>
|
364 |
-
</td>
|
365 |
-
</tr>
|
366 |
-
|
367 |
-
<tr valign="top">
|
368 |
-
<th><?php _e('Status', 'newsletter') ?></th>
|
369 |
-
<td>
|
370 |
-
<?php $controls->select('status', array('C' => __('Confirmed', 'newsletter'), 'S' => __('Not confirmed', 'newsletter'))); ?>
|
371 |
-
|
372 |
-
<p class="description">
|
373 |
-
<?php _e('Send to not confirmed subscribers ONLY to ask for confirmation including the {subscription_confirm_url} tag.', 'newsletter') ?>
|
374 |
-
</p>
|
375 |
-
</td>
|
376 |
-
</tr>
|
377 |
-
<tr valign="top">
|
378 |
-
<th>Only to WordPress users?</th>
|
379 |
-
<td>
|
380 |
-
<?php $controls->yesno('wp_users'); ?>
|
381 |
-
|
382 |
-
<p class="description">
|
383 |
-
Limit to the subscribers which are WordPress users as well.
|
384 |
-
</p>
|
385 |
-
</td>
|
386 |
-
</tr>
|
387 |
-
<tr valign="top">
|
388 |
-
<th>
|
389 |
-
<?php _e('Subscribers count', 'newsletter') ?>
|
390 |
-
</th>
|
391 |
-
<td>
|
392 |
-
<?php
|
393 |
-
echo $wpdb->get_var(str_replace('*', 'count(*)', $email['query']));
|
394 |
-
?>
|
395 |
-
<p class="description">
|
396 |
-
<?php _e('Save to update if on targeting filters have been changed', 'newsletter') ?>
|
397 |
-
</p>
|
398 |
-
</td>
|
399 |
-
</tr>
|
400 |
-
</table>
|
401 |
-
</div>
|
402 |
-
|
403 |
-
|
404 |
-
<div id="tabs-d">
|
405 |
-
<table class="form-table">
|
406 |
-
<tr valign="top">
|
407 |
-
<th><?php _e('Keep private', 'newsletter') ?></th>
|
408 |
-
<td>
|
409 |
-
<?php $controls->yesno('private'); ?>
|
410 |
-
<p class="description">
|
411 |
-
<?php _e('Hide/show from public sent newsletter list.', 'newsletter') ?>
|
412 |
-
<?php _e('Required', 'newsletter') ?>: <a href="" target="_blank">Newsletter Archive Extension</a>
|
413 |
-
</p>
|
414 |
-
</td>
|
415 |
-
</tr>
|
416 |
-
<tr valign="top">
|
417 |
-
<th><?php _e('Track clicks and message opening', 'newsletter') ?></th>
|
418 |
-
<td>
|
419 |
-
<?php $controls->yesno('track'); ?>
|
420 |
-
</td>
|
421 |
-
</tr>
|
422 |
-
<tr valign="top">
|
423 |
-
<th><?php _e('Send on', 'newsletter') ?></th>
|
424 |
-
<td>
|
425 |
-
<?php $controls->datetime('send_on'); ?> (now: <?php echo date_i18n(get_option('date_format') . ' ' . get_option('time_format')); ?>)
|
426 |
-
<p class="description">
|
427 |
-
If the current date and time are wrong, check your timezone on the General WordPress settings.
|
428 |
-
</p>
|
429 |
-
</td>
|
430 |
-
</tr>
|
431 |
-
</table>
|
432 |
-
</div>
|
433 |
-
<div id="tabs-status">
|
434 |
-
<table class="form-table">
|
435 |
-
<tr valign="top">
|
436 |
-
<th>Email status</th>
|
437 |
-
<td><?php echo $email['status']; ?></td>
|
438 |
-
</tr>
|
439 |
-
<tr valign="top">
|
440 |
-
<th>Messages sent</th>
|
441 |
-
<td><?php echo $email['sent']; ?> of <?php echo $email['total']; ?></td>
|
442 |
-
</tr>
|
443 |
-
<tr valign="top">
|
444 |
-
<th>Query (tech)</th>
|
445 |
-
<td><?php echo $email['query']; ?></td>
|
446 |
-
</tr>
|
447 |
-
</table>
|
448 |
-
</div>
|
449 |
-
|
450 |
-
<!--
|
451 |
-
<div id="tabs-5">
|
452 |
-
<p>Tags documented below can be used on newsletter body. Some of them can be used on subject as well.</p>
|
453 |
-
|
454 |
-
<p>
|
455 |
-
Special tags, like the preference setting tag, can be used to highly interact with your subscribers, see
|
456 |
-
the Newsletter Preferences page for examples.
|
457 |
-
</p>
|
458 |
-
--
|
459 |
-
|
460 |
-
<dl>
|
461 |
-
<dt>{set_preference_N}</dt>
|
462 |
-
<dd>
|
463 |
-
This tag creates a URL which, once clicked, set the preference numner N on the user profile and redirecting the
|
464 |
-
subscriber to his profile panel. Preferences can be configured on Subscription/Form fields panel.
|
465 |
-
</dd>
|
466 |
-
</dl>
|
467 |
-
|
468 |
-
</ul>
|
469 |
-
</div>
|
470 |
-
-->
|
471 |
-
|
472 |
-
</div>
|
473 |
-
|
474 |
-
</form>
|
475 |
-
</div>
|
476 |
-
|
477 |
-
<?php include NEWSLETTER_DIR . '/tnp-footer.php'; ?>
|
478 |
-
|
479 |
-
</div>
|
480 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/create.php
DELETED
@@ -1,54 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
// Stops WP Super Cache which removes the logged_in cookie
|
4 |
-
$_GET['preview'] = 'true';
|
5 |
-
|
6 |
-
require_once '../../../../wp-load.php';
|
7 |
-
|
8 |
-
if (!is_user_logged_in()) {
|
9 |
-
die('No logged in user found. A plugin is almost surely removing the authentication cookies, usually a cache plugin. Try to report the issue on http://www.thenewsletterplugin.com forum.');
|
10 |
-
}
|
11 |
-
|
12 |
-
if (!current_user_can('manage_categories')) {
|
13 |
-
die('Not enough privileges');
|
14 |
-
}
|
15 |
-
|
16 |
-
if (Newsletter::instance()->options['editor'] != 1 && !current_user_can('manage_options')) {
|
17 |
-
die('Not enough privileges');
|
18 |
-
}
|
19 |
-
|
20 |
-
require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
21 |
-
$controls = new NewsletterControls();
|
22 |
-
$module = NewsletterEmails::instance();
|
23 |
-
|
24 |
-
if ($controls->is_action('create')) {
|
25 |
-
$module->save_options($controls->data);
|
26 |
-
|
27 |
-
$email = array();
|
28 |
-
$email['status'] = 'new';
|
29 |
-
$email['subject'] = ''; //__('Here the email subject', 'newsletter');
|
30 |
-
$email['track'] = 1;
|
31 |
-
|
32 |
-
$theme_options = $module->get_current_theme_options();
|
33 |
-
|
34 |
-
$theme_url = $module->get_current_theme_url();
|
35 |
-
$theme_subject = '';
|
36 |
-
|
37 |
-
ob_start();
|
38 |
-
include $module->get_current_theme_file_path('theme.php');
|
39 |
-
$email['message'] = ob_get_clean();
|
40 |
-
|
41 |
-
if (!empty($theme_subject)) {
|
42 |
-
$email['subject'] = $theme_subject;
|
43 |
-
}
|
44 |
-
|
45 |
-
ob_start();
|
46 |
-
include $module->get_current_theme_file_path('theme-text.php');
|
47 |
-
$email['message_text'] = ob_get_clean();
|
48 |
-
|
49 |
-
$email['type'] = 'message';
|
50 |
-
$email['send_on'] = time();
|
51 |
-
$email = Newsletter::instance()->save_email($email);
|
52 |
-
|
53 |
-
header('Location: ' . $module->get_admin_page_url('edit') . '&id=' . $email->id);
|
54 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/css.php
DELETED
@@ -1,17 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
include '../../../../wp-load.php';
|
4 |
-
|
5 |
-
$email_id = (int)$_GET['id'];
|
6 |
-
|
7 |
-
$body = Newsletter::instance()->get_email_field($email_id, 'message');
|
8 |
-
|
9 |
-
$x = strpos($body, '<style');
|
10 |
-
if ($x === false) return;
|
11 |
-
|
12 |
-
$x = strpos($body, '>', $x);
|
13 |
-
$y = strpos($body, '</style>');
|
14 |
-
|
15 |
-
header('Content-Type: text/css');
|
16 |
-
|
17 |
-
echo substr($body, $x+1, $y-$x-1);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/edit.php
DELETED
@@ -1,486 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/* @var $wpdb wpdb */
|
3 |
-
require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
4 |
-
$controls = new NewsletterControls();
|
5 |
-
$module = NewsletterEmails::instance();
|
6 |
-
|
7 |
-
// Always required
|
8 |
-
$email = Newsletter::instance()->get_email((int) $_GET['id'], ARRAY_A);
|
9 |
-
|
10 |
-
if (empty($email)) {
|
11 |
-
echo 'Wrong email identifier';
|
12 |
-
return;
|
13 |
-
}
|
14 |
-
$email_id = $email['id'];
|
15 |
-
|
16 |
-
// If there is no action we assume we are enter the first time so we populate the
|
17 |
-
// $nc->data with the editable email fields
|
18 |
-
if (!$controls->is_action()) {
|
19 |
-
$controls->data = $email;
|
20 |
-
if (!empty($email['preferences'])) {
|
21 |
-
$controls->data['preferences'] = explode(',', $email['preferences']);
|
22 |
-
}
|
23 |
-
if (!empty($email['sex'])) {
|
24 |
-
$controls->data['sex'] = explode(',', $email['sex']);
|
25 |
-
}
|
26 |
-
$email_options = unserialize($email['options']);
|
27 |
-
if (is_array($email_options)) {
|
28 |
-
$controls->data = array_merge($controls->data, $email_options);
|
29 |
-
}
|
30 |
-
}
|
31 |
-
|
32 |
-
if ($controls->is_action('test') || $controls->is_action('save') || $controls->is_action('send') || $controls->is_action('editor')) {
|
33 |
-
|
34 |
-
// If we were editing with visual editor (==0), we must read the extra <body> content
|
35 |
-
if ($email['editor'] == 0) {
|
36 |
-
$x = strpos($email['message'], '<body');
|
37 |
-
if ($x !== false) {
|
38 |
-
$x = strpos($email['message'], '>', $x);
|
39 |
-
$email['message'] = substr($email['message'], 0, $x + 1) . $controls->data['message'] . '</body></html>';
|
40 |
-
} else {
|
41 |
-
$email['message'] = '<html><body>' . $controls->data['message'] . '</body></html>';
|
42 |
-
}
|
43 |
-
} else {
|
44 |
-
$email['message'] = $controls->data['message'];
|
45 |
-
}
|
46 |
-
$email['message_text'] = $controls->data['message_text'];
|
47 |
-
$email['subject'] = $controls->data['subject'];
|
48 |
-
$email['track'] = $controls->data['track'];
|
49 |
-
$email['private'] = $controls->data['private'];
|
50 |
-
|
51 |
-
// Builds the extended options
|
52 |
-
$email['options'] = array();
|
53 |
-
$email['options']['preferences_status'] = $controls->data['preferences_status'];
|
54 |
-
if (isset($controls->data['preferences'])) {
|
55 |
-
$email['options']['preferences'] = $controls->data['preferences'];
|
56 |
-
}
|
57 |
-
if (isset($controls->data['sex'])) {
|
58 |
-
$email['options']['sex'] = $controls->data['sex'];
|
59 |
-
}
|
60 |
-
|
61 |
-
$email['options']['status'] = $controls->data['status'];
|
62 |
-
$email['options']['preferences_status_operator'] = $controls->data['preferences_status_operator'];
|
63 |
-
$email['options']['wp_users'] = $controls->data['wp_users'];
|
64 |
-
|
65 |
-
$email['options'] = serialize($email['options']);
|
66 |
-
|
67 |
-
if (isset($controls->data['preferences'])) {
|
68 |
-
$email['preferences'] = implode(',', $controls->data['preferences']);
|
69 |
-
} else {
|
70 |
-
$email['preferences'] = '';
|
71 |
-
}
|
72 |
-
|
73 |
-
if (isset($controls->data['sex'])) {
|
74 |
-
$email['sex'] = implode(',', $controls->data['sex']);
|
75 |
-
} else {
|
76 |
-
$email['sex'] = '';
|
77 |
-
}
|
78 |
-
|
79 |
-
// Before send, we build the query to extract subscriber, so the delivery engine does not
|
80 |
-
// have to worry about the email parameters
|
81 |
-
if ($controls->data['status'] == 'S') {
|
82 |
-
$query = "select * from " . NEWSLETTER_USERS_TABLE . " where status='S'";
|
83 |
-
} else {
|
84 |
-
$query = "select * from " . NEWSLETTER_USERS_TABLE . " where status='C'";
|
85 |
-
}
|
86 |
-
|
87 |
-
if ($controls->data['wp_users'] == '1') {
|
88 |
-
$query .= " and wp_user_id<>0";
|
89 |
-
}
|
90 |
-
|
91 |
-
|
92 |
-
if (isset($controls->data['preferences'])) {
|
93 |
-
$preferences = $controls->data['preferences'];
|
94 |
-
|
95 |
-
// Not set one of the preferences specified
|
96 |
-
$operator = $controls->data['preferences_status_operator'] == 0 ? ' or ' : ' and ';
|
97 |
-
if ($controls->data['preferences_status'] == 1) {
|
98 |
-
$query .= " and (";
|
99 |
-
foreach ($preferences as $x) {
|
100 |
-
$query .= "list_" . ((int)$x) . "=0" . $operator;
|
101 |
-
}
|
102 |
-
$query = substr($query, 0, -4);
|
103 |
-
$query .= ")";
|
104 |
-
} else {
|
105 |
-
$query .= " and (";
|
106 |
-
foreach ($preferences as $x) {
|
107 |
-
$query .= "list_" . ((int)$x) . "=1" . $operator;
|
108 |
-
}
|
109 |
-
$query = substr($query, 0, -4);
|
110 |
-
$query .= ")";
|
111 |
-
}
|
112 |
-
}
|
113 |
-
|
114 |
-
$sex = $controls->data['sex'];
|
115 |
-
if (is_array($sex)) {
|
116 |
-
$query .= " and sex in (";
|
117 |
-
foreach ($sex as $x) {
|
118 |
-
$query .= "'" . esc_sql($x) . "', ";
|
119 |
-
}
|
120 |
-
$query = substr($query, 0, -2);
|
121 |
-
$query .= ")";
|
122 |
-
}
|
123 |
-
|
124 |
-
$email['query'] = $query;
|
125 |
-
$email['total'] = $wpdb->get_var(str_replace('*', 'count(*)', $query));
|
126 |
-
|
127 |
-
if ($controls->is_action('send') && $controls->data['send_on'] < time()) {
|
128 |
-
$controls->data['send_on'] = time();
|
129 |
-
}
|
130 |
-
$email['send_on'] = $controls->data['send_on'];
|
131 |
-
|
132 |
-
if ($controls->is_action('editor')) {
|
133 |
-
$email['editor'] = $email['editor'] == 0 ? 1 : 0;
|
134 |
-
}
|
135 |
-
|
136 |
-
// Cleans up of tag
|
137 |
-
$email['message'] = NewsletterModule::clean_url_tags($email['message']);
|
138 |
-
|
139 |
-
$res = Newsletter::instance()->save_email($email);
|
140 |
-
if ($res === false) {
|
141 |
-
$controls->errors = 'Unable to save. Try to deactivate and reactivate the plugin may be the database is out of sync.';
|
142 |
-
}
|
143 |
-
|
144 |
-
$controls->data['message'] = $email['message'];
|
145 |
-
|
146 |
-
$controls->add_message_saved();
|
147 |
-
}
|
148 |
-
|
149 |
-
if ($controls->is_action('send')) {
|
150 |
-
// Todo subject check
|
151 |
-
if ($email['subject'] == '') {
|
152 |
-
$controls->errors = __('A subject is required to send', 'newsletter');
|
153 |
-
} else {
|
154 |
-
$wpdb->update(NEWSLETTER_EMAILS_TABLE, array('status' => 'sending'), array('id' => $email_id));
|
155 |
-
$email['status'] = 'sending';
|
156 |
-
$controls->messages .= __('Now sending, see the progress on newsletter list', 'newsletter');
|
157 |
-
}
|
158 |
-
}
|
159 |
-
|
160 |
-
if ($controls->is_action('pause')) {
|
161 |
-
$wpdb->update(NEWSLETTER_EMAILS_TABLE, array('status' => 'paused'), array('id' => $email_id));
|
162 |
-
$email['status'] = 'paused';
|
163 |
-
}
|
164 |
-
|
165 |
-
if ($controls->is_action('continue')) {
|
166 |
-
$wpdb->update(NEWSLETTER_EMAILS_TABLE, array('status' => 'sending'), array('id' => $email_id));
|
167 |
-
$email['status'] = 'sending';
|
168 |
-
}
|
169 |
-
|
170 |
-
if ($controls->is_action('abort')) {
|
171 |
-
$wpdb->query("update " . NEWSLETTER_EMAILS_TABLE . " set last_id=0, sent=0, status='new' where id=" . $email_id);
|
172 |
-
$email['status'] = 'new';
|
173 |
-
$email['sent'] = 0;
|
174 |
-
$email['last_id'] = 0;
|
175 |
-
$controls->messages = __('Delivery definitively cancelled', 'newsletter');
|
176 |
-
}
|
177 |
-
|
178 |
-
if ($controls->is_action('test')) {
|
179 |
-
if ($email['subject'] == '') {
|
180 |
-
$controls->errors = __('A subject is required to send', 'newsletter');
|
181 |
-
} else {
|
182 |
-
$users = NewsletterUsers::instance()->get_test_users();
|
183 |
-
if (count($users) == 0) {
|
184 |
-
$controls->messages = '<strong>' . __('There are no test subscribers to send to', 'newsletter') . '</strong>';
|
185 |
-
} else {
|
186 |
-
Newsletter::instance()->send(Newsletter::instance()->get_email($email_id), $users);
|
187 |
-
$controls->messages = __('Test newsletter sent to:', 'newsletter');
|
188 |
-
foreach ($users as &$user) {
|
189 |
-
$controls->messages .= ' ' . $user->email;
|
190 |
-
}
|
191 |
-
$controls->messages .= '.';
|
192 |
-
}
|
193 |
-
|
194 |
-
$controls->messages .= '<br>';
|
195 |
-
$controls->messages .= '<a href="http://www.thenewsletterplugin.com/plugins/newsletter/subscribers-module#test" target="_blank">' .
|
196 |
-
__('Read more about test subscribers', 'newsletter') . '</a>.';
|
197 |
-
|
198 |
-
$controls->messages .= '<br>If diagnostic emails are delivered but test emails are not, try to change the encoding to "base 64" on main configuration panel';
|
199 |
-
}
|
200 |
-
}
|
201 |
-
|
202 |
-
$template = '{message}';
|
203 |
-
if ($email['editor'] == 0) {
|
204 |
-
$x = strpos($controls->data['message'], '<body');
|
205 |
-
// Some time the message in $nc->data is already cleaned up, it depends on action called
|
206 |
-
if ($x !== false) {
|
207 |
-
$x = strpos($controls->data['message'], '>', $x);
|
208 |
-
$y = strpos($controls->data['message'], '</body>');
|
209 |
-
|
210 |
-
$template = substr($controls->data['message'], 0, $x) . '{message}' . substr($controls->data['message'], $y);
|
211 |
-
$controls->data['message'] = substr($controls->data['message'], $x + 1, $y - $x - 1);
|
212 |
-
}
|
213 |
-
}
|
214 |
-
?>
|
215 |
-
|
216 |
-
<script type="text/javascript" src="<?php echo plugins_url('newsletter'); ?>/tiny_mce/tiny_mce.js"></script>
|
217 |
-
<script type="text/javascript">
|
218 |
-
var template = <?php echo json_encode($template) ?>;
|
219 |
-
tinyMCE.init({
|
220 |
-
height: 700,
|
221 |
-
mode: "specific_textareas",
|
222 |
-
editor_selector: "visual",
|
223 |
-
theme: "advanced",
|
224 |
-
entity_encoding: "raw",
|
225 |
-
plugins: "table,fullscreen,legacyoutput",
|
226 |
-
theme_advanced_disable: "styleselect",
|
227 |
-
theme_advanced_buttons1_add: "forecolor,blockquote,code,fontsizeselect,fontselect",
|
228 |
-
theme_advanced_buttons3_add: "tablecontrols,fullscreen",
|
229 |
-
relative_urls: false,
|
230 |
-
theme_advanced_statusbar_location: "bottom",
|
231 |
-
remove_script_host: false,
|
232 |
-
theme_advanced_resizing: true,
|
233 |
-
theme_advanced_toolbar_location: "top",
|
234 |
-
document_base_url: "<?php echo get_option('home'); ?>/",
|
235 |
-
content_css: ["<?php echo plugins_url('newsletter') ?>/emails/editor.css", "<?php echo plugins_url('newsletter') . '/emails/css.php?id=' . $email_id . '&' . time(); ?>"]
|
236 |
-
});
|
237 |
-
|
238 |
-
jQuery(document).ready(function () {
|
239 |
-
jQuery('#upload_image_button').click(function () {
|
240 |
-
tb_show('', 'media-upload.php?type=image&TB_iframe=true');
|
241 |
-
return false;
|
242 |
-
});
|
243 |
-
|
244 |
-
window.send_to_editor = function (html) {
|
245 |
-
var imgURL = html.match(/src=\"(.*?)\"/);
|
246 |
-
tinyMCE.execCommand('mceInsertContent', false, '<img src="' + imgURL[1] + '" />');
|
247 |
-
tb_remove();
|
248 |
-
}
|
249 |
-
});
|
250 |
-
|
251 |
-
function template_refresh() {
|
252 |
-
var d = document.getElementById('options_preview').contentWindow.document;
|
253 |
-
d.open();
|
254 |
-
//d.write(template.replace("{messaggio}", templateEditor.getValue()));
|
255 |
-
d.write(template.replace("{message}", document.getElementById("options-message").value));
|
256 |
-
d.close();
|
257 |
-
jQuery("#options_preview").toggle();
|
258 |
-
}
|
259 |
-
</script>
|
260 |
-
|
261 |
-
<div class="wrap" id="tnp-wrap">
|
262 |
-
|
263 |
-
<?php include NEWSLETTER_DIR . '/tnp-header.php'; ?>
|
264 |
-
|
265 |
-
<div id="tnp-heading">
|
266 |
-
|
267 |
-
<h2><?php _e('Edit Newsletter', 'newsletter') ?></h2>
|
268 |
-
|
269 |
-
</div>
|
270 |
-
|
271 |
-
<div id="tnp-body">
|
272 |
-
|
273 |
-
<?php
|
274 |
-
if ($controls->data['status'] == 'S') {
|
275 |
-
echo '<div class="newsletter-message">Warning! This email is configured to be sent to NOT CONFIRMED subscribers.</div>';
|
276 |
-
}
|
277 |
-
?>
|
278 |
-
|
279 |
-
<form method="post" action="" id="newsletter-form">
|
280 |
-
<?php $controls->init(array('cookie_name' => 'newsletter_emails_edit_tab')); ?>
|
281 |
-
|
282 |
-
<p class="submit">
|
283 |
-
<?php $controls->button_back('?page=newsletter_emails_index') ?>
|
284 |
-
<?php if ($email['status'] != 'sending') $controls->button_save(); ?>
|
285 |
-
<?php if ($email['status'] != 'sending' && $email['status'] != 'sent') $controls->button_confirm('test', 'Save and test', 'Save and send test emails to test addresses?'); ?>
|
286 |
-
|
287 |
-
<?php if ($email['status'] == 'new') $controls->button_confirm('send', __('Send', 'newsletter'), __('Start real delivery?', 'newsletter')); ?>
|
288 |
-
<?php if ($email['status'] == 'sending') $controls->button_confirm('pause', __('Pause', 'newsletter'), __('Pause the delivery?', 'newsletter')); ?>
|
289 |
-
<?php if ($email['status'] == 'paused') $controls->button_confirm('continue', __('Continue', 'newsletter'), 'Continue the delivery?'); ?>
|
290 |
-
<?php if ($email['status'] == 'paused') $controls->button_confirm('abort', __('Stop', 'newsletter'), __('This totally stop the delivery, ok?', 'newsletter')); ?>
|
291 |
-
<?php if ($email['status'] != 'sending' && $email['status'] != 'sent') $controls->button_confirm('editor', 'Save and switch to ' . ($email['editor'] == 0 ? 'HTML source' : 'visual') . ' editor', 'Sure?'); ?>
|
292 |
-
</p>
|
293 |
-
|
294 |
-
<div id="tabs">
|
295 |
-
<ul>
|
296 |
-
<li><a href="#tabs-a"><?php _e('Message', 'newsletter') ?></a></li>
|
297 |
-
<li><a href="#tabs-b"><?php _e('Message (textual)', 'newsletter') ?></a></li>
|
298 |
-
<li><a href="#tabs-c"><?php _e('Targeting', 'newsletter') ?></a></li>
|
299 |
-
<li><a href="#tabs-d"><?php _e('Other', 'newsletter') ?></a></li>
|
300 |
-
<li><a href="#tabs-status"><?php _e('Status', 'newsletter') ?></a></li>
|
301 |
-
</ul>
|
302 |
-
|
303 |
-
|
304 |
-
<div id="tabs-a">
|
305 |
-
|
306 |
-
<?php $controls->text('subject', 70, 'Subject'); ?>
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
<input id="upload_image_button" type="button" value="Choose or upload an image" />
|
311 |
-
|
312 |
-
<a href="http://www.thenewsletterplugin.com/plugins/newsletter/newsletter-tags" target="_blank"><?php _e('Available tags', 'newsletter') ?></a>
|
313 |
-
|
314 |
-
<br><br>
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
<?php
|
319 |
-
if ($email['editor'] == 0) {
|
320 |
-
$controls->editor('message', 30);
|
321 |
-
} else {
|
322 |
-
$controls->textarea_preview('message', '100%', '700');
|
323 |
-
}
|
324 |
-
?>
|
325 |
-
|
326 |
-
|
327 |
-
</div>
|
328 |
-
|
329 |
-
|
330 |
-
<div id="tabs-b">
|
331 |
-
<?php if (Newsletter::instance()->options['phpmailer'] == 0) { ?>
|
332 |
-
<p class="tnp-tab-warning">The text part is sent only when Newsletter manages directly the sending process. <a href="admin.php?page=newsletter_main_main" target="_blank">See the main settings</a>.</p>
|
333 |
-
<?php } ?>
|
334 |
-
<p>
|
335 |
-
This is the textual version of your newsletter. If you empty it, only an HTML version will be sent but
|
336 |
-
is an anti-spam best practice to include a text only version.
|
337 |
-
</p>
|
338 |
-
|
339 |
-
<?php $controls->textarea_fixed('message_text', '100%', '500'); ?>
|
340 |
-
</div>
|
341 |
-
|
342 |
-
|
343 |
-
<div id="tabs-c">
|
344 |
-
<table class="form-table">
|
345 |
-
|
346 |
-
<tr valign="top">
|
347 |
-
<th><?php _e('Gender', 'newsletter'); ?></th>
|
348 |
-
<td>
|
349 |
-
<?php $controls->checkboxes_group('sex', array('f' => 'Women', 'm' => 'Men', 'n' => 'Not specified')); ?>
|
350 |
-
<p class="description">
|
351 |
-
Leaving all gender options unselected disable this filter.
|
352 |
-
</p>
|
353 |
-
</td>
|
354 |
-
</tr>
|
355 |
-
<tr valign="top">
|
356 |
-
<th><?php _e('Lists', 'newsletter'); ?></th>
|
357 |
-
<td>
|
358 |
-
Subscribers with
|
359 |
-
<?php $controls->select('preferences_status_operator', array(0 => 'at least one list', 1 => 'all lists')); ?>
|
360 |
-
|
361 |
-
<?php $controls->select('preferences_status', array(0 => 'active', 1 => 'not active')); ?>
|
362 |
-
<?php _e('checked below', 'newsletter') ?>
|
363 |
-
|
364 |
-
<?php $controls->preferences_group('preferences', true); ?>
|
365 |
-
<p class="description">
|
366 |
-
You can address the newsletter to subscribers who selected at least one of the options or to who
|
367 |
-
has not selected at least one of the options.
|
368 |
-
<a href="http://www.thenewsletterplugin.com/plugins/newsletter/newsletter-preferences" target="_blank">Read more about the "NOT ACTIVE" usage</a>.
|
369 |
-
</p>
|
370 |
-
</td>
|
371 |
-
</tr>
|
372 |
-
|
373 |
-
<tr valign="top">
|
374 |
-
<th><?php _e('Status', 'newsletter') ?></th>
|
375 |
-
<td>
|
376 |
-
<?php $controls->select('status', array('C' => __('Confirmed', 'newsletter'), 'S' => __('Not confirmed', 'newsletter'))); ?>
|
377 |
-
|
378 |
-
<p class="description">
|
379 |
-
<?php _e('Send to not confirmed subscribers ONLY to ask for confirmation including the {subscription_confirm_url} tag.', 'newsletter') ?>
|
380 |
-
</p>
|
381 |
-
</td>
|
382 |
-
</tr>
|
383 |
-
<tr valign="top">
|
384 |
-
<th>Only to WordPress users?</th>
|
385 |
-
<td>
|
386 |
-
<?php $controls->yesno('wp_users'); ?>
|
387 |
-
|
388 |
-
<p class="description">
|
389 |
-
Limit to the subscribers which are WordPress users as well.
|
390 |
-
</p>
|
391 |
-
</td>
|
392 |
-
</tr>
|
393 |
-
<tr valign="top">
|
394 |
-
<th>
|
395 |
-
<?php _e('Subscribers count', 'newsletter') ?>
|
396 |
-
</th>
|
397 |
-
<td>
|
398 |
-
<?php
|
399 |
-
echo $wpdb->get_var(str_replace('*', 'count(*)', $email['query']));
|
400 |
-
?>
|
401 |
-
<p class="description">
|
402 |
-
<?php _e('Save to update if on targeting filters have been changed', 'newsletter') ?>
|
403 |
-
</p>
|
404 |
-
</td>
|
405 |
-
</tr>
|
406 |
-
</table>
|
407 |
-
</div>
|
408 |
-
|
409 |
-
|
410 |
-
<div id="tabs-d">
|
411 |
-
<table class="form-table">
|
412 |
-
<tr valign="top">
|
413 |
-
<th><?php _e('Keep private', 'newsletter') ?></th>
|
414 |
-
<td>
|
415 |
-
<?php $controls->yesno('private'); ?>
|
416 |
-
<p class="description">
|
417 |
-
<?php _e('Hide/show from public sent newsletter list.', 'newsletter') ?>
|
418 |
-
<?php _e('Required', 'newsletter') ?>: <a href="" target="_blank">Newsletter Archive Extension</a>
|
419 |
-
</p>
|
420 |
-
</td>
|
421 |
-
</tr>
|
422 |
-
<tr valign="top">
|
423 |
-
<th><?php _e('Track clicks and message opening', 'newsletter') ?></th>
|
424 |
-
<td>
|
425 |
-
<?php $controls->yesno('track'); ?>
|
426 |
-
</td>
|
427 |
-
</tr>
|
428 |
-
<tr valign="top">
|
429 |
-
<th><?php _e('Send on', 'newsletter') ?></th>
|
430 |
-
<td>
|
431 |
-
<?php $controls->datetime('send_on'); ?> (now: <?php echo date_i18n(get_option('date_format') . ' ' . get_option('time_format')); ?>)
|
432 |
-
<p class="description">
|
433 |
-
If the current date and time are wrong, check your timezone on the General WordPress settings.
|
434 |
-
</p>
|
435 |
-
</td>
|
436 |
-
</tr>
|
437 |
-
</table>
|
438 |
-
</div>
|
439 |
-
|
440 |
-
<div id="tabs-status">
|
441 |
-
<table class="form-table">
|
442 |
-
<tr valign="top">
|
443 |
-
<th>Email status</th>
|
444 |
-
<td><?php echo $email['status']; ?></td>
|
445 |
-
</tr>
|
446 |
-
<tr valign="top">
|
447 |
-
<th>Messages sent</th>
|
448 |
-
<td><?php echo $email['sent']; ?> of <?php echo $email['total']; ?></td>
|
449 |
-
</tr>
|
450 |
-
<tr valign="top">
|
451 |
-
<th>Query (tech)</th>
|
452 |
-
<td><?php echo $email['query']; ?></td>
|
453 |
-
</tr>
|
454 |
-
</table>
|
455 |
-
</div>
|
456 |
-
|
457 |
-
<!--
|
458 |
-
<div id="tabs-5">
|
459 |
-
<p>Tags documented below can be used on newsletter body. Some of them can be used on subject as well.</p>
|
460 |
-
|
461 |
-
<p>
|
462 |
-
Special tags, like the preference setting tag, can be used to highly interact with your subscribers, see
|
463 |
-
the Newsletter Preferences page for examples.
|
464 |
-
</p>
|
465 |
-
--
|
466 |
-
|
467 |
-
<dl>
|
468 |
-
<dt>{set_preference_N}</dt>
|
469 |
-
<dd>
|
470 |
-
This tag creates a URL which, once clicked, set the preference numner N on the user profile and redirecting the
|
471 |
-
subscriber to his profile panel. Preferences can be configured on Subscription/Form fields panel.
|
472 |
-
</dd>
|
473 |
-
</dl>
|
474 |
-
|
475 |
-
</ul>
|
476 |
-
</div>
|
477 |
-
-->
|
478 |
-
|
479 |
-
</div>
|
480 |
-
|
481 |
-
</form>
|
482 |
-
</div>
|
483 |
-
|
484 |
-
<?php include NEWSLETTER_DIR . '/tnp-footer.php'; ?>
|
485 |
-
|
486 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/editor.css
DELETED
@@ -1,4 +0,0 @@
|
|
1 |
-
body, td, pre {
|
2 |
-
font-size: 12px;
|
3 |
-
}
|
4 |
-
|
|
|
|
|
|
|
|
trunk/emails/emails.php
DELETED
@@ -1,152 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once NEWSLETTER_INCLUDES_DIR . '/themes.php';
|
4 |
-
require_once NEWSLETTER_INCLUDES_DIR . '/module.php';
|
5 |
-
|
6 |
-
class NewsletterEmails extends NewsletterModule {
|
7 |
-
|
8 |
-
static $instance;
|
9 |
-
|
10 |
-
/**
|
11 |
-
* @return NewsletterEmails
|
12 |
-
*/
|
13 |
-
static function instance() {
|
14 |
-
if (self::$instance == null) {
|
15 |
-
self::$instance = new NewsletterEmails();
|
16 |
-
}
|
17 |
-
return self::$instance;
|
18 |
-
}
|
19 |
-
|
20 |
-
function __construct() {
|
21 |
-
$this->themes = new NewsletterThemes('emails');
|
22 |
-
parent::__construct('emails', '1.1.2');
|
23 |
-
add_action('wp_loaded', array($this, 'hook_wp_loaded'));
|
24 |
-
}
|
25 |
-
|
26 |
-
function hook_wp_loaded() {
|
27 |
-
global $newsletter, $wpdb;
|
28 |
-
switch ($newsletter->action) {
|
29 |
-
case 'v':
|
30 |
-
// TODO: Change to Newsletter::instance()->get:email(), not urgent
|
31 |
-
$email = $this->get_email((int) $_GET['id']);
|
32 |
-
if (empty($email)) {
|
33 |
-
die('Email not found');
|
34 |
-
}
|
35 |
-
|
36 |
-
if ($email->private == 1) {
|
37 |
-
die('Email not found');
|
38 |
-
}
|
39 |
-
|
40 |
-
$user = NewsletterSubscription::instance()->get_user_from_request();
|
41 |
-
header('Content-Type: text/html;charset=UTF-8');
|
42 |
-
header('X-Robots-Tag: noindex,nofollow,noarchive');
|
43 |
-
header('Cache-Control: no-cache,no-store,private');
|
44 |
-
if (is_file(WP_CONTENT_DIR . '/extensions/newsletter/view.php')) {
|
45 |
-
include WP_CONTENT_DIR . '/extensions/newsletter/view.php';
|
46 |
-
die();
|
47 |
-
}
|
48 |
-
|
49 |
-
echo $newsletter->replace($email->message, $user, $email->id);
|
50 |
-
|
51 |
-
die();
|
52 |
-
}
|
53 |
-
}
|
54 |
-
|
55 |
-
function upgrade() {
|
56 |
-
global $wpdb, $charset_collate;
|
57 |
-
|
58 |
-
parent::upgrade();
|
59 |
-
|
60 |
-
$this->upgrade_query("alter table " . NEWSLETTER_EMAILS_TABLE . " change column `type` `type` varchar(50) not null default ''");
|
61 |
-
$this->upgrade_query("alter table " . NEWSLETTER_EMAILS_TABLE . " add column token varchar(10) not null default ''");
|
62 |
-
$this->upgrade_query("alter table " . NEWSLETTER_EMAILS_TABLE . " drop column visibility");
|
63 |
-
$this->upgrade_query("update " . NEWSLETTER_EMAILS_TABLE . " set type='message' where type=''");
|
64 |
-
$this->upgrade_query("alter table " . NEWSLETTER_EMAILS_TABLE . " add column private tinyint(1) not null default 0");
|
65 |
-
|
66 |
-
// Force a token to email without one already set.
|
67 |
-
$token = self::get_token();
|
68 |
-
$wpdb->query("update " . NEWSLETTER_EMAILS_TABLE . " set token='" . $token . "' where token=''");
|
69 |
-
|
70 |
-
return true;
|
71 |
-
}
|
72 |
-
|
73 |
-
function admin_menu() {
|
74 |
-
$this->add_menu_page('index', 'Newsletters');
|
75 |
-
$this->add_admin_page('list', 'Email List');
|
76 |
-
$this->add_admin_page('new', 'Email New');
|
77 |
-
$this->add_admin_page('edit', 'Email Edit');
|
78 |
-
$this->add_admin_page('theme', 'Email Themes');
|
79 |
-
$this->add_admin_page('composer', 'The Composer');
|
80 |
-
$this->add_admin_page('cpreview', 'The Composer Preview');
|
81 |
-
}
|
82 |
-
|
83 |
-
/**
|
84 |
-
* Returns the current selected theme.
|
85 |
-
*/
|
86 |
-
function get_current_theme() {
|
87 |
-
$theme = $this->options['theme'];
|
88 |
-
if (empty($theme))
|
89 |
-
return 'blank';
|
90 |
-
else
|
91 |
-
return $theme;
|
92 |
-
}
|
93 |
-
|
94 |
-
function get_current_theme_options() {
|
95 |
-
$theme_options = $this->themes->get_options($this->get_current_theme());
|
96 |
-
// main options merge
|
97 |
-
$main_options = Newsletter::instance()->options;
|
98 |
-
foreach ($main_options as $key => $value) {
|
99 |
-
$theme_options['main_' . $key] = $value;
|
100 |
-
}
|
101 |
-
return $theme_options;
|
102 |
-
}
|
103 |
-
|
104 |
-
/**
|
105 |
-
* Returns the file path to a theme using the theme overriding rules.
|
106 |
-
* @param type $theme
|
107 |
-
* @param type $file
|
108 |
-
*/
|
109 |
-
function get_theme_file_path($theme, $file) {
|
110 |
-
return $this->themes->get_file_path($theme);
|
111 |
-
}
|
112 |
-
|
113 |
-
function get_current_theme_file_path($file) {
|
114 |
-
return $this->themes->get_file_path($this->get_current_theme(), $file);
|
115 |
-
}
|
116 |
-
|
117 |
-
function get_current_theme_url() {
|
118 |
-
return $this->themes->get_theme_url($this->get_current_theme());
|
119 |
-
}
|
120 |
-
|
121 |
-
/**
|
122 |
-
* Returns true if the emails database still contain old 2.5 format emails.
|
123 |
-
*
|
124 |
-
* @return boolean
|
125 |
-
*/
|
126 |
-
function has_old_emails() {
|
127 |
-
return $this->store->get_count(NEWSLETTER_EMAILS_TABLE, "where type='email'") > 0;
|
128 |
-
}
|
129 |
-
|
130 |
-
function convert_old_emails() {
|
131 |
-
global $newsletter;
|
132 |
-
$list = $newsletter->get_emails('email', ARRAY_A);
|
133 |
-
foreach ($list as &$email) {
|
134 |
-
$email['type'] = 'message';
|
135 |
-
$query = "select * from " . NEWSLETTER_USERS_TABLE . " where status='C'";
|
136 |
-
|
137 |
-
if ($email['list'] != 0)
|
138 |
-
$query .= " and list_" . $email['list'] . "=1";
|
139 |
-
$email['preferences'] = $email['list'];
|
140 |
-
|
141 |
-
if (!empty($email['sex'])) {
|
142 |
-
$query .= " and sex='" . $email['sex'] . "'";
|
143 |
-
}
|
144 |
-
$email['query'] = $query;
|
145 |
-
|
146 |
-
$newsletter->save_email($email);
|
147 |
-
}
|
148 |
-
}
|
149 |
-
|
150 |
-
}
|
151 |
-
|
152 |
-
NewsletterEmails::instance();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/index.php
DELETED
@@ -1,155 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
3 |
-
$controls = new NewsletterControls();
|
4 |
-
$module = NewsletterEmails::instance();
|
5 |
-
|
6 |
-
if ($controls->is_action('convert')) {
|
7 |
-
$module->convert_old_emails();
|
8 |
-
$controls->messages = 'Converted!';
|
9 |
-
}
|
10 |
-
|
11 |
-
if ($controls->is_action('unconvert')) {
|
12 |
-
$wpdb->query("update wp_newsletter_emails set type='email' where type='message'");
|
13 |
-
$controls->messages = 'Unconverted!';
|
14 |
-
}
|
15 |
-
|
16 |
-
if ($controls->is_action('send')) {
|
17 |
-
$newsletter->hook_newsletter();
|
18 |
-
$controls->messages .= __('Delivery engine triggered.', 'newsletter');
|
19 |
-
}
|
20 |
-
|
21 |
-
if ($controls->is_action('copy')) {
|
22 |
-
$original = Newsletter::instance()->get_email($_POST['btn']);
|
23 |
-
$email = array();
|
24 |
-
$email['subject'] = $original->subject;
|
25 |
-
$email['message'] = $original->message;
|
26 |
-
$email['message_text'] = $original->message_text;
|
27 |
-
$email['send_on'] = time();
|
28 |
-
$email['type'] = 'message';
|
29 |
-
$email['editor'] = $original->editor;
|
30 |
-
$email['track'] = $original->track;
|
31 |
-
if(isset($original->options)) {
|
32 |
-
$original_options = unserialize($original->options);
|
33 |
-
$email['options'] = serialize(array('composer' => $original_options['composer']));
|
34 |
-
}
|
35 |
-
|
36 |
-
Newsletter::instance()->save_email($email);
|
37 |
-
$controls->messages .= __('Message duplicated.', 'newsletter');
|
38 |
-
}
|
39 |
-
|
40 |
-
if ($controls->is_action('delete')) {
|
41 |
-
Newsletter::instance()->delete_email($_POST['btn']);
|
42 |
-
$controls->messages .= __('Message deleted.', 'newsletter');
|
43 |
-
}
|
44 |
-
|
45 |
-
if ($controls->is_action('delete_selected')) {
|
46 |
-
$r = Newsletter::instance()->delete_email($_POST['ids']);
|
47 |
-
$controls->messages .= $r . ' message(s) deleted';
|
48 |
-
}
|
49 |
-
|
50 |
-
$emails = Newsletter::instance()->get_emails('message');
|
51 |
-
?>
|
52 |
-
|
53 |
-
<div class="wrap" id="tnp-wrap">
|
54 |
-
|
55 |
-
<?php include NEWSLETTER_DIR . '/tnp-header.php'; ?>
|
56 |
-
|
57 |
-
<div id="tnp-heading">
|
58 |
-
|
59 |
-
<h2><?php _e('Newsletters', 'newsletter') ?></h2>
|
60 |
-
|
61 |
-
</div>
|
62 |
-
|
63 |
-
<div id="tnp-body">
|
64 |
-
|
65 |
-
<form method="post" action="">
|
66 |
-
<?php $controls->init(); ?>
|
67 |
-
|
68 |
-
<?php if ($module->has_old_emails()) { ?>
|
69 |
-
<div class="newsletter-message">
|
70 |
-
<p>
|
71 |
-
Your Newsletter installation has emails still in old format. To get them listed, you should convert them in
|
72 |
-
a new format. Would you to convert them now?
|
73 |
-
</p>
|
74 |
-
<p>
|
75 |
-
<?php $controls->button('convert', 'Convert now'); ?>
|
76 |
-
</p>
|
77 |
-
</div>
|
78 |
-
<?php } ?>
|
79 |
-
|
80 |
-
<p>
|
81 |
-
<a href="<?php echo $module->get_admin_page_url('theme'); ?>" class="button"><?php _e('New newsletter', 'newsletter') ?></a>
|
82 |
-
<?php $controls->button_confirm('delete_selected', __('Delete selected newsletters', 'newsletter'), __('Proceed?', 'newsletter'));
|
83 |
-
?>
|
84 |
-
<?php $controls->button('send', __('Trigger the delivery engine', 'newsletter')); ?>
|
85 |
-
</p>
|
86 |
-
<table class="widefat">
|
87 |
-
<thead>
|
88 |
-
<tr>
|
89 |
-
<th> </th>
|
90 |
-
<th>Id</th>
|
91 |
-
<th><?php _e('Subject', 'newsletter') ?></th>
|
92 |
-
<th><?php _e('Status', 'newsletter') ?></th>
|
93 |
-
<th><?php _e('Progress', 'newsletter') ?> (*)</th>
|
94 |
-
<th><?php _e('Date', 'newsletter') ?></th>
|
95 |
-
<th><?php _e('Tracking', 'newsletter') ?></th>
|
96 |
-
<th> </th>
|
97 |
-
<th> </th>
|
98 |
-
<th> </th>
|
99 |
-
<th> </th>
|
100 |
-
</tr>
|
101 |
-
</thead>
|
102 |
-
|
103 |
-
<tbody>
|
104 |
-
<?php foreach ($emails as &$email) {
|
105 |
-
$email_options = unserialize($email->options);
|
106 |
-
?>
|
107 |
-
<tr>
|
108 |
-
<td><input type="checkbox" name="ids[]" value="<?php echo $email->id; ?>"/></td>
|
109 |
-
<td><?php echo $email->id; ?></td>
|
110 |
-
<td><?php
|
111 |
-
if ($email->subject)
|
112 |
-
echo htmlspecialchars($email->subject);
|
113 |
-
else
|
114 |
-
echo "Newsletter #" . $email->id;
|
115 |
-
?></td>
|
116 |
-
|
117 |
-
<td>
|
118 |
-
<?php
|
119 |
-
if ($email->status == 'sending') {
|
120 |
-
if ($email->send_on > time()) {
|
121 |
-
_e('Scheduled', 'newsletter');
|
122 |
-
} else {
|
123 |
-
_e('Sending', 'newsletter');
|
124 |
-
}
|
125 |
-
} else {
|
126 |
-
echo $email->status;
|
127 |
-
}
|
128 |
-
?>
|
129 |
-
</td>
|
130 |
-
<td><?php if ($email->status == 'sent' || $email->status == 'sending') echo $email->sent . ' ' . __('of', 'newsletter') . ' ' . $email->total; ?></td>
|
131 |
-
<td><?php if ($email->status == 'sent' || $email->status == 'sending') echo $module->format_date($email->send_on); ?></td>
|
132 |
-
<td><?php echo $email->track == 1 ? __('Yes', 'newsletter') : __('Yes', 'newsletter'); ?></td>
|
133 |
-
<td><a class="button" href="<?php echo $module->get_admin_page_url(is_array($email_options) && array_key_exists('composer', $email_options) && $email_options['composer'] ? 'composer' : 'edit'); ?>&id=<?php echo $email->id; ?>"><i class="fa fa-pencil"></i> <?php _e('Edit', 'newsletter') ?></a></td>
|
134 |
-
<td>
|
135 |
-
<a class="button" href="<?php echo NewsletterStatistics::instance()->get_statistics_url($email->id); ?>"><i class="fa fa-bar-chart"></i> <?php _e('Statistics', 'newsletter') ?></a>
|
136 |
-
</td>
|
137 |
-
<td><?php $controls->button_copy($email->id); ?></td>
|
138 |
-
<td><?php $controls->button_delete($email->id); ?></td>
|
139 |
-
</tr>
|
140 |
-
<?php } ?>
|
141 |
-
</tbody>
|
142 |
-
<tfoot>
|
143 |
-
<tr>
|
144 |
-
<td colspan="11">
|
145 |
-
(*) <?php _e('Expected total at the end of the delivery may differ, due to subscriptions/unsubscriptions occured meanwhile.', 'newsletter') ?>
|
146 |
-
</td>
|
147 |
-
</tr>
|
148 |
-
</tfoot>
|
149 |
-
</table>
|
150 |
-
</form>
|
151 |
-
</div>
|
152 |
-
|
153 |
-
<?php include NEWSLETTER_DIR . '/tnp-footer.php'; ?>
|
154 |
-
|
155 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/languages/en_US.php
DELETED
@@ -1,7 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
// This file is used only on first installation!
|
4 |
-
|
5 |
-
$options = array(
|
6 |
-
'theme'=>'default'
|
7 |
-
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/languages/en_US.po
DELETED
@@ -1,172 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Content-Type: text/plain; charset=utf-8\n"
|
4 |
-
"Content-Transfer-Encoding: 8bit\n"
|
5 |
-
|
6 |
-
#. Text in echo
|
7 |
-
#: emails/new.php:132
|
8 |
-
msgid "Back to the themes"
|
9 |
-
msgstr ""
|
10 |
-
|
11 |
-
#. Text in function
|
12 |
-
#: emails/index.php:131
|
13 |
-
msgid "Copy"
|
14 |
-
msgstr ""
|
15 |
-
|
16 |
-
#. Text in echo
|
17 |
-
#: emails/new.php:131
|
18 |
-
msgid "Create a newsletter"
|
19 |
-
msgstr ""
|
20 |
-
|
21 |
-
#. Text in echo
|
22 |
-
#: emails/index.php:94
|
23 |
-
msgid "Date"
|
24 |
-
msgstr ""
|
25 |
-
|
26 |
-
#. Text in function
|
27 |
-
#: emails/index.php:132
|
28 |
-
msgid "Delete"
|
29 |
-
msgstr ""
|
30 |
-
|
31 |
-
#. Text in function
|
32 |
-
#: emails/index.php:82
|
33 |
-
msgid "Delete selected newsletters"
|
34 |
-
msgstr ""
|
35 |
-
|
36 |
-
#. Text in function
|
37 |
-
#: emails/index.php:1
|
38 |
-
msgid "Delivery engine triggered."
|
39 |
-
msgstr ""
|
40 |
-
|
41 |
-
#. Text in echo
|
42 |
-
#: emails/edit.php:302
|
43 |
-
msgid "Gender"
|
44 |
-
msgstr ""
|
45 |
-
|
46 |
-
#. Text in function
|
47 |
-
#: emails/new.php:1
|
48 |
-
#: emails/new.php:43
|
49 |
-
msgid "Here the email subject"
|
50 |
-
msgstr ""
|
51 |
-
|
52 |
-
#. Text in echo
|
53 |
-
#: emails/edit.php:259
|
54 |
-
msgid "Message"
|
55 |
-
msgstr ""
|
56 |
-
|
57 |
-
#. Text in echo
|
58 |
-
#: emails/edit.php:260
|
59 |
-
msgid "Message (textual)"
|
60 |
-
msgstr ""
|
61 |
-
|
62 |
-
#. Text in function
|
63 |
-
#: emails/index.php:1
|
64 |
-
msgid "Message deleted."
|
65 |
-
msgstr ""
|
66 |
-
|
67 |
-
#. Text in function
|
68 |
-
#: emails/index.php:1
|
69 |
-
msgid "Message duplicated."
|
70 |
-
msgstr ""
|
71 |
-
|
72 |
-
#. Text in echo
|
73 |
-
#: emails/index.php:81
|
74 |
-
msgid "New newsletter"
|
75 |
-
msgstr ""
|
76 |
-
|
77 |
-
#. Text in echo
|
78 |
-
#: emails/index.php:58
|
79 |
-
msgid "Newsletters"
|
80 |
-
msgstr ""
|
81 |
-
|
82 |
-
#. Text in function
|
83 |
-
#: emails/index.php:82
|
84 |
-
#: emails/index.php:131
|
85 |
-
#: emails/index.php:132
|
86 |
-
msgid "Proceed?"
|
87 |
-
msgstr ""
|
88 |
-
|
89 |
-
#. Text in echo
|
90 |
-
#: emails/index.php:93
|
91 |
-
msgid "Progress"
|
92 |
-
msgstr ""
|
93 |
-
|
94 |
-
#. Text in function
|
95 |
-
#: emails/edit.php:1
|
96 |
-
msgid "Read more about test subscribers"
|
97 |
-
msgstr ""
|
98 |
-
|
99 |
-
#. Text in echo
|
100 |
-
#: emails/new.php:146
|
101 |
-
msgid "Refresh the preview"
|
102 |
-
msgstr ""
|
103 |
-
|
104 |
-
#. Text in echo
|
105 |
-
#: emails/index.php:111
|
106 |
-
msgid "Scheduled"
|
107 |
-
msgstr ""
|
108 |
-
|
109 |
-
#. Text in echo
|
110 |
-
#: emails/theme.php:54
|
111 |
-
msgid "Select a theme"
|
112 |
-
msgstr ""
|
113 |
-
|
114 |
-
#. Text in echo
|
115 |
-
#: emails/index.php:111
|
116 |
-
msgid "Sending"
|
117 |
-
msgstr ""
|
118 |
-
|
119 |
-
#. Text in echo
|
120 |
-
#: emails/index.php:92
|
121 |
-
msgid "Status"
|
122 |
-
msgstr ""
|
123 |
-
|
124 |
-
#. Text in echo
|
125 |
-
#: emails/index.php:91
|
126 |
-
msgid "Subject"
|
127 |
-
msgstr ""
|
128 |
-
|
129 |
-
#. Text in echo
|
130 |
-
#: emails/edit.php:311
|
131 |
-
msgid "Subscriber preferences"
|
132 |
-
msgstr ""
|
133 |
-
|
134 |
-
#. Text in function
|
135 |
-
#: emails/edit.php:1
|
136 |
-
msgid "Test newsletter sent to:"
|
137 |
-
msgstr ""
|
138 |
-
|
139 |
-
#. Text in echo
|
140 |
-
#: emails/index.php:137
|
141 |
-
msgid "The expected total can change at the delivery end due to subscriptions/unsubscriptions in the meanwhile."
|
142 |
-
msgstr ""
|
143 |
-
|
144 |
-
#. Text in echo
|
145 |
-
#: emails/new.php:147
|
146 |
-
msgid "Theme options are saved for next time you\\'ll use this theme."
|
147 |
-
msgstr ""
|
148 |
-
|
149 |
-
#. Text in function
|
150 |
-
#: emails/edit.php:1
|
151 |
-
msgid "There are no test subscribers."
|
152 |
-
msgstr ""
|
153 |
-
|
154 |
-
#. Text in echo
|
155 |
-
#: emails/index.php:95
|
156 |
-
msgid "Tracking"
|
157 |
-
msgstr ""
|
158 |
-
|
159 |
-
#. Text in function
|
160 |
-
#: emails/index.php:84
|
161 |
-
msgid "Trigger the delivery engine"
|
162 |
-
msgstr ""
|
163 |
-
|
164 |
-
#. Text in function
|
165 |
-
#: emails/index.php:126
|
166 |
-
msgid "Yes"
|
167 |
-
msgstr ""
|
168 |
-
|
169 |
-
#. Text in function
|
170 |
-
#: emails/index.php:124
|
171 |
-
msgid "of"
|
172 |
-
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/languages/it_IT.mo
DELETED
Binary file
|
trunk/emails/languages/it_IT.po
DELETED
@@ -1,180 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
4 |
-
"Content-Transfer-Encoding: 8bit\n"
|
5 |
-
"Project-Id-Version: \n"
|
6 |
-
"POT-Creation-Date: \n"
|
7 |
-
"PO-Revision-Date: \n"
|
8 |
-
"Last-Translator: \n"
|
9 |
-
"Language-Team: \n"
|
10 |
-
"MIME-Version: 1.0\n"
|
11 |
-
"X-Generator: Poedit 1.7.3\n"
|
12 |
-
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
13 |
-
"Language: it_IT\n"
|
14 |
-
|
15 |
-
#. Text in echo
|
16 |
-
#: emails/new.php:132
|
17 |
-
msgid "Back to the themes"
|
18 |
-
msgstr "Torna ai temi"
|
19 |
-
|
20 |
-
#. Text in function
|
21 |
-
#: emails/index.php:131
|
22 |
-
msgid "Copy"
|
23 |
-
msgstr "Copia"
|
24 |
-
|
25 |
-
#. Text in echo
|
26 |
-
#: emails/new.php:131
|
27 |
-
msgid "Create a newsletter"
|
28 |
-
msgstr "Crea una newsletter"
|
29 |
-
|
30 |
-
#. Text in echo
|
31 |
-
#: emails/index.php:94
|
32 |
-
msgid "Date"
|
33 |
-
msgstr "Data"
|
34 |
-
|
35 |
-
#. Text in function
|
36 |
-
#: emails/index.php:132
|
37 |
-
msgid "Delete"
|
38 |
-
msgstr "Elimina"
|
39 |
-
|
40 |
-
#. Text in function
|
41 |
-
#: emails/index.php:82
|
42 |
-
msgid "Delete selected newsletters"
|
43 |
-
msgstr "Cancella le newsletter selezionate"
|
44 |
-
|
45 |
-
#. Text in function
|
46 |
-
#: emails/index.php:1
|
47 |
-
msgid "Delivery engine triggered."
|
48 |
-
msgstr ""
|
49 |
-
|
50 |
-
#. Text in echo
|
51 |
-
#: emails/edit.php:302
|
52 |
-
msgid "Gender"
|
53 |
-
msgstr "Genere"
|
54 |
-
|
55 |
-
#. Text in function
|
56 |
-
#: emails/new.php:1 emails/new.php:43
|
57 |
-
msgid "Here the email subject"
|
58 |
-
msgstr "Qui l'oggetto dell'email"
|
59 |
-
|
60 |
-
#. Text in echo
|
61 |
-
#: emails/edit.php:259
|
62 |
-
msgid "Message"
|
63 |
-
msgstr "Messaggio"
|
64 |
-
|
65 |
-
#. Text in echo
|
66 |
-
#: emails/edit.php:260
|
67 |
-
msgid "Message (textual)"
|
68 |
-
msgstr "Messaggio (testo)"
|
69 |
-
|
70 |
-
#. Text in function
|
71 |
-
#: emails/index.php:1
|
72 |
-
msgid "Message deleted."
|
73 |
-
msgstr "Messaggio cancellato."
|
74 |
-
|
75 |
-
#. Text in function
|
76 |
-
#: emails/index.php:1
|
77 |
-
msgid "Message duplicated."
|
78 |
-
msgstr "Messaggio duplicato."
|
79 |
-
|
80 |
-
#. Text in echo
|
81 |
-
#: emails/index.php:81
|
82 |
-
msgid "New newsletter"
|
83 |
-
msgstr "Nuova newsletter"
|
84 |
-
|
85 |
-
#. Text in echo
|
86 |
-
#: emails/index.php:58
|
87 |
-
msgid "Newsletters"
|
88 |
-
msgstr ""
|
89 |
-
|
90 |
-
#. Text in function
|
91 |
-
#: emails/index.php:82 emails/index.php:131 emails/index.php:132
|
92 |
-
msgid "Proceed?"
|
93 |
-
msgstr ""
|
94 |
-
|
95 |
-
#. Text in echo
|
96 |
-
#: emails/index.php:93
|
97 |
-
msgid "Progress"
|
98 |
-
msgstr ""
|
99 |
-
|
100 |
-
#. Text in function
|
101 |
-
#: emails/edit.php:1
|
102 |
-
msgid "Read more about test subscribers"
|
103 |
-
msgstr ""
|
104 |
-
|
105 |
-
#. Text in echo
|
106 |
-
#: emails/new.php:146
|
107 |
-
msgid "Refresh the preview"
|
108 |
-
msgstr ""
|
109 |
-
|
110 |
-
#. Text in echo
|
111 |
-
#: emails/index.php:111
|
112 |
-
msgid "Scheduled"
|
113 |
-
msgstr ""
|
114 |
-
|
115 |
-
#. Text in echo
|
116 |
-
#: emails/theme.php:54
|
117 |
-
msgid "Select a theme"
|
118 |
-
msgstr ""
|
119 |
-
|
120 |
-
#. Text in echo
|
121 |
-
#: emails/index.php:111
|
122 |
-
msgid "Sending"
|
123 |
-
msgstr ""
|
124 |
-
|
125 |
-
#. Text in echo
|
126 |
-
#: emails/index.php:92
|
127 |
-
msgid "Status"
|
128 |
-
msgstr ""
|
129 |
-
|
130 |
-
#. Text in echo
|
131 |
-
#: emails/index.php:91
|
132 |
-
msgid "Subject"
|
133 |
-
msgstr ""
|
134 |
-
|
135 |
-
#. Text in echo
|
136 |
-
#: emails/edit.php:311
|
137 |
-
msgid "Subscriber preferences"
|
138 |
-
msgstr ""
|
139 |
-
|
140 |
-
#. Text in function
|
141 |
-
#: emails/edit.php:1
|
142 |
-
msgid "Test newsletter sent to:"
|
143 |
-
msgstr ""
|
144 |
-
|
145 |
-
#. Text in echo
|
146 |
-
#: emails/index.php:137
|
147 |
-
msgid ""
|
148 |
-
"The expected total can change at the delivery end due to subscriptions/"
|
149 |
-
"unsubscriptions in the meanwhile."
|
150 |
-
msgstr ""
|
151 |
-
|
152 |
-
#. Text in echo
|
153 |
-
#: emails/new.php:147
|
154 |
-
msgid "Theme options are saved for next time you\\'ll use this theme."
|
155 |
-
msgstr ""
|
156 |
-
|
157 |
-
#. Text in function
|
158 |
-
#: emails/edit.php:1
|
159 |
-
msgid "There are no test subscribers."
|
160 |
-
msgstr ""
|
161 |
-
|
162 |
-
#. Text in echo
|
163 |
-
#: emails/index.php:95
|
164 |
-
msgid "Tracking"
|
165 |
-
msgstr ""
|
166 |
-
|
167 |
-
#. Text in function
|
168 |
-
#: emails/index.php:84
|
169 |
-
msgid "Trigger the delivery engine"
|
170 |
-
msgstr ""
|
171 |
-
|
172 |
-
#. Text in function
|
173 |
-
#: emails/index.php:126
|
174 |
-
msgid "Yes"
|
175 |
-
msgstr ""
|
176 |
-
|
177 |
-
#. Text in function
|
178 |
-
#: emails/index.php:124
|
179 |
-
msgid "of"
|
180 |
-
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/new.php
DELETED
@@ -1,172 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
3 |
-
$controls = new NewsletterControls();
|
4 |
-
$module = NewsletterEmails::instance();
|
5 |
-
|
6 |
-
if ($controls->is_action('theme')) {
|
7 |
-
$controls->merge($module->themes->get_options($controls->data['theme']));
|
8 |
-
$module->save_options($controls->data);
|
9 |
-
|
10 |
-
// If this theme has no intermediate options...
|
11 |
-
if (!file_exists($module->get_current_theme_file_path('theme-options.php'))) {
|
12 |
-
$email = array();
|
13 |
-
$email['status'] = 'new';
|
14 |
-
$email['subject'] = __('Here the email subject', 'newsletter');
|
15 |
-
$email['track'] = 1;
|
16 |
-
|
17 |
-
$theme_options = $module->get_current_theme_options();
|
18 |
-
$theme_url = $module->get_current_theme_url();
|
19 |
-
$theme_subject = '';
|
20 |
-
|
21 |
-
ob_start();
|
22 |
-
include $module->get_current_theme_file_path('theme.php');
|
23 |
-
$email['message'] = ob_get_clean();
|
24 |
-
|
25 |
-
if (!empty($theme_subject)) {
|
26 |
-
$email['subject'] = $theme_subject;
|
27 |
-
}
|
28 |
-
|
29 |
-
ob_start();
|
30 |
-
include $module->get_current_theme_file_path('theme-text.php');
|
31 |
-
$email['message_text'] = ob_get_clean();
|
32 |
-
|
33 |
-
$email['type'] = 'message';
|
34 |
-
$email['send_on'] = time();
|
35 |
-
$email = Newsletter::instance()->save_email($email);
|
36 |
-
?>
|
37 |
-
<script>
|
38 |
-
location.href = "<?php echo $module->get_admin_page_url('edit'); ?>&id=<?php echo $email->id; ?>";
|
39 |
-
</script>
|
40 |
-
<div class="wrap">
|
41 |
-
<p>If you are not automatically redirected to the composer, <a href="<?php echo $module->get_admin_page_url('edit'); ?>&id=<?php echo $email->id; ?>">click here</a>.</p>
|
42 |
-
</div>
|
43 |
-
<?php
|
44 |
-
return;
|
45 |
-
}
|
46 |
-
}
|
47 |
-
|
48 |
-
if ($controls->is_action('save')) {
|
49 |
-
$module->save_options($controls->data);
|
50 |
-
//$controls->messages = 'Saved.';
|
51 |
-
}
|
52 |
-
|
53 |
-
if ($controls->is_action('create')) {
|
54 |
-
$module->save_options($controls->data);
|
55 |
-
|
56 |
-
$email = array();
|
57 |
-
$email['status'] = 'new';
|
58 |
-
$email['subject'] = __('Here the email subject', 'newsletter');
|
59 |
-
$email['track'] = 1;
|
60 |
-
|
61 |
-
$theme_options = $module->get_current_theme_options();
|
62 |
-
|
63 |
-
$theme_url = $module->get_current_theme_url();
|
64 |
-
$theme_subject = '';
|
65 |
-
|
66 |
-
ob_start();
|
67 |
-
include $module->get_current_theme_file_path('theme.php');
|
68 |
-
$email['message'] = ob_get_clean();
|
69 |
-
|
70 |
-
if (!empty($theme_subject)) {
|
71 |
-
$email['subject'] = $theme_subject;
|
72 |
-
}
|
73 |
-
|
74 |
-
ob_start();
|
75 |
-
include $module->get_current_theme_file_path('theme-text.php');
|
76 |
-
$email['message_text'] = ob_get_clean();
|
77 |
-
|
78 |
-
$email['type'] = 'message';
|
79 |
-
$email['send_on'] = time();
|
80 |
-
$email = Newsletter::instance()->save_email($email);
|
81 |
-
?>
|
82 |
-
<script>
|
83 |
-
location.href = "<?php echo $module->get_admin_page_url('edit'); ?>&id=<?php echo $email->id; ?>";
|
84 |
-
</script>
|
85 |
-
<div class="wrap">
|
86 |
-
<p><a href="<?php echo $module->get_admin_page_url('edit'); ?>&id=<?php echo $email->id; ?>">click here to proceed</a>.</p>
|
87 |
-
</div>
|
88 |
-
<?php
|
89 |
-
return;
|
90 |
-
}
|
91 |
-
|
92 |
-
if ($controls->data == null) {
|
93 |
-
$controls->data = $module->get_options();
|
94 |
-
}
|
95 |
-
|
96 |
-
function newsletter_emails_update_options($options) {
|
97 |
-
add_option('newsletter_emails', '', null, 'no');
|
98 |
-
update_option('newsletter_emails', $options);
|
99 |
-
}
|
100 |
-
|
101 |
-
function newsletter_emails_update_theme_options($theme, $options) {
|
102 |
-
$x = strrpos($theme, '/');
|
103 |
-
if ($x !== false) {
|
104 |
-
$theme = substr($theme, $x + 1);
|
105 |
-
}
|
106 |
-
add_option('newsletter_emails_' . $theme, '', null, 'no');
|
107 |
-
update_option('newsletter_emails_' . $theme, $options);
|
108 |
-
}
|
109 |
-
|
110 |
-
function newsletter_emails_get_options() {
|
111 |
-
$options = get_option('newsletter_emails', array());
|
112 |
-
return $options;
|
113 |
-
}
|
114 |
-
|
115 |
-
function newsletter_emails_get_theme_options($theme) {
|
116 |
-
$x = strrpos($theme, '/');
|
117 |
-
if ($x !== false) {
|
118 |
-
$theme = substr($theme, $x + 1);
|
119 |
-
}
|
120 |
-
$options = get_option('newsletter_emails_' . $theme, array());
|
121 |
-
return $options;
|
122 |
-
}
|
123 |
-
?>
|
124 |
-
|
125 |
-
<div class="wrap" id="tnp-wrap">
|
126 |
-
|
127 |
-
<?php $help_url = 'http://www.thenewsletterplugin.com/plugins/newsletter/newsletters-module'; ?>
|
128 |
-
<?php include NEWSLETTER_DIR . '/tnp-header.php'; ?>
|
129 |
-
|
130 |
-
<div id="tnp-heading">
|
131 |
-
|
132 |
-
<h2><?php _e('Create a newsletter', 'newsletter') ?>
|
133 |
-
<a class="tnp-btn-h1" href="<?php echo NewsletterEmails::instance()->get_admin_page_url('theme'); ?>"><?php _e('Back to newsletter themes', 'newsletter') ?></a>
|
134 |
-
</h2>
|
135 |
-
<br>
|
136 |
-
<p>Theme options are saved for next time you'll use this theme.</p>
|
137 |
-
|
138 |
-
</div>
|
139 |
-
|
140 |
-
<div id="tnp-body" class="tnp-body-lite">
|
141 |
-
|
142 |
-
<form method="post" action="<?php echo $module->get_admin_page_url('new'); ?>">
|
143 |
-
<?php $controls->init(); ?>
|
144 |
-
<?php $controls->hidden('theme'); ?>
|
145 |
-
|
146 |
-
<table style="width: 100%; border-collapse: collapse">
|
147 |
-
<tr>
|
148 |
-
<td style="text-align: left; vertical-align: top; border-bottom: 1px solid #ddd; padding-bottom: 10px">
|
149 |
-
<div style="float: right; margin-left: 15px;"><?php $controls->button_primary('save', __('Refresh the preview', 'newsletter')); ?></div>
|
150 |
-
|
151 |
-
</td>
|
152 |
-
<td style="text-align: left; vertical-align: top; border-bottom: 1px solid #ddd; padding-bottom: 10px">
|
153 |
-
<div style="float: right"><?php $controls->button_primary('create', 'Proceed to edit »', 'this.form.action=\'' . plugins_url('newsletter') . '/emails/create.php\';this.form.submit()'); ?></div>
|
154 |
-
<img style="position: relative; left: 5px; top: 10px;"src="<?php echo plugins_url('newsletter') ?>/images/arrow.png" height="35">
|
155 |
-
</td>
|
156 |
-
</tr>
|
157 |
-
<tr>
|
158 |
-
<td style="width: 600px; vertical-align: top; padding-top: 10px">
|
159 |
-
<?php @include $module->get_current_theme_file_path('theme-options.php'); ?>
|
160 |
-
</td>
|
161 |
-
<td style="vertical-align: top; padding-top: 15px; padding-left: 15px">
|
162 |
-
<iframe src="<?php echo wp_nonce_url(plugins_url('newsletter') . '/emails/preview.php?' . time(), 'view'); ?>" height="700" style="width: 100%; border: 1px solid #ccc"></iframe>
|
163 |
-
</td>
|
164 |
-
</tr>
|
165 |
-
</table>
|
166 |
-
|
167 |
-
</form>
|
168 |
-
</div>
|
169 |
-
|
170 |
-
<?php include NEWSLETTER_DIR . '/tnp-footer.php'; ?>
|
171 |
-
|
172 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/preview-text.php
DELETED
@@ -1,15 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
header('Content-Type: text/plain;charset=UTF-8');
|
3 |
-
|
4 |
-
include '../../../../wp-load.php';
|
5 |
-
|
6 |
-
if (!check_admin_referer('view'))
|
7 |
-
die('Only the administrator can view the preview');
|
8 |
-
|
9 |
-
// Used by theme code
|
10 |
-
$theme_options = NewsletterEmails::instance()->get_current_theme_options();
|
11 |
-
|
12 |
-
$file = NewsletterEmails::instance()->get_current_theme_file_path('theme-text.php');
|
13 |
-
if (is_file($file)) {
|
14 |
-
include(NewsletterEmails::instance()->get_current_theme_file_path('theme-text.php'));
|
15 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/preview.php
DELETED
@@ -1,13 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
include '../../../../wp-load.php';
|
4 |
-
|
5 |
-
if (!check_admin_referer('view'))
|
6 |
-
die('Only the administrator can view the preview');
|
7 |
-
|
8 |
-
// Used by theme code
|
9 |
-
$theme_options = NewsletterEmails::instance()->get_current_theme_options();
|
10 |
-
$theme_url = NewsletterEmails::instance()->get_current_theme_url();
|
11 |
-
header('Content-Type: text/html;charset=UTF-8');
|
12 |
-
|
13 |
-
include(NewsletterEmails::instance()->get_current_theme_file_path('theme.php'));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/theme.php
DELETED
@@ -1,89 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
|
3 |
-
$controls = new NewsletterControls();
|
4 |
-
$module = NewsletterEmails::instance();
|
5 |
-
|
6 |
-
|
7 |
-
if ($controls->is_action('theme')) {
|
8 |
-
$controls->merge($module->themes->get_options($controls->data['theme']));
|
9 |
-
$module->save_options($controls->data);
|
10 |
-
}
|
11 |
-
|
12 |
-
|
13 |
-
if ($controls->data == null) {
|
14 |
-
$controls->data = $module->get_options();
|
15 |
-
}
|
16 |
-
|
17 |
-
function newsletter_emails_update_options($options) {
|
18 |
-
add_option('newsletter_emails', '', null, 'no');
|
19 |
-
update_option('newsletter_emails', $options);
|
20 |
-
}
|
21 |
-
|
22 |
-
function newsletter_emails_update_theme_options($theme, $options) {
|
23 |
-
$x = strrpos($theme, '/');
|
24 |
-
if ($x !== false) {
|
25 |
-
$theme = substr($theme, $x + 1);
|
26 |
-
}
|
27 |
-
add_option('newsletter_emails_' . $theme, '', null, 'no');
|
28 |
-
update_option('newsletter_emails_' . $theme, $options);
|
29 |
-
}
|
30 |
-
|
31 |
-
function newsletter_emails_get_options() {
|
32 |
-
$options = get_option('newsletter_emails', array());
|
33 |
-
return $options;
|
34 |
-
}
|
35 |
-
|
36 |
-
function newsletter_emails_get_theme_options($theme) {
|
37 |
-
$x = strrpos($theme, '/');
|
38 |
-
if ($x !== false) {
|
39 |
-
$theme = substr($theme, $x + 1);
|
40 |
-
}
|
41 |
-
$options = get_option('newsletter_emails_' . $theme, array());
|
42 |
-
return $options;
|
43 |
-
}
|
44 |
-
|
45 |
-
$themes = $module->themes->get_all_with_data();
|
46 |
-
?>
|
47 |
-
|
48 |
-
<div class="wrap" id="tnp-wrap">
|
49 |
-
|
50 |
-
<?php include NEWSLETTER_DIR . '/tnp-header.php'; ?>
|
51 |
-
|
52 |
-
<div id="tnp-heading">
|
53 |
-
|
54 |
-
<h2><?php _e('Select a theme', 'newsletter') ?>
|
55 |
-
<a class="tnp-btn-h1" href="http://www.thenewsletterplugin.com/plugins/newsletter/newsletter-themes" target="_blank">Custom themes</a>
|
56 |
-
</h2>
|
57 |
-
|
58 |
-
</div>
|
59 |
-
<div id="tnp-body" class="tnp-darkbg">
|
60 |
-
|
61 |
-
<form method="post" id="newsletter-form" action="<?php echo $module->get_admin_page_url('new'); ?>">
|
62 |
-
<?php $controls->init(); ?>
|
63 |
-
<?php $controls->hidden('theme'); ?>
|
64 |
-
|
65 |
-
<div class="tnp-theme-preview">
|
66 |
-
<p><?php echo _e('Responsive Drag & Drop Composer', 'newsletter') ?></p>
|
67 |
-
<a href="<?php echo $module->get_admin_page_url('composer'); ?>" style="margin-right: 20px; margin-bottom: 20px">
|
68 |
-
<img src="<?php echo plugins_url('newsletter') . '/emails/themes/composer.gif' ?>" width="420" height="200">
|
69 |
-
</a>
|
70 |
-
</div>
|
71 |
-
|
72 |
-
<?php foreach ($themes as $key => &$data) { ?>
|
73 |
-
<div class="tnp-theme-preview">
|
74 |
-
<p><?php echo $data['name']; ?></p>
|
75 |
-
<a href="#" onclick="var f = document.getElementById('newsletter-form');
|
76 |
-
f.act.value = 'theme';
|
77 |
-
f.elements['options[theme]'].value = '<?php echo $data['id']; ?>';
|
78 |
-
f.submit();
|
79 |
-
return false;" style="margin-right: 20px; margin-bottom: 20px">
|
80 |
-
<img src="<?php echo $data['screenshot'] ?>" width="200" height="200">
|
81 |
-
</a>
|
82 |
-
</div>
|
83 |
-
<?php } ?>
|
84 |
-
</form>
|
85 |
-
</div>
|
86 |
-
|
87 |
-
<?php include NEWSLETTER_DIR . '/tnp-footer.php'; ?>
|
88 |
-
|
89 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/blank/screenshot.png
DELETED
Binary file
|
trunk/emails/themes/blank/theme-options.php
DELETED
@@ -1,6 +0,0 @@
|
|
1 |
-
<table class="form-table">
|
2 |
-
<tr>
|
3 |
-
<th>Disable social links</th>
|
4 |
-
<td><?php $controls->checkbox('theme_social_disable', ''); ?></td>
|
5 |
-
</tr>
|
6 |
-
</table>
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/blank/theme-text.php
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
This email requires a modern e-mail reader but you can view the email online here:
|
2 |
-
|
3 |
-
{email_url}.
|
4 |
-
|
5 |
-
Thank you, <?php echo wp_specialchars_decode(get_option('blogname'), ENT_QUOTES); ?>
|
6 |
-
|
7 |
-
To change your subscription follow:
|
8 |
-
{profile_url}.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/blank/theme.php
DELETED
@@ -1,43 +0,0 @@
|
|
1 |
-
<html>
|
2 |
-
<head>
|
3 |
-
<style>
|
4 |
-
body {
|
5 |
-
font-family: sans-serif;
|
6 |
-
font-size: 12px;
|
7 |
-
background-color: #ffffff;
|
8 |
-
}
|
9 |
-
</style>
|
10 |
-
</head>
|
11 |
-
<body bgcolor="#ffffff">
|
12 |
-
<h1>Your awesome title</h1>
|
13 |
-
|
14 |
-
<p>
|
15 |
-
Hi {name} (but you should remove that if you're not collecting subscriber names),
|
16 |
-
</p>
|
17 |
-
|
18 |
-
<p>
|
19 |
-
here the forewords of your shiny new newsletter. Most of the times a simple layout is the best.
|
20 |
-
</p>
|
21 |
-
<h2>There is more for you!</h2>
|
22 |
-
|
23 |
-
<p>Still not secure to sign up for our premium service? Even with a standard service plan you'll receive our t-shirt!</p>
|
24 |
-
|
25 |
-
<p>
|
26 |
-
Goodbye!
|
27 |
-
</p>
|
28 |
-
|
29 |
-
<?php include WP_PLUGIN_DIR . '/newsletter/emails/themes/default/social_main.php'; ?>
|
30 |
-
|
31 |
-
<hr>
|
32 |
-
<p>
|
33 |
-
To unsubscribe <a href="{unsubscription_url}">click here</a>, to edit your subscription
|
34 |
-
<a href="{profile_url}">click here</a>.
|
35 |
-
</p>
|
36 |
-
<p>
|
37 |
-
<?php echo $theme_options['main_footer_contact'] ?>
|
38 |
-
</p>
|
39 |
-
<p>
|
40 |
-
<?php echo $theme_options['main_footer_legal'] ?>
|
41 |
-
</p>
|
42 |
-
</body>
|
43 |
-
</html>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/composer.gif
DELETED
Binary file
|
trunk/emails/themes/cta-2015/images/facebook.png
DELETED
Binary file
|
trunk/emails/themes/cta-2015/images/flickr.png
DELETED
Binary file
|
trunk/emails/themes/cta-2015/images/googleplus.png
DELETED
Binary file
|
trunk/emails/themes/cta-2015/images/instagram.png
DELETED
Binary file
|
trunk/emails/themes/cta-2015/images/linkedin.png
DELETED
Binary file
|
trunk/emails/themes/cta-2015/images/pinterest.png
DELETED
Binary file
|
trunk/emails/themes/cta-2015/images/twitter.png
DELETED
Binary file
|
trunk/emails/themes/cta-2015/images/vimeo.png
DELETED
Binary file
|
trunk/emails/themes/cta-2015/images/youtube.png
DELETED
Binary file
|
trunk/emails/themes/cta-2015/screenshot.png
DELETED
Binary file
|
trunk/emails/themes/cta-2015/theme-options.php
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
<table class="form-table">
|
2 |
-
<tr>
|
3 |
-
<th>Main color</th>
|
4 |
-
<td>
|
5 |
-
<?php $controls->color('theme_color'); ?> (eg. #87aa14)
|
6 |
-
</td>
|
7 |
-
</tr>
|
8 |
-
</table>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/cta-2015/theme.php
DELETED
@@ -1,160 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Name: CTA 2015
|
4 |
-
* Type: standard
|
5 |
-
* Description: Single call to action marketing template
|
6 |
-
*/
|
7 |
-
|
8 |
-
$color = '#87aa14';
|
9 |
-
if (!empty($theme_options['theme_color'])) {
|
10 |
-
$color = $theme_options['theme_color'];
|
11 |
-
}
|
12 |
-
|
13 |
-
$header = '';
|
14 |
-
$header_color = '#000000';
|
15 |
-
if (!empty($theme_options['main_header_logo']['url'])) {
|
16 |
-
$header = '<img src="' . $theme_options['main_header_logo']['url'] . '" style="max-width: 500px">';
|
17 |
-
} else {
|
18 |
-
if (!empty($theme_options['main_header_title'])) {
|
19 |
-
$header = '<h2 style="color: ' . $header_color . '">' . $theme_options['main_header_title'] . '</h2>';
|
20 |
-
} else {
|
21 |
-
$header = '<h2 style="color: ' . $header_color . '">' . get_option('blogname') . '</h2>';
|
22 |
-
}
|
23 |
-
if (!empty($theme_options['main_header_sub'])) {
|
24 |
-
$header .= '<p style="color: #666666">' . $theme_options['main_header_sub'] . '</p>';
|
25 |
-
}
|
26 |
-
}
|
27 |
-
$font_family = 'Verdana';
|
28 |
-
//$cta_bgcolor = '#008800';
|
29 |
-
//if (!empty($theme_options['theme_cta_bgcolor'])) {
|
30 |
-
// $cta_bgcolor = $theme_options['theme_cta_bgcolor'];
|
31 |
-
//}
|
32 |
-
$social_icon_url = plugins_url('newsletter') . '/emails/themes/cta-2015/images';
|
33 |
-
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
34 |
-
<html>
|
35 |
-
<head>
|
36 |
-
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
37 |
-
<title></title>
|
38 |
-
</head>
|
39 |
-
<body bgcolor="#ffffff">
|
40 |
-
<table width="500" cellpadding="0" cellspacing="0" align="center" bgcolor="#ffffff" border="0">
|
41 |
-
<tr>
|
42 |
-
<td align="center" style="font-family: Verdana">
|
43 |
-
<table cellpadding="10" cellspacing="0" border="0" width="100%">
|
44 |
-
<tr>
|
45 |
-
<td style="font-size: 12px" align="center">
|
46 |
-
<a href="{email_url}" style="text-decoration: none">View online</a>
|
47 |
-
</td>
|
48 |
-
</tr>
|
49 |
-
</table>
|
50 |
-
</td>
|
51 |
-
</tr>
|
52 |
-
|
53 |
-
<!-- header -->
|
54 |
-
<tr>
|
55 |
-
<td align="center" style="font-family: Verdana">
|
56 |
-
<?php echo $header; ?>
|
57 |
-
</td>
|
58 |
-
</tr>
|
59 |
-
|
60 |
-
<!-- body -->
|
61 |
-
<tr>
|
62 |
-
<td style="font-family: Verdana">
|
63 |
-
|
64 |
-
<!-- main text -->
|
65 |
-
<table cellpadding="15" cellspacing="0" align="center" border="0" width="100%">
|
66 |
-
<tr>
|
67 |
-
<td style="font-size: 15px" align="center">
|
68 |
-
<h1>Super catching title</h1>
|
69 |
-
<p>
|
70 |
-
Here you should introduce your incredible offer. Remeber the golden rule: write
|
71 |
-
something useful for your readers, not for yourself.
|
72 |
-
</p>
|
73 |
-
<p>
|
74 |
-
If a reader ask the question: what's here for me, the content is answering?
|
75 |
-
</p>
|
76 |
-
</td>
|
77 |
-
</tr>
|
78 |
-
</table>
|
79 |
-
|
80 |
-
<!-- cta -->
|
81 |
-
<table cellpadding="15" cellspacing="0" align="center" bgcolor="<?php echo $color ?>" border="0" style="border-radius: 5px">
|
82 |
-
<tr>
|
83 |
-
<td><a href="#" style="font-size: 15px; color: #ffffff; text-decoration: none">Call to action</a></td>
|
84 |
-
</tr>
|
85 |
-
</table>
|
86 |
-
|
87 |
-
<!-- spacer -->
|
88 |
-
<table cellpadding="0" cellspacing="0" align="center" bgcolor="#ffffff" border="0" width="100%">
|
89 |
-
<tr>
|
90 |
-
<td>
|
91 |
-
|
92 |
-
</td>
|
93 |
-
</tr>
|
94 |
-
</table>
|
95 |
-
|
96 |
-
<!-- social -->
|
97 |
-
<table cellpadding="5" align="center">
|
98 |
-
<tr>
|
99 |
-
<?php if (!empty($theme_options['main_facebook_url'])) { ?>
|
100 |
-
<td align="center" valign="top">
|
101 |
-
<a href="<?php echo $theme_options['main_facebook_url'] ?>"><img src="<?php echo $social_icon_url ?>/facebook.png" alt="Facebook"></a>
|
102 |
-
</td>
|
103 |
-
<?php } ?>
|
104 |
-
|
105 |
-
<?php if (!empty($theme_options['main_googleplus_url'])) { ?>
|
106 |
-
<td align="center" valign="top">
|
107 |
-
<a href="<?php echo $theme_options['main_googleplus_url'] ?>"><img src="<?php echo $social_icon_url ?>/googleplus.png"></a>
|
108 |
-
</td>
|
109 |
-
<?php } ?>
|
110 |
-
|
111 |
-
<?php if (!empty($theme_options['main_twitter_url'])) { ?>
|
112 |
-
<td align="center" valign="top">
|
113 |
-
<a href="<?php echo $theme_options['main_twitter_url'] ?>"><img src="<?php echo $social_icon_url ?>/twitter.png"></a>
|
114 |
-
</td>
|
115 |
-
<?php } ?>
|
116 |
-
|
117 |
-
<?php if (!empty($theme_options['main_linkedin_url'])) { ?>
|
118 |
-
<td align="center" valign="top">
|
119 |
-
<a href="<?php echo $theme_options['main_linkedin_url'] ?>"><img src="<?php echo $social_icon_url ?>/linkedin.png"></a>
|
120 |
-
</td>
|
121 |
-
<?php } ?>
|
122 |
-
|
123 |
-
<?php if (!empty($theme_options['main_youtube_url'])) { ?>
|
124 |
-
<td align="center" valign="top">
|
125 |
-
<a href="<?php echo $theme_options['main_youtube_url'] ?>"><img src="<?php echo $social_icon_url ?>/youtube.png"></a>
|
126 |
-
</td>
|
127 |
-
<?php } ?>
|
128 |
-
|
129 |
-
<?php if (!empty($theme_options['main_vimeo_url'])) { ?>
|
130 |
-
<td align="center" valign="top">
|
131 |
-
<a href="<?php echo $theme_options['main_vimeo_url'] ?>"><img src="<?php echo $social_icon_url ?>/vimeo.png"></a>
|
132 |
-
</td>
|
133 |
-
<?php } ?>
|
134 |
-
</tr>
|
135 |
-
</table>
|
136 |
-
|
137 |
-
<!-- spacer -->
|
138 |
-
<table cellpadding="0" cellspacing="0" align="center" bgcolor="#ffffff" border="0" width="100%">
|
139 |
-
<tr>
|
140 |
-
<td>
|
141 |
-
|
142 |
-
</td>
|
143 |
-
</tr>
|
144 |
-
</table>
|
145 |
-
|
146 |
-
<!-- footer -->
|
147 |
-
<table cellpadding="15" cellspacing="0" align="center" width="100%" bgcolor="#eeeeee" border="0">
|
148 |
-
<tr>
|
149 |
-
<td style="font-size: 12px">
|
150 |
-
<p><a href="{profile_url}">Manage your subscription</a></p>
|
151 |
-
<p><?php echo $theme_options['main_footer_contact'] ?></p>
|
152 |
-
<p><?php echo $theme_options['main_footer_legal'] ?></p>
|
153 |
-
</td>
|
154 |
-
</tr>
|
155 |
-
</table>
|
156 |
-
</td>
|
157 |
-
</tr>
|
158 |
-
</table>
|
159 |
-
</body>
|
160 |
-
</html>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/default/footer.php
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
<!-- Footer -->
|
2 |
-
<div style="text-align: center; font-weight: bold; margin: 40px 0 10px;"><?php echo $theme_options['main_footer_title'] ?></div>
|
3 |
-
<div style="text-align: center; margin: 10px 0 20px;"><?php echo $theme_options['main_footer_contact'] ?></div>
|
4 |
-
|
5 |
-
<?php include WP_PLUGIN_DIR . '/newsletter/emails/themes/default/social_main.php'; ?>
|
6 |
-
|
7 |
-
<div style="text-align: center; color: #888; margin-top: 20px;"><?php echo $theme_options['main_footer_legal'] ?></div>
|
8 |
-
<div style="text-align: center; color: #888">To change your subscription, <a target="_blank" href="{profile_url}">click here</a>.</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/default/images/facebook.png
DELETED
Binary file
|
trunk/emails/themes/default/images/googleplus.png
DELETED
Binary file
|
trunk/emails/themes/default/images/linkedin.png
DELETED
Binary file
|
trunk/emails/themes/default/images/pinterest.png
DELETED
Binary file
|
trunk/emails/themes/default/images/soundcloud.png
DELETED
Binary file
|
trunk/emails/themes/default/images/tumblr.png
DELETED
Binary file
|
trunk/emails/themes/default/images/twitter.png
DELETED
Binary file
|
trunk/emails/themes/default/images/vimeo.png
DELETED
Binary file
|
trunk/emails/themes/default/images/youtube.png
DELETED
Binary file
|
trunk/emails/themes/default/screenshot.png
DELETED
Binary file
|
trunk/emails/themes/default/social-options.php
DELETED
@@ -1,39 +0,0 @@
|
|
1 |
-
<h3>Social icons</h3>
|
2 |
-
<table class="form-table">
|
3 |
-
<tr>
|
4 |
-
<th>Social block</th>
|
5 |
-
<td><?php $controls->checkbox('theme_social_disable'); ?> Disable</td>
|
6 |
-
</tr>
|
7 |
-
<tr>
|
8 |
-
<th>Facebook</th>
|
9 |
-
<td><?php $controls->text_url('theme_facebook', 30); ?></td>
|
10 |
-
</tr>
|
11 |
-
<tr>
|
12 |
-
<th>Twitter</th>
|
13 |
-
<td><?php $controls->text_url('theme_twitter', 30); ?></td>
|
14 |
-
</tr>
|
15 |
-
<tr>
|
16 |
-
<th>Pinterest</th>
|
17 |
-
<td><?php $controls->text_url('theme_pinterest', 30); ?></td>
|
18 |
-
</tr>
|
19 |
-
<tr>
|
20 |
-
<th>Google+</th>
|
21 |
-
<td><?php $controls->text_url('theme_googleplus', 30); ?></td>
|
22 |
-
</tr>
|
23 |
-
<tr>
|
24 |
-
<th>LinkedIn</th>
|
25 |
-
<td><?php $controls->text_url('theme_linkedin', 30); ?></td>
|
26 |
-
</tr>
|
27 |
-
<tr>
|
28 |
-
<th>Tumblr</th>
|
29 |
-
<td><?php $controls->text_url('theme_tumblr', 30); ?></td>
|
30 |
-
</tr>
|
31 |
-
<tr>
|
32 |
-
<th>YouTube</th>
|
33 |
-
<td><?php $controls->text_url('theme_youtube', 30); ?></td>
|
34 |
-
</tr>
|
35 |
-
<tr>
|
36 |
-
<th>Soundcloud</th>
|
37 |
-
<td><?php $controls->text_url('theme_soundcloud', 30); ?></td>
|
38 |
-
</tr>
|
39 |
-
</table>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/default/social.php
DELETED
@@ -1,56 +0,0 @@
|
|
1 |
-
<!-- Social -->
|
2 |
-
<?php
|
3 |
-
if (isset($theme_options['theme_social_disable'])) return;
|
4 |
-
$social_icon_url = plugins_url('newsletter') . '/emails/themes/default/images';
|
5 |
-
?>
|
6 |
-
<table cellpadding="5" align="center">
|
7 |
-
<tr>
|
8 |
-
<?php if (!empty($theme_options['theme_facebook'])) { ?>
|
9 |
-
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
10 |
-
<a href="<?php echo $theme_options['theme_facebook'] ?>"><img src="<?php echo $social_icon_url ?>/facebook.png"><br>Facebook</a>
|
11 |
-
</td>
|
12 |
-
<?php } ?>
|
13 |
-
|
14 |
-
<?php if (!empty($theme_options['theme_twitter'])) { ?>
|
15 |
-
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
16 |
-
<a href="<?php echo $theme_options['theme_twitter'] ?>"><img src="<?php echo $social_icon_url ?>/twitter.png"><br>Twitter</a>
|
17 |
-
</td>
|
18 |
-
<?php } ?>
|
19 |
-
|
20 |
-
<?php if (!empty($theme_options['theme_googleplus'])) { ?>
|
21 |
-
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
22 |
-
<a href="<?php echo $theme_options['theme_googleplus'] ?>"><img src="<?php echo $social_icon_url ?>/googleplus.png"><br>Google+</a>
|
23 |
-
</td>
|
24 |
-
<?php } ?>
|
25 |
-
|
26 |
-
<?php if (!empty($theme_options['theme_pinterest'])) { ?>
|
27 |
-
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
28 |
-
<a href="<?php echo $theme_options['theme_pinterest'] ?>"><img src="<?php echo $social_icon_url ?>/pinterest.png"><br>Pinterest</a>
|
29 |
-
</td>
|
30 |
-
<?php } ?>
|
31 |
-
|
32 |
-
<?php if (!empty($theme_options['theme_linkedin'])) { ?>
|
33 |
-
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
34 |
-
<a href="<?php echo $theme_options['theme_linkedin'] ?>"><img src="<?php echo $social_icon_url ?>/linkedin.png"><br>LinkedIn</a>
|
35 |
-
</td>
|
36 |
-
<?php } ?>
|
37 |
-
|
38 |
-
<?php if (!empty($theme_options['theme_tumblr'])) { ?>
|
39 |
-
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
40 |
-
<a href="<?php echo $theme_options['theme_tumblr'] ?>"><img src="<?php echo $social_icon_url ?>/tumblr.png"><br>Tumblr</a>
|
41 |
-
</td>
|
42 |
-
<?php } ?>
|
43 |
-
|
44 |
-
<?php if (!empty($theme_options['theme_youtube'])) { ?>
|
45 |
-
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
46 |
-
<a href="<?php echo $theme_options['theme_youtube'] ?>"><img src="<?php echo $social_icon_url ?>/youtube.png"><br>Youtube</a>
|
47 |
-
</td>
|
48 |
-
<?php } ?>
|
49 |
-
|
50 |
-
<?php if (!empty($theme_options['theme_soundcloud'])) { ?>
|
51 |
-
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
52 |
-
<a href="<?php echo $theme_options['theme_soundcloud'] ?>"><img src="<?php echo $social_icon_url ?>/soundcloud.png"><br>SoundCloud</a>
|
53 |
-
</td>
|
54 |
-
<?php } ?>
|
55 |
-
</tr>
|
56 |
-
</table>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/default/social_main.php
DELETED
@@ -1,44 +0,0 @@
|
|
1 |
-
<!-- Social -->
|
2 |
-
<?php
|
3 |
-
if (isset($theme_options['theme_social_disable'])) return;
|
4 |
-
$social_icon_url = plugins_url('newsletter') . '/emails/themes/default/images';
|
5 |
-
?>
|
6 |
-
<table cellpadding="5" align="center">
|
7 |
-
<tr>
|
8 |
-
<?php if (!empty($theme_options['main_facebook_url'])) { ?>
|
9 |
-
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
10 |
-
<a href="<?php echo $theme_options['main_facebook_url'] ?>"><img src="<?php echo $social_icon_url ?>/facebook.png" alt="Facebook"></a>
|
11 |
-
</td>
|
12 |
-
<?php } ?>
|
13 |
-
|
14 |
-
<?php if (!empty($theme_options['main_googleplus_url'])) { ?>
|
15 |
-
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
16 |
-
<a href="<?php echo $theme_options['main_googleplus_url'] ?>"><img src="<?php echo $social_icon_url ?>/googleplus.png"></a>
|
17 |
-
</td>
|
18 |
-
<?php } ?>
|
19 |
-
|
20 |
-
<?php if (!empty($theme_options['main_twitter_url'])) { ?>
|
21 |
-
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
22 |
-
<a href="<?php echo $theme_options['main_twitter_url'] ?>"><img src="<?php echo $social_icon_url ?>/twitter.png"></a>
|
23 |
-
</td>
|
24 |
-
<?php } ?>
|
25 |
-
|
26 |
-
<?php if (!empty($theme_options['main_linkedin_url'])) { ?>
|
27 |
-
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
28 |
-
<a href="<?php echo $theme_options['main_linkedin_url'] ?>"><img src="<?php echo $social_icon_url ?>/linkedin.png"></a>
|
29 |
-
</td>
|
30 |
-
<?php } ?>
|
31 |
-
|
32 |
-
<?php if (!empty($theme_options['main_youtube_url'])) { ?>
|
33 |
-
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
34 |
-
<a href="<?php echo $theme_options['main_youtube_url'] ?>"><img src="<?php echo $social_icon_url ?>/youtube.png"></a>
|
35 |
-
</td>
|
36 |
-
<?php } ?>
|
37 |
-
|
38 |
-
<?php if (!empty($theme_options['main_vimeo_url'])) { ?>
|
39 |
-
<td style="text-align: center; vertical-align: top" align="center" valign="top">
|
40 |
-
<a href="<?php echo $theme_options['main_vimeo_url'] ?>"><img src="<?php echo $social_icon_url ?>/vimeo.png"></a>
|
41 |
-
</td>
|
42 |
-
<?php } ?>
|
43 |
-
</tr>
|
44 |
-
</table>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/default/theme-options.php
DELETED
@@ -1,78 +0,0 @@
|
|
1 |
-
<!--<div id="tabs">
|
2 |
-
<ul>
|
3 |
-
<li><a href="#tab-general">General</a></li>
|
4 |
-
<li><a href="#tab-posts">Posts</a></li>
|
5 |
-
</ul>
|
6 |
-
|
7 |
-
<div id="tab-general">-->
|
8 |
-
<table class="form-table">
|
9 |
-
<tr><td colspan="2">General options for header, social links and footer sections could also be set in <a href="?page=newsletter_main_main">Blog Info panel</a>.</td></tr>
|
10 |
-
<tr>
|
11 |
-
<th>Base color</th>
|
12 |
-
<td>
|
13 |
-
<?php $controls->color('theme_color'); ?>
|
14 |
-
<p class="description" style="display: inline">Hex values, e.g. #FF0000</p>
|
15 |
-
</td>
|
16 |
-
</tr>
|
17 |
-
<tr>
|
18 |
-
<th>Disable social links</th>
|
19 |
-
<td><?php $controls->checkbox('theme_social_disable', ''); ?></td>
|
20 |
-
</tr>
|
21 |
-
<!-- <tr>
|
22 |
-
<th>Banner/Title</th>
|
23 |
-
<td>
|
24 |
-
<?php //$controls->wp_editor('theme_banner'); ?>
|
25 |
-
<div class="hints">
|
26 |
-
Create a content with an image (500 pixel wide) that will be your newsletter banner and that will replace the
|
27 |
-
title with your blog name.
|
28 |
-
</div>
|
29 |
-
<?php $controls->media('theme_header_logo', 'full'); ?>
|
30 |
-
<p class="description">
|
31 |
-
Click to change. This should be your logo in .png or .jpg format.
|
32 |
-
</p>
|
33 |
-
</td>
|
34 |
-
</tr>-->
|
35 |
-
</table>
|
36 |
-
<h3>Posts</h3>
|
37 |
-
<table class="form-table">
|
38 |
-
<tr>
|
39 |
-
<th>Posts</th>
|
40 |
-
<td>
|
41 |
-
<?php $controls->checkbox('theme_posts', 'Add latest posts'); ?>
|
42 |
-
<br>
|
43 |
-
<?php $controls->checkbox('theme_thumbnails', 'Add post thumbnails'); ?>
|
44 |
-
<br>
|
45 |
-
<?php $controls->checkbox('theme_excerpts', 'Add post excerpts'); ?>
|
46 |
-
</td>
|
47 |
-
</tr>
|
48 |
-
<tr>
|
49 |
-
<th>Categories</th>
|
50 |
-
<td>
|
51 |
-
<?php $controls->categories_group('theme_categories'); ?>
|
52 |
-
</td>
|
53 |
-
</tr>
|
54 |
-
<tr>
|
55 |
-
<th>Tags</th>
|
56 |
-
<td>
|
57 |
-
<?php $controls->text('theme_tags', 30); ?>
|
58 |
-
<p class="description" style="display: inline"> comma separated</p>
|
59 |
-
</td>
|
60 |
-
</tr>
|
61 |
-
<tr>
|
62 |
-
<th>Max posts</th>
|
63 |
-
<td>
|
64 |
-
<?php $controls->text('theme_max_posts', 5); ?>
|
65 |
-
</td>
|
66 |
-
</tr>
|
67 |
-
<tr>
|
68 |
-
<th>Post types to include</th>
|
69 |
-
<td>
|
70 |
-
<?php $controls->post_types('theme_post_types'); ?>
|
71 |
-
<div class="hints">Leave all unchecked for default behaviour.</div>
|
72 |
-
</td>
|
73 |
-
</tr>
|
74 |
-
</table>
|
75 |
-
<!--</div>-->
|
76 |
-
<!--<div id="tab-posts">-->
|
77 |
-
<!--</div>-->
|
78 |
-
<!--</div>-->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/default/theme-text.php
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
This email requires a modern e-mail reader but you can view the email online here:
|
2 |
-
|
3 |
-
{email_url}.
|
4 |
-
|
5 |
-
Thank you, <?php echo wp_specialchars_decode(get_option('blogname'), ENT_QUOTES); ?>
|
6 |
-
|
7 |
-
To change your subscription follow:
|
8 |
-
{profile_url}.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/default/theme.php
DELETED
@@ -1,116 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Name: Default
|
4 |
-
* Type: standard
|
5 |
-
* Some variables are already defined:
|
6 |
-
*
|
7 |
-
* - $theme_options An array with all theme options
|
8 |
-
* - $theme_url Is the absolute URL to the theme folder used to reference images
|
9 |
-
* - $theme_subject Will be the email subject if set by this theme
|
10 |
-
*
|
11 |
-
*/
|
12 |
-
|
13 |
-
global $newsletter, $post;
|
14 |
-
|
15 |
-
$color = $theme_options['theme_color'];
|
16 |
-
if (empty($color)) $color = '#000000';
|
17 |
-
|
18 |
-
if (isset($theme_options['theme_posts'])) {
|
19 |
-
$filters = array();
|
20 |
-
|
21 |
-
if (empty($theme_options['theme_max_posts'])) $filters['posts_per_page'] = 10;
|
22 |
-
else $filters['posts_per_page'] = (int)$theme_options['theme_max_posts'];
|
23 |
-
|
24 |
-
if (!empty($theme_options['theme_categories'])) {
|
25 |
-
$filters['category__in'] = $theme_options['theme_categories'];
|
26 |
-
}
|
27 |
-
|
28 |
-
if (!empty($theme_options['theme_tags'])) {
|
29 |
-
$filters['tag'] = $theme_options['theme_tags'];
|
30 |
-
}
|
31 |
-
|
32 |
-
if (!empty($theme_options['theme_post_types'])) {
|
33 |
-
$filters['post_type'] = $theme_options['theme_post_types'];
|
34 |
-
}
|
35 |
-
|
36 |
-
$posts = get_posts($filters);
|
37 |
-
}
|
38 |
-
|
39 |
-
?><!DOCTYPE html>
|
40 |
-
<html>
|
41 |
-
<head>
|
42 |
-
<!-- Not all email client take care of styles inserted here -->
|
43 |
-
<style type="text/css" media="all">
|
44 |
-
a {
|
45 |
-
text-decoration: none;
|
46 |
-
color: <?php echo $color; ?>;
|
47 |
-
}
|
48 |
-
</style>
|
49 |
-
</head>
|
50 |
-
<body style="background-color: #ddd; font-family: Helvetica Neue, Helvetica, Arial, sans-serif; font-size: 14px; color: #666; margin: 0 auto; padding: 0;">
|
51 |
-
<br>
|
52 |
-
<table align="center">
|
53 |
-
<tr>
|
54 |
-
<td valign="top" style="font-family: Helvetica Neue, Helvetica, Arial, sans-serif; font-size: 14px; color: #666;">
|
55 |
-
<div style="text-align: left; background-color: #fff; max-width: 500px;">
|
56 |
-
<div style="text-align: center">
|
57 |
-
<?php //HEADER
|
58 |
-
// if (!empty($theme_options['theme_banner'])) {
|
59 |
-
// echo $theme_options['theme_banner'];
|
60 |
-
if (!empty($theme_options['theme_header_logo']['url'])) { ?>
|
61 |
-
<img style="max-width: 500px" alt="<?php echo $theme_options['main_header_title'] ?>" src="<?php echo $theme_options['theme_header_logo']['url'] ?>" />
|
62 |
-
<?php } elseif (!empty($theme_options['main_header_logo']['url'])) { ?>
|
63 |
-
<img style="max-width: 500px" alt="<?php echo $theme_options['main_header_title'] ?>" src="<?php echo $theme_options['main_header_logo']['url'] ?>" />
|
64 |
-
<?php } elseif (!empty($theme_options['main_header_title'])) { ?>
|
65 |
-
<div style="padding: 30px 0; color: #000; font-size: 28px; background-color: #EFEFEF; border-bottom: 1px solid #ddd; text-align: center;">
|
66 |
-
<?php echo $theme_options['main_header_title'] ?>
|
67 |
-
</div>
|
68 |
-
<?php if (!empty($theme_options['main_header_sub'])) { ?>
|
69 |
-
<div style="padding: 10px 0; color: #000; font-size: 16px; text-align: center;">
|
70 |
-
<?php echo $theme_options['main_header_sub'] ?>
|
71 |
-
</div>
|
72 |
-
<?php } ?>
|
73 |
-
<?php } else { ?>
|
74 |
-
<div style="padding: 30px 20px; color: #000; font-size: 28px; background-color: #EFEFEF; border-bottom: 1px solid #ddd; text-align: center;">
|
75 |
-
<?php echo get_option('blogname'); ?>
|
76 |
-
</div>
|
77 |
-
<?php if (!empty($theme_options['main_header_sub'])) { ?>
|
78 |
-
<div style="padding: 10px 0; color: #000; font-size: 16px; text-align: center;">
|
79 |
-
<?php echo $theme_options['main_header_sub'] ?>
|
80 |
-
</div>
|
81 |
-
<?php } ?>
|
82 |
-
<?php } ?>
|
83 |
-
</div>
|
84 |
-
|
85 |
-
|
86 |
-
<div style="padding: 10px 20px 20px 20px; background-color: #fff; line-height: 18px">
|
87 |
-
|
88 |
-
<p style="text-align: center; font-size: small;"><a target="_blank" href="{email_url}">View this email online</a></p>
|
89 |
-
|
90 |
-
<p>Here you can start to write your message. Be polite with your readers! Don't forget the subject of this message.</p>
|
91 |
-
<?php if (!empty($posts)) { ?>
|
92 |
-
<table cellpadding="5">
|
93 |
-
<?php foreach ($posts as $post) { setup_postdata($post); ?>
|
94 |
-
<tr>
|
95 |
-
<?php if (isset($theme_options['theme_thumbnails'])) { ?>
|
96 |
-
<td valign="top"><a target="_blank" href="<?php echo get_permalink($post); ?>"><img width="75" src="<?php echo newsletter_get_post_image($post->ID); ?>" alt="image"></a></td>
|
97 |
-
<?php } ?>
|
98 |
-
<td valign="top">
|
99 |
-
<a target="_blank" href="<?php echo get_permalink(); ?>" style="font-size: 20px; line-height: 26px"><?php the_title(); ?></a>
|
100 |
-
<?php if (isset($theme_options['theme_excerpts'])) newsletter_the_excerpt($post); ?>
|
101 |
-
</td>
|
102 |
-
</tr>
|
103 |
-
<?php } ?>
|
104 |
-
</table>
|
105 |
-
<?php } ?>
|
106 |
-
|
107 |
-
<?php include WP_PLUGIN_DIR . '/newsletter/emails/themes/default/footer.php'; ?>
|
108 |
-
|
109 |
-
</div>
|
110 |
-
|
111 |
-
</div>
|
112 |
-
</td>
|
113 |
-
</tr>
|
114 |
-
</table>
|
115 |
-
</body>
|
116 |
-
</html>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/linear/images/facebook.png
DELETED
Binary file
|
trunk/emails/themes/linear/images/purple.png
DELETED
Binary file
|
trunk/emails/themes/linear/images/twitter.png
DELETED
Binary file
|
trunk/emails/themes/linear/images/youtube.png
DELETED
Binary file
|
trunk/emails/themes/linear/screenshot.png
DELETED
Binary file
|
trunk/emails/themes/linear/theme-options.php
DELETED
@@ -1,18 +0,0 @@
|
|
1 |
-
<table class="form-table">
|
2 |
-
<tr>
|
3 |
-
<th>Max posts</th>
|
4 |
-
<td><?php $controls->text('theme_max_posts', 5); ?></td>
|
5 |
-
</tr>
|
6 |
-
<tr>
|
7 |
-
<th>Categories</th>
|
8 |
-
<td><?php $controls->categories_group('theme_categories'); ?></td>
|
9 |
-
</tr>
|
10 |
-
<tr>
|
11 |
-
<th>Post types</th>
|
12 |
-
<td>
|
13 |
-
<?php $controls->post_types('theme_post_types'); ?>
|
14 |
-
<p class="description">Leave all uncheck for a default behavior.</p>
|
15 |
-
</td>
|
16 |
-
</tr>
|
17 |
-
</table>
|
18 |
-
<?php include WP_PLUGIN_DIR . '/newsletter/emails/themes/default/social-options.php'; ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/linear/theme-text.php
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
This email requires a modern e-mail reader but you can view the email online here:
|
2 |
-
|
3 |
-
{email_url}.
|
4 |
-
|
5 |
-
Thank you, <?php echo wp_specialchars_decode(get_option('blogname'), ENT_QUOTES); ?>
|
6 |
-
|
7 |
-
To change your subscription follow:
|
8 |
-
{profile_url}.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/linear/theme.php
DELETED
@@ -1,118 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
global $post;
|
3 |
-
|
4 |
-
$filters = array();
|
5 |
-
if (!empty($theme_options['theme_categories'])) {
|
6 |
-
$filters['category__in'] = $theme_options['theme_categories'];
|
7 |
-
}
|
8 |
-
|
9 |
-
if (empty($theme_options['theme_max_posts'])) {
|
10 |
-
$filters['posts_per_page'] = 10;
|
11 |
-
} else {
|
12 |
-
$filters['posts_per_page'] = (int) $theme_options['theme_max_posts'];
|
13 |
-
}
|
14 |
-
|
15 |
-
if (!empty($theme_options['theme_post_types'])) {
|
16 |
-
$filters['post_type'] = $theme_options['theme_post_types'];
|
17 |
-
}
|
18 |
-
|
19 |
-
$posts = get_posts($filters);
|
20 |
-
|
21 |
-
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
|
22 |
-
<html>
|
23 |
-
<head>
|
24 |
-
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
25 |
-
|
26 |
-
<style type="text/css">
|
27 |
-
</style>
|
28 |
-
</head>
|
29 |
-
<body leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" offset="0" style="background-color: #efefef;">
|
30 |
-
|
31 |
-
<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%">
|
32 |
-
<tr>
|
33 |
-
<td align="center" valign="top">
|
34 |
-
|
35 |
-
<table border="0" cellpadding="10" cellspacing="0" width="600" style="background-color: #FAFAFA;">
|
36 |
-
<tr>
|
37 |
-
<td valign="top">
|
38 |
-
<table border="0" cellpadding="10" cellspacing="0" width="100%">
|
39 |
-
<tr>
|
40 |
-
<td valign="top" align="left" style="color: #505050;font-family: Arial;font-size: 10px;">
|
41 |
-
You are receiving this email because you subscribed to <?php echo get_option('blogname'); ?>. <a href="{profile_url}">Click here to change your subscription</a>.
|
42 |
-
</td>
|
43 |
-
<td valign="top" width="190" align="left" style="color: #505050;font-family: Arial;font-size: 10px;">
|
44 |
-
Is this email not displaying correctly?<br><a href="{email_url}" style="color: #336699;font-weight: normal;text-decoration: underline;">View it online</a>.
|
45 |
-
</td>
|
46 |
-
</tr>
|
47 |
-
</table>
|
48 |
-
</td>
|
49 |
-
</tr>
|
50 |
-
</table>
|
51 |
-
|
52 |
-
<table border="0" cellpadding="0" cellspacing="0" width="600" bgcolor="#FFFFFF">
|
53 |
-
<tr>
|
54 |
-
<td align="center" valign="middle" height="150" style="color: #202020;font-family: Arial;font-size: 34px;font-weight: bold;line-height: 100%;padding: 5px 0 -2px 0;border-width: 1px 0px;border-style: solid;border-color: #dddddd;">
|
55 |
-
<?php echo get_option('blogname'); ?>
|
56 |
-
</td>
|
57 |
-
</tr>
|
58 |
-
</table>
|
59 |
-
<table border="0" cellpadding="0" cellspacing="0" width="600" bgcolor="#FFFFFF">
|
60 |
-
<tr>
|
61 |
-
|
62 |
-
<td valign="top">
|
63 |
-
<table border="0" cellpadding="20" cellspacing="0" width="200">
|
64 |
-
<tr>
|
65 |
-
<td valign="top" align="left" style="color: #505050;font-family: Arial;font-size: 12px;line-height: 150%;">
|
66 |
-
Sidebar text
|
67 |
-
</td>
|
68 |
-
</tr>
|
69 |
-
<?php
|
70 |
-
if (!isset($theme_options['theme_social_disable'])) {
|
71 |
-
$social_icon_url = plugins_url('emails/themes/default/images', 'newsletter/plugin.pnp');
|
72 |
-
?>
|
73 |
-
<tr>
|
74 |
-
<td valign="top" align="left">
|
75 |
-
<?php
|
76 |
-
foreach (array('facebook', 'twitter', 'youtube', 'linkedin', 'googleplus', 'pinterest', 'tumblr') as $social) {
|
77 |
-
if (empty($theme_options["theme_$social"]))
|
78 |
-
continue;
|
79 |
-
?>
|
80 |
-
<a href="<?php echo $theme_options["theme_$social"]; ?>"><img src="<?php echo $social_icon_url; ?>/<?php echo $social; ?>.png" alt="<?php echo $social; ?>"></a>
|
81 |
-
<?php } ?>
|
82 |
-
</td>
|
83 |
-
</tr>
|
84 |
-
<?php } ?>
|
85 |
-
</table>
|
86 |
-
</td>
|
87 |
-
|
88 |
-
<td valign="top">
|
89 |
-
<table border="0" cellpadding="20" cellspacing="0" width="100%" bgcolor="#ffffff">
|
90 |
-
<tr>
|
91 |
-
<td valign="top">
|
92 |
-
|
93 |
-
<?php foreach ($posts as $post) {
|
94 |
-
setup_postdata($post);
|
95 |
-
?>
|
96 |
-
<h2 style="color: #202020;font-family: Arial;font-size: 20px;font-weight: bold;margin-top: 0;margin-bottom: 10px;border-bottom: 1px solid #efefef;">
|
97 |
-
<?php the_title(); ?>
|
98 |
-
</h2>
|
99 |
-
<center><img src="<?php echo newsletter_get_post_image($post->ID, 'medium'); ?>"></center>
|
100 |
-
<div style="color: #505050;font-family: Arial;font-size: 14px;line-height: 150%;">
|
101 |
-
<?php the_excerpt(); ?>
|
102 |
-
</div>
|
103 |
-
<?php } ?>
|
104 |
-
</td>
|
105 |
-
</tr>
|
106 |
-
</table>
|
107 |
-
</td>
|
108 |
-
|
109 |
-
</tr>
|
110 |
-
</table>
|
111 |
-
</td>
|
112 |
-
</tr>
|
113 |
-
|
114 |
-
</table>
|
115 |
-
<br><br>
|
116 |
-
|
117 |
-
</body>
|
118 |
-
</html>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/pint/images/bg.jpg
DELETED
Binary file
|
trunk/emails/themes/pint/screenshot.png
DELETED
Binary file
|
trunk/emails/themes/pint/theme-options.php
DELETED
@@ -1,15 +0,0 @@
|
|
1 |
-
<p>
|
2 |
-
This theme requires posts with at least one image and a number of posts like
|
3 |
-
3, 6, 9, ...
|
4 |
-
</p>
|
5 |
-
<table class="form-table">
|
6 |
-
<tr>
|
7 |
-
<th>Max posts</th>
|
8 |
-
<td><?php $controls->text('theme_max_posts', 5); ?></td>
|
9 |
-
</tr>
|
10 |
-
<tr>
|
11 |
-
<th>Categories</th>
|
12 |
-
<td><?php $controls->categories_group('theme_categories'); ?></td>
|
13 |
-
</tr>
|
14 |
-
</table>
|
15 |
-
<?php include WP_PLUGIN_DIR . '/newsletter/emails/themes/default/social-options.php'; ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/pint/theme-text.php
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
This email requires a modern e-mail reader but you can view the email online here:
|
2 |
-
|
3 |
-
{email_url}.
|
4 |
-
|
5 |
-
Thank you, <?php echo wp_specialchars_decode(get_option('blogname'), ENT_QUOTES); ?>
|
6 |
-
|
7 |
-
To change your subscription follow:
|
8 |
-
{profile_url}.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/pint/theme.php
DELETED
@@ -1,83 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Some variables are already defined:
|
4 |
-
*
|
5 |
-
* - $theme_options An array with all theme options
|
6 |
-
* - $theme_url Is the absolute URL to the theme folder used to reference images
|
7 |
-
* - $theme_subject Will be the email subject if set by this theme
|
8 |
-
*
|
9 |
-
*/
|
10 |
-
|
11 |
-
global $newsletter, $post;
|
12 |
-
|
13 |
-
$filters = array();
|
14 |
-
if (!empty($theme_options['theme_categories'])) {
|
15 |
-
$filters['category__in'] = $theme_options['theme_categories'];
|
16 |
-
}
|
17 |
-
if (empty($theme_options['theme_max_posts']))
|
18 |
-
$filters['posts_per_page'] = 9;
|
19 |
-
else
|
20 |
-
$filters['posts_per_page'] = (int) $theme_options['theme_max_posts'];
|
21 |
-
|
22 |
-
$posts = get_posts($filters);
|
23 |
-
|
24 |
-
?><!DOCTYPE html>
|
25 |
-
<html>
|
26 |
-
<head>
|
27 |
-
</style>
|
28 |
-
</head>
|
29 |
-
<body style="background-color: #eee; background-image: url('<?php echo $theme_url; ?>/images/bg.jpg'); font-family: Helvetica Neue, Helvetica, Arial, sans-serif; font-size: 14px; color: #666; margin: 0 auto; padding: 0;">
|
30 |
-
<br>
|
31 |
-
<table align="center">
|
32 |
-
<tr>
|
33 |
-
<td align="center">
|
34 |
-
<small><a target="_tab" href="{email_url}" style="color: #666; text-decoration: none">View this email online</a></small>
|
35 |
-
<br>
|
36 |
-
<div style="color: #b00; font-size: 50px; font-family: serif; font-style: italic;">
|
37 |
-
<?php echo get_option('blogname'); ?>
|
38 |
-
</div>
|
39 |
-
<br>
|
40 |
-
<br>
|
41 |
-
|
42 |
-
<table cellpadding="5">
|
43 |
-
<tr>
|
44 |
-
<?php for ($i=0; $i<3; $i++) { $post = $posts[$i]; setup_postdata($post); ?>
|
45 |
-
<td align="center" valign="top">
|
46 |
-
<a target="_tab" href="<?php echo get_permalink(); ?>" style="font-size: 14px; line-height: 26px; font-weight: bold; color: #000; text-decoration: none"><?php echo substr(get_the_title(), 0, 25); ?>...</a><br>
|
47 |
-
<a target="_tab" href="<?php echo get_permalink(); ?>" style="display: block; width: 200px; height: 170px; overflow: hidden"><img width="200" src="<?php echo newsletter_get_post_image($post->ID, 'medium'); ?>" alt=""></a>
|
48 |
-
</td>
|
49 |
-
<?php } ?>
|
50 |
-
</tr>
|
51 |
-
<tr>
|
52 |
-
<?php for ($i=3; $i<6; $i++) { $post = $posts[$i]; setup_postdata($post); ?>
|
53 |
-
<td align="center" valign="top">
|
54 |
-
<a target="_tab" href="<?php echo get_permalink(); ?>" style="font-size: 14px; line-height: 26px; font-weight: bold; color: #000; text-decoration: none"><?php echo substr(get_the_title(), 0, 25); ?>...</a><br>
|
55 |
-
<a target="_tab" href="<?php echo get_permalink(); ?>" style="display: block; width: 200px; height: 170px; overflow: hidden"><img width="200" src="<?php echo newsletter_get_post_image($post->ID, 'medium'); ?>" alt=""></a>
|
56 |
-
</td>
|
57 |
-
<?php } ?>
|
58 |
-
</tr>
|
59 |
-
<tr>
|
60 |
-
<?php for ($i=6; $i<9; $i++) { $post = $posts[$i]; setup_postdata($post); ?>
|
61 |
-
<td align="center" valign="top">
|
62 |
-
<a target="_tab" href="<?php echo get_permalink(); ?>" style="font-size: 14px; line-height: 26px; font-weight: bold; color: #000; text-decoration: none"><?php echo substr(get_the_title(), 0, 25); ?>...</a><br>
|
63 |
-
<a target="_tab" href="<?php echo get_permalink(); ?>" style="display: block; width: 200px; height: 170px; overflow: hidden"><img width="200" src="<?php echo newsletter_get_post_image($post->ID, 'medium'); ?>" alt=""></a>
|
64 |
-
</td>
|
65 |
-
<?php } ?>
|
66 |
-
</tr>
|
67 |
-
</table>
|
68 |
-
|
69 |
-
<br><br>
|
70 |
-
|
71 |
-
<?php
|
72 |
-
if (!isset($theme_options['theme_social_disable'])) {
|
73 |
-
include WP_PLUGIN_DIR . '/newsletter/emails/themes/default/social.php';
|
74 |
-
}
|
75 |
-
?>
|
76 |
-
|
77 |
-
<small>To change your subscription, <a target="_tab" href="{profile_url}" style="color: #666; text-decoration: none">click here</a></small>
|
78 |
-
|
79 |
-
</td>
|
80 |
-
</tr>
|
81 |
-
</table>
|
82 |
-
</body>
|
83 |
-
</html>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/simple/screenshot.png
DELETED
Binary file
|
trunk/emails/themes/simple/theme-options.php
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
<?php include WP_PLUGIN_DIR . '/newsletter/emails/themes/default/social-options.php'; ?>
|
|
trunk/emails/themes/simple/theme-text.php
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
This email requires a modern e-mail reader but you can view the email online here:
|
2 |
-
|
3 |
-
{email_url}.
|
4 |
-
|
5 |
-
Thank you, <?php echo wp_specialchars_decode(get_option('blogname'), ENT_QUOTES); ?>
|
6 |
-
|
7 |
-
To change your subscription follow:
|
8 |
-
{profile_url}.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/simple/theme.php
DELETED
@@ -1,155 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Some variables are already defined:
|
4 |
-
*
|
5 |
-
* - $theme_options An array with all theme options
|
6 |
-
* - $theme_url Is the absolute URL to the theme folder used to reference images
|
7 |
-
* - $theme_subject Will be the email subject if set by this theme
|
8 |
-
*
|
9 |
-
*/
|
10 |
-
|
11 |
-
global $newsletter, $post;
|
12 |
-
|
13 |
-
$color = $theme_options['theme_color'];
|
14 |
-
if (empty($color))
|
15 |
-
$color = '#0088cc';
|
16 |
-
|
17 |
-
if (isset($theme_options['theme_posts'])) {
|
18 |
-
$filters = array();
|
19 |
-
|
20 |
-
if (empty($theme_options['theme_max_posts']))
|
21 |
-
$filters['posts_per_page'] = 10;
|
22 |
-
else
|
23 |
-
$filters['posts_per_page'] = (int) $theme_options['theme_max_posts'];
|
24 |
-
|
25 |
-
if (!empty($theme_options['theme_categories'])) {
|
26 |
-
$filters['category__in'] = $theme_options['theme_categories'];
|
27 |
-
}
|
28 |
-
|
29 |
-
if (!empty($theme_options['theme_tags'])) {
|
30 |
-
$filters['tag'] = $theme_options['theme_tags'];
|
31 |
-
}
|
32 |
-
|
33 |
-
if (!empty($theme_options['theme_post_types'])) {
|
34 |
-
$filters['post_type'] = $theme_options['theme_post_types'];
|
35 |
-
}
|
36 |
-
|
37 |
-
$posts = get_posts($filters);
|
38 |
-
}
|
39 |
-
?><!DOCTYPE html>
|
40 |
-
<html>
|
41 |
-
<head>
|
42 |
-
<style type="text/css">
|
43 |
-
.ReadMsgBody {
|
44 |
-
width: 100%;
|
45 |
-
}
|
46 |
-
.ExternalClass {
|
47 |
-
width: 100%; background-color:#e7e8e9 !important;
|
48 |
-
}
|
49 |
-
.yshortcuts {color: #2979be;}
|
50 |
-
body {
|
51 |
-
background-color: #e7e8e9;}
|
52 |
-
|
53 |
-
</style>
|
54 |
-
</head>
|
55 |
-
<body style="background-color:#e7e8e9;">
|
56 |
-
<br>
|
57 |
-
<br>
|
58 |
-
<table border="0" cellspacing="0" cellpadding="1" width="550" align="center">
|
59 |
-
<tbody>
|
60 |
-
<tr>
|
61 |
-
<td style="background-color: #fff;" width="550" valign="top">
|
62 |
-
<table border="0" cellspacing="0" cellpadding="0" width="100%">
|
63 |
-
<tbody>
|
64 |
-
<tr>
|
65 |
-
<td valign="top" style="background-color: #333; color: #f4f4f4; font-size: 20px; padding: 7px">
|
66 |
-
<?php echo get_option('blogname') ?>
|
67 |
-
</td>
|
68 |
-
</tr>
|
69 |
-
<!-- main content here -->
|
70 |
-
<tr>
|
71 |
-
<td>
|
72 |
-
<table border="0" cellspacing="0" cellpadding="0" width="100%">
|
73 |
-
<tbody>
|
74 |
-
<tr>
|
75 |
-
<td rowspan="10" width="35"></td>
|
76 |
-
<td height="30"><br /></td>
|
77 |
-
<td rowspan="9" width="35"></td>
|
78 |
-
</tr>
|
79 |
-
<tr>
|
80 |
-
<td style="font-size: 32px; font-family: Arial; color: #217abe;">Here the title</td>
|
81 |
-
</tr>
|
82 |
-
<tr>
|
83 |
-
<td style="font-size: 22px; font-family: Arial; color: #262729;">Here the subtitle</td>
|
84 |
-
</tr>
|
85 |
-
<tr>
|
86 |
-
<td style="font-size: 14px; font-family: Arial; color: #444; text-align: left">
|
87 |
-
<p>Hi {name},</p>
|
88 |
-
<p>here a great new from me. I absoutely need to share this secret with you.</p>
|
89 |
-
<p>Here a unordered list:</p>
|
90 |
-
<ul>
|
91 |
-
<li>List item 1</li>
|
92 |
-
<li>List item 2</li>
|
93 |
-
<li>List item 3</li>
|
94 |
-
</ul>
|
95 |
-
<p>Some other words before say good bye!</p>
|
96 |
-
<p>See you soon.</p>
|
97 |
-
</td>
|
98 |
-
</tr>
|
99 |
-
|
100 |
-
<tr>
|
101 |
-
<td height="30"></td>
|
102 |
-
</tr>
|
103 |
-
</tbody>
|
104 |
-
</table>
|
105 |
-
</td>
|
106 |
-
</tr>
|
107 |
-
<!-- end main content -->
|
108 |
-
<tr>
|
109 |
-
<td>
|
110 |
-
<table border="0" cellspacing="0" cellpadding="0" width="100%">
|
111 |
-
<tbody>
|
112 |
-
<tr>
|
113 |
-
<td width="35" height="20"></td>
|
114 |
-
<td></td>
|
115 |
-
<td rowspan="3" width="35"></td>
|
116 |
-
</tr>
|
117 |
-
<tr>
|
118 |
-
<td></td>
|
119 |
-
<td>
|
120 |
-
<table border="0" cellspacing="0" cellpadding="0" width="100%">
|
121 |
-
<tbody>
|
122 |
-
<tr>
|
123 |
-
<td align="center" style="font-size: 14px; font-family: Arial;">
|
124 |
-
<?php include WP_PLUGIN_DIR . '/newsletter/emails/themes/default/social.php'; ?>
|
125 |
-
</td>
|
126 |
-
</tr>
|
127 |
-
</tbody>
|
128 |
-
</table>
|
129 |
-
</td>
|
130 |
-
</tr>
|
131 |
-
<tr>
|
132 |
-
<td height="20"></td>
|
133 |
-
<td></td>
|
134 |
-
</tr>
|
135 |
-
</tbody>
|
136 |
-
</table>
|
137 |
-
</td>
|
138 |
-
</tr>
|
139 |
-
<tr>
|
140 |
-
<td style="background-color: #000000;" height="2"></td>
|
141 |
-
</tr>
|
142 |
-
<tr>
|
143 |
-
<td style="background-color: #1b1c1e; font-size: 13px; color: #f4f4f4;" height="20" align="center">
|
144 |
-
To unsubscribe <a style="color: #ccc" href="{unsubscription_url}">click here</a>, to edit your profile
|
145 |
-
<a style="color: #ccc" href="{profile_url}">click here</a>.
|
146 |
-
</td>
|
147 |
-
</tr>
|
148 |
-
</tbody>
|
149 |
-
</table>
|
150 |
-
</td>
|
151 |
-
</tr>
|
152 |
-
</tbody>
|
153 |
-
</table>
|
154 |
-
</body>
|
155 |
-
</html>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/theme-1/screenshot.png
DELETED
Binary file
|
trunk/emails/themes/theme-1/theme-options.php
DELETED
@@ -1,42 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* This is a pre packaged theme options page. Every option name
|
4 |
-
* must start with "theme_" so Newsletter can distinguish them from other
|
5 |
-
* options that are specific to the object using the theme.
|
6 |
-
*
|
7 |
-
* An array of theme default options should always be present and that default options
|
8 |
-
* should be merged with the current complete set of options as shown below.
|
9 |
-
*
|
10 |
-
* Every theme can define its own set of options, the will be used in the theme.php
|
11 |
-
* file while composing the email body. Newsletter knows nothing about theme options
|
12 |
-
* (other than saving them) and does not use or relies on any of them.
|
13 |
-
*
|
14 |
-
* For multilanguage purpose you can actually check the constants "WP_LANG", until
|
15 |
-
* a decent system will be implemented.
|
16 |
-
*/
|
17 |
-
$theme_defaults = array(
|
18 |
-
'theme_max_posts'=>10,
|
19 |
-
'theme_categories'=>array()
|
20 |
-
);
|
21 |
-
|
22 |
-
// Mandatory!
|
23 |
-
$controls->merge_defaults($theme_defaults);
|
24 |
-
?>
|
25 |
-
|
26 |
-
<table class="form-table">
|
27 |
-
<tr valign="top">
|
28 |
-
<th>Max new posts to include</th>
|
29 |
-
<td>
|
30 |
-
<?php $controls->text('theme_max_posts', 5); ?> (it defaults to 10 if empty or invalid)
|
31 |
-
</td>
|
32 |
-
</tr>
|
33 |
-
<tr valign="top">
|
34 |
-
<th>Categories</th>
|
35 |
-
<td>
|
36 |
-
<?php $controls->categories_group('theme_categories'); ?>
|
37 |
-
</td>
|
38 |
-
</tr>
|
39 |
-
</table>
|
40 |
-
|
41 |
-
<?php include WP_PLUGIN_DIR . '/newsletter/emails/themes/default/social-options.php'; ?>
|
42 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/theme-1/theme-text.php
DELETED
@@ -1,46 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
global $newsletter; // Newsletter object
|
3 |
-
global $post; // Current post managed by WordPress
|
4 |
-
|
5 |
-
// This file is included inside a function so it inherit all the local variables.
|
6 |
-
|
7 |
-
// Since a theme has it's own options, it must check if there is new content to send
|
8 |
-
// out.
|
9 |
-
// Inside $theme_options['last_time'] there is the time stamps of the last run
|
10 |
-
// to be used to decide if we need to stop or not.
|
11 |
-
|
12 |
-
$filters = array();
|
13 |
-
|
14 |
-
$filters['posts_per_page'] = (int)$theme_options['max_posts'];
|
15 |
-
if ($filters['posts_per_page'] == 0) $filters['posts_per_page'] = 10;
|
16 |
-
|
17 |
-
// This theme has an option with categories to be included.
|
18 |
-
if (is_array($theme_options['categories'])) {
|
19 |
-
$filters['cat'] = implode(',', $theme_options['categories']);
|
20 |
-
}
|
21 |
-
|
22 |
-
$posts = get_posts($filters);
|
23 |
-
|
24 |
-
// Retrieve the posts asking them to WordPress
|
25 |
-
$posts = get_posts($filters);
|
26 |
-
|
27 |
-
?><?php echo $theme_options['theme_opening_text']; ?>
|
28 |
-
|
29 |
-
* <?php echo $theme_options['theme_title']; ?>
|
30 |
-
|
31 |
-
|
32 |
-
<?php
|
33 |
-
foreach ($posts as $post) {
|
34 |
-
// Setup the post (WordPress requirement)
|
35 |
-
setup_postdata($post);
|
36 |
-
?>
|
37 |
-
<?php the_title(); ?>
|
38 |
-
|
39 |
-
<?php the_permalink(); ?>
|
40 |
-
|
41 |
-
|
42 |
-
<?php } ?>
|
43 |
-
|
44 |
-
|
45 |
-
<?php echo $theme_options['theme_footer_text']; ?>
|
46 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/theme-1/theme.php
DELETED
@@ -1,110 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
global $newsletter; // Newsletter object
|
3 |
-
global $post; // Current post managed by WordPress
|
4 |
-
|
5 |
-
/*
|
6 |
-
* Some variabled are prepared by Newsletter Plus and are available inside the theme,
|
7 |
-
* for example the theme options used to build the email body as configured by blog
|
8 |
-
* owner.
|
9 |
-
*
|
10 |
-
* $theme_options - is an associative array with theme options: every option starts
|
11 |
-
* with "theme_" as required. See the theme-options.php file for details.
|
12 |
-
* Inside that array there are the autmated email options as well, if needed.
|
13 |
-
* A special value can be present in theme_options and is the "last_run" which indicates
|
14 |
-
* when th automated email has been composed last time. Is should be used to find if
|
15 |
-
* there are now posts or not.
|
16 |
-
*
|
17 |
-
* $is_test - if true it means we are composing an email for test purpose.
|
18 |
-
*/
|
19 |
-
|
20 |
-
|
21 |
-
// This array will be passed to WordPress to extract the posts
|
22 |
-
$filters = array();
|
23 |
-
|
24 |
-
// Maximum number of post to retrieve
|
25 |
-
$filters['posts_per_page'] = (int) $theme_options['theme_max_posts'];
|
26 |
-
if ($filters['posts_per_page'] == 0)
|
27 |
-
$filters['posts_per_page'] = 10;
|
28 |
-
|
29 |
-
|
30 |
-
// Include only posts from specified categories. Do not filter per category is no
|
31 |
-
// one category has been selected.
|
32 |
-
if (is_array($theme_options['theme_categories'])) {
|
33 |
-
$filters['cat'] = implode(',', $theme_options['theme_categories']);
|
34 |
-
}
|
35 |
-
|
36 |
-
// Retrieve the posts asking them to WordPress
|
37 |
-
$posts = get_posts($filters);
|
38 |
-
?>
|
39 |
-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
40 |
-
<html>
|
41 |
-
<head>
|
42 |
-
<title></title>
|
43 |
-
</head>
|
44 |
-
|
45 |
-
<body>
|
46 |
-
<table bgcolor="#c0c0c0" width="100%" cellpadding="20" cellspacing="0" border="0">
|
47 |
-
<tr>
|
48 |
-
<td align="center">
|
49 |
-
<table width="500" bgcolor="#ffffff" align="center" cellspacing="10" cellpadding="0" style="border: 1px solid #666;">
|
50 |
-
<tr>
|
51 |
-
<td style="font-size: 30px">
|
52 |
-
<i><?php echo get_option('blogname'); ?></i>
|
53 |
-
</td>
|
54 |
-
</tr>
|
55 |
-
<tr>
|
56 |
-
<td style="border-top: 1px solid #eee; border-bottom: 1px solid #eee; font-size: 12px; color: #999">
|
57 |
-
<br />NEWSLETTER<br /><br />
|
58 |
-
</td>
|
59 |
-
</tr>
|
60 |
-
<tr>
|
61 |
-
<td style="font-size: 14px; color: #666">
|
62 |
-
<p>Dear {name}, here an update from <?php echo get_option('blogname'); ?>.</p>
|
63 |
-
</td>
|
64 |
-
</tr>
|
65 |
-
<?php
|
66 |
-
// Do not use &post, it leads to problems...
|
67 |
-
foreach ($posts as $post) {
|
68 |
-
|
69 |
-
// Setup the post (WordPress requirement)
|
70 |
-
setup_postdata($post);
|
71 |
-
|
72 |
-
// The theme can "suggest" a subject replacing the one configured, for example. In this case
|
73 |
-
// the theme, is there is no subject, suggest the first post title.
|
74 |
-
if (empty($theme_options['subject']))
|
75 |
-
$theme_options['subject'] = $post->post_title;
|
76 |
-
|
77 |
-
// Extract a thumbnail, return null if no thumb can be found
|
78 |
-
$image = nt_post_image(get_the_ID());
|
79 |
-
?>
|
80 |
-
<tr>
|
81 |
-
<td style="font-size: 14px; color: #666">
|
82 |
-
<?php if ($image != null) { ?>
|
83 |
-
<img src="<?php echo $image; ?>" alt="picture" align="left"/>
|
84 |
-
<?php } ?>
|
85 |
-
<p><a target="_tab" href="<?php echo get_permalink(); ?>" style="font-size: 16px; color: #000; text-decoration: none"><?php the_title(); ?></a></p>
|
86 |
-
|
87 |
-
<?php the_excerpt(); ?>
|
88 |
-
</td>
|
89 |
-
</tr>
|
90 |
-
<?php
|
91 |
-
}
|
92 |
-
?>
|
93 |
-
<?php if (!isset($theme_options['theme_social_disable'])) { ?>
|
94 |
-
<tr>
|
95 |
-
<td style="font-family: Arial; font-size: 12px">
|
96 |
-
<?php include WP_PLUGIN_DIR . '/newsletter/emails/themes/default/social.php'; ?>
|
97 |
-
</td>
|
98 |
-
</tr>
|
99 |
-
<?php } ?>
|
100 |
-
<tr>
|
101 |
-
<td style="border-top: 1px solid #eee; border-bottom: 1px solid #eee; font-size: 12px; color: #999">
|
102 |
-
You received this email because you subscribed for it as {email}. If you'd like, you can <a target="_tab" href="{unsubscription_url}">unsubscribe</a>.
|
103 |
-
</td>
|
104 |
-
</tr>
|
105 |
-
</table>
|
106 |
-
</td>
|
107 |
-
</tr>
|
108 |
-
</table>
|
109 |
-
</body>
|
110 |
-
</html>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/theme-3/header.jpg
DELETED
Binary file
|
trunk/emails/themes/theme-3/screenshot.png
DELETED
Binary file
|
trunk/emails/themes/theme-3/theme-options.php
DELETED
@@ -1,43 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* This is a pre packaged theme options page. Every option name
|
4 |
-
* must start with "theme_" so Newsletter can distinguish them from other
|
5 |
-
* options that are specific to the object using the theme.
|
6 |
-
*
|
7 |
-
* An array of theme default options should always be present and that default options
|
8 |
-
* should be merged with the current complete set of options as shown below.
|
9 |
-
*
|
10 |
-
* Every theme can define its own set of options, the will be used in the theme.php
|
11 |
-
* file while composing the email body. Newsletter knows nothing about theme options
|
12 |
-
* (other than saving them) and does not use or relies on any of them.
|
13 |
-
*
|
14 |
-
* For multilanguage purpose you can actually check the constants "WP_LANG", until
|
15 |
-
* a decent system will be implemented.
|
16 |
-
*/
|
17 |
-
$theme_defaults = array(
|
18 |
-
'theme_max_posts'=>10,
|
19 |
-
|
20 |
-
'theme_categories'=>array()
|
21 |
-
);
|
22 |
-
|
23 |
-
// Mandatory!
|
24 |
-
$controls->merge_defaults($theme_defaults);
|
25 |
-
?>
|
26 |
-
<p>This theme build an email loading all new posts after the date of the last run.</p>
|
27 |
-
<table class="form-table">
|
28 |
-
<tr valign="top">
|
29 |
-
<th>Max new posts to include</th>
|
30 |
-
<td>
|
31 |
-
<?php $controls->text('theme_max_posts', 5); ?> (it defaults to 10 if empty or invalid)
|
32 |
-
</td>
|
33 |
-
</tr>
|
34 |
-
<tr valign="top">
|
35 |
-
<th>Categories</th>
|
36 |
-
<td>
|
37 |
-
<?php $controls->categories_group('theme_categories'); ?>
|
38 |
-
</td>
|
39 |
-
</tr>
|
40 |
-
</table>
|
41 |
-
|
42 |
-
<?php include WP_PLUGIN_DIR . '/newsletter/emails/themes/default/social-options.php'; ?>
|
43 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/theme-3/theme-text.php
DELETED
@@ -1,46 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
global $newsletter; // Newsletter object
|
3 |
-
global $post; // Current post managed by WordPress
|
4 |
-
|
5 |
-
// This file is included inside a function so it inherit all the local variables.
|
6 |
-
|
7 |
-
// Since a theme has it's own options, it must check if there is new content to send
|
8 |
-
// out.
|
9 |
-
// Inside $theme_options['last_time'] there is the time stamps of the last run
|
10 |
-
// to be used to decide if we need to stop or not.
|
11 |
-
|
12 |
-
$filters = array();
|
13 |
-
|
14 |
-
$filters['posts_per_page'] = (int)$theme_options['max_posts'];
|
15 |
-
if ($filters['posts_per_page'] == 0) $filters['posts_per_page'] = 10;
|
16 |
-
|
17 |
-
// This theme has an option with categories to be included.
|
18 |
-
if (is_array($theme_options['categories'])) {
|
19 |
-
$filters['cat'] = implode(',', $theme_options['categories']);
|
20 |
-
}
|
21 |
-
|
22 |
-
$posts = get_posts($filters);
|
23 |
-
|
24 |
-
// Retrieve the posts asking them to WordPress
|
25 |
-
$posts = get_posts($filters);
|
26 |
-
|
27 |
-
?><?php echo $theme_options['theme_opening_text']; ?>
|
28 |
-
|
29 |
-
* <?php echo $theme_options['theme_title']; ?>
|
30 |
-
|
31 |
-
|
32 |
-
<?php
|
33 |
-
foreach ($posts as $post) {
|
34 |
-
// Setup the post (WordPress requirement)
|
35 |
-
setup_postdata($post);
|
36 |
-
?>
|
37 |
-
<?php the_title(); ?>
|
38 |
-
|
39 |
-
<?php the_permalink(); ?>
|
40 |
-
|
41 |
-
|
42 |
-
<?php } ?>
|
43 |
-
|
44 |
-
|
45 |
-
<?php echo $theme_options['theme_footer_text']; ?>
|
46 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/theme-3/theme.php
DELETED
@@ -1,121 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
global $newsletter; // Newsletter object
|
3 |
-
global $post; // Current post managed by WordPress
|
4 |
-
|
5 |
-
/*
|
6 |
-
* Some variabled are prepared by Newsletter Plus and are available inside the theme,
|
7 |
-
* for example the theme options used to build the email body as configured by blog
|
8 |
-
* owner.
|
9 |
-
*
|
10 |
-
* $theme_options - is an associative array with theme options: every option starts
|
11 |
-
* with "theme_" as required. See the theme-options.php file for details.
|
12 |
-
* Inside that array there are the autmated email options as well, if needed.
|
13 |
-
* A special value can be present in theme_options and is the "last_run" which indicates
|
14 |
-
* when th automated email has been composed last time. Is should be used to find if
|
15 |
-
* there are now posts or not.
|
16 |
-
*
|
17 |
-
* $is_test - if true it means we are composing an email for test purpose.
|
18 |
-
*/
|
19 |
-
|
20 |
-
|
21 |
-
// This array will be passed to WordPress to extract the posts
|
22 |
-
$filters = array();
|
23 |
-
|
24 |
-
// Maximum number of post to retrieve
|
25 |
-
$filters['posts_per_page'] = (int) $theme_options['theme_max_posts'];
|
26 |
-
if ($filters['posts_per_page'] == 0)
|
27 |
-
$filters['posts_per_page'] = 10;
|
28 |
-
|
29 |
-
|
30 |
-
// Include only posts from specified categories. Do not filter per category is no
|
31 |
-
// one category has been selected.
|
32 |
-
if (isset($theme_options['theme_categories']) && is_array($theme_options['theme_categories'])) {
|
33 |
-
$filters['cat'] = implode(',', $theme_options['theme_categories']);
|
34 |
-
}
|
35 |
-
|
36 |
-
// Retrieve the posts asking them to WordPress
|
37 |
-
$posts = get_posts($filters);
|
38 |
-
?>
|
39 |
-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
40 |
-
<html>
|
41 |
-
<head>
|
42 |
-
<title></title>
|
43 |
-
</head>
|
44 |
-
|
45 |
-
<body>
|
46 |
-
<br />
|
47 |
-
|
48 |
-
<table cellspacing="0" align="center" border="0" style="max-width:600px; width:600px; background-color: #eee;" cellpadding="0" width="600px">
|
49 |
-
<!-- Header -->
|
50 |
-
<tr style="background: #455560; background-image: url(<?php echo plugins_url('header.jpg', __FILE__); ?>); height:80px;width:600px;" cellspacing="0" border="0" align="center" cellpadding="0" width="600" height="80">
|
51 |
-
<td height="80" width="600" style="color: #fff; font-size: 30px; font-family: Arial;" align="center" valign="middle">
|
52 |
-
<?php echo get_option('blogname'); ?>
|
53 |
-
</td>
|
54 |
-
</tr>
|
55 |
-
<tr style="background: #d0d0d0; height:20px;width:600px;">
|
56 |
-
<td valign="top" height="20" width="600" bgcolor="#ffffff" align="center" style="font-family: Arial; font-size: 12px">
|
57 |
-
<?php echo get_option('blogdescription'); ?>
|
58 |
-
</td>
|
59 |
-
</tr>
|
60 |
-
<tr>
|
61 |
-
<td>
|
62 |
-
<table cellspacing="0" border="0" style="max-width:600px; width:600px; background-color: #eee;font-family:helvetica,arial,sans-serif;color:#555;font-size:13px;line-height:15px;" align="center" cellpadding="20" width="600px">
|
63 |
-
<tr>
|
64 |
-
<td>
|
65 |
-
<table cellpadding="0" cellspacing="0" border="0" bordercolor="" width="100%" bgcolor="#ffffff">
|
66 |
-
<?php
|
67 |
-
// Do not use &post, it leads to problems...
|
68 |
-
foreach ($posts as $post) {
|
69 |
-
|
70 |
-
// Setup the post (WordPress requirement)
|
71 |
-
setup_postdata($post);
|
72 |
-
|
73 |
-
// The theme can "suggest" a subject replacing the one configured, for example. In this case
|
74 |
-
// the theme, is there is no subject, suggest the first post title.
|
75 |
-
if (empty($theme_options['subject']))
|
76 |
-
$theme_options['subject'] = $post->post_title;
|
77 |
-
|
78 |
-
// Extract a thumbnail, return null if no thumb can be found
|
79 |
-
$image = nt_post_image(get_the_ID());
|
80 |
-
?>
|
81 |
-
<tr>
|
82 |
-
<td style="font-family: Arial; font-size: 12px">
|
83 |
-
<?php if ($image != null) { ?>
|
84 |
-
<img src="<?php echo $image; ?>" alt="picture" align="left" width="100" height="100" style="margin-right: 10px"/>
|
85 |
-
<?php } ?>
|
86 |
-
<a target="_tab" href="<?php echo get_permalink(); ?>" style="color: #000; text-decoration: none"><b><?php the_title(); ?></b></a><br />
|
87 |
-
|
88 |
-
<?php the_excerpt(); ?>
|
89 |
-
</td>
|
90 |
-
</tr>
|
91 |
-
<?php
|
92 |
-
}
|
93 |
-
?>
|
94 |
-
</table>
|
95 |
-
|
96 |
-
</td>
|
97 |
-
</tr>
|
98 |
-
</table>
|
99 |
-
</td>
|
100 |
-
</tr>
|
101 |
-
<?php if (!isset($theme_options['theme_social_disable'])) { ?>
|
102 |
-
<tr>
|
103 |
-
<td style="font-family: Arial; font-size: 12px">
|
104 |
-
<?php include WP_PLUGIN_DIR . '/newsletter/emails/themes/default/social.php'; ?>
|
105 |
-
</td>
|
106 |
-
</tr>
|
107 |
-
<?php } ?>
|
108 |
-
<tr>
|
109 |
-
<td bgcolor="#ffffff" style="font-family: Arial; font-size: 12px">
|
110 |
-
|
111 |
-
This email was sent to <b>{email}</b> because you opted in on <?php echo get_option('blogname'); ?> website.
|
112 |
-
<br />
|
113 |
-
|
114 |
-
<a target="_tab" href="{profile_url}">Manage the subscription</a> |
|
115 |
-
|
116 |
-
<a target="_tab" href="{unsubscription_url}">Unsubscribe</a>
|
117 |
-
</td>
|
118 |
-
</tr>
|
119 |
-
</table>
|
120 |
-
</body>
|
121 |
-
</html>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/vimeo-like/bg_header_email.gif
DELETED
Binary file
|
trunk/emails/themes/vimeo-like/screenshot.png
DELETED
Binary file
|
trunk/emails/themes/vimeo-like/theme-options.php
DELETED
@@ -1,60 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* This is a pre packaged theme options page. Every option name
|
4 |
-
* must start with "theme_" so Newsletter can distinguish them from other
|
5 |
-
* options that are specific to the object using the theme.
|
6 |
-
*
|
7 |
-
* An array of theme default options should always be present and that default options
|
8 |
-
* should be merged with the current complete set of options as shown below.
|
9 |
-
*
|
10 |
-
* Every theme can define its own set of options, the will be used in the theme.php
|
11 |
-
* file while composing the email body. Newsletter knows nothing about theme options
|
12 |
-
* (other than saving them) and does not use or relies on any of them.
|
13 |
-
*
|
14 |
-
* For multilanguage purpose you can actually check the constants "WP_LANG", until
|
15 |
-
* a decent system will be implemented.
|
16 |
-
*/
|
17 |
-
$theme_defaults = array(
|
18 |
-
'theme_max_posts'=>5,
|
19 |
-
'theme_read_more'=>'Read More',
|
20 |
-
'theme_pre_message'=>'This email has been sent to {email} because subscribed and confirmed on ' . get_option('blogname') . '. <a href="{profile_url}">Click here to modify you subscription or unsubscribe</a>.',
|
21 |
-
'theme_categories'=>array()
|
22 |
-
);
|
23 |
-
|
24 |
-
// Mandatory!
|
25 |
-
$controls->merge_defaults($theme_defaults);
|
26 |
-
?>
|
27 |
-
|
28 |
-
<table class="form-table">
|
29 |
-
<tr valign="top">
|
30 |
-
<th>Max new posts to include</th>
|
31 |
-
<td>
|
32 |
-
<?php $controls->text('theme_max_posts', 5); ?> (it defaults to 10 if empty or invalid)
|
33 |
-
</td>
|
34 |
-
</tr>
|
35 |
-
<tr valign="top">
|
36 |
-
<th>Categories to include</th>
|
37 |
-
<td><?php $controls->categories_group('theme_categories'); ?></td>
|
38 |
-
</tr>
|
39 |
-
<tr>
|
40 |
-
<th>Post types</th>
|
41 |
-
<td>
|
42 |
-
<?php $controls->post_types('theme_post_types'); ?>
|
43 |
-
<p class="description">Leave all uncheck for a default behavior.</p>
|
44 |
-
</td>
|
45 |
-
</tr>
|
46 |
-
<tr valign="top">
|
47 |
-
<th>Pre message</th>
|
48 |
-
<td>
|
49 |
-
<?php $controls->text('theme_pre_message', 70); ?>
|
50 |
-
</td>
|
51 |
-
</tr>
|
52 |
-
<tr valign="top">
|
53 |
-
<th>Read more label</th>
|
54 |
-
<td>
|
55 |
-
<?php $controls->text('theme_read_more'); ?>
|
56 |
-
</td>
|
57 |
-
</tr>
|
58 |
-
</table>
|
59 |
-
|
60 |
-
<?php include WP_PLUGIN_DIR . '/newsletter/emails/themes/default/social-options.php'; ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/vimeo-like/theme-text.php
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
This email requires a modern e-mail reader but you can view the email online here:
|
2 |
-
|
3 |
-
{email_url}.
|
4 |
-
|
5 |
-
Thank you, <?php echo wp_specialchars_decode(get_option('blogname'), ENT_QUOTES); ?>
|
6 |
-
|
7 |
-
To change your subscription follow:
|
8 |
-
{profile_url}.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/vimeo-like/theme.php
DELETED
@@ -1,152 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
global $newsletter; // Newsletter object
|
3 |
-
global $post; // Current post managed by WordPress
|
4 |
-
|
5 |
-
/*
|
6 |
-
* Some variabled are prepared by Newsletter Plus and are available inside the theme,
|
7 |
-
* for example the theme options used to build the email body as configured by blog
|
8 |
-
* owner.
|
9 |
-
*
|
10 |
-
* $theme_options - is an associative array with theme options: every option starts
|
11 |
-
* with "theme_" as required. See the theme-options.php file for details.
|
12 |
-
* Inside that array there are the autmated email options as well, if needed.
|
13 |
-
* A special value can be present in theme_options and is the "last_run" which indicates
|
14 |
-
* when th automated email has been composed last time. Is should be used to find if
|
15 |
-
* there are now posts or not.
|
16 |
-
*
|
17 |
-
* $is_test - if true it means we are composing an email for test purpose.
|
18 |
-
*/
|
19 |
-
|
20 |
-
|
21 |
-
// This array will be passed to WordPress to extract the posts
|
22 |
-
$filters = array();
|
23 |
-
|
24 |
-
// Maximum number of post to retrieve
|
25 |
-
$filters['posts_per_page'] = (int) $theme_options['theme_max_posts'];
|
26 |
-
if ($filters['posts_per_page'] == 0) {
|
27 |
-
$filters['posts_per_page'] = 10;
|
28 |
-
}
|
29 |
-
|
30 |
-
|
31 |
-
// Include only posts from specified categories. Do not filter per category is no
|
32 |
-
// one category has been selected.
|
33 |
-
if (is_array($theme_options['theme_categories'])) {
|
34 |
-
$filters['cat'] = implode(',', $theme_options['theme_categories']);
|
35 |
-
}
|
36 |
-
|
37 |
-
if (!empty($theme_options['theme_post_types'])) {
|
38 |
-
$filters['post_type'] = $theme_options['theme_post_types'];
|
39 |
-
}
|
40 |
-
|
41 |
-
// Retrieve the posts asking them to WordPress
|
42 |
-
$posts = get_posts($filters);
|
43 |
-
|
44 |
-
// Styles
|
45 |
-
$color = $theme_options['theme_color'];
|
46 |
-
if (empty($color))
|
47 |
-
$color = '#777';
|
48 |
-
|
49 |
-
$font = $theme_options['theme_font'];
|
50 |
-
$font_size = $theme_options['theme_font_size'];
|
51 |
-
?>
|
52 |
-
<!DOCTYPE html>
|
53 |
-
<html>
|
54 |
-
<head>
|
55 |
-
<title></title>
|
56 |
-
<style>
|
57 |
-
* {
|
58 |
-
font-family: <?php echo $font; ?>;
|
59 |
-
font-size: <?php echo $font_size; ?>;
|
60 |
-
}
|
61 |
-
</style>
|
62 |
-
</head>
|
63 |
-
<body style="font:normal 11px helvetica,sans-serif;">
|
64 |
-
|
65 |
-
<table style="background:#ffffff" width="600" align="center" border="0" cellpadding="0" cellspacing="0">
|
66 |
-
|
67 |
-
<tr>
|
68 |
-
<td style="color:#9ab;font:normal 11px helvetica,sans-serif;text-align:center;padding:10px 0 20px 0"><?php echo $theme_options['theme_pre_message']; ?></td>
|
69 |
-
</tr>
|
70 |
-
|
71 |
-
<tr>
|
72 |
-
<td><img src="<?php echo $theme_url; ?>/bg_header_email.gif" alt=""></td>
|
73 |
-
</tr>
|
74 |
-
|
75 |
-
<tr>
|
76 |
-
|
77 |
-
<td style="border:1px dotted #e1e2e3;border-top:none;border-bottom:3px solid #e1e2e3;background:#ffffff">
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
<table width="100%" align="center" border="0" cellpadding="20" cellspacing="0">
|
82 |
-
|
83 |
-
<tr>
|
84 |
-
<td style="background:#ffffff">
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
<p style="color:#456;font-family:arial,sans-serif;font-size:24px;line-height:1.2;margin:15px 0;padding:0"><a target="_tab" href="<?php echo get_option('home'); ?>" style="color:#28c;text-decoration:none" target="_blank"><?php echo get_option('blogname'); ?></a></p>
|
89 |
-
|
90 |
-
|
91 |
-
<?php
|
92 |
-
foreach ($posts as $post) {
|
93 |
-
setup_postdata($post);
|
94 |
-
$image = nt_post_image(get_the_ID(), 'thumbnail');
|
95 |
-
?>
|
96 |
-
|
97 |
-
|
98 |
-
<table style="width:100%;color:#456;font:normal 12px/1.5em helvetica,sans-serif;margin:15px 0 0 0;padding:0 0 15px 0;border-bottom:1px dotted #e1e2e3">
|
99 |
-
|
100 |
-
<tbody><tr>
|
101 |
-
|
102 |
-
<td style="width:100%;padding:0 10px 0 0;vertical-align:top">
|
103 |
-
|
104 |
-
<p style="font-family:arial,sans-serif;color:#456;font-size:20px;line-height:22px;margin:0;padding:0"><strong><a target="_tab" href="<?php echo get_permalink(); ?>" style="color:#456;text-decoration:none" target="_blank"><?php the_title(); ?></a></strong></p>
|
105 |
-
|
106 |
-
<p style="font-family:arial,sans-serif;line-height:1.5em;margin:15px 0;padding:0"><?php the_excerpt(); ?>. </p>
|
107 |
-
|
108 |
-
</td>
|
109 |
-
|
110 |
-
<td style="vertical-align:middle; width: 100px">
|
111 |
-
|
112 |
-
<a target="_tab" href="<?php echo get_permalink(); ?>" target="_blank"><img src="<?php echo $image; ?>" alt="" width="100" border="0" height="100"></a>
|
113 |
-
|
114 |
-
<p style="background:#2786c2;text-align:center;margin:10px 0 0 0;font-size:11px;line-height:14px;font-family:arial,sans-serif;padding:4px 2px;border-radius:4px"><a target="_tab" href="<?php echo get_permalink(); ?>" style="color:#fff;text-decoration:none" target="_blank"><strong><?php echo $theme_options['theme_read_more']; ?></strong></a></p>
|
115 |
-
|
116 |
-
</td>
|
117 |
-
|
118 |
-
</tr>
|
119 |
-
|
120 |
-
</tbody></table>
|
121 |
-
|
122 |
-
<br>
|
123 |
-
<?php
|
124 |
-
}
|
125 |
-
?>
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
<br><br>
|
131 |
-
<p style="color:#456;font-family:arial,sans-serif;font-size:12px;line-height:1.6em;font-style:italic;margin:0 0 15px 0;padding:0">
|
132 |
-
To change your subscription, <a target="_blank" href="{profile_url}">click here</a>.
|
133 |
-
</p>
|
134 |
-
</td>
|
135 |
-
</tr>
|
136 |
-
|
137 |
-
</table>
|
138 |
-
</td>
|
139 |
-
</tr>
|
140 |
-
|
141 |
-
<?php if (!isset($theme_options['theme_social_disable'])) { ?>
|
142 |
-
<tr>
|
143 |
-
<td style="font:normal 11px helvetica,sans-serif;">
|
144 |
-
<?php include WP_PLUGIN_DIR . '/newsletter/emails/themes/default/social.php'; ?>
|
145 |
-
</td>
|
146 |
-
</tr>
|
147 |
-
<?php } ?>
|
148 |
-
</table>
|
149 |
-
|
150 |
-
</body>
|
151 |
-
</html>
|
152 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/themes/xmas-2014/images/footer.png
DELETED
Binary file
|
trunk/emails/themes/xmas-2014/images/header.png
DELETED
Binary file
|
trunk/emails/themes/xmas-2014/screenshot.png
DELETED
Binary file
|
trunk/emails/themes/xmas-2014/theme.php
DELETED
@@ -1,122 +0,0 @@
|
|
1 |
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
2 |
-
<html xmlns="http://www.w3.org/1999/xhtml">
|
3 |
-
<head>
|
4 |
-
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
5 |
-
<title></title>
|
6 |
-
|
7 |
-
<style type="text/css">
|
8 |
-
.ExternalClass {width:100%;}
|
9 |
-
|
10 |
-
.ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div {
|
11 |
-
line-height: 100%;
|
12 |
-
}
|
13 |
-
|
14 |
-
body {-webkit-text-size-adjust:none; -ms-text-size-adjust:none;}
|
15 |
-
|
16 |
-
body {margin:0; padding:0;}
|
17 |
-
|
18 |
-
table td {border-collapse:collapse;}
|
19 |
-
|
20 |
-
p {margin:0; padding:0; margin-bottom:1em;}
|
21 |
-
|
22 |
-
h1, h2, h3, h4, h5, h6 {
|
23 |
-
color: #666;
|
24 |
-
line-height: 100%;
|
25 |
-
}
|
26 |
-
|
27 |
-
a, a:link {
|
28 |
-
color:#2A5DB0;
|
29 |
-
text-decoration: underline;
|
30 |
-
}
|
31 |
-
|
32 |
-
body, #body_style {
|
33 |
-
background:#A52B00;
|
34 |
-
min-height:1000px;
|
35 |
-
xcolor:#000;
|
36 |
-
font-family:Arial, Helvetica, sans-serif;
|
37 |
-
font-size:14px;
|
38 |
-
}
|
39 |
-
|
40 |
-
span.yshortcuts { color:#000; background-color:none; border:none;}
|
41 |
-
span.yshortcuts:hover,
|
42 |
-
span.yshortcuts:active,
|
43 |
-
span.yshortcuts:focus {color:#000; background-color:none; border:none;}
|
44 |
-
|
45 |
-
a:visited { color: #3c96e2; text-decoration: none}
|
46 |
-
a:focus { color: #3c96e2; text-decoration: underline}
|
47 |
-
a:hover { color: #3c96e2; text-decoration: underline}
|
48 |
-
|
49 |
-
@media only screen and (max-device-width: 480px) {
|
50 |
-
|
51 |
-
|
52 |
-
body[yahoo] #container1 {display:block !important}
|
53 |
-
body[yahoo] p {font-size: 10px}
|
54 |
-
|
55 |
-
}
|
56 |
-
|
57 |
-
@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) {
|
58 |
-
|
59 |
-
|
60 |
-
body[yahoo] #container1 {display:block !important}
|
61 |
-
body[yahoo] p {font-size: 14px}
|
62 |
-
|
63 |
-
}
|
64 |
-
|
65 |
-
</style>
|
66 |
-
|
67 |
-
|
68 |
-
</head>
|
69 |
-
<body style="margin-top: 0; background:#A52B00; min-height:1000px; color:#000;font-family:Arial, Helvetica, sans-serif; font-size:14px"
|
70 |
-
alink="#FF0000" link="#FF0000" bgcolor="#A52B00" text="#000000" yahoo="fix">
|
71 |
-
|
72 |
-
<div id="body_style" style="padding:0px">
|
73 |
-
|
74 |
-
<table cellpadding="0" cellspacing="0" border="0" bgcolor="#ffffff" width="600" align="center">
|
75 |
-
<tr>
|
76 |
-
<td width="600" colspan="3"><img src="<?php echo $theme_url; ?>/images/header.png"></td>
|
77 |
-
</tr>
|
78 |
-
<tr>
|
79 |
-
<td width="600" align="center" colspan="3">
|
80 |
-
<h1><?php echo get_option('blogname'); ?></h1>
|
81 |
-
</td>
|
82 |
-
</tr>
|
83 |
-
<tr>
|
84 |
-
<td width="20"> </td>
|
85 |
-
<td width="560">
|
86 |
-
<p>Hi {name},</p>
|
87 |
-
|
88 |
-
<p>The Newsletter Team wishes you merry Christmas and happy New Year. This time of year is special for us and we would like
|
89 |
-
to share this time with you, also.</p>
|
90 |
-
|
91 |
-
<p>We'll take a rest for few days with our families but we have a <strong>big surprise</strong> for YOU that will
|
92 |
-
be unvealed the first days of the New Year.</p>
|
93 |
-
|
94 |
-
<p>Curious? You can <a href="<?php echo get_option('blogname'); ?>">discover a little more right now</a>.</p>
|
95 |
-
|
96 |
-
<p>
|
97 |
-
See you soon, TNT.<br>
|
98 |
-
<a href="<?php echo get_option('blogname'); ?>">http://www.thenewsletterplugin.com</a>
|
99 |
-
</p>
|
100 |
-
|
101 |
-
</td>
|
102 |
-
<td width="20"> </td>
|
103 |
-
</tr>
|
104 |
-
<td width="600" colspan="3">
|
105 |
-
<?php include WP_PLUGIN_DIR . '/newsletter/emails/themes/default/social.php'; ?>
|
106 |
-
</td>
|
107 |
-
<tr>
|
108 |
-
<td width="20"> </td>
|
109 |
-
<td width="560" style="color:#666">
|
110 |
-
<p>To change your subscription, <a target="_blank" href="{profile_url}">click here</a>.
|
111 |
-
</td>
|
112 |
-
<td width="20"> </td>
|
113 |
-
</tr>
|
114 |
-
<tr>
|
115 |
-
<td width="600" colspan="3" bgcolor="#A52B00"><img src="<?php echo $theme_url; ?>/images/footer.png"></td>
|
116 |
-
</tr>
|
117 |
-
</table>
|
118 |
-
|
119 |
-
</div>
|
120 |
-
|
121 |
-
</body>
|
122 |
-
</html>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/emails/tnp-composer/_assets/background.png
DELETED
Binary file
|
trunk/emails/tnp-composer/_css/Icomoon/icomoon.eot
DELETED
Binary file
|
trunk/emails/tnp-composer/_css/Icomoon/icomoon.svg
DELETED
@@ -1,2334 +0,0 @@
|
|
1 |
-
<?xml version="1.0" standalone="no"?>
|
2 |
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
3 |
-
<svg xmlns="http://www.w3.org/2000/svg">
|
4 |
-
<metadata>
|
5 |
-
This is a custom SVG font generated by IcoMoon.
|
6 |
-
|
7 |
-
</metadata>
|
8 |
-
<defs>
|
9 |
-
<font id="IcoMoon" horiz-adv-x="512" >
|
10 |
-
<font-face units-per-em="512" ascent="480" descent="-32" />
|
11 |
-
<missing-glyph horiz-adv-x="512" />
|
12 |
-
<glyph unicode="" d="M 256.00,448.00L0.00,192.00l 48.00-48.00l 48.00,48.00l 32.00-192.00l 128.00,0.00 l 128.00,0.00 l 32.00,192.00l 48.00-48.00l 48.00,48.00L 256.00,448.00z M 256.00,242.746c-24.994,0.00-45.256,20.26-45.256,45.254
|
13 |
-
s 20.262,45.255, 45.256,45.255c 24.992,0.00, 45.255-20.262, 45.255-45.255C 301.255,263.006, 280.992,242.746, 256.00,242.746z" />
|
14 |
-
<glyph unicode="" d="M 256.00,448.00L0.00,192.00l 48.00-48.00l 48.00,48.00l 32.00-192.00l 96.00,0.00 l0.00,96.00 l 64.00,0.00 l0.00-96.00 l 96.00,0.00 l 32.00,192.00l 48.00-48.00l 48.00,48.00L 256.00,448.00z M 256.00,242.746
|
15 |
-
c-24.994,0.00-45.256,20.26-45.256,45.254s 20.262,45.255, 45.256,45.255c 24.992,0.00, 45.255-20.262, 45.255-45.255
|
16 |
-
C 301.255,263.006, 280.992,242.746, 256.00,242.746z" />
|
17 |
-
<glyph unicode="" d="M 448.00,352.00L 448.00,416.00 L0.00,416.00 l0.00-352.00 c0.00-17.673, 14.327-32.00, 32.00-32.00l 432.00,0.00 c 26.511,0.00, 48.00,21.489, 48.00,48.00L 512.00,352.00 L 448.00,352.00 z M 416.00,64.00L 32.00,64.00 L 32.00,384.00 l 384.00,0.00 L 416.00,64.00 zM 64.00,320.00L 384.00,320.00L 384.00,288.00L 64.00,288.00zM 256.00,256.00L 384.00,256.00L 384.00,224.00L 256.00,224.00zM 256.00,192.00L 384.00,192.00L 384.00,160.00L 256.00,160.00zM 256.00,128.00L 352.00,128.00L 352.00,96.00L 256.00,96.00zM 64.00,256.00L 224.00,256.00L 224.00,96.00L 64.00,96.00z" />
|
18 |
-
<glyph unicode="" d="M 488.00,456.00c-32.00,32.00-64.00,32.00-96.00,0.00l-8.00-8.00l 96.00-96.00l 8.00,8.00C 520.00,392.00, 520.00,424.00, 488.00,456.00zM 32.00,96.00L0.00-32.00l 128.00,32.00l 320.00,320.00l-96.00,96.00L 32.00,96.00z M 128.00,64.00l-32.00,32.00l 256.00,256.00l 32.00-32.00L 128.00,64.00z" />
|
19 |
-
<glyph unicode="" d="M 192.00,160.00L 256.00,192.00L 480.00,416.00L 448.00,448.00L 224.00,224.00 zM 144.65,36.451c-15.816,33.364-42.833,60.381-76.198,76.198l 38.99,129.968L 192.00,288.00L 384.00,480.00l-96.00,0.00 L 96.00,288.00L0.00-32.00l 320.00,96.00l 192.00,192.00
|
20 |
-
l0.00,96.00 L 320.00,160.00l-45.383-84.559" />
|
21 |
-
<glyph unicode="" d="M0.00,416.00l0.00-384.00 l 512.00,0.00 L 512.00,416.00 L0.00,416.00 z M 480.00,64.00l-32.00,0.00 l-96.00,144.00l-64.00-48.00L 160.00,320.00L 64.00,64.00L 32.00,64.00 L 32.00,384.00 l 448.00,0.00 L 480.00,64.00 zM 352.00,304.00A48.00,48.00 4860.00 1,0 448.00,304A48.00,48.00 4860.00 1,0 352.00,304z" />
|
22 |
-
<glyph unicode="" d="M 416.00,192.113c-32.00,0.00-64.00-32.113-96.00-32.113s-32.00,128.00-96.00,128.00S 96.00,224.00, 64.00,96.00c0.00,0.00, 352.00,0.00, 384.00,0.00
|
23 |
-
C 448.00,95.999, 448.00,192.113, 416.00,192.113zM0.00,384.00l0.00-352.00 l 512.00,0.00 L 512.00,384.00 L0.00,384.00 z M 480.00,64.00L 32.00,64.00 L 32.00,352.00 l 448.00,0.00 L 480.00,64.00 zM 352.00,272.00A48.00,48.00 4860.00 1,0 448.00,272A48.00,48.00 4860.00 1,0 352.00,272z" />
|
24 |
-
<glyph unicode="" d="M 154.007,208.00A101.993,101.993 4860.00 1,0 357.993,208A101.993,101.993 4860.00 1,0 154.007,208zM 480.00,352.00L 368.00,352.00 c-8.00,32.00-16.00,64.00-48.00,64.00L 192.00,416.00 c-32.00,0.00-40.00-32.00-48.00-64.00L 32.00,352.00 c-17.60,0.00-32.00-14.40-32.00-32.00l0.00-256.00 c0.00-17.60, 14.40-32.00, 32.00-32.00l 448.00,0.00
|
25 |
-
c 17.60,0.00, 32.00,14.40, 32.00,32.00L 512.00,320.00 C 512.00,337.60, 497.60,352.00, 480.00,352.00z M 256.00,64.00c-79.529,0.00-144.00,64.471-144.00,144.00c0.00,79.529, 64.471,144.00, 144.00,144.00
|
26 |
-
c 79.529,0.00, 144.00-64.471, 144.00-144.00C 400.00,128.471, 335.53,64.00, 256.00,64.00z M 480.00,288.00l-64.00,0.00 l0.00,32.00 l 64.00,0.00 L 480.00,288.00 z" />
|
27 |
-
<glyph unicode="" d="M 155.755,448.451l-13.09-340.294c-17.465,8.962-39.377,12.84-62.368,9.578c-49.574-7.021-85.271-44.418-79.729-83.517
|
28 |
-
c 5.543-39.102, 50.223-65.101, 99.795-58.078c 43.996,6.235, 77.021,36.395, 80.022,70.43l 0.01-0.019c 0.006,0.077, 0.011,0.193, 0.018,0.28
|
29 |
-
c 0.073,0.865, 0.115,1.741, 0.147,2.611c 1.846,35.143, 13.148,302.082, 13.148,302.082l 278.355,28.679l-12.572-240.41
|
30 |
-
c-17.863,9.942-40.822,14.371-64.964,10.95c-49.574-7.028-85.268-44.417-79.726-83.521c 5.541-39.098, 50.221-65.102, 99.795-58.071
|
31 |
-
c 44.933,6.36, 78.41,37.682, 80.166,72.604l 0.021,0.021C 495.742,97.752, 512.00,473.005, 512.00,473.005L 155.755,448.451z" />
|
32 |
-
<glyph unicode="" d="M 490.594,399.946C 418.778,410.271, 339.428,416.00, 256.001,416.00c-83.43,0.00-162.778-5.729-234.597-16.054
|
33 |
-
C 7.639,346.083,0.00,286.571,0.00,224.00c0.00-62.57, 7.639-122.083, 21.404-175.945C 93.223,37.729, 172.572,32.00, 256.001,32.00
|
34 |
-
c 83.427,0.00, 162.776,5.729, 234.593,16.055C 504.36,101.917, 512.00,161.43, 512.00,224.00C 512.00,286.571, 504.36,346.083, 490.594,399.946z
|
35 |
-
M 192.001,128.00L 192.001,320.00 l 160.00-96.00L 192.001,128.00z" />
|
36 |
-
<glyph unicode="" d="M0.00,416.00l0.00-384.00 l 512.00,0.00 L 512.00,416.00 L0.00,416.00 z M 96.00,64.00L 32.00,64.00 l0.00,64.00 l 64.00,0.00 L 96.00,64.00 z M 96.00,192.00L 32.00,192.00 l0.00,64.00 l 64.00,0.00 L 96.00,192.00 z M 96.00,320.00L 32.00,320.00 L 32.00,384.00 l 64.00,0.00 L 96.00,320.00 z M 384.00,64.00L 128.00,64.00 L 128.00,384.00 l 256.00,0.00 L 384.00,64.00 z
|
37 |
-
M 480.00,64.00l-64.00,0.00 l0.00,64.00 l 64.00,0.00 L 480.00,64.00 z M 480.00,192.00l-64.00,0.00 l0.00,64.00 l 64.00,0.00 L 480.00,192.00 z M 480.00,320.00l-64.00,0.00 L 416.00,384.00 l 64.00,0.00 L 480.00,320.00 zM 192.00,320.00L 192.00,128.00L 320.00,224.00 z" />
|
38 |
-
<glyph unicode="" d="M 288.00,352.00L 64.00,352.00 c-17.601,0.00-32.00-14.399-32.00-32.00l0.00-192.00 c0.00-17.60, 14.399-32.00, 32.00-32.00l 224.00,0.00 c 17.601,0.00, 32.00,14.40, 32.00,32.00L 320.00,320.00
|
39 |
-
C 320.00,337.601, 305.601,352.00, 288.00,352.00zM 352.00,242.286L 352.00,205.715L 480.00,96.00L 480.00,352.00 z" />
|
40 |
-
<glyph unicode="" d="M 408.785,305.925C 312.002,377.854, 278.652,435.434, 256.002,479.999l0.00,0.00C 256.00,479.999, 256.00,480.00, 256.00,480.00l0.00-0.001
|
41 |
-
c-22.648-44.565-56.00-102.146-152.783-174.074c-165.018-122.643-9.688-293.834, 126.879-199.612
|
42 |
-
c-8.898-58.465-39.265-101.086-70.104-119.441L 159.992-32.00 l 96.008,0.00 l 96.008,0.00 l0.00,18.87 c-30.841,18.354-61.205,60.977-70.106,119.442
|
43 |
-
C 418.47,12.089, 573.802,183.282, 408.785,305.925z" />
|
44 |
-
<glyph unicode="" d="M 393.416,283.614c-29.516,0.00-56.043-12.298-74.926-32.347c-7.998-8.492-21.881-18.556-36.90-27.405
|
45 |
-
c 7.055,26.934, 29.338,60.85, 44.814,75.728c 19.82,19.085, 31.992,45.915, 31.992,75.75C 358.399,432.787, 312.658,479.388, 256.002,480.00
|
46 |
-
c-56.66-0.611-102.398-47.213-102.398-104.659c0.00-29.836, 12.172-56.665, 31.993-75.75c 15.477-14.878, 37.76-48.794, 44.814-75.728
|
47 |
-
c-15.021,8.85-28.903,18.913-36.90,27.405c-18.884,20.049-45.41,32.347-74.925,32.347c-57.193,0.00-103.54-46.832-103.54-104.664
|
48 |
-
c0.00-57.819, 46.346-104.669, 103.54-104.669c 29.521,0.00, 56.041,12.678, 74.925,32.726c 8.402,8.936, 23.222,20.069, 39.146,29.316
|
49 |
-
c-1.501-73.846-36.766-128.084-72.659-149.453L 159.998-32.00 l 96.005,0.00 l 96.002,0.00 l0.00,18.87 c-35.896,21.368-71.16,75.608-72.66,149.453
|
50 |
-
c 15.926-9.247, 30.744-20.384, 39.146-29.316c 18.883-20.047, 45.404-32.726, 74.926-32.726c 57.193,0.00, 103.539,46.85, 103.539,104.669
|
51 |
-
C 496.955,236.782, 450.61,283.614, 393.416,283.614z" />
|
52 |
-
<glyph unicode="" d="M 256.00,480.00L 96.00,224.00L 256.00-32.00L 416.00,224.00 z" />
|
53 |
-
<glyph unicode="" d="M 224.00,288.00L 96.00-32.00l 48.596,0.00 L 256.00,65.479L 367.406-32.00L 416.00-32.00 L 288.00,288.00L 224.00,288.00 z M 149.024,14.395l 42.871,107.179l 39.81-34.833
|
54 |
-
L 149.024,14.395z M 362.978,14.396l-82.68,72.344l 39.809,34.833L 362.978,14.396z M 256.00,108.00l-51.507,45.068L 245.665,256.00l 20.67,0.00
|
55 |
-
l 41.173-102.932L 256.00,108.00zM 366.871,415.999C 377.764,397.172, 384.00,375.314, 384.00,352.00s-6.236-45.172-17.129-63.999l 27.72-16.00
|
56 |
-
C 408.204,295.535, 416.00,322.856, 416.00,352.00s-7.796,56.465-21.409,79.999L 366.871,415.999zM 145.128,288.001C 134.238,306.828, 128.00,328.686, 128.00,352.00s 6.236,45.172, 17.128,63.999L 117.41,431.998
|
57 |
-
C 103.796,408.464, 96.00,381.144, 96.00,352.00s 7.796-56.464, 21.41-79.999L 145.128,288.001zM 34.252,480.00C 12.47,442.345,0.00,398.629,0.00,352.00s 12.47-90.345, 34.252-127.999l 27.719,16.00C 42.911,272.948, 32.00,311.199, 32.00,352.00
|
58 |
-
S 42.911,431.052, 61.971,464.00L 34.252,480.00zM 512.00,352.00c0.00,46.63-12.47,90.346-34.253,128.00l0.00,0.00L 450.03,464.00C 469.09,431.052, 480.00,392.801, 480.00,352.00s-10.91-79.053-29.971-112.00
|
59 |
-
l 27.718-16.00l0.00,0.00C 499.531,261.654, 512.00,305.37, 512.00,352.00zM 224.00,352.00A32.00,32.00 4860.00 1,0 288.00,352A32.00,32.00 4860.00 1,0 224.00,352z" />
|
60 |
-
<glyph unicode="" d="M 240.00,128.00c 44.183,0.00, 80.00,35.817, 80.00,80.00L 320.00,400.00 c0.00,44.183-35.817,80.00-80.00,80.00s-80.00-35.817-80.00-80.00l0.00-192.00 C 160.00,163.817, 195.818,128.00, 240.00,128.00zM 352.00,256.00l0.00-48.00 c0.00-61.855-50.145-112.00-112.00-112.00c-61.856,0.00-112.00,50.145-112.00,112.00l0.00,48.00 L 96.00,256.00 l0.00-48.00 c0.00-74.119, 56.002-135.15, 128.00-143.11L 224.00,0.00
|
61 |
-
l-64.00,0.00 l0.00-32.00 l 64.00,0.00 l 32.00,0.00 l 64.00,0.00 l0.00,32.00 l-64.00,0.00 l0.00,64.89 c 71.997,7.96, 128.00,68.991, 128.00,143.11l0.00,48.00 L 352.00,256.00 z" />
|
62 |
-
<glyph unicode="" d="M 384.00,416.00c-49.179,0.00-94.03-18.498-128.00-48.905C 222.031,397.502, 177.179,416.00, 128.00,416.00S 33.969,397.502,0.00,367.096l0.00-8.596 l0.00-38.49 l0.00-192.004
|
63 |
-
L0.00,87.50 l0.00-6.576 c 0.342-0.306, 0.676-0.62, 1.02-0.924c 8.209-7.244, 17.04-13.798, 26.406-19.569c 9.43,7.631, 19.739,14.216, 30.761,19.569
|
64 |
-
c 21.098,10.248, 44.783,16.00, 69.813,16.00s 48.716-5.752, 69.813-16.00c 11.021-5.354, 21.331-11.938, 30.761-19.569
|
65 |
-
c 1.842-1.491, 3.65-3.022, 5.424-4.592c 8.108-7.178, 15.488-15.159, 22.002-23.83c 6.515,8.671, 13.894,16.652, 22.002,23.83
|
66 |
-
c 1.773,1.569, 3.581,3.101, 5.424,4.592c 9.43,7.631, 19.739,14.216, 30.761,19.569c 21.098,10.248, 44.783,16.00, 69.813,16.00
|
67 |
-
s 48.716-5.752, 69.813-16.00c 11.021-5.354, 21.331-11.938, 30.761-19.569c 9.366,5.771, 18.196,12.325, 26.405,19.569
|
68 |
-
c 0.344,0.304, 0.679,0.618, 1.021,0.924L 512.00,87.50 l0.00,40.506 L 512.00,320.01 L 512.00,358.50 l0.00,8.596 C 478.031,397.502, 433.179,416.00, 384.00,416.00z M 128.00,128.00
|
69 |
-
c-34.976,0.00-67.758-9.365-96.00-25.705L 32.00,352.007 C 58.741,372.095, 91.98,384.00, 128.00,384.00c 36.025,0.00, 69.258-11.919, 96.00-32.013l0.00-249.692
|
70 |
-
C 195.758,118.635, 162.976,128.00, 128.00,128.00z M 384.00,128.00c-34.976,0.00-67.758-9.365-96.00-25.705L 288.00,351.987 C 314.742,372.081, 347.976,384.00, 384.00,384.00
|
71 |
-
c 36.021,0.00, 69.259-11.906, 96.00-31.994l0.00-249.712 C 451.758,118.635, 418.976,128.00, 384.00,128.00z" />
|
72 |
-
<glyph unicode="" d="M 449.735,374.562l-75.173,87.703C 365.751,472.542, 349.534,480.00, 336.00,480.00L 80.00,480.00 C 62.355,480.00, 48.00,465.645, 48.00,448.00l0.00-448.00 c0.00-17.645, 14.355-32.00, 32.00-32.00
|
73 |
-
l 352.00,0.00 c 17.645,0.00, 32.00,14.355, 32.00,32.00L 464.00,336.00 C 464.00,348.702, 458.00,364.92, 449.735,374.562z M 352.00,459.633c 4.142-2.112, 7.88-4.826, 10.413-7.781
|
74 |
-
l 75.174-87.704c 2.65-3.092, 5.07-7.469, 6.913-12.148L 352.00,352.00 L 352.00,459.633 z M 448.00,0.00c0.00-8.80-7.20-16.00-16.00-16.00L 80.00-16.00 c-8.80,0.00-16.00,7.20-16.00,16.00L 64.00,448.00
|
75 |
-
c0.00,8.80, 7.20,16.00, 16.00,16.00l 256.00,0.00 l0.00-128.00 l 112.00,0.00 L 448.00,0.00 z" />
|
76 |
-
<glyph unicode="" d="M 352.00,480.00L 32.00,480.00 l0.00-512.00 l 448.00,0.00 L 480.00,352.00 L 352.00,480.00z M 448.00,0.00L 64.00,0.00 L 64.00,448.00 l 288.00,0.00 l0.00-96.00 l 96.00,0.00 L 448.00,0.00 z" />
|
77 |
-
<glyph unicode="" d="M 256.00-32.00L 256.00,192.00L 32.00,192.00 zM 32.00,480.00L 32.00,224.00L 288.00,224.00L 288.00-32.00L 480.00-32.00L 480.00,480.00 z" />
|
78 |
-
<glyph unicode="" d="M 224.00,288.00L 416.00,288.00L 416.00,256.00L 224.00,256.00zM 224.00,224.00L 416.00,224.00L 416.00,192.00L 224.00,192.00zM 224.00,160.00L 416.00,160.00L 416.00,128.00L 224.00,128.00zM 224.00,96.00L 352.00,96.00L 352.00,64.00L 224.00,64.00zM 480.00,384.00l-96.00,0.00 L 384.00,448.00 c0.00,17.60-14.40,32.00-32.00,32.00L 32.00,480.00 C 14.40,480.00,0.00,465.60,0.00,448.00l0.00-352.00 c0.00-17.60, 14.40-32.00, 32.00-32.00l 96.00,0.00 l0.00-64.00 c0.00-17.60, 14.40-32.00, 32.00-32.00l 320.00,0.00
|
79 |
-
c 17.60,0.00, 32.00,14.40, 32.00,32.00L 512.00,352.00 C 512.00,369.60, 497.60,384.00, 480.00,384.00z M 128.00,352.00l0.00-240.00 L 48.00,112.00 L 48.00,432.00 l 288.00,0.00 l0.00-48.00 L 160.00,384.00 C 142.40,384.00, 128.00,369.60, 128.00,352.00z M 464.00,16.00L 176.00,16.00
|
80 |
-
L 176.00,336.00 l 288.00,0.00 L 464.00,16.00 z" />
|
81 |
-
<glyph unicode="" d="M 492.25,352.00L 19.75,352.00 c-13.20,0.00-21.882-10.59-19.293-23.534l 58.836-272.932C 61.882,42.59, 74.80,32.00, 88.00,32.00l 336.00,0.00
|
82 |
-
c 13.20,0.00, 26.118,10.59, 28.707,23.534l 58.836,272.932C 514.132,341.41, 505.45,352.00, 492.25,352.00zM 448.00,392.00c0.00,13.255-10.745,24.00-24.00,24.00L 208.00,416.00 l-16.00,32.00L 88.00,448.00 c-13.255,0.00-24.00-10.745-24.00-24.00l0.00-56.00 l 384.00,0.00 L 448.00,392.00 z" />
|
83 |
-
<glyph unicode="" d="M 492.25,352.00L 448.00,352.00 L 448.00,392.00 c0.00,13.255-10.745,24.00-24.00,24.00L 208.00,416.00 l-16.00,32.00L 88.00,448.00 c-13.255,0.00-24.00-10.745-24.00-24.00l0.00-72.00 L 19.75,352.00
|
84 |
-
c-13.20,0.00-21.882-10.59-19.293-23.534l 58.836-272.932C 61.882,42.59, 74.80,32.00, 88.00,32.00l 336.00,0.00 c 13.20,0.00, 26.118,10.59, 28.707,23.534
|
85 |
-
l 58.836,272.932C 514.132,341.41, 505.45,352.00, 492.25,352.00z M 96.00,416.00l 76.223,0.00 l 16.00-32.00L 416.00,384.00 l0.00-32.00 L 96.00,352.00 L 96.00,416.00 z M 421.797,64.00L 90.203,64.00 L 35.017,320.00l 441.966,0.00
|
86 |
-
L 421.797,64.00z" />
|
87 |
-
<glyph unicode="" d="M 288.00,480.00L0.00,192.00l 224.00-224.00l 288.00,288.00L 512.00,480.00 L 288.00,480.00 z M 416.00,337.60c-25.626,0.00-46.399,20.773-46.399,46.40S 390.374,430.40, 416.00,430.40
|
88 |
-
s 46.40-20.773, 46.40-46.40S 441.626,337.60, 416.00,337.60z" />
|
89 |
-
<glyph unicode="" d="M 64.00,16.00A48.00,48.00 3060.00 1,0 160.00,16A48.00,48.00 3060.00 1,0 64.00,16zM 384.00,16.00A48.00,48.00 3060.00 1,0 480.00,16A48.00,48.00 3060.00 1,0 384.00,16zM 480.00,224.00L 480.00,416.00 L 64.00,416.00 C 64.00,451.346, 35.347,480.00,0.00,480.00l0.00-32.00 c 17.645,0.00, 32.00-14.355, 32.00-32.00l 24.037-206.027C 41.39,198.244, 32.00,180.223, 32.00,160.00
|
90 |
-
c0.00-35.347, 28.654-64.00, 64.00-64.00l 384.00,0.00 l0.00,32.00 L 96.00,128.00 c-17.673,0.00-32.00,14.327-32.00,32.00c0.00,0.11, 0.007,0.218, 0.008,0.328L 480.00,224.00z" />
|
91 |
-
<glyph unicode="" d="M 406.494,288.00L 317.573,403.765C 319.134,407.535, 320.00,411.666, 320.00,416.00c0.00,17.673-14.326,32.00-32.00,32.00c-17.673,0.00-32.00-14.327-32.00-32.00
|
92 |
-
s 14.327-32.00, 32.00-32.00c 1.421,0.00, 2.816,0.102, 4.188,0.282L 366.144,288.00L 145.857,288.00 l 73.956,96.282C 221.184,384.102, 222.58,384.00, 224.00,384.00
|
93 |
-
c 17.673,0.00, 32.00,14.327, 32.00,32.00s-14.327,32.00-32.00,32.00s-32.00-14.327-32.00-32.00c0.00-4.334, 0.866-8.465, 2.427-12.234L 105.506,288.00L0.00,288.00 l0.00-64.00 l 32.00,0.00 l 32.00-256.00l 384.00,0.00
|
94 |
-
l 32.00,256.00l 32.00,0.00 l0.00,64.00 L 406.494,288.00 z M 160.00,32.00L 96.00,32.00 l0.00,64.00 l 64.00,0.00 L 160.00,32.00 z M 160.00,160.00L 96.00,160.00 l0.00,64.00 l 64.00,0.00 L 160.00,160.00 z M 288.00,32.00l-64.00,0.00 l0.00,64.00 l 64.00,0.00 L 288.00,32.00 z M 288.00,160.00l-64.00,0.00 l0.00,64.00 l 64.00,0.00 L 288.00,160.00 z
|
95 |
-
M 416.00,32.00l-64.00,0.00 l0.00,64.00 l 64.00,0.00 L 416.00,32.00 z M 416.00,160.00l-64.00,0.00 l0.00,64.00 l 64.00,0.00 L 416.00,160.00 z" />
|
96 |
-
<glyph unicode="" d="M 192.00,480.00L 32.00,480.00 C 14.40,480.00,0.00,465.60,0.00,448.00l0.00-160.00 c0.00-17.60, 14.398-32.00, 32.00-32.00l 160.00,0.00 c 17.60,0.00, 32.00,14.40, 32.00,32.00L 224.00,448.00 C 224.00,465.60, 209.60,480.00, 192.00,480.00z M 192.00,352.00
|
97 |
-
L 32.00,352.00 L 32.00,384.00 l 160.00,0.00 L 192.00,352.00 zM 480.00,480.00L 320.00,480.00 c-17.602,0.00-32.00-14.40-32.00-32.00l0.00-448.00 c0.00-17.60, 14.398-32.00, 32.00-32.00l 160.00,0.00 c 17.60,0.00, 32.00,14.40, 32.00,32.00L 512.00,448.00 C 512.00,465.60, 497.60,480.00, 480.00,480.00z
|
98 |
-
M 480.00,160.00L 320.00,160.00 l0.00,32.00 l 160.00,0.00 L 480.00,160.00 z M 480.00,256.00L 320.00,256.00 l0.00,32.00 l 160.00,0.00 L 480.00,256.00 zM 192.00,192.00L 32.00,192.00 C 14.40,192.00,0.00,177.60,0.00,160.00l0.00-160.00 c0.00-17.60, 14.398-32.00, 32.00-32.00l 160.00,0.00 c 17.60,0.00, 32.00,14.40, 32.00,32.00L 224.00,160.00 C 224.00,177.60, 209.60,192.00, 192.00,192.00
|
99 |
-
z M 192.00,64.00l-64.00,0.00 l0.00-64.00 L 96.00,0.00 l0.00,64.00 L 32.00,64.00 l0.00,32.00 l 64.00,0.00 l0.00,64.00 l 32.00,0.00 l0.00-64.00 l 64.00,0.00 L 192.00,64.00 z" />
|
100 |
-
<glyph unicode="" d="M 256.00,480.00C 114.615,480.00,0.00,365.385,0.00,224.00s 114.615-256.00, 256.00-256.00s 256.00,114.615, 256.00,256.00S 397.385,480.00, 256.00,480.00z M 160.00,224.00
|
101 |
-
c0.00,53.02, 42.98,96.00, 96.00,96.00s 96.00-42.98, 96.00-96.00s-42.98-96.00-96.00-96.00S 160.00,170.98, 160.00,224.00z M 462.99,138.262L 462.99,138.262l-88.71,36.745
|
102 |
-
C 380.539,190.099, 384.00,206.645, 384.00,224.00s-3.461,33.901-9.72,48.993l 61.063,25.293l 27.647,11.452C 473.944,283.327, 480.00,254.373, 480.00,224.00
|
103 |
-
C 480.00,193.627, 473.943,164.673, 462.99,138.262L 462.99,138.262z M 341.739,430.99L 341.739,430.99L 341.739,430.99l-36.745-88.71
|
104 |
-
C 289.902,348.539, 273.356,352.00, 256.00,352.00s-33.901-3.461-48.993-9.72l-17.23,41.599l-19.515,47.112C 196.673,441.943, 225.628,448.00, 256.00,448.00
|
105 |
-
C 286.373,448.00, 315.327,441.943, 341.739,430.99z M 49.01,309.738l 47.112-19.515l 41.599-17.23C 131.462,257.901, 128.00,241.355, 128.00,224.00
|
106 |
-
s 3.461-33.901, 9.72-48.993l-88.71-36.745C 38.057,164.673, 32.00,193.627, 32.00,224.00C 32.00,254.373, 38.057,283.327, 49.01,309.738z
|
107 |
-
M 170.262,17.01l 11.452,27.647l 25.293,61.063C 222.099,99.461, 238.645,96.00, 256.00,96.00s 33.901,3.461, 48.993,9.72l 36.745-88.71l0.00,0.00l0.00,0.00
|
108 |
-
C 315.327,6.058, 286.373,0.00, 256.00,0.00C 225.628,0.00, 196.673,6.057, 170.262,17.01z" />
|
109 |
-
<glyph unicode="" d="M 321.788,108.854c-11.188-6.236-20.175-2.064-32.764,4.572c-11.46,8.748-45.402,35.438-81.226,71.188
|
110 |
-
c-26.156,33.084-46.162,64.288-55.375,79.293c-0.625,1.66-0.944,2.632-0.944,2.632c-5.397,13.476-8.771,22.92-1.324,33.521
|
111 |
-
c 6.854,9.727, 9.50,12.383, 18.24,20.108L 80.605,450.292c-10.604-7.728-27.018-25.106-40.509-44.378
|
112 |
-
c-12.538-18.317-23.154-38.587-26.049-53.055c 15.295-55.117, 52.258-157.896, 120.583-231.325l-0.021-0.308
|
113 |
-
C 200.339,40.198, 304.774-10.204, 360.18-32.00c 14.679,1.385, 35.938,9.844, 55.456,20.404c 20.598,11.415, 39.567,25.945, 48.329,35.685
|
114 |
-
L 343.677,124.918C 335.08,117.008, 332.179,114.664, 321.788,108.854zM 205.61,351.342c 7.241,5.302, 5.313,14.944, 1.926,20.245L 140.957,473.50c-4.344,5.291-13.396,8.064-21.252,5.579L 92.272,460.698
|
115 |
-
l 88.034-129.879L 205.61,351.342zM 492.949,82.154l-94.473,76.788c-4.93,3.918-14.313,6.838-20.325,0.188l-23.046-23.05l 120.047-101.015l 21.136,25.357
|
116 |
-
C 499.573,67.986, 497.755,77.279, 492.949,82.154z" />
|
117 |
-
<glyph unicode="" d="M 325.608,214.818L 512.00,86.264L 512.00,382.211 zM0.00,382.211L0.00,86.264L 186.388,214.836 zM 256.00,152.309L 211.499,192.264L0.00,64.00L 512.00,64.00L 300.495,192.264 zM 496.64,384.00L 15.36,384.00L 256.00,203.074 z" />
|
118 |
-
<glyph unicode="" d="M 256.00,480.00c-81.67,0.00-147.871-66.202-147.871-147.87c0.00-2.014, 0.061-4.101, 0.16-6.224c 0.05-1.234, 0.126-2.454, 0.209-3.682
|
119 |
-
c 0.051-0.779, 0.113-1.574, 0.18-2.371c 0.104-1.304, 0.21-2.61, 0.35-3.906C 121.292,196.493, 256.001-32.00, 256.001-32.00
|
120 |
-
s 134.705,228.492, 146.97,347.948c 0.143,1.295, 0.245,2.603, 0.351,3.905c 0.065,0.797, 0.131,1.592, 0.183,2.371
|
121 |
-
c 0.084,1.229, 0.158,2.447, 0.21,3.683c 0.097,2.124, 0.157,4.211, 0.157,6.224C 403.866,413.799, 337.666,480.00, 256.00,480.00z M 320.00,320.00
|
122 |
-
c0.00-35.347-28.654-64.00-64.00-64.00c-35.346,0.00-64.00,28.653-64.00,64.00s 28.654,64.00, 64.00,64.00C 291.346,384.00, 320.00,355.347, 320.00,320.00z" />
|
123 |
-
<glyph unicode="" d="M 256.00,480.00C 114.615,480.00,0.00,365.385,0.00,224.00s 114.615-256.00, 256.00-256.00s 256.00,114.615, 256.00,256.00S 397.385,480.00, 256.00,480.00z M 256.00,0.00
|
124 |
-
C 132.288,0.00, 32.00,100.288, 32.00,224.00S 132.288,448.00, 256.00,448.00s 224.00-100.288, 224.00-224.00S 379.712,0.00, 256.00,0.00zM 128.00,96.00l 169.373,79.17L 384.00,352.00l-173.255-82.745L 128.00,96.00z M 256.00,256.00c 17.673,0.00, 32.00-14.327, 32.00-32.00c0.00-17.673-14.327-32.00-32.00-32.00
|
125 |
-
c-17.673,0.00-32.00,14.327-32.00,32.00C 224.00,241.673, 238.327,256.00, 256.00,256.00z" />
|
126 |
-
<glyph unicode="" d="M 256.00,352.00L 256.00,192.00L 384.00,192.00L 384.00,224.00L 288.00,224.00L 288.00,352.00 zM 288.00,448.00C 164.288,448.00, 64.00,347.712, 64.00,224.00L0.00,224.00 l 80.00-96.00l 80.00,96.00L 96.00,224.00 c0.00,106.039, 85.961,192.00, 192.00,192.00c 106.039,0.00, 192.00-85.961, 192.00-192.00
|
127 |
-
c0.00-106.039-85.961-192.00-192.00-192.00c-10.904,0.00-21.592,0.923-32.00,2.67l0.00-32.385 c 10.453-1.495, 21.134-2.285, 32.00-2.285
|
128 |
-
c 123.712,0.00, 224.00,100.288, 224.00,224.00S 411.712,448.00, 288.00,448.00z" />
|
129 |
-
<glyph unicode="" d="M 240.00,448.00C 107.452,448.00,0.00,340.548,0.00,208.00c0.00-132.549, 107.452-240.00, 240.00-240.00c 132.549,0.00, 240.00,107.451, 240.00,240.00
|
130 |
-
C 480.00,340.548, 372.549,448.00, 240.00,448.00z M 240.00,0.00c-114.875,0.00-208.00,93.125-208.00,208.00S 125.125,416.00, 240.00,416.00s 208.00-93.125, 208.00-208.00
|
131 |
-
S 354.875,0.00, 240.00,0.00zM 256.00,253.258L 256.00,384.00 l-32.00,0.00 l0.00-130.742 c-18.641-6.59-32.00-24.36-32.00-45.258c0.00-26.51, 21.49-48.00, 48.00-48.00c 20.898,0.00, 38.667,13.359, 45.258,32.00
|
132 |
-
L 384.00,192.00 l0.00,32.00 l-98.742,0.00 C 280.438,237.635, 269.636,248.437, 256.00,253.258z" />
|
133 |
-
<glyph unicode="" d="M 512.00,64.00c-53.021,0.00-96.00,42.98-96.00,96.00L 416.00,302.545 c0.00,70.369-54.971,129.064-128.00,142.542L 288.00,480.00 l-64.00,0.00 l0.00-34.912
|
134 |
-
C 150.968,431.609, 96.00,372.915, 96.00,302.546L 96.00,160.00 c0.00-53.02-42.981-96.00-96.00-96.00l0.00-32.00 l 214.799,0.00 c-2.604-5.712-4.055-12.059-4.055-18.745
|
135 |
-
C 210.744-11.738, 231.006-32.00, 256.00-32.00c 24.992,0.00, 45.255,20.262, 45.255,45.255c0.00,6.688-1.451,13.033-4.056,18.745L 512.00,32.00 L 512.00,64.00 z" />
|
136 |
-
<glyph unicode="" d="M 512.00,64.00c-53.021,0.00-96.00,42.98-96.00,96.00L 416.00,302.545 c0.00,70.37-54.971,129.064-128.00,142.543L 288.00,480.00 l-64.00,0.00 l0.00-34.912
|
137 |
-
C 150.969,431.609, 96.00,372.915, 96.00,302.545L 96.00,160.00 c0.00-53.02-42.981-96.00-96.00-96.00l0.00-32.00 l 214.799,0.00 c-2.604-5.712-4.054-12.06-4.054-18.745
|
138 |
-
C 210.745-11.739, 231.006-32.00, 256.00-32.00c 24.993,0.00, 45.255,20.261, 45.255,45.255c0.00,6.687-1.452,13.033-4.055,18.745L 512.00,32.00 L 512.00,64.00 z M 352.00,160.00
|
139 |
-
l-32.00-32.00l-64.00,64.00l-64.00-64.00l-32.00,32.00l 64.00,64.00l-64.00,64.00l 32.00,32.00l 64.00-64.00l 64.00,64.00l 32.00-32.00l-64.00-64.00L 352.00,160.00z" />
|
140 |
-
<glyph unicode="" d="M 512.00,64.00c-53.02,0.00-96.00,42.98-96.00,96.00L 416.00,302.546 c0.00,70.369-54.97,129.064-128.00,142.542L 288.00,480.00 l-64.00,0.00 l0.00-34.912
|
141 |
-
C 150.97,431.61, 96.00,372.915, 96.00,302.546L 96.00,160.00 c0.00-53.02-42.98-96.00-96.00-96.00l0.00-32.00 l 214.80,0.00 c-2.604-5.712-4.055-12.059-4.055-18.745
|
142 |
-
C 210.745-11.738, 231.007-32.00, 256.00-32.00c 24.994,0.00, 45.255,20.262, 45.255,45.255c0.00,6.688-1.451,13.033-4.054,18.745L 512.00,32.00 L 512.00,64.00 z M 224.00,128.00
|
143 |
-
l-96.00,96.00l 32.00,32.00l 64.00-64.00l 128.00,128.00l 32.00-32.00L 224.00,128.00z" />
|
144 |
-
<glyph unicode="" d="M 160.00,288.00L 224.00,288.00L 224.00,224.00L 160.00,224.00zM 256.00,288.00L 320.00,288.00L 320.00,224.00L 256.00,224.00zM 352.00,288.00L 416.00,288.00L 416.00,224.00L 352.00,224.00zM 64.00,96.00L 128.00,96.00L 128.00,32.00L 64.00,32.00zM 160.00,96.00L 224.00,96.00L 224.00,32.00L 160.00,32.00zM 256.00,96.00L 320.00,96.00L 320.00,32.00L 256.00,32.00zM 160.00,192.00L 224.00,192.00L 224.00,128.00L 160.00,128.00zM 256.00,192.00L 320.00,192.00L 320.00,128.00L 256.00,128.00zM 352.00,192.00L 416.00,192.00L 416.00,128.00L 352.00,128.00zM 64.00,192.00L 128.00,192.00L 128.00,128.00L 64.00,128.00zM 416.00,480.00l0.00-32.00 l-64.00,0.00 L 352.00,480.00 L 128.00,480.00 l0.00-32.00 L 64.00,448.00 L 64.00,480.00 L0.00,480.00 l0.00-512.00 l 480.00,0.00 L 480.00,480.00 L 416.00,480.00 z M 448.00,0.00L 32.00,0.00 L 32.00,352.00 l 416.00,0.00 L 448.00,0.00 z" />
|
145 |
-
<glyph unicode="" d="M 320.00,440.571L 320.00,288.00 L 192.00,288.00 L 192.00,440.571 C 144.201,429.454, 96.00,403.976, 96.00,352.00l0.00-212.00 c0.00-77.318, 71.634-140.00, 160.00-140.00c 88.363,0.00, 160.00,62.682, 160.00,140.00
|
146 |
-
L 416.00,352.00 C 416.00,403.976, 367.799,429.454, 320.00,440.571zM 288.00,446.067C 276.277,447.421, 265.321,448.00, 256.00,448.00c-9.32,0.00-20.276-0.579-32.00-1.933L 224.00,320.00 l 64.00,0.00 L 288.00,446.067 z" />
|
147 |
-
<glyph unicode="" d="M 512.00,64.00L 512.00,448.00 L0.00,448.00 l0.00-384.00 l 224.00,0.00 l0.00-32.00 l-96.00,0.00 l0.00-32.00 l 256.00,0.00 l0.00,32.00 l-96.00,0.00 l0.00,32.00 L 512.00,64.00 z M 64.00,384.00l 384.00,0.00 l0.00-256.00 L 64.00,128.00 L 64.00,384.00 z" />
|
148 |
-
<glyph unicode="" d="M 448.00,128.00L 448.00,384.00 c0.00,17.60-14.40,32.00-32.00,32.00L 96.00,416.00 c-17.60,0.00-32.00-14.40-32.00-32.00l0.00-256.00 L0.00,128.00 l0.00-96.00 l 512.00,0.00 l0.00,96.00 L 448.00,128.00 z M 320.00,64.00L 192.00,64.00 l0.00,32.00 l 128.00,0.00 L 320.00,64.00 z M 416.00,128.00L 96.00,128.00
|
149 |
-
L 96.00,383.943 c 0.017,0.02, 0.038,0.041, 0.057,0.057l 319.885,0.00 c 0.02-0.017, 0.041-0.038, 0.058-0.058L 416.00,128.00 z" />
|
150 |
-
<glyph unicode="" d="M 384.00,480.00L 96.00,480.00 C 78.40,480.00, 64.00,465.601, 64.00,448.00l0.00-448.00 c0.00-17.60, 14.399-32.00, 32.00-32.00l 288.00,0.00 c 17.60,0.00, 32.00,14.40, 32.00,32.00L 416.00,448.00 C 416.00,465.601, 401.60,480.00, 384.00,480.00z
|
151 |
-
M 240.00-8.891c-13.746,0.00-24.891,11.145-24.891,24.891s 11.145,24.891, 24.891,24.891s 24.891-11.145, 24.891-24.891
|
152 |
-
S 253.746-8.891, 240.00-8.891z M 384.00,64.00L 96.00,64.00 L 96.00,416.00 l 288.00,0.00 L 384.00,64.00 z" />
|
153 |
-
<glyph unicode="" d="M 416.00,480.00L 96.00,480.00 C 78.40,480.00, 64.00,465.60, 64.00,448.00l0.00-448.00 c0.00-17.60, 14.40-32.00, 32.00-32.00l 320.00,0.00 c 17.60,0.00, 32.00,14.40, 32.00,32.00L 448.00,448.00 C 448.00,465.60, 433.60,480.00, 416.00,480.00z M 256.00-16.00
|
154 |
-
c-8.837,0.00-16.00,7.163-16.00,16.00s 7.163,16.00, 16.00,16.00s 16.00-7.163, 16.00-16.00S 264.837-16.00, 256.00-16.00z M 384.00,32.00L 128.00,32.00 L 128.00,416.00 l 256.00,0.00 L 384.00,32.00 z" />
|
155 |
-
<glyph unicode="" d="M 336.00,480.00c-8.837,0.00-16.00-7.163-16.00-16.00l0.00-48.00 L 144.00,416.00 c-8.836,0.00-16.00-7.163-16.00-16.00l0.00-416.00 c0.00-8.836, 7.164-16.00, 16.00-16.00l 192.00,0.00 c 8.837,0.00, 16.00,7.164, 16.00,16.00L 352.00,464.00
|
156 |
-
C 352.00,472.837, 344.837,480.00, 336.00,480.00z M 192.00,0.00l-32.00,0.00 l0.00,32.00 l 32.00,0.00 L 192.00,0.00 z M 192.00,64.00l-32.00,0.00 l0.00,32.00 l 32.00,0.00 L 192.00,64.00 z M 192.00,128.00l-32.00,0.00 l0.00,32.00 l 32.00,0.00 L 192.00,128.00 z M 256.00,0.00l-32.00,0.00 l0.00,32.00 l 32.00,0.00 L 256.00,0.00 z
|
157 |
-
M 256.00,64.00l-32.00,0.00 l0.00,32.00 l 32.00,0.00 L 256.00,64.00 z M 256.00,128.00l-32.00,0.00 l0.00,32.00 l 32.00,0.00 L 256.00,128.00 z M 320.00,0.00l-32.00,0.00 l0.00,32.00 l 32.00,0.00 L 320.00,0.00 z M 320.00,64.00l-32.00,0.00 l0.00,32.00 l 32.00,0.00 L 320.00,64.00 z M 320.00,128.00l-32.00,0.00 l0.00,32.00 l 32.00,0.00 L 320.00,128.00 z
|
158 |
-
M 320.00,208.00c0.00-8.836-7.163-16.00-16.00-16.00L 176.00,192.00 c-8.836,0.00-16.00,7.164-16.00,16.00L 160.00,368.00 c0.00,8.837, 7.164,16.00, 16.00,16.00l 128.00,0.00 c 8.837,0.00, 16.00-7.163, 16.00-16.00L 320.00,208.00 z" />
|
159 |
-
<glyph unicode="" d="M 352.00,384.00L 160.00,384.00 L0.00,192.00l0.00-80.00 l0.00-48.00 c0.00-17.673, 14.327-32.00, 32.00-32.00l 448.00,0.00 c 17.674,0.00, 32.00,14.327, 32.00,32.00l0.00,48.00 l0.00,80.00 L 352.00,384.00z M 384.00,192.00l-64.00-64.00L 192.00,128.00
|
160 |
-
l-64.00,64.00L 41.655,192.00 l 133.333,160.00l 162.024,0.00 l 133.333-160.00L 384.00,192.00 z" />
|
161 |
-
<glyph unicode="" d="M 352.00,384.00L 160.00,384.00 L0.00,192.00l0.00-128.00 c0.00-17.673, 14.327-32.00, 32.00-32.00l 448.00,0.00 c 17.674,0.00, 32.00,14.327, 32.00,32.00L 512.00,192.00 L 352.00,384.00z M 320.00,128.00L 192.00,128.00 l-32.00,32.00l 192.00,0.00
|
162 |
-
L 320.00,128.00z M 41.655,192.00l 133.333,160.00l 162.024,0.00 l 133.333-160.00L 41.655,192.00 zM 142.482,288.00L 369.518,288.00L 342.851,320.00L 169.148,320.00 zM 89.149,224.00L 422.852,224.00L 396.185,256.00L 115.815,256.00 z" />
|
163 |
-
<glyph unicode="" d="M 416.00,448.00L 96.00,448.00 L0.00,352.00l0.00-336.00 c0.00-8.837, 7.163-16.00, 16.00-16.00l 480.00,0.00 c 8.836,0.00, 16.00,7.163, 16.00,16.00L 512.00,352.00 L 416.00,448.00z M 256.00,64.00L 96.00,192.00l 96.00,0.00 l0.00,96.00 l 128.00,0.00 l0.00-96.00 l 96.00,0.00
|
164 |
-
L 256.00,64.00z M 77.255,384.00l 32.00,32.00l 293.489,0.00 l 32.00-32.00L 77.255,384.00 z" />
|
165 |
-
<glyph unicode="" d="M 416.00,448.00L 96.00,448.00 L0.00,352.00l0.00-336.00 c0.00-8.837, 7.163-16.00, 16.00-16.00l 480.00,0.00 c 8.836,0.00, 16.00,7.163, 16.00,16.00L 512.00,352.00 L 416.00,448.00z M 320.00,160.00l0.00-96.00 L 192.00,64.00 l0.00,96.00 L 96.00,160.00 l 160.00,128.00
|
166 |
-
l 160.00-128.00L 320.00,160.00 z M 77.255,384.00l 32.00,32.00l 293.488,0.00 l 32.00-32.00L 77.255,384.00 z" />
|
167 |
-
<glyph unicode="" d="M 256.00,480.00C 114.614,480.00,0.00,444.184,0.00,400.00l0.00-64.00 c0.00-44.183, 114.611-80.00, 256.00-80.00c 141.385,0.00, 256.00,35.817, 256.00,80.00L 512.00,400.00 C 512.00,444.184, 397.385,480.00, 256.00,480.00
|
168 |
-
zM 255.193,224.00C 140.566,224.00, 43.94,247.543, 11.32,280.00C 3.705,272.423,0.00,264.361,0.00,256.00l0.00-64.00 c0.00-44.184, 114.611-80.00, 256.00-80.00
|
169 |
-
c 141.385,0.00, 256.00,35.816, 256.00,80.00l0.00,64.00 c0.00,8.361-4.516,16.423-12.131,24.00C 467.25,247.543, 369.82,224.00, 255.193,224.00zM 255.193,80.00C 140.566,80.00, 43.94,103.544, 11.32,136.00C 3.705,128.424,0.00,120.361,0.00,112.00l0.00-64.00 c0.00-44.183, 114.611-80.00, 256.00-80.00
|
170 |
-
c 141.385,0.00, 256.00,35.817, 256.00,80.00l0.00,64.00 c0.00,8.361-4.516,16.424-12.131,24.00C 467.25,103.544, 369.82,80.00, 255.193,80.00z" />
|
171 |
-
<glyph unicode="" d="M 380.931-32.00C 437.794,71.016, 447.375,228.153, 224.00,222.912L 224.00,96.00 L 32.00,288.00L 224.00,480.00l0.00-124.186
|
172 |
-
C 491.481,362.785, 521.285,119.707, 380.931-32.00z" />
|
173 |
-
<glyph unicode="" d="M 288.00,355.814L 288.00,480.00 l 192.00-192.00L 288.00,96.00L 288.00,222.912 C 64.625,228.153, 74.206,71.016, 131.07-32.00
|
174 |
-
C-9.286,119.707, 20.52,362.785, 288.00,355.814z" />
|
175 |
-
<glyph unicode="" d="M 131.07,480.00C 74.206,376.984, 64.625,219.848, 288.00,225.088L 288.00,352.00 l 192.00-192.00L 288.00-32.00L 288.00,92.186 C 20.52,85.215-9.286,328.293, 131.07,480.00z" />
|
176 |
-
<glyph unicode="" d="M 224.00,92.186L 224.00-32.00 L 32.00,160.00l 192.00,192.00l0.00-126.912 C 447.375,219.848, 437.794,376.984, 380.931,480.00
|
177 |
-
C 521.286,328.293, 491.481,85.215, 224.00,92.186z" />
|
178 |
-
<glyph unicode="" d="M 429.406,480.00C 486.27,376.984, 511.375,219.848, 288.00,225.088L 288.00,352.00 L 96.00,160.00l 192.00-192.00L 288.00,92.186 C 512.00,92.186, 569.762,328.293, 429.406,480.00
|
179 |
-
zM 192.00,306.745L 192.00,352.00L0.00,160.00L 192.00-32.00L 192.00,13.255L 45.255,160.00 z" />
|
180 |
-
<glyph unicode="" d="M 255.993,471.963C 114.606,471.963, 0.001,385.424, 0.001,278.684c0.00-83.391, 69.951-154.469, 167.963-181.565
|
181 |
-
c 1.438-8.104, 3.25-19.646, 3.25-26.787c0.00-33.625-12.867-65.518-35.788-94.295c 35.444,14.928, 85.475,62.898, 116.473,109.432
|
182 |
-
c 1.367-0.016, 2.729-0.084, 4.095-0.084c 141.40,0.00, 256.007,86.539, 256.007,193.299C 512.002,385.424, 397.395,471.963, 255.993,471.963z" />
|
183 |
-
<glyph unicode="" d="M 512.00,176.00c0.00,31.984-26.282,59.581-64.259,72.383c-3.818-58.182-51.143-108.229-119.261-133.935
|
184 |
-
c 12.653-7.509, 27.651-13.072, 44.103-16.029c 11.884-27.769, 30.681-54.436, 53.733-71.93c-12.468,24.473-13.195,48.944-8.824,70.484
|
185 |
-
C 471.038,102.973, 512.00,136.068, 512.00,176.00zM 416.00,256.00c0.00,70.692-85.961,128.00-192.00,128.00C 117.962,384.00, 32.00,326.692, 32.00,256.00c0.00-52.637, 47.664-97.845, 115.781-117.509
|
186 |
-
c 10.66-26.364, 16.668-61.164-1.062-95.967c 26.945,20.448, 48.081,53.424, 59.146,86.048C 211.837,128.199, 217.883,128.00, 224.00,128.00
|
187 |
-
C 330.039,128.00, 416.00,185.308, 416.00,256.00z" />
|
188 |
-
<glyph unicode="" d="M 464.00,480.00L 48.00,480.00 C 21.60,480.00,0.00,458.40,0.00,432.00l0.00-320.00 c0.00-26.40, 21.60-48.00, 48.00-48.00l 112.00,0.00 l 96.00-96.00l 96.00,96.00l 112.00,0.00 c 26.40,0.00, 48.00,21.60, 48.00,48.00L 512.00,432.00
|
189 |
-
C 512.00,458.40, 490.401,480.00, 464.00,480.00z" />
|
190 |
-
<glyph unicode="" d="M 464.00,352.00L 176.00,352.00 c-26.40,0.00-48.00-21.60-48.00-48.00l0.00-224.00 c0.00-26.40, 21.60-48.00, 48.00-48.00l 80.00,0.00 l 64.00-64.00l 64.00,64.00l 80.00,0.00 c 26.40,0.00, 48.00,21.60, 48.00,48.00L 512.00,304.00
|
191 |
-
C 512.00,330.40, 490.401,352.00, 464.00,352.00zM 384.00,432.00c0.00,26.40-21.60,48.00-48.00,48.00L 48.00,480.00 C 21.60,480.00,0.00,458.40,0.00,432.00l0.00-224.00 c0.00-26.40, 21.60-48.00, 48.00-48.00l 16.00,0.00 L 64.00,368.00 c0.00,26.51, 21.49,48.00, 48.00,48.00l 272.00,0.00 L 384.00,432.00 z" />
|
192 |
-
<glyph unicode="" d="M 480.00,416.00L 32.00,416.00 C 14.40,416.00,0.00,401.60,0.00,384.00l0.00-224.00 c0.00-17.60, 14.40-32.00, 32.00-32.00l 64.00,0.00 l0.00-96.00 l 72.00,96.00l 312.00,0.00 c 17.60,0.00, 32.00,14.40, 32.00,32.00L 512.00,384.00
|
193 |
-
C 512.00,401.60, 497.60,416.00, 480.00,416.00z" />
|
194 |
-
<glyph unicode="" d="M 480.00,416.00L 32.00,416.00 C 14.40,416.00,0.00,401.60,0.00,384.00l0.00-224.00 c0.00-17.60, 14.40-32.00, 32.00-32.00l 64.00,0.00 l0.00-96.00 l 72.00,96.00l 312.00,0.00 c 17.60,0.00, 32.00,14.40, 32.00,32.00L 512.00,384.00
|
195 |
-
C 512.00,401.60, 497.60,416.00, 480.00,416.00z M 160.00,224.00L 96.00,224.00 l0.00,64.00 l 64.00,0.00 L 160.00,224.00 z M 288.00,224.00l-64.00,0.00 l0.00,64.00 l 64.00,0.00 L 288.00,224.00 z M 416.00,224.00l-64.00,0.00 l0.00,64.00 l 64.00,0.00 L 416.00,224.00 z" />
|
196 |
-
<glyph unicode="" d="M 128.00,320.00A128.00,128.00 4860.00 1,0 384.00,320A128.00,128.00 4860.00 1,0 128.00,320zM 384.00,160.00L 128.00,160.00 C 57.308,160.00,0.00,102.691,0.00,32.00l0.00-32.00 l 4.033,0.00 l 503.934,0.00 L 512.00,0.00 l0.00,32.00 C 512.00,102.691, 454.692,160.00, 384.00,160.00z" />
|
197 |
-
<glyph unicode="" d="M 311.413,128.632c-11.055,1.759-11.307,32.157-11.307,32.157s 32.484,32.158, 39.564,75.401
|
198 |
-
c 19.045,0.00, 30.809,45.973, 11.761,62.148C 352.226,315.365, 375.911,432.00, 256.00,432.00c-119.911,0.00-96.225-116.635-95.432-133.662
|
199 |
-
c-19.047-16.175-7.285-62.148, 11.761-62.148c 7.079-43.243, 39.564-75.401, 39.564-75.401s-0.252-30.398-11.307-32.157
|
200 |
-
C 164.976,122.966, 32.00,64.315, 32.00,0.00l 224.00,0.00 l 224.00,0.00 C 480.00,64.315, 347.024,122.966, 311.413,128.632z" />
|
201 |
-
<glyph unicode="" d="M 160.00,384.00A96.00,96.00 3060.00 1,0 352.00,384A96.00,96.00 3060.00 1,0 160.00,384zM 384.039,256.00l-0.078,0.00 l-17.634,0.00 l-99.552-202.122L 304.00,240.00l-48.00,48.00l-48.00-48.00l 37.225-186.122L 145.674,256.00l-17.635,0.00 l-0.077,0.00
|
202 |
-
C 64.00,256.00, 64.00,213.007, 64.00,160.00l0.00-160.00 l 384.00,0.00 L 448.00,160.00 C 448.00,213.007, 448.00,256.00, 384.039,256.00z" />
|
203 |
-
<glyph unicode="" d="M 364.496,224.00C 433.373,267.667, 480.00,351.604, 480.00,448.00c0.00,10.838-0.596,21.517-1.739,32.00L 33.74,480.00 C 32.595,469.516, 32.00,458.837, 32.00,448.00
|
204 |
-
c0.00-96.396, 46.627-180.333, 115.503-224.00C 78.627,180.333, 32.00,96.396, 32.00,0.00c0.00-10.838, 0.595-21.517, 1.739-32.00l 444.521,0.00
|
205 |
-
c 1.144,10.483, 1.739,21.162, 1.739,32.00C 480.00,96.396, 433.373,180.333, 364.496,224.00z M 80.00,0.00c0.00,93.456, 40.081,172.707, 112.00,198.854
|
206 |
-
l0.00,50.293 l0.00,0.00 C 120.081,275.292, 80.00,354.543, 80.00,448.00l0.00,0.00 l 352.00,0.00 l0.00,0.00 c0.00-93.457-40.081-172.708-112.00-198.853l0.00-50.293
|
207 |
-
C 391.919,172.707, 432.00,93.456, 432.00,0.00L 80.00,0.00 zM 309.813,145.203c-35.827,20.322-37.804,46.684-37.813,62.683L 272.00,240.00 c0.00,15.997, 1.902,42.457, 37.872,62.832
|
208 |
-
c 19.252,11.182, 35.904,28.174, 48.524,49.168L 153.605,352.00 c 12.633-21.016, 29.306-38.021, 48.583-49.203
|
209 |
-
c 35.827-20.322, 37.803-46.683, 37.813-62.683L 240.001,208.00 c0.00-15.996-1.902-42.457-37.872-62.832c-36.311-21.09-63.369-62.842-71.545-113.168
|
210 |
-
l 250.835,0.00 C 373.237,82.354, 346.154,124.124, 309.813,145.203z" />
|
211 |
-
<glyph unicode="" d="M 192.00,416.00A64.00,64.00 4860.00 1,0 320.00,416A64.00,64.00 4860.00 1,0 192.00,416zM 327.765,359.765A64.00,64.00 4860.00 1,0 455.765,359.765A64.00,64.00 4860.00 1,0 327.765,359.765zM 416.00,224.00A32.00,32.00 4860.00 1,0 480.00,224A32.00,32.00 4860.00 1,0 416.00,224zM 359.765,88.235A32.00,32.00 4860.00 1,0 423.765,88.23500000000001A32.00,32.00 4860.00 1,0 359.765,88.23500000000001zM 224.001,32.00A32.00,32.00 4860.00 1,0 288.001,32A32.00,32.00 4860.00 1,0 224.001,32zM 88.236,88.235A32.00,32.00 4860.00 1,0 152.236,88.23500000000001A32.00,32.00 4860.00 1,0 88.236,88.23500000000001zM 72.236,359.765A48.00,48.00 4860.00 1,0 168.236,359.765A48.00,48.00 4860.00 1,0 72.236,359.765zM 28.00,224.00A36.00,36.00 4860.00 1,0 100.00,224A36.00,36.00 4860.00 1,0 28.00,224z" />
|
212 |
-
<glyph unicode="" d="M 512.00,224.00c-0.639,33.431-7.892,66.758-21.288,97.231c-13.352,30.50-32.731,58.129-56.521,80.96
|
213 |
-
c-23.776,22.848-51.972,40.91-82.492,52.826C 321.197,466.979, 288.401,472.693, 256.00,472.00c-32.405-0.641-64.666-7.687-94.167-20.678
|
214 |
-
c-29.524-12.948-56.271-31.735-78.367-54.788c-22.112-23.041-39.58-50.354-51.093-79.899C 20.816,287.104, 15.309,255.375, 16.00,224.00
|
215 |
-
c 0.643-31.38, 7.482-62.574, 20.067-91.103c 12.544-28.55, 30.738-54.414, 53.055-75.774c 22.305-21.377, 48.736-38.252, 77.307-49.36
|
216 |
-
C 194.988-3.389, 225.652-8.688, 256.00-8.00c 30.354,0.645, 60.481,7.277, 88.038,19.457c 27.575,12.141, 52.558,29.74, 73.183,51.322
|
217 |
-
c 20.641,21.57, 36.922,47.118, 47.627,74.715c 6.517,16.729, 10.94,34.20, 13.271,51.899c 0.623-0.036, 1.249-0.06, 1.881-0.06
|
218 |
-
c 17.673,0.00, 32.00,14.326, 32.00,32.00c0.00,0.898-0.047,1.786-0.119,2.666L 512.00,223.999 z M 461.153,139.026c-11.736-26.601-28.742-50.70-49.589-70.59
|
219 |
-
c-20.835-19.905-45.50-35.593-72.122-45.895C 312.828,12.202, 284.297,7.315, 256.00,8.00c-28.302,0.649-56.298,6.868-81.91,18.237
|
220 |
-
c-25.625,11.333-48.842,27.745-67.997,47.856c-19.169,20.099-34.264,43.882-44.161,69.529C 51.997,169.264, 47.318,196.729, 48.00,224.00
|
221 |
-
c 0.651,27.276, 6.664,54.206, 17.627,78.845c 10.929,24.65, 26.749,46.985, 46.123,65.405c 19.365,18.434, 42.265,32.935, 66.937,42.428
|
222 |
-
C 203.356,420.208, 229.755,424.681, 256.00,424.00c 26.25-0.653, 52.114-6.459, 75.781-17.017c 23.676-10.525, 45.128-25.751, 62.812-44.391
|
223 |
-
c 17.698-18.629, 31.605-40.647, 40.695-64.344C 444.412,274.552, 448.679,249.219, 448.00,224.00l 0.119,0.00 c-0.072-0.88-0.119-1.768-0.119-2.666
|
224 |
-
c0.00-16.506, 12.496-30.087, 28.543-31.812C 473.431,172.111, 468.278,155.113, 461.153,139.026z" />
|
225 |
-
<glyph unicode="" d="M 440.698,8.064L 313.486,194.95c-3.336,4.914-10.234,6.433-15.325,3.379l-16.069-9.668
|
226 |
-
c-5.087-3.05-6.992-9.845-4.229-15.111l 105.281-200.064c 2.763-5.252, 9.177-7.056, 14.271-3.99l 40.101,24.093
|
227 |
-
C 442.608-3.356, 444.033,3.149, 440.698,8.064zM 296.322,213.939c 48.104,30.646, 50.188,110.532, 4.747,181.875c-38.64,60.653-97.389,92.75-143.688,82.201
|
228 |
-
c-10.647-2.086-24.247-7.761-37.93-16.475c-13.683-8.721-24.604-18.643-30.979-27.432C 59.346,396.604, 63.617,329.806, 102.25,269.17
|
229 |
-
c 45.45-71.346, 118.727-103.23, 166.844-72.58l 27.22,17.346L 296.322,213.939z M 278.977,241.169
|
230 |
-
c-31.746-20.215-87.728,8.487-122.253,62.704c-34.536,54.196-36.891,117.063-5.14,137.293c 31.722,20.217, 87.719-8.50, 122.243-62.708
|
231 |
-
C 308.357,324.269, 310.704,261.392, 278.977,241.169z" />
|
232 |
-
<glyph unicode="" d="M 449.077,10.754l-114.54,168.305c 65.459,51.835, 83.963,145.677, 39.835,219.126
|
233 |
-
C 326.445,477.959, 222.559,503.857, 142.793,455.94C 63.028,408.007, 37.131,304.124, 85.054,224.357
|
234 |
-
c 43.213-71.942, 131.962-100.047, 207.479-69.717l 95.143-180.783c 2.95-5.611, 9.802-7.523, 15.229-4.273l 42.784,25.72
|
235 |
-
C 451.126-1.433, 452.653,5.518, 449.077,10.754z M 288.781,212.968c-54.211-32.563-124.808-14.959-157.375,39.253
|
236 |
-
c-32.565,54.197-14.952,124.794, 39.253,157.36c 54.189,32.57, 124.787,14.961, 157.351-39.245
|
237 |
-
C 360.579,316.138, 342.978,245.525, 288.781,212.968z" />
|
238 |
-
<glyph unicode="" d="M 192.00,384.00L 160.00,384.00L 160.00,320.00L 96.00,320.00L 96.00,288.00L 160.00,288.00L 160.00,224.00L 192.00,224.00L 192.00,288.00L 256.00,288.00L 256.00,320.00L 192.00,320.00 zM 318.771,201.076C 339.674,230.021, 352.00,265.568, 352.00,304.00C 352.00,401.202, 273.202,480.00, 176.00,480.00S0.00,401.202,0.00,304.00s 78.798-176.00, 176.00-176.00
|
239 |
-
c 38.432,0.00, 73.979,12.326, 102.924,33.229L 448.00-32.00l 64.00,64.00L 318.771,201.076z M 176.00,176.00c-70.692,0.00-128.00,57.308-128.00,128.00S 105.308,432.00, 176.00,432.00
|
240 |
-
s 128.00-57.308, 128.00-128.00S 246.693,176.00, 176.00,176.00z" />
|
241 |
-
<glyph unicode="" d="M 96.00,320.00L 256.00,320.00L 256.00,288.00L 96.00,288.00zM 318.771,201.076C 339.674,230.021, 352.00,265.568, 352.00,304.00C 352.00,401.202, 273.202,480.00, 176.00,480.00S0.00,401.202,0.00,304.00s 78.798-176.00, 176.00-176.00
|
242 |
-
c 38.432,0.00, 73.979,12.326, 102.924,33.229L 448.00-32.00l 64.00,64.00L 318.771,201.076z M 176.00,176.00c-70.692,0.00-128.00,57.308-128.00,128.00S 105.308,432.00, 176.00,432.00
|
243 |
-
s 128.00-57.308, 128.00-128.00S 246.693,176.00, 176.00,176.00z" />
|
244 |
-
<glyph unicode="" d="M 352.00,480.00c-88.365,0.00-160.00-71.634-160.00-160.00c0.00-10.013, 0.929-19.808, 2.688-29.312L0.00,96.00l0.00-96.00 c0.00-17.673, 14.327-32.00, 32.00-32.00
|
245 |
-
l 32.00,0.00 l0.00,32.00 l 64.00,0.00 l0.00,64.00 l 64.00,0.00 l0.00,64.00 l 64.00,0.00 l 41.521,41.521C 314.526,163.363, 332.869,160.00, 352.00,160.00c 88.365,0.00, 160.00,71.634, 160.00,160.00S 440.365,480.00, 352.00,480.00z
|
246 |
-
M 399.937,319.937c-26.51,0.00-48.00,21.49-48.00,48.00s 21.49,48.00, 48.00,48.00s 48.00-21.49, 48.00-48.00S 426.447,319.937, 399.937,319.937z" />
|
247 |
-
<glyph unicode="" d="M 501.066,322.879l-50.553,50.552c-12.396,12.397-32.685,32.684-45.081,45.082l-50.553,50.552
|
248 |
-
c-12.396,12.397-34.477,14.583-49.065,4.858L 167.595,381.777c-14.588-9.726-20.109-30.514-12.268-46.195l 35.243-70.487
|
249 |
-
c 1.077-2.153, 2.323-4.448, 3.695-6.83L 16.00,80.00L0.00-32.00l 96.00,0.00 l0.00,32.00 l 64.00,0.00 l0.00,64.00 l 64.00,0.00 l0.00,64.00l 64.00,0.00 l0.00,35.593 c 3.198-1.906, 6.267-3.608, 9.096-5.022
|
250 |
-
l 70.485-35.244c 15.683-7.841, 36.47-2.319, 46.195,12.269l 92.147,138.22C 515.65,288.402, 513.462,310.481, 501.066,322.879z
|
251 |
-
M 75.314,52.687l-22.627,22.627l 155.786,155.785l 22.627-22.627L 75.314,52.687z M 458.51,268.118l-22.628-22.628
|
252 |
-
c-6.223-6.222-16.404-6.222-22.627,0.00L 277.49,381.255c-6.223,6.222-6.223,16.405,0.00,22.627l 22.628,22.628
|
253 |
-
c 6.223,6.222, 16.404,6.222, 22.627,0.00L 458.51,290.745C 464.733,284.523, 464.733,274.34, 458.51,268.118z" />
|
254 |
-
<glyph unicode="" d="M 304.00,256.00l-16.00,0.00 l0.00,64.00 c0.00,70.692-57.308,128.00-128.00,128.00S 32.00,390.692, 32.00,320.00l0.00-64.00 L 16.00,256.00 c-8.80,0.00-16.00-7.20-16.00-16.00l0.00-224.00 c0.00-8.80, 7.20-16.00, 16.00-16.00l 288.00,0.00
|
255 |
-
c 8.80,0.00, 16.00,7.20, 16.00,16.00L 320.00,240.00 C 320.00,248.80, 312.80,256.00, 304.00,256.00z M 186.465,135.959L 192.00,64.00l-64.00,0.00 l 5.535,71.959
|
256 |
-
C 120.561,144.551, 112.00,159.272, 112.00,176.00c0.00,26.51, 21.49,48.00, 48.00,48.00s 48.00-21.49, 48.00-48.00C 208.00,159.272, 199.439,144.551, 186.465,135.959z M 64.00,256.00
|
257 |
-
l0.00,64.00 c0.00,53.02, 42.98,96.00, 96.00,96.00s 96.00-42.98, 96.00-96.00l0.00-64.00 L 64.00,256.00 z" />
|
258 |
-
<glyph unicode="" d="M 384.00,448.00c-70.692,0.00-128.00-57.308-128.00-128.00l0.00-64.00 L 16.00,256.00 c-8.80,0.00-16.00-7.20-16.00-16.00l0.00-224.00 c0.00-8.80, 7.20-16.00, 16.00-16.00l 288.00,0.00 c 8.80,0.00, 16.00,7.20, 16.00,16.00L 320.00,240.00
|
259 |
-
c0.00,8.80-7.20,16.00-16.00,16.00l-16.00,0.00 l0.00,64.00 c0.00,53.02, 42.98,96.00, 96.00,96.00s 96.00-42.98, 96.00-96.00l0.00-64.00 l 32.00,0.00 l0.00,64.00 C 512.00,390.692, 454.693,448.00, 384.00,448.00z M 186.465,135.959
|
260 |
-
L 192.00,64.00l-64.00,0.00 l 5.535,71.959C 120.561,144.551, 112.00,159.272, 112.00,176.00c0.00,26.51, 21.49,48.00, 48.00,48.00s 48.00-21.49, 48.00-48.00
|
261 |
-
C 208.00,159.272, 199.439,144.551, 186.465,135.959z" />
|
262 |
-
<glyph unicode="" d="M 507.882,411.883L 448.00,352.00l-64.00,64.00l 59.882,59.883C 435.057,478.557, 425.698,480.00, 416.00,480.00c-53.021,0.00-96.00-42.98-96.00-96.00
|
263 |
-
c0.00-9.697, 1.442-19.057, 4.116-27.882L 123.882,155.883C 115.057,158.557, 105.698,160.00, 96.00,160.00c-53.021,0.00-96.00-42.98-96.00-96.00
|
264 |
-
c0.00-9.697, 1.442-19.058, 4.117-27.882L 64.00,96.00l 64.00-64.00l-59.883-59.882C 76.943-30.556, 86.302-32.00, 96.00-32.00c 53.02,0.00, 96.00,42.981, 96.00,96.00
|
265 |
-
c0.00,9.698-1.444,19.059-4.118,27.883l 200.234,200.235C 396.943,289.444, 406.302,288.00, 416.00,288.00c 53.02,0.00, 96.00,42.981, 96.00,96.00
|
266 |
-
C 512.00,393.698, 510.556,403.058, 507.882,411.883z" />
|
267 |
-
<glyph unicode="" d="M 144.00,320.00L 80.00,320.00 c-8.80,0.00-16.00-7.20-16.00-16.00l0.00-32.00 c0.00-8.80, 7.20-16.00, 16.00-16.00l 64.00,0.00 c 8.80,0.00, 16.00,7.20, 16.00,16.00l0.00,32.00 C 160.00,312.80, 152.80,320.00, 144.00,320.00zM 96.00,416.00L 128.00,416.00L 128.00,336.00L 96.00,336.00zM 96.00,240.00L 128.00,240.00L 128.00,32.00L 96.00,32.00zM 272.00,192.00l-64.00,0.00 c-8.80,0.00-16.00-7.20-16.00-16.00l0.00-32.00 c0.00-8.80, 7.20-16.00, 16.00-16.00l 64.00,0.00 c 8.801,0.00, 16.00,7.20, 16.00,16.00l0.00,32.00 C 288.00,184.80, 280.801,192.00, 272.00,192.00zM 224.001,416.00L 256.001,416.00L 256.001,208.00L 224.001,208.00zM 224.001,112.00L 256.001,112.00L 256.001,32.00L 224.001,32.00zM 400.00,288.00l-64.00,0.00 c-8.799,0.00-16.00-7.20-16.00-16.00l0.00-32.00 c0.00-8.80, 7.201-16.00, 16.00-16.00l 64.00,0.00 c 8.801,0.00, 16.00,7.20, 16.00,16.00l0.00,32.00 C 416.00,280.80, 408.801,288.00, 400.00,288.00zM 352.00,416.00L 384.00,416.00L 384.00,304.00L 352.00,304.00zM 352.00,208.00L 384.00,208.00L 384.00,32.00L 352.00,32.00zM 440.00,480.00L 40.00,480.00 C 17.944,480.00,0.00,462.056,0.00,440.00l0.00-432.00 c0.00-22.056, 17.944-40.00, 40.00-40.00l 400.00,0.00 c 22.056,0.00, 40.00,17.944, 40.00,40.00L 480.00,440.00
|
268 |
-
C 480.00,462.056, 462.056,480.00, 440.00,480.00z M 448.00,8.00c0.00-4.40-3.60-8.00-8.00-8.00L 40.00,0.00 c-4.40,0.00-8.00,3.60-8.00,8.00L 32.00,440.00 c0.00,4.40, 3.60,8.00, 8.00,8.00l 400.00,0.00 c 4.40,0.00, 8.00-3.60, 8.00-8.00L 448.00,8.00 z" />
|
269 |
-
<glyph unicode="" d="M 466.895,174.875c-26.863,46.527-10.708,106.152, 36.076,133.244l-50.313,87.146c-14.375-8.427-31.088-13.259-48.923-13.259
|
270 |
-
c-53.768,0.00-97.354,43.873-97.354,97.995L 205.752,480.001 c 0.133-16.705-4.037-33.641-12.979-49.126
|
271 |
-
c-26.862-46.528-86.578-62.351-133.431-35.379L 9.03,308.35c 14.485-8.236, 27.025-20.294, 35.943-35.739
|
272 |
-
c 26.819-46.454, 10.756-105.96-35.854-133.112l 50.313-87.146c 14.325,8.348, 30.958,13.127, 48.70,13.127
|
273 |
-
c 53.598,0.00, 97.072-43.596, 97.35-97.479l 100.627,0.00 c-0.043,16.537, 4.136,33.285, 12.983,48.609
|
274 |
-
c 26.818,46.453, 86.388,62.297, 133.207,35.506l 50.313,87.145C 488.222,147.494, 475.766,159.51, 466.895,174.875z M 256.00,120.334
|
275 |
-
c-57.254,0.00-103.668,46.412-103.668,103.667c0.00,57.254, 46.413,103.667, 103.668,103.667c 57.254,0.00, 103.666-46.413, 103.666-103.667
|
276 |
-
C 359.665,166.746, 313.254,120.334, 256.00,120.334z" />
|
277 |
-
<glyph unicode="" d="M 224.00,192.00L 224.00,416.00 C 100.288,416.00,0.00,315.712,0.00,192.00s 100.288-224.00, 224.00-224.00s 224.00,100.288, 224.00,224.00c0.00,36.017-8.514,70.042-23.618,100.191
|
278 |
-
L 224.00,192.00zM 456.382,356.191C 419.606,429.599, 343.695,480.00, 256.00,480.00l0.00-224.00 L 456.382,356.191z" />
|
279 |
-
<glyph unicode="" d="M0.00,64.00L 512.00,64.00L 512.00,0.00L0.00,0.00zM 64.00,192.00L 128.00,192.00L 128.00,96.00L 64.00,96.00zM 160.00,320.00L 224.00,320.00L 224.00,96.00L 160.00,96.00zM 256.00,224.00L 320.00,224.00L 320.00,96.00L 256.00,96.00zM 352.00,416.00L 416.00,416.00L 416.00,96.00L 352.00,96.00z" />
|
280 |
-
<glyph unicode="" d="M 32.00,128.00L 96.00,128.00L 96.00-32.00L 32.00-32.00zM 160.00,192.00L 224.00,192.00L 224.00-32.00L 160.00-32.00zM 288.00,224.00L 352.00,224.00L 352.00-32.00L 288.00-32.00zM 416.00,320.00L 480.00,320.00L 480.00-32.00L 416.00-32.00zM 384.00,480.00L 416.00,448.00L 288.00,320.00L 224.00,384.00L 32.00,192.00L 64.00,160.00L 224.00,320.00L 288.00,256.00L 448.00,416.00L 480.00,384.00L 480.00,480.00 z" />
|
281 |
-
<glyph unicode="" d="M 320.00,320.00l 96.00,64.00L 320.00,480.00l-60.00-140.00L 224.00,448.00l-96.00-64.00l 80.00-64.00L 32.00,320.00 l0.00-128.00 l 32.00,0.00 l0.00-224.00 l 384.00,0.00 L 448.00,192.00 l 32.00,0.00 L 480.00,320.00 L 320.00,320.00 z M 328.096,437.963l 50.233-50.233
|
282 |
-
l-100.467-66.978L 328.096,437.963z M 211.168,410.601l 28.364-85.092l-70.91,56.728L 211.168,410.601z M 224.00,0.00L 96.00,0.00 L 96.00,208.00 l 128.00,0.00 L 224.00,0.00 z M 224.00,224.00
|
283 |
-
L 64.00,224.00 l0.00,64.00 l 160.00,0.00 L 224.00,224.00 z M 416.00,0.00L 288.00,0.00 L 288.00,208.00 l 128.00,0.00 L 416.00,0.00 z M 448.00,224.00L 288.00,224.00 l0.00,64.00 l 160.00,0.00 L 448.00,224.00 z" />
|
284 |
-
<glyph unicode="" d="M 512.00,448.00c-32.00,0.00-160.00,0.00-160.00,0.00l0.00-64.00 L 160.00,384.00 L 160.00,448.00 c0.00,0.00-128.00,0.00-160.00,0.00c0.00-160.00, 128.00-347.188, 224.00-376.00l0.00-40.00 c-32.00,0.00-64.00-16.00-64.00-32.00l 192.00,0.00 c0.00,16.00-32.00,32.00-64.00,32.00
|
285 |
-
l0.00,40.00 C 384.00,100.812, 512.00,288.00, 512.00,448.00z M 383.85,366.773L 384.00,384.00L 384.00,416.00 l 94.227,0.00 c-2.787-25.839-8.855-53.128-18.14-81.495
|
286 |
-
c-12.272-37.499-30.058-75.91-51.433-111.082c-20.559-33.826-43.896-63.859-67.488-86.852c-2.266-2.208-4.521-4.336-6.765-6.391
|
287 |
-
C 376.819,215.238, 382.961,321.678, 383.85,366.773z M 170.834,136.572c-23.593,22.992-46.93,53.025-67.488,86.852
|
288 |
-
c-21.375,35.172-39.161,73.583-51.433,111.082C 42.629,362.872, 36.56,390.161, 33.773,416.00L 128.00,416.00 l0.00-32.00 l 0.15-17.227
|
289 |
-
c 0.889-45.096, 7.031-151.535, 49.448-236.592C 175.355,132.236, 173.099,134.364, 170.834,136.572z" />
|
290 |
-
<glyph unicode="" d="M 64.00,416.00L0.00,352.00L 128.00,352.00 zM 256.00,352.00L 192.00,416.00L 128.00,352.00 zM 256.001,352.00L 384.00,352.00L 320.00,416.00 zM 512.00,352.00L 448.00,416.00L 384.00,352.00 zM 320.00,416.00L 448.00,416.00L 416.00,448.00L 96.00,448.00L 64.00,416.00L 192.00,416.00 zM 256.00,0.00L 112.00,288.00L 198.40,288.00L 256.00,0.00L 313.60,288.00L 400.00,288.00L 256.00,0.00L 512.00,320.00L0.00,320.00 z" />
|
291 |
-
<glyph unicode="" d="M 423.555,258.812c 0.033,2.533, 0.049,5.076, 0.049,7.626c0.00,30.532-93.227,55.284-208.225,55.284
|
292 |
-
c-114.997,0.00-208.223-24.752-208.223-55.284C 7.156,101.615, 73.546-32.00, 215.379-32.00c 83.413,0.00, 140.723,46.225, 173.788,117.818
|
293 |
-
c 3.338-0.27, 6.699-0.457, 10.119-0.457c 58.297,0.00, 105.559,39.356, 105.559,87.904C 504.844,214.857, 470.153,249.679, 423.555,258.812z
|
294 |
-
M 349.141,244.028c-36.689-8.652-84.195-13.417-133.762-13.417c-49.565,0.00-97.07,4.765-133.76,13.417
|
295 |
-
c-35.822,8.448-50.376,18.136-54.252,22.411c 3.876,4.275, 18.431,13.961, 54.252,22.409c 36.688,8.653, 84.193,13.419, 133.76,13.419
|
296 |
-
c 49.565,0.00, 97.071-4.767, 133.762-13.419c 35.822-8.448, 50.377-18.134, 54.254-22.409C 399.518,262.164, 384.963,252.477, 349.141,244.028
|
297 |
-
z M 398.268,107.787c 12.537,33.865, 20.355,72.30, 23.60,113.514c 30.50-6.246, 48.42-28.615, 48.42-51.395
|
298 |
-
C 470.285,140.523, 448.723,111.186, 398.268,107.787zM 255.689,353.922C 283.881,396.539, 206.377,442.352, 259.908,480.00c-44.528-2.943-52.161-30.188-40.935-51.461
|
299 |
-
C 229.63,408.348, 255.649,394.268, 255.689,353.922zM 233.163,325.499c 12.646,35.708-59.269,64.515-19.554,105.806c-37.209-10.992-36.253-41.592-20.227-58.701
|
300 |
-
C 204.951,360.25, 225.905,354.518, 233.163,325.499z" />
|
301 |
-
<glyph unicode="" d="M 352.00,448.00L 192.00,288.00L 96.00,288.00 L0.00,160.00c0.00,0.00, 101.708,28.326, 161.033,15.042L0.00-32.00l 210.951,164.072C 240.37,64.745, 192.00-32.00, 192.00-32.00l 128.00,96.00
|
302 |
-
l0.00,96.00 l 160.00,160.00L 512.00,480.00L 352.00,448.00z" />
|
303 |
-
<glyph unicode="" d="M 256.00,352.00C 114.615,352.00,0.00,237.386,0.00,96.00l 32.00,0.00 c0.00,58.209, 25.903,110.363, 66.811,145.574l 108.423-135.527
|
304 |
-
c-0.665-3.245-1.014-6.604-1.014-10.047c0.00-27.492, 22.287-49.779, 49.779-49.779c 27.493,0.00, 49.779,22.287, 49.779,49.779
|
305 |
-
s-22.286,49.781-49.779,49.781c-3.441,0.00-6.802-0.351-10.046-1.016L 111.979,251.947c 31.528,22.688, 70.213,36.054, 112.021,36.054
|
306 |
-
c 106.038,0.00, 192.00-85.96, 192.00-191.999l 96.00,0.00 C 512.00,237.386, 397.385,352.00, 256.00,352.00z" />
|
307 |
-
<glyph unicode="" d="M 256.00,352.00C 114.615,352.00,0.00,237.386,0.00,96.00l 32.00,0.00 c0.00,106.039, 85.961,192.00, 192.00,192.00c 7.167,0.00, 14.241-0.396, 21.205-1.16l-16.586-149.264
|
308 |
-
c-13.494-8.904-22.399-24.199-22.399-41.576c0.00-27.492, 22.288-49.779, 49.78-49.779S 305.78,68.508, 305.78,96.00
|
309 |
-
c0.00,17.377-8.904,32.672-22.398,41.576l-16.172,145.542C 352.44,263.517, 416.00,187.182, 416.00,96.00l 96.00,0.00 C 512.00,237.386, 397.385,352.00, 256.00,352.00z" />
|
310 |
-
<glyph unicode="" d="M 416.00,96.00l 96.00,0.00 c0.00,141.386-114.615,256.00-256.00,256.00S0.00,237.386,0.00,96.00l 32.00,0.00 c0.00,106.039, 85.961,192.00, 192.00,192.00
|
311 |
-
c 56.409,0.00, 107.136-24.326, 142.263-63.061l-100.217-80.174c-3.245,0.665-6.604,1.016-10.046,1.016
|
312 |
-
c-27.493,0.00-49.78-22.289-49.78-49.781s 22.287-49.779, 49.78-49.779c 27.492,0.00, 49.778,22.287, 49.778,49.779
|
313 |
-
c0.00,3.44-0.349,6.802-1.014,10.047l 78.166,97.707C 403.803,173.031, 416.00,135.941, 416.00,96.00z" />
|
314 |
-
<glyph unicode="" d="M 256.00,480.00C 114.615,480.00,0.00,365.385,0.00,224.00s 114.615-256.00, 256.00-256.00s 256.00,114.615, 256.00,256.00S 397.385,480.00, 256.00,480.00z M 256.00,32.00
|
315 |
-
c-106.039,0.00-192.00,85.961-192.00,192.00c0.00,106.039, 85.961,192.00, 192.00,192.00c 106.039,0.00, 192.00-85.961, 192.00-192.00C 448.00,117.961, 362.039,32.00, 256.00,32.00zM 224.00,352.00A32.00,32.00 3060.00 1,0 288.00,352A32.00,32.00 3060.00 1,0 224.00,352zM 320.00,320.00A32.00,32.00 3060.00 1,0 384.00,320A32.00,32.00 3060.00 1,0 320.00,320zM 128.00,320.00A32.00,32.00 3060.00 1,0 192.00,320A32.00,32.00 3060.00 1,0 128.00,320zM 224.00,128.00L 224.00,96.00L 288.00,96.00L 288.00,128.00L 256.00,288.00 z" />
|
316 |
-
<glyph unicode="" d="M 160.504-32.00C 51.878,29.221, 23.279,87.168, 39.63,166.311c 12.071,58.44, 56.647,105.986, 60.437,164.314
|
317 |
-
c 16.884-30.726, 18.888-52.882, 20.775-84.99C 174.542,311.428, 230.231,399.478, 218.19,480.00c0.00,0.00, 133.808-64.00, 142.986-188.138
|
318 |
-
c 12.041,25.587, 12.041,66.225,0.00,92.563c 36.122-26.339, 253.609-260.16-22.577-416.425c 51.926,101.105, 13.396,237.527-76.761,300.533
|
319 |
-
c 6.021-27.092-1.505-97.832-41.391-142.232c 9.031,45.904-13.546,75.254-13.546,75.254s-7.402-41.555-36.122-83.533
|
320 |
-
C 144.553,79.689, 126.381,39.004, 160.504-32.00z" />
|
321 |
-
<glyph unicode="" d="M 478.145,77.759L 320.00,341.271L 320.00,448.00 l 16.00,0.00 c 8.80,0.00, 16.00,7.20, 16.00,16.00s-7.20,16.00-16.00,16.00L 176.00,480.00 c-8.80,0.00-16.00-7.20-16.00-16.00s 7.20-16.00, 16.00-16.00l 16.00,0.00 l0.00-106.729
|
322 |
-
L 33.856,77.759C-2.365,17.392, 25.60-32.00, 96.00-32.00l 320.00,0.00 C 486.40-32.00, 514.365,17.392, 478.145,77.759z M 120.519,160.00L 224.00,332.469L 224.00,448.00 l 64.00,0.00
|
323 |
-
l0.00-115.531 L 391.482,160.00L 120.519,160.00 z" />
|
324 |
-
<glyph unicode="" d="M 480.00,416.00L 320.00,416.00 L 320.00,464.00 c0.00,8.836-7.163,16.00-16.00,16.00l-96.00,0.00 c-8.836,0.00-16.00-7.164-16.00-16.00l0.00-48.00 L 32.00,416.00 L0.00,352.00l 64.00,0.00 l 32.00-384.00l 320.00,0.00 l 32.00,384.00l 64.00,0.00 L 480.00,416.00z M 224.00,32.00
|
325 |
-
l-64.00,0.00 L 160.00,320.00 l 64.00,0.00 L 224.00,32.00 z M 224.00,448.00l 64.00,0.00 l0.00-32.00 l-64.00,0.00 L 224.00,448.00 z M 352.00,32.00l-64.00,0.00 L 288.00,320.00 l 64.00,0.00 L 352.00,32.00 z" />
|
326 |
-
<glyph unicode="" d="M 96.00-32.00L 416.00-32.00L 448.00,320.00L 64.00,320.00 zM 320.00,416.00L 320.00,480.00 L 192.00,480.00 l0.00-64.00 L 32.00,416.00 l0.00-96.00 l 32.00,32.00l 384.00,0.00 l 32.00-32.00L 480.00,416.00 L 320.00,416.00 z M 288.00,416.00l-64.00,0.00 L 224.00,448.00 l 64.00,0.00 L 288.00,416.00 z" />
|
327 |
-
<glyph unicode="" d="M 144.00,48.00c 8.837,0.00, 16.00,7.163, 16.00,16.00c0.00,0.003,0.00,0.007,0.00,0.01L 160.00,287.991 c0.00,0.003,0.00,0.006,0.00,0.01c0.00,8.836-7.164,16.00-16.00,16.00
|
328 |
-
c-8.836,0.00-16.00-7.164-16.00-16.00l0.00,0.00 l0.00-224.00 C 128.00,55.163, 135.164,48.00, 144.00,48.00zM 240.00,48.00c 8.837,0.00, 16.00,7.163, 16.00,16.00c0.00,0.003,0.00,0.007,0.00,0.01L 256.00,287.991 c0.00,0.003,0.00,0.006,0.00,0.01c0.00,8.836-7.164,16.00-16.00,16.00
|
329 |
-
c-8.836,0.00-16.00-7.164-16.00-16.00l0.00,0.00 l0.00-224.00 C 224.00,55.163, 231.164,48.00, 240.00,48.00zM 336.00,48.00c 8.837,0.00, 16.00,7.163, 16.00,16.00c0.00,0.003,0.00,0.007,0.00,0.01L 352.00,287.991 c0.00,0.003,0.00,0.006,0.00,0.01c0.00,8.836-7.163,16.00-16.00,16.00
|
330 |
-
c-8.836,0.00-16.00-7.164-16.00-16.00l0.00,0.00 l0.00-224.00 C 320.00,55.163, 327.164,48.00, 336.00,48.00zM 351.987,415.46C 351.99,415.64, 352.00,415.819, 352.00,416.00L 352.00,448.00 c0.00,17.60-14.40,32.00-32.00,32.00L 160.00,480.00 c-17.60,0.00-32.00-14.40-32.00-32.00l0.00-32.00
|
331 |
-
c0.00-0.181, 0.011-0.36, 0.014-0.54L0.00,415.46 L0.00,384.00 l 32.00,0.00 l0.00-352.00 c0.00-35.20, 28.80-64.00, 64.00-64.00l 288.00,0.00 c 35.20,0.00, 64.00,28.80, 64.00,64.00L 448.00,384.00 l 32.00,0.00 L 480.00,415.46 L 351.987,415.46 z M 160.00,447.943
|
332 |
-
c 0.017,0.02, 0.038,0.041, 0.057,0.057l 159.885,0.00 c 0.02-0.017, 0.041-0.038, 0.058-0.058l0.00-31.885 c-0.017-0.02-0.038-0.041-0.058-0.057
|
333 |
-
L 160.057,416.00 c-0.02,0.017-0.041,0.038-0.057,0.057L 160.00,447.943 z M 416.00,32.00c0.00-8.477-3.348-16.493-9.428-22.572
|
334 |
-
C 400.493,3.348, 392.477,0.00, 384.00,0.00L 96.00,0.00 c-8.477,0.00-16.493,3.348-22.573,9.428C 67.348,15.507, 64.00,23.523, 64.00,32.00L 64.00,384.00 l 352.00,0.00 L 416.00,32.00 z" />
|
335 |
-
<glyph unicode="" d="M 464.00,320.00L 352.00,320.00 L 352.00,384.00 c0.00,17.60-14.40,32.00-32.00,32.00L 192.00,416.00 c-17.602,0.00-32.00-14.40-32.00-32.00l0.00-64.00 L 48.00,320.00 c-26.40,0.00-48.00-21.60-48.00-48.00l0.00-224.00 c0.00-26.40, 21.60-48.00, 48.00-48.00
|
336 |
-
l 416.00,0.00 c 26.398,0.00, 48.00,21.60, 48.00,48.00L 512.00,272.00 C 512.00,298.40, 490.401,320.00, 464.00,320.00z M 192.00,383.943c 0.016,0.02, 0.037,0.041, 0.058,0.057l 127.887,0.00
|
337 |
-
c 0.021-0.018, 0.04-0.038, 0.058-0.057L 320.003,320.00 L 192.00,320.00 L 192.00,383.943 z" />
|
338 |
-
<glyph unicode="" d="M 480.00,352.00L 352.00,352.00 L 352.00,384.00 c0.00,17.60-14.40,32.00-32.00,32.00L 192.00,416.00 c-17.602,0.00-32.00-14.40-32.00-32.00l0.00-32.00 L 32.00,352.00 C 14.40,352.00,0.00,337.60,0.00,320.00l0.00-256.00
|
339 |
-
c0.00-17.601, 14.398-32.00, 32.00-32.00l 448.00,0.00 c 17.60,0.00, 32.00,14.399, 32.00,32.00L 512.00,320.00 C 512.00,337.60, 497.60,352.00, 480.00,352.00z M 192.00,383.942
|
340 |
-
c 0.017,0.02, 0.037,0.041, 0.057,0.058l 127.886,0.00 c 0.021-0.017, 0.041-0.038, 0.059-0.058L 320.002,352.00 L 192.00,352.00 L 192.00,383.942 z M 480.00,224.00l-64.00,0.00 l0.00-48.00
|
341 |
-
c0.00-8.801-7.20-16.00-16.00-16.00l-32.00,0.00 c-8.802,0.00-16.00,7.199-16.00,16.00l0.00,48.00 L 160.00,224.00 l0.00-48.00 c0.00-8.801-7.20-16.00-16.00-16.00l-32.00,0.00 c-8.801,0.00-16.00,7.199-16.00,16.00l0.00,48.00 L 32.00,224.00 l0.00,32.00 l 448.00,0.00
|
342 |
-
L 480.00,224.00 z" />
|
343 |
-
<glyph unicode="" d="M 436.304,320.00L 352.00,448.00L 160.00,448.00 L 75.695,320.00L0.00,320.00 l0.00-224.00 l 64.00,0.00 l0.00-80.00 c0.00-8.80, 7.199-16.00, 16.00-16.00l 64.00,0.00 c 8.80,0.00, 16.00,7.20, 16.00,16.00l0.00,80.00 l 192.00,0.00 l0.00-80.00
|
344 |
-
c0.00-8.80, 7.198-16.00, 16.00-16.00l 64.00,0.00 c 8.80,0.00, 16.00,7.20, 16.00,16.00l0.00,80.00 l 64.00,0.00 L 512.00,320.00 L 436.304,320.00 z M 177.24,416.00l 157.519,0.00 l 63.228-96.00L 114.012,320.00 L 177.24,416.00z M 128.00,146.745
|
345 |
-
c-24.994,0.00-45.256,20.261-45.256,45.255s 20.263,45.254, 45.256,45.254c 24.992,0.00, 45.254-20.261, 45.254-45.254
|
346 |
-
C 173.255,167.006, 152.993,146.745, 128.00,146.745z M 384.00,146.745c-24.993,0.00-45.257,20.261-45.257,45.255s 20.263,45.254, 45.257,45.254
|
347 |
-
c 24.991,0.00, 45.255-20.261, 45.255-45.254C 429.255,167.006, 408.991,146.745, 384.00,146.745z" />
|
348 |
-
<glyph unicode="" d="M 480.00,224.00c0.00,0.00-16.279,192.00-32.00,224.00S 320.00,480.00, 256.00,480.00S 79.72,480.00, 64.00,448.00S 32.00,224.00, 32.00,224.00l0.00-192.00 l 64.00,0.00 l0.00-32.00 c0.00-17.673, 14.327-32.00, 32.00-32.00
|
349 |
-
s 32.00,14.327, 32.00,32.00l0.00,32.00 l 192.00,0.00 l0.00-32.00 c0.00-17.673, 14.327-32.00, 32.00-32.00c 17.674,0.00, 32.00,14.327, 32.00,32.00l0.00,32.00 l 64.00,0.00 L 480.00,224.00 z M 160.00,448.00l 192.00,0.00 l0.00-32.00 L 160.00,416.00 L 160.00,448.00 z
|
350 |
-
M 105.058,279.23c 6.083,53.329, 10.847,81.788, 13.844,96.464c 8.586,2.002, 23.196,4.479, 46.867,6.145C 196.495,384.00, 229.49,384.00, 256.00,384.00
|
351 |
-
s 59.505,0.00, 90.231-2.161c 23.671-1.665, 38.281-4.142, 46.867-6.145c 2.996-14.676, 7.761-43.136, 13.844-96.465
|
352 |
-
c 0.903-7.917, 1.759-15.718, 2.559-23.23L 102.499,255.999 C 103.299,263.512, 104.155,271.313, 105.058,279.23z M 128.00,113.60
|
353 |
-
c-25.626,0.00-46.40,20.773-46.40,46.40c0.00,25.626, 20.773,46.40, 46.40,46.40s 46.40-20.774, 46.40-46.40C 174.40,134.373, 153.627,113.60, 128.00,113.60z
|
354 |
-
M 384.00,113.60c-25.627,0.00-46.399,20.773-46.399,46.40c0.00,25.626, 20.772,46.40, 46.399,46.40s 46.40-20.774, 46.40-46.40
|
355 |
-
C 430.401,134.373, 409.627,113.60, 384.00,113.60z" />
|
356 |
-
<glyph unicode="" d="M 256.00,448.00L 32.00,352.00L 256.00,256.00L 480.00,352.00 zM 32.00,64.00L 224.00-16.00L 224.00,208.00L 32.00,288.00 zM 288.00-16.00L 480.00,64.00L 480.00,288.00L 288.00,208.00 z" />
|
357 |
-
<glyph unicode="" d="M 240.00,448.00L0.00,352.00l0.00-224.00 l 240.00-128.00l 240.00,128.00L 480.00,352.00 L 240.00,448.00z M 224.00,44.80L 32.00,147.20L 32.00,302.933 l 192.00-102.40L 224.00,44.80 z M 41.498,334.134L 240.00,413.535
|
358 |
-
l 198.502-79.401L 240.00,228.267L 41.498,334.134z M 448.00,147.20L 256.00,44.80L 256.00,200.533 l 192.00,102.40L 448.00,147.20 z" />
|
359 |
-
<glyph unicode="" d="M 472.037,344.543l-77.289,0.00 c-21.704,0.033-43.327,8.772-22.241,45.979C 393.634,427.804, 408.548,480.00, 323.729,480.00
|
360 |
-
c-84.816,0.00-69.901-52.195-48.774-89.478c 21.086-37.207-0.537-45.945-22.243-45.979l-77.29,0.00 c-18.051,0.00-32.819-14.771-32.819-32.818
|
361 |
-
l0.00-94.87 c0.00-21.746-8.701-43.492-45.98-22.367c-37.28,21.127-89.478,36.04-89.478-48.778c0.00-84.814, 52.196-69.90, 89.478-48.775
|
362 |
-
c 37.279,21.127, 45.98-0.619, 45.98-22.369l0.00-73.747 c0.00-18.053, 14.77-32.818, 32.819-32.818l 77.163,0.00 c 21.749,0.00, 43.495,8.701, 22.37,45.981
|
363 |
-
c-21.126,37.277-36.042,89.475, 48.774,89.475c 84.817,0.00, 69.903-52.195, 48.776-89.475C 351.38-23.299, 373.128-32.00, 394.875-32.00l 77.16,0.00
|
364 |
-
c 18.053,0.00, 32.821,14.77, 32.821,32.818L 504.856,311.726 C 504.858,329.774, 490.09,344.543, 472.037,344.543z" />
|
365 |
-
<glyph unicode="" d="M0.00,352.00l0.00-256.00 l 160.00,0.00 l 96.00,96.00l 96.00-96.00l 160.00,0.00 L 512.00,352.00 L0.00,352.00 z M 224.00,224.00l-64.00-64.00L 32.00,160.00 L 32.00,288.00 l 192.00,0.00 L 224.00,224.00 z M 480.00,160.00L 352.00,160.00 l-64.00,64.00l0.00,64.00 l 192.00,0.00 L 480.00,160.00 z" />
|
366 |
-
<glyph unicode="" d="M 352.00,448.00l0.00-48.00 l 80.00-144.00L 80.00,256.00 l 80.00,144.00L 160.00,448.00 L0.00,256.00l0.00-256.00 l 160.00,0.00 l 96.00,96.00l 96.00-96.00l 160.00,0.00 L 512.00,256.00 L 352.00,448.00z M 224.00,128.00l-64.00-64.00L 32.00,64.00 L 32.00,192.00 l 192.00,0.00 L 224.00,128.00 z M 480.00,64.00L 352.00,64.00
|
367 |
-
l-64.00,64.00l0.00,64.00 l 192.00,0.00 L 480.00,64.00 z" />
|
368 |
-
<glyph unicode="" d="M 480.00,384.00L 480.00,416.00L 256.00,352.00L 32.00,416.00L 32.00,384.00L 192.00,320.00L 192.00,192.00L 128.00-32.00L 160.00-32.00L 256.00,192.00L 352.00-32.00L 384.00-32.00L 320.00,192.00L 320.00,320.00 zM 208.00,432.00A48.00,48.00 4860.00 1,0 304.00,432A48.00,48.00 4860.00 1,0 208.00,432z" />
|
369 |
-
<glyph unicode="" d="M 160.00,16.00c-61.856,0.00-112.00,50.145-112.00,112.00c0.00,43.848, 25.20,81.803, 61.903,100.19l-21.47,42.938C 36.001,244.86,0.00,190.639,0.00,128.00
|
370 |
-
c0.00-88.366, 71.634-160.00, 160.00-160.00s 160.00,71.634, 160.00,160.00l-48.00,0.00 C 272.00,66.145, 221.856,16.00, 160.00,16.00zM 480.00,128.00L 448.00,96.00L 338.743,205.255L 224.00,205.255L 224.00,256.00L 352.00,256.00L 352.00,288.00L 224.00,288.00L 224.00,352.00L 160.00,352.00L 160.00,160.00L 320.00,160.00L 448.00,32.00L 512.00,96.00 zM 144.00,432.00A48.00,48.00 4860.00 1,0 240.00,432A48.00,48.00 4860.00 1,0 144.00,432z" />
|
371 |
-
<glyph unicode="" d="M 256.00,480.00C 114.844,480.00,0.00,365.162,0.00,223.999C0.00,82.838, 114.844-32.00, 256.00-32.00c 141.155,0.00, 256.00,114.838, 256.00,255.999
|
372 |
-
C 512.00,365.162, 397.156,480.00, 256.00,480.00z M 256.00,24.889c-109.789,0.00-199.11,89.323-199.11,199.11c0.00,109.79, 89.322,199.112, 199.11,199.112
|
373 |
-
s 199.11-89.322, 199.11-199.112C 455.113,114.212, 365.788,24.889, 256.00,24.889zM 256.00,366.223c-78.422,0.00-142.224-63.801-142.224-142.224c0.00-78.421, 63.801-142.224, 142.224-142.224
|
374 |
-
s 142.223,63.803, 142.223,142.224C 398.223,302.422, 334.423,366.223, 256.00,366.223z M 256.00,138.666
|
375 |
-
c-47.058,0.00-85.334,38.277-85.334,85.333c0.00,47.058, 38.276,85.335, 85.334,85.335c 47.056,0.00, 85.335-38.277, 85.335-85.335
|
376 |
-
C 341.335,176.943, 303.056,138.666, 256.00,138.666zM 224.00,224.00A32.00,32.00 4860.00 1,0 288.00,224A32.00,32.00 4860.00 1,0 224.00,224z" />
|
377 |
-
<glyph unicode="" d="M 256.00,480.00C 114.615,480.00,0.00,365.385,0.00,224.00s 114.615-256.00, 256.00-256.00s 256.00,114.615, 256.00,256.00S 397.385,480.00, 256.00,480.00z M 391.765,88.235
|
378 |
-
C 363.16,59.631, 327.117,41.174, 288.00,34.648L 288.00,128.00 l-64.00,0.00 l0.00-93.352 c-39.117,6.525-75.16,24.982-103.765,53.587
|
379 |
-
C 91.632,116.84, 73.174,152.883, 66.649,192.00L 160.00,192.00 l0.00,64.00 L 66.649,256.00 c 6.525,39.117, 24.983,75.16, 53.587,103.765
|
380 |
-
C 148.84,388.369, 184.883,406.826, 224.00,413.352L 224.00,320.00 l 64.00,0.00 L 288.00,413.352 c 39.117-6.525, 75.16-24.983, 103.765-53.587
|
381 |
-
c 28.604-28.604, 47.062-64.647, 53.587-103.765L 352.00,256.00 l0.00-64.00 l 93.352,0.00 C 438.826,152.883, 420.369,116.84, 391.765,88.235z" />
|
382 |
-
<glyph unicode="" d="M 192.00,480.00L0.00,224.00L 192.00,224.00L 64.00-32.00L 512.00,288.00L 256.00,288.00L 448.00,480.00 z" />
|
383 |
-
<glyph unicode="" d="M 352.00,480.00L 64.00,192.00L 240.00,192.00L 160.00-32.00L 448.00,256.00L 272.00,256.00 z" />
|
384 |
-
<glyph unicode="" d="M0.00,128.00L 160.00,384.00L 320.00,224.00L 512.00,352.00L 352.00,64.00L 192.00,224.00 z" />
|
385 |
-
<glyph unicode="" d="M 384.00,416.00l-64.00,0.00 L 320.00,448.00 c0.00,17.60-14.40,32.00-32.00,32.00l-64.00,0.00 c-17.602,0.00-32.00-14.40-32.00-32.00l0.00-32.00 l-64.00,0.00 l0.00-64.00 l 256.00,0.00 L 384.00,416.00 z M 288.00,416.00l-64.00,0.00 L 224.00,447.943
|
386 |
-
c 0.017,0.019, 0.036,0.039, 0.057,0.057l 63.884,0.00 c 0.021-0.018, 0.041-0.038, 0.059-0.057L 288.00,416.00 L 288.00,416.00zM 432.00,416.00l-32.00,0.00 l0.00-32.00 l 16.00,0.00 l0.00-384.00 L 96.00,0.00 L 96.00,384.00 l 16.00,0.00 L 112.00,416.00 L 80.00,416.00 c-8.801,0.00-16.00-7.20-16.00-16.00l0.00-416.00 c0.00-8.80, 7.199-16.00, 16.00-16.00l 352.00,0.00 c 8.80,0.00, 16.00,7.20, 16.00,16.00L 448.00,400.00
|
387 |
-
C 448.00,408.80, 440.80,416.00, 432.00,416.00z" />
|
388 |
-
<glyph unicode="" d="M 384.00,416.00l-64.00,0.00 L 320.00,448.00 c0.00,17.60-14.40,32.00-32.00,32.00l-64.00,0.00 c-17.602,0.00-32.00-14.40-32.00-32.00l0.00-32.00 l-64.00,0.00 l0.00-64.00 l 256.00,0.00 L 384.00,416.00 z M 288.00,416.00l-64.00,0.00 L 224.00,447.943
|
389 |
-
c 0.017,0.019, 0.036,0.039, 0.057,0.057l 63.884,0.00 c 0.021-0.018, 0.041-0.038, 0.059-0.057L 288.00,416.00 L 288.00,416.00zM 432.00,416.00l-32.00,0.00 l0.00-32.00 l 16.00,0.00 l0.00-384.00 L 96.00,0.00 L 96.00,384.00 l 16.00,0.00 L 112.00,416.00 L 80.00,416.00 c-8.801,0.00-16.00-7.20-16.00-16.00l0.00-416.00 c0.00-8.80, 7.199-16.00, 16.00-16.00l 352.00,0.00 c 8.80,0.00, 16.00,7.20, 16.00,16.00L 448.00,400.00
|
390 |
-
C 448.00,408.80, 440.80,416.00, 432.00,416.00zM 128.00,288.00L 384.00,288.00L 384.00,256.00L 128.00,256.00zM 128.00,192.00L 384.00,192.00L 384.00,160.00L 128.00,160.00zM 128.00,96.00L 384.00,96.00L 384.00,64.00L 128.00,64.00z" />
|
391 |
-
<glyph unicode="" d="M0.00,448.00L 320.00,448.00L 320.00,384.00L0.00,384.00zM0.00,320.00L 288.00,320.00L 288.00,256.00L0.00,256.00zM0.00,192.00L 224.00,192.00L 224.00,128.00L0.00,128.00zM0.00,64.00L 160.00,64.00L 160.00,0.00L0.00,0.00zM 416.00,480.00l-64.00,0.00 l0.00-356.559 c-10.01,2.949-20.778,4.559-32.00,4.559c-53.02,0.00-96.00-35.817-96.00-80.00s 42.98-80.00, 96.00-80.00s 96.00,35.817, 96.00,80.00L 416.00,384.00 l 96.00-32.00
|
392 |
-
L 512.00,416.00 L 416.00,480.00z" />
|
393 |
-
<glyph unicode="" d="M0.00,480.00L 224.00,480.00L 224.00,256.00L0.00,256.00zM 288.00,480.00L 512.00,480.00L 512.00,256.00L 288.00,256.00zM0.00,192.00L 224.00,192.00L 224.00-32.00L0.00-32.00zM 288.00,192.00L 512.00,192.00L 512.00-32.00L 288.00-32.00z" />
|
394 |
-
<glyph unicode="" d="M 480.00,128.00l-51.741,0.00 L 308.546,327.522C 315.536,333.404, 320.00,342.205, 320.00,352.00L 320.00,416.00 c0.00,17.60-14.40,32.00-32.00,32.00l-64.00,0.00 c-17.60,0.00-32.00-14.40-32.00-32.00
|
395 |
-
l0.00-64.00 c0.00-9.795, 4.464-18.596, 11.455-24.478L 83.741,128.00L 32.00,128.00 c-17.60,0.00-32.00-14.40-32.00-32.00l0.00-64.00 c0.00-17.60, 14.40-32.00, 32.00-32.00l 64.00,0.00 c 17.60,0.00, 32.00,14.40, 32.00,32.00l0.00,64.00
|
396 |
-
c0.00,9.795-4.464,18.596-11.455,24.478L 236.26,320.00l 39.482,0.00 l 119.714-199.522C 388.465,114.596, 384.00,105.795, 384.00,96.00l0.00-64.00
|
397 |
-
c0.00-17.60, 14.40-32.00, 32.00-32.00l 64.00,0.00 c 17.60,0.00, 32.00,14.40, 32.00,32.00l0.00,64.00 C 512.00,113.60, 497.60,128.00, 480.00,128.00z" />
|
398 |
-
<glyph unicode="" d="M 192.00,448.00L 320.00,448.00L 320.00,320.00L 192.00,320.00zM 192.00,288.00L 320.00,288.00L 320.00,160.00L 192.00,160.00zM 192.00,128.00L 320.00,128.00L 320.00,0.00L 192.00,0.00z" />
|
399 |
-
<glyph unicode="" d="M 192.00,384.00A64.00,64.00 1260.00 1,0 320.00,384A64.00,64.00 1260.00 1,0 192.00,384zM 192.00,224.00A64.00,64.00 1260.00 1,0 320.00,224A64.00,64.00 1260.00 1,0 192.00,224zM 192.00,64.00A64.00,64.00 1260.00 1,0 320.00,64A64.00,64.00 1260.00 1,0 192.00,64z" />
|
400 |
-
<glyph unicode="" d="M 512.00,151.229c0.00,41.045-28.339,75.45-66.498,84.74C 443.881,300.319, 391.273,352.00, 326.571,352.00
|
401 |
-
c-37.896,0.00-71.633-17.747-93.427-45.366c-12.221,15.799-31.345,25.98-52.854,25.98c-36.905,0.00-66.821-29.937-66.821-66.861
|
402 |
-
c0.00-3.218, 0.24-6.38, 0.682-9.477c-5.611,1.012-11.383,1.569-17.285,1.569C 43.367,257.846,0.00,214.452,0.00,160.924
|
403 |
-
C0.00,107.393, 43.367,64.00, 96.865,64.00l 328.131,0.00 l0.00,0.006 C 473.065,64.098, 512.00,103.112, 512.00,151.229z" />
|
404 |
-
<glyph unicode="" d="M 445.502,299.97C 443.881,364.319, 391.273,416.00, 326.571,416.00c-37.896,0.00-71.633-17.747-93.427-45.366
|
405 |
-
c-12.221,15.799-31.345,25.98-52.854,25.98c-36.905,0.00-66.821-29.937-66.821-66.861c0.00-3.218, 0.24-6.38, 0.682-9.477
|
406 |
-
c-5.611,1.012-11.383,1.569-17.285,1.569C 43.367,321.846,0.00,278.452,0.00,224.924C0.00,171.393, 43.367,128.00, 96.865,128.00l 49.88,0.00 L 256.00,18.745
|
407 |
-
L 365.255,128.00l 59.741,0.00 l0.00,0.006 C 473.065,128.098, 512.00,167.112, 512.00,215.229C 512.00,256.274, 483.661,290.679, 445.502,299.97z M 256.00,64.00l-96.00,96.00
|
408 |
-
l 64.00,0.00 l0.00,96.00 l 64.00,0.00 l0.00-96.00 l 64.00,0.00 L 256.00,64.00z" />
|
409 |
-
<glyph unicode="" d="M 448.00,128.00L 448.00,64.00L 64.00,64.00L 64.00,128.00L0.00,128.00L0.00,0.00L 512.00,0.00L 512.00,128.00 zM 384.00,288.00L 288.00,288.00L 288.00,448.00L 224.00,448.00L 224.00,288.00L 128.00,288.00L 256.00,96.00 z" />
|
410 |
-
<glyph unicode="" d="M 445.502,299.97C 443.881,364.319, 391.273,416.00, 326.571,416.00c-37.896,0.00-71.633-17.747-93.427-45.366
|
411 |
-
c-12.221,15.799-31.345,25.98-52.854,25.98c-36.905,0.00-66.821-29.937-66.821-66.861c0.00-3.218, 0.24-6.38, 0.682-9.477
|
412 |
-
c-5.611,1.012-11.383,1.569-17.285,1.569C 43.367,321.846,0.00,278.452,0.00,224.924C0.00,171.393, 43.367,128.00, 96.865,128.00L 192.00,128.00 l0.00-96.00 l 128.00,0.00 l0.00,96.00
|
413 |
-
l 104.996,0.00 l0.00,0.006 C 473.065,128.098, 512.00,167.112, 512.00,215.229C 512.00,256.274, 483.661,290.679, 445.502,299.97z M 288.00,160.00l0.00-96.00 l-64.00,0.00 l0.00,96.00 l-64.00,0.00
|
414 |
-
l 96.00,96.00l 96.00-96.00L 288.00,160.00 z" />
|
415 |
-
<glyph unicode="" d="M 448.00,128.00L 448.00,64.00L 64.00,64.00L 64.00,128.00L0.00,128.00L0.00,0.00L 512.00,0.00L 512.00,128.00 zM 128.00,256.00L 224.00,256.00L 224.00,96.00L 288.00,96.00L 288.00,256.00L 384.00,256.00L 256.00,448.00 z" />
|
416 |
-
<glyph unicode="" d="M 160.00,128.00c 8.80-8.80, 23.637-8.363, 32.971,0.971L 351.03,287.029C 360.364,296.363, 360.80,311.20, 352.00,320.00
|
417 |
-
s-23.637,8.363-32.971-0.971L 160.971,160.971C 151.637,151.637, 151.20,136.80, 160.00,128.00zM 238.444,142.444c 2.28-4.525, 3.495-9.58, 3.495-14.848c0.00-8.808-3.372-17.03-9.496-23.154l-81.691-81.691
|
418 |
-
c-6.124-6.124-14.347-9.496-23.154-9.496s-17.03,3.372-23.154,9.496l-49.691,49.691c-6.124,6.124-9.496,14.347-9.496,23.154
|
419 |
-
s 3.372,17.03, 9.496,23.154l 81.691,81.691c 6.124,6.124, 14.347,9.497, 23.154,9.497c 5.268,0.00, 10.322-1.215, 14.848-3.495l 32.669,32.669
|
420 |
-
c-13.935,10.705-30.72,16.08-47.517,16.08c-19.993,0.00-39.986-7.583-55.154-22.751l-81.691-81.691
|
421 |
-
c-30.335-30.335-30.335-79.974,0.00-110.309l 49.691-49.691C 87.611-24.416, 107.604-32.00, 127.597-32.00
|
422 |
-
c 19.994,0.00, 39.987,7.584, 55.154,22.751l 81.691,81.691c 27.91,27.91, 30.119,72.149, 6.672,102.672L 238.444,142.444zM 489.249,407.558l-49.691,49.691C 424.391,472.417, 404.398,480.00, 384.404,480.00c-19.993,0.00-39.986-7.583-55.154-22.751l-81.691-81.691
|
423 |
-
c-27.91-27.91-30.119-72.149-6.671-102.671l 32.669,32.67c-2.279,4.525-3.494,9.58-3.494,14.847c0.00,8.808, 3.372,17.03, 9.496,23.154
|
424 |
-
l 81.691,81.691c 6.124,6.124, 14.347,9.497, 23.154,9.497s 17.03-3.373, 23.154-9.497l 49.691-49.691
|
425 |
-
c 6.124-6.124, 9.496-14.347, 9.496-23.154s-3.372-17.03-9.496-23.154l-81.691-81.691c-6.124-6.124-14.347-9.496-23.154-9.496
|
426 |
-
c-5.268,0.00-10.322,1.215-14.848,3.495l-32.669-32.669c 13.936-10.705, 30.72-16.08, 47.517-16.08c 19.994,0.00, 39.987,7.584, 55.154,22.751
|
427 |
-
l 81.691,81.691C 519.584,327.584, 519.584,377.223, 489.249,407.558z" />
|
428 |
-
<glyph unicode="" d="M 238.444,142.443c 2.28-4.524, 3.495-9.579, 3.495-14.848c0.00-8.808-3.372-17.029-9.496-23.154l-81.69-81.69
|
429 |
-
c-6.124-6.124-14.348-9.496-23.154-9.496s-17.03,3.372-23.154,9.496l-49.69,49.69c-6.124,6.125-9.496,14.348-9.496,23.154
|
430 |
-
s 3.372,17.03, 9.496,23.154l 81.69,81.691c 6.124,6.123, 14.348,9.496, 23.154,9.496c 5.269,0.00, 10.322-1.215, 14.848-3.494l 32.669,32.668
|
431 |
-
c-13.935,10.705-30.72,16.08-47.517,16.08c-19.993,0.00-39.986-7.583-55.154-22.751l-81.69-81.691
|
432 |
-
c-30.335-30.335-30.335-79.975,0.00-110.309l 49.69-49.691c 15.167-15.166, 35.16-22.75, 55.153-22.75
|
433 |
-
c 19.994,0.00, 39.987,7.584, 55.154,22.751l 81.69,81.69c 27.91,27.91, 30.119,72.149, 6.672,102.673L 238.444,142.443zM 489.248,407.558l-49.69,49.691C 424.391,472.417, 404.398,480.00, 384.404,480.00c-19.993,0.00-39.985-7.583-55.153-22.751l-81.691-81.691
|
434 |
-
c-27.91-27.91-30.119-72.149-6.671-102.671l 32.669,32.67c-2.279,4.525-3.494,9.58-3.494,14.847c0.00,8.808, 3.372,17.03, 9.496,23.154
|
435 |
-
l 81.691,81.691c 6.123,6.124, 14.347,9.497, 23.153,9.497c 8.808,0.00, 17.03-3.373, 23.154-9.497l 49.69-49.691
|
436 |
-
c 6.124-6.124, 9.496-14.347, 9.496-23.154c0.00-8.807-3.372-17.03-9.496-23.154l-81.69-81.691c-6.124-6.124-14.347-9.496-23.154-9.496
|
437 |
-
c-5.268,0.00-10.322,1.215-14.848,3.495l-32.669-32.669c 13.936-10.705, 30.72-16.08, 47.517-16.08c 19.994,0.00, 39.987,7.584, 55.154,22.752
|
438 |
-
l 81.69,81.69C 519.584,327.584, 519.584,377.223, 489.248,407.558zM 116.684,340.688L 20.687,436.685L 43.315,459.313L 139.312,363.316zM 192.00,480.00L 224.00,480.00L 224.00,384.00L 192.00,384.00zM0.00,288.00L 96.00,288.00L 96.00,256.00L0.00,256.00zM 395.316,107.312L 491.314,11.314L 468.686-11.314L 372.688,84.684zM 288.00,64.00L 320.00,64.00L 320.00-32.00L 288.00-32.00zM 416.00,192.00L 512.00,192.00L 512.00,160.00L 416.00,160.00z" />
|
439 |
-
<glyph unicode="" d="M 432.311,476.862L 303.69,451.138C 295.061,449.412, 288.00,455.20, 288.00,464.00S 280.94,478.588, 272.311,476.862L 128.00,448.00L 128.00,480.00 L 64.00,480.00 l0.00-512.00 l 64.00,0.00 L 128.00,224.00
|
440 |
-
l 144.311,28.862C 280.94,254.588, 288.00,248.80, 288.00,240.00s 7.061-14.588, 15.689-12.862l 128.621,25.725C 440.94,254.588, 448.00,263.20, 448.00,272.00L 448.00,464.00
|
441 |
-
C 448.00,472.80, 440.94,478.588, 432.311,476.862z" />
|
442 |
-
<glyph unicode="" d="M 254.059,418.977C 205.881,476.227, 169.369,480.00, 96.00,480.00l0.00-256.00 c 128.267,64.00, 142.636-8.335, 223.506-1.023
|
443 |
-
C 399.234,230.197, 467.031,291.564, 512.00,352.00C 384.644,322.547, 320.54,339.977, 254.059,418.977zM0.00,480.00L 64.00,480.00L 64.00-32.00L0.00-32.00z" />
|
444 |
-
<glyph unicode="" d="M 348.916,316.476l-32.476,32.461L 154.035,186.566c-26.907-26.896-26.907-70.524,0.00-97.422
|
445 |
-
c 26.902-26.896, 70.53-26.896, 97.437,0.00l 194.886,194.854c 44.857,44.831, 44.857,117.531,0.00,162.363
|
446 |
-
c-44.833,44.852-117.556,44.852-162.391,0.00L 79.335,241.788l 0.017-0.016c-0.145-0.152-0.306-0.288-0.438-0.423
|
447 |
-
c-62.551-62.548-62.551-163.928,0.00-226.453c 62.527-62.528, 163.934-62.528, 226.494,0.00c 0.137,0.137, 0.258,0.284, 0.41,0.438l 0.016-0.017
|
448 |
-
l 139.666,139.646l-32.493,32.46L 273.35,47.792l-0.008,0.00 c-0.148-0.134-0.282-0.285-0.423-0.422
|
449 |
-
c-44.537-44.529-116.99-44.529-161.538,0.00c-44.531,44.521-44.531,116.961,0.00,161.489c 0.152,0.152, 0.302,0.291, 0.444,0.423l-0.023,0.03
|
450 |
-
l 204.64,204.583c 26.856,26.869, 70.572,26.869, 97.443,0.00c 26.856-26.867, 26.856-70.574,0.00-97.42L 218.999,121.625
|
451 |
-
c-8.968-8.961-23.527-8.961-32.486,0.00c-8.947,8.943-8.947,23.516,0.00,32.46L 348.916,316.476z" />
|
452 |
-
<glyph unicode="" d="M 256.00,368.00C 128.00,368.00, 0.001,256.001,0.00,224.00l0.00,0.00c 0.001-32.001, 128.00-144.00, 256.00-144.00s 255.997,111.999, 256.00,144.00l0.00,0.00
|
453 |
-
C 511.997,256.001, 384.00,368.00, 256.00,368.00z M 256.00,128.00c-53.021,0.00-96.00,42.98-96.00,96.00c0.00,53.02, 42.979,96.00, 96.00,96.00c 53.02,0.00, 96.00-42.98, 96.00-96.00
|
454 |
-
C 352.00,170.98, 309.02,128.00, 256.00,128.00zM 224.00,224.00A32.00,32.00 4860.00 1,0 288.00,224A32.00,32.00 4860.00 1,0 224.00,224z" />
|
455 |
-
<glyph unicode="" d="M 256.00,384.00C 144.341,384.00, 47.559,318.979,0.00,224.00c 47.559-94.979, 144.341-160.00, 256.00-160.00c 111.657,0.00, 208.439,65.021, 256.00,160.00
|
456 |
-
C 464.442,318.979, 367.657,384.00, 256.00,384.00z M 256.00,177.811c-25.51,0.00-46.189,20.682-46.189,46.189s 20.681,46.189, 46.189,46.189
|
457 |
-
s 46.188-20.681, 46.188-46.189C 302.19,198.49, 281.509,177.811, 256.00,177.811z M 121.171,135.361
|
458 |
-
C 86.304,157.602, 57.231,188.037, 36.35,224.00c 20.88,35.963, 49.953,66.397, 84.821,88.639c 19.81,12.635, 41.182,22.406, 63.521,29.043
|
459 |
-
c 11.229,3.334, 22.684,5.862, 34.281,7.586C 164.881,333.302, 125.40,283.266, 125.40,224.00c0.00-59.266, 39.481-109.303, 93.575-125.268
|
460 |
-
c-11.60,1.723-23.052,4.25-34.282,7.586C 162.353,112.955, 140.981,122.727, 121.171,135.361z M 390.827,135.361
|
461 |
-
c-19.811-12.637-41.183-22.406-63.521-29.043c-11.229-3.336-22.685-5.862-34.28-7.586C 347.117,114.697, 386.60,164.734, 386.60,224.00
|
462 |
-
c0.00,59.266-39.481,109.303-93.574,125.268c 11.598-1.724, 23.051-4.252, 34.28-7.586c 22.341-6.637, 43.713-16.408, 63.521-29.043
|
463 |
-
c 34.868-22.24, 63.94-52.676, 84.822-88.639C 454.769,188.037, 425.697,157.604, 390.827,135.361z" />
|
464 |
-
<glyph unicode="" d="M 96.00,480.00L 96.00-32.00L 256.00,128.00L 416.00-32.00L 416.00,480.00 z" />
|
465 |
-
<glyph unicode="" d="M 96.00,480.00l0.00-512.00 l 160.00,160.00l 160.00-160.00L 416.00,480.00 L 96.00,480.00 z M 384.00,45.255l-128.00,128.00l-128.00-128.00L 128.00,448.00 l 256.00,0.00 L 384.00,45.255 z" />
|
466 |
-
<glyph unicode="" d="M 512.00,281.476L 316.434,281.476 L 256.00,467.471l-60.434-185.995L0.00,281.476 l 158.217-114.953L 97.783-19.471L 256.00,95.48l 158.216-114.951
|
467 |
-
l-60.434,185.994L 512.00,281.476z M 368.565,43.362L 256.00,125.146l-112.566-81.784L 186.43,175.69L 73.864,257.476l 139.14,0.00 L 256.00,389.806
|
468 |
-
l 42.997-132.33l 139.139,0.00 L 325.569,175.69L 368.565,43.362z" />
|
469 |
-
<glyph unicode="" d="M 512.00,287.996L 316.434,287.996 L 256.00,473.991l-60.435-185.995L0.00,287.996 l 158.217-114.952L 97.783-12.951L 256.00,102.00l 158.216-114.95l-60.434,185.994
|
470 |
-
L 512.00,287.996z M 368.566,49.882L 256.00,131.666L 256.00,396.325 l 42.996-132.33l 139.14,0.00 L 325.57,182.211L 368.566,49.882z" />
|
471 |
-
<glyph unicode="" d="M 512.00,287.996L 316.434,287.996L 256.00,473.991L 195.567,287.996L0.00,287.996L 158.217,173.044L 97.783-12.951L 256.00,102.00L 414.216-12.95L 353.783,173.044 z" />
|
472 |
-
<glyph unicode="" d="M 377.594,448.00c-53.815,0.00-100.129-43.777-121.582-89.50C 234.543,404.222, 188.223,448.00, 134.404,448.00C 60.213,448.00,0.00,387.78,0.00,313.584
|
473 |
-
c0.00-150.923, 152.25-190.497, 256.011-339.709C 354.088,122.163, 512.00,167.478, 512.00,313.584C 512.00,387.78, 451.785,448.00, 377.594,448.00z" />
|
474 |
-
<glyph unicode="" d="M 377.594,416.00C 434.061,416.00, 480.00,370.056, 480.00,313.584c0.00-17.689-2.709-33.877-8.28-49.492
|
475 |
-
c-5.107-14.312-12.658-28.205-23.085-42.472c-20.959-28.684-51.409-55.677-83.647-84.255
|
476 |
-
c-35.333-31.323-74.42-65.975-109.504-109.938c-35.252,42.688-73.336,76.052-107.772,106.221
|
477 |
-
c-33.969,29.76-63.305,55.46-84.255,84.381c-10.427,14.395-17.981,28.573-23.096,43.348C 34.735,277.63, 32.00,294.707, 32.00,313.584
|
478 |
-
C 32.00,370.056, 77.938,416.00, 134.404,416.00c 40.713,0.00, 76.563-36.856, 92.643-71.101l 28.977-61.711l 28.959,61.72
|
479 |
-
C 301.047,379.148, 336.881,416.00, 377.594,416.00 M 377.594,448.00c-53.815,0.00-100.129-43.777-121.582-89.50C 234.543,404.222, 188.223,448.00, 134.404,448.00
|
480 |
-
C 60.213,448.00,0.00,387.78,0.00,313.584c0.00-150.923, 152.25-190.497, 256.011-339.709C 354.088,122.163, 512.00,167.478, 512.00,313.584
|
481 |
-
C 512.00,387.78, 451.785,448.00, 377.594,448.00L 377.594,448.00z" />
|
482 |
-
<glyph unicode="" d="M 446.141,117.407c 0.852,10.12, 21.951,23.983, 21.934,34.12c-0.049,10.643-18.482,28.455-17.086,39.007
|
483 |
-
c 1.104,8.37, 16.555,20.793, 17.059,29.245c 0.898,15.353-19.852,45.40-34.119,51.174c-22.643,9.168-137.705,4.883-137.705,4.883
|
484 |
-
c-11.246,19.653, 20.035,68.201, 28.639,89.162c 12.631,30.719, 10.504,71.466-5.471,92.399C 299.879,482.98, 264.063,484.68, 263.325,473.238
|
485 |
-
c-5.336-83.01-21.229-106.053-42.505-122.455c-12.786-9.863-23.954-18.497-29.854-33.528
|
486 |
-
c-36.261-92.354-65.52-122.037-79.528-125.254L 64.00,192.001 l0.00-198.885 l 145.721-19.501c0.00,0.00, 133.455-12.632, 175.482,0.00
|
487 |
-
c 13.223,3.966, 36.039,23.818, 41.432,36.556c 3.074,7.315-1.197,24.622, 2.443,31.677c 5.371,10.458, 28.051,23.559, 28.027,37.771
|
488 |
-
C 457.082,89.754, 445.276,107.298, 446.141,117.407z" />
|
489 |
-
<glyph unicode="" d="M 468.051,228.233c-0.50,8.447-15.959,20.854-17.063,29.237c-1.398,10.544, 17.047,28.369, 17.076,39.00
|
490 |
-
c 0.023,10.137-21.072,24.002-21.93,34.127c-0.861,10.104, 10.953,27.644, 10.969,37.781c 0.025,14.216-22.658,27.314-28.033,37.771
|
491 |
-
c-3.631,7.059, 0.643,24.368-2.443,31.681c-5.385,12.739-28.203,32.595-41.414,36.556c-42.035,12.629-175.483,0.00-175.483,0.00L 64.00,454.89
|
492 |
-
L 64.00,256.00 l 47.445,0.00 c 13.993-7.782, 43.261-32.282, 79.526-124.636c 5.90-15.034, 17.073-24.288, 29.854-34.143
|
493 |
-
c 21.282-16.406, 37.157-39.442, 42.493-122.459c 0.743-11.443, 36.557-9.74, 56.064,15.837c 15.975,20.931, 18.109,61.682, 5.484,92.402
|
494 |
-
c-8.604,20.962-39.895,69.511-28.643,89.171c0.00,0.00, 115.066-4.285, 137.701,4.871C 448.192,182.817, 468.942,212.873, 468.051,228.233z" />
|
495 |
-
<glyph unicode="" d="M 256.001,480.00C 114.615,480.00,0.00,365.386,0.00,224.00c0.00-141.385, 114.614-256.00, 256.001-256.00C 397.386-32.00, 512.00,82.615, 512.00,224.00
|
496 |
-
C 512.00,365.386, 397.386,480.00, 256.001,480.00z M 336.001,365.256c 12.495,0.00, 22.627-20.262, 22.627-45.256c0.00-24.993-10.132-45.255-22.627-45.255
|
497 |
-
c-12.498,0.00-22.629,20.262-22.629,45.255C 313.372,344.994, 323.503,365.256, 336.001,365.256z M 176.001,365.256
|
498 |
-
c 12.496,0.00, 22.627-20.262, 22.627-45.256c0.00-24.993-10.131-45.255-22.627-45.255c-12.498,0.00-22.628,20.262-22.628,45.255
|
499 |
-
C 153.373,344.994, 163.503,365.256, 176.001,365.256z M 256.001,64.00C 172.566,64.00, 103.289,133.936, 96.00,223.152
|
500 |
-
c 46.885-27.057, 102.025-42.532, 160.001-42.532c 57.974,0.00, 113.114,15.403, 160.00,42.46C 408.712,133.861, 339.435,64.00, 256.001,64.00z" />
|
501 |
-
<glyph unicode="" d="M 256.00,480.00C 114.615,480.00,0.00,365.385,0.00,224.00s 114.612-256.00, 256.00-256.00c 141.385,0.00, 256.00,114.615, 256.00,256.00S 397.385,480.00, 256.00,480.00z M 344.00,368.00
|
502 |
-
c 17.674,0.00, 32.00-14.327, 32.00-32.00s-14.326-32.00-32.00-32.00c-17.673,0.00-32.00,14.327-32.00,32.00S 326.327,368.00, 344.00,368.00z M 168.00,368.00c 17.673,0.00, 32.00-14.327, 32.00-32.00
|
503 |
-
s-14.327-32.00-32.00-32.00s-32.00,14.327-32.00,32.00S 150.327,368.00, 168.00,368.00z M 400.069,137.549c-14.676-24.406-35.46-44.84-60.104-59.089
|
504 |
-
C 314.551,63.768, 285.517,56.00, 256.00,56.00c-29.518,0.00-58.551,7.768-83.964,22.46c-24.646,14.249-45.431,34.683-60.105,59.09l-4.126,6.862
|
505 |
-
l 41.161,24.699l 4.119-6.852C 175.019,125.779, 213.492,104.00, 256.00,104.00c 42.507,0.00, 80.979,21.779, 102.913,58.261l 4.119,6.851l 41.162-24.698
|
506 |
-
L 400.069,137.549z" />
|
507 |
-
<glyph unicode="" d="M 256.00,480.00C 114.615,480.00,0.00,365.385,0.00,224.00s 114.613-256.00, 256.00-256.00c 141.385,0.00, 256.00,114.615, 256.00,256.00S 397.385,480.00, 256.00,480.00z M 320.00,96.00L 192.00,96.00 l0.00,32.00
|
508 |
-
l 128.00,0.00 L 320.00,96.00 z M 344.00,368.00c 17.674,0.00, 32.00-14.327, 32.00-32.00s-14.326-32.00-32.00-32.00c-17.673,0.00-32.00,14.327-32.00,32.00S 326.327,368.00, 344.00,368.00z M 168.00,368.00
|
509 |
-
c 17.673,0.00, 32.00-14.327, 32.00-32.00s-14.327-32.00-32.00-32.00s-32.00,14.327-32.00,32.00S 150.327,368.00, 168.00,368.00z" />
|
510 |
-
<glyph unicode="" d="M 256.00,480.00C 114.615,480.00,0.00,365.385,0.00,224.00s 114.615-256.00, 256.00-256.00s 256.00,114.615, 256.00,256.00S 397.385,480.00, 256.00,480.00z M 288.00,192.00l0.00-160.00 l-64.00,0.00 L 224.00,192.00 L 64.00,192.00 l0.00,64.00
|
511 |
-
l 160.00,0.00 L 224.00,416.00 l 64.00,0.00 l0.00-160.00 l 160.00,0.00 l0.00-64.00 L 288.00,192.00 z" />
|
512 |
-
<glyph unicode="" d="M 256.00,480.00C 114.615,480.00,0.00,365.385,0.00,224.00s 114.615-256.00, 256.00-256.00s 256.00,114.615, 256.00,256.00S 397.385,480.00, 256.00,480.00z M 64.00,192.00l0.00,64.00 l 384.00,0.00 l0.00-64.00 L 64.00,192.00 z" />
|
513 |
-
<glyph unicode="" d="M 256.00,480.00C 114.615,480.00,0.00,365.385,0.00,224.00s 114.615-256.00, 256.00-256.00s 256.00,114.615, 256.00,256.00S 397.385,480.00, 256.00,480.00z M 256.00,32.00
|
514 |
-
c-26.51,0.00-48.00,21.49-48.00,48.00s 21.49,48.00, 48.00,48.00s 48.00-21.49, 48.00-48.00S 282.51,32.00, 256.00,32.00z M 368.064,302.971
|
515 |
-
c-2.495-8.446-5.956-16.459-10.406-24.007c-4.445-7.567-9.79-14.732-16.019-21.476c-6.229-6.771-13.061-13.267-20.541-19.486
|
516 |
-
c-8.363-6.936-15.08-13.076-20.146-18.418c-5.057-5.328-8.488-9.967-10.269-13.867c-3.339-7.174-5.853-24.363-2.691-45.717l-63.959,0.00
|
517 |
-
c-0.525,37.938, 5.058,56.501, 11.688,70.258c 6.764,13.884, 19.377,28.554, 37.888,44.031c 8.011,6.567, 14.236,12.408, 18.675,17.479
|
518 |
-
c 4.449,5.067, 7.841,9.599, 10.143,13.604c 2.307,4.00, 3.729,7.734, 4.271,11.211c 0.53,3.461, 0.793,7.056, 0.793,10.799
|
519 |
-
c0.00,6.938-1.199,13.337-3.603,19.205c-2.396,5.883-5.824,10.938-10.264,15.197c-4.457,4.281-9.696,7.617-15.744,10.021
|
520 |
-
c-6.048,2.399-12.804,3.61-20.279,3.61c-29.164,0.00-46.955-20.371-53.365-61.104l-64.027,0.00 c 1.598,17.44, 5.56,33.211, 11.876,47.353
|
521 |
-
c 6.313,14.15, 14.576,26.151, 24.813,36.028c 10.231,9.876, 22.146,17.47, 35.754,22.796c 13.60,5.34, 28.409,8.012, 44.419,8.012
|
522 |
-
c 17.08,0.00, 32.642-2.441, 46.696-7.332c 14.057-4.899, 26.104-11.709, 36.146-20.42c 10.057-8.713, 17.872-19.119, 23.482-31.211
|
523 |
-
c 5.591-12.104, 8.411-25.261, 8.411-39.484C 371.804,320.454, 370.546,311.424, 368.064,302.971z" />
|
524 |
-
<glyph unicode="" d="M 256.00,480.00C 114.615,480.00,0.00,365.385,0.00,224.00s 114.613-256.00, 256.00-256.00c 141.385,0.00, 256.00,114.615, 256.00,256.00S 397.385,480.00, 256.00,480.00z M 256.00,0.00
|
525 |
-
C 132.288,0.00, 32.00,100.288, 32.00,224.00S 132.288,448.00, 256.00,448.00s 224.00-100.288, 224.00-224.00S 379.712,0.00, 256.00,0.00zM 224.00,128.00L 288.00,128.00L 288.00,64.00L 224.00,64.00zM 352.00,352.00L 160.00,352.00 l0.00-64.00 l 160.00,0.00 l0.00-32.00 l-96.00-64.00l0.00-32.00 l 64.00,0.00 l 96.00,64.00l0.00,96.00 C 384.00,337.673, 369.673,352.00, 352.00,352.00z" />
|
526 |
-
<glyph unicode="" d="M 256.00,480.00C 114.615,480.00,0.00,365.385,0.00,224.00s 114.614-256.00, 256.00-256.00c 141.385,0.00, 256.00,114.615, 256.00,256.00S 397.385,480.00, 256.00,480.00z M 256.00,416.00
|
527 |
-
c 35.347,0.00, 64.00-28.654, 64.00-64.00s-28.653-64.00-64.00-64.00s-64.00,28.654-64.00,64.00S 220.654,416.00, 256.00,416.00z M 352.00,32.00L 160.00,32.00 l0.00,32.00 l 32.00,0.00 L 192.00,224.00 l-32.00,0.00 l0.00,32.00 l 160.00,0.00 l0.00-192.00 l 32.00,0.00 L 352.00,32.00 z
|
528 |
-
" />
|
529 |
-
<glyph unicode="" d="M0.00,224.00c0.00-141.385, 114.615-256.00, 256.00-256.00c 141.386,0.00, 256.00,114.615, 256.00,256.00S 397.386,480.00, 256.00,480.00C 114.615,480.00,0.00,365.385,0.00,224.00z M 448.00,224.00
|
530 |
-
c0.00-36.618-10.256-70.84-28.044-99.956L 156.045,387.956C 185.16,405.745, 219.382,416.00, 256.00,416.00C 362.038,416.00, 448.00,330.039, 448.00,224.00z M 64.00,224.00
|
531 |
-
c0.00,36.618, 10.256,70.839, 28.045,99.956l 263.911-263.912C 326.839,42.255, 292.618,32.00, 256.00,32.00C 149.962,32.00, 64.00,117.961, 64.00,224.00z" />
|
532 |
-
<glyph unicode="" d="M 256.00,480.00C 114.615,480.00,0.00,365.385,0.00,224.00s 114.615-256.00, 256.00-256.00s 256.00,114.615, 256.00,256.00S 397.385,480.00, 256.00,480.00z M 416.00,128.00l-64.00-64.00l-96.00,96.00l-96.00-96.00
|
533 |
-
l-64.00,64.00l 96.00,96.00l-96.00,96.00l 64.00,64.00l 96.00-96.00l 96.00,96.00l 64.00-64.00l-96.00-96.00L 416.00,128.00z" />
|
534 |
-
<glyph unicode="" d="M 507.331,68.67c-0.002,0.002-0.004,0.004-0.006,0.005L 352.003,224.00l 155.322,155.325c 0.002,0.002, 0.004,0.003, 0.006,0.005
|
535 |
-
c 1.672,1.673, 2.881,3.627, 3.656,5.708c 2.123,5.688, 0.912,12.341-3.662,16.915L 433.952,475.326c-4.574,4.573-11.225,5.783-16.914,3.66
|
536 |
-
c-2.08-0.775-4.035-1.984-5.709-3.655c0.00-0.002-0.002-0.003-0.004-0.005L 256.001,320.00L 100.677,475.325
|
537 |
-
c-0.002,0.002-0.003,0.003-0.005,0.005c-1.673,1.671-3.627,2.88-5.707,3.655c-5.69,2.124-12.341,0.913-16.915-3.66L 4.676,401.951
|
538 |
-
c-4.574-4.574-5.784-11.226-3.661-16.914c 0.776-2.08, 1.985-4.036, 3.656-5.708c 0.002-0.001, 0.003-0.003, 0.005-0.005L 160.001,224.00
|
539 |
-
L 4.676,68.674c-0.001-0.002-0.003-0.003-0.004-0.005c-1.671-1.673-2.88-3.627-3.657-5.707c-2.124-5.688-0.913-12.341, 3.661-16.915
|
540 |
-
l 73.374-73.373c 4.575-4.574, 11.226-5.784, 16.915-3.661c 2.08,0.776, 4.035,1.985, 5.708,3.656c 0.001,0.002, 0.003,0.003, 0.005,0.005
|
541 |
-
l 155.324,155.325l 155.324-155.325c 0.002-0.001, 0.004-0.003, 0.006-0.004c 1.674-1.672, 3.627-2.881, 5.707-3.657
|
542 |
-
c 5.689-2.123, 12.342-0.913, 16.914,3.661l 73.373,73.374c 4.574,4.574, 5.785,11.227, 3.662,16.915
|
543 |
-
C 510.212,65.043, 509.003,66.997, 507.331,68.67z" />
|
544 |
-
<glyph unicode="" d="M 512.00,352.00L 384.00,480.00L 256.00,352.00L 128.00,480.00L0.00,352.00L 128.00,224.00L0.00,96.00L 128.00-32.00L 256.00,96.00L 384.00-32.00L 512.00,96.00L 384.00,224.00 z" />
|
545 |
-
<glyph unicode="" d="M 432.00,432.00L 192.00,192.00L 80.00,304.00L0.00,224.00L 192.00,32.00L 512.00,352.00 z" />
|
546 |
-
<glyph unicode="" d="M0.00,272.00l0.00-96.00 c0.00-8.836, 7.164-16.00, 16.00-16.00l 480.00,0.00 c 8.836,0.00, 16.00,7.164, 16.00,16.00l0.00,96.00 c0.00,8.836-7.164,16.00-16.00,16.00L 16.00,288.00 C 7.164,288.00,0.00,280.836,0.00,272.00z" />
|
547 |
-
<glyph unicode="" d="M 496.00,288.00L 320.00,288.00 L 320.00,464.00 c0.00,8.836-7.164,16.00-16.00,16.00l-96.00,0.00 c-8.836,0.00-16.00-7.164-16.00-16.00l0.00-176.00 L 16.00,288.00 c-8.836,0.00-16.00-7.164-16.00-16.00l0.00-96.00
|
548 |
-
c0.00-8.836, 7.164-16.00, 16.00-16.00l 176.00,0.00 l0.00-176.00 c0.00-8.836, 7.164-16.00, 16.00-16.00l 96.00,0.00 c 8.836,0.00, 16.00,7.164, 16.00,16.00L 320.00,160.00 l 176.00,0.00 c 8.836,0.00, 16.00,7.164, 16.00,16.00l0.00,96.00
|
549 |
-
C 512.00,280.836, 504.836,288.00, 496.00,288.00z" />
|
550 |
-
<glyph unicode="" d="M 448.00,448.00L 96.00,448.00 C 78.40,448.00, 64.00,433.60, 64.00,416.00l0.00-128.00 l 64.00,0.00 L 128.00,384.00 l 352.00,0.00 L 480.00,416.00 C 480.00,433.60, 465.60,448.00, 448.00,448.00zM 336.00,208.00L 192.00,352.00L 192.00,256.00L0.00,256.00L0.00,160.00L 192.00,160.00L 192.00,64.00 zM 128.00,128.00L 64.00,128.00 l0.00-128.00 c0.00-17.60, 14.399-32.00, 32.00-32.00l 352.00,0.00 c 17.60,0.00, 32.00,14.40, 32.00,32.00l0.00,32.00 L 128.00,32.00 L 128.00,128.00 z" />
|
551 |
-
<glyph unicode="" d="M 496.00,208.00L 352.00,352.00L 352.00,256.00L 160.00,256.00L 160.00,160.00L 352.00,160.00L 352.00,64.00 zM 416.00,384.00L 416.00,416.00 c0.00,17.60-14.40,32.00-32.00,32.00L 32.00,448.00 C 14.40,448.00,0.00,433.60,0.00,416.00l0.00-416.00 c0.00-17.60, 14.399-32.00, 32.00-32.00l 352.00,0.00 c 17.60,0.00, 32.00,14.40, 32.00,32.00l0.00,32.00 L 64.00,32.00 L 64.00,384.00
|
552 |
-
L 416.00,384.00 z" />
|
553 |
-
<glyph unicode="" d="M 160.00,160.00L 160.00,256.00L 256.00,256.00L 128.00,384.00L0.00,256.00L 96.00,256.00L 96.00,96.00L 288.00,96.00L 224.00,160.00 zM 416.00,192.00L 416.00,352.00L 224.00,352.00L 288.00,288.00L 352.00,288.00L 352.00,192.00L 256.00,192.00L 384.00,64.00L 512.00,192.00 z" />
|
554 |
-
<glyph unicode="" d="M 384.00,160.00L 256.00,288.00L 128.00,160.00 z" />
|
555 |
-
<glyph unicode="" d="M 192.001,96.00L 320.001,224.00L 192.001,352.00 z" />
|
556 |
-
<glyph unicode="" d="M 128.00,288.00L 256.00,160.00L 384.00,288.00 z" />
|
557 |
-
<glyph unicode="" d="M 320.001,352.00L 192.001,224.00L 320.001,95.999 z" />
|
558 |
-
<glyph unicode="" d="M0.00,96.00L 128.00,224.00L 384.00-32.00L 512.00,96.00L 256.00,352.00L 383.999,480.00L0.00,480.00 z" />
|
559 |
-
<glyph unicode="" d="M 256.001,480.00L0.00,224.00L 160.00,224.00L 160.00-31.999L 352.00-32.00L 352.00,224.00L 512.00,224.00 z" />
|
560 |
-
<glyph unicode="" d="M 128.00,480.00L 256.001,352.00L0.00,96.00L 128.00-32.00L 384.00,224.00L 512.00,96.001L 512.00,480.00 z" />
|
561 |
-
<glyph unicode="" d="M 512.00,224.00L 256.00,480.00L 256.00,320.00L 0.001,320.00L0.00,128.00L 256.00,128.00L 256.00-32.00 z" />
|
562 |
-
<glyph unicode="" d="M 512.00,352.00L 384.00,224.00L 128.00,480.00L0.00,352.00L 256.001,96.00L 128.001-32.00L 512.00-32.00 z" />
|
563 |
-
<glyph unicode="" d="M 256.00-32.00L 512.00,224.00L 352.00,224.00L 352.00,479.999L 160.00,480.00L 160.00,224.00L0.00,224.00 z" />
|
564 |
-
<glyph unicode="" d="M 384.00-32.00L 256.00,96.00L 512.00,352.00L 384.00,480.00L 128.00,223.999L0.00,351.999L0.00-32.00 z" />
|
565 |
-
<glyph unicode="" d="M0.00,224.00L 256.00-32.00L 256.00,128.00L 511.999,128.00L 512.00,320.00L 256.00,320.00L 256.00,480.00 z" />
|
566 |
-
<glyph unicode="" d="M0.00,480.00L0.00,192.00L 96.00,288.00L 512.00-32.00L 192.00,384.00L 285.309,480.00 z" />
|
567 |
-
<glyph unicode="" d="M 256.002-32.00L 200.00,352.00L 96.00,352.00L 255.999,480.00L 416.00,352.00L 311.999,352.00 z" />
|
568 |
-
<glyph unicode="" d="M 512.00,480.00L 224.00,480.00L 320.00,384.00L0.00-32.00L 416.00,288.00L 512.00,194.691 z" />
|
569 |
-
<glyph unicode="" d="M0.00,223.998L 384.00,280.00L 384.00,384.00L 512.00,224.001L 384.00,64.00L 384.00,168.001 z" />
|
570 |
-
<glyph unicode="" d="M 512.00-32.00L 512.00,256.00L 416.001,160.00L0.00,480.00L 320.00,64.00L 226.692-32.00 z" />
|
571 |
-
<glyph unicode="" d="M 255.998,480.00L 312.00,96.00L 416.00,96.00L 256.001-32.00L 96.00,96.00L 200.001,96.00 z" />
|
572 |
-
<glyph unicode="" d="M0.00-32.00L 288.00-32.00L 192.00,64.00L 512.00,480.00L 96.00,160.00L0.00,253.308 z" />
|
573 |
-
<glyph unicode="" d="M 512.00,224.002L 128.00,168.00L 128.00,64.00L0.00,223.999L 128.00,384.00L 128.00,279.999 z" />
|
574 |
-
<glyph unicode="" d="M 32.00,448.00L 32.00,128.00L 128.00,32.00L 128.00,256.00L 384.00,0.00L 480.00,96.00L 224.00,352.00L 448.00,352.00L 352.00,448.00 z" />
|
575 |
-
<glyph unicode="" d="M 32.00,256.00L 32.00,128.00L 192.00,288.00L 192.00-32.00L 320.00-32.00L 320.00,288.00L 480.00,128.00L 480.00,256.00L 256.00,480.00 z" />
|
576 |
-
<glyph unicode="" d="M 480.00,448.00L 160.00,448.00L 64.00,352.00L 288.00,352.00L 32.00,96.00L 128.00,0.00L 384.00,256.00L 384.00,32.00L 480.00,128.00 z" />
|
577 |
-
<glyph unicode="" d="M 288.00,448.00L 160.00,448.00L 320.00,288.00L0.00,288.00L0.00,160.00L 320.00,160.00L 160.00,0.00L 288.00,0.00L 512.00,224.00 z" />
|
578 |
-
<glyph unicode="" d="M 480.00,0.00L 480.00,320.00L 384.00,416.00L 384.00,192.00L 128.00,448.00L 32.00,352.00L 288.00,96.00L 64.001,96.00L 160.001,0.00 z" />
|
579 |
-
<glyph unicode="" d="M 480.00,192.00L 480.00,320.00L 320.00,160.00L 320.00,480.00L 192.00,480.00L 192.001,159.999L 32.00,320.00L 32.00,191.999L 256.001-32.00 z" />
|
580 |
-
<glyph unicode="" d="M 32.00,0.00L 352.00,0.00L 448.00,96.00L 224.00,96.00L 480.00,352.00L 384.00,448.00L 128.00,192.00L 128.00,416.00L 32.00,320.00 z" />
|
581 |
-
<glyph unicode="" d="M 224.00,0.00L 352.00,0.00L 192.00,160.00L 512.00,160.00L 512.00,288.00L 192.00,288.00L 352.00,448.00L 224.00,448.00L0.00,224.00 z" />
|
582 |
-
<glyph unicode="" d="M 512.00,256.00L 256.00,480.00L0.00,256.00l 186.225,0.00 L 128.00-32.00l 256.00,0.00 l-58.226,288.00L 512.00,256.00 z M 346.226,0.00L 165.775,0.00 L 224.00,288.00L 85.167,288.00 L 256.00,437.479L 426.834,288.00
|
583 |
-
L 288.00,288.00 L 346.226,0.00z" />
|
584 |
-
<glyph unicode="" d="M 288.00-32.00l 224.00,256.00L 288.00,480.00l0.00-186.225 L0.00,352.00l0.00-256.00 l 288.00,58.227L 288.00-32.00 z M 32.00,133.774L 32.00,314.226 L 320.00,256.00L 320.00,394.833 L 469.479,224.00L 320.00,53.166L 320.00,192.00
|
585 |
-
L 32.00,133.774z" />
|
586 |
-
<glyph unicode="" d="M0.00,192.00l 256.00-224.00l 256.00,224.00L 325.776,192.00 L 384.00,480.00L 128.00,480.00 l 58.227-288.00L0.00,192.00 z M 165.775,448.00l 180.451,0.00 L 288.00,160.00l 138.833,0.00 L 256.00,10.521L 85.166,160.00L 224.00,160.00
|
587 |
-
L 165.775,448.00z" />
|
588 |
-
<glyph unicode="" d="M 224.00,480.00L0.00,224.00l 224.00-256.00L 224.00,154.226 l 288.00-58.225L 512.00,352.00 l-288.00-58.227L 224.00,480.00 z M 480.00,314.226l0.00-180.45 l-288.00,58.226l0.00-138.833 L 42.522,224.00
|
589 |
-
L 192.00,394.834L 192.00,256.00 L 480.00,314.226z" />
|
590 |
-
<glyph unicode="" d="M 256.00,480.00L 32.00-32.00L 256.00,64.00L 480.00-32.00 z" />
|
591 |
-
<glyph unicode="" d="M 512.00,224.00L0.00,448.00L 96.00,224.00L0.00,0.00 z" />
|
592 |
-
<glyph unicode="" d="M 256.00-32.00L 480.00,480.00L 256.00,384.00L 32.00,480.00 z" />
|
593 |
-
<glyph unicode="" d="M0.00,224.00L 512.00,0.00L 416.00,224.00L 512.00,448.00 z" />
|
594 |
-
<glyph unicode="" d="M 128.00,256.00L 128.00,192.001L 224.00,288.00L 224.00,96.001L 288.00,96.00L 288.001,288.00L 384.001,192.00L 384.001,256.00L 256.001,384.00 zM0.00,224.00c0.00-141.384, 114.615-255.999, 256.00-256.00c 141.385,0.00, 256.00,114.615, 256.00,256.00c 0.001,141.385-114.614,256.00-256.00,256.00
|
595 |
-
S0.00,365.385,0.00,224.00z M 480.001,224.00C 480.00,100.288, 379.712,0.00, 256.00,0.00C 132.288,0.001, 32.00,100.289, 32.00,224.00c0.00,123.712, 100.288,224.00, 224.00,224.00
|
596 |
-
S 480.001,347.712, 480.001,224.00z" />
|
597 |
-
<glyph unicode="" d="M 288.00,352.00L 224.00,352.00L 320.00,256.00L 128.00,256.00L 128.00,192.00L 320.00,192.00L 224.00,96.00L 288.00,96.00L 416.00,224.00 zM 256.00,480.00C 114.615,480.00,0.00,365.385,0.00,224.00s 114.615-256.00, 256.00-256.00s 256.00,114.615, 256.00,256.00S 397.385,480.00, 256.00,480.00z M 256.00,0.00
|
598 |
-
C 132.288,0.00, 32.00,100.288, 32.00,224.00S 132.288,448.00, 256.00,448.00s 224.00-100.288, 224.00-224.00S 379.712,0.00, 256.00,0.00z" />
|
599 |
-
<glyph unicode="" d="M 384.00,192.00L 384.00,256.00L 288.00,160.00L 288.00,352.00L 224.00,352.00L 224.00,160.00L 128.00,256.00L 128.00,192.00L 256.00,64.00 zM 512.00,224.00C 512.00,365.385, 397.385,480.00, 256.00,480.00S0.00,365.385,0.00,224.00s 114.615-256.00, 256.00-256.00S 512.00,82.615, 512.00,224.00z M 32.00,224.00
|
600 |
-
C 32.00,347.712, 132.288,448.00, 256.00,448.00s 224.00-100.288, 224.00-224.00S 379.712,0.00, 256.00,0.00S 32.00,100.288, 32.00,224.00z" />
|
601 |
-
<glyph unicode="" d="M 224.00,96.00L 288.00,96.00L 192.00,192.00L 384.00,192.00L 384.00,256.00L 192.00,256.00L 288.00,352.00L 224.00,352.00L 96.00,224.00 zM 256.00-32.00c 141.385,0.00, 256.00,114.615, 256.00,256.00S 397.385,480.00, 256.00,480.00C 114.615,480.00,0.00,365.385,0.00,224.00C0.00,82.615, 114.615-32.00, 256.00-32.00z
|
602 |
-
M 256.00,448.00c 123.712,0.00, 224.00-100.289, 224.00-224.00S 379.712,0.00, 256.00,0.00S 32.00,100.288, 32.00,224.00C 32.00,347.712, 132.288,448.00, 256.00,448.00z" />
|
603 |
-
<glyph unicode="" d="M 384.00,256.00L 256.00,384.00L 128.00,256.00 zM 128.00,160.00L 256.00,32.00L 384.00,160.00 z" />
|
604 |
-
<glyph unicode="" d="M 512.00,448.00L 416.00,448.00L 416.00,224.00L 176.00,224.00L 256.00,304.00L 192.00,368.00L0.00,176.00L 192.00-16.00L 256.00,48.00L 176.00,128.00L 512.00,128.00 z" />
|
605 |
-
<glyph unicode="" d="M 160.00,384.00L0.00,224.00l 160.00-160.00l 352.00,0.00 L 512.00,384.00 L 160.00,384.00 z M 480.00,96.00L 173.255,96.00 l-128.00,128.00l 128.00,128.00L 480.00,352.00 L 480.00,96.00 zM 288.00,128.00L 352.00,192.00L 416.00,128.00L 448.00,160.00L 384.00,224.00L 448.00,288.00L 416.00,320.00L 352.00,256.00L 288.00,320.00L 256.00,288.00L 320.00,224.00L 256.00,160.00 z" />
|
606 |
-
<glyph unicode="" d="M 160.00,384.00L0.00,224.00l 160.00-160.00l 352.00,0.00 L 512.00,384.00 L 160.00,384.00 z M 469.12,145.92l-39.04-39.04L 352.00,184.96l-78.08-78.08l-39.04,39.04L 312.96,224.00
|
607 |
-
l-78.08,78.08l 39.04,39.04L 352.00,263.04l 78.08,78.08l 39.04-39.04L 391.04,224.00L 469.12,145.92z" />
|
608 |
-
<glyph unicode="" d="M 352.00,192.00L 480.00,320.00L 352.00,448.00L 352.00,352.00L0.00,352.00L0.00,288.00L 352.00,288.00 zM 160.00,160.00L 160.00,256.00L 32.00,128.00L 160.00,0.00L 160.00,96.00L 512.00,96.00L 512.00,160.00 z" />
|
609 |
-
<glyph unicode="" d="M 352.00,384.00L0.00,384.00L0.00,320.00L 352.00,320.00L 352.00,224.00L 480.00,352.00L 352.00,480.00 zM 480.00,480.00L 480.00,352.00L 480.00,224.00L 512.00,224.00L 512.00,480.00 zM 160.00,224.00L 32.00,96.00L 160.00-32.00L 160.00,64.00L 512.00,64.00L 512.00,128.00L 160.00,128.00 zM0.00,224.00L0.00-32.00L 32.00-32.00L 32.00,96.00L 32.00,224.00 z" />
|
610 |
-
<glyph unicode="" d="M0.00,480.00l0.00-512.00 l 512.00,0.00 L 512.00,480.00 L0.00,480.00 z M 480.00,0.00L 32.00,0.00 L 32.00,448.00 l 448.00,0.00 L 480.00,0.00 zM 384.00,352.00L 224.00,192.00L 128.00,288.00L 64.00,224.00L 224.00,64.00L 448.00,288.00 z" />
|
611 |
-
<glyph unicode="" d="M0.00,480.00l0.00-512.00 l 512.00,0.00 L 512.00,480.00 L0.00,480.00 z M 480.00,0.00L 32.00,0.00 L 32.00,448.00 l 448.00,0.00 L 480.00,0.00 z" />
|
612 |
-
<glyph unicode="" d="M0.00,480.00l0.00-512.00 l 512.00,0.00 L 512.00,480.00 L0.00,480.00 z M 480.00,0.00L 32.00,0.00 L 32.00,448.00 l 448.00,0.00 L 480.00,0.00 zM 128.00,352.00L 384.00,352.00L 384.00,96.00L 128.00,96.00z" />
|
613 |
-
<glyph unicode="" d="M 256.00,480.00C 114.615,480.00,0.00,365.385,0.00,224.00s 114.615-256.00, 256.00-256.00s 256.00,114.615, 256.00,256.00S 397.385,480.00, 256.00,480.00z M 256.00,32.00
|
614 |
-
c-106.039,0.00-192.00,85.961-192.00,192.00c0.00,106.039, 85.961,192.00, 192.00,192.00c 106.039,0.00, 192.00-85.961, 192.00-192.00C 448.00,117.961, 362.039,32.00, 256.00,32.00zM 160.00,224.00A96.00,96.00 4860.00 1,0 352.00,224A96.00,96.00 4860.00 1,0 160.00,224z" />
|
615 |
-
<glyph unicode="" d="M 256.00,480.00C 114.615,480.00,0.00,365.385,0.00,224.00s 114.615-256.00, 256.00-256.00s 256.00,114.615, 256.00,256.00S 397.385,480.00, 256.00,480.00z M 256.00,32.00
|
616 |
-
c-106.039,0.00-192.00,85.961-192.00,192.00c0.00,106.039, 85.961,192.00, 192.00,192.00c 106.039,0.00, 192.00-85.961, 192.00-192.00C 448.00,117.961, 362.039,32.00, 256.00,32.00z" />
|
617 |
-
<glyph unicode="" d="M 399.798,471.896C 354.535,471.896, 325.488,480.00, 278.874,480.00C 128.232,480.00, 57.978,394.208, 57.978,307.064
|
618 |
-
c0.00-51.339, 24.32-68.229, 72.282-68.229c-3.379,7.432-9.457,15.54-9.457,52.017c0.00,102.005, 38.503,131.729, 87.818,133.755
|
619 |
-
c0.00,0.00-40.459-396.687-157.889-444.271L 50.732-32.00 l 84.359,0.00 l 73.938,0.00 l 54.013,256.00l 98.922,0.00 L 384.00,288.00L 276.546,288.00 l 25.972,123.095
|
620 |
-
c 29.723-6.078, 58.771-12.158, 83.766-12.158c 31.074,0.00, 59.447,9.457, 74.984,81.063C 442.355,473.92, 422.087,471.896, 399.798,471.896z" />
|
621 |
-
<glyph unicode="" d="M0.00,384.00L 512.00,384.00L 512.00,352.00L0.00,352.00zM0.00,320.00L 352.00,320.00L 352.00,288.00L0.00,288.00zM0.00,256.00L 512.00,256.00L 512.00,224.00L0.00,224.00zM0.00,192.00L 352.00,192.00L 352.00,160.00L0.00,160.00zM0.00,128.00L 512.00,128.00L 512.00,96.00L0.00,96.00zM0.00,64.00L 352.00,64.00L 352.00,32.00L0.00,32.00z" />
|
622 |
-
<glyph unicode="" d="M0.00,384.00L 512.00,384.00L 512.00,352.00L0.00,352.00zM 96.00,320.00L 416.00,320.00L 416.00,288.00L 96.00,288.00zM 96.00,192.00L 416.00,192.00L 416.00,160.00L 96.00,160.00zM 96.00,64.00L 416.00,64.00L 416.00,32.00L 96.00,32.00zM0.00,256.00L 512.00,256.00L 512.00,224.00L0.00,224.00zM0.00,128.00L 512.00,128.00L 512.00,96.00L0.00,96.00z" />
|
623 |
-
<glyph unicode="" d="M0.00,384.00L 512.00,384.00L 512.00,352.00L0.00,352.00zM 160.00,320.00L 512.00,320.00L 512.00,288.00L 160.00,288.00zM0.00,256.00L 512.00,256.00L 512.00,224.00L0.00,224.00zM 160.00,192.00L 512.00,192.00L 512.00,160.00L 160.00,160.00zM0.00,128.00L 512.00,128.00L 512.00,96.00L0.00,96.00zM 160.00,64.00L 512.00,64.00L 512.00,32.00L 160.00,32.00z" />
|
624 |
-
<glyph unicode="" d="M 256.00,480.00c-70.692,0.00-128.00-57.308-128.00-128.00s 57.308-128.00, 128.00-128.00l0.00-256.00 l 64.00,0.00 L 320.00,416.00 l 64.00,0.00 l0.00-448.00 l 64.00,0.00 L 448.00,416.00 l 64.00,0.00 L 512.00,480.00 L 256.00,480.00 zM0.00,128.00L 128.00,256.00L0.00,384.00 z" />
|
625 |
-
<glyph unicode="" d="M 128.00,480.00C 57.308,480.00,0.00,422.692,0.00,352.00s 57.308-128.00, 128.00-128.00l0.00-256.00 l 64.00,0.00 L 192.00,416.00 l 64.00,0.00 l0.00-448.00 l 64.00,0.00 L 320.00,416.00 l 64.00,0.00 L 384.00,480.00 L 128.00,480.00 zM 512.00,384.00L 384.00,256.00L 512.00,128.00 z" />
|
626 |
-
<glyph unicode="" d="M 128.00,160.00c0.00,0.00, 29.412,96.00, 192.00,96.00l0.00-96.00 l 192.00,128.00L 320.00,416.00l0.00-96.00 C 192.00,320.00, 128.00,240.164, 128.00,160.00zM 352.00,96.00L 64.00,96.00 L 64.00,288.00 l 62.938,0.00 c 5.047,5.959, 10.456,11.667, 16.244,17.09c 21.982,20.595, 48.281,36.326, 78.057,46.91L0.00,352.00 l0.00-320.00 l 416.00,0.00
|
627 |
-
L 416.00,166.312 l-64.00-42.667L 352.00,96.00 z" />
|
628 |
-
<glyph unicode="" d="M 320.00,448.00L 384.00,384.00L 160.00,160.00L 192.00,128.00L 416.00,352.00L 480.00,288.00L 480.00,448.00 zM 352.00,64.00L 96.00,64.00L 96.00,320.00L 224.00,320.00L 288.00,384.00L 32.00,384.00L 32.00,0.00L 416.00,0.00L 416.00,256.00L 352.00,192.00 z" />
|
629 |
-
<glyph unicode="" d="M 160.00,352.00L 32.00,224.00L 160.00,96.00L 224.00,96.00L 96.00,224.00L 224.00,352.00 zM 352.00,352.00L 288.00,352.00L 416.00,224.00L 288.00,96.00L 352.00,96.00L 480.00,224.00 z" />
|
630 |
-
<glyph unicode="" d="M 352.00,416.00L 384.00,448.00L 352.00,480.00L 160.00,480.00L 128.00,448.00L 160.00,416.00 zM 384.00,432.00L 352.00,400.00L 352.00,272.00L 384.00,240.00L 416.00,272.00L 416.00,400.00 zM 160.00,271.999L 160.00,400.00L 128.00,432.00L 96.00,400.00L 96.00,271.999L 128.00,239.999 zM 352.00,176.00L 352.00,48.00L 384.00,16.00L 416.00,48.00L 416.00,176.00L 384.00,208.00 zM 160.00,48.00L 160.00,176.00L 128.00,208.00L 96.00,176.00L 96.00,48.00L 128.00,16.00 zM 160.00,32.00L 128.00,0.00L 160.00-32.00L 352.00-32.00L 384.00,0.00L 352.00,32.00 z" />
|
631 |
-
<glyph unicode="" d="M 384.00,432.00L 352.00,400.00L 352.00,272.00L 384.00,240.00L 416.00,272.00L 416.00,400.00 zM 352.00,176.00L 352.00,48.00L 384.00,16.00L 416.00,48.00L 416.00,176.00L 384.00,208.00 z" />
|
632 |
-
<glyph unicode="" d="M 128.00,448.00L 160.00,480.00L 352.00,480.00L 384.00,448.00L 352.00,416.00L 160.00,416.00 zM 384.00,240.00L 352.00,272.00L 352.00,400.00L 384.00,432.00L 416.00,400.00L 416.00,272.00 zM 128.00,16.00L 96.00,48.00L 96.00,176.00L 128.00,208.00L 160.00,176.00L 160.00,48.00 zM 128.00,224.00L 160.00,256.00L 352.00,256.00L 384.00,224.00L 352.00,192.00L 160.00,192.00 zM 128.00,0.00L 160.00,32.00L 352.00,32.00L 384.00,0.00L 352.00-32.00L 160.00-32.00 z" />
|
633 |
-
<glyph unicode="" d="M 128.00,448.00L 160.00,480.00L 352.00,480.00L 384.00,448.00L 352.00,416.00L 160.00,416.00 zM 384.00,240.00L 352.00,272.00L 352.00,400.00L 384.00,432.00L 416.00,400.00L 416.00,272.00 zM 384.00,16.00L 352.00,48.00L 352.00,176.00L 384.00,208.00L 416.00,176.00L 416.00,48.00 zM 128.00,224.00L 160.00,256.00L 352.00,256.00L 384.00,224.00L 352.00,192.00L 160.00,192.00 zM 128.00,0.00L 160.00,32.00L 352.00,32.00L 384.00,0.00L 352.00-32.00L 160.00-32.00 z" />
|
634 |
-
<glyph unicode="" d="M 384.00,240.00L 352.00,272.00L 352.00,400.00L 384.00,432.00L 416.00,400.00L 416.00,272.00 zM 128.00,239.999L 96.00,271.999L 96.00,400.00L 128.00,432.00L 160.00,400.00L 160.00,271.999 zM 384.00,16.00L 352.00,48.00L 352.00,176.00L 384.00,208.00L 416.00,176.00L 416.00,48.00 zM 128.00,224.00L 160.00,256.00L 352.00,256.00L 384.00,224.00L 352.00,192.00L 160.00,192.00 z" />
|
635 |
-
<glyph unicode="" d="M 128.00,448.00L 160.00,480.00L 352.00,480.00L 384.00,448.00L 352.00,416.00L 160.00,416.00 zM 128.00,239.999L 96.00,271.999L 96.00,400.00L 128.00,432.00L 160.00,400.00L 160.00,271.999 zM 384.00,16.00L 352.00,48.00L 352.00,176.00L 384.00,208.00L 416.00,176.00L 416.00,48.00 zM 128.00,224.00L 160.00,256.00L 352.00,256.00L 384.00,224.00L 352.00,192.00L 160.00,192.00 zM 128.00,0.00L 160.00,32.00L 352.00,32.00L 384.00,0.00L 352.00-32.00L 160.00-32.00 z" />
|
636 |
-
<glyph unicode="" d="M 128.00,448.00L 160.00,480.00L 352.00,480.00L 384.00,448.00L 352.00,416.00L 160.00,416.00 zM 128.00,239.999L 96.00,271.999L 96.00,400.00L 128.00,432.00L 160.00,400.00L 160.00,271.999 zM 384.00,16.00L 352.00,48.00L 352.00,176.00L 384.00,208.00L 416.00,176.00L 416.00,48.00 zM 128.00,16.00L 96.00,48.00L 96.00,176.00L 128.00,208.00L 160.00,176.00L 160.00,48.00 zM 128.00,224.00L 160.00,256.00L 352.00,256.00L 384.00,224.00L 352.00,192.00L 160.00,192.00 zM 128.00,0.00L 160.00,32.00L 352.00,32.00L 384.00,0.00L 352.00-32.00L 160.00-32.00 z" />
|
637 |
-
<glyph unicode="" d="M 128.00,448.00L 160.00,480.00L 352.00,480.00L 384.00,448.00L 352.00,416.00L 160.00,416.00 zM 384.00,240.00L 352.00,272.00L 352.00,400.00L 384.00,432.00L 416.00,400.00L 416.00,272.00 zM 384.00,16.00L 352.00,48.00L 352.00,176.00L 384.00,208.00L 416.00,176.00L 416.00,48.00 z" />
|
638 |
-
<glyph unicode="" d="M 352.00,416.00L 384.00,448.00L 352.00,480.00L 160.00,480.00L 128.00,448.00L 160.00,416.00 zM 384.00,432.00L 352.00,400.00L 352.00,272.00L 384.00,240.00L 416.00,272.00L 416.00,400.00 zM 160.00,271.999L 160.00,400.00L 128.00,432.00L 96.00,400.00L 96.00,271.999L 128.00,239.999 zM 352.00,176.00L 352.00,48.00L 384.00,16.00L 416.00,48.00L 416.00,176.00L 384.00,208.00 zM 160.00,48.00L 160.00,176.00L 128.00,208.00L 96.00,176.00L 96.00,48.00L 128.00,16.00 zM 128.00,224.00L 160.00,192.00L 352.00,192.00L 384.00,224.00L 352.00,256.00L 160.00,256.00 zM 160.00,32.00L 128.00,0.00L 160.00-32.00L 352.00-32.00L 384.00,0.00L 352.00,32.00 z" />
|
639 |
-
<glyph unicode="" d="M 128.00,448.00L 160.00,480.00L 352.00,480.00L 384.00,448.00L 352.00,416.00L 160.00,416.00 zM 384.00,240.00L 352.00,272.00L 352.00,400.00L 384.00,432.00L 416.00,400.00L 416.00,272.00 zM 128.00,239.999L 96.00,271.999L 96.00,400.00L 128.00,432.00L 160.00,400.00L 160.00,271.999 zM 384.00,16.00L 352.00,48.00L 352.00,176.00L 384.00,208.00L 416.00,176.00L 416.00,48.00 zM 128.00,224.00L 160.00,256.00L 352.00,256.00L 384.00,224.00L 352.00,192.00L 160.00,192.00 zM 128.00,0.00L 160.00,32.00L 352.00,32.00L 384.00,0.00L 352.00-32.00L 160.00-32.00 z" />
|
640 |
-
<glyph unicode="" d="M 390.628,320.00L 256.00,455.553l0.00-192.925 L 155.314,363.314l-22.628-22.628L 249.372,224.00L 132.686,107.313l 22.628-22.627L 256.00,185.372
|
641 |
-
l0.00-192.924 L 390.628,128.00l-96.00,96.00L 390.628,320.00z M 288.00,377.819L 345.372,320.00L 288.00,262.628L 288.00,377.819 z M 345.372,128.00L 288.00,70.181L 288.00,185.372
|
642 |
-
L 345.372,128.00z" />
|
643 |
-
<glyph unicode="" d="M 432.00,128.00c-22.58,0.00-42.96-9.369-57.506-24.415L 158.992,211.336C 159.649,215.462, 160.00,219.689, 160.00,224.00
|
644 |
-
s-0.351,8.538-1.008,12.663l 215.502,107.751C 389.04,329.369, 409.42,320.00, 432.00,320.00c 44.183,0.00, 80.00,35.817, 80.00,80.00S 476.183,480.00, 432.00,480.00
|
645 |
-
s-80.00-35.817-80.00-80.00c0.00-4.311, 0.352-8.538, 1.008-12.663L 137.506,279.585C 122.96,294.63, 102.58,304.00, 80.00,304.00c-44.183,0.00-80.00-35.818-80.00-80.00
|
646 |
-
c0.00-44.184, 35.817-80.00, 80.00-80.00c 22.58,0.00, 42.96,9.369, 57.506,24.414l 215.502-107.751C 352.352,56.538, 352.00,52.311, 352.00,48.00
|
647 |
-
c0.00-44.184, 35.817-80.00, 80.00-80.00s 80.00,35.816, 80.00,80.00C 512.00,92.182, 476.183,128.00, 432.00,128.00z" />
|
648 |
-
<glyph unicode="" d="M 192.00,224.00A64.00,64.00 4860.00 1,0 320.00,224A64.00,64.00 4860.00 1,0 192.00,224zM 256.00,352.00c 35.346,0.00, 67.346-14.327, 90.51-37.49l 45.255,45.255C 357.02,394.51, 309.02,416.00, 256.00,416.00
|
649 |
-
c-83.596,0.00-154.70-53.431-181.06-128.00L0.00,288.00 l0.00-64.00 l 128.00,0.00 C 128.00,294.692, 185.308,352.00, 256.00,352.00zM 384.00,224.00c0.00-70.692-57.308-128.00-128.00-128.00c-35.346,0.00-67.346,14.327-90.51,37.49l-45.255-45.255
|
650 |
-
C 154.981,53.49, 202.981,32.00, 256.00,32.00c 83.596,0.00, 154.70,53.431, 181.06,128.00L 512.00,160.00 l0.00,64.00 L 384.00,224.00 z" />
|
651 |
-
<glyph unicode="" d="M 426.655,480.00L 85.345,480.00 C 38.405,480.00,0.00,441.608,0.00,394.671l0.00-341.328 C0.00,6.405, 38.405-32.00, 85.345-32.00l 341.311,0.00
|
652 |
-
C 473.625-32.00, 512.00,6.405, 512.00,53.343L 512.00,394.671 C 512.00,441.608, 473.625,480.00, 426.655,480.00z M 128.00,352.00l 256.00,0.00 c 4.569,0.00, 9.002-0.981, 13.072-2.831
|
653 |
-
L 256.00,184.585L 114.928,349.17C 118.998,351.018, 123.431,352.00, 128.00,352.00z M 96.00,128.00L 96.00,320.00 c0.00,0.67, 0.028,1.336, 0.07,2.00l 93.832-109.47
|
654 |
-
L 97.103,119.73C 96.381,122.399, 96.00,125.173, 96.00,128.00z M 384.00,96.00L 128.00,96.00 c-2.827,0.00-5.601,0.381-8.27,1.103l 91.059,91.059L 256.00,135.414
|
655 |
-
l 45.212,52.747l 91.058-91.059C 389.60,96.381, 386.827,96.00, 384.00,96.00z M 416.00,128.00c0.00-2.827-0.381-5.60-1.103-8.27l-92.799,92.799L 415.93,322.00
|
656 |
-
c 0.042-0.664, 0.07-1.33, 0.07-2.00L 416.00,128.00 z" />
|
657 |
-
<glyph unicode="" d="M 279.533,448.00c0.00,0.00-100.478,0.00-133.97,0.00C 85.503,448.00, 28.978,402.497, 28.978,349.789c0.00-53.863, 40.941-97.333, 102.044-97.333
|
658 |
-
c 4.249,0.00, 8.378,0.085, 12.421,0.376c-3.965-7.593-6.801-16.144-6.801-25.021c0.00-14.969, 8.052-27.105, 18.234-37.012
|
659 |
-
c-7.693,0.00-15.121-0.224-23.226-0.224C 57.259,190.576,0.00,143.196,0.00,94.065c0.00-48.389, 62.771-78.657, 137.167-78.657
|
660 |
-
c 84.812,0.00, 131.653,48.122, 131.653,96.514c0.00,38.80-11.448,62.036-46.843,87.067c-12.108,8.572-35.265,29.418-35.265,41.672
|
661 |
-
c0.00,14.36, 4.098,21.434, 25.714,38.323c 22.156,17.312, 37.836,41.651, 37.836,69.958c0.00,33.703-15.01,66.549-43.186,77.386l 42.477,0.00
|
662 |
-
L 279.533,448.00z M 232.74,120.271c 1.063-4.486, 1.642-9.103, 1.642-13.814c0.00-39.10-25.196-69.655-97.487-69.655
|
663 |
-
c-51.421,0.00-88.558,32.552-88.558,71.65c0.00,38.321, 46.063,70.222, 97.482,69.666c 12.00-0.127, 23.184-2.058, 33.335-5.345
|
664 |
-
C 207.067,153.36, 227.092,142.392, 232.74,120.271z M 150.409,266.112c-34.519,1.032-67.318,38.613-73.276,83.93
|
665 |
-
c-5.958,45.333, 17.185,80.021, 51.694,78.995c 34.505-1.037, 67.319-37.407, 73.279-82.729
|
666 |
-
C 208.059,300.978, 184.911,265.079, 150.409,266.112zM 416.00,352.00L 416.00,448.00L 384.00,448.00L 384.00,352.00L 288.00,352.00L 288.00,320.00L 384.00,320.00L 384.00,224.00L 416.00,224.00L 416.00,320.00L 512.00,320.00L 512.00,352.00 z" />
|
667 |
-
<glyph unicode="" d="M 426.756,480.00L 84.621,480.00 C 37.571,480.00,0.00,441.107,0.00,394.061l0.00-340.176 C0.00,5.674, 37.571-32.00, 84.621-32.00l 342.134,0.00
|
668 |
-
C 473.803-32.00, 512.00,5.674, 512.00,53.885L 512.00,394.061 C 512.00,441.107, 473.803,480.00, 426.756,480.00z M 352.00,464.00l0.00-80.00 l-80.00,0.00 L 272.00,464.00 L 352.00,464.00 z M 240.00,464.00l0.00-80.00 l-80.00,0.00 L 160.00,464.00 L 240.00,464.00 z
|
669 |
-
M 16.00,384.00L 16.00,394.061 C 16.00,432.625, 46.783,464.00, 84.621,464.00L 128.00,464.00 l0.00-80.00 L 16.00,384.00 z M 384.00,160.00l-96.00,0.00 l0.00-96.00 l-64.00,0.00 l0.00,96.00 l-96.00,0.00 l0.00,64.00 l 96.00,0.00 l0.00,96.00 l 64.00,0.00 l0.00-96.00 l 96.00,0.00 L 384.00,160.00 z M 496.00,384.00L 384.00,384.00 L 384.00,464.00
|
670 |
-
l 42.756,0.00 C 464.938,464.00, 496.00,432.625, 496.00,394.061L 496.00,384.00 z" />
|
671 |
-
<glyph unicode="" d="M 156.281,73.361c-13.536,4.367-28.447,6.937-44.447,7.104c-45.917,0.494-88.626-18.364-111.831-46.178L 0.003,0.00
|
672 |
-
c0.00-17.60, 14.398-32.00, 32.00-32.00l 196.562,0.00 c 0.908,5.564, 1.348,11.316, 1.348,17.216c0.00,6.267-0.767,12.396-2.188,18.361
|
673 |
-
C 220.196,32.98, 193.498,47.56, 156.281,73.361zM 186.885,304.025c-7.947,60.24-51.698,108.584-97.704,109.961c-46.013,1.365-76.87-44.741-68.926-105.00
|
674 |
-
c 7.941-60.234, 51.676-110.187, 97.699-111.56C 163.959,196.057, 194.821,243.775, 186.885,304.025zM 0.003,76.721c 26.72,12.687, 58.444,20.311, 92.94,20.311c 10.807,0.00, 20.711,0.295, 30.968,0.295
|
675 |
-
c-13.573,13.167-24.313,29.30-24.313,49.191c0.00,11.803, 3.782,23.168, 9.067,33.26c-5.391-0.385-10.895-0.498-16.563-0.498
|
676 |
-
c-37.178,0.00-68.754,12.039-92.103,31.928L 0.003,76.721L 0.003,76.721zM 512.00,352.00L 512.00,448.00 c0.00,17.60-14.40,32.00-32.00,32.00L 32.002,480.00 c-17.602,0.00-32.00-14.40-32.00-32.00l0.00-51.014 c 29.184,25.722, 69.693,42.209, 111.495,42.209
|
677 |
-
c 44.652,0.00, 178.622,0.00, 178.622,0.00l-39.974-28.809l-56.634,0.00 c 37.565-14.402, 57.578-58.062, 57.578-102.861
|
678 |
-
c0.00-37.624-20.905-69.977-50.444-92.984c-28.822-22.451-34.286-31.854-34.286-50.939c0.00-16.289, 30.873-44.00, 47.016-55.394
|
679 |
-
c 47.192-33.269, 62.458-64.156, 62.458-115.728c0.00-8.213-1.021-16.415-3.033-24.48L 480.00-32.00 c 17.60,0.00, 32.00,14.399, 32.00,31.999l0.00,320.00 l-96.00,0.00 L 416.00,224.00 l-32.00,0.00
|
680 |
-
l0.00,96.00 l-95.999,0.00 l0.00,32.00 L 384.00,352.00 L 384.00,448.00 l 32.00,0.00 l0.00-96.00 L 512.00,352.00 z" />
|
681 |
-
<glyph unicode="" d="M 309.159,382.463l 78.766,0.00 L 387.925,480.00 l-78.766,0.00 C 244.006,480.00, 191.00,422.579, 191.00,352.00l0.00-49.229 l-78.768,0.00 l0.00-97.847 L 191.00,204.924 L 191.00-32.00 l 98.468,0.00 L 289.468,204.924 l 98.457,0.00
|
682 |
-
l0.00,97.847 l-98.457,0.00 l0.00,50.154 C 289.468,369.829, 299.865,382.463, 309.159,382.463z" />
|
683 |
-
<glyph unicode="" d="M 426.672,480.00L 85.342,480.00 C 38.406,480.00,0.00,441.593,0.00,394.656l0.00-341.313 C0.00,6.374, 38.406-32.00, 85.342-32.00l 170.654,0.00 L 255.996,160.50 l-64.00,0.00 L 191.996,240.00 l 64.00,0.00 l0.00,40.00
|
684 |
-
c0.00,57.344, 43.063,104.001, 96.004,104.001l 64.00,0.00 l0.00-79.25 l-64.00,0.00 c-7.551,0.00-16.00-10.266-16.00-24.00L 336.00,240.00 l 80.00,0.00 l0.00-79.50 l-80.00,0.00 l0.00-192.499 l 90.672,0.00
|
685 |
-
c 46.937,0.00, 85.328,38.373, 85.328,85.344L 512.00,394.656 C 512.00,441.593, 473.609,480.00, 426.672,480.00z" />
|
686 |
-
<glyph unicode="" d="M 512.00,237.684c-18.021-3.075-44.153,0.124-58.001,5.884c 28.776,2.382, 48.259,15.461, 55.762,33.213
|
687 |
-
c-10.366-6.385-42.581-13.336-60.343-6.712c-0.888,4.181-1.849,8.155-2.826,11.752c-13.529,49.793-59.93,89.916-108.513,85.066
|
688 |
-
c 3.914,1.589, 7.892,3.065, 11.906,4.413c 5.319,1.917, 36.72,7.038, 31.784,18.108c-4.186,9.766-42.543-7.341-49.761-9.59
|
689 |
-
c 9.534,3.573, 25.303,9.737, 26.982,20.714c-14.602-2.003-28.938-8.917-40.013-18.968c 4.005,4.304, 7.037,9.553, 7.678,15.209
|
690 |
-
c-38.962-24.923-61.724-75.125-80.128-123.863c-14.457,14.041-27.306,25.088-38.789,31.243
|
691 |
-
c-32.25,17.288-70.825,35.354-131.355,57.859c-1.86-20.048, 9.901-46.725, 43.77-64.437c-7.332,0.991-20.751-1.23-31.467-3.779
|
692 |
-
c 4.363-22.99, 18.642-41.913, 57.325-51.052c-17.674-1.163-26.824-5.213-35.092-13.867c 8.048-15.981, 27.715-34.778, 63.026-30.913
|
693 |
-
c-39.299-16.963-16.025-48.363, 15.959-43.675C 135.374,97.884, 49.38,102.064,0.00,149.206
|
694 |
-
c 128.911-175.847, 409.165-103.979, 450.908,65.389C 482.226,214.341, 500.595,225.436, 512.00,237.684z" />
|
695 |
-
<glyph unicode="" d="M 426.671,480.00L 85.343,480.00 C 38.406,480.00,0.00,441.595,0.00,394.655l0.00-341.311 C0.00,6.375, 38.406-32.00, 85.343-32.00l 341.328,0.00
|
696 |
-
C 473.609-32.00, 512.00,6.375, 512.00,53.345L 512.00,394.655 C 512.00,441.595, 473.609,480.00, 426.671,480.00z M 402.181,216.946
|
697 |
-
C 370.874,89.92, 160.683,36.02, 64.00,167.904c 37.035-35.355, 101.53-38.491, 142.428,3.813c-23.988-3.517-41.443,20.033-11.97,32.756
|
698 |
-
c-26.482-2.899-41.233,11.199-47.269,23.185c 6.201,6.491, 13.063,9.528, 26.319,10.40c-29.012,6.854-39.722,21.046-42.994,38.289
|
699 |
-
c 8.036,1.911, 18.101,3.577, 23.60,2.834c-25.401,13.284-34.222,33.292-32.827,48.328c 45.398-16.879, 74.33-30.429, 98.517-43.395
|
700 |
-
c 8.612-4.616, 18.249-12.901, 29.091-23.432c 13.805,36.553, 30.875,74.205, 60.097,92.897c-0.48-4.243-2.754-8.179-5.759-11.407
|
701 |
-
c 8.308,7.538, 19.059,12.724, 30.01,14.226c-1.26-8.233-13.086-12.855-20.236-15.536c 5.413,1.687, 34.181,14.518, 37.32,7.193
|
702 |
-
c 3.701-8.303-19.849-12.144-23.838-13.582c-3.011-1.011-5.994-2.118-8.931-3.31c 36.438,3.637, 71.238-26.455, 81.385-63.80
|
703 |
-
c 0.734-2.697, 1.454-5.678, 2.12-8.814c 13.321-4.967, 37.482,0.246, 45.258,5.035c-5.628-13.314-20.24-23.124-41.822-24.91
|
704 |
-
c 10.386-4.321, 29.985-6.719, 43.501-4.413C 439.447,225.077, 425.669,216.756, 402.181,216.946z" />
|
705 |
-
<glyph unicode="" d="M 412.149,95.625L 271.362,95.625 c-41.494,0.00-80.083,43.219-80.083,92.439l0.00,35.713 l 219.24,0.00 c 35.479,0.00, 64.232,28.671, 64.232,64.038
|
706 |
-
c0.00,35.382-28.756,64.061-64.232,64.061l-219.24,0.00 L 191.279,415.14 c0.00,35.81-26.826,64.86-62.312,64.86C 93.512,480.00, 64.756,450.95, 64.756,415.14
|
707 |
-
l0.00-227.078 C 64.756,66.447, 156.189-32.00, 269.225-32.00l 140.77,0.00 c 35.479,0.00, 64.758,28.553, 64.758,64.361
|
708 |
-
C 474.75,68.197, 447.625,95.625, 412.149,95.625z" />
|
709 |
-
<glyph unicode="" d="M 426.671,480.00L 85.343,480.00 C 38.406,480.00,0.00,441.595,0.00,394.655l0.00-341.311 C0.00,6.375, 38.406-32.00, 85.343-32.00l 341.328,0.00
|
710 |
-
C 473.609-32.00, 512.00,6.375, 512.00,53.345L 512.00,394.655 C 512.00,441.595, 473.609,480.00, 426.671,480.00z M 257.00,144.00l 87.903,0.00
|
711 |
-
c 22.155,0.00, 39.094-17.124, 39.094-39.499c0.00-22.36-18.279-40.188-40.438-40.188l-87.89,0.00 c-70.577,0.00-127.67,61.47-127.67,137.403L 127.999,343.501
|
712 |
-
c0.00,22.359, 17.952,40.50, 40.094,40.50c 22.156,0.00, 38.907-18.141, 38.907-40.50L 207.00,304.00 L 343.89,304.00 c 22.156,0.00, 40.107-17.907, 40.107-39.999
|
713 |
-
c0.00-22.079-17.951-39.985-40.107-39.985L 207.001,224.016 l0.00-22.297 C 207.001,170.982, 231.094,144.00, 257.00,144.00z" />
|
714 |
-
<glyph unicode="" d="M 68.147,104.535c-37.598,0.00-68.146-30.667-68.146-68.038c0.00-37.577, 30.55-67.901, 68.146-67.901
|
715 |
-
c 37.733,0.00, 68.247,30.324, 68.247,67.901C 136.393,73.868, 105.882,104.535, 68.147,104.535zM 0.078,306.035l0.00-98.129 c 63.892,0.00, 123.979-24.986, 169.229-70.256c 45.192-45.159, 70.141-105.518, 70.141-169.65l 98.561,0.00
|
716 |
-
C 338.008,154.41, 186.368,306.035, 0.078,306.035zM 0.194,480.00l0.00-98.178 c 227.891,0.00, 413.378-185.667, 413.378-413.822L 512.00-32.00 C 512.00,250.235, 282.373,480.00, 0.194,480.00z" />
|
717 |
-
<glyph unicode="" d="M 426.67,480.00L 85.343,480.00 C 38.405,480.00,0.00,441.594,0.00,394.656l0.00-341.314 C0.00,6.375, 38.406-32.00, 85.344-32.00L 426.67-32.00
|
718 |
-
c 46.938,0.00, 85.33,38.374, 85.33,85.342L 512.00,394.656 C 512.00,441.594, 473.608,480.00, 426.67,480.00z M 139.472,64.376C 115.487,64.376, 96.00,83.722, 96.00,107.69
|
719 |
-
c0.00,23.842, 19.486,43.406, 43.472,43.406c 24.079,0.00, 43.53-19.564, 43.53-43.406C 183.001,83.722, 163.55,64.376, 139.472,64.376z
|
720 |
-
M 248.734,64.002c0.00,40.905-15.904,79.409-44.73,108.222c-28.857,28.875-67.188,44.813-107.952,44.813L 96.052,279.63
|
721 |
-
c 118.826,0.00, 215.563-96.721, 215.563-215.627L 248.734,64.002L 248.734,64.002z M 359.814,64.002
|
722 |
-
c0.00,145.531-118.329,263.97-263.688,263.97L 96.126,390.596 c 180.001,0.00, 326.473-146.562, 326.473-326.596L 359.814,64.002L 359.814,64.002z" />
|
723 |
-
<glyph unicode="" d="M 416.00,416.00L 96.00,416.00 c-52.80,0.00-96.00-43.20-96.00-96.00l0.00-192.00 c0.00-52.80, 43.20-96.00, 96.00-96.00l 320.00,0.00 c 52.80,0.00, 96.00,43.20, 96.00,96.00L 512.00,320.00 C 512.00,372.80, 468.80,416.00, 416.00,416.00z
|
724 |
-
M 192.00,96.00L 192.00,352.00 l 160.00-128.00L 192.00,96.00z" />
|
725 |
-
<glyph unicode="" d="M 416.00,416.00L 96.00,416.00 c-52.80,0.00-96.00-43.20-96.00-96.00l0.00-192.00 c0.00-52.80, 43.20-96.00, 96.00-96.00l 320.00,0.00 c 52.80,0.00, 96.00,43.20, 96.00,96.00L 512.00,320.00 C 512.00,372.80, 468.80,416.00, 416.00,416.00z
|
726 |
-
M 480.00,128.00c0.00-16.989-6.687-33.031-18.827-45.173C 449.031,70.687, 432.99,64.00, 416.00,64.00L 96.00,64.00 c-16.989,0.00-33.031,6.687-45.172,18.827
|
727 |
-
C 38.687,94.969, 32.00,111.011, 32.00,128.00L 32.00,320.00 c0.00,16.989, 6.687,33.031, 18.828,45.172S 79.011,384.00, 96.00,384.00l 320.00,0.00
|
728 |
-
c 16.989,0.00, 33.031-6.687, 45.173-18.828C 473.314,353.031, 480.00,336.989, 480.00,320.00L 480.00,128.00 zM 192.00,96.00L 352.00,224.00L 192.00,352.00 z" />
|
729 |
-
<glyph unicode="" d="M0.00,325.815l 20.797-27.272c0.00,0.00, 42.885,33.804, 57.18,16.901c 14.294-16.901, 68.868-220.978, 87.085-258.623
|
730 |
-
c 15.90-33.015, 59.759-76.66, 107.857-45.491c 48.068,31.17, 207.92,167.643, 236.533,328.808
|
731 |
-
c 28.59,161.113-192.36,127.363-215.765-13.005c 58.495,35.118, 89.718-14.269, 59.785-70.186
|
732 |
-
c-29.879-55.862-57.18-92.296-71.476-92.296c-14.269,0.00-25.245,37.384-41.594,102.723c-16.899,67.551-16.796,189.23-87.058,175.435
|
733 |
-
C 87.085,429.803,0.00,325.815,0.00,325.815z" />
|
734 |
-
<glyph unicode="" d="M 426.655,480.00L 85.345,480.00 C 38.406,480.00,0.00,441.592,0.00,394.654l0.00-341.31 C0.00,6.375, 38.406-32.00, 85.345-32.00l 341.31,0.00
|
735 |
-
C 473.594-32.00, 512.00,6.375, 512.00,53.345L 512.00,394.654 C 512.00,441.592, 473.594,480.00, 426.655,480.00z M 406.434,292.937
|
736 |
-
c-16.979-95.648-111.854-176.648-140.39-195.155c-28.544-18.503-54.577,7.411-64.019,26.997
|
737 |
-
c-10.808,22.354-43.205,143.47-51.684,153.51c-8.482,10.019-33.938-10.04-33.938-10.04l-12.346,16.188
|
738 |
-
c0.00,0.00, 51.691,61.724, 91.02,69.439c 41.702,8.183, 41.64-64.033, 51.67-104.121c 9.70-38.782, 16.22-60.976, 24.688-60.976
|
739 |
-
c 8.486,0.00, 24.692,21.631, 42.426,54.786c 17.768,33.188-0.768,62.505-35.486,41.646C 292.267,368.536, 423.406,388.57, 406.434,292.937z" />
|
740 |
-
<glyph unicode="" d="M0.00,224.00A112.00,112.00 4860.00 1,0 224.00,224A112.00,112.00 4860.00 1,0 0.00,224zM 288.00,224.00A112.00,112.00 4860.00 1,0 512.00,224A112.00,112.00 4860.00 1,0 288.00,224z" />
|
741 |
-
<glyph unicode="" d="M 426.687,480.00L 85.344,480.00 C 38.406,480.00,0.00,441.594,0.00,394.659l0.00-341.313 C0.00,6.375, 38.406-32.00, 85.344-32.00l 341.342,0.00
|
742 |
-
C 473.622-32.00, 512.00,6.377, 512.00,53.348L 512.00,394.659 C 512.00,441.594, 473.622,480.00, 426.687,480.00z M 160.00,144.00c-44.183,0.00-80.00,35.816-80.00,80.00
|
743 |
-
c0.00,44.183, 35.817,80.00, 80.00,80.00s 80.00-35.817, 80.00-80.00C 240.00,179.816, 204.183,144.00, 160.00,144.00z M 352.00,144.00c-44.182,0.00-80.00,35.816-80.00,80.00
|
744 |
-
c0.00,44.183, 35.818,80.00, 80.00,80.00c 44.184,0.00, 80.00-35.817, 80.00-80.00C 432.00,179.816, 396.184,144.00, 352.00,144.00z" />
|
745 |
-
<glyph unicode="" d="M 361.51,457.045C 328.055,472.176, 292.647,480.00, 255.961,480.00c-30.521,0.00-60.527-5.865-89.381-16.779l 194.93-176.84L 361.51,457.045 zM 124.222,5.364L 124.222,225.441 L 18.468,129.299C 38.963,77.934, 76.409,34.285, 124.222,5.364zM 139.312,451.59C 53.362,407.432, 0.001,320.553, 0.001,224.00c0.00-22.029, 3.313-44.368, 9.294-66.499l 226.91,206.181L 139.312,451.59zM 151.109-9.355C 184.386-24.385, 219.612-32.00, 255.961-32.00c 97.624,0.00, 187.28,56.817, 229.895,144.727L 151.109,112.727 L 151.109-9.355 zM 388.479,442.325l0.00-302.63 l 108.904,0.00 c 9.57,27.277, 14.617,55.586, 14.617,84.304C 512.002,312.937, 464.651,396.004, 388.479,442.325z" />
|
746 |
-
<glyph unicode="" d="M 512.00,394.659C 512.00,441.791, 473.793,480.00, 426.66,480.00L 85.338,480.00 C 38.207,480.00,0.00,441.791,0.00,394.659l0.00-341.318 C0.00,6.208, 38.207-32.00, 85.338-32.00
|
747 |
-
l 341.323,0.00 C 473.793-32.00, 512.00,6.208, 512.00,53.341L 512.00,394.659 z M 255.877,400.865c 25.346,0.00, 49.785-5.406, 72.825-15.859l0.00-117.908 L 194.078,389.271
|
748 |
-
C 214.012,396.812, 234.79,400.865, 255.877,400.865z M 79.134,224.00c0.00,66.707, 36.867,126.73, 96.249,157.236l 66.939-60.732L 85.556,178.057
|
749 |
-
C 81.424,193.348, 79.134,208.779, 79.134,224.00z M 164.864,72.949c-32.768,19.979-58.905,50.138-73.063,85.623l 73.063,66.423L 164.864,72.949 z
|
750 |
-
M 255.854,47.174c-25.11,0.00-49.518,5.226-72.558,15.605L 183.296,147.20 l 231.507,0.00 C 385.361,86.271, 323.30,47.174, 255.854,47.174z
|
751 |
-
M 422.767,165.632l-75.118,0.00 L 347.649,374.836 c 52.735-32.002, 85.278-89.452, 85.278-150.898C 432.927,204.096, 429.382,184.576, 422.767,165.632z" />
|
752 |
-
<glyph unicode="" d="M 256.00-32.00C 114.614-32.00,0.00,82.609,0.00,223.99C0.00,365.37, 114.615,480.00, 256.00,480.00c 141.375,0.00, 256.00-114.631, 256.00-256.01S 397.375-32.00, 256.00-32.00z
|
753 |
-
M 465.581,197.137c-50.24,6.594-94.794,7.071-134.495,0.938c 16.435-46.862, 30.188-97.346, 41.018-150.532
|
754 |
-
C 422.346,80.675, 457.642,134.609, 465.581,197.137z M 331.781,26.927c-10.141,59.365-24.095,112.72-42.061,161.953
|
755 |
-
c-67.229-20.177-119.50-63.339-163.374-131.501c 35.816-27.915, 80.724-44.679, 129.641-44.679
|
756 |
-
C 282.74,12.70, 308.221,17.858, 331.781,26.927z M 44.687,223.99c0.00-52.272, 19.091-100.029, 50.543-136.932
|
757 |
-
c 53.639,78.629, 114.009,119.584, 179.935,138.636c-5.431,12.771-11.058,25.377-17.11,37.648
|
758 |
-
c-58.881-17.743-128.601-27.041-212.938-30.931C 45.00,229.606, 44.687,226.839, 44.687,223.99z M 49.46,268.461
|
759 |
-
c 66.551,2.933, 131.525,10.337, 191.075,28.33c-22.678,40.52-49.305,78.583-79.691,115.691
|
760 |
-
C 104.744,384.111, 62.996,331.59, 49.46,268.461z M 255.99,435.30c-18.52,0.00-36.382-2.62-53.505-7.093
|
761 |
-
c 29.358-32.323, 56.089-71.637, 79.734-116.73c 41.102,16.973, 78.827,40.332, 111.747,72.344C 356.941,415.811, 308.782,435.30, 255.99,435.30z
|
762 |
-
M 419.551,357.736c-34.483-34.944-73.847-60.965-120.584-80.061c 6.377-13.77, 12.399-28.102, 18.227-42.724
|
763 |
-
c 47.438,7.343, 97.428,5.721, 149.608,0.374C 464.343,281.648, 447.138,324.04, 419.551,357.736z" />
|
764 |
-
<glyph unicode="" d="M 152.278,90.703c 28.653-22.332, 64.579-35.743, 103.712-35.743c 21.402,0.00, 41.787,4.127, 60.635,11.382
|
765 |
-
c-8.112,47.492-19.275,90.176-33.648,129.563C 229.194,179.763, 187.377,145.232, 152.278,90.703zM 271.331,225.356c-4.345,10.217-8.846,20.301-13.688,30.118c-47.104-14.194-102.88-21.633-170.351-24.745
|
766 |
-
c-0.092-2.245-0.343-4.458-0.343-6.737c0.00-41.818, 15.272-80.023, 40.435-109.545C 170.295,177.35, 218.591,210.114, 271.331,225.356zM 366.373,351.856c-29.621,25.592-68.147,41.184-110.381,41.184c-14.815,0.00-29.105-2.096-42.804-5.674
|
767 |
-
c 23.486-25.859, 44.871-57.31, 63.787-93.384C 309.858,307.56, 340.037,326.247, 366.373,351.856zM 179.875,374.786c-44.88-22.697-78.278-64.714-89.107-115.217c 53.241,2.346, 105.22,8.27, 152.86,22.664
|
768 |
-
C 225.486,314.649, 204.185,345.099, 179.875,374.786zM 316.069,203.26c 13.148-37.49, 24.151-77.877, 32.814-120.426c 40.193,26.506, 68.431,69.653, 74.782,119.676
|
769 |
-
C 383.473,207.784, 347.83,208.166, 316.069,203.26zM 426.672,480.00L 85.343,480.00 C 38.406,480.00,0.00,441.595,0.00,394.655l0.00-341.311 C0.00,6.375, 38.406-32.00, 85.343-32.00l 341.33,0.00
|
770 |
-
C 473.612-32.00, 512.00,6.374, 512.00,53.345L 512.00,394.655 C 512.002,441.595, 473.612,480.00, 426.672,480.00z M 256.00,19.20
|
771 |
-
c-113.109,0.00-204.80,91.688-204.80,204.792C 51.20,337.096, 142.892,428.80, 256.00,428.80c 113.10,0.00, 204.80-91.705, 204.80-204.808
|
772 |
-
C 460.80,110.889, 369.10,19.20, 256.00,19.20zM 290.373,266.94c 5.102-11.016, 9.92-22.481, 14.582-34.179c 37.95,5.875, 77.941,4.577, 119.687,0.299
|
773 |
-
c-1.968,37.058-15.731,70.972-37.801,97.929C 359.254,303.034, 327.764,282.217, 290.373,266.94z" />
|
774 |
-
<glyph unicode="" d="M 217.984-32.00L 217.984,83.744L 142.464,126.432L 157.723,149.02L 217.984,116.917L 217.984,211.712L 262.528,211.712L 262.528,151.223L 315.485,175.775L 328.834,151.136L 262.528,119.426L 262.528,85.557L 359.153,130.71L 371.084,106.419L 262.528,55.155L 262.528-32.00L 463.434-32.00L 240.31,480.00L 16.567-32.00 z" />
|
775 |
-
<glyph unicode="" d="M 512.00,394.658C 512.00,441.791, 473.804,480.00, 426.688,480.00L 85.313,480.00 C 38.196,480.00,0.00,441.791,0.00,394.658l0.00-341.316 C0.00,6.209, 38.196-32.00, 85.313-32.00
|
776 |
-
l 341.375,0.00 C 473.804-32.00, 512.00,6.209, 512.00,53.342L 512.00,394.658 z M 414.05,44.288L 272.384,44.288 l0.00,60.739 l 76.841,36.324l-8.453,17.234l-68.388-32.023
|
777 |
-
l0.00,24.023 l 46.889,22.48l-9.458,17.48l-37.431-17.42l0.00,42.678 L 240.64,215.803 l0.00-66.998 l-42.799,22.741l-10.763-15.996l 53.562-30.262l0.00-81.006
|
778 |
-
L 98.168,44.282 L 256.332,406.221L 414.05,44.288z" />
|
779 |
-
<glyph unicode="" d="M 280.928,276.50c-19.521,1.141-42.041-0.024-68.125-4.475l 60.167-108.444L 512.00,229.214
|
780 |
-
c-2.577,6.13-6.343,12.113-11.331,17.899c-24.737,28.639-78.37,54.187-136.802,65.709l 0.001,0.013
|
781 |
-
c-57.322,13.437-119.401,12.872-182.98,3.274c-2.292-0.344-4.572-0.711-6.84-1.092l-21.136,39.146
|
782 |
-
c-20.571-2.746-39.904-7.025-57.803-12.737l 20.13-42.099c-32.88-12.738-59.861-30.88-79.329-52.716
|
783 |
-
C 3.804,210.079-8.885,164.157, 6.537,119.435c 3.102-9.021, 7.294-17.58, 12.468-25.598l 239.034,65.649l-66.375,122.924
|
784 |
-
c 2.279,0.44, 4.598,0.884, 6.964,1.312c 107.341,19.149, 166.051-10.432, 198.208-41.915l-81.779-19.824L 280.928,276.50z M 87.361,166.805
|
785 |
-
c-7.379,33.676-1.506,71.263, 45.202,96.297l 36.569-76.474L 87.361,166.805z" />
|
786 |
-
<glyph unicode="" d="M 117.552,177.044l 67.131,16.274l-30.021,62.783C 116.316,235.549, 111.494,204.691, 117.552,177.044zM 426.678,480.00L 85.322,480.00 C 38.20,480.00,0.00,441.791,0.00,394.659l0.00-341.318 C0.00,6.208, 38.20-32.00, 85.322-32.00l 341.356,0.00
|
787 |
-
C 473.80-32.00, 512.00,6.208, 512.00,53.341L 512.00,394.659 C 512.00,441.791, 473.80,480.00, 426.678,480.00z M 269.932,174.398l-49.396,89.029
|
788 |
-
c 21.415,3.654, 39.902,4.611, 55.929,3.674l 28.02-44.756l 67.138,16.275c-26.40,25.846-74.60,50.131-162.723,34.41
|
789 |
-
c-1.943-0.351-3.846-0.715-5.717-1.077l 54.492-100.917L 61.434,117.14c-4.248,6.582-7.689,13.609-10.236,21.016
|
790 |
-
c-12.661,36.716-2.244,74.416, 24.115,104.408c 15.982,17.926, 38.133,32.82, 65.126,43.278l-16.526,34.563
|
791 |
-
c 14.695,4.689, 30.567,8.203, 47.455,10.457l 17.352-32.138c 1.861,0.313, 3.733,0.614, 5.615,0.896
|
792 |
-
c 52.196,7.88, 103.162,8.343, 150.221-2.688l-0.001-0.011c 47.971-9.46, 92.002-30.434, 112.311-53.945
|
793 |
-
c 4.095-4.75, 7.187-9.662, 9.303-14.695L 269.932,174.398z" />
|
794 |
-
<glyph unicode="" d="M 424.598,402.047c 3.946,12.739, 9.222,41.029-5.26,77.244c0.00,0.00-25.548,8.113-83.339-30.565
|
795 |
-
c-22.645,5.656-46.731,8.453-70.859,8.453c-26.547,0.00-53.372-3.383-78.393-10.244c-59.63,40.683-85.956,32.348-85.956,32.348
|
796 |
-
C 83.604,436.31, 94.228,404.492, 97.46,396.589c-20.196-21.797-32.528-49.623-32.528-83.738c0.00-25.757, 2.933-48.86, 10.097-68.943
|
797 |
-
l 7.532-17.061c 20.129-37.527, 59.824-61.766, 130.437-69.377c-10.022-6.729-20.245-18.18-24.389-37.556
|
798 |
-
c-13.66-6.533-56.891-22.479-82.833,22.14c0.00,0.00-14.521,26.551-42.312,28.627c0.00,0.00-26.96,0.414-1.863-16.801
|
799 |
-
c0.00,0.00, 18.04-8.501, 30.488-40.443c0.00,0.00, 16.236-54.492, 94.59-37.008l0.00-56.28 c0.00,0.00-1.655-19.907-19.906-26.54
|
800 |
-
c0.00,0.00-10.781-7.473, 0.835-11.609c0.00,0.00, 50.589-4.149, 50.589,37.318l0.00,61.371 c0.00,0.00-2.007,24.338, 9.952,32.802l0.00-100.806
|
801 |
-
c0.00,0.00-0.827-24.056-13.267-33.176c0.00,0.00-8.301-14.923, 9.947-10.785c0.00,0.00, 34.833,4.979, 36.493,45.615l 0.789,102.014l 8.373,0.00
|
802 |
-
l 0.796-102.014c 1.658-40.636, 36.491-45.615, 36.491-45.615c 18.24-4.138, 9.949,10.785, 9.949,10.785
|
803 |
-
c-12.441,9.125-13.268,33.176-13.268,33.176L 304.452,112.62 c 11.948-9.312, 9.949-31.933, 9.949-31.933l0.00-61.369
|
804 |
-
c0.00-41.471, 50.592-37.316, 50.592-37.316c 11.605,4.139, 0.832,11.604, 0.832,11.604c-18.249,6.634-19.905,26.542-19.905,26.542
|
805 |
-
l0.00,80.442 c0.00,31.371-13.209,47.989-26.131,56.755c 75.307,7.469, 111.444,31.782, 128.094,69.564l 5.946,16.865
|
806 |
-
c 5.583,20.118, 7.262,43.271, 7.262,69.088C 461.092,349.886, 447.181,379.507, 424.598,402.047z M 264.535,171.357
|
807 |
-
c-82.092,0.00-148.627,12.355-148.627,91.684c0.00,18.991, 9.354,36.625, 25.371,51.259c 26.725,24.389, 71.947,11.475, 123.253,11.475
|
808 |
-
c 51.078,0.008, 96.148,13.053, 122.906-11.168l 0.01-0.008c 16.219-14.696, 25.706-32.441, 25.706-51.559
|
809 |
-
C 413.156,173.771, 346.615,171.357, 264.535,171.357zM 184.177,303.006c-17.079,0.00-30.924-19.924-30.924-44.506c0.00-24.589, 13.846-44.52, 30.924-44.52s 30.922,19.931, 30.922,44.52
|
810 |
-
C 215.099,283.082, 201.254,302.988, 184.177,303.006zM 350.095,303.006c-17.078,0.00-30.921-19.924-30.921-44.506c0.00-24.589, 13.843-44.52, 30.921-44.52
|
811 |
-
c 17.079,0.00, 30.922,19.931, 30.922,44.52C 381.018,283.082, 367.175,302.988, 350.095,303.006z" />
|
812 |
-
<glyph unicode="" d="M 117.639,355.64c-25.396,0.00-47.242-8.403-65.542-25.208c-19.043-17.926-28.57-40.33-28.57-67.218
|
813 |
-
c0.00-17.926, 5.188-34.731, 15.647-50.416c 9.337-14.563, 19.09-23.903, 31.889-28.012l0.00-1.121 c-12.799-5.224-18.483-18.295-18.483-39.209
|
814 |
-
c0.00-16.062, 5.686-28.011, 18.483-35.854l0.00-1.121 c-35.327-11.573-51.496-33.047-51.496-64.415c0.00-27.267, 11.874-47.244, 35.033-59.939
|
815 |
-
C 72.895-26.959, 96.389-32.00, 124.773-32.00c 69.085,0.00, 103.703,28.941, 103.703,86.832c0.00,36.223-26.661,58.441-80.064,66.658
|
816 |
-
c-12.323,1.863-21.643,6.348-27.991,13.445c-4.854,4.854-7.271,9.709-7.271,14.563c0.00,13.816, 7.479,21.848, 22.41,24.088
|
817 |
-
c 22.779,3.357, 41.364,13.912, 55.743,31.648c 14.375,17.74, 21.565,38.559, 21.565,62.458c0.00,7.469-2.259,15.498-5.244,24.086
|
818 |
-
c 9.709,2.244, 16.525,4.297, 21.646,6.166L 229.27,355.64 c-22.527-8.964-43.495-13.442-61.421-13.442
|
819 |
-
C 152.162,351.159, 135.937,355.64, 117.639,355.64z M 123.801,76.115c 31.372,0.00, 47.052-9.521, 47.052-28.57
|
820 |
-
c0.00-20.168-14.377-30.246-43.132-30.246c-32.862,0.00-49.293,9.711-49.293,29.127C 78.427,66.221, 93.55,76.115, 123.801,76.115z
|
821 |
-
M 119.88,224.00c-23.527,0.00-35.293,12.882-35.293,38.654c0.00,27.631, 11.766,41.453, 35.293,41.453c 11.201,0.00, 19.979-4.298, 26.326-12.884
|
822 |
-
c 5.229-7.845, 7.845-17.18, 7.845-28.011C 154.051,237.073, 142.658,224.00, 119.88,224.00zM 290.192,480.00c-10.828,0.00-20.07-4.107-27.727-12.324c-7.657-8.218-11.485-18.108-11.485-29.688
|
823 |
-
c0.00-11.205, 3.829-20.91, 11.485-29.129c 7.654-8.217, 16.896-12.32, 27.727-12.32c 10.455,0.00, 19.514,4.104, 27.17,12.32
|
824 |
-
c 7.656,8.219, 11.48,17.924, 11.48,29.129c0.00,11.58-3.824,21.472-11.48,29.688C 309.703,475.893, 300.647,480.00, 290.192,480.00zM 321.565,352.001l-63.303,0.00 c 0.748-7.168-0.32-18.021-0.32-35.57l0.00-174.216 c0.00-17.928, 1.068-32.387, 0.32-38.018l 63.303,0.00
|
825 |
-
c-0.75,8.188-2.697,22.334-2.697,41.379L 318.868,317.549 C 318.865,333.981, 320.815,344.833, 321.565,352.001zM 461.168,157.90c-16.436,0.00-24.541,12.514-24.541,37.533l0.00,103.32 l 24.932,0.00 c 4.48,0.00, 8.516,0.246, 13.559-0.123
|
826 |
-
c 5.043-0.374, 7.076-0.125, 9.639-0.125l0.00,53.495 l-48.129,0.00 l0.00,23.808 c0.00,8.961, 1.408,17.151, 2.527,22.271l-64.979,0.00
|
827 |
-
c 1.121-5.12, 1.014-12.938, 1.014-23.395L 375.19,352.00 l-28.16,0.00 l0.00-53.494 c 7.682,1.12, 14.545,1.678, 19.398,1.678l 8.762-0.559l0.00-0.292 l0.00,0.00l0.00-101.101
|
828 |
-
c0.00-31.371, 3.979-54.336, 11.818-68.90c 10.461-19.42, 28.811-29.129, 56.068-29.129c 19.424,0.00, 36.559,3.732, 49.357,11.205l0.00,56.016
|
829 |
-
C 482.196,161.074, 472.742,157.90, 461.168,157.90z" />
|
830 |
-
<glyph unicode="" d="M 131.736,100.316c0.00-13.526, 11.447-20.291, 34.334-20.291c 20.032,0.00, 30.044,7.021, 30.044,21.067
|
831 |
-
c0.00,13.269-10.923,19.898-32.772,19.898C 142.269,120.992, 131.736,114.102, 131.736,100.316zM 426.674,480.00L 85.344,480.00 C 38.406,480.00,0.00,441.595,0.00,394.656l0.00-341.313 C0.00,6.375, 38.406-32.00, 85.344-32.00l 341.33,0.00
|
832 |
-
C 473.608-32.00, 512.00,6.375, 512.00,53.344L 512.00,394.656 C 512.00,441.595, 473.609,480.00, 426.674,480.00z M 237.864,275.506
|
833 |
-
c-3.642-1.302-8.844-2.729-15.606-4.293c 2.08-5.983, 3.123-11.576, 3.123-16.777c0.00-16.646-5.009-31.149-15.022-43.506
|
834 |
-
c-10.015-12.354-22.956-19.703-38.823-22.043c-10.402-1.563-15.604-7.156-15.604-16.779c0.00-3.381, 1.689-6.765, 5.072-10.145
|
835 |
-
c 4.422-4.943, 10.924-8.066, 19.509-9.367c 37.195-5.721, 55.793-21.197, 55.793-46.427c0.00-40.321-24.062-60.481-72.181-60.481
|
836 |
-
c-19.771,0.00-36.028,3.513-48.772,10.535c-16.129,8.844-24.188,22.76-24.188,41.75c0.00,21.852, 12.096,36.808, 36.282,44.869l0.00,0.78
|
837 |
-
c-8.842,5.462-13.263,13.785-13.263,24.972c0.00,14.566, 4.162,23.672, 12.484,27.311l0.00,0.781 c-8.323,2.862-15.737,9.366-22.24,19.512
|
838 |
-
c-7.282,10.926-10.925,22.63-10.925,35.115c0.00,18.729, 6.635,34.335, 19.896,46.82c 12.748,11.707, 27.964,17.558, 45.653,17.558
|
839 |
-
c 12.747,0.00, 24.579-3.119, 35.505-9.361c 12.485,0.00, 26.921,3.12, 43.313,9.361L 237.864,275.506L 237.864,275.506z M 301.089,140.503
|
840 |
-
l-44.093,0.00 c 0.521,5.201, 0.779,14.042, 0.779,26.532L 257.775,288.381 c0.00,12.227-0.261,20.682-0.779,25.359l 44.093,0.00
|
841 |
-
c-0.521-4.942-0.781-13.135-0.781-24.582l0.00-119.782 C 300.308,156.109, 300.569,146.484, 301.089,140.503z M 298.159,352.759
|
842 |
-
c-5.332-5.722-11.641-8.581-18.923-8.581c-7.543,0.00-13.979,2.859-19.313,8.581c-5.333,5.726-8.001,12.486-8.001,20.289
|
843 |
-
c0.00,8.067, 2.668,14.956, 8.001,20.683c 5.333,5.721, 11.77,8.584, 19.313,8.584c 7.282,0.00, 13.592-2.863, 18.923-8.584
|
844 |
-
c 5.333-5.728, 7.999-12.615, 7.999-20.683C 306.158,365.245, 303.492,358.484, 298.159,352.759z M 420.845,145.576
|
845 |
-
c-9.627-5.205-21.203-7.803-34.729-7.803c-18.985,0.00-32.124,6.76-39.405,20.287c-5.465,10.145-8.193,26.14-8.193,47.99l0.00,69.842
|
846 |
-
l 0.389,0.00 l0.00,0.781 l-5.853,0.391c-3.382,0.00-7.806-0.391-13.267-1.171L 319.787,313.74 l 19.117,0.00 l0.00,15.216 c0.00,7.285-0.389,13.14-1.17,17.56l 45.259,0.00
|
847 |
-
c-0.775-4.94-1.168-10.533-1.168-16.776l0.00-15.999 l 33.943,0.00 l0.00-37.846 c-1.299,0.00-3.705,0.129-7.218,0.389
|
848 |
-
c-3.512,0.261-6.828,0.393-9.949,0.393l-16.777,0.00 l0.00-72.572 c0.00-17.432, 5.725-26.145, 17.167-26.145c 8.063,0.00, 15.348,2.209, 21.854,6.632
|
849 |
-
L 420.845,145.576 L 420.845,145.576zM 160.608,279.797c-16.388,0.00-24.582-9.627-24.582-28.873c0.00-17.951, 8.194-26.924, 24.582-26.924
|
850 |
-
c 15.868,0.00, 23.801,9.104, 23.801,27.313c0.00,7.545-1.82,14.047-5.461,19.511C 174.525,276.805, 168.411,279.797, 160.608,279.797z" />
|
851 |
-
<glyph unicode="" d="M 192.00,160.00c0.00,18.718, 1.099,19.844, 13.203,31.948L 352.00,338.746c 29.157,29.157, 31.843,44.204, 31.992,74.019L 384.00,412.765 L 384.00,480.00 l-64.00,0.00 l0.00-64.00
|
852 |
-
c0.00-18.718-1.099-19.843-13.202-31.948L 160.00,237.255c-29.156-29.157-31.842-44.204-31.991-74.019L 128.00,163.236 L 128.00,96.00 L 80.00,96.00 l 80.00-128.00l 79.282,128.00L 192.00,96.00
|
853 |
-
L 192.00,160.00 zM 384.00,96.00l0.00,67.236 l-0.008,0.00 c-0.149,29.813-2.835,44.861-31.992,74.019l-17.15,17.151l-45.255-45.253l 17.203-17.203
|
854 |
-
C 318.902,179.845, 320.00,178.719, 320.00,160.001l0.00-64.00 l-47.281,0.00 l 79.281-128.00l 80.00,128.00L 384.00,96.00L 384.00,96.00z" />
|
855 |
-
<glyph unicode="" d="M 64.00,224.004c0.00-74.013, 44.161-137.984, 108.215-168.289L 80.626,300.107C 69.972,276.853, 64.00,251.116, 64.00,224.004zM 385.614,233.436c0.00,23.117-8.527,39.118-15.827,51.571c-9.729,15.41-18.86,28.447-18.86,43.858
|
856 |
-
c0.00,17.187, 13.383,33.188, 32.243,33.188c 0.852,0.00, 1.66-0.102, 2.488-0.151C 351.50,392.387, 305.988,411.00, 256.004,411.00
|
857 |
-
c-67.08,0.00-126.093-33.523-160.422-84.284c 4.505-0.141, 8.753-0.227, 12.356-0.227c 20.077,0.00, 51.17,2.376, 51.17,2.376
|
858 |
-
c 10.345,0.591, 11.566-14.217, 1.229-15.411c0.00,0.00-10.405-1.184-21.976-1.775l 69.917-202.553l 42.022,122.728l-29.911,79.825
|
859 |
-
c-10.344,0.592-20.139,1.775-20.139,1.775c-10.351,0.596-9.136,16.001, 1.219,15.411c0.00,0.00, 31.70-2.376, 50.567-2.376
|
860 |
-
c 20.073,0.00, 51.175,2.376, 51.175,2.376c 10.351,0.591, 11.57-14.217, 1.223-15.411c0.00,0.00-10.417-1.186-21.974-1.775L 351.85,110.67
|
861 |
-
l 19.156,62.316C 379.296,198.861, 385.614,217.436, 385.614,233.436zM 259.371,207.648l-57.613-163.029c 17.208-4.929, 35.397-7.619, 54.244-7.619c 22.358,0.00, 43.802,3.759, 63.759,10.60
|
862 |
-
c-0.509,0.801-0.987,1.652-1.375,2.577L 259.371,207.648zM 424.481,313.714c 0.826-5.955, 1.294-12.343, 1.294-19.229c0.00-18.965-3.646-40.298-14.601-66.975l-58.643-165.136
|
863 |
-
C 409.612,94.788, 448.00,155.018, 448.00,224.003C 448.00,256.518, 439.47,287.083, 424.481,313.714zM 256.00,480.00C 114.615,480.00,0.00,365.385,0.00,224.00s 114.615-256.00, 256.00-256.00s 256.00,114.615, 256.00,256.00S 397.385,480.00, 256.00,480.00z M 256.00,0.00
|
864 |
-
C 132.288,0.00, 32.00,100.288, 32.00,224.00S 132.288,448.00, 256.00,448.00s 224.00-100.288, 224.00-224.00S 379.712,0.00, 256.00,0.00z" />
|
865 |
-
<glyph unicode="" d="M 259.555,206.271l-60.828-176.742c 18.164-5.343, 37.372-8.262, 57.269-8.262c 23.608,0.00, 46.251,4.077, 67.321,11.492
|
866 |
-
c-0.539,0.868-1.039,1.793-1.45,2.795L 259.555,206.271zM 392.852,234.232c0.00,25.062-9.006,42.405-16.718,55.905c-10.273,16.708-19.912,30.843-19.912,47.55
|
867 |
-
c0.00,18.631, 14.13,35.979, 34.045,35.979c 0.896,0.00, 1.753-0.108, 2.624-0.165c-36.064,33.048-84.119,53.225-136.896,53.225
|
868 |
-
c-70.82,0.00-133.129-36.34-169.376-91.371c 4.757-0.153, 9.242-0.244, 13.044-0.244c 21.197,0.00, 54.028,2.576, 54.028,2.576
|
869 |
-
c 10.928,0.639, 12.213-15.416, 1.299-16.707c0.00,0.00-10.985-1.282-23.198-1.928l 73.816-219.589l 44.371,133.05l-31.584,86.541
|
870 |
-
c-10.92,0.645-21.262,1.926-21.262,1.926c-10.927,0.646-9.645,17.347, 1.288,16.707c0.00,0.00, 33.47-2.576, 53.391-2.576
|
871 |
-
c 21.199,0.00, 54.03,2.576, 54.03,2.576c 10.931,0.64, 12.218-15.414, 1.297-16.707c0.00,0.00-10.999-1.281-23.202-1.926l 73.262-217.916
|
872 |
-
l 20.229,67.559C 386.179,196.748, 392.852,216.882, 392.852,234.232zM 357.915,48.781c 60.269,35.14, 100.803,100.438, 100.803,175.227c0.00,35.246-9.005,68.381-24.831,97.254
|
873 |
-
c 0.871-6.455, 1.366-13.382, 1.366-20.847c0.00-20.564-3.854-43.688-15.416-72.609L 357.915,48.781zM 53.277,224.008c0.00-80.24, 46.624-149.592, 114.258-182.448L 70.83,306.51C 59.577,281.299, 53.277,253.399, 53.277,224.008zM 426.688,480.00L 85.346,480.00 C 38.406,480.00,0.00,441.594,0.00,394.659l0.00-341.313 C0.00,6.376, 38.406-32.00, 85.346-32.00l 341.342,0.00
|
874 |
-
C 473.622-32.00, 512.00,6.376, 512.00,53.346L 512.00,394.659 C 512.00,441.594, 473.622,480.00, 426.688,480.00z M 255.993-1.48
|
875 |
-
c-124.327,0.00-225.476,101.156-225.476,225.488c0.00,124.324, 101.147,225.475, 225.476,225.475
|
876 |
-
c 124.327,0.00, 225.484-101.149, 225.484-225.475C 481.48,99.676, 380.322-1.48, 255.993-1.48z" />
|
877 |
-
<glyph unicode="" d="M 478.898,288.00l-28.103,0.00 l-0.60,0.00 c-17.583,0.00-32.994,14.871-34.195,32.00l0.00,0.00C 416.002,411.334, 342.371,480.00, 250.405,480.00l-83.912,0.00
|
878 |
-
C 74.587,480.00, 0.065,406.00,0.00,314.667l0.00-181.399 C0.00,41.941, 74.587-32.00, 166.492-32.00l 179.21,0.00 C 437.676-32.00, 512.00,41.941, 512.00,133.268L 512.00,250.459
|
879 |
-
C 512.00,268.71, 497.28,288.00, 478.898,288.00z M 160.00,352.00l 96.00,0.00 c 17.60,0.00, 32.00-14.40, 32.00-32.00s-14.40-32.00-32.00-32.00l-96.00,0.00 c-17.60,0.00-32.00,14.40-32.00,32.00S 142.40,352.00, 160.00,352.00
|
880 |
-
z M 352.00,96.00L 160.00,96.00 c-17.60,0.00-32.00,14.40-32.00,32.00s 14.40,32.00, 32.00,32.00l 192.00,0.00 c 17.60,0.00, 32.00-14.40, 32.00-32.00S 369.60,96.00, 352.00,96.00z" />
|
881 |
-
<glyph unicode="" d="M 184.00,272.00l 72.00,0.00 c 13.199,0.00, 24.00,10.80, 24.00,24.00s-10.801,24.00-24.00,24.00l-72.00,0.00 c-13.20,0.00-24.00-10.80-24.00-24.00S 170.801,272.00, 184.00,272.00zM 328.00,176.00L 184.00,176.00 c-13.20,0.00-24.00-10.80-24.00-24.00c0.00-13.199, 10.80-24.00, 24.00-24.00l 144.00,0.00 c 13.199,0.00, 24.00,10.801, 24.00,24.00C 352.00,165.20, 341.199,176.00, 328.00,176.00zM 426.674,480.00L 85.325,480.00 C 38.202,480.00,0.00,441.791,0.00,394.659l0.00-341.318 C0.00,6.208, 38.202-32.00, 85.325-32.00l 341.348,0.00
|
882 |
-
c 47.125,0.00, 85.324,38.208, 85.324,85.341L 512.00,394.659C 512.00,441.791, 473.798,480.00, 426.674,480.00z M 448.00,155.951
|
883 |
-
C 448.00,87.456, 392.257,32.00, 323.278,32.00L 188.869,32.00 C 119.941,32.00, 64.00,87.456, 64.00,155.951L 64.00,292.00 c 0.048,68.50, 55.94,124.00, 124.869,124.00l 62.934,0.00
|
884 |
-
C 320.779,416.00, 376.002,364.50, 376.00,296.00c 0.901-12.847, 12.461-24.00, 25.646-24.00l 0.449,0.00 l 21.078,0.00 C 436.959,272.00, 448.00,257.533, 448.00,243.844L 448.00,155.951 z" />
|
885 |
-
<glyph unicode="" d="M 416.751-4.105c-21.85-10.277-41.685-17.525-59.414-21.689c-17.75-4.121-36.931-6.203-57.533-6.203
|
886 |
-
c-23.413,0.00-37.227,2.943-55.204,8.828c-17.979,5.934-33.33,14.402-46.01,25.27c-12.725,10.961-21.511,22.604-26.424,34.916
|
887 |
-
c-4.913,12.318-7.358,30.207-7.358,53.621L 164.808,270.189 L 95.249,270.189 l0.00,72.503 c 20.104,6.521, 43.428,15.894, 57.736,28.076
|
888 |
-
c 14.377,12.225, 25.883,26.853, 34.553,43.972c 8.696,17.073, 14.674,38.856, 17.936,65.258l 72.818,0.00 l0.00-118.423 L 396.67,361.575 l0.00-91.387 L 278.29,270.188 l0.00-131.28
|
889 |
-
c0.00-29.709-0.385-46.828, 2.765-55.25c 3.125-8.377, 10.959-17.072, 19.495-22.10c 11.343-6.795, 24.271-10.189, 38.854-10.189
|
890 |
-
c 25.927,0.00, 51.716,8.424, 77.348,25.27L 416.752-4.105 L 416.751-4.105z" />
|
891 |
-
<glyph unicode="" d="M 426.69,480.00L 85.344,480.00 C 38.405,480.00, 0.001,441.593, 0.001,394.657l0.00-341.313 C 0.001,6.375, 38.405-32.00, 85.344-32.00L 426.69-32.00
|
892 |
-
C 473.625-32.00, 512.00,6.375, 512.00,53.344L 512.00,394.658 C 511.996,441.593, 473.621,480.00, 426.69,480.00z M 365.858,67.656
|
893 |
-
c-15.076-7.094-28.764-12.094-41.00-14.969c-12.248-2.845-25.48-4.279-39.701-4.279c-16.156,0.00-25.688,2.029-38.094,6.094
|
894 |
-
c-12.404,4.094-23.00,9.936-31.75,17.436c-8.779,7.564-14.843,15.599-18.233,24.097c-3.392,8.502-5.078,20.846-5.078,37.002L 192.002,256.938
|
895 |
-
l-47.998,0.00 l0.00,50.033 c 13.872,4.50, 29.968,10.967, 39.842,19.375c 9.92,8.436, 17.859,18.529, 23.842,30.342
|
896 |
-
c 6.002,11.783, 10.125,26.813, 12.376,45.033l 50.25,0.00 L 270.314,320.00 L 352.00,320.00 l0.00-63.063 l-81.689,0.00 l0.00-90.594 c0.00-20.50-0.264-32.313, 1.908-38.125
|
897 |
-
c 2.156-5.78, 7.563-11.78, 13.451-15.25c 7.828-4.688, 16.752-7.03, 26.813-7.03c 17.893,0.00, 35.689,5.813, 53.375,17.438L 365.858,67.656
|
898 |
-
L 365.858,67.656z" />
|
899 |
-
<glyph unicode="" d="M 482.459,335.562L 282.333,335.562 l 7.708-31.23l 54.623,0.00 l-91.913-83.016c-18.752,25.917-62.711,79.942-93.377,124.485l 68.461,0.00 l0.00,31.23 L0.00,377.031
|
900 |
-
l0.00-31.23 l 67.666,0.00 c 26.25-20.479, 126.708-146.104, 130.875-158.604c 1.667-11.709, 3.21-80.947-1.708-86.156
|
901 |
-
c-9.875-10.459-54.916-7.706-65.793-8.496l-3.748-21.435c 19.832-0.584, 84.415,1.613, 104.50,1.613
|
902 |
-
c 39.541,0.00, 108.833,0.164, 118.624-0.586l 1.21,22.498c-10.003,1.668-64.542,0.205-72.084,1.87
|
903 |
-
c-1.667,10.919-3.502,83.709-1.833,91.211c 7.541,21.749, 122.168,110.494, 134.71,113.868c 2.831,0.584, 7.04,1.719, 11.831,2.742
|
904 |
-
l 36.916,0.00 L 482.459,335.562zM 440.334,107.218L 440.501,73.552L 456.043,72.218L 472.79,70.968L 477.707,103.927L 460.04,104.802 zM 445.625,129.342l 30.669-2.458L 512.00,264.844c-5.957,0.206-60.166,5.331-67.211,6.706L 445.625,129.342z" />
|
905 |
-
<glyph unicode="" d="M 426.656,480.00L 85.343,480.00 C 38.406,480.00,0.00,441.594,0.00,394.657l0.00-341.314 C0.00,6.376, 38.406-32.00, 85.343-32.00l 341.313,0.00
|
906 |
-
C 473.594-32.00, 512.00,6.376, 512.00,53.343L 512.00,394.657 C 512.00,441.594, 473.594,480.00, 426.656,480.00z M 373.315,282.031
|
907 |
-
c-9.407-2.531-95.377-68.938-101.032-85.25c-1.252-5.627, 0.125-60.221, 1.375-68.408c 5.655-1.248, 46.563-0.154, 54.063-1.402
|
908 |
-
l-0.906-16.877c-7.344,0.563-59.313,0.438-88.969,0.438c-15.064,0.00-63.50-1.654-78.374-1.218l 2.81,16.062
|
909 |
-
c 8.159,0.594, 41.939-1.499, 49.346,6.345c 3.688,3.905, 2.531,55.781, 1.281,64.564c-3.125,9.374-78.47,103.436-98.156,118.842L 64.00,315.127
|
910 |
-
l0.00,23.626 l 171.125,0.00 l0.00-23.626 L 183.53,315.127 c 22.999-33.499, 55.971-73.97, 70.033-93.406l 68.938,62.218L 281.53,283.939 l-5.779,23.627l 150.095,0.00
|
911 |
-
l-15.97-23.627l-27.688,0.00 C 378.594,283.156, 375.437,282.469, 373.315,282.031z M 418.593,109.219l-12.563,0.938l-11.654,1.001
|
912 |
-
l-0.125,25.248l 14.778-1.813l 13.25-0.655L 418.593,109.219z M 421.22,151.156L 398.218,153.00l-0.625,106.655
|
913 |
-
c 5.279-1.031, 45.938-4.874, 50.404-5.028L 421.22,151.156z" />
|
914 |
-
<glyph unicode="" d="M 454.655,127.238c-62.828-26.668-131.154-39.521-193.27-39.521c-92.10,0.00-181.261,25.24-253.37,67.197
|
915 |
-
c-6.297,3.692-11.00-2.772-5.753-7.521c 66.818-60.353, 155.136-96.638, 253.243-96.638c 69.969,0.00, 151.233,22.052, 207.298,63.375
|
916 |
-
C 472.084,121.023, 464.147,131.27, 454.655,127.238zM 510.049,159.031c-6.129,7.559-58.711,14.068-90.756-8.484c-4.956-3.443-4.113-8.23, 1.387-7.561
|
917 |
-
c 18.059,2.145, 58.291,6.973, 65.431-2.185c 7.187-9.196-7.978-47.034-14.738-63.918c-2.059-5.122, 2.352-7.182, 6.972-3.317
|
918 |
-
C 508.451,98.723, 516.182,151.428, 510.049,159.031zM 269.739,305.544c-24.436-2.787-56.404-4.565-79.298-14.646c-26.394-11.39-44.96-34.698-44.96-68.923
|
919 |
-
c0.00-43.832, 27.64-65.717, 63.109-65.717c 30.011,0.00, 46.381,7.061, 69.511,30.666c 7.71-11.094, 10.203-16.492, 24.197-28.115
|
920 |
-
c 3.146-1.658, 7.179-1.479, 9.965,1.01l 0.119-0.118c 8.423,7.475, 23.726,20.815, 32.321,27.996c 3.442,2.848, 2.85,7.409, 0.119,11.209
|
921 |
-
c-7.709,10.678-15.895,19.334-15.895,39.086l0.00,65.715 c0.00,27.818, 1.959,53.383-18.566,72.54
|
922 |
-
c-16.189,15.537-42.998,20.997-63.519,20.997c-40.095,0.00-84.874-14.948-94.307-64.533c-0.948-5.276, 2.847-8.063, 6.287-8.837
|
923 |
-
l 40.927-4.39c 3.795,0.18, 6.583,3.916, 7.296,7.711c 3.499,17.082, 17.853,25.326, 33.925,25.326c 8.66,0.00, 18.502-3.203, 23.667-10.975
|
924 |
-
c 5.869-8.658, 5.10-20.521, 5.10-30.546L 269.739,305.544L 269.739,305.544z M 261.851,217.883c-6.702-11.863-17.322-19.158-29.18-19.158
|
925 |
-
c-16.192,0.00-25.622,12.338-25.622,30.548c0.00,35.938, 32.204,42.464, 62.69,42.464l0.00-9.133
|
926 |
-
C 269.739,246.173, 270.156,232.473, 261.851,217.883z" />
|
927 |
-
<glyph unicode="" d="M 291.765,274.281c-10.922,0.00-21.844-0.718-31.312-2.906c-17.469-5.094-31.313-16.031-31.313-39.313
|
928 |
-
c0.00-18.219, 9.485-30.594, 25.50-30.594c 2.188,0.00, 4.36,0.751, 5.813,0.751c 9.468,2.188, 18.201,8.749, 23.297,18.938
|
929 |
-
c 8.72,14.533, 8.016,27.626, 8.016,44.377L 291.765,274.281L 291.765,274.281zM 426.671,480.00L 85.344,480.00 C 38.406,480.00,0.00,441.596,0.00,394.656l0.00-341.313 C0.00,6.375, 38.407-32.00, 85.344-32.00l 341.328,0.00
|
930 |
-
C 473.61-32.00, 512.00,6.374, 512.00,53.344L 512.00,394.656 C 512.00,441.596, 473.61,480.00, 426.671,480.00z M 286.671,344.187
|
931 |
-
c-5.109,7.25-14.577,10.905-23.296,10.905c-1.452,0.00-2.188,0.00-2.922,0.00c-14.563-1.469-27.656-9.468-31.313-25.468
|
932 |
-
c-0.718-3.656-2.891-7.282-7.266-8.033l-40.766,5.096c-2.906,0.748-7.28,2.938-5.844,8.75
|
933 |
-
c 8.749,45.875, 48.062,61.875, 85.188,64.063c 2.922,0.00, 5.827,0.00, 8.748,0.00c 20.377,0.00, 46.597-5.813, 63.329-21.126
|
934 |
-
c 20.375-18.907, 18.204-44.375, 18.204-72.063l0.00-65.529 c0.00-19.626, 8.00-28.375, 16.016-38.563c 2.172-3.658, 2.906-8.00-0.72-10.938
|
935 |
-
c-8.031-7.282-23.313-20.375-32.047-27.656c-2.906-2.188-6.546-2.188-10.188-0.718c-13.845,11.625-16.017,16.718-24.032,27.655
|
936 |
-
c-13.826-14.563-25.468-22.563-39.312-26.938c-8.721-2.188-18.188-3.625-29.846-3.625c-34.937,0.00-62.606,21.813-62.606,64.782
|
937 |
-
c0.00,34.218, 18.204,57.50, 45.141,68.438c 13.827,6.53, 30.579,9.469, 47.313,11.625c 10.922,1.467, 21.844,2.188, 31.312,2.938l0.00,5.812
|
938 |
-
C 291.765,323.782, 292.469,335.437, 286.671,344.187z M 413.985,92.406c-5.14-3.938-10.656-7.499-16.203-10.688
|
939 |
-
c-41.531-24.904-95.313-37.968-141.983-37.968c-75.156,0.00-142.392,27.688-193.405,73.969c-4.357,3.563-0.797,8.688, 4.343,5.938
|
940 |
-
c 54.984-32.031, 123.00-51.438, 193.405-51.438c 44.313,0.00, 92.141,8.313, 137.641,26.124c 3.157,1.188, 6.721,2.782, 9.874,3.972
|
941 |
-
C 414.781,105.471, 421.11,97.532, 413.985,92.406z M 451.563,117.719c-0.39-14.25-7.906-41.529-25.703-56.562
|
942 |
-
c-3.562-2.781-7.109-1.188-5.547,2.78c 5.157,12.656, 17.00,41.938, 11.484,48.653c-3.953,5.126-20.172,4.72-34.018,3.563
|
943 |
-
c-6.327-0.813-11.875-1.188-16.219-2.00c-3.952-0.375-4.75,3.154-0.798,5.938c 5.141,3.563, 10.688,6.313, 17.017,8.313
|
944 |
-
c 22.53,6.722, 48.655,2.752, 52.221-1.592c 0.778-1.188, 1.562-3.531, 1.562-6.721L 451.563,117.719L 451.563,117.719z" />
|
945 |
-
<glyph unicode="" d="M 395.749,207.954c-0.647,64.841, 52.879,95.938, 55.271,97.483c-30.076,44.01-76.925,50.039-93.621,50.736
|
946 |
-
c-39.871,4.037-77.798-23.474-98.033-23.474c-20.184,0.00-51.409,22.877-84.476,22.276c-43.458-0.646-83.529-25.269-105.906-64.19
|
947 |
-
c-45.152-78.349-11.563-194.42, 32.445-257.963c 21.504-31.102, 47.146-66.038, 80.813-64.79c 32.421,1.294, 44.681,20.979, 83.878,20.979
|
948 |
-
c 39.197,0.00, 50.214-20.979, 84.525-20.335c 34.887,0.648, 56.991,31.699, 78.346,62.898c 24.695,36.084, 34.863,71.019, 35.462,72.813
|
949 |
-
C 463.679,104.74, 396.423,130.505, 395.749,207.954zM 331.281,398.239C 349.15,419.918, 361.211,449.995, 357.921,480.00c-25.739-1.048-56.939-17.145-75.405-38.775
|
950 |
-
c-16.571-19.188-31.074-49.813-27.187-79.218C 284.062,359.765, 313.393,376.609, 331.281,398.239z" />
|
951 |
-
<glyph unicode="" d="M 432.00,320.00c-17.60,0.00-32.00-14.40-32.00-32.00l0.00-128.00 c0.00-17.60, 14.40-32.00, 32.00-32.00s 32.00,14.40, 32.00,32.00L 464.00,288.00 C 464.00,305.60, 449.60,320.00, 432.00,320.00zM 48.00,320.00c-17.60,0.00-32.00-14.40-32.00-32.00l0.00-128.00 c0.00-17.60, 14.40-32.00, 32.00-32.00s 32.00,14.40, 32.00,32.00L 80.00,288.00 C 80.00,305.60, 65.599,320.00, 48.00,320.00zM 96.00,112.00c0.00-26.51, 21.49-48.00, 48.00-48.00l 16.00,0.00 l0.00-64.00 c0.00-17.60, 14.40-32.00, 32.00-32.00s 32.00,14.40, 32.00,32.00l0.00,64.00 l 32.00,0.00 l0.00-64.00 c0.00-17.60, 14.401-32.00, 32.00-32.00s 32.00,14.40, 32.00,32.00
|
952 |
-
l0.00,64.00 l 16.00,0.00 c 26.51,0.00, 48.00,21.49, 48.00,48.00L 384.00,288.00 L 96.00,288.00 L 96.00,112.00 zM 299.299,435.253l 20.252,38.903c 1.016,1.951, 0.25,4.379-1.701,5.395s-4.379,0.25-5.395-1.701l-20.559-39.493
|
953 |
-
C 275.797,444.581, 258.299,448.00, 240.00,448.00c-18.298,0.00-35.796-3.419-51.898-9.643L 167.544,477.849c-1.016,1.951-3.443,2.717-5.395,1.701
|
954 |
-
s-2.717-3.443-1.701-5.395l 20.25-38.904c-45.315-20.509-78.12-63.792-83.81-115.252l 286.22,0.00
|
955 |
-
C 377.42,371.461, 344.615,414.743, 299.299,435.253z M 176.00,344.80c-12.813,0.00-23.20,10.387-23.20,23.20c0.00,12.813, 10.387,23.20, 23.20,23.20
|
956 |
-
s 23.20-10.387, 23.20-23.20C 199.199,355.187, 188.813,344.80, 176.00,344.80z M 304.00,344.80c-12.813,0.00-23.201,10.387-23.201,23.20
|
957 |
-
c0.00,12.813, 10.389,23.20, 23.201,23.20s 23.199-10.387, 23.199-23.20C 327.199,355.187, 316.813,344.80, 304.00,344.80z" />
|
958 |
-
<glyph unicode="" d="M 206.115,224.043c-23.854,12.259-47.043,18.479-68.94,18.479c-2.978,0.00-5.976-0.09-8.974-0.354
|
959 |
-
c-27.94-2.312-53.461-9.684-69.875-15.414c-4.354-1.599-8.817-3.288-13.415-5.153L0.00,65.904
|
960 |
-
c 30.851,11.416, 58.146,16.969, 83.135,16.969c 40.423,0.00, 69.764-15.104, 93.996-30.652c 11.481,38.959, 39.022,133.045, 47.241,161.162
|
961 |
-
C 218.397,217.025, 212.334,220.668, 206.115,224.043zM 264.174,184.465l-45.223-157.074c 13.416-7.686, 58.549-32.025, 93.106-32.025c 27.896,0.00, 59.126,7.148, 95.417,21.896
|
962 |
-
l 43.178,150.988c-29.316-9.461-57.438-14.26-83.732-14.26C 318.945,153.99, 285.363,169.539, 264.174,184.465zM 146.411,295.605c 38.559-0.399, 67.076-15.104, 90.708-30.251l 46.376,158.672c-9.773,5.598-35.403,19.547-53.929,24.30
|
963 |
-
c-12.193,2.842-25.01,4.308-38.602,4.308c-25.898-0.488-54.194-6.973-86.444-19.90l-44.22-155.298
|
964 |
-
c 32.404,12.218, 60.322,18.17, 86.043,18.17C 146.366,295.605, 146.411,295.605, 146.411,295.605zM 512.00,380.938c-29.407-11.416-58.104-17.233-85.514-17.233c-45.843,0.00-79.646,15.901-101.547,31.183L 278.964,235.77
|
965 |
-
c 30.873-19.854, 64.145-29.939, 99.061-29.939c 28.474,0.00, 57.97,6.84, 87.731,20.344l-0.091,1.111l 1.867,0.443L 512.00,380.938z" />
|
966 |
-
<glyph unicode="" d="M 445.98,222.898c-9.043,0.00-17.674-1.76-25.532-4.928C 415.195,275.149, 365.303,320.00, 304.448,320.00
|
967 |
-
c-14.893,0.00-29.341-2.815-42.159-7.582c-4.98-1.851-6.289-3.76-6.289-7.458l0.00-201.357 c0.00-3.883, 3.12-7.117, 7.062-7.498
|
968 |
-
C 263.23,96.088, 444.83,96.00, 446.007,96.00C 482.459,96.00, 512.00,124.408, 512.00,159.447S 482.433,222.898, 445.98,222.898zM 200.00,96.00L 216.00,96.00L 224.00,208.11L 216.00,320.00L 200.00,320.00L 192.00,208.11 zM 152.00,96.00L 136.00,96.00L 128.00,177.375L 136.00,256.00L 152.00,256.00L 160.00,176.00 zM 72.00,96.00L 88.00,96.00L 96.00,160.00L 88.00,224.00L 72.00,224.00L 64.00,160.00 zM 8.00,128.00L 24.00,128.00L 32.00,160.00L 24.00,192.00L 8.00,192.00L0.00,160.00 z" />
|
969 |
-
<glyph unicode="" d="M 426.686,480.00L 85.344,480.00 C 38.407,480.00, 0.001,441.597, 0.001,394.66l0.00-234.658 L 8.00,192.00l 16.00,0.00 l 8.00-32.00l-8.00-32.00L 8.00,128.00 l-8.00,31.998l0.00-106.652
|
970 |
-
C 0.001,6.377, 38.407-32.00, 85.344-32.00l 341.342,0.00 C 473.625-32.00, 512.00,6.377, 512.00,53.346L 512.00,159.447 C 512.00,124.408, 482.459,96.00, 446.007,96.00
|
971 |
-
c-1.177,0.00-182.777,0.088-182.945,0.105c-3.941,0.381-7.062,3.615-7.062,7.498L 256.00,304.96 c0.00,3.697, 1.309,5.606, 6.289,7.458
|
972 |
-
c 12.818,4.767, 27.267,7.582, 42.159,7.582c 60.854,0.00, 110.746-44.851, 115.999-102.029c 7.858,3.168, 16.489,4.928, 25.532,4.928
|
973 |
-
c 36.453,0.00, 66.021-28.412, 66.021-63.451L 512.00,394.659 C 512.00,441.597, 473.621,480.00, 426.686,480.00z M 88.00,96.00L 72.00,96.00 l-8.00,64.00l 8.00,64.00l 16.00,0.00 l 8.00-64.00L 88.00,96.00z M 152.00,96.00l-16.00,0.00
|
974 |
-
l-8.00,81.375L 136.00,256.00l 16.00,0.00 l 8.00-80.00L 152.00,96.00z M 216.00,96.00l-16.00,0.00 l-8.00,112.11L 200.00,320.00l 16.00,0.00 l 8.00-111.89L 216.00,96.00z" />
|
975 |
-
<glyph unicode="" d="M 487.655,191.031c 1.406,10.40, 2.215,20.973, 2.215,31.736c0.00,129.155-105.271,233.872-235.103,233.872
|
976 |
-
c-12.904,0.00-25.555-1.06-37.866-3.08c-22.072,14.384-48.342,22.767-76.612,22.767C 62.766,476.326,0.00,413.518,0.00,336.02
|
977 |
-
c0.00-28.198, 8.299-54.394, 22.59-76.389c-1.925-12.017-2.909-24.323-2.909-36.859c0.00-129.176, 105.217-233.882, 235.085-233.882
|
978 |
-
c 14.657,0.00, 28.927,1.427, 42.796,3.933c 21.55-13.369, 46.934-21.148, 74.146-21.148C 449.21-28.326, 512.00,34.498, 512.00,111.988
|
979 |
-
C 511.997,141.281, 503.04,168.516, 487.655,191.031z M 276.74,50.404c-74.705-3.892-109.664,12.637-141.689,42.691
|
980 |
-
c-35.765,33.567-21.398,71.854, 7.74,73.801c 29.122,1.944, 46.607-33.013, 62.15-42.736c 15.524-9.688, 74.594-31.76, 105.794,3.908
|
981 |
-
c 33.976,38.828-22.594,58.92-64.059,65.002c-59.203,8.766-133.95,40.792-128.135,103.907c 5.816,63.074, 53.582,95.414, 103.85,99.976
|
982 |
-
c 64.077,5.817, 105.791-9.707, 138.785-37.86c 38.15-32.529, 17.508-68.894-6.799-71.82c-24.212-2.909-51.404,53.504-104.791,54.352
|
983 |
-
c-55.027,0.864-92.217-57.261-24.286-73.784c 67.966-16.505, 140.75-23.286, 166.961-85.417
|
984 |
-
C 418.49,120.287, 351.507,54.299, 276.74,50.404z" />
|
985 |
-
<glyph unicode="" d="M 511.999,229.039c0.00,32.207-26.201,58.405-58.404,58.405c-14.562,0.00-27.883-5.368-38.123-14.217
|
986 |
-
c-39.656,25.738-90.988,40.764-145.924,42.896l 29.022,94.637l 84.437-18.901c-0.002-0.229-0.033-0.448-0.033-0.676
|
987 |
-
c0.00-26.613, 21.654-48.267, 48.266-48.267c 26.612,0.00, 48.267,21.652, 48.267,48.267c0.00,26.613-21.652,48.265-48.267,48.265
|
988 |
-
c-20.00,0.00-37.19-12.229-44.506-29.601l-92.44,20.693c-4.685,1.049-9.383-1.681-10.789-6.271l-33.106-107.944
|
989 |
-
c-57.917-0.929-112.308-16.122-153.872-43.10c-10.237,8.848-23.563,14.217-38.123,14.217c-32.202,0.00-58.401-26.199-58.401-58.405
|
990 |
-
c0.00-21.122, 11.271-39.659, 28.113-49.918c-0.86-5.484-1.313-11.031-1.313-16.633c0.00-41.855, 24.355-80.934, 68.577-110.023
|
991 |
-
c 43.037-28.313, 100.078-43.91, 160.621-43.91c 60.537,0.00, 117.582,15.601, 160.619,43.91c 44.224,29.092, 68.576,68.168, 68.576,110.023
|
992 |
-
c0.00,5.602-0.451,11.146-1.313,16.633C 500.726,189.379, 511.999,207.918, 511.999,229.039z M 431.238,421.079
|
993 |
-
c 16.484,0.00, 29.896-13.41, 29.896-29.896c0.00-16.482-13.412-29.896-29.896-29.896c-16.481,0.00-29.896,13.414-29.896,29.896
|
994 |
-
C 401.341,407.668, 414.753,421.079, 431.238,421.079z M 18.367,229.039c0.00,22.076, 17.959,40.036, 40.033,40.036
|
995 |
-
c 8.359,0.00, 16.122-2.583, 22.549-6.978c-23.513-18.578-39.833-40.381-48.038-63.904C 24.036,205.541, 18.367,216.639, 18.367,229.039z
|
996 |
-
M 255.999,26.924c-116.252,0.00-210.829,60.813-210.829,135.564c0.00,3.213, 0.187,6.396, 0.53,9.555
|
997 |
-
c 0.667,6.111, 1.956,12.115, 3.846,17.982c 7.062,21.914, 22.373,41.909, 43.751,58.577c 4.741,3.701, 9.792,7.229, 15.105,10.583
|
998 |
-
c 38.062,24.02, 90.179,38.86, 147.597,38.86c 57.414,0.00, 109.533-14.843, 147.592-38.86c 5.313-3.354, 10.367-6.884, 15.106-10.583
|
999 |
-
c 21.379-16.667, 36.691-36.663, 43.752-58.577c 1.892-5.867, 3.181-11.871, 3.847-17.982c 0.346-3.156, 0.528-6.342, 0.528-9.555
|
1000 |
-
C 466.824,87.736, 372.249,26.924, 255.999,26.924z M 479.087,198.191c-8.203,23.522-24.527,45.328-48.039,63.905
|
1001 |
-
c 6.426,4.395, 14.188,6.978, 22.547,6.978c 22.076,0.00, 40.035-17.959, 40.035-40.036C 493.63,216.639, 487.964,205.541, 479.087,198.191zM 325.974,103.744c-17.406-14.27-38.988-20.633-69.975-20.633c-30.989,0.00-52.57,6.363-69.979,20.633
|
1002 |
-
c-4.117,3.375-10.194,2.771-13.568-1.344c-3.377-4.119-2.775-10.195, 1.344-13.572c 20.81-17.061, 46.93-25.004, 82.204-25.004
|
1003 |
-
c 35.273,0.00, 61.393,7.943, 82.203,25.004c 4.117,3.377, 4.722,9.453, 1.345,13.572C 336.164,106.523, 330.091,107.119, 325.974,103.744zM 214.117,189.99c0.00,19.184-15.552,34.734-34.735,34.734c-19.188,0.00-34.74-15.551-34.74-34.734
|
1004 |
-
c0.00-19.189, 15.554-34.742, 34.74-34.742C 198.566,155.25, 214.117,170.801, 214.117,189.99zM 334.261,224.725c-19.189,0.00-34.742-15.551-34.742-34.734c0.00-19.189, 15.553-34.742, 34.742-34.742
|
1005 |
-
c 19.184,0.00, 34.738,15.553, 34.738,34.742C 368.999,209.174, 353.445,224.725, 334.261,224.725z" />
|
1006 |
-
<glyph unicode="" d="M 426.656,480.00L 85.344,480.00 C 38.406,480.00,0.00,441.594,0.00,394.657l0.00-341.313 C0.00,6.376, 38.407-32.00, 85.344-32.00l 341.312,0.00
|
1007 |
-
C 473.593-32.00, 512.00,6.376, 512.00,53.344L 512.00,394.656 C 511.997,441.594, 473.593,480.00, 426.656,480.00z M 157.395,51.365L 79.969,51.365 L 79.969,284.329 l 77.426,0.00 L 157.395,51.365 z
|
1008 |
-
M 118.684,316.121l-0.508,0.00 c-25.983,0.00-42.788,17.898-42.788,40.266c0.00,22.846, 17.313,40.248, 43.803,40.248
|
1009 |
-
c 26.486,0.00, 42.791-17.396, 43.296-40.248C 162.487,334.027, 145.678,316.121, 118.684,316.121z M 436.611,51.365l-77.426,0.00 L 359.185,176.003
|
1010 |
-
c0.00,31.308-11.205,52.669-39.219,52.669c-21.396,0.00-34.144-14.406-39.73-28.318c-2.041-4.979-2.548-11.924-2.548-18.883l0.00-130.104
|
1011 |
-
l-77.443,0.00 c0.00,0.00, 1.018,211.103,0.00,232.963l 77.436,0.00 l0.00-33.00 c 10.283,15.864, 28.672,38.479, 69.785,38.479c 50.951,0.00, 89.146-33.309, 89.146-104.856
|
1012 |
-
L 436.612,51.365 L 436.611,51.365z" />
|
1013 |
-
<glyph unicode="" d="M 409.79,73.186c-53.333,0.209-81.749,26.291-101.496,72.251l-5.649,12.541l-48.685,111.00
|
1014 |
-
c-16.146,39.293-56.211,65.836-101.417,65.836c-61.167,0.00-110.792-49.626-110.792-110.836c0.00-61.209, 49.624-110.834, 110.792-110.834
|
1015 |
-
c 42.669,0.00, 79.771,24.125, 98.291,59.50l 19.688-45.416c-27.956-34.085-70.438-55.792-117.977-55.792C 68.29,71.436,0.00,139.687,0.00,223.979
|
1016 |
-
c0.00,84.252, 68.29,152.586, 152.542,152.586c 63.583,0.00, 114.918-33.959, 141.00-94.126c 1.978-4.668, 27.579-64.543, 49.913-115.50
|
1017 |
-
c 13.834-31.541, 25.63-52.459, 63.878-53.752c 37.584-1.291, 63.378,21.584, 63.378,50.504c0.00,28.25-19.668,35.041-52.875,46.082
|
1018 |
-
c-59.691,19.667-90.503,39.417-90.503,86.751c0.00,46.168, 31.416,76.959, 82.457,76.959c 33.248,0.00, 57.253-14.793, 73.88-44.293
|
1019 |
-
l-32.628-16.666c-12.295,17.207-25.854,24.00-43.086,24.00c-23.956,0.00-41.063-16.668-41.063-38.833c0.00-31.461, 28.147-36.211, 67.503-49.127
|
1020 |
-
C 487.375,231.314, 512.00,211.604, 512.00,162.396C 512.001,110.728, 467.664,73.102, 409.79,73.186z" />
|
1021 |
-
<glyph unicode="" d="M 426.671,480.00L 85.344,480.00 C 38.406,480.00,0.00,441.596,0.00,394.658l0.00-341.313 C0.00,6.375, 38.408-32.00, 85.344-32.00L 426.67-32.00
|
1022 |
-
c 46.937,0.00, 85.33,38.375, 85.33,85.345L 512.00,394.657 C 512.00,441.596, 473.608,480.00, 426.671,480.00z M 371.342,108.469
|
1023 |
-
c-39.999,0.157-61.313,19.721-76.124,54.189l-4.236,9.404l-36.513,83.25c-12.11,29.469-42.159,49.375-76.063,49.375
|
1024 |
-
c-45.875,0.00-83.096-37.219-83.096-83.125s 37.222-83.125, 83.096-83.125c 32.00,0.00, 59.828,18.094, 73.717,44.625L 266.89,149.00
|
1025 |
-
c-20.969-25.563-52.829-41.844-88.484-41.844C 115.218,107.156, 64.00,158.343, 64.00,221.561c0.00,63.188, 51.219,114.438, 114.405,114.438
|
1026 |
-
c 47.688,0.00, 86.188-25.469, 105.75-70.594c 1.483-3.50, 20.688-48.406, 37.438-86.625c 10.375-23.656, 19.219-39.346, 47.906-40.313
|
1027 |
-
c 28.188-0.969, 47.53,16.188, 47.53,37.876c0.00,21.188-14.751,26.281-39.657,34.563C 332.609,225.658, 309.50,240.47, 309.50,275.97
|
1028 |
-
c0.00,34.626, 23.563,57.72, 61.842,57.72c 24.937,0.00, 42.938-11.094, 55.408-33.221L 402.28,287.97
|
1029 |
-
c-9.221,12.906-19.393,18.001-32.313,18.001c-17.97,0.00-30.797-12.501-30.797-29.126c0.00-23.595, 21.107-27.157, 50.627-36.844
|
1030 |
-
C 429.529,227.064, 448.00,212.283, 448.00,175.376C 447.997,136.626, 414.746,108.406, 371.342,108.469z" />
|
1031 |
-
<glyph unicode="" d="M 426.688,480.00L 85.343,480.00 C 38.405,480.00,0.00,441.592,0.00,394.654l0.00-341.312 C0.00,6.377, 38.405-32.00, 85.343-32.00l 341.345,0.00
|
1032 |
-
C 473.625-32.00, 512.00,6.376, 512.00,53.342L 512.00,394.654 C 512.00,441.592, 473.625,480.00, 426.688,480.00z M 480.00,53.342c0.00-14.167-5.57-27.541-15.685-37.658
|
1033 |
-
C 454.204,5.57, 440.841,0.00, 426.688,0.00L 256.00,0.00 L 256.00,224.00 L 32.00,224.00 L 32.00,394.654 c0.00,14.154, 5.575,27.525, 15.698,37.648C 57.82,442.425, 71.19,448.00, 85.343,448.00
|
1034 |
-
L 256.00,448.00 l0.00-224.00 l 224.00,0.00 L 480.00,53.342 z" />
|
1035 |
-
<glyph unicode="" d="M 256.00,480.00C 114.615,480.00,0.00,365.385,0.00,224.00s 114.614-256.00, 256.00-256.00c 141.385,0.00, 256.00,114.615, 256.00,256.00S 397.385,480.00, 256.00,480.00z M 256.00,286.294
|
1036 |
-
c-8.484,0.00-15.359-6.876-15.359-15.36l0.00-93.868 c0.00-35.816-29.037-64.854-64.854-64.854c-35.818,0.00-64.854,29.036-64.854,64.854l0.00,42.668
|
1037 |
-
l 49.493,0.00 l0.00-40.961 c0.00-8.483, 6.877-15.359, 15.36-15.359c 8.482,0.00, 15.358,6.876, 15.358,15.359l0.00,92.161
|
1038 |
-
c0.00,35.817, 29.035,64.853, 64.854,64.853c 35.815,0.00, 64.854-29.036, 64.854-64.853l0.00-18.774 l-29.014-9.386l-20.479,9.386l0.00,18.774
|
1039 |
-
C 271.361,279.417, 264.484,286.294, 256.00,286.294z M 401.067,177.066c0.00-35.816-29.036-64.854-64.853-64.854
|
1040 |
-
c-35.818,0.00-64.854,29.036-64.854,64.854L 271.36,218.88 l 20.479-9.387l 29.014,9.387l0.00-41.813 c0.00-8.482, 6.875-15.359, 15.36-15.359
|
1041 |
-
c 8.481,0.00, 15.358,6.877, 15.358,15.359l0.00,40.961 l 49.493,0.00 l0.00-40.961 L 401.067,177.067 z" />
|
1042 |
-
<glyph unicode="" d="M 426.675,480.00L 85.325,480.00 C 38.20,480.00,0.00,441.79,0.00,394.658l0.00-341.315 C0.00,6.21, 38.20-32.00, 85.325-32.00l 341.35,0.00 C 473.80-32.00, 512.00,6.21, 512.00,53.343
|
1043 |
-
L 512.00,394.658 C 512.00,441.79, 473.80,480.00, 426.675,480.00z M 256.00,286.294c-8.484,0.00-15.359-6.876-15.359-15.36l0.00-93.868
|
1044 |
-
c0.00-35.816-29.037-64.854-64.854-64.854c-35.818,0.00-64.854,29.036-64.854,64.854l0.00,42.668 l 49.493,0.00 l0.00-40.961
|
1045 |
-
c0.00-8.483, 6.877-15.359, 15.36-15.359c 8.482,0.00, 15.359,6.876, 15.359,15.359l0.00,92.161 c0.00,35.817, 29.035,64.853, 64.854,64.853
|
1046 |
-
c 35.815,0.00, 64.854-29.036, 64.854-64.853l0.00-18.774 l-29.014-9.386l-20.48,9.386l0.00,18.774 C 271.36,279.417, 264.484,286.294, 256.00,286.294z
|
1047 |
-
M 401.067,177.066c0.00-35.816-29.037-64.854-64.854-64.854c-35.818,0.00-64.854,29.036-64.854,64.854L 271.359,218.88 l 20.48-9.387l 29.014,9.387
|
1048 |
-
l0.00-41.813 c0.00-8.482, 6.875-15.359, 15.359-15.359c 8.482,0.00, 15.36,6.877, 15.36,15.359l0.00,40.961 l 49.492,0.00 l0.00-40.961 L 401.067,177.067 z" />
|
1049 |
-
<glyph unicode="" d="M 256.00,480.00C 114.615,480.00,0.00,365.385,0.00,224.00s 114.613-256.00, 256.00-256.00c 141.385,0.00, 256.00,114.615, 256.00,256.00S 397.385,480.00, 256.00,480.00z M 280.822,137.941
|
1050 |
-
c-23.26,1.807-33.021,13.328-51.252,24.404C 219.54,109.757, 207.288,59.337, 171.00,33.002
|
1051 |
-
c-11.202,79.484, 16.447,139.182, 29.285,202.557c-21.892,36.853, 2.635,111.017, 48.81,92.737
|
1052 |
-
c 56.813-22.474-49.20-137.004, 21.966-151.308c 74.31-14.934, 104.644,128.929, 58.571,175.712
|
1053 |
-
c-66.579,67.553-193.799,1.54-178.155-95.178c 3.807-23.646, 28.236-30.819, 9.762-63.451c-42.61,9.446-55.325,43.051-53.688,87.856
|
1054 |
-
c 2.634,73.337, 65.892,124.682, 129.343,131.783c 80.242,8.982, 155.553-29.454, 165.953-104.938
|
1055 |
-
C 414.553,223.577, 366.623,131.307, 280.822,137.941z" />
|
1056 |
-
<glyph unicode="" d="M 426.675,480.00L 85.324,480.00 C 38.199,480.00,0.00,441.79,0.00,394.657l0.00-341.315 C0.00,6.209, 38.199-32.00, 85.324-32.00l 341.351,0.00
|
1057 |
-
C 473.80-32.00, 512.00,6.209, 512.00,53.342L 512.00,394.657 C 512.00,441.79, 473.80,480.00, 426.675,480.00z M 280.822,137.941
|
1058 |
-
c-23.26,1.807-33.021,13.328-51.252,24.404c-10.03-52.589-22.281-103.009-58.569-129.344
|
1059 |
-
c-11.202,79.484, 16.447,139.182, 29.285,202.557c-21.893,36.853, 2.635,111.017, 48.81,92.737
|
1060 |
-
c 56.813-22.474-49.20-137.004, 21.966-151.308c 74.31-14.934, 104.644,128.929, 58.571,175.712
|
1061 |
-
c-66.579,67.553-193.799,1.54-178.155-95.178c 3.807-23.646, 28.236-30.819, 9.762-63.451c-42.61,9.446-55.325,43.051-53.688,87.856
|
1062 |
-
c 2.634,73.337, 65.892,124.682, 129.343,131.783c 80.242,8.982, 155.553-29.454, 165.953-104.938
|
1063 |
-
C 414.553,223.577, 366.623,131.307, 280.822,137.941z" />
|
1064 |
-
<glyph unicode="" d="M 426.671,480.00L 85.343,480.00 C 38.406,480.00,0.00,441.595,0.00,394.655l0.00-341.311 C0.00,6.375, 38.406-32.00, 85.343-32.00l 341.328,0.00
|
1065 |
-
C 473.609-32.00, 512.00,6.375, 512.00,53.345L 512.00,394.655 C 512.00,441.595, 473.609,480.00, 426.671,480.00z M 155.889,146.606l-55.632,0.00
|
1066 |
-
c-3.351,0.00-5.854,1.504-7.271,3.792c-1.467,2.379-1.542,5.464,0.00,8.534l 59.11,104.313c 0.063,0.114, 0.063,0.19,0.00,0.316l-37.615,65.116
|
1067 |
-
c-1.556,3.098-1.783,6.157-0.316,8.534c 1.417,2.301, 4.235,3.477, 7.586,3.477l 55.632,0.00 c 8.535,0.00, 12.72-5.499, 15.489-10.431
|
1068 |
-
c0.00,0.00, 38.02-66.33, 38.249-66.696c-2.252-3.97-60.059-106.21-60.059-106.21C 168.218,152.22, 164.21,146.606, 155.889,146.606z
|
1069 |
-
M 418.956,404.731L 295.78,186.941c-0.075-0.115-0.075-0.255,0.00-0.367l 78.431-143.295c 1.556-3.084, 1.593-6.221, 0.113-8.597
|
1070 |
-
c-1.415-2.288-4.033-3.552-7.383-3.552l-55.57,0.00 c-8.522,0.00-12.783,5.663-15.54,10.596c0.00,0.00-78.848,144.646-79.05,145.023
|
1071 |
-
c 3.944,6.98, 123.797,219.523, 123.797,219.523c 2.984,5.362, 6.587,10.596, 14.894,10.596l 56.203,0.00 c 3.351,0.00, 5.981-1.265, 7.396-3.553
|
1072 |
-
C 420.537,410.939, 420.499,407.804, 418.956,404.731z" />
|
1073 |
-
<glyph unicode="" d="M 267.313,468.686C 261.091,474.908, 248.80,480.00, 240.00,480.00L 48.00,480.00 c-8.80,0.00-16.00-7.20-16.00-16.00l0.00-480.00 c0.00-8.80, 7.20-16.00, 16.00-16.00l 384.00,0.00 c 8.80,0.00, 16.00,7.20, 16.00,16.00L 448.00,272.00
|
1074 |
-
c0.00,8.80-5.091,21.091-11.313,27.313L 267.313,468.686z M 416.00,0.00L 64.00,0.00 L 64.00,448.00 l 175.579,0.00 c 1.458-0.24, 4.204-1.377, 5.405-2.239l 168.778-168.777
|
1075 |
-
c 0.861-1.201, 1.998-3.947, 2.238-5.405L 416.00,0.00 zM 432.00,480.00l-96.00,0.00 c-8.80,0.00-10.909-5.091-4.687-11.313l 105.373-105.373C 442.909,357.091, 448.00,359.20, 448.00,368.00L 448.00,464.00 C 448.00,472.80, 440.80,480.00, 432.00,480.00
|
1076 |
-
z" />
|
1077 |
-
<glyph unicode="" d="M 449.735,374.562l-75.173,87.703C 365.751,472.542, 349.533,480.00, 336.00,480.00L 80.00,480.00 C 62.355,480.00, 48.00,465.645, 48.00,448.00l0.00-448.00 c0.00-17.645, 14.354-32.00, 32.00-32.00
|
1078 |
-
l 352.00,0.00 c 17.645,0.00, 32.00,14.355, 32.00,32.00L 464.00,336.00 C 464.00,348.702, 458.00,364.92, 449.735,374.562z M 352.00,459.633c 4.142-2.112, 7.88-4.826, 10.412-7.781
|
1079 |
-
l 75.175-87.704c 2.649-3.092, 5.069-7.469, 6.913-12.148L 352.00,352.00 L 352.00,459.633 z M 448.00,0.00c0.00-8.80-7.20-16.00-16.00-16.00L 80.00-16.00 c-8.80,0.00-16.00,7.20-16.00,16.00L 64.00,448.00
|
1080 |
-
c0.00,8.80, 7.20,16.00, 16.00,16.00l 256.00,0.00 l0.00-128.00 l 112.00,0.00 L 448.00,0.00 zM 294.112,206.287c-19.817,18.503-36.43,44.212-46.739,73.019c 0.707,2.758, 1.386,5.453, 2.00,8.177
|
1081 |
-
c 2.869,12.896, 4.924,55.508, 4.924,55.508s-8.151-32.012-9.435-36.842c-0.824-3.064-1.863-6.335-3.042-9.739
|
1082 |
-
c-6.251,21.983-9.433,43.311-9.433,59.468c0.00,4.574, 0.39,13.445, 1.688,20.473c 0.627,5.014, 2.459,7.619, 4.341,8.877
|
1083 |
-
c 3.731-0.906, 7.895-6.623, 12.252-16.191c 3.743-8.27, 3.511-17.853, 3.511-23.782c0.00,0.00, 4.014,14.584, 3.086,23.262
|
1084 |
-
c-0.563,5.211-5.525,18.861-16.062,18.349l-0.86,0.00 l-4.689,0.172c-7.694,0.00-14.893-3.719-16.633-9.934
|
1085 |
-
c-6.466-23.838, 0.771-60.678, 12.84-106.604l-3.653-8.879c-9.238-22.521-20.782-44.946-30.941-64.856
|
1086 |
-
c-41.931-82.047-74.548-126.311-96.297-129.41l-0.093,0.895c-0.473,10.232, 18.426,36.631, 44.027,57.609
|
1087 |
-
c 2.668,2.166, 14.055,13.186, 14.055,13.186s-15.38-8.131-18.833-10.221c-32.077-19.154-48.047-38.338-50.649-51.072
|
1088 |
-
c-0.771-3.783-0.262-8.43, 3.074-10.338l 8.208-4.125c 22.328-11.182, 49.771,18.203, 86.276,82.178
|
1089 |
-
c 37.147,12.186, 83.491,23.666, 125.69,29.881c 37.77-21.582, 81.094-31.857, 97.738-27.416c 3.166,0.838, 6.506,3.318, 8.207,5.611
|
1090 |
-
c 1.334,2.109, 3.19,10.549, 3.19,10.549s-3.125-4.279-5.701-5.535c-10.541-4.975-43.797,3.322-77.932,20.023
|
1091 |
-
c 29.514,3.141, 54.107,3.27, 67.25-0.93c 16.686-5.326, 16.686-10.797, 16.463-11.906c 0.223,0.918, 0.98,4.578, 0.891,6.137
|
1092 |
-
c-0.38,4.00-1.605,7.572-4.632,10.529c-6.18,6.086-21.438,9.162-42.223,9.436c-15.668,0.174-34.447-1.203-54.844-4.117
|
1093 |
-
C 311.79,193.094, 301.924,198.982, 294.112,206.287z M 190.386,153.314c 6.319,11.23, 13.166,23.459, 20.169,36.648
|
1094 |
-
c 13.558,25.639, 21.776,45.43, 28.689,64.054c 10.899-21.924, 25.938-42.757, 45.665-59.456c 4.396-3.723, 9.069-7.242, 13.882-10.564
|
1095 |
-
C 262.974,177.336, 225.346,167.961, 190.386,153.314z" />
|
1096 |
-
<glyph unicode="" d="M 345.11,244.159c-30.334,14.326-68.986,17.21-97.415-3.024c 34.569,3.302, 72.479-2.419, 97.553-28.563
|
1097 |
-
c 24.00,27.54, 62.057,32.703, 96.479,29.866C 412.981,261.511, 375.115,258.951, 345.11,244.159zM 332.824,177.125c-34.189,0.789-67.217-11.586-95.55-30.052c-53.588,22.794-121.368,18.562-167.001-19.491
|
1098 |
-
c 13.165,0.467, 26.003,3.723, 39.028,5.396c 47.591,4.745, 98.294-7.071, 134.256-39.912c 14.886,21.771, 35.822,39.121, 59.826,49.961
|
1099 |
-
c 31.537,15.26, 67.08,16.842, 101.41,17.26C 383.949,174.611, 357.485,177.264, 332.824,177.125zM 449.735,374.562l-75.173,87.703C 365.751,472.542, 349.533,480.00, 336.00,480.00L 80.00,480.00 C 62.355,480.00, 48.00,465.645, 48.00,448.00l0.00-448.00 c0.00-17.645, 14.354-32.00, 32.00-32.00
|
1100 |
-
l 352.00,0.00 c 17.645,0.00, 32.00,14.355, 32.00,32.00L 464.00,336.00 C 464.00,348.702, 458.00,364.92, 449.735,374.562z M 352.00,459.633c 4.142-2.112, 7.88-4.826, 10.412-7.781
|
1101 |
-
l 75.175-87.704c 2.649-3.092, 5.069-7.469, 6.913-12.148L 352.00,352.00 L 352.00,459.633 z M 448.00,0.00c0.00-8.80-7.20-16.00-16.00-16.00L 80.00-16.00 c-8.80,0.00-16.00,7.20-16.00,16.00L 64.00,448.00
|
1102 |
-
c0.00,8.80, 7.20,16.00, 16.00,16.00l 256.00,0.00 l0.00-128.00 l 112.00,0.00 L 448.00,0.00 z" />
|
1103 |
-
<glyph unicode="" d="M 449.735,374.562l-75.173,87.703C 365.751,472.542, 349.533,480.00, 336.00,480.00L 80.00,480.00 C 62.355,480.00, 48.00,465.645, 48.00,448.00l0.00-448.00 c0.00-17.645, 14.354-32.00, 32.00-32.00
|
1104 |
-
l 352.00,0.00 c 17.645,0.00, 32.00,14.355, 32.00,32.00L 464.00,336.00 C 464.00,348.702, 458.00,364.92, 449.735,374.562z M 352.00,459.633c 4.142-2.112, 7.88-4.826, 10.412-7.781
|
1105 |
-
l 75.175-87.704c 2.649-3.092, 5.069-7.469, 6.913-12.148L 352.00,352.00 L 352.00,459.633 z M 448.00,0.00c0.00-8.80-7.20-16.00-16.00-16.00L 80.00-16.00 c-8.80,0.00-16.00,7.20-16.00,16.00L 64.00,448.00
|
1106 |
-
c0.00,8.80, 7.20,16.00, 16.00,16.00l 256.00,0.00 l0.00-128.00 l 112.00,0.00 L 448.00,0.00 zM 319.889,242.054L 341.995,242.054L 316.489,128.965L 283.326,287.97L 230.051,287.97L 191.494,128.965L 162.586,287.97L 106.889,287.97L 163.435,32.029L 217.854,32.029L 256.001,183.383L 290.129,32.029L 340.297,32.029L 405.112,287.97L 319.889,287.97
|
1107 |
-
z" />
|
1108 |
-
<glyph unicode="" d="M 449.735,374.562l-75.173,87.703C 365.751,472.542, 349.533,480.00, 336.00,480.00L 80.00,480.00 C 62.355,480.00, 48.00,465.645, 48.00,448.00l0.00-448.00 c0.00-17.645, 14.354-32.00, 32.00-32.00
|
1109 |
-
l 352.00,0.00 c 17.645,0.00, 32.00,14.355, 32.00,32.00L 464.00,336.00 C 464.00,348.702, 458.00,364.92, 449.735,374.562z M 352.00,459.633c 4.142-2.112, 7.88-4.826, 10.412-7.781
|
1110 |
-
l 75.175-87.704c 2.649-3.092, 5.069-7.469, 6.913-12.148L 352.00,352.00 L 352.00,459.633 z M 448.00,0.00c0.00-8.80-7.20-16.00-16.00-16.00L 80.00-16.00 c-8.80,0.00-16.00,7.20-16.00,16.00L 64.00,448.00
|
1111 |
-
c0.00,8.80, 7.20,16.00, 16.00,16.00l 256.00,0.00 l0.00-128.00 l 112.00,0.00 L 448.00,0.00 zM 371.514,288.00L 303.867,288.00L 256.001,217.484L 208.131,288.00L 140.487,288.00L 221.568,166.768L 130.081,32.00L 261.201,32.00L 261.201,77.788L 230.923,77.788L 256.001,115.285L 311.699,32.00L 381.92,32.00L 290.432,166.768 z" />
|
1112 |
-
<glyph unicode="" d="M 449.735,374.562l-75.173,87.703C 365.751,472.542, 349.533,480.00, 336.00,480.00L 80.00,480.00 C 62.355,480.00, 48.00,465.645, 48.00,448.00l0.00-448.00 c0.00-17.645, 14.354-32.00, 32.00-32.00
|
1113 |
-
l 352.00,0.00 c 17.645,0.00, 32.00,14.355, 32.00,32.00L 464.00,336.00 C 464.00,348.702, 458.00,364.92, 449.735,374.562z M 352.00,459.633c 4.142-2.112, 7.88-4.826, 10.412-7.781
|
1114 |
-
l 75.175-87.704c 2.649-3.092, 5.069-7.469, 6.913-12.148L 352.00,352.00 L 352.00,459.633 z M 448.00,0.00c0.00-8.80-7.20-16.00-16.00-16.00L 80.00-16.00 c-8.80,0.00-16.00,7.20-16.00,16.00L 64.00,448.00
|
1115 |
-
c0.00,8.80, 7.20,16.00, 16.00,16.00l 256.00,0.00 l0.00-128.00 l 112.00,0.00 L 448.00,0.00 zM 303.999,224.00c-44.186,0.00-80.00-35.816-80.00-80.00s 35.815-80.00, 80.00-80.00c 44.184,0.00, 80.00,35.816, 80.00,80.00S 348.183,224.00, 303.999,224.00z M 303.999,144.00
|
1116 |
-
l0.00,64.00 c 35.287,0.00, 64.00-28.71, 64.00-64.00L 303.999,144.00 zM 96.00,224.00L 192.00,224.00L 192.00,192.00L 96.00,192.00zM 96.00,160.00L 192.00,160.00L 192.00,128.00L 96.00,128.00zM 96.00,96.00L 192.00,96.00L 192.00,64.00L 96.00,64.00z" />
|
1117 |
-
<glyph unicode="" d="M 449.735,374.562l-75.173,87.703C 365.751,472.542, 349.533,480.00, 336.00,480.00L 80.00,480.00 C 62.355,480.00, 48.00,465.645, 48.00,448.00l0.00-448.00 c0.00-17.645, 14.354-32.00, 32.00-32.00
|
1118 |
-
l 352.00,0.00 c 17.645,0.00, 32.00,14.355, 32.00,32.00L 464.00,336.00 C 464.00,348.702, 458.00,364.92, 449.735,374.562z M 352.00,459.633c 4.142-2.112, 7.88-4.826, 10.412-7.781
|
1119 |
-
l 75.175-87.704c 2.649-3.092, 5.069-7.469, 6.913-12.148L 352.00,352.00 L 352.00,459.633 z M 448.00,0.00c0.00-8.80-7.20-16.00-16.00-16.00L 80.00-16.00 c-8.80,0.00-16.00,7.20-16.00,16.00L 64.00,448.00
|
1120 |
-
c0.00,8.80, 7.20,16.00, 16.00,16.00l 256.00,0.00 l0.00-128.00 l 112.00,0.00 L 448.00,0.00 zM 224.00,192.00L 192.00,224.00L 96.00,128.00L 192.00,32.00L 224.00,64.00L 160.00,128.00 zM 288.00,64.00L 320.00,32.00L 416.00,128.00L 320.00,224.00L 288.00,192.00L 352.00,128.00 z" />
|
1121 |
-
<glyph unicode="" d="M 449.735,374.562l-75.173,87.703C 365.751,472.542, 349.533,480.00, 336.00,480.00L 80.00,480.00 C 62.355,480.00, 48.00,465.645, 48.00,448.00l0.00-448.00 c0.00-17.645, 14.354-32.00, 32.00-32.00
|
1122 |
-
l 352.00,0.00 c 17.645,0.00, 32.00,14.355, 32.00,32.00L 464.00,336.00 C 464.00,348.702, 458.00,364.92, 449.735,374.562z M 352.00,459.633c 4.142-2.112, 7.88-4.826, 10.412-7.781
|
1123 |
-
l 75.175-87.704c 2.649-3.092, 5.069-7.469, 6.913-12.148L 352.00,352.00 L 352.00,459.633 z M 448.00,0.00c0.00-8.80-7.20-16.00-16.00-16.00L 80.00-16.00 c-8.80,0.00-16.00,7.20-16.00,16.00L 64.00,448.00
|
1124 |
-
c0.00,8.80, 7.20,16.00, 16.00,16.00l 256.00,0.00 l0.00-128.00 l 112.00,0.00 L 448.00,0.00 zM 192.00,192.00l0.00,64.00 c0.00,8.477, 3.348,16.493, 9.427,22.573C 207.507,284.652, 215.523,288.00, 224.00,288.00l0.00,32.00 c-35.20,0.00-64.00-28.80-64.00-64.00l0.00-48.00
|
1125 |
-
c0.00-8.837-7.164-16.00-16.00-16.00l-16.00,0.00 l0.00-32.00 l 16.00,0.00 c 8.837,0.00, 16.00-7.163, 16.00-16.00l0.00-48.00 c0.00-35.20, 28.80-64.00, 64.00-64.00l0.00,32.00 c-8.477,0.00-16.494,3.348-22.573,9.428
|
1126 |
-
C 195.348,79.507, 192.00,87.523, 192.00,96.00l0.00,64.00 c0.00,8.837-7.164,16.00-16.00,16.00C 184.837,176.00, 192.00,183.163, 192.00,192.00zM 320.00,160.00l0.00-64.00 c0.00-8.477-3.348-16.493-9.427-22.572C 304.494,67.348, 296.478,64.00, 288.00,64.00l0.00-32.00 c 35.201,0.00, 64.00,28.80, 64.00,64.00l0.00,48.00
|
1127 |
-
c0.00,8.837, 7.164,16.00, 16.00,16.00l 16.00,0.00 l0.00,32.00 l-16.00,0.00 c-8.836,0.00-16.00,7.163-16.00,16.00l0.00,48.00 c0.00,35.20-28.799,64.00-64.00,64.00l0.00-32.00 c 8.478,0.00, 16.494-3.348, 22.573-9.428
|
1128 |
-
C 316.653,272.493, 320.00,264.477, 320.00,256.00l0.00-64.00 c0.00-8.837, 7.164-16.00, 16.00-16.00C 327.164,176.00, 320.00,168.837, 320.00,160.00z" />
|
1129 |
-
<glyph unicode="" d="M 30.269,480.00l 41.072-460.815L 255.719-32.00l 184.862,51.262L 481.731,480.00L 30.269,480.00 z M 392.315,329.286l-0.195,0.00 L 176.045,329.286 l 5.151-57.875
|
1130 |
-
L 387.18,271.411 l-15.521-173.505L 255.99,65.818l-0.115-0.039l-0.077,0.00 l-0.061,0.00 l-115.786,32.127l-7.915,88.756l 56.747,0.00 l 4.024-45.116
|
1131 |
-
l 62.931-16.958l 0.139,0.039l 62.967,16.996l 6.535,73.275L 129.509,214.898 L 114.262,385.798l 283.107,0.00 L 392.315,329.286z" />
|
1132 |
-
<glyph unicode="" d="M 30.269,480.00l 41.072-460.815L 255.719-32.00l 184.862,51.262L 481.731,480.00L 30.269,480.00 z M 405.381,48.588L 256.768,7.40l0.00-0.233
|
1133 |
-
l-0.388,0.117l-0.391-0.117L 255.989,7.40 l-148.611,41.188L 72.257,442.331l 368.248,0.00 L 405.381,48.588zM 325.377,214.898L 318.842,141.622L 255.874,124.626L 255.737,124.587L 192.806,141.545L 188.781,186.662L 132.036,186.662L 139.951,97.906L 255.737,65.779L 255.797,65.779L 255.874,65.779L 255.989,65.818L 371.66,97.906L 387.18,271.412L 181.197,271.412L 176.046,329.286L 392.117,329.286L 392.313,329.286L 397.369,385.799L 114.26,385.799L 129.509,214.898 z" />
|
1134 |
-
<glyph unicode="" d="M 76.194,455.739L 59.014,369.776L 408.888,369.776L 397.946,314.249L 47.852,314.249L 30.906,228.30L 380.748,228.30L 361.239,130.268L 220.233,83.557L 98.033,130.268L 106.397,172.789L 20.448,172.789L0.00,69.613L 202.113-7.739L 435.116,69.613L 512.00,455.739 z" />
|
1135 |
-
<glyph unicode="" d="M 129.772,224.001A59.223,59.223 4860.00 1,0 248.218,224.001A59.223,59.223 4860.00 1,0 129.772,224.001zM 256.002,480.00C 114.615,480.00,0.00,365.384,0.00,224.00s 114.613-256.00, 256.002-256.00C 397.384-32.00, 512.00,82.615, 512.00,224.00
|
1136 |
-
C 512.00,365.384, 397.385,480.00, 256.002,480.00z M 189.698,0.359C 112.72,45.146, 60.964,128.521, 60.964,224.00
|
1137 |
-
c0.00,95.479, 51.756,178.854, 128.731,223.641C 266.70,402.86, 318.49,319.497, 318.49,224.00C 318.49,128.506, 266.70,45.141, 189.698,0.359z" />
|
1138 |
-
<glyph unicode="" d="M 512.00,192.00L 416.00,288.00L 416.00,384.00L 352.00,384.00L 352.00,352.00L 256.00,448.00L0.00,192.00L 64.00,192.00L 64.00,0.00L 224.00,0.00L 224.00,128.00L 288.00,128.00L 288.00,0.00L 448.00,0.00L 448.00,192.00 z" />
|
1139 |
-
<glyph unicode="" d="M 383.936,288.00L 383.936,352.00 C 383.936,440.368, 320.00,480.00, 256.00,480.00L 127.936,480.00 C 64.00,480.00,0.00,446.00,0.00,352.00c0.00-92.00, 64.00-128.00, 127.936-128.00l 14.88,0.00
|
1140 |
-
C 133.888,206.672, 128.176,186.08, 128.00,161.088l0.00-66.336 C 128.672,24.656, 185.728-32.00, 256.00-32.00c0.00,35.376, 28.688,64.00, 64.00,64.00l 63.936,0.00 C 448.00,32.00, 512.00,68.00, 512.00,160.00
|
1141 |
-
C 512.00,254.00, 448.00,288.00, 383.936,288.00z M 127.936,288.00C 64.00,288.00, 64.00,336.192, 64.00,352.00c0.00,19.184,0.00,64.00, 63.936,64.00L 256.00,416.00 c 23.936,0.00, 64.00-8.32, 64.00-64.00l0.00-64.00
|
1142 |
-
c0.00-20.912-10.064-39.536-25.744-51.216C 270.88,267.872, 233.744,288.00, 192.00,288.00L 127.936,288.00 z M 383.936,96.00L 320.00,96.00 c-41.808,0.00-79.008-20.128-102.368-51.184
|
1143 |
-
C 202.064,56.496, 192.00,75.12, 192.00,96.00l0.00,64.00 c0.00,29.28, 14.56,47.056, 29.056,56.192C 241.568,205.504, 256.00,184.688, 256.00,160.00c 47.296,0.00, 88.096,25.92, 110.304,64.032
|
1144 |
-
L 383.936,224.00C 448.00,224.00, 448.00,179.152, 448.00,160.00C 448.00,144.16, 448.00,96.00, 383.936,96.00z" />
|
1145 |
-
<glyph unicode="" d="M 415.632,284.592c-0.432-22.192-5.376-43.12-14.128-62.224C 447.632,214.688, 448.00,177.12, 448.00,160.00
|
1146 |
-
c0.00-15.872,0.00-64.00-63.936-64.00L 320.00,96.00 c-41.68,0.00-79.008-20.128-102.368-51.248C 202.128,56.496, 192.00,75.12, 192.00,96.00l0.00,64.00 c0.00,12.624, 2.256,22.624, 5.744,30.848
|
1147 |
-
C 195.872,191.184, 194.00,192.00, 192.00,192.00L 131.248,192.00 c-2.064-9.904-3.184-20.496-3.184-32.00l0.00-64.00 c0.00-70.688, 57.248-128.00, 127.936-128.00c0.00,35.376, 28.624,64.00, 64.00,64.00l 64.064,0.00
|
1148 |
-
C 448.00,32.00, 512.00,68.00, 512.00,160.00C 512.00,238.288, 467.504,274.56, 415.632,284.592zM 256.00,416.00c 23.872,0.00, 64.00-8.32, 64.00-64.00l0.00-64.00 c0.00-20.944-10.128-39.536-25.632-51.216C 271.008,267.84, 233.744,288.00, 192.00,288.00L 128.064,288.00
|
1149 |
-
C 64.00,288.00, 64.00,336.16, 64.00,352.00c0.00,19.12,0.00,64.00, 64.064,64.00L 256.00,416.00 M 256.00,480.00L 128.064,480.00 C 64.00,480.00,0.00,446.00,0.00,352.00c0.00-92.00, 64.00-128.00, 128.064-128.00L 192.00,224.00 c 35.376,0.00, 64.00-28.688, 64.00-64.00
|
1150 |
-
c 70.688,0.00, 128.064,57.312, 128.064,128.00L 384.064,352.00 C 384.064,440.336, 320.00,480.00, 256.00,480.00L 256.00,480.00z" />
|
1151 |
-
<glyph unicode="" d="M 256.00,160.00c 70.688,0.00, 127.936,57.312, 127.936,128.00L 383.936,352.00 C 383.936,440.336, 320.00,480.00, 256.00,480.00L 127.936,480.00 C 64.00,480.00,0.00,446.00,0.00,352.00c0.00-92.00, 64.00-128.00, 127.936-128.00L 192.00,224.00
|
1152 |
-
C 227.312,224.00, 256.00,195.312, 256.00,160.00zM 415.68,284.592C 413.808,198.00, 343.008,128.00, 256.00,128.00l-32.00,0.00 l0.00,32.00 c0.00,17.664-14.368,32.00-32.00,32.00L 131.184,192.00
|
1153 |
-
C 129.264,182.448, 128.08,172.224, 128.00,161.184l0.00-66.416 C 128.672,24.656, 185.728-32.00, 256.00-32.00c0.00,35.376, 28.688,64.00, 64.00,64.00l 63.936,0.00 C 448.00,32.00, 512.00,68.00, 512.00,160.00
|
1154 |
-
C 512.00,238.288, 467.44,274.56, 415.68,284.592z" />
|
1155 |
-
<glyph unicode="" d="M 256.032,352.00C 433.184,352.00, 448.00,285.936, 448.00,224.00c0.00-21.504-5.68-44.88-11.936-64.00l-212.00,0.00 c-75.248,0.00-107.808-3.12-144.00-28.128
|
1156 |
-
c-15.008,41.12-24.624,96.752-6.064,141.44C 95.616,325.504, 156.864,352.00, 256.032,352.00 M 256.032,416.00C-101.904,416.00, 0.176,96.00, 64.096,32.00c 64.00,64.00, 64.00,64.00, 159.936,64.00l 254.96,0.00
|
1157 |
-
c0.00,0.00, 33.008,64.00, 33.008,128.00C 512.00,384.00, 384.048,416.00, 256.032,416.00L 256.032,416.00z" />
|
1158 |
-
<glyph unicode="" d="M 479.008,96.00c0.00,0.00, 33.008,64.00, 33.008,128.00C 512.00,384.00, 384.048,416.00, 256.032,416.00C-101.904,416.00, 0.176,96.00, 64.096,32.00c 64.00,64.00, 64.00,64.00, 159.936,64.00
|
1159 |
-
L 479.008,96.00 z" />
|
1160 |
-
<glyph unicode="" d="M 320.00,384.00c 70.624,0.00, 128.00-57.376, 128.00-128.00s-57.376-128.00-128.00-128.00l-128.00,0.00 c-41.744,0.00-78.944-20.128-102.32-51.248C 74.128,88.496, 64.00,107.12, 64.00,128.00
|
1161 |
-
L 64.00,288.00 c0.00,52.944, 43.12,96.00, 96.00,96.00L 320.00,384.00 M 320.00,448.00L 160.00,448.00 C 71.632,448.00,0.00,376.368,0.00,288.00l0.00-160.00 c0.00-70.688, 57.376-128.00, 128.00-128.00c0.00,35.376, 28.688,64.00, 64.00,64.00l 128.00,0.00 c 106.064,0.00, 192.00,86.00, 192.00,192.00
|
1162 |
-
S 426.064,448.00, 320.00,448.00L 320.00,448.00z" />
|
1163 |
-
<glyph unicode="" d="M0.00,128.00c0.00-70.688, 57.376-128.00, 128.00-128.00c0.00,35.376, 28.688,64.00, 64.00,64.00l 128.00,0.00 c 106.064,0.00, 192.00,86.00, 192.00,192.00S 426.064,448.00, 320.00,448.00L 160.00,448.00
|
1164 |
-
C 71.632,448.00,0.00,376.368,0.00,288.00L0.00,128.00 z" />
|
1165 |
-
<glyph unicode="" d="M 224.00,480.00C 100.32,480.00,0.00,379.68,0.00,256.00c0.00-61.312, 24.752-116.752, 64.688-157.248L 65.056-32.00l 106.192,70.944
|
1166 |
-
C 188.256,34.752, 205.744,32.00, 224.00,32.00c 123.68,0.00, 224.00,100.32, 224.00,224.00C 448.00,379.68, 347.68,480.00, 224.00,480.00z M 224.00,96.00c-11.312,0.00-23.568,1.68-37.44,5.056l-27.248,6.752
|
1167 |
-
l-30.688-20.32l 0.192,37.376l-18.56,18.816C 80.432,173.936, 64.00,213.808, 64.00,256.00C 64.00,344.256, 135.744,416.00, 224.00,416.00c 88.256,0.00, 160.00-71.744, 160.00-160.00
|
1168 |
-
C 384.00,167.744, 312.256,96.00, 224.00,96.00z" horiz-adv-x="448" />
|
1169 |
-
<glyph unicode="" d="M 224.00,480.00C 100.32,480.00,0.00,379.68,0.00,256.00c0.00-61.312, 24.752-116.752, 64.688-157.248L 64.00-32.00l 107.248,70.944
|
1170 |
-
C 188.256,34.752, 205.744,32.00, 224.00,32.00c 123.68,0.00, 224.00,100.32, 224.00,224.00S 347.68,480.00, 224.00,480.00z" horiz-adv-x="448" />
|
1171 |
-
<glyph unicode="" d="M 96.00,288.00L0.00,192.00L 192.00,0.00L 512.00,320.00L 416.00,416.00L 192.00,192.00 z" />
|
1172 |
-
<glyph unicode="" d="M 256.00,480.00C 114.624,480.00,0.00,365.376,0.00,224.00s 114.624-256.00, 256.00-256.00s 256.00,114.624, 256.00,256.00S 397.376,480.00, 256.00,480.00z M 216.32,105.872
|
1173 |
-
L 98.528,223.68l 45.248,45.248l 72.528-72.56l 153.872,153.872l 45.248-45.248L 216.32,105.872z" />
|
1174 |
-
<glyph unicode="" d="M 480.00,89.632L 345.504,224.00L 480.00,358.368L 390.368,448.00L 256.00,313.568L 121.568,448.00L 32.00,358.368L 166.368,224.00L 32.00,89.632L 121.568,0.00L 256.00,134.432L 390.368,0.00 z" />
|
1175 |
-
<glyph unicode="" d="M 256.00,480.00C 114.624,480.00,0.00,365.376,0.00,224.00s 114.624-256.00, 256.00-256.00s 256.00,114.624, 256.00,256.00S 397.376,480.00, 256.00,480.00z M 382.624,142.624
|
1176 |
-
l-45.248-45.248L 256.00,178.752l-81.376-81.376l-45.248,45.248L 210.752,224.00l-81.376,81.376l 45.248,45.248L 256.00,269.248l 81.376,81.376l 45.248-45.248
|
1177 |
-
L 301.248,224.00L 382.624,142.624z" />
|
1178 |
-
<glyph unicode="" d="M 256.00,480.00C 114.624,480.00,0.00,365.376,0.00,224.00s 114.624-256.00, 256.00-256.00s 256.00,114.624, 256.00,256.00S 397.376,480.00, 256.00,480.00z M 256.00,416.00
|
1179 |
-
c 41.44,0.00, 79.568-13.504, 110.944-35.872L 99.808,113.12C 77.44,144.496, 64.00,182.624, 64.00,224.00C 64.00,329.872, 150.128,416.00, 256.00,416.00z M 256.00,32.00
|
1180 |
-
c-41.44,0.00-79.568,13.504-110.944,35.872L 412.192,334.88C 434.56,303.504, 448.00,265.376, 448.00,224.00C 448.00,118.128, 361.872,32.00, 256.00,32.00z" />
|
1181 |
-
<glyph unicode="" d="M 512.00,32.00L 288.00,256.00L 384.00,352.00L0.00,480.00L 128.00,96.064L 224.00,192.064L 448.00-32.00 z" />
|
1182 |
-
<glyph unicode="" d="M0.00,32.00A64.00,64.00 1260.00 1,0 128.00,32A64.00,64.00 1260.00 1,0 0.00,32zM 96.00,480.00l0.00-64.00 c 194.368,0.00, 352.00-157.616, 352.00-352.00l 64.00,0.00 C 512.00,293.728, 325.712,480.00, 96.00,480.00zM 96.368,351.872C 96.24,351.872, 96.128,351.856, 96.00,351.856l0.00-64.00 c 0.128,0.00, 0.24,0.016, 0.368,0.016
|
1183 |
-
c 123.664,0.00, 223.936-100.24, 224.00-223.872l 64.00,0.00 C 384.304,222.992, 255.376,351.872, 96.368,351.872zM 96.368,223.872c-0.128,0.00-0.24-0.016-0.368-0.016l0.00-64.00 c 0.128,0.00, 0.24,0.016, 0.368,0.016
|
1184 |
-
c 52.976,0.00, 95.936-42.928, 96.00-95.872l 64.00,0.00 C 256.304,152.304, 184.688,223.872, 96.368,223.872z" />
|
1185 |
-
<glyph unicode="" d="M 512.00-32.00l-73.12,0.00 C 438.88,210.00, 242.00,406.848,0.00,406.848L0.00,480.00 C 282.256,480.00, 512.00,250.32, 512.00-32.00L 512.00-32.00zM 365.68-32.00l-73.12,0.00 c0.00,161.312-131.312,292.56-292.56,292.56L0.00,333.712 C 201.632,333.712, 365.68,169.632, 365.68-32.00
|
1186 |
-
L 365.68-32.00zM 219.44-32.00L 146.256-32.00 c0.00,80.688-65.568,146.256-146.256,146.256l0.00,73.184 C 120.992,187.44, 219.44,88.992, 219.44-32.00
|
1187 |
-
L 219.44-32.00zM 73.12-32.00c0.00,40.368-32.688,73.12-73.12,73.12L0.00-32.00 L 73.12-32.00 z" />
|
1188 |
-
<glyph unicode="" d="M 505.712,389.712l-80.368-80.368l-84.00,0.00 L 341.344,394.656 l 79.376,79.344C 408.976,477.536, 396.848,480.00, 383.968,480.00
|
1189 |
-
C 313.312,480.00, 256.00,422.656, 256.00,352.00c0.00-19.712, 4.816-38.16, 12.816-54.88L 12.496,40.88C 4.816,33.12,0.00,22.496,0.00,10.624C0.00-12.88, 19.056-32.00, 42.688-32.00
|
1190 |
-
c 11.808,0.00, 22.496,4.752, 30.128,12.496l 256.368,256.288C 345.84,228.848, 364.336,224.00, 383.968,224.00c 70.752,0.00, 128.00,57.344, 128.00,128.00
|
1191 |
-
C 511.968,365.216, 509.472,377.712, 505.712,389.712z" horiz-adv-x="511.9679870605469" />
|
1192 |
-
<glyph unicode="" d="M 193.038,224.00A64.346,64.346 1260.00 1,0 321.729,224A64.346,64.346 1260.00 1,0 193.038,224zM 459.349,383.578c-5.534-4.552-12.258-7.593-19.979-7.593c-17.727,0.00-32.173,14.413-32.173,32.35
|
1193 |
-
c0.00,7.818, 3.137,14.783, 7.786,20.478c-35.696,27.669-78.92,46.297-126.054,52.201C 287.288,464.702, 274.097,451.817, 257.383,451.817
|
1194 |
-
s-30.098,13.03-31.546,29.567C 178.077,475.19, 134.595,456.224, 98.594,427.558c 4.086-5.437, 6.982-11.872, 6.982-19.207c0.00-17.936-14.333-32.35-32.173-32.35
|
1195 |
-
c-7.158,0.00-13.577,2.783-18.918,6.837C 20.864,339.115,0.00,284.919,0.00,225.383c0.00-142.896, 115.243-258.767, 257.383-258.767s 257.383,115.871, 257.383,258.767
|
1196 |
-
C 514.767,285.482, 493.661,339.919, 459.349,383.578z M 257.383,96.692c-71.07,0.00-128.692,57.622-128.692,128.692c0.00,35.567, 14.397,67.676, 37.707,90.985L 257.383,407.354l 90.856-90.856
|
1197 |
-
C 371.63,293.188, 386.075,260.951, 386.075,225.383C 386.075,154.249, 328.453,96.692, 257.383,96.692z" horiz-adv-x="514.7669067382812" />
|
1198 |
-
<glyph unicode="" d="M 384.00,416.00L 384.00,480.00L 320.00,480.00L 320.00,416.00L 192.00,416.00L 192.00,480.00L 128.00,480.00L 128.00,416.00L0.00,416.00L0.00,352.00L 512.00,352.00L 512.00,416.00 zM 64.00,160.00L 448.00,160.00L 448.00,96.00L 64.00,96.00zM 64.00,288.00L 448.00,288.00L 448.00,224.00L 64.00,224.00zM 64.00-32.00L 384.00-32.00L 448.00,32.00L 64.00,32.00 z" />
|
1199 |
-
<glyph unicode="" d="M 512.00-32.00L0.00-32.00L0.00,416.00L 64.00,416.00L 64.00,32.00L 448.00,32.00L 448.00,416.00L 512.00,416.00 zM 96.00,288.00L 160.00,288.00L 160.00,224.00L 96.00,224.00zM 224.00,288.00L 288.00,288.00L 288.00,224.00L 224.00,224.00zM 352.00,288.00L 416.00,288.00L 416.00,224.00L 352.00,224.00zM 96.00,160.00L 160.00,160.00L 160.00,96.00L 96.00,96.00zM 224.00,160.00L 288.00,160.00L 288.00,96.00L 224.00,96.00zM 352.00,96.00L 352.00,160.00L 416.00,160.00 zM 128.00,384.00L 128.00,448.00 c0.00,17.68, 14.32,32.00, 32.00,32.00s 32.00-14.32, 32.00-32.00l0.00-64.00 c0.00-17.68-14.32-32.00-32.00-32.00S 128.00,366.32, 128.00,384.00zM 320.00,384.00L 320.00,448.00 c0.00,17.68, 14.32,32.00, 32.00,32.00s 32.00-14.32, 32.00-32.00l0.00-64.00 c0.00-17.68-14.32-32.00-32.00-32.00S 320.00,366.32, 320.00,384.00z" />
|
1200 |
-
<glyph unicode="" d="M 416.00,416.00l0.00-32.752 c0.00-35.376-28.624-64.00-64.00-64.00s-64.00,28.624-64.00,64.00L 288.00,416.00 l-64.00,0.00 l0.00-32.752 c0.00-35.376-28.624-64.00-64.00-64.00s-64.00,28.624-64.00,64.00L 96.00,416.00 L0.00,416.00 l0.00-448.00 l 512.00,0.00 L 512.00,416.00
|
1201 |
-
L 416.00,416.00 z M 160.00,32.00L 96.00,32.00 l0.00,64.00 l 64.00,0.00 L 160.00,32.00 z M 160.00,160.00L 96.00,160.00 l0.00,64.00 l 64.00,0.00 L 160.00,160.00 z M 288.00,32.00l-64.00,0.00 l0.00,64.00 l 64.00,0.00 L 288.00,32.00 z M 288.00,160.00l-64.00,0.00 l0.00,64.00 l 64.00,0.00 L 288.00,160.00 z M 352.00,32.00l0.00,64.00 l 64.00,0.00 L 352.00,32.00z M 416.00,160.00l-64.00,0.00 l0.00,64.00 l 64.00,0.00 L 416.00,160.00 zM 128.00,384.00L 128.00,448.00 c0.00,17.68, 14.32,32.00, 32.00,32.00s 32.00-14.32, 32.00-32.00l0.00-64.00 c0.00-17.68-14.32-32.00-32.00-32.00S 128.00,366.32, 128.00,384.00zM 320.00,384.00L 320.00,448.00 c0.00,17.68, 14.32,32.00, 32.00,32.00s 32.00-14.32, 32.00-32.00l0.00-64.00 c0.00-17.68-14.32-32.00-32.00-32.00S 320.00,366.32, 320.00,384.00z" />
|
1202 |
-
<glyph unicode="" d="M 447.968,96.00c-15.504,0.00-29.248-6.256-40.368-15.44l-97.536,69.632C 316.256,162.944, 320.00,176.944, 320.00,192.00
|
1203 |
-
c0.00,20.688-6.752,39.808-17.872,55.44l 114.096,114.192C 425.712,356.064, 436.224,352.00, 447.968,352.00c 35.376,0.00, 64.00,28.624, 64.00,64.00s-28.624,64.00-64.00,64.00s-64.00-28.624-64.00-64.00
|
1204 |
-
c0.00-11.808, 4.128-22.256, 9.632-31.744l-114.096-114.192C 263.744,281.312, 244.752,288.00, 224.00,288.00c-36.624,0.00-68.128-20.816-84.32-51.056l-77.056,25.744
|
1205 |
-
C 59.504,277.056, 47.312,288.00, 32.00,288.00c-17.68,0.00-32.00-14.32-32.00-32.00s 14.32-32.00, 32.00-32.00c 8.064,0.00, 15.248,3.248, 20.88,8.192l 76.624-25.568
|
1206 |
-
C 128.752,201.808, 128.00,196.992, 128.00,192.00c0.00-52.992, 43.008-96.00, 96.00-96.00c 26.368,0.00, 50.32,10.688, 67.68,27.936l 96.912-69.184
|
1207 |
-
c-2.752-7.12-4.624-14.688-4.624-22.752c0.00-35.312, 28.624-64.00, 64.00-64.00s 64.00,28.688, 64.00,64.00S 483.344,96.00, 447.968,96.00z" horiz-adv-x="511.9679870605469" />
|
1208 |
-
<glyph unicode="" d="M 255.936,232.688L 512.00,353.312L 512.00,416.00L0.00,416.00L0.00,353.504 zM 256.064,161.936L0.00,282.88L0.00,32.00L 512.00,32.00L 512.00,282.496 z" />
|
1209 |
-
<glyph unicode="" d="M 369.808,384.00c 39.312,0.00, 71.872-29.12, 77.376-67.008L 256.064,97.504L 64.816,316.992C 70.32,354.88, 102.88,384.00, 142.192,384.00
|
1210 |
-
c 32.256,0.00, 61.68-34.624, 61.68-34.624L 256.00,294.00l 52.128,55.376C 308.128,349.376, 337.568,384.00, 369.808,384.00 M 369.808,448.00
|
1211 |
-
c-47.744,0.00-88.00-25.248-113.808-61.504C 230.192,422.752, 189.936,448.00, 142.192,448.00C 63.744,448.00,0.00,384.128,0.00,305.744l0.00-11.744 L 256.128,0.00L 512.00,294.00l0.00,11.744
|
1212 |
-
C 512.00,384.128, 448.256,448.00, 369.808,448.00L 369.808,448.00z" />
|
1213 |
-
<glyph unicode="" d="M 256.00,386.496C 230.192,422.752, 189.936,448.00, 142.192,448.00C 63.744,448.00,0.00,384.128,0.00,305.744l0.00-11.744 L 256.128,0.00L 512.00,294.00l0.00,11.744
|
1214 |
-
C 512.00,384.128, 448.256,448.00, 369.808,448.00C 322.064,448.00, 281.808,422.752, 256.00,386.496z" />
|
1215 |
-
<glyph unicode="" d="M 447.632,352.00l-63.184,0.00 L 448.00,415.744L 385.184,480.00l-89.056,0.00 l 63.808-63.744L 294.56,352.00l-75.568,0.00 l 64.944,63.744L 219.744,480.00L 129.248,480.00
|
1216 |
-
l 63.744-63.744L 127.632,352.00L 63.504,352.00 l 64.992,63.744L 64.256,480.00L0.00,480.00 l0.00-512.00 l 512.00,0.00 L 512.00,480.00 l-62.752,0.00 L 512.00,416.00L 447.632,352.00z M 448.00,32.00L 64.00,32.00 l0.00,64.00 l 384.00,0.00 L 448.00,32.00 z M 448.00,160.00L 64.00,160.00 l0.00,64.00 l 384.00,0.00 L 448.00,160.00 z" />
|
1217 |
-
<glyph unicode="" d="M 224.00,480.00L0.00,480.00 l0.00-512.00 l 384.00,0.00 L 384.00,320.032 L 224.00,480.00z M 64.00,32.00L 64.00,416.00 l 128.00,0.00 l0.00-128.00 l 128.00,0.00 l0.00-256.00 L 64.00,32.00 z" horiz-adv-x="384" />
|
1218 |
-
<glyph unicode="" d="M 224.00,480.00L0.00,480.00 l0.00-512.00 l 384.00,0.00 L 384.00,320.032 L 224.00,480.00z M 190.688,288.00L 190.688,416.00 l 128.00-128.00L 190.688,288.00 z" horiz-adv-x="384" />
|
1219 |
-
<glyph unicode="" d="M 352.256,480.00L0.00,480.00 l0.00-511.008 l 128.816,105.248L 257.12-32.00l 128.192,106.128L 512.00-31.744L 512.00,320.00 L 352.256,480.00z M 448.32,96.992
|
1220 |
-
l-63.248,51.632l-127.936-105.872l-127.68,105.744l-65.376-51.504c0.00,0.00,0.00,277.744,0.00,320.00c 33.632,0.00, 124.944,0.00, 192.128,0.00l0.00-192.00 L 448.32,224.992
|
1221 |
-
C 448.32,181.312, 448.32,96.992, 448.32,96.992z M 320.256,288.992c0.00,24.688,0.00,94.624,0.00,128.00c 25.872-25.872, 102.432-102.368, 128.064-128.00
|
1222 |
-
C 415.568,288.992, 345.12,288.992, 320.256,288.992z" />
|
1223 |
-
<glyph unicode="" d="M 345.744,480.00L0.00,480.00 l0.00-512.00 l 127.632,106.256L 255.872-32.00l 128.064,106.128L 512.00-32.00L 512.00,315.184 L 345.744,480.00z M 288.00,256.00L 288.00,416.00 l 160.00-160.00L 288.00,256.00 z" />
|
1224 |
-
<glyph unicode="" d="M 512.00,288.00L 320.00,288.00L 320.00,480.00L 192.00,480.00L 192.00,288.00L0.00,288.00L0.00,160.00L 192.00,160.00L 192.00-32.00L 320.00-32.00L 320.00,160.00L 512.00,160.00 z" />
|
1225 |
-
<glyph unicode="" d="M 256.00,480.00C 114.624,480.00,0.00,365.376,0.00,224.00s 114.624-256.00, 256.00-256.00s 256.00,114.624, 256.00,256.00S 397.376,480.00, 256.00,480.00z M 384.00,192.00l-96.00,0.00 l0.00-96.00 l-64.00,0.00 l0.00,96.00 L 128.00,192.00 l0.00,64.00 l 96.00,0.00
|
1226 |
-
L 224.00,352.00 l 64.00,0.00 l0.00-96.00 l 96.00,0.00 L 384.00,192.00 z" />
|
1227 |
-
<glyph unicode="" d="M0.00,288.00L 512.00,288.00L 512.00,160.00L0.00,160.00z" />
|
1228 |
-
<glyph unicode="" d="M 256.00,480.00C 114.624,480.00,0.00,365.376,0.00,224.00s 114.624-256.00, 256.00-256.00s 256.00,114.624, 256.00,256.00S 397.376,480.00, 256.00,480.00z M 384.00,192.00L 128.00,192.00 l0.00,64.00 l 256.00,0.00 L 384.00,192.00 z" />
|
1229 |
-
<glyph unicode="" d="M 512.00,352.00c0.00,70.656-57.376,128.00-128.00,128.00c-47.744,0.00-88.992-26.528-111.008-65.376c0.00,0.032, 0.064,0.064, 0.064,0.096
|
1230 |
-
c-5.872,0.56-11.568,1.776-17.568,1.776c-106.064,0.00-192.00-85.936-192.00-192.00c0.00-40.432, 12.624-77.872, 33.936-108.752L0.00-32.00l 148.624,96.992
|
1231 |
-
c 30.56-20.496, 67.312-32.496, 106.88-32.496c 106.064,0.00, 192.00,85.936, 192.00,192.00c0.00,5.536-1.12,10.72-1.632,16.128C 485.12,262.496, 512.00,303.904, 512.00,352.00z
|
1232 |
-
M 255.504,96.496c-70.624,0.00-128.00,57.376-128.00,128.00c0.00,70.592, 57.376,128.00, 128.00,128.00c 0.192,0.00, 0.368-0.064, 0.496-0.064c0.00,0.128, 0.064,0.224, 0.064,0.32
|
1233 |
-
C 256.064,352.496, 256.00,352.256, 256.00,352.00c0.00-11.12, 1.872-21.68, 4.496-31.968l-50.752-50.784c-24.992-24.992-24.992-65.504,0.00-90.496s 65.504-24.992, 90.496,0.00
|
1234 |
-
l 50.256,50.256c 10.56-2.88, 21.504-4.88, 32.944-4.944C 383.184,153.632, 325.936,96.496, 255.504,96.496z M 384.00,288.00c-35.248,0.00-64.00,28.72-64.00,64.00
|
1235 |
-
s 28.752,64.00, 64.00,64.00s 64.00-28.72, 64.00-64.00S 419.248,288.00, 384.00,288.00z" />
|
1236 |
-
<glyph unicode="" d="M 502.624,470.624c-12.496,12.496-32.944,12.496-45.44,0.00l-65.12-65.184C 365.376,423.184, 334.752,432.00, 304.00,432.00
|
1237 |
-
c-40.944,0.00-81.872-15.632-113.12-46.88l-96.00-96.00c-54.752-54.688-61.504-139.248-20.368-201.312l-65.12-65.184c-12.496-12.496-12.496-32.752,0.00-45.248
|
1238 |
-
C 15.632-28.88, 23.808-32.00, 32.00-32.00s 16.368,3.12, 22.624,9.376l 65.12,65.184C 146.432,24.816, 177.248,16.00, 208.00,16.00c 40.944,0.00, 81.872,15.632, 113.12,46.88
|
1239 |
-
l 95.808,96.00c 54.752,54.688, 61.504,139.248, 20.368,201.312l 65.312,65.184C 515.12,437.872, 515.12,458.128, 502.624,470.624z M 399.808,272.00
|
1240 |
-
c0.00-25.632-10.00-49.744-28.128-67.872l-95.808-96.00C 257.744,90.00, 233.632,80.00, 208.00,80.00c-14.496,0.00-28.368,3.568-41.12,9.632l 47.744,47.744
|
1241 |
-
c 12.496,12.496, 12.496,32.752,0.00,45.248s-32.752,12.496-45.248,0.00L 121.632,134.88C 115.504,147.568, 112.00,161.44, 112.00,176.00c0.00,25.632, 10.00,49.744, 28.128,67.872
|
1242 |
-
l 96.00,96.00C 254.256,358.00, 278.368,368.00, 304.00,368.00c 14.496,0.00, 28.32-3.568, 41.056-9.632l-48.688-48.752c-12.496-12.496-12.496-32.752,0.00-45.248
|
1243 |
-
c 6.256-6.256, 14.432-9.376, 22.624-9.376c 8.128,0.00, 16.32,3.12, 22.56,9.376l 48.624,48.752C 396.32,300.432, 399.808,286.56, 399.808,272.00z" />
|
1244 |
-
<glyph unicode="" d="M 512.00,480.00L 128.00,224.00L 224.00,160.00L0.00-32.00L 384.00,160.00L 288.00,224.00 z" />
|
1245 |
-
<glyph unicode="" d="M 288.00,160.00L 288.00,64.00L 352.00,64.00L 256.00-32.00L 160.00,64.00L 224.00,64.00L 224.00,160.00 zM 224.00,288.00L 224.00,384.00L 160.00,384.00L 256.00,480.00L 352.00,384.00L 288.00,384.00L 288.00,288.00 zM 192.00,192.00L 96.00,192.00L 96.00,128.00L0.00,224.00L 96.00,320.00L 96.00,256.00L 192.00,256.00 zM 320.00,256.00L 416.00,256.00L 416.00,320.00L 512.00,224.00L 416.00,128.00L 416.00,192.00L 320.00,192.00 z" />
|
1246 |
-
<glyph unicode="" d="M 256.00,128.00L 288.00,160.00L 288.00,64.00L 352.00,64.00L 256.00-32.00L 160.00,64.00L 224.00,64.00L 224.00,160.00 zM 256.00,319.008L 224.00,288.00L 224.00,384.00L 160.00,384.00L 256.00,480.00L 352.00,384.00L 288.00,384.00L 288.00,288.00 zM 160.00,224.00L 192.00,192.00L 96.00,192.00L 96.00,128.00L0.00,224.00L 96.00,320.00L 96.00,256.00L 192.00,256.00 zM 351.008,224.00L 320.00,256.00L 416.00,256.00L 416.00,320.00L 512.00,224.00L 416.00,128.00L 416.00,192.00L 320.00,192.00 z" />
|
1247 |
-
<glyph unicode="" d="M 256.00,480.00C 114.624,480.00,0.00,365.376,0.00,224.00s 114.624-256.00, 256.00-256.00s 256.00,114.624, 256.00,256.00S 397.376,480.00, 256.00,480.00z M 352.00,160.00l0.00,32.00 l-64.00,0.00 l0.00-64.00 l 32.00,0.00 l-64.00-64.00
|
1248 |
-
l-64.00,64.00l 32.00,0.00 l0.00,64.00 l-64.00,0.00 l0.00-32.00 l-64.00,64.00l 64.00,64.00l0.00-32.00 l 64.00,0.00 l0.00,64.00 l-32.00,0.00 l 64.00,64.00l 64.00-64.00l-32.00,0.00 l0.00-64.00 l 64.00,0.00 l0.00,32.00 l 64.00-64.00L 352.00,160.00z" />
|
1249 |
-
<glyph unicode="" d="M 288.00,448.00c0.00,17.60-14.40,32.00-32.00,32.00s-32.00-14.40-32.00-32.00l0.00-288.00 l-32.00,0.00 l0.00-64.00 l 32.00,0.00 l0.00-96.00 c0.00-17.60, 14.40-32.00, 32.00-32.00s 32.00,14.40, 32.00,32.00l0.00,96.00 l 32.00,0.00 l0.00,64.00 l-32.00,0.00 L 288.00,448.00 zM 96.00,448.00c0.00,17.60-14.40,32.00-32.00,32.00S 32.00,465.60, 32.00,448.00l0.00-160.00 L0.00,288.00 l0.00-64.00 l 32.00,0.00 l0.00-224.00 c0.00-17.60, 14.40-32.00, 32.00-32.00s 32.00,14.40, 32.00,32.00L 96.00,224.00 l 32.00,0.00 l0.00,64.00 L 96.00,288.00 L 96.00,448.00 zM 512.00,352.00l-32.00,0.00 L 480.00,448.00 c0.00,17.60-14.40,32.00-32.00,32.00s-32.00-14.40-32.00-32.00l0.00-96.00 l-32.00,0.00 l0.00-64.00 l 32.00,0.00 l0.00-288.00 c0.00-17.60, 14.40-32.00, 32.00-32.00s 32.00,14.40, 32.00,32.00L 480.00,288.00 l 32.00,0.00 L 512.00,352.00 z" />
|
1250 |
-
<glyph unicode="" d="M 128.00,160.00c-22.56,0.00-43.872,4.624-64.00,11.776L 64.00-32.00 l 64.00,64.00l 64.00-64.00L 192.00,171.776 C 171.872,164.624, 150.56,160.00, 128.00,160.00zM0.00,352.00A128.00,128.00 1260.00 1,0 256.00,352A128.00,128.00 1260.00 1,0 0.00,352z" horiz-adv-x="256" />
|
1251 |
-
<glyph unicode="" d="M 128.00,160.00c-22.56,0.00-43.872,4.624-64.00,11.744L 64.00-32.00 l 64.00,64.00l 64.00-64.00L 192.00,171.744 C 171.872,164.624, 150.56,160.00, 128.00,160.00zM 128.00,480.00C 57.312,480.00,0.00,422.688,0.00,352.00s 57.312-128.00, 128.00-128.00s 128.00,57.312, 128.00,128.00S 198.688,480.00, 128.00,480.00z M 128.00,288.00c-35.376,0.00-64.00,28.656-64.00,64.00
|
1252 |
-
s 28.624,64.00, 64.00,64.00s 64.00-28.656, 64.00-64.00S 163.376,288.00, 128.00,288.00z" horiz-adv-x="256" />
|
1253 |
-
<glyph unicode="" d="M 322.128,480.00C 217.504,480.00, 132.368,394.88, 132.368,290.192c0.00-25.056, 5.12-48.816, 13.936-70.688L0.00,73.184L 105.12-32.00l 146.368,146.432
|
1254 |
-
c 21.872-8.88, 45.632-14.00, 70.624-14.00c 104.688,0.00, 189.872,85.12, 189.872,189.728C 512.00,394.88, 426.816,480.00, 322.128,480.00z M 322.128,164.368
|
1255 |
-
c-69.312,0.00-125.808,56.496-125.808,125.792c0.00,69.376, 56.496,125.872, 125.808,125.872c 69.44,0.00, 125.936-56.496, 125.936-125.872
|
1256 |
-
C 448.064,220.88, 391.568,164.368, 322.128,164.368z" />
|
1257 |
-
<glyph unicode="" d="M 512.00,416.00l-64.00,0.00 l-64.00,0.00 c0.00,35.376-28.624,64.00-64.00,64.00l-128.00,0.00 C 156.624,480.00, 128.00,451.376, 128.00,416.00L 64.00,416.00 L0.00,416.00 l0.00-64.00 l 64.00,0.00 l0.00-288.00 c0.00-52.992, 43.008-96.00, 96.00-96.00l 192.00,0.00
|
1258 |
-
c 52.992,0.00, 96.00,43.008, 96.00,96.00L 448.00,352.00 l 64.00,0.00 L 512.00,416.00 z M 384.00,64.00c0.00-17.632-14.368-32.00-32.00-32.00L 160.00,32.00 c-17.632,0.00-32.00,14.368-32.00,32.00L 128.00,352.00 l 256.00,0.00 L 384.00,64.00 zM 160.00,128.00A32.00,32.00 1260.00 1,0 224.00,128A32.00,32.00 1260.00 1,0 160.00,128zM 160.00,256.00A32.00,32.00 1260.00 1,0 224.00,256A32.00,32.00 1260.00 1,0 160.00,256zM 288.00,128.00A32.00,32.00 1260.00 1,0 352.00,128A32.00,32.00 1260.00 1,0 288.00,128zM 288.00,256.00A32.00,32.00 1260.00 1,0 352.00,256A32.00,32.00 1260.00 1,0 288.00,256z" />
|
1259 |
-
<glyph unicode="" d="M 448.00,416.00l-64.00,0.00 c0.00,35.376-28.624,64.00-64.00,64.00l-128.00,0.00 C 156.624,480.00, 128.00,451.376, 128.00,416.00L 64.00,416.00 L0.00,416.00 l0.00-64.00 l 64.00,0.00 l0.00-288.00 c0.00-52.992, 43.008-96.00, 96.00-96.00l 192.00,0.00
|
1260 |
-
c 52.992,0.00, 96.00,43.008, 96.00,96.00L 448.00,352.00 l 64.00,0.00 L 512.00,416.00 L 448.00,416.00 z M 192.00,96.00c-17.68,0.00-32.00,14.32-32.00,32.00s 14.32,32.00, 32.00,32.00s 32.00-14.32, 32.00-32.00S 209.68,96.00, 192.00,96.00z M 192.00,224.00
|
1261 |
-
c-17.68,0.00-32.00,14.32-32.00,32.00s 14.32,32.00, 32.00,32.00s 32.00-14.32, 32.00-32.00S 209.68,224.00, 192.00,224.00z M 320.00,96.00c-17.68,0.00-32.00,14.32-32.00,32.00s 14.32,32.00, 32.00,32.00s 32.00-14.32, 32.00-32.00
|
1262 |
-
S 337.68,96.00, 320.00,96.00z M 320.00,224.00c-17.68,0.00-32.00,14.32-32.00,32.00s 14.32,32.00, 32.00,32.00s 32.00-14.32, 32.00-32.00S 337.68,224.00, 320.00,224.00z" />
|
1263 |
-
<glyph unicode="" d="M 128.00,336.00A16.00,16.00 1260.00 1,0 160.00,336A16.00,16.00 1260.00 1,0 128.00,336zM 224.00,480.00L 32.00,480.00 C 14.32,480.00,0.00,465.68,0.00,448.00l0.00-352.00 c0.00-70.688, 57.312-128.00, 128.00-128.00s 128.00,57.312, 128.00,128.00L 256.00,448.00 C 256.00,465.68, 241.68,480.00, 224.00,480.00z M 80.00,160.00
|
1264 |
-
c-8.832,0.00-16.00,7.152-16.00,16.00s 7.168,16.00, 16.00,16.00c 8.848,0.00, 16.00-7.152, 16.00-16.00S 88.848,160.00, 80.00,160.00z M 160.00,96.00c-17.68,0.00-32.00,14.32-32.00,32.00s 14.32,32.00, 32.00,32.00s 32.00-14.32, 32.00-32.00
|
1265 |
-
S 177.68,96.00, 160.00,96.00z M 192.00,224.00l-32.00,0.00 c0.00,17.664-14.336,32.00-32.00,32.00s-32.00-14.336-32.00-32.00L 64.00,224.00 L 64.00,416.00 l 128.00,0.00 L 192.00,224.00 z" horiz-adv-x="256" />
|
1266 |
-
<glyph unicode="" d="M 224.00,480.00L 32.00,480.00 C 14.32,480.00,0.00,465.68,0.00,448.00l0.00-352.00 c0.00-70.688, 57.312-128.00, 128.00-128.00s 128.00,57.312, 128.00,128.00L 256.00,448.00 C 256.00,465.68, 241.68,480.00, 224.00,480.00z M 160.00,96.00
|
1267 |
-
c-17.68,0.00-32.00,14.32-32.00,32.00s 14.32,32.00, 32.00,32.00s 32.00-14.32, 32.00-32.00S 177.68,96.00, 160.00,96.00z M 192.00,224.00l-32.00,0.00 c0.00,17.664-14.336,32.00-32.00,32.00s-32.00-14.336-32.00-32.00L 64.00,224.00 L 64.00,416.00 l 128.00,0.00 L 192.00,224.00 z" horiz-adv-x="256" />
|
1268 |
-
<glyph unicode="" d="M 352.00,480.00c-88.368,0.00-160.00-71.632-160.00-160.00c0.00-10.00, 1.184-19.632, 2.944-29.056L0.00,96.00l0.00-128.00 l 192.00,0.00 l0.00,64.00 l 64.00,0.00 l0.00,64.00 l 64.00,0.00 l0.00,64.00 l 2.944,2.944
|
1269 |
-
C 332.368,161.184, 342.00,160.00, 352.00,160.00c 88.368,0.00, 160.00,71.632, 160.00,160.00S 440.368,480.00, 352.00,480.00z M 352.00,224.00c-5.008,0.00-10.496,0.624-17.376,1.872l-33.12,6.128
|
1270 |
-
L 256.00,186.496L 256.00,160.00 l-64.00,0.00 l0.00-64.00 L 128.00,96.00 l0.00-64.00 L 64.00,32.00 l0.00,37.504 l 200.00,200.00l-6.128,33.12C 256.592,309.504, 256.00,315.008, 256.00,320.00c0.00,52.944, 43.056,96.00, 96.00,96.00s 96.00-43.056, 96.00-96.00
|
1271 |
-
S 404.944,224.00, 352.00,224.00zM 320.00,320.00A32.00,32.00 1260.00 1,0 384.00,320A32.00,32.00 1260.00 1,0 320.00,320z" />
|
1272 |
-
<glyph unicode="" d="M 352.00,480.00c-88.368,0.00-160.00-71.632-160.00-160.00c0.00-10.00, 1.184-19.632, 2.944-29.056L0.00,96.00l0.00-128.00 l 192.00,0.00 l0.00,64.00 l 64.00,0.00 l0.00,64.00 l 64.00,0.00 l0.00,64.00
|
1273 |
-
l 2.944,2.944C 332.368,161.184, 342.00,160.00, 352.00,160.00c 88.368,0.00, 160.00,71.632, 160.00,160.00S 440.368,480.00, 352.00,480.00z M 352.128,288.00c-17.68,0.00-32.00,14.32-32.00,32.00s 14.32,32.00, 32.00,32.00
|
1274 |
-
s 32.00-14.32, 32.00-32.00S 369.808,288.00, 352.128,288.00z" />
|
1275 |
-
<glyph unicode="" d="M 512.00,480.00L 128.00,480.00 l0.00-128.00 C 81.504,352.00,0.00,352.00,0.00,352.00l0.00-384.00 l 384.00,0.00 l0.00,128.00 l 128.00,0.00 L 512.00,480.00 z M 320.00,32.00L 64.00,32.00 L 64.00,224.00 l 64.00,0.00 l0.00-128.00 l 192.00,0.00 C 320.00,67.376, 320.00,32.00, 320.00,32.00z M 448.00,160.00L 192.00,160.00 L 192.00,352.00 l 256.00,0.00
|
1276 |
-
L 448.00,160.00 z" />
|
1277 |
-
<glyph unicode="" d="M 160.00,415.872c 52.976,0.00, 96.00-43.184, 96.00-96.256c0.00-30.32-13.808-58.192-37.968-76.368c-36.128-27.312-50.72-57.504-55.744-82.88
|
1278 |
-
L 157.712,160.368 c-5.008,25.376-19.648,55.568-55.744,82.88c-24.128,18.192-38.00,46.064-38.00,76.368C 63.968,372.688, 107.024,415.872, 160.00,415.872 M 160.00,480.00
|
1279 |
-
C 71.632,480.00,0.00,408.192,0.00,319.632C0.00,267.12, 24.72,221.248, 63.504,192.00c 17.84-13.504, 32.56-30.88, 32.56-54.88l0.00-40.88 l 127.904,0.00 L 223.968,137.12
|
1280 |
-
c0.00,24.00, 14.72,41.376, 32.528,54.88C 295.312,221.248, 320.00,267.12, 320.00,319.632C 320.00,408.192, 248.368,480.00, 160.00,480.00L 160.00,480.00zM 96.00,32.00L 224.00,32.00L 224.00-32.00L 96.00-32.00z" horiz-adv-x="320" />
|
1281 |
-
<glyph unicode="" d="M 75.056,42.88C 26.624,91.248,0.00,155.504,0.00,224.00C0.00,365.12, 114.816,480.00, 256.00,480.00l 32.00-32.00l-32.00-32.00C 150.128,416.00, 64.00,329.872, 64.00,224.00
|
1282 |
-
c0.00-51.376, 20.00-99.632, 56.32-135.872l-39.312-5.12L 75.056,42.88L 75.056,42.88zM 256.00-32.00l-32.00,31.872L 256.00,32.00c 105.872,0.00, 192.00,86.128, 192.00,192.00c0.00,51.248-20.00,99.504-56.368,135.808l 39.376,5.184
|
1283 |
-
l 5.872,40.064C 485.312,356.688, 512.00,292.368, 512.00,224.00C 512.00,82.88, 397.12-32.00, 256.00-32.00L 256.00-32.00z" />
|
1284 |
-
<glyph unicode="" d="M 382.128,382.624l-45.12-45.312C 367.248,307.056, 384.00,266.816, 384.00,224.00c0.00-88.256-71.744-160.00-160.00-160.00l0.00,32.00 l-64.00-64.00l 64.00-64.00l0.00,32.00
|
1285 |
-
c 123.504,0.00, 224.00,100.496, 224.00,224.00C 448.00,283.936, 424.624,340.256, 382.128,382.624zM 288.00,416.00l-64.00,64.00l0.00-32.00 C 100.496,448.00,0.00,347.504,0.00,224.00c0.00-59.936, 23.376-116.256, 65.872-158.624l 45.12,45.312
|
1286 |
-
C 80.752,140.944, 64.00,181.184, 64.00,224.00C 64.00,312.256, 135.744,384.00, 224.00,384.00l0.00-32.00 L 288.00,416.00z" horiz-adv-x="448" />
|
1287 |
-
<glyph unicode="" d="M 448.00,192.00c0.00,123.68-100.32,224.00-224.00,224.00C 100.32,416.00,0.00,315.68,0.00,192.00C0.00,280.368, 71.632,352.00, 160.00,352.00s 160.00-71.632, 160.00-160.00l0.00-32.00 l-64.00,0.00 l 128.00-128.00l 128.00,128.00l-64.00,0.00 L 448.00,192.00
|
1288 |
-
z" />
|
1289 |
-
<glyph unicode="" d="M 450.468,420.484c-79.307,79.291-217.666,79.355-296.925,0.00L 63.996,330.873L 63.996,415.988 L0.00,415.988 l0.00-191.988 l 191.988,0.00 l0.00,63.996 l-80.363-0.048l 87.243,87.243
|
1290 |
-
c 55.117,55.181, 151.239,55.181, 206.355-0.064C 432.789,347.56, 447.972,310.939, 447.972,271.949c0.00-39.038-15.183-75.675-42.749-103.322l-48.253-48.237l 45.245-45.229
|
1291 |
-
l 48.253,48.125C 490.097,163.044, 511.968,215.809, 511.968,271.949C 511.968,328.057, 490.097,380.806, 450.468,420.484zM 295.166-32.00L 249.92,13.309L 295.198,58.538L 340.443,13.229z" horiz-adv-x="511.968017578125" />
|
1292 |
-
<glyph unicode="" d="M 384.00,192.00c0.00-70.56-57.376-128.00-128.00-128.00s-128.00,57.44-128.00,128.00s 57.376,128.00, 128.00,128.00l 37.744-0.432l-18.624-18.624l 45.248-45.248L 416.56,352.00
|
1293 |
-
l-96.192,96.00l-45.248-45.248L 294.00,384.00L 256.00,384.00 C 150.00,384.00, 64.00,298.064, 64.00,192.00s 86.00-192.00, 192.00-192.00s 192.00,85.936, 192.00,192.00L 384.00,192.00 z" />
|
1294 |
-
<glyph unicode="" d="M 384.00,192.00c0.00-70.624-57.376-128.00-128.00-128.00s-128.00,57.376-128.00,128.00s 57.376,128.00, 128.00,128.00l 64.00,0.00 l 0.368-64.32L 416.56,352.00l-96.192,96.00l0.00-64.00 L 256.00,384.00
|
1295 |
-
C 150.00,384.00, 64.00,298.00, 64.00,192.00s 86.00-192.00, 192.00-192.00s 192.00,86.00, 192.00,192.00L 384.00,192.00 z" />
|
1296 |
-
<glyph unicode="" d="M 320.00,224.00l0.00-64.00 l 75.808,0.00 l-85.936-85.936c-54.224-54.336-148.944-54.336-203.216,0.00l-45.28-45.184
|
1297 |
-
C 100.592-10.384, 152.816-32.00, 208.32-32.00c 55.536,0.00, 107.632,21.632, 146.80,60.88l 92.88,92.80L 448.00,32.00 l 64.00,0.00 L 512.00,224.00 L 320.00,224.00 zM 192.00,288.00L 116.192,288.00 l 85.936,85.936c 54.224,54.336, 148.944,54.336, 203.216,0.00l 45.28,45.184C 411.408,458.368, 359.184,480.00, 303.664,480.00
|
1298 |
-
c-55.536,0.00-107.632-21.632-146.80-60.88L 64.00,326.32L 64.00,416.00 L0.00,416.00 l0.00-192.00 l 192.00,0.00 L 192.00,288.00 z" />
|
1299 |
-
<glyph unicode="" d="M 192.00,320.00L 128.00,320.00 L 128.00,320.256 C 128.00,337.888, 142.368,352.00, 160.00,352.00l 192.00,0.00 c 17.632,0.00, 32.00-14.368, 32.00-32.00l0.00-32.00 l 64.00,0.00 l0.00,32.00 c0.00,52.944-43.056,96.00-96.00,96.00L 160.00,416.00
|
1300 |
-
c-52.944,0.00-96.00-43.056-96.00-96.00L0.00,320.00 l 96.00-96.00L 192.00,320.00zM 416.00,224.00l-96.00-96.00l 64.00,0.00 l0.00-0.256 C 384.00,110.128, 369.632,96.00, 352.00,96.00L 160.00,96.00 c-17.632,0.00-32.00,14.368-32.00,32.00l0.00,32.00 L 64.00,160.00 l0.00-32.00 c0.00-52.944, 43.056-96.00, 96.00-96.00l 192.00,0.00
|
1301 |
-
c 52.944,0.00, 96.00,43.056, 96.00,96.00l 64.00,0.00 L 416.00,224.00z" />
|
1302 |
-
<glyph unicode="" d="M 192.00,320.00L 128.00,320.00 L 128.00,352.00 c0.00,17.632, 14.368,32.00, 32.00,32.00l 192.00,0.00 c 17.632,0.00, 32.00-14.368, 32.00-32.00l0.00-32.00 l 64.00,0.00 L 448.00,352.00 c0.00,52.944-43.056,96.00-96.00,96.00L 160.00,448.00 C 107.056,448.00, 64.00,404.944, 64.00,352.00
|
1303 |
-
l0.00-32.00 L0.00,320.00 l 96.00-128.00L 192.00,320.00zM 416.00,256.00l-96.00-128.00l 64.00,0.00 l0.00-32.00 c0.00-17.632-14.368-32.00-32.00-32.00L 160.00,64.00 c-17.632,0.00-32.00,14.368-32.00,32.00l0.00,32.00 L 64.00,128.00 l0.00-32.00 c0.00-52.944, 43.056-96.00, 96.00-96.00l 192.00,0.00
|
1304 |
-
c 52.944,0.00, 96.00,43.056, 96.00,96.00l0.00,32.00 l 64.00,0.00 L 416.00,256.00z" />
|
1305 |
-
<glyph unicode="" d="M 448.00,224.00l0.00-32.00 c0.00-17.632-14.368-32.00-32.00-32.00L 191.936,160.00 L 192.00,224.00l-128.00-96.00l 128.00-96.00l-0.064,64.00L 416.00,96.00 c 52.944,0.00, 96.00,43.12, 96.00,96.00l0.00,32.00 L 448.00,224.00 zM 64.00,256.00c0.00,17.68, 14.368,32.00, 32.00,32.00l 224.00,0.00 l0.00-64.00 l 127.872,96.00L 320.00,416.00l0.00-64.00 L 96.00,352.00 c-52.944,0.00-96.00-43.008-96.00-96.00l0.00-32.00 l 64.00,0.00 L 64.00,256.00 z" />
|
1306 |
-
<glyph unicode="" d="M 448.00,192.00c0.00-17.632-14.368-32.00-32.00-32.00L 127.872,160.00 l0.00,64.00 L0.00,128.00l 127.872-96.00l0.00,64.00 L 416.00,96.00 c 52.944,0.00, 96.00,43.12, 96.00,96.00L 448.00,192.00 zM 96.00,288.00l 288.00,0.00 l0.00-64.00 l 128.00,96.00l-128.00,96.00l0.00-64.00 L 96.00,352.00 c-52.944,0.00-96.00-43.008-96.00-96.00l 64.00,0.00 C 64.00,273.632, 78.368,288.00, 96.00,288.00z" />
|
1307 |
-
<glyph unicode="" d="M 511.968,96.00L 127.872,96.00L 127.872,32.00L0.00,128.00L 127.872,224.00L 127.872,160.00L 511.968,160.00 zM0.00,288.00L 383.968,288.00L 383.968,224.00L 511.968,320.00L 383.968,416.00L 383.968,352.00L0.00,352.00 z" horiz-adv-x="511.9679870605469" />
|
1308 |
-
<glyph unicode="" d="M 128.00,160.00L 128.00,64.00L 192.00,64.00L 96.00-32.00L0.00,64.00L 64.00,64.00L 64.00,160.00 zM 64.00,288.00L 64.00,384.00L0.00,384.00L 96.00,480.00L 192.00,384.00L 128.00,384.00L 128.00,288.00 z" horiz-adv-x="192" />
|
1309 |
-
<glyph unicode="" d="M 96.00,128.00L 128.00,160.00L 128.00,64.00L 192.00,64.00L 96.00-32.00L0.00,64.00L 64.00,64.00L 64.00,160.00 zM 96.00,319.008L 64.00,288.00L 64.00,384.00L0.00,384.00L 96.00,480.00L 192.00,384.00L 128.00,384.00L 128.00,288.00 z" horiz-adv-x="192" />
|
1310 |
-
<glyph unicode="" d="M 256.00,480.00C 114.624,480.00,0.00,365.376,0.00,224.00s 114.624-256.00, 256.00-256.00s 256.00,114.624, 256.00,256.00S 397.376,480.00, 256.00,480.00z M 288.00,128.00l 32.00,0.00 l-64.00-64.00l-64.00,64.00l 32.00,0.00 L 224.00,320.00
|
1311 |
-
l-32.00,0.00 l 64.00,64.00l 64.00-64.00l-32.00,0.00 L 288.00,128.00 z" />
|
1312 |
-
<glyph unicode="" d="M 192.00,192.00L 96.00,192.00L 96.00,128.00L0.00,224.00L 96.00,320.00L 96.00,256.00L 192.00,256.00 zM 320.00,256.00L 416.00,256.00L 416.00,320.00L 512.00,224.00L 416.00,128.00L 416.00,192.00L 320.00,192.00 z" />
|
1313 |
-
<glyph unicode="" d="M 160.00,224.00L 192.00,192.00L 96.00,192.00L 96.00,128.00L0.00,224.00L 96.00,320.00L 96.00,256.00L 192.00,256.00 zM 351.008,224.00L 320.00,256.00L 416.00,256.00L 416.00,320.00L 512.00,224.00L 416.00,128.00L 416.00,192.00L 320.00,192.00 z" />
|
1314 |
-
<glyph unicode="" d="M 512.00,224.00c0.00,141.376-114.624,256.00-256.00,256.00S0.00,365.376,0.00,224.00s 114.624-256.00, 256.00-256.00S 512.00,82.624, 512.00,224.00z M 160.00,192.00l0.00-32.00 l-64.00,64.00l 64.00,64.00l0.00-32.00
|
1315 |
-
l 192.00,0.00 l0.00,32.00 l 64.00-64.00l-64.00-64.00l0.00,32.00 L 160.00,192.00 z" />
|
1316 |
-
<glyph unicode="" d="M 512.00,288.00L 256.00,288.00L 352.00,384.00L 256.00,480.00L0.00,224.00L 256.00-32.00L 352.00,64.00L 256.00,160.00L 512.00,160.00 z" />
|
1317 |
-
<glyph unicode="" d="M 512.00,224.00c0.00,141.376-114.624,256.00-256.00,256.00C 114.608,480.00,0.00,365.376,0.00,224.00c0.00-141.392, 114.608-256.00, 256.00-256.00C 397.376-32.00, 512.00,82.608, 512.00,224.00z
|
1318 |
-
M 128.00,224.00l 128.00,128.00l0.00-96.00 l 128.00,0.00 l0.00-64.00 l-128.00,0.00 l0.00-96.00 L 128.00,224.00z" />
|
1319 |
-
<glyph unicode="" d="M 256.00-32.00c 141.376,0.00, 256.00,114.624, 256.00,256.00S 397.376,480.00, 256.00,480.00S0.00,365.376,0.00,224.00S 114.624-32.00, 256.00-32.00z M 160.00,288.00l0.00-32.00 l 256.00,0.00 l0.00-64.00 L 160.00,192.00 l0.00-32.00 l-64.00,64.00
|
1320 |
-
L 160.00,288.00z" />
|
1321 |
-
<glyph unicode="" d="M0.00,160.00L 256.00,160.00L 160.00,64.00L 256.00-32.00L 512.00,224.00L 256.00,480.00L 160.00,384.00L 256.00,288.00L0.00,288.00 z" />
|
1322 |
-
<glyph unicode="" d="M0.00,224.00c0.00-141.376, 114.624-256.00, 256.00-256.00c 141.392,0.00, 256.00,114.624, 256.00,256.00c0.00,141.392-114.608,256.00-256.00,256.00C 114.624,480.00,0.00,365.392,0.00,224.00z M 384.00,224.00
|
1323 |
-
l-128.00-128.00l0.00,96.00 L 128.00,192.00 l0.00,64.00 l 128.00,0.00 L 256.00,352.00 L 384.00,224.00z" />
|
1324 |
-
<glyph unicode="" d="M 256.00,480.00C 114.624,480.00,0.00,365.376,0.00,224.00s 114.624-256.00, 256.00-256.00s 256.00,114.624, 256.00,256.00S 397.376,480.00, 256.00,480.00z M 352.00,160.00l0.00,32.00 L 96.00,192.00 l0.00,64.00 l 256.00,0.00 l0.00,32.00 l 64.00-64.00
|
1325 |
-
L 352.00,160.00z" />
|
1326 |
-
<glyph unicode="" d="M 320.00-32.00L 320.00,224.00L 416.00,128.00L 512.00,224.00L 256.00,480.00L0.00,224.00L 96.00,128.00L 192.00,224.00L 192.00-32.00 z" />
|
1327 |
-
<glyph unicode="" d="M 256.00-32.00c 141.376,0.00, 256.00,114.624, 256.00,256.00c0.00,141.392-114.624,256.00-256.00,256.00C 114.608,480.00,0.00,365.392,0.00,224.00C0.00,82.624, 114.608-32.00, 256.00-32.00z M 256.00,352.00
|
1328 |
-
l 128.00-128.00l-96.00,0.00 l0.00-128.00 l-64.00,0.00 l0.00,128.00 L 128.00,224.00 L 256.00,352.00z" />
|
1329 |
-
<glyph unicode="" d="M0.00,224.00c0.00-141.376, 114.624-256.00, 256.00-256.00s 256.00,114.624, 256.00,256.00S 397.376,480.00, 256.00,480.00S0.00,365.376,0.00,224.00z M 320.00,320.00l-32.00,0.00 l0.00-256.00 l-64.00,0.00 L 224.00,320.00 l-32.00,0.00
|
1330 |
-
l 64.00,64.00L 320.00,320.00z" />
|
1331 |
-
<glyph unicode="" d="M 192.00,480.00L 192.00,224.00L 96.00,320.00L0.00,224.00L 256.00-32.00L 512.00,224.00L 416.00,320.00L 320.00,224.00L 320.00,480.00 z" />
|
1332 |
-
<glyph unicode="" d="M 256.00,480.00C 114.624,480.00,0.00,365.376,0.00,224.00c0.00-141.392, 114.624-256.00, 256.00-256.00c 141.392,0.00, 256.00,114.608, 256.00,256.00C 512.00,365.376, 397.392,480.00, 256.00,480.00z M 256.00,96.00
|
1333 |
-
l-128.00,128.00l 96.00,0.00 L 224.00,352.00 l 64.00,0.00 l0.00-128.00 l 96.00,0.00 L 256.00,96.00z" />
|
1334 |
-
<glyph unicode="" d="M 512.00,224.00c0.00,141.376-114.624,256.00-256.00,256.00S0.00,365.376,0.00,224.00s 114.624-256.00, 256.00-256.00S 512.00,82.624, 512.00,224.00z M 192.00,128.00l 32.00,0.00 L 224.00,384.00 l 64.00,0.00 l0.00-256.00 l 32.00,0.00
|
1335 |
-
l-64.00-64.00L 192.00,128.00z" />
|
1336 |
-
<glyph unicode="" d="M 256.00,480.00C 114.624,480.00,0.00,365.376,0.00,224.00s 114.624-256.00, 256.00-256.00s 256.00,114.624, 256.00,256.00S 397.376,480.00, 256.00,480.00z M 256.496,161.056
|
1337 |
-
c-35.008,0.00-63.44,28.368-63.44,63.44c0.00,35.12, 28.432,63.504, 63.44,63.504C 291.632,288.00, 320.00,259.632, 320.00,224.496
|
1338 |
-
C 320.00,189.44, 291.632,161.056, 256.496,161.056z" />
|
1339 |
-
<glyph unicode="" d="M 256.00,480.00C 114.624,480.00,0.00,365.376,0.00,224.00s 114.624-256.00, 256.00-256.00s 256.00,114.624, 256.00,256.00S 397.376,480.00, 256.00,480.00z M 256.00,416.00
|
1340 |
-
c 83.312,0.00, 153.68-53.664, 180.256-128.00L 75.744,288.00 C 102.32,362.336, 172.688,416.00, 256.00,416.00z M 256.00,192.00c-17.68,0.00-32.00,14.32-32.00,32.00s 14.32,32.00, 32.00,32.00s 32.00-14.32, 32.00-32.00
|
1341 |
-
S 273.68,192.00, 256.00,192.00z M 64.00,224.00c 87.44,0.00, 158.256-84.256, 159.744-188.752C 133.248,50.752, 64.00,129.184, 64.00,224.00z M 288.256,35.248
|
1342 |
-
C 289.744,139.744, 360.56,224.00, 448.00,224.00C 448.00,129.184, 378.752,50.752, 288.256,35.248z" />
|
1343 |
-
<glyph unicode="" d="M 192.00,224.00c 35.376,0.00, 64.00,28.656, 64.00,64.00L 256.00,416.00 c0.00,35.344-28.624,64.00-64.00,64.00S 128.00,451.344, 128.00,416.00l0.00-128.00 C 128.00,252.656, 156.624,224.00, 192.00,224.00zM 256.00,32.00l-32.00,0.00 l0.00,67.248 C 314.624,114.56, 384.00,193.088, 384.00,288.00l0.00,31.008 c0.00,17.68-14.32,32.00-32.00,32.00s-32.00-14.32-32.00-32.00L 320.00,288.00
|
1344 |
-
c0.00-70.592-57.376-128.00-128.00-128.00s-128.00,57.408-128.00,128.00l0.00,31.008 c0.00,17.68-14.32,32.00-32.00,32.00s-32.00-14.32-32.00-32.00L0.00,288.00 c0.00-94.912, 69.376-173.44, 160.00-188.752L 160.00,32.00 L 128.00,32.00
|
1345 |
-
c-35.376,0.00-64.00-28.624-64.00-64.00l 256.00,0.00 C 320.00,3.376, 291.376,32.00, 256.00,32.00z" horiz-adv-x="384" />
|
1346 |
-
<glyph unicode="" d="M 480.00,192.00l-32.00,0.00 l0.00,64.00 c0.00,106.00-86.00,192.00-192.00,192.00S 64.00,362.00, 64.00,256.00l0.00-64.00 L 32.00,192.00 c-17.68,0.00-32.00-14.32-32.00-32.00l0.00-128.00 c0.00-17.68, 14.32-32.00, 32.00-32.00l 96.00,0.00 L 128.00,256.00
|
1347 |
-
c0.00,70.624, 57.376,128.00, 128.00,128.00s 128.00-57.376, 128.00-128.00l0.00-256.00 l 96.00,0.00 c 17.68,0.00, 32.00,14.32, 32.00,32.00l0.00,128.00 C 512.00,177.68, 497.68,192.00, 480.00,192.00z" />
|
1348 |
-
<glyph unicode="" d="M 128.00,96.00c-70.688,0.00-128.00,57.312-128.00,128.00s 57.312,128.00, 128.00,128.00L 128.00,96.00 zM 192.00,352.00L 320.00,416.00L 320.00,32.00L 192.00,96.00 zM 384.064,96.064l0.00,64.00 c 5.312,0.00, 10.688,0.688, 16.064,2.00C 428.192,169.184, 448.00,194.688, 448.00,224.00
|
1349 |
-
s-19.808,54.752-48.192,61.936c-5.056,1.248-10.432,1.936-15.744,1.936l0.00,64.00 c 10.496,0.00, 21.008-1.312, 31.312-3.808C 472.32,333.568, 512.00,282.624, 512.00,224.00
|
1350 |
-
c0.00-58.688-39.68-109.68-96.432-124.064C 404.944,97.376, 394.432,96.064, 384.064,96.064L 384.064,96.064z" />
|
1351 |
-
<glyph unicode="" d="M 128.00,96.00c-70.688,0.00-128.00,57.312-128.00,128.00s 57.312,128.00, 128.00,128.00L 128.00,96.00 zM 192.00,352.00L 320.00,416.00L 320.00,32.00L 192.00,96.00 zM 512.00,192.00L 384.00,192.00L 384.00,256.00L 512.00,256.00 z" />
|
1352 |
-
<glyph unicode="" d="M0.00,480.00L 384.00,224.00L0.00-32.00 z" horiz-adv-x="384" />
|
1353 |
-
<glyph unicode="" d="M0.00,480.00L 128.00,480.00L 128.00-32.00L0.00-32.00zM 256.00,480.00L 384.00,480.00L 384.00-32.00L 256.00-32.00z" horiz-adv-x="384" />
|
1354 |
-
<glyph unicode="" d="M0.00,480.00L 512.00,480.00L 512.00-32.00L0.00-32.00z" />
|
1355 |
-
<glyph unicode="" d="M0.00,160.00L 256.00,480.00L 512.00,160.00 zM0.00,96.00L 511.312,96.00L 511.312-32.00L0.00-32.00z" />
|
1356 |
-
<glyph unicode="" d="M 512.00-32.00L 128.00,224.00L 512.00,480.00 zM0.00,416.00L 128.00,416.00L 128.00,32.00L0.00,32.00z" />
|
1357 |
-
<glyph unicode="" d="M0.00,480.00L 384.00,224.00L0.00-32.00 zM 384.00,416.00L 512.00,416.00L 512.00,32.00L 384.00,32.00z" />
|
1358 |
-
<glyph unicode="" d="M 256.00,480.00C 114.624,480.00,0.00,365.376,0.00,224.00s 114.624-256.00, 256.00-256.00s 256.00,114.624, 256.00,256.00S 397.376,480.00, 256.00,480.00z M 160.00,96.00L 160.00,352.00 l 256.128-128.00L 160.00,96.00z
|
1359 |
-
" />
|
1360 |
-
<glyph unicode="" d="M 393.376,41.376L 466.752-32.00L 512.00,13.248L 438.624,86.624L 512.00,160.00L 320.00,160.00L 320.00-32.00 zM0.00,288.00L 192.00,288.00L 192.00,480.00L 118.624,406.624L 46.00,479.312L 0.752,434.064L 73.376,361.376 zM0.00,13.248L 45.248-32.00L 118.624,41.376L 192.00-32.00L 192.00,160.00L0.00,160.00L 73.376,86.624 zM 320.00,288.00L 512.00,288.00L 438.624,361.376L 511.376,434.064L 466.128,479.312L 393.376,406.624L 320.00,480.00 z" />
|
1361 |
-
<glyph unicode="" d="M 448.00,160.00L 320.00,160.00L 320.00,32.00L 361.376,73.376L 466.752-32.00L 512.00,13.248L 406.624,118.624 zM 406.624,329.376L 512.00,434.752L 466.752,480.00L 361.376,374.624L 320.00,416.00L 320.00,288.00L 448.00,288.00 zM 45.248,480.00L0.00,434.752L 105.376,329.376L 64.00,288.00L 192.00,288.00L 192.00,416.00L 150.624,374.624 zM 105.376,118.624L0.00,13.248L 45.248-32.00L 150.624,73.376L 192.00,32.00L 192.00,160.00L 64.00,160.00 z" />
|
1362 |
-
<glyph unicode="" d="M 438.624,86.624L 365.248,160.00L 320.00,114.752L 393.376,41.376L 320.00-32.00L 512.00-32.00L 512.00,160.00 zM 192.00,480.00L0.00,480.00L0.00,288.00L 73.376,361.376L 146.064,288.752L 191.312,334.00L 118.624,406.624 zM 192.00,114.752L 146.752,160.00L 73.376,86.624L0.00,160.00L0.00-32.00L 192.00-32.00L 118.624,41.376 zM 512.00,480.00L 320.00,480.00L 393.376,406.624L 320.688,334.00L 365.936,288.752L 438.624,361.376L 512.00,288.00 z" />
|
1363 |
-
<glyph unicode="" d="M 470.624,54.624L 365.248,160.00L 320.00,114.752L 425.376,9.376L 384.00-32.00L 512.00-32.00L 512.00,96.00 zM 41.376,393.376L 146.752,288.00L 192.00,333.248L 86.624,438.624L 128.00,480.00L0.00,480.00L0.00,352.00 zM 425.376,438.624L 320.00,333.248L 365.248,288.00L 470.624,393.376L 512.00,352.00L 512.00,480.00L 384.00,480.00 zM 192.00,114.752L 146.752,160.00L 41.376,54.624L0.00,96.00L0.00-32.00L 128.00-32.00L 86.624,9.376 z" />
|
1364 |
-
<glyph unicode="" d="M 256.00,480.00L 128.00,480.00 C 57.312,480.00,0.00,422.688,0.00,352.00l0.00-256.00 c0.00-70.688, 57.312-128.00, 128.00-128.00l 128.00,0.00 c 70.688,0.00, 128.00,57.312, 128.00,128.00L 384.00,352.00
|
1365 |
-
C 384.00,422.688, 326.688,480.00, 256.00,480.00z M 192.00-0.992c-18.224,0.00-32.992,14.752-32.992,32.992s 14.784,32.992, 32.992,32.992s 32.992-14.752, 32.992-32.992
|
1366 |
-
S 210.224-0.992, 192.00-0.992z M 320.00,96.00L 64.00,96.00 L 64.00,352.00 c0.00,35.248, 28.72,64.00, 64.00,64.00l 128.00,0.00 c 35.248,0.00, 64.00-28.752, 64.00-64.00L 320.00,96.00 z" horiz-adv-x="384" />
|
1367 |
-
<glyph unicode="" d="M 1024.00,352.00l-128.00,0.00 L 896.00,416.00 c0.00,35.136-28.736,64.00-64.00,64.00L 64.00,480.00 C 28.736,480.00,0.00,451.136,0.00,416.00l0.00-384.00 c0.00-35.136, 28.736-64.00, 64.00-64.00l 768.00,0.00
|
1368 |
-
c 35.264,0.00, 64.00,28.864, 64.00,64.00l0.00,64.00 l 128.00,0.00 L 1024.00,352.00 z M 768.00,96.00L 128.00,96.00 L 128.00,352.00 l 640.00,0.00 L 768.00,96.00 z" horiz-adv-x="1024" />
|
1369 |
-
<glyph unicode="" d="M 512.00,288.00l-64.00,0.00 l0.00,32.00 c0.00,17.60-14.368,32.00-32.00,32.00L 32.00,352.00 c-17.632,0.00-32.00-14.40-32.00-32.00l0.00-192.00 c0.00-17.632, 14.368-32.00, 32.00-32.00l 384.00,0.00 c 17.632,0.00, 32.00,14.368, 32.00,32.00l0.00,32.00 l 64.00,0.00
|
1370 |
-
L 512.00,288.00 z M 384.00,160.00l-128.00,0.00 l0.00,128.00 l 128.00,0.00 L 384.00,160.00 z" />
|
1371 |
-
<glyph unicode="" d="M 448.00,288.00l0.00,32.00 c0.00,17.60-14.40,32.00-32.00,32.00L 32.00,352.00 c-17.60,0.00-32.00-14.40-32.00-32.00l0.00-192.00 c0.00-17.60, 14.40-32.00, 32.00-32.00l 384.00,0.00 c 17.60,0.00, 32.00,14.40, 32.00,32.00l0.00,32.00 l 64.00,0.00 l0.00,128.00 L 448.00,288.00 z" />
|
1372 |
-
<glyph unicode="" d="M 448.00,288.00l0.00,32.00 c0.00,17.60-14.40,32.00-32.00,32.00L 32.00,352.00 c-17.60,0.00-32.00-14.40-32.00-32.00l0.00-64.00 l 101.584,0.00 c 13.20,37.264, 48.64,64.00, 90.416,64.00l0.00-32.00 l 64.00,0.00 l0.00-32.00 l-64.00,0.00 l0.00-64.00 l 64.00,0.00 l0.00-32.00 l-64.00,0.00 l0.00-32.00
|
1373 |
-
c-41.776,0.00-77.232,26.736-90.416,64.00L0.00,192.00 l0.00-64.00 c0.00-17.60, 14.40-32.00, 32.00-32.00l 384.00,0.00 c 17.60,0.00, 32.00,14.40, 32.00,32.00l0.00,32.00 l 64.00,0.00 l0.00,128.00 L 448.00,288.00 z" />
|
1374 |
-
<glyph unicode="" d="M 290.00,257.936c 12.752-12.784, 16.128-30.88, 11.504-47.088L 384.00,352.00l-139.248-82.224
|
1375 |
-
C 260.496,273.664, 277.68,270.256, 290.00,257.936zM 222.128,190.064c-12.368,12.336-15.744,29.60-11.872,45.376L 128.00,96.00l 141.312,82.56
|
1376 |
-
C 253.056,173.872, 234.944,177.248, 222.128,190.064zM 256.00,416.00c 105.872,0.00, 192.00-86.128, 192.00-192.00s-86.128-192.00-192.00-192.00S 64.00,118.128, 64.00,224.00S 150.128,416.00, 256.00,416.00 M 256.00,480.00
|
1377 |
-
C 114.624,480.00,0.00,365.376,0.00,224.00s 114.624-256.00, 256.00-256.00s 256.00,114.624, 256.00,256.00S 397.376,480.00, 256.00,480.00L 256.00,480.00z" />
|
1378 |
-
<glyph unicode="" d="M0.00,288.00L 512.00,288.00L 512.00-32.00L0.00-32.00zM 288.00,352.00L 512.00,352.00L 448.00,480.00L 288.00,480.00 zM 224.00,480.00L 64.00,480.00L0.00,352.00L 224.00,352.00 z" />
|
1379 |
-
<glyph unicode="" d="M 256.00,415.968L 256.00,480.00 L0.00,480.00 l0.00-448.00 c0.00-35.376, 28.624-64.00, 64.00-64.00l 384.00,0.00 c 35.312,0.00, 64.00,28.624, 64.00,64.00L 512.00,415.968 L 256.00,415.968 z M 448.00,223.936L 448.00,32.00 L 64.00,32.00 L 64.00,224.00 l 384.00,0.00 L 448.00,223.936 z
|
1380 |
-
M 448.00,288.00L 64.00,288.00 L 64.00,416.00 l 128.00,0.00 l0.00-0.032 L 192.00,352.00 l 256.00,0.00 L 448.00,288.00 z" />
|
1381 |
-
<glyph unicode="" d="M 512.00,0.00c0.00-17.68-14.32-32.00-32.00-32.00L 32.00-32.00 c-17.68,0.00-32.00,14.32-32.00,32.00L0.00,288.00 l 512.00,0.00 L 512.00,0.00 zM 192.00,415.968L 192.00,480.00L0.00,480.00L0.00,352.00L 512.00,352.00L 512.00,415.968 z" />
|
1382 |
-
<glyph unicode="" d="M 477.504,96.00C 499.44,133.68, 512.00,177.248, 512.00,224.00c0.00,141.376-114.624,256.00-256.00,256.00S0.00,365.376,0.00,224.00s 114.624-256.00, 256.00-256.00
|
1383 |
-
c 70.688,0.00, 134.688,28.624, 180.992,75.008L 391.68,88.32C 356.944,53.504, 308.944,32.00, 256.00,32.00C 150.128,32.00, 64.00,118.128, 64.00,224.00S 150.128,416.00, 256.00,416.00s 192.00-86.128, 192.00-192.00
|
1384 |
-
c0.00-22.752-4.368-44.496-11.68-64.752L 435.808,160.00L 384.00,160.00 L 384.00,351.312 l-128.00,0.00 c-70.688,0.00-128.00-57.312-128.00-128.00s 57.312-128.00, 128.00-128.00c 29.376,0.00, 56.128,10.32, 77.744,26.944
|
1385 |
-
C 345.376,106.752, 363.12,96.00, 384.00,96.00L 477.504,96.00 z M 320.00,255.872l0.00-32.56 c0.00-35.312-28.752-64.00-64.00-64.00s-64.00,28.688-64.00,64.00s 28.752,64.00, 64.00,64.00l 64.00,0.00 L 320.00,255.872 z" />
|
1386 |
-
<glyph unicode="" d="M 147.392-32.00c-37.744,0.00-75.504,14.368-104.32,43.056c-57.44,57.568-57.44,151.184,0.00,208.624l 129.808,127.008
|
1387 |
-
c 7.376,7.44, 11.632,17.632, 11.632,28.56c0.00,10.88-4.256,21.12-11.872,28.88C 156.768,420.00, 130.896,419.936, 114.896,404.064
|
1388 |
-
C 99.136,388.192, 99.136,362.32, 115.008,346.432L 69.696,301.12C 28.896,342.00, 28.896,408.432, 69.648,449.312c 40.992,40.944, 107.376,40.88, 148.224,0.064
|
1389 |
-
c 19.872-19.808, 30.752-46.192, 30.752-74.192c0.00-28.00-10.88-54.32-30.752-74.064l-129.776-126.944c-32.32-32.256-32.32-85.248, 0.32-117.808
|
1390 |
-
c 32.496-32.56, 85.504-32.496, 118.128,0.00c 32.464,32.56, 32.464,85.568,0.00,118.064l-22.752,22.624l 69.60,69.568l 45.248-45.248l-26.752-26.752
|
1391 |
-
c 36.256-56.992, 29.632-133.744-20.128-183.504C 222.992-17.632, 185.136-32.00, 147.392-32.00L 147.392-32.00z" horiz-adv-x="298.6080017089844" />
|
1392 |
-
<glyph unicode="" d="M 32.00,224.00c 17.68,0.00, 32.00-14.32, 32.00-32.00l0.00-128.00 c0.00-17.68-14.32-32.00-32.00-32.00L0.00,32.00 l0.00-64.00 l 256.00,0.00 l0.00,64.00 l-31.872,0.00 C 206.496,32.00, 192.00,46.32, 192.00,64.00l-0.064,224.00L0.00,288.00
|
1393 |
-
l0.00-64.00 L 32.00,224.00 zM 64.00,416.00A64.00,64.00 1260.00 1,0 192.00,416A64.00,64.00 1260.00 1,0 64.00,416z" horiz-adv-x="256" />
|
1394 |
-
<glyph unicode="" d="M 89.60,0.00A32.00,32.00 1260.00 1,0 153.60,0A32.00,32.00 1260.00 1,0 89.60,0zM 122.816,64.368c-21.376,0.00-41.44,8.32-56.56,23.44s-23.44,35.184-23.44,56.56s 8.32,41.44, 23.44,56.56
|
1395 |
-
l 107.008,107.008C 185.376,320.032, 192.00,336.096, 192.00,353.184s-6.624,33.152-18.752,45.248c-24.944,24.96-65.536,25.008-90.464,0.00
|
1396 |
-
C 70.656,386.336, 64.00,370.288, 64.00,353.184L0.00,353.184 c0.00,34.192, 13.344,66.352, 37.568,90.544c 48.32,48.368, 132.56,48.336, 180.944-0.032
|
1397 |
-
C 242.688,419.552, 256.00,387.408, 256.00,353.184c0.00-34.192-13.312-66.32-37.504-90.496L 111.504,155.68c-6.224-6.256-6.224-16.368,0.00-22.624
|
1398 |
-
c 6.256-6.256, 16.368-6.256, 22.624,0.00c 4.064,4.064, 4.688,8.88, 4.688,11.312l 64.00,0.00 c0.00-21.376-8.32-41.44-23.44-56.56
|
1399 |
-
S 144.192,64.368, 122.816,64.368L 122.816,64.368z" horiz-adv-x="256" />
|
1400 |
-
<glyph unicode="" d="M 384.00,480.00l-64.00,0.00 l-64.00,0.00 l-64.00,0.00 L 128.00,480.00 C 57.312,480.00,0.00,422.688,0.00,352.00s 57.312-128.00, 128.00-128.00l0.00-256.00 l 64.00,0.00 L 192.00,416.00 l 64.00,0.00 l0.00-448.00 l 64.00,0.00 L 320.00,416.00 l 64.00,0.00 L 384.00,480.00 z" horiz-adv-x="384" />
|
1401 |
-
<glyph unicode="" d="M 448.00,288.00L 448.00,352.00 l-80.064,0.00 l 16.00,128.00l-64.00,0.00 l-16.00-128.00l-127.968,0.00 l 16.00,128.00l-64.00,0.00 l-16.00-128.00L0.00,352.00 l0.00-64.00 l 103.968,0.00 L 88.00,160.00L0.00,160.00 l0.00-64.00 l 80.00,0.00 l-16.00-128.00l 64.00,0.00 l 16.00,128.00l 127.968,0.00 l-16.00-128.00L 320.00-32.00
|
1402 |
-
l 16.00,128.00l 112.00,0.00 l0.00,64.00 l-104.00,0.00 l 15.936,128.00L 448.00,288.00 z M 279.968,160.00L 152.00,160.00 l 15.968,128.00l 127.968,0.00 L 279.968,160.00z" horiz-adv-x="448" />
|
1403 |
-
<glyph unicode="" d="M 512.00,32.00L 512.00,224.00 l-128.00,0.00 c0.00,70.56, 57.376,128.00, 128.00,128.00L 512.00,416.00 c-105.872,0.00-192.00-86.128-192.00-192.00l0.00-192.00 L 512.00,32.00 zM 192.00,32.00L 192.00,224.00 L 64.00,224.00 c0.00,70.56, 57.376,128.00, 128.00,128.00L 192.00,416.00 C 86.128,416.00,0.00,329.872,0.00,224.00l0.00-192.00 L 192.00,32.00 z" />
|
1404 |
-
<glyph unicode="" d="M0.00,416.00l0.00-192.00 l 128.00,0.00 c0.00-70.56-57.376-128.00-128.00-128.00l0.00-64.00 c 105.872,0.00, 192.00,86.128, 192.00,192.00L 192.00,416.00 L0.00,416.00 zM 320.00,416.00l0.00-192.00 l 128.00,0.00 c0.00-70.56-57.376-128.00-128.00-128.00l0.00-64.00 c 105.872,0.00, 192.00,86.128, 192.00,192.00L 512.00,416.00 L 320.00,416.00 z" />
|
1405 |
-
<glyph unicode="" d="M 512.00,32.00L 512.00,416.00L 320.00,224.00L 320.00,32.00 zM 192.00,32.00L 192.00,416.00L0.00,224.00L0.00,32.00 z" />
|
1406 |
-
<glyph unicode="" d="M0.00,416.00L0.00,32.00L 192.00,224.00L 192.00,416.00 zM 320.00,416.00L 320.00,32.00L 512.00,224.00L 512.00,416.00 z" />
|
1407 |
-
<glyph unicode="" d="M 512.00,416.00L0.00,416.00L0.00,480.00L 512.00,480.00 zM 320.00,288.00L0.00,288.00L0.00,352.00L 320.00,352.00 zM 512.00,96.00L0.00,96.00L0.00,160.00L 512.00,160.00 zM 384.00-32.00L0.00-32.00L0.00,32.00L 384.00,32.00 zM 512.00,0.00c0.00-17.68-14.352-32.00-31.968-32.00C 462.304-32.00, 448.00-17.68, 448.00,0.00s 14.304,32.00, 32.032,32.00C 497.648,32.00, 512.00,17.68, 512.00,0.00z" />
|
1408 |
-
<glyph unicode="" d="M 512.00,416.00L0.00,416.00L0.00,480.00L 512.00,480.00 zM 320.00,288.00L0.00,288.00L0.00,352.00L 320.00,352.00 zM 512.00,160.00L0.00,160.00L0.00,224.00L 512.00,224.00 zM0.00,0.00A32.00,32.00 1260.00 1,0 64.00,0A32.00,32.00 1260.00 1,0 0.00,0zM 256.00,0.00A32.00,32.00 1260.00 1,0 320.00,0A32.00,32.00 1260.00 1,0 256.00,0zM 128.00,0.00A32.00,32.00 1260.00 1,0 192.00,0A32.00,32.00 1260.00 1,0 128.00,0z" />
|
1409 |
-
<glyph unicode="" d="M0.00,443.431A36.569,36.569 1260.00 1,0 73.138,443.431A36.569,36.569 1260.00 1,0 0.00,443.431zM0.00,297.136A36.569,36.569 1260.00 1,0 73.138,297.13599999999997A36.569,36.569 1260.00 1,0 0.00,297.13599999999997zM0.00,150.859A36.569,36.569 1260.00 1,0 73.138,150.85899999999998A36.569,36.569 1260.00 1,0 0.00,150.85899999999998zM0.00,4.565A36.569,36.569 1260.00 1,0 73.138,4.564999999999998A36.569,36.569 1260.00 1,0 0.00,4.564999999999998zM 146.295,480.00L 585.106,480.00L 585.106,406.862L 146.295,406.862zM 146.295,333.705L 585.106,333.705L 585.106,260.567L 146.295,260.567zM 146.295,187.429L 585.106,187.429L 585.106,114.29L 146.295,114.29zM 146.295,41.134L 585.106,41.134L 585.106-32.005L 146.295-32.005z" horiz-adv-x="585.1062622070312" />
|
1410 |
-
<glyph unicode="" d="M0.00,443.429A36.571,36.571 1260.00 1,0 73.143,443.429A36.571,36.571 1260.00 1,0 0.00,443.429zM 146.286,480.00L 585.143,480.00L 585.143,406.857L 146.286,406.857zM 146.286,297.143A36.571,36.571 1260.00 1,0 219.429,297.14300000000003A36.571,36.571 1260.00 1,0 146.286,297.14300000000003zM 292.571,333.714L 585.143,333.714L 585.143,260.571L 292.571,260.571zM 146.286,4.571A36.571,36.571 1260.00 1,0 219.429,4.571000000000026A36.571,36.571 1260.00 1,0 146.286,4.571000000000026zM 292.571,41.143L 585.143,41.143L 585.143-32.00L 292.571-32.00zM 292.571,150.857A36.571,36.571 1260.00 1,0 365.714,150.85700000000003A36.571,36.571 1260.00 1,0 292.571,150.85700000000003zM 438.857,187.429L 585.143,187.429L 585.143,114.286L 438.857,114.286z" horiz-adv-x="585.1428833007812" />
|
1411 |
-
<glyph unicode="" d="M 64.00,480.00C 28.80,480.00,0.00,451.20,0.00,416.00l0.00-384.00 c0.00-35.20, 28.80-64.00, 64.00-64.00l 384.00,0.00 L 448.00,480.00 L 64.00,480.00 z M 384.00,32.00L 128.00,32.00 L 128.00,416.00 l 64.00,0.00 l0.00-128.00 l 64.00,64.00l 64.00-64.00L 320.00,416.00 l 64.00,0.00 L 384.00,32.00 z" horiz-adv-x="448" />
|
1412 |
-
<glyph unicode="" d="M 512.00,416.00l-64.00,0.00 L 448.00,480.00 L 64.00,480.00 C 28.80,480.00,0.00,451.20,0.00,416.00l0.00-384.00 c0.00-35.20, 28.80-64.00, 64.00-64.00l 384.00,0.00 L 448.00,288.00 l 64.00,0.00 l-64.00,64.00L 512.00,416.00z M 384.00,32.00L 128.00,32.00 L 128.00,416.00 l 256.00,0.00 L 384.00,32.00 zM 192.00,352.00L 320.00,352.00L 320.00,288.00L 192.00,288.00z" />
|
1413 |
-
<glyph unicode="" d="M 256.00,384.00c0.00,0.00-64.00,64.00-256.00,64.00l0.00-384.00 c 194.00,0.00, 256.00-64.00, 256.00-64.00s 62.00,64.00, 256.00,64.00L 512.00,448.00 C 320.00,448.00, 256.00,384.00, 256.00,384.00z M 64.00,384.00
|
1414 |
-
c 81.344-6.816, 131.248-25.632, 160.00-40.88l0.00-257.744 c-28.752,15.184-78.656,34.00-160.00,40.88L 64.00,384.00 z M 448.00,126.256c-81.376-6.88-131.248-25.664-160.00-40.88
|
1415 |
-
L 288.00,343.12 C 316.752,358.368, 366.624,377.184, 448.00,384.00L 448.00,126.256 z" />
|
1416 |
-
<glyph unicode="" d="M 474.496,442.496C 449.568,467.504, 416.816,480.00, 384.00,480.00c-32.752,0.00-65.504-12.496-90.496-37.504L 0.496,149.504L0.00-32.00
|
1417 |
-
l 180.992,0.00 l 293.504,293.504C 524.496,311.504, 524.496,392.496, 474.496,442.496z M 154.496,32.00L 128.00,32.00 l0.00,64.00 L 64.368,96.00 l 0.064,26.88L 338.752,397.248l0.00,0.00l 90.496-90.496
|
1418 |
-
l0.00,0.00L 154.496,32.00z" />
|
1419 |
-
<glyph unicode="" d="M 474.496,442.496C 449.504,467.504, 416.752,480.00, 384.00,480.00s-65.504-12.496-90.496-37.504L 0.496,149.504L0.00-32.00l 180.992,0.00
|
1420 |
-
l 293.504,293.504C 524.496,311.504, 524.496,392.496, 474.496,442.496z M 154.496,32.00L 153.808,32.00 c 24.992,24.992, 24.992,66.00,0.00,91.008
|
1421 |
-
c-23.936,23.936-61.744,24.256-86.88,2.368L 338.192,396.624l 90.496-90.496L 154.496,32.00z" />
|
1422 |
-
<glyph unicode="" d="M 474.496,442.496c-49.936,50.00-131.056,50.00-180.992,0.00L 0.496,149.504L0.00-32.00l 180.992,0.00 l 293.504,293.504
|
1423 |
-
C 524.496,311.504, 524.496,392.496, 474.496,442.496z M 153.808,32.00L 63.312,32.00 l0.00,91.008 c 24.992,24.992, 65.504,24.992, 90.496,0.00S 178.816,56.992, 153.808,32.00z
|
1424 |
-
M 428.064,306.752l-90.496,90.496c 24.992,24.992, 65.504,24.992, 90.496,0.00S 453.056,331.744, 428.064,306.752z" />
|
1425 |
-
<glyph unicode="" d="M 493.233,461.249c-24.991,24.991-65.502,24.991-90.493,0.00l-241.992-242.072
|
1426 |
-
c 21.631-5.632, 41.631-16.495, 57.87-32.751c 16.495-16.495, 27.007-36.623, 32.623-57.742l 241.992,242.072C 518.24,395.747, 518.24,436.257, 493.233,461.249z
|
1427 |
-
M 173.371,50.685c 24.991,24.991, 24.991,65.502,0.00,90.493s-65.502,24.991-90.493,0.00L0.00-32.00L 173.371,50.685z" horiz-adv-x="511.9840087890625" />
|
1428 |
-
<glyph unicode="" d="M 493.216,461.248c-24.992,24.992-65.504,24.992-90.496,0.00L 220.32,278.88c 42.256-15.056, 75.504-48.32, 90.496-90.56
|
1429 |
-
l 182.40,182.432C 518.224,395.744, 518.224,436.256, 493.216,461.248zM 255.936,138.688c0.00,47.12-38.256,85.312-85.376,85.312s-85.312-38.192-85.312-85.312l 0.064-0.064
|
1430 |
-
C 85.248,75.504, 50.944,20.432,0.00-9.056l 0.256-0.32C 25.312-23.744, 54.32-32.00, 85.312-32.00C 179.568-32.00, 256.00,44.432, 256.00,138.688L 255.936,138.688 z" horiz-adv-x="511.9679870605469" />
|
1431 |
-
<glyph unicode="" d="M 192.00,96.00c0.00,35.376-28.688,64.00-64.00,64.00c-35.376,0.00-64.00-28.624-64.00-64.00l0.00-0.128 c0.00-47.312-25.744-88.56-64.00-110.688l 0.256-0.192
|
1432 |
-
C 19.008-25.808, 40.752-32.00, 64.00-32.00C 134.688-32.00, 192.00,25.312, 192.00,96.00L 192.00,96.00zM 493.216,461.248c-24.992,24.992-65.504,24.992-90.496,0.00L 160.752,219.248c 44.128-11.808, 78.752-46.368, 90.496-90.56
|
1433 |
-
L 493.216,370.752C 518.224,395.744, 518.224,436.256, 493.216,461.248z" horiz-adv-x="511.9679870605469" />
|
1434 |
-
<glyph unicode="" d="M 474.48,261.056c 49.936,49.904, 49.936,130.88,0.00,180.752c-24.944,24.944-57.68,37.44-90.368,37.44
|
1435 |
-
c-32.656,0.00-65.408-12.496-90.336-37.44l-9.44-9.44L 236.752,480.00l-45.12-45.152l 47.632-47.60L0.00,147.84l0.00-115.968 L 62.88-32.00l 118.624,0.00 l 238.416,238.496
|
1436 |
-
l 46.00-46.032l 45.184,45.12l-46.064,46.032L 474.48,261.056z M 165.12,42.128c 0.752,24.256-7.632,48.56-26.064,67.008
|
1437 |
-
c-16.944,16.992-39.056,25.312-61.312,26.064L 284.448,341.968l 90.288-90.224L 165.12,42.128z" horiz-adv-x="511.9360046386719" />
|
1438 |
-
<glyph unicode="" d="M0.00,96.00L 256.016,32.00L 512.00,96.00L 512.00,32.00L 256.016-32.00L0.00,32.00 zM0.00,224.00L 256.016,160.00L 512.00,224.00L 512.00,160.00L 256.016,96.00L0.00,160.00 zM0.00,352.00L 256.016,288.00L 512.00,352.00L 512.00,288.00L 256.016,224.00L0.00,288.00 zM0.00,480.00L 256.016,416.00L 512.00,480.00L 512.00,416.00L 256.016,352.00L0.00,416.00 z" horiz-adv-x="511.9679870605469" />
|
1439 |
-
<glyph unicode="" d="M0.00,128.00L 256.016,64.00L 512.00,128.00L 512.00,64.00L 256.016,0.00L0.00,64.00 zM0.00,256.00L 256.016,192.00L 512.00,256.00L 512.00,192.00L 256.016,128.00L0.00,192.00 zM0.00,384.00L 256.016,448.00L 512.00,384.00L 512.00,320.00L 256.016,256.00L0.00,320.00 z" horiz-adv-x="511.9679870605469" />
|
1440 |
-
<glyph unicode="" d="M 128.00,96.00L 128.00,224.00L 192.00,288.00L 256.00,224.00L 384.00,352.00L 512.00,224.00L 512.00,96.00 zM 64.00,32.00L 64.00,480.00L0.00,416.00L0.00,32.00L0.00-32.00L 64.00-32.00L 448.00-32.00L 512.00,32.00 z" />
|
1441 |
-
<glyph unicode="" d="M 256.00,160.00A64.00,64.00 1260.00 1,0 384.00,160A64.00,64.00 1260.00 1,0 256.00,160zM 448.00,352.00l-52.624,106.288C 391.056,470.912, 379.12,480.00, 364.992,480.00L 277.12,480.00 c-14.288,0.00-26.336-9.312-30.464-22.16
|
1442 |
-
L 192.064,352.00L 64.00,352.00 c-35.344,0.00-64.00-28.656-64.00-64.00l0.00-320.00 l 512.00,0.00 L 512.00,288.00 C 512.00,323.344, 483.376,352.00, 448.00,352.00z M 96.00,224.00c-17.68,0.00-32.00,14.32-32.00,32.00s 14.32,32.00, 32.00,32.00s 32.00-14.32, 32.00-32.00
|
1443 |
-
S 113.68,224.00, 96.00,224.00z M 320.00,32.00c-70.688,0.00-128.00,57.312-128.00,128.00s 57.312,128.00, 128.00,128.00s 128.00-57.312, 128.00-128.00S 390.688,32.00, 320.00,32.00z" />
|
1444 |
-
<glyph unicode="" d="M 338.752,256.32l 91.056,154.624C 384.128,453.472, 323.376,480.00, 256.00,480.00c-15.968,0.00-31.44-1.904-46.592-4.688
|
1445 |
-
L 338.752,256.32zM 319.248,160.00l 183.68,0.00 C 508.256,180.56, 512.00,201.744, 512.00,224.00c0.00,61.968-22.88,118.032-59.568,162.32L 319.248,160.00zM 264.00,320.00l-86.528,146.432C 105.472,443.088, 47.248,389.664, 19.008,320.00L 264.00,320.00 zM 250.128,128.00l 86.256-145.872c 71.184,23.744, 128.624,76.816, 156.624,145.872L 250.128,128.00 zM 193.68,288.00L 9.056,288.00 C 3.712,267.44,0.00,246.256,0.00,224.00c0.00-62.256, 23.12-118.56, 60.096-163.008L 193.68,288.00zM 174.688,192.624l-91.904-156.128C 128.432-5.632, 188.944-32.00, 256.00-32.00c 16.656,0.00, 32.88,1.872, 48.624,4.88
|
1446 |
-
L 174.688,192.624z" />
|
1447 |
-
<glyph unicode="" d="M 484.944,336.432l-159.568-159.568l 181.872,0.00 C 510.128,192.256, 512.00,207.872, 512.00,224.00
|
1448 |
-
C 512.00,264.528, 501.744,302.368, 484.944,336.432zM 336.88,236.16l 131.248,131.184c-31.248,46.064-77.504,80.336-131.248,98.336L 336.88,236.16 zM 267.968,143.12l 131.28-131.312c 46.128,31.184, 80.432,77.504, 98.432,131.312L 267.968,143.12 zM 303.088,292.096L 303.088,475.248 C 287.776,478.096, 272.128,480.00, 256.00,480.00c-40.88,0.00-79.008-10.464-113.28-27.536L 303.088,292.096zM 208.912,154.368l0.00-181.632 C 224.224-30.128, 239.872-32.00, 256.00-32.00c 40.496,0.00, 78.256,10.256, 112.32,27.008
|
1449 |
-
L 208.912,154.368zM 175.088,211.632L 44.00,80.56c 31.184-46.00, 77.408-80.256, 131.088-98.256L 175.088,211.632 zM 4.752,271.088C 1.904,255.776,0.00,240.128,0.00,224.00c0.00-40.624, 10.32-78.496, 27.12-112.56l 159.664,159.664L 4.752,271.104 zM 111.936,435.504C 66.256,404.32, 32.224,358.336, 14.32,304.912l 228.224,0.00 L 111.936,435.504z" />
|
1450 |
-
<glyph unicode="" d="M 219.856,169.632l-160.128,160.00c-79.632-92.064-79.632-227.952,0.00-320.00L 219.856,169.632zM 320.016,413.472l0.00-234.336 L 154.384,13.44C 191.632-14.368, 236.88-32.00, 286.88-32.00C 411.248-32.00, 512.00,68.624, 512.00,192.944
|
1451 |
-
C 512.016,305.872, 428.288,397.376, 320.016,413.472zM 256.00,223.744L 256.00,480.00 C 186.256,475.68, 123.248,448.992, 72.368,407.408L 256.00,223.744z" horiz-adv-x="511.9679870605469" />
|
1452 |
-
<glyph unicode="" d="M 232.528,169.248L 63.28,338.496c-84.368-97.376-84.368-241.12,0.00-338.496L 232.528,169.248zM 256.00,192.00L 256.00,480.00 C 177.504,475.12, 106.752,445.12, 49.648,398.368L 256.00,192.00zM 288.032,415.744l0.00-236.992 L 121.904,12.624C 159.152-14.752, 204.032-32.00, 253.664-32.00C 378.752-32.00, 480.00,69.248, 480.00,194.128
|
1453 |
-
C 480.00,307.376, 396.368,399.12, 288.032,415.744z" horiz-adv-x="480" />
|
1454 |
-
<glyph unicode="" d="M 384.00,480.00L 512.00,480.00L 512.00-32.00L 384.00-32.00zM 192.00,352.00L 320.00,352.00L 320.00-32.00L 192.00-32.00zM0.00,224.00L 128.00,224.00L 128.00-32.00L0.00-32.00z" />
|
1455 |
-
<glyph unicode="" d="M 384.00,480.00L 448.00,480.00L 448.00-32.00L 384.00-32.00zM 256.00,352.00L 320.00,352.00L 320.00-32.00L 256.00-32.00zM 128.00,224.00L 192.00,224.00L 192.00-32.00L 128.00-32.00zM0.00,96.00L 64.00,96.00L 64.00-32.00L0.00-32.00z" horiz-adv-x="448" />
|
1456 |
-
<glyph unicode="" d="M 256.00,416.00C 114.624,416.00,0.00,226.496,0.00,226.496S 114.624,32.00, 256.00,32.00s 256.00,194.496, 256.00,194.496S 397.376,416.00, 256.00,416.00z M 256.00,96.00
|
1457 |
-
c-70.688,0.00-128.00,57.312-128.00,128.00s 57.312,128.00, 128.00,128.00s 128.00-57.312, 128.00-128.00S 326.688,96.00, 256.00,96.00zM 192.00,224.00A64.00,64.00 1260.00 1,0 320.00,224A64.00,64.00 1260.00 1,0 192.00,224z" />
|
1458 |
-
<glyph unicode="" d="M 192.00,224.00C 86.00,224.00,0.00,138.00,0.00,32.00c0.00-35.376, 28.624-64.00, 64.00-64.00l 256.00,0.00 c 35.376,0.00, 64.00,28.624, 64.00,64.00
|
1459 |
-
C 384.00,138.00, 298.00,224.00, 192.00,224.00zM 96.00,384.00A96.00,96.00 1260.00 1,0 288.00,384A96.00,96.00 1260.00 1,0 96.00,384z" horiz-adv-x="384" />
|
1460 |
-
<glyph unicode="" d="M 256.00,480.00L0.00,224.00l 64.00,0.00 l0.00-256.00 l 384.00,0.00 L 448.00,224.00 l 64.00,0.00 L 256.00,480.00z M 384.00,32.00l-96.00,0.00 l0.00,96.00 l-64.00,0.00 l0.00-96.00 L 128.00,32.00 L 128.00,261.504 L 256.00,352.00l 128.00-90.496L 384.00,32.00 z" />
|
1461 |
-
<glyph unicode="" d="M 256.00,416.00c 105.872,0.00, 192.00-86.128, 192.00-192.00s-86.128-192.00-192.00-192.00S 64.00,118.128, 64.00,224.00S 150.128,416.00, 256.00,416.00 M 256.00,480.00
|
1462 |
-
C 114.624,480.00,0.00,365.376,0.00,224.00s 114.624-256.00, 256.00-256.00s 256.00,114.624, 256.00,256.00S 397.376,480.00, 256.00,480.00L 256.00,480.00zM 342.752,182.752L 288.00,237.568L 288.00,352.00 l-64.368,0.00 l0.00-127.872 c0.00-9.632, 4.432-17.936, 11.12-23.872l 62.752-62.752
|
1463 |
-
L 342.752,182.752z" />
|
1464 |
-
<glyph unicode="" d="M 224.064,480.00c-88.16,0.00-159.968-71.744-159.968-160.00l0.00-32.00 L0.00,288.00 l0.00-224.00 c0.00-52.88, 43.12-96.00, 95.968-96.00L 288.00-32.00 c 53.008,0.00, 96.00,43.12, 96.00,96.00L 384.00,320.00
|
1465 |
-
C 384.00,408.256, 312.256,480.00, 224.064,480.00z M 128.096,320.00c0.00,52.992, 43.088,96.00, 95.968,96.00C 277.008,416.00, 320.00,372.992, 320.00,320.00l0.00-32.00 L 128.096,288.00 L 128.096,320.00 z M 288.00,32.00L 95.968,32.00
|
1466 |
-
c-17.632,0.00-32.00,14.368-32.00,32.00L 63.968,224.00 L 320.00,224.00 l0.00-160.00 C 320.00,46.368, 305.744,32.00, 288.00,32.00zM 224.00,128.00c0.00-17.632-14.368-32.00-32.00-32.00c-17.744,0.00-32.00,14.368-32.00,32.00c0.00,17.744, 14.256,32.00, 32.00,32.00C 209.632,160.00, 224.00,145.744, 224.00,128.00z" horiz-adv-x="384" />
|
1467 |
-
<glyph unicode="" d="M 224.00,480.00C 135.872,480.00, 64.064,408.256, 64.064,320.00l0.00-32.00 L0.00,288.00 l0.00-224.00 c0.00-52.944, 43.056-96.00, 96.00-96.00l 192.00,0.00 c 52.944,0.00, 96.00,43.056, 96.00,96.00L 384.00,320.00
|
1468 |
-
C 384.00,408.256, 312.192,480.00, 224.00,480.00z M 191.936,96.00C 174.32,96.00, 160.00,110.32, 160.00,128.00s 14.32,32.00, 31.936,32.00c 17.68,0.00, 32.00-14.32, 32.00-32.00S 209.632,96.00, 191.936,96.00z M 320.00,288.00
|
1469 |
-
L 128.064,288.00 l0.00,32.00 c0.00,52.944, 43.056,96.00, 95.936,96.00c 52.944,0.00, 96.00-43.056, 96.00-96.00L 320.00,288.00 z" horiz-adv-x="384" />
|
1470 |
-
<glyph unicode="" d="M 224.064,480.00C 135.84,480.00, 64.096,408.192, 64.096,320.00l 64.00,0.00 c0.00,52.88, 43.024,96.00, 95.968,96.00S 320.00,372.88, 320.00,320.00l0.00-32.00 L0.00,288.00 l0.00-224.00
|
1471 |
-
c0.00-52.992, 43.056-96.00, 95.968-96.00L 288.00-32.00 c 52.944,0.00, 96.00,43.008, 96.00,96.00L 384.00,320.00 C 384.00,408.192, 312.256,480.00, 224.064,480.00z M 288.00,32.00L 95.968,32.00 c-17.632,0.00-32.00,14.32-32.00,32.00L 63.968,224.00 L 320.00,224.00 l0.00-160.00
|
1472 |
-
C 320.00,46.32, 305.632,32.00, 288.00,32.00zM 224.00,128.00c0.00-17.744-14.32-32.00-32.00-32.00s-32.00,14.256-32.00,32.00c0.00,17.632, 14.32,32.00, 32.00,32.00S 224.00,145.632, 224.00,128.00z" horiz-adv-x="384" />
|
1473 |
-
<glyph unicode="" d="M 224.064,480.00C 135.808,480.00, 64.128,408.256, 64.128,320.00l 63.936,0.00 c0.00,52.944, 43.008,96.00, 96.00,96.00C 276.944,416.00, 320.00,372.944, 320.00,320.00l0.00-32.00 L0.00,288.00 l0.00-224.00
|
1474 |
-
c0.00-52.944, 43.12-96.00, 96.00-96.00l 192.00,0.00 c 52.88,0.00, 96.00,43.056, 96.00,96.00L 384.00,320.00 C 384.00,408.256, 312.192,480.00, 224.064,480.00z M 192.00,96.00c-17.632,0.00-32.00,14.32-32.00,32.00s 14.368,32.00, 32.00,32.00
|
1475 |
-
c 17.744,0.00, 32.00-14.32, 32.00-32.00S 209.744,96.00, 192.00,96.00z" horiz-adv-x="384" />
|
1476 |
-
<glyph unicode="" d="M0.00,480.00l0.00-212.368 L 299.632-32.00c0.00,0.00,0.00,172.688,0.00,212.32c 39.632,0.00, 212.368,0.00, 212.368,0.00L 212.368,480.00L0.00,480.00 z M 188.752,423.008
|
1477 |
-
c 12.368-12.32, 126.064-126.128, 185.632-185.68c-49.632,0.00-131.744,0.00-131.744,0.00s0.00-82.128,0.00-131.632C 183.056,165.184, 69.376,278.944, 56.992,291.184
|
1478 |
-
c0.00,16.88,0.00,95.376,0.00,131.808C 93.44,423.008, 171.872,423.008, 188.752,423.008zM 187.184,342.192c0.00-27.248-22.128-49.376-49.312-49.376c-27.248,0.00-49.376,22.128-49.376,49.376
|
1479 |
-
c0.00,27.184, 22.128,49.248, 49.376,49.248C 165.056,391.44, 187.184,369.376, 187.184,342.192z" />
|
1480 |
-
<glyph unicode="" d="M 212.432,480.00L0.00,480.00 l0.00-212.432 L 299.504-32.00L 299.504,180.432 L 512.00,180.432 L 212.432,480.00z M 116.992,302.064c-33.632,0.00-60.88,27.248-60.88,60.88
|
1481 |
-
S 83.36,423.824, 116.992,423.824s 60.88-27.248, 60.88-60.88S 150.624,302.064, 116.992,302.064z" />
|
1482 |
-
<glyph unicode="" d="M 256.016,288.00c 35.248,0.00, 64.00-28.72, 64.00-64.00s-28.752-64.00-64.00-64.00s-64.00,28.72-64.00,64.00S 220.768,288.00, 256.016,288.00 M 256.016,352.00
|
1483 |
-
c-70.688,0.00-128.00-57.312-128.00-128.00s 57.312-128.00, 128.00-128.00C 326.704,96.00, 384.00,153.312, 384.00,224.00S 326.704,352.00, 256.016,352.00L 256.016,352.00zM 224.00,448.00A32.00,32.00 1260.00 1,0 288.00,448A32.00,32.00 1260.00 1,0 224.00,448zM 64.00,384.00A32.00,32.00 1260.00 1,0 128.00,384A32.00,32.00 1260.00 1,0 64.00,384zM 32.00,256.00c 17.68,0.00, 32.00-14.32, 32.00-32.00c0.00-17.712-14.32-32.00-32.00-32.00s-32.00,14.288-32.00,32.00C0.00,241.68, 14.32,256.00, 32.00,256.00zM 64.00,64.00A32.00,32.00 1260.00 1,0 128.00,64A32.00,32.00 1260.00 1,0 64.00,64zM 224.00,0.00c0.00,17.744, 14.32,32.00, 32.00,32.00c 17.728,0.00, 32.00-14.256, 32.00-32.00c0.00-17.632-14.272-32.00-32.00-32.00C 238.32-32.00, 224.00-17.632, 224.00,0.00zM 384.00,64.00A32.00,32.00 1260.00 1,0 448.00,64A32.00,32.00 1260.00 1,0 384.00,64zM 480.00,192.00c-17.664,0.00-32.00,14.336-32.00,32.00c0.00,17.712, 14.336,32.00, 32.00,32.00s 32.00-14.288, 32.00-32.00C 512.00,206.336, 497.664,192.00, 480.00,192.00zM 384.00,384.00A32.00,32.00 1260.00 1,0 448.00,384A32.00,32.00 1260.00 1,0 384.00,384z" horiz-adv-x="511.9679870605469" />
|
1484 |
-
<glyph unicode="" d="M 256.016,352.00c-70.688,0.00-128.00-57.312-128.00-128.00s 57.312-128.00, 128.00-128.00C 326.704,96.00, 384.00,153.312, 384.00,224.00S 326.704,352.00, 256.016,352.00L 256.016,352.00zM 224.00,448.00A32.00,32.00 1260.00 1,0 288.00,448A32.00,32.00 1260.00 1,0 224.00,448zM 64.00,384.00A32.00,32.00 1260.00 1,0 128.00,384A32.00,32.00 1260.00 1,0 64.00,384zM 32.00,256.00c 17.68,0.00, 32.00-14.32, 32.00-32.00c0.00-17.712-14.32-32.00-32.00-32.00s-32.00,14.288-32.00,32.00C0.00,241.68, 14.32,256.00, 32.00,256.00zM 64.00,64.00A32.00,32.00 1260.00 1,0 128.00,64A32.00,32.00 1260.00 1,0 64.00,64zM 224.00,0.00c0.00,17.744, 14.32,32.00, 32.00,32.00c 17.728,0.00, 32.00-14.256, 32.00-32.00c0.00-17.632-14.272-32.00-32.00-32.00C 238.32-32.00, 224.00-17.632, 224.00,0.00zM 384.00,64.00A32.00,32.00 1260.00 1,0 448.00,64A32.00,32.00 1260.00 1,0 384.00,64zM 480.00,192.00c-17.664,0.00-32.00,14.336-32.00,32.00c0.00,17.712, 14.336,32.00, 32.00,32.00s 32.00-14.288, 32.00-32.00C 512.00,206.336, 497.664,192.00, 480.00,192.00zM 384.00,384.00A32.00,32.00 1260.00 1,0 448.00,384A32.00,32.00 1260.00 1,0 384.00,384z" horiz-adv-x="511.9679870605469" />
|
1485 |
-
<glyph unicode="" d="M 94.32,333.632c 13.568-143.344, 128.00-257.744, 271.312-271.248c-30.56-19.376-66.432-30.368-104.00-30.368
|
1486 |
-
C 152.624,32.00, 64.00,120.624, 64.00,229.664C 64.00,267.216, 75.008,303.056, 94.32,333.632 M 189.504,480.00C 80.32,448.496,0.00,348.976,0.00,229.664C0.00,85.12, 117.12-32.00, 261.632-32.00
|
1487 |
-
c 119.312,0.00, 218.88,80.368, 250.368,189.504c-34.88-20.128-74.752-32.496-117.872-32.496c-131.008,0.00-237.12,106.224-237.12,237.152
|
1488 |
-
C 156.992,405.28, 169.376,445.152, 189.504,480.00L 189.504,480.00z" />
|
1489 |
-
<glyph unicode="" d="M 394.128,125.056c-131.008,0.00-237.12,106.192-237.12,237.12c0.00,43.12, 12.368,83.008, 32.496,117.808
|
1490 |
-
C 80.32,448.496,0.00,348.992,0.00,229.68C0.00,85.184, 117.12-32.00, 261.632-32.00c 119.312,0.00, 218.88,80.368, 250.368,189.504
|
1491 |
-
C 477.12,137.44, 437.248,125.056, 394.128,125.056z" />
|
1492 |
-
<glyph unicode="" d="M 384.00,320.00c-6.064,0.00-11.808-0.976-17.632-1.776C 344.064,357.664, 302.816,384.00, 256.00,384.00c-47.808,0.00-89.056-26.656-111.056-65.60
|
1493 |
-
C 139.312,319.152, 133.68,320.00, 128.00,320.00c-70.56,0.00-128.00-57.408-128.00-128.00c0.00-70.624, 57.44-128.00, 128.00-128.00l 256.00,0.00 c 70.56,0.00, 128.00,57.376, 128.00,128.00C 512.00,262.592, 454.56,320.00, 384.00,320.00z M 384.00,128.00L 128.00,128.00
|
1494 |
-
c-35.312,0.00-64.00,28.752-64.00,64.00c0.00,35.088, 31.056,62.16, 64.064,63.12c 0.128-15.088, 2.752-29.904, 8.00-43.904l 59.936,22.432
|
1495 |
-
C 193.312,240.752, 192.00,248.288, 192.00,256.00c0.00,35.28, 28.688,64.00, 64.00,64.00c 20.688,0.00, 39.44-10.256, 51.184-26.224C 276.32,270.40, 256.00,233.68, 256.00,192.00l 64.00,0.00
|
1496 |
-
c0.00,35.28, 28.688,64.00, 64.00,64.00s 64.00-28.72, 64.00-64.00C 448.00,156.752, 419.312,128.00, 384.00,128.00z" />
|
1497 |
-
<glyph unicode="" d="M 383.968,384.00c-6.00,0.00-11.728-0.976-17.648-1.776C 344.096,421.664, 302.816,448.00, 256.00,448.00c-47.792,0.00-89.04-26.656-111.04-65.60
|
1498 |
-
C 139.312,383.152, 133.68,384.00, 128.00,384.00c-70.56,0.00-128.00-57.408-128.00-128.00s 57.44-128.00, 128.00-128.00l 255.968,0.00 c 70.624,0.00, 128.00,57.408, 128.00,128.00S 454.592,384.00, 383.968,384.00z M 383.968,192.00L 128.00,192.00
|
1499 |
-
c-35.312,0.00-64.00,28.72-64.00,64.00c0.00,35.088, 31.056,62.16, 64.064,63.12c 0.144-15.088, 2.752-29.904, 8.00-43.904l 59.936,22.432
|
1500 |
-
C 193.312,304.752, 192.00,312.288, 192.00,320.00c0.00,35.28, 28.688,64.00, 64.00,64.00c 20.688,0.00, 39.44-10.256, 51.184-26.224C 276.336,334.40, 256.00,297.68, 256.00,256.00l 64.00,0.00
|
1501 |
-
c0.00,35.28, 28.72,64.00, 63.968,64.00c 35.376,0.00, 64.00-28.72, 64.00-64.00S 419.344,192.00, 383.968,192.00zM 52.496,8.992c-12.00-12.00-31.504-12.00-43.504,0.00s-12.00,31.504,0.00,43.504S 96.00,96.00, 96.00,96.00S 64.496,20.992, 52.496,8.992zM 180.56,8.992c-12.00-12.00-31.44-12.00-43.504,0.00c-12.00,12.00-12.00,31.504,0.00,43.504
|
1502 |
-
C 149.12,64.496, 224.064,96.00, 224.064,96.00S 192.624,20.992, 180.56,8.992zM 308.48,8.992c-12.00-12.00-31.504-12.00-43.504,0.00s-12.00,31.504,0.00,43.504S 351.968,96.00, 351.968,96.00
|
1503 |
-
S 320.48,20.992, 308.48,8.992z" horiz-adv-x="511.9679870605469" />
|
1504 |
-
<glyph unicode="" d="M 256.00,480.00C 114.88,480.00,0.00,365.152,0.00,224.00l 64.00,0.00 c0.00,13.216, 10.816,24.00, 24.00,24.00C 101.248,248.00, 112.00,237.216, 112.00,224.00l 64.00,0.00
|
1505 |
-
c0.00,13.216, 10.816,24.00, 24.00,24.00c 13.248,0.00, 24.00-10.784, 24.00-24.00l0.00-160.00 c0.00-17.632-14.32-32.00-32.00-32.00c-17.632,0.00-32.00,14.368-32.00,32.00L 96.00,64.00 c0.00-52.944, 43.12-96.00, 96.00-96.00
|
1506 |
-
c 52.992,0.00, 96.00,43.056, 96.00,96.00L 288.00,224.00 c0.00,13.216, 10.816,24.00, 24.00,24.00c 13.248,0.00, 23.968-10.784, 23.968-24.00l 64.00,0.00 c0.00,13.216, 10.88,24.00, 24.00,24.00
|
1507 |
-
c 13.248,0.00, 24.00-10.784, 24.00-24.00l 64.00,0.00 C 511.968,365.152, 397.216,480.00, 256.00,480.00z" horiz-adv-x="511.9679870605469" />
|
1508 |
-
<glyph unicode="" d="M 354.192,166.00L 512.00,288.00L 320.00,288.00L 256.00,480.00L 192.00,288.00L0.00,288.00L 158.00,166.496L 96.00-32.00L 256.256,90.88L 416.128-32.00
|
1509 |
-
z" />
|
1510 |
-
<glyph unicode="" d="M 160.00,416.00c 25.632,0.00, 49.744-10.00, 67.872-28.16C 246.00,369.744, 256.00,345.632, 256.00,320.00s-10.00-49.744-27.68-67.408
|
1511 |
-
c-2.688-2.656-35.808-35.60-68.32-87.056c-32.368,51.376-65.376,84.192-67.872,86.624C 74.00,270.256, 64.00,294.368, 64.00,320.00s 10.00,49.744, 28.128,67.872
|
1512 |
-
S 134.368,416.00, 160.00,416.00 M 160.00,480.00C 119.056,480.00, 78.128,464.368, 46.88,433.12c-62.496-62.464-62.496-163.776,0.00-226.256C 46.88,206.88, 160.00,96.00, 160.00-32.00
|
1513 |
-
c0.00,128.00, 113.12,238.88, 113.12,238.88c 62.496,62.464, 62.496,163.776,0.00,226.256C 241.872,464.368, 200.944,480.00, 160.00,480.00L 160.00,480.00zM 128.00,320.00A32.00,32.00 1260.00 1,0 192.00,320A32.00,32.00 1260.00 1,0 128.00,320z" horiz-adv-x="320" />
|
1514 |
-
<glyph unicode="" d="M 273.12,433.12c-62.496,62.496-163.744,62.496-226.256,0.00c-62.496-62.464-62.496-163.808,0.00-226.24
|
1515 |
-
C 46.88,206.88, 160.00,96.00, 160.00-32.00c0.00,128.00, 113.12,238.88, 113.12,238.88C 335.632,269.312, 335.632,370.656, 273.12,433.12z M 160.00,256.00c-35.376,0.00-64.00,28.624-64.00,64.00
|
1516 |
-
s 28.624,64.00, 64.00,64.00s 64.00-28.624, 64.00-64.00S 195.376,256.00, 160.00,256.00z" horiz-adv-x="320" />
|
1517 |
-
<glyph unicode="" d="M 128.00,480.00C 57.312,480.00,0.00,422.688,0.00,352.00s 128.00-384.00, 128.00-384.00s 128.00,313.312, 128.00,384.00S 198.688,480.00, 128.00,480.00z M 128.00,288.00c-35.344,0.00-64.00,28.656-64.00,64.00
|
1518 |
-
s 28.656,64.00, 64.00,64.00s 64.00-28.656, 64.00-64.00S 163.344,288.00, 128.00,288.00z" horiz-adv-x="256" />
|
1519 |
-
<glyph unicode="" d="M 288.368,256.40l 92.624,0.00 c-11.744,45.376-47.248,80.912-92.624,92.624L 288.368,256.40 zM 288.368,191.60l0.00-92.592 c 45.376,11.68, 80.88,47.248, 92.624,92.592L 288.368,191.60 zM 223.568,256.40L 223.568,349.024 c-45.376-11.712-80.944-47.248-92.624-92.624L 223.568,256.40 zM 223.568,191.60L 130.944,191.60 c 11.68-45.344, 47.248-80.912, 92.624-92.592L 223.568,191.60 zM 288.368,415.152c 81.184-13.744, 144.992-77.568, 158.752-158.752L 512.00,256.40 C 497.184,373.376, 405.376,465.216, 288.368,480.00L 288.368,415.152 z
|
1520 |
-
M 64.816,256.40C 78.56,337.60, 142.368,401.408, 223.568,415.152L 223.568,480.00 C 106.624,465.216, 14.752,373.376,0.00,256.40L 64.816,256.40 zM 223.568,32.88c-81.184,13.744-144.992,77.504-158.752,158.72L0.00,191.60 C 14.752,74.624, 106.624-17.248, 223.568-32.00
|
1521 |
-
L 223.568,32.88 zM 447.12,191.60c-13.744-81.216-77.568-144.976-158.752-158.72L 288.368-32.00 C 405.376-17.248, 497.184,74.624, 512.00,191.60
|
1522 |
-
L 447.12,191.60 z" />
|
1523 |
-
<glyph unicode="" d="M0.00,32.00L 384.00,32.00L 384.00-32.00L0.00-32.00zM 256.00,192.00L 256.00,480.00L 128.00,480.00L 128.00,192.00L 64.00,192.00L 192.00,32.00L 320.00,192.00 z" horiz-adv-x="384" />
|
1524 |
-
<glyph unicode="" d="M0.00,480.00L 384.00,480.00L 384.00,416.00L0.00,416.00zM 128.00,256.00L 128.00-32.00L 256.00-32.00L 256.00,256.00L 320.00,256.00L 192.00,416.00L 64.00,256.00 z" horiz-adv-x="384" />
|
1525 |
-
<glyph unicode="" d="M 384.00,416.00c-6.00,0.00-11.808-0.944-17.632-1.808C 344.064,453.68, 302.816,480.00, 256.00,480.00c-47.808,0.00-89.088-26.688-111.056-65.568
|
1526 |
-
C 139.312,415.184, 133.712,416.00, 128.00,416.00c-70.592,0.00-128.00-57.44-128.00-128.00s 57.408-128.00, 128.00-128.00l 96.00,0.00 l0.00-96.00 l-64.00,0.00 l 96.00-96.00l 96.00,96.00l-64.00,0.00 l0.00,96.00 l 96.00,0.00 c 70.624,0.00, 128.00,57.44, 128.00,128.00S 454.624,416.00, 384.00,416.00z M 384.00,224.00L 128.00,224.00
|
1527 |
-
c-35.28,0.00-64.00,28.688-64.00,64.00c0.00,35.056, 31.088,62.192, 64.064,63.12c 0.128-15.056, 2.752-29.936, 8.00-43.936l 59.936,22.496C 193.344,336.752, 192.00,344.32, 192.00,352.00
|
1528 |
-
c0.00,35.312, 28.72,64.00, 64.00,64.00c 20.72,0.00, 39.408-10.256, 51.248-26.192C 276.32,366.432, 256.00,329.68, 256.00,288.00l 64.00,0.00 c0.00,35.312, 28.752,64.00, 64.00,64.00s 64.00-28.688, 64.00-64.00
|
1529 |
-
S 419.248,224.00, 384.00,224.00z" />
|
1530 |
-
<glyph unicode="" d="M 384.00,416.00c-6.00,0.00-11.808-0.992-17.632-1.744C 344.064,453.632, 302.816,480.00, 256.00,480.00c-47.808,0.00-89.088-26.624-111.056-65.632
|
1531 |
-
C 139.312,415.12, 133.712,416.00, 128.00,416.00c-70.592,0.00-128.00-57.376-128.00-128.00s 57.408-128.00, 128.00-128.00l 256.00,0.00 c 70.624,0.00, 128.00,57.376, 128.00,128.00S 454.624,416.00, 384.00,416.00z M 384.00,224.00L 128.00,224.00 c-35.28,0.00-64.00,28.752-64.00,64.00
|
1532 |
-
c0.00,35.12, 31.088,62.128, 64.064,63.12C 128.192,336.00, 130.816,321.248, 136.064,307.248l 59.936,22.368C 193.344,336.752, 192.00,344.256, 192.00,352.00c0.00,35.248, 28.72,64.00, 64.00,64.00
|
1533 |
-
c 20.72,0.00, 39.408-10.256, 51.248-26.256C 276.32,366.368, 256.00,329.68, 256.00,288.00l 64.00,0.00 c0.00,35.248, 28.752,64.00, 64.00,64.00s 64.00-28.752, 64.00-64.00S 419.248,224.00, 384.00,224.00zM 256.00,160.00L 160.00,64.00L 224.00,64.00L 224.00-32.00L 288.00-32.00L 288.00,64.00L 352.00,64.00 z" />
|
1534 |
-
<glyph unicode="" d="M 320.00,480.00l0.00-62.00 c0.00-25.632-10.00-49.744-28.064-67.808L 110.88,170.128C 82.256,141.568, 66.496,104.064, 64.752,64.00L0.00,64.00
|
1535 |
-
l 96.00-96.00l 96.00,96.00L 128.688,64.00 c 1.68,23.008, 10.944,44.368, 27.376,60.88l 181.056,180.00C 367.376,335.12, 384.00,375.248, 384.00,418.00L 384.00,480.00 L 320.00,480.00 zM 383.248,64.00c-1.744,40.064-17.568,77.568-46.192,106.256l-35.68,35.44L 256.00,160.56l 35.872-35.68
|
1536 |
-
c 16.496-16.432, 25.744-37.872, 27.44-60.88L 256.00,64.00 l 96.00-96.00l 96.00,96.00L 383.248,64.00 z" horiz-ad
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|