MP3-jPlayer - Version 2.4.0

Version Description

Download this release

Release Info

Developer simon.ward
Plugin Icon 128x128 MP3-jPlayer
Version 2.4.0
Comparing to
See all releases

Code changes from version 2.3.3 to 2.4.0

admin-colours.php CHANGED
@@ -55,9 +55,11 @@ function mp3j_print_colours_page()
55
  $player_theme = $O['player_theme'];
56
  if ( isset( $css_urls[ $player_theme ]['url'] ) ) {
57
  $js_current_css = "\nvar MP3J_THEME_PATH = '" . $css_urls[ $player_theme ]['url'] . "';";
 
58
  }
59
  else { //fall back to default
60
  $js_current_css = "\nvar MP3J_THEME_PATH = '" . $css_urls['defaultLight']['url'] . "';";
 
61
  }
62
 
63
 
@@ -227,7 +229,7 @@ function mp3j_print_colours_page()
227
  <ul id="ul-mjp" class="ul-mjp<?php echo $ulClass . $liClass . $listWeight. $listItalic . $listAlign; ?>">
228
  <li class="li-mjp"><a id="playerT2" class="a-mjp" href="#">Example List Item</a></li>
229
  <li class="li-mjp"><a id="playerT3" class="a-mjp" style="background:<?php echo $C['listBGa_hover']; ?>; color:<?php echo $C['list_hover_colour']; ?>;" href="#">Example List item (hover)</a></li>
230
- <li class="li-mjp mjp-li-last"><a id="playerT4" class="a-mjp" style="background:<?php echo $C['listBGa_current']; ?>; color:<?php echo $C['list_current_colour']; ?>;" href="#">Example List Item (Current)</a></li>
231
  </ul>
232
  </div>
233
  </div>
@@ -682,6 +684,10 @@ function mp3j_print_colours_page()
682
  <br><br><span class="description">&nbsp;Use this field to add modifier names. Use a space to separate names, the following are supported by default:</span>
683
  <br><br>
684
  <table class="colours unselectable">
 
 
 
 
685
  <tr>
686
  <td><code>nostop</code></td>
687
  <td>Hides the stop button</td>
55
  $player_theme = $O['player_theme'];
56
  if ( isset( $css_urls[ $player_theme ]['url'] ) ) {
57
  $js_current_css = "\nvar MP3J_THEME_PATH = '" . $css_urls[ $player_theme ]['url'] . "';";
58
+ //$js_current_css .= "\nvar MP3J_THEME_NAME = '" . $css_urls[ $player_theme ]['opValue'] . "';";
59
  }
60
  else { //fall back to default
61
  $js_current_css = "\nvar MP3J_THEME_PATH = '" . $css_urls['defaultLight']['url'] . "';";
62
+ //$js_current_css .= "\nvar MP3J_THEME_NAME = '" . $css_urls['defaultLight']['opValue'] . "';";
63
  }
64
 
65
 
229
  <ul id="ul-mjp" class="ul-mjp<?php echo $ulClass . $liClass . $listWeight. $listItalic . $listAlign; ?>">
230
  <li class="li-mjp"><a id="playerT2" class="a-mjp" href="#">Example List Item</a></li>
231
  <li class="li-mjp"><a id="playerT3" class="a-mjp" style="background:<?php echo $C['listBGa_hover']; ?>; color:<?php echo $C['list_hover_colour']; ?>;" href="#">Example List item (hover)</a></li>
232
+ <li class="li-mjp mjp-li-last"><a id="playerT4" class="a-mjp mp3j_A_current" style="background:<?php echo $C['listBGa_current']; ?>; color:<?php echo $C['list_current_colour']; ?>;" href="#">Example List Item (Current)</a></li>
233
  </ul>
234
  </div>
235
  </div>
684
  <br><br><span class="description">&nbsp;Use this field to add modifier names. Use a space to separate names, the following are supported by default:</span>
685
  <br><br>
686
  <table class="colours unselectable">
687
+ <tr>
688
+ <td><code>flip</code></td>
689
+ <td>Puts play buttons on the left</td>
690
+ </tr>
691
  <tr>
692
  <td><code>nostop</code></td>
693
  <td>Hides the stop button</td>
admin-settings.php CHANGED
@@ -76,6 +76,20 @@ function mp3j_print_admin_page()
76
  $O['showErrors'] = $MP3JP->prep_value( $_POST['showErrors'] );
77
  }
78
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
79
  $O['echo_debug'] = ( isset($_POST['mp3foxEchoDebug']) ) ? "true" : "false";
80
  $O['add_track_numbering'] = ( isset($_POST['mp3foxAddTrackNumbers']) ) ? "true" : "false";
81
  $O['enable_popout'] = ( isset($_POST['mp3foxEnablePopout']) ) ? "true" : "false";
@@ -103,7 +117,11 @@ function mp3j_print_admin_page()
103
  $O['flipMP3j'] = ( isset($_POST['flipMP3j']) ) ? "false" : "true";
104
  $O['flipMP3t'] = ( isset($_POST['flipMP3t']) ) ? "true" : "false";
105
 
106
- $O['libUseID3'] = ( isset($_POST['libUseID3']) ) ? "true" : "false";
 
 
 
 
107
 
108
  $O['paddings_top'] = ( $_POST['mp3foxPaddings_top'] == "" ) ? "0px" : $MP3JP->prep_value( $_POST['mp3foxPaddings_top'] );
109
  $O['paddings_bottom'] = ( $_POST['mp3foxPaddings_bottom'] == "" ) ? "0px" : $MP3JP->prep_value( $_POST['mp3foxPaddings_bottom'] );
@@ -205,53 +223,61 @@ function mp3j_print_admin_page()
205
 
206
  <br><br>
207
  <div style="float:left; width:260px; margin-right:10px;">
208
-
209
- <div style="background:#e9e9e9; border-bottom:1px solid #fff; padding:4px 0 4px 10px; margin:0 0 5px 0;">Single-File Text Players</div>
210
- <table style="margin:0 0 0px 10px;">
211
  <tr>
212
  <td><strong>Font Size</strong>:</td>
213
  <td><input type="text" value="<?php echo $O['font_size_mp3t']; ?>" name="font_size_mp3t" style="width:70px;" /></td>
214
  </tr>
215
  <tr>
216
- <td><label for="volslider_onsingles"><strong>Volume Control</strong>: &nbsp;</label></td>
217
  <td><input type="checkbox" name="volslider_onsingles" id="volslider_onsingles" value="true" <?php if ($O['volslider_on_singles'] == "true") { _e('checked="checked"', $MP3JP->textdomain ); }?> /></td>
218
  </tr>
219
  <tr>
220
  <td><label for="flipMP3t"><strong>Play on RHS</strong>: &nbsp;</label></td>
221
  <td><input type="checkbox" name="flipMP3t" id="flipMP3t" value="true" <?php if ($O['flipMP3t'] == "true") { _e('checked="checked"', $MP3JP->textdomain ); }?> /></td>
222
  </tr>
 
 
 
 
 
223
  <?php
224
  MJPsettings_mp3t();
225
  ?>
226
- </table>
227
-
228
  </div>
229
 
230
  <div style="float:left; width:260px;">
231
- <div style="background:#e9e9e9; border-bottom:1px solid #fff; padding:4px 0 4px 10px; margin:0 0 5px 0;">Single-File Button Players</div>
232
- <table style="margin:0 0 0px 10px;">
233
  <tr>
234
  <td><strong>Font Size</strong>:</td>
235
  <td><input type="text" value="<?php echo $O['font_size_mp3j']; ?>" name="font_size_mp3j" style="width:70px;" /></td>
236
  </tr>
237
  <tr>
238
- <td><label for="volslider_onmp3j"><strong>Volume Control</strong>: &nbsp;</label></td>
239
  <td><input type="checkbox" name="volslider_onmp3j" id="volslider_onmp3j" value="true" <?php if ($O['volslider_on_mp3j'] == "true") { _e('checked="checked"', $MP3JP->textdomain ); }?> /></td>
240
  </tr>
241
  <tr>
242
  <td><label for="flipMP3j"><strong>Play on RHS</strong>: &nbsp;</label></td>
243
  <td><input type="checkbox" name="flipMP3j" id="flipMP3j" value="false" <?php if ($O['flipMP3j'] == "false") { _e('checked="checked"', $MP3JP->textdomain ); }?> /></td>
244
  </tr>
 
 
 
 
 
 
245
  <?php
246
  MJPsettings_mp3j();
247
  ?>
248
  </table>
249
-
250
  </div>
251
 
252
- <br class="clearB"><br><br>
253
- <div style="background:#e9e9e9; border-bottom:1px solid #fff; padding:4px 0 4px 10px; margin:0 0 5px 0; width:520px;">Playlist Players</div>
254
- <table style="margin:0 0 0px 10px;">
255
  <tr>
256
  <td><strong>Width:</strong></td>
257
  <td><input type="text" style="width:100px;" name="mp3foxPlayerWidth" value="<?php echo $O['player_width']; ?>" /></td>
@@ -286,6 +312,11 @@ function mp3j_print_admin_page()
286
  </table>
287
  <br>
288
 
 
 
 
 
 
289
  <p style="margin:0 0 6px 15px;"><input type="checkbox" name="mp3foxEnablePopout" id="mp3foxEnablePopout" value="true" <?php if ($O['enable_popout'] == "true") { _e('checked="checked"', $MP3JP->textdomain ); }?> />
290
  <label for="mp3foxEnablePopout"> &nbsp; Show popout player button</label></p>
291
 
@@ -309,13 +340,26 @@ function mp3j_print_admin_page()
309
  <div class="mp3j-tab" id="mp3j_tab_1">
310
 
311
  <?php
 
 
 
 
 
312
  ////
313
  //Library
314
  $library = $MP3JP->grab_library_info();
 
 
 
 
 
 
 
315
  $libCount = ( $library ) ? $library['count'] : "0";
316
  $libText = '';
317
  $libButton = '';
318
  $liblist = '';
 
319
 
320
  $libText .= '<span class="tabD" style="margin:0 0 10px 0;">Library contains <strong>' . $libCount . '</strong> audio file' . ( $libCount != 1 ? 's' : '' ) . '</span>. &nbsp;<strong><a href="media-new.php">Upload new &raquo;</a></strong>';
321
 
