comicpress-2.8/functions.php

943 lines
31 KiB
PHP
Raw Normal View History

<?php
2009-11-21 15:24:01 +00:00
// the_post_image('thumbnail/medium/full');
if (function_exists('add_theme_support')) {
add_theme_support( 'post-thumbnails' );
}
2009-11-21 15:24:01 +00:00
function __comicpress_widgets_init() {
if (($dh = opendir(dirname(__FILE__) . '/widgets')) !== false) {
while (($file = readdir($dh)) !== false) {
if (strpos($file, '.inc') !== false) {
$class_name = preg_replace('#\..*$#', '', $file);
require_once(dirname(__FILE__) . '/widgets/' . $file);
2009-11-21 15:46:13 +00:00
register_widget($class_name);
2009-11-21 15:24:01 +00:00
$widget = new $class_name();
if (method_exists($widget, 'init')) { $widget->init(); }
}
}
closedir($dh);
}
}
2009-11-21 15:24:01 +00:00
function __comicpress_init() {
global $comicpress_options;
// Check if the $comicpress_options exist, if not set defaults
$comicpress_options = comicpress_load_options();
// xili-language plugin check
if (class_exists('xili_language')) {
define('THEME_TEXTDOMAIN','comicpress');
define('THEME_LANGS_FOLDER','/lang');
} else {
load_theme_textdomain( 'comicpress', get_template_directory() . '/lang' );
}
2009-11-21 15:24:01 +00:00
// Queue up the scripts.
wp_enqueue_script('comicpress_scroll', get_template_directory_uri() . '/js/scroll.js');
// remove intense debates control over the comment numbers
if (function_exists('id_get_comment_number')) {
remove_filter('comments_number','id_get_comment_number');
}
}
2009-11-21 15:24:01 +00:00
add_action('widgets_init', '__comicpress_widgets_init');
add_action('init', '__comicpress_init');
global $wpmu_version;
if (!empty($wpmu_version)) {
2009-11-21 15:24:01 +00:00
if (get_option('upload_path') !== false) {
$variables_to_extract = array();
2009-11-21 15:24:01 +00:00
foreach (array(
'comiccat' => 'comiccat',
'blogcat' => 'blogcat',
'comics_path' => 'comic_folder',
'comicsrss_path' => 'rss_comic_folder',
'comicsarchive_path' => 'archive_comic_folder',
'comicsmini_path' => 'mini_comic_folder',
'archive_comic_width' => 'archive_comic_width',
'rss_comic_width' => 'rss_comic_width',
'mini_comic_width' => 'mini_comic_width',
'blog_postcount' => 'blog_postcount') as $options => $variable_name) {
$variables_to_extract[$variable_name] = get_option("comicpress-${options}");
}
2009-11-21 15:24:01 +00:00
extract($variables_to_extract);
}
2009-11-21 15:24:01 +00:00
} else {
require(get_template_directory() . '/comicpress-config.php');
}
function comicpress_load_options() {
global $comicpress_options;
$comicpress_options = get_option('comicpress_options');
if (empty($comicpress_options)) {
$comicpress_options['comicpress_version'] = '2.9.0.1';
$comicpress_options['disable_comic_frontpage'] = false;
$comicpress_options['disable_comic_blog_frontpage'] = false;
$comicpress_options['disable_comic_blog_single'] = false;
$comicpress_options['disable_blog_frontpage'] = false;
$comicpress_options['disable_lrsidebars_frontpage'] = false;
$comicpress_options['disable_footer_text'] = false;
$comicpress_options['disable_blogheader'] = false;
$comicpress_options['disable_page_titles'] = false;
$comicpress_options['static_blog'] = false;
$comicpress_options['disable_default_comic_nav'] = false;
$comicpress_options['cp_theme_layout'] = 'standard';
$comicpress_options['transcript_in_posts'] = false;
$comicpress_options['enable_widgetarea_use_sidebar_css'] = false;
$comicpress_options['enable_custom_image_header'] = false;
$comicpress_options['custom_image_header_width'] = '980';
$comicpress_options['custom_image_header_height'] = '120';
$comicpress_options['enable_numbered_pagination'] = false;
$comicpress_options['disable_page_restraints'] = false;
$comicpress_options['enable_related_comics'] = false;
$comicpress_options['enable_related_posts'] = false;
$comicpress_options['comic_clicks_next'] = false;
$comicpress_options['rascal_says'] = false;
$comicpress_options['enable_post_calendar'] = false;
$comicpress_options['enable_post_author_gravatar'] = false;
$comicpress_options['enable_comic_post_calendar'] = false;
$comicpress_options['enable_comic_post_author_gravatar'] = false;
$comicpress_options['disable_tags_in_posts'] = false;
$comicpress_options['disable_categories_in_posts'] = false;
$comicpress_options['disable_comment_note'] = false;
$comicpress_options['blogposts_with_comic'] = false;
$comicpress_options['remove_wptexturize'] = false;
$comicpress_options['moods_directory'] = 'default';
$comicpress_options['graphicnav_directory'] = 'default';
$comicpress_options['calendar_directory'] = 'none';
$comicpress_options['avatar_directory'] = 'none';
$comicpress_options['enable_search_in_menubar'] = false;
$comicpress_options['enable_rss_in_menubar'] = true;
$comicpress_options['enable_navigation_in_menubar'] = true;
$comicpress_options['contact_in_menubar'] = false;
$comicpress_options['disable_dynamic_menubar_links'] = false;
$comicpress_options['disable_default_menubar'] = false;
$comicpress_options['archive_display_order'] = 'desc';
$comicpress_options['excerpt_or_content_archive'] = 'content';
$comicpress_options['excerpt_or_content_search'] = 'excerpt';
$comicpress_options['category_thumbnail_postcount'] = '-1';
$comicpress_options['members_post_category'] = '';
$comicpress_options['split_column_in_two'] = false;
$comicpress_options['author_column_one'] = '';
$comicpress_options['author_column_two'] = '';
$comicpress_options['buy_print_email'] = 'philip@frumph.net';
$comicpress_options['buy_print_url'] = '/shop/';
$comicpress_options['buy_print_us_amount'] = '24.95';
$comicpress_options['buy_print_int_amount'] = '29.95';
$comicpress_options['buy_print_add_shipping'] = false;
$comicpress_options['buy_print_us_ship'] = '4.95';
$comicpress_options['buy_print_int_ship'] = '9.95';
add_option('comicpress_options', $comicpress_options, '', 'yes');
// update_option('comicpress_options', $comicpress_options);
}
$comicpress_options['comicpress_version'] = '2.9.0.2';
update_option('comicpress_options', $comicpress_options);
return $comicpress_options;
}
function is_cp_theme_layout($choices) {
global $comicpress_options;
$choices = explode(",", $choices);
foreach ($choices as $choice) {
if ($choice == $comicpress_options['cp_theme_layout']) {
2009-11-21 15:24:01 +00:00
return true;
}
}
return false;
}
if ($comicpress_options['remove_wptexturize']) {
// Remove the wptexturizer from changing the quotes and squotes.
// remove_filter('the_content', 'wpautop');
// remove_filter('the_title', 'wptexturize');
remove_filter('the_content', 'wptexturize');
// remove_filter('the_excerpt', 'wptexturize');
// remove_filter('comment_text', 'wptexturize');
}
// WIDGETS WP 2.8 compatible ONLY, no backwards compatibility here.
$dirs_to_search = array_unique(array(get_template_directory(),get_stylesheet_directory()));
foreach ($dirs_to_search as $dir) {
// Widgets
foreach (glob($dir . '/widgets/*.php') as $__file) { require_once($__file); }
2009-11-21 15:24:01 +00:00
// FUNCTIONS & Extra's
foreach (glob($dir . '/functions/*.php') as $__file) { require_once($__file); }
}
// Dashboard Menu Comicpress Options and ComicPress CSS
require_once(get_template_directory() . '/comicpress-options.php');
// If any errors occur while searching for a comic file, the error messages will be pushed into here.
$comic_pathfinding_errors = array();
// If ComicPress Manager is installed, use the date format defined there. If not, default to
// Y-m-d.. It's best to use CPM's date definition for improved operability between theme and plugin.
if (defined("CPM_DATE_FORMAT")) {
define("CP_DATE_FORMAT", CPM_DATE_FORMAT);
} else {
define("CP_DATE_FORMAT", "Y-m-d");
}
// If you want to run multiple comics on a single day, define your additional filters here.
// Example: you want to run an additional comic with the filename 2008-01-01-a-my-new-years-comic.jpg.
// Define an additional filter in the list below:
//
// $comic_filename_filters['secondary'] = "{date}-a*.*";
//
// Then show the second comic on your page by calling the_comic with your filter name (PHP tags munged
// to maintain valid file syntax):
//
// < ?php the_comic('secondary'); ? >
//
// Note that it's quite possible to slurp up the wrong file if your expressions are too broad.
$comic_filename_filters = array();
$comic_filename_filters['default'] = "{date}*.*";
// load all of the comic & non-comic category information
add_action('init', 'get_all_comic_categories');
function get_first_comic() {
return get_terminal_post_in_category(get_all_comic_categories_as_cat_string(), true);
}
function get_last_comic() {
return get_terminal_post_in_category(get_all_comic_categories_as_cat_string(), false);
}
/**
* Get the hyperlink to the first comic post in the database.
* @return string The hyperlink to the first comic post, or false.
*/
function get_first_comic_permalink() {
$terminal = get_first_comic();
return !empty($terminal) ? get_permalink($terminal->ID) : false;
}
/**
* Get the hyperlink to the last comic post in the database.
* @return string The hyperlink to the first comic post, or false.
*/
function get_last_comic_permalink() {
$terminal = get_last_comic();
return !empty($terminal) ? get_permalink($terminal->ID) : false;
}
/**
* Given a category ID or an array of category IDs, create an exclusion string that will
* filter out every category but the provided ones.
*/
function get_string_to_exclude_all_but_provided_categories($category) {
$category_ids = array_keys(get_all_category_objects_by_id());
if (!is_array($category)) { $category = array($category); }
return implode(" and ", array_diff($category_ids, $category));
}
/**
* Get the link to the previous comic from the current one.
*/
function previous_comic_link($format, $link) {
global $non_comic_categories;
previous_post_link($format, $link, false, $non_comic_categories);
}
/**
* Get the link to the next comic from the current one.
*/
function next_comic_link($format, $link) {
global $non_comic_categories;
next_post_link($format, $link, false, $non_comic_categories);
}
/**
* Get the previous comic from the current one.
*/
function get_previous_comic($category = null) { return get_adjacent_comic($category, true); }
/**
* Get the next comic from the current one.
*/
function get_next_comic($category = null) { return get_adjacent_comic($category); }
/**
* This is function get_next_comic_permalink
*
* @return mixed false if no next comic permalink, else return the permalink
*
*/
function get_next_comic_permalink() {
$next_comic = get_next_comic();
if (is_object($next_comic)) {
if (isset($next_comic->ID)) {
return get_permalink($next_comic->ID);
}
}
return false;
}
/**
* This is function get_previous_comic_permalink
*
* @return mixed false if there is no permalink or next previous comic
*
*/
function get_previous_comic_permalink() {
$prev_comic = get_previous_comic();
if (is_object($prev_comic)) {
if (isset($prev_comic->ID)) {
return get_permalink($prev_comic->ID);
}
}
return false;
}
/**
* Get the adjacent comic from the current one.
* @param int $category The category to use.
* @param boolean $previous True if the previous chronological comic should be retrieved.
* @return array The WordPress post object for the comic post.
*/
function get_adjacent_comic($category, $previous = false) {
global $non_comic_categories;
2009-11-21 15:24:01 +00:00
// get_all_comic_categories();
2009-11-21 15:24:01 +00:00
$categories_to_exclude = $non_comic_categories;
if (!empty($category)) {
$categories_to_exclude = get_string_to_exclude_all_but_provided_categories($category);
}
2009-11-21 15:24:01 +00:00
return get_adjacent_post(false, $categories_to_exclude, $previous);
}
/**
* Find the terminal post in a specific category.
*/
function get_terminal_post_in_category($categoryID, $first = true) {
global $post;
$temp = $wp_query; $wp_query = null;
$sortOrder = $first ? "asc" : "desc";
$terminalComicQuery = new WP_Query(); $terminalComicQuery->query("showposts=1&order=${sortOrder}&cat=${categoryID}");
$terninalPost = false;
if ($terminalComicQuery->have_posts()) {
$terminalPost = reset($terminalComicQuery->posts);
}
$wp_query = null; $wp_query = $temp;
return $terminalPost;
}
/**
* Find the first post in the storyline prior to the current one.
*/
function get_previous_storyline_start() {
if (($category_id = get_adjacent_storyline_category_id(false)) !== false) {
return get_terminal_post_in_category($category_id);
}
return false;
}
function get_previous_storyline_start_permalink() {
$prev_story = get_previous_storyline_start();
if (is_object($prev_story)) {
if (isset($prev_story->ID)) {
return get_permalink($prev_story->ID);
}
}
return false;
}
/**
* Find the first post in the storyline following to the current one.
*/
function get_next_storyline_start() {
if (($category_id = get_adjacent_storyline_category_id(true)) !== false) {
return get_terminal_post_in_category($category_id);
}
return false;
}
function get_next_storyline_start_permalink() {
$next_story = get_next_storyline_start();
if (is_object($next_story)) {
if (isset($next_story->ID)) {
return get_permalink($next_story->ID);
}
}
return false;
}
function get_adjacent_storyline_category_id($next = false) {
global $post, $category_tree;
2009-11-21 15:24:01 +00:00
$categories = wp_get_post_categories($post->ID);
if (is_array($categories)) {
$category_id = reset($categories);
for ($i = 0, $il = count($category_tree); $i < $il; ++$i) {
$storyline_category_id = end(explode("/", $category_tree[$i]));
2009-11-21 15:24:01 +00:00
if ($storyline_category_id == $category_id) {
$target_index = false;
if ($next) {
$target_index = $i + 1;
} else {
$target_index = $i - 1;
}
if (isset($category_tree[$target_index])) {
return end(explode('/', $category_tree[$target_index]));
}
2009-11-21 15:24:01 +00:00
}
}
}
return false;
}
/**
* Find a comic file in the filesystem.
* @param string $folder The folder name to search.
* @param string $override_post A WP Post object to use in place of global $post.
* @param string $filter The $comic_filename_filters to use.
* @return string The relative path to the comic file, or false if not found.
*/
function get_comic_path($folder = 'comic', $override_post = null, $filter = 'default', $multi = null) {
global $post, $comic_filename_filters, $comic_folder, $archive_comic_folder, $rss_comic_folder, $mini_comic_folder, $comic_pathfinding_errors, $wpmu_version;
if (isset($comic_filename_filters[$filter])) {
$filter_to_use = $comic_filename_filters[$filter];
} else {
$filter_to_use = '{date}*.*';
}
switch ($folder) {
case "rss": $folder_to_use = $rss_comic_folder; break;
case "archive": $folder_to_use = $archive_comic_folder; break;
case "mini": $folder_to_use = $mini_comic_folder; break;
case "comic": default: $folder_to_use = $comic_folder; break;
}
if (!empty($wpmu_version)) {
if (($wpmu_path = get_option('upload_path')) !== false) {
$folder_to_use = $wpmu_path . '/' . $folder_to_use;
}
}
$post_to_use = (is_object($override_post)) ? $override_post : $post;
$post_date = mysql2date(CP_DATE_FORMAT, $post_to_use->post_date);
$filter_with_date = str_replace('{date}', $post_date, $filter_to_use);
2009-11-21 15:24:01 +00:00
$cwd = get_stylesheet_directory();
if ($cwd !== false) {
// Strip the wp-admin part and just get to the root.
$root_path = preg_replace('#[\\/]wp-(admin|content).*#', '', $cwd);
}
2009-11-21 15:24:01 +00:00
$results = array();
/* have to use root_path to get subdirectory installation directories */
if (count($results = glob("${root_path}/${folder_to_use}/${filter_with_date}")) > 0) {
if (!empty($wpmu_version)) {
$comic = reset($results);
$comic = $folder_to_use . '/'. basename($comic);
if ($wpmu_path !== false) { $comic = str_replace($wpmu_path, "files", $comic); }
return $comic;
}
if (!empty($multi)) {
return $results;
} else {
/* clear the root path */
$comic = reset($results);
$comic = $folder_to_use .'/'. basename($comic);
return $comic;
}
}
$comic_pathfinding_errors[] = sprintf(__("Unable to find the file in the <strong>%s</strong> folder that matched the pattern <strong>%s</strong>. Check your WordPress and ComicPress settings.", 'comicpress'), $folder_to_use, $filter_with_date);
return false;
}
/**
* Find a comic file in the filesystem and return an absolute URL to that file.
* @param string $folder The folder name to search.
* @param string $override_post A WP Post object to use in place of global $post.
* @param string $filter The $comic_filename_filters to use.
* @return string The absolute URL to the comic file, or false if not found.
*/
function get_comic_url($folder = 'comic', $override_post = null, $filter = 'default') {
if (($result = get_comic_path($folder, $override_post, $filter)) !== false) {
return get_bloginfo('wpurl') . '/' . $result;
} else {
if (($result = get_comic_path('comic', $override_post, $filter)) !== false) {
$basecomic = basename($result);
2009-11-21 15:24:01 +00:00
return get_bloginfo('wpurl') . '/' . $result;
}
}
return $result;
}
/**
* get_comic_filename
* returns the filename of the comic for the individual date.
*
*/
function get_comic_filename($folder = 'comic', $override_post = null, $filter = 'default') {
if (($result = get_comic_path($folder, $override_post, $filter)) !== false) {
return $result;
}
}
/**
2009-11-21 15:24:01 +00:00
* Return a list of the comic categories with a negative value for exclusions
* NOTE: need a pre - negative for the first one
*/
function exclude_comic_categories() {
global $all_comic_categories_as_string;
if (empty($all_comic_categories_as_string)) get_all_comic_categories_as_cat_string();
$returnstring = str_replace(",",",-",$all_comic_categories_as_string);
return $returnstring;
}
/**
* Turn the tree of comics categories into a string to be fed into wp_query functions.
*/
function get_all_comic_categories_as_cat_string() {
global $all_comic_categories_as_string, $category_tree;
if (empty($all_comic_categories_as_string)) {
$categories = array();
foreach ($category_tree as $node) {
$parts = explode("/", $node);
$categories[] = end($parts);
}
$all_comic_categories_as_string = implode(",", $categories);
}
return $all_comic_categories_as_string;
}
/**
* Turn the list of categories into a hash table of category objects.
*/
function get_all_category_objects_by_id() {
global $categories_by_id;
if (empty($categories_by_id)) {
$categories_by_id = array();
foreach (get_categories("hide_empty=0") as $category_object) {
$categories_by_id[$category_object->term_id] = $category_object;
}
}
return $categories_by_id;
}
/**
* Parse all categories and sort them into comics and non-comics categories.
*/
function get_all_comic_categories() {
global $comiccat, $category_tree, $non_comic_categories;
$categories_by_id = get_all_category_objects_by_id();
foreach (array_keys($categories_by_id) as $category_id) {
$category_tree[] = $categories_by_id[$category_id]->parent . '/' . $category_id;
}
do {
$all_ok = true;
for ($i = 0; $i < count($category_tree); ++$i) {
$current_parts = explode("/", $category_tree[$i]);
if (reset($current_parts) != 0) {
$all_ok = false;
for ($j = 0; $j < count($category_tree); ++$j) {
$j_parts = explode("/", $category_tree[$j]);
if (end($j_parts) == reset($current_parts)) {
$category_tree[$i] = implode("/", array_merge($j_parts, array_slice($current_parts, 1)));
break;
}
}
}
}
} while (!$all_ok);
$non_comic_tree = array();
if (get_option('comicpress-enable-storyline-support') == 1) {
$result = get_option("comicpress-storyline-category-order");
if (!empty($result)) {
$category_tree = explode(",", $result);
}
$non_comic_tree = array_keys($categories_by_id);
foreach ($category_tree as $node) {
$parts = explode("/", $node);
$category_id = end($parts);
if ($parts[1] == $comiccat) {
if (($index = array_search($category_id, $non_comic_tree)) !== false) {
array_splice($non_comic_tree, $index, 1);
}
}
}
} else {
$new_category_tree = array();
foreach ($category_tree as $node) {
$parts = explode("/", $node);
if ($parts[1] == $comiccat) {
$new_category_tree[] = $node;
} else {
$non_comic_tree[] = end($parts);
}
}
$category_tree = $new_category_tree;
}
$non_comic_categories = implode(" and ", $non_comic_tree);
}
/**
* Return true if the current post is in the comics category or a child category.
*/
function in_comic_category() {
global $post, $category_tree;
$comic_categories = array();
foreach ($category_tree as $node) {
$comic_categories[] = end(explode("/", $node));
}
return (count(array_intersect($comic_categories, wp_get_post_categories($post->ID))) > 0);
}
// ComicPress Template Functions
function the_comic_filename($filter = 'default') { return get_comic_filename('comic',null, $filter); }
function the_comic($filter = 'default') { echo get_comic_url('comic', null, $filter); }
//The following is deprecated...
function comic_display($filter = 'default') { echo get_comic_url('comic', null, $filter); }
function the_comic_archive($filter = 'default') { echo get_comic_url('archive', null, $filter); }
//The following is deprecated...
function comic_archive($filter = 'default') { echo get_comic_url('archive', null, $filter); }
function the_comic_rss($filter = 'default') { echo get_comic_url('rss', null, $filter); }
//The following is deprecated...
function comic_rss($filter = 'default') { echo get_comic_url('rss', null, $filter); }
function the_comic_mini($filter = 'default') { echo get_comic_url('mini', null, $filter); }
//The following is deprecated...
function comic_mini($filter = 'default') { echo get_comic_url('mini', null, $filter); }
2009-11-21 15:24:01 +00:00
/**
* Display the list of Storyline categories.
*/
function comicpress_list_storyline_categories($args = "") {
global $category_tree;
$defaults = array(
'style' => 'list', 'title_li' => __('Storyline','comicpress')
);
$r = wp_parse_args($args, $defaults);
extract($r);
$categories_by_id = get_all_category_objects_by_id();
$output = '';
if ($style == "list") { $output .= '<li class="categories storyline">'; }
if ($title_li && ($style == "list")) { $output .= $title_li; }
if ($style == "list") { $output .= "<ul>"; }
$current_depth = 0;
foreach ($category_tree as $node) {
$parts = explode("/", $node);
$category_id = end($parts);
$target_depth = count($parts) - 2;
if ($target_depth > $current_depth) {
$output .= str_repeat("<li><ul>", ($target_depth - $current_depth));
}
if ($target_depth < $current_depth) {
$output .= str_repeat("</ul></li>", ($current_depth - $target_depth));
}
$output .= '<li><a href="' . get_category_link($category_id) . '">';
$output .= $categories_by_id[$category_id]->cat_name;
$output .= "</a></li>";
$current_depth = $target_depth;
}
if ($current_depth > 0) {
$output .= str_repeat("</ul></li>", $current_depth);
}
if ($style == "list") { $output .= "</ul></li>"; }
echo $output;
}
/**
* Display text when image (comic) is hovered
* Text is taken from a custom field named "hovertext"
*/
function the_hovertext() {
$hovertext = get_post_meta( get_the_ID(), "hovertext", true );
echo (empty($hovertext)) ? get_the_title() : $hovertext;
}
/**
* Display the comic transcript
* Transcript must be entered into a custom field named "transcript"
* @param string $displaymode, "raw" (straight from the field), "br" (includes html line breaks), "styled" (fully css styled with JavaScript expander)
*/
function the_transcript($displaymode = 'raw') {
$transcript = get_post_meta( get_the_ID(), "transcript", true );
switch ($displaymode) {
case "raw":
echo $transcript;
break;
case "br":
echo nl2br($transcript);
break;
case "styled":
if (!empty($transcript)) { ?>
<script type='text/javascript'>
<!--
function toggle_expander(id) {
var e = document.getElementById(id);
if(e.style.height == 'auto')
e.style.height = '1px';
else
e.style.height = 'auto';
}
//-->
</script>
<div class="transcript-border"><div id="transcript"><a href="javascript:toggle_expander('transcript-content');" class="transcript-title">&darr; Transcript</a><div id="transcript-content"><?php echo nl2br($transcript); ?><br /><br /></div></div></div>
<script type='text/javascript'>
<!--
document.getElementById('transcript-content').style.height = '1px';
//-->
</script><?php
}
break;
}
}
//Insert the comic image into the RSS feed
function comic_feed() {
foreach (array("rss", "archive", "mini", "comic") as $type) {
if (($requested_thumbnail_image = get_comic_url($type, $first_comic_in_category)) !== false) {
$thumbnail_image = $requested_thumbnail_image; break;
}
}
?>
<p><a href="<?php the_permalink() ?>"><img src="<?php echo $thumbnail_image; ?>" border="0" alt="<?php the_title() ?>" title="<?php the_hovertext() ?>" /></a></p><?php
}
function insert_comic_feed($content) {
if (is_feed() && in_comic_category()) {
return comic_feed() . $content;
} else {
return $content;
}
}
add_filter('the_content','insert_comic_feed');
2009-11-21 15:24:01 +00:00
// Register Sidebar and Define Widgets
if ( function_exists('register_sidebar') ) {
register_sidebar(array('name'=>'Left Sidebar', 'before_widget' => '
<div id="%1$s" class="widget %2$s">
','after_widget' => '
</div>','before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>
' ));
register_sidebar(array('name'=>'Right Sidebar','before_widget' => '
<div id="%1$s" class="widget %2$s">
','after_widget' => '
</div>','before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>
' ));
register_sidebar(array('name'=>'Above Header','before_widget' => '
<div id="%1$s" class="widget %2$s">
','after_widget' => '
</div>','before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>
' ));
register_sidebar(array('name'=>'Header','before_widget' => '
<div id="%1$s" class="widget %2$s">
','after_widget' => '
</div>','before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>
' ));
register_sidebar(array('name'=>'Menubar','before_widget' => '
<div id="%1$s" class="widget %2$s">
','after_widget' => '
</div>','before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>
' ));
register_sidebar(array('name'=>'Over Comic','before_widget' => '
<div id="%1$s" class="widget %2$s">
','after_widget' => '
</div>','before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>
' ));
register_sidebar(array('name'=>'Left of Comic','before_widget' => '
<div id="%1$s" class="widget %2$s">
','after_widget' => '
</div>','before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>
' ));
register_sidebar(array('name'=>'Right of Comic','before_widget' => '
<div id="%1$s" class="widget %2$s">
','after_widget' => '
</div>','before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>
' ));
register_sidebar(array('name'=>'Under Comic','before_widget' => '
<div id="%1$s" class="widget %2$s">
','after_widget' => '
</div>','before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>
' ));
register_sidebar(array('name'=>'Over Blog','before_widget' => '
<div id="%1$s" class="widget %2$s">
','after_widget' => '
</div>','before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>
' ));
register_sidebar(array('name'=>'Blog','before_widget' => '
<div id="%1$s" class="widget %2$s">
','after_widget' => '
</div>','before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>
' ));
register_sidebar(array('name'=>'Under Blog','before_widget' => '
<div id="%1$s" class="widget %2$s">
','after_widget' => '
</div>','before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>
' ));
register_sidebar(array('name'=>'Footer','before_widget' => '
<div id="%1$s" class="widget %2$s">
','after_widget' => '
</div>','before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>
' ));
2009-11-21 15:24:01 +00:00
}
function storyline_category_list() {
$listcats = wp_list_categories('echo=0&title_li=&include='.get_all_comic_categories_as_cat_string());
$listcats = str_replace("<ul class='children'>", "<ul class='children'> &raquo; ", $listcats);
echo $listcats;
}
/**
* function is_active_sidebar
* check if a sidebar has widgets based on index number or name
*
2009-11-21 15:24:01 +00:00
* @param $index - sidebar name made with register_sidebar(array('name'=>'Name of Sidebar'),
* OR the index # as an int for specific sidebar.
* @return true if sidebar with $index has widgets, false if not.
2009-11-21 15:24:01 +00:00
*
*/
function comicpress_is_active_sidebar( $index ) {
global $wp_registered_sidebars, $_wp_sidebars_widgets;
if ( is_int($index) ) {
if (!empty($_wp_sidebars_widgets[sanitize_title("sidebar-$index")]) )
return true;
} else {
$i = 1;
foreach ( $wp_registered_sidebars as $sidebar => $registered_sidebar ) {
if ( $index == $registered_sidebar['name'] && !empty($_wp_sidebars_widgets[sanitize_title("sidebar-$i")]) )
return true;
2009-11-21 15:24:01 +00:00
$i++;
}
}
return false;
}
function comicpress_copyright() {
global $wpdb;
$copyright_dates = $wpdb->get_results("
2009-11-21 15:24:01 +00:00
SELECT
YEAR(min(post_date_gmt)) AS firstdate,
YEAR(max(post_date_gmt)) AS lastdate
FROM
$wpdb->posts
WHERE
post_status = 'publish'
");
$output = '';
if($copyright_dates) {
$copyright = "&copy; " . $copyright_dates[0]->firstdate;
if($copyright_dates[0]->firstdate != $copyright_dates[0]->lastdate) {
$copyright .= '-' . $copyright_dates[0]->lastdate;
}
$output = $copyright;
}
return $output;
}
function comicpress_check_child_file($filename = '') {
if (empty($filename)) return false;
if (get_stylesheet_directory() != get_template_directory()) {
2009-11-21 15:24:01 +00:00
if (file_exists(get_stylesheet_directory() .'/'. $filename . '.php')) {
return include(get_stylesheet_directory() .'/'. $filename . '.php');
}
}
return false;
}
function rss_count_comments(){
global $wpdb,$post;
$args = func_get_args();
$comments = get_comments_number();
echo $args[0];
if ($comments == 0) $comment_text = " (No Comments)";
if ($comments == 1) $comment_text = " (1 Comment)";
if ($comments > 1) $comment_text = " (". $comments . " Comments)";
if ($comments>0) echo $comment_text;
}
add_action('the_title_rss','rss_count_comments');
function comicpress_gnav_display_css() {
global $comicpress_options;
if (file_exists(get_stylesheet_directory() . '/images/nav/' . $comicpress_options['graphicnav_directory'] . '/navstyle.css')) { ?>
<link rel="stylesheet" href="<?php echo get_stylesheet_directory_uri(); ?>/images/nav/<?php echo $comicpress_options['graphicnav_directory']; ?>/navstyle.css" type="text/css" media="screen" />
<?php } elseif (file_exists(get_template_directory() . '/images/nav/' .$comicpress_options['graphicnav_directory']. '/navstyle.css')) { ?>
<link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/images/nav/<?php echo $comicpress_options['graphicnav_directory']; ?>/navstyle.css" type="text/css" media="screen" />
2009-11-21 15:24:01 +00:00
<?php }
}
2009-11-21 15:24:01 +00:00
if (comicpress_check_child_file('childfunctions') == false) {}
/**
* Render the ComicPress calendar widget.
*/
function comicpress_calendar() {
$calendar = new CalendarWidget();
$instance = array();
foreach (array('before_widget', 'after_widget', 'thumbnail', 'link', 'small', 'medium', 'large') as $field) {
$instance[$field] = '';
}
$calendar->widget($instance, array());
}
/**
* Render the ComicPress bookmark widget.
*/
function comicpress_comic_bookmark() {
$bookmark = new BookmarkWidget();
$bookmark->init();
$bookmark->widget(array(), array());
}