web/wp-content/themes/newsworthy/functions.php
author ymh
Fri, 12 Mar 2010 15:12:39 +0000
changeset 2 4f3e6ea1c867
parent 1 0d28b7c10758
permissions -rw-r--r--
small corrections
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
$new_meta_boxes =
0d28b7c10758 First commit
ymh
parents:
diff changeset
     4
0d28b7c10758 First commit
ymh
parents:
diff changeset
     5
array(
0d28b7c10758 First commit
ymh
parents:
diff changeset
     6
0d28b7c10758 First commit
ymh
parents:
diff changeset
     7
"image" => array(
0d28b7c10758 First commit
ymh
parents:
diff changeset
     8
0d28b7c10758 First commit
ymh
parents:
diff changeset
     9
"name" => "newsworthy_image",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    10
0d28b7c10758 First commit
ymh
parents:
diff changeset
    11
"std" => "",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    12
0d28b7c10758 First commit
ymh
parents:
diff changeset
    13
"title" => "Featured Image",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    14
0d28b7c10758 First commit
ymh
parents:
diff changeset
    15
"description" => "Using the \"<em>Add an Image</em>\" button, upload a 610x281 image and paste the URL here.  Displayed in full size for the featured post, resized versions for single posts and substories on index pages are handled automatically.")
0d28b7c10758 First commit
ymh
parents:
diff changeset
    16
0d28b7c10758 First commit
ymh
parents:
diff changeset
    17
);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    18
0d28b7c10758 First commit
ymh
parents:
diff changeset
    19
function new_meta_boxes() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    20
0d28b7c10758 First commit
ymh
parents:
diff changeset
    21
global $post, $new_meta_boxes;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    22
0d28b7c10758 First commit
ymh
parents:
diff changeset
    23
0d28b7c10758 First commit
ymh
parents:
diff changeset
    24
0d28b7c10758 First commit
ymh
parents:
diff changeset
    25
foreach($new_meta_boxes as $meta_box) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    26
0d28b7c10758 First commit
ymh
parents:
diff changeset
    27
$meta_box_value = get_post_meta($post->ID, $meta_box['name'].'_value', true);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    28
0d28b7c10758 First commit
ymh
parents:
diff changeset
    29
0d28b7c10758 First commit
ymh
parents:
diff changeset
    30
0d28b7c10758 First commit
ymh
parents:
diff changeset
    31
if($meta_box_value == "")
0d28b7c10758 First commit
ymh
parents:
diff changeset
    32
0d28b7c10758 First commit
ymh
parents:
diff changeset
    33
$meta_box_value = $meta_box['std'];
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
echo'<input type="hidden" name="'.$meta_box['name'].'_noncename" id="'.$meta_box['name'].'_noncename" value="'.wp_create_nonce( plugin_basename(__FILE__) ).'" />';
0d28b7c10758 First commit
ymh
parents:
diff changeset
    38
0d28b7c10758 First commit
ymh
parents:
diff changeset
    39
0d28b7c10758 First commit
ymh
parents:
diff changeset
    40
0d28b7c10758 First commit
ymh
parents:
diff changeset
    41
echo'<h2>'.$meta_box['title'].'</h2>';
0d28b7c10758 First commit
ymh
parents:
diff changeset
    42
0d28b7c10758 First commit
ymh
parents:
diff changeset
    43
0d28b7c10758 First commit
ymh
parents:
diff changeset
    44
0d28b7c10758 First commit
ymh
parents:
diff changeset
    45
echo'<input type="text" name="'.$meta_box['name'].'_value" value="'.$meta_box_value.'" size="55" /><br />';
0d28b7c10758 First commit
ymh
parents:
diff changeset
    46
0d28b7c10758 First commit
ymh
parents:
diff changeset
    47
0d28b7c10758 First commit
ymh
parents:
diff changeset
    48
0d28b7c10758 First commit
ymh
parents:
diff changeset
    49
echo'<p><label for="'.$meta_box['name'].'_value">'.$meta_box['description'].'</label></p>';
0d28b7c10758 First commit
ymh
parents:
diff changeset
    50
0d28b7c10758 First commit
ymh
parents:
diff changeset
    51
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    52
0d28b7c10758 First commit
ymh
parents:
diff changeset
    53
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    54
0d28b7c10758 First commit
ymh
parents:
diff changeset
    55
function create_meta_box() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    56
0d28b7c10758 First commit
ymh
parents:
diff changeset
    57
global $theme_name;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    58
0d28b7c10758 First commit
ymh
parents:
diff changeset
    59
