web/wp-content/themes/thematic/library/extensions/theme-options.php
author ymh
Fri, 12 Mar 2010 13:29:04 +0000
changeset 1 0d28b7c10758
permissions -rw-r--r--
First commit
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
0d28b7c10758 First commit
ymh
parents:
diff changeset
     1
<?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
     2
0d28b7c10758 First commit
ymh
parents:
diff changeset
     3
// Theme options adapted from "A Theme Tip For WordPress Theme Authors"
0d28b7c10758 First commit
ymh
parents:
diff changeset
     4
// http://literalbarrage.org/blog/archives/2007/05/03/a-theme-tip-for-wordpress-theme-authors/
0d28b7c10758 First commit
ymh
parents:
diff changeset
     5
0d28b7c10758 First commit
ymh
parents:
diff changeset
     6
$themename = "Thematic";
0d28b7c10758 First commit
ymh
parents:
diff changeset
     7
$shortname = "thm";
0d28b7c10758 First commit
ymh
parents:
diff changeset
     8
0d28b7c10758 First commit
ymh
parents:
diff changeset
     9
// Create theme options
0d28b7c10758 First commit
ymh
parents:
diff changeset
    10
0d28b7c10758 First commit
ymh
parents:
diff changeset
    11
$options = array (
0d28b7c10758 First commit
ymh
parents:
diff changeset
    12
0d28b7c10758 First commit
ymh
parents:
diff changeset
    13
				array(	"name" => __('Index Insert Position','thematic'),
0d28b7c10758 First commit
ymh
parents:
diff changeset
    14
						"desc" => __('The widgetized Index Insert will follow after this post number.','thematic'),
0d28b7c10758 First commit
ymh
parents:
diff changeset
    15
						"id" => $shortname."_insert_position",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    16
						"std" => "2",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    17
						"type" => "text"),
0d28b7c10758 First commit
ymh
parents:
diff changeset
    18
0d28b7c10758 First commit
ymh
parents:
diff changeset
    19
				array(	"name" => __('Info on Author Page','thematic'),
0d28b7c10758 First commit
ymh
parents:
diff changeset
    20
						"desc" => __("Display a <a href=\"http://microformats.org/wiki/hcard\" target=\"_blank\">microformatted vCard</a>—with the author's avatar, bio and email—on the author page.",'thematic'),
0d28b7c10758 First commit
ymh
parents:
diff changeset
    21
						"id" => $shortname."_authorinfo",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    22
						"std" => "false",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    23
						"type" => "checkbox"),
0d28b7c10758 First commit
ymh
parents:
diff changeset
    24
0d28b7c10758 First commit
ymh
parents:
diff changeset
    25
				array(	"name" => __('Text in Footer','thematic'),
0d28b7c10758 First commit
ymh
parents:
diff changeset
    26
						"desc" => __("You can use the following shortcodes in your footer text: [wp-link] [theme-link] [loginout-link] [blog-title] [blog-link] [the-year]",'thematic'),
0d28b7c10758 First commit
ymh
parents:
diff changeset
    27
						"id" => $shortname."_footertext",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    28
						"std" => __("Powered by [wp-link]. Built on the [theme-link].", 'thematic'),
0d28b7c10758 First commit
ymh
parents:
diff changeset
    29
						"type" => "textarea",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    30
						"options" => array(	"rows" => "5",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    31
											"cols" => "94") ),
0d28b7c10758 First commit
ymh
parents:
diff changeset
    32
0d28b7c10758 First commit
ymh
parents:
diff changeset
    33
		);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    34
0d28b7c10758 First commit
ymh
parents:
diff changeset
    35
function mytheme_add_admin() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    36
0d28b7c10758 First commit
ymh
parents:
diff changeset
    37
    global $themename, $shortname, $options, $blog_id;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    38
0d28b7c10758 First commit
ymh
parents:
diff changeset
    39
    if ( $_GET['page'] == basename(__FILE__) ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    40
    
0d28b7c10758 First commit
ymh
parents:
diff changeset
    41
        if ( 'save' == $_REQUEST['action'] ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    42
0d28b7c10758 First commit
ymh
parents:
diff changeset
    43
                foreach ($options as $value) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    44
                    update_option( $value['id'], $_REQUEST[ $value['id'] ] ); }
0d28b7c10758 First commit
ymh
parents:
diff changeset
    45
0d28b7c10758 First commit
ymh
parents:
diff changeset
    46
                foreach ($options as $value) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    47
                    if( isset( $_REQUEST[ $value['id'] ] ) ) { update_option( $value['id'], $_REQUEST[ $value['id'] ]  ); } else { delete_option( $value['id'] ); } }
