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