Theme Test Drive - Version 2.8.3

Version Description

  • Update for compatibility to WordPress 3.4.1 by replacing deprecated calls (thanks Lance Willett!)
  • Use new WP_Theme API for loading themes and getting theme information
  • Fix PHP warnings
Download this release

Release Info

Developer freediver
Plugin Icon 128x128 Theme Test Drive
Version 2.8.3
Comparing to
See all releases

Code changes from version 2.8.2 to 2.8.3

Files changed (2) hide show
  1. readme.txt +6 -1
  2. themedrive.php +33 -25
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: freediver
3
  Donate link: https://www.networkforgood.org/donation/MakeDonation.aspx?ORGID2=920155875
4
  Tags: theme, themes, admin, test
5
  Requires at least: 2.3
6
- Tested up to: 3.3
7
  Stable tag: trunk
8
 
9
  Safely test drive any theme as an administrator, while visitors use the default one.
@@ -22,6 +22,11 @@ Plugin by Vladimir Prelovac. Need a <a href="http://www.prelovac.com/vladimir/se
22
 
23
  == Changelog ==
24
 
 
 
 
 
 
25
  = 2.8.2 =
26
  * WordPress 3.2 compatibility
27
 
3
  Donate link: https://www.networkforgood.org/donation/MakeDonation.aspx?ORGID2=920155875
4
  Tags: theme, themes, admin, test
5
  Requires at least: 2.3
6
+ Tested up to: 3.4.1
7
  Stable tag: trunk
8
 
9
  Safely test drive any theme as an administrator, while visitors use the default one.
22
 
23
  == Changelog ==
24
 
25
+ = 2.8.3 =
26
+ * Update for compatibility to WordPress 3.4.1 by replacing deprecated calls (thanks Lance Willett!)
27
+ * Use new WP_Theme API for loading themes and getting theme information
28
+ * Fix PHP warnings
29
+
30
  = 2.8.2 =
31
  * WordPress 3.2 compatibility
32
 
themedrive.php CHANGED
@@ -4,7 +4,7 @@
4
  Plugin URI: http://www.prelovac.com/vladimir/wordpress-plugins/theme-test-drive
5
  Description: Safely test drive any theme while visitors are using the default one. Includes instant theme preview via thumbnail.
6
  Author: Vladimir Prelovac
7
- Version: 2.8.2
8
  Author URI: http://www.prelovac.com/vladimir/
9
 
10
  To-Do:
@@ -15,7 +15,7 @@
15
 
16
  // // // PLUGIN CODE // // //
17
 
18
- $themedrive_localversion = "2.8.2";
19
 
20
  $wp_themedrive_plugin_url = trailingslashit(get_bloginfo('wpurl')) . PLUGINDIR . '/' . dirname(plugin_basename(__FILE__));
21
 
@@ -210,7 +210,7 @@
210
  $theme = $all['theme'];
211
  }
212
 
213
- $theme_data = get_theme($theme);
214
 
215
  if (!empty($theme_data)) {
216
  // Don't let people peek at unpublished themes
@@ -221,7 +221,7 @@
221
  }
222
 
223
  // perhaps they are using the theme directory instead of title
224
- $themes = get_themes();
225
 