0d28b7c10758 First commit
ymh
parents:
diff changeset
    48
0d28b7c10758 First commit
ymh
parents:
diff changeset
    49
                header("Location: themes.php?page=theme-options.php&saved=true");
0d28b7c10758 First commit
ymh
parents:
diff changeset
    50
                die;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    51
0d28b7c10758 First commit
ymh
parents:
diff changeset
    52
        } else if( 'reset' == $_REQUEST['action'] ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    53
0d28b7c10758 First commit
ymh
parents:
diff changeset
    54
            foreach ($options as $value) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    55
                delete_option( $value['id'] ); }
0d28b7c10758 First commit
ymh
parents:
diff changeset
    56
0d28b7c10758 First commit
ymh
parents:
diff changeset
    57
            header("Location: themes.php?page=theme-options.php&reset=true");
0d28b7c10758 First commit
ymh
parents:
diff changeset
    58
            die;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    59
0d28b7c10758 First commit
ymh
parents:
diff changeset
    60
        } else if ( 'resetwidgets' == $_REQUEST['action'] ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    61
            update_option('sidebars_widgets',NULL);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    62
            header("Location: themes.php?page=theme-options.php&resetwidgets=true");
0d28b7c10758 First commit
ymh
parents:
diff changeset
    63
            die;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    64
        } 
0d28b7c10758 First commit
ymh
parents:
diff changeset
    65
    }
0d28b7c10758 First commit
ymh
parents:
diff changeset
    66
0d28b7c10758 First commit
ymh
parents:
diff changeset
    67
    add_theme_page($themename." Options", "Thematic Options", 'edit_themes', basename(__FILE__), 'mytheme_admin');
0d28b7c10758 First commit
ymh
parents:
diff changeset
    68
0d28b7c10758 First commit
ymh
parents:
diff changeset
    69
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    70
0d28b7c10758 First commit
ymh
parents:
diff changeset
    71
function mytheme_admin() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    72
0d28b7c10758 First commit
ymh
parents:
diff changeset
    73
    global $themename, $shortname, $options;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    74
0d28b7c10758 First commit
ymh
parents:
diff changeset
    75
    if ( $_REQUEST['saved'] ) echo '<div id="message" class="updated fade"><p><strong>'.$themename.' '.__('settings saved.','thematic').'</strong></p></div>';
0d28b7c10758 First commit
ymh
parents:
diff changeset
    76
    if ( $_REQUEST['reset'] ) echo '<div id="message" class="updated fade"><p><strong>'.$themename.' '.__('settings reset.','thematic').'</strong></p></div>';
0d28b7c10758 First commit
ymh
parents:
diff changeset
    77
    if ( $_REQUEST['resetwidgets'] ) echo '<div id="message" class="updated fade"><p><strong>'.$themename.' '.__('widgets reset.','thematic').'</strong></p></div>';
0d28b7c10758 First commit
ymh
parents:
diff changeset
    78
    
0d28b7c10758 First commit
ymh
parents:
diff changeset
    79
?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    80
<div class="wrap">
0d28b7c10758 First commit
ymh
parents:
diff changeset
    81
<?php if ( function_exists('screen_icon') ) screen_icon(); ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    82
<h2><?php echo $themename; ?> Options</h2>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    83
0d28b7c10758 First commit
ymh
parents:
diff changeset
    84
<form method="post" action="">
0d28b7c10758 First commit
ymh
parents:
diff changeset
    85
0d28b7c10758 First commit
ymh
parents:
diff changeset
    86
	<table class="form-table">
0d28b7c10758 First commit
ymh
parents:
diff changeset
    87
0d28b7c10758 First commit
ymh
parents:
diff changeset
    88
