X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=view%2Ftheme%2Ffrost%2Ftheme.php;h=1093a04729c27be483097069bccd656044601849;hb=7e6598f2c01dc25b9420309dac1ec84160f21a03;hp=3faf73d2fc948087461d5c3347e3dc2059d671e0;hpb=453082516e90aba59553fd4392b2cdfed6ae9a57;p=friendica.git diff --git a/view/theme/frost/theme.php b/view/theme/frost/theme.php index 3faf73d2fc..1093a04729 100644 --- a/view/theme/frost/theme.php +++ b/view/theme/frost/theme.php @@ -4,16 +4,17 @@ * Name: Frost * Description: Like frosted glass * Credits: Navigation icons taken from http://iconza.com. Other icons taken from http://thenounproject.com, including: Like, Dislike, Black Lock, Unlock, Pencil, Tag, Camera, Paperclip (Marie Coons), Folder (Sergio Calcara), Chain-link (Andrew Fortnum), Speaker (Harold Kim), Quotes (Henry Ryder), Video Camera (Anas Ramadan), and Left Arrow, Right Arrow, and Delete X (all three P.J. Onori). All under Attribution (CC BY 3.0). Others from The Noun Project are public domain or No Rights Reserved (CC0). - * Version: Version 0.3.1 + * Version: Version 0.4 * Author: Zach P * Maintainer: Zach P */ -$a->theme_info = array(); -$a->videowidth = 400; -$a->videoheight = 330; -$a->theme_thread_allow = false; -$a->theme['template_engine'] = 'smarty3'; +function frost_init(&$a) { + $a->videowidth = 400; + $a->videoheight = 330; + $a->theme_thread_allow = false; + set_template_engine($a, 'smarty3'); +} function frost_content_loaded(&$a) { @@ -24,7 +25,49 @@ function frost_content_loaded(&$a) { $a->theme['stylesheet'] = $a->get_baseurl() . '/view/theme/frost/login-style.css'; } if( $a->module === 'login' ) - $a->page['end'] .= ''; + $a->page['end'] .= ''; + +} + +function frost_install() { + register_hook('prepare_body_final', 'view/theme/frost/theme.php', 'frost_item_photo_links'); + + logger("installed theme frost"); +} + +function frost_uninstall() { + unregister_hook('bbcode', 'view/theme/frost/theme.php', 'frost_bbcode'); + + logger("uninstalled theme frost"); +} +function frost_item_photo_links(&$a, &$body_info) { + require_once('include/Photo.php'); + $phototypes = Photo::supportedTypes(); + + $occurence = 1; + $p = bb_find_open_close($body_info['html'], ""); + while($p !== false && ($occurence++ < 500)) { + $link = substr($body_info['html'], $p['start'], $p['end'] - $p['start']); + + $matches = array(); + preg_match("/\/photos\/[\w]+\/image\/([\w]+)/", $link, $matches); + if($matches) { + + // Replace the link for the photo's page with a direct link to the photo itself + $newlink = str_replace($matches[0], "/photo/{$matches[1]}", $link); + + // Add a "quiet" parameter to any redir links to prevent the "XX welcomes YY" info boxes + $newlink = preg_replace("/href=\"([^\"]+)\/redir\/([^\"]+)&url=([^\"]+)\"/", 'href="$1/redir/$2&quiet=1&url=$3"', $newlink); + + // Having any arguments to the link for Colorbox causes it to fetch base64 code instead of the image + $newlink = preg_replace("/\/[?&]zrl=([^&\"]+)/", '', $newlink); + + $body_info['html'] = str_replace($link, $newlink, $body_info['html']); + + } + + $p = bb_find_open_close($body_info['html'], "", $occurence); + } }