web/wp-content/themes/selecta/ocmx/custom.php
author ymh <ymh.work@gmail.com>
Mon, 22 Mar 2010 16:36:28 +0100
changeset 5 ac511f1ccc8e
parent 1 0d28b7c10758
permissions -rw-r--r--
add hgignore
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
// Custom fields for WP write panel
0d28b7c10758 First commit
ymh
parents:
diff changeset
     4
// This code is protected under Creative Commons License: http://creativecommons.org/licenses/by-nc-nd/3.0/
0d28b7c10758 First commit
ymh
parents:
diff changeset
     5
0d28b7c10758 First commit
ymh
parents:
diff changeset
     6
$obox_meta = array(
0d28b7c10758 First commit
ymh
parents:
diff changeset
     7
		"thumbnail" => array (
0d28b7c10758 First commit
ymh
parents:
diff changeset
     8
			"name"			=> "video_thumbnail",
0d28b7c10758 First commit
ymh
parents:
diff changeset
     9
			"default" 		=> "",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    10
			"label" 		=> "Video Thumbnail url",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    11
			"desc"      	=> "Add an image for use as a thumbnail for your videos in the Four-Block Widget and Archives",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    12
			"input_type"  	=> "image",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    13
			"input_size"	=> "50",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    14
			"img_width"		=> "300",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    15
			"img_height"	=> "300"
0d28b7c10758 First commit
ymh
parents:
diff changeset
    16
		),
0d28b7c10758 First commit
ymh
parents:
diff changeset
    17
		"media" => array (
0d28b7c10758 First commit
ymh
parents:
diff changeset
    18
			"name"			=> "other_media",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    19
			"default" 		=> "",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    20
			"label" 		=> "Main Image",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    21
			"desc"      	=> "Select a header image to use for your post.",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    22
			"input_type"  	=> "textarea",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    23
			"input_type"  	=> "image",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    24
			"input_size"	=> "50",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    25
			"img_width"		=> "560",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    26
			"img_height"	=> ""
0d28b7c10758 First commit
ymh
parents:
diff changeset
    27
		),
0d28b7c10758 First commit
ymh
parents:
diff changeset
    28
		"video" => array (
0d28b7c10758 First commit
ymh
parents:
diff changeset
    29
			"name"			=> "main_video",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    30
			"default" 		=> "",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    31
			"label" 		=> "Video Object",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    32
			"desc"      	=> "Upload your video with the <img src='images/media-button-video.gif' alt='Add Video' /> button above the WYSIWYG, and paste url here.",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    33
			"input_type"  	=> "textarea"
0d28b7c10758 First commit
ymh
parents:
diff changeset
    34
		)
0d28b7c10758 First commit
ymh
parents:
diff changeset
    35
	);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    36
	
0d28b7c10758 First commit
ymh
parents:
diff changeset
    37
function create_meta_box_ui() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    38
	global $post, $obox_meta;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    39
		$meta_count = 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    40
?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    41
	<table style="width: 100%;">
0d28b7c10758 First commit
ymh
parents:
diff changeset
    42
<?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
    43
	foreach ($obox_meta as $metabox) :
0d28b7c10758 First commit
ymh
parents:
diff changeset
    44
		$meta_count = ($meta_count + 1);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    45
		$obox_metabox_value = get_post_meta($post->ID,$metabox["name"],true);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    46
		
0d28b7c10758 First commit
ymh
parents:
diff changeset
    47
		if ($obox_metabox_value == "" || !isset($obox_metabox_value)) :
0d28b7c10758 First commit
ymh
parents:
diff changeset
    48
			$obox_metabox_value = $metabox['default'];
0d28b7c10758 First commit
ymh
parents:
diff changeset
    49
		endif; ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    50
			<tr>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    51
            	<td width="10%" valign="top"><label for="<?php echo $metabox; ?>"><?php echo $metabox["label"]; ?></label></td>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    52
				<td>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    53
					<?php if($metabox["name"] == "main_video") : ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    54
                        <textarea style="width: 70%;" rows="8" name="<?php echo "obox_".$metabox["name"]; ?>" id="'.$metabox.'"><?php echo $obox_metabox_value; ?></textarea>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    55
                    <?php elseif($metabox["input_type"] == "image") : ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    56
                    	<div style="float: left;">
0d28b7c10758 First commit
ymh
parents:
diff changeset
    57
                            <input type="text" name="<?php echo "obox_".$metabox["name"]; ?>" id="<?php echo $metabox ?>" value="<?php echo $obox_metabox_value; ?>" size="<?php echo $metabox["input_size"] ?>" />