226
  foreach ($themes as $theme_data) {
227
  // use Stylesheet as it's unique to the theme - Template could point to another theme's templates
@@ -259,9 +259,9 @@
259
 
260
  function themedrive_switcher()
261
  {
262
- $themes = get_themes();
263
 
264
- $default_theme = get_current_theme();
265
 
266
  if (count($themes) > 1) {
267
  $theme_names = array_keys($themes);
@@ -279,11 +279,11 @@
279
  }
280
 
281
  if ((themedrive_get_theme() == $theme_name) || ((themedrive_get_theme() == '') && ($theme_name == $default_theme))) {
282
- $ts .= ' <option value="' . $theme_name . '" selected="selected">' . htmlspecialchars($theme_name) . '</option>' . "\n";
283
  } else {
284
- $ts .= ' <option value="' . $theme_name . '">' . htmlspecialchars($theme_name) . '</option>' . "\n";
285
  }
286
- $tp .= '<li><a href="' . trailingslashit(get_option('siteurl')) . '?theme=' . htmlspecialchars($theme_name) . '">' . $theme_name . '</a></li>';
287
  }
288
  $ts .= ' </select>' . "\n\n";
289
  $tp .= '</ul></div></div>';
@@ -313,7 +313,7 @@
313
  // Admin Panel
314
  function themedrive_add_pages()
315
  {
316
- add_theme_page('Theme Test Drive Options', 'Theme Test Drive', 8, __FILE__, 'themedrive_options_page');
317
  }
318
 
319
 
@@ -327,20 +327,20 @@
327
  {
328
  global $themedrive_localversion;
329
  global $wp_themedrive_plugin_url;
330
-
331
  $status = themedrive_getinfo();
332
 
333
- $theVersion = $status[1];
334
- $theMessage = $status[3];
335
 
336
 
337
 
338
  if ((version_compare(strval($theVersion), strval($themedrive_localversion), '>') == 1)) {
339
  $msg = 'Latest version available ' . ' <strong>' . $theVersion . '</strong><br />' . $theMessage;
340
- _e('<div id="message" class="updated fade"><p>' . $msg . '</p></div>');
341
  }
342
 
343
- if ($_POST['button'] == 'Enable Theme Drive') {
344
  check_admin_referer('theme-drive');
345
  $themedrive = $_POST['td_themes'];
346
  update_option('td_themes', $themedrive);
@@ -352,8 +352,8 @@
352
 
353
 
354
  // Show message
355
- _e('<div id="message" class="updated fade"><p>' . $msg_status . '</p></div>');
356
- } elseif ($_POST['button'] == 'Disable Theme Drive') {
357
  check_admin_referer('theme-drive');
358
  // Delete the option from the DB if it's empty
359
  delete_option('td_themes');
@@ -361,7 +361,7 @@
361
  $msg_status = "Theme Test Drive has been disabled.";
362
 
363
  // Show message
364
- _e('<div id="message" class="updated fade"><p>' . $msg_status . '</p></div>');
365
  }
366
 
367
 
@@ -385,8 +385,11 @@
385
  </div>
386
 
387
  <div id="mainblock" style="width:710px">
388
-
389
  <div class="dbx-content">
 
 
 
390
  <form name="form_apu" method="post" action="<?php
391
  echo $action_url
392
  ?>">
@@ -422,7 +425,7 @@
422
  ?>
423
  <p>You can specify the level of users to have access to the selected theme preview. By default it is set to 10 (admin only). Level 7 are editors, level 4 are authors and level 1 are contributors. The access level is ignored for accessing the site with ?theme=xxx paramaeter. </p>
424
  <input style="border:1px solid #D1D1D1;width:100px;" name="access_level" id="access_level" value="<?php
425
- echo $access_level
426
  ?>" /> Access level<br />
427
  <p>
428
  <strong>Disabling:</strong> If you wish to stop using Theme Test Drive, press <em>Disable</em> button.
@@ -477,12 +480,17 @@ Alternatively, disabling this plug-in should also do the trick.
477
  function themedrive_check_plugin_version($plugin)
478
  {
479
  global $plugindir, $themedrive_localversion;
 
 
 
480
 
481
  if (strpos($plugin, 'themedrive.php') !== false) {
482
  $status = themedrive_getinfo();
483
-
484
- $theVersion = $status[1];
485
- $theMessage = $status[3];
 
 
486
 
487
  if ((version_compare(strval($theVersion), strval($themedrive_localversion), '>') == 1)) {
488
  $msg = 'Latest version available ' . ' <strong>' . $theVersion . '</strong><br />' . $theMessage;
@@ -495,9 +503,9 @@ Alternatively, disabling this plug-in should also do the trick.
495
 
496
  function themdrive_js()
497
  {
498
- echo '<script type="text/javascript">var bubbleImagePath="' . get_bloginfo('wpurl') . '/wp-content/plugins/theme-test-drive/bg.png"</script>';
499
  echo "\n";
500
- echo '<script src="' . get_bloginfo('wpurl') . '/wp-content/plugins/theme-test-drive/previewbubble.js" type="text/javascript"></script>';
501
  echo "\n";
502
  }
503
 
4
  Plugin URI: http://www.prelovac.com/vladimir/wordpress-plugins/theme-test-drive
5
  Description: Safely test drive any theme while visitors are using the default one. Includes instant theme preview via thumbnail.
6
  Author: Vladimir Prelovac
7
+ Version: 2.8.3
8
  Author URI: http://www.prelovac.com/vladimir/
9
 
10
  To-Do:
15
 
16
  // // // PLUGIN CODE // // //
17
 
18
+ $themedrive_localversion = "2.8.3";
19
 
20
  $wp_themedrive_plugin_url = trailingslashit(get_bloginfo('wpurl')) . PLUGINDIR . '/' . dirname(plugin_basename(__FILE__));
21
 
210
  $theme = $all['theme'];
211
  }
212
 
213
+ $theme_data = wp_get_theme($theme);
214
 
215
  if (!empty($theme_data)) {
216
  // Don't let people peek at unpublished themes
221
  }
222
 
223
  // perhaps they are using the theme directory instead of title
224
+ $themes = wp_get_themes();
225
 
226
  foreach ($themes as $theme_data) {
227
  // use Stylesheet as it's unique to the theme - Template could point to another theme's templates
259
 
260
  function themedrive_switcher()
261
  {
262
+ $themes = wp_get_themes();
263
 
264
+ $default_theme = wp_get_theme();
265
 
266
  if (count($themes) > 1) {
267
  $theme_names = array_keys($themes);
279
  }
280
 
281
  if ((themedrive_get_theme() == $theme_name) || ((themedrive_get_theme() == '') && ($theme_name == $default_theme))) {
282
+ $ts .= ' <option value="' . esc_attr( $theme_name ) . '" selected="selected">' . $themes[$theme_name]['Name'] . '</option>' . "\n";
283
  } else {
284
+ $ts .= ' <option value="' . esc_attr( $theme_name ) . '">' . $themes[$theme_name]['Name'] . '</option>' . "\n";
285
  }
286
+ $tp .= '<li><a href="' . trailingslashit(get_option('siteurl')) . '?theme=' . esc_url($theme_name) . '">' . $theme_name . '</a></li>';
287
  }
288
  $ts .= ' </select>' . "\n\n";
289
  $tp .= '</ul></div></div>';
313
  // Admin Panel
314
  function themedrive_add_pages()
315
  {
316
+ add_theme_page( 'Theme Test Drive Options', 'Theme Test Drive', 'edit_theme_options', 'themedrive_options_page', 'themedrive_options_page' );
317
  }
318
 
319
 
327
  {
328
  global $themedrive_localversion;
329
  global $wp_themedrive_plugin_url;
330
+
331
  $status = themedrive_getinfo();
332
 
333
+ $theVersion = isset( $status[1] ) ? $status[1] : '';
334
+ $theMessage = isset( $status[3] ) ? $status[3] : '';
335
 
336
 
337
 
338
  if ((version_compare(strval($theVersion), strval($themedrive_localversion), '>') == 1)) {
339
  $msg = 'Latest version available ' . ' <strong>' . $theVersion . '</strong><br />' . $theMessage;
340
+ echo '<div id="message" class="updated fade"><p>' . $msg . '</p></div>';
341
  }
342
 
343
+ if ( isset( $_POST['button'] ) && 'Enable Theme Drive' == $_POST['button']) {
344
  check_admin_referer('theme-drive');
345
  $themedrive = $_POST['td_themes'];
346
  update_option('td_themes', $themedrive);
352
 
353
 
354
  // Show message
355
+ echo '<div id="message" class="updated fade"><p>' . $msg_status . '</p></div>';
356
+ } elseif ( isset( $_POST['button'] ) && 'Disable Theme Drive' == $_POST['button'] ) {
357
  check_admin_referer('theme-drive');
358
  // Delete the option from the DB if it's empty
359
  delete_option('td_themes');
361
  $msg_status = "Theme Test Drive has been disabled.";
362
 
363
  // Show message
364
+ echo '<div id="message" class="updated fade"><p>' . $msg_status . '</p></div>';
365
  }
366
 
367
 
385
  </div>
386
 
387
  <div id="mainblock" style="width:710px">
388
+ <?php $action_url; ?>
389
  <div class="dbx-content">
390
+ <?php if ( ! isset( $action_url) )
391
+ $action_url = '';
392
+ ?>
393
  <form name="form_apu" method="post" action="<?php
394
  echo $action_url
395
  ?>">
425
  ?>
426
  <p>You can specify the level of users to have access to the selected theme preview. By default it is set to 10 (admin only). Level 7 are editors, level 4 are authors and level 1 are contributors. The access level is ignored for accessing the site with ?theme=xxx paramaeter. </p>
427
  <input style="border:1px solid #D1D1D1;width:100px;" name="access_level" id="access_level" value="<?php
428
+ echo esc_attr( $access_level )
429
  ?>" /> Access level<br />
430
  <p>
431
  <strong>Disabling:</strong> If you wish to stop using Theme Test Drive, press <em>Disable</em> button.
480
  function themedrive_check_plugin_version($plugin)
481
  {
482
  global $plugindir, $themedrive_localversion;
483
+
484
+ $theVersion = '';
485
+ $theMessage = '';
486
 
487
  if (strpos($plugin, 'themedrive.php') !== false) {
488
  $status = themedrive_getinfo();
489
+
490
+ if ( isset( $status[1] ) )
491
+ $theVersion = $status[1];
492
+ if ( isset( $status[3] ) )
493
+ $theMessage = $status[3];
494
 
495
  if ((version_compare(strval($theVersion), strval($themedrive_localversion), '>') == 1)) {
496
  $msg = 'Latest version available ' . ' <strong>' . $theVersion . '</strong><br />' . $theMessage;
503
 
504
  function themdrive_js()
505
  {
506
+ echo '<script type="text/javascript">var bubbleImagePath="' . site_url() . '/wp-content/plugins/theme-test-drive/bg.png"</script>';
507
  echo "\n";
508
+ echo '<script src="' . site_url() . '/wp-content/plugins/theme-test-drive/previewbubble.js" type="text/javascript"></script>';
509
  echo "\n";
510
  }
511