WordPress Plugins

These are not for public distriburtion.

These WordPress Pugins are custom made for very specific use, and would not be useful for everyone.

A Better Archive SideBar Widget for WordPress
<?php
/*
Plugin Name: BA Best Archives
Plugin URI: 
Description: Configurable Dynamic Sidbar Widget for showing archives using custom jQuery plugin.
Author: Jamie Broussard
Version: 1.2
Author URI: boardingarea.com
ToDo:

*/

function widget_BA_best_archive_init()
{
	// make sure we have a dynamic sidebar first
	if ( !function_exists('register_sidebar_widget') || !function_exists('register_widget_control') )
		return;
		
	// create the sidebar widget control
	function widget_BA_best_archive_control()
	{
		// get options from the db
		$options = get_option("ba_best_archive_widget");
		
		// if we don't have options in the db set up default values
		if (!is_array( $options )) {
			$options = array(
				'title' => 'Archives',
				'limit' => 100,
				'showposts' => 0,
				'month_on' => 1,
				'year_on' => 1,
				'week_on' => 0,
				'day_on' => 0,
				'month_open' => false,
				'year_open' => false,
				'week_open' => false,
				'day_open' => false,
				'fx_time' => 300,
				'open_text' => '[+]',
				'close_text' => '[-]',
				'open_class' => 'open_arch',
				'close_class' => 'close_arch'
			);
		} 
	
		if ($_POST['ba-best-archive-submit']) {
			// get input from the form and convert html to special characters
			$options['title'] = htmlspecialchars($_POST['ba-best-archive-title']);
			$options['open_text'] = htmlspecialchars($_POST['ba-best-archive-open-text']);
			$options['close_text'] = htmlspecialchars($_POST['ba-best-archive-close-text']);
			$options['open_class'] = htmlspecialchars($_POST['ba-best-archive-open-class']);
			$options['close_class'] = htmlspecialchars($_POST['ba-best-archive-close-class']);
			$options['limit'] = htmlspecialchars($_POST['ba-best-archive-limit']);
			$options['fx_time'] = htmlspecialchars($_POST['ba-best-archive-fx-time']);
			$options['showposts'] = htmlspecialchars($_POST['ba-best-archive-showposts']);
			$options['month_on'] = htmlspecialchars($_POST['ba-best-archive-month-on']);
			$options['year_on'] = htmlspecialchars($_POST['ba-best-archive-year-on']);
			$options['week_on'] = htmlspecialchars($_POST['ba-best-archive-week-on']);
			$options['day_on'] = htmlspecialchars($_POST['ba-best-archive-day-on']);
			$options['month_open'] = htmlspecialchars($_POST['ba-best-archive-month-open']);
			$options['year_open'] = htmlspecialchars($_POST['ba-best-archive-year-open']);
			$options['week_open'] = htmlspecialchars($_POST['ba-best-archive-week-open']);
			$options['day_open'] = htmlspecialchars($_POST['ba-best-archive-day-open']);
			
			// Make sure the title defaults
			if ($options['title'] == '') $options['title'] = "Archive";
			// because the form returns a null for a checkbox not checked:
			// WordPress wants 0 or 1
			if(!$options['year_on']) $options['year_on'] = 0;
			if(!$options['month_on']) $options['month_on'] = 0;
			if(!$options['week_on']) $options['week_on'] = 0;
			if(!$options['day_on']) $options['day_on'] = 0;
			// jQuery wants a string for true false
			if(!$options['month_open']) $options['month_open'] = 'false';
			if(!$options['year_open']) $options['year_open'] = 'false';
			if(!$options['week_open']) $options['week_open'] = 'false';
			if(!$options['day_open']) $options['day_open'] = 'false';
			
			// times and limits need to be numbers
			if ( (!is_numeric($options['limit'])) || ($options['limit'] <= 0) ) $options['limit'] = 100;
			if ( (!is_numeric($options['fx_time'])) || ($options['fx_time'] <= 0) ) $options['fx_time'] = 300;
			
			// make sure the text to click on is not empty
			if ($options['open_text'] == "") $options['open_text'] = "[+]";
			if ($options['close_text'] == "") $options['close_text'] = "[-]";
			
			// store options in the db
			update_option("ba_best_archive_widget", $options);
		}	
		
		// show the form in the admin area
?>
		<p>
	    <label for="ba-best-archive-title">Widget Title: </label>
	    <input type="text" id="ba-best-archive-title" name="ba-best-archive-title" value="<?php echo $options['title'];?>" class="widefat" />
	    <br />
	    </p>
	    <p>
	    <label for="ba-best-archive-open-text">Open Text: [+]: </label>
	    <input type="text" id="ba-best-archive-open-text" name="ba-best-archive-open-text" value="<?php echo $options['open_text'];?>" class="widefat" />
	    <br />
	    <label for="ba-best-archive-open-class">Open Class: open_arch: </label>
	    <input type="text" id="ba-best-archive-open-class" name="ba-best-archive-open-class" value="<?php echo $options['open_class'];?>" class="widefat" />
	    <br />
	     <label for="ba-best-archive-close-text">Close Text: [-]: </label>
	    <input type="text" id="ba-best-archive-close-text" name="ba-best-archive-close-text" value="<?php echo $options['close_text'];?>" class="widefat" />
	    <br />
	     <label for="ba-best-archive-close-class">Close Class: close_arch: </label>
	    <input type="text" id="ba-best-archive-close-class" name="ba-best-archive-close-class" value="<?php echo $options['close_class'];?>" class="widefat" />
	    <br />
	    </p>
	    
	    <p>
	    <input id="ba-best-archive-showposts" name="ba-best-archive-showposts" type="checkbox" value="1" <?php if ($options['showposts']) echo 'checked'; ?> />
	    <label for="ba-best-archive-showposts">Show Post Count</label>
	    <br />
	    
	    <input id="ba-best-archive-month-on" name="ba-best-archive-month-on" type="checkbox" value="1" <?php if ($options['month_on']) echo 'checked'; ?> />
	   	<label for="ba-best-archive-month-on">Show Months</label>
	   	<br />
	   	
		<input id="ba-best-archive-year-on" name="ba-best-archive-year-on" type="checkbox" value="1" <?php if ($options['year_on']) echo 'checked'; ?> />
		<label for="ba-best-archive-year-on">Show Years</label>
		<br />
		
		<input id="ba-best-archive-week-on" name="ba-best-archive-week-on" type="checkbox" value="1" <?php if ($options['week_on']) echo 'checked'; ?> />
		<label for="ba-best-archive-week-on">Show Weeks</label>
		<br />
		
		<input id="ba-best-archive-day-on" name="ba-best-archive-day-on" type="checkbox" value="1" <?php if ($options['day_on']) echo 'checked'; ?> />
		<label for="ba-best-archive-day-on">Show Days</label>
		<br />
		</p>
		
	    <p>
	    <input id="ba-best-archive-month-open" name="ba-best-archive-month-open" type="checkbox" value="true" <?php if ($options['month_open'] == 'true') echo 'checked'; ?> />
	   	<label for="ba-best-archive-month-open">Months Open</label>
	   	<br />
	   	
		<input id="ba-best-archive-year-open" name="ba-best-archive-year-open" type="checkbox" value="true" <?php if ($options['year_open'] == 'true') echo 'checked'; ?> />
		<label for="ba-best-archive-year-open">Years Open</label>
		<br />
		
		<input id="ba-best-archive-week-open" name="ba-best-archive-week-open" type="checkbox" value="true" <?php if ($options['week_open'] == 'true') echo 'checked'; ?> />
		<label for="ba-best-archive-week-open">Weeks Open</label>
		<br />
		<input id="ba-best-archive-day-open" name="ba-best-archive-day-open" type="checkbox" value="true" <?php if ($options['day_open'] == 'true') echo 'checked'; ?> />
		<label for="ba-best-archive-week-open">Days Open</label>
		<br />
		</p>
		
		<p>
	    <label for="ba-best-archive-Limit">Limit:</label>
	    <input type="text" id="ba-best-archive-limit" name="ba-best-archive-limit" value="<?php echo $options['limit'];?>" class="widefat" style="width:40px" />
	    <br />
	    </p>
	    
	    <p>
	    <label for="ba-best-archive-fx-time">FX Time:</label>
	    <input type="text" id="ba-best-archive-fx-time" name="ba-best-archive-fx-time" value="<?php echo $options['fx_time'];?>" class="widefat" style="width:40px" />
	    <br />
	    </p>
	    
	    <p>
	    <input type="hidden" id="ba-best-archive-submit" name="ba-best-archive-submit" value="1" />   
	  	</p>
<?php	
	}

	function jquery_show_hide($type, $time, $hideFirst, $openText, $closeText, $openClass, $closeClass) {
		echo '$("#' . $type . '_arch").BA_best_hide_show_toggle({';
		$options= <<<EOF
			clickOn: "#ba_open_arch_$type",
			time: $time,
			hideFirst: $hideFirst,
			openClickText: "$openText",
			closeClickText: "$closeText",
			openClickClass: "$openClass",
			closeClickClass: "$closeClass"
EOF;
		echo $options;
		echo '});';
	}
	
	function archive_list($type, $showposts, $limit) {
		//setup header li
		// change the type to the singular header text
		if ($type == 'yearly') {
			$header_text = 'Year';
		} elseif ($type == 'monthly'){
			$header_text = 'Month';
		}elseif ($type == 'daily'){
			$header_text = 'Day';
		}elseif ($type == 'weekly'){
			$header_text = 'Week';
		}
		
		echo '<div class="ba_arch_header"><h4>Select ' . $header_text . '</h4><a href="" id="ba_open_arch_' . $type . '"> </a></div>';
		//echo '<div class="ba_arch_header"><a href="" id="ba_open_arch_'.$type.'"><h4>Select '.$header_text.'</h4></a></div>';
		echo '<ul id="' . $type . '_arch">';
		echo dynamic_archives($type, $showposts, $limit);
		echo '</ul>';
		
	}
	
	function dynamic_archives($type, $showposts, $limit) {
		//set up $args array
		$args = array(
			'type' => $type,
			'show_post_count' => $showposts,
			'limit' => $limit,
			'echo' => 0
		);
		//return wp_get_archives()
		$archives = wp_get_archives($args);
		return $archives;
		
	}// end dynamic_archives()
	
	// create the widget for the sidebar
	function widget_BA_best_archive()
	{	
   		// get the options for this plugin
		$options = get_option("ba_best_archive_widget");
		// if we don't have options in the db set up default values
		if (!is_array( $options )) {
			$options = array(
				'title' => 'Archives',
				'limit' => 100,
				'showposts' => 0,
				'month_on' => 1,
				'year_on' => 1,
				'week_on' => 0,
				'day_on' => 0,
				'month_open' => false,
				'year_open' => false,
				'week_open' => false,
				'day_open' => false,
				'fx_time' => 300,
				'open_text' => '[+]',
				'close_text' => '[-]',
				'open_class' => 'open_arch',
				'close_class' => 'close_arch'
			);
		}//end is_array
?>
    	<div id="ba_best_archives" class="widget">
			<h3 class="sidebar_header"><?php echo $options['title']; ?></h3>
			<div id="ba_hide_arch">
<?php
		// show the archives for the options the user selects
		if($options['year_on']){ // user wants yearly
			archive_list('yearly', $options['showposts'], $options['limit']);
		} 
		if($options['month_on']){ // user wants monthly
			archive_list('monthly', $options['showposts'], $options['limit']);
		}
		if($options['week_on']){ // user wants weekly
			archive_list('weekly', $options['showposts'], $options['limit']);
		}
		if($options['day_on']){ // user wants daily
 			archive_list('daily', $options['showposts'], $options['limit']);
		}
?>
			</div><!-- END ba_hide_arch -->
		</div><!-- end ba_best_archives -->
		

<?php 
	}
	
	// call jQuery plugin for show and hide
	function ba_jquery_init() {
		$options = get_option("ba_best_archive_widget");
		
		echo '<script>';
		echo '$(function() {';
		// init jQuery plugin  for displayed archives 
		if($options['year_on'] == 1) {
			jquery_show_hide('yearly', $options['fx_time'], $options['year_open'], $options['open_text'], $options['close_text'], $options['open_class'], $options['close_class']);
		}
		if($options['month_on'] == 1) {
			jquery_show_hide('monthly', $options['fx_time'], $options['month_open'], $options['open_text'], $options['close_text'], $options['open_class'], $options['close_class']);
		}
		if($options['week_on'] == 1) {
			jquery_show_hide('weekly', $options['fx_time'], $options['week_open'], $options['open_text'], $options['close_text'], $options['open_class'], $options['close_class']);
		}
		if($options['day_on'] == 1) {
			jquery_show_hide('daily', $options['fx_time'], $options['day_open'], $options['open_text'], $options['close_text'], $options['open_class'], $options['close_class']);
		}
		echo '});';
		echo '</script>';
	}
	
	// Tell Dynamic Sidebar about our new widget and its control
	register_sidebar_widget(array('BA Best Archives', 'widgets'), 'widget_BA_best_archive');
	register_widget_control(array('BA Best Archives', 'widgets'), 'widget_BA_best_archive_control');
	// link to the styles 
	wp_enqueue_style('ba_better_styles', plugins_url('BA_Best_Archives/styles.css'), false, '1.00', 'all');
	// link to the jb_jquery plugins in the footer
	wp_enqueue_script('ba_best_archives_jquery_js', ( WP_PLUGIN_URL . "/BA_Best_Archives/ba.best_archives.jquery.js"), false, '1.2', true);
   	// initialize jb_jquery_plugin in the footer
   	add_action('wp_footer', 'ba_jquery_init');
}