0d28b7c10758 First commit
ymh
parents:
diff changeset
    58
                            <br /><br />
0d28b7c10758 First commit
ymh
parents:
diff changeset
    59
                            <input type="file" name="<?php echo "obox_".$metabox["name"]."_file"; ?>" />
0d28b7c10758 First commit
ymh
parents:
diff changeset
    60
                        </div>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    61
                    	<div style="float: left; width: 450px; height: 200px; display:block; overflow: hidden;">
0d28b7c10758 First commit
ymh
parents:
diff changeset
    62
                        	<img src="<?php echo $obox_metabox_value; ?>" />
0d28b7c10758 First commit
ymh
parents:
diff changeset
    63
                        </div>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    64
                    <?php elseif($metabox["input_type"] == "textarea") : ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    65
                        <textarea style="width: 70%;" rows="3" name="<?php echo "obox_".$metabox["name"]; ?>" id="'.$metabox.'"><?php echo $obox_metabox_value; ?></textarea>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    66
                    <?php else : ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    67
                        <input type="text" name="<?php echo "obox_".$metabox["name"]; ?>" id="<?php echo $metabox ?>" value="<?php echo $obox_metabox_value; ?>" size="<?php echo $metabox["input_size"] ?>" />
0d28b7c10758 First commit
ymh
parents:
diff changeset
    68
                    <?php endif; ?>                
0d28b7c10758 First commit
ymh
parents:
diff changeset
    69
                    <p style="font-size: 11px; clear: both;"><?php echo $metabox["desc"] ?></p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    70
				</td>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    71
			</tr>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    72
0d28b7c10758 First commit
ymh
parents:
diff changeset
    73
<?php endforeach; ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    74
    </table>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    75
    <br />    
0d28b7c10758 First commit
ymh
parents:
diff changeset
    76
<?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
    77
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    78
0d28b7c10758 First commit
ymh
parents:
diff changeset
    79
function insert_obox_metabox($pID) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    80
	global $obox_meta, $use_file_field, $set_width, $set_height, $image_name;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    81
	foreach ($obox_meta as $metabox) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    82
		$var = "obox_".$metabox["name"];
0d28b7c10758 First commit
ymh
parents:
diff changeset
    83
		if (isset($_POST[$var])) :
0d28b7c10758 First commit
ymh
parents:
diff changeset
    84
			if($metabox["input_type"] == "image") :
0d28b7c10758 First commit
ymh
parents:
diff changeset
    85
				$use_file_field = $var."_file";
0d28b7c10758 First commit
ymh
parents:
diff changeset
    86
				/* Read File Information and desired proportions */
0d28b7c10758 First commit
ymh
parents:
diff changeset
    87
				$set_width = $metabox["img_width"];
0d28b7c10758 First commit
ymh
parents:
diff changeset
    88
				$set_height = $metabox["img_height"];
0d28b7c10758 First commit
ymh
parents:
diff changeset
    89
				$image_name = strtolower(date("dmy")."_".$_FILES[$use_file_field]["name"]);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    90
				
0d28b7c10758 First commit
ymh
parents:
diff changeset
    91
				/* Check if we've actually selected a file */
0d28b7c10758 First commit
ymh
parents:
diff changeset
    92
				if(!empty($_FILES) && $_FILES[$use_file_field]["name"] !== "") :
0d28b7c10758 First commit
ymh
parents:
diff changeset
    93
					upload_metaimage($use_file_field, $set_width, $set_height, $image_name);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    94
					/* Set post Meta */
0d28b7c10758 First commit
ymh
parents:
diff changeset
    95
					$meta_name = str_replace("_file", "", $use_file_field);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    96
					$meta_info = get_bloginfo("wpurl")."/wp-content/uploads/".$image_name;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    97
					/* Update Post Meta */
0d28b7c10758 First commit
ymh
parents:
diff changeset
    98
					add_post_meta($pID, $metabox["name"], $meta_info,true) or update_post_meta($pID,  $metabox["name"], $meta_info);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    99
				else :
0d28b7c10758 First commit
ymh
parents:
diff changeset
   100
					/* Update Post Meta */
0d28b7c10758 First commit
ymh
parents:
diff changeset
   101
					add_post_meta($pID,$metabox["name"],$_POST[$var],true) or update_post_meta($pID,$metabox["name"],$_POST[$var]);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   102
				endif;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   103
			else :