<?php foreach ($options as $value) { 
0d28b7c10758 First commit
ymh
parents:
diff changeset
    89
	
0d28b7c10758 First commit
ymh
parents:
diff changeset
    90
	switch ( $value['type'] ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    91
		case 'text':
0d28b7c10758 First commit
ymh
parents:
diff changeset
    92
		?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    93
		<tr valign="top"> 
0d28b7c10758 First commit
ymh
parents:
diff changeset
    94
			<th scope="row"><label for="<?php echo $value['id']; ?>"><?php echo __($value['name'],'thematic'); ?></label></th>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    95
			<td>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    96
				<input name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>" type="<?php echo $value['type']; ?>" value="<?php if ( get_option( $value['id'] ) != "") { echo get_option( $value['id'] ); } else { echo $value['std']; } ?>" />
0d28b7c10758 First commit
ymh
parents:
diff changeset
    97
				<?php echo __($value['desc'],'thematic'); ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    98
0d28b7c10758 First commit
ymh
parents:
diff changeset
    99
			</td>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   100
		</tr>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   101
		<?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
   102
		break;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   103
		
0d28b7c10758 First commit
ymh
parents:
diff changeset
   104
		case 'select':
0d28b7c10758 First commit
ymh
parents:
diff changeset
   105
		?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   106
		<tr valign="top">
0d28b7c10758 First commit
ymh
parents:
diff changeset
   107
			<th scope="row"><label for="<?php echo $value['id']; ?>"><?php echo __($value['name'],'thematic'); ?></label></th>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   108
				<td>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   109
					<select name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>">
0d28b7c10758 First commit
ymh
parents:
diff changeset
   110
					<?php foreach ($value['options'] as $option) { ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   111
					<option<?php if ( get_option( $value['id'] ) == $option) { echo ' selected="selected"'; } elseif ($option == $value['std']) { echo ' selected="selected"'; } ?>><?php echo $option; ?></option>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   112
					<?php } ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   113
				</select>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   114
			</td>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   115
		</tr>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   116
		<?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
   117
		break;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   118
		
0d28b7c10758 First commit
ymh
parents:
diff changeset
   119
		case 'textarea':
0d28b7c10758 First commit
ymh
parents:
diff changeset
   120
		$ta_options = $value['options'];
0d28b7c10758 First commit
ymh
parents:
diff changeset
   121
		?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   122
		<tr valign="top"> 
0d28b7c10758 First commit
ymh
parents:
diff changeset
   123
			<th scope="row"><label for="<?php echo $value['id']; ?>"><?php echo __($value['name'],'thematic'); ?></label></th>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   124
			<td><textarea name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>" cols="<?php echo $ta_options['cols']; ?>" rows="<?php echo $ta_options['rows']; ?>"><?php 
0d28b7c10758 First commit
ymh
parents:
diff changeset
   125
				if( get_option($value['id']) != "") {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   126
						echo __(stripslashes(get_option($value['id'])),'thematic');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   127
					}else{
0d28b7c10758 First commit
ymh
parents:
diff changeset
   128
						echo __($value['std'],'thematic');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   129
				}?></textarea><br /><?php echo __($value['desc'],'thematic'); ?></td>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   130
		</tr>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   131
		<?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
   132
		break;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   133
0d28b7c10758 First commit
ymh
parents:
diff changeset
   134
		case 'radio':
0d28b7c10758 First commit
ymh
parents:
diff changeset
   135
		?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   136
		<tr valign="top"> 
0d28b7c10758 First commit
ymh
parents:
diff changeset
   137
			<th scope="row"><?php echo __($value['name'],'thematic'); ?></th>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   138
			<td>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   139
				<?php foreach ($value['options'] as $key=>$option) { 
0d28b7c10758 First commit
ymh
parents:
diff changeset
   140
				$radio_setting = get_option($value['id']);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   141
				if($radio_setting != ''){
0d28b7c10758 First commit
ymh
parents:
diff changeset
   142
					if ($key == get_option($value['id']) ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   143
						$checked = "checked=\"checked\"";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   144
						} else {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   145
							$checked = "";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   146
						}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   147
				}else{
0d28b7c10758 First commit
ymh
parents:
diff changeset
   148
					if($key == $value['std']){
0d28b7c10758 First commit
ymh
parents:
diff changeset
   149
						$checked = "checked=\"checked\"";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   150
					}else{
0d28b7c10758 First commit
ymh
parents:
diff changeset
   151
						$checked = "";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   152
					}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   153
				}?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   154
				<input type="radio" name="<?php echo $value['id']; ?>" id="<?php echo $value['id'] . $key; ?>" value="<?php echo $key; ?>" <?php echo $checked; ?> /><label for="<?php echo $value['id'] . $key; ?>"><?php echo $option; ?></label><br />
0d28b7c10758 First commit
ymh
parents:
diff changeset
   155
				<?php } ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   156
			</td>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   157
		</tr>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   158
		<?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
   159
		break;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   160
		
0d28b7c10758 First commit
ymh
parents:
diff changeset
   161
		case 'checkbox':
0d28b7c10758 First commit
ymh
parents:
diff changeset
   162
		?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   163
		<tr valign="top"> 
0d28b7c10758 First commit
ymh
parents:
diff changeset
   164
			<th scope="row"><?php echo __($value['name'],'thematic'); ?></th>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   165
			<td>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   166
				<?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
   167
					if(get_option($value['id'])){
0d28b7c10758 First commit
ymh
parents:
diff changeset
   168
						$checked = "checked=\"checked\"";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   169
					}else{
0d28b7c10758 First commit
ymh
parents:
diff changeset
   170
						$checked = "";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   171
					}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   172
				?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   173
				<input type="checkbox" name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>" value="true" <?php echo $checked; ?> />
0d28b7c10758 First commit
ymh
parents:
diff changeset
   174
				<label for="<?php echo $value['id']; ?>"><?php echo __($value['desc'],'thematic'); ?></label>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   175
			</td>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   176
		</tr>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   177
		<?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
   178
		break;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   179
0d28b7c10758 First commit
ymh
parents:
diff changeset
   180
		default:
0d28b7c10758 First commit
ymh
parents:
diff changeset
   181
0d28b7c10758 First commit
ymh
parents:
diff changeset
   182
		break;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   183
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   184
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   185
?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   186
0d28b7c10758 First commit
ymh
parents:
diff changeset
   187
	</table>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   188
0d28b7c10758 First commit
ymh
parents:
diff changeset
   189
	<p class="submit">
0d28b7c10758 First commit
ymh
parents:
diff changeset
   190
		<input class="button-primary" name="save" type="submit" value="<?php _e('Save changes','thematic'); ?>" />    
0d28b7c10758 First commit
ymh
parents:
diff changeset
   191
		<input type="hidden" name="action" value="save" />
0d28b7c10758 First commit
ymh
parents:
diff changeset
   192
	</p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   193
</form>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   194
<form method="post" action="">
0d28b7c10758 First commit
ymh
parents:
diff changeset
   195
	<p class="submit">
0d28b7c10758 First commit
ymh
parents:
diff changeset
   196
		<input class="button-secondary" name="reset" type="submit" value="<?php _e('Reset','thematic'); ?>" />
0d28b7c10758 First commit
ymh
parents:
diff changeset
   197
		<input type="hidden" name="action" value="reset" />
0d28b7c10758 First commit
ymh
parents:
diff changeset
   198
	</p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   199
</form>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   200
<form method="post" action="">
0d28b7c10758 First commit
ymh
parents:
diff changeset
   201
	<p class="submit">
0d28b7c10758 First commit
ymh
parents:
diff changeset
   202
		<input class="button-secondary" name="reset_widgets" type="submit" value="<?php _e('Reset Widgets','thematic'); ?>" />
0d28b7c10758 First commit
ymh
parents:
diff changeset
   203
		<input type="hidden" name="action" value="resetwidgets" />
0d28b7c10758 First commit
ymh
parents:
diff changeset
   204
	</p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   205
</form>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   206
0d28b7c10758 First commit
ymh
parents:
diff changeset
   207
<p><?php _e('For more information about this theme, <a href="http://themeshaper.com">visit ThemeShaper</a>. Please visit the <a href="http://themeshaper.com/forums/">ThemeShaper Forums</a> if you have any questions about Thematic.', 'thematic'); ?></p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   208
</div>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   209
<?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
   210
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   211
0d28b7c10758 First commit
ymh
parents:
diff changeset
   212
add_action('admin_menu' , 'mytheme_add_admin'); 
0d28b7c10758 First commit
ymh
parents:
diff changeset
   213
0d28b7c10758 First commit
ymh
parents:
diff changeset
   214
0d28b7c10758 First commit
ymh
parents:
diff changeset
   215
?>