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 += ''+photo['title']+''; 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 = '\"'+photo['title']+'\"' \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();')); ?>