deprecated-themes/frost/theme.php
Tobias Diekershoff 904562eadc Updated frost(-mobile) themes
They got removed from the Friendica main repository with the 2018.05
release and should reflect that state in history with the update they
got anyhow during the year of deprecation.
2018-05-26 10:37:50 +02:00

78 lines
2.9 KiB
PHP

<?php
/*
* 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.4
* Author: Zach P <techcity@f.shmuz.in>
* Maintainer: Zach P <techcity@f.shmuz.in>
*/
use Friendica\App;
use Friendica\Content\Text\Plaintext;
use Friendica\Core\Addon;
use Friendica\Core\System;
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', 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'] .= '<script type="text/javascript"> $(document).ready(function() { $("#id_" + window.loginName).focus();} );</script>';
}
}
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'], '<a', '>');
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'], '<a', '>', $occurence);
}
}