heinriches.com
  • Facebook
  • Programming
    • C#
    • MVC
    • PHP
  • Thoughts
  • WordPress

Sunday Service Widget

Posted on November 22, 2011 by Matt in PHP, Programming, Wordpress
Home» Programming » PHP » Sunday Service Widget

Here is my widget to display the proper sunday service time based on the week of the month. WordPress is becoming my favorite CMS.

To display the widget I extend the widget function.

  function widget($args, $instance){
	extract( $args );
    	$title = apply_filters( 'widget_title', $instance['title'] );	
    	$nextSunday = strtotime("next sunday");
	$wn = ceil( date( 'j', $nextSunday) / 7 );
	$ldom = mktime(0, 0, 0, (date('m') + 1), 0, date('Y'));
		
	$diff = round(abs($nextSunday-$ldom)/86400);
	$text = "";
				
	switch ($wn) {
    	  case 1:
            $text= $instance['Sunday1'];
            break;
    	  case 2:
            $text= $instance['Sunday2'];
            break;
    	  case 3:
             $text= $instance['Sunday3'];
             break;
          case 4:
             if (diff>=7){
        	$text= $instance['Sunday4'];
             }else {
        	$text= $instance['Sunday5'];
             }
           break;
           case 5:
        	$text= $instance['Sunday5'];
        	break;
	}?>
		
		<?php echo $before_widget; ?>
		
		<div class="clsPageContent">
		
		
		<?php if ($title) { echo $before_title 
                                           . "<h3>" 
                                           . $title 
                                           . "" 
                                           . $after_title; } ?>
		
		<ul>
			<li>Sunday:</li>
			<li>< ?php echo $text ?> </li>
			<li>&nbsp;</li>
			<li>< ?php echo  $instance['MidWeekName'] ?> :</li>
			<li>< ?php echo  $instance['MidWeekTime'] ?> </li>
		</ul><ul>
		
		<p>
			< ?php echo  $instance['ExtraMessage'] ?>
		</p>
		</ul></div>
		
		< ?php echo $after_widget; ?>
		
    	< ?php
	
	}

Of course you need to have enter the information.

function form($instance){
      $defaults = array( 'title' => 'Example', 
                         'name' => 'John Doe', 
			'Sunday1' => '10 AM and 5 PM',
			'Sunday2' => '2 PM and No Evening Service',
			'Sunday3' => '10 AM and 5 PM',
			'Sunday4' => '10 AM and 5 PM',
			'Sunday5' => '10 AM and No Evening Service',
			'MidWeekName' => 'Monday',
			'MidWeekTime' => '7 PM',
			'ExtraMessage' => ''
			);
								
       $instance = wp_parse_args( (array) $instance, $defaults ); ?>
			
	<label for="<?php echo $this->get_field_id( 'title' ); ?>"> Title:</label>
	<input id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo $instance['title']; ?>" style="width:100%;" />
		<br/>
		<br/>
					
	<label for="<?php echo $this->get_field_id( 'Sunday1' ); ?>"> First Sunday:</label>
	<input id="<?php echo $this->get_field_id( 'Sunday1' ); ?>" name="<?php echo $this->get_field_name( 'Sunday1' ); ?>" value="<?php echo $instance['Sunday1']; ?>" style="width:100%;" />
		<br/>
					
					<label for="<?php echo $this->get_field_id( 'Sunday2' ); ?>"> Second Sunday:</label>
					<input id="<?php echo $this->get_field_id( 'Sunday2' ); ?>" name="<?php echo $this->get_field_name( 'Sunday2' ); ?>" value="<?php echo $instance['Sunday2']; ?>" style="width:100%;" />
					<br/>
					
					<label for="<?php echo $this->get_field_id( 'Sunday3' ); ?>"> Third Sunday:</label>
					<input id="<?php echo $this->get_field_id( 'Sunday3' ); ?>" name="<?php echo $this->get_field_name( 'Sunday3' ); ?>" value="<?php echo $instance['Sunday3']; ?>" style="width:100%;" />
					<br/>
					
					<label for="<?php echo $this->get_field_id( 'Sunday4' ); ?>"> Fourth Sunday:</label>
					<input id="<?php echo $this->get_field_id( 'Sunday4' ); ?>" name="<?php echo $this->get_field_name( 'Sunday4' ); ?>" value="<?php echo $instance['Sunday4']; ?>" style="width:100%;" />
					<br/>
					
					<label for="<?php echo $this->get_field_id( 'Sunday5' ); ?>"> Fifth Sunday:</label>
					<input id="<?php echo $this->get_field_id( 'Sunday5' ); ?>" name="<?php echo $this->get_field_name( 'Sunday5' ); ?>" value="<?php echo $instance['Sunday5']; ?>" style="width:100%;" />
					<br/>
					<br/>
					
					<label for="<?php echo $this->get_field_id( 'MidWeekName' ); ?>"> Mid Week Service:</label>
					<input id="<?php echo $this->get_field_id( 'MidWeekName' ); ?>" name="<?php echo $this->get_field_name( 'MidWeekName' ); ?>" value="<?php echo $instance['MidWeekName']; ?>" style="width:100%;" />
					<br/>
					
					<label for="<?php echo $this->get_field_id( 'MidWeekTime' ); ?>"> Mid Week Time:</label>
					<input id="<?php echo $this->get_field_id( 'MidWeekTime' ); ?>" name="<?php echo $this->get_field_name( 'MidWeekTime' ); ?>" value="<?php echo $instance['MidWeekTime']; ?>" style="width:100%;" />
					<br/>
					<br/>
					
					<label for="<?php echo $this->get_field_id( 'ExtraMessage' ); ?>"> Extra Message:</label>
					<input id="<?php echo $this->get_field_id( 'ExtraMessage' ); ?>" name="<?php echo $this->get_field_name( 'ExtraMessage' ); ?>" value="<?php echo $instance['ExtraMessage']; ?>" style="width:100%;" />
					<br/>
			<?php
	}

Here is the file to download and install:Sunday Widget

Comments are closed.

Loading...

(c) 2012 heinriches.com - Web Design by Jason Bobich