// Delay plugin execution to ensure Dynamic Sidebar has a chance to load first
add_action('widgets_init', 'widget_BA_best_archive_init');

Content Filter

This works well for publishers who like to copy and paste.

/*
Plugin Name: BA Format Post
Plugin URI:
Description: Removes unwanted formatting from authors posts.  Addresses DIV's without closing tages, H1,H2 tags are converted to H3
Version: 1.0
Author: Jamie Broussard
Author URI: http://boardingarea.com
*/

function BA_Formatting($content)
{  
	$content = preg_replace('/

/', '

', $content); $content = preg_replace('/<\/h2>/', '

', $content); $content = preg_replace('/

/', '

', $content); $content = preg_replace('/<\/h1>/', '

', $content); $content = preg_replace('/
/', '

', $content); return $content; } add_filter('the_content', 'BA_Formatting');
Another Popular Posts SideBar Widget for WordPress

This is custom for the client

You won't find anything new here.

<?php

/*
Plugin Name: BA Popular Posts
Plugin URI: 
Description: Displays posts that have the most comments. Omits the Category: ID: 8059 - BoardingArea Contest. 
Author: Jamie Broussard
Version: 1.0
Author URI: boardingarea.com
*/

function widget_popular_posts_init()
{
	// make sure we have a dynamic sidebar first
	if ( !function_exists('register_sidebar_widget') || !function_exists('register_widget_control') )
		return;
		
		// create the sidebar widget control
		function widget_popular_posts_control()
		{
			// get options from the db
			$options = get_option("ba_popular_posts_widget");
			
			// if we don't have options in the db set up default values
			if (!is_array( $options ))
			{
				$options = array('title' => 'Popular Posts', 'limit' => 10, 'comments_limit' => 2, 'show_count' => 'false', 'category_omit' => 8059);
			}
			
			// when the contol form is submitted
			if ($_POST['ba-popular-posts-submit'])
			{
				// get input from the form and convert html to special characters
				$options['title'] = htmlspecialchars($_POST['ba-popular-posts-title']);
				$options['limit'] = htmlspecialchars($_POST['ba-popular-posts-limit']);
				$options['show_count'] = htmlspecialchars($_POST['ba-popular-posts-show-count']);
				$options['comments_limit'] = htmlspecialchars($_POST['ba-popular-posts-comments-limit']);
				$options['category_omit'] = htmlspecialchars($_POST['ba-popular-posts-category-omit']);
				
				//clean up
				if ( (!is_numeric($options['limit'])) || ($options['limit'] <= 0) ) $options['limit'] = 10;
				if ( (!is_numeric($options['comments_limit'])) || ($options['comments_limit'] <= 0) ) $options['comments_limit'] = 2;
				if ( (!is_numeric($options['category_omit']))) $options['category_omit'] = 8059;
				
				// store options in the db
				update_option("ba_popular_posts_widget", $options);
			} 
		
			// show the form in the admin area
			?>
			<p>
		    <label for="ba-popular-posts-title">Title:</label>
		    <input type="text" id="ba-popular-posts-title" name="ba-popular-posts-title" value="<?php echo $options['title'];?>" class="widefat" />
		    <br />
		    <label for="ba-popular-posts-show-count">Show Posts: true, false</label>
		    <input type="text" id="ba-popular-posts-show-count" name="ba-popular-posts-show-count" value="<?php echo $options['show_count'];?>" class="widefat" />
		    <br />
		    <label for="ba-popular-posts-limit">Limit:  </label>
	    	<input type="text" id="ba-popular-posts-limit" name="ba-popular-posts-limit" value="<?php echo $options['limit'];?>" class="widefat" style="width:40px" />
	    	<br />
	    	<label for="ba-popular-posts-comments-limit">Comments Minimum:</label>
	    	<input type="text" id="ba-popular-posts-comments-limit" name="ba-popular-posts-comments-limit" value="<?php echo $options['comments_limit'];?>" class="widefat" style="width:40px" />
	    	<br />
	    	<label for="ba-popular-posts-category-omit">Category Omit:</label>
	    	<input type="text" id="ba-popular-posts-category-omit" name="ba-popular-posts-category-omit" value="<?php echo $options['category_omit'];?>" class="widefat" style="width:40px" />
	    	<br />
		    <input type="hidden" id="ba-popular-posts-submit" name="ba-popular-posts-submit" value="1" />   
		  	</p>
			<?php
		}
		
		// create the widget for the sidebar
		function widget_popular_posts()
		{
			// get options from the db
			$options = get_option("ba_popular_posts_widget");
			
			// if we don't have options in the db set up default values
			if (!is_array( $options ))
			{
				$options = array('title' => 'Popular Posts', 'limit' => 10, 'comments_limit' => 2, 'show_count' => 'false', 'category_omit' => 8059);
			}
			?>
			<div id="ba_popular_posts" class="widget">
			
				<h3 class="sidebar_header"><?php echo $options['title']; ?></h3>
				<ul>
				
				<?php 
				global $wpdb;
				$result_limit = $options['limit'];
				$comments_limit = $options['comments_limit'];
				$category_omit = $options['category_omit'];
				// the query
				$result = $wpdb->get_results("SELECT p.comment_count, p.ID, p.post_title FROM $wpdb->terms INNER JOIN $wpdb->term_taxonomy ON $wpdb->terms.term_id = $wpdb->term_taxonomy.term_id INNER JOIN $wpdb->term_relationships wpr ON wpr.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id INNER JOIN $wpdb->posts p ON p.ID = wpr.object_id WHERE taxonomy = 'category' AND $wpdb->terms.term_id !=$category_omit AND p.post_type = 'post' GROUP BY p.ID ORDER BY p.comment_count DESC LIMIT 0 , $result_limit"); 
				
				foreach ($result as $post) { 
					setup_postdata($post);
					$postid = $post->ID; 
					$title = $post->post_title; 
					$commentcount = $post->comment_count; 
					if ($commentcount >= $comments_limit) { 
						?> 
						<li>
						<a href="<?php echo get_permalink($postid); ?>" title="<?php echo $title ?>">
						<?php echo $title ?></a> <?php if($options['show_count'] == 'true') echo '(' . $commentcount .')' ?>
						</li>
						<?php
					}
				}
				?>
				</ul>

			</div><!-- END ba_popular_posts -->
			
			<?php
		}
		
		// Tell Dynamic Sidebar about our new widget and its control
		register_sidebar_widget(array('BA Popular Posts', 'widgets'), 'widget_popular_posts');
		register_widget_control(array('BA Popular Posts', 'widgets'), 'widget_popular_posts_control');		
}

// Delay plugin execution to ensure Dynamic Sidebar has a chance to load first
add_action('widgets_init', 'widget_popular_posts_init');
Append Content to Post

This is under development

/*
Plugin Name: BA Post Append
Plugin URI: 
Description: This plugin adds an content to the end of each post
Author: Jamie Broussard
Version: 1.0
Author URI:
*/

function append_to_content($content)
{
	// we need the content from the options
	
	// this is where we'll display the content on a single post page
	if( is_single() ) {
		$appendContent = get_option('ba_post_append_content');
		return $content .$appendContent ;
	} else {
		return $content;
	}
}

function append_to_side_bar() {
	// make sure we have a dynamic sidebar first
	if ( !function_exists('register_sidebar_widget') || !function_exists('register_widget_control') )
		return;
	
	
}

function append_to_settings()
{
	// get options from the db
	$options['content'] = get_option('ba_post_append_content');
	$options = get_option('ba_post_append_options');
	
	// if we don't have options in the db set up array for serialized data
	if (!is_array( $options )) {
		$options = array(
			'show_single' => '' ,
			'show_post' => '',
			'content' => 'place content here'
		);
	}
	
	// this is where we'll display our admin options
	
	// we need to store the options, content maybe where to display
}

function append_to_admin_menu()
{
	// this is where we add our plugin to the admin menu
	add_options_page('Post Append', 'Post Append', 'administrator', 'bapostappend', 'append_to_settings');
}

add_action('the_content', 'append_to_content');
add_action('admin_menu', 'append_to_admin_menu');
Links List Plugin

We needed this so we could easily include links to our bloggers without the Author deleteing them.

We can also update the links across the network easily.

<?php

/*
Plugin Name: BA_Blogs
Plugin URI: 
Description: Default links to enter into the sidebar. Usage: Edit the bloglist.txt file to change links site wide. 
Author: Jamie Broussard
Version: 1.0
Author URI: boardingarea.com
*/

function widget_ba_blogs_init()
{
	// make sure we have a dynamic sidebar first
	if ( !function_exists('register_sidebar_widget') || !function_exists('register_widget_control') )
		return;
		
		// create the sidebar widget control
		function widget_ba_blogs_control()
		{
			// get options from the db
			$options = get_option("ba_blogs_widget");
			
			// if we don't have options in the db set up default values
			if (!is_array( $options ))
			{
				$options = array('title' => 'BoardingArea Blogs');
			}
			
			// when the contol form is submitted
			if ($_POST['ba-links-submit'])
			{
				// get input from the form and convert html to special characters
				$options['title'] = htmlspecialchars($_POST['ba-links-title']);
				
				// store options in the db
				update_option("ba_blogs_widget", $options);
			} 
		
			// show the form in the admin area
			?>
			<p>
		    <label for="ba-better-archive-title">Title:</label>
		    <input type="text" id="ba-links-title" name="ba-links-title" value="<?php echo $options['title'];?>" class="widefat" />
		    <br />
		    <input type="hidden" id="ba-links-submit" name="ba-links-submit" value="1" />   
		  	</p>
			<?php
		}
		
		// create the widget for the sidebar
		function widget_ba_blogs()
		{
			// get options from the db
			$options = get_option("ba_blogs_widget");
			
			// if we don't have options in the db set up default values
			if (!is_array( $options ))
			{
				$options = array('title' => 'BoardingArea Blogs');
			}
			?>
			<!-- hide proir to boarding list, then show on click -->
			<script type='text/javascript'>
				$(function() {
					$('#ba_prior_list').JB_hide_show_toggle();
				});
			</script>
			
			<div id="ba_blogs" class="widget">
			<?php
			if ($options['title'] == '')
			{
				// don't print the title
			}else{
				?>
				<h3 class="sidebar_header"><?php echo $options['title']; ?></h3>
				<?php
			}
			// edit this file to include the blogger list
			include_once('bloglist.txt');
			?>
			</div><!-- End BA BLOGS -->
			<?php
		}
		
		// Tell Dynamic Sidebar about our new widget and its control
		register_sidebar_widget(array('BA Blogs', 'widgets'), 'widget_ba_blogs');
		register_widget_control(array('BA Blogs', 'widgets'), 'widget_ba_blogs_control');
		// link to js file
		wp_register_script('jb_jquery_js', ( WP_PLUGIN_URL . "/BA_Blogs/ba.blogs.jquery.js"), false, '1');
   		wp_enqueue_script('jb_jquery_js');	
}

// Delay plugin execution to ensure Dynamic Sidebar has a chance to load first
add_action('widgets_init', 'widget_ba_blogs_init');
Page Content Sidebar Widget

Simple way to display WordPress page content in a sidebar or footer

<?php

/*
Plugin Name: BA_Show_Page_Content
Plugin URI: 
Description: Show a pages content in the sidebar. Usage: Page ID is usually 2 for the default about page.
Author: Jamie Broussard
Version: 1.0
Author URI: boardingarea.com
*/

function widget_ba_show_page_init()
{
	// make sure we have a dynamic sidebar first
	if ( !function_exists('register_sidebar_widget') || !function_exists('register_widget_control') )
		return;
		
		// create the sidebar widget control
		function widget_ba_show_page_control()
		{
			// get options from the db
			$options = get_option("ba_show_page_widget");
			
			// if we don't have options in the db set up default values
			if (!is_array( $options ))
			{
				$options = array('title' => 'Page Title');
			}
			
			// when the contol form is submitted
			if ($_POST['ba-show-page-submit'])
			{
				// get input from the form and convert html to special characters
				$options['title'] = htmlspecialchars($_POST['ba-show-page-title']);
				$options['page_id'] = htmlspecialchars($_POST['ba-show-page-id']);
				
				// clean up user input
				if ( (!is_numeric($options['page_id'])) || ($options['limit'] <= 0) ) $options['limit'] = 2;
				
				// store options in the db
				update_option("ba_show_page_widget", $options);
			
			} 
		
			// show the form in the admin area
			?>
			<p>
		    <label for="ba-show-page-title">Title:</label>
		    <input type="text" id="ba-show-page-title" name="ba-show-page-title" value="<?php echo $options['title'];?>" class="widefat" />
		    <br />
		    <label for="ba-show-page-id">Page ID:</label>
	    	<input type="text" id="ba-show-page-id" name="ba-show-page-id" value="<?php echo $options['page_id'];?>" class="widefat" style="width:40px" /><br />
	    	<br />
		    <input type="hidden" id="ba-show-page-submit" name="ba-show-page-submit" value="1" />   
		  	</p>
			<?php
		}
		
		// create the widget for the sidebar
		function widget_ba_show_page()
		{
			// get options from the db
			$options = get_option("ba_show_page_widget");
			
			// if we don't have options in the db set up default values
			if (!is_array( $options ))
			{
				$options = array('title' => 'Page Title');
			}
			?>
			<div id="ba_show_page" class="widget">
			<?php
			if ($options['title'] == '')
			{
				// don't print the title
			}else{
				?>
				<h3><?php echo $options['title']; ?></h3>
				<?php
			}
			
			// generate worpress get page conent
			$page_id = $options['page_id']; // 123 should be replaced with a specific Page's id from your site, which you can find by mousing over the link to edit that Page on the Manage Pages admin page. The id will be embedded in the query string of the URL, e.g. page.php?action=edit&post=123.
			$page_data = get_page( $page_id ); // You must pass in a variable to the get_page function. If you pass in a value (e.g. get_page ( 123 ); ), Wordpress will generate an error. 
			
			$content = $page_data->post_content; // Get Content
			$title = $page_data->post_title; // Get title
			?>
			<div id="show_page_content_text">
			<?php
			echo $page_data->post_content; // Output Content, echo $page_data->[Page data field] (see above)
			?>
			
			</div><!-- END show_page_content -->
			
			</div><!-- END widget -->
			<?php
		}
		
		// Tell Dynamic Sidebar about our new widget and its control
		register_sidebar_widget(array('BA Show Page Content', 'widgets'), 'widget_ba_show_page');
		register_widget_control(array('BA Show Page Content', 'widgets'), 'widget_ba_show_page_control');
		
}

// Delay plugin execution to ensure Dynamic Sidebar has a chance to load first
add_action('widgets_init', 'widget_ba_show_page_init');
My Own Social Bookmarking Plugin

Has not gone into production yet, might not even work yet.

<?php
/*
Plugin Name: BA_Add_This
Plugin URI: 
Description: BoardingArea version of AddThis use <?php ba_add_this('16x16') ?> INSIDE the post content loop
Author: Jamie Broussard
Version: 1.0
Author URI: boardingarea.com
*/

function ba_add_this_init()
{				
	// display the links in the post
	function ba_add_this($size)
	{
		$image_size = $size;
		if(!isset($size))
		{
			$size = '16x16';
		}
		$image_root ='/images/social_icons/' . $image_size;
		?>

		<div id="ba_add_this">
		
			<a href=" http://digg.com/submit?phase=2&url= <?php the_permalink();?>&title=<?php the_title();?>" target="_blank">
			<img src="<?php echo $image_root ?>/digg.png" title="Digg this!">
			</a>
			<a href="http://www.facebook.com/sharer.php?u=<?php the_permalink();?>&t=<?php the_title();?>" target="_blank"><img src="<?php echo $image_root ?>/facebook.png" title="Share on Facebook!">
			</a>
			<a href="http://twitter.com/?status=<?php the_permalink();?><?php the_title();?>" target="_blank">
			<img src="<?php echo $image_root ?>/twitter.png" title="Tweet This!">
			</a>
			<a href=" http://reddit.com/submit?url=
			<?php the_permalink();?>&title=<?php the_title();?>" target="_blank">
			<img src="<?php echo $image_root ?>/reddit.png" title="Reddit!">
			</a>

		</div><!-- END ba_add_this -->
	
		<?php
	}		
}
add_action("plugins_loaded", "ba_add_this_init");