]> git.mxchange.org Git - friendica.git/blob - view/theme/frost/theme.php
Merge pull request #5128 from tobiasd/20180525-5067
[friendica.git] / view / theme / frost / theme.php
1 <?php
2
3 /*
4  * Name: Frost
5  * Description: Like frosted glass
6  * 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).
7  * Version: Version 0.4
8  * Author: Zach P <techcity@f.shmuz.in>
9  * Maintainer: Zach P <techcity@f.shmuz.in>
10  */
11
12 use Friendica\App;
13 use Friendica\Content\Text\Plaintext;
14 use Friendica\Core\Addon;
15 use Friendica\Core\System;
16
17 function frost_init(App $a) {
18         $a->videowidth = 400;
19         $a->videoheight = 330;
20         $a->set_template_engine('smarty3');
21 }
22
23 function frost_content_loaded(App $a) {
24
25         // I could do this in style.php, but by having the CSS in a file the browser will cache it,
26         // making pages load faster
27         if( $a->module === 'home' || $a->module === 'login' || $a->module === 'register' || $a->module === 'lostpass' ) {
28                 //$a->page['htmlhead'] = str_replace('$stylesheet', System::baseUrl() . '/view/theme/frost/login-style.css', $a->page['htmlhead']);
29                 $a->theme['stylesheet'] = System::baseUrl() . '/view/theme/frost/login-style.css';
30         }
31
32         if ( $a->module === 'login' ) {
33                 $a->page['end'] .= '<script type="text/javascript"> $(document).ready(function() { $("#id_" + window.loginName).focus();} );</script>';
34         }
35
36 }
37
38 function frost_install() {
39         Addon::registerHook('prepare_body_final', 'view/theme/frost/theme.php', 'frost_item_photo_links');
40
41         logger("installed theme frost");
42 }
43
44 function frost_uninstall() {
45         Addon::unregisterHook('bbcode', 'view/theme/frost/theme.php', 'frost_bbcode');
46
47         logger("uninstalled theme frost");
48 }
49
50 function frost_item_photo_links(App $a, &$body_info)
51 {
52         $occurence = 0;
53         $p = Plaintext::getBoundariesPosition($body_info['html'], '<a', '>');
54         while($p !== false && ($occurence++ < 500)) {
55                 $link = substr($body_info['html'], $p['start'], $p['end'] - $p['start']);
56
57                 $matches = [];
58                 preg_match("/\/photos\/[\w]+\/image\/([\w]+)/", $link, $matches);
59                 if($matches) {
60
61                         // Replace the link for the photo's page with a direct link to the photo itself
62                         $newlink = str_replace($matches[0], "/photo/{$matches[1]}", $link);
63
64                         // Add a "quiet" parameter to any redir links to prevent the "XX welcomes YY" info boxes
65                         $newlink = preg_replace("/href=\"([^\"]+)\/redir\/([^\"]+)&url=([^\"]+)\"/", 'href="$1/redir/$2&quiet=1&url=$3"', $newlink);
66
67                          // Having any arguments to the link for Colorbox causes it to fetch base64 code instead of the image
68                         $newlink = preg_replace("/\/[?&]zrl=([^&\"]+)/", '', $newlink);
69
70                         $body_info['html'] = str_replace($link, $newlink, $body_info['html']);
71
72                 }
73
74                 $p = Plaintext::getBoundariesPosition($body_info['html'], '<a', '>', $occurence);
75         }
76 }
77