if ( function_exists('add_meta_box') ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    60
0d28b7c10758 First commit
ymh
parents:
diff changeset
    61
add_meta_box( 'new-meta-boxes', 'Newsworthy Post Settings', 'new_meta_boxes', 'post', 'normal', 'high' );
0d28b7c10758 First commit
ymh
parents:
diff changeset
    62
0d28b7c10758 First commit
ymh
parents:
diff changeset
    63
}
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
function save_postdata( $post_id ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    68
0d28b7c10758 First commit
ymh
parents:
diff changeset
    69
global $post, $new_meta_boxes;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    70
0d28b7c10758 First commit
ymh
parents:
diff changeset
    71
0d28b7c10758 First commit
ymh
parents:
diff changeset
    72
0d28b7c10758 First commit
ymh
parents:
diff changeset
    73
foreach($new_meta_boxes as $meta_box) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    74
0d28b7c10758 First commit
ymh
parents:
diff changeset
    75
// Verify
0d28b7c10758 First commit
ymh
parents:
diff changeset
    76
0d28b7c10758 First commit
ymh
parents:
diff changeset
    77
if ( !wp_verify_nonce( $_POST[$meta_box['name'].'_noncename'], plugin_basename(__FILE__) )) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    78
0d28b7c10758 First commit
ymh
parents:
diff changeset
    79
return $post_id;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    80
0d28b7c10758 First commit
ymh
parents:
diff changeset
    81
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    82
0d28b7c10758 First commit
ymh
parents:
diff changeset
    83
0d28b7c10758 First commit
ymh
parents:
diff changeset
    84
0d28b7c10758 First commit
ymh
parents:
diff changeset
    85
if ( 'page' == $_POST['post_type'] ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    86
0d28b7c10758 First commit
ymh
parents:
diff changeset
    87
if ( !current_user_can( 'edit_page', $post_id ))
0d28b7c10758 First commit
ymh
parents:
diff changeset
    88
0d28b7c10758 First commit
ymh
parents:
diff changeset
    89
return $post_id;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    90
0d28b7c10758 First commit
ymh
parents:
diff changeset
    91
} else {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    92
0d28b7c10758 First commit
ymh
parents:
diff changeset
    93
if ( !current_user_can( 'edit_post', $post_id ))
0d28b7c10758 First commit
ymh
parents:
diff changeset
    94
0d28b7c10758 First commit
ymh
parents:
diff changeset
    95
return $post_id;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    96
0d28b7c10758 First commit
ymh
parents:
diff changeset
    97
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    98
0d28b7c10758 First commit
ymh
parents:
diff changeset
    99
0d28b7c10758 First commit
ymh
parents:
diff changeset
   100
0d28b7c10758 First commit
ymh
parents:
diff changeset
   101
$data = $_POST[$meta_box['name'].'_value'];
0d28b7c10758 First commit
ymh
parents:
diff changeset
   102
0d28b7c10758 First commit
ymh
parents:
diff changeset
   103
0d28b7c10758 First commit
ymh
parents:
diff changeset
   104
0d28b7c10758 First commit
ymh
parents:
diff changeset
   105
if(get_post_meta($post_id, $meta_box['name'].'_value') == "")
0d28b7c10758 First commit
ymh
parents:
diff changeset
   106
0d28b7c10758 First commit
ymh
parents:
diff changeset
   107
add_post_meta($post_id, $meta_box['name'].'_value', $data, true);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   108
0d28b7c10758 First commit
ymh
parents:
diff changeset
   109
elseif($data != get_post_meta($post_id, $meta_box['name'].'_value', true))
0d28b7c10758 First commit
ymh
parents:
diff changeset
   110
0d28b7c10758 First commit
ymh
parents:
diff changeset
   111
update_post_meta($post_id, $meta_box['name'].'_value', $data);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   112
0d28b7c10758 First commit
ymh
parents:
diff changeset
   113
elseif($data == "")
0d28b7c10758 First commit
ymh
parents:
diff changeset
   114
0d28b7c10758 First commit
ymh
parents:
diff changeset
   115
delete_post_meta($post_id, $meta_box['name'].'_value', get_post_meta($post_id, $meta_box['name'].'_value', true));
0d28b7c10758 First commit
ymh
parents:
diff changeset
   116
0d28b7c10758 First commit
ymh
parents:
diff changeset
   117
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   118
0d28b7c10758 First commit
ymh
parents:
diff changeset
   119
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   120
0d28b7c10758 First commit
ymh
parents:
diff changeset
   121
add_action('admin_menu', 'create_meta_box');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   122
0d28b7c10758 First commit
ymh
parents:
diff changeset
   123
add_action('save_post', 'save_postdata');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   124
0d28b7c10758 First commit
ymh
parents:
diff changeset
   125
function the_content_limit($max_char, $more_link_text = '(more...)', $stripteaser = 0, $more_file = '') {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   126
0d28b7c10758 First commit
ymh
parents:
diff changeset
   127
    $content = get_the_content($more_link_text, $stripteaser, $more_file);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   128
0d28b7c10758 First commit
ymh
parents:
diff changeset
   129
    $content = apply_filters('the_content', $content);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   130
0d28b7c10758 First commit
ymh
parents:
diff changeset
   131
    $content = str_replace(']]>', ']]&gt;', $content);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   132
0d28b7c10758 First commit
ymh
parents:
diff changeset
   133
0d28b7c10758 First commit
ymh
parents:
diff changeset
   134
0d28b7c10758 First commit
ymh
parents:
diff changeset
   135
   if (strlen($_GET['p']) > 0) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   136
0d28b7c10758 First commit
ymh
parents:
diff changeset
   137
      echo $content;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   138
0d28b7c10758 First commit
ymh
parents:
diff changeset
   139
   }
0d28b7c10758 First commit
ymh
parents:
diff changeset
   140
0d28b7c10758 First commit
ymh
parents:
diff changeset
   141
   else if ((strlen($content)>$max_char) && ($espacio = strpos($content, " ", $max_char ))) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   142
0d28b7c10758 First commit
ymh
parents:
diff changeset
   143
        $content = substr($content, 0, $espacio);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   144
0d28b7c10758 First commit
ymh
parents:
diff changeset
   145
        $content = $content;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   146
0d28b7c10758 First commit
ymh
parents:
diff changeset
   147
        echo $content;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   148
0d28b7c10758 First commit
ymh
parents:
diff changeset
   149
        echo "</p>";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   150
0d28b7c10758 First commit
ymh
parents:
diff changeset
   151
   }
0d28b7c10758 First commit
ymh
parents:
diff changeset
   152
0d28b7c10758 First commit
ymh
parents:
diff changeset
   153
   else {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   154
0d28b7c10758 First commit
ymh
parents:
diff changeset
   155
      echo $content;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   156
0d28b7c10758 First commit
ymh
parents:
diff changeset
   157
   }
0d28b7c10758 First commit
ymh
parents:
diff changeset
   158
0d28b7c10758 First commit
ymh
parents:
diff changeset
   159
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   160
0d28b7c10758 First commit
ymh
parents:
diff changeset
   161
class My_125_Widget extends WP_Widget {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   162
0d28b7c10758 First commit
ymh
parents:
diff changeset
   163
	function My_125_Widget() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   164
0d28b7c10758 First commit
ymh
parents:
diff changeset
   165
		$widget_ops = array('classname' => 'widget_125_ad', 'description' => 'A single 125x125 ad banner' );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   166
0d28b7c10758 First commit
ymh
parents:
diff changeset
   167
		$this->WP_Widget('125_ad', '125x125 Ad', $widget_ops);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   168
0d28b7c10758 First commit
ymh
parents:
diff changeset
   169
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   170
0d28b7c10758 First commit
ymh
parents:
diff changeset
   171
 
0d28b7c10758 First commit
ymh
parents:
diff changeset
   172
0d28b7c10758 First commit
ymh
parents:
diff changeset
   173
	function widget($args, $instance) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   174
0d28b7c10758 First commit
ymh
parents:
diff changeset
   175
		extract($args, EXTR_SKIP);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   176
0d28b7c10758 First commit
ymh
parents:
diff changeset
   177
 
0d28b7c10758 First commit
ymh
parents:
diff changeset
   178
0d28b7c10758 First commit
ymh
parents:
diff changeset
   179
		echo $before_widget;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   180
0d28b7c10758 First commit
ymh
parents:
diff changeset
   181
		$image_url = empty($instance['image_url']) ? '' : apply_filters('widget_image_url', $instance['image_url']);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   182
0d28b7c10758 First commit
ymh
parents:
diff changeset
   183
		$image_alt = empty($instance['image_alt']) ? '' : apply_filters('widget_image_alt', $instance['image_alt']);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   184
0d28b7c10758 First commit
ymh
parents:
diff changeset
   185
		$image_link = empty($instance['image_link']) ? '' : apply_filters('widget_image_link', $instance['image_link']);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   186
0d28b7c10758 First commit
ymh
parents:
diff changeset
   187
 
0d28b7c10758 First commit
ymh
parents:
diff changeset
   188
0d28b7c10758 First commit
ymh
parents:
diff changeset
   189
		if ( !empty( $title ) ) { echo $before_title . $title . $after_title; };
0d28b7c10758 First commit
ymh
parents:
diff changeset
   190
0d28b7c10758 First commit
ymh
parents:
diff changeset
   191
		echo '<a href=" ' . $image_link . '" rel="nofollow" title=" ' . $image_alt . ' ">';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   192
0d28b7c10758 First commit
ymh
parents:
diff changeset
   193
		echo '<img class="banner" src="' . $image_url . '" alt="' . $image_alt . '" />';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   194
0d28b7c10758 First commit
ymh
parents:
diff changeset
   195
		echo '</a>';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   196
0d28b7c10758 First commit
ymh
parents:
diff changeset
   197
		echo $after_widget;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   198
0d28b7c10758 First commit
ymh
parents:
diff changeset
   199
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   200
0d28b7c10758 First commit
ymh
parents:
diff changeset
   201
 
0d28b7c10758 First commit
ymh
parents:
diff changeset
   202
0d28b7c10758 First commit
ymh
parents:
diff changeset
   203
	function update($new_instance, $old_instance) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   204
0d28b7c10758 First commit
ymh
parents:
diff changeset
   205
		$instance = $old_instance;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   206
0d28b7c10758 First commit
ymh
parents:
diff changeset
   207
		$instance['image_url'] = strip_tags($new_instance['image_url']);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   208
0d28b7c10758 First commit
ymh
parents:
diff changeset
   209
		$instance['image_alt'] = strip_tags($new_instance['image_alt']);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   210
0d28b7c10758 First commit
ymh
parents:
diff changeset
   211
		$instance['image_link'] = strip_tags($new_instance['image_link']);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   212
0d28b7c10758 First commit
ymh
parents:
diff changeset
   213
 
0d28b7c10758 First commit
ymh
parents:
diff changeset
   214
0d28b7c10758 First commit
ymh
parents:
diff changeset
   215
		return $instance;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   216
0d28b7c10758 First commit
ymh
parents:
diff changeset
   217
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   218
0d28b7c10758 First commit
ymh
parents:
diff changeset
   219
 
0d28b7c10758 First commit
ymh
parents:
diff changeset
   220
0d28b7c10758 First commit
ymh
parents:
diff changeset
   221
	function form($instance) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   222
0d28b7c10758 First commit
ymh
parents:
diff changeset
   223
		$instance = wp_parse_args( (array) $instance, array( 'image_url' => '', 'image_alt' => '', 'image_link' => '' ) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   224
0d28b7c10758 First commit
ymh
parents:
diff changeset
   225
		$image_url = strip_tags($instance['image_url']);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   226
0d28b7c10758 First commit
ymh
parents:
diff changeset
   227
		$image_alt = strip_tags($instance['image_alt']);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   228
0d28b7c10758 First commit
ymh
parents:
diff changeset
   229
		$image_link = strip_tags($instance['image_link']);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   230
0d28b7c10758 First commit
ymh
parents:
diff changeset
   231
?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   232
0d28b7c10758 First commit
ymh
parents:
diff changeset
   233
			<p><label for="<?php echo $this->get_field_id('image_url'); ?>">Image URL: <input class="widefat" id="<?php echo $this->get_field_id('image_url'); ?>" name="<?php echo $this->get_field_name('image_url'); ?>" type="text" value="<?php echo attribute_escape($image_url); ?>" /></label></p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   234
0d28b7c10758 First commit
ymh
parents:
diff changeset
   235
			<p><label for="<?php echo $this->get_field_id('image_alt'); ?>">Image Alt/Link Title: <input class="widefat" id="<?php echo $this->get_field_id('image_alt'); ?>" name="<?php echo $this->get_field_name('image_alt'); ?>" type="text" value="<?php echo attribute_escape($image_alt); ?>" /></label></p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   236
0d28b7c10758 First commit
ymh
parents:
diff changeset
   237
			<p><label for="<?php echo $this->get_field_id('image_link'); ?>">Link URL: <input class="widefat" id="<?php echo $this->get_field_id('image_link'); ?>" name="<?php echo $this->get_field_name('image_link'); ?>" type="text" value="<?php echo attribute_escape($image_link); ?>" /></label></p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   238
0d28b7c10758 First commit
ymh
parents:
diff changeset
   239
<?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
   240
0d28b7c10758 First commit
ymh
parents:
diff changeset
   241
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   242
0d28b7c10758 First commit
ymh
parents:
diff changeset
   243
}
2
4f3e6ea1c867 small corrections
ymh
parents: 1
diff changeset
   244