X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=view%2Ftheme%2Ffrost%2Ftheme.php;h=dd1a0cebaff71e107eb1d0436c63268b676536b9;hb=362654abf06ed2974d2ce5878011ecf1fe05e203;hp=7133c36e0ecbf06f4b3e7715e0a8847aaa426c7e;hpb=63d02d98c5ea1767e3cfa20b1dec0cd5ab069bc0;p=friendica.git diff --git a/view/theme/frost/theme.php b/view/theme/frost/theme.php index 7133c36e0e..dd1a0cebaf 100644 --- a/view/theme/frost/theme.php +++ b/view/theme/frost/theme.php @@ -4,25 +4,74 @@ * 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.2.9 + * Version: Version 0.4 * Author: Zach P * Maintainer: Zach P */ -$a->theme_info = array(); +use Friendica\App; +use Friendica\Content\Text\Plaintext; +use Friendica\Core\Addon; +use Friendica\Core\System; -function frost_init(&$a) { +function frost_init(App $a) { + $a->videowidth = 400; + $a->videoheight = 330; + $a->set_template_engine('smarty3'); +} + +function frost_content_loaded(App $a) { // I could do this in style.php, but by having the CSS in a file the browser will cache it, // making pages load faster if( $a->module === 'home' || $a->module === 'login' || $a->module === 'register' || $a->module === 'lostpass' ) { - $a->page['htmlhead'] = str_replace('$stylesheet', $a->get_baseurl() . '/view/theme/frost/login-style.css', $a->page['htmlhead']); + //$a->page['htmlhead'] = str_replace('$stylesheet', System::baseUrl() . '/view/theme/frost/login-style.css', $a->page['htmlhead']); + $a->theme['stylesheet'] = System::baseUrl() . '/view/theme/frost/login-style.css'; } - if( $a->module === 'login' ) - $a->page['end'] .= ''; - $a->videowidth = 400; - $a->videoheight = 330; - $a->theme_thread_allow = false; + if ( $a->module === 'login' ) { + $a->page['end'] .= ''; + } + +} + +function frost_install() { + Addon::registerHook('prepare_body_final', 'view/theme/frost/theme.php', 'frost_item_photo_links'); + + logger("installed theme frost"); +} +function frost_uninstall() { + Addon::unregisterHook('bbcode', 'view/theme/frost/theme.php', 'frost_bbcode'); + + logger("uninstalled theme frost"); +} + +function frost_item_photo_links(App $a, &$body_info) +{ + $occurence = 0; + $p = Plaintext::getBoundariesPosition($body_info['html'], ''); + while($p !== false && ($occurence++ < 500)) { + $link = substr($body_info['html'], $p['start'], $p['end'] - $p['start']); + + $matches = []; + 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 = Plaintext::getBoundariesPosition($body_info['html'], '', $occurence); + } } +