PowerPress Podcasting plugin by Blubrry - Version 9.5

Version Description

  • Released on 09/26/2022
  • Moved MP3 Tag settings to Feed settings
  • Updated styling on player pages
  • Podping implementation
Download this release

Release Info

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

Code changes from version 9.4.2 to 9.5

css/settings.css CHANGED
@@ -310,6 +310,9 @@ span[id^="all-icon"] {
310
 
311
  .pp-save-button-container {
312
  display: inline-block;
 
 
 
313
  float: right;
314
  }
315
 
@@ -367,29 +370,6 @@ span[id^="all-icon"] {
367
  display: inline-block;
368
  }
369
 
370
- @media (min-width: 651px) {
371
- .pp-sidenav-toggle-container {
372
- width: 23%;
373
- }
374
- }
375
- @media (max-width: 650px) {
376
- .pp-sidenav {
377
- width: 100%;
378
- overflow: visible;
379
- }
380
- .pp-sidenav-tab {
381
- border-left: none;
382
- }
383
- .toggle-sidenav {
384
- color: #1a6deb;
385
- font-weight: bold;
386
- font-size: 24px;
387
- cursor: pointer;
388
- padding: 0.5ch;
389
- display: block;
390
- }
391
- }
392
-
393
  /* Style the buttons that are used to open the tab content */
394
  .pp-sidenav button {
395
  display: block;
@@ -475,12 +455,160 @@ span[id^="all-icon"] {
475
  width: 90%;
476
  }
477
 
 
 
 
 
 
478
  .pp-settings-subsection-no-border {
479
  padding: 1em 0 1em 0;
480
  display: inline-block;
481
  width: 90%;
482
  }
483
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
484
  .pp-nav-icon {
485
  margin: 0 25px 0 10px;
486
  }
310
 
311
  .pp-save-button-container {
312
  display: inline-block;
313
+ }
314
+
315
+ .pp-save-button-container.pp-save-button-container-right {
316
  float: right;
317
  }
318
 
370
  display: inline-block;
371
  }
372
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
373
  /* Style the buttons that are used to open the tab content */
374
  .pp-sidenav button {
375
  display: block;
455
  width: 90%;
456
  }
457
 
458
+ .player-options .pp-settings-subsection {
459
+ border-bottom: 1px solid #1d2327;
460
+ width: 95%;
461
+ }
462
+
463
  .pp-settings-subsection-no-border {
464
  padding: 1em 0 1em 0;
465
  display: inline-block;
466
  width: 90%;
467
  }
468
 
469
+ .player-options .pp-settings-subsection-no-border {
470
+ padding: 1em 0 1em 1em;
471
+ margin-left: 1em;
472
+ width: 95%;
473
+ }
474
+
475
+ .player-options h3 {
476
+ margin-bottom: 0;
477
+ font-weight: bold;
478
+ }
479
+
480
+ .player-options.video-player-options h3 {
481
+ margin-bottom: 1em;
482
+ margin-top: 0;
483
+ }
484
+
485
+ .player-options .video-player-text {
486
+ display: inline-block;
487
+ width: 60%;
488
+ }
489
+
490
+ .player-options .video-player-text.html5 {
491
+ max-width: calc(95% - 400px);
492
+ }
493
+
494
+ .player-options .video-player-sample {
495
+ display: inline-block;
496
+ width: 35%;
497
+ vertical-align: top;
498
+ }
499
+
500
+ .player-options.video-player-options .activate-player {
501
+ float: right;
502
+ margin-right: 0;
503
+ margin-bottom: 1em;
504
+ }
505
+
506
+ .player-options .activate-player {
507
+ display: inline-block;
508
+ border-radius: 4px;
509
+ border: 1px solid #0c74d5;
510
+ color: #0c74d5;
511
+ padding: 1ch 2em 1ch 2em;
512
+ margin-right: 1em;
513
+ text-align: center;
514
+ font-family: Roboto, sans-serif;
515
+ font-size: 14px;
516
+ font-weight: bold;
517
+ text-decoration: none;
518
+ }
519
+
520
+ .player-options .activate-player.activated {
521
+ color: white;
522
+ background-color: #0c74d5;
523
+ }
524
+
525
+ .player-options .customize-box-section {
526
+ border: 1px solid #1d2327;
527
+ border-radius: 8px;
528
+ width: 40%;
529
+ padding: 2em;
530
+ }
531
+
532
+ .player-customize-container {
533
+ display: flex;
534
+ justify-content: space-between;
535
+ }
536
+
537
+ @media (max-width: 785px) {
538
+ .player-customize-container {
539
+ display: block;
540
+ }
541
+
542
+ .player-options .customize-box-section {
543
+ width: 90%;
544
+ margin-bottom: 1em;
545
+ }
546
+ }
547
+
548
+ @media (max-width: 600px) {
549
+
550
+
551
+ .player-options .customize-box-section {
552
+ width: 80%;
553
+ }
554
+ }
555
+ @media (min-width: 651px) {
556
+ .pp-sidenav-toggle-container {
557
+ width: 23%;
558
+ }
559
+ }
560
+ @media (max-width: 650px) {
561
+ .pp-sidenav {
562
+ width: 100%;
563
+ overflow: visible;
564
+ }
565
+ .pp-sidenav-tab {
566
+ border-left: none;
567
+ }
568
+ .toggle-sidenav {
569
+ color: #1a6deb;
570
+ font-weight: bold;
571
+ font-size: 24px;
572
+ cursor: pointer;
573
+ padding: 0.5ch;
574
+ display: block;
575
+ }
576
+ .player-options .video-player-text, .player-options .video-player-text.html5 {
577
+ display: block;
578
+ width: 100%;
579
+ max-width: 100%;
580
+ }
581
+
582
+ .player-options .video-player-sample {
583
+ width: 100%;
584
+ }
585
+ }
586
+
587
+ .new-color-field-button {
588
+ width: 30px;
589
+ height: 30px;
590
+ border: 1px solid #ccc;
591
+ box-shadow: 0 0 0 transparent;
592
+ cursor: pointer;
593
+ }
594
+
595
+ .color_control .new-color-field {
596
+ width: 75%;
597
+ height: 30px;
598
+ display: inline-block;
599
+ border-radius: 0;
600
+ margin-right: 0;
601
+ border-right: 0;
602
+ }
603
+
604
+ .customize-box-section h3 {
605
+ margin-top: 0;
606
+ }
607
+
608
+ .customize-box-section h4 {
609
+ margin-top: 1em;
610
+ }
611
+
612
  .pp-nav-icon {
613
  margin: 0 25px 0 10px;
614
  }
css/settings.min.css CHANGED
@@ -1 +1 @@
1
- .pp-tab{font-size:16px;overflow:hidden;background-color:#fff;border-bottom:1px solid #ddd;box-shadow:0 1px 0 0 #eaedf3,0 1px 3px 0 rgba(0,0,0,.05);width:100%;padding:0}.pp-tab button{background-color:inherit;float:left;border:none;outline:0;cursor:pointer;padding:3vh 3%;transition:.3s;width:auto}.pp-tab button:hover{background-color:#ddd}.pp-tab button.active{border-bottom:3px solid #1a6deb;font-weight:700}.pp-tabcontent{background-color:#fff;display:none;border-top:none;padding:0 40px 0 0;height:100%}.pp-tabcontent.active{display:flex}#welcome-title{display:inline-block;margin-top:1ch;font-size:22px;width:70%}#welcome-tab-new-post{display:inline-block;text-decoration:none;color:#1976d2;font-family:Roboto,sans-serif;font-size:14px}#welcome-tab-new-post div{padding:1ch;border:2px solid #1976d2;border-radius:4px}#welcome-tab-new-post div:hover{background-color:#1976d2;color:#fff}#pp-welcome-applesubmit-link:hover,#pp-welcome-artwork-link:hover{cursor:pointer;text-decoration:underline}#pp-welcome-applesubmit-link,#pp-welcome-artwork-link,.program-dest-welcome-link,.program-status-link,p[class=pp-settings-status-text]{margin-top:0;margin-bottom:1em;font-family:Roboto,sans-serif;font-size:14px;width:100%}#advanced-tab-seo-link{cursor:pointer}.submit{font-family:Roboto,sans-serif;font-size:14px;letter-spacing:0;line-height:21px}.powerpress_save_button{border-width:1px}.powerpress_save_button:hover{cursor:pointer}.pp-news-image{vertical-align:top;float:left;margin-right:1em;max-height:95%;max-width:40%;width:auto;height:auto}.pp-settings-welcome-text img{height:50px;width:50px}.pp-news-item{padding:0 2em 2ch 0;border-bottom:1px solid #ddd;height:17vh}.powerpress-welcome-news .rss-date{font-size:80%}.powerpress-welcome-news .rsswidget{font-size:110%;color:#000;text-decoration:underline}.pp-news-image-container{max-width:33%;overflow:hidden}.pp-news-details-container{height:100%;width:auto;overflow:hidden}.program-dest-welcome-link{text-decoration:underline;color:#0073aa}.program-status-link{color:#d21919}.pp-settings-program-summary{margin-bottom:4em}.prog-sum-contents,.prog-sum-head{display:inline-block;vertical-align:middle}.prog-sum-head{width:72%}.prog-sum-contents{width:23%;height:100%;position:absolute;margin-left:2em}.pp-settings-podcast-status{margin-top:2ch}.pp-settings-num-episodes,.pp-settings-podcast-status,.pp-settings-recent-post{display:inline-block;vertical-align:top}.pp-settings-recent-post{width:70%}.pp-settings-num-episodes{width:16%;margin-left:3em}.pp-settings-welcome-text{display:inline-block;vertical-align:top;width:65%;margin-left:1ch}#welcome-preview-image{width:30%;height:auto;display:inline-block}.destinations-side-text{line-height:36px}.directory-summary-head{vertical-align:middle}.destinations-side-icon{background-image:url('../images/modern_icon_sprite_2021.svg');margin-right:15px;display:inline-block;width:36px;height:36px;border:0;background-repeat:no-repeat;background-size:50px;vertical-align:middle}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.pp-sidenav .destinations-side-icon{background-image:url('../images/modern_icon_sprite_2021.svg')}}span[id^=apple-icon]{background-position:-5px -10px}span[id^=android-icon]{background-position:-5px -60px}span[id^=email-icon]{background-position:-5px -111px}span[id^=google-icon]{background-position:-5px -160px}span[id^=stitcher-icon]{background-position:-7px -210px}span[id^=tunein-icon]{background-position:-7px -260px}span[id^=spotify-icon]{background-position:-5px -312px}span[id^=iheart-icon]{background-position:-5px -461px}span[id^=deezer-icon]{background-position:-5px -512px}span[id^=anghami-icon]{background-position:-5px -1260px}span[id^=pandora-icon]{background-position:-5px -560px}span[id^=amazon-icon]{background-position:-5px -1010px}span[id^=pcindex-icon]{background-position:-5px -1060px}span[id^=jiosaavn-icon]{background-position:-5px -1110px}span[id^=podchaser-icon]{background-position:-5px -1160px}span[id^=gaana-icon]{background-position:-5px -1210px}span[id^=all-icon]{background-position:-5px -360px}.pp-settings-footer{border-top:1px solid #eff0f5;margin:3ch;padding-top:2ch}.pp-save-button-container{display:inline-block;float:right}#connect-blubrry-services .button-blubrry{max-width:14em;width:100%}#connected-blubrry-blurb{display:inline-block;width:55%;margin:0 0 0 1ch;text-align:left}#connect-blubrry-blurb{font-size:12px;margin:1ch 1ch 0 4ch}.pp-sidenav{overflow:hidden;background-color:#fff;float:left;min-height:70vh;height:100%;z-index:10000;opacity:1}.pp-sidenav-container{display:inline-block}.pp-sidenav-hidden{display:none}.toggle-sidenav{display:none}.pp-sidenav-tab{background-color:#fff;display:none;border-top:none;padding:3vh 3vw;width:75%;border-left:1px solid #ddd}.pp-sidenav-tab.active{display:inline-block}@media (min-width:651px){.pp-sidenav-toggle-container{width:23%}}@media (max-width:650px){.pp-sidenav{width:100%;overflow:visible}.pp-sidenav-tab{border-left:none}.toggle-sidenav{color:#1a6deb;font-weight:700;font-size:24px;cursor:pointer;padding:.5ch;display:block}}.pp-sidenav button{display:block;font-family:Roboto,sans-serif;font-size:14px;font-weight:600;background-color:inherit;float:left;border:none;outline:0;cursor:pointer;padding:1vh 2vw 1vh 1vw;transition:.3s;width:100%;text-align:left;line-height:25px}.pp-sidenav button img{height:25px;width:25px;background-color:rgba(255,255,255,0);vertical-align:middle}.pp-sidenav button:hover{background-color:#ddd}.pp-sidenav button.active{border-left:2px solid #1a6deb;color:#1665d8;background-color:#f6f9fd}#powerpress_settings_page{min-height:100vh;margin-top:1em}#connect-blubrry-services{margin:30px 10px 10px 10px;text-align:center;border:1px solid #d0d3db;border-radius:2px;display:inline-block}#blubrry-services-connected-settings,#connect-see-options{padding:3ch 3ch 3ch 1.5ch}#connect-blubrry-button-container{padding:10px;text-align:center;border-top:1px solid #d0d3db}#blubrry-logo-connect{width:42px;height:40px}.pp-settings-section{border-left:3px solid #eff0f5;padding-left:2em;margin-bottom:4em}.pp-settings-section h2{font-weight:700;font-family:Roboto,sans-serif;font-size:20px}.pp-settings-subsection{margin-left:1em;padding:1em 0 1em 1em;border-bottom:1px solid #eff0f5;display:inline-block;width:90%}.pp-settings-subsection-no-border{padding:1em 0 1em 0;display:inline-block;width:90%}.pp-nav-icon{margin:0 25px 0 10px}.pp-directory-icon{margin:0 25px 0 0;vertical-align:middle}h1.pp-heading,h2.pp-heading{font-size:26px;font-family:Roboto,sans-serif;font-weight:700}p.pp-main{font-size:16px;font-family:Roboto,sans-serif;font-weight:700;margin:0;display:block}a.pp-sub,p.pp-sub{font-size:16px;font-family:Roboto,sans-serif;margin:0;display:block}p.pp-sub{color:rgba(0,0,0,.6)}p.pp-label-bottom{font-size:14px;font-family:Roboto,sans-serif;margin:0 0 2em 0;color:rgba(0,0,0,.6)}a.pp-sidenav-extra-text,p.pp-sidenav-extra-text{color:#32373c;font-size:12px;line-height:18px;font-family:Roboto,sans-serif;text-decoration:none;font-weight:700}.pp-sidenav-extra{margin:2vh 2vw}.pp-settings-text{margin-top:0;margin-bottom:2em;font-family:Roboto,sans-serif;font-size:14px;display:block}.pp-settings-text-smaller-margin{margin-top:0;margin-bottom:1em;font-family:Roboto,sans-serif;font-size:14px;display:block}.pp-settings-text-no-margin{margin-top:0;margin-bottom:0;font-family:Roboto,sans-serif;font-size:12px;display:block}.pp-show-subscribe{margin-top:3em}.pp-show-subscribe input.pp-settings-checkbox{margin-top:2px;margin-right:10px}.pp-label-bottom a,.pp-main a,.pp-right-label a,.pp-settings-text a,.pp-sub a{text-decoration:none;color:#2278cf}.pp-right-label{font-size:14px;margin-top:5px}.pp-settings-text-with-label{margin-top:0;margin-bottom:0;font-family:Roboto,sans-serif;font-size:14px}b{font-weight:700}input.pp-settings-checkbox{border:2px solid #d4d8e0;border-radius:3px;height:18px;width:18px;vertical-align:top;margin-top:2ch}input.pp-settings-checkbox:checked{background-color:#2278cf;border-color:#2278cf}input.pp-settings-checkbox:checked:disabled{background-color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.2)}input.pp-settings-checkbox:checked:before{content:url('../images/check_white.svg');height:21px;width:21px;margin:-3px 0 0 -4px}input.pp-settings-checkbox:checked+label.pp-checkbox-label{color:#0c74d5}.pp-checkbox-label{font-size:13px;font-family:Roboto,sans-serif}.round-checkbox{border-radius:8px}input.round-checkbox:checked{background-color:#2278cf;border-color:#2278cf}input.round-checkbox:checked:before{color:#2278cf}input[class=pp-settings-radio]{width:22px;height:22px;border:2px solid #b1b1b1;margin-bottom:3.5em}input[class=pp-settings-radio]:checked{border:2px solid #0c74d5}input[class=pp-settings-radio]:checked:before{width:12px;height:12px;margin:3px;background-color:#0c74d5}input[class=pp-settings-radio-small]{width:16px;height:16px;margin-right:8px;background-color:#d8dce6}input[class=pp-settings-radio-small]:checked{border:2px solid #0c74d5;background-color:#0c74d5}input[class=pp-settings-radio-small]:checked:before{width:6px;height:6px;margin:3px;background-color:#d8dce6}input.pp-settings-text-input,input.pp-settings-text-input:focus,textarea.pp-settings-text-input,textarea.pp-settings-text-input:focus{border-radius:4px;background-color:#fff;border:1px solid #b1b1b1;font-size:14px;padding:2ch 1em 2ch 1em;width:100%}input.pp-settings-text-input-less-wide,input.pp-settings-text-input-less-wide:focus{border-radius:4px;background-color:#fff;border:1px solid #b1b1b1;font-size:14px;padding:2ch 1em 2ch 1em;width:70%;margin-right:30%}.pp-settings-section h4{margin-top:0;margin-bottom:0;font-weight:700}.powerpress_color_box{float:left;width:24px;height:24px;cursor:pointer;margin:8px 19px 8px 0;border:1px solid #666}label[class^=pp-settings-label]{position:relative;top:9px;padding:0 9px 0 2px;left:9px;background-color:#fff;font-size:12px}label[class^=pp-settings-label-under]{position:relative;top:-2px;padding:0 9px 0 2px;left:9px;background-color:#fff;color:rgba(0,0,0,.6);font-size:12px}select[class^=pp-settings-select]{background-color:#eff0f5;color:rgba(0,0,0,.6);border-radius:4px;padding:1em 1ch 1em 1ch;font-size:14px;font-family:Roboto,sans-serif;font-weight:700;border:none;box-shadow:none;height:auto;width:45%;display:block}select.pp-settings-select-inline{display:inline-block;width:40%;margin-bottom:3ch}.pp-settings-button{box-sizing:border-box;display:inline-block;padding:1.5ch;border:1px solid #d8dce6;border-radius:4px;background:linear-gradient(0deg,#f6f7f9 0,#fff 100%);box-shadow:inset 0 2px 0 0 rgba(255,255,255,.05),0 1px 1px 0 rgba(22,29,37,.05);margin:1em 0 1em 0}.pp-settings-icon{margin:0 10px;width:18px;height:18px}.pp-settings-icon-small{margin:0 5px 0 0;width:16px;height:18px;display:inline-block;vertical-align:middle}.pp-settings-button-label,.pp-settings-icon{vertical-align:middle}.pp-shortcode{padding:1em 3ch 1em 3ch}.pp-shortcode-container{margin:4ch 0}.blubrry-stats-marketing-message{background-image:url('../images/Blubrry_stats_hero_2a.jpg');background-size:cover;background-repeat:no-repeat;background-position:0 25%;padding:1em;border-radius:4px;margin-bottom:1em;width:100%}.blubrry-stats-marketing-text,.blubrry-stats-marketing-text:hover{color:#fff;margin-top:0}a.blubrry-stats-marketing-text{display:inline-block;text-decoration:none}h5.blubrry-stats-marketing-text{margin:0}.pp_white-button-container{padding:.5ch 3em;border:2px solid #fff;border-radius:4px}
1
+ .pp-sidenav,.pp-sidenav-tab,.pp-tab,.pp-tabcontent{background-color:#fff}.pp-sidenav button,.pp-tab button{background-color:inherit;outline:0;transition:.3s;float:left;cursor:pointer}p.pp-label-bottom,p.pp-sub{color:rgba(0,0,0,.6)}.pp-tab{font-size:16px;overflow:hidden;border-bottom:1px solid #ddd;box-shadow:0 1px 0 0 #eaedf3,0 1px 3px 0 rgba(0,0,0,.05);width:100%;padding:0}.pp-tab button{border:none;padding:3vh 3%;width:auto}.pp-sidenav button:hover,.pp-tab button:hover{background-color:#ddd}.pp-tab button.active{border-bottom:3px solid #1a6deb;font-weight:700}.pp-tabcontent{display:none;border-top:none;padding:0 40px 0 0;height:100%}.pp-tabcontent.active{display:flex}#welcome-title{display:inline-block;margin-top:1ch;font-size:22px;width:70%}#welcome-tab-new-post,.submit{font-size:14px;font-family:Roboto,sans-serif}#welcome-tab-new-post{display:inline-block;text-decoration:none;color:#1976d2}#welcome-tab-new-post div{padding:1ch;border:2px solid #1976d2;border-radius:4px}#welcome-tab-new-post div:hover{background-color:#1976d2;color:#fff}#pp-welcome-applesubmit-link:hover,#pp-welcome-artwork-link:hover{cursor:pointer;text-decoration:underline}#pp-welcome-applesubmit-link,#pp-welcome-artwork-link,.program-dest-welcome-link,.program-status-link,p[class=pp-settings-status-text]{margin-top:0;margin-bottom:1em;font-family:Roboto,sans-serif;font-size:14px;width:100%}#advanced-tab-seo-link,.powerpress_save_button:hover{cursor:pointer}.submit{letter-spacing:0;line-height:21px}.powerpress_save_button{border-width:1px}.pp-news-image{vertical-align:top;float:left;margin-right:1em;max-height:95%;max-width:40%;width:auto;height:auto}.pp-settings-welcome-text img{height:50px;width:50px}.pp-news-item{padding:0 2em 2ch 0;border-bottom:1px solid #ddd;height:17vh}.powerpress-welcome-news .rss-date{font-size:80%}.powerpress-welcome-news .rsswidget{font-size:110%;color:#000;text-decoration:underline}.pp-news-image-container{max-width:33%;overflow:hidden}.pp-news-details-container{height:100%;width:auto;overflow:hidden}.program-dest-welcome-link{text-decoration:underline;color:#0073aa}.program-status-link{color:#d21919}.pp-settings-program-summary{margin-bottom:4em}.prog-sum-contents,.prog-sum-head{display:inline-block;vertical-align:middle}.prog-sum-head{width:72%}.prog-sum-contents{width:23%;height:100%;position:absolute;margin-left:2em}.pp-settings-podcast-status{margin-top:2ch}.pp-settings-num-episodes,.pp-settings-podcast-status,.pp-settings-recent-post{display:inline-block;vertical-align:top}.pp-settings-recent-post{width:70%}.pp-settings-num-episodes{width:16%;margin-left:3em}.pp-settings-welcome-text{display:inline-block;vertical-align:top;width:65%;margin-left:1ch}.directory-summary-head,.pp-directory-icon,.pp-settings-button-label,.pp-settings-icon,.pp-settings-icon-small,.pp-sidenav button img{vertical-align:middle}#welcome-preview-image{width:30%;height:auto;display:inline-block}.destinations-side-text{line-height:36px}.destinations-side-icon{background-image:url('../images/modern_icon_sprite_2021.svg');margin-right:15px;display:inline-block;width:36px;height:36px;border:0;background-repeat:no-repeat;background-size:50px;vertical-align:middle}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.pp-sidenav .destinations-side-icon{background-image:url('../images/modern_icon_sprite_2021.svg')}}span[id^=apple-icon]{background-position:-5px -10px}span[id^=android-icon]{background-position:-5px -60px}span[id^=email-icon]{background-position:-5px -111px}span[id^=google-icon]{background-position:-5px -160px}span[id^=stitcher-icon]{background-position:-7px -210px}span[id^=tunein-icon]{background-position:-7px -260px}span[id^=spotify-icon]{background-position:-5px -312px}span[id^=iheart-icon]{background-position:-5px -461px}span[id^=deezer-icon]{background-position:-5px -512px}span[id^=anghami-icon]{background-position:-5px -1260px}span[id^=pandora-icon]{background-position:-5px -560px}span[id^=amazon-icon]{background-position:-5px -1010px}span[id^=pcindex-icon]{background-position:-5px -1060px}span[id^=jiosaavn-icon]{background-position:-5px -1110px}span[id^=podchaser-icon]{background-position:-5px -1160px}span[id^=gaana-icon]{background-position:-5px -1210px}span[id^=all-icon]{background-position:-5px -360px}.pp-settings-footer{border-top:1px solid #eff0f5;margin:3ch;padding-top:2ch}.pp-save-button-container,.pp-sidenav-container,.pp-sidenav-tab.active{display:inline-block}.pp-save-button-container.pp-save-button-container-right{float:right}#connect-blubrry-services .button-blubrry{max-width:14em;width:100%}#connected-blubrry-blurb{display:inline-block;width:55%;margin:0 0 0 1ch;text-align:left}#connect-blubrry-blurb{font-size:12px;margin:1ch 1ch 0 4ch}.pp-sidenav{overflow:hidden;float:left;min-height:70vh;height:100%;z-index:10000;opacity:1}.pp-sidenav-hidden,.toggle-sidenav{display:none}.pp-sidenav-tab{display:none;border-top:none;padding:3vh 3vw;width:75%;border-left:1px solid #ddd}.pp-sidenav button{display:block;font-family:Roboto,sans-serif;font-size:14px;font-weight:600;border:none;padding:1vh 2vw 1vh 1vw;width:100%;text-align:left;line-height:25px}.pp-sidenav button img{height:25px;width:25px;background-color:rgba(255,255,255,0)}.pp-sidenav button.active{border-left:2px solid #1a6deb;color:#1665d8;background-color:#f6f9fd}#powerpress_settings_page{min-height:100vh;margin-top:1em}#connect-blubrry-services{margin:30px 10px 10px;text-align:center;border:1px solid #d0d3db;border-radius:2px;display:inline-block}#blubrry-services-connected-settings,#connect-see-options{padding:3ch 3ch 3ch 1.5ch}#connect-blubrry-button-container{padding:10px;text-align:center;border-top:1px solid #d0d3db}#blubrry-logo-connect{width:42px;height:40px}.pp-settings-section{border-left:3px solid #eff0f5;padding-left:2em;margin-bottom:4em}.pp-settings-section h2{font-weight:700;font-family:Roboto,sans-serif;font-size:20px}.pp-settings-subsection{margin-left:1em;padding:1em 0 1em 1em;border-bottom:1px solid #eff0f5;display:inline-block;width:90%}.player-options .pp-settings-subsection{border-bottom:1px solid #1d2327;width:95%}.pp-settings-subsection-no-border{padding:1em 0;display:inline-block;width:90%}.player-options .pp-settings-subsection-no-border{padding:1em 0 1em 1em;margin-left:1em;width:95%}.player-options h3{margin-bottom:0;font-weight:700}.player-options.video-player-options h3{margin-bottom:1em;margin-top:0}.player-options .video-player-text{display:inline-block;width:60%}.player-options .video-player-text.html5{max-width:calc(95% - 400px)}.player-options .video-player-sample{display:inline-block;width:35%;vertical-align:top}.player-options.video-player-options .activate-player{float:right;margin-right:0;margin-bottom:1em}.player-options .activate-player{display:inline-block;border-radius:4px;border:1px solid #0c74d5;color:#0c74d5;padding:1ch 2em;margin-right:1em;text-align:center;font-family:Roboto,sans-serif;font-size:14px;font-weight:700;text-decoration:none}.player-options .activate-player.activated{color:#fff;background-color:#0c74d5}.player-options .customize-box-section{border:1px solid #1d2327;border-radius:8px;width:40%;padding:2em}.player-customize-container{display:flex;justify-content:space-between}@media (max-width:785px){.player-customize-container{display:block}.player-options .customize-box-section{width:90%;margin-bottom:1em}}@media (max-width:600px){.player-options .customize-box-section{width:80%}}@media (min-width:651px){.pp-sidenav-toggle-container{width:23%}}@media (max-width:650px){.pp-sidenav{width:100%;overflow:visible}.pp-sidenav-tab{border-left:none}.toggle-sidenav{color:#1a6deb;font-weight:700;font-size:24px;cursor:pointer;padding:.5ch;display:block}.player-options .video-player-text,.player-options .video-player-text.html5{display:block;width:100%;max-width:100%}.player-options .video-player-sample{width:100%}}.new-color-field-button{width:30px;height:30px;border:1px solid #ccc;box-shadow:0 0 0 transparent;cursor:pointer}.color_control .new-color-field{width:75%;height:30px;display:inline-block;border-radius:0;margin-right:0;border-right:0}.customize-box-section h3{margin-top:0}.customize-box-section h4{margin-top:1em}.pp-nav-icon{margin:0 25px 0 10px}.pp-directory-icon{margin:0 25px 0 0}h1.pp-heading,h2.pp-heading{font-size:26px;font-family:Roboto,sans-serif;font-weight:700}a.pp-sub,p.pp-main,p.pp-sub{font-size:16px;margin:0;display:block;font-family:Roboto,sans-serif}p.pp-main{font-weight:700}p.pp-label-bottom{font-size:14px;font-family:Roboto,sans-serif;margin:0 0 2em}a.pp-sidenav-extra-text,p.pp-sidenav-extra-text{color:#32373c;font-size:12px;line-height:18px;font-family:Roboto,sans-serif;text-decoration:none;font-weight:700}.pp-sidenav-extra{margin:2vh 2vw}.pp-settings-text,.pp-settings-text-no-margin,.pp-settings-text-smaller-margin{margin-top:0;font-family:Roboto,sans-serif;display:block}.pp-settings-text{margin-bottom:2em;font-size:14px}.pp-settings-text-smaller-margin{margin-bottom:1em;font-size:14px}.pp-settings-text-no-margin{margin-bottom:0;font-size:12px}.pp-show-subscribe{margin-top:3em}.pp-show-subscribe input.pp-settings-checkbox{margin-top:2px;margin-right:10px}.pp-label-bottom a,.pp-main a,.pp-right-label a,.pp-settings-text a,.pp-sub a{text-decoration:none;color:#2278cf}.pp-right-label{font-size:14px;margin-top:5px}.pp-settings-text-with-label{margin-top:0;margin-bottom:0;font-family:Roboto,sans-serif;font-size:14px}b{font-weight:700}input.pp-settings-checkbox{border:2px solid #d4d8e0;border-radius:3px;height:18px;width:18px;vertical-align:top;margin-top:2ch}input.pp-settings-checkbox:checked,input.round-checkbox:checked{background-color:#2278cf;border-color:#2278cf}input.pp-settings-checkbox:checked:disabled{background-color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.2)}input.pp-settings-checkbox:checked:before{content:url('../images/check_white.svg');height:21px;width:21px;margin:-3px 0 0 -4px}input.pp-settings-checkbox:checked+label.pp-checkbox-label{color:#0c74d5}.pp-checkbox-label{font-size:13px;font-family:Roboto,sans-serif}.round-checkbox{border-radius:8px}input.round-checkbox:checked:before{color:#2278cf}input[class=pp-settings-radio]{width:22px;height:22px;border:2px solid #b1b1b1;margin-bottom:3.5em}input[class=pp-settings-radio]:checked{border:2px solid #0c74d5}input[class=pp-settings-radio]:checked:before{width:12px;height:12px;margin:3px;background-color:#0c74d5}input[class=pp-settings-radio-small]{width:16px;height:16px;margin-right:8px;background-color:#d8dce6}input[class=pp-settings-radio-small]:checked{border:2px solid #0c74d5;background-color:#0c74d5}input[class=pp-settings-radio-small]:checked:before{width:6px;height:6px;margin:3px;background-color:#d8dce6}input.pp-settings-text-input,input.pp-settings-text-input:focus,textarea.pp-settings-text-input,textarea.pp-settings-text-input:focus{border-radius:4px;background-color:#fff;border:1px solid #b1b1b1;font-size:14px;padding:2ch 1em;width:100%}input.pp-settings-text-input-less-wide,input.pp-settings-text-input-less-wide:focus{border-radius:4px;background-color:#fff;border:1px solid #b1b1b1;font-size:14px;padding:2ch 1em;width:70%;margin-right:30%}label[class^=pp-settings-label-under],label[class^=pp-settings-label]{position:relative;padding:0 9px 0 2px;left:9px;background-color:#fff;font-size:12px}.pp-settings-section h4{margin-top:0;margin-bottom:0;font-weight:700}.powerpress_color_box{float:left;width:24px;height:24px;cursor:pointer;margin:8px 19px 8px 0;border:1px solid #666}label[class^=pp-settings-label]{top:9px}label[class^=pp-settings-label-under]{top:-2px;color:rgba(0,0,0,.6)}select[class^=pp-settings-select]{background-color:#eff0f5;color:rgba(0,0,0,.6);border-radius:4px;padding:1em 1ch;font-size:14px;font-family:Roboto,sans-serif;font-weight:700;border:none;box-shadow:none;height:auto;width:45%;display:block}select.pp-settings-select-inline{display:inline-block;width:40%;margin-bottom:3ch}.pp-settings-button{box-sizing:border-box;display:inline-block;padding:1.5ch;border:1px solid #d8dce6;border-radius:4px;background:linear-gradient(0deg,#f6f7f9 0,#fff 100%);box-shadow:inset 0 2px 0 0 rgba(255,255,255,.05),0 1px 1px 0 rgba(22,29,37,.05);margin:1em 0}.pp-settings-icon{margin:0 10px;width:18px;height:18px}.pp-settings-icon-small{margin:0 5px 0 0;width:16px;height:18px;display:inline-block}.pp-shortcode{padding:1em 3ch}.pp-shortcode-container{margin:4ch 0}.blubrry-stats-marketing-message{background-image:url('../images/Blubrry_stats_hero_2a.jpg');background-size:cover;background-repeat:no-repeat;background-position:0 25%;padding:1em;border-radius:4px;margin-bottom:1em;width:100%}.blubrry-stats-marketing-text,.blubrry-stats-marketing-text:hover{color:#fff;margin-top:0}a.blubrry-stats-marketing-text{display:inline-block;text-decoration:none}h5.blubrry-stats-marketing-text{margin:0}.pp_white-button-container{padding:.5ch 3em;border:2px solid #fff;border-radius:4px}
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: 9.4.2
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', '9.4.2' );
39
 
40
  // Translation support:
41
  if ( !defined('POWERPRESS_ABSPATH') )
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: 9.5
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', '9.5' );
39
 
40
  // Translation support:
41
  if ( !defined('POWERPRESS_ABSPATH') )
powerpressadmin-editfeed.php CHANGED
@@ -388,6 +388,7 @@ function powerpressadmin_edit_category_feed($FeedSettings, $General)
388
 
389
  function powerpressadmin_edit_feed_general($FeedSettings, $General, $FeedAttribs)
390
  {
 
391
  $warning = '';
392
  $episode_count = powerpress_get_episode_count('podcast');
393
  if( $episode_count == 0 )
@@ -548,6 +549,7 @@ if( 'utf8mb4' != $GLOBALS['wpdb']->charset )
548
  <p class="pp-label-bottom"><a href="https://blubrry.com/support/powerpress-documentation/feeds/#emoji" target="_blank"><?php echo __('Learn more', 'powerpress'); ?></a></p>
549
  </div>
550
  </div>
 
551
  <?php
552
  }
553
 
388
 
389
  function powerpressadmin_edit_feed_general($FeedSettings, $General, $FeedAttribs)
390
  {
391
+ require_once('powerpressadmin-tags.php');
392
  $warning = '';
393
  $episode_count = powerpress_get_episode_count('podcast');
394
  if( $episode_count == 0 )
549
  <p class="pp-label-bottom"><a href="https://blubrry.com/support/powerpress-documentation/feeds/#emoji" target="_blank"><?php echo __('Learn more', 'powerpress'); ?></a></p>
550
  </div>
551
  </div>
552
+ <?php powerpress_admin_tags(); ?>
553
  <?php
554
  }
555
 
powerpressadmin-player-page.php CHANGED
@@ -42,7 +42,7 @@ function powerpressplayer_videojs_info()
42
  </p>
43
 
44
  <?php if( $plugin_link ) { ?>
45
- <div class="fade powerpress-notice" <?php echo ( function_exists('add_videojs_header') ?'':' styleX="background-color: #FFFFE0; border: 1px solid #E6DB55; padding: 8px 12px; line-height: 29px; font-weight: bold; font-size: 14px; display:inline;"'); ?>><p>
46
  <?php echo sprintf(__('The %s must be installed and activated in order to enable this feature.', 'powerpress'), $plugin_link ); ?>
47
  </p></div>
48
  <?php } ?>
@@ -51,6 +51,23 @@ function powerpressplayer_videojs_info()
51
 
52
  function powerpress_admin_players($type='audio')
53
  {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54
  $General = powerpress_get_settings('powerpress_general');
55
 
56
  $select_player = true;
@@ -158,13 +175,50 @@ function UpdatePlayerPreview(name, value)
158
  }
159
 
160
  jQuery(document).ready(function($) {
161
-
162
  if(document.getElementById('modern_player_iframe_div') !== null){
163
  generateModernPlayerHash();
164
  } else if(document.getElementById('player_iframe_div') !== null){
165
  generatePlayerHash();
166
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
167
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
168
 
169
  function generateModernPlayerHash(){
170
  var textColor = jQuery("input[name='ModernPlayer[textcolor]']:checked").val();
@@ -183,7 +237,7 @@ jQuery(document).ready(function($) {
183
 
184
  }
185
 
186
- document.getElementById('modern_player_iframe_div').innerHTML = '<iframe src="' + domain + '?id=' + episodeId + addition + '" id="modernplayeriframe" scrolling="yes" width="100%" height="170px" frameborder="0"></iframe>';
187
  }
188
 
189
  function generatePlayerHash(){
@@ -231,10 +285,11 @@ jQuery(document).ready(function($) {
231
  } else {
232
  domain = 'https://player.blubrry.com';
233
  }
234
- document.getElementById('modern_player_iframe_div').innerHTML ='<iframe src="' + domain + '?podcast_id=12559710' + addition + '" id="modernplayeriframe" scrolling="yes" width="100%" height="170px" frameborder="0"></iframe>';
235
 
236
  jQuery("input:radio[name='ModernPlayer[textcolor]'][value='Dark']").prop('checked', true);
237
- jQuery('input[name="ModernPlayer[backgroundcolor]"]').wpColorPicker('color',"#ffffff");
 
238
  }
239
 
240
  jQuery('.color-field').wpColorPicker({
@@ -299,7 +354,6 @@ jQuery(document).ready(function($) {
299
 
300
  <!-- special page styling goes here -->
301
  <style type="text/css">
302
- div.color_control { display: block; float:left; width: 100%; padding: 0; }
303
  div.color_control input { display: inline; float: left; }
304
  div.color_control div.color_picker { display: inline; float: left; margin-top: 3px; }
305
  #player_preview { margin-bottom: 0px; height: 50px; margin-top: 8px;}
@@ -352,8 +406,8 @@ table.html5formats tr > td:first-child {
352
  {
353
  ?>
354
  <input type="hidden" name="action" value="powerpress-select-player" />
355
- <h2><?php echo __('Blubrry PowerPress Player Options', 'powerpress'); ?></h2>
356
- <p style="margin-bottom: 0;"><?php echo __('Select the media player you would like to use.', 'powerpress'); ?></p>
357
 
358
  <?php
359
  if( $type == 'video' ) // Video player
@@ -362,125 +416,172 @@ table.html5formats tr > td:first-child {
362
  $General['video_player'] = '';
363
  ?>
364
  <input type="hidden" name="ep" value="1" />
365
- <table class="form-table">
366
- <tr valign="top">
367
- <th scope="row">&nbsp;</th>
368
- <td>
369
- <ul>
370
- <li><label><input type="radio" name="VideoPlayer[video_player]" id="player_mediaelement_video" value="mediaelement-video" <?php if( $General['video_player'] == 'mediaelement-video' ) echo 'checked'; ?> />
371
- <?php echo __('MediaElement.js Media Player (default)', 'powerpress'); ?></label>
372
- <strong style="padding-top: 8px; margin-left: 20px;"><a href="<?php echo admin_url("admin.php?page=powerpress/powerpressadmin_videoplayer.php&amp;ep=1"); ?>" id="activate_mediaelement_video" class="activate-player"><?php echo __('Activate and Configure Now', 'powerpress'); ?></a></strong>
373
- </li>
374
- <li style="margin-left: 30px; margin-bottom:16px;">
375
- <div style="max-width: 70%;">
 
 
 
 
 
 
 
 
 
 
 
 
376
  <div class="powerpressadmin-mejs-video">
377
- <?php
378
- echo powerpressplayer_build_mediaelementvideo( $Video['mediaelement-video'] );
379
- ?>
380
  </div>
381
  </div>
382
- <?php powerpressplayer_mediaelement_info(); ?>
383
- </li>
384
-
385
- <li><label><input type="radio" name="VideoPlayer[video_player]" id="player_html5video" value="html5video" <?php if( $General['video_player'] == 'html5video' ) echo 'checked'; ?> /> <?php echo __('HTML5 Video Player', 'powerpress'); ?> </label>
386
- <strong style="padding-top: 8px; margin-left: 20px;"><a href="<?php echo admin_url("admin.php?page=powerpress/powerpressadmin_videoplayer.php&amp;ep=1"); ?>" id="activate_html5video" class="activate-player"><?php echo __('Activate and Configure Now', 'powerpress'); ?></a></strong>
387
- </li>
388
- <li style="margin-left: 30px; margin-bottom:16px;">
389
- <p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
390
  <?php
391
- echo powerpressplayer_build_html5video($Video['html5video']);
392
- ?>
393
- </p>
394
- <p>
395
- <?php echo __('HTML5 Video is an element introduced in the latest HTML specification (HTML5) for the purpose of playing videos.', 'powerpress'); ?>
396
- </p>
397
- </li>
398
-
399
- <!-- videojs-html5-video-player-for-wordpress -->
400
- <li><label><input type="radio" name="VideoPlayer[video_player]" id="player_videojs_html5_video_player_for_wordpress" value="videojs-html5-video-player-for-wordpress" <?php if( $General['video_player'] == 'videojs-html5-video-player-for-wordpress' ) echo 'checked'; ?> <?php echo (function_exists('add_videojs_header')?'':'disabled'); ?> />
401
- <?php echo __('VideoJS', 'powerpress'); ?></label>
402
- <?php if ( function_exists('add_videojs_header') ) { ?>
403
- <strong style="padding-top: 8px; margin-left: 20px;"><a href="<?php echo admin_url("admin.php?page=powerpress/powerpressadmin_videoplayer.php&amp;ep=1"); ?>" id="activate_videojs_html5_video_player_for_wordpress" class="activate-player"><?php echo __('Activate and Configure Now', 'powerpress'); ?></a></strong>
404
- <?php } ?>
405
- </li>
406
- <li style="margin-left: 30px; margin-bottom:16px;">
407
- <p>
408
- <?php
409
- if ( function_exists('add_videojs_header') ) {
410
- echo powerpressplayer_build_videojs( $Video['videojs-html5-video-player-for-wordpress'] );
411
- }
412
- ?>
413
- </p>
414
- <?php
415
- powerpressplayer_videojs_info();
416
- ?>
417
- </li>
418
-
419
- </ul>
420
 
421
- </td>
422
- </tr>
423
- </table>
424
  <?php
425
  }
426
  else // audio player
427
  {
428
  ?>
429
  <input type="hidden" name="ep" value="1" />
430
- <table class="form-table">
431
- <tr valign="top">
432
- <th scope="row">&nbsp;</th>
433
- <td>
434
- <ul>
435
- <li><label><input type="radio" name="Player[player]" id="player_blubrrymodern" value="blubrrymodern" <?php if( $General['player'] == 'blubrrymodern' ) echo 'checked'; ?> /> <?php echo __('Modern Blubrry Player', 'powerpress') . powerpressadmin_new(true, "margin-left: 5px;"); ?> </label>
436
- <strong style="padding-top: 8px; margin-left: 20px;"><a href="<?php echo admin_url('admin.php?page=powerpress/powerpressadmin_player.php&ep=1'); ?>" id="activate_blubrrymodern" class="activate-player"><?php echo __('Activate and Configure Now', 'powerpress'); ?></a></strong>
437
- </li>
438
- <li style="margin-left: 30px; margin-bottom:16px;">
 
 
 
 
 
439
  <?php print_modern_player_demo(); ?>
440
- </li>
441
-
442
- <li><label><input type="radio" name="Player[player]" id="player_blubrryaudio" value="blubrryaudio" <?php if( $General['player'] == 'blubrryaudio' ) echo 'checked'; ?> /> <?php echo __('Blubrry Audio Player', 'powerpress'); ?> </label>
443
- <strong style="padding-top: 8px; margin-left: 20px;"><a href="<?php echo admin_url('admin.php?page=powerpress/powerpressadmin_player.php&ep=1'); ?>" id="activate_blubrryaudio" class="activate-player"><?php echo __('Activate and Configure Now', 'powerpress'); ?></a></strong>
444
- </li>
445
- <li style="margin-left: 30px; margin-bottom:16px;">
 
 
 
 
 
 
 
 
 
446
  <?php print_blubrry_player_demo(); ?>
447
- </li>
448
-
449
- <li><label><input type="radio" name="Player[player]" id="player_mediaelement_audio" value="mediaelement-audio" <?php if( $General['player'] == 'mediaelement-audio' ) echo 'checked'; ?> />
450
- <?php echo __('MediaElement.js Media Player (default)', 'powerpress'); ?></label>
451
- <strong style="padding-top: 8px; margin-left: 20px;"><a href="<?php echo admin_url('admin.php?page=powerpress/powerpressadmin_player.php&ep=1'); ?>" id="activate_mediaelement_audio" class="activate-player"><?php echo __('Activate and Configure Now', 'powerpress'); ?></a></strong>
452
- </li>
453
- <li style="margin-left: 30px; margin-bottom:16px;">
 
 
 
 
 
 
 
454
  <p>
455
- <?php
456
- echo powerpressplayer_build_mediaelementaudio( $Audio['mediaelement-audio'] );
457
- ?>
458
  </p>
459
- <?php powerpressplayer_mediaelement_info(); ?>
460
- </li>
461
 
462
- <li><label><input type="radio" name="Player[player]" id="player_html5audio" value="html5audio" <?php if( $General['player'] == 'html5audio' ) echo 'checked'; ?> /> <?php echo __('HTML5 Audio Player', 'powerpress'); ?> </label>
463
- <strong style="padding-top: 8px; margin-left: 20px;"><a href="<?php echo admin_url('admin.php?page=powerpress/powerpressadmin_player.php&ep=1'); ?>" id="activate_html5audio" class="activate-player"><?php echo __('Activate and Configure Now', 'powerpress'); ?></a></strong>
464
- </li>
465
- <li style="margin-left: 30px; margin-bottom:16px;">
466
- <p>
467
- <?php
468
- echo powerpressplayer_build_html5audio($Audio['html5audio']);
469
- ?>
470
- </p>
 
 
 
 
471
  <p>
472
- <?php echo __('HTML5 audio is an element introduced in the latest HTML specification (HTML5) for the purpose of playing audio.', 'powerpress'); ?>
 
 
473
  </p>
474
- </li>
475
- </ul>
476
 
477
- </td>
478
- </tr>
479
- </table>
480
  <?php
481
  }
482
  ?>
483
- <h4 style="margin-bottom: 0;"><?php echo __('Click \'Save Changes\' to activate and configure selected player.', 'powerpress'); ?></h4>
484
  <?php
485
  }
486
  else
@@ -494,8 +595,9 @@ table.html5formats tr > td:first-child {
494
  <p style="margin-bottom: 20px;"><strong>&#8592; <a href="<?php echo admin_url("admin.php?page=powerpress/powerpressadmin_videoplayer.php&amp;sp=1"); ?>"><?php echo __('Select a different video player', 'powerpress'); ?></a></strong></p>
495
  <?php } else { ?>
496
  <p style="margin-bottom: 20px;"><strong>&#8592; <a href="<?php echo admin_url("admin.php?page=powerpress/powerpressadmin_mobileplayer.php&amp;sp=1"); ?>"><?php echo __('Select a different mobile player', 'powerpress'); ?></a></strong></p>
497
- <?php }
498
-
 
499
  // Start adding logic here to display options based on the player selected...
500
  if($type == 'audio'){
501
  if(empty($General['player'])){
@@ -504,47 +606,84 @@ table.html5formats tr > td:first-child {
504
 
505
  switch ($General['player']){
506
  case 'blubrrymodern': {
507
- $modernPlayerSettings = powerpress_get_settings('powerpress_bplayer');
508
  if(empty($modernPlayerSettings['textcolor'])){
509
  $modernPlayerSettings['textcolor'] = 'Dark';
510
  }
511
  if(empty($modernPlayerSettings['backgroundcolor'])){
512
- $modernPlayerSettings['backgroundcolor'] = 'ffffff';
513
  }
514
  ?>
515
 
516
- <div id="tab_play" class="powerpress_tab bbplayer_settings" style="padding-left: 3%; padding-right: 3%">
517
- <h2 style="font-size: 2em;"> <?php echo __('Modern Blubrry Player', 'powerpress'); ?> </h2>
518
-
519
- <p style="margin-bottom: 10px;"><?php echo __('Note: The Modern Blubrry Player is only available to Blubrry Hosting Customers.', 'powerpress'); ?></p>
520
 
521
- <div id="modern_player_iframe_div"></div>
522
 
523
- <div style="display: inline-flex; margin-top: 30px;">
524
- <h2 style="font-size: 2em; margin-top: 0; margin-right: 20px;"><?php echo __('Customize Player', 'powerpress'); ?></h2>
525
- <a href="#" id="previewButtonModern" style="font-weight: bold; color: #1976d2; font-size: 12px; margin-right: 15px;"><?php echo __('Preview Changes', 'powerpress'); ?></a>
526
- <a href="#" id="restoreDefaultsButtonModern" style="font-weight: bold; color: #1976d2; font-size: 12px"><?php echo __('Restore Default Colors', 'powerpress'); ?></a>
527
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
528
 
529
- <h3 style="color: #1d2327;">Text Color</h3>
530
- <p>Don't forget to <a target="_blank" href="https://webaim.org/resources/contrastchecker/">check the contrast</a> of your color scheme to ensure it is accessible for all users.</p>
531
- <div style="background-color: white; padding: 20px; border-radius: 5px;">
532
- <input type="radio" name="ModernPlayer[textcolor]" id="selectlight" value="Light" <?php echo ($modernPlayerSettings['textcolor'] == 'Light') ? 'checked = true' : ''; ?>>
533
- <label for="selectlight" style="font-size:14px; margin-right: 40px;">Light</label>
534
-
535
- <input type="radio" name="ModernPlayer[textcolor]" id="selectdark" value="Dark" <?php echo ($modernPlayerSettings['textcolor'] == 'Dark') ? 'checked = true' : ''; ?> >
536
- <label for="selectdark" style="font-size:14px;">Dark (default)</label>
537
- </div>
538
 
 
 
 
 
 
 
 
 
 
 
 
 
539
 
540
- <h3 style="color: #1d2327; margin-top: 40px;">Background Color</h3>
541
- <div class="color_control" style="margin-bottom: 50px;">
542
- <input type="text" style="width: 100px;" id="backgroundcolor" name="ModernPlayer[backgroundcolor]"
543
- class="color-field"
544
- value="<?php echo esc_attr($modernPlayerSettings['backgroundcolor']); ?>"
545
- maxlength="20"
546
- aria-label="Background Color"
547
- />
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
548
  </div>
549
  </div>
550
  <input type="hidden" name="action" value="powerpress_bplayer"/>
@@ -1053,7 +1192,7 @@ table.html5formats tr > td:first-child {
1053
  if( in_array($General['video_player'], array('html5video') ) )
1054
  {
1055
  ?>
1056
- <p><input name="General[poster_play_image]" type="checkbox" value="1" <?php echo ($General['poster_play_image']?'checked':''); ?> /> <?php echo __('Include play icon over poster image when applicable', 'powerpress'); ?> </p>
1057
  <?php if( $type == 'video' ) { ?>
1058
  <p><input name="General[poster_image_audio]" type="checkbox" value="1" <?php echo ($General['poster_image_audio']?'checked':''); ?> /> <?php echo __('Use poster image, player width and height above for audio (Flow Player only)', 'powerpress'); ?> </p>
1059
  <?php } ?>
@@ -1094,6 +1233,13 @@ table.html5formats tr > td:first-child {
1094
  ?>
1095
 
1096
  <?php
 
 
 
 
 
 
 
1097
  }
1098
  }
1099
 
@@ -1101,23 +1247,18 @@ function print_blubrry_player_demo()
1101
  {
1102
  ?>
1103
  <p>
1104
- <?php echo __('Note: The Blubrry Audio Player is only available to Blubrry Hosting Customers. This player will be available until December 31st.', 'powerpress'); ?>
1105
  </p>
1106
  <div style="border: 1px solid #000000; height: 138px; box-shadow: inset 0 0 10px black, 0 0 6px black; margin: 20px 0;">
1107
  <?php
1108
  echo powerpressplayer_build_blubrryaudio_by_id(12559710); // Special episode where we talk about the new player
1109
  ?></div>
1110
- <p>
1111
- <?php echo __('Modern podcast audio player complete with subscribe and share tools.', 'powerpress'); ?>
1112
- </p>
1113
- <p style="margin-top: 10px;">
1114
- <?php echo __('Shownotes and Download options are not displayed initially.', 'powerpress'); ?>
1115
- </p>
1116
  <?php
1117
  }
1118
 
1119
  function print_modern_player_demo(){ ?>
1120
- <p><?php echo __('Note: The Modern Blubrry Player is only available to Blubrry Hosting Customers.', 'powerpress'); ?></p>
1121
 
1122
  <div style="margin: 25px 0;">
1123
  <?php echo powerpressplayer_build_blubrryaudio_by_id(80155910, true); // Special episode where we talk about the new player ?>
42
  </p>
43
 
44
  <?php if( $plugin_link ) { ?>
45
+ <div <?php echo ( function_exists('add_videojs_header') ?'':' styleX="background-color: #FFFFE0; border: 1px solid #E6DB55; padding: 8px 12px; line-height: 29px; font-weight: bold; font-size: 14px; display:inline;"'); ?>><p>
46
  <?php echo sprintf(__('The %s must be installed and activated in order to enable this feature.', 'powerpress'), $plugin_link ); ?>
47
  </p></div>
48
  <?php } ?>
51
 
52
  function powerpress_admin_players($type='audio')
53
  {
54
+ if (defined('WP_DEBUG')) {
55
+ if (WP_DEBUG) {
56
+ wp_register_style('powerpress_settings_style', powerpress_get_root_url() . 'css/settings.css', array(), POWERPRESS_VERSION);
57
+ } else {
58
+ wp_register_style('powerpress_settings_style', powerpress_get_root_url() . 'css/settings.min.css', array(), POWERPRESS_VERSION);
59
+ }
60
+ } else {
61
+ wp_register_style('powerpress_settings_style', powerpress_get_root_url() . 'css/settings.min.css', array(), POWERPRESS_VERSION);
62
+ }
63
+ wp_enqueue_style("powerpress_settings_style");
64
+
65
+ // colorpicker library
66
+ wp_register_script('powerpress_colorpicker_new_js', 'https://cdn.jsdelivr.net/npm/@simonwep/pickr/dist/pickr.min.js');
67
+ wp_enqueue_script('powerpress_colorpicker_new_js');
68
+ wp_register_style('powerpress_colorpicker_new_css', 'https://cdn.jsdelivr.net/npm/@simonwep/pickr/dist/themes/monolith.min.css');
69
+ wp_enqueue_style('powerpress_colorpicker_new_css');
70
+
71
  $General = powerpress_get_settings('powerpress_general');
72
 
73
  $select_player = true;
175
  }
176
 
177
  jQuery(document).ready(function($) {
 
178
  if(document.getElementById('modern_player_iframe_div') !== null){
179
  generateModernPlayerHash();
180
  } else if(document.getElementById('player_iframe_div') !== null){
181
  generatePlayerHash();
182
  }
183
+ <?php $modernPlayerSettings = powerpress_get_settings('powerpress_bplayer'); ?>
184
+ // Simple example, see optional options for more configuration.
185
+ if (jQuery('.new-color-field-button').length > 0) {
186
+ var pickr = Pickr.create({
187
+ el: '.new-color-field-button',
188
+ theme: 'monolith',
189
+ useAsButton: true,
190
+ default: '<?php echo !empty($modernPlayerSettings['backgroundcolor']) ? $modernPlayerSettings['backgroundcolor'] : "#ffffff"; ?>',
191
+ defaultRepresentation: 'HEX',
192
+ components: {
193
+
194
+ // Main components
195
+ preview: true,
196
+ opacity: true,
197
+ hue: true,
198
+
199
+ // Input / output Options
200
+ interaction: {
201
+ input: true
202
+ }
203
+ }
204
+ });
205
 
206
+ pickr.on('show', (color, source, instance) => {
207
+ console.log(color.toHEXA().toString());
208
+ });
209
+
210
+ pickr.on('change', (color, source, instance) => {
211
+ console.log(color.toHEXA().toString());
212
+ jQuery('#backgroundcolorbutton').attr('style', 'background-color: ' + color.toHEXA().toString());
213
+ jQuery('#backgroundcolor').attr('value', color.toHEXA().toString());
214
+ });
215
+
216
+ pickr.on('save', (color, source, instance) => {
217
+ console.log(color.toHEXA());
218
+ });
219
+ console.log(pickr.setColor('<?php echo !empty($modernPlayerSettings['backgroundcolor']) ? $modernPlayerSettings['backgroundcolor'] : "#ffffff"; ?>'));
220
+ //console.log(pickr.getColor().toHEXA().toString());
221
+ }
222
 
223
  function generateModernPlayerHash(){
224
  var textColor = jQuery("input[name='ModernPlayer[textcolor]']:checked").val();
237
 
238
  }
239
 
240
+ document.getElementById('modern_player_iframe_div').innerHTML = '<iframe src="' + domain + '?id=' + episodeId + addition + '" id="modernplayeriframe" scrolling="yes" width="100%" height="230px" frameborder="0"></iframe>';
241
  }
242
 
243
  function generatePlayerHash(){
285
  } else {
286
  domain = 'https://player.blubrry.com';
287
  }
288
+ document.getElementById('modern_player_iframe_div').innerHTML ='<iframe src="' + domain + '?podcast_id=12559710' + addition + '" id="modernplayeriframe" scrolling="yes" width="100%" height="230px" frameborder="0"></iframe>';
289
 
290
  jQuery("input:radio[name='ModernPlayer[textcolor]'][value='Dark']").prop('checked', true);
291
+ //jQuery('input[name="ModernPlayer[backgroundcolor]"]').wpColorPicker('color',"#ffffff");
292
+ pickr.setColor("#ffffff");
293
  }
294
 
295
  jQuery('.color-field').wpColorPicker({
354
 
355
  <!-- special page styling goes here -->
356
  <style type="text/css">
 
357
  div.color_control input { display: inline; float: left; }
358
  div.color_control div.color_picker { display: inline; float: left; margin-top: 3px; }
359
  #player_preview { margin-bottom: 0px; height: 50px; margin-top: 8px;}
406
  {
407
  ?>
408
  <input type="hidden" name="action" value="powerpress-select-player" />
409
+ <h2 style="margin-bottom: 0;"><?php echo __('PowerPress Podcast Player', 'powerpress'); ?></h2>
410
+ <p style="margin-top: 0;"><?php echo __('Select the media player you would like to use.', 'powerpress'); ?></p>
411
 
412
  <?php
413
  if( $type == 'video' ) // Video player
416
  $General['video_player'] = '';
417
  ?>
418
  <input type="hidden" name="ep" value="1" />
419
+ <div class="pp-sidenav-tab active" style="display: block;width: auto;border-radius: 8px;">
420
+ <div class="player-options video-player-options">
421
+ <div>
422
+ <div class="pp-settings-subsection">
423
+ <div class="video-player-text">
424
+ <?php if( $General['video_player'] == 'mediaelement-video' ) { ?>
425
+ <input type="hidden" name="VideoPlayer[video_player]" id="player_mediaelement_video" value="mediaelement-video" class="player-type-input" />
426
+ <?php } else { ?>
427
+ <input type="hidden" name="VideoPlayer[video_player]" id="player_mediaelement_video" value="mediaelement-video" class="player-type-input" disabled />
428
+
429
+ <?php } ?>
430
+ <h3><?php echo __('MediaElement.js Media Player (default)', 'powerpress'); ?></h3>
431
+ <div>
432
+ <?php powerpressplayer_mediaelement_info(); ?>
433
+ </div>
434
+ </div>
435
+ <div class="video-player-sample">
436
+ <?php if( $General['video_player'] == 'mediaelement-video' ) { ?>
437
+ <a href="<?php echo admin_url("admin.php?page=powerpress/powerpressadmin_videoplayer.php&amp;ep=1"); ?>" id="activate_mediaelement_video" class="activate-player activated"><?php echo __('Activated', 'powerpress'); ?></a>
438
+ <?php } else { ?>
439
+ <a href="<?php echo admin_url("admin.php?page=powerpress/powerpressadmin_videoplayer.php&amp;ep=1"); ?>" id="activate_mediaelement_video" class="activate-player"><?php echo __('Activate and Customize Now', 'powerpress'); ?></a>
440
+ <?php } ?>
441
+ <div>
442
  <div class="powerpressadmin-mejs-video">
443
+ <?php echo powerpressplayer_build_mediaelementvideo( $Video['mediaelement-video'] ); ?>
 
 
444
  </div>
445
  </div>
446
+ </div>
447
+ </div>
448
+
449
+ <div class="pp-settings-subsection">
450
+ <div class="video-player-text html5" style="">
451
+ <?php if( $General['video_player'] == 'html5video' ) { ?>
452
+ <input type="hidden" name="VideoPlayer[video_player]" id="player_html5video" value="html5video" class="player-type-input" />
453
+ <?php } else { ?>
454
+ <input type="hidden" name="VideoPlayer[video_player]" id="player_html5video" value="html5video" class="player-type-input" disabled />
455
+ <?php } ?>
456
+ <h3><?php echo __('HTML5 Video Player', 'powerpress'); ?> </h3>
457
+ <p><?php echo __('HTML5 Video is an element introduced in the latest HTML specification (HTML5) for the purpose of playing videos.', 'powerpress'); ?></p>
458
+
459
+ </div>
460
+ <div class="video-player-sample" style="min-width: 400px;">
461
+ <?php if( $General['video_player'] == 'html5video' ) { ?>
462
+ <a href="<?php echo admin_url("admin.php?page=powerpress/powerpressadmin_videoplayer.php&amp;ep=1"); ?>" id="activate_html5video" class="activate-player activated"><?php echo __('Activated', 'powerpress'); ?></a>
463
+ <?php } else { ?>
464
+ <a href="<?php echo admin_url("admin.php?page=powerpress/powerpressadmin_videoplayer.php&amp;ep=1"); ?>" id="activate_html5video" class="activate-player"><?php echo __('Activate and Configure Now', 'powerpress'); ?></a>
465
+ <?php } ?>
466
+ <div style="float: right;"><?php echo powerpressplayer_build_html5video($Video['html5video']); ?></div>
467
+ </div>
468
+ </div>
469
+ <div class="pp-settings-subsection-no-border">
470
+ <!-- videojs-html5-video-player-for-wordpress -->
471
+ <div class="video-player-text">
472
+ <?php if( $General['video_player'] == 'videojs-html5-video-player-for-wordpress' ) { ?>
473
+ <input type="hidden" name="VideoPlayer[video_player]" id="player_videojs_html5_video_player_for_wordpress" value="videojs-html5-video-player-for-wordpress" class="player-type-input" />
474
+ <?php } else { ?>
475
+ <input type="hidden" name="VideoPlayer[video_player]" id="player_videojs_html5_video_player_for_wordpress" value="videojs-html5-video-player-for-wordpress" class="player-type-input" disabled />
476
+ <?php } ?>
477
+ <h3><?php echo __('VideoJS', 'powerpress'); ?></h3>
478
+ <?php powerpressplayer_videojs_info(); ?>
479
+ </div>
480
+ <div class="video-player-sample">
481
+ <?php if ( function_exists('add_videojs_header') ) { ?>
482
+ <?php if( $General['video_player'] == 'videojs-html5-video-player-for-wordpress' ) { ?>
483
+ <a href="<?php echo admin_url("admin.php?page=powerpress/powerpressadmin_videoplayer.php&amp;ep=1"); ?>" id="activate_videojs_html5_video_player_for_wordpress" class="activate-player activated"><?php echo __('Activated', 'powerpress'); ?></a>
484
+ <?php } else { ?>
485
+ <a href="<?php echo admin_url("admin.php?page=powerpress/powerpressadmin_videoplayer.php&amp;ep=1"); ?>" id="activate_videojs_html5_video_player_for_wordpress" class="activate-player"><?php echo __('Activate and Configure Now', 'powerpress'); ?></a>
486
+ <?php } ?>
487
+ <?php } ?>
488
+ <p>
489
  <?php
490
+ if ( function_exists('add_videojs_header') ) {
491
+ echo powerpressplayer_build_videojs( $Video['videojs-html5-video-player-for-wordpress'] );
492
+ }
493
+ ?>
494
+ </p>
495
+ </div>
496
+ </div>
497
+ </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
498
 
499
+ </div>
500
+ </div>
 
501
  <?php
502
  }
503
  else // audio player
504
  {
505
  ?>
506
  <input type="hidden" name="ep" value="1" />
507
+ <div class="pp-sidenav-tab active" style="display: block;width: auto;border-radius: 8px;">
508
+ <div class="player-options">
509
+ <div>
510
+ <div class="pp-settings-subsection">
511
+ <?php if( $General['player'] == 'blubrrymodern' ) { ?>
512
+ <input type="hidden" name="Player[player]" id="player_blubrrymodern" value="blubrrymodern" class="player-type-input" />
513
+ <h3><?php echo __('Blubrry Player (Modern)', 'powerpress'); ?>
514
+ <a href="<?php echo admin_url('admin.php?page=powerpress/powerpressadmin_player.php&ep=1'); ?>" id="activate_blubrrymodern" class="activate-player activated" style="float: right;"><?php echo __('Activated', 'powerpress'); ?></a></h3>
515
+ <?php } else { ?>
516
+ <input type="hidden" name="Player[player]" id="player_blubrrymodern" value="blubrrymodern" class="player-type-input" disabled />
517
+ <h3><?php echo __('Blubrry Player (Modern)', 'powerpress'); ?>
518
+ <a href="<?php echo admin_url('admin.php?page=powerpress/powerpressadmin_player.php&ep=1'); ?>" id="activate_blubrrymodern" class="activate-player" style="float: right;"><?php echo __('Activate and Customize', 'powerpress'); ?></a></h3>
519
+ <?php } ?>
520
+ <div style="width: 90%;">
521
  <?php print_modern_player_demo(); ?>
522
+ </div>
523
+ </div>
524
+
525
+ <div class="pp-settings-subsection">
526
+ <?php if( $General['player'] == 'blubrryaudio' ) { ?>
527
+ <input type="hidden" name="Player[player]" id="player_blubrryaudio" value="blubrryaudio" class="player-type-input" />
528
+ <h3> <?php echo __('Blubrry Player (Legacy)', 'powerpress'); ?>
529
+ <a href="<?php echo admin_url('admin.php?page=powerpress/powerpressadmin_player.php&ep=1'); ?>" id="activate_blubrryaudio" class="activate-player activated" style="float: right;"><?php echo __('Activated', 'powerpress'); ?></a></h3>
530
+ <?php } else { ?>
531
+ <input type="hidden" name="Player[player]" id="player_blubrryaudio" value="blubrryaudio" class="player-type-input" disabled />
532
+ <h3> <?php echo __('Blubrry Player (Legacy)', 'powerpress'); ?>
533
+ <a href="<?php echo admin_url('admin.php?page=powerpress/powerpressadmin_player.php&ep=1'); ?>" id="activate_blubrryaudio" class="activate-player" style="float: right;"><?php echo __('Activate and Customize', 'powerpress'); ?></a></h3>
534
+ <?php } ?>
535
+
536
+ <div style="width: 90%;">
537
  <?php print_blubrry_player_demo(); ?>
538
+ </div>
539
+ </div>
540
+
541
+ <div class="pp-settings-subsection">
542
+ <?php if( $General['player'] == 'mediaelement-audio' ) { ?>
543
+ <input type="hidden" name="Player[player]" id="player_mediaelement_audio" value="mediaelement-audio" class="player-type-input" />
544
+ <h3><?php echo __('MediaElement.js Media Player (default)', 'powerpress'); ?>
545
+ <a href="<?php echo admin_url('admin.php?page=powerpress/powerpressadmin_player.php&ep=1'); ?>" id="activate_mediaelement_audio" class="activate-player activated" style="float: right;"><?php echo __('Activated', 'powerpress'); ?></a></h3>
546
+ <?php } else { ?>
547
+ <input type="hidden" name="Player[player]" id="player_mediaelement_audio" value="mediaelement-audio" class="player-type-input" disabled />
548
+ <h3><?php echo __('MediaElement.js Media Player (default)', 'powerpress'); ?>
549
+ <a href="<?php echo admin_url('admin.php?page=powerpress/powerpressadmin_player.php&ep=1'); ?>" id="activate_mediaelement_audio" class="activate-player" style="float: right;"><?php echo __('Activate', 'powerpress'); ?></a></h3>
550
+ <?php } ?>
551
+ <?php powerpressplayer_mediaelement_info(); ?>
552
  <p>
553
+ <div style="width: 90%;">
554
+ <?php echo powerpressplayer_build_mediaelementaudio( $Audio['mediaelement-audio'] ); ?>
555
+ </div>
556
  </p>
557
+ </div>
 
558
 
559
+ <div class="pp-settings-subsection-no-border">
560
+ <?php if( $General['player'] == 'html5audio' ) { ?>
561
+ <input type="hidden" name="Player[player]" id="player_html5audio" value="html5audio" class="player-type-input" />
562
+ <h3><?php echo __('HTML5 Audio Player', 'powerpress'); ?>
563
+ <a href="<?php echo admin_url('admin.php?page=powerpress/powerpressadmin_player.php&ep=1'); ?>" id="activate_html5audio" class="activate-player activated" style="float: right;"><?php echo __('Activated', 'powerpress'); ?></a></h3>
564
+ <?php } else { ?>
565
+ <input type="hidden" name="Player[player]" id="player_html5audio" value="html5audio" class="player-type-input" disabled />
566
+ <h3><?php echo __('HTML5 Audio Player', 'powerpress'); ?>
567
+ <a href="<?php echo admin_url('admin.php?page=powerpress/powerpressadmin_player.php&ep=1'); ?>" id="activate_html5audio" class="activate-player" style="float: right;"><?php echo __('Activate', 'powerpress'); ?></a></h3>
568
+ <?php } ?>
569
+ <p>
570
+ <?php echo __('HTML5 audio is an element introduced in the latest HTML specification (HTML5) for the purpose of playing audio.', 'powerpress'); ?>
571
+ </p>
572
  <p>
573
+ <div style="width: 90%;">
574
+ <?php echo powerpressplayer_build_html5audio($Audio['html5audio']); ?>
575
+ </div>
576
  </p>
577
+ </div>
578
+ </div>
579
 
580
+ </div>
581
+ </div>
 
582
  <?php
583
  }
584
  ?>
 
585
  <?php
586
  }
587
  else
595
  <p style="margin-bottom: 20px;"><strong>&#8592; <a href="<?php echo admin_url("admin.php?page=powerpress/powerpressadmin_videoplayer.php&amp;sp=1"); ?>"><?php echo __('Select a different video player', 'powerpress'); ?></a></strong></p>
596
  <?php } else { ?>
597
  <p style="margin-bottom: 20px;"><strong>&#8592; <a href="<?php echo admin_url("admin.php?page=powerpress/powerpressadmin_mobileplayer.php&amp;sp=1"); ?>"><?php echo __('Select a different mobile player', 'powerpress'); ?></a></strong></p>
598
+ <?php } ?>
599
+ <div class="player-options pp-sidenav-tab active" style="display: block;width: auto;border-radius: 8px;">
600
+ <?php
601
  // Start adding logic here to display options based on the player selected...
602
  if($type == 'audio'){
603
  if(empty($General['player'])){
606
 
607
  switch ($General['player']){
608
  case 'blubrrymodern': {
 
609
  if(empty($modernPlayerSettings['textcolor'])){
610
  $modernPlayerSettings['textcolor'] = 'Dark';
611
  }
612
  if(empty($modernPlayerSettings['backgroundcolor'])){
613
+ $modernPlayerSettings['backgroundcolor'] = '#ffffff';
614
  }
615
  ?>
616
 
617
+ <div id="tab_play">
618
+ <div class="pp-settings-subsection" style="padding-top: 0;">
619
+ <h3><b> <?php echo __('Blubrry Player (Modern) Settings', 'powerpress'); ?> </b></h3>
 
620
 
621
+ <p style="margin-bottom: 2em;"><?php echo __('The Blubrry Audio Player is only available to Blubrry Hosting Customers.', 'powerpress'); ?></p>
622
 
623
+ <div id="modern_player_iframe_div" style="width: 90%;"></div>
 
 
 
624
  </div>
625
+ <div class="pp-settings-subsection-no-border">
626
+ <div>
627
+ <h3 style="margin-bottom: 1em;"><?php echo __('Customize Player', 'powerpress'); ?><a href="#" id="previewButtonModern" style="float: right; text-decoration: none;"><?php echo __('Preview Changes', 'powerpress'); ?></a></h3>
628
+ <h3 style="font-weight: normal; margin-bottom: 1em;">Don't forget to <a target="_blank" href="https://webaim.org/resources/contrastchecker/">check the contrast</a> of your color scheme to ensure it is accessible for all users.</h3>
629
+ </div>
630
+ <div class="player-customize-container" style="">
631
+ <div class="customize-box-section">
632
+ <h3><?php echo __('Player Contents', 'powerpress'); ?></h3>
633
+
634
+ <div style="display: flex; justify-content: space-between;">
635
+ <h4 style="font-weight: bold;">Text Color</h4>
636
+ <div style="margin-top: 1em; margin-bottom: 1.33em; width: 60%;">
637
+ <input type="radio" name="ModernPlayer[textcolor]" id="selectlight" value="Light" <?php echo ($modernPlayerSettings['textcolor'] == 'Light') ? 'checked = true' : ''; ?>>
638
+ <label for="selectlight" style="font-size:14px; margin-right: 40px;">Light</label>
639
+
640
+ <input type="radio" name="ModernPlayer[textcolor]" id="selectdark" value="Dark" <?php echo ($modernPlayerSettings['textcolor'] == 'Dark') ? 'checked = true' : ''; ?> >
641
+ <label for="selectdark" style="font-size:14px;">Dark (default)</label>
642
+ </div>
643
+ </div>
644
 
 
 
 
 
 
 
 
 
 
645
 
646
+ <div class="color_control" style="display: flex; justify-content: space-between;">
647
+ <h4 style="font-weight: bold;">Background Color</h4>
648
+ <div style="display: block; padding-top: 0.75em; width: 60%;">
649
+ <input type="text" style="" id="backgroundcolor" name="ModernPlayer[backgroundcolor]"
650
+ class="new-color-field"
651
+ value="<?php echo esc_attr($modernPlayerSettings['backgroundcolor']); ?>"
652
+ maxlength="20"
653
+ aria-label="Background Color"
654
+ />
655
+ <button type="button" id="backgroundcolorbutton" class="new-color-field-button" style="background-color: <?php echo esc_attr($modernPlayerSettings['backgroundcolor']); ?>"></button>
656
+ </div>
657
+ </div>
658
 
659
+ <div style="display: flex; justify-content: space-between;">
660
+ <h4 style="font-weight: bold;">Soundwave Color</h4>
661
+ <p style="margin: 1em 0 1.33em 0; width: 60%;"><?php echo __('Coming soon Check Podcast Insider for updates.', 'powerpress'); ?></p>
662
+ </div>
663
+ </div>
664
+
665
+ <div class="customize-box-section">
666
+ <h3 style="margin-bottom: 1em;"><?php echo __('Episode Image', 'powerpress'); ?></h3>
667
+
668
+ <p style="display: block; margin-bottom: 1em;">
669
+ <?php echo __('Select a specific category to each episode for statistics tracking and subscription links.', 'powerpress'); ?>
670
+ </p>
671
+
672
+ <p style="display: block; margin-bottom: 1em;"><input name="General[new_episode_box_itunes_image]" type="hidden" value="0"/><input
673
+ name="General[new_episode_box_itunes_image]" type="checkbox"
674
+ value="1" <?php echo((empty($General['new_episode_box_itunes_image']) || $General['new_episode_box_itunes_image'] == 1) ? 'checked' : ''); ?> /> <?php echo __('Display field for entering iTunes episode image ', 'powerpress'); ?>
675
+ </p>
676
+ <p style="display: block; margin-bottom: 1em;"><input name="General[bp_episode_image]" type="hidden" value="0"/><input
677
+ name="General[bp_episode_image]" type="checkbox"
678
+ value="1" <?php echo(!empty($General['bp_episode_image']) ? 'checked' : ''); ?> /> <?php echo __('Use iTunes episode image with player', 'powerpress'); ?>
679
+ </p>
680
+ <input type="hidden" name="General[powerpress_bplayer_settings]" value="1" />
681
+ </div>
682
+ </div>
683
+ </div>
684
+ <div style="margin-left: 2em;">
685
+ <?php powerpress_settings_save_button(true, true); ?>
686
+ <h3 style="display: inline-block; vertical-align: top; margin-top: 1ch; margin-left: 1em;"> <a href="#" id="restoreDefaultsButtonModern" style="text-decoration: none;"><?php echo __('Restore Defaults', 'powerpress'); ?></a></h3>
687
  </div>
688
  </div>
689
  <input type="hidden" name="action" value="powerpress_bplayer"/>
1192
  if( in_array($General['video_player'], array('html5video') ) )
1193
  {
1194
  ?>
1195
+ <p><input name="General[poster_play_image]" type="checkbox" value="1" <?php echo ((!isset($General['poster_play_image']) || $General['poster_play_image'])?'checked':''); ?> /> <?php echo __('Include play icon over poster image when applicable', 'powerpress'); ?> </p>
1196
  <?php if( $type == 'video' ) { ?>
1197
  <p><input name="General[poster_image_audio]" type="checkbox" value="1" <?php echo ($General['poster_image_audio']?'checked':''); ?> /> <?php echo __('Use poster image, player width and height above for audio (Flow Player only)', 'powerpress'); ?> </p>
1198
  <?php } ?>
1233
  ?>
1234
 
1235
  <?php
1236
+
1237
+ ?>
1238
+ </div>
1239
+ <?php
1240
+ if ($General['player'] != 'blubrrymodern' || $type == 'video' ) {
1241
+ powerpress_settings_save_button(true);
1242
+ }
1243
  }
1244
  }
1245
 
1247
  {
1248
  ?>
1249
  <p>
1250
+ <?php echo __('The Blubrry Audio Player is only available to Blubrry Hosting Customers. This player will be available until December 31st.', 'powerpress'); ?>
1251
  </p>
1252
  <div style="border: 1px solid #000000; height: 138px; box-shadow: inset 0 0 10px black, 0 0 6px black; margin: 20px 0;">
1253
  <?php
1254
  echo powerpressplayer_build_blubrryaudio_by_id(12559710); // Special episode where we talk about the new player
1255
  ?></div>
1256
+
 
 
 
 
 
1257
  <?php
1258
  }
1259
 
1260
  function print_modern_player_demo(){ ?>
1261
+ <p><?php echo __('The Modern Blubrry Player is only available to Blubrry Hosting Customers.', 'powerpress'); ?></p>
1262
 
1263
  <div style="margin: 25px 0;">
1264
  <?php echo powerpressplayer_build_blubrryaudio_by_id(80155910, true); // Special episode where we talk about the new player ?>
powerpressadmin-player.php CHANGED
@@ -32,9 +32,9 @@ function powerpress_admin_players_init()
32
  }; break;
33
  case 'powerpress_bplayer':{ //blubrry player
34
 
35
- $SaveSettings = $_POST['BBPlayer'];
36
  $GenSettings = $_POST['General'];
37
- $ModernPlayerSettings = $_POST['ModernPlayer'];
38
 
39
  if(empty($SaveSettings)){
40
  $SaveSettings = $ModernPlayerSettings;
32
  }; break;
33
  case 'powerpress_bplayer':{ //blubrry player
34
 
35
+ $SaveSettings = !empty($_POST['BBPlayer']) ? $_POST['BBPlayer'] : array();
36
  $GenSettings = $_POST['General'];
37
+ $ModernPlayerSettings = !empty($_POST['ModernPlayer']) ? $_POST['ModernPlayer'] : array();
38
 
39
  if(empty($SaveSettings)){
40
  $SaveSettings = $ModernPlayerSettings;
powerpressadmin-tags.php CHANGED
@@ -18,13 +18,12 @@ function ToggleID3Tags(Obj)
18
  }
19
  //-->
20
  </script>
 
21
  <input type="hidden" name="action" value="powerpress-save-tags" />
22
  <h2><?php echo __('MP3 Tags', 'powerpress'); ?></h2>
23
 
24
- <p><?PHP echo __('Blubrry Hosting users can configure how to have the service write their MP3 ID3 Tags before publishing episodes.', 'powerpress'); ?></p>
25
 
26
- <p style="margin-bottom: 0;">
27
- <?php
28
  echo __('ID3 tags contain useful information (title, artist, album, year, etc...) about your podcast as well as an image for display during playback in most media players.', 'powerpress');
29
  echo ' ';
30
  echo sprintf( __('Please visit the %s section of the %s to learn more about MP3 ID3 tags.', 'powerpress'),
@@ -37,36 +36,25 @@ function ToggleID3Tags(Obj)
37
  if( empty($General['blubrry_hosting']) || $General['blubrry_hosting'] === 'false' )
38
  {
39
  ?>
40
- <table class="form-table">
41
- <tr valign="top">
42
- <th scope="row"><?php echo __('Write Tags', 'powerpress'); ?></th>
43
- <td>
44
- <p>
45
- <input name="NotAvailable" type="checkbox" value="1" onchange="alert('<?php echo __('You must configure your Blubrry Services Account in the Blubrry PowerPress > Basic Settings page in order to utilize this feature.', 'powerpress'); ?>'); this.checked=false; return false;" />
46
- <?php echo __('Use Blubrry Hosting services to write MP3 ID3 tags to your media.', 'powerpress'); ?>
47
- </p>
48
- </td>
49
- </tr>
50
- </table>
51
 
52
  <?php
53
  }
54
  else
55
  {
56
  ?>
57
- <table class="form-table">
58
- <tr valign="top">
59
- <th scope="row"><?php echo __('Write Tags', 'powerpress'); ?></th>
60
- <td>
61
- <p>
62
- <input name="General[write_tags]" type="checkbox" value="1" <?php if( !empty($General['write_tags']) ) echo 'checked '; ?> onchange="ToggleID3Tags(this);" />
63
- <?php echo __('Use Blubrry Hosting services to write MP3 ID3 tags to your media.', 'powerpress'); ?>
64
- </p>
65
- </td>
66
- </tr>
67
- </table>
68
  <?php } ?>
69
- <table class="form-table" id="edit_id3_tags" style="display:<?php echo ( !empty($General['blubrry_hosting'])&& $General['blubrry_hosting']!=='false' ?( !empty($General['write_tags'])?'block':'none'):'block'); ?>;">
 
70
 
71
  <?php
72
  if( empty($General['tag_title']) )
@@ -103,7 +91,8 @@ function ToggleID3Tags(Obj)
103
 
104
  ?>
105
 
106
- </table>
 
107
  <?php
108
  } // End powerpress_admin_appearance()
109
 
@@ -130,11 +119,11 @@ function powerpressadmin_tag_option($tag, $value, $label, $default_desc )
130
  }
131
  }
132
  ?>
133
- <tr valign="top">
134
- <th scope="row">
135
  <?php echo $label; ?>
136
- </th>
137
- <td>
138
  <?php
139
  if( !$file )
140
  {
@@ -166,10 +155,9 @@ function powerpressadmin_tag_option($tag, $value, $label, $default_desc )
166
  <input type="text" id="coverart_image" name="TagValues[<?php echo $tag; ?>]" style="width: 50%;" value="<?php echo esc_attr($value); ?>" maxlength="250" />
167
  <a href="#" onclick="javascript: window.open( document.getElementById('coverart_image').value ); return false;"><?php echo __('preview', 'powerpress'); ?></a>
168
 
169
- <p><?php echo __('Place the URL to the Coverart image above. e.g. http://mysite.com/images/coverart.jpg', 'powerpress'); ?></P>
170
- <P><?php echo __('Coverart images may be saved as either .gif, .jpg or .png images of any size, though 300 x 300 or 600 x 600 in either png or jpg format is recommended.', 'powerpress'); ?>
171
- </p>
172
- <p>
173
  <?php if( $FeedSettings['itunes_image'] ) { ?>
174
  <input type="hidden" name="NULL[current_coverart_image]" id="current_coverart_image" value="<?php echo htmlspecialchars($FeedSettings['itunes_image']); ?>" />
175
  <a href="#" title="" onclick="document.getElementById('coverart_image').value=document.getElementById('current_coverart_image').value;document.getElementById('tag_coverart_specify').checked=true;return false;"><?php echo __('Click here to use your current iTunes image.', 'powerpress'); ?></a>
@@ -177,7 +165,7 @@ function powerpressadmin_tag_option($tag, $value, $label, $default_desc )
177
  <?php } ?>
178
  </p>
179
  <?php if( $SupportUploads ) { ?>
180
- <p><input name="coverart_image_checkbox" type="checkbox" onchange="powerpress_show_field('coverart_image_upload', this.checked)" value="1" /> <?php echo __('Upload new image', 'powerpress'); ?> </p>
181
  <div style="display:none" id="coverart_image_upload">
182
  <label for="coverart_image_file"><?php echo __('Choose file', 'powerpress'); ?>:</label> <input type="file" name="coverart_image_file" />
183
  </div>
@@ -205,8 +193,8 @@ function powerpressadmin_tag_option($tag, $value, $label, $default_desc )
205
  }
206
 
207
  ?>
208
- </td>
209
- </tr>
210
  <?php
211
  }
212
 
18
  }
19
  //-->
20
  </script>
21
+ <div class="pp-settings-section">
22
  <input type="hidden" name="action" value="powerpress-save-tags" />
23
  <h2><?php echo __('MP3 Tags', 'powerpress'); ?></h2>
24
 
25
+ <p class="pp-main" style="font-weight: normal;"><?php echo __('Blubrry Hosting users can configure how to have the service write their MP3 ID3 Tags before publishing episodes.', 'powerpress');
26
 
 
 
27
  echo __('ID3 tags contain useful information (title, artist, album, year, etc...) about your podcast as well as an image for display during playback in most media players.', 'powerpress');
28
  echo ' ';
29
  echo sprintf( __('Please visit the %s section of the %s to learn more about MP3 ID3 tags.', 'powerpress'),
36
  if( empty($General['blubrry_hosting']) || $General['blubrry_hosting'] === 'false' )
37
  {
38
  ?>
39
+ <input name="NotAvailable" class="pp-settings-checkbox" type="checkbox" value="1" onchange="alert('<?php echo __('You must configure your Blubrry Services Account in the Blubrry PowerPress > Basic Settings page in order to utilize this feature.', 'powerpress'); ?>'); this.checked=false; return false;" />
40
+ <div class="pp-settings-subsection">
41
+ <p class="pp-main"><?php echo __('Write Tags', 'powerpress'); ?></p>
42
+ <p class="pp-sub"><?php echo __('Use Blubrry Hosting services to write MP3 ID3 tags to your media.', 'powerpress'); ?></p>
43
+ </div>
 
 
 
 
 
 
44
 
45
  <?php
46
  }
47
  else
48
  {
49
  ?>
50
+ <input name="General[write_tags]" class="pp-settings-checkbox" type="checkbox" value="1" <?php if( !empty($General['write_tags']) ) echo 'checked '; ?> onchange="ToggleID3Tags(this);" />
51
+ <div class="pp-settings-subsection">
52
+ <p class="pp-main"><?php echo __('Write Tags', 'powerpress'); ?></p>
53
+ <p class="pp-sub"><?php echo __('Use Blubrry Hosting services to write MP3 ID3 tags to your media.', 'powerpress'); ?></p>
54
+ </div>
 
 
 
 
 
 
55
  <?php } ?>
56
+
57
+ <div id="edit_id3_tags" style="display:<?php echo ( !empty($General['blubrry_hosting'])&& $General['blubrry_hosting']!=='false' ?( !empty($General['write_tags'])?'block':'none'):'block'); ?>;">
58
 
59
  <?php
60
  if( empty($General['tag_title']) )
91
 
92
  ?>
93
 
94
+ </div>
95
+ </div>
96
  <?php
97
  } // End powerpress_admin_appearance()
98
 
119
  }
120
  }
121
  ?>
122
+ <div class="pp-settings-subsection" style="margin-left: 3em;">
123
+ <p class="pp-main">
124
  <?php echo $label; ?>
125
+ </p>
126
+ <p class="pp-sub">
127
  <?php
128
  if( !$file )
129
  {
155
  <input type="text" id="coverart_image" name="TagValues[<?php echo $tag; ?>]" style="width: 50%;" value="<?php echo esc_attr($value); ?>" maxlength="250" />
156
  <a href="#" onclick="javascript: window.open( document.getElementById('coverart_image').value ); return false;"><?php echo __('preview', 'powerpress'); ?></a>
157
 
158
+ <p class="pp-label-bottom" style="margin-bottom: 0;"><?php echo __('Place the URL to the Coverart image above. e.g. http://mysite.com/images/coverart.jpg', 'powerpress'); ?></P>
159
+ <p class="pp-label-bottom" style="margin-bottom: 0;"><?php echo __('Coverart images may be saved as either .gif, .jpg or .png images of any size, though 300 x 300 or 600 x 600 in either png or jpg format is recommended.', 'powerpress'); ?></p>
160
+ <p class="pp-label-bottom" style="margin-bottom: 0;">
 
161
  <?php if( $FeedSettings['itunes_image'] ) { ?>
162
  <input type="hidden" name="NULL[current_coverart_image]" id="current_coverart_image" value="<?php echo htmlspecialchars($FeedSettings['itunes_image']); ?>" />
163
  <a href="#" title="" onclick="document.getElementById('coverart_image').value=document.getElementById('current_coverart_image').value;document.getElementById('tag_coverart_specify').checked=true;return false;"><?php echo __('Click here to use your current iTunes image.', 'powerpress'); ?></a>
165
  <?php } ?>
166
  </p>
167
  <?php if( $SupportUploads ) { ?>
168
+ <p class="pp-label-bottom" style="margin-bottom: 0;"><input name="coverart_image_checkbox" type="checkbox" onchange="powerpress_show_field('coverart_image_upload', this.checked)" value="1" /> <?php echo __('Upload new image', 'powerpress'); ?> </p>
169
  <div style="display:none" id="coverart_image_upload">
170
  <label for="coverart_image_file"><?php echo __('Choose file', 'powerpress'); ?>:</label> <input type="file" name="coverart_image_file" />
171
  </div>
193
  }
194
 
195
  ?>
196
+ </p>
197
+ </div>
198
  <?php
199
  }
200
 
powerpressadmin.php CHANGED
@@ -2137,7 +2137,6 @@ function powerpress_admin_menu()
2137
  }
2138
  //if( !empty($Powerpress['blubrry_hosting']) && $Powerpress['blubrry_hosting'] !== 'false' )
2139
 
2140
- add_submenu_page($parent_slug, __('PowerPress MP3 Tags', 'powerpress'), __('MP3 Tags', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_tags.php', 'powerpress_admin_page_tags');
2141
  add_submenu_page($parent_slug, __('PowerPress Tools', 'powerpress'), __('Tools', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_tools.php', 'powerpress_admin_page_tools');
2142
  }
2143
  }
@@ -2500,10 +2499,8 @@ function powerpress_edit_post($post_ID, $post)
2500
  if( !empty($GeneralSettings['blubrry_hosting']) && $GeneralSettings['blubrry_hosting'] !== 'false' )
2501
  powerpress_process_hosting($post_ID, $post->post_title); // Call anytime blog post is in the published state
2502
  }
2503
- //WebSub implementation
2504
- if($post->post_status == 'publish' && !(defined('POWERPRESS_DISABLE_WEBSUB') && POWERPRESS_DISABLE_WEBSUB )) {
2505
- require_once( 'class.powerpresswebsub.php' );
2506
- $Websub = new PowerPressWebSub();
2507
  $feedUrls = array(); //feed urls that have been updated by this post and that the hub should be notified about.
2508
  $postType = get_post_type($post_ID);
2509
 
@@ -2535,15 +2532,39 @@ function powerpress_edit_post($post_ID, $post)
2535
  }
2536
  }
2537
  }
2538
- foreach ($feedUrls as $url) {
2539
- try {
2540
- $Websub->publish($url);
2541
- } catch (Exception $e) {
2542
- if( defined('WP_DEBUG') && WP_DEBUG ) {
2543
- powerpress_page_message_add_error( $e->getMessage() );
2544
- }
 
 
 
 
2545
  }
2546
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2547
  }
2548
  // And we're done!
2549
  return $post_ID;
@@ -2747,11 +2768,14 @@ jQuery(document).ready(function($) {
2747
  var PlayerName = this.id.replace(/(activate_)(.*)$/, "$2");
2748
  if( !PlayerName )
2749
  return;
2750
-
2751
  if(typeof jQuery.prop === 'function') {
2752
- jQuery('#player_'+PlayerName).prop('checked', true);
 
 
2753
  } else {
2754
- jQuery('#player_'+PlayerName).attr('checked', true);
 
2755
  }
2756
  jQuery(this).closest("form").submit();
2757
  });
@@ -3616,14 +3640,19 @@ function powerpress_admin_page_footer($SaveButton=true, $form=true)
3616
  }
3617
 
3618
  // Admin page, footer
3619
- function powerpress_settings_save_button($blue = false)
3620
  {
 
 
 
 
 
3621
  if ($blue) {
3622
  $class = "powerpress_save_button_other";
3623
  } else {
3624
  $class = "powerpress_save_button";
3625
  }?>
3626
- <div class="pp-save-button-container">
3627
  <input type="submit" name="Submit" class="<?php echo $class; ?>" value="<?php echo __('Save Changes', 'powerpress') ?>" />
3628
  </div>
3629
  <?php
@@ -3645,7 +3674,6 @@ function powerpress_admin_page_players()
3645
  powerpress_admin_page_header('powerpress/powerpressadmin_player.php');
3646
  require_once( POWERPRESS_ABSPATH.'/powerpressadmin-player-page.php');
3647
  powerpress_admin_players('audio');
3648
- powerpress_settings_save_button(true);
3649
  powerpress_admin_page_footer(true);
3650
  }
3651
 
@@ -3654,7 +3682,6 @@ function powerpress_admin_page_videoplayers()
3654
  powerpress_admin_page_header('powerpress/powerpressadmin_videoplayer.php');
3655
  require_once( POWERPRESS_ABSPATH.'/powerpressadmin-player-page.php');
3656
  powerpress_admin_players('video');
3657
- powerpress_settings_save_button(true);
3658
  powerpress_admin_page_footer(true);
3659
  }
3660
 
@@ -3676,16 +3703,6 @@ function powerpress_admin_page_podpress_stats()
3676
  powerpress_admin_page_footer(false);
3677
  }
3678
 
3679
- // Admin page, advanced mode: feed settings
3680
- function powerpress_admin_page_tags()
3681
- {
3682
- powerpress_admin_page_header('powerpress/powerpressadmin_tags.php');
3683
- require_once( POWERPRESS_ABSPATH .'/powerpressadmin-tags.php');
3684
- powerpress_admin_tags();
3685
- powerpress_settings_save_button(true);
3686
- powerpress_admin_page_footer();
3687
- }
3688
-
3689
  // Migrate
3690
  function powerpress_admin_page_migrate()
3691
  {
2137
  }
2138
  //if( !empty($Powerpress['blubrry_hosting']) && $Powerpress['blubrry_hosting'] !== 'false' )
2139
 
 
2140
  add_submenu_page($parent_slug, __('PowerPress Tools', 'powerpress'), __('Tools', 'powerpress'), POWERPRESS_CAPABILITY_EDIT_PAGES, 'powerpress/powerpressadmin_tools.php', 'powerpress_admin_page_tools');
2141
  }
2142
  }
2499
  if( !empty($GeneralSettings['blubrry_hosting']) && $GeneralSettings['blubrry_hosting'] !== 'false' )
2500
  powerpress_process_hosting($post_ID, $post->post_title); // Call anytime blog post is in the published state
2501
  }
2502
+ //WebSub and podping implementation
2503
+ if($post->post_status == 'publish') {
 
 
2504
  $feedUrls = array(); //feed urls that have been updated by this post and that the hub should be notified about.
2505
  $postType = get_post_type($post_ID);
2506
 
2532
  }
2533
  }
2534
  }
2535
+ if (!(defined('POWERPRESS_DISABLE_WEBSUB') && POWERPRESS_DISABLE_WEBSUB )) {
2536
+ require_once( 'class.powerpresswebsub.php' );
2537
+ $Websub = new PowerPressWebSub();
2538
+ foreach ($feedUrls as $url) {
2539
+ try {
2540
+ $Websub->publish($url);
2541
+ } catch (Exception $e) {
2542
+ if (defined('WP_DEBUG') && WP_DEBUG) {
2543
+ powerpress_add_error($e->getMessage());
2544
+ }
2545
+ }
2546
  }
2547
  }
2548
+
2549
+ // podping uses the Blubrry API, so an account needs to be linked
2550
+ $creds = get_option('powerpress_creds');
2551
+ if (!empty($creds) || !empty($GeneralSettings['blubrry_auth'])) {
2552
+ if (!(defined('POWERPRESS_DISABLE_PODPING') && POWERPRESS_DISABLE_PODPING )) {
2553
+ require_once( 'powerpresspodping.class.php' );
2554
+ $Podping = new PowerPressPodping();
2555
+ foreach ($feedUrls as $url) {
2556
+ try {
2557
+ // because auth key is the same across the whole site and each feed url is being passed, it doesn't matter what program keyword we use to call the api
2558
+ $Podping->publish($url, $GeneralSettings['blubrry_program_keyword']);
2559
+ } catch (Exception $e) {
2560
+ if (defined('WP_DEBUG') && WP_DEBUG) {
2561
+ powerpress_add_error($e->getMessage());
2562
+ }
2563
+ }
2564
+ }
2565
+ }
2566
+
2567
+ }
2568
  }
2569
  // And we're done!
2570
  return $post_ID;
2768
  var PlayerName = this.id.replace(/(activate_)(.*)$/, "$2");
2769
  if( !PlayerName )
2770
  return;
2771
+
2772
  if(typeof jQuery.prop === 'function') {
2773
+ jQuery('.player-type-input').prop('disabled', true);
2774
+ jQuery('#player_'+PlayerName).prop('disabled', false);
2775
+ jQuery('#player_'+PlayerName).removeAttr('disabled');
2776
  } else {
2777
+ jQuery('.player-type-input').attr('disabled', true);
2778
+ jQuery('#player_'+PlayerName).removeAttr('disabled');
2779
  }
2780
  jQuery(this).closest("form").submit();
2781
  });
3640
  }
3641
 
3642
  // Admin page, footer
3643
+ function powerpress_settings_save_button($blue = false, $float_left = false)
3644
  {
3645
+ if ($float_left) {
3646
+ $float_string = '';
3647
+ } else {
3648
+ $float_string = ' pp-save-button-container-right';
3649
+ }
3650
  if ($blue) {
3651
  $class = "powerpress_save_button_other";
3652
  } else {
3653
  $class = "powerpress_save_button";
3654
  }?>
3655
+ <div class="pp-save-button-container<?php echo $float_string; ?>">
3656
  <input type="submit" name="Submit" class="<?php echo $class; ?>" value="<?php echo __('Save Changes', 'powerpress') ?>" />
3657
  </div>
3658
  <?php
3674
  powerpress_admin_page_header('powerpress/powerpressadmin_player.php');
3675
  require_once( POWERPRESS_ABSPATH.'/powerpressadmin-player-page.php');
3676
  powerpress_admin_players('audio');
 
3677
  powerpress_admin_page_footer(true);
3678
  }
3679
 
3682
  powerpress_admin_page_header('powerpress/powerpressadmin_videoplayer.php');
3683
  require_once( POWERPRESS_ABSPATH.'/powerpressadmin-player-page.php');
3684
  powerpress_admin_players('video');
 
3685
  powerpress_admin_page_footer(true);
3686
  }
3687
 
3703
  powerpress_admin_page_footer(false);
3704
  }
3705
 
 
 
 
 
 
 
 
 
 
 
3706
  // Migrate
3707
  function powerpress_admin_page_migrate()
3708
  {
powerpresspodping.class.php ADDED
@@ -0,0 +1,99 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+
4
+ class PowerPressPodping
5
+ {
6
+ /**
7
+ * Podping constructor.
8
+ */
9
+ public function __construct(){}
10
+
11
+
12
+ /**
13
+ * Calls Blubrry API to pubilsh update to Podping
14
+ * @param string $url URL of feed to update
15
+ * @param string $program_keyword Blubrry program keyword
16
+ * @throws Exception Throws exception if keyword is missing or if Blubrry API returns an error
17
+ * @return bool
18
+ */
19
+ public function publish($url, $program_keyword = "") {
20
+
21
+ $GeneralSettings = get_option('powerpress_general');
22
+ if (!$program_keyword) {
23
+ $program_keyword = $GeneralSettings['blubrry_program_keyword'];
24
+ }
25
+ if (!$program_keyword) {
26
+ throw new Exception("Could not detect Blubrry program keyword." );
27
+ }
28
+
29
+ $post_array = array('auth_suffix' => $this->getAuthKey(), 'powerpress_version' => POWERPRESS_VERSION, 'feed_url' => $url);
30
+
31
+ require_once('powerpressadmin-auth.class.php');
32
+ $creds = get_option('powerpress_creds');
33
+ $auth = new PowerPressAuth();
34
+ if ($creds) {
35
+ $accessToken = powerpress_getAccessToken();
36
+ $req_url = sprintf('/2/episode/%s/podping-notification/?format=json&cache=' . md5(rand(0, 999) . time()), urlencode($program_keyword));
37
+ $req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA') ? '?' . POWERPRESS_BLUBRRY_API_QSA : '');
38
+ $req_url .= (defined('POWERPRESS_PUBLISH_PROTECTED') ? '&protected=true' : '');
39
+ $podping_results = $auth->api($accessToken, $req_url, $post_array, false, 60 * 30);
40
+
41
+ } else {
42
+ if (empty($GeneralSettings['blubrry_auth'])) {
43
+ throw new Exception("No Blubrry account linked." );
44
+ }
45
+ $api_url_array = powerpress_get_api_array();
46
+ foreach ($api_url_array as $index => $api_url) {
47
+ $req_url = sprintf('/episode/%s/podping-notification/?format=json&cache=' . md5(rand(0, 999) . time()), urlencode($program_keyword));
48
+ $req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA') ? '&' . POWERPRESS_BLUBRRY_API_QSA : '');
49
+ $req_url .= (defined('POWERPRESS_PUBLISH_PROTECTED') ? '&protected=true' : '');
50
+ $json_data = powerpress_remote_fopen(rtrim($api_url, '/') . $req_url, $GeneralSettings['blubrry_auth'], $post_array, 60 * 30); // give this up to 30 minutes, though 3 seocnds to 20 seconds is all one should need.
51
+ if (!$json_data && $api_url == 'https://api.blubrry.com/') { // Let's force cURL and see if that helps...
52
+ $json_data = powerpress_remote_fopen(rtrim($api_url, '/') . $req_url, $GeneralSettings['blubrry_auth'], $post_array, 60 * 30, false, true);
53
+ }
54
+ if ($json_data != false)
55
+ break;
56
+ }
57
+ $podping_results = powerpress_json_decode($json_data);
58
+ }
59
+
60
+ if (!$podping_results || !empty($podping_results['error'])) {
61
+ $error = $auth->getLastError();
62
+ if (!empty($podping_results['error'])) {
63
+ $error = $podping_results['error'];
64
+ }
65
+ if ($error) {
66
+ throw new Exception("Podping error: " . $error );
67
+ } else {
68
+ throw new Exception("Unknown podping error occurred.");
69
+ }
70
+ }
71
+ return true;
72
+ }
73
+
74
+ /**
75
+ * @return string
76
+ */
77
+ public function getAuthKey()
78
+ {
79
+ $auth_key = get_option('powerpress_podping_authkey');
80
+
81
+ // generate auth key only once for each powerpress install
82
+ if (!$auth_key) {
83
+ $feed_url = get_home_url() . '/feed/podcast';
84
+ // start with crc32 of the feed url
85
+ $auth_key = crc32($feed_url);
86
+ $needed_characters = 22 - strlen($auth_key);
87
+ $charset = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
88
+
89
+ // fill in the rest of the 22 total characters randomly
90
+ while ($needed_characters) {
91
+ $auth_key .= $charset[rand(0, strlen($charset) - 1)];
92
+ $needed_characters -= 1;
93
+ }
94
+
95
+ update_option('powerpress_podping_authkey', $auth_key);
96
+ }
97
+ return $auth_key;
98
+ }
99
+ }
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: podcasting, podcast, podcaster, powerpress, itunes, apple, apple podcasts,
4
  Requires at least: 3.6
5
  Requires PHP: 5.2
6
  Tested up to: 6.0
7
- Stable tag: 9.4.2
8
  Donate link: https://create.blubrry.com/resources/podcast-media-hosting/
9
  License: GPLv2 or later
10
 
@@ -186,6 +186,12 @@ If you are a fan of PowerPress, we would greatly appreciate it if you could take
186
 
187
  == Changelog ==
188
 
 
 
 
 
 
 
189
  = 9.4.2 =
190
  * Released on 09/20/2022
191
  * Bugfix
4
  Requires at least: 3.6
5
  Requires PHP: 5.2
6
  Tested up to: 6.0
7
+ Stable tag: 9.5
8
  Donate link: https://create.blubrry.com/resources/podcast-media-hosting/
9
  License: GPLv2 or later
10
 
186
 
187
  == Changelog ==
188
 
189
+ = 9.5 =
190
+ * Released on 09/26/2022
191
+ * Moved MP3 Tag settings to Feed settings
192
+ * Updated styling on player pages
193
+ * Podping implementation
194
+
195
  = 9.4.2 =
196
  * Released on 09/20/2022
197
  * Bugfix