web/wp-content/themes/selecta/ocmx/widgets/feature-post-widget.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
class feature_posts_widget extends WP_Widget {
0d28b7c10758 First commit
ymh
parents:
diff changeset
     3
    /** constructor */
0d28b7c10758 First commit
ymh
parents:
diff changeset
     4
    function feature_posts_widget() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
     5
        parent::WP_Widget(false, $name = "OCMX Featured Posts Widget", array("description" => "Features Posts widget for the Home Page. Place only in the 'Header Panel'."));	
0d28b7c10758 First commit
ymh
parents:
diff changeset
     6
    }
0d28b7c10758 First commit
ymh
parents:
diff changeset
     7
0d28b7c10758 First commit
ymh
parents:
diff changeset
     8
    /** @see WP_Widget::widget */
0d28b7c10758 First commit
ymh
parents:
diff changeset
     9
    function widget($args, $instance) {		
0d28b7c10758 First commit
ymh
parents:
diff changeset
    10
        extract( $args );
0d28b7c10758 First commit
ymh
parents:
diff changeset
    11
		if(!($instance["post_category"])) :
0d28b7c10758 First commit
ymh
parents:
diff changeset
    12
			$use_catId = 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    13
		else :
0d28b7c10758 First commit
ymh
parents:
diff changeset
    14
	        $use_category = $instance["post_category"];
0d28b7c10758 First commit
ymh
parents:
diff changeset
    15
			$use_catId = get_category_by_slug($use_category);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    16
		endif;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    17
       //Fetch the category for the widget
0d28b7c10758 First commit
ymh
parents:
diff changeset
    18
		$post_args = array('numberposts' => '5', 'offest' => 0, 'orderby' => 'post_date', 'order' => 'DESC','cat' => $use_catId->term_id);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    19
		//Set the post Aguments and Query accordingly
0d28b7c10758 First commit
ymh
parents:
diff changeset
    20
		$count = 1;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    21
		$ocmx_featured = get_posts($post_args);	
0d28b7c10758 First commit
ymh
parents:
diff changeset
    22
?>      
0d28b7c10758 First commit
ymh
parents:
diff changeset
    23
        <div class="selected-feature">
0d28b7c10758 First commit
ymh
parents:
diff changeset
    24
            <?php foreach($ocmx_featured as $post) : ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    25
                <div class="feature-title<?php if($count !== 1): ?> no_display<?php endif; ?>" id="feature-post-header-<?php echo $post->ID; ?>">
0d28b7c10758 First commit
ymh
parents:
diff changeset
    26
                    <h4><?php echo date('d M Y', strtotime($post->post_date)); ?></h4>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    27
                    <h2>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    28
                        <?php $link = get_permalink($post->ID); ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    29
                        <a href="<?php echo $link ?>"><?php echo $post->post_title; ?></a>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    30
                    </h2>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    31
                    <?php if($count == 1): ?><div class="no_display" id="first_selected"><?php echo $post->ID;?></div><?php endif; ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    32
                </div>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    33
            <?php $count++; endforeach; ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    34
            <div class="container-header-light-dark"><span></span></div>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    35
            <div class="container-light" id="feature-media-container">
0d28b7c10758 First commit
ymh
parents:
diff changeset
    36
                <?php $count = 1; foreach($ocmx_featured as $post) :
0d28b7c10758 First commit
ymh
parents:
diff changeset
    37
                    // Fetch the PermaLink, Thumbnail and Video Metas
0d28b7c10758 First commit
ymh
parents:
diff changeset
    38
                    $get_post_video = get_post_meta($post->ID, "main_video", true);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    39
                    $get_thumbnail = get_post_meta($post->ID, "other_media", true);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    40
                    // Set our category
0d28b7c10758 First commit
ymh
parents:
diff changeset
    41
                    $category = get_the_category(); 			
0d28b7c10758 First commit
ymh
parents:
diff changeset
    42
                    // If we haven't used our custom image input, search for the first image in the post
0d28b7c10758 First commit
ymh
parents:
diff changeset
    43
                    $post_image = "";
0d28b7c10758 First commit
ymh
parents:
diff changeset
    44
                    if($get_thumbnail == "" && (get_option("ocmx_auto_home_images") && get_option("ocmx_auto_home_images") !== "no")) :
0d28b7c10758 First commit
ymh
parents:
diff changeset
    45
                        $post_image =  fetch_post_image($post->ID, "640", "2000");
0d28b7c10758 First commit
ymh
parents:
diff changeset
    46
                    endif;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    47
                ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    48
                    <div <?php if($count !== 1): ?>class="no_display"<?php endif; ?> id="feature-post-media-<?php echo $post->ID; ?>">
0d28b7c10758 First commit
ymh
parents:
diff changeset
    49
                        <?php if($get_post_video !== "") :
0d28b7c10758 First commit
ymh
parents:
diff changeset
    50
                            $get_post_video = preg_replace("/(width\s*=\s*[\"\'])[0-9]+([\"\'])/i", "$1 640 $2 wmode=\"transparent\"", $get_post_video);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    51
                            $get_post_video = preg_replace("/(height\s*=\s*[\"\'])[0-9]+([\"\'])/i", "$1 360 $2", $get_post_video);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    52
                            /* Display Video */
0d28b7c10758 First commit
ymh
parents:
diff changeset
    53
                            echo $get_post_video;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    54
                        elseif ($post_image !== "") :
0d28b7c10758 First commit
ymh
parents:
diff changeset
    55
                            echo $post_image;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    56
                        elseif ($get_thumbnail !== "") : ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    57
                            <img src="<?php bloginfo('template_directory'); ?>/functions/timthumb.php?src=<?php echo $get_thumbnail ?>&amp;h=&amp;w=640&amp;zc=1" alt="<?php the_title(); ?>" />
0d28b7c10758 First commit
ymh
parents:
diff changeset
    58
                        <?php endif; ?>           
0d28b7c10758 First commit
ymh
parents:
diff changeset
    59
                    </div>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    60
                <?php $count++; endforeach; ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    61
            </div>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    62
            <div class="container-footer-light-dark"><span></span></div>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    63
        </div>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    64
        
0d28b7c10758 First commit
ymh
parents:
diff changeset
    65
        <ul class="feature-list">
0d28b7c10758 First commit
ymh
parents:
diff changeset
    66
            <?php $count = 1; ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    67
            <?php foreach($ocmx_featured as $post) :
0d28b7c10758 First commit
ymh
parents:
diff changeset
    68
                setup_postdata($post);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    69
                $link = get_permalink($post->ID); ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    70
                <li>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    71
                    <span class="item"><?php echo $count; ?></span>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    72
                    <h4><?php echo date('d M Y', strtotime($post->post_date)); ?></h4>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    73
                    <a href="<?php echo $link; ?>" id="ocmx-featured-href-<?php echo $post->ID; ?>"><?php echo $post->post_title; ?></a>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    74
                </li>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    75
            <?php 
0d28b7c10758 First commit
ymh
parents:
diff changeset
    76
                $count++;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    77
                endforeach; ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    78
        </ul>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    79
0d28b7c10758 First commit
ymh
parents:
diff changeset
    80
<?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
    81
		rewind_posts();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    82
    }
