diff --git a/contrib/link_image/main.php b/contrib/link_image/main.php new file mode 100644 index 00000000..7b71a702 --- /dev/null +++ b/contrib/link_image/main.php @@ -0,0 +1,122 @@ +add_main_block(new Block("Link to Image", $this->get_html($event->image))); + } + if(is_a($event, 'SetupBuildingEvent')) { + $sb = new SetupBlock("Extension - Link to Image"); + $sb->add_text_option("ext_link-img_text-link_format","Text Link Format"); + $event->panel->add_main_block($sb); + } + if(is_a($event, 'ConfigSaveEvent')) { + $event->config->set_string_from_post("ext_link-img_text-link_format"); + } + if(is_a($event, 'InitExtEvent')) { + global $config; + //just set default if empty. + if ($config->get_string("ext_link-img_text-link_format") == "") { + $config->set_string("ext_link-img_text-link_format", '$title - $id ($ext $size $filesize)'); + } + } + } + + private function get_html ($image) { + global $config; + + $thumb_src = $image->get_thumb_link(); + $image_src = $image->get_image_link(); + $post_link = $image->get_short_link(); + + $text_link = $this->parse_link_template($config->get_string("ext_link-img_text-link_format"),$image); + + $html = "
"; + + $html .= "
UBB Code"; + $html .= $this->link_code( + "Text Link", + $this->ubb_url($post_link, $text_link), + "ubb_text-link"); + $html .= $this->link_code( + "Thumbnail Link", + $this->ubb_url($post_link, $this->ubb_img($thumb_src)), + "ubb_thumb-link"); + $html .= $this->link_code( + "Inline Image", + $this->ubb_img($image_src), + "ubb_full-img"); + $html .= "
"; + + $html .= "
HTML Code"; + $html .= $this->link_code( + "Text Link", + $this->html_url($post_link, $text_link), + "html_text-link"); + $html .= $this->link_code( + "Thumbnail Link", + $this->html_url($post_link,$this->html_img($thumb_src)), + "html_thumb-link"); + $html .= $this->link_code( + "Inline Image", + $this->html_img($image_src), + "html_full-image"); + $html .= "
"; + + $html .= "
"; + + return $html; + } + + private function ubb_url($link,$content) { + return "[url=".$link."]".$content."[/url]"; + } + private function ubb_img($src) { + return "[img]".$src."[/img]"; + } + + private function html_url($link,$content) { + return "".$content.""; + } + private function html_img($src) { + return ""; + } + + private function link_code($label,$content,$id=NULL) { + $control = "\n"; + $control .= "\n"; + $control .= "
\n\n"; + return $control; + } + + private function parse_link_template($tmpl, $img) { //shamelessly copied from image.class.php + global $config; + + // don't bother hitting the database if it won't be used... + $safe_tags = ""; + if(strpos($tmpl, '$tags') !== false) { // * stabs dynamically typed languages with a rusty spoon * + $safe_tags = preg_replace( + "/[^a-zA-Z0-9_\- ]/", + "", $img->get_tag_list()); + } + + $base_href = $config->get_string('base_href'); + $fname = $img->get_filename(); + $base_fname = strpos($fname, '.') ? substr($fname, 0, strrpos($fname, '.')) : $fname; + + $tmpl = str_replace('$id', $img->id, $tmpl); + $tmpl = str_replace('$hash', $img->hash, $tmpl); + $tmpl = str_replace('$tags', $safe_tags, $tmpl); + $tmpl = str_replace('$base', $base_href, $tmpl); + $tmpl = str_replace('$ext', $img->ext, $tmpl); + $tmpl = str_replace('$size', "{$img->width}x{$img->height}", $tmpl); + $tmpl = str_replace('$filesize', to_shorthand_int($img->filesize), $tmpl); + $tmpl = str_replace('$filename', $base_fname, $tmpl); + $tmpl = str_replace('$title', $config->get_string("title"), $tmpl); + + return $tmpl; + } +} +add_event_listener(new LinkImage()); +?> \ No newline at end of file diff --git a/contrib/link_image/style.css b/contrib/link_image/style.css new file mode 100644 index 00000000..fe72e1d7 --- /dev/null +++ b/contrib/link_image/style.css @@ -0,0 +1 @@ +/* 404'ed :| */