<?php

$new_meta_boxes =
array(
"area" => array(
"name" => "area",
"type" => "input",
"std" => "Unknown",
"title" => "Area",
"description" => "Where is the person located? (ex: Los Angeles, CA)"),

"age" => array(
"name" => "age",
"type" => "input",
"std" => "Unknown",
"title" => "Age",
"description" => "How old is this person"),

"country" => array(
"name" => "country",
"type" => "select",
"std" => "USA",
"title" => "Country",
"options" => array("USA","Europe","Asia","Australia"),
"description" => "Country of origin. This should be obvious"),

"attachments" => array(
"name" => "attachments",
"type" => "attachment",
"std" => "",
"title" => "Attachment",
"description" => "Choose an attachment")
);

$new_meta_boxes_2 =
array(
"image" => array(
"name" => "image",
"type" => "input",
"std" => "",
"title" => "Image",
"description" => "Paste image URL, ex: http://www.mydomain/folder/my_image_name.jpg"),

"imgalt" => array(
"name" => "imgalt",
"type" => "input",
"std" => "",
"title" => "Image Description",
"description" => "Enter a description for the image (alt tag).")
);


function new_meta_boxes() {
global $post, $new_meta_boxes, $new_meta_boxes_2;

foreach($new_meta_boxes as $meta_box) {

echo'<input type="hidden" name="'.$meta_box['name'].'_noncename" id="'.$meta_box['name'].'_noncename" value="'.wp_create_nonce( plugin_basename(__FILE__) ).'" />';

echo'<h2>'.$meta_box['title'].'</h2>';

if( $meta_box['type'] == "input" ) {

$meta_box_value = get_post_meta($post->ID, $meta_box['name'].'_value', true);

if($meta_box_value == "")
$meta_box_value = $meta_box['std'];

echo'<input type="text" name="'.$meta_box['name'].'_value" value="'.$meta_box_value.'" size="55" /><br />';

} elseif ( $meta_box['type'] == "select" ) {

echo'<select name="'.$meta_box['name'].'_value">';

foreach ($meta_box['options'] as $option) {

echo'<option';
if ( get_post_meta($post->ID, $meta_box['name'].'_value', true) == $option ) {
echo ' selected="selected"';
} elseif ( $option == $meta_box['std'] ) {
echo ' selected="selected"';
}
echo'>'. $option .'</option>';

}

echo'</select>';

} elseif ( $meta_box['type'] == "attachment" ) {

echo'<select name="'.$meta_box['name'].'_value">';
$outer_post = $post->ID;
$args = array(
'post_type' => 'attachment',
'numberposts' => -1,
'post_status' => null,
'post_parent' => $post->ID // any parent
);
$attachments = get_posts($args);

if ($attachments) {
foreach ($attachments as $post) {
setup_postdata($post);
$option = $post->guid;
echo'<option value="';
if ( get_post_meta($outer_post, $meta_box['name'].'_value', true) == $option ) {
echo ' selected="selected"';
} elseif ( $option == $meta_box['std'] ) {
echo ' selected="selected"';
}
echo $option .'">'.$post->post_title.'</option>';

}
}

echo'</select>';

}

echo'<p><label for="'.$meta_box['name'].'_value">'.$meta_box['description'].'</label></p>';
}

}

function new_meta_boxes_2() {
global $post, $new_meta_boxes, $new_meta_boxes_2;

foreach($new_meta_boxes_2 as $meta_box) {

echo'<input type="hidden" name="'.$meta_box['name'].'_noncename" id="'.$meta_box['name'].'_noncename" value="'.wp_create_nonce( plugin_basename(__FILE__) ).'" />';

echo'<h2>'.$meta_box['title'].'</h2>';

if( $meta_box['type'] == "input" ) {

$meta_box_value = get_post_meta($post->ID, $meta_box['name'].'_value', true);

if($meta_box_value == "")
$meta_box_value = $meta_box['std'];

echo'<input type="text" name="'.$meta_box['name'].'_value" value="'.$meta_box_value.'" size="55" /><br />';

} elseif ( $meta_box['type'] == "select" ) {

echo'<select name="'.$meta_box['name'].'_value">';

foreach ($meta_box['options'] as $option) {

echo'<option';
if ( get_post_meta($post->ID, $meta_box['name'].'_value', true) == $option ) {
echo ' selected="selected"';
} elseif ( $option == $meta_box['std'] ) {
echo ' selected="selected"';
}
echo'>'. $option .'</option>';

}

echo'</select>';

}





echo'<p><label for="'.$meta_box['name'].'_value">'.$meta_box['description'].'</label></p>';
}

}

function create_meta_box() {
global $theme_name, $new_meta_boxes, $new_meta_boxes_2;
if (function_exists('add_meta_box') ) {
add_meta_box( 'new-meta-boxes', 'More Info', 'new_meta_boxes', 'movies', 'normal', 'high' );
add_meta_box( 'new-meta-boxes_2', 'Images', 'new_meta_boxes_2', 'page', 'normal', 'high' );
}
}

function save_postdata( $post_id ) {
global $post, $new_meta_boxes;
foreach($new_meta_boxes as $meta_box) {

// Verify
if ( !wp_verify_nonce( $_POST[$meta_box['name'].'_noncename'], plugin_basename(__FILE__) )) {
return $post_id;
}

if ( 'page' == $_POST['post_type'] ) {
if ( !current_user_can( 'edit_page', $post_id ))
return $post_id;
} else {
if ( !current_user_can( 'edit_post', $post_id ))
return $post_id;
}

$data = $_POST[$meta_box['name'].'_value'];

if(get_post_meta($post_id, $meta_box['name'].'_value') == "")
add_post_meta($post_id, $meta_box['name'].'_value', $data, true);
elseif($data != get_post_meta($post_id, $meta_box['name'].'_value', true))
update_post_meta($post_id, $meta_box['name'].'_value', $data);
elseif($data == "")
delete_post_meta($post_id, $meta_box['name'].'_value', get_post_meta($post_id, $meta_box['name'].'_value', true));
}
}

add_action('admin_menu', 'create_meta_box');
add_action('save_post', 'save_postdata');



?>