PowerPress Podcasting plugin by Blubrry - Version 8.1

Version Description

  • Eliminated Simple Mode
  • Replaced Simple Mode with a Getting Started section which shows up the first time someone opens PowerPress
  • Getting Started includes feed info settings, feed import, and media migration
  • Getting Started can also be revisited at any time
  • Added trim call for ajax returns in case website is sending extra new lines due to a theme or plugin
  • Now using the latest media detection library (getid3) in WordPress
Download this release

Release Info

Developer benbeecroft
Plugin Icon 128x128 PowerPress Podcasting plugin by Blubrry
Version 8.1
Comparing to
See all releases

Code changes from version 8.0.3 to 8.1

.gitignore ADDED
@@ -0,0 +1 @@
 
1
+ *.bak
class.powerpress_onboarding.php ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class PowerpressOnboarding
3
+ {
4
+ function __construct()
5
+ {
6
+ wp_enqueue_style('powerpress_onboarding_styles',plugin_dir_url( __FILE__ ) . 'css/onboarding.css' );
7
+ }
8
+
9
+ public function router($GET) {
10
+ if(empty($GET['step'])) {
11
+ include 'views/onboarding/start.php';
12
+ }
13
+ else {
14
+ switch ($GET['step']) {
15
+ case 'nohost':
16
+ include 'views/onboarding/nohost.php';
17
+ break;
18
+ case 'blubrrySignin':
19
+ include 'views/onboarding/blubrry_signin.php';
20
+ break;
21
+ case 'showBasics':
22
+ include 'views/onboarding/show_basics.php';
23
+ break;
24
+ case 'createEpisode':
25
+ include 'views/onboarding/createepisode.php';
26
+ break;
27
+ case 'wantStats':
28
+ include 'views/onboarding/want_stats.php';
29
+ break;
30
+ default:
31
+ include 'views/onboarding/start.php';
32
+ break;
33
+ }
34
+ }
35
+ }
36
+ }
css/admin.css CHANGED
@@ -443,10 +443,12 @@ a.pp-expand-section:visited {
443
  .pp-expand-section:before {
444
  content: ' \25C4'; /* &#9668; */
445
  content: '+';
 
446
  }
447
  .pp-expand-section-expanded:before {
448
  content: ' \25BC';
449
  content: '-';
 
450
  }
451
  .bbplayer_settings .form-table th{
452
  padding-bottom: 0;
443
  .pp-expand-section:before {
444
  content: ' \25C4'; /* &#9668; */
445
  content: '+';
446
+ line-height: 20px;
447
  }
448
  .pp-expand-section-expanded:before {
449
  content: ' \25BC';
450
  content: '-';
451
+ line-height: 16px;
452
  }
453
  .bbplayer_settings .form-table th{
454
  padding-bottom: 0;
css/onboarding.css ADDED
@@ -0,0 +1,757 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ body,
2
+ input,
3
+ select,
4
+ textarea,
5
+ body * {
6
+ font-family: 'Roboto', sans-serif;
7
+ box-sizing: border-box;
8
+ }
9
+ body::after, body::before,
10
+ input::after,
11
+ input::before,
12
+ select::after,
13
+ select::before,
14
+ textarea::after,
15
+ textarea::before,
16
+ body *::after,
17
+ body *::before {
18
+ box-sizing: border-box;
19
+ }
20
+
21
+ body {
22
+ background-image: -webkit-linear-gradient(top, #f2f2f2, #e6e6e6);
23
+ }
24
+
25
+ /* Container */
26
+
27
+ .pp_container {
28
+ position: relative;
29
+ max-width: 80rem;
30
+ margin: 2rem auto;
31
+ background: #fff;
32
+ width: 100%;
33
+ padding: 3rem 5rem;
34
+ border-radius: 4px;
35
+ }
36
+ .pp_container::before {
37
+ content: '';
38
+ position: absolute;
39
+ top: 0;
40
+ left: 0;
41
+ right: 0;
42
+ bottom: 0;
43
+ box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2);
44
+ -webkit-transform: scale(0.98);
45
+ transform: scale(0.98);
46
+ -webkit-transition: -webkit-transform 0.28s ease-in-out;
47
+ transition: -webkit-transform 0.28s ease-in-out;
48
+ transition: transform 0.28s ease-in-out;
49
+ transition: transform 0.28s ease-in-out, -webkit-transform 0.28s ease-in-out;
50
+ z-index: -1;
51
+ }
52
+ .pp_container:hover::before {
53
+ -webkit-transform: scale(1);
54
+ transform: scale(1);
55
+ }
56
+
57
+ .pp_button-container {
58
+ text-align: center;
59
+ }
60
+
61
+
62
+ .pp_flex-grid {
63
+ display: flex;
64
+ }
65
+
66
+ .pp_flex-grid .pp_col {
67
+ flex: 1;
68
+ margin: 0 25px;
69
+ }
70
+
71
+ .pp_flex-grid-thirds {
72
+ display: flex;
73
+ justify-content: space-between;
74
+ }
75
+
76
+ .pp_flex-grid-thirds .pp_col {
77
+ width: 32%;
78
+ }
79
+
80
+ @media (max-width: 400px) {
81
+ .pp_.flex-grid,
82
+ .pp_.flex-grid-thirds {
83
+ display: block;
84
+ .pp_col {
85
+ width: 100%;
86
+ margin: 0 0 10px 0;
87
+ }
88
+ }
89
+ }
90
+
91
+
92
+
93
+
94
+ * {
95
+ box-sizing: border-box;
96
+ }
97
+ .pp_.flex-grid {
98
+ margin: 0 0 20px 0;
99
+ }
100
+ .pp_.col {
101
+ background: salmon;
102
+ padding: 20px;
103
+ }
104
+
105
+
106
+ h1, h2, h3, h4, h5, h6 {
107
+ font-weight: 500;
108
+ line-height: 1.5;
109
+ margin: 0 0 .5rem 0;
110
+ color: #333;
111
+ }
112
+
113
+ h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
114
+ color: inherit;
115
+ text-decoration: none;
116
+ }
117
+
118
+ h2 {
119
+ font-size: 1.5rem;
120
+ }
121
+
122
+ h3 {
123
+ font-size: 1.35rem;
124
+ }
125
+
126
+ h4 {
127
+ font-size: 1.15rem;
128
+ }
129
+
130
+ h5 {
131
+ font-size: 0.9rem;
132
+ }
133
+
134
+ h6 {
135
+ font-size: 0.7rem;
136
+ }
137
+
138
+ .pp_small {
139
+ font-size: 10px;
140
+ color: #888888;
141
+ }
142
+
143
+ hr {
144
+ border: 0;
145
+ border-bottom: solid 1px;
146
+ margin: 2rem 0;
147
+ }
148
+
149
+ hr.major {
150
+ margin: 3rem 0;
151
+ }
152
+
153
+ .pp_align-left {
154
+ text-align: left;
155
+ }
156
+
157
+ .pp_align-center {
158
+ text-align: center;
159
+ }
160
+
161
+ .pp_align-right {
162
+ text-align: right;
163
+ }
164
+
165
+ input, select, textarea {
166
+ color: #555;
167
+ }
168
+
169
+ a {
170
+ color: #8a4680;
171
+ }
172
+
173
+ strong, b {
174
+ color: #555;
175
+ }
176
+
177
+ blockquote {
178
+ border-left-color: rgba(144, 144, 144, 0.25);
179
+ }
180
+
181
+ code {
182
+ background: rgba(144, 144, 144, 0.075);
183
+ border-color: rgba(144, 144, 144, 0.25);
184
+ }
185
+
186
+ hr {
187
+ border-bottom-color: rgba(144, 144, 144, 0.25);
188
+ }
189
+
190
+ /* Box */
191
+
192
+
193
+ .pp_leftline {
194
+ border-left: 3px solid #efefef;
195
+ padding-left: 15px;
196
+
197
+ }
198
+
199
+ .pp_box {
200
+ height: 100%;
201
+ margin-bottom: 2rem;
202
+ background: #FFF;
203
+ padding: 3rem;
204
+ border: 1px solid rgba(144, 144, 144, 0.25);
205
+ }
206
+
207
+ .pp_box header h2 {
208
+ margin-bottom: 2rem;
209
+ }
210
+
211
+ .pp_box header p {
212
+ text-transform: uppercase;
213
+ font-size: .75rem;
214
+ font-weight: 300;
215
+ margin: 0 0 .25rem 0;
216
+ padding: 0 0 .75rem 0;
217
+ letter-spacing: .25rem;
218
+ }
219
+
220
+ .pp_box header p:after {
221
+ content: '';
222
+ position: absolute;
223
+ margin: auto;
224
+ right: 0;
225
+ bottom: 0;
226
+ left: 0;
227
+ width: 50%;
228
+ height: 1px;
229
+ background-color: rgba(0, 0, 0, 0.125);
230
+ }
231
+
232
+
233
+ .pp_box > :last-child,
234
+ .pp_box > :last-child > :last-child,
235
+ .pp_box > :last-child > :last-child > :last-child {
236
+ margin-bottom: 0;
237
+ }
238
+
239
+ .pp_box.alt {
240
+ border: 0;
241
+ border-radius: 0;
242
+ padding: 0;
243
+ }
244
+
245
+ @media screen and (max-width: 736px) {
246
+
247
+ .pp_box .pp_content {
248
+ padding: 2rem;
249
+ }
250
+
251
+ }
252
+
253
+
254
+
255
+
256
+
257
+ #wpcontent {
258
+ background-image: -webkit-linear-gradient(top, #f2f2f2, #e6e6e6);
259
+ }
260
+
261
+ fieldset {
262
+ margin: 0 0 3rem;
263
+ }
264
+
265
+ select {
266
+ width: 100%;
267
+ }
268
+
269
+ .pp_input-field {
270
+ position: relative;
271
+ width: 25%;
272
+ }
273
+ .pp_input-field-thirds {
274
+ position: relative;
275
+ width: 100%;
276
+ }
277
+
278
+ input[type="text"], input[type="password"] {
279
+ width: 100%;
280
+ padding-left: 0.75rem;
281
+ transition: all .15s ease;
282
+ }
283
+
284
+ .pp_outlined {
285
+ height: 38px;
286
+ box-shadow: inset 0 0 0 1px #b2b2b2;
287
+ border-radius: 4px;
288
+ background: transparent;
289
+ }
290
+
291
+
292
+ .pp_outlined:focus {
293
+ outline: none;
294
+ box-shadow: inset 0 0 0 2px #ffb300;
295
+ }
296
+
297
+ .pp_outlined + label {
298
+ background: #ffffff;
299
+ top: .8rem;
300
+ position: absolute;
301
+ left: 0.75rem;
302
+ color: grey;
303
+ transition: all .15s ease;
304
+ padding: 0px;
305
+ font-size: 12px;
306
+ pointer-events: none;
307
+ }
308
+
309
+ .pp_outlined:focus + label, .pp_outlined:valid + label {
310
+ color: black;
311
+ transform: scale(.8) translateY(-24px) translateX(-9px);
312
+ padding: 0 3px;
313
+ }
314
+
315
+ .pp_form-radio,
316
+ .pp_form-group {
317
+ position: relative;
318
+ margin-top: 1.25rem;
319
+ margin-bottom: 2.25rem;
320
+ }
321
+
322
+ .pp_form-inline > .pp_form-group,
323
+ .pp_form-inline > .pp_btn {
324
+ display: inline-block;
325
+ margin-bottom: 0;
326
+ }
327
+
328
+ .pp_form-help {
329
+ margin-top: 0.125rem;
330
+ margin-left: 0.125rem;
331
+ color: #b3b3b3;
332
+ font-size: 0.8rem;
333
+ }
334
+ .pp_checkbox .pp_form-help, .pp_form-radio .pp_form-help, .pp_form-group .pp_form-help {
335
+ position: absolute;
336
+ width: 100%;
337
+ }
338
+ .pp_checkbox .pp_form-help {
339
+ position: relative;
340
+ margin-bottom: 1rem;
341
+ }
342
+ .pp_form-radio .pp_form-help {
343
+ padding-top: 0.25rem;
344
+ margin-top: -1rem;
345
+ }
346
+
347
+
348
+
349
+ .pp_checkbox label,
350
+ .pp_form-radio label {
351
+ position: relative;
352
+ cursor: pointer;
353
+ padding-left: 2rem;
354
+ text-align: left;
355
+ color: #333;
356
+ display: block;
357
+ }
358
+ .pp_checkbox input,
359
+ .pp_form-radio input {
360
+ width: auto;
361
+ opacity: 0.00000001;
362
+ position: absolute;
363
+ left: 0;
364
+ }
365
+
366
+ .pp_radio {
367
+ margin-bottom: 1rem;
368
+ }
369
+ .pp_radio .pp_helper {
370
+ position: absolute;
371
+ top: -0.25rem;
372
+ left: -0.25rem;
373
+ cursor: pointer;
374
+ display: block;
375
+ font-size: 1rem;
376
+ -webkit-user-select: none;
377
+ -moz-user-select: none;
378
+ -ms-user-select: none;
379
+ user-select: none;
380
+ color: #999;
381
+ }
382
+ .pp_radio .pp_helper::before, .pp_radio .pp_helper::after {
383
+ content: '';
384
+ position: absolute;
385
+ left: 0;
386
+ top: 0;
387
+ margin: 0.25rem;
388
+ width: 1rem;
389
+ height: 1rem;
390
+ -webkit-transition: -webkit-transform 0.28s ease;
391
+ transition: -webkit-transform 0.28s ease;
392
+ transition: transform 0.28s ease;
393
+ transition: transform 0.28s ease, -webkit-transform 0.28s ease;
394
+ border-radius: 50%;
395
+ border: 0.125rem solid currentColor;
396
+ }
397
+ .pp_radio .pp_helper::after {
398
+ -webkit-transform: scale(0);
399
+ transform: scale(0);
400
+ background-color: #337ab7;
401
+ border-color: #337ab7;
402
+ }
403
+ .pp_radio label:hover .pp_helper {
404
+ color: #337ab7;
405
+ }
406
+ .pp_radio input:checked ~ .pp_helper::after {
407
+ -webkit-transform: scale(0.5);
408
+ transform: scale(0.5);
409
+ }
410
+ .pp_radio input:checked ~ .pp_helper::before {
411
+ color: #337ab7;
412
+ }
413
+
414
+ .pp_checkbox {
415
+ margin-bottom: 1rem;
416
+ }
417
+ .pp_checkbox .pp_helper {
418
+ color: #999;
419
+ position: absolute;
420
+ top: 0;
421
+ left: 0;
422
+ width: 1rem;
423
+ height: 1rem;
424
+ z-index: 0;
425
+ border: 0.125rem solid currentColor;
426
+ border-radius: 0.0625rem;
427
+ -webkit-transition: border-color 0.28s ease;
428
+ transition: border-color 0.28s ease;
429
+ }
430
+ .pp_checkbox .pp_helper::before, .pp_checkbox .pp_helper::after {
431
+ position: absolute;
432
+ height: 0;
433
+ width: 0.2rem;
434
+ background-color: #337ab7;
435
+ display: block;
436
+ -webkit-transform-origin: left top;
437
+ transform-origin: left top;
438
+ border-radius: 0.25rem;
439
+ content: '';
440
+ -webkit-transition: opacity 0.28s ease, height 0s linear 0.28s;
441
+ transition: opacity 0.28s ease, height 0s linear 0.28s;
442
+ opacity: 0;
443
+ }
444
+ .pp_checkbox .pp_helper::before {
445
+ top: 0.65rem;
446
+ left: 0.38rem;
447
+ -webkit-transform: rotate(-135deg);
448
+ transform: rotate(-135deg);
449
+ box-shadow: 0 0 0 0.0625rem #fff;
450
+ }
451
+ .pp_checkbox .helper::after {
452
+ top: 0.3rem;
453
+ left: 0;
454
+ -webkit-transform: rotate(-45deg);
455
+ transform: rotate(-45deg);
456
+ }
457
+ .pp_checkbox label:hover .pp_helper {
458
+ color: #337ab7;
459
+ }
460
+ .pp_checkbox input:checked ~ .pp_helper {
461
+ color: #337ab7;
462
+ }
463
+ .pp_checkbox input:checked ~ .pp_helper::after, .pp_checkbox input:checked ~ .pp_helper::before {
464
+ opacity: 1;
465
+ -webkit-transition: height 0.28s ease;
466
+ transition: height 0.28s ease;
467
+ }
468
+ .pp_checkbox input:checked ~ .pp_helper::after {
469
+ height: 0.5rem;
470
+ }
471
+ .pp_checkbox input:checked ~ .pp_helper::before {
472
+ height: 1.2rem;
473
+ -webkit-transition-delay: 0.28s;
474
+ transition-delay: 0.28s;
475
+ }
476
+
477
+ .pp_radio + .pp_radio,
478
+ .pp_checkbox + .pp_checkbox {
479
+ margin-top: 1rem;
480
+ }
481
+
482
+ .pp_has-error .pp_legend.pp_legend, .pp_has-error.pp_form-group .pp_control-label.pp_control-label {
483
+ color: #d9534f;
484
+ }
485
+ .pp_has-error.pp_form-group .pp_form-help,
486
+ .pp_has-error.pp_form-group .pp_helper, .pp_has-error.pp_checkbox .pp_form-help,
487
+ .pp_has-error.pp_checkbox .pp_helper, .pp_has-error.pp_radio .pp_form-help,
488
+ .pp_has-error.pp_radio .pp_helper, .pp_has-error.pp_form-radio .pp_form-help,
489
+ .pp_has-error.pp_form-radio .pp_helper {
490
+ color: #d9534f;
491
+ }
492
+ .pp_has-error .pp_bar::before {
493
+ background: #d9534f;
494
+ left: 0;
495
+ width: 100%;
496
+ }
497
+
498
+ .pp_button {
499
+ position: relative;
500
+ background: currentColor;
501
+ border: 1px solid currentColor;
502
+ font-size: 1.1rem;
503
+ color: #1976D2;
504
+ margin: 0;
505
+ padding: 0.75rem 3rem;
506
+ cursor: pointer;
507
+ -webkit-transition: background-color 0.28s ease, color 0.28s ease, box-shadow 0.28s ease;
508
+ transition: background-color 0.28s ease, color 0.28s ease, box-shadow 0.28s ease;
509
+ overflow: hidden;
510
+ box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
511
+ }
512
+
513
+ .pp_button span {
514
+ color: #fff;
515
+ position: relative;
516
+ z-index: 1;
517
+ }
518
+
519
+ .pp_button::before {
520
+ content: '';
521
+ position: absolute;
522
+ background: #003B75;
523
+ border: 50vh solid #1d4567;
524
+ width: 30vh;
525
+ height: 30vh;
526
+ border-radius: 50%;
527
+ display: block;
528
+ top: 50%;
529
+ left: 50%;
530
+ z-index: 0;
531
+ opacity: 1;
532
+ -webkit-transform: translate(-50%, -50%) scale(0);
533
+ transform: translate(-50%, -50%) scale(0);
534
+ }
535
+ .pp_button:hover {
536
+ color: #003B75;
537
+ box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12), 0 3px 5px -1px rgba(0, 0, 0, 0.2);
538
+ }
539
+ .pp_button:active::before, .pp_button:focus::before {
540
+ -webkit-transition: opacity 0.28s ease 0.364s, -webkit-transform 1.12s ease;
541
+ transition: opacity 0.28s ease 0.364s, -webkit-transform 1.12s ease;
542
+ transition: transform 1.12s ease, opacity 0.28s ease 0.364s;
543
+ transition: transform 1.12s ease, opacity 0.28s ease 0.364s, -webkit-transform 1.12s ease;
544
+ -webkit-transform: translate(-50%, -50%) scale(1);
545
+ transform: translate(-50%, -50%) scale(1);
546
+ opacity: 0;
547
+ }
548
+ .pp_button:focus {
549
+ outline: none;
550
+ }
551
+
552
+ .pp_button_alt {
553
+ position: relative;
554
+ background: #ffffff;
555
+ border: 1px solid #c4c4c4;
556
+ font-size: 1.1rem;
557
+ color: #333;
558
+ margin: 0;
559
+ padding: 0.75rem 3rem;
560
+ cursor: pointer;
561
+ -webkit-transition: background-color 0.28s ease, color 0.28s ease, box-shadow 0.28s ease;
562
+ transition: background-color 0.28s ease, color 0.28s ease, box-shadow 0.28s ease;
563
+ overflow: hidden;
564
+ box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
565
+ }
566
+
567
+ .pp_button_alt span {
568
+ color: #333;
569
+ position: relative;
570
+ z-index: 1;
571
+ }
572
+
573
+
574
+
575
+ .pp_button_alt::before {
576
+ content: '';
577
+ position: absolute;
578
+ background: #efefef;
579
+ width: 30vh;
580
+ height: 30vh;
581
+ border-radius: 50%;
582
+ display: block;
583
+ top: 50%;
584
+ left: 50%;
585
+ z-index: 0;
586
+ opacity: 1;
587
+ -webkit-transform: translate(-50%, -50%) scale(0);
588
+ transform: translate(-50%, -50%) scale(0);
589
+ }
590
+ .pp_button_alt:hover {
591
+ color: #efefef;
592
+ box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12), 0 3px 5px -1px rgba(0, 0, 0, 0.2);
593
+ }
594
+ .pp_button_alt:active::before, .pp_button_alt:focus::before {
595
+ -webkit-transition: opacity 0.28s ease 0.364s, -webkit-transform 1.12s ease;
596
+ transition: opacity 0.28s ease 0.364s, -webkit-transform 1.12s ease;
597
+ transition: transform 1.12s ease, opacity 0.28s ease 0.364s;
598
+ transition: transform 1.12s ease, opacity 0.28s ease 0.364s, -webkit-transform 1.12s ease;
599
+ -webkit-transform: translate(-50%, -50%) scale(1);
600
+ transform: translate(-50%, -50%) scale(1);
601
+ opacity: 0;
602
+ }
603
+ .pp_button_alt:focus {
604
+ outline: none;
605
+ }
606
+
607
+ /* Image */
608
+
609
+ .pp_image {
610
+ height: 50%;
611
+ }
612
+
613
+ .pp_image.pp_fit {
614
+ margin: 0 auto;
615
+ width: 100%;
616
+ }
617
+
618
+ #blubrry-logo-onboarding {
619
+ height: 1.5rem;
620
+ margin: 0 0 0.5ch 1rem;
621
+ vertical-align: bottom;
622
+ }
623
+
624
+ .pp_content {
625
+ height: 50%;
626
+ }
627
+
628
+ .btn-caption-container {
629
+ height: 50%;
630
+ }
631
+
632
+ .pp_image img {
633
+ width: 50%;
634
+ margin: 0 auto;
635
+ }
636
+ .pp_image.center > img {
637
+ display: block;
638
+ margin-left: auto;
639
+ margin-right: auto;
640
+ }
641
+ .pp_button.show_button {
642
+ min-width: 240px;
643
+ margin-top: 15px;
644
+ }
645
+ .pp_input-field-login {
646
+ position: relative;
647
+ }
648
+ .pp_file_upload {
649
+ opacity: 0;
650
+ left: 0;
651
+ top: 0;
652
+ z-index: 999;
653
+ height:50px;
654
+ }
655
+ .pp_file_upload::-webkit-file-upload-button {
656
+ height:50px;
657
+ }
658
+ .image_center {
659
+ display: block;
660
+ margin-left: auto;
661
+ margin-right: auto;
662
+ width: 40%;
663
+ }
664
+
665
+ .image_wrapper {
666
+ width: 100%;
667
+ height: auto;
668
+ }
669
+
670
+ #upload-artwork-button {
671
+ float: right;
672
+ width: auto;
673
+ min-height: 40px;
674
+ margin: 1em 0 0 1em;
675
+ }
676
+ #filepath {
677
+ float: left;
678
+ width: 100%;
679
+ margin: 3ch 0 2em 0;
680
+ }
681
+ #artwork-spec {
682
+ margin-top: 6em;
683
+ }
684
+ #filePath {
685
+ width: 100%;
686
+ }
687
+ .pp_input-field-login, button[name="signin"] {
688
+ width: 40%;
689
+ }
690
+ p, h5.pp_align-center {
691
+ font-size: 16px;
692
+ }
693
+ p.pp-smaller-text {
694
+ font-size: 13px;
695
+ }
696
+
697
+ .wrap div.error {
698
+ border-right-width: 0;
699
+ border-top-width: 0;
700
+ border-bottom-width: 0;
701
+ border-left-width: 3px;
702
+ color: #dc3232;
703
+ box-shadow: none;
704
+ margin-bottom: 0;
705
+ }
706
+
707
+ @media (max-width: 1095px) {
708
+ #showbasics_artwork {
709
+ display: block;
710
+ }
711
+ #artwork-spec {
712
+ margin-top: 0;
713
+ }
714
+ #upload-artwork-button {
715
+ width: 95%;
716
+ text-align: center;
717
+ margin-bottom: 1em;
718
+ margin-left: 0;
719
+ float: left;
720
+ }
721
+ .pp_input-field-login, button[name="signin"] {
722
+ width: 50%;
723
+ }
724
+ }
725
+
726
+ @media (max-width: 736px) {
727
+ .pp_flex-grid {
728
+ display: block;
729
+ }
730
+ .pp_container {
731
+ padding: 3rem 1rem;
732
+ }
733
+ .bpp_input_med {
734
+ width: 100%;
735
+ }
736
+ #showbasics_artwork_upload {
737
+ margin: 0;
738
+ }
739
+ .pp_button_alt, .pp_button {
740
+ padding: 0.75rem;
741
+ }
742
+ }
743
+
744
+ @media (max-width: 610px) {
745
+ #filePath {
746
+ width: 100%;
747
+ }
748
+ }
749
+
750
+ @media (max-width: 475px) {
751
+ .pp_box {
752
+ padding: 1rem;
753
+ }
754
+ .pp_input-field-login, button[name="signin"] {
755
+ width: 90%;
756
+ }
757
+ }
images/blubrry_icon.png ADDED
Binary file
images/onboarding/blubrry.png ADDED
Binary file
images/onboarding/blubrrysignin.png ADDED
Binary file
images/onboarding/cancel.svg ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ <svg id="baseline-error-24px" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 41.836 41.836">
2
+ <path id="Path_101" data-name="Path 101" d="M0,0H41.836V41.836H0Z" fill="none"/>
3
+ <path id="Path_102" data-name="Path 102" d="M19.432,2A17.432,17.432,0,1,0,36.863,19.432,17.438,17.438,0,0,0,19.432,2Zm1.743,26.148H17.689V24.661h3.486Zm0-6.973H17.689V10.716h3.486Z" transform="translate(1.486 1.486)" fill="#e51c23"/>
4
+ </svg>
images/onboarding/checkmark.svg ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ <svg id="baseline-check_circle-24px" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 41 41">
2
+ <path id="Path_99" data-name="Path 99" d="M0,0H41V41H0Z" fill="none"/>
3
+ <path id="Path_100" data-name="Path 100" d="M19.083,2A17.083,17.083,0,1,0,36.167,19.083,17.09,17.09,0,0,0,19.083,2ZM15.667,27.625,7.125,19.083l2.409-2.409,6.133,6.116L28.633,9.824l2.409,2.426Z" transform="translate(1.417 1.417)" fill="#4caf50"/>
4
+ </svg>
images/onboarding/free_tools.png ADDED
Binary file
images/onboarding/mic.png ADDED
Binary file
images/onboarding/no_start.png ADDED
Binary file
images/onboarding/nohost.png ADDED
Binary file
images/onboarding/otherhost.png ADDED
Binary file
images/onboarding/planning.png ADDED
Binary file
images/onboarding/rss.png ADDED
Binary file
images/onboarding/self_host.png ADDED
Binary file
images/onboarding/signinblubrry.png ADDED
Binary file
images/onboarding/signupblubrry.png ADDED
Binary file
images/onboarding/yes_start.png ADDED
Binary file
mp3info.class.php CHANGED
@@ -779,7 +779,9 @@
779
  define('GETID3_TEMP_DIR', $temp_dir);