0d28b7c10758 First commit
ymh
parents:
diff changeset
    83
0d28b7c10758 First commit
ymh
parents:
diff changeset
    84
    /** @see WP_Widget::update */
0d28b7c10758 First commit
ymh
parents:
diff changeset
    85
    function update($new_instance, $old_instance) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    86
        return $new_instance;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    87
    }
0d28b7c10758 First commit
ymh
parents:
diff changeset
    88
0d28b7c10758 First commit
ymh
parents:
diff changeset
    89
    /** @see WP_Widget::form */
0d28b7c10758 First commit
ymh
parents:
diff changeset
    90
    function form($instance) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    91
        $post_category = esc_attr($instance["post_category"]);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    92
?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    93
            <p><label for="<?php echo $this->get_field_id('post_category'); ?>">Category
0d28b7c10758 First commit
ymh
parents:
diff changeset
    94
               <select size="1" class="widefat" id="<?php echo $this->get_field_id("post_category"); ?>" name="<?php echo $this->get_field_name("post_category"); ?>">
0d28b7c10758 First commit
ymh
parents:
diff changeset
    95
                    <option <?php if($post_count == 0){echo "selected=\"selected\"";} ?> value="0">All</option>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    96
                    <?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
    97
							$category_args = array('hide_empty' => false);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    98
                            $option_loop = get_categories($category_args);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    99
                            foreach($option_loop as $option_label => $value)
0d28b7c10758 First commit
ymh
parents:
diff changeset
   100
                                { 	
0d28b7c10758 First commit
ymh
parents:
diff changeset
   101
                                    // Set the $value and $label for the options
0d28b7c10758 First commit
ymh
parents:
diff changeset
   102
                                    $use_value =  $value->slug;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   103
                                    $label =  $value->cat_name;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   104
                                    //If this option == the value we set above, select it
0d28b7c10758 First commit
ymh
parents:
diff changeset
   105
                                    if($use_value == $post_category)
0d28b7c10758 First commit
ymh
parents:
diff changeset
   106
                                        {$selected = " selected='selected' ";}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   107
                                    else
0d28b7c10758 First commit
ymh
parents:
diff changeset
   108
                                        {$selected = " ";}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   109
                    ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   110
                                    <option <?php echo $selected; ?> value="<?php echo $use_value; ?>"><?php echo $label; ?></option>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   111
                    <?php 
0d28b7c10758 First commit
ymh
parents:
diff changeset
   112
                                }
0d28b7c10758 First commit
ymh
parents:
diff changeset
   113
                    ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   114
                </select>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   115
			</p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   116
<?php 
0d28b7c10758 First commit
ymh
parents:
diff changeset
   117
	} // form
0d28b7c10758 First commit
ymh
parents:
diff changeset
   118
0d28b7c10758 First commit
ymh
parents:
diff changeset
   119
}// class
0d28b7c10758 First commit
ymh
parents:
diff changeset
   120
0d28b7c10758 First commit
ymh
parents:
diff changeset
   121
//This sample widget can then be registered in the widgets_init hook:
0d28b7c10758 First commit
ymh
parents:
diff changeset
   122
0d28b7c10758 First commit
ymh
parents:
diff changeset
   123
// register FooWidget widget
0d28b7c10758 First commit
ymh
parents:
diff changeset
   124
add_action('widgets_init', create_function('', 'return register_widget("feature_posts_widget");'));
0d28b7c10758 First commit
ymh
parents:
diff changeset
   125
0d28b7c10758 First commit
ymh
parents:
diff changeset
   126
?>