web/wp-content/themes/malleable/library/admin/theme-settings-admin.php
changeset 1 0d28b7c10758
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/malleable/library/admin/theme-settings-admin.php	Fri Mar 12 13:29:04 2010 +0000
@@ -0,0 +1,101 @@
+<?php
+
+/**
+* Returns an array of the theme settings
+* Add all options to a single array
+* This makes one entry in the database
+*
+* @since 0.1
+*/
+function malleable_theme_settings() {
+	$settings_arr = array(
+		'general_address' => false,
+		'general_address_street' => false,
+		'general_address_city' => false,
+		'general_address_state' => false,
+		'general_address_zip' => false,
+		'general_address_phone' => false,
+				
+		'feature_category' => false,
+		'feature_num_posts' => false,
+		'excerpt_category' => false,
+		'excerpt_num_posts' => false,
+		'headlines_category' => array(),
+		'headlines_num_posts' => false,
+	);
+
+	return apply_filters('malleable_settings_args', $settings_arr);
+}
+
+/**
+* Handles the theme settings
+*
+* @since 0.1
+*/
+function malleable_theme_page() {
+
+	/*
+	* Variables to be used throughout the settings page
+	*/
+	$theme_name = __('Malleable','malleable');
+	$settings_page_title = __('Malleable Theme Settings','malleable');
+	$hidden_field_name = 'malleable_submit_hidden';
+
+	/*
+	* Get the theme settings and add them to the database
+	*/
+	$settings_arr = malleable_theme_settings();
+	add_option('malleable_theme_settings', $settings_arr);
+
+	/*
+	* Set form data IDs the same as settings keys
+	*/
+	$settings_keys = array_keys($settings_arr);
+	foreach($settings_keys as $key) :
+		$data[$key] = $key;
+	endforeach;
+
+	/*
+	* Get existing options from the database
+	*/
+	$settings = get_option('malleable_theme_settings');
+
+	foreach($settings_arr as $key => $value) :
+		$val[$key] = $settings[$key];
+	endforeach;
+	
+	/*
+	* If the form has been set
+	* Loop through the values
+	* Set the option in the database
+	*/
+	if($_POST[$hidden_field_name] == 'Y') :
+
+		foreach($settings_arr as $key => $value) :
+			$settings[$key] = $val[$key] = $_POST[$data[$key]];
+		endforeach;
+
+		update_option('malleable_theme_settings', $settings);
+
+		/*
+		* Open main div for the theme settings
+		*/
+		echo '<div class="wrap">';
+		echo '<h2>' . $settings_page_title . '</h2>';
+		echo '<div class="updated" style="margin:15px 0;">';
+		echo '<p><strong>' . __('Settings saved.','malleable') . '</strong></p>';
+		echo '</div>';
+
+	else :
+		echo '<div class="wrap">';
+		echo '<h2>' . $settings_page_title . '</h2>';
+
+	endif;
+
+	/*
+	* Load the theme settings form
+	*/
+	include(MALLEABLE . '/library/admin/theme-settings-xhtml.php');
+}
+
+?>
\ No newline at end of file