780
  }
781
 
782
- if( defined('POWERPRESS_GETID3_LIBRARY') && is_file(POWERPRESS_GETID3_LIBRARY) )
 
 
783
  require_once(POWERPRESS_GETID3_LIBRARY);
784
  else if( defined('POWERPRESS_ABSPATH') )
785
  require_once(POWERPRESS_ABSPATH.'/getid3/getid3.php');
779
  define('GETID3_TEMP_DIR', $temp_dir);
780
  }
781
 
782
+ if( !empty($GLOBALS['wp_version']) && version_compare($GLOBALS['wp_version'], 5.2, '>' ) && file_exists(ABSPATH . WPINC . '/ID3/getid3.php') )
783
+ require_once( ABSPATH . WPINC . '/ID3/getid3.php' );
784
+ else if( defined('POWERPRESS_GETID3_LIBRARY') && is_file(POWERPRESS_GETID3_LIBRARY) )
785
  require_once(POWERPRESS_GETID3_LIBRARY);
786
  else if( defined('POWERPRESS_ABSPATH') )
787
  require_once(POWERPRESS_ABSPATH.'/getid3/getid3.php');
powerpress.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Blubrry PowerPress
4
  Plugin URI: http://create.blubrry.com/resources/powerpress/
5
  Description: <a href="https://create.blubrry.com/resources/powerpress/" target="_blank">Blubrry PowerPress</a> is the No. 1 Podcasting plugin for WordPress. Developed by podcasters for podcasters; features include Simple and Advanced modes, multiple audio/video player options, subscribe to podcast tools, podcast SEO features, and more! Fully supports Apple Podcasts (previously iTunes), Google Podcasts, Spotify, Stitcher, and Blubrry Podcasting directories, as well as all podcast applications and clients.
6
- Version: 8.0.3
7
  Author: Blubrry
8
  Author URI: https://blubrry.com/
9
  Requires at least: 3.6
@@ -35,7 +35,7 @@ if( !function_exists('add_action') ) {
35
  }
36
 
37
  // WP_PLUGIN_DIR (REMEMBER TO USE THIS DEFINE IF NEEDED)
38
- define('POWERPRESS_VERSION', '8.0.3' );
39
 
40
  // Translation support:
41
  if ( !defined('POWERPRESS_ABSPATH') )
@@ -596,7 +596,7 @@ function powerpress_rss2_head()
596
  echo 'Blubrry PowerPress Podcasting plugin for WordPress (https://www.blubrry.com/powerpress/) -->'.PHP_EOL;
597
 
598
  // Websub!
599
- if(!empty($General['websub_enabled']) && $General['websub_enabled'] == 1) {
600
  echo "\t<atom:link rel=\"hub\" href=\"https://pubsubhubbub.appspot.com/\" />" . PHP_EOL;
601
  }
602
 
3
  Plugin Name: Blubrry PowerPress
4
  Plugin URI: http://create.blubrry.com/resources/powerpress/
5
  Description: <a href="https://create.blubrry.com/resources/powerpress/" target="_blank">Blubrry PowerPress</a> is the No. 1 Podcasting plugin for WordPress. Developed by podcasters for podcasters; features include Simple and Advanced modes, multiple audio/video player options, subscribe to podcast tools, podcast SEO features, and more! Fully supports Apple Podcasts (previously iTunes), Google Podcasts, Spotify, Stitcher, and Blubrry Podcasting directories, as well as all podcast applications and clients.
6
+ Version: 8.1
7
  Author: Blubrry
8
  Author URI: https://blubrry.com/
9
  Requires at least: 3.6
35
  }
36
 
37
  // WP_PLUGIN_DIR (REMEMBER TO USE THIS DEFINE IF NEEDED)
38
+ define('POWERPRESS_VERSION', '8.1' );
39
 
40
  // Translation support:
41
  if ( !defined('POWERPRESS_ABSPATH') )
596
  echo 'Blubrry PowerPress Podcasting plugin for WordPress (https://www.blubrry.com/powerpress/) -->'.PHP_EOL;
597
 
598
  // Websub!
599
+ if(!(defined('POWERPRESS_DISABLE_WEBSUB') && POWERPRESS_DISABLE_WEBSUB )) {
600
  echo "\t<atom:link rel=\"hub\" href=\"https://pubsubhubbub.appspot.com/\" />" . PHP_EOL;
601
  }
602
 
powerpressadmin-basic.php CHANGED
@@ -7,8 +7,6 @@ function powerpress_admin_basic()
7
 
8
  $General = powerpress_get_settings('powerpress_general');
9
  $General = powerpress_default_settings($General, 'basic');
10
- if( !isset($General['advanced_mode_2']) )
11
- $General['advanced_mode_2'] = true;
12
 
13
  $FeedSettings = powerpress_get_settings('powerpress_feed');
14
  $FeedSettings = powerpress_default_settings($FeedSettings, 'editfeed');
@@ -58,12 +56,7 @@ function SelectEmbedField(checked)
58
  }
59
 
