web/wp-content/themes/thematic/library/extensions/theme-options.php
changeset 1 0d28b7c10758
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/thematic/library/extensions/theme-options.php	Fri Mar 12 13:29:04 2010 +0000
@@ -0,0 +1,215 @@
+<?php
+
+// Theme options adapted from "A Theme Tip For WordPress Theme Authors"
+// http://literalbarrage.org/blog/archives/2007/05/03/a-theme-tip-for-wordpress-theme-authors/
+
+$themename = "Thematic";
+$shortname = "thm";
+
+// Create theme options
+
+$options = array (
+
+				array(	"name" => __('Index Insert Position','thematic'),
+						"desc" => __('The widgetized Index Insert will follow after this post number.','thematic'),
+						"id" => $shortname."_insert_position",
+						"std" => "2",
+						"type" => "text"),
+
+				array(	"name" => __('Info on Author Page','thematic'),
+						"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'),
+						"id" => $shortname."_authorinfo",
+						"std" => "false",
+						"type" => "checkbox"),
+
+				array(	"name" => __('Text in Footer','thematic'),
+						"desc" => __("You can use the following shortcodes in your footer text: [wp-link] [theme-link] [loginout-link] [blog-title] [blog-link] [the-year]",'thematic'),
+						"id" => $shortname."_footertext",
+						"std" => __("Powered by [wp-link]. Built on the [theme-link].", 'thematic'),
+						"type" => "textarea",
+						"options" => array(	"rows" => "5",
+											"cols" => "94") ),
+
+		);
+
+function mytheme_add_admin() {
+
+    global $themename, $shortname, $options, $blog_id;
+
+    if ( $_GET['page'] == basename(__FILE__) ) {
+    
+        if ( 'save' == $_REQUEST['action'] ) {
+
+                foreach ($options as $value) {
+                    update_option( $value['id'], $_REQUEST[ $value['id'] ] ); }
+
+                foreach ($options as $value) {
+                    if( isset( $_REQUEST[ $value['id'] ] ) ) { update_option( $value['id'], $_REQUEST[ $value['id'] ]  ); } else { delete_option( $value['id'] ); } }
+
+                header("Location: themes.php?page=theme-options.php&saved=true");
+                die;
+
+        } else if( 'reset' == $_REQUEST['action'] ) {
+
+            foreach ($options as $value) {
+                delete_option( $value['id'] ); }
+
+            header("Location: themes.php?page=theme-options.php&reset=true");
+            die;
+
+        } else if ( 'resetwidgets' == $_REQUEST['action'] ) {
+            update_option('sidebars_widgets',NULL);
+            header("Location: themes.php?page=theme-options.php&resetwidgets=true");
+            die;
+        } 
+    }
+
+    add_theme_page($themename." Options", "Thematic Options", 'edit_themes', basename(__FILE__), 'mytheme_admin');
+
+}
+
+function mytheme_admin() {
+
+    global $themename, $shortname, $options;
+
+    if ( $_REQUEST['saved'] ) echo '<div id="message" class="updated fade"><p><strong>'.$themename.' '.__('settings saved.','thematic').'</strong></p></div>';
+    if ( $_REQUEST['reset'] ) echo '<div id="message" class="updated fade"><p><strong>'.$themename.' '.__('settings reset.','thematic').'</strong></p></div>';
+    if ( $_REQUEST['resetwidgets'] ) echo '<div id="message" class="updated fade"><p><strong>'.$themename.' '.__('widgets reset.','thematic').'</strong></p></div>';
+    
+?>
+<div class="wrap">
+<?php if ( function_exists('screen_icon') ) screen_icon(); ?>
+<h2><?php echo $themename; ?> Options</h2>
+
+<form method="post" action="">
+
+	<table class="form-table">
+
+<?php foreach ($options as $value) { 
+	
+	switch ( $value['type'] ) {
+		case 'text':
+		?>
+		<tr valign="top"> 
+			<th scope="row"><label for="<?php echo $value['id']; ?>"><?php echo __($value['name'],'thematic'); ?></label></th>
+			<td>
+				<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']; } ?>" />
+				<?php echo __($value['desc'],'thematic'); ?>
+
+			</td>
+		</tr>
+		<?php
+		break;
+		
+		case 'select':
+		?>
+		<tr valign="top">
+			<th scope="row"><label for="<?php echo $value['id']; ?>"><?php echo __($value['name'],'thematic'); ?></label></th>
+				<td>
+					<select name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>">
+					<?php foreach ($value['options'] as $option) { ?>
+					<option<?php if ( get_option( $value['id'] ) == $option) { echo ' selected="selected"'; } elseif ($option == $value['std']) { echo ' selected="selected"'; } ?>><?php echo $option; ?></option>
+					<?php } ?>
+				</select>
+			</td>
+		</tr>
+		<?php
+		break;
+		
+		case 'textarea':
+		$ta_options = $value['options'];
+		?>
+		<tr valign="top"> 
+			<th scope="row"><label for="<?php echo $value['id']; ?>"><?php echo __($value['name'],'thematic'); ?></label></th>
+			<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 
+				if( get_option($value['id']) != "") {
+						echo __(stripslashes(get_option($value['id'])),'thematic');
+					}else{
+						echo __($value['std'],'thematic');
+				}?></textarea><br /><?php echo __($value['desc'],'thematic'); ?></td>
+		</tr>
+		<?php
+		break;
+
+		case 'radio':
+		?>
+		<tr valign="top"> 
+			<th scope="row"><?php echo __($value['name'],'thematic'); ?></th>
+			<td>
+				<?php foreach ($value['options'] as $key=>$option) { 
+				$radio_setting = get_option($value['id']);
+				if($radio_setting != ''){
+					if ($key == get_option($value['id']) ) {
+						$checked = "checked=\"checked\"";
+						} else {
+							$checked = "";
+						}
+				}else{
+					if($key == $value['std']){
+						$checked = "checked=\"checked\"";
+					}else{
+						$checked = "";
+					}
+				}?>
+				<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 />
+				<?php } ?>
+			</td>
+		</tr>
+		<?php
+		break;
+		
+		case 'checkbox':
+		?>
+		<tr valign="top"> 
+			<th scope="row"><?php echo __($value['name'],'thematic'); ?></th>
+			<td>
+				<?php
+					if(get_option($value['id'])){
+						$checked = "checked=\"checked\"";
+					}else{
+						$checked = "";
+					}
+				?>
+				<input type="checkbox" name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>" value="true" <?php echo $checked; ?> />
+				<label for="<?php echo $value['id']; ?>"><?php echo __($value['desc'],'thematic'); ?></label>
+			</td>
+		</tr>
+		<?php
+		break;
+
+		default:
+
+		break;
+	}
+}
+?>
+
+	</table>
+
+	<p class="submit">
+		<input class="button-primary" name="save" type="submit" value="<?php _e('Save changes','thematic'); ?>" />    
+		<input type="hidden" name="action" value="save" />
+	</p>
+</form>
+<form method="post" action="">
+	<p class="submit">
+		<input class="button-secondary" name="reset" type="submit" value="<?php _e('Reset','thematic'); ?>" />
+		<input type="hidden" name="action" value="reset" />
+	</p>
+</form>
+<form method="post" action="">
+	<p class="submit">
+		<input class="button-secondary" name="reset_widgets" type="submit" value="<?php _e('Reset Widgets','thematic'); ?>" />
+		<input type="hidden" name="action" value="resetwidgets" />
+	</p>
+</form>
+
+<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>
+</div>
+<?php
+}
+
+add_action('admin_menu' , 'mytheme_add_admin'); 
+
+
+?>
\ No newline at end of file