<?php
/*
Plugin Name: Blog Copyright
Plugin URI: http://guff.szub.net/blog-copyright/
Description: Display dated copyright mark. Post/Page (post date or custom field) and archive aware.
Version: R2.1
Author: Kaf Oseo
Author URI: http://szub.net
Copyright (c) 2005, 2006 Kaf Oseo (http://szub.net)
Blog Copyright is released under the GNU General Public License
(GPL) http://www.gnu.org/licenses/gpl.txt
This is a WordPress plugin (http://wordpress.org).
USAGE
<?php blog_copyright(owner, author, 'idmode', 'customkey', 'before', 'after', 'copyterm', 'rights', in_loop, display); ?>
<?php szub_blog_copyright('args'); ?>
PARAMETERS
owner : (integer -or- string)
User ID of copyright holder. Set to 0 (zero) to use the blog name
as holder (default). Provide a string to override value and use a
custom name for holder: 'Joe aka The Bloggermeister'.
author : (boolean)
Show post or Page author as copyright holder. Set to FALSE (0) to
use 'owner' (blog name if 'owner' is 0). Defaults to TRUE (1).
idmode : (enum)
Set format for copyright holder's name. Default is display option
set under their user profile. Options:
'login' - login name
'nickname' - nickname only
'firstname' - first name only
'lastname' - last name only
'namefl' - name in format "firstname lastname"
'namelf' - name in format "lastname firstname"
'namenl' - name in format "nickname lastname"
customkey : (string)
Copyright custom field key expected when using a custom field for
individual post or Page copyright information. Example: 'cc' (for
say a Creative Commons license). Default is 'copyright'.
before : (string)
Text or HTML displayed before copyright. Default is '<p>'.
after : (string)
Text or HTML displayed after copyright. Default is '</p>'.
copyterm : (string)
Text displayed for copyright term. Default is 'Copyright&169;'.
rights : (string)
Text displayed for "reservation of rights," which comes after the
copyright holder's name. Example: 'All Rights Reserved'. There is
no default.
in_loop : (boolean)
If used in The Loop, set this to TRUE (1) to force post date year
for copyright year. Defaults to FALSE (0).
display : (boolean)
Display copyright notice (TRUE (1)) or return it for use in other
code (FALSE (0)). Defaults to TRUE (1).
~Changelog:
R2.1 (Feb-2-2005)
Added 'display' parameter.
R2 (Jan-8-2005)
Fixes for WordPress 2.0 support; new parameter (in_loop) forces post-
specific copydate when used in The Loop.
Added function: szub_blog_copyright(), a query-string style argument
wrapper for blog_copyright(). Example:
<?php szub_blog_copyright('in_loop=1&before=&after='); ?>
R1.0.1 (Jul-15-2005)
Fixed code logic handling $author.
*/
function szub_blog_copyright($args='') {
parse_str($args);
if (!isset($owner)) $owner = 0;
if (!isset($author)) $author = 1;
if (!isset($idmode)) $idmode = '';
if (!isset($customkey)) $customkey = '';
if (!isset($before)) $before = '<p>';
if (!isset($after)) $after = '</p>';
if (!isset($copyterm)) $copyterm = '';
if (!isset($rights)) $rights = '';
if (!isset($in_loop)) $in_loop = 0;
if (!isset($display)) $display = 1;
return blog_copyright($owner, $author, $idmode, $customkey, $before, $after, $copyterm, $rights, $in_loop, $display);
}
function blog_copyright($owner=0, $author=true, $idmode='', $customkey='', $before='<p>', $after='</p>', $copyterm='', $rights='', $in_loop=false, $display=true) {
global $post, $wp_query, $wpdb, $m, $year;
if(!$owner) {
$copyowner = get_bloginfo('name');
} else {
if(is_numeric($owner)) {
$copyowner = get_copyright_owner($owner, $idmode);
} else {
$copyowner = $owner;
}
}
if($in_loop || is_single() || is_page()) {
$post = $wp_query->post;
get_post_custom($post->ID);
if($author) {
$copyowner = get_copyright_owner($post->post_author, $idmode);
}
if(!$customkey) {
$customkey='copyright';
}
if(get_post_custom_values("$customkey")) {
$post_override = 1;
foreach(get_post_custom_values("$customkey") as $copyright) {}
} else {
$copydate = substr($post->post_date, 0, 4);
}
} else {
if($m) {
$copydate = substr($m, 0, 4);
} elseif($year) {
$copydate = $year;
} else {
$postdate = @$wpdb->get_row("SELECT MIN(YEAR(post_date)) AS first, MAX(YEAR(post_date)) AS last FROM $wpdb->posts WHERE post_status = 'publish'");
if($postdate->first === $postdate->last) {
$copydate = $postdate->last;
} else {
$copydate = $postdate->first . '-' . $postdate->last;
}
}
}
if(!$post_override) {
if(!$copyterm) {
$copyterm='Copyright©';
}
$copyright = $copyterm . $copydate . ' ' . $copyowner;
if($rights) {
$copyright .= '. ' . $rights;
}
}
if($display)
echo $before . $copyright . $after;
return $copyright;
}
function get_copyright_owner($owner, $idmode) {
global $wp_version;
$owner = get_userdata($owner);
if($wp_version >= 2) {
$firstname = $owner->first_name;
$lastname = $owner->last_name;
$nickname = $owner->nickname;
} else {
if(empty($idmode)) {
$idmode = $owner->user_idmode;
}
$firstname = $owner->user_firstname;
$lastname = $owner->user_lastname;
$nickname = $owner->user_nickname;
}
switch($idmode) {
case 'login' :
$copyowner = $owner->user_login;
break;
case 'nickname' :
$copyowner = $nickname;
break;
case 'firstname' :
$copyowner = $firstname;
break;
case 'lastname' :
$copyowner = $lastname;
break;
case 'namefl' :
$copyowner = $firstname . ' ' . $lastname;
break;
case 'namelf' :
$copyowner = $lastname . ' ' . $firstname;
break;
case 'namenl' :
$copyowner = $nickname . ' ' . $lastname;
break;
default :
if($wp_version >= 2) {
$copyowner = $owner->display_name;
} else {
$copyowner = $nickname;
}
}
return $copyowner;
}
// uncomment next line to auto-display copyright in theme footer
// add_action('wp_footer', 'blog_copyright');
?>