and
tags
function photo ($photo, $options=null) {
if (!is_array($options)) $options = array();
$defaults = array(
'size' => 'Square',
'scale' => 1,
'album' => null,
'context' => null,
'prefix' => '',
'linkoptions' => null
);
$options = array_merge($defaults, $options);
extract($options);
if (($context == 'gallery-index') && $album) {
$prefix = 'album/'.$album['id'].'/';
}
if (($linkoptions == 'flickr') && is_array($photo['urls'])) {
$href = array_pop($photo['urls']);
} else {
$href = TanTanFlickrDisplay::href($photo, $album, $prefix);
}
$html = ''.
TanTanFlickrDisplay::image($photo, $size, $scale).
' ';
return $html;
}
// return the link to where the photo should go
function href($photo, $album=null, $prefix='') {
return $prefix.'photo/'.$photo['id'].'/'.($album ? ($album['pagename2'].'-') : '').$photo['pagename'];
}
// draw out an image tag
function image($photo, $size, $scale=1) {
return '
';
}
// draw the video code
function video($video) {
return '';
}
// this prints out the JavaScript function used to insert a photo into blog posts
function js() {
/*
return <<';
h += '
';
if (photo['targetURL']) h += ' ';
return h;
}
}
JSCODE;
*/
}
}
/*
Base class for common functions used by popup overlay libraries
*/
class TanTanFlickrPopUpOverlay extends TanTanFlickrDisplayBase {
function href($photo, $album=null, $prefix='') {
if (isset($photo['sizes']['Video Player'])) {
return parent::href($photo, $album=null, $prefix='');
} elseif (isset($photo['sizes'][TANTAN_DISPLAY_POPUP_SIZE]['source'])) {
return $photo['sizes'][TANTAN_DISPLAY_POPUP_SIZE]['source'];
} else {
return $photo['sizes']['Original']['source'];
}
}
function js() {
/*
return
"function tantan_makePhotoHTML(photo, size) { \n".
"if (size == 'Video Player') {\n".
"return '[flickr video='+photo['id']+']'\n".
"}\n".
"var imgTag = '
' \n".
"if (photo['photos']) { \n".
"return '' + \n".
"imgTag + \n".
"''\n".
"} else if (parseInt(photo['sizes'][size]['width']) < parseInt(photo['sizes']['".TANTAN_DISPLAY_POPUP_SIZE."']['width'])) { \n".
" return '' + \n".
" imgTag + \n".
" ' '; \n".
"} else { return imgTag } \n".
"} \n";
*/
}
}
/*
FancyBox: http://fancy.klade.lv/
*/
class TanTanFlickrDisplayFancyBox extends TanTanFlickrPopUpOverlay {
function headTags() {
wp_enqueue_script('jquery');
wp_print_scripts();
echo '';
echo '';
echo '';
}
}
/*
Facebox: http://famspam.com/facebox
*/
class TanTanFlickrDisplayFaceBox extends TanTanFlickrPopUpOverlay {
function headTags() {
wp_enqueue_script('jquery');
wp_print_scripts();
echo '';
echo '';
echo '';
}
}
/*
jQuery lightBox: http://leandrovieira.com/projects/jquery/lightbox/
*/
class TanTanFlickrDisplayJQueryLightboxBox extends TanTanFlickrPopUpOverlay {
function headTags() {
wp_enqueue_script('jquery');
wp_print_scripts();
echo '';
echo '';
echo '';
}
}
/*
FancyZoom: http://www.cabel.name/2008/02/fancyzoom-10.html (not a jQuery plugin)
*/
class TanTanFlickrDisplayFancyZoom extends TanTanFlickrPopUpOverlay {
function headTags() {
echo '';
echo '';
}
function footer() {
echo '';
}
}
class TanTanFlickrDisplayThickBox extends TanTanFlickrPopUpOverlay {
function headTags() {
wp_enqueue_script('thickbox');
wp_print_scripts();
$siteurl = get_option('siteurl');
echo "\n";
echo '';
}
}
$fancybox = "class TanTanFlickrDisplay extends TanTanFlickrDisplayFancyBox {};";
$facebox = "class TanTanFlickrDisplay extends TanTanFlickrDisplayFaceBox {};";
$lightbox = "class TanTanFlickrDisplay extends TanTanFlickrDisplayJQueryLightboxBox {};";
$fancyzoom = "class TanTanFlickrDisplay extends TanTanFlickrDisplayFancyZoom {};";
$thickbox = "class TanTanFlickrDisplay extends TanTanFlickrDisplayThickBox {};";
$default = "class TanTanFlickrDisplay extends TanTanFlickrDisplayBase {}; ";
switch (TANTAN_DISPLAY_LIBRARY) {
case 'fancybox': eval($fancybox); break;
case 'facebox': eval($facebox); break;
case 'lightbox': eval($lightbox); break;
case 'fancyzoom': eval($fancyzoom); break;
case 'thickbox': eval($thickbox); break;
default: eval($default);
}
add_action('wp_head', create_function('', 'TanTanFlickrDisplay::headTags();'));
add_action('wp_footer', create_function('', 'TanTanFlickrDisplay::footer();'));
?>