60
  jQuery(document).ready(function($) {
61
-
62
- jQuery('#powerpress_advanced_mode_button').click( function(event) {
63
- event.preventDefault();
64
- jQuery('#powerpress_advanced_mode').val('0');
65
- jQuery(this).closest("form").submit();
66
- });
67
 
68
  jQuery('#episode_box_player_links_options').change(function () {
69
 
@@ -133,15 +126,11 @@ jQuery(document).ready(function($) {
133
 
134
  <input type="hidden" name="action" value="powerpress-save-settings" />
135
 
136
-
137
- <input type="hidden" id="powerpress_advanced_mode" name="General[advanced_mode_2]" value="1" />
138
  <input type="hidden" id="save_tab_pos" name="tab" value="<?php echo (empty($_POST['tab'])?0: intval($_POST['tab']) ); ?>" />
139
 
140
  <div id="powerpress_admin_header">
141
  <h2><?php echo __('Blubrry PowerPress Settings', 'powerpress'); ?></h2>
142
- <span class="powerpress-mode"><?php echo __('Advanced Mode', 'powerpress'); ?>
143
- &nbsp; <a href="<?php echo admin_url("admin.php?page=". urlencode(powerpress_admin_get_page()) ."&amp;mode=simple"); ?>" id="powerpress_advanced_mode_button" class="button-primary button-blubrry"><?php echo __('Switch to Simple Mode', 'powerpress'); ?></a>
144
- </span>
145
  </div>
146
 
147
  <div id="powerpress_settings_page" class="powerpress_tabbed_content">
@@ -1041,6 +1030,11 @@ function powerpressadmin_edit_blubrry_services($General, $action_url = false, $a
1041
  <input name="DisableStatsInDashboard" type="checkbox" value="1"<?php if( $DisableStatsInDashboard == true ) echo ' checked'; ?> />
1042
  <?php echo __('Remove Statistics from WordPress Dashboard', 'powerpress'); ?></p>
1043
  <p>
 
 
 
 
 
1044
  <input type="checkbox" id="blubrry_network_mode" value="1" name="General[network_mode]" <?php echo $General['network_mode'] == '1' ? 'checked' : ''; ?> />
1045
  <label for="blubrry_network_mode"><?php echo __('Network mode (publish to multiple Blubrry Hosting Accounts)', 'powerpress') ?></label>
1046
  </p>
@@ -1169,8 +1163,7 @@ function powerpressadmin_appearance($General=false, $Feed = false)
1169
 
1170
  ?>
1171
 
1172
- <!-- start advanced features -->
1173
- <?php if( !empty($General['advanced_mode_2']) ) { ?>
1174
  <h3><?php echo __('Website Settings', 'powerpress'); ?></h3>
1175
  <div id="enable_presentation_settings">
1176
  <table class="form-table">
@@ -1196,8 +1189,7 @@ function powerpressadmin_appearance($General=false, $Feed = false)
1196
  </div><!-- end enable_presentation_settings -->
1197
  <div id="presentation_settings"<?php if($General['disable_appearance']) echo ' style="display: none;"'; ?>>
1198
  <!-- start presentation_settings in advanced mode -->
1199
- <!-- end advanced features -->
1200
- <?php } ?>
1201
 
1202
  <h3><?php echo __('Blog Posts and Pages', 'powerpress'); ?></h3>
1203
 
@@ -1231,8 +1223,7 @@ function powerpressadmin_appearance($General=false, $Feed = false)
1231
  </tr>
1232
  </table>
1233
 
1234
- <?php if( !empty($General['advanced_mode_2']) ) { ?>
1235
- <!-- start advanced features -->
1236
  <table class="form-table">
1237
  <tr valign="top">
1238
  <th scope="row">
@@ -1331,8 +1322,7 @@ function powerpressadmin_appearance($General=false, $Feed = false)
1331
  </table>
1332
 
1333
  <?php powerpressadmin_settings_tab_appearance($General, $Feed, false); ?>
1334
- <!-- end advanced features -->
1335
- <?php } ?>
1336
 
1337
 
1338
  <table class="form-table">
@@ -1357,17 +1347,13 @@ foreach( $linkoptions as $value => $desc )
1357
  <p style="margin-top: 5px;">
1358
  <?php echo __('Use this option if you are having problems with the players not appearing on some or all of your pages.', 'powerpress'); ?>
1359
  </p>
1360
- <?php if( !empty($General['advanced_mode_2']) ) { ?>
1361
  <p style="margin-top: 20px; margin-bottom:0;">
1362
  <?php echo __('If the above option fixes the player issues, then you most likely have a conflicting theme or plugin activated. You can verify your theme is not causing the problem by testing your site using the latest default WordPress theme (twentyfourteen). For plugins, disable them one by one until the player re-appears, which indicates the last plugin deactivated caused the conflict.', 'powerpress'); ?>
1363
  </p>
1364
- <?php } ?>
1365
  </td>
1366
  </tr>
1367
  </table>
1368
 
1369
- <?php if( !empty($General['advanced_mode_2']) ) { ?>
1370
- <!-- start advanced features -->
1371
  <div id="new_window_settings" style="display: <?php echo ( $General['player_function']==1 || $General['player_function']==3 ?'block':'none'); ?>">
1372
  <h3><?php echo __('Play in New Window Settings', 'powerpress'); ?></h3>
1373
  <table class="form-table">
@@ -1409,8 +1395,7 @@ foreach( $linkoptions as $value => $desc )
1409
 
1410
  </div><!-- end presentation_settings in advanced mode -->
1411
  <!-- end presentation settings -->
1412
- <!-- end advanced features -->
1413
- <?php } ?>
1414
  <?php
1415
  } // End powerpress_admin_appearance()
1416
 
@@ -1554,11 +1539,7 @@ function powerpressadmin_edit_artwork($FeedSettings, $General)
1554
  </p>
1555
  <div style="display:none" id="itunes_image_upload">
1556
  <label for="itunes_image_file"><?php echo __('Choose file', 'powerpress'); ?>:</label><input type="file" id="itunes_image_file" name="itunes_image_file" /><br />
1557
- <?php if( !empty($General['advanced_mode_2']) ) { ?>
1558
  <div style="margin-left: 85px;"><label class="powerpress-normal-font"><input name="itunes_image_checkbox_as_rss" type="checkbox" value="1" onchange="powerpress_show_field('rss_image_upload_container', !this.checked)" /> <?php echo __('Also use as RSS image', 'powerpress'); ?></label></div>
1559
- <?php } else { ?>
1560
- <input type="hidden" name="itunes_image_checkbox_as_rss" value="1" />
1561
- <?php } ?>
1562
  </div>
1563
  <?php } ?>
1564
  </td>
@@ -1566,7 +1547,6 @@ function powerpressadmin_edit_artwork($FeedSettings, $General)
1566
  </table>
1567
 
1568
 
1569
- <?php if( !empty($General['advanced_mode_2']) ) { ?>
1570
  <table class="form-table">
1571
  <tr valign="top">
1572
  <th scope="row">
@@ -1609,7 +1589,7 @@ function powerpressadmin_edit_artwork($FeedSettings, $General)
1609
  </tr>
1610
  </table>
1611
  <?php
1612
- }
1613
  }
1614
 
1615
 
7
 
8
  $General = powerpress_get_settings('powerpress_general');
9
  $General = powerpress_default_settings($General, 'basic');
 
 
10
 
11
  $FeedSettings = powerpress_get_settings('powerpress_feed');
12
  $FeedSettings = powerpress_default_settings($FeedSettings, 'editfeed');
56
  }
57
 
58
  jQuery(document).ready(function($) {
59
+
 
 
 
 
 
60
 
61
  jQuery('#episode_box_player_links_options').change(function () {
62
 
126
 
127
  <input type="hidden" name="action" value="powerpress-save-settings" />
128
 
 
 
129
  <input type="hidden" id="save_tab_pos" name="tab" value="<?php echo (empty($_POST['tab'])?0: intval($_POST['tab']) ); ?>" />
130
 
131
  <div id="powerpress_admin_header">
132
  <h2><?php echo __('Blubrry PowerPress Settings', 'powerpress'); ?></h2>
133
+
 
 
134
  </div>
135
 
136
  <div id="powerpress_settings_page" class="powerpress_tabbed_content">
1030
  <input name="DisableStatsInDashboard" type="checkbox" value="1"<?php if( $DisableStatsInDashboard == true ) echo ' checked'; ?> />
1031
  <?php echo __('Remove Statistics from WordPress Dashboard', 'powerpress'); ?></p>
1032
  <p>
1033
+ <?php
1034
+ if (!isset($General['network_mode'])) {
1035
+ $General['network_mode'] = 0;
1036
+ }
1037
+ ?>
1038
  <input type="checkbox" id="blubrry_network_mode" value="1" name="General[network_mode]" <?php echo $General['network_mode'] == '1' ? 'checked' : ''; ?> />
1039
  <label for="blubrry_network_mode"><?php echo __('Network mode (publish to multiple Blubrry Hosting Accounts)', 'powerpress') ?></label>
1040
  </p>
1163
 
1164
  ?>
1165
 
1166
+
 
1167
  <h3><?php echo __('Website Settings', 'powerpress'); ?></h3>
1168
  <div id="enable_presentation_settings">
1169
  <table class="form-table">
1189
  </div><!-- end enable_presentation_settings -->
1190
  <div id="presentation_settings"<?php if($General['disable_appearance']) echo ' style="display: none;"'; ?>>
1191
  <!-- start presentation_settings in advanced mode -->
1192
+
 
1193
 
1194
  <h3><?php echo __('Blog Posts and Pages', 'powerpress'); ?></h3>
1195
 
1223
  </tr>
1224
  </table>
1225
 
1226
+
 
1227
  <table class="form-table">
1228
  <tr valign="top">
1229
  <th scope="row">
1322
  </table>
1323
 
1324
  <?php powerpressadmin_settings_tab_appearance($General, $Feed, false); ?>
1325
+
 
1326
 
1327
 
1328
  <table class="form-table">
1347
  <p style="margin-top: 5px;">
1348
  <?php echo __('Use this option if you are having problems with the players not appearing on some or all of your pages.', 'powerpress'); ?>
1349
  </p>
 
1350
  <p style="margin-top: 20px; margin-bottom:0;">
1351
  <?php echo __('If the above option fixes the player issues, then you most likely have a conflicting theme or plugin activated. You can verify your theme is not causing the problem by testing your site using the latest default WordPress theme (twentyfourteen). For plugins, disable them one by one until the player re-appears, which indicates the last plugin deactivated caused the conflict.', 'powerpress'); ?>
1352
  </p>
 
1353
  </td>
1354
  </tr>
1355
  </table>
1356
 
 
 
1357
  <div id="new_window_settings" style="display: <?php echo ( $General['player_function']==1 || $General['player_function']==3 ?'block':'none'); ?>">
1358
  <h3><?php echo __('Play in New Window Settings', 'powerpress'); ?></h3>
1359
  <table class="form-table">
1395
 
1396
  </div><!-- end presentation_settings in advanced mode -->
1397
  <!-- end presentation settings -->
1398
+
 
1399
  <?php
1400
  } // End powerpress_admin_appearance()
1401
 
1539
  </p>
1540
  <div style="display:none" id="itunes_image_upload">
1541
  <label for="itunes_image_file"><?php echo __('Choose file', 'powerpress'); ?>:</label><input type="file" id="itunes_image_file" name="itunes_image_file" /><br />
 
1542
  <div style="margin-left: 85px;"><label class="powerpress-normal-font"><input name="itunes_image_checkbox_as_rss" type="checkbox" value="1" onchange="powerpress_show_field('rss_image_upload_container', !this.checked)" /> <?php echo __('Also use as RSS image', 'powerpress'); ?></label></div>
 
 
 
1543
  </div>
1544
  <?php } ?>
1545
  </td>
1547
  </table>
1548
 
1549
 
 
1550
  <table class="form-table">
1551
  <tr valign="top">
1552
  <th scope="row">
1589
  </tr>
1590
  </table>
1591
  <?php
1592
+
1593
  }
1594
 
1595
 
powerpressadmin-editfeed.php CHANGED
@@ -277,10 +277,8 @@ function powerpress_admin_editfeed($type='', $type_value = '', $feed_slug = fals
277
  <div id="feed_tab_feed" class="powerpress_tab">
278
  <?php
279
  powerpressadmin_edit_feed_settings($FeedSettings, $General, $FeedAttribs );
280
- if( !empty($General['advanced_mode_2']) ) {
281
- powerpressadmin_edit_funding($FeedSettings, $feed_slug);
282
- powerpressadmin_edit_tv($FeedSettings, $feed_slug);
283
- }
284
  ?>
285
  </div>
286
 
@@ -374,16 +372,16 @@ function powerpressadmin_edit_feed_general($FeedSettings, $General)
374
 
375
  <?php echo __('Enhance Feeds', 'powerpress'); ?></th>
376
  <td>
377
- <ul>
378
- <li><p><label><input type="radio" name="Feed[apply_to]" value="1" <?php if( $FeedSettings['apply_to'] == 1 ) echo 'checked'; ?> /> <?php echo __('Enhance All Feeds', 'powerpress'); ?></label> (<?php echo __('Recommended', 'powerpress'); ?>)</p>
379
- <p style="font-size: 100%; margin: 0 0 0 30px;"><?php echo __('Adds podcasting support to all feeds', 'powerpress'); ?></p>
380
- </li>
381
- <li><p><label><input type="radio" name="Feed[apply_to]" value="2" <?php if( $FeedSettings['apply_to'] == 2 ) echo 'checked'; ?> /> <?php echo __('Enhance Main Feed Only', 'powerpress'); ?></label></p>
382
- <p style="font-size: 100%; margin: 0 0 0 30px;"><?php echo __('Adds podcasting support to your main feed only', 'powerpress'); ?></p></li>
383
- <li><p><label><input type="radio" name="Feed[apply_to]" value="0" <?php if( $FeedSettings['apply_to'] == 0 ) echo 'checked'; ?> /> <?php echo __('Do Not Enhance Feeds', 'powerpress'); ?></label></p>
384
- <p style="font-size: 100%; margin: 0 0 0 30px;"><?php echo __('Feed Settings below will only apply to your podcast channel feeds', 'powerpress'); ?></p></li>
385
- </ul>
386
- </td>
387
  </tr>
388
  <tr valign="top">
389
  <th scope="row">
@@ -441,7 +439,7 @@ function powerpressadmin_edit_feed_general($FeedSettings, $General)
441
  <th scope="row">
442
  <?php echo __('WebSub', 'powerpress'); ?> <?php echo powerpressadmin_new(); ?></th>
443
  <td>
444
- <p style="margin-top: 10px;"><label><input type="checkbox" name="General[websub_enabled]" value="1" <?php if( !empty($General['websub_enabled']) && $General['websub_enabled'] == 1 ) echo 'checked '; ?>/> <?php echo __('Enable WebSub', 'powerpress'); ?></label></p>
445
  <p><?php echo __('Notifies web subscription hub to push notifications to subscribers. Currently supported by the Blubrry Podcast Directory and Google Podcasts.', 'powerpress'); ?></p>
446
  </td>
447
  </tr>
@@ -572,8 +570,7 @@ function powerpressadmin_edit_feed_settings($FeedSettings, $General, $FeedAttrib
572
  </td>
573
  </tr>
574
 
575
- <?php if( !empty($General['advanced_mode_2']) ) { ?>
576
- <!-- start advanced features -->
577
  <tr valign="top">
578
  <th scope="row">
579
  <?php echo __('Feed Description', 'powerpress'); ?>
@@ -703,8 +700,6 @@ if( isset($Languages[ $rss_language ]) )
703
  </td>
704
  </tr>
705
 
706
- <!-- end advanced features -->
707
- <?php } ?>
708
  </table>
709
 
710
  <!-- Location and frequency information -->
@@ -714,8 +709,7 @@ if( isset($Languages[ $rss_language ]) )
714
  if( !isset($FeedSettings['frequency']) )
715
  $FeedSettings['frequency'] = '';
716
  ?>
717
- <?php if( !empty($General['advanced_mode_2']) ) { ?>
718
- <!-- start advanced features -->
719
  <h3><?php echo __('Basic Show Information', 'powerpress'); ?></h3>
720
  <div id="rawvoice_basic_options">
721
  <table class="form-table">
@@ -735,9 +729,8 @@ if( isset($Languages[ $rss_language ]) )
735
  </tr>
736
  </table>
737
  </div>
738
- <!-- end advanced features -->
739
  <?php
740
- }
741
  }
742
 
743
 
@@ -878,10 +871,7 @@ function powerpressadmin_edit_itunes_feed($FeedSettings, $General, $FeedAttribs
878
  </td>
879
  </tr>
880
 
881
- <?php
882
- if( !empty($General['advanced_mode_2']) )
883
- {
884
- ?>
885
  <tr valign="top">
886
  <th scope="row">
887
 
@@ -913,7 +903,6 @@ function powerpressadmin_edit_itunes_feed($FeedSettings, $General, $FeedAttribs
913
  </tr>
914
  <?php
915
  } // End iTunes keywords
916
- } // end advanced mode
917
  ?>
918
 
919
  <tr valign="top">
@@ -1144,8 +1133,7 @@ foreach( $explicit as $value=> $desc )
1144
  </p>
1145
  </td>
1146
  </tr>
1147
- <?php if( !empty($General['advanced_mode_2']) ) { ?>
1148
- <!-- start advanced features -->
1149
  <tr valign="top">
1150
  <th scope="row">
1151
  <?php echo __('iTunes Author Name', 'powerpress'); ?>
@@ -1161,8 +1149,7 @@ foreach( $explicit as $value=> $desc )
1161
  <?php } ?>
1162
  </td>
1163
  </tr>
1164
- <!-- end advanced features -->
1165
- <?php } ?>
1166
 
1167
  <tr valign="top">
1168
  <th scope="row">
@@ -1201,8 +1188,7 @@ foreach( $types as $value=> $desc )
1201
 
1202
  </table>
1203
 
1204
- <?php if( !empty($General['advanced_mode_2']) ) { ?>
1205
- <!-- start advanced features -->
1206
  <table class="form-table">
1207
  <tr valign="top">
1208
  <th scope="row" >
@@ -1362,8 +1348,7 @@ foreach( $types as $value=> $desc )
1362
  </table>
1363
  </div>
1364
  </fieldset>
1365
- <!-- end advanced features -->
1366
- <?php } // end other advanced options ?>
1367
  <?php
1368
  }
1369
 
277
  <div id="feed_tab_feed" class="powerpress_tab">
278
  <?php
279
  powerpressadmin_edit_feed_settings($FeedSettings, $General, $FeedAttribs );
280
+ powerpressadmin_edit_funding($FeedSettings, $feed_slug);
281
+ powerpressadmin_edit_tv($FeedSettings, $feed_slug);
 
 
282
  ?>
283
  </div>
284
 
372
 
373
  <?php echo __('Enhance Feeds', 'powerpress'); ?></th>
374
  <td>
375
+ <ul>
376
+ <li><p><label><input type="radio" name="Feed[apply_to]" value="1" <?php if( $FeedSettings['apply_to'] == 1 ) echo 'checked'; ?> /> <?php echo __('Enhance All Feeds', 'powerpress'); ?></label> (<?php echo __('Recommended', 'powerpress'); ?>)</p>
377
+ <p style="font-size: 100%; margin: 0 0 0 30px;"><?php echo __('Adds podcasting support to all feeds', 'powerpress'); ?></p>
378
+ </li>
379
+ <li><p><label><input type="radio" name="Feed[apply_to]" value="2" <?php if( $FeedSettings['apply_to'] == 2 ) echo 'checked'; ?> /> <?php echo __('Enhance Main Feed Only', 'powerpress'); ?></label></p>
380
+ <p style="font-size: 100%; margin: 0 0 0 30px;"><?php echo __('Adds podcasting support to your main feed only', 'powerpress'); ?></p></li>
381
+ <li><p><label><input type="radio" name="Feed[apply_to]" value="0" <?php if( $FeedSettings['apply_to'] == 0 ) echo 'checked'; ?> /> <?php echo __('Do Not Enhance Feeds', 'powerpress'); ?></label></p>
382
+ <p style="font-size: 100%; margin: 0 0 0 30px;"><?php echo __('Feed Settings below will only apply to your podcast channel feeds', 'powerpress'); ?></p></li>
383
+ </ul>
384
+ </td>
385
  </tr>
386
  <tr valign="top">
387
  <th scope="row">
439
  <th scope="row">
440
  <?php echo __('WebSub', 'powerpress'); ?> <?php echo powerpressadmin_new(); ?></th>
441
  <td>
442
+ <p style="margin-top: 10px;"><label><input type="checkbox" value="1" disabled <?php if(!(defined('POWERPRESS_DISABLE_WEBSUB') && POWERPRESS_DISABLE_WEBSUB )) echo 'checked '; ?>/> <?php echo __('Enable WebSub', 'powerpress'); ?></label></p>
443
  <p><?php echo __('Notifies web subscription hub to push notifications to subscribers. Currently supported by the Blubrry Podcast Directory and Google Podcasts.', 'powerpress'); ?></p>
444
  </td>
445
  </tr>
570
  </td>
571
  </tr>
572
 
573
+
 
574
  <tr valign="top">
575
  <th scope="row">
576
  <?php echo __('Feed Description', 'powerpress'); ?>
700
  </td>
701
  </tr>
702
 
 
 
703
  </table>
704
 
705
  <!-- Location and frequency information -->
709
  if( !isset($FeedSettings['frequency']) )
710
  $FeedSettings['frequency'] = '';
711
  ?>
712
+
 
713
  <h3><?php echo __('Basic Show Information', 'powerpress'); ?></h3>
714
  <div id="rawvoice_basic_options">
715
  <table class="form-table">
729
  </tr>
730
  </table>
731
  </div>
 
732
  <?php
733
+
734
  }
735
 
736
 
871
  </td>
872
  </tr>
873
 
874
+
 
 
 
875
  <tr valign="top">
876
  <th scope="row">
877
 
903
  </tr>
904
  <?php
905
  } // End iTunes keywords
 
906
  ?>
907
 
908
  <tr valign="top">
1133
  </p>
1134
  </td>
1135
  </tr>
1136
+
 
1137
  <tr valign="top">
1138
  <th scope="row">
1139
  <?php echo __('iTunes Author Name', 'powerpress'); ?>
1149
  <?php } ?>
1150
  </td>
1151
  </tr>
1152
+
 
1153
 
1154
  <tr valign="top">
1155
  <th scope="row">
1188
 
1189
  </table>
1190
 
1191
+
 
1192
  <table class="form-table">
1193
  <tr valign="top">
1194
  <th scope="row" >
1348
  </table>
1349
  </div>
1350
  </fieldset>
1351
+
 
1352
  <?php
1353
  }
1354
 