@@ -323,27 +367,55 @@ function mp3j_print_admin_page()
323
  {
324
  $libButton .= '<a class="button-secondary" href="javascript:" onclick="jQuery(\'#library-list\').toggle();" id="library-open">View files</a>';
325
  $n = 1;
 
326
 
327
  $liblist .= '<div id="library-list" style="display:none;"><table class="fileList">';
 
 
328
  $liblist .= '<tr>';
329
- $liblist .= '<th>&nbsp;</th>';
330
- $liblist .= '<th>&nbsp;</th>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
331
  $liblist .= '<th>Filename</th>';
332
- $liblist .= '<th>&nbsp;&nbsp;Title</th>';
333
- $liblist .= '<th>&nbsp;&nbsp;Caption&nbsp;&nbsp;&nbsp;&nbsp;</th>';
334
- $liblist .= '<th>Uploaded&nbsp;&nbsp;&nbsp;&nbsp;</th>';
335
  $liblist .= '</tr>';
336
  foreach ( $library['filenames'] as $i => $file )
337
  {
 
 
 
338
  $niceDate = date( 'jS F Y', strtotime($library['postDates'][$i]) );
339
- $liblist .= '<tr>';
340
- $liblist .= '<td>&nbsp;&nbsp;&nbsp;&nbsp;<a href="post.php?post=' . $library['postIDs'][$i] . '&amp;action=edit" target="_blank">Edit</a>&nbsp;&nbsp;</td>';
341
- $liblist .= '<td><span style="color:#aaa;font-size:11px;">' . $n . '&nbsp;</span></td>';
342
- $liblist .= '<td>' . $file . '</td>';
343
- $liblist .= '<td><span style="color:#aaa;">&nbsp;&nbsp;' . $library['titles'][$i] . '</span>&nbsp;&nbsp;&nbsp;&nbsp;</td>';
344
- $liblist .= '<td><span style="color:#aaa;">&nbsp;&nbsp;' . $library['excerpts'][$i] . '</span>&nbsp;&nbsp;&nbsp;&nbsp;</td>';
345
- $liblist .= '<td><span style="color:#aaa; font-size:11px;">' . $niceDate . '</span>&nbsp;&nbsp;&nbsp;&nbsp;</td>';
 
 
 
 
 
346
  $liblist .= '</tr>';
 
347
  $n++;
348
  }
349
  $liblist .= '</table></div>';
@@ -420,13 +492,31 @@ function mp3j_print_admin_page()
420
  <?php
421
  if ( $version >= 3.6 ) {
422
  ?>
 
423
  <table>
424
  <tr>
425
- <td style="width:100px;">&nbsp;</td>
426
- <td colspan="2"><p style="margin-bottom:10px;"><input type="checkbox" name="libUseID3" id="libUseID3" value="true" <?php echo ( $O['libUseID3'] === "true" ? 'checked="checked"' : ''); ?>/><label for="libUseID3">
427
- Use ID3 tags</label>
428
- <br><span class="description">The title and artist tags are used from the media's meta data.</span></p>
429
- </td>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
430
  </tr>
431
  </table>
432
  <?php
76
  $O['showErrors'] = $MP3JP->prep_value( $_POST['showErrors'] );
77
  }
78
 
79
+
80
+ $O['playerTitle1'] = ( isset( $_POST['playerTitle1'] ) ) ? $MP3JP->prep_value( $_POST['playerTitle1'] ) : '';
81
+ $O['playerTitle2'] = ( isset( $_POST['playerTitle2'] ) ) ? $MP3JP->prep_value( $_POST['playerTitle2'] ) : '';
82
+
83
+
84
+ $O['mp3tColour_on'] = ( isset($_POST['mp3tColour_on']) ) ? "true" : "false";
85
+ if (isset($_POST['mp3tColour'])) {
86
+ $O['mp3tColour'] = $MP3JP->prep_value( $_POST['mp3tColour'] );
87
+ }
88
+ $O['mp3jColour_on'] = ( isset($_POST['mp3jColour_on']) ) ? "true" : "false";
89
+ if (isset($_POST['mp3jColour'])) {
90
+ $O['mp3jColour'] = $MP3JP->prep_value( $_POST['mp3jColour'] );
91
+ }
92
+
93
  $O['echo_debug'] = ( isset($_POST['mp3foxEchoDebug']) ) ? "true" : "false";
94
  $O['add_track_numbering'] = ( isset($_POST['mp3foxAddTrackNumbers']) ) ? "true" : "false";
95
  $O['enable_popout'] = ( isset($_POST['mp3foxEnablePopout']) ) ? "true" : "false";
117
  $O['flipMP3j'] = ( isset($_POST['flipMP3j']) ) ? "false" : "true";
118
  $O['flipMP3t'] = ( isset($_POST['flipMP3t']) ) ? "true" : "false";
119
 
120
+ $O['hasListMeta'] = ( isset($_POST['hasListMeta']) ) ? "true" : "false";
121
+
122
+
123
+
124
+ //$O['libUseID3'] = ( isset($_POST['libUseID3']) ) ? "true" : "false";
125
 
126
  $O['paddings_top'] = ( $_POST['mp3foxPaddings_top'] == "" ) ? "0px" : $MP3JP->prep_value( $_POST['mp3foxPaddings_top'] );
127
  $O['paddings_bottom'] = ( $_POST['mp3foxPaddings_bottom'] == "" ) ? "0px" : $MP3JP->prep_value( $_POST['mp3foxPaddings_bottom'] );
223
 
224
  <br><br>
225
  <div style="float:left; width:260px; margin-right:10px;">
226
+ <div style="background:#e9e9e9; border-bottom:1px solid #fff; padding:8px 0 8px 10px; margin:0 0 5px 0; font-size:14px; font-weight:600;">Single-File Text Players</div>
227
+ <table class="player-settings" style="margin:0 0 0px 10px; width:250px">
 
228
  <tr>
229
  <td><strong>Font Size</strong>:</td>
230
  <td><input type="text" value="<?php echo $O['font_size_mp3t']; ?>" name="font_size_mp3t" style="width:70px;" /></td>
231
  </tr>
232
  <tr>
233
+ <td style="height:32px;"><label for="volslider_onsingles"><strong>Volume Control</strong>: &nbsp;</label></td>
234
  <td><input type="checkbox" name="volslider_onsingles" id="volslider_onsingles" value="true" <?php if ($O['volslider_on_singles'] == "true") { _e('checked="checked"', $MP3JP->textdomain ); }?> /></td>
235
  </tr>
236
  <tr>
237
  <td><label for="flipMP3t"><strong>Play on RHS</strong>: &nbsp;</label></td>
238
  <td><input type="checkbox" name="flipMP3t" id="flipMP3t" value="true" <?php if ($O['flipMP3t'] == "true") { _e('checked="checked"', $MP3JP->textdomain ); }?> /></td>
239
  </tr>
240
+ <tr>
241
+ <td><strong>Colour Scheme</strong>:</td>
242
+ <td><input type="checkbox" name="mp3tColour_on" id="mp3tColour_on" value="true" <?php if ($O['mp3tColour_on'] == "true") { _e('checked="checked"', $MP3JP->textdomain ); }?> />
243
+ On &nbsp;<input type="text" value="<?php echo $O['mp3tColour']; ?>" name="mp3tColour" id="mp3tColour" /></td>
244
+ </tr>
245
  <?php
246
  MJPsettings_mp3t();
247
  ?>
248
+ </table>
 
249
  </div>
250
 
251
  <div style="float:left; width:260px;">
252
+ <div style="background:#e9e9e9; border-bottom:1px solid #fff; padding:8px 0 8px 10px; margin:0 0 5px 0; font-size:14px; font-weight:600;">Single-File Button Players</div>
253
+ <table class="player-settings" style="margin:0 0 0px 10px; width:250px">
254
  <tr>
255
  <td><strong>Font Size</strong>:</td>
256
  <td><input type="text" value="<?php echo $O['font_size_mp3j']; ?>" name="font_size_mp3j" style="width:70px;" /></td>
257
  </tr>
258
  <tr>
259
+ <td style="height:32px;"><label for="volslider_onmp3j"><strong>Volume Control</strong>: &nbsp;</label></td>
260
  <td><input type="checkbox" name="volslider_onmp3j" id="volslider_onmp3j" value="true" <?php if ($O['volslider_on_mp3j'] == "true") { _e('checked="checked"', $MP3JP->textdomain ); }?> /></td>
261
  </tr>
262
  <tr>
263
  <td><label for="flipMP3j"><strong>Play on RHS</strong>: &nbsp;</label></td>
264
  <td><input type="checkbox" name="flipMP3j" id="flipMP3j" value="false" <?php if ($O['flipMP3j'] == "false") { _e('checked="checked"', $MP3JP->textdomain ); }?> /></td>
265
  </tr>
266
+ <tr>
267
+ <td><strong>Colour Scheme</strong>:</td>
268
+ <td><input type="checkbox" name="mp3jColour_on" id="mp3jColour_on" value="true" <?php if ($O['mp3jColour_on'] == "true") { _e('checked="checked"', $MP3JP->textdomain ); }?> />
269
+ On &nbsp;<input type="text" value="<?php echo $O['mp3jColour']; ?>" name="mp3jColour" id="mp3jColour" />
270
+ </td>
271
+ </tr>
272
  <?php
273
  MJPsettings_mp3j();
274
  ?>
275
  </table>
 
276
  </div>
277
 
278
+ <br class="clearB"><br>
279
+ <div style="background:#e9e9e9; border-bottom:1px solid #fff; padding:8px 0 8px 10px; margin:0 0 5px 0; width:520px; font-size:14px; font-weight:600;">Playlist Players</div>
280
+ <table class="player-settings" style="margin:0 0 0px 10px;">
281
  <tr>
282
  <td><strong>Width:</strong></td>
283
  <td><input type="text" style="width:100px;" name="mp3foxPlayerWidth" value="<?php echo $O['player_width']; ?>" /></td>
312
  </table>
313
  <br>
314
 
315
+
316
+ <p style="margin:0 0 6px 15px;"><input type="checkbox" value="true" name="hasListMeta" id="hasListMeta" <?php echo ( $O['hasListMeta'] === "true" ? 'checked="checked"' : ''); ?>/>
317
+ <label for="hasListMeta"> &nbsp; Show sub title in playlists</label></p>
318
+
319
+
320
  <p style="margin:0 0 6px 15px;"><input type="checkbox" name="mp3foxEnablePopout" id="mp3foxEnablePopout" value="true" <?php if ($O['enable_popout'] == "true") { _e('checked="checked"', $MP3JP->textdomain ); }?> />
321
  <label for="mp3foxEnablePopout"> &nbsp; Show popout player button</label></p>
322
 
340
  <div class="mp3j-tab" id="mp3j_tab_1">
341
 
342
  <?php
343
+
344
+
345
+
346
+
347
+
348
  ////
349
  //Library
350
  $library = $MP3JP->grab_library_info();
351
+
352
+
353
+
354
+
355
+
356
+
357
+
358
  $libCount = ( $library ) ? $library['count'] : "0";
359
  $libText = '';
360
  $libButton = '';
361
  $liblist = '';
362
+ $blank = '<span class="blank">-</span>';
363
 
364
  $libText .= '<span class="tabD" style="margin:0 0 10px 0;">Library contains <strong>' . $libCount . '</strong> audio file' . ( $libCount != 1 ? 's' : '' ) . '</span>. &nbsp;<strong><a href="media-new.php">Upload new &raquo;</a></strong>';
365
 
367
  {
368
  $libButton .= '<a class="button-secondary" href="javascript:" onclick="jQuery(\'#library-list\').toggle();" id="library-open">View files</a>';
369
  $n = 1;
370
+ $rowClass = 'even';
371
 
372
  $liblist .= '<div id="library-list" style="display:none;"><table class="fileList">';
373
+
374
+ /*
375
  $liblist .= '<tr>';
376
+ $liblist .= '<tr><input type="ckeckbox" name="" id="" value="true"></tr>';
377
+ $liblist .= '<tr></tr>';
378
+ $liblist .= '<tr></tr>';
379
+ $liblist .= '<tr></tr>';
380
+
381
+ $liblist .= '<tr></tr>';
382
+ $liblist .= '<tr></tr>';
383
+ $liblist .= '<tr></tr>';
384
+ $liblist .= '<tr></tr>';
385
+ $liblist .= '</tr>';
386
+ */
387
+
388
+ $liblist .= '<tr>';
389
+ $liblist .= '<th></th>';
390
+ $liblist .= '<th></th>';
391
+ $liblist .= '<th>Title</th>';
392
+ $liblist .= '<th>Artist</th>';
393
+
394
+ $liblist .= '<th>Album</th>';
395
+ $liblist .= '<th>Caption</th>';
396
+ $liblist .= '<th>Uploaded</th>';
397
  $liblist .= '<th>Filename</th>';
 
 
 
398
  $liblist .= '</tr>';
399
  foreach ( $library['filenames'] as $i => $file )
400
  {
401
+ $id3data = wp_get_attachment_metadata( $library['postIDs'][ $i ], true );
402
+ $id3data['artist'] = ( empty( $id3data['artist'] ) ) ? $blank : $id3data['artist'];
403
+ $id3data['album'] = ( empty( $id3data['album'] ) ) ? $blank : $id3data['album'];
404
  $niceDate = date( 'jS F Y', strtotime($library['postDates'][$i]) );
405
+ $rowClass = ( $rowClass === 'even' ) ? 'odd' : 'even';
406
+
407
+ $liblist .= '<tr class="' . $rowClass . '">';
408
+ $liblist .= '<td class="files-edit"><a href="post.php?post=' . $library['postIDs'][$i] . '&amp;action=edit" target="_blank">Edit</a></td>';
409
+ $liblist .= '<td class="files-number">' . $n . '</td>';
410
+ $liblist .= '<td class="files-title">' . $library['titles'][$i] . '</td>';
411
+ $liblist .= '<td class="files-artist">' . $id3data['artist'] . '</td>';
412
+
413
+ $liblist .= '<td class="files-album">' . $id3data['album'] . '</td>';
414
+ $liblist .= '<td class="files-caption">' . $library['excerpts'][$i] . '</td>';
415
+ $liblist .= '<td class="files-date">' . $niceDate . '</td>';
416
+ $liblist .= '<td class="files-url">' . $file . '</td>';
417
  $liblist .= '</tr>';
418
+
419
  $n++;
420
  }
421
  $liblist .= '</table></div>';
492
  <?php
493
  if ( $version >= 3.6 ) {
494
  ?>
495
+
496
  <table>
497
  <tr>
498
+ <td colspan="2"></td>
499
+ </tr>
500
+ <tr>
501
+ <td style="width:100px;"><label>Player Titles</label></td>
502
+ <td style="width:350px;">Show &nbsp;<select name="playerTitle1" id="playerTitle1">
503
+ <option value="titles"<?php if ( 'titles' == $O['playerTitle1'] ) { echo ' selected="selected"'; } ?>>Title</option>
504
+ <option value="artist"<?php if ( 'artist' == $O['playerTitle1'] ) { echo ' selected="selected"'; } ?>>Artist</option>
505
+ <option value="album"<?php if ( 'album' == $O['playerTitle1'] ) { echo ' selected="selected"'; } ?>>Album</option>
506
+ <option value="excerpts"<?php if ( 'excerpts' == $O['playerTitle1'] ) { echo ' selected="selected"'; } ?>>Caption</option>
507
+ <option value="postDates"<?php if ( 'postDates' == $O['playerTitle1'] ) { echo ' selected="selected"'; } ?>>Upload Date</option>
508
+ </select>&nbsp; for player main title.</td>
509
+ </tr>
510
+ <tr>
511
+ <td></td>
512
+ <td>Show &nbsp;<select name="playerTitle2" id="playerTitle2">
513
+ <option value=""<?php if ( '' == $O['playerTitle2'] ) { echo ' selected="selected"'; } ?>>- None -</option>
514
+ <option value="titles"<?php if ( 'titles' == $O['playerTitle2'] ) { echo ' selected="selected"'; } ?>>Title</option>
515
+ <option value="artist"<?php if ( 'artist' == $O['playerTitle2'] ) { echo ' selected="selected"'; } ?>>Artist</option>
516
+ <option value="album"<?php if ( 'album' == $O['playerTitle2'] ) { echo ' selected="selected"'; } ?>>Album</option>
517
+ <option value="excerpts"<?php if ( 'excerpts' == $O['playerTitle2'] ) { echo ' selected="selected"'; } ?>>Caption</option>
518
+ <option value="postDates"<?php if ( 'postDates' == $O['playerTitle2'] ) { echo ' selected="selected"'; } ?>>Upload Date</option>
519
+ </select>&nbsp; for player sub title.</td>
520
  </tr>
521
  </table>
522
  <?php
css/admin/admin-settings.css CHANGED
@@ -4,77 +4,84 @@
4
  /* --- Tabs --- */
5
  .mp3j-tabbuttons-wrap {
6
  position:relative;
7
- border:0;
8
  min-height:30px;
9
  padding:5px 0 0 0;
10
  width:auto;
11
  overflow:visible;
12
  }
13
- .mp3j-tabbutton {
14
- float:left;
15
- padding:6px 24px 6px 22px;
16
- font-size:13px;
17
- margin:0;
18
- background:#e6e6e6;
19
- font-weight:500;
20
- -webkit-border-top-left-radius: 1px;
21
- -webkit-border-top-right-radius: 1px;
22
- -moz-border-radius-topleft: 1px;
23
- -moz-border-radius-topright: 1px;
24
- border-top-left-radius: 1px;
25
- border-top-right-radius: 1px;
26
- border-bottom:1px solid #fcfcfc;
27
- cursor:pointer;
28
- color:#888;
29
- -moz-user-select: -moz-none;
30
- -khtml-user-select: none;
31
- -webkit-user-select: none;
32
- -ms-user-select: none;
33
- user-select: none;
34
- }
35
- .mp3j-tabbutton:hover {
36
- background:#e6e6e6;
37
- text-decoration:underline;
38
- }
39
- .active-tab {
40
- border:1px solid #c8c8c8;
41
- border-bottom:0px;
42
- padding:6px 23px 6px 21px;
43
- color:#333;
44
- font-weight:700;
45
- background:none;
46
- margin-top:-1px;
47
- text-decoration:none;
48
- }
49
- .active-tab:hover {
50
- background:none;
51
- text-decoration:none;
52
- }
53
 
54
  .mp3j-tabs-wrap {
55
  position:relative;
56
  height:auto;
57
  padding:0px 0 0 0;
58
  }
59
- .mp3j-tab {
60
- position:relative;
61
- height:auto;
62
- padding:20px 0px 40px 0px;
63
- background:#f1f1f1;
64
- }
65
- .tab-header { padding:2px 0 6px 0; margin:0; width:100%; }
66
- .tab-header h3 { margin:0 0 0 0 !important; }
67
-
68
- .tabH { font-size:19px; font-weight:700; }
69
- .tabD { font-style:italic; padding:0 0 10px 0; }
70
 
71
- .mp3j-tab label { font-weight:700; }
 
72
 
73
- .mp3j-tab .description { color:#888; }
74
-
75
- .mp3j-tab hr { margin-bottom:8px; }
76
-
 
77
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78
  .unselectable * {
79
  -moz-user-select: -moz-none;
80
  -khtml-user-select: none;
@@ -84,113 +91,79 @@
84
  }
85
 
86
 
87
- table.vTop td { vertical-align:top; padding:0 10px 10px 0; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
88
 
89
- table.fileList { border-collapse:collapse; margin:0 0 0 0; }
90
- table.fileList tr { padding:0; }
91
- table.fileList td { text-align:left; vertical-align:top; padding:0 10px 0 0; }
92
- table.fileList td * { padding:0; margin:0; }
93
- table.fileList th { text-align:left; padding:0 0 15px 0; }
 
 
 
94
 
95
- .vTop { vertical-align:top; padding:0 10px 10px 0; }
96
 
97
 
98
- div#library-list,
99
- div#folder-list {
100
- position:relative;
101
- padding:10px 20px 15px 20px;
102
- margin:5px 0px 0px 0px;
103
- background:#f9f9f9;
104
- border:1px solid #eee;
105
- }
106
 
107
 
108
- .absTL { position:absolute; top:-1px; left:-1px; width:100%; }
 
 
109
 
110
 
111
 
112
- /* --- --- */
113
- .display_player_wrap {
114
- position:relative;
115
- min-width: 40px;
116
- width: 646px;
117
- border:1px solid #999;
118
- -webkit-box-shadow: 0px 3px 8px 0px rgba(50, 50, 50, 0.33);
119
- -moz-box-shadow: 0px 3px 8px 0px rgba(50, 50, 50, 0.33);
120
- box-shadow: 0px 3px 8px 0px rgba(50, 50, 50, 0.33);
121
- overflow:hidden;
122
- height:320px;
123
- }
124
- #display_player_liner {
125
- padding:40px 40px 50px 40px;
126
- width:auto;
127
- height:100%;
128
- background:url('images/admin-colours-bg.png') repeat;
129
- }
130
-
131
- .ui-resizable {
132
- position: relative;
133
- }
134
- .ui-resizable-handle {
135
- position: absolute;
136
- font-size: 0.1px;
137
- display: block;
138
- }
139
- .ui-resizable-disabled .ui-resizable-handle,
140
- .ui-resizable-autohide .ui-resizable-handle {
141
- display: none;
142
- }
143
- .ui-resizable-s {
144
- cursor: s-resize;
145
- height: 20px;
146
- width: 100%;
147
- bottom: -10px;
148
- left: 0;
149
- background:none;
150
- }
151
- .ui-resizable-e {
152
- cursor: e-resize;
153
- width: 20px;
154
- right: -10px;
155
- top: 0;
156
- height: 100%;
157
- background:none;
158
- }
159
- .ui-resizable-se {
160
- cursor: se-resize;
161
- width: 40px;
162
- height: 40px;
163
- right: 1px;
164
- bottom: 1px;
165
- background:url('images/resizable-handle.png') no-repeat right bottom;
166
- }
167
 
168
 
169
- .quietInput {
170
- background:#fcfcfc !important;
171
- border-color:#f0f0f0 !important;
172
- -webkit-box-shadow:none !important;
173
- -moz-box-shadow:none !important;
174
- box-shadow:none !important;
175
- color:#d6d6d6 !important;
176
- }
177
- .quietText { color:#d6d6d6 !important; }
178
-
179
-
180
-
181
 
182
 
183
  .tick { padding-right:25px; font-size:11px; background:url('images/tick2.png') no-repeat left 2px; }
184
 
185
 
186
- .icon-showlove {
187
  background:url('images/icons-admin-S.png') no-repeat -29px -4px;
188
  width:34px; height:34px; margin:0 auto;
189
  border:1px solid #d0d0d0;
190
  overflow:hidden;
191
  }
192
 
193
- .icon-showlove:hover {
194
  width:280px; height:120px;
195
  }
196
 
@@ -252,50 +225,220 @@ div.wrap {
252
  margin:0px 10px 0 20px;
253
  max-width:1200px;
254
  }
255
- div.wrap p { margin:0 0 4px 0; }
256
- div.wrap h1 { font-weight:500; font-size: 22px; line-height:22px; margin:20px 0 5px 0; padding:0; }
257
- div.wrap h2 { font-size: 10px; line-height:10px; margin:0; padding:0; }
258
- div.wrap h3 { margin:0 0 8px 20px; }
259
- div.wrap h4 { margin:20px 0 0px 0; }
260
 
261
- div.wrap p.jtick {
262
- margin:0 0 2px 24px;
263
- }
264
- div.wrap p.jtick2 {
265
- margin:0 0 2px 35px;
266
- }
267
- div.wrap p.jtext {
268
- margin:0 0 10px 20px;
269
- }
270
 
271
- .joptionswrap {
272
- border-top:0px solid #eee;
273
- margin:30px 0 40px 0px;
274
- }
275
- .joptionswrap h4 {
276
- margin:6px 0 3px 0;
277
- width:250px;
278
- }
279
- .jopbox {
280
- border:1px solid #f0f0f0;
281
- padding:10px 20px;
282
- margin-bottom:15px;
283
- min-width:550px;
284
- }
285
- a.bl3 {
286
- display:block;
287
- width:200px;
288
- padding:0 0 0 20px;
289
- margin:5px 0 1px 0;
290
- /* background:#f0f0f0;
291
- border:1px solid #d0d0d0;
292
- color:#696969; */
293
- }
294
- a.bl3:hover { /* background:#e9e9e9; border:1px solid #c9c9c9; color:#606060; */ }
295
 
296
  .clearB { clear:both; }
297
- .Ahelp1 { float:left; width:300px; border-top:0px solid #ccc; }
298
 
299
- #tog_0-list p { margin:10px 0 10px 0; }
300
- #tog_0-list h4 { margin:10px 0 10px 0; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
301
 
4
  /* --- Tabs --- */
5
  .mp3j-tabbuttons-wrap {
6
  position:relative;
 
7
  min-height:30px;
8
  padding:5px 0 0 0;
9
  width:auto;
10
  overflow:visible;
11
  }
12
+ .mp3j-tabbutton {
13
+ float:left;
14
+ padding:6px 24px 6px 22px;
15
+ font-size:13px;
16
+ margin:0;
17
+ background:#e6e6e6;
18
+ font-weight:500;
19
+ -webkit-border-top-left-radius: 1px;
20
+ -webkit-border-top-right-radius: 1px;
21
+ -moz-border-radius-topleft: 1px;
22
+ -moz-border-radius-topright: 1px;
23
+ border-top-left-radius: 1px;
24
+ border-top-right-radius: 1px;
25
+ border-bottom:1px solid #fcfcfc;
26
+ cursor:pointer;
27
+ color:#888;
28
+ }
29
+ .mp3j-tabbutton:hover {
30
+ background:#e6e6e6;
31
+ text-decoration:underline;
32
+ }
33
+ .active-tab {
34
+ border:1px solid #fff;
35
+ border-bottom:0px;
36
+ padding:6px 23px 6px 21px;
37
+ color:#333;
38
+ font-weight:700;
39
+ background:none;
40
+ margin-top:-1px;
41
+ text-decoration:none;
42
+ }
43
+ .active-tab:hover {
44
+ background:none;
45
+ text-decoration:none;
46
+ }
 
 
 
 
 
47
 
48
  .mp3j-tabs-wrap {
49
  position:relative;
50
  height:auto;
51
  padding:0px 0 0 0;
52
  }
53
+ .mp3j-tab {
54
+ position:relative;
55
+ height:auto;
56
+ padding:20px 0px 40px 0px;
57
+ background:#f1f1f1;
58
+ }
59
+ .tab-header { padding:2px 0 6px 0; margin:0; width:100%; }
60
+ .tab-header h3 { margin:0 0 0 0 !important; }
 
 
 
61
 
62
+ .tabH { font-size:19px; font-weight:700; }
63
+ .tabD { font-style:italic; padding:0 0 10px 0; }
64
 
65
+ .mp3j-tab label { font-weight:700; }
66
+
67
+ .mp3j-tab .description { color:#888; }
68
+
69
+ .mp3j-tab hr { margin-bottom:8px; }
70
 
71
+
72
+ /* --- */
73
+ div#library-list,
74
+ div#folder-list {
75
+ position:relative;
76
+ padding:10px 20px 15px 20px;
77
+ margin:5px 0px 0px 0px;
78
+ background:#f9f9f9;
79
+ border:1px solid #eee;
80
+ }
81
+
82
+
83
+ /* --- */
84
+ .unselectable,
85
  .unselectable * {
86
  -moz-user-select: -moz-none;
87
  -khtml-user-select: none;
91
  }
92
 
93
 
94
+ /* --- */
95
+ table.fileList {
96
+ border-collapse:collapse;
97
+ margin:0 0 0 0;
98
+ width: 100%;
99
+ }
100
+ table.fileList td {
101
+ text-align:left;
102
+ vertical-align:top;
103
+ padding:5px 15px 5px 5px;
104
+ }
105
+ table.fileList td * {
106
+ padding:0;
107
+ margin:0;
108
+ }
109
+ table.fileList th {
110
+ text-align:left;
111
+ padding:0 5px;
112
+ }
113
+ table.fileList tr.odd {
114
+ background-color: transparent;
115
+ }
116
+ table.fileList tr.even {
117
+ background-color: #f1f1f1;
118
+ }
119
 
120
+ td.files-edit { padding-right:5px; }
121
+ td.files-number { padding-right:5px; }
122
+ td.files-title {}
123
+ td.files-artist { font-size: 12px; color: #999; }
124
+ td.files-album { font-size: 12px; color: #999; }
125
+ td.files-caption { font-size: 12px; color: #999; }
126
+ td.files-date { font-size: 12px;}
127
+ td.files-url { font-size: 12px; color: #999; }
128
 
 
129
 
130
 
 
 
 
 
 
 
 
 
131
 
132
 
133
+ /* --- */
134
+ table.vTop td { vertical-align:top; padding:0 10px 10px 0; }
135
+ .vTop { vertical-align:top; padding:0 10px 10px 0; }
136
 
137
 
138
 
139
+ .absTL { position:absolute; top:-1px; left:-1px; width:100%; }
140
+
141
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
142
 
143
 
144
+ .quietInput {
145
+ background:#fcfcfc !important;
146
+ border-color:#f0f0f0 !important;
147
+ -webkit-box-shadow:none !important;
148
+ -moz-box-shadow:none !important;
149
+ box-shadow:none !important;
150
+ color:#d6d6d6 !important;
151
+ }
152
+ .quietText { color:#d6d6d6 !important; }
153
+
 
 
154
 
155
 
156
  .tick { padding-right:25px; font-size:11px; background:url('images/tick2.png') no-repeat left 2px; }
157
 
158
 
159
+ .icon-showsupport {
160
  background:url('images/icons-admin-S.png') no-repeat -29px -4px;
161
  width:34px; height:34px; margin:0 auto;
162
  border:1px solid #d0d0d0;
163
  overflow:hidden;
164
  }
165
 
166
+ .icon-showsupport:hover {
167
  width:280px; height:120px;
168
  }
169
 
225
  margin:0px 10px 0 20px;
226
  max-width:1200px;
227
  }
228
+ div.wrap p { margin:0 0 4px 0; }
229
+ div.wrap h1 { font-weight:500; font-size: 22px; line-height:22px; margin:20px 0 5px 0; padding:0; }
230
+ div.wrap h2 { font-size: 10px; line-height:10px; margin:0; padding:0; }
231
+ div.wrap h3 { margin:0 0 8px 20px; }
232
+ div.wrap h4 { margin:20px 0 0px 0; }
233
 
 
 
 
 
 
 
 
 
 
234
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
235
 
236
  .clearB { clear:both; }
 
237
 
238
+
239
+
240
+ div.sp-container {
241
+ background: #fafafa;
242
+ padding:10px 5px 0 10px;
243
+ -webkit-box-shadow:0px 1px 4px rgba(0, 0, 0, 0.35); -moz-box-shadow:0px 1px 4px rgba(0, 0, 0, 0.35); box-shadow:0px 1px 4px rgba(0, 0, 0, 0.35);
244
+ }
245
+
246
+ table.player-settings td {
247
+ padding-bottom: 6px;
248
+ }
249
+
250
+
251
+
252
+
253
+
254
+
255
+ /* ############################################################## */
256
+
257
+
258
+
259
+
260
+ .light { color:#999; }
261
+ .smaller { font-size:80%; }
262
+ .alignR { text-align:right; }
263
+
264
+ .clearB { clear:both; }
265
+ .absTL { position:absolute; top:0px; left:0px; }
266
+
267
+ .vTop { vertical-align:top; }
268
+ .vMid { vertical-align:middle; }
269
+
270
+ code { background:#fff; border:1px solid #e0e0e0; }
271
+
272
+
273
+ .arrowUp {
274
+ background: url('images/arrowUp.png') no-repeat 0px 8px;
275
+ padding:0 0 0 20px;
276
+ cursor:pointer;
277
+ }
278
+
279
+ .arrowDown {
280
+ background: url('images/arrowDown.png') no-repeat 0px 10px;
281
+ padding:0 0 0 20px;
282
+ cursor:pointer;
283
+ }
284
+
285
+
286
+ div.wrap {
287
+ border: 0px solid #FF3300;
288
+ margin:0px 10px 0 20px;
289
+ max-width:1200px;
290
+ }
291
+ div.wrap p { margin:0 0 4px 0; }
292
+ div.wrap h1 { font-weight:500; font-size: 22px; line-height:22px; margin:20px 0 5px 0; padding:0; }
293
+ div.wrap h2 { font-size: 10px; line-height:10px; margin:0; padding:0; }
294
+ div.wrap h3 { font-size: 18px; margin:0 0 8px 0px; }
295
+ div.wrap h4 { font-size:14px; margin:0; }
296
+
297
+
298
+
299
+ table.plain {
300
+ border-collapse:collapse;
301
+ margin:0;
302
+ padding:0;
303
+ }
304
+ table.plain tr,
305
+ table.plain td,
306
+ table.plain th {
307
+ margin:0;
308
+ padding:0;
309
+ }
310
+
311
+
312
+
313
+ table.overview-summary {
314
+ border-collapse:collapse;
315
+ margin:0 0 12px 0;
316
+ }
317
+ table.overview-summary td {
318
+ vertical-align:top;
319
+ padding:0 0px 5px 0;
320
+ }
321
+
322
+
323
+
324
+
325
+
326
+ .panel-stats {
327
+ position:relative;
328
+ border:1px solid #fff;
329
+ background-color:#f8f8f8;
330
+ padding:20px;
331
+ width:auto;
332
+ min-width:240px;
333
+ -webkit-border-radius: 2px;
334
+ -moz-border-radius: 2px;
335
+ border-radius: 2px;
336
+ margin:0 0 20px 0;
337
+ }
338
+
339
+
340
+ .panel-stats hr { border-bottom:1px solid #fff; margin:10px 0 2px 0; }
341
+
342
+
343
+
344
+ .overview-stats {
345
+ width:400px;
346
+ float:left;
347
+ margin:right:20px;
348
+ }
349
+ .overview-stats-wide {
350
+ width:400px;
351
+ float:left;
352
+ margin:right:20px;
353
+ }
354
+
355
+
356
+
357
+
358
+ .fL { float:left; }
359
+ .fLm { float:left; margin-right:20px; }
360
+ .fR { float:right; }
361
+
362
+
363
+ .smallDesc {
364
+ font-weight:500;
365
+ font-size:80%;
366
+ font-style:italic;
367
+ }
368
+
369
+
370
+ a.noDec, a.noDec:hover, a.noDec:active, a.noDec:visited, a.noDec:link, a.noDec:focus { text-decoration:none; outline:none !important; border:none !important; border-left-color:#f00; }
371
+ a.underline, a.underline:hover, a.underline:active, a.underline:visited, a.underline:link, a.underline:focus { text-decoration:underline; outline:none !important; border:none !important; }
372
+
373
+
374
+
375
+ .summary1 { float:left; margin-right:20px; min-height:240px; width:280px; }
376
+ .summary2 { float:left; margin-right:20px; min-height:240px; width:280px; }
377
+ .summary3 { float:left; margin-right:0px; min-height:240px; width:280px; }
378
+
379
+ .subsectHeading {
380
+ font-size:14px;
381
+ }
382
+
383
+ .niceParag {
384
+ max-width:550px;
385
+ }
386
+
387
+ .labelCol {
388
+ padding:4px 10px 4px 10px !important;
389
+ font-size:15px;
390
+ font-weight:700;
391
+ }
392
+
393
+ .smallspacer { height:6px; }
394
+
395
+
396
+ .paramsTable { border-collapse: collapse; }
397
+ .paramsTable td { padding:10px; border:1px solid #e0e0e0; }
398
+ .paramsTable th { padding:10px; }
399
+
400
+
401
+
402
+
403
+
404
+
405
+
406
+
407
+
408
+
409
+
410
+
411
+
412
+ /* ----- */
413
+ @media screen and (max-width: 1250px) {
414
+ .summary1 { float:none; position:relative; margin-right:0px; min-height:10px; }
415
+ .summary2 { min-height:10px; }
416
+ .summary3 { min-height:10px; }
417
+ }
418
+
419
+ @media screen and (max-width: 720px) {
420
+ table.statsV { width: 400px; }
421
+ table.statsV td { padding:10px 0 10px 0; }
422
+ .columnUrl, .columnSpacer { display:none; }
423
+ table.statsV th { padding:20px 0 20px 0; }
424
+ .summary1 { width: auto; float:none; position:relative; }
425
+ .summary2 { width: auto; float:none; position:relative; margin-right:0px; }
426
+ .summary3 { width: auto; float:none; position:relative; }
427
+ }
428
+
429
+ @media screen and (max-width: 500px) {
430
+ table.statsV { width: 300px; }
431
+ .SVtitle { width:140px; }
432
+ .SVcountp { width:80px; }
433
+ .SVcountd { width:80px; }
434
+ }
435
+
436
+ @media screen and (max-width: 400px) {
437
+ table.statsV { width: 250px; }
438
+ .SVtitle { width:130px; }
439
+ .SVcountp { width:60px; }
440
+ .SVcountd { width:60px; }
441
+ }
442
+
443
+
444
 
css/admin/{spectrum.css → spectrum-custom.css} RENAMED
@@ -527,3 +527,15 @@ See http://bgrins.github.io/spectrum/themes/ for instructions.
527
  top:0px;
528
  }
529
 
 
 
 
 
 
 
 
 
 
 
 
 
527
  top:0px;
528
  }
529
 
530
+
531
+
532
+ .sp-clear-enabled .sp-clear {
533
+ left: 90%;
534
+ height: 20px;
535
+ }
536
+ .sp-clear-enabled .sp-hue {
537
+ top: 26px;
538
+ height: 83%;
539
+ }
540
+
541
+
css/dark.css CHANGED
@@ -28,17 +28,24 @@ div.innertab { left:0px; top:0px; right:0px; bottom:42px; }
28
 
29
  /* PLAYLIST */
30
  .ul-mjp { margin:0px !important; padding:3px 8px 4px 8px !important; list-style-type:none !important; list-style:none !important; list-style-image:none !important; }
31
- .li-mjp { margin:0px !important; padding:0px 0px 1px 0px !important; letter-spacing:0px !important; word-spacing:0px !important; margin:0px 1px 0px 1px !important; list-style-type:none !important; }
32
- .li-mjp:before { content:none !important; }
33
- .a-mjp {
34
- border:0 !important;
35
- text-decoration:none !important;
36
- display:block !important; width:auto !important;
37
- outline:none !important;
38
- padding:7px 10px 7px 10px !important;
39
- text-shadow: none !important;
40
- }
41
-
 
 
 
 
 
 
 
42
  /* SCREEN */
43
  div.player-track-title { position:absolute; z-index:125; }
44
  div.player-track-title div { position:relative; }
@@ -196,7 +203,7 @@ div.mp3j-finfo {
196
  width:80%;
197
  left:10%;
198
  -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px;
199
- background:#333;
200
  -webkit-box-shadow:0px 1px 4px rgba(0, 0, 0, 0.35); -moz-box-shadow:0px 1px 4px rgba(0, 0, 0, 0.35); box-shadow:0px 1px 4px rgba(0, 0, 0, 0.35);
201
  padding:0;
202
  min-height:31px;
@@ -207,16 +214,18 @@ div.mp3j-finfo {
207
 
208
  div.mp3j-finfo * { font-family:Arial, Helvetica, sans-serif !important; }
209
  div.mp3j-finfo-sleeve { position:relative !important; width:100%; height:100%; }
210
- div.mp3j-finfo-gif { position:absolute !important; top:0; left:0; right:10%; bottom:0; background:url('images/loader-w.gif') no-repeat center 27px; width:auto; padding:0px; height:100%; }
211
  div.mp3j-finfo-txt { position:relative !important; margin:0px 15px 0 15px !important; padding:10px 0 10px 0 !important; width:auto; }
212
  div.mp3j-finfo-close { position:absolute !important; width:31px !important; height:27px !important; padding-top:5px !important; right:0 !important; top:0 !important; text-align:center !important; font-weight:700 !important; font-size:18px !important; line-height:22px !important; color:#aaa !important; border-bottom:1px solid #ccc !important; border-left:1px solid #ccc !important; background:url('images/t40w.png') repeat left top !important; }
213
- div.mp3j-finfo-close:hover { color:#ccc !important; }
214
 
215
- div.mp3j-finfo-txt h2 { font-size:15px !important; color:#f0f0f0 !important; margin:0 0 35px 0 !important; }
216
- div.mp3j-finfo-txt h3 { font-size:14px !important; color:#f0f0f0 !important; margin:0 0 15px 0 !important; }
217
- div.mp3j-finfo-txt p { font-size:12px !important; color:#f0f0f0 !important; line-height:14px !important; margin:0 0 5px 0; }
218
- div.mp3j-finfo-txt a { }
219
-
 
 
220
  .mp3j-nosolution,
221
  .s-nosolution
222
  {
@@ -244,7 +253,7 @@ div.mp3j-finfo {
244
 
245
  /* BARS */
246
  span.bars_mp3j { position:absolute; width:100%; top:0px; bottom:0px; }
247
- span.load_mp3j, span.loadB_mp3j { position:absolute; /* background set from admin */ bottom:-5px; left:0px; min-height:3px; height:12%; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; }
248
  /* mp3t */
249
  span.posbar_mp3j { position:absolute; width:100%; top:0px; bottom:0px; border:0; background:none !important; }
250
  span.posbar_mp3j .ui-widget-header { z-index:-500; }
@@ -254,7 +263,9 @@ div.mp3j-finfo {
254
  /* mp3j */
255
  span.posbarB_mp3j { position:absolute; width:100%; top:0px; bottom:0px; border:0; cursor:pointer; z-index:499; background:none !important; }
256
  span.posbarB_mp3j .ui-widget-header { background:transparent !important; z-index:-500; height:100%; }
257
- span.posbarB_mp3j .ui-slider-handle { background:url('images/t50b.png') repeat 0px 0px; top:-2px; bottom:-8px; margin-left:-4px; border:1px solid #555; width:8px; z-index:500; cursor:default; padding:0px !important; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
 
 
258
  span.posbarB_mp3j .ui-slider-handle:hover { background:url('images/t50b.png') repeat 0px 0px; border-color:#202020; }
259
 
260
  /* SPAN TRANSPORT */
@@ -303,10 +314,16 @@ div.mp3j-finfo {
303
  span.mp3-gtint { margin:0px 2px 0px -12px; opacity:.5; filter:alpha(opacity=50); background:#777; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
304
  span.tintmarg { margin:0 2px 0 3px; }
305
 
306
- span.Smp3-tint { opacity:.5; filter:alpha(opacity=50); padding:0px 0px 0px 12px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
307
-
308
-
309
-
 
 
 
 
 
 
310
  /* [mp3j-popout] SHORTCODE
311
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
312
  .popout-wrap-mjp {
@@ -487,7 +504,8 @@ ul.gill-mjp a { font-family: "Gill Sans", "Gill Sans MT", Calibri, sans-serif;
487
 
488
  .player-track-title,
489
  .player-track-title div,
490
- .a-mjp { line-height: 110% !important; }
 
491
 
492
  .player-track-title div { font-size:0.7em; }
493
 
@@ -552,6 +570,12 @@ div.wrap-mjp.noplayer { display:none; }
552
  .nobars .bars_holder,
553
  .nobars .statusMI { display:none; }
554
 
 
 
 
 
 
 
555
 
556
  div.bigger1 span { font-size:18px !important; }
557
  div.bigger2 span { font-size:23px !important; }
@@ -596,3 +620,4 @@ iframe.mp3j-dlframe {
596
  }
597
 
598
 
 
28
 
29
  /* PLAYLIST */
30
  .ul-mjp { margin:0px !important; padding:3px 8px 4px 8px !important; list-style-type:none !important; list-style:none !important; list-style-image:none !important; }
31
+ .li-mjp { margin:0px !important; padding:0px 0px 1px 0px !important; letter-spacing:0px !important; word-spacing:0px !important; margin:0px 1px 0px 1px !important; list-style-type:none !important; }
32
+ .li-mjp:before { content:none !important; }
33
+ .a-mjp {
34
+ border:0 !important;
35
+ text-decoration:none !important;
36
+ display:block !important; width:auto !important;
37
+ outline:none !important;
38
+ padding:7px 10px 7px 10px !important;
39
+ text-shadow: none !important;
40
+ background-image:none !important;
41
+ }
42
+
43
+ .a-mjp span {
44
+ display: inline-block;
45
+ padding-top:5px;
46
+ font-size:0.7em;
47
+ }
48
+
49
  /* SCREEN */
50
  div.player-track-title { position:absolute; z-index:125; }
51
  div.player-track-title div { position:relative; }
203
  width:80%;
204
  left:10%;
205
  -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px;
206
+ background:#fff;
207
  -webkit-box-shadow:0px 1px 4px rgba(0, 0, 0, 0.35); -moz-box-shadow:0px 1px 4px rgba(0, 0, 0, 0.35); box-shadow:0px 1px 4px rgba(0, 0, 0, 0.35);
208
  padding:0;
209
  min-height:31px;
214
 
215
  div.mp3j-finfo * { font-family:Arial, Helvetica, sans-serif !important; }
216
  div.mp3j-finfo-sleeve { position:relative !important; width:100%; height:100%; }
217
+ div.mp3j-finfo-gif { position:absolute !important; top:0; left:0; right:10%; bottom:0; background:url('images/spinner.gif') no-repeat center 27px; width:auto; padding:0px; height:100%; }
218
  div.mp3j-finfo-txt { position:relative !important; margin:0px 15px 0 15px !important; padding:10px 0 10px 0 !important; width:auto; }
219
  div.mp3j-finfo-close { position:absolute !important; width:31px !important; height:27px !important; padding-top:5px !important; right:0 !important; top:0 !important; text-align:center !important; font-weight:700 !important; font-size:18px !important; line-height:22px !important; color:#aaa !important; border-bottom:1px solid #ccc !important; border-left:1px solid #ccc !important; background:url('images/t40w.png') repeat left top !important; }
220
+ div.mp3j-finfo-close:hover { color:#888 !important; }
221
 
222
+ div.mp3j-finfo-txt h2 { font-size:15px !important; color:#333 !important; margin:0 0 35px 0 !important; }
223
+ div.mp3j-finfo-txt h3 { font-size:14px !important; color:#333 !important; margin:0 0 15px 0 !important; }
224
+ div.mp3j-finfo-txt p { font-size:12px !important; color:#555 !important; line-height:14px !important; margin:0 0 5px 0; }
225
+ div.mp3j-finfo-txt a { }
226
+
227
+
228
+
229
  .mp3j-nosolution,
230
  .s-nosolution
231
  {
253
 
254
  /* BARS */
255
  span.bars_mp3j { position:absolute; width:100%; top:0px; bottom:0px; }
256
+ span.load_mp3j, span.loadB_mp3j { position:absolute; bottom:-5px; left:0px; min-height:3px; height:12%; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; }
257
  /* mp3t */
258
  span.posbar_mp3j { position:absolute; width:100%; top:0px; bottom:0px; border:0; background:none !important; }
259
  span.posbar_mp3j .ui-widget-header { z-index:-500; }
263
  /* mp3j */
264
  span.posbarB_mp3j { position:absolute; width:100%; top:0px; bottom:0px; border:0; cursor:pointer; z-index:499; background:none !important; }
265
  span.posbarB_mp3j .ui-widget-header { background:transparent !important; z-index:-500; height:100%; }
266
+ span.posbarB_mp3j .ui-slider-handle {
267
+ background:url('images/t50b.png') repeat 0px 0px;
268
+ top:-2px; bottom:-8px; margin-left:-4px; border:1px solid #555; width:8px; z-index:500; cursor:default; padding:0px !important; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
269
  span.posbarB_mp3j .ui-slider-handle:hover { background:url('images/t50b.png') repeat 0px 0px; border-color:#202020; }
270
 
271
  /* SPAN TRANSPORT */
314
  span.mp3-gtint { margin:0px 2px 0px -12px; opacity:.5; filter:alpha(opacity=50); background:#777; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
315
  span.tintmarg { margin:0 2px 0 3px; }
316
 
317
+ span.Smp3-tint { /*background-color:#aaa;*/ opacity:.5; filter:alpha(opacity=50); padding:0px 0px 0px 12px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
318
+
319
+ /*
320
+ .loadB_mp3j, .load_mp3j {
321
+ background-color: #999;
322
+ opacity:.3; filter:alpha(opacity=30);
323
+ }
324
+ */
325
+
326
+
327
  /* [mp3j-popout] SHORTCODE
328
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
329
  .popout-wrap-mjp {
504
 
505
  .player-track-title,
506
  .player-track-title div,
507
+ .a-mjp,
508
+ .a-mjp span { line-height: 110% !important; }
509
 
510
  .player-track-title div { font-size:0.7em; }
511
 
570
  .nobars .bars_holder,
571
  .nobars .statusMI { display:none; }
572
 
573
+ .flip .transport-MI { left: 2px; right: auto; }
574
+ .flip .transport-MI .play-mjp,
575
+ .flip .transport-MI .pause-mjp,
576
+ .flip .transport-MI .stop-mjp { float:left; }
577
+ .flip .buttons-wrap-mjp { right: 2px; left: auto; }
578
+ .flip .buttons-wrap-mjp div { float:right }
579
 
580
  div.bigger1 span { font-size:18px !important; }
581
  div.bigger2 span { font-size:23px !important; }
620
  }
621
 
622
 
623
+
css/light.css CHANGED
@@ -27,17 +27,22 @@ div.innertab { left:0px; top:0px; right:0px; bottom:41px; border-bottom:1px soli
27
 
28
  /* PLAYLIST */
29
  .ul-mjp { margin:0px !important; padding:3px 8px 4px 8px !important; list-style-type:none !important; list-style:none !important; list-style-image:none !important; border-top:1px solid #f0f0f0; }
30
- .li-mjp { margin:0px !important; padding:0px 0px 1px 0px !important; letter-spacing:0px !important; word-spacing:0px !important; margin:0px 1px 0px 1px !important; list-style-type:none !important; }
31
- .li-mjp:before { content:none !important; }
32
- .a-mjp {
33
- border:0 !important;
34
- text-decoration:none !important;
35
- display:block !important; width:auto !important;
36
- outline:none !important;
37
- padding:7px 10px 7px 10px !important;
38
- text-shadow: none !important;
39
- }
40
-
 
 
 
 
 
41
 
42
  /* SCREEN */
43
  div.player-track-title { position:absolute; z-index:125; }
@@ -279,7 +284,7 @@ div.mp3j-finfo {
279
  height:10px;
280
  width:10px !important;
281
  padding:0px; margin-left:-6px;
282
- border:1px solid #c6c6c6 !important;
283
  border-radius:2px; -moz-border-radius:2px; -webkit-border-radius:2px;
284
  z-index:600;
285
  overflow:hidden !important;
@@ -298,8 +303,14 @@ div.mp3j-finfo {
298
  span.Smp3-finding { margin:0px 0px 0px 3px; background:url('images/pulse.gif') repeat 0px 0px; }
299
  span.mp3-gtint { margin:0px 2px 0px -12px; opacity:.5; filter:alpha(opacity=50); background:#777; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
300
  span.tintmarg { margin:0 2px 0 3px; }
301
- span.Smp3-tint { opacity:.5; filter:alpha(opacity=50); padding:0px 0px 0px 12px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
302
-
 
 
 
 
 
 
303
 
304
  /* [mp3j-popout] SHORTCODE
305
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
@@ -481,7 +492,8 @@ ul.gill-mjp a { font-family: "Gill Sans", "Gill Sans MT", Calibri, sans-serif;
481
 
482
  .player-track-title,
483
  .player-track-title div,
484
- .a-mjp { line-height: 110% !important; }
 
485
 
486
  .player-track-title div { font-size:0.7em; }
487
 
@@ -527,6 +539,13 @@ div.wrap-mjp.noplayer { display:none; }
527
  .novol span.vol_mp3t,
528
  .novol span.vol_mp3j { display:none; }
529
 
 
 
 
 
 
 
 
530
  .fullbars div.bars_holder { left:0px; right:0px; height:auto; top:0px; bottom:41px; }
531
  .fullbars div.jp-total-time { bottom:44px; text-align:right; z-index:90; }
532
  .fullbars div.jp-play-time { right:95px; bottom:44px; text-align:right; z-index:90; }
27
 
28
  /* PLAYLIST */
29
  .ul-mjp { margin:0px !important; padding:3px 8px 4px 8px !important; list-style-type:none !important; list-style:none !important; list-style-image:none !important; border-top:1px solid #f0f0f0; }
30
+ .li-mjp { margin:0px !important; padding:0px 0px 1px 0px !important; letter-spacing:0px !important; word-spacing:0px !important; margin:0px 1px 0px 1px !important; list-style-type:none !important; }
31
+ .li-mjp:before { content:none !important; }
32
+ .a-mjp {
33
+ border:0 !important;
34
+ text-decoration:none !important;
35
+ display:block !important; width:auto !important;
36
+ outline:none !important;
37
+ padding:7px 10px 7px 10px !important;
38
+ text-shadow: none !important;
39
+ background-image:none !important;
40
+ }
41
+ .a-mjp span {
42
+ display: inline-block;
43
+ padding-top:5px;
44
+ font-size:0.7em;
45
+ }
46
 
47
  /* SCREEN */
48
  div.player-track-title { position:absolute; z-index:125; }
284
  height:10px;
285
  width:10px !important;
286
  padding:0px; margin-left:-6px;
287
+ border:1px solid #c6c6c6;
288
  border-radius:2px; -moz-border-radius:2px; -webkit-border-radius:2px;
289
  z-index:600;
290
  overflow:hidden !important;
303
  span.Smp3-finding { margin:0px 0px 0px 3px; background:url('images/pulse.gif') repeat 0px 0px; }
304
  span.mp3-gtint { margin:0px 2px 0px -12px; opacity:.5; filter:alpha(opacity=50); background:#777; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
305
  span.tintmarg { margin:0 2px 0 3px; }
306
+ span.Smp3-tint { /*background-color:#aaa;*/ opacity:.5; filter:alpha(opacity=50); padding:0px 0px 0px 12px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
307
+
308
+ /*
309
+ .loadB_mp3j, .load_mp3j {
310
+ background-color: #999;
311
+ opacity:.3; filter:alpha(opacity=30);
312
+ }
313
+ */
314
 
315
  /* [mp3j-popout] SHORTCODE
316
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
492
 
493
  .player-track-title,
494
  .player-track-title div,
495
+ .a-mjp,
496
+ .a-mjp span { line-height: 110% !important; }
497
 
498
  .player-track-title div { font-size:0.7em; }
499
 
539
  .novol span.vol_mp3t,
540
  .novol span.vol_mp3j { display:none; }
541
 
542
+ .flip .transport-MI { left: 2px; right: auto; }
543
+ .flip .transport-MI .play-mjp,
544
+ .flip .transport-MI .pause-mjp,
545
+ .flip .transport-MI .stop-mjp { float:left; }
546
+ .flip .buttons-wrap-mjp { right: 2px; left: auto; }
547
+ .flip .buttons-wrap-mjp div { float:right }
548
+
549
  .fullbars div.bars_holder { left:0px; right:0px; height:auto; top:0px; bottom:41px; }
550
  .fullbars div.jp-total-time { bottom:44px; text-align:right; z-index:90; }
551
  .fullbars div.jp-play-time { right:95px; bottom:44px; text-align:right; z-index:90; }
css/text.css CHANGED
@@ -27,16 +27,23 @@ div.innertab { left:0px; top:0px; right:0px; bottom:50px; }
27
 
28
  /* PLAYLIST */
29
  .ul-mjp { margin:0px !important; padding:3px 8px 4px 8px !important; list-style-type:none !important; list-style:none !important; list-style-image:none !important; border:0px; }
30
- .li-mjp { margin:0px !important; padding:0px 0px 1px 0px !important; letter-spacing:0px !important; word-spacing:0px !important; margin:0px 1px 0px 1px !important; list-style-type:none !important; }
31
- .li-mjp:before { content:none !important; }
32
- .a-mjp {
33
- border:0 !important;
34
- text-decoration:none !important;
35
- display:block !important; width:auto !important;
36
- outline:none !important;
37
- padding:7px 10px 7px 10px !important;
38
- text-shadow: none !important;
39
- }
 
 
 
 
 
 
 
40
 
41
 
42
  /* SCREEN */
@@ -261,7 +268,7 @@ div.mp3j-finfo {
261
  height:10px;
262
  width:10px !important;
263
  padding:0px; margin-left:-6px;
264
- border:1px solid #c6c6c6 !important;
265
  border-radius:2px; -moz-border-radius:2px; -webkit-border-radius:2px;
266
  z-index:600;
267
  overflow:hidden !important;
@@ -280,9 +287,15 @@ div.mp3j-finfo {
280
  span.Smp3-finding { margin:0px 0px 0px 3px; background:url('images/pulse.gif') repeat 0px 0px; }
281
  span.mp3-gtint { margin:0px 2px 0px -12px; opacity:.5; filter:alpha(opacity=50); background:#777; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
282
  span.tintmarg { margin:0 2px 0 3px; }
283
- span.Smp3-tint { opacity:.5; filter:alpha(opacity=50); padding:0px 0px 0px 12px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
284
-
285
-
 
 
 
 
 
 
286
  /* [mp3j-popout] SHORTCODE
287
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
288
  .popout-wrap-mjp {
@@ -462,7 +475,8 @@ ul.gill-mjp a { font-family: "Gill Sans", "Gill Sans MT", Calibri, sans-serif;
462
 
463
  .player-track-title,
464
  .player-track-title div,
465
- .a-mjp { line-height: 110% !important; }
 
466
 
467
  .player-track-title div { font-size:0.7em; }
468
 
@@ -507,6 +521,17 @@ div.wrap-mjp.noplayer { display:none; }
507
  .novol span.vol_mp3t,
508
  .novol span.vol_mp3j { display:none; }
509
 
 
 
 
 
 
 
 
 
 
 
 
510
  .fullbars div.bars_holder { left:0px; right:0px; height:auto; top:0px; background:none; }
511
  .fullbars div.interface-mjp { padding:0px 0 39px 0; }
512
  .fullbars div.innertab { bottom:39px; }
27
 
28
  /* PLAYLIST */
29
  .ul-mjp { margin:0px !important; padding:3px 8px 4px 8px !important; list-style-type:none !important; list-style:none !important; list-style-image:none !important; border:0px; }
30
+ .li-mjp { margin:0px !important; padding:0px 0px 1px 0px !important; letter-spacing:0px !important; word-spacing:0px !important; margin:0px 1px 0px 1px !important; list-style-type:none !important; }
31
+ .li-mjp:before { content:none !important; }
32
+ .a-mjp {
33
+ border:0 !important;
34
+ text-decoration:none !important;
35
+ display:block !important; width:auto !important;
36
+ outline:none !important;
37
+ padding:7px 10px 7px 10px !important;
38
+ text-shadow: none !important;
39
+ background-image:none !important;
40
+ }
41
+
42
+ .a-mjp span {
43
+ display: inline-block;
44
+ padding-top:5px;
45
+ font-size:0.7em;
46
+ }
47
 
48
 
49
  /* SCREEN */
268
  height:10px;
269
  width:10px !important;
270
  padding:0px; margin-left:-6px;
271
+ border:1px solid #c6c6c6;
272
  border-radius:2px; -moz-border-radius:2px; -webkit-border-radius:2px;
273
  z-index:600;
274
  overflow:hidden !important;
287
  span.Smp3-finding { margin:0px 0px 0px 3px; background:url('images/pulse.gif') repeat 0px 0px; }
288
  span.mp3-gtint { margin:0px 2px 0px -12px; opacity:.5; filter:alpha(opacity=50); background:#777; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
289
  span.tintmarg { margin:0 2px 0 3px; }
290
+ span.Smp3-tint { /*background-color:#aaa;*/ opacity:.5; filter:alpha(opacity=50); padding:0px 0px 0px 12px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
291
+
292
+ /*
293
+ .loadB_mp3j, .load_mp3j {
294
+ background-color: #999;
295
+ opacity:.3; filter:alpha(opacity=30);
296
+ }
297
+ *
298
+
299
  /* [mp3j-popout] SHORTCODE
300
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
301
  .popout-wrap-mjp {
475
 
476
  .player-track-title,
477
  .player-track-title div,
478
+ .a-mjp,
479
+ .a-mjp span { line-height: 110% !important; }
480
 
481
  .player-track-title div { font-size:0.7em; }
482
 
521
  .novol span.vol_mp3t,
522
  .novol span.vol_mp3j { display:none; }
523
 
524
+ .flip .transport-MI { left: 2px; right: auto; }
525
+ .flip .transport-MI div { margin-right:6px; margin-left:0; }
526
+ .flip .transport-MI .play-mjp,
527
+ .flip .transport-MI .pause-mjp,
528
+ .flip .transport-MI .stop-mjp { float:left; }
529
+ .flip .buttons-wrap-mjp { right: 2px; left: auto; }
530
+ .flip .buttons-wrap-mjp div { float:right; margin-right:0; margin-left:10px; }
531
+ .flip div.jp-play-time { right:2px; left:auto; text-align:right; }
532
+ .flip div.statusMI { right:35px; left:auto; }
533
+
534
+
535
  .fullbars div.bars_holder { left:0px; right:0px; height:auto; top:0px; background:none; }
536
  .fullbars div.interface-mjp { padding:0px 0 39px 0; }
537
  .fullbars div.innertab { bottom:39px; }
css/v1-skins/v1-dark.css CHANGED
@@ -161,7 +161,8 @@ ul.gill-mjp a { font-family: "Gill Sans", "Gill Sans MT", Calibri, sans-serif;
161
 
162
  .player-track-title,
163
  .player-track-title div,
164
- .a-mjp { line-height: 110% !important; }
 
165
 
166
  .player-track-title div { font-size:0.7em; }
167
 
@@ -257,8 +258,16 @@ div.mjp-volwrap { position:absolute; top:0; right:0; }
257
  outline:none !important;
258
  padding:7px 10px 7px 14px !important;
259
  text-shadow: none !important;
 
260
  }
261
 
 
 
 
 
 
 
 
262
  /* SCREEN */
263
  div.player-track-title, div.jp-play-time, div.jp-total-time, div.statusMI {
264
  position:absolute;
@@ -478,9 +487,14 @@ div.mp3j-finfo {
478
  span.mp3-gtint { margin:0px 2px 0px -8px; opacity:.5; filter:alpha(opacity=50); background:#777; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
479
  span.tintmarg { margin:0 2px 0 3px; }
480
 
481
- span.Smp3-tint { opacity:.5; filter:alpha(opacity=50); padding:0px 0px 0px 8px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
482
-
483
 
 
 
 
 
 
 
484
 
485
  /*----------------------
486
  [popout] SHORTCODE
@@ -860,4 +874,11 @@ div.mp3j-finfo {
860
 
861
  .nobars .bars_holder { display:none; }
862
 
863
-
 
 
 
 
 
 
 
161
 
162
  .player-track-title,
163
  .player-track-title div,
164
+ .a-mjp,
165
+ .a-mjp span { line-height: 110% !important; }
166
 
167
  .player-track-title div { font-size:0.7em; }
168
 
258
  outline:none !important;
259
  padding:7px 10px 7px 14px !important;
260
  text-shadow: none !important;
261
+ background-image:none !important;
262
  }
263
 
264
+ .a-mjp span {
265
+ display: inline-block;
266
+ padding-top:5px;
267
+ font-size:0.7em;
268
+ }
269
+
270
+
271
  /* SCREEN */
272
  div.player-track-title, div.jp-play-time, div.jp-total-time, div.statusMI {
273
  position:absolute;
487
  span.mp3-gtint { margin:0px 2px 0px -8px; opacity:.5; filter:alpha(opacity=50); background:#777; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
488
  span.tintmarg { margin:0 2px 0 3px; }
489
 
490
+ span.Smp3-tint { /*background-color:#aaa;*/ opacity:.5; filter:alpha(opacity=50); padding:0px 0px 0px 8px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
 
491
 
492
+ /*
493
+ .loadB_mp3j, .load_mp3j {
494
+ background-color: #999;
495
+ opacity:.3; filter:alpha(opacity=30);
496
+ }
497
+ */
498
 
499
  /*----------------------
500
  [popout] SHORTCODE
874
 
875
  .nobars .bars_holder { display:none; }
876
 
877
+ .flip .transport-MI { left: 5px; right: auto; }
878
+ .flip .transport-MI .play-mjp,
879
+ .flip .transport-MI .pause-mjp,
880
+ .flip .transport-MI .stop-mjp { float:left; }
881
+ .flip .buttons-wrap-mjp { right: 2px; left:auto; }
882
+ .flip .buttons-wrap-mjp div { float:right }
883
+ .flip div.playlist-toggle-MI { left: auto; right:1px; }
884
+ .flip div.mp3j-popout-MI { left: auto; right:0px; }
css/v1-skins/v1-silver.css CHANGED
@@ -160,7 +160,8 @@ ul.gill-mjp a { font-family: "Gill Sans", "Gill Sans MT", Calibri, sans-serif;
160
 
161
  .player-track-title,
162
  .player-track-title div,
163
- .a-mjp { line-height: 110% !important; }
 
164
 
165
  .player-track-title div { font-size:0.7em; }
166
 
@@ -260,7 +261,15 @@ div.innertab2 { display:none; }
260
  outline:none !important;
261
  padding:7px 10px 7px 14px !important;
262
  text-shadow: none !important;
 
263
  }
 
 
 
 
 
 
 
264
 
265
  /* SCREEN */
266
  div.player-track-title, div.jp-play-time, div.jp-total-time, div.statusMI {
@@ -472,9 +481,14 @@ ul.ul-mjp.mp3j_widgetmods li a { font-size:10px !important; line-height:14px !im
472
  span.mp3-gtint { margin:0px 2px 0px -8px; opacity:.5; filter:alpha(opacity=50); background:#777; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
473
  span.tintmarg { margin:0 2px 0 3px; }
474
 
475
- span.Smp3-tint { opacity:.5; filter:alpha(opacity=50); padding:0px 0px 0px 8px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
476
-
477
 
 
 
 
 
 
 
478
 
479
  /*----------------------
480
  [popout] SHORTCODE
@@ -860,4 +874,14 @@ ul.ul-mjp.mp3j_widgetmods li a { font-size:10px !important; line-height:14px !im
860
  .novol span.vol_mp3t,
861
  .novol span.vol_mp3j { display:none; }
862
 
863
- .nobars .bars_holder { display:none; }
 
 
 
 
 
 
 
 
 
 
160
 
161
  .player-track-title,
162
  .player-track-title div,
163
+ .a-mjp,
164
+ .a-mjp span { line-height: 110% !important; }
165
 
166
  .player-track-title div { font-size:0.7em; }
167
 
261
  outline:none !important;
262
  padding:7px 10px 7px 14px !important;
263
  text-shadow: none !important;
264
+ background-image:none !important;
265
  }
266
+
267
+
268
+ .a-mjp span {
269
+ display: inline-block;
270
+ padding-top:5px;
271
+ font-size:0.7em;
272
+ }
273
 
274
  /* SCREEN */
275
  div.player-track-title, div.jp-play-time, div.jp-total-time, div.statusMI {
481
  span.mp3-gtint { margin:0px 2px 0px -8px; opacity:.5; filter:alpha(opacity=50); background:#777; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
482
  span.tintmarg { margin:0 2px 0 3px; }
483
 
484
+ span.Smp3-tint { /*background-color:#aaa;*/ opacity:.5; filter:alpha(opacity=50); padding:0px 0px 0px 8px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
 
485
 
486
+ /*
487
+ .loadB_mp3j, .load_mp3j {
488
+ background-color: #999;
489
+ opacity:.3; filter:alpha(opacity=30);
490
+ }
491
+ */
492
 
493
  /*----------------------
494
  [popout] SHORTCODE
874
  .novol span.vol_mp3t,
875
  .novol span.vol_mp3j { display:none; }
876
 
877
+ .nobars .bars_holder { display:none; }
878
+
879
+ .flip .transport-MI { left: 5px; right: auto; }
880
+ .flip .transport-MI .play-mjp,
881
+ .flip .transport-MI .pause-mjp,
882
+ .flip .transport-MI .stop-mjp { float:left; }
883
+ .flip .buttons-wrap-mjp { right: 2px; left:auto; }
884
+ .flip .buttons-wrap-mjp div { float:right }
885
+ .flip div.playlist-toggle-MI { left: auto; right:1px; }
886
+ .flip div.mp3j-popout-MI { left: auto; right:0px; }
887
+
frontend.php CHANGED
@@ -1,17 +1,50 @@
1
  <?php
2
- if ( !class_exists("MP3j_Front") && class_exists("MP3j_Main") ) { class MP3j_Front extends MP3j_Main {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
 
4
- /* Called on deactivation, deletes settings if 'remember' option unticked. */
5
- function uninitFox()
6
- {
7
- $theOptions = get_option($this->adminOptionsName);
8
- if ( $theOptions['remember_settings'] == "false" ) {
9
- delete_option($this->adminOptionsName);
10
  }
11
  }
 
 
 
 
 
 
 
 
 
 
 
12
 
13
 
14
- /** Flags for scripts via template tag mp3j_addscripts() */
15
  function scripts_tag_handler( $style = "" )
16
  {
17
  // Since 1.7 - convert old option name to new
@@ -24,28 +57,144 @@ if ( !class_exists("MP3j_Front") && class_exists("MP3j_Main") ) { class MP3j_Fro
24
  $this->scriptsflag = "true";
25
  return;
26
  }
27
-
28
-
29
- /** Returns library via template tag mp3j_grab_library(). */
30
- function grablibrary_handler( $x )
31
  {
32
- return $this->grab_library_info( $x );
 
 
 
 
 
 
 
 
 
33
  }
34
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
 
 
 
37
 
38
- function mp3j_settings ( $devsettings = array() )
39
  {
40
- foreach ( $this->setup as $k => $v ) {
41
- if ( array_key_exists( $k, $devsettings ) ) {
42
- $this->setup[ $k ] = $devsettings[ $k ];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43
  }
44
  }
 
 
45
  }
46
 
47
 
48
 
 
 
 
 
 
 
 
 
 
 
49
  /**
50
  * Provides support for WP versions below 3.3 that can't late enqueue. Labourious
51
  * checking of active widgets, and loose checking post content for shortcodes and extensions
@@ -87,22 +236,6 @@ if ( !class_exists("MP3j_Front") && class_exists("MP3j_Main") ) { class MP3j_Fro
87
  }
88
 
89
 
90
- //#############
91
- function checkAddScripts ()
92
- {
93
- if ( $this->Player_ID > 0 && $this->SCRIPT_CALL === false )
94
- {
95
- $style = ( $this->stylesheet == "" ) ? $this->theSettings['player_theme'] : $this->stylesheet;
96
- $this->add_Scripts( $style );
97
-
98
- $version = substr( get_bloginfo('version'), 0, 3);
99
- if ( $version < 3.3 ) {
100
- $this->dbug['str'] .= "\nFAIL Warning: Can't recover because this version of WordPress is too old (below 3.3). Possible causes:\n- Using do_shortcode without adding the scripts first (see plugin help)\n- A genuine bug, please report.\n";
101
- }
102
- }
103
- }
104
-
105
-
106
  /** Writes js playlists, startup, and debug info. */
107
  function footercode_handler()
108
  {
@@ -122,6 +255,8 @@ if ( !class_exists("MP3j_Front") && class_exists("MP3j_Main") ) { class MP3j_Fro
122
  $JS .= ( $O['force_browser_dload'] !== 'true' ) ? "\n\t\tMP3_JPLAYER.vars.force_dload = " . $O['force_browser_dload'] . ";" : "";
123
  $JS .= "\n\t\tMP3_JPLAYER.vars.dload_text = '" . $O['dload_text'] . "';";
124
 
 
 
125
  if ( $this->setup['stylesheetPopout'] === true ) {
126
  $JS .= "\n\t\tMP3_JPLAYER.vars.stylesheet_url = '" . $this->PP_css_url . "';";
127
  }
@@ -140,7 +275,93 @@ if ( !class_exists("MP3j_Front") && class_exists("MP3j_Main") ) { class MP3j_Fro
140
  $JS .= "\n});\n</script>\n";
141
  echo $JS;
142
  }
143
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
144
  // Write debug
145
  if ( $O['echo_debug'] == "true" ) {
146
  $this->debug_info();
@@ -232,35 +453,15 @@ if ( !class_exists("MP3j_Front") && class_exists("MP3j_Main") ) { class MP3j_Fro
232
  if ( ! $this->canRun() ) {
233
  return;
234
  }
235
- $atts = MJPfront_mp3t( $atts );
236
 
237
- $C = $this->theSettings['colour_settings'];
 
238
 
239
- $id = $this->Player_ID;
240
- extract( shortcode_atts( array( // Defaults
241
- 'bold' => 'y',
242
- 'play' => 'Play',
243
- 'track' => '',
244
- 'tracks' => '',
245
- 'caption' => '',
246
- 'flip' => $this->theSettings['flipMP3t'],
247
- 'title' => '#USE#',
248
- 'stop' => 'Stop',
249
- 'ind' => 'y',
250
- 'autoplay' => $this->theSettings['auto_play'],
251
- 'loop' => $this->theSettings['playlist_repeat'],
252
- 'vol' => $this->theSettings['initial_vol'],
253
- 'flow' => 'n',
254
- 'volslider' => $this->theSettings['volslider_on_singles'],
255
- 'style' => '',
256
- 'counterpart' => '',
257
- 'counterparts' => '',
258
- 'ids' => '',
259
- 'fontsize' => $this->theSettings['font_size_mp3t'],
260
- 'dload' => 'false',
261
- ), $atts ) );
262
 
263
- //Alias some params
264
  if ( $track == '' && $tracks != '' ) {
265
  $track = $tracks;
266
  }
@@ -268,7 +469,7 @@ if ( !class_exists("MP3j_Front") && class_exists("MP3j_Main") ) { class MP3j_Fro
268
  $counterpart = $counterparts;
269
  }
270
  $cssclass = $style;
271
-
272
  //Try make a playlist
273
  $tn = $this->decide_S_playlist( $track, $caption, $counterpart, $ids );
274
  if ( !$tn ) {
@@ -276,14 +477,19 @@ if ( !class_exists("MP3j_Front") && class_exists("MP3j_Main") ) { class MP3j_Fro
276
  return;
277
  }
278
 
 
 
 
 
279
  $CSSext = '-mjp';
280
  $font1Class = ( $C['font_family_1'] === 'theme' ) ? '' : ' ' . $C['font_family_1'] . $CSSext;
281
 
282
- $divO = '<span id="mp3jWrap_' . $id. '" class="unsel-mjp ' . $cssclass . $font1Class . '">';
283
  $divC = "</span>";
284
  $b = "";
285
  if ( $flow == "n" || $this->Caller == "widget" ) {
286
- $divO = ( $cssclass == "" ) ? '<div id="mp3jWrap_' . $id. '" class="mjp-s-wrapper s-text unsel-mjp' . $font1Class . '" style="font-size:' .$fontsize. ';">' : '<div id="mp3jWrap_' . $id. '" class="unsel-mjp ' . $cssclass . $font1Class . '" style="font-size:' .$fontsize. ';">';
 
287
  $divC = "</div>";
288
  }
289
 
@@ -350,32 +556,15 @@ if ( !class_exists("MP3j_Front") && class_exists("MP3j_Main") ) { class MP3j_Fro
350
  if ( ! $this->canRun() ) {
351
  return;
352
  }
353
- $atts = MJPfront_mp3j( $atts );
354
 
355
- $C = $this->theSettings['colour_settings'];
 
356
 
357
- $id = $this->Player_ID;
358
- extract(shortcode_atts(array( // Defaults
359
- 'bold' => 'y',
360
- 'track' => '',
361
- 'tracks' => '',
362
- 'caption' => '',
363
- 'flip' => $this->theSettings['flipMP3j'],
364
- 'title' => '#USE#',
365
- 'ind' => 'y',
366
- 'autoplay' => $this->theSettings['auto_play'],
367
- 'loop' => $this->theSettings['playlist_repeat'],
368
- 'vol' => $this->theSettings['initial_vol'],
369
- 'flow' => 'n',
370
- 'volslider' => $this->theSettings['volslider_on_mp3j'],
371
- 'style' => '',
372
- 'counterpart' => '',
373
- 'counterparts' => '',
374
- 'ids' => '',
375
- 'fontsize' => $this->theSettings['font_size_mp3j'],
376
- 'dload' => 'false',
377
- ), $atts));
378
 
 
379
  if ( $track == '' && $tracks != '' ) {
380
  $track = $tracks;
381
  }
@@ -390,14 +579,20 @@ if ( !class_exists("MP3j_Front") && class_exists("MP3j_Main") ) { class MP3j_Fro
390
  return;
391
  }
392
 
 
 
 
 
 
393
  $CSSext = '-mjp';
394
  $font1Class = ( $C['font_family_1'] === 'theme' ) ? '' : ' ' . $C['font_family_1'] . $CSSext;
395
 
396
- $divO = '<span id="mp3jWrap_' . $id. '" class="' . $cssclass . $font1Class . '">';
397
  $divC = "</span>";
398
  $b = "";
399
  if ( $flow == "n" || $this->Caller == "widget" ) {
400
- $divO = ( $cssclass == "" ) ? '<div id="mp3jWrap_' . $id. '" class="mjp-s-wrapper s-graphic unsel-mjp' . $font1Class . '" style="font-size:' .$fontsize. ';">' : '<div id="mp3jWrap_' . $id. '" class="unsel-mjp ' . $cssclass . $font1Class . '" style="font-size:' .$fontsize. ';">';
 
401
  $divC = "</div>";
402
  }
403
 
@@ -506,7 +701,7 @@ if ( !class_exists("MP3j_Front") && class_exists("MP3j_Main") ) { class MP3j_Fro
506
  //###############
507
  function isAllowedMimeType ( $mimeType )
508
  {
509
- return ( (stripos($mimeType, 'audio') === 0) ? true : false );
510
  }
511
 
512
 
@@ -756,53 +951,9 @@ if ( !class_exists("MP3j_Front") && class_exists("MP3j_Main") ) { class MP3j_Fro
756
 
757
  $O = $this->theSettings;
758
  $pID = $this->Player_ID;
759
- $ATTS = shortcode_atts( array( // Defaults
760
- 'tracks' => '',
761
- 'track' => '',
762
- 'captions' => '',
763
- 'dload' => $O['show_downloadmp3'],
764
- 'title' => '',
765
- 'list' => $O['playlist_show'],
766
- 'pn' => 'y',
767
- 'width' => '',
768
- 'pos' => $O['player_float'],
769
- 'stop' => 'y',
770
- 'shuffle' => false,
771
- 'pick' => '',
772
- 'id' => '',
773
- 'loop' => $O['playlist_repeat'],
774
- 'autoplay' => $O['auto_play'],
775
- 'vol' => $O['initial_vol'],
776
- 'height' => $O['playerHeight'],
777
- 'fsort' => 'asc',
778
- 'style' => '',
779
- 'images' => 'true',
780
- 'imglinks' => '',
781
- 'imagesize' => $O['imageSize'],
782
- 'ids' => '',
783
- 'counterparts' => '',
784
- 'counterpart' => '',
785
- 'font_size_1' => $O['colour_settings']['font_size_1'],
786
- 'font_size_2' => $O['colour_settings']['font_size_2'],
787
- 'font_family_1' => $O['colour_settings']['font_family_1'],
788
- 'font_family_2' => $O['colour_settings']['font_family_2'],
789
- 'titlealign' => $O['colour_settings']['titleAlign'],
790
- 'titleoffset' => $O['colour_settings']['titleOffset'],
791
- 'titleoffsetr' => $O['colour_settings']['titleOffsetR'],
792
- 'titlebold' => $O['colour_settings']['titleBold'],
793
- 'titleitalic' => $O['colour_settings']['titleItalic'],
794
- 'captionbold' => $O['colour_settings']['captionBold'],
795
- 'captionitalic' => $O['colour_settings']['captionItalic'],
796
- 'listbold' => $O['colour_settings']['listBold'],
797
- 'listitalic' => $O['colour_settings']['listItalic'],
798
- 'listalign' => $O['colour_settings']['listAlign'],
799
- 'imagealign' => $O['colour_settings']['imageAlign'],
800
- 'imgoverflow' => $O['colour_settings']['imgOverflow'],
801
- 'titletop' => $O['colour_settings']['titleTop'],
802
- 'titlecol' => '',
803
- 'fontsize' => '',
804
- 'pptext' => $this->theSettings['popout_button_title']
805
- ), $atts );
806
 
807
 
808
  //Alias params
@@ -903,56 +1054,11 @@ if ( !class_exists("MP3j_Front") && class_exists("MP3j_Main") ) { class MP3j_Fro
903
 
904
  $O = $this->theSettings;
905
  $pID = $this->Player_ID;
906
- $ATTS = shortcode_atts( array( // Defaults
907
- 'tracks' => '',
908
- 'track' => '',
909
- 'captions' => '',
910
- 'dload' => $this->theSettings['show_downloadmp3'],
911
- 'title' => '',
912
- 'text' => $this->theSettings['popout_button_title'],
913
- 'stop' => 'y',
914
- 'pn' => 'y',
915
- 'list' => $this->theSettings['playlist_show'],
916
- 'width' => '',
917
- 'pos' => $this->theSettings['player_float'],
918
- 'shuffle' => false,
919
- 'pick' => '',
920
- 'id' => '',
921
- 'loop' => $this->theSettings['playlist_repeat'],
922
- 'autoplay' => $this->theSettings['auto_play'],
923
- 'vol' => $this->theSettings['initial_vol'],
924
- 'height' => $this->theSettings['playerHeight'],
925
- 'tag' => 'p',
926
- 'image' => '',
927
- 'fsort' => 'asc',
928
- 'style' => '',
929
- 'images' => 'true',
930
- 'imagesize' => $O['imageSize'],
931
- 'imglinks' => '',
932
- 'ids' => '',
933
- 'counterparts' => '',
934
- 'counterpart' => '',
935
- 'font_size_1' => $O['colour_settings']['font_size_1'],
936
- 'font_size_2' => $O['colour_settings']['font_size_2'],
937
- 'font_family_1' => $O['colour_settings']['font_family_1'],
938
- 'font_family_2' => $O['colour_settings']['font_family_2'],
939
- 'titlealign' => $O['colour_settings']['titleAlign'],
940
- 'titleoffset' => $O['colour_settings']['titleOffset'],
941
- 'titleoffsetr' => $O['colour_settings']['titleOffsetR'],
942
- 'titlebold' => $O['colour_settings']['titleBold'],
943
- 'titleitalic' => $O['colour_settings']['titleItalic'],
944
- 'captionbold' => $O['colour_settings']['captionBold'],
945
- 'captionitalic' => $O['colour_settings']['captionItalic'],
946
- 'listbold' => $O['colour_settings']['listBold'],
947
- 'listitalic' => $O['colour_settings']['listItalic'],
948
- 'listalign' => $O['colour_settings']['listAlign'],
949
- 'imagealign' => $O['colour_settings']['imageAlign'],
950
- 'imgoverflow' => $O['colour_settings']['imgOverflow'],
951
- 'titletop' => $O['colour_settings']['titleTop'],
952
- 'titlecol' => '',
953
- 'fontsize' => ''
954
- ), $atts );
955
-
956
  //Alias some params
957
  if ( $ATTS['tracks'] == '' && $ATTS['track'] != '' ) {
958
  $ATTS['tracks'] = $ATTS['track'];
@@ -1067,6 +1173,6 @@ if ( !class_exists("MP3j_Front") && class_exists("MP3j_Main") ) { class MP3j_Fro
1067
  }
1068
  return $this->F_listname;
1069
  }
1070
-
1071
- }} // Close class, close if.
1072
  ?>
1
  <?php
2
+
3
+ class MP3j_Front extends MP3j_Main {
4
+
5
+
6
+ function onInit () {
7
+ $this->SKINS = $this->getSkinData();
8
+ }
9
+
10
+
11
+ function deactivate () {
12
+ $O = get_option( $this->adminOptionsName );
13
+ if ( $O['remember_settings'] == "false" ) {
14
+ delete_option( $this->adminOptionsName );
15
+ }
16
+ }
17
+
18
+
19
+ function addPluginListLink( $links, $file ) {
20
+ if ( $file == 'mp3-jplayer/mp3jplayer.php' ) {
21
+ $settings_link = '<a href="admin.php?page=mp3-jplayer">'.__('Settings').'</a>';
22
+ array_unshift( $links, $settings_link );
23
+ }
24
+ return $links;
25
+ }
26
+
27
 
28
+ function mp3j_settings ( $devsettings = array() ) {
29
+ foreach ( $this->setup as $k => $v ) {
30
+ if ( array_key_exists( $k, $devsettings ) ) {
31
+ $this->setup[ $k ] = $devsettings[ $k ];
32
+ }
 
33
  }
34
  }
35
+
36
+
37
+ function registerWidgets () {
38
+ register_widget( 'MP3_jPlayer' );
39
+ register_widget( 'MP3j_single' );
40
+ }
41
+
42
+
43
+ function grablibrary_handler( $x ) {
44
+ return $this->grab_library_info( $x );
45
+ }
46
 
47
 
 
48
  function scripts_tag_handler( $style = "" )
49
  {
50
  // Since 1.7 - convert old option name to new
57
  $this->scriptsflag = "true";
58
  return;
59
  }
60
+
61
+
62
+ function checkAddScripts ()
 
63
  {
64
+ if ( $this->Player_ID > 0 && $this->SCRIPT_CALL === false )
65
+ {
66
+ $style = ( $this->stylesheet == "" ) ? $this->theSettings['player_theme'] : $this->stylesheet;
67
+ $this->add_Scripts( $style );
68
+
69
+ $version = substr( get_bloginfo('version'), 0, 3);
70
+ if ( $version < 3.3 ) {
71
+ $this->dbug['str'] .= "\nFAIL Warning: Can't recover because this version of WordPress is too old (below 3.3). Possible causes:\n- Using do_shortcode without adding the scripts first (see plugin help)\n- A genuine bug, please report.\n";
72
+ }
73
+ }
74
  }
75
 
76
+ //TODO
77
+ function registerShortcodes ()
78
+ {
79
+ $ops = $this->theSettings;
80
+ /*
81
+ add_shortcode( 'mp3t', array( $this, 'inline_play_handler' ) );
82
+ add_shortcode( 'mp3j', array( $this, 'inline_play_graphic' ) );
83
+ add_shortcode( 'mp3-jplayer', array( $this, 'primary_player' ) );
84
+
85
+ remove_shortcode( 'popout' );
86
+ add_shortcode( 'popout', array( $this, 'popout_link_player' ) );
87
+ add_shortcode( 'mp3-popout', array( $this, 'popout_link_player' ) );
88
+
89
+
90
+ if ( $ops['replace_WP_playlist'] === 'true' && ! is_admin() ) {
91
+ remove_shortcode( 'playlist' );
92
+ add_shortcode( 'playlist', array( $this, 'replacePlaylistShortcode ') );
93
+ }
94
+
95
+ if ( ! is_admin() && ( $ops['replace_WP_audio'] === 'true' || $ops['replace_WP_embedded'] === 'true' || $ops['replace_WP_attached'] === 'true' ) ) {
96
+ remove_shortcode( 'audio' );
97
+ add_shortcode( 'audio', array( $this, 'replaceAudioShortcode' ) );
98
+ }
99
+ */
100
+ }
101
 
102
+ //TODO
103
+ function registerTagCallbacks ()
104
+ {
105
+ $ops = $this->theSettings;
106
+
107
+ add_action( 'mp3j_addscripts', array( $this, 'scripts_tag_handler' ), 1, 1 );
108
+ add_action( 'mp3j_put', array( $this, 'template_tag_handler' ), 10, 1 );
109
+ add_action( 'mp3j_debug', array( $this, 'debug_info' ), 10, 1 );
110
+ add_filter( 'mp3j_grab_library', array( $this, 'grablibrary_handler' ), 10, 1 );
111
+ add_action( 'mp3j_settings', array( $this, 'mp3j_settings' ), 1, 1 );
112
+
113
+ /*
114
+ * should use this conditional but it means that as page loads up players initially appear unstyled (aren't styled until
115
+ * last minute) TODO:enqueue style in header when poss.
116
+ * always run both hooks for the mo.
117
+ */
118
+ //$WPversion = substr( get_bloginfo('version'), 0, 3);
119
+ //if ( $WPversion < 3.3 ) {
120
+ add_action('wp_head', array( $this, 'header_scripts_handler' ), 2); //Support for WP versions below 3.3
121
+ //}
122
+ add_action('wp_footer', array( $this, 'checkAddScripts' ), 1); //Final chance to enqueue, process this action early (priority < 20).
123
+ add_action('wp_footer', array( $this, 'footercode_handler' ), 200); //Add any inline js, process this action late (enqueues fire at priority 20).
124
+
125
+ add_filter('get_the_excerpt', array( $this, 'get_excerpt_handler' ), 1);
126
+ add_filter('the_content', array( $this, 'afterExcerpt' ), 9999);
127
+
128
+ if ( $ops['make_player_from_link'] == "true" ) {
129
+ add_filter('the_content', array( $this, 'replace_links' ), 1);
130
+ }
131
+ if ( $ops['run_shcode_in_excerpt'] == "true" ) {
132
+ add_filter( 'the_excerpt', 'shortcode_unautop' );
133
+ add_filter( 'the_excerpt', 'do_shortcode' );
134
+ }
135
+ }
136
+
137
+
138
+
139
+
140
+
141
+ /** Returns library via template tag mp3j_grab_library(). */
142
 
143
+
144
+
145
 
146
+ function createAdminPages ()
147
  {
148
+ /*
149
+ extension page (arr)
150
+ --
151
+ [parent] str
152
+ [title] str
153
+ [menuName] str
154
+ [capability] str
155
+ [slug] str
156
+ [drawFunction] str
157
+ ['scriptsFunction'] false/str
158
+ --
159
+ */
160
+
161
+ //Core Settings pages
162
+ $pluginpage = add_menu_page( 'Settings | MP3 jPlayer', 'MP3 jPlayer', 'manage_options', 'mp3-jplayer', 'mp3j_print_admin_page' ); //root
163
+ add_submenu_page( 'mp3-jplayer', 'Settings | MP3 jPlayer', 'Settings', 'manage_options', 'mp3-jplayer', 'mp3j_print_admin_page' ); //root in sub
164
+ add_action( 'admin_head-'. $pluginpage, array( $this, 'mp3j_admin_header' ) );
165
+ $this->menuHANDLES['parent'] = $pluginpage;
166
+
167
+ if ( $this->setup['designPage'] === true ) {
168
+ $subm_colours = add_submenu_page( 'mp3-jplayer', 'Design | MP3 jPlayer', 'Design', 'manage_options', 'mp3-jplayer-colours', 'mp3j_print_colours_page' );
169
+ add_action( 'admin_head-'. $subm_colours, array( $this, 'mp3j_admin_colours_header' ) );
170
+ $this->dbug['str'] .= 'colours handle: ' . $subm_colours;
171
+ $this->menuHANDLES['design'] = $subm_colours;
172
+ }
173
+
174
+ //Extension pages
175
+ foreach ( $this->EXTpages as $p ) {
176
+ $submenu = add_submenu_page( $p['parent'], $p['title'], $p['menuName'], $p['capability'], $p['slug'], $p['drawFunction'] );
177
+ $this->menuHANDLES[ $p['slug'] ] = $submenu;
178
+ if ( $p['scriptsFunction'] !== false ) {
179
+ add_action( 'admin_head-'. $submenu, $p['scriptsFunction'] );
180
  }
181
  }
182
+
183
+ add_filter( 'plugin_action_links', array( $this, 'addPluginListLink' ), 10, 2 );
184
  }
185
 
186
 
187
 
188
+
189
+
190
+
191
+
192
+
193
+
194
+
195
+
196
+
197
+
198
  /**
199
  * Provides support for WP versions below 3.3 that can't late enqueue. Labourious
200
  * checking of active widgets, and loose checking post content for shortcodes and extensions
236
  }
237
 
238
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
239
  /** Writes js playlists, startup, and debug info. */
240
  function footercode_handler()
241
  {
255
  $JS .= ( $O['force_browser_dload'] !== 'true' ) ? "\n\t\tMP3_JPLAYER.vars.force_dload = " . $O['force_browser_dload'] . ";" : "";
256
  $JS .= "\n\t\tMP3_JPLAYER.vars.dload_text = '" . $O['dload_text'] . "';";
257
 
258
+ $JS .= "\n\t\tMP3_JPLAYER.hasListMeta = " . $O['hasListMeta'] . ";";
259
+
260
  if ( $this->setup['stylesheetPopout'] === true ) {
261
  $JS .= "\n\t\tMP3_JPLAYER.vars.stylesheet_url = '" . $this->PP_css_url . "';";
262
  }
275
  $JS .= "\n});\n</script>\n";
276
  echo $JS;
277
  }
278
+
279
+
280
+
281
+ if ( $this->setup['cssHead'] === true ) {
282
+ echo $this->writeColoursCSS();
283
+ }
284
+
285
+
286
+
287
+
288
+ $CSS = "\n\n";
289
+ if ( $O['mp3tColour_on'] === 'true' )
290
+ {
291
+ $CSS .= "\n<style>\n";
292
+
293
+ $CSS .= "\n
294
+ span.textbutton_mp3j {
295
+ color:" . $O['mp3tColour'] . ";
296
+ }
297
+ span.vol_mp3t .ui-slider-handle,
298
+ span.vol_mp3t .ui-slider-handle:hover,
299
+ span.posbar_mp3j .ui-slider-handle,
300
+ span.posbar_mp3j .ui-slider-handle:hover,
301
+ .load_mp3j,
302
+ .s-text .Smp3-tint {
303
+ background-color:" . $O['mp3tColour'] . ";
304
+ border-color:" . $O['mp3tColour'] . ";
305
+ }
306
+ .s-text .Smp3-tint {
307
+ opacity:0.4;
308
+ filter:alpha(opacity=40);
309
+ }
310
+ .s-text .Smp3-finding,
311
+ .s-text .mp3-gtint,
312
+ .load_mp3j {
313
+ opacity:0.25;
314
+ filter:alpha(opacity=25);
315
+ }
316
+ span.posbar_mp3j .ui-slider-handle,
317
+ span.posbar_mp3j .ui-slider-handle:hover {
318
+ background:rgba(" . $this->hexToRGB ( $O['mp3tColour'], true ) . ",0.3);
319
+ border-color:" . $O['mp3tColour'] . ";
320
+ }";
321
+
322
+ $CSS .= "\n</style>\n";
323
+ }
324
+
325
+ if ( $O['mp3jColour_on'] === 'true' )
326
+ {
327
+ $CSS .= "\n<style>\n";
328
+
329
+ $CSS .= "
330
+ span.gfxbutton_mp3j.play-mjp,
331
+ span.gfxbutton_mp3j.pause-mjp,
332
+ span.gfxbutton_mp3j.play-mjp:hover,
333
+ span.gfxbutton_mp3j.pause-mjp:hover,
334
+ span.vol_mp3j .ui-slider-handle,
335
+ span.vol_mp3j .ui-slider-handle:hover,
336
+ span.posbarB_mp3j .ui-slider-handle,
337
+ span.posbarB_mp3j .ui-slider-handle:hover,
338
+ .loadB_mp3j,
339
+ .s-graphic .Smp3-tint {
340
+ background-color:" . $O['mp3jColour'] . ";
341
+ border-color:" . $O['mp3jColour'] . ";
342
+ }
343
+ .s-graphic .Smp3-tint {
344
+ opacity:0.4;
345
+ filter:alpha(opacity=40);
346
+ }
347
+ .s-graphic .Smp3-finding,
348
+ .s-graphic .mp3-gtint,
349
+ .loadB_mp3j {
350
+ opacity:0.25;
351
+ filter:alpha(opacity=25);
352
+ }
353
+ span.posbarB_mp3j .ui-slider-handle,
354
+ span.posbarB_mp3j .ui-slider-handle:hover {
355
+ background:rgba(" . $this->hexToRGB ( $O['mp3jColour'], true ) . ",0.3);
356
+ border-color:" . $O['mp3jColour'] . ";
357
+ }";
358
+
359
+ $CSS .= "\n</style>\n";
360
+ }
361
+
362
+ echo $CSS;
363
+
364
+
365
  // Write debug
366
  if ( $O['echo_debug'] == "true" ) {
367
  $this->debug_info();
453
  if ( ! $this->canRun() ) {
454
  return;
455
  }
 
456
 
457
+ //Extensions - pre filter params hook.
458
+ $atts = MJPfront_mp3t( $atts );
459
 
460
+ //Merge user/default params.
461
+ $defaults = $this->playerDefaultParams( 'mp3t' );
462
+ extract( shortcode_atts( $defaults, $atts ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
463
 
464
+ //Alias some params.
465
  if ( $track == '' && $tracks != '' ) {
466
  $track = $tracks;
467
  }
469
  $counterpart = $counterparts;
470
  }
471
  $cssclass = $style;
472
+
473
  //Try make a playlist
474
  $tn = $this->decide_S_playlist( $track, $caption, $counterpart, $ids );
475
  if ( !$tn ) {
477
  return;
478
  }
479
 
480
+
481
+ $C = $this->theSettings['colour_settings'];
482
+ $id = $this->Player_ID;
483
+
484
  $CSSext = '-mjp';
485
  $font1Class = ( $C['font_family_1'] === 'theme' ) ? '' : ' ' . $C['font_family_1'] . $CSSext;
486
 
487
+ $divO = '<span id="mp3jWrap_' . $id. '" class="mjp-s-wrapper s-text unsel-mjp ' . $cssclass . $font1Class . '">';
488
  $divC = "</span>";
489
  $b = "";
490
  if ( $flow == "n" || $this->Caller == "widget" ) {
491
+ //$divO = ( $cssclass == "" ) ? '<div id="mp3jWrap_' . $id. '" class="mjp-s-wrapper s-text unsel-mjp' . $font1Class . '" style="font-size:' .$fontsize. ';">' : '<div id="mp3jWrap_' . $id. '" class="unsel-mjp ' . $cssclass . $font1Class . '" style="font-size:' .$fontsize. ';">';
492
+ $divO = '<div id="mp3jWrap_' . $id. '" class="mjp-s-wrapper s-text unsel-mjp ' . $cssclass . $font1Class . '" style="font-size:' .$fontsize. ';">';
493
  $divC = "</div>";
494
  }
495
 
556
  if ( ! $this->canRun() ) {
557
  return;
558
  }
 
559
 
560
+ //Extensions - pre filter params hook.
561
+ $atts = MJPfront_mp3j( $atts );
562
 
563
+ //Merge user/default params.
564
+ $defaults = $this->playerDefaultParams( 'mp3j' );
565
+ extract( shortcode_atts( $defaults, $atts ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
566
 
567
+ //Alias some params.
568
  if ( $track == '' && $tracks != '' ) {
569
  $track = $tracks;
570
  }
579
  return;
580
  }
581
 
582
+
583
+
584
+ $C = $this->theSettings['colour_settings'];
585
+ $id = $this->Player_ID;
586
+
587
  $CSSext = '-mjp';
588
  $font1Class = ( $C['font_family_1'] === 'theme' ) ? '' : ' ' . $C['font_family_1'] . $CSSext;
589
 
590
+ $divO = '<span id="mp3jWrap_' . $id. '" class="mjp-s-wrapper s-graphic unsel-mjp ' . $cssclass . $font1Class . '">';
591
  $divC = "</span>";
592
  $b = "";
593
  if ( $flow == "n" || $this->Caller == "widget" ) {
594
+ //$divO = ( $cssclass == "" ) ? '<div id="mp3jWrap_' . $id. '" class="mjp-s-wrapper s-graphic unsel-mjp' . $font1Class . '" style="font-size:' .$fontsize. ';">' : '<div id="mp3jWrap_' . $id. '" class="unsel-mjp ' . $cssclass . $font1Class . '" style="font-size:' .$fontsize. ';">';
595
+ $divO = '<div id="mp3jWrap_' . $id. '" class="mjp-s-wrapper s-graphic unsel-mjp ' . $cssclass . $font1Class . '" style="font-size:' .$fontsize. ';">';
596
  $divC = "</div>";
597
  }
598
 
701
  //###############
702
  function isAllowedMimeType ( $mimeType )
703
  {
704
+ return ( (stripos( $mimeType, 'audio' ) === 0 ) ? true : false );
705
  }
706
 
707
 
951
 
952
  $O = $this->theSettings;
953
  $pID = $this->Player_ID;
954
+
955
+ $defaults = $this->playerDefaultParams( 'playlist' );
956
+ $ATTS = shortcode_atts( $defaults, $atts );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
957
 
958
 
959
  //Alias params
1054
 
1055
  $O = $this->theSettings;
1056
  $pID = $this->Player_ID;
1057
+
1058
+ $defaults = $this->playerDefaultParams( 'popout' );
1059
+ $ATTS = shortcode_atts( $defaults, $atts );
1060
+
1061
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1062
  //Alias some params
1063
  if ( $ATTS['tracks'] == '' && $ATTS['track'] != '' ) {
1064
  $ATTS['tracks'] = $ATTS['track'];
1173
  }
1174
  return $this->F_listname;
1175
  }
1176
+
1177
+ } //end class
1178
  ?>
js/admin/admin-settings.js CHANGED
@@ -48,6 +48,10 @@ var MP3jP = {
48
  jQuery('#feedCounterpartInfo').empty().append( message );
49
  },
50
 
 
 
 
 
51
  init: function () {
52
  jQuery( '.mp3j-tabbutton').each( function ( j ) {
53
  MP3jP.add_tab_listener( j );
@@ -61,6 +65,25 @@ var MP3jP = {
61
  MP3jP.counterpartsFeedback();
62
  });
63
  MP3jP.counterpartsFeedback();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
64
  }
65
  };
66
 
48
  jQuery('#feedCounterpartInfo').empty().append( message );
49
  },
50
 
51
+ initSpectrumPicker: function ( elemID, ops ) {
52
+ jQuery( '#' + elemID ).spectrum( ops );
53
+ },
54
+
55
  init: function () {
56
  jQuery( '.mp3j-tabbutton').each( function ( j ) {
57
  MP3jP.add_tab_listener( j );
65
  MP3jP.counterpartsFeedback();
66
  });
67
  MP3jP.counterpartsFeedback();
68
+
69
+ this.initSpectrumPicker( 'mp3tColour', {
70
+ clickoutFiresChange: true,
71
+ preferredFormat: 'hex',
72
+ move: function( color ) {
73
+ jQuery('#mp3tColour').val( color );
74
+ },
75
+ showInput: true,
76
+ showAlpha: false
77
+ });
78
+ this.initSpectrumPicker( 'mp3jColour', {
79
+ clickoutFiresChange: true,
80
+ preferredFormat: 'hex',
81
+ move: function( color ) {
82
+ jQuery('#mp3jColour').val( color );
83
+ },
84
+ showInput: true,
85
+ showAlpha: false
86
+ });
87
  }
88
  };
89
 
js/{mp3-jplayer-2.3.3.js → mp3-jplayer-2.3.4.js} RENAMED
@@ -1,6 +1,6 @@
1
  /*
2
  MP3-jPlayer
3
- Version 2.3.1
4
  http://mp3-jplayer.com
5
  2015 Simon Ward
6
  */
@@ -50,6 +50,7 @@ var MP3_JPLAYER = {
50
  exThresh: 2,
51
  showErrors: false,
52
  factors: { vol: 1 },
 
53
 
54
  vars: {
55
  play_f: true,
@@ -431,7 +432,15 @@ var MP3_JPLAYER = {
431
  jQuery(this.eID.ul + j).empty();
432
  for (i = 0; i < l; i += 1) {
433
  liClass = ( i === l-1 ) ? ' mjp-li-last' : '';
434
- li = '<li class="li-mjp' + liClass + '"><a class="a-mjp" href="#" id="' + this.eID.a + j + '_' + i + '">' + p.list[i].name + '</a></li>';
 
 
 
 
 
 
 
 
435
  jQuery(this.eID.ul + j).append(li);
436
  this.add_ul_click(j, i);
437
  }
@@ -759,11 +768,12 @@ var MP3_JPLAYER = {
759
  this.runExternals( 'write_titles', data );
760
  },
761
 
762
- writedownload: function ( j, track ) {
763
  var data;
764
  var p = this.pl_info[j];
 
765
  if ( p.download ) {
766
- jQuery(this.eID.dload + j).empty().removeClass('whilelinks').append('<a id="mp3j_dlanchor_' + j + '" href="' + p.list[track].mp3 + '" target="_blank">' + this.vars.dload_text + '</a>');
767
  if ( this.vars.force_dload === true ) {
768
  this.dl_button_click( j );
769
  }
1
  /*
2
  MP3-jPlayer
3
+ Version 2.3.4
4
  http://mp3-jplayer.com
5
  2015 Simon Ward
6
  */
50
  exThresh: 2,
51
  showErrors: false,
52
  factors: { vol: 1 },
53
+ hasListMeta: true,
54
 
55
  vars: {
56
  play_f: true,
432
  jQuery(this.eID.ul + j).empty();
433
  for (i = 0; i < l; i += 1) {
434
  liClass = ( i === l-1 ) ? ' mjp-li-last' : '';
435
+ li = '<li class="li-mjp' + liClass + '"><a class="a-mjp" href="#" id="' + this.eID.a + j + '_' + i + '">';
436
+ li += p.list[i].name;
437
+ if ( this.hasListMeta && p.list[i].artist !== '' ) {
438
+ li += '<br><span>' + p.list[i].artist + '</span>';
439
+ }
440
+ li += '</a></li>';
441
+
442
+
443
+
444
  jQuery(this.eID.ul + j).append(li);
445
  this.add_ul_click(j, i);
446
  }
768
  this.runExternals( 'write_titles', data );
769
  },
770
 
771
+ writedownload: function ( j, track, text ) {
772
  var data;
773
  var p = this.pl_info[j];
774
+ text = ( typeof text === 'undefined' ) ? this.vars.dload_text : text;
775
  if ( p.download ) {
776
+ jQuery(this.eID.dload + j).empty().removeClass('whilelinks').append('<a id="mp3j_dlanchor_' + j + '" href="' + p.list[track].mp3 + '" target="_blank">' + text + '</a>');
777
  if ( this.vars.force_dload === true ) {
778
  this.dl_button_click( j );
779
  }
main.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
- if ( !class_exists("MP3j_Main") ) { class MP3j_Main {
3
 
4
  // ---------------------- Update Me
5
- var $version_of_plugin = "2.3.3";
6
  var $M_no = 0;
7
  var $F_no = 0;
8
  var $S_no = 0;
@@ -83,11 +83,6 @@ if ( !class_exists("MP3j_Main") ) { class MP3j_Main {
83
 
84
  ////
85
 
86
- //~~~~~
87
- function onInit ()
88
- {
89
- $this->SKINS = $this->getSkinData();
90
- }
91
 
92
 
93
  //~~~~~
@@ -317,8 +312,8 @@ if ( !class_exists("MP3j_Main") ) { class MP3j_Main {
317
  default:
318
  $order = "";
319
  }
320
- global $wpdb;
321
 
 
322
  $MIMES = ( $mimeTypes !== '' ) ? $mimeTypes : "post_mime_type = 'audio/mpeg' OR post_mime_type = 'audio/ogg' OR post_mime_type = 'audio/wav' OR post_mime_type = 'audio/webm'";
323
  $audio = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE " . $MIMES . $order);
324
 
@@ -560,7 +555,30 @@ if ( !class_exists("MP3j_Main") ) { class MP3j_Main {
560
  return $list;
561
  }
562
 
563
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
564
  //########################
565
  function findParts ( $track )
566
  {
@@ -576,22 +594,18 @@ if ( !class_exists("MP3j_Main") ) { class MP3j_Main {
576
  if ( $LIBindex !== false ) //in library
577
  {
578
  $track['src'] = $LIB['urls'][ $LIBindex ];
579
- if ( $this->theSettings['libUseID3'] === 'true' ) {
580
- $id3data = wp_get_attachment_metadata( $LIB['postIDs'][ $LIBindex ], true );
581
- $track['title'] = ( $track['title'] === "" && ! empty( $id3data['title'] ) ) ? $id3data['title'] : $LIB['titles'][ $LIBindex ];
582
- $track['caption'] = ( $track['caption'] === "" && ! empty( $id3data['artist'] ) ) ? $id3data['artist'] : $track['caption'];
583
- } else {
584
- $track['title'] = ( $track['title'] === "" ) ? $LIB['titles'][ $LIBindex ] : $track['title'];
585
- $track['caption'] = ( $track['caption'] === "" ) ? $LIB['excerpts'][ $LIBindex ] : $track['caption'];
586
- }
587
 
 
 
 
 
588
  if ( $track['image'] === 'true' ) {
589
  $track['image'] = $this->getPostImageUrl( $LIB['postIDs'][ $LIBindex ] );
590
  }
591
-
592
  if ( $track['counterpart'] === '' && $this->theSettings['autoCounterpart'] === 'true' ) {
593
  $track = $this->getFEEDCounterpart( $track, $LIB );
594
  }
 
595
  }
596
  else
597
  {
@@ -1190,7 +1204,7 @@ if ( !class_exists("MP3j_Main") ) { class MP3j_Main {
1190
 
1191
  //jplayer and plugin js
1192
  wp_enqueue_script( 'jplayer271', $this->PluginFolder . '/js/jquery.jplayer.min.2.7.1.js', false, '2.7.1' );
1193
- wp_enqueue_script( 'mp3-jplayer', $this->PluginFolder . '/js/mp3-jplayer-2.3.3.js', false, '2.3.3' );
1194
 
1195
  $skins = $this->SKINS;
1196
  if ( isset( $skins[ $theme ]['url'] ) ) {
@@ -1203,9 +1217,9 @@ if ( !class_exists("MP3j_Main") ) { class MP3j_Main {
1203
  if ( $this->setup['stylesheet'] === true ) {
1204
  wp_enqueue_style( 'mp3-jplayer', $themepath, false, $this->version_of_plugin );
1205
  }
1206
- if ( $this->setup['cssHead'] === true ) {
1207
- echo $this->writeColoursCSS();
1208
- }
1209
  $this->PP_css_url = $themepath;
1210
  $this->SCRIPT_CALL = true;
1211
  return;
@@ -1213,6 +1227,7 @@ if ( !class_exists("MP3j_Main") ) { class MP3j_Main {
1213
 
1214
 
1215
  //~~~~~
 
1216
  function writeColoursCSS ()
1217
  {
1218
  $settings = $this->theSettings;
@@ -1220,26 +1235,33 @@ if ( !class_exists("MP3j_Main") ) { class MP3j_Main {
1220
  $imgDir = $this->PluginFolder . "/css/images/";
1221
 
1222
  $CSS = "\n<style type=\"text/css\">\n";
1223
- $CSS .= ".innertab { background-color:" . $colours['screen_colour'] . "; } \n";
1224
- $CSS .= ".playlist-colour { background:" . $colours['playlist_colour'] . "; } \n";
1225
- $CSS .= ".loadMI_mp3j, .loadB_mp3j, .load_mp3j { background:" . $colours['loadbar_colour'] . "; } \n";
1226
- $CSS .= ".poscolMI_mp3j, .MIsliderVolume .ui-widget-header, .vol_mp3t .ui-widget-header, .vol_mp3j .ui-widget-header { background-color:" . $colours['posbar_colour'] . "; } \n";
1227
- $CSS .= ".interface-mjp { color:" . $colours['screen_text_colour'] . "; } \n";
1228
- $CSS .= ".player-track-title { font-size:" . $colours['font_size_1'] . "px; } \n";
1229
- $CSS .= ".a-mjp { color:" . $colours['list_text_colour'] . "; background-image:none !important; } \n";
1230
- $CSS .= ".a-mjp:hover { background-image:none !important; color:" . $colours['list_hover_colour'] . " !important; background:" . $colours['listBGa_hover'] . " !important; } \n";
1231
- $CSS .= ".a-mjp.mp3j_A_current { background-image:none !important; color:" . $colours['list_current_colour'] . " !important; background:" . $colours['listBGa_current'] . " !important; } \n";
1232
- $CSS .= ".a-mjp { font-size:" . $colours['font_size_2'] . "px; } \n";
1233
- $CSS .= ".transport-MI div, .mp3j-popout-MI:hover, .playlist-toggle-MI:hover, .dloadmp3-MI.whilelinks { background-color:" . $colours['posbar_colour'] . "; border-color:" . $colours['posbar_colour'] . "; } \n";
1234
- $CSS .= ".popout-text-mjp:hover { color:" . $colours['posbar_colour'] . "; } \n";
1235
- $CSS .= "span.textbutton_mp3j, .transport-MI div, .transport-MI div:hover { color:" . $colours['list_current_colour'] . "; } \n";
1236
- //$CSS .= "span.textbutton_mp3j:hover { color:" . $colours['list_hover_colour'] . "; } \n";
1237
- $CSS .= ".mp3-tint, .Smp3-tint { background-color:" . ( $colours['indicator'] == "tint" ? "#aaa" : $colours['posbar_colour'] ) . "; } \n";
 
 
 
 
 
 
 
1238
  $CSS .= "</style>\n";
1239
 
1240
  return $CSS;
1241
  }
1242
-
1243
 
1244
  //~~~~~
1245
  function makeColourPropsJS ()
@@ -1463,131 +1485,26 @@ if ( !class_exists("MP3j_Main") ) { class MP3j_Main {
1463
  /* Stores and returns
1464
  updated compatible options. */
1465
  function getAdminOptions()
1466
- {
1467
- $colour_keys = array(
1468
- 'screen_colour' => 'rgba(0, 0, 0, 0.13)',
1469
- 'loadbar_colour' => 'rgba(0, 73, 86, 0.59)',
1470
- 'posbar_colour' => 'rgba(0, 177, 180, 0.99)',
1471
- 'posbar_tint' => 'soften',
1472
- 'playlist_colour' => 'rgba(16, 16, 16, 0.82)',
1473
- 'playlist_tint' => 'lighten1',
1474
- 'list_divider' => 'none',
1475
- 'screen_text_colour' => '#202020',
1476
- 'list_text_colour' => '#ffffff',
1477
- 'list_current_colour' => '#00e2f0',
1478
- 'list_hover_colour' => '#bdfdf7',
1479
- 'listBGa_current' => 'transparent',
1480
- 'listBGa_hover' => 'transparent',
1481
- 'font_size_1' => '23',
1482
- 'font_size_2' => '17',
1483
- 'font_family_1' => 'theme',
1484
- 'font_family_2' => 'theme',
1485
- 'titleAlign' => 'left',
1486
- 'titleOffset' => '16px',
1487
- 'titleOffsetR' => '16px',
1488
- 'titleBold' => 'true',
1489
- 'titleHide' => 'false',
1490
- 'titleItalic' => 'false',
1491
- 'titleTop' => '20px',
1492
- 'captionBold' => 'false',
1493
- 'captionItalic' => 'true',
1494
- 'listBold' => 'false',
1495
- 'listItalic' => 'false',
1496
- 'listAlign' => 'left',
1497
- 'imageAlign' => 'right',
1498
- 'imgOverflow' => 'false',
1499
- 'userClasses' => '',
1500
- 'indicator' => 'colour',
1501
- 'adminBG' => '#f6f6f6',
1502
- 'adminCheckerIMG' => 'false',
1503
- 'adminIMG' => $this->PluginFolder . '/css/admin/images/test-image.jpg',
1504
- 'adminSizer_w' => '570px',
1505
- 'adminSizer_h' => '320px'
1506
- );
1507
-
1508
- $audioFormats = array(
1509
- 'mp3' => 'true',
1510
- 'mp4' => 'true',
1511
- 'ogg' => 'false',
1512
- 'wav' => 'false',
1513
- 'webm' => 'false'
1514
- );
1515
-
1516
- $mp3FoxAdminOptions = array( // defaults
1517
- 'initial_vol' => '100',
1518
- 'auto_play' => 'false',
1519
- 'mp3_dir' => '/',
1520
- 'player_theme' => 'defaultDark',
1521
- 'allow_remoteMp3' => 'true',
1522
- 'player_float' => 'none',
1523
- 'player_onblog' => 'true',
1524
- 'playlist_show' => 'true',
1525
- 'remember_settings' => 'true',
1526
- 'hide_mp3extension' => 'true',
1527
- 'show_downloadmp3' => 'false',
1528
- //'disable_template_tag' => 'false',
1529
- 'db_plugin_version' => $this->version_of_plugin,
1530
- 'custom_stylesheet' => $this->newCSScustom,
1531
- 'echo_debug' => 'false',
1532
- 'add_track_numbering' => 'false',
1533
- 'enable_popout' => 'true',
1534
- 'playlist_repeat' => 'false',
1535
- 'player_width' => '100%',
1536
- 'popout_background' => '#f0f0f0',
1537
- 'popout_background_image' => '',
1538
- 'colour_settings' => $colour_keys,
1539
- //'use_fixed_css' => 'false',
1540
- 'paddings_top' => '5px',
1541
- 'paddings_bottom' => '30px',
1542
- 'paddings_inner' => '30px',
1543
- 'popout_max_height' => '600',
1544
- 'popout_width' => '400',
1545
- 'popout_button_title' => 'Popout',
1546
- 'max_list_height' => '450',
1547
- 'encode_files' => 'true',
1548
- 'library_sortcol' => 'file',
1549
- 'library_direction' => 'ASC',
1550
- 'disable_jquery_libs' => '',
1551
- 'run_shcode_in_excerpt' => 'false',
1552
- 'f_separator' => ',',
1553
- 'c_separator' => ';',
1554
- 'volslider_on_singles' => 'false',
1555
- 'volslider_on_mp3j' => 'false',
1556
- 'dload_text' => 'Download',
1557
- 'loggedout_dload_text' => 'Log in to download',
1558
- 'loggedout_dload_link' => $this->WPinstallpath . '/wp-login.php',
1559
- //'touch_punch_js' => 'true',
1560
- 'force_browser_dload' => 'true',
1561
- 'dloader_remote_path' => '',
1562
- 'make_player_from_link' => 'true',
1563
- 'make_player_from_link_shcode' => '[mp3j track="{TEXT}@{URL}" volslider="y"]',
1564
- 'audioFormats' => $audioFormats,
1565
- 'replace_WP_playlist' => 'true',
1566
- 'replace_WP_audio' => 'true',
1567
- 'replace_WP_embedded' => 'true',
1568
- 'replace_WP_attached' => 'true',
1569
- 'replacerShortcode_playlist' => 'player',
1570
- 'replacerShortcode_single' => 'mp3j',
1571
- 'imageSize' => 'autoH',
1572
- 'folderFeedSortcol' => 'file',
1573
- 'folderFeedDirection' => 'ASC',
1574
- 'autoCounterpart' => 'true',
1575
- 'allowRangeRequests' => 'true',
1576
- 'playerHeight' => '92px',
1577
- 'font_size_mp3t' => '18px',
1578
- 'font_size_mp3j' => '18px',
1579
- 'showErrors' => 'admin',
1580
- 'flipMP3t' => 'false',
1581
- 'flipMP3j' => 'false',
1582
- 'libUseID3' => 'false',
1583
- );
1584
-
1585
- $theOptions = get_option($this->adminOptionsName);
1586
 
1587
  if ( ! empty($theOptions) )
1588
  {
1589
  if ( $theOptions['db_plugin_version'] !== $this->version_of_plugin ) //do compat
1590
  {
 
 
 
 
 
 
 
 
 
 
 
1591
  //backwards compat with v1.4 style
1592
  $styleCompat = $this->do_style_compat( $theOptions['player_theme'], $theOptions['custom_stylesheet'] );
1593
  if ( $styleCompat[0] )
@@ -1652,7 +1569,7 @@ if ( !class_exists("MP3j_Main") ) { class MP3j_Main {
1652
  $mp3FoxAdminOptions['player_theme'] = 'styleF';
1653
  }
1654
  }
1655
- }
1656
 
1657
  $mp3FoxAdminOptions['db_plugin_version'] = $this->version_of_plugin; //set last!
1658
  update_option($this->adminOptionsName, $mp3FoxAdminOptions);
@@ -1664,7 +1581,11 @@ if ( !class_exists("MP3j_Main") ) { class MP3j_Main {
1664
  }
1665
  else //save new defaults
1666
  {
 
 
 
1667
  update_option($this->adminOptionsName, $mp3FoxAdminOptions);
 
1668
  }
1669
 
1670
  return $mp3FoxAdminOptions;
@@ -1862,8 +1783,12 @@ if ( !class_exists("MP3j_Main") ) { class MP3j_Main {
1862
  //~~~~~
1863
  function mp3j_admin_header ()
1864
  {
1865
- wp_enqueue_style('mp3jp-settings-css', $this->PluginFolder .'/css/admin/admin-settings.css' );
1866
  wp_enqueue_script('mp3jp-settings-js', $this->PluginFolder .'/js/admin/admin-settings.js' );
 
 
 
 
1867
  }
1868
 
1869
 
@@ -1885,7 +1810,7 @@ if ( !class_exists("MP3j_Main") ) { class MP3j_Main {
1885
  wp_enqueue_script('spectrum-CP-js', $this->PluginFolder .'/js/spectrum/spectrum.js' );
1886
 
1887
  //styles
1888
- wp_enqueue_style('spectrum-CP-css', $this->PluginFolder .'/css/admin/spectrum.css' );
1889
  wp_enqueue_style('mp3jp-colours-css', $this->PluginFolder .'/css/admin/admin-colours.css' );
1890
  }
1891
 
@@ -1977,6 +1902,297 @@ if ( !class_exists("MP3j_Main") ) { class MP3j_Main {
1977
  return;
1978
  }
1979
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1980
 
1981
- }} // close class, close if.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1982
  ?>
1
  <?php
2
+ class MP3j_Main {
3
 
4
  // ---------------------- Update Me
5
+ var $version_of_plugin = "2.4";
6
  var $M_no = 0;
7
  var $F_no = 0;
8
  var $S_no = 0;
83
 
84
  ////
85
 
 
 
 
 
 
86
 
87
 
88
  //~~~~~
312
  default:
313
  $order = "";
314
  }
 
315
 
316
+ global $wpdb;
317
  $MIMES = ( $mimeTypes !== '' ) ? $mimeTypes : "post_mime_type = 'audio/mpeg' OR post_mime_type = 'audio/ogg' OR post_mime_type = 'audio/wav' OR post_mime_type = 'audio/webm'";
318
  $audio = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE " . $MIMES . $order);
319
 
555
  return $list;
556
  }
557
 
558
+
559
+
560
+ function pickMetaPart ( $opName, $j )
561
+ {
562
+ $meta = '';
563
+ $val = $this->theSettings[ $opName ];
564
+ $LIB = $this->grab_library_info();
565
+
566
+ if ( '' !== $val ) {
567
+ if ( 'artist' == $val || 'album' == $val ) {
568
+ $ID3 = wp_get_attachment_metadata( $LIB['postIDs'][ $j ], true );
569
+ $meta = ( empty( $ID3[ $val ] ) ) ? '' : $ID3[ $val ];
570
+ } else {
571
+ $meta = ( empty( $LIB[ $val ][ $j ] ) ) ? '' : $LIB[ $val ][ $j ];
572
+ if ( 'postDates' == $val ) {
573
+ $meta = date( 'jS F Y', strtotime( $meta ) );
574
+ }
575
+ }
576
+ }
577
+
578
+ return $meta;
579
+ }
580
+
581
+
582
  //########################
583
  function findParts ( $track )
584
  {
594
  if ( $LIBindex !== false ) //in library
595
  {
596
  $track['src'] = $LIB['urls'][ $LIBindex ];
 
 
 
 
 
 
 
 
597
 
598
+ if ( $track['title'] === '' ) {
599
+ $title = $this->pickMetaPart( 'playerTitle1', $LIBindex );
600
+ $track['title'] = ( $title == '' ) ? $LIB['titles'][ $LIBindex ] : $title;
601
+ }
602
  if ( $track['image'] === 'true' ) {
603
  $track['image'] = $this->getPostImageUrl( $LIB['postIDs'][ $LIBindex ] );
604
  }
 
605
  if ( $track['counterpart'] === '' && $this->theSettings['autoCounterpart'] === 'true' ) {
606
  $track = $this->getFEEDCounterpart( $track, $LIB );
607
  }
608
+ $track['caption'] = ( $track['caption'] === '' ) ? $this->pickMetaPart( 'playerTitle2', $LIBindex ) : $track['caption'];
609
  }
610
  else
611
  {
1204
 
1205
  //jplayer and plugin js
1206
  wp_enqueue_script( 'jplayer271', $this->PluginFolder . '/js/jquery.jplayer.min.2.7.1.js', false, '2.7.1' );
1207
+ wp_enqueue_script( 'mp3-jplayer', $this->PluginFolder . '/js/mp3-jplayer-2.3.4.js', false, '2.3.4' );
1208
 
1209
  $skins = $this->SKINS;
1210
  if ( isset( $skins[ $theme ]['url'] ) ) {
1217
  if ( $this->setup['stylesheet'] === true ) {
1218
  wp_enqueue_style( 'mp3-jplayer', $themepath, false, $this->version_of_plugin );
1219
  }
1220
+ //if ( $this->setup['cssHead'] === true ) {
1221
+ // echo $this->writeColoursCSS();
1222
+ //}
1223
  $this->PP_css_url = $themepath;
1224
  $this->SCRIPT_CALL = true;
1225
  return;
1227
 
1228
 
1229
  //~~~~~
1230
+
1231
  function writeColoursCSS ()
1232
  {
1233
  $settings = $this->theSettings;
1235
  $imgDir = $this->PluginFolder . "/css/images/";
1236
 
1237
  $CSS = "\n<style type=\"text/css\">\n";
1238
+
1239
+ $CSS .= ".innertab { background-color:" . $colours['screen_colour'] . "; } \n";
1240
+ $CSS .= ".playlist-colour { background:" . $colours['playlist_colour'] . "; } \n";
1241
+ $CSS .= ".interface-mjp { color:" . $colours['screen_text_colour'] . "; } \n";
1242
+
1243
+ //$CSS .= ".loadMI_mp3j { background:" . $colours['loadbar_colour'] . "; } \n";
1244
+ $CSS .= ".loadMI_mp3j, .loadB_mp3j, .load_mp3j { background:" . $colours['loadbar_colour'] . "; } \n"; //keep single stuff for the mo
1245
+
1246
+ //$CSS .= ".poscolMI_mp3j { background-color:" . $colours['posbar_colour'] . "; } \n";
1247
+ $CSS .= ".poscolMI_mp3j, .MIsliderVolume .ui-widget-header, .vol_mp3t .ui-widget-header, .vol_mp3j .ui-widget-header { background-color:" . $colours['posbar_colour'] . "; } \n"; //keep single stuff for the mo
1248
+
1249
+ //$CSS .= ".mp3-tint { background-color:" . ( $colours['indicator'] == "tint" ? "#aaa" : $colours['posbar_colour'] ) . "; } \n";
1250
+ $CSS .= ".mp3-tint, .Smp3-tint { background-color:" . ( $colours['indicator'] == "tint" ? "#aaa" : $colours['posbar_colour'] ) . "; } \n"; //keep single stuff for the mo
1251
+
1252
+ $CSS .= ".player-track-title { font-size:" . $colours['font_size_1'] . "px; } \n";
1253
+ $CSS .= ".a-mjp { color:" . $colours['list_text_colour'] . "; } \n";
1254
+ $CSS .= ".a-mjp:hover { color:" . $colours['list_hover_colour'] . " !important; background:" . $colours['listBGa_hover'] . " !important; } \n";
1255
+ $CSS .= ".a-mjp.mp3j_A_current { color:" . $colours['list_current_colour'] . " !important; background:" . $colours['listBGa_current'] . " !important; } \n";
1256
+ $CSS .= ".a-mjp { font-size:" . $colours['font_size_2'] . "px; } \n";
1257
+ //text button players
1258
+ $CSS .= ".transport-MI div, .transport-MI div:hover, span.textbutton_mp3j { color:" . $colours['list_current_colour'] . "; } \n"; //keep single stuff for the mo
1259
+
1260
  $CSS .= "</style>\n";
1261
 
1262
  return $CSS;
1263
  }
1264
+
1265
 
1266
  //~~~~~
1267
  function makeColourPropsJS ()
1485
  /* Stores and returns
1486
  updated compatible options. */
1487
  function getAdminOptions()
1488
+ {
1489
+ $mp3FoxAdminOptions = $this->pluginDefaultSettings();
1490
+ $colour_keys = $mp3FoxAdminOptions['colour_settings'];
1491
+ $theOptions = get_option( $this->adminOptionsName );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1492
 
1493
  if ( ! empty($theOptions) )
1494
  {
1495
  if ( $theOptions['db_plugin_version'] !== $this->version_of_plugin ) //do compat
1496
  {
1497
+
1498
+ $libUseID3 = ( ! empty( $theOptions['libUseID3'] ) ) ? $theOptions['libUseID3'] : '';
1499
+
1500
+ if ( ! empty( $theOptions['libUseID3'] ) ) {
1501
+ if ( 'true' === $theOptions['libUseID3'] ) {
1502
+ $mp3FoxAdminOptions['playerTitle2'] = 'artist';
1503
+ }
1504
+ $mp3FoxAdminOptions['playerTitle2'] = ( 'true' === $theOptions['libUseID3'] ) ? 'artist' : 'excerpts';
1505
+ }
1506
+
1507
+
1508
  //backwards compat with v1.4 style
1509
  $styleCompat = $this->do_style_compat( $theOptions['player_theme'], $theOptions['custom_stylesheet'] );
1510
  if ( $styleCompat[0] )
1569
  $mp3FoxAdminOptions['player_theme'] = 'styleF';
1570
  }
1571
  }
1572
+ }
1573
 
1574
  $mp3FoxAdminOptions['db_plugin_version'] = $this->version_of_plugin; //set last!
1575
  update_option($this->adminOptionsName, $mp3FoxAdminOptions);
1581
  }
1582
  else //save new defaults
1583
  {
1584
+ $mp3FoxAdminOptions['mp3tColour_on'] = 'true';
1585
+ $mp3FoxAdminOptions['mp3jColour_on'] = 'true';
1586
+ $mp3FoxAdminOptions['hasListMeta'] = 'true';
1587
  update_option($this->adminOptionsName, $mp3FoxAdminOptions);
1588
+
1589
  }
1590
 
1591
  return $mp3FoxAdminOptions;
1783
  //~~~~~
1784
  function mp3j_admin_header ()
1785
  {
1786
+ wp_enqueue_script('jquery');
1787
  wp_enqueue_script('mp3jp-settings-js', $this->PluginFolder .'/js/admin/admin-settings.js' );
1788
+ wp_enqueue_script('spectrum-CP-js', $this->PluginFolder .'/js/spectrum/spectrum.js' );
1789
+
1790
+ wp_enqueue_style( 'spectrum-css', plugins_url( '/css/admin/spectrum-custom.css', __FILE__ ) );
1791
+ wp_enqueue_style('mp3jp-settings-css', $this->PluginFolder .'/css/admin/admin-settings.css' );
1792
  }
1793
 
1794
 
1810
  wp_enqueue_script('spectrum-CP-js', $this->PluginFolder .'/js/spectrum/spectrum.js' );
1811
 
1812
  //styles
1813
+ wp_enqueue_style('spectrum-CP-css', $this->PluginFolder .'/css/admin/spectrum-custom.css' );
1814
  wp_enqueue_style('mp3jp-colours-css', $this->PluginFolder .'/css/admin/admin-colours.css' );
1815
  }
1816
 
1902
  return;
1903
  }
1904
 
1905
+
1906
+
1907
+
1908
+
1909
+ function playerDefaultParams ( $shortcode ) {
1910
+
1911
+ $O = $this->theSettings;
1912
+
1913
+ $defaults['mp3t'] = array (
1914
+ 'bold' => 'y',
1915
+ 'track' => '',
1916
+ 'tracks' => '',
1917
+ 'caption' => '',
1918
+ 'flip' => $O['flipMP3t'],
1919
+ 'title' => '#USE#',
1920
+ 'ind' => 'y',
1921
+ 'autoplay' => $O['auto_play'],
1922
+ 'loop' => $O['playlist_repeat'],
1923
+ 'vol' => $O['initial_vol'],
1924
+ 'flow' => 'n',
1925
+ 'volslider' => $O['volslider_on_singles'],
1926
+ 'style' => '',
1927
+ 'counterpart' => '',
1928
+ 'counterparts' => '',
1929
+ 'ids' => '',
1930
+ 'fontsize' => $O['font_size_mp3t'],
1931
+ 'dload' => 'false',
1932
+ 'play' => 'Play',
1933
+ 'stop' => 'Stop',
1934
+ );
1935
+
1936
+ $defaults['mp3j'] = array (
1937
+ 'bold' => 'y',
1938
+ 'track' => '',
1939
+ 'tracks' => '',
1940
+ 'caption' => '',
1941
+ 'flip' => $O['flipMP3j'],
1942
+ 'title' => '#USE#',
1943
+ 'ind' => 'y',
1944
+ 'autoplay' => $O['auto_play'],
1945
+ 'loop' => $O['playlist_repeat'],
1946
+ 'vol' => $O['initial_vol'],
1947
+ 'flow' => 'n',
1948
+ 'volslider' => $O['volslider_on_mp3j'],
1949
+ 'style' => '',
1950
+ 'counterpart' => '',
1951
+ 'counterparts' => '',
1952
+ 'ids' => '',
1953
+ 'fontsize' => $O['font_size_mp3j'],
1954
+ 'dload' => 'false',
1955
+ );
1956
+
1957
+ $defaults['playlist'] = array(
1958
+ 'tracks' => '',
1959
+ 'track' => '',
1960
+ 'captions' => '',
1961
+ 'dload' => $O['show_downloadmp3'],
1962
+ 'title' => '',
1963
+ 'list' => $O['playlist_show'],
1964
+ 'pn' => 'y',
1965
+ 'width' => '',
1966
+ 'pos' => $O['player_float'],
1967
+ 'stop' => 'y',
1968
+ 'shuffle' => false,
1969
+ 'pick' => '',
1970
+ 'id' => '',
1971
+ 'loop' => $O['playlist_repeat'],
1972
+ 'autoplay' => $O['auto_play'],
1973
+ 'vol' => $O['initial_vol'],
1974
+ 'height' => $O['playerHeight'],
1975
+ 'fsort' => 'asc',
1976
+ 'style' => '',
1977
+ 'images' => 'true',
1978
+ 'imglinks' => '',
1979
+ 'imagesize' => $O['imageSize'],
1980
+ 'ids' => '',
1981
+ 'counterparts' => '',
1982
+ 'counterpart' => '',
1983
+ 'font_size_1' => $O['colour_settings']['font_size_1'],
1984
+ 'font_size_2' => $O['colour_settings']['font_size_2'],
1985
+ 'font_family_1' => $O['colour_settings']['font_family_1'],
1986
+ 'font_family_2' => $O['colour_settings']['font_family_2'],
1987
+ 'titlealign' => $O['colour_settings']['titleAlign'],
1988
+ 'titleoffset' => $O['colour_settings']['titleOffset'],
1989
+ 'titleoffsetr' => $O['colour_settings']['titleOffsetR'],
1990
+ 'titlebold' => $O['colour_settings']['titleBold'],
1991
+ 'titleitalic' => $O['colour_settings']['titleItalic'],
1992
+ 'captionbold' => $O['colour_settings']['captionBold'],
1993
+ 'captionitalic' => $O['colour_settings']['captionItalic'],
1994
+ 'listbold' => $O['colour_settings']['listBold'],
1995
+ 'listitalic' => $O['colour_settings']['listItalic'],
1996
+ 'listalign' => $O['colour_settings']['listAlign'],
1997
+ 'imagealign' => $O['colour_settings']['imageAlign'],
1998
+ 'imgoverflow' => $O['colour_settings']['imgOverflow'],
1999
+ 'titletop' => $O['colour_settings']['titleTop'],
2000
+ 'titlecol' => '',
2001
+ 'fontsize' => '',
2002
+ 'pptext' => $O['popout_button_title'],
2003
+ );
2004
+
2005
+ $defaults['popout'] = array(
2006
+ 'tracks' => '',
2007
+ 'track' => '',
2008
+ 'captions' => '',
2009
+ 'dload' => $this->theSettings['show_downloadmp3'],
2010
+ 'title' => '',
2011
+ 'text' => $this->theSettings['popout_button_title'],
2012
+ 'stop' => 'y',
2013
+ 'pn' => 'y',
2014
+ 'list' => $this->theSettings['playlist_show'],
2015
+ 'width' => '',
2016
+ 'pos' => $this->theSettings['player_float'],
2017
+ 'shuffle' => false,
2018
+ 'pick' => '',
2019
+ 'id' => '',
2020
+ 'loop' => $this->theSettings['playlist_repeat'],
2021
+ 'autoplay' => $this->theSettings['auto_play'],
2022
+ 'vol' => $this->theSettings['initial_vol'],
2023
+ 'height' => $this->theSettings['playerHeight'],
2024
+ 'tag' => 'p',
2025
+ 'image' => '',
2026
+ 'fsort' => 'asc',
2027
+ 'style' => '',
2028
+ 'images' => 'true',
2029
+ 'imagesize' => $O['imageSize'],
2030
+ 'imglinks' => '',
2031
+ 'ids' => '',
2032
+ 'counterparts' => '',
2033
+ 'counterpart' => '',
2034
+ 'font_size_1' => $O['colour_settings']['font_size_1'],
2035
+ 'font_size_2' => $O['colour_settings']['font_size_2'],
2036
+ 'font_family_1' => $O['colour_settings']['font_family_1'],
2037
+ 'font_family_2' => $O['colour_settings']['font_family_2'],
2038
+ 'titlealign' => $O['colour_settings']['titleAlign'],
2039
+ 'titleoffset' => $O['colour_settings']['titleOffset'],
2040
+ 'titleoffsetr' => $O['colour_settings']['titleOffsetR'],
2041
+ 'titlebold' => $O['colour_settings']['titleBold'],
2042
+ 'titleitalic' => $O['colour_settings']['titleItalic'],
2043
+ 'captionbold' => $O['colour_settings']['captionBold'],
2044
+ 'captionitalic' => $O['colour_settings']['captionItalic'],
2045
+ 'listbold' => $O['colour_settings']['listBold'],
2046
+ 'listitalic' => $O['colour_settings']['listItalic'],
2047
+ 'listalign' => $O['colour_settings']['listAlign'],
2048
+ 'imagealign' => $O['colour_settings']['imageAlign'],
2049
+ 'imgoverflow' => $O['colour_settings']['imgOverflow'],
2050
+ 'titletop' => $O['colour_settings']['titleTop'],
2051
+ 'titlecol' => '',
2052
+ 'fontsize' => ''
2053
+ );
2054
+
2055
+ return $defaults[ $shortcode ];
2056
+ }
2057
 
2058
+
2059
+
2060
+
2061
+
2062
+ function pluginDefaultSettings () {
2063
+
2064
+ $colour_keys = array(
2065
+ 'screen_colour' => 'rgba(0, 0, 0, 0.13)',
2066
+ 'loadbar_colour' => 'rgba(0, 73, 86, 0.59)',
2067
+ 'posbar_colour' => 'rgba(0, 177, 180, 0.99)',
2068
+ 'posbar_tint' => 'soften',
2069
+ 'playlist_colour' => 'rgba(16, 16, 16, 0.82)',
2070
+ 'playlist_tint' => 'lighten1',
2071
+ 'list_divider' => 'none',
2072
+ 'screen_text_colour' => '#202020',
2073
+ 'list_text_colour' => '#ffffff',
2074
+ 'list_current_colour' => '#00e2f0',
2075
+ 'list_hover_colour' => '#bdfdf7',
2076
+ 'listBGa_current' => 'transparent',
2077
+ 'listBGa_hover' => 'transparent',
2078
+ 'font_size_1' => '23',
2079
+ 'font_size_2' => '17',
2080
+ 'font_family_1' => 'theme',
2081
+ 'font_family_2' => 'theme',
2082
+ 'titleAlign' => 'left',
2083
+ 'titleOffset' => '16px',
2084
+ 'titleOffsetR' => '16px',
2085
+ 'titleBold' => 'true',
2086
+ 'titleHide' => 'false',
2087
+ 'titleItalic' => 'false',
2088
+ 'titleTop' => '20px',
2089
+ 'captionBold' => 'false',
2090
+ 'captionItalic' => 'true',
2091
+ 'listBold' => 'false',
2092
+ 'listItalic' => 'false',
2093
+ 'listAlign' => 'left',
2094
+ 'imageAlign' => 'right',
2095
+ 'imgOverflow' => 'false',
2096
+ 'userClasses' => 'flip',
2097
+ 'indicator' => 'colour',
2098
+ 'adminBG' => '#f6f6f6',
2099
+ 'adminCheckerIMG' => 'false',
2100
+ 'adminIMG' => $this->PluginFolder . '/css/admin/images/test-image.jpg',
2101
+ 'adminSizer_w' => '570px',
2102
+ 'adminSizer_h' => '320px'
2103
+ );
2104
+
2105
+ $audioFormats = array(
2106
+ 'mp3' => 'true',
2107
+ 'mp4' => 'true',
2108
+ 'ogg' => 'false',
2109
+ 'wav' => 'false',
2110
+ 'webm' => 'false'
2111
+ );
2112
+
2113
+ $SETTINGS = array( // defaults
2114
+ 'initial_vol' => '100',
2115
+ 'auto_play' => 'false',
2116
+ 'mp3_dir' => '/',
2117
+ 'player_theme' => 'defaultDark',
2118
+ 'allow_remoteMp3' => 'true',
2119
+ 'player_float' => 'none',
2120
+ 'player_onblog' => 'true',
2121
+ 'playlist_show' => 'true',
2122
+ 'remember_settings' => 'true',
2123
+ 'hide_mp3extension' => 'true',
2124
+ 'show_downloadmp3' => 'false',
2125
+ //'disable_template_tag' => 'false',
2126
+ 'db_plugin_version' => $this->version_of_plugin,
2127
+ 'custom_stylesheet' => $this->newCSScustom,
2128
+ 'echo_debug' => 'false',
2129
+ 'add_track_numbering' => 'false',
2130
+ 'enable_popout' => 'true',
2131
+ 'playlist_repeat' => 'false',
2132
+ 'player_width' => '100%',
2133
+ 'popout_background' => '#f0f0f0',
2134
+ 'popout_background_image' => '',
2135
+ 'colour_settings' => $colour_keys,
2136
+ //'use_fixed_css' => 'false',
2137
+ 'paddings_top' => '5px',
2138
+ 'paddings_bottom' => '30px',
2139
+ 'paddings_inner' => '30px',
2140
+ 'popout_max_height' => '600',
2141
+ 'popout_width' => '400',
2142
+ 'popout_button_title' => 'Popout',
2143
+ 'max_list_height' => '450',
2144
+ 'encode_files' => 'true',
2145
+ 'library_sortcol' => 'file',
2146
+ 'library_direction' => 'ASC',
2147
+ 'disable_jquery_libs' => '',
2148
+ 'run_shcode_in_excerpt' => 'false',
2149
+ 'f_separator' => ',',
2150
+ 'c_separator' => ';',
2151
+ 'volslider_on_singles' => 'false',
2152
+ 'volslider_on_mp3j' => 'false',
2153
+ 'dload_text' => 'Download',
2154
+ 'loggedout_dload_text' => 'Log in to download',
2155
+ 'loggedout_dload_link' => $this->WPinstallpath . '/wp-login.php',
2156
+ //'touch_punch_js' => 'true',
2157
+ 'force_browser_dload' => 'true',
2158
+ 'dloader_remote_path' => '',
2159
+ 'make_player_from_link' => 'true',
2160
+ 'make_player_from_link_shcode' => '[mp3j track="{TEXT}@{URL}" volslider="y"]',
2161
+ 'audioFormats' => $audioFormats,
2162
+ 'replace_WP_playlist' => 'true',
2163
+ 'replace_WP_audio' => 'true',
2164
+ 'replace_WP_embedded' => 'true',
2165
+ 'replace_WP_attached' => 'true',
2166
+ 'replacerShortcode_playlist' => 'player',
2167
+ 'replacerShortcode_single' => 'mp3j',
2168
+ 'imageSize' => 'autoH',
2169
+ 'folderFeedSortcol' => 'file',
2170
+ 'folderFeedDirection' => 'ASC',
2171
+ 'autoCounterpart' => 'true',
2172
+ 'allowRangeRequests' => 'true',
2173
+ 'playerHeight' => '92px',
2174
+ 'font_size_mp3t' => '18px',
2175
+ 'font_size_mp3j' => '18px',
2176
+ 'showErrors' => 'admin',
2177
+ 'flipMP3t' => 'false',
2178
+ 'flipMP3j' => 'true',
2179
+ //'libUseID3' => 'false',
2180
+ 'mp3tColour' => '#00869b',
2181
+ 'mp3tColour_on' => 'false',
2182
+ 'mp3jColour' => '#404040',
2183
+ 'mp3jColour_on' => 'false',
2184
+ 'playerTitle1' => 'titles',
2185
+ 'playerTitle2' => 'artist',
2186
+ 'hasListMeta' => 'false',
2187
+ );
2188
+
2189
+ return $SETTINGS;
2190
+ }
2191
+
2192
+
2193
+
2194
+
2195
+
2196
+
2197
+ } //end class
2198
  ?>
mp3jplayer.php CHANGED
@@ -3,25 +3,14 @@
3
  Plugin Name: MP3-jPlayer
4
  Plugin URI: http://mp3-jplayer.com
5
  Description: Easy, Flexible Audio for WordPress.
6
- Version: 2.3.3
7
  Author: Simon Ward
8
  Author URI: http://www.sjward.org
9
  License: GPL2
10
-
11
- Copyright 2010 - 2015 Simon Ward
12
-
13
- This program is free software; you can redistribute it and/or modify
14
- it under the terms of the GNU General Public License, version 2, as
15
- published by the Free Software Foundation.
16
-
17
- This program is distributed in the hope that it will be useful,
18
- but WITHOUT ANY WARRANTY; without even the implied warranty of
19
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20
- GNU General Public License for more details.
21
-
22
- You should have received a copy of the GNU General Public License
23
- along with the plugin; if not, write to the Free Software
24
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25
  */
26
 
27
 
@@ -30,175 +19,40 @@ if ( ! function_exists( 'get_bloginfo' ) ) { //prevent direct access
30
  }
31
 
32
 
33
- $path = dirname(__FILE__);
34
- include_once( $path . '/main.php');
35
- include_once( $path . '/frontend.php'); //extends main
 
 
 
36
 
37
- if ( class_exists("MP3j_Front") ) {
 
38
  $MP3JP = new MP3j_Front();
39
  }
40
 
41
- if ( isset($MP3JP) )
42
- {
43
- include_once( $path . '/widget-ui.php'); //ui widget (playlister)
44
- include_once( $path . '/widget-sh.php'); //shortcodes Widget
45
-
46
- $ops = $MP3JP->theSettings;
47
- if ( is_admin() )
48
- {
49
- include_once( $path . '/admin-settings.php'); //settings page
50
- include_once( $path . '/admin-colours.php');
51
-
52
- function mp3j_adminpage()
53
- {
54
- /*
55
- //extension page - $p (arr)
56
- --
57
- [parent]-> str
58
- [title]-> str
59
- [menuName]-> str
60
- [capability]-> str
61
- [slug]-> str
62
- [drawFunction]-> str
63
- ['scriptsFunction'] -> false/str
64
- */
65
-
66
- //add menu pages
67
- global $MP3JP;
68
-
69
- //Settings page
70
- $pluginpage = add_menu_page( 'Settings | MP3 jPlayer', 'MP3 jPlayer', 'manage_options', 'mp3-jplayer', 'mp3j_print_admin_page' ); //root
71
- add_submenu_page( 'mp3-jplayer', 'Settings | MP3 jPlayer', 'Settings', 'manage_options', 'mp3-jplayer', 'mp3j_print_admin_page' ); //root in sub
72
- add_action( 'admin_head-'. $pluginpage, array(&$MP3JP, 'mp3j_admin_header') );
73
- $MP3JP->menuHANDLES['parent'] = $pluginpage;
74
-
75
- if ( $MP3JP->setup['designPage'] === true ) {
76
- $subm_colours = add_submenu_page( 'mp3-jplayer', 'Design | MP3 jPlayer', 'Design', 'manage_options', 'mp3-jplayer-colours', 'mp3j_print_colours_page' );
77
- add_action( 'admin_head-'. $subm_colours, array(&$MP3JP, 'mp3j_admin_colours_header') );
78
- $MP3JP->dbug['str'] .= 'colours handle: ' . $subm_colours;
79
- $MP3JP->menuHANDLES['design'] = $subm_colours;
80
- }
81
- //Extension pages
82
- foreach ( $MP3JP->EXTpages as $p ) {
83
- $submenu = add_submenu_page( $p['parent'], $p['title'], $p['menuName'], $p['capability'], $p['slug'], $p['drawFunction'] );
84
- $MP3JP->menuHANDLES[ $p['slug'] ] = $submenu;
85
- if ( $p['scriptsFunction'] !== false ) {
86
- add_action( 'admin_head-'. $submenu, $p['scriptsFunction'] );
87
- }
88
- }
89
-
90
- add_filter( 'plugin_action_links', 'mp3j_plugin_links', 10, 2 );
91
- }
92
-
93
- function mp3j_plugin_links( $links, $file )
94
- {
95
- //add a settings link on plugins page
96
- if( $file == 'mp3-jplayer/mp3jplayer.php' ) {
97
- $settings_link = '<a href="admin.php?page=mp3-jplayer">'.__('Settings').'</a>';
98
- array_unshift( $links, $settings_link );
99
- }
100
- return $links;
101
- }
102
-
103
- add_action('deactivate_mp3-jplayer/mp3jplayer.php', array(&$MP3JP, 'uninitFox'));
104
- add_action('admin_menu', 'mp3j_adminpage', 100);
105
- //add_action( 'admin_enqueue_scripts', array(&$MP3JP, 'adminPostEditHead') );
106
- }
107
-
108
- //hooks - settings
109
- function MJPsettings_players() {
110
- do_action( 'MJPsettings_players' );
111
- }
112
- function MJPsettings_mp3t() {
113
- do_action( 'MJPsettings_mp3t' );
114
- }
115
- function MJPsettings_mp3j() {
116
- do_action( 'MJPsettings_mp3j' );
117
- }
118
- function MJPsettings_playlist() {
119
- do_action( 'MJPsettings_playlist' );
120
- }
121
- function MJPsettings_submit() {
122
- do_action( 'MJPsettings_submit' );
123
- }
124
 
125
- //hooks - design
126
- function MJPdesign_text() {
127
- do_action( 'MJPdesign_text' );
128
- }
129
- function MJPdesign_areas() {
130
- do_action( 'MJPdesign_areas' );
131
- }
132
- function MJPdesign_fonts() {
133
- do_action( 'MJPdesign_fonts' );
134
- }
135
- function MJPdesign_alignments() {
136
- do_action( 'MJPdesign_alignments' );
137
- }
138
- function MJPdesign_mods() {
139
- do_action( 'MJPdesign_mods' );
140
- }
141
- function MJPdesign_submit() {
142
- do_action( 'MJPdesign_submit' );
143
- }
144
 
145
-
146
- //hooks - process
147
- function MJPfront_mp3t( $atts = array() ) {
148
- return apply_filters( 'MJPfront_mp3t', $atts );
149
- }
150
- function MJPfront_mp3j( $atts = array() ) {
151
- return apply_filters( 'MJPfront_mp3j', $atts );
152
- }
153
-
154
- //hooks - frontend templates
155
- function mp3j_addscripts( $style = "" ) {
156
- do_action('mp3j_addscripts', $style);
157
- }
158
- add_action('mp3j_addscripts', array(&$MP3JP, 'scripts_tag_handler'), 1, 1 );
159
-
160
- function mp3j_put( $shortcodes = "" ) {
161
- do_action( 'mp3j_put', $shortcodes );
162
- }
163
- add_action('mp3j_put', array(&$MP3JP, 'template_tag_handler'), 10, 1 );
164
-
165
- function mp3j_debug( $display = "" ) {
166
- do_action('mp3j_debug', $display);
167
- }
168
- add_action('mp3j_debug', array(&$MP3JP, 'debug_info'), 10, 1 );
169
-
170
- function mp3j_grab_library( $format = "" ) {
171
- $lib = apply_filters('mp3j_grab_library', '' );
172
- return $lib;
173
- }
174
- add_filter('mp3j_grab_library', array(&$MP3JP, 'grablibrary_handler'), 10, 1 );
175
-
176
- function mp3j_settings ( $settings = array() ) {
177
- do_action('mp3j_settings', $settings );
178
- }
179
- add_action('mp3j_settings', array(&$MP3JP, 'mp3j_settings'), 1, 1 );
180
-
181
-
182
- //Widgets
183
- function mp3jplayer_widget_init() {
184
- register_widget( 'MP3_jPlayer' );
185
- }
186
- add_action( 'widgets_init', 'mp3jplayer_widget_init' );
187
-
188
- function mp3jshortcodes_widget_init() {
189
- register_widget( 'MP3j_single' ); //silly name but can't change it now!
190
  }
191
- add_action( 'widgets_init', 'mp3jshortcodes_widget_init' );
192
 
193
 
194
- //Shortcodes
195
- add_shortcode('mp3t', array(&$MP3JP, 'inline_play_handler'));
196
- add_shortcode('mp3j', array(&$MP3JP, 'inline_play_graphic'));
197
- add_shortcode('mp3-jplayer', array(&$MP3JP, 'primary_player'));
 
198
 
199
- remove_shortcode('popout');
200
- add_shortcode('popout', array(&$MP3JP, 'popout_link_player'));
201
- add_shortcode('mp3-popout', array(&$MP3JP, 'popout_link_player'));
202
 
203
  if ( $ops['replace_WP_playlist'] === 'true' && ! is_admin() ) {
204
  remove_shortcode('playlist');
@@ -210,8 +64,14 @@ if ( isset($MP3JP) )
210
  add_shortcode('audio', array(&$MP3JP, 'replaceAudioShortcode'));
211
  }
212
 
213
- //wp hooks
214
- add_action('init', array( &$MP3JP, 'onInit'), 100 );
 
 
 
 
 
 
215
  /*
216
  * should use this conditional but it means that as page loads up players initially appear unstyled (aren't styled until
217
  * last minute) TODO:enqueue style in header when poss.
@@ -219,26 +79,24 @@ if ( isset($MP3JP) )
219
  */
220
  //$WPversion = substr( get_bloginfo('version'), 0, 3);
221
  //if ( $WPversion < 3.3 ) {
222
- add_action('wp_head', array(&$MP3JP, 'header_scripts_handler'), 2); //Support for WP versions below 3.3
223
  //}
224
- add_action('wp_footer', array(&$MP3JP, 'checkAddScripts'), 1); //Final chance to enqueue, process this action early (priority < 20).
225
- add_action('wp_footer', array(&$MP3JP, 'footercode_handler'), 200); //Add any inline js, process this action late (enqueues fire at priority 20).
226
 
227
- add_filter('get_the_excerpt', array(&$MP3JP, 'get_excerpt_handler'), 1);
228
- add_filter('the_content', array(&$MP3JP, 'afterExcerpt'), 9999);
229
 
230
- //options
231
  if ( $ops['make_player_from_link'] == "true" ) {
232
- add_filter('the_content', array(&$MP3JP, 'replace_links'), 1);
233
  }
234
  if ( $ops['run_shcode_in_excerpt'] == "true" ) {
235
- add_filter( 'the_excerpt', 'shortcode_unautop');
236
- add_filter( 'the_excerpt', 'do_shortcode');
237
  }
 
 
238
 
239
- //retired
240
- function mp3j_set_meta( $tracks, $captions = "", $startnum = 1 ) { } //since 1.7
241
- function mp3j_flag( $set = 1 ) { } //since 1.6
242
- function mp3j_div() { } //since 1.8
243
  }
 
244
  ?>
3
  Plugin Name: MP3-jPlayer
4
  Plugin URI: http://mp3-jplayer.com
5
  Description: Easy, Flexible Audio for WordPress.
6
+ Version: 2.4
7
  Author: Simon Ward
8
  Author URI: http://www.sjward.org
9
  License: GPL2
10
+
11
+ This program is free software; you can redistribute it and/or modify
12
+ it under the terms of the GNU General Public License, version 2, as
13
+ published by the Free Software Foundation.
 
 
 
 
 
 
 
 
 
 
 
14
  */
15
 
16
 
19
  }
20
 
21
 
22
+ $path = dirname( __FILE__ );
23
+ include_once( $path . '/widget-ui.php' );
24
+ include_once( $path . '/widget-sh.php' );
25
+ include_once( $path . '/template-functions.php' );
26
+ include_once( $path . '/main.php' );
27
+ include_once( $path . '/frontend.php' );
28
 
29
+
30
+ if ( class_exists( 'MP3j_Front' ) ) {
31
  $MP3JP = new MP3j_Front();
32
  }
33
 
34
+ if ( isset( $MP3JP ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
 
36
+ add_action( 'init', array( &$MP3JP, 'onInit' ), 100 );
37
+ add_action( 'widgets_init', array( &$MP3JP, 'registerWidgets' ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
 
39
+ if ( is_admin() ) {
40
+ include_once( $path . '/admin-settings.php');
41
+ include_once( $path . '/admin-colours.php');
42
+ add_action( 'admin_menu', array( &$MP3JP, 'createAdminPages' ), 100 );
43
+ add_action( 'deactivate_mp3-jplayer/mp3jplayer.php', array( &$MP3JP, 'deactivate' ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
  }
 
45
 
46
 
47
+ //$MP3JP->registerShortcodes();
48
+ $ops = $MP3JP->theSettings;
49
+ add_shortcode( 'mp3t', array( &$MP3JP, 'inline_play_handler' ) );
50
+ add_shortcode( 'mp3j', array( &$MP3JP, 'inline_play_graphic' ) );
51
+ add_shortcode( 'mp3-jplayer', array( &$MP3JP, 'primary_player' ) );
52
 
53
+ remove_shortcode( 'popout' );
54
+ add_shortcode( 'popout', array( &$MP3JP, 'popout_link_player' ) );
55
+ add_shortcode( 'mp3-popout', array( &$MP3JP, 'popout_link_player' ) );
56
 
57
  if ( $ops['replace_WP_playlist'] === 'true' && ! is_admin() ) {
58
  remove_shortcode('playlist');
64
  add_shortcode('audio', array(&$MP3JP, 'replaceAudioShortcode'));
65
  }
66
 
67
+
68
+ //$MP3JP->registerTagCallbacks();
69
+ add_action( 'mp3j_addscripts', array( &$MP3JP, 'scripts_tag_handler' ), 1, 1 );
70
+ add_action( 'mp3j_put', array( &$MP3JP, 'template_tag_handler' ), 10, 1 );
71
+ add_action( 'mp3j_debug', array( &$MP3JP, 'debug_info' ), 10, 1 );
72
+ add_filter( 'mp3j_grab_library', array( &$MP3JP, 'grablibrary_handler' ), 10, 1 );
73
+ add_action( 'mp3j_settings', array( &$MP3JP, 'mp3j_settings' ), 1, 1 );
74
+
75
  /*
76
  * should use this conditional but it means that as page loads up players initially appear unstyled (aren't styled until
77
  * last minute) TODO:enqueue style in header when poss.
79
  */
80
  //$WPversion = substr( get_bloginfo('version'), 0, 3);
81
  //if ( $WPversion < 3.3 ) {
82
+ add_action('wp_head', array( &$MP3JP, 'header_scripts_handler' ), 2); //Support for WP versions below 3.3
83
  //}
84
+ add_action('wp_footer', array( &$MP3JP, 'checkAddScripts' ), 1); //Final chance to enqueue, process this action early (priority < 20).
85
+ add_action('wp_footer', array( &$MP3JP, 'footercode_handler' ), 200); //Add any inline js, process this action late (enqueues fire at priority 20).
86
 
87
+ add_filter('get_the_excerpt', array( &$MP3JP, 'get_excerpt_handler' ), 1);
88
+ add_filter('the_content', array( &$MP3JP, 'afterExcerpt' ), 9999);
89
 
 
90
  if ( $ops['make_player_from_link'] == "true" ) {
91
+ add_filter('the_content', array( &$MP3JP, 'replace_links' ), 1);
92
  }
93
  if ( $ops['run_shcode_in_excerpt'] == "true" ) {
94
+ add_filter( 'the_excerpt', 'shortcode_unautop' );
95
+ add_filter( 'the_excerpt', 'do_shortcode' );
96
  }
97
+
98
+
99
 
 
 
 
 
100
  }
101
+
102
  ?>
popout.php CHANGED
@@ -17,7 +17,7 @@
17
  <script type='text/javascript' src='js/popout/slider.min.js'></script>
18
  <script type='text/javascript' src='js/wp-backwards-compat/jquery.ui.touch-punch.min.js'></script>
19
  <script type='text/javascript' src='js/jquery.jplayer.min.2.7.1.js'></script>
20
- <script type='text/javascript' src='js/mp3-jplayer-2.3.3.js'></script>
21
 
22
  <script type='text/javascript'>
23
  function loadcss(filename) {
@@ -78,6 +78,7 @@
78
 
79
  MP3_JPLAYER.exThresh = window.opener.MP3_JPLAYER.exThresh;
80
  MP3_JPLAYER.showErrors = window.opener.MP3_JPLAYER.showErrors;
 
81
 
82
  if ( typeof window.opener.statsMJPajax !== 'undefined' ) {
83
  var wos = window.opener.statsMJPajax;
17
  <script type='text/javascript' src='js/popout/slider.min.js'></script>
18
  <script type='text/javascript' src='js/wp-backwards-compat/jquery.ui.touch-punch.min.js'></script>
19
  <script type='text/javascript' src='js/jquery.jplayer.min.2.7.1.js'></script>
20
+ <script type='text/javascript' src='js/mp3-jplayer-2.3.4.js'></script>
21
 
22
  <script type='text/javascript'>
23
  function loadcss(filename) {
78
 
79
  MP3_JPLAYER.exThresh = window.opener.MP3_JPLAYER.exThresh;
80
  MP3_JPLAYER.showErrors = window.opener.MP3_JPLAYER.showErrors;
81
+ MP3_JPLAYER.hasListMeta = window.opener.MP3_JPLAYER.hasListMeta;
82
 
83
  if ( typeof window.opener.statsMJPajax !== 'undefined' ) {
84
  var wos = window.opener.statsMJPajax;
readme.txt CHANGED
@@ -7,7 +7,7 @@ Tags: audio, audio player, audio playlist, mp3 player, music player, media, mobi
7
  License: GPLv2 or later
8
  Requires at least: 2.9
9
  Tested up to: 4.2
10
- Stable tag: 2.3.3
11
 
12
  Easy, Flexible Audio for WordPress.
13
 
@@ -108,6 +108,12 @@ Either on the [forum at Wordpress](https://wordpress.org/support/plugin/mp3-jpla
108
 
109
  == Changelog ==
110
 
 
 
 
 
 
 
111
  = 2.3.3 =
112
  * Added an option to use ID3 tag info for the track titles. The option is on the settings page under the files tab. Notes: 1)This option is for files uploaded to your media library only. 2)When selected players will display the title and artist info from the media's ID3 meta captured during upload. 3)This feature is supported in WP 3.6 and higher.
113
  * Added a settings page option for single file players to position the play button on the left or right hand side (equivalent to using the shortcode param 'flip').
7
  License: GPLv2 or later
8
  Requires at least: 2.9
9
  Tested up to: 4.2
10
+ Stable tag: 2.4.0
11
 
12
  Easy, Flexible Audio for WordPress.
13
 
108
 
109
  == Changelog ==
110
 
111
+ = 2.4 =
112
+ * Added a simple colour scheme setting for the single file players that allows very easy theming.
113
+ * Added new track title and captioning settings, allowing you to choose which ID3 data to display for your media library files. Choose from title, artist, album, caption, and upload date.
114
+ * Added an option to flip the playlist player controls to the left. Use the modifier name 'flip' on the design page or in a shortcode.
115
+ * Added an option to display track captions within the playlists.
116
+
117
  = 2.3.3 =
118
  * Added an option to use ID3 tag info for the track titles. The option is on the settings page under the files tab. Notes: 1)This option is for files uploaded to your media library only. 2)When selected players will display the title and artist info from the media's ID3 meta captured during upload. 3)This feature is supported in WP 3.6 and higher.
119
  * Added a settings page option for single file players to position the play button on the left or right hand side (equivalent to using the shortcode param 'flip').
template-functions.php ADDED
@@ -0,0 +1,99 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+
4
+ //Widgets
5
+ function mp3jplayer_widget_init() {
6
+ register_widget( 'MP3_jPlayer' );
7
+ }
8
+ function mp3jshortcodes_widget_init() {
9
+ register_widget( 'MP3j_single' );
10
+ }
11
+
12
+
13
+
14
+
15
+ //hooks - settings
16
+ function MJPsettings_players() {
17
+ do_action( 'MJPsettings_players' );
18
+ }
19
+ function MJPsettings_mp3t() {
20
+ do_action( 'MJPsettings_mp3t' );
21
+ }
22
+ function MJPsettings_mp3j() {
23
+ do_action( 'MJPsettings_mp3j' );
24
+ }
25
+ function MJPsettings_playlist() {
26
+ do_action( 'MJPsettings_playlist' );
27
+ }
28
+ function MJPsettings_submit() {
29
+ do_action( 'MJPsettings_submit' );
30
+ }
31
+
32
+ //hooks - design
33
+ function MJPdesign_text() {
34
+ do_action( 'MJPdesign_text' );
35
+ }
36
+ function MJPdesign_areas() {
37
+ do_action( 'MJPdesign_areas' );
38
+ }
39
+ function MJPdesign_fonts() {
40
+ do_action( 'MJPdesign_fonts' );
41
+ }
42
+ function MJPdesign_alignments() {
43
+ do_action( 'MJPdesign_alignments' );
44
+ }
45
+ function MJPdesign_mods() {
46
+ do_action( 'MJPdesign_mods' );
47
+ }
48
+ function MJPdesign_submit() {
49
+ do_action( 'MJPdesign_submit' );
50
+ }
51
+
52
+ //hooks - process
53
+ function MJPfront_mp3t( $atts = array() ) {
54
+ return apply_filters( 'MJPfront_mp3t', $atts );
55
+ }
56
+ function MJPfront_mp3j( $atts = array() ) {
57
+ return apply_filters( 'MJPfront_mp3j', $atts );
58
+ }
59
+
60
+
61
+ //hooks - frontend templates
62
+ function mp3j_addscripts( $style = "" ) {
63
+ do_action('mp3j_addscripts', $style);
64
+ }
65
+
66
+
67
+ function mp3j_put( $shortcodes = "" ) {
68
+ do_action( 'mp3j_put', $shortcodes );
69
+ }
70
+
71
+
72
+ function mp3j_debug( $display = "" ) {
73
+ do_action('mp3j_debug', $display);
74
+ }
75
+
76
+
77
+ function mp3j_grab_library( $format = "" ) {
78
+ $lib = apply_filters('mp3j_grab_library', '' );
79
+ return $lib;
80
+ }
81
+
82
+
83
+ function mp3j_settings ( $settings = array() ) {
84
+ do_action('mp3j_settings', $settings );
85
+ }
86
+
87
+
88
+
89
+
90
+
91
+ //retired
92
+ function mp3j_set_meta( $tracks, $captions = "", $startnum = 1 ) { } //since 1.7
93
+ function mp3j_flag( $set = 1 ) { } //since 1.6
94
+ function mp3j_div() { } //since 1.8
95
+
96
+
97
+
98
+
99
+ ?>