0d28b7c10758 First commit
ymh
parents:
diff changeset
   104
				add_post_meta($pID,$metabox["name"],$_POST[$var],true) or update_post_meta($pID,$metabox["name"],$_POST[$var]);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   105
			endif;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   106
		endif;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   107
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   108
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   109
0d28b7c10758 First commit
ymh
parents:
diff changeset
   110
function add_obox_meta_box() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   111
	if (function_exists('add_meta_box') ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   112
		add_meta_box('obox-meta-box',$GLOBALS['themename'].' Options','create_meta_box_ui','post','normal');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   113
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   114
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   115
function upload_metaimage($use_file_field, $set_width, $set_height, $image_name) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   116
	global $use_file_field, $set_width, $set_height, $upload_image, $new_image, $mime_type, $resize_type, $resize_height, $resize_width, $resize_percent, $image_name, $image_width, $image_height;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   117
	$file_count = count($_FILES[$use_file_field]);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   118
		/* Upload original first */
0d28b7c10758 First commit
ymh
parents:
diff changeset
   119
		$final_upload = ABSPATH."wp-content/uploads/".$image_name;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   120
		
0d28b7c10758 First commit
ymh
parents:
diff changeset
   121
		$test = move_uploaded_file($_FILES[$use_file_field]["tmp_name"], $final_upload);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   122
		if($test === true) :
0d28b7c10758 First commit
ymh
parents:
diff changeset
   123
			// Create New Images and Mime Types
0d28b7c10758 First commit
ymh
parents:
diff changeset
   124
			if(strpos($image_name, "gif")) :
0d28b7c10758 First commit
ymh
parents:
diff changeset
   125
				$new_image = imagecreatefromgif($final_upload);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   126
				$mime_type = "gif";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   127
			elseif(strpos($image_name, "jpg") || strpos($image_name, "jpeg")) :	
0d28b7c10758 First commit
ymh
parents:
diff changeset
   128
				$new_image = imagecreatefromjpeg($final_upload);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   129
				$mime_type = "jpg";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   130
			elseif(strpos($image_name, "png")) :
0d28b7c10758 First commit
ymh
parents:
diff changeset
   131
				$new_image = imagecreatefrompng($final_upload);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   132
				$mime_type = "png";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   133
			endif;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   134
			
0d28b7c10758 First commit
ymh
parents:
diff changeset
   135
			// Fetch the Original Image Sizes
0d28b7c10758 First commit
ymh
parents:
diff changeset
   136
			list($width, $height) = getimagesize($final_upload);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   137
			$image_width = $width;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   138
			$image_height = $height;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   139
			
0d28b7c10758 First commit
ymh
parents:
diff changeset
   140
			//Set the resize dimensions
0d28b7c10758 First commit
ymh
parents:
diff changeset
   141
			$resize_type = "w";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   142
			$resize_width = $set_width;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   143
			$resize_height = $set_height;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   144
			$resize_percent = "";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   145
			$upload_image = $final_upload;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   146
			$add_images = ocmx_save_resample($upload_image, $new_image, $mime_type, $resize_type, $resize_height, $resize_width, $resize_percent, $image_width, $image_height);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   147
		endif;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   148
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   149
0d28b7c10758 First commit
ymh
parents:
diff changeset
   150
function ocmx_change_metatype(){
0d28b7c10758 First commit
ymh
parents:
diff changeset
   151
?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   152
	<script type="text/javascript">
0d28b7c10758 First commit
ymh
parents:
diff changeset
   153
    /* <![CDATA[ */
0d28b7c10758 First commit
ymh
parents:
diff changeset
   154
        jQuery(document).ready(function(){
0d28b7c10758 First commit
ymh
parents:
diff changeset
   155
            jQuery('form#post').attr('enctype','multipart/form-data');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   156
        });
0d28b7c10758 First commit
ymh
parents:
diff changeset
   157
    /* ]]> */
0d28b7c10758 First commit
ymh
parents:
diff changeset
   158
    </script>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   159
<?php }
0d28b7c10758 First commit
ymh
parents:
diff changeset
   160
0d28b7c10758 First commit
ymh
parents:
diff changeset
   161
add_action('admin_menu', 'add_obox_meta_box');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   162
add_action('admin_head', 'ocmx_change_metatype');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   163
add_action('wp_insert_post', 'insert_obox_metabox'); ?>