powerpressadmin-jquery.php CHANGED
@@ -593,8 +593,7 @@ window.onload = function() {
593
  {
594
  $Programs = array();
595
  $ProgramHosting = array();
596
-
597
- // Anytime we change the password we need to test it...
598
  $auth = base64_encode( $SaveSettings['blubrry_username'] . ':' . $Password );
599
  $json_data = false;
600
  $api_url_array = powerpress_get_api_array();
@@ -609,7 +608,8 @@ window.onload = function() {
609
  if( $json_data != false )
610
  break;
611
  }
612
-
 
613
  if( $json_data )
614
  {
615
  $results = powerpress_json_decode($json_data);
@@ -648,7 +648,7 @@ window.onload = function() {
648
  if( count($Programs) > 0 )
649
  {
650
  $SaveSettings['blubrry_auth'] = $auth;
651
-
652
  if( !empty($SaveSettings['blubrry_program_keyword']) )
653
  {
654
  powerpress_add_blubrry_redirect($SaveSettings['blubrry_program_keyword']);
593
  {
594
  $Programs = array();
595
  $ProgramHosting = array();
596
+ // Anytime we change the password we need to test it...
 
597
  $auth = base64_encode( $SaveSettings['blubrry_username'] . ':' . $Password );
598
  $json_data = false;
599
  $api_url_array = powerpress_get_api_array();
608
  if( $json_data != false )
609
  break;
610
  }
611
+
612
+
613
  if( $json_data )
614
  {
615
  $results = powerpress_json_decode($json_data);
648
  if( count($Programs) > 0 )
649
  {
650
  $SaveSettings['blubrry_auth'] = $auth;
651
+
652
  if( !empty($SaveSettings['blubrry_program_keyword']) )
653
  {
654
  powerpress_add_blubrry_redirect($SaveSettings['blubrry_program_keyword']);
powerpressadmin-ping-sites.php CHANGED
@@ -20,37 +20,11 @@
20
  {
21
  powerpress_page_message_add_notice( __('No update services selected to add.', 'powerpress') );
22
  }
23
- if(!empty($_POST['PowerPressWebsub']['enable']) && $_POST['PowerPressWebsub']['enable'] == '1') {
24
- powerpress_save_settings(array('websub_enabled' => 1), 'powerpress_general');
25
- }
26
- else {
27
- powerpress_save_settings(array('websub_enabled' => 0), 'powerpress_general');
28
- }
29
- if( !empty($_POST['PowerPressWebsub']['feed']) ) {
30
- require_once( 'class.powerpresswebsub.php' );
31
- $Websub = new PowerPressWebSub();
32
- $success = false;
33
- try {
34
- $success = $Websub->publish($_POST['PowerPressWebsub']['feed']);
35
- } catch (Exception $e) {
36
- powerpress_page_message_add_error( $e->getMessage() );
37
- }
38
- if( $success ) {
39
- powerpress_page_message_add_notice( __('Google PubSubHubbub test successful.', 'powerpress') );
40
- }
41
- }
42
  }
43
 
44
  function powerpress_admin_ping_sites()
45
  {
46
  $ping_sites = get_option('ping_sites');
47
- $GeneralSettings = powerpress_get_settings('powerpress_general');
48
- if(!empty($GeneralSettings['websub_enabled']) && $GeneralSettings['websub_enabled'] == 1) {
49
- $websub_enabled = true;
50
- }
51
- else {
52
- $websub_enabled = false;
53
- }
54
  $BlogSites = array('http://rpc.pingomatic.com/'=> __('Ping-o-Matic!', 'powerpress'),
55
  'http://blogsearch.google.com/ping/RPC2'=> __('Google Blog Search', 'powerpress'),
56
  'http://rssrpc.weblogs.com/RPC2'=> __('WebLogs', 'powerpress') );
@@ -66,7 +40,7 @@
66
 
67
  <table class="form-table">
68
  <tr valign="top">
69
- <th scope="row"><?php echo __('Update Blog Searvices', 'powerpress'); ?></th>
70
  <td>
71
  <p><?php echo __('Select the blog service you would like to notify.', 'powerpress'); ?></p>
72
  <?php
@@ -90,7 +64,7 @@
90
  </tr>
91
 
92
  <tr valign="top">
93
- <th scope="row"><?php echo __('Update Podcast Searvices', 'powerpress'); ?></th>
94
  <td>
95
  <p><?php echo __('Select the podcasting service you would like to notify.', 'powerpress'); ?></p>
96
  <?php
@@ -112,18 +86,6 @@
112
  ?>
113
  </td>
114
  </tr>
115
- <tr valign="top">
116
- <th scope="row"><?php echo __('Websub', 'powerpress'); ?></th>
117
- <td>
118
- <p><?php echo __('Websub allows you to notify podcast directories such as Google Podcasts immediately when you post a new episode', 'powerpress'); ?></p>
119
- <p><input name="PowerPressWebsub[enable]" id="PowerPressWebsub[enable]" type="checkbox" value="1" <?php echo $websub_enabled ? 'checked' : '' ?> /><label for="PowerPressWebsub[enable]">Enable? </label></p>
120
- <p><?php echo __('You can also update the hub manually below. This is useful for testing purposes.', 'powerpress'); ?></p>
121
- <p><label for="PowerPressWebsub[feed]">Feed URL: <input name="PowerPressWebsub[feed]" type="text" /></label><input type="submit" name="testWebsub" class="button-primary button-blubrry" value="Send Test"></p>
122
- <?php
123
-
124
- ?>
125
- </td>
126
- </tr>
127
 
128
  </table>
129
  <p>
20
  {
21
  powerpress_page_message_add_notice( __('No update services selected to add.', 'powerpress') );
22
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  }
24
 
25
  function powerpress_admin_ping_sites()
26
  {
27
  $ping_sites = get_option('ping_sites');
 
 
 
 
 
 
 
28
  $BlogSites = array('http://rpc.pingomatic.com/'=> __('Ping-o-Matic!', 'powerpress'),
29
  'http://blogsearch.google.com/ping/RPC2'=> __('Google Blog Search', 'powerpress'),
30
  'http://rssrpc.weblogs.com/RPC2'=> __('WebLogs', 'powerpress') );
40
 
41
  <table class="form-table">
42
  <tr valign="top">
43
+ <th scope="row"><?php echo __('Update Blog Services', 'powerpress'); ?></th>
44
  <td>
45
  <p><?php echo __('Select the blog service you would like to notify.', 'powerpress'); ?></p>
46
  <?php
64
  </tr>
65
 
66
  <tr valign="top">
67
+ <th scope="row"><?php echo __('Update Podcast Services', 'powerpress'); ?></th>
68
  <td>
69
  <p><?php echo __('Select the podcasting service you would like to notify.', 'powerpress'); ?></p>
70
  <?php
86
  ?>
87
  </td>
88
  </tr>
 
 
 
 
 
 
 
 
 
 
 
 
89
 
90
  </table>
91
  <p>
powerpressadmin-rss-import.php CHANGED
@@ -30,8 +30,10 @@ class PowerPress_RSS_Podcast_Import extends WP_Importer {
30
  var $m_item_migrate_count = 0;
31
  var $m_step = 0;
32
  var $m_errors = array();
33
-
34
- function migrateCount() {
 
 
35
  return $this->m_item_migrate_count;
36
  }
37
 
@@ -54,69 +56,73 @@ class PowerPress_RSS_Podcast_Import extends WP_Importer {
54
  function addError($msg) {
55
  $this->m_errors[] = $msg;
56
  }
57
-
58
 
59
  function header() {
60
- echo '<div class="wrap" style="padding-left: 5%">';
61
-
 
 
 
 
 
 
 
 
 
 
 
 
62
  if( !empty($_GET['import']) )
63
  {
64
  switch($_GET['import'] )
65
  {
66
- case 'powerpress-soundcloud-rss-podcast': echo '<h2>'.__('Import Podcast from SoundCloud', 'powerpress').'</h2>'; break;
67
- case 'powerpress-libsyn-rss-podcast': echo '<h2>'.__('Import Podcast from LibSyn', 'powerpress').'</h2>'; break;
68
- case 'powerpress-podbean-rss-podcast': echo '<h2>'.__('Import Podcast from PodBean', 'powerpress').'</h2>'; break;
69
- case 'powerpress-squarespace-rss-podcast': echo '<h2>'.__('Import Podcast from Squarespace', 'powerpress').'</h2>'; break;
70
- case 'powerpress-anchor-rss-podcast': echo '<h2>'.__('Import Podcast from Anchor.fm', 'powerpress').'</h2>'; break;
71
- case 'powerpress-rss-podcast':
72
- default: echo '<h2>'.__('Import Podcast RSS Feed', 'powerpress').'</h2>'; break;
73
  }
74
  }
75
  else
76
  {
77
- echo '<h2>'.__('Podcast RSS Import', 'powerpress').'</h2>';
78
  }
79
- }
80
-
81
- function footer() {
82
- echo '</div>';
83
- }
84
-
85
- function greet() {
86
- $General = powerpress_get_settings('powerpress_general');
87
  ?>
88
- <div class="wrap">
89
-
90
- <p><?php echo __('The following tool will import your podcast episodes to this website.', 'powerpress'); ?></p>
91
-
92
  <form enctype="multipart/form-data" action="" method="post" name="import-podcast-feed">
93
  <?php wp_nonce_field('import-powerpress-rss') ?>
94
-
95
- <div style="width: 70%; margin: auto; height: 8em;">
96
  <input type="hidden" name="step" value="1" />
97
  <input type="hidden" name="import" value="<?php echo( !empty($_REQUEST['import']) ? htmlspecialchars($_REQUEST['import']) : ''); ?>" />
98
  <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo wp_max_upload_size(); ?>" />
99
- <div style="width: 48%;" class="alignleft">
100
- <h3><label for="podcast_feed_url"><?php _e('Podcast Feed URL:', 'powerpress'); ?></label></h3>
101
- <?php
102
- $placeholder = 'https://example.com/feed.xml';
103
- switch($_GET['import']) {
104
- case 'powerpress-soundcloud-rss-podcast': $placeholder = 'http://feeds.soundcloud.com/users/soundcloud:users:00000000/sounds.rss'; break;
105
- case 'powerpress-libsyn-rss-podcast': $placeholder = 'http://yourshow.libsyn.com/rss'; break;
106
- case 'powerpress-podbean-rss-podcast': $placeholder = 'http://yourshow.podbean.com/feed/'; break;
107
- case 'powerpress-squarespace-rss-podcast': $placeholder = 'http://example.com/podcast/?format=rss'; break;
108
- case 'powerpress-anchor-rss-podcast': $placeholder = 'https://anchor.fm/s/xxxxxx/podcast/rss'; break;
109
- }
110
- ?>
111
- <input type="text" name="podcast_feed_url" id="podcast_feed_url" size="50" class="code" style="width: 90%;" placeholder="<?php echo esc_attr($placeholder); ?>" />
 
 
112
  </div>
113
-
114
- <div style="width: 48%;" class="alignleft">
115
  <h3><label for="podcast_feed_file"><?php _e('Or choose from your local disk:', 'powerpress'); ?></label></h3>
116
  <input id="podcast_feed_file" name="podcast_feed_file" type="file" />
117
  </div>
118
 
119
  </div>
 
120
  <!--
121
  <p><?php echo sprintf(__('Importing your feed does not migrate your media files. Please use the %s tool to migrate your media once your feed is imported.', 'powerpress'), '<strong><a href="'.admin_url('admin.php?page=powerpress/powerpressadmin_migrate.php') .'">'. __('Migrate Media', 'powerpress') .'</a></strong>'); ?></p>
122
  -->
@@ -132,20 +138,35 @@ class PowerPress_RSS_Podcast_Import extends WP_Importer {
132
  }
133
 
134
  </style>
135
- <div class="submit">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
136
 
137
  <div class="ppi-option">
138
  <h3><?php echo __('Import Podcast To', 'powerpress'); ?></h3>
139
  </div>
140
- <div style="">
141
  <div class="ppi-option">
142
  <label><input type="radio" name="import_to" id="import_to_default" value="default" checked /> <?php echo __('Default podcast feed', 'powerpress'); ?></label><br />
143
  <div class="import-to" id="import-to-default" style="display: none;">
144
  <div style="margin: 10px 0 10px 24px;">
145
- <label><input type="checkbox" name="import_overwrite_program_info" value="1"> <?php echo __('Import program information', 'powerpress'); ?></label>
146
  </div>
147
  <div style="margin: 10px 0 10px 24px;">
148
- <label><input type="checkbox" name="import_itunes_image" value="1"> <?php echo __('Import iTunes artwork', 'powerpress'); ?></label>
149
  </div>
150
  </div>
151
  </div>
@@ -290,7 +311,10 @@ if( !empty($PowerPressTaxonomies) ) { // If taxonomy podcasting feeds exist..
290
  } // End if taxonomy podcasting enabled
291
  ?>
292
  </div>
293
- <div class="ppi-option">
 
 
 
294
  <h3><?php echo __('Blubrry Podcast Media Hosting', 'powerpress'); ?></h3>
295
  <?php
296
  if( empty($General['blubrry_hosting']) || $General['blubrry_hosting'] === 'false' ) {
@@ -307,7 +331,6 @@ if( !empty($PowerPressTaxonomies) ) { // If taxonomy podcasting feeds exist..
307
  <?php
308
  }
309
  ?>
310
- </div>
311
  <link rel="stylesheet" href="<?php echo powerpress_get_root_url(); ?>css/admin.css" type="text/css" media="screen" />
312
  <script language="javascript"><!--
313
 
@@ -369,10 +392,18 @@ jQuery(document).ready( function() {
369
  <input type="text" name="import_item_limit" id="import_item_limit" class="small-text" value="" /> (<?php echo __('leave blank for no limit', 'powerpress'); ?>)
370
  </div>
371
  </div>
372
- <?php submit_button( __('Import Podcast', 'powerpress' ), 'button-blubrry'); ?>
 
373
  </div>
 
 
 
 
 
 
374
  </form>
375
  </div>
 
376
  <script>
377
  jQuery(document).ready( function() {
378
 
@@ -583,7 +614,7 @@ jQuery(document).ready( function() {
583
  if( preg_match_all('|<itunes:category.*text="(.*?)"|is', $channel, $matches) ) {
584
  $pos = 1;
585
  $itunes_categories = $matches[1];
586
- $Categories = powerpress_itunes_categories();
587
  $Categories = array_map('strtolower', $Categories);
588
  $cats_by_title = array_flip( $Categories );
589
 
@@ -624,7 +655,7 @@ jQuery(document).ready( function() {
624
  foreach( $FinalCats as $field_no => $cat_id ) {
625
  if( empty( $cat_id) )
626
  continue;
627
- $field = sprintf('itunes_cat_%d', $field_no);
628
 
629
  if( $overwrite || empty($Feed[ $field ]) ) {
630
  $NewSettings[ $field ] = $cat_id;
@@ -733,7 +764,7 @@ jQuery(document).ready( function() {
733
  $this->m_item_skipped_count++;
734
  return false;
735
  }
736
-
737
  echo ' - ';
738
  }
739
  if( !empty($enclosure_data[1]) ) {
@@ -761,7 +792,9 @@ jQuery(document).ready( function() {
761
  }
762
  $media_url = $enclosure['url'];
763
  }
764
-
 
 
765
  $post_date_gmt = false;
766
  if( preg_match('|<pubdate>(.*?)</pubdate>|is', $post, $matches) ) {
767
  $post_date_gmt = strtotime($matches[1]);
@@ -789,7 +822,11 @@ jQuery(document).ready( function() {
789
 
790
  if( !empty($exists) )
791
  {
792
- echo sprintf(__('<i>%s</i> already imported.', 'powerpress'), htmlspecialchars($post_title) );
 
 
 
 
793
  $this->m_item_skipped_count++;
794
  return false;
795
  }
@@ -841,28 +878,24 @@ jQuery(document).ready( function() {
841
  $this->m_item_inserted_count++;
842
 
843
  $post_id = $this->_import_post_to_db($post_to_save, $feed_slug);
844
- if( empty($post_id) ) {
845
- echo '<span style="color: red; font-weight: bold;">';
846
- echo sprintf(__('<i>%s</i> import failed.', 'powerpress'), htmlspecialchars($post_title) );
847
- echo '</span>';
848
- return false;
849
- }
850
-
851
- if ( is_wp_error( $post_id ) ) {
852
-
853
- echo '<span style="color: red; font-weight: bold;">';
854
- echo sprintf(__('<i>%s</i> import failed: ' , 'powerpress'), htmlspecialchars($post_title) );
855
- echo '</span>';
856
  return false;
857
  }
858
-
859
- echo '<span style="color: green; font-weight: bold;">';
860
- echo sprintf(__('<i>%s</i> imported.', 'powerpress'), htmlspecialchars($post_title) );
861
- echo '</span>';
 
 
862
 
863
  // Display a link to the blog post
864
- echo ' <a href="'. get_permalink($post_id) .'" target="_blank"><i class="wp-menu-image dashicons-before dashicons-admin-links"></i></a>';
865
-
866
  // Category strict
867
  if( !empty($category_strict) )
868
  {
@@ -929,7 +962,8 @@ jQuery(document).ready( function() {
929
 
930
  $item_count = substr_count( $this->m_content, '<item>');
931
  $item_count += substr_count( $this->m_content, '<ITEM>');
932
-
 
933
  echo '<h3>Diagnostic information</h3>';
934
  echo '<ul>';
935
  if( !empty($ttid) )
@@ -946,21 +980,107 @@ jQuery(document).ready( function() {
946
  echo sprintf( '<li>Category: %s</li>', $category);
947
 
948
  echo sprintf( '<li>Remove query string: %s</li>', ( !empty($remove_query_string)?'true':'false') );
949
-
950
- echo '</ul>';
951
-
952
  echo '<hr />';
953
  echo '<p><strong>';
954
  echo __('Importing Episodes...', 'powerpress');
955
  echo '</strong></p>';
956
-
957
  echo '<p>';
958
  echo sprintf( __('Items Found: %d', 'powerpress'), $item_count);
959
- echo '</p>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
960
  @flush();
961
 
962
- echo '<ol>';
963
-
964
  $item_start_pos = 0;
965
  $item_start_pos = (function_exists('mb_stripos')?mb_stripos($this->m_content, '<item>', $item_start_pos):stripos($this->m_content, '<item>', $item_start_pos) );
966
  $item_end_pos = $item_start_pos;
@@ -969,16 +1089,17 @@ jQuery(document).ready( function() {
969
  $count = 0;
970
  while( $item_start_pos !== false && $item_end_pos !== false ) // If one were to return false, we stap!
971
  {
 
972
  // check item limit at the beginning of each iteration
973
  if( $import_item_limit > 0 && $this->m_item_pos >= $import_item_limit ) {
974
  break; // Item limit reached, stop!
975
  }
976
 
977
- echo '<li>';
978
  $new_start = $item_start_pos + mb_strlen('<item>');
979
  $item_content = mb_substr($this->m_content, $new_start, $item_end_pos - $new_start);
980
  $this->import_item($item_content, $MatchFilter, $import_blog_posts, $category, $feed_slug, $post_type, $taxonomy, $term, $remove_query_string, $post_status);
981
- echo '</li>';
982
 
983
  // Extra stop just in case...
984
  if( $count > 3000 )
@@ -990,23 +1111,21 @@ jQuery(document).ready( function() {
990
  $item_start_pos = (function_exists('mb_stripos')?mb_stripos($this->m_content, '<item>', $item_end_pos):stripos($this->m_content, '<item>', $item_end_pos) );
991
  $item_end_pos = (function_exists('mb_stripos')?mb_stripos($this->m_content, '</item>', $item_start_pos):stripos($this->m_content, '</item>', $item_start_pos) );
992
  }
993
- echo '</ol>';
994
  }
995
 
996
  function import() {
997
- ?>
998
- <div class="wrap">
999
- <h3><?php _e('Importing Podcast', 'powerpress') ?></h3>
1000
  <?php
1001
-
1002
  $result = false;
1003
  if ( empty($_POST['podcast_feed_url']) ) {
1004
- ?><p><?php _e('From Uploaded file...', 'powerpress'); ?></p><?php
1005
  $result = $this->_import_handle_upload();
1006
  }
1007
  else
1008
  {
1009
- ?><p><?php _e('From URL', 'powerpress'); ?> <?php echo esc_html($_POST['podcast_feed_url']); ?></p><?php
1010
  $result = $this->_import_handle_url();
1011
  }
1012
 
@@ -1149,14 +1268,14 @@ jQuery(document).ready( function() {
1149
  $add_urls .= $url;
1150
  }
1151
  }
1152
-
1153
- echo '<h3>';
1154
- echo __('Migration request...', 'powerpress');
1155
- echo '</h3>';
1156
- echo '<pre style="border: 1px solid #333; background-color: #FFFFFF; padding: 4px 8px;">';
1157
- echo $add_urls;
1158
- echo '</pre>';
1159
-
1160
  $UpdateResults = powepress_admin_migrate_add_urls($add_urls);
1161
  if( !empty($UpdateResults) )
1162
  {
@@ -1172,14 +1291,23 @@ jQuery(document).ready( function() {
1172
  echo '<p>Failed to request migration.</p>';
1173
  }
1174
  }
1175
-
1176
  powerpress_page_message_print();
1177
-
1178
- echo '<h3>';
1179
- echo __('Import Completed!', 'powerpress');
1180
- echo '</h3>';
1181
- echo '<p>'. sprintf(__('Items Skipped: %d', 'powerpress'), $this->m_item_skipped_count).'</p>';
1182
- echo '<p>'. sprintf(__('Items Inserted: %d', 'powerpress'), $this->m_item_inserted_count).'</p>';
 
 
 
 
 
 
 
 
 
 
1183
  if( !empty( $this->m_item_migrate_count ) )
1184
  echo '<p>'. sprintf(__('Media files queued for migration: %d', 'powerpress'), $this->m_item_migrate_count).'</p>';
1185
 
@@ -1189,6 +1317,42 @@ jQuery(document).ready( function() {
1189
  } else {
1190
  echo '<p>'. sprintf(__('You may now migrate your media manually or use the %s tool.','powerpress'), '<strong><a href="'.admin_url('admin.php?page=powerpress/powerpressadmin_migrate.php') .'">'. __('Migrate Media', 'powerpress') .'</a></strong>' ). '</p>';
1191
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1192
  }
1193
 
1194
  function dispatch() {
@@ -1222,7 +1386,6 @@ jQuery(document).ready( function() {
1222
  break;
1223
  }
1224
 
1225
- $this->footer();
1226
  }
1227
 
1228
  function get_step() {
30
  var $m_item_migrate_count = 0;
31
  var $m_step = 0;
32
  var $m_errors = array();
33
+ private $isHostedOnBlubrry = false; //used to show Blubrry signin during onboarding process
34
+
35
+
36
+ function migrateCount() {
37
  return $this->m_item_migrate_count;
38
  }
39
 
56
  function addError($msg) {
57
  $this->m_errors[] = $msg;
58
  }
59
+
60
 
61
  function header() {
62
+ wp_enqueue_style('powerpress_onboarding_styles',plugin_dir_url( __FILE__ ) . 'css/onboarding.css' );
63
+ echo '<div class="wrap" style="min-height: 100vh">';
64
+ echo '<div class="pp_container" style="max-width: 100rem;">';
65
+ echo '<h2 class="pp_align-center">'.__('PowerPress', 'powerpress').'</h2>';
66
+ }
67
+
68
+
69
+ function greet() {
70
+ $General = powerpress_get_settings('powerpress_general');
71
+ if (isset($_GET['from']) && ($_GET['from'] == 'gs' || $_GET['from'] == 'onboarding')) {
72
+ $from_onboarding = true;
73
+ } else {
74
+ $from_onboarding = false;
75
+ }
76
  if( !empty($_GET['import']) )
77
  {
78
  switch($_GET['import'] )
79
  {
80
+ case 'powerpress-soundcloud-rss-podcast': echo '<h2 class="pp_align-center">'.__('Import Podcast from SoundCloud', 'powerpress').'</h2>'; break;
81
+ case 'powerpress-libsyn-rss-podcast': echo '<h2 class="pp_align-center">'.__('Import Podcast from LibSyn', 'powerpress').'</h2>'; break;
82
+ case 'powerpress-podbean-rss-podcast': echo '<h2 class="pp_align-center">'.__('Import Podcast from PodBean', 'powerpress').'</h2>'; break;
83
+ case 'powerpress-squarespace-rss-podcast': echo '<h2 class="pp_align-center">'.__('Import Podcast from Squarespace', 'powerpress').'</h2>'; break;
84
+ case 'powerpress-anchor-rss-podcast': echo '<h2 class="pp_align-center">'.__('Import Podcast from Anchor.fm', 'powerpress').'</h2>'; break;
85
+ case 'powerpress-rss-podcast':
86
+ default: echo '<h2 class="pp_align-center">'.__('Import Podcast RSS Feed', 'powerpress').'</h2>'; break;
87
  }
88
  }
89
  else
90
  {
91
+ echo '<h2 class="pp_align-center">'.__('Podcast RSS Import', 'powerpress').'</h2>';
92
  }
 
 
 
 
 
 
 
 
93
  ?>
94
+ <p class="pp_align-center"><?php echo __('The following tool will import your podcast episodes to this website.', 'powerpress'); ?></p>
95
+ <section id="one" class="pp_wrapper">
96
+ <div class="pp_inner">
 
97
  <form enctype="multipart/form-data" action="" method="post" name="import-podcast-feed">
98
  <?php wp_nonce_field('import-powerpress-rss') ?>
 
 
99
  <input type="hidden" name="step" value="1" />
100
  <input type="hidden" name="import" value="<?php echo( !empty($_REQUEST['import']) ? htmlspecialchars($_REQUEST['import']) : ''); ?>" />
101
  <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo wp_max_upload_size(); ?>" />
102
+ <div class="pp_flex-grid" style="padding-top:35px;">
103
+ <div class="pp_col" style="flex-grow:6;">
104
+ <div class="pp_form-group">
105
+ <label for="podcast_feed_url" ><?php _e('Podcast Feed URL:', 'powerpress'); ?></label>
106
+ <?php
107
+ $placeholder = 'https://example.com/feed.xml';
108
+ switch($_GET['import']) {
109
+ case 'powerpress-soundcloud-rss-podcast': $placeholder = 'http://feeds.soundcloud.com/users/soundcloud:users:00000000/sounds.rss'; break;
110
+ case 'powerpress-libsyn-rss-podcast': $placeholder = 'http://yourshow.libsyn.com/rss'; break;
111
+ case 'powerpress-podbean-rss-podcast': $placeholder = 'http://yourshow.podbean.com/feed/'; break;
112
+ case 'powerpress-squarespace-rss-podcast': $placeholder = 'http://example.com/podcast/?format=rss'; break;
113
+ case 'powerpress-anchor-rss-podcast': $placeholder = 'https://anchor.fm/s/xxxxxx/podcast/rss'; break;
114
+ }
115
+ ?>
116
+ <input type="text" name="podcast_feed_url" id="podcast_feed_url" class="pp_outlined" placeholder="<?php echo esc_attr($placeholder); ?>" />
117
  </div>
118
+ </div>
119
+ <div <?php if ($from_onboarding) { echo "style='display: none;'"; } ?>>
120
  <h3><label for="podcast_feed_file"><?php _e('Or choose from your local disk:', 'powerpress'); ?></label></h3>
121
  <input id="podcast_feed_file" name="podcast_feed_file" type="file" />
122
  </div>
123
 
124
  </div>
125
+ <div class="pp_flex-grid">
126
  <!--
127
  <p><?php echo sprintf(__('Importing your feed does not migrate your media files. Please use the %s tool to migrate your media once your feed is imported.', 'powerpress'), '<strong><a href="'.admin_url('admin.php?page=powerpress/powerpressadmin_migrate.php') .'">'. __('Migrate Media', 'powerpress') .'</a></strong>'); ?></p>
128
  -->
138
  }
139
 
140
  </style>
141
+ <?php if ($from_onboarding) { ?>
142
+ <div class="import-to" id="import-to-default" style="display: none;">
143
+ <div style="display: none;">
144
+ <input type="checkbox" name="import_overwrite_program_info" value="1" checked>
145
+ </div>
146
+ <div style="display: none;">
147
+ <input type="checkbox" name="import_itunes_image" value="1" checked>
148
+ </div>
149
+ </div>
150
+ <?php if ($General['blubrry_hosting']) { ?>
151
+ <div style="display: none;" class="ppi-option">
152
+ <input type="checkbox" name="migrate_to_blubrry" value="1" checked>
153
+ </div>
154
+ <?php }
155
+ } else { ?>
156
+ <div class="pp_col">
157
 
158
  <div class="ppi-option">
159
  <h3><?php echo __('Import Podcast To', 'powerpress'); ?></h3>
160
  </div>
161
+ <div>
162
  <div class="ppi-option">
163
  <label><input type="radio" name="import_to" id="import_to_default" value="default" checked /> <?php echo __('Default podcast feed', 'powerpress'); ?></label><br />
164
  <div class="import-to" id="import-to-default" style="display: none;">
165
  <div style="margin: 10px 0 10px 24px;">
166
+ <label><input type="checkbox" name="import_overwrite_program_info" value="1" <?php echo isset($_GET['from']) ? 'checked': '' ?> > <?php echo __('Import program information', 'powerpress'); ?></label>
167
  </div>
168
  <div style="margin: 10px 0 10px 24px;">
169
+ <label><input type="checkbox" name="import_itunes_image" value="1" <?php echo isset($_GET['from']) ? 'checked': '' ?>> <?php echo __('Import iTunes artwork', 'powerpress'); ?></label>
170
  </div>
171
  </div>
172
  </div>
311
  } // End if taxonomy podcasting enabled
312
  ?>
313
  </div>
314
+ </div>
315
+ </div>
316
+ </div>
317
+ <div class="pp_col">
318
  <h3><?php echo __('Blubrry Podcast Media Hosting', 'powerpress'); ?></h3>
319
  <?php
320
  if( empty($General['blubrry_hosting']) || $General['blubrry_hosting'] === 'false' ) {
331
  <?php
332
  }
333
  ?>
 
334
  <link rel="stylesheet" href="<?php echo powerpress_get_root_url(); ?>css/admin.css" type="text/css" media="screen" />
335
  <script language="javascript"><!--
336
 
392
  <input type="text" name="import_item_limit" id="import_item_limit" class="small-text" value="" /> (<?php echo __('leave blank for no limit', 'powerpress'); ?>)
393
  </div>
394
  </div>
395
+
396
+ </div>
397
  </div>
398
+ <?php } ?>
399
+ <div class="pp_col" style="padding: 20px 0px;">
400
+ <hr class="pp_align-center">
401
+ <div class="pp_button-container" style="float: right;">
402
+ <button name="submit" type="submit" class="pp_button" value="Import Podcast"><span><?php echo __('Import Podcast', 'powerpress'); ?></span></button>
403
+ </div>
404
  </form>
405
  </div>
406
+ </div>
407
  <script>
408
  jQuery(document).ready( function() {
409
 
614
  if( preg_match_all('|<itunes:category.*text="(.*?)"|is', $channel, $matches) ) {
615
  $pos = 1;
616
  $itunes_categories = $matches[1];
617
+ $Categories = powerpress_apple_categories();
618
  $Categories = array_map('strtolower', $Categories);
619
  $cats_by_title = array_flip( $Categories );
620
 
655
  foreach( $FinalCats as $field_no => $cat_id ) {
656
  if( empty( $cat_id) )
657
  continue;
658
+ $field = sprintf('apple_cat_%d', $field_no);
659
 
660
  if( $overwrite || empty($Feed[ $field ]) ) {
661
  $NewSettings[ $field ] = $cat_id;
764
  $this->m_item_skipped_count++;
765
  return false;
766
  }
767
+
768
  echo ' - ';
769
  }
770
  if( !empty($enclosure_data[1]) ) {
792
  }
793
  $media_url = $enclosure['url'];
794
  }
795
+ if(preg_match('/https?:\/\/(www\.)?media\.blubrry\.com\//m', $media_url)) {
796
+ $this->isHostedOnBlubrry = true;
797
+ }
798
  $post_date_gmt = false;
799
  if( preg_match('|<pubdate>(.*?)</pubdate>|is', $post, $matches) ) {
800
  $post_date_gmt = strtotime($matches[1]);
822
 
823
  if( !empty($exists) )
824
  {
825
+ ?>
826
+ <td><?php echo htmlspecialchars($post_title) ?></td>
827
+ <td>Episode Already Imported</td>
828
+ <td>&#x274c;</td>
829
+ <?php
830
  $this->m_item_skipped_count++;
831
  return false;
832
  }
878
  $this->m_item_inserted_count++;
879
 
880
  $post_id = $this->_import_post_to_db($post_to_save, $feed_slug);
881
+ if( empty($post_id) || is_wp_error($post_id) ) {
882
+ ?>
883
+ <td><?php echo htmlspecialchars($post_title) ?></td>
884
+ <td>Import Failed</td>
885
+ <td>&#x274c;</td>
886
+ <?php
 
 
 
 
 
 
887
  return false;
888
  }
889
+ $permalink = get_permalink($post_id);
890
+ ?>
891
+ <td><?php echo "<a href='{$permalink} target='_blank'>" . htmlspecialchars($post_title) . "</a>" ?></td>
892
+ <td>Episode Imported</td>
893
+ <td>&#x2714;&#xFE0F;</td>
894
+ <?php
895
 
896
  // Display a link to the blog post
897
+ //echo ' <a href="'. get_permalink($post_id) .'" target="_blank"><i class="wp-menu-image dashicons-before dashicons-admin-links"></i></a>';
898
+
899
  // Category strict
900
  if( !empty($category_strict) )
901
  {
962
 
963
  $item_count = substr_count( $this->m_content, '<item>');
964
  $item_count += substr_count( $this->m_content, '<ITEM>');
965
+ echo '<div class="pp_flex-grid">';
966
+ echo '<div class="pp_col" style="order: 2;">';
967
  echo '<h3>Diagnostic information</h3>';
968
  echo '<ul>';
969
  if( !empty($ttid) )
980
  echo sprintf( '<li>Category: %s</li>', $category);
981
 
982
  echo sprintf( '<li>Remove query string: %s</li>', ( !empty($remove_query_string)?'true':'false') );
983
+ echo '</ul></div>'
984
+ /* echo '</ul>';
985
+
986
  echo '<hr />';
987
  echo '<p><strong>';
988
  echo __('Importing Episodes...', 'powerpress');
989
  echo '</strong></p>';
990
+
991
  echo '<p>';
992
  echo sprintf( __('Items Found: %d', 'powerpress'), $item_count);
993
+ echo '</p>';*/
994
+ ?>
995
+ <style>
996
+ #table_header {
997
+ box-sizing: border-box;
998
+ width: 100%;
999
+ border-top: 1px solid rgba(144, 144, 144, 0.40);
1000
+ border-left: 1px solid rgba(144, 144, 144, 0.40);
1001
+ border-right: 1px solid rgba(144, 144, 144, 0.40);
1002
+ padding: 20px;
1003
+ padding-bottom: 40px;
1004
+ border-radius: 5px 5px 0 0;
1005
+ }
1006
+ table {
1007
+ width: 100%;
1008
+ table-layout: fixed;
1009
+ border-collapse: separate;
1010
+ border: 1px solid rgba(144, 144, 144, 0.40);
1011
+ border-bottom-left-radius: 10px;
1012
+ border-bottom-right-radius: 10px;
1013
+ }
1014
+ .left {
1015
+ float: left;
1016
+ }
1017
+ .right {
1018
+ float: right;
1019
+ }
1020
+ /*thead th {
1021
+ padding: 20px;
1022
+ border-bottom: 1px solid rgba(144, 144, 144, 0.40);
1023
+ }*/
1024
+ thead th:nth-child(1) {
1025
+ width: 3%
1026
+ }
1027
+ thead th:nth-child(2) {
1028
+ width: 58%;
1029
+ }
1030
+ thead th:nth-child(3) {
1031
+ width: 33%;
1032
+ }
1033
+ tbody td {
1034
+ padding: 15px 20px;
1035
+ border-bottom: 1px solid rgba(144, 144, 144, 0.40);
1036
+ }
1037
+ tbody td:nth-child(2) {
1038
+ font-weight: bold;
1039
+ text-align: left;
1040
+ }
1041
+ tbody td:nth-child(3) {
1042
+ text-align: right;
1043
+ }
1044
+ tbody td:nth-child(4) {
1045
+ text-align: right;
1046
+ }
1047
+ tbody tr:last-child td:first-child {
1048
+ border-bottom-left-radius: 10px;
1049
+ }
1050
+ tbody tr:last-child td{
1051
+ border: unset;
1052
+ }
1053
+ tbody tr:last-child td:last-child {
1054
+ border-bottom-right-radius: 10px;
1055
+ }
1056
+ .green-text {
1057
+ color: green;
1058
+ }
1059
+ .warning-text {
1060
+ color: orange;
1061
+ }
1062
+ .subtle-text {
1063
+
1064
+ }
1065
+ </style>
1066
+ <div class="pp_col" style="flex: 5">
1067
+ <div id="table_header">
1068
+ <strong class="left">Imported Episodes</strong>
1069
+ <span class="right"><?php echo sprintf( __('%d Episodes Found', 'powerpress'), $item_count) ?></span>
1070
+ </div>
1071
+ <table>
1072
+ <thead>
1073
+ <tr>
1074
+ <th></th>
1075
+ <th></th>
1076
+ <th></th>
1077
+ <th></th>
1078
+ </tr>
1079
+ </thead>
1080
+ <tbody>
1081
+ <?php
1082
  @flush();
1083
 
 
 
1084
  $item_start_pos = 0;
1085
  $item_start_pos = (function_exists('mb_stripos')?mb_stripos($this->m_content, '<item>', $item_start_pos):stripos($this->m_content, '<item>', $item_start_pos) );
1086
  $item_end_pos = $item_start_pos;
1089
  $count = 0;
1090
  while( $item_start_pos !== false && $item_end_pos !== false ) // If one were to return false, we stap!
1091
  {
1092
+ $count++;
1093
  // check item limit at the beginning of each iteration
1094
  if( $import_item_limit > 0 && $this->m_item_pos >= $import_item_limit ) {
1095
  break; // Item limit reached, stop!
1096
  }
1097
 
1098
+ echo "<tr><td>{$count}</td>";
1099
  $new_start = $item_start_pos + mb_strlen('<item>');
1100
  $item_content = mb_substr($this->m_content, $new_start, $item_end_pos - $new_start);
1101
  $this->import_item($item_content, $MatchFilter, $import_blog_posts, $category, $feed_slug, $post_type, $taxonomy, $term, $remove_query_string, $post_status);
1102
+ echo '</tr>';
1103
 
1104
  // Extra stop just in case...
1105
  if( $count > 3000 )
1111
  $item_start_pos = (function_exists('mb_stripos')?mb_stripos($this->m_content, '<item>', $item_end_pos):stripos($this->m_content, '<item>', $item_end_pos) );
1112
  $item_end_pos = (function_exists('mb_stripos')?mb_stripos($this->m_content, '</item>', $item_start_pos):stripos($this->m_content, '</item>', $item_start_pos) );
1113
  }
 
1114
  }
1115
 
1116
  function import() {
1117
+ ?>
1118
+ <h5 class="pp_align-center"><?php _e('Importing Podcast', 'powerpress') ?>
 
1119
  <?php
1120
+
1121
  $result = false;
1122
  if ( empty($_POST['podcast_feed_url']) ) {
1123
+ ?><?php _e(' from uploaded file...', 'powerpress'); ?></h5><?php
1124
  $result = $this->_import_handle_upload();
1125
  }
1126
  else
1127
  {
1128
+ ?><?php _e(' from URL: ', 'powerpress'); echo esc_html($_POST['podcast_feed_url']) ?></h5><?php
1129
  $result = $this->_import_handle_url();
1130
  }
1131
 
1268
  $add_urls .= $url;
1269
  }
1270
  }
1271
+ if (!isset($_GET['from']) || ($_GET['from'] != 'gs' || $_GET['from'] != 'onboarding')) {
1272
+ echo '<h3>';
1273
+ echo __('Migration request...', 'powerpress');
1274
+ echo '</h3>';
1275
+ echo '<pre style="border: 1px solid #333; background-color: #FFFFFF; padding: 4px 8px;">';
1276
+ echo $add_urls;
1277
+ echo '</pre>';
1278
+ }
1279
  $UpdateResults = powepress_admin_migrate_add_urls($add_urls);
1280
  if( !empty($UpdateResults) )
1281
  {
1291
  echo '<p>Failed to request migration.</p>';
1292
  }
1293
  }
 
1294
  powerpress_page_message_print();
1295
+ ?>
1296
+ <td colspan="4" style="text-align: right">
1297
+ <?php
1298
+ if ($this->m_item_inserted_count != 0) {
1299
+ echo $this->m_item_inserted_count . " Episodes Imported";
1300
+ }
1301
+ if ($this->m_item_skipped_count != 0) {
1302
+ if($this->m_item_inserted_count != 0) {
1303
+ echo ' / ';
1304
+ }
1305
+ echo $this->m_item_skipped_count . " Episodes Skipped";
1306
+ }
1307
+ ?>
1308
+ </td>
1309
+ <?php
1310
+ echo '</tbody></table></div></div>';
1311
  if( !empty( $this->m_item_migrate_count ) )
1312
  echo '<p>'. sprintf(__('Media files queued for migration: %d', 'powerpress'), $this->m_item_migrate_count).'</p>';
1313
 
1317
  } else {
1318
  echo '<p>'. sprintf(__('You may now migrate your media manually or use the %s tool.','powerpress'), '<strong><a href="'.admin_url('admin.php?page=powerpress/powerpressadmin_migrate.php') .'">'. __('Migrate Media', 'powerpress') .'</a></strong>' ). '</p>';
1319
  }
1320
+ $nextUrl = '';
1321
+ $GeneralSettings = powerpress_get_settings('powerpress_general');
1322
+ if(!empty($_GET['from']) && $_GET['from'] == 'onboarding') {
1323
+ if (isset($GeneralSettings['blubrry_hosting']) && $GeneralSettings['blubrry_hosting'] != null) {
1324
+ $nextUrl = admin_url("admin.php?page=powerpressadmin_basic&step=createEpisode&import=true&migrate=true");
1325
+ } else {
1326
+ if ($this->isHostedOnBlubrry) {
1327
+ $nextUrl = admin_url("admin.php?page=powerpressadmin_basic&step=blubrrySignin&import=true");
1328
+ } else {
1329
+ $nextUrl = admin_url("admin.php?page=powerpressadmin_basic&step=nohost&import=true&from=import");
1330
+ }
1331
+ }
1332
+ }
1333
+ else if (!empty($_GET['from']) && $_GET['from'] == 'gs') {
1334
+ if (isset($GeneralSettings['blubrry_hosting']) && $GeneralSettings['blubrry_hosting'] != null) {
1335
+ $nextUrl = admin_url("admin.php?page=powerpressadmin_onboarding.php&step=createEpisode&import=true&migrate=true");
1336
+ } else {
1337
+ if ($this->isHostedOnBlubrry) {
1338
+ $nextUrl = admin_url("admin.php?page=powerpressadmin_onboarding.php&step=blubrrySignin&import=true");
1339
+ } else {
1340
+ $nextUrl = admin_url("admin.php?page=powerpressadmin_onboarding.php&step=nohost&import=true&from=import");
1341
+ }
1342
+ }
1343
+ }
1344
+ if(!empty($_GET['from'])) {
1345
+ ?>
1346
+
1347
+ <div class="pp_col" style="padding: 20px 0px;">
1348
+ <hr class="pp_align-center">
1349
+ <div class="pp_button-container" style="float: right;">
1350
+ <a href="<?php echo $nextUrl ?>"><button name="submit" type="button" class="pp_button" value="Import Podcast"><span>Continue</span></button></a>
1351
+ </div>
1352
+
1353
+ </div>
1354
+ <?php
1355
+ }
1356
  }
1357
 
1358
  function dispatch() {
1386
  break;
1387
  }
1388
 
 
1389
  }
1390
 
1391
  function get_step() {
powerpressadmin.php CHANGED
@@ -56,12 +56,6 @@ function powerpress_admin_activate()
56
  {
57
  powerpress_admin_import_podcasting_settings();
58
  }
59
- // This is a new user
60
- powerpress_save_settings(array('advanced_mode_2'=>'0'), 'powerpress_general'); // Defaut them to simple mode
61
- }
62
- else if( !isset($Settings['advanced_mode_2']) ) // this is not a new user, lets put them in advanced mode by default...
63
- {
64
- powerpress_save_settings(array('advanced_mode_2'=>'1'), 'powerpress_general'); // Defaut them to simple mode
65
  }
66
  }
67
 
@@ -1063,12 +1057,6 @@ function powerpress_admin_init()
1063
  require_once( POWERPRESS_ABSPATH . '/powerpressadmin-podpress.php');
1064
  powerpressadmin_podpress_delete_data();
1065
 
1066
- }; break;
1067
- case 'powerpress-save-mode': {
1068
-
1069
- //if( !isset($_POST['General']['advanced_mode']) )
1070
- // powerpress_page_message_add_notice( __('You must select a Mode to continue.', 'powerpress') );
1071
-
1072
  }; break;
1073
  case 'powerpress-category-settings': {
1074
  // Save here!
@@ -1770,57 +1758,63 @@ function powerpress_admin_menu()
1770
  }
1771
  }
1772
 
1773
- if( current_user_can(POWERPRESS_CAPABILITY_MANAGE_OPTIONS) )
1774
- {
1775
- $Powerpress = powerpress_default_settings($Powerpress, 'basic');
1776
-
1777
- if( isset($_GET['page']) && strstr($_GET['page'], 'powerpress' ) !== false && isset($_POST[ 'General' ]) )
1778
- {
1779
- $ToBeSaved = $_POST['General'];
1780
-
1781
- if( isset($ToBeSaved['channels']) )
1782
- $Powerpress['channels'] = $ToBeSaved['channels'];
1783
- if( isset($ToBeSaved['cat_casting']) )
1784
- $Powerpress['cat_casting'] = $ToBeSaved['cat_casting'];
1785
- if( isset($ToBeSaved['taxonomy_podcasting']) )
1786
- $Powerpress['taxonomy_podcasting'] = $ToBeSaved['taxonomy_podcasting'];
1787
- if( isset($ToBeSaved['posttype_podcasting']) )
1788
- $Powerpress['posttype_podcasting'] = $ToBeSaved['posttype_podcasting'];
1789
- if( isset($ToBeSaved['podpress_stats']) )
1790
- $Powerpress['podpress_stats'] = $ToBeSaved['podpress_stats'];
1791
- if( isset($ToBeSaved['blubrry_hosting']) )
1792
- $Powerpress['blubrry_hosting'] = $ToBeSaved['blubrry_hosting'];
1793
- }
1794
- $parent_slug = 'powerpressadmin_basic';
1795
- add_menu_page(__('PowerPress', 'powerpress'), __('PowerPress', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpressadmin_basic', 'powerpress_admin_page_basic', powerpress_get_root_url() . 'powerpress_ico.png');
1796
- $parent_slug = apply_filters('powerpress_submenu_parent_slug', $parent_slug );
1797
-
1798
- add_submenu_page($parent_slug, __('PowerPress Settings', 'powerpress'), __('Settings', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpressadmin_basic', 'powerpress_admin_page_basic' );
1799
-
1800
- add_options_page( __('PowerPress', 'powerpress'), __('PowerPress', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpressadmin_basic', 'powerpress_admin_page_basic');
1801
-
1802
- add_submenu_page($parent_slug, __('Import podcast feed from SoundCloud, LibSyn, PodBean or other podcast service.', 'powerpress'), __('Import Podcast', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_import_feed.php', 'powerpress_admin_page_import_feed');
1803
- add_submenu_page($parent_slug, __('Migrate media files to Blubrry Podcast Media Hosting with only a few clicks.', 'powerpress'), __('Migrate Media', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_migrate.php', 'powerpress_admin_page_migrate');
1804
- add_submenu_page($parent_slug, __('PowerPress Podcasting SEO', 'powerpress'), '<span style="color:#f18500">'. __('Podcasting SEO', 'powerpress') .'</span> ', POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_search.php', 'powerpress_admin_page_search');
1805
-
1806
- add_submenu_page($parent_slug, __('PowerPress Audio Player Options', 'powerpress'), __('Audio Player', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_player.php', 'powerpress_admin_page_players');
1807
- add_submenu_page($parent_slug, __('PowerPress Video Player Options', 'powerpress'), __('Video Player', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_videoplayer.php', 'powerpress_admin_page_videoplayers');
1808
-
1809
- if( !empty($Powerpress['channels']) )
1810
- add_submenu_page($parent_slug, __('PowerPress Custom Podcast Channels', 'powerpress'), __('Podcast Channels', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_customfeeds.php', 'powerpress_admin_page_customfeeds');
1811
- if( !empty($Powerpress['cat_casting']) )
1812
- add_submenu_page($parent_slug, __('PowerPress Category Podcasting', 'powerpress'), __('Category Podcasting', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_categoryfeeds.php', 'powerpress_admin_page_categoryfeeds');
1813
- if( defined('POWERPRESS_TAXONOMY_PODCASTING') || !empty($Powerpress['taxonomy_podcasting']) )
1814
- add_submenu_page($parent_slug, __('PowerPress Taxonomy Podcasting', 'powerpress'), __('Taxonomy Podcasting', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_taxonomyfeeds.php', 'powerpress_admin_page_taxonomyfeeds');
1815
- if( defined('POWERPRESS_POSTTYPE_PODCASTING') || !empty($Powerpress['posttype_podcasting']) )
1816
- add_submenu_page($parent_slug, __('PowerPress Post Type Podcasting', 'powerpress'), __('Post Type Podcasting', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_posttypefeeds.php', 'powerpress_admin_page_posttypefeeds');
1817
- if( !empty($Powerpress['podpress_stats']) )
1818
- add_submenu_page($parent_slug, __('PodPress Stats', 'powerpress'), __('PodPress Stats', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_podpress-stats.php', 'powerpress_admin_page_podpress_stats');
1819
- //if( !empty($Powerpress['blubrry_hosting']) && $Powerpress['blubrry_hosting'] !== 'false' )
1820
-
1821
- add_submenu_page($parent_slug, __('PowerPress MP3 Tags', 'powerpress'), __('MP3 Tags', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_tags.php', 'powerpress_admin_page_tags');
1822
- add_submenu_page($parent_slug, __('PowerPress Tools', 'powerpress'), __('Tools', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_tools.php', 'powerpress_admin_page_tools');
1823
- }
 
 
 
 
 
 
1824
  }
1825
 
1826
 
@@ -2132,7 +2126,7 @@ function powerpress_edit_post($post_ID, $post)
2132
  powerpress_process_hosting($post_ID, $post->post_title); // Call anytime blog post is in the published state
2133
  }
2134
  //WebSub implementation
2135
- if($post->post_status == 'publish' && !empty($GeneralSettings['websub_enabled']) ) {
2136
  require_once( 'class.powerpresswebsub.php' );
2137
  $Websub = new PowerPressWebSub();
2138
  $feedUrls = array(); //feed urls that have been updated by this post and that the hub should be notified about.
@@ -2289,6 +2283,7 @@ function powerpress_create_subscribe_page()
2289
  timeout: (30 * 1000),
2290
  success: function(response) {
2291
 
 
2292
  <?php
2293
  if( defined('POWERPRESS_AJAX_DEBUG') )
2294
  echo "\t\t\t\talert(response);\n";
@@ -2573,7 +2568,7 @@ function powerpress_get_media_info(FeedSlug)
2573
  timeout: (30 * 1000),
2574
  success: function(response) {
2575
 
2576
-
2577
  // This logic will parse beyond warning messages generated by the server that we don't know about
2578
  var foundAt = response.indexOf('VERIFY-OK');
2579
  if( foundAt > 0 )
@@ -3161,12 +3156,9 @@ function powerpress_admin_page_footer($SaveButton=true, $form=true)
3161
  </p>
3162
  <?php } ?>
3163
  <p style="font-size: 85%; text-align: center; padding-bottom: 35px;">
3164
- <a href="http://create.blubrry.com/resources/powerpress/" title="Blubrry PowerPress" target="_blank"><?php echo __('Blubrry PowerPress', 'powerpress'); ?></a> <?php echo POWERPRESS_VERSION; ?> &#8212;
3165
- <a href="http://create.blubrry.com/manual/" target="_blank" title="<?php echo __('Podcasting Manual', 'powerpress'); ?>"><?php echo __('Podcasting Manual', 'powerpress'); ?></a> |
3166
- <a href="http://create.blubrry.com/resources/" target="_blank" title="<?php echo __('Blubrry PowerPress and related Resources', 'powerpress'); ?>"><?php echo __('Resources', 'powerpress'); ?></a> |
3167
- <a href="http://create.blubrry.com/support/" target="_blank" title="<?php echo __('Blubrry Support', 'powerpress'); ?>"><?php echo __('Support', 'powerpress'); ?></a> |
3168
- <a href="https://wordpress.org/support/plugin/powerpress" target="_blank" title="<?php echo __('Blubrry PowerPress Forum', 'powerpress'); ?>"><?php echo __('Forum', 'powerpress'); ?></a> |
3169
- <a href="http://twitter.com/blubrry" target="_blank" title="<?php echo __('Follow Blubrry on Twitter', 'powerpress'); ?>"><?php echo __('Follow Blubrry on Twitter', 'powerpress'); ?></a>
3170
  </p>
3171
  <?php if( $form ) { ?>
3172
  </form><?php } ?>
@@ -3177,20 +3169,6 @@ function powerpress_admin_page_footer($SaveButton=true, $form=true)
3177
  // Admin page, advanced mode: basic settings
3178
  function powerpress_admin_page_basic()
3179
  {
3180
- $Settings = get_option('powerpress_general');
3181
-
3182
- if( isset($Settings['advanced_mode_2']) && empty($Settings['advanced_mode_2']) ) // Simple Mode
3183
- {
3184
- powerpress_admin_page_header();
3185
- require_once( POWERPRESS_ABSPATH .'/powerpressadmin-defaults.php');
3186
-
3187
- require_once( POWERPRESS_ABSPATH .'/powerpressadmin-basic.php');
3188
- require_once( POWERPRESS_ABSPATH .'/powerpressadmin-editfeed.php');
3189
- powerpress_admin_defaults();
3190
- powerpress_admin_page_footer(true);
3191
- return;
3192
- }
3193
-
3194
  powerpress_admin_page_header();
3195
  require_once( POWERPRESS_ABSPATH .'/powerpressadmin-basic.php');
3196
  require_once( POWERPRESS_ABSPATH .'/powerpressadmin-editfeed.php');
@@ -3258,6 +3236,13 @@ function powerpress_admin_page_import_feed()
3258
  powerpress_admin_page_footer(false);
3259
  }
3260
 
 
 
 
 
 
 
 
3261
 
3262
  // Admin page, advanced mode: feed settings
3263
  function powerpress_admin_page_search()
56
  {
57
  powerpress_admin_import_podcasting_settings();
58
  }
 
 
 
 
 
 
59
  }
60
  }
61
 
1057
  require_once( POWERPRESS_ABSPATH . '/powerpressadmin-podpress.php');
1058
  powerpressadmin_podpress_delete_data();
1059
 
 
 
 
 
 
 
1060
  }; break;
1061
  case 'powerpress-category-settings': {
1062
  // Save here!
1758
  }
1759
  }
1760
 
1761
+ if( current_user_can(POWERPRESS_CAPABILITY_MANAGE_OPTIONS) ) {
1762
+ $Powerpress = powerpress_default_settings($Powerpress, 'basic');
1763
+
1764
+ if (isset($_GET['page']) && strstr($_GET['page'], 'powerpress') !== false && isset($_POST['General'])) {
1765
+ $ToBeSaved = $_POST['General'];
1766
+
1767
+ if (isset($ToBeSaved['channels']))
1768
+ $Powerpress['channels'] = $ToBeSaved['channels'];
1769
+ if (isset($ToBeSaved['cat_casting']))
1770
+ $Powerpress['cat_casting'] = $ToBeSaved['cat_casting'];
1771
+ if (isset($ToBeSaved['taxonomy_podcasting']))
1772
+ $Powerpress['taxonomy_podcasting'] = $ToBeSaved['taxonomy_podcasting'];
1773
+ if (isset($ToBeSaved['posttype_podcasting']))
1774
+ $Powerpress['posttype_podcasting'] = $ToBeSaved['posttype_podcasting'];
1775
+ if (isset($ToBeSaved['podpress_stats']))
1776
+ $Powerpress['podpress_stats'] = $ToBeSaved['podpress_stats'];
1777
+ if (isset($ToBeSaved['blubrry_hosting']))
1778
+ $Powerpress['blubrry_hosting'] = $ToBeSaved['blubrry_hosting'];
1779
+ }
1780
+ $Settings = get_option('powerpress_general');
1781
+ if (!$Settings || (isset($Settings['pp_onboarding_incomplete']) && $Settings['pp_onboarding_incomplete'] == 1) && (isset($Settings['timestamp']) && $Settings['timestamp'] > 1576972800)) {
1782
+ $parent_slug = 'powerpressadmin_onboarding.php';
1783
+ $parent_slug = apply_filters('powerpress_submenu_parent_slug', $parent_slug);
1784
+ add_menu_page(__('PowerPress', 'powerpress'), __('PowerPress', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpressadmin_onboarding.php', 'powerpress_admin_page_onboarding', powerpress_get_root_url() . 'powerpress_ico.png');
1785
+ add_submenu_page($parent_slug, __('Get Started', 'powerpress'), __('Get Started', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpressadmin_onboarding.php', 'powerpress_admin_page_onboarding');
1786
+ } else {
1787
+ $parent_slug = 'powerpressadmin_basic';
1788
+ $parent_slug = apply_filters('powerpress_submenu_parent_slug', $parent_slug);
1789
+ add_menu_page(__('PowerPress', 'powerpress'), __('PowerPress', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpressadmin_basic', 'powerpress_admin_page_basic', powerpress_get_root_url() . 'powerpress_ico.png');
1790
+ add_submenu_page($parent_slug, __('PowerPress Settings', 'powerpress'), __('Settings', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpressadmin_basic', 'powerpress_admin_page_basic');
1791
+ add_submenu_page($parent_slug, __('Get Started', 'powerpress'), __('Get Started', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpressadmin_onboarding.php', 'powerpress_admin_page_onboarding');
1792
+ add_options_page(__('PowerPress', 'powerpress'), __('PowerPress', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpressadmin_basic', 'powerpress_admin_page_basic');
1793
+
1794
+ add_submenu_page($parent_slug, __('Import podcast feed from SoundCloud, LibSyn, PodBean or other podcast service.', 'powerpress'), __('Import Podcast', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_import_feed.php', 'powerpress_admin_page_import_feed');
1795
+ add_submenu_page($parent_slug, __('Migrate media files to Blubrry Podcast Media Hosting with only a few clicks.', 'powerpress'), __('Migrate Media', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_migrate.php', 'powerpress_admin_page_migrate');
1796
+ add_submenu_page($parent_slug, __('PowerPress Podcasting SEO', 'powerpress'), '<span style="color:#f18500">' . __('Podcasting SEO', 'powerpress') . '</span> ', POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_search.php', 'powerpress_admin_page_search');
1797
+
1798
+ add_submenu_page($parent_slug, __('PowerPress Audio Player Options', 'powerpress'), __('Audio Player', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_player.php', 'powerpress_admin_page_players');
1799
+ add_submenu_page($parent_slug, __('PowerPress Video Player Options', 'powerpress'), __('Video Player', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_videoplayer.php', 'powerpress_admin_page_videoplayers');
1800
+
1801
+ if (!empty($Powerpress['channels']))
1802
+ add_submenu_page($parent_slug, __('PowerPress Custom Podcast Channels', 'powerpress'), __('Podcast Channels', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_customfeeds.php', 'powerpress_admin_page_customfeeds');
1803
+ if (!empty($Powerpress['cat_casting']))
1804
+ add_submenu_page($parent_slug, __('PowerPress Category Podcasting', 'powerpress'), __('Category Podcasting', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_categoryfeeds.php', 'powerpress_admin_page_categoryfeeds');
1805
+ if (defined('POWERPRESS_TAXONOMY_PODCASTING') || !empty($Powerpress['taxonomy_podcasting']))
1806
+ add_submenu_page($parent_slug, __('PowerPress Taxonomy Podcasting', 'powerpress'), __('Taxonomy Podcasting', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_taxonomyfeeds.php', 'powerpress_admin_page_taxonomyfeeds');
1807
+ if (defined('POWERPRESS_POSTTYPE_PODCASTING') || !empty($Powerpress['posttype_podcasting']))
1808
+ add_submenu_page($parent_slug, __('PowerPress Post Type Podcasting', 'powerpress'), __('Post Type Podcasting', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_posttypefeeds.php', 'powerpress_admin_page_posttypefeeds');
1809
+ if (!empty($Powerpress['podpress_stats']))
1810
+ add_submenu_page($parent_slug, __('PodPress Stats', 'powerpress'), __('PodPress Stats', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_podpress-stats.php', 'powerpress_admin_page_podpress_stats');
1811
+ //if( !empty($Powerpress['blubrry_hosting']) && $Powerpress['blubrry_hosting'] !== 'false' )
1812
+
1813
+ add_submenu_page($parent_slug, __('PowerPress MP3 Tags', 'powerpress'), __('MP3 Tags', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_tags.php', 'powerpress_admin_page_tags');
1814
+ add_submenu_page($parent_slug, __('PowerPress Tools', 'powerpress'), __('Tools', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_tools.php', 'powerpress_admin_page_tools');
1815
+
1816
+ }
1817
+ }
1818
  }
1819
 
1820
 
2126
  powerpress_process_hosting($post_ID, $post->post_title); // Call anytime blog post is in the published state
2127
  }
2128
  //WebSub implementation
2129
+ if($post->post_status == 'publish' && !(defined('POWERPRESS_DISABLE_WEBSUB') && POWERPRESS_DISABLE_WEBSUB )) {
2130
  require_once( 'class.powerpresswebsub.php' );
2131
  $Websub = new PowerPressWebSub();
2132
  $feedUrls = array(); //feed urls that have been updated by this post and that the hub should be notified about.
2283
  timeout: (30 * 1000),
2284
  success: function(response) {
2285
 
2286
+ response = response.trim();
2287
  <?php
2288
  if( defined('POWERPRESS_AJAX_DEBUG') )
2289
  echo "\t\t\t\talert(response);\n";
2568
  timeout: (30 * 1000),
2569
  success: function(response) {
2570
 
2571
+ response = response.trim();
2572
  // This logic will parse beyond warning messages generated by the server that we don't know about
2573
  var foundAt = response.indexOf('VERIFY-OK');
2574
  if( foundAt > 0 )
3156
  </p>
3157
  <?php } ?>
3158
  <p style="font-size: 85%; text-align: center; padding-bottom: 35px;">
3159
+ <a href="http://create.blubrry.com/resources/powerpress/" title="Blubrry PowerPress" target="_blank"><?php echo __('Blubrry PowerPress', 'powerpress'); ?></a> <?php echo POWERPRESS_VERSION; ?> &#8212;
3160
+ <a href="http://create.blubrry.com/resources/podcast-media-hosting/" target="_blank" title="<?php echo __('Blubrry PowerPress and related Resources', 'powerpress'); ?>"><?php echo __('Resources', 'powerpress'); ?></a> |
3161
+ <a href="http://create.blubrry.com/support/" target="_blank" title="<?php echo __('Blubrry Support', 'powerpress'); ?>"><?php echo __('Support', 'powerpress'); ?></a>
 
 
 
3162
  </p>
3163
  <?php if( $form ) { ?>
3164
  </form><?php } ?>
3169
  // Admin page, advanced mode: basic settings
3170
  function powerpress_admin_page_basic()
3171
  {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3172
  powerpress_admin_page_header();
3173
  require_once( POWERPRESS_ABSPATH .'/powerpressadmin-basic.php');
3174
  require_once( POWERPRESS_ABSPATH .'/powerpressadmin-editfeed.php');
3236
  powerpress_admin_page_footer(false);
3237
  }
3238
 
3239
+ function powerpress_admin_page_onboarding() {
3240
+ require_once( POWERPRESS_ABSPATH .'/class.powerpress_onboarding.php');
3241
+ $onboardinClass = new PowerpressOnboarding();
3242
+ $onboardinClass->router($_GET);
3243
+ powerpress_admin_page_footer(false);
3244
+ }
3245
+
3246
 
3247
  // Admin page, advanced mode: feed settings
3248
  function powerpress_admin_page_search()
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: amandato, blubrry
3
  Tags: podcasting, podcast, podcaster, powerpress, itunes, apple, apple podcasts, google podcasts, google play, enclosure, professional, apple, apple tv, ipad, iphone, soundcloud, squarespace, youtube, viddler, ustream, podcasting, audio, video, rss2, feed, player, media, rss, mp3, music, embed, feedburner, statistics, stats, flv, flash, id3, episodes, blubrry, mp4, m4v, wordpressmu, mu, wordpress mu, multisite, multi site, mediacaster, post, plugin, posts, simple, social, dashboard, TSG, Buzzsprout, MTR, WP-boxCast, CastMyBlog, tgs podcasting, simple podcasting, seriously simple podcasting, seriously-simple-podcasting, serious, seriously, ssp, podlove, podcast.de, clammr, clammr radio, audio player, stitcher, tunein, show, shows, series, docs, documentation, support, free, add-ons, extensions, addons, libsyn, libsyn-podcasting, podbean, podomatic, spreaker
4
  Requires at least: 3.6
5
  Requires PHP: 5.2
6
- Tested up to: 5.2.3
7
- Stable tag: 8.0.3
8
  Donate link: https://create.blubrry.com/resources/podcast-media-hosting/
9
  License: GPLv2 or later
10
 
@@ -236,6 +236,16 @@ To install Blubrry PowerPress manually, follow these steps:
236
  = Fan of PowerPress and want to show your support? =
237
  If you are a fan of PowerPress, we would greatly appreciate it if you could take a moment and [leave us a review on WordPress.org](https://wordpress.org/support/plugin/powerpress/reviews/?rate=5#new-post). Your support is greatly appreciated!
238
 
 
 
 
 
 
 
 
 
 
 
239
  = 8.0.3 =
240
  * Released on 11/15/2019
241
  * Added titles to iframes so as to be compliant with ADA
@@ -243,6 +253,7 @@ If you are a fan of PowerPress, we would greatly appreciate it if you could take
243
  * Now, all three Apple categories will show up regardless of whether they are set
244
  * Users can no longer hide certain ios11 settings in their Tools tab
245
 
 
246
  = 8.0.2 =
247
  * Released on 10/24/2019
248
  * Brought back the ability to render black subscribe buttons using [powerpress_subscribe style="dark"] (Thanks @vennstone for bringing to our attention!)
3
  Tags: podcasting, podcast, podcaster, powerpress, itunes, apple, apple podcasts, google podcasts, google play, enclosure, professional, apple, apple tv, ipad, iphone, soundcloud, squarespace, youtube, viddler, ustream, podcasting, audio, video, rss2, feed, player, media, rss, mp3, music, embed, feedburner, statistics, stats, flv, flash, id3, episodes, blubrry, mp4, m4v, wordpressmu, mu, wordpress mu, multisite, multi site, mediacaster, post, plugin, posts, simple, social, dashboard, TSG, Buzzsprout, MTR, WP-boxCast, CastMyBlog, tgs podcasting, simple podcasting, seriously simple podcasting, seriously-simple-podcasting, serious, seriously, ssp, podlove, podcast.de, clammr, clammr radio, audio player, stitcher, tunein, show, shows, series, docs, documentation, support, free, add-ons, extensions, addons, libsyn, libsyn-podcasting, podbean, podomatic, spreaker
4
  Requires at least: 3.6
5
  Requires PHP: 5.2
6
+ Tested up to: 5.3.2
7
+ Stable tag: 8.1
8
  Donate link: https://create.blubrry.com/resources/podcast-media-hosting/
9
  License: GPLv2 or later
10
 
236
  = Fan of PowerPress and want to show your support? =
237
  If you are a fan of PowerPress, we would greatly appreciate it if you could take a moment and [leave us a review on WordPress.org](https://wordpress.org/support/plugin/powerpress/reviews/?rate=5#new-post). Your support is greatly appreciated!
238
 
239
+
240
+ = 8.1 =
241
+ * Eliminated Simple Mode
242
+ * Replaced Simple Mode with a Getting Started section which shows up the first time someone opens PowerPress
243
+ * Getting Started includes feed info settings, feed import, and media migration
244
+ * Getting Started can also be revisited at any time
245
+ * Added trim call for ajax returns in case website is sending extra new lines due to a theme or plugin
246
+ * Now using the latest media detection library (getid3) in WordPress
247
+
248
+
249
  = 8.0.3 =
250
  * Released on 11/15/2019
251
  * Added titles to iframes so as to be compliant with ADA
253
  * Now, all three Apple categories will show up regardless of whether they are set
254
  * Users can no longer hide certain ios11 settings in their Tools tab
255
 
256
+
257
  = 8.0.2 =
258
  * Released on 10/24/2019
259
  * Brought back the ability to render black subscribe buttons using [powerpress_subscribe style="dark"] (Thanks @vennstone for bringing to our attention!)
views/onboarding/blubrry_signin.php ADDED
@@ -0,0 +1,253 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $Step = 1;
3
+ if(isset($_GET['import'])) {
4
+ powerpress_page_message_add_notice(__('It looks like your podcast is already hosted by Blubrry, sign in to your Blubrry account to get see the full power of Powerpress.', 'powerpress'), 'inline', false);
5
+ }
6
+ if(isset($_POST['Settings'])) {
7
+ $Password = $_POST['Password'];
8
+ $SaveSettings = $_POST['Settings'];
9
+ $Password = powerpress_stripslashes($Password);
10
+ $SaveSettings = powerpress_stripslashes($SaveSettings);
11
+
12
+ $Save = false;
13
+ $Close = false;
14
+ $Programs = array();
15
+ $ProgramHosting = array();
16
+ $Error = "";
17
+ // Anytime we change the password we need to test it...
18
+ $auth = base64_encode( $SaveSettings['blubrry_username'] . ':' . $Password );
19
+ $json_data = false;
20
+ $api_url_array = powerpress_get_api_array();
21
+ foreach( $api_url_array as $index => $api_url )
22
+ {
23
+ $req_url = sprintf('%s/service/index.json', rtrim($api_url, '/') );
24
+ $req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'?'. POWERPRESS_BLUBRRY_API_QSA:'');
25
+ $json_data = powerpress_remote_fopen($req_url, $auth);
26
+ if( !$json_data && $api_url == 'https://api.blubrry.com/' ) { // Lets force cURL and see if that helps...
27
+ $json_data = powerpress_remote_fopen($req_url, $auth, array(), 15, false, true);
28
+ }
29
+ if( $json_data != false )
30
+ break;
31
+ }
32
+ if( $json_data )
33
+ {
34
+ $results = powerpress_json_decode($json_data);
35
+
36
+ if( isset($results['error']) )
37
+ {
38
+ $Error = $results['error'];
39
+ if( strstr($Error, __('currently not available', 'powerpress') ) )
40
+ {
41
+ $Error = __('Unable to find podcasts for this account.', 'powerpress');
42
+ $Error .= '<br /><span style="font-weight: normal; font-size: 12px;">';
43
+ $Error .= 'Verify that the email address you enter here matches the email address you used when you listed your podcast on blubrry.com.</span>';
44
+ }
45
+ else if( preg_match('/No programs found.*media hosting/i', $results['error']) )
46
+ {
47
+ $Error .= '<br/><span style="font-weight: normal; font-size: 12px;">';
48
+ $Error .= 'Service may take a few minutes to activate.</span>';
49
+ }
50
+ }
51
+ else if( !is_array($results) )
52
+ {
53
+ $Error = $json_data;
54
+ }
55
+ else
56
+ {
57
+ // Get all the programs for this user...
58
+ foreach( $results as $null => $row )
59
+ {
60
+ $Programs[ $row['program_keyword'] ] = $row['program_title'];
61
+ if( $row['hosting'] === true || $row['hosting'] == 'true' )
62
+ $ProgramHosting[ $row['program_keyword'] ] = true;
63
+ else
64
+ $ProgramHosting[ $row['program_keyword'] ] = false;
65
+ }
66
+
67
+ if( count($Programs) > 0 )
68
+ {
69
+ global $wpdb;
70
+ $migrate_string = "";
71
+
72
+ if (isset($SaveSettings['blubrry_migrate']) && $SaveSettings['blubrry_migrate']) {
73
+ $migrate_string = "&migrate=true";
74
+ $query = "SELECT meta_id, post_id, meta_key, meta_value FROM {$wpdb->postmeta} WHERE meta_key LIKE \"%enclosure\"";
75
+ $results_data = $wpdb->get_results($query, ARRAY_A);
76
+ if ($results_data) {
77
+ if (empty($GLOBALS['pp_migrate_media_urls']))
78
+ $GLOBALS['pp_migrate_media_urls'] = array();
79
+ foreach ($results_data as $index => $row) {
80
+ list($url) = @explode("\n", $row['meta_value'], 2);
81
+ $url = trim($url);
82
+ $post_id = $row['post_id'];
83
+ $GLOBALS['pp_migrate_media_urls'][$post_id] = $url;
84
+ }
85
+ require_once(POWERPRESS_ABSPATH . '/powerpressadmin-migrate.php');
86
+
87
+ $update_option = true;
88
+ $QueuedFiles = get_option('powerpress_migrate_queued');
89
+ if (!is_array($QueuedFiles)) {
90
+ $QueuedFiles = array();
91
+ $update_option = false;
92
+ }
93
+
94
+ $add_urls = '';
95
+ foreach ($GLOBALS['pp_migrate_media_urls'] as $meta_id => $url) {
96
+ if (empty($QueuedFiles[$meta_id])) { // Add to the array if not already added
97
+ $QueuedFiles[$meta_id] = $url;
98
+ if (!empty($add_urls)) {
99
+ $add_urls .= "\n";
100
+ }
101
+ $add_urls .= $url;
102
+ }
103
+ }
104
+ powepress_admin_migrate_add_urls($add_urls);
105
+ }
106
+ }
107
+
108
+ $SaveSettings['blubrry_auth'] = $auth;
109
+
110
+ if( !empty($SaveSettings['blubrry_program_keyword']) )
111
+ {
112
+ powerpress_add_blubrry_redirect($SaveSettings['blubrry_program_keyword']);
113
+ $SaveSettings['blubrry_hosting'] = $ProgramHosting[ $SaveSettings['blubrry_program_keyword'] ];
114
+ if( !is_bool($SaveSettings['blubrry_hosting']) )
115
+ {
116
+ if( $SaveSettings['blubrry_hosting'] === 'false' || empty($SaveSettings['blubrry_hosting']) )
117
+ $SaveSettings['blubrry_hosting'] = false;
118
+ }
119
+
120
+ $Save = true;
121
+ $Close = true;
122
+ }
123
+ else if( isset($SaveSettings['blubrry_program_keyword']) ) // Present but empty
124
+ {
125
+ $Error = __('You must select a program to continue.', 'powerpress');
126
+ }
127
+ else if( count($Programs) == 1 )
128
+ {
129
+ foreach( $Programs as $keyword => $title ) {
130
+ break;
131
+ }
132
+
133
+ $SaveSettings['blubrry_program_keyword'] = $keyword;
134
+ $SaveSettings['blubrry_hosting'] = $ProgramHosting[ $keyword ];
135
+ if( !is_bool($SaveSettings['blubrry_hosting']) )
136
+ {
137
+ if( $SaveSettings['blubrry_hosting'] === 'false' || empty($SaveSettings['blubrry_hosting']) )
138
+ $SaveSettings['blubrry_hosting'] = false;
139
+ }
140
+ powerpress_add_blubrry_redirect($keyword);
141
+ $Close = true;
142
+ $Save = true;
143
+ }
144
+ else
145
+ {
146
+ $Step = 2;
147
+ $Settings['blubrry_username'] = $SaveSettings['blubrry_username'];
148
+ }
149
+ }
150
+ else
151
+ {
152
+ $Error = __('No podcasts for this account are listed on blubrry.com.', 'powerpress');
153
+ }
154
+ }
155
+ }
156
+ else
157
+ {
158
+ global $g_powerpress_remote_error, $g_powerpress_remote_errorno;
159
+ //$Error = '<h3>'. __('Error', 'powerpress') .'</h3>';
160
+ if( !empty($g_powerpress_remote_errorno) && $g_powerpress_remote_errorno == 401 )
161
+ $Error .= '<p>'. __('Incorrect sign-in email address or password.', 'powerpress') .'</p><p>'. __('Verify your account settings then try again.', 'powerpress') .'</p>';
162
+ else if( !empty($g_powerpress_remote_error) )
163
+ $Error .= '<p>'.$g_powerpress_remote_error .'</p>';
164
+ else
165
+ $Error .= '<p>'.__('Authentication failed.', 'powerpress') .'</p>';
166
+ }
167
+
168
+ if( $Error )
169
+ {
170
+ $Error .= '<p style="text-align: center;"><a href="http://create.blubrry.com/resources/powerpress/powerpress-settings/services-stats/" target="_blank">'. __('Click Here For Help','powerpress') .'</a></p>';
171
+ }
172
+ if( $Save ) {
173
+ powerpress_save_settings($SaveSettings);
174
+ echo '<script>window.location.href = "' . admin_url("admin.php?page={$_GET['page']}&step=createEpisode$migrate_string") . '";</script>';
175
+ }
176
+ // Clear cached statistics
177
+ delete_option('powerpress_stats');
178
+
179
+ if( $Error )
180
+ powerpress_page_message_add_notice( $Error, 'inline', false );
181
+ }
182
+ ?>
183
+ <?php if($Step == 1) { ?>
184
+ <div class="wrap">
185
+ <div class="pp_container">
186
+ <h2 class="pp_align-center"><?php echo __('Connect to your Blubrry Account', 'powerpress'); ?></h2>
187
+ <img class="image_center" src="<?php echo powerpress_get_root_url(); ?>images/onboarding/blubrrysignin.png">
188
+ <div class="pp_container" style="padding-top: 0;margin-top:0;">
189
+ <?php powerpress_page_message_print() ?>
190
+ <div class="pp_flex-grid" style="align-items: center;justify-content: center;">
191
+ <div class="pp_col" style="text-align: center;">
192
+ <form action="" method="post">
193
+ <div class="pp_form-group" style="text-align: center">
194
+ <div class="pp_input-field-login"style="display: inline-block">
195
+ <input type="text" id="blubrry_username_signin" name="Settings[blubrry_username]" class="pp_outlined" required>
196
+ <label for="blubrry_username_signin"><?php echo __('Username', 'powerpress'); ?></label>
197
+ </div>
198
+ </div>
199
+ <div class="pp_form-group" style="text-align: center">
200
+ <div class="pp_input-field-login" style="display: inline-block">
201
+ <input type="password" id="blubrry_password_signin" name="Password" class="pp_outlined" required>
202
+ <label for="blubrry_password_signin"><?php echo __('Password', 'powerpress'); ?></label>
203
+ </div>
204
+ </div>
205
+ <?php if(isset($_GET['from']) && $_GET['from'] == 'import') { ?>
206
+ <div class="pp_form-group" style="text-align: center">
207
+ <div class="pp_input-field-login" style="display: inline-block">
208
+ <input type="checkbox" id="blubrry_migrate_option_signin" name="Settings[blubrry_migrate]">
209
+ <label for="blubrry_migrate_option_signin"><?php echo __('Migrate media from imported feed (only possible with a hosting account)', 'powerpress'); ?></label>
210
+ </div>
211
+ </div>
212
+ <?php } ?>
213
+ <button type="submit" name="signin" class="pp_button"><span><?php echo __('Sign in', 'powerpress'); ?></span></button>
214
+ <div style="margin-top: 15px">
215
+ <a href="https://www.blubrry.com/resetpassword.php"><?php echo __('Forgot your password?', 'powerpress');?></a>
216
+ </div>
217
+ </form>
218
+ </div>
219
+ </div>
220
+ </div>
221
+ <p style="text-align: center"><?php echo __('Don\'t have an account?', 'powerpress'); ?> <a href="https://www.blubrry.com/createaccount.php" target="_blank"><?php echo __('Create one now', 'powerpress') ?></a></p>
222
+ </div>
223
+
224
+ <?php } else if($Step == 2) { ?>
225
+ <div class="pp_container">
226
+ <h2 class="pp_align-center"><?php echo __('You\'re ready to go!', 'powerpress'); ?></h2>
227
+ <p class="pp_align-center"><?php echo __('Signed in as ', 'powerpress'); ?><a href="https://publish.blubrry.com/account/" target="_blank"><?php echo $Settings['blubrry_username'] ?></a></p>
228
+ <hr class="pp_align-center" />
229
+ <p class="pp_align-center"><?php echo __('You can now now able to upload episodes from within WordPress to blubrry, view basic stats from the wordpress dashboard.', 'powerpress'); ?></p>
230
+ <p class="pp_align-center"><?php echo __('If this is the wrong Blubrry account, visit settings to unlink this account.', 'powerpress'); ?></p>
231
+ </div>
232
+
233
+ <div class="pp_container">
234
+ <?php powerpress_page_message_print() ?>
235
+ <h2 class="pp_align-center"><?php echo __('Select your default show', 'powerpress'); ?></h2>
236
+ <p class="pp_align-center"><?php echo __('You have multiple shows in your account. Please select which one you want to be your default show for this website.', 'powerpress'); ?></p>
237
+ <div class="pp_flex-grid">
238
+ <div class="pp_col">
239
+ <div class="pp_button-container">
240
+ <form action="" method="post">
241
+ <input type="hidden" name="Settings[blubrry_username]" value="<?php echo esc_attr($Settings['blubrry_username']); ?>" />
242
+ <input type="hidden" name="Password" value="<?php echo esc_attr($Password); ?>" />
243
+ <?php
244
+ foreach( $Programs as $value => $desc )
245
+ echo "<div><button type='submit' name='Settings[blubrry_program_keyword]' value='{$value}' class='pp_button show_button'><span>{$desc}</span></button></div>";
246
+ ?>
247
+ </form>
248
+ </div>
249
+ </div>
250
+ </div>
251
+ </div>
252
+ </div>
253
+ <?php } ?>
views/onboarding/createepisode.php ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ require_once POWERPRESS_ABSPATH.'/powerpressadmin.php';
3
+ powerpress_save_settings(array('pp_onboarding_incomplete' => 0, 'powerpress_general'));
4
+ if (isset($_GET['migrate']) && $_GET['migrate']) {
5
+ $message_style = 'display: block;';
6
+ } else {
7
+ $message_style = 'display: none;';
8
+ }
9
+ ?>
10
+ <div class="pp_container">
11
+ <h2 class="pp_align-center"><?php echo __('Time to work on a new episode', 'powerpress'); ?></h2>
12
+ <hr class="pp_align-center" />
13
+ <p class="pp_align-center"><?php echo __('Get started by creating your first post and adding an episode.', 'powerpress'); ?></p>
14
+ <p class="pp_align-center" style="<?php echo $message_style; ?>"><?php echo __('Looks like you have some media migrating to your Blubrry hosting account.', 'powerpress'); ?>&nbsp;<a href="<?php echo admin_url("admin.php?page=powerpress/powerpressadmin_migrate.php"); ?>"><?php echo __('Click here to view the progress.','powerpress'); ?></a></p>
15
+ <section id="one" class="pp_wrapper" style="margin-top:25px;">
16
+ <div class="pp_inner">
17
+
18
+ <div class="pp_flex-grid">
19
+
20
+ <div class="pp_col">
21
+ <div class="pp_box">
22
+ <div class="pp_image center">
23
+ <img src="<?php echo powerpress_get_root_url(); ?>images/onboarding/mic.png" alt="" />
24
+ </div>
25
+ <div class="pp_content">
26
+ <!--<footer class="pp_align-center" style="height: 100%">-->
27
+ <div class="btn-caption-container">
28
+ <p class="pp_align-center" style="margin-bottom: 1ch;"><?php echo __('Release a new episode or blog post.', 'powerpress'); ?></p>
29
+ <p style="text-align: center; font-size: 14px; margin-top: 0;"><?php echo __('FYI: Before submitting to podcast directories, you are required to have at least one published episode.', 'powerpress'); ?></p>
30
+ </div>
31
+ <div class="pp_button-container">
32
+ <a href="<?php echo admin_url('post-new.php') ?>"><button type="button" class="pp_button"><span><?php echo __('Create a new episode', 'powerpress'); ?></span></button></a>
33
+ </div>
34
+ <!--</footer>-->
35
+ </div>
36
+ </div>
37
+ </div>
38
+
39
+ <div class="pp_col">
40
+ <div class="pp_box">
41
+ <div class="pp_image pp_fit center">
42
+ <img src="<?php echo powerpress_get_root_url(); ?>images/onboarding/planning.png" alt="" class="" />
43
+ </div>
44
+ <div class="pp_content">
45
+ <!--<footer class="pp_align-center" style="height: 100%">-->
46
+ <div class="btn-caption-container">
47
+ <p class="pp_align-center"><?php echo __('Continue with PowerPress options for your feed and website.', 'powerpress'); ?></p>
48
+ </div>
49
+ <div class="pp_button-container">
50
+ <a href="<?php echo admin_url('admin.php?page=powerpressadmin_basic') ?>">
51
+ <button type="button" class="pp_button_alt"><span><?php echo __('Skip and go to settings', 'powerpress'); ?></span></button>
52
+ </a>
53
+ </div>
54
+ <!--</footer>-->
55
+ </div>
56
+ </div>
57
+ </div>
58
+
59
+ </div>
60
+ </div>
61
+ </section>
62
+
63
+
views/onboarding/nohost.php ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $GeneralSettings = powerpress_get_settings('powerpress_general');
3
+ if (isset($GeneralSettings['blubrry_auth']) && $GeneralSettings['blubrry_auth'] != null) {
4
+ $next_page = 'createEpisode';
5
+ } else {
6
+ $next_page = 'wantStats';
7
+ }
8
+ if (isset($_GET['from']) && $_GET['from'] == 'import') {
9
+ $querystring_import = "&from=import";
10
+ } else {
11
+ $querystring_import = "";
12
+ }
13
+ ?>
14
+ <div class="wrap">
15
+ <div class="pp_container">
16
+ <h2 class="pp_align-center"><?php echo __('Would you like to host with Blubrry?', 'powerpress'); ?></h2>
17
+ <h5 class="pp_align-center"><?php echo __('Don’t know what a podcast host is?', 'powerpress'); ?> <a style="color:blue" href="https://create.blubrry.com/manual/internet-media-hosting/"><?php echo __('Learn more', 'powerpress'); ?></a></h5>
18
+ <hr class="pp_align-center" />
19
+ <p class="pp_align-center"><?php echo __('A podcast media host is essential for your show. If you host your files and RSS feed on WordPress, it can be very fragile and break.', 'powerpress'); ?> </p>
20
+
21
+ <p class="pp_align-center"><?php echo __('Directories may reject your show if they find out you are not using a reliable hosting service.', 'powerpress'); ?></p>
22
+
23
+ <section id="one" class="pp_wrapper" style="margin-top:25px;">
24
+ <div class="pp_inner">
25
+
26
+ <div class="pp_flex-grid">
27
+
28
+ <div class="pp_col">
29
+ <div class="pp_box">
30
+ <div class="pp_image pp_fit center">
31
+ <img src="<?php echo powerpress_get_root_url(); ?>images/onboarding/nohost.png" alt="" class="" />
32
+ </div>
33
+ <div class="pp_content">
34
+ <!--<div class="pp_align-center">-->
35
+ <div class="btn-caption-container">
36
+ <p class="pp_align-center"><?php echo __('You may self-host, but have limited options and security for your show.', 'powerpress'); ?></p>
37
+ </div>
38
+ <div class="pp_button-container">
39
+ <a href="<?php echo admin_url("admin.php?page={$_GET['page']}&step=$next_page"); ?>">
40
+ <button type="button" class="pp_button_alt"><span><?php echo __('No, thanks', 'powerpress'); ?></span></button>
41
+ </a>
42
+ </div>
43
+ <!--</div>-->
44
+ </div>
45
+ </div>
46
+ </div>
47
+
48
+ <div class="pp_col">
49
+ <div class="pp_box">
50
+ <div class="pp_image center">
51
+ <img src="<?php echo powerpress_get_root_url(); ?>images/onboarding/blubrry.png" alt="" />
52
+ </div>
53
+ <div class="pp_content">
54
+ <!--<div class="pp_align-center">-->
55
+ <div class="btn-caption-container">
56
+ <p class="pp_align-center"><?php echo __('Secure media storage, unlimited bandwidth, and pro stats included. Create an account or sign in.', 'powerpress'); ?></p>
57
+ </div>
58
+ <div class="pp_button-container">
59
+ <a href="<?php echo admin_url("admin.php?page={$_GET['page']}&step=blubrrySignin$querystring_import"); ?>">
60
+ <button type="button" class="pp_button"><span><?php echo __('Host with Blubrry', 'powerpress'); ?></span></button>
61
+ </a>
62
+ </div>
63
+ <!--</div>-->
64
+ </div>
65
+ </div>
66
+ </div>
67
+ </div>
68
+ </div>
69
+ </section>
70
+ </div>
views/onboarding/show_basics.php ADDED
@@ -0,0 +1,263 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $AppleCategories = powerpress_apple_categories(true);
3
+ $FeedSettings = powerpress_get_settings('powerpress_feed_podcast');
4
+ $GeneralSettings = powerpress_get_settings('powerpress_general');
5
+ $title = $FeedSettings['title'] ? $FeedSettings['title'] : get_bloginfo_rss('name');
6
+ if (isset($_FILES['itunes_image_file'])) {
7
+ $feed_info = explode(" ", $_POST['basic_details']);
8
+ foreach ($feed_info as $i => $word) {
9
+ switch($word) {
10
+ case 'TITLE:':
11
+ if ($feed_info[$i + 1] != 'CATEGORY:') {
12
+ $title = str_replace("_", " ", $feed_info[$i + 1]);
13
+ }
14
+ break;
15
+ case 'CATEGORY:':
16
+ if ($feed_info[$i + 1] != 'EXPLICIT:') {
17
+ $FeedSettings['apple_cat_1'] = $feed_info[$i + 1];
18
+ }
19
+ break;
20
+ case 'EXPLICIT:':
21
+ if ($feed_info[$i + 1] != 'undefined') {
22
+ $FeedSettings['itunes_explicit'] = intval($feed_info[$i + 1]);
23
+ }
24
+ break;
25
+ default:
26
+ break;
27
+ }
28
+ }
29
+ $upload_path = false;
30
+ $upload_url = false;
31
+ $error = false;
32
+ $UploadArray = wp_upload_dir();
33
+ if( false === $UploadArray['error'] )
34
+ {
35
+ $upload_path = $UploadArray['basedir'].'/powerpress/';
36
+ $upload_url = $UploadArray['baseurl'].'/powerpress/';
37
+ }
38
+ $filename = str_replace(" ", "_", basename($_FILES['itunes_image_file']['name']) );
39
+ $temp = $_FILES['itunes_image_file']['tmp_name'];
40
+
41
+ if( file_exists($upload_path . $filename ) )
42
+ {
43
+ $filenameParts = pathinfo($filename);
44
+ if( !empty($filenameParts['extension']) ) {
45
+ do {
46
+ $filename_no_ext = substr($filenameParts['basename'], 0, (strlen($filenameParts['extension'])+1) * -1 );
47
+ $filename = sprintf('%s-%03d.%s', $filename_no_ext, rand(0, 999), $filenameParts['extension'] );
48
+ } while( file_exists($upload_path . $filename ) );
49
+ }
50
+ }
51
+
52
+ // Check the image...
53
+ if( file_exists($temp) )
54
+ {
55
+ if (!file_exists($upload_path)) {
56
+ mkdir($upload_path, 0777, true);
57
+ }
58
+ if (!move_uploaded_file($temp, $upload_path . $filename)) {
59
+ powerpress_page_message_add_error(__('Error saving Apple Podcasts image', 'powerpress') . ': ' . htmlspecialchars($_FILES['itunes_image_file']['name']) . ' - ' . __('An error occurred saving the iTunes image on the server.', 'powerpress') . ' ' . sprintf(__('Local folder: %s; File name: %s', 'powerpress'), $upload_path, $filename));
60
+ $error = true;
61
+ } else {
62
+ $previewImageURL = $upload_url . $filename;
63
+ }
64
+ }
65
+ }
66
+ if (isset($_POST['pp_start']['title'])) {
67
+ $SaveSettings = powerpress_stripslashes($_POST['pp_start']);
68
+ if (isset($previewImageURL)) {
69
+ unset($SaveSettings['itunes_image']);
70
+ $SaveSettings['itunes_image'] = $previewImageURL;
71
+ }
72
+ //var_dump($SaveSettings);
73
+ powerpress_save_settings($SaveSettings, 'powerpress_feed_podcast');
74
+ if (isset($GeneralSettings['blubrry_hosting']) && $GeneralSettings['blubrry_hosting'] != null) {
75
+ echo '<script>window.location.href = "' . admin_url("admin.php?page={$_GET['page']}&step=createEpisode") . '";</script>';
76
+ } else {
77
+ echo '<script>window.location.href = "' . admin_url("admin.php?page={$_GET['page']}&step=nohost") . '";</script>';
78
+ }
79
+ }
80
+
81
+ ?>
82
+
83
+ <div class="wrap">
84
+ <div class="pp_container">
85
+ <h2 class="pp_align-center"><?php echo __('Enter your podcast title and upload artwork', 'powerpress'); ?></h2>
86
+ <h5 class="pp_align-center" style="margin-bottom: 2rem;"><?php echo __('Before you can upload your podcast, you need to name it and add podcast artwork.', 'powerpress'); ?></h5>
87
+ <hr style="margin-top: 0;" class="pp_align-center" />
88
+
89
+ <section id="one" class="pp_wrapper" style="margin-top:25px;">
90
+
91
+ <div class="pp_flex-grid">
92
+ <div class="pp_col">
93
+ <form id="basic-feed" enctype="multipart/form-data" action="" method="post">
94
+ <div class="pp_leftline">
95
+ <h4><?php echo __('Podcast Title', 'powerpress'); ?></h4>
96
+ <div class="pp_form-group">
97
+ <div class="pp_input-field-thirds">
98
+ <input id="input-title" type="text" name="pp_start[title]" class="pp_outlined" value="<?php echo $title; ?>" placeholder="<?php echo __('Enter the title of your podcast', 'powerpress'); ?>">
99
+ <label id="title-label" style="display:none" oninput=""><?php echo __('Enter the title of your podcast', 'powerpress'); ?></label>
100
+ <script>
101
+ jQuery("#input-title").on("input", function(el) {
102
+ jQuery("#title-label").css("display", "inline-block");
103
+ jQuery("#input-title").attr("placeholder", "");
104
+ });
105
+ </script>
106
+ </div>
107
+ </div>
108
+ </div>
109
+ <div class="pp_leftline">
110
+ <h4><?php echo __('Category', 'powerpress'); ?></h4>
111
+ <div class="pp_form-group">
112
+ <div class="pp_input-field-thirds">
113
+ <select id="apple_cat" name="pp_start[apple_cat_1]" class="bpp_input_med">
114
+ <?php
115
+
116
+ echo '<option value="">'. __('Select Category', 'powerpress') .'</option>';
117
+
118
+ foreach( $AppleCategories as $value=> $desc ) {
119
+ echo "\t<option value=\"$value\"" . ($FeedSettings['apple_cat_1'] == $value ? ' selected' : '') . ">" . htmlspecialchars($desc) . "</option>\n";
120
+ }
121
+ reset($AppleCategories);
122
+ ?>
123
+ </select>
124
+ </div>
125
+
126
+ </div>
127
+ </div>
128
+ <div class="pp_leftline">
129
+ <h4><?php echo __('Does your podcast contain explicit content?', 'powerpress'); ?></h4>
130
+ <div class="pp_form-group">
131
+ <label><input type="radio" name="pp_start[itunes_explicit]" value="1" <?php echo $FeedSettings['itunes_explicit'] == 1 ? 'checked': '' ?> /> <?php echo __('Yes', 'powerpress'); ?></label>
132
+ <label><input type="radio" name="pp_start[itunes_explicit]" value="2" <?php echo $FeedSettings['itunes_explicit'] == 2 ? 'checked': '' ?> /> <?php echo __('No', 'powerpress'); ?></label>
133
+ </div>
134
+ </div>
135
+ <button type="submit" name="basic-feed-submit" class="pp_button" style="visibility: hidden;"><span><?php echo __('Continue', 'powerpress'); ?></span></button>
136
+ </form>
137
+ </div>
138
+
139
+ <div class="pp_col">
140
+ <form id="artwork" enctype="multipart/form-data" action="" method="post">
141
+ <div class="pp_leftline">
142
+ <h4><?php echo __('Podcast Artwork', 'powerpress'); ?></h4>
143
+ <div id="error-container" style="display: none;"><h5 style="font-weight: bold;color: red;"><img style="vertical-align: middle;margin: 0 5px 3px 0;" src="<?php echo powerpress_get_root_url(); ?>images/onboarding/cancel.svg"><?php echo __('Your image is not valid.', 'powerpress'); ?></h5></div>
144
+ <div class="pp_flex-grid" id="showbasics_artwork">
145
+ <div class="pp_col" id="showbasics_artwork_upload" style="margin-left: 0;">
146
+ <input type="text" id="filePath" readonly class="pp_outlined" style="margin: 1rem 0 1ch 0;" placeholder="Upload your show artwork" <?php echo empty($FeedSettings['itunes_image']) ? '' : "value='{$FeedSettings['itunes_image']}'" ?>>
147
+ <input id="itunes_image" type="hidden" name="pp_start[itunes_image]" <?php echo !empty($FeedSettings['itunes_image']) ? "value='{$FeedSettings['itunes_image']}'" : "" ?>>
148
+ <?php
149
+ if (!isset($previewImageURL)) {
150
+ $previewImageURL = !empty($FeedSettings['itunes_image']) ? $FeedSettings['itunes_image'] : 'https://via.placeholder.com/275?text=Artwork+Preview';
151
+ } ?>
152
+ <img id="preview_image" class="image_wrapper" src="<?php echo $previewImageURL ?>" alt="Podcast Artwork Preview">
153
+ <input type="hidden" name="basic_details" id="basic-details">
154
+ </div>
155
+ <div class="pp_col" style="margin: 0;">
156
+ <div id="upload-artwork-button" class="pp_button_alt" onclick="document.getElementById('FileAttachment').click();">
157
+ <span><?php echo __('Upload', 'powerpress'); ?></span>
158
+ <input type="file" id="FileAttachment" name="itunes_image_file" accept="image/*" class="pp_file_upload" style="display: none;" />
159
+ </div>
160
+ <div id="artwork-spec">
161
+ <strong><?php echo __('Make sure your artwork meets the criteria for the best experience!', 'powerpress'); ?></strong>
162
+ <hr style="margin: 1em 0 0 0;">
163
+ <p class="pp-smaller-text"><?php echo __('Minimum size: 1400px x 1400px', 'powerpress'); ?></p>
164
+ <p class="pp-smaller-text"><?php echo __('Maximum size: 3000px x 3000px', 'powerpress'); ?></p>
165
+ <img style="display: none;" src="<?php echo powerpress_get_root_url(); ?>images/onboarding/checkmark.svg" id="size-icon" class="success-fail-icon">
166
+ <hr style="margin: 0;">
167
+ <p class="pp-smaller-text"><?php echo __('.jpg or .png', 'powerpress'); ?></p>
168
+ <img style="display: none;" src="<?php echo powerpress_get_root_url(); ?>images/onboarding/checkmark.svg" id="type-icon" class="success-fail-icon">
169
+ <hr style="margin: 0;">
170
+ <p class="pp-smaller-text"><?php echo __('RGB color space', 'powerpress'); ?></p>
171
+ <img style="display: none;" src="<?php echo powerpress_get_root_url(); ?>images/onboarding/checkmark.svg" id="colorspace-icon" class="success-fail-icon">
172
+ <hr style="margin: 0 0 1em 0;">
173
+ <a href="https://create.blubrry.com/resources/powerpress/powerpress-settings/artwork-2/"><?php echo __('Learn more about Podcast Artwork', 'powerpress'); ?></a>
174
+ </div>
175
+ </div>
176
+ </div>
177
+ </div>
178
+ <button type="submit" name="artwork-submit" class="pp_button" style="visibility: hidden;"><span><?php echo __('Continue', 'powerpress'); ?></span></button>
179
+ </form>
180
+ </div>
181
+ </section>
182
+ <div class="pp_col" style="padding: 20px 0;">
183
+ <hr class="pp_align-center" />
184
+ <div class="pp_button-container" style="float: right;">
185
+ <button id="continue-button" type="button" name="submit" class="pp_button"><span><?php echo __('Continue', 'powerpress'); ?></span></button>
186
+ </div>
187
+ </div>
188
+ </div>
189
+ <script>
190
+ function verifyImage() {
191
+ var img = new Image();
192
+ img.onload = function() {
193
+ let url = jQuery('#preview_image').attr("src");
194
+ jQuery("#itunes_image").val(url);
195
+
196
+ let width = this.naturalWidth;
197
+ let height = this.naturalHeight;
198
+ if (width != height || width > 3000 || width < 1400) {
199
+ jQuery("#size-icon").removeAttr('src');
200
+ jQuery("#size-icon").attr('src', '<?php echo powerpress_get_root_url(); ?>images/onboarding/cancel.svg');
201
+ }
202
+ jQuery("#size-icon").removeAttr('style');
203
+ jQuery("#size-icon").attr('style', 'display: inline-block');
204
+ if (!url.toLowerCase().includes('.jpg') && !url.toLowerCase().includes('.png')) {
205
+ jQuery("#type-icon").removeAttr('src');
206
+ jQuery("#type-icon").attr('src', '<?php echo powerpress_get_root_url(); ?>images/onboarding/cancel.svg')
207
+ }
208
+ jQuery("#type-icon").removeAttr('style');
209
+ jQuery("#type-icon").attr('style', 'display: inline-block');
210
+
211
+ let validate_url = 'https://castfeedvalidator.com/validate_colorspace?artwork-url=' + encodeURIComponent(url);
212
+ jQuery("#colorspace-icon").removeAttr('src');
213
+ jQuery("#colorspace-icon").attr('src', validate_url);
214
+ jQuery("#colorspace-icon").removeAttr('style');
215
+ jQuery("#colorspace-icon").attr('style', 'display: inline-block');
216
+
217
+ };
218
+ let url = jQuery('#preview_image').attr("src");
219
+ img.src = url;
220
+ }
221
+ jQuery(document).ready(function() {
222
+ jQuery("#filePath").val(jQuery("#preview_image").attr('src').replace(/https?:\/\/.*\/uploads\/powerpress\//i, ''));
223
+ let title = jQuery("#input-title").val().replace(" ", "_");
224
+ let category = jQuery("#apple_cat").val();
225
+ let explicit = jQuery("input[type=radio]:checked").val();
226
+ jQuery("#basic-details").val("TITLE: " + title + " CATEGORY: " + category + " EXPLICIT: " + explicit);
227
+ jQuery("#input-title").on("input", function() {
228
+ refreshDetails();
229
+ });
230
+ jQuery("#apple_cat").on("change", function() {
231
+ refreshDetails();
232
+ });
233
+ jQuery("input[type=radio]").on("change", function() {
234
+ refreshDetails();
235
+ });
236
+ jQuery("#continue-button").on("click", function () {
237
+ let valid_image = true;
238
+ jQuery(".success-fail-icon").each(function(index) {
239
+ if (jQuery(this).attr("src").includes("cancel.svg")) {
240
+ valid_image = false;
241
+ }
242
+ });
243
+ if (valid_image) {
244
+ jQuery('#artwork :input').not(':submit').clone().hide().appendTo('#basic-feed');
245
+ jQuery("#basic-feed").submit();
246
+ } else {
247
+ jQuery("#error-container").removeAttr('style');
248
+ }
249
+ });
250
+ verifyImage();
251
+ });
252
+
253
+ function refreshDetails() {
254
+ let title = jQuery("#input-title").val().replace(" ", "_");
255
+ let category = jQuery("#apple_cat").val();
256
+ let explicit = jQuery("input[type=radio]:checked").val();
257
+ jQuery("#basic-details").val("TITLE: " + title + " CATEGORY: " + category + " EXPLICIT: " + explicit);
258
+ }
259
+
260
+ document.getElementById("FileAttachment").onchange = function () {
261
+ jQuery("#artwork").submit();
262
+ };
263
+ </script>
views/onboarding/start.php ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $Settings = get_option('powerpress_general');
3
+ if (!isset($Settings['pp_onboarding_incomplete'])) {
4
+ powerpress_save_settings(array('pp_onboarding_incomplete' => 1, 'powerpress_general'));
5
+ }
6
+ ?>
7
+ <div class="wrap">
8
+ <div class="pp_container">
9
+ <h2 class="pp_align-center"><?php echo __('Welcome to PowerPress','powerpress'); ?><img id="blubrry-logo-onboarding" src="<?php echo powerpress_get_root_url(); ?>images/blubrry_icon.png" alt="" /> </h2>
10
+ <h5 class="pp_align-center"><?php echo __('Let\'s get started','powerpress'); ?></h5>
11
+ <hr class="pp_align-center" />
12
+ <h1 class="pp_align-center"><?php echo __('Have you started your podcast?','powerpress'); ?></h1>
13
+ <h5 class="pp_align-center"><?php echo __('Do you already have an RSS feed?','powerpress'); ?></h5>
14
+ <br />
15
+ <section id="one" class="pp_wrapper">
16
+ <div class="pp_inner">
17
+
18
+ <div class="pp_flex-grid">
19
+ <div class="pp_col">
20
+ <div class="pp_box">
21
+ <div class="pp_image pp_fit center">
22
+ <img src="<?php echo powerpress_get_root_url(); ?>images/onboarding/no_start.png" alt="" class="" />
23
+ </div>
24
+ <div class="pp_content">
25
+ <div class="btn-caption-container" style="margin-top:3em; height: 40%;">
26
+ <p class="pp_align-center"><?php echo __('No worries. We\'ll get a feed set up for you now.','powerpress'); ?></p>
27
+ </div>
28
+ <!--<footer class="pp_align-center">-->
29
+ <div class="pp_button-container">
30
+ <a href="<?php echo admin_url("admin.php?page={$_GET['page']}&step=showBasics"); ?>">
31
+ <button type="button" class="pp_button_alt"><span><?php echo __('No','powerpress'); ?></span></button>
32
+ </a>
33
+ </div>
34
+ <!--</footer>-->
35
+ </div>
36
+ </div>
37
+ </div>
38
+
39
+ <div class="pp_col">
40
+ <div class="pp_box">
41
+ <div class="pp_image pp_fit center">
42
+ <img src="<?php echo powerpress_get_root_url(); ?>images/onboarding/yes_start.png" alt="" />
43
+ </div>
44
+ <div class="pp_content">
45
+ <div class="btn-caption-container" style="margin-top:3em; height: 40%;">
46
+ <p class="pp_align-center"><?php echo __('Great! Next step, we\'ll import your podcast feed.','powerpress'); ?></p>
47
+ </div>
48
+ <!--<footer class="pp_align-center">-->
49
+ <div class="pp_button-container">
50
+ <a href="<?php echo $_GET['page'] == 'powerpressadmin_basic' ? admin_url("admin.php?import=powerpress-rss-podcast&from=onboarding") : admin_url("admin.php?import=powerpress-rss-podcast&from=gs"); ?>">
51
+ <button type="button" class="pp_button"><span><?php echo __('Yes','powerpress'); ?></span></button>
52
+ </a>
53
+ </div>
54
+ <!--</footer>-->
55
+ </div>
56
+ </div>
57
+ </div>
58
+ </div>
59
+ <div class="pp_button-container" style="float: right;margin-top: 1em;">
60
+ <a href="<?php echo admin_url("admin.php?page={$_GET['page']}&step=createEpisode"); ?>">
61
+ <?php echo __('Skip &rarr;','powerpress'); ?>
62
+ </a>
63
+ </div>
64
+ </div>
65
+ </div>
66
+
views/onboarding/want_stats.php ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ ?>
3
+ <div class="wrap">
4
+ <div class="pp_container">
5
+ <h2 class="pp_align-center"><?php echo __('Gain access to free tools', 'powerpress'); ?></h2>
6
+ <hr class="pp_align-center" />
7
+ <p class="pp_align-center"><?php echo __('Signing up for a free Blubrry account will allow you to use a number of helpful features, free of charge.', 'powerpress'); ?> </p>
8
+
9
+
10
+ <section id="one" class="pp_wrapper" style="margin-top:25px;">
11
+ <div class="pp_inner">
12
+
13
+ <div class="pp_flex-grid">
14
+
15
+ <div class="pp_col">
16
+ <div class="pp_box">
17
+ <div class="pp_image pp_fit center">
18
+ <img src="<?php echo powerpress_get_root_url(); ?>images/onboarding/self_host.png" alt="" class="" />
19
+ </div>
20
+ <div class="pp_content">
21
+ <!--<div class="pp_align-center">-->
22
+ <div class="btn-caption-container">
23
+ <p class="pp_align-center"><?php echo __('I\'ll continue uploading my episodes to my host and website.', 'powerpress'); ?></p>
24
+ </div>
25
+ <div class="pp_button-container">
26
+ <a href="<?php echo admin_url("admin.php?page={$_GET['page']}&step=createEpisode"); ?>">
27
+ <button type="button" class="pp_button_alt"><span><?php echo __('No, thanks', 'powerpress'); ?></span></button>
28
+ </a>
29
+ </div>
30
+ <!--</div>-->
31
+ </div>
32
+ </div>
33
+ </div>
34
+
35
+ <div class="pp_col">
36
+ <div class="pp_box">
37
+ <div class="pp_image center">
38
+ <img src="<?php echo powerpress_get_root_url(); ?>images/onboarding/free_tools.png" alt="" />
39
+ </div>
40
+ <div class="pp_content">
41
+ <!--<div class="pp_align-center">-->
42
+ <div class="btn-caption-container">
43
+ <p class="pp_align-center"><?php echo __('Don\'t miss out on Blubrry\'s free podcast stats and directory listing.', 'powerpress'); ?></p>
44
+ </div>
45
+ <div class="pp_button-container">
46
+ <a href="<?php echo admin_url("admin.php?page={$_GET['page']}&step=blubrrySignin"); ?>">
47
+ <button type="button" class="pp_button"><span><?php echo __('I\'d like free tools', 'powerpress'); ?></span></button>
48
+ </a>
49
+ </div>
50
+ <!--</div>-->
51
+ </div>
52
+ </div>
53
+ </div>
54
+ </div>
55
+ </div>
56
+ </section>
57
+ </div>