Merge pull request #4930 from MrPetovan/task/improve-frio-bg-image
[frio] Improve background image settings
This commit is contained in:
commit
e2b4690d6f
|
@ -37,11 +37,11 @@ Don't blame me too much for ugly code and hacks. Fix it ;-)
|
||||||
**Theme - Settings**
|
**Theme - Settings**
|
||||||
![Theme - Settings](https://github.com/rabuzarus/frio/blob/master/img/screenshots/screenshot-settings.png)
|
![Theme - Settings](https://github.com/rabuzarus/frio/blob/master/img/screenshots/screenshot-settings.png)
|
||||||
|
|
||||||
**Red schema**
|
**Red scheme**
|
||||||
![Red schema](https://github.com/rabuzarus/frio/blob/master/img/screenshots/screenshot-schema-red.png)
|
![Red scheme](https://github.com/rabuzarus/frio/blob/master/img/screenshots/screenshot-scheme-red.png)
|
||||||
|
|
||||||
**Love Music schema**
|
**Love Music scheme**
|
||||||
![Love Music schema](https://github.com/rabuzarus/frio/blob/master/img/screenshots/screenshot-schema-love-music.png)
|
![Love Music scheme](https://github.com/rabuzarus/frio/blob/master/img/screenshots/screenshot-scheme-love-music.png)
|
||||||
|
|
||||||
**frio on mobile**
|
**frio on mobile**
|
||||||
|
|
||||||
|
|
|
@ -8,128 +8,134 @@ use Friendica\Core\System;
|
||||||
|
|
||||||
require_once 'view/theme/frio/php/Image.php';
|
require_once 'view/theme/frio/php/Image.php';
|
||||||
|
|
||||||
function theme_post(App $a) {
|
function theme_post(App $a)
|
||||||
|
{
|
||||||
if (!local_user()) {
|
if (!local_user()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($_POST['frio-settings-submit'])) {
|
if (isset($_POST['frio-settings-submit'])) {
|
||||||
PConfig::set(local_user(), 'frio', 'schema', $_POST["frio_schema"]);
|
PConfig::set(local_user(), 'frio', 'scheme', $_POST['frio_scheme']);
|
||||||
PConfig::set(local_user(), 'frio', 'nav_bg', $_POST["frio_nav_bg"]);
|
PConfig::set(local_user(), 'frio', 'nav_bg', $_POST['frio_nav_bg']);
|
||||||
PConfig::set(local_user(), 'frio', 'nav_icon_color', $_POST["frio_nav_icon_color"]);
|
PConfig::set(local_user(), 'frio', 'nav_icon_color', $_POST['frio_nav_icon_color']);
|
||||||
PConfig::set(local_user(), 'frio', 'link_color', $_POST["frio_link_color"]);
|
PConfig::set(local_user(), 'frio', 'link_color', $_POST['frio_link_color']);
|
||||||
PConfig::set(local_user(), 'frio', 'background_color', $_POST["frio_background_color"]);
|
PConfig::set(local_user(), 'frio', 'background_color', $_POST['frio_background_color']);
|
||||||
PConfig::set(local_user(), 'frio', 'contentbg_transp', $_POST["frio_contentbg_transp"]);
|
PConfig::set(local_user(), 'frio', 'contentbg_transp', $_POST['frio_contentbg_transp']);
|
||||||
PConfig::set(local_user(), 'frio', 'background_image', $_POST["frio_background_image"]);
|
PConfig::set(local_user(), 'frio', 'background_image', $_POST['frio_background_image']);
|
||||||
PConfig::set(local_user(), 'frio', 'bg_image_option', $_POST["frio_bg_image_option"]);
|
PConfig::set(local_user(), 'frio', 'bg_image_option', $_POST['frio_bg_image_option']);
|
||||||
PConfig::set(local_user(), 'frio', 'css_modified', time());
|
PConfig::set(local_user(), 'frio', 'css_modified', time());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function theme_admin_post(App $a) {
|
function theme_admin_post(App $a)
|
||||||
|
{
|
||||||
if (!local_user()) {
|
if (!local_user()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($_POST['frio-settings-submit'])) {
|
if (isset($_POST['frio-settings-submit'])) {
|
||||||
Config::set('frio', 'schema', $_POST["frio_schema"]);
|
Config::set('frio', 'scheme', $_POST['frio_scheme']);
|
||||||
Config::set('frio', 'nav_bg', $_POST["frio_nav_bg"]);
|
Config::set('frio', 'nav_bg', $_POST['frio_nav_bg']);
|
||||||
Config::set('frio', 'nav_icon_color', $_POST["frio_nav_icon_color"]);
|
Config::set('frio', 'nav_icon_color', $_POST['frio_nav_icon_color']);
|
||||||
Config::set('frio', 'link_color', $_POST["frio_link_color"]);
|
Config::set('frio', 'link_color', $_POST['frio_link_color']);
|
||||||
Config::set('frio', 'background_color', $_POST["frio_background_color"]);
|
Config::set('frio', 'background_color', $_POST['frio_background_color']);
|
||||||
Config::set('frio', 'contentbg_transp', $_POST["frio_contentbg_transp"]);
|
Config::set('frio', 'contentbg_transp', $_POST['frio_contentbg_transp']);
|
||||||
Config::set('frio', 'background_image', $_POST["frio_background_image"]);
|
Config::set('frio', 'background_image', $_POST['frio_background_image']);
|
||||||
Config::set('frio', 'bg_image_option', $_POST["frio_bg_image_option"]);
|
Config::set('frio', 'bg_image_option', $_POST['frio_bg_image_option']);
|
||||||
Config::set('frio', 'login_bg_image', $_POST["frio_login_bg_image"]);
|
Config::set('frio', 'login_bg_image', $_POST['frio_login_bg_image']);
|
||||||
Config::set('frio', 'login_bg_color', $_POST["frio_login_bg_color"]);
|
Config::set('frio', 'login_bg_color', $_POST['frio_login_bg_color']);
|
||||||
Config::set('frio', 'css_modified', time());
|
Config::set('frio', 'css_modified', time());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function theme_content(App $a) {
|
function theme_content(App $a)
|
||||||
|
{
|
||||||
if (!local_user()) {
|
if (!local_user()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$arr = [];
|
$arr = [];
|
||||||
|
|
||||||
$arr["schema"] = PConfig::get(local_user(), 'frio', 'schema');
|
$arr['scheme'] = PConfig::get(local_user(), 'frio', 'scheme', PConfig::get(local_user(), 'frio', 'schema'));
|
||||||
$arr["nav_bg"] = PConfig::get(local_user(), 'frio', 'nav_bg');
|
$arr['nav_bg'] = PConfig::get(local_user(), 'frio', 'nav_bg');
|
||||||
$arr["nav_icon_color"] = PConfig::get(local_user(), 'frio', 'nav_icon_color');
|
$arr['nav_icon_color'] = PConfig::get(local_user(), 'frio', 'nav_icon_color');
|
||||||
$arr["link_color"] = PConfig::get(local_user(), 'frio', 'link_color');
|
$arr['link_color'] = PConfig::get(local_user(), 'frio', 'link_color');
|
||||||
$arr["bgcolor"] = PConfig::get(local_user(), 'frio', 'background_color');
|
$arr['background_color'] = PConfig::get(local_user(), 'frio', 'background_color');
|
||||||
$arr["contentbg_transp"] = PConfig::get(local_user(), 'frio', 'contentbg_transp');
|
$arr['contentbg_transp'] = PConfig::get(local_user(), 'frio', 'contentbg_transp');
|
||||||
$arr["background_image"] = PConfig::get(local_user(), 'frio', 'background_image');
|
$arr['background_image'] = PConfig::get(local_user(), 'frio', 'background_image');
|
||||||
$arr["bg_image_option"] = PConfig::get(local_user(), 'frio', 'bg_image_option');
|
$arr['bg_image_option'] = PConfig::get(local_user(), 'frio', 'bg_image_option');
|
||||||
|
|
||||||
return frio_form($arr);
|
return frio_form($arr);
|
||||||
}
|
}
|
||||||
|
|
||||||
function theme_admin(App $a) {
|
function theme_admin(App $a)
|
||||||
|
{
|
||||||
if (!local_user()) {
|
if (!local_user()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$arr = [];
|
$arr = [];
|
||||||
|
|
||||||
$arr["schema"] = Config::get('frio', 'schema');
|
$arr['scheme'] = Config::get('frio', 'scheme', Config::get('frio', 'scheme'));
|
||||||
$arr["nav_bg"] = Config::get('frio', 'nav_bg');
|
$arr['nav_bg'] = Config::get('frio', 'nav_bg');
|
||||||
$arr["nav_icon_color"] = Config::get('frio', 'nav_icon_color');
|
$arr['nav_icon_color'] = Config::get('frio', 'nav_icon_color');
|
||||||
$arr["link_color"] = Config::get('frio', 'link_color');
|
$arr['link_color'] = Config::get('frio', 'link_color');
|
||||||
$arr["bgcolor"] = Config::get('frio', 'background_color');
|
$arr['background_color'] = Config::get('frio', 'background_color');
|
||||||
$arr["contentbg_transp"] = Config::get('frio', 'contentbg_transp');
|
$arr['contentbg_transp'] = Config::get('frio', 'contentbg_transp');
|
||||||
$arr["background_image"] = Config::get('frio', 'background_image');
|
$arr['background_image'] = Config::get('frio', 'background_image');
|
||||||
$arr["bg_image_option"] = Config::get('frio', 'bg_image_option');
|
$arr['bg_image_option'] = Config::get('frio', 'bg_image_option');
|
||||||
$arr["login_bg_image"] = Config::get('frio', 'login_bg_image');
|
$arr['login_bg_image'] = Config::get('frio', 'login_bg_image');
|
||||||
$arr["login_bg_color"] = Config::get('frio', 'login_bg_color');
|
$arr['login_bg_color'] = Config::get('frio', 'login_bg_color');
|
||||||
|
|
||||||
return frio_form($arr);
|
return frio_form($arr);
|
||||||
}
|
}
|
||||||
|
|
||||||
function frio_form($arr) {
|
function frio_form($arr)
|
||||||
require_once("view/theme/frio/php/schema.php");
|
{
|
||||||
|
require_once 'view/theme/frio/php/scheme.php';
|
||||||
|
|
||||||
$scheme_info = get_schema_info($arr["schema"]);
|
$scheme_info = get_scheme_info($arr['scheme']);
|
||||||
$disable = $scheme_info["overwrites"];
|
$disable = $scheme_info['overwrites'];
|
||||||
if (!is_array($disable)) {
|
if (!is_array($disable)) {
|
||||||
$disable = [];
|
$disable = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
$scheme_choices = [];
|
$scheme_choices = [];
|
||||||
$scheme_choices["---"] = L10n::t("Default");
|
$scheme_choices['---'] = L10n::t('Custom');
|
||||||
$files = glob('view/theme/frio/schema/*.php');
|
$files = glob('view/theme/frio/scheme/*.php');
|
||||||
if ($files) {
|
if ($files) {
|
||||||
foreach ($files as $file) {
|
foreach ($files as $file) {
|
||||||
$f = basename($file, ".php");
|
$f = basename($file, '.php');
|
||||||
if ($f != 'default') {
|
if ($f != 'default') {
|
||||||
$scheme_name = $f;
|
$scheme_name = ucfirst($f);
|
||||||
$scheme_choices[$f] = $scheme_name;
|
$scheme_choices[$f] = $scheme_name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$background_image_help = "<strong>" . L10n::t("Note"). ": </strong>".L10n::t("Check image permissions if all users are allowed to visit the image");
|
$background_image_help = '<strong>' . L10n::t('Note') . ': </strong>' . L10n::t('Check image permissions if all users are allowed to see the image');
|
||||||
|
|
||||||
$t = get_markup_template('theme_settings.tpl');
|
$t = get_markup_template('theme_settings.tpl');
|
||||||
$ctx = [
|
$ctx = [
|
||||||
'$submit' => L10n::t('Submit'),
|
'$submit' => L10n::t('Submit'),
|
||||||
'$baseurl' => System::baseUrl(),
|
'$baseurl' => System::baseUrl(),
|
||||||
'$title' => L10n::t("Theme settings"),
|
'$title' => L10n::t('Theme settings'),
|
||||||
'$schema' => ['frio_schema', L10n::t("Select scheme"), $arr["schema"], '', $scheme_choices],
|
'$scheme' => ['frio_scheme', L10n::t('Select color scheme'), $arr['scheme'], '', $scheme_choices],
|
||||||
'$nav_bg' => array_key_exists("nav_bg", $disable) ? "" : ['frio_nav_bg', L10n::t('Navigation bar background color'), $arr['nav_bg'], '', false],
|
'$nav_bg' => array_key_exists('nav_bg', $disable) ? '' : ['frio_nav_bg', L10n::t('Navigation bar background color'), $arr['nav_bg'], '', false],
|
||||||
'$nav_icon_color' => array_key_exists("nav_icon_color", $disable) ? "" : ['frio_nav_icon_color', L10n::t('Navigation bar icon color '), $arr['nav_icon_color'], '', false],
|
'$nav_icon_color' => array_key_exists('nav_icon_color', $disable) ? '' : ['frio_nav_icon_color', L10n::t('Navigation bar icon color '), $arr['nav_icon_color'], '', false],
|
||||||
'$link_color' => array_key_exists("link_color", $disable) ? "" : ['frio_link_color', L10n::t('Link color'), $arr['link_color'], '', false],
|
'$link_color' => array_key_exists('link_color', $disable) ? '' : ['frio_link_color', L10n::t('Link color'), $arr['link_color'], '', false],
|
||||||
'$bgcolor' => array_key_exists("bgcolor", $disable) ? "" : ['frio_background_color', L10n::t('Set the background color'), $arr['bgcolor'], '', false],
|
'$background_color' => array_key_exists('background_color', $disable) ? '' : ['frio_background_color', L10n::t('Set the background color'), $arr['background_color'], '', false],
|
||||||
'$contentbg_transp' => array_key_exists("contentbg_transp", $disable) ? "" : ['frio_contentbg_transp', L10n::t("Content background opacity"), ((isset($arr["contentbg_transp"]) && $arr["contentbg_transp"] != "") ? $arr["contentbg_transp"] : 100), ''],
|
'$contentbg_transp' => array_key_exists('contentbg_transp', $disable) ? '' : ['frio_contentbg_transp', L10n::t('Content background opacity'), defaults($arr, 'contentbg_transp', 100), ''],
|
||||||
'$background_image' => array_key_exists("background_image", $disable) ? "" : ['frio_background_image', L10n::t('Set the background image'), $arr['background_image'], $background_image_help, false],
|
'$background_image' => array_key_exists('background_image', $disable) ? '' : ['frio_background_image', L10n::t('Set the background image'), $arr['background_image'], $background_image_help, false],
|
||||||
|
'$bg_image_options_title' => L10n::t('Background image style'),
|
||||||
'$bg_image_options' => Image::get_options($arr),
|
'$bg_image_options' => Image::get_options($arr),
|
||||||
];
|
];
|
||||||
|
|
||||||
if (array_key_exists("login_bg_image", $arr) && !array_key_exists("login_bg_image", $disable)) {
|
if (array_key_exists('login_bg_image', $arr) && !array_key_exists('login_bg_image', $disable)) {
|
||||||
$ctx['$login_bg_image'] = ['frio_login_bg_image', L10n::t('Login page background image'), $arr['login_bg_image'], $background_image_help, false];
|
$ctx['$login_bg_image'] = ['frio_login_bg_image', L10n::t('Login page background image'), $arr['login_bg_image'], $background_image_help, false];
|
||||||
}
|
|
||||||
if (array_key_exists("login_bg_color", $arr) && !array_key_exists("login_bg_color", $disable)) {
|
|
||||||
$ctx['$login_bg_color'] = ['frio_login_bg_color', L10n::t('Login page background color'), $arr['login_bg_color'], L10n::t('Leave background image and color empty for theme defaults'), false];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (array_key_exists('login_bg_color', $arr) && !array_key_exists('login_bg_color', $disable)) {
|
||||||
|
$ctx['$login_bg_color'] = ['frio_login_bg_color', L10n::t('Login page background color'), $arr['login_bg_color'], L10n::t('Leave background image and color empty for theme defaults'), false];
|
||||||
|
}
|
||||||
|
|
||||||
$o = replace_macros($t, $ctx);
|
$o = replace_macros($t, $ctx);
|
||||||
|
|
||||||
|
|
|
@ -24,9 +24,10 @@ and open the template in the editor.
|
||||||
|
|
||||||
body {
|
body {
|
||||||
padding-top: 110px;
|
padding-top: 110px;
|
||||||
background-color: $bgcolor;
|
background-color: $background_color;
|
||||||
background-image: url("$background_image");
|
background-image: url("$background_image");
|
||||||
background-size: $background_size_img;
|
background-size: $background_size_img;
|
||||||
|
background-repeat: $background_repeat;
|
||||||
background-attachment: fixed;
|
background-attachment: fixed;
|
||||||
color: #777;
|
color: #777;
|
||||||
/*color: #555;*/
|
/*color: #555;*/
|
||||||
|
|
Before Width: | Height: | Size: 239 KiB After Width: | Height: | Size: 239 KiB |
Before Width: | Height: | Size: 750 KiB After Width: | Height: | Size: 750 KiB |
|
@ -21,14 +21,10 @@ class Image
|
||||||
public static function get_options($arr)
|
public static function get_options($arr)
|
||||||
{
|
{
|
||||||
$bg_image_options = [
|
$bg_image_options = [
|
||||||
'repeat' => [
|
'stretch' => ['frio_bg_image_option', L10n::t('Top Banner'), 'stretch', L10n::t('Resize image to the width of the screen and show background color below on long pages.'), ($arr['bg_image_option'] == 'stretch')],
|
||||||
'frio_bg_image_option', L10n::t("Repeat the image"), "repeat", L10n::t("Will repeat your image to fill the background."), ($arr["bg_image_option"] == "repeat")],
|
'cover' => ['frio_bg_image_option', L10n::t('Full screen'), 'cover', L10n::t('Resize image to fill entire screen, clipping either the right or the bottom.'), ($arr['bg_image_option'] == 'cover')],
|
||||||
'stretch' => [
|
'contain' => ['frio_bg_image_option', L10n::t('Single row mosaic'), 'contain', L10n::t('Resize image to repeat it on a single row, either vertical or horizontal.'), ($arr['bg_image_option'] == 'contain')],
|
||||||
'frio_bg_image_option', L10n::t("Stretch"), "stretch", L10n::t("Will stretch to width/height of the image."), ($arr["bg_image_option"] == "stretch")],
|
'repeat' => ['frio_bg_image_option', L10n::t('Mosaic'), 'repeat', L10n::t('Repeat image to fill the screen.'), ($arr['bg_image_option'] == 'repeat')],
|
||||||
'cover' => [
|
|
||||||
'frio_bg_image_option', L10n::t("Resize fill and-clip"), "cover", L10n::t("Resize to fill and retain aspect ratio."), ($arr["bg_image_option"] == "cover")],
|
|
||||||
'contain' => [
|
|
||||||
'frio_bg_image_option', L10n::t("Resize best fit"), "contain", L10n::t("Resize to best fit and retain aspect ratio."), ($arr["bg_image_option"] == "contain")],
|
|
||||||
];
|
];
|
||||||
|
|
||||||
return $bg_image_options;
|
return $bg_image_options;
|
||||||
|
|
|
@ -43,10 +43,10 @@ if (!isset($minimal)) {
|
||||||
if (is_null($uid)) {
|
if (is_null($uid)) {
|
||||||
$uid = Profile::getThemeUid();
|
$uid = Profile::getThemeUid();
|
||||||
}
|
}
|
||||||
$schema = PConfig::get($uid, 'frio', 'schema');
|
$scheme = PConfig::get($uid, 'frio', 'scheme', PConfig::get($uid, 'frio', 'schema'));
|
||||||
if (($schema) && ($schema != '---')) {
|
if (($scheme) && ($scheme != '---')) {
|
||||||
if (file_exists('view/theme/frio/schema/' . $schema . '.php')) {
|
if (file_exists('view/theme/frio/scheme/' . $scheme . '.php')) {
|
||||||
$schemefile = 'view/theme/frio/schema/' . $schema . '.php';
|
$schemefile = 'view/theme/frio/scheme/' . $scheme . '.php';
|
||||||
require_once $schemefile;
|
require_once $schemefile;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -1,74 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief: Get info header of the shema
|
|
||||||
*
|
|
||||||
* This function parses the header of the shemename.php file for inormations like
|
|
||||||
* Author, Description and Overwrites. Most of the code comes from the Addon::getInfo()
|
|
||||||
* function. We use this to get the variables which get overwritten through the shema.
|
|
||||||
* All color variables which get overwritten through the theme have to be
|
|
||||||
* listed (comma seperated) in the shema header under Overwrites:
|
|
||||||
* This seemst not to be the best solution. We need to investigate further.
|
|
||||||
*
|
|
||||||
* @param string $schema Name of the shema
|
|
||||||
* @return array With theme information
|
|
||||||
* 'author' => Author Name
|
|
||||||
* 'description' => Schema description
|
|
||||||
* 'version' => Schema version
|
|
||||||
* 'overwrites' => Variables which overwriting custom settings
|
|
||||||
*/
|
|
||||||
|
|
||||||
use Friendica\Core\PConfig;
|
|
||||||
|
|
||||||
function get_schema_info($schema){
|
|
||||||
|
|
||||||
$theme = current_theme();
|
|
||||||
$themepath = "view/theme/" . $theme . "/";
|
|
||||||
$schema = PConfig::get(local_user(),'frio', 'schema');
|
|
||||||
|
|
||||||
$info=[
|
|
||||||
'name' => $schema,
|
|
||||||
'description' => "",
|
|
||||||
'author' => [],
|
|
||||||
'version' => "",
|
|
||||||
'overwrites' => []
|
|
||||||
];
|
|
||||||
|
|
||||||
if (!is_file($themepath . "schema/" . $schema . ".php")) return $info;
|
|
||||||
|
|
||||||
$f = file_get_contents($themepath . "schema/" . $schema . ".php");
|
|
||||||
|
|
||||||
$r = preg_match("|/\*.*\*/|msU", $f, $m);
|
|
||||||
|
|
||||||
if ($r){
|
|
||||||
$ll = explode("\n", $m[0]);
|
|
||||||
foreach( $ll as $l ) {
|
|
||||||
$l = trim($l,"\t\n\r */");
|
|
||||||
if ($l!=""){
|
|
||||||
list($k,$v) = array_map("trim", explode(":",$l,2));
|
|
||||||
$k= strtolower($k);
|
|
||||||
if ($k=="author"){
|
|
||||||
$r=preg_match("|([^<]+)<([^>]+)>|", $v, $m);
|
|
||||||
if ($r) {
|
|
||||||
$info['author'][] = ['name'=>$m[1], 'link'=>$m[2]];
|
|
||||||
} else {
|
|
||||||
$info['author'][] = ['name'=>$v];
|
|
||||||
}
|
|
||||||
} elseif ($k == "overwrites") {
|
|
||||||
$theme_settings = explode(',',str_replace(' ','', $v));
|
|
||||||
foreach ($theme_settings as $key => $value) {
|
|
||||||
$info["overwrites"][$value] = true;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (array_key_exists($k,$info)){
|
|
||||||
$info[$k]=$v;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
return $info;
|
|
||||||
}
|
|
71
view/theme/frio/php/scheme.php
Normal file
71
view/theme/frio/php/scheme.php
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief: Get info header of the scheme
|
||||||
|
*
|
||||||
|
* This function parses the header of the schemename.php file for informations like
|
||||||
|
* Author, Description and Overwrites. Most of the code comes from the Addon::getInfo()
|
||||||
|
* function. We use this to get the variables which get overwritten through the scheme.
|
||||||
|
* All color variables which get overwritten through the theme have to be
|
||||||
|
* listed (comma separated) in the scheme header under Overwrites:
|
||||||
|
* This seems not to be the best solution. We need to investigate further.
|
||||||
|
*
|
||||||
|
* @param string $scheme Name of the scheme
|
||||||
|
* @return array With theme information
|
||||||
|
* 'author' => Author Name
|
||||||
|
* 'description' => Scheme description
|
||||||
|
* 'version' => Scheme version
|
||||||
|
* 'overwrites' => Variables which overwriting custom settings
|
||||||
|
*/
|
||||||
|
use Friendica\Core\PConfig;
|
||||||
|
|
||||||
|
function get_scheme_info($scheme)
|
||||||
|
{
|
||||||
|
$theme = current_theme();
|
||||||
|
$themepath = 'view/theme/' . $theme . '/';
|
||||||
|
$scheme = PConfig::get(local_user(), 'frio', 'scheme', PConfig::get(local_user(), 'frio', 'scheme'));
|
||||||
|
|
||||||
|
$info = [
|
||||||
|
'name' => $scheme,
|
||||||
|
'description' => '',
|
||||||
|
'author' => [],
|
||||||
|
'version' => '',
|
||||||
|
'overwrites' => []
|
||||||
|
];
|
||||||
|
|
||||||
|
if (!is_file($themepath . 'scheme/' . $scheme . '.php')) return $info;
|
||||||
|
|
||||||
|
$f = file_get_contents($themepath . 'scheme/' . $scheme . '.php');
|
||||||
|
|
||||||
|
$r = preg_match('|/\*.*\*/|msU', $f, $m);
|
||||||
|
|
||||||
|
if ($r) {
|
||||||
|
$ll = explode("\n", $m[0]);
|
||||||
|
foreach ($ll as $l) {
|
||||||
|
$l = trim($l, "\t\n\r */");
|
||||||
|
if ($l != '') {
|
||||||
|
list($k, $v) = array_map('trim', explode(':', $l, 2));
|
||||||
|
$k = strtolower($k);
|
||||||
|
if ($k == 'author') {
|
||||||
|
$r = preg_match('|([^<]+)<([^>]+)>|', $v, $m);
|
||||||
|
if ($r) {
|
||||||
|
$info['author'][] = ['name' => $m[1], 'link' => $m[2]];
|
||||||
|
} else {
|
||||||
|
$info['author'][] = ['name' => $v];
|
||||||
|
}
|
||||||
|
} elseif ($k == 'overwrites') {
|
||||||
|
$theme_settings = explode(',', str_replace(' ', '', $v));
|
||||||
|
foreach ($theme_settings as $key => $value) {
|
||||||
|
$info['overwrites'][$value] = true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (array_key_exists($k, $info)) {
|
||||||
|
$info[$k] = $v;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $info;
|
||||||
|
}
|
|
@ -16,7 +16,7 @@
|
||||||
<?php $frio = "view/theme/frio"; ?>
|
<?php $frio = "view/theme/frio"; ?>
|
||||||
<?php if(x($page,'htmlhead')) echo $page['htmlhead']; ?>
|
<?php if(x($page,'htmlhead')) echo $page['htmlhead']; ?>
|
||||||
</head>
|
</head>
|
||||||
<body id=\"top\">";
|
<body id="top">
|
||||||
<?php if($_SERVER['REQUEST_URI'] == "/"){header('Location: /login');} ?>
|
<?php if($_SERVER['REQUEST_URI'] == "/"){header('Location: /login');} ?>
|
||||||
<a href="#content" class="sr-only sr-only-focusable">Skip to main content</a>
|
<a href="#content" class="sr-only sr-only-focusable">Skip to main content</a>
|
||||||
<?php
|
<?php
|
||||||
|
|
16
view/theme/frio/scheme/blue.php
Normal file
16
view/theme/frio/scheme/blue.php
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* Name: Blue
|
||||||
|
* Author: Rabuzarus
|
||||||
|
*
|
||||||
|
* List here all variables which will get overwritten through this scheme
|
||||||
|
* Overwrites: nav_bg, nav_icon_color, link_color, background_color, login_bg_color, contentbg_transp
|
||||||
|
*/
|
||||||
|
|
||||||
|
$nav_bg = "#708fa0";
|
||||||
|
$nav_icon_color = "#fff";
|
||||||
|
$link_color = "#6fdbe8";
|
||||||
|
$background_color = "#ededed";
|
||||||
|
$login_bg_color = "#ededed";
|
||||||
|
$contentbg_transp = 100;
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
<?php
|
<?php
|
||||||
/* Licence: AGP
|
/* Licence: AGP
|
||||||
* Author: rabuzarus
|
* Author: rabuzarus
|
||||||
* Overwrites: nav_bg, nav_icon_color, link_color, bgcolor, contentbg_transp, background_image, bg_image_option, link_hover_color
|
* Overwrites: nav_bg, nav_icon_color, link_color, background_color, contentbg_transp, background_image, bg_image_option, link_hover_color
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$nav_bg = "#000";
|
$nav_bg = "#000";
|
||||||
$nav_icon_color = "#e355e0";
|
$nav_icon_color = "#e355e0";
|
||||||
$link_color = "#e355e0";
|
$link_color = "#e355e0";
|
||||||
$bgcolor = "#fff";
|
$background_color = "#fff";
|
||||||
$contentbg_transp = 100;
|
$contentbg_transp = 100;
|
||||||
$background_image = "img/bg_circle.png";
|
$background_image = "img/bg_circle.png";
|
||||||
$bg_image_option = "repeat";
|
$bg_image_option = "repeat";
|
|
@ -3,13 +3,13 @@
|
||||||
* Name: Red
|
* Name: Red
|
||||||
* Author: Rabuzarus
|
* Author: Rabuzarus
|
||||||
*
|
*
|
||||||
* List here all variables which will get overwritten through this schema
|
* List here all variables which will get overwritten through this scheme
|
||||||
* Overwrites: nav_bg, nav_icon_color, link_color, bgcolor, contentbg_transp
|
* Overwrites: nav_bg, nav_icon_color, link_color, background_color, contentbg_transp
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$nav_bg = "#870000";
|
$nav_bg = "#870000";
|
||||||
$nav_icon_color = "#f5f5f5";
|
$nav_icon_color = "#f5f5f5";
|
||||||
$link_color = "#b50404";
|
$link_color = "#b50404";
|
||||||
$bgcolor = "#ededed";
|
$background_color = "#ededed";
|
||||||
$contentbg_transp = 95;
|
$contentbg_transp = 95;
|
||||||
|
|
|
@ -8,7 +8,7 @@ use Friendica\Model\Profile;
|
||||||
|
|
||||||
require_once 'view/theme/frio/php/PHPColors/Color.php';
|
require_once 'view/theme/frio/php/PHPColors/Color.php';
|
||||||
|
|
||||||
$schemecss = "";
|
$schemecss = '';
|
||||||
$schemecssfile = false;
|
$schemecssfile = false;
|
||||||
$scheme_modified = 0;
|
$scheme_modified = 0;
|
||||||
|
|
||||||
|
@ -19,15 +19,15 @@ if ($a->module !== 'install') {
|
||||||
PConfig::load($uid, 'frio');
|
PConfig::load($uid, 'frio');
|
||||||
|
|
||||||
// Load the profile owners pconfig.
|
// Load the profile owners pconfig.
|
||||||
$schema = PConfig::get($uid, "frio", "schema");
|
$scheme = PConfig::get($uid, 'frio', 'scheme', PConfig::get($uid, 'frio', 'schema'));
|
||||||
$nav_bg = PConfig::get($uid, "frio", "nav_bg");
|
$nav_bg = PConfig::get($uid, 'frio', 'nav_bg');
|
||||||
$nav_icon_color = PConfig::get($uid, "frio", "nav_icon_color");
|
$nav_icon_color = PConfig::get($uid, 'frio', 'nav_icon_color');
|
||||||
$link_color = PConfig::get($uid, "frio", "link_color");
|
$link_color = PConfig::get($uid, 'frio', 'link_color');
|
||||||
$bgcolor = PConfig::get($uid, "frio", "background_color");
|
$background_color = PConfig::get($uid, 'frio', 'background_color');
|
||||||
$contentbg_transp = PConfig::get($uid, "frio", "contentbg_transp");
|
$contentbg_transp = PConfig::get($uid, 'frio', 'contentbg_transp');
|
||||||
$background_image = PConfig::get($uid, "frio", "background_image");
|
$background_image = PConfig::get($uid, 'frio', 'background_image');
|
||||||
$bg_image_option = PConfig::get($uid, "frio", "bg_image_option");
|
$bg_image_option = PConfig::get($uid, 'frio', 'bg_image_option');
|
||||||
$modified = PConfig::get($uid, "frio", "css_modified");
|
$modified = PConfig::get($uid, 'frio', 'css_modified');
|
||||||
|
|
||||||
// There is maybe the case that the user did never modify the theme settings.
|
// There is maybe the case that the user did never modify the theme settings.
|
||||||
// In this case we store the present time.
|
// In this case we store the present time.
|
||||||
|
@ -38,17 +38,17 @@ if ($a->module !== 'install') {
|
||||||
Config::load('frio');
|
Config::load('frio');
|
||||||
|
|
||||||
// Load frios system config.
|
// Load frios system config.
|
||||||
$schema = Config::get("frio", "schema");
|
$scheme = Config::get('frio', 'scheme', Config::get('frio', 'schema'));
|
||||||
$nav_bg = Config::get("frio", "nav_bg");
|
$nav_bg = Config::get('frio', 'nav_bg');
|
||||||
$nav_icon_color = Config::get("frio", "nav_icon_color");
|
$nav_icon_color = Config::get('frio', 'nav_icon_color');
|
||||||
$link_color = Config::get("frio", "link_color");
|
$link_color = Config::get('frio', 'link_color');
|
||||||
$bgcolor = Config::get("frio", "background_color");
|
$background_color = Config::get('frio', 'background_color');
|
||||||
$contentbg_transp = Config::get("frio", "contentbg_transp");
|
$contentbg_transp = Config::get('frio', 'contentbg_transp');
|
||||||
$background_image = Config::get("frio", "background_image");
|
$background_image = Config::get('frio', 'background_image');
|
||||||
$bg_image_option = Config::get("frio", "bg_image_option");
|
$bg_image_option = Config::get('frio', 'bg_image_option');
|
||||||
$login_bg_image = Config::get("frio", "login_bg_image");
|
$login_bg_image = Config::get('frio', 'login_bg_image');
|
||||||
$login_bg_color = Config::get("frio", "login_bg_color");
|
$login_bg_color = Config::get('frio', 'login_bg_color');
|
||||||
$modified = Config::get("frio", "css_modified");
|
$modified = Config::get('frio', 'css_modified');
|
||||||
|
|
||||||
// There is maybe the case that the user did never modify the theme settings.
|
// There is maybe the case that the user did never modify the theme settings.
|
||||||
// In this case we store the present time.
|
// In this case we store the present time.
|
||||||
|
@ -59,60 +59,59 @@ if ($a->module !== 'install') {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now load the scheme. If a value is changed above, we'll keep the settings
|
// Now load the scheme. If a value is changed above, we'll keep the settings
|
||||||
// If not, we'll keep those defined by the schema
|
// If not, we'll keep those defined by the scheme
|
||||||
// Setting $schema to '' wasn't working for some reason, so we'll check it's
|
// Setting $scheme to '' wasn't working for some reason, so we'll check it's
|
||||||
// not --- like the mobile theme does instead.
|
// not --- like the mobile theme does instead.
|
||||||
// Allow layouts to over-ride the schema.
|
// Allow layouts to over-ride the scheme.
|
||||||
if (x($_REQUEST, 'schema')) {
|
if (x($_REQUEST, 'scheme')) {
|
||||||
$schema = $_REQUEST['schema'];
|
$scheme = $_REQUEST['scheme'];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sanitize the data.
|
// Sanitize the data.
|
||||||
$schema = !empty($schema) ? basename($schema) : "";
|
$scheme = !empty($scheme) ? basename($scheme) : '';
|
||||||
|
|
||||||
|
|
||||||
if (($schema) && ($schema != '---')) {
|
if (($scheme) && ($scheme != '---')) {
|
||||||
if (file_exists('view/theme/frio/schema/' . $schema . '.php')) {
|
if (file_exists('view/theme/frio/scheme/' . $scheme . '.php')) {
|
||||||
$schemefile = 'view/theme/frio/schema/' . $schema . '.php';
|
$schemefile = 'view/theme/frio/scheme/' . $scheme . '.php';
|
||||||
require_once $schemefile;
|
require_once $schemefile;
|
||||||
}
|
}
|
||||||
if (file_exists('view/theme/frio/schema/' . $schema . '.css')) {
|
if (file_exists('view/theme/frio/scheme/' . $scheme . '.css')) {
|
||||||
$schemecssfile = 'view/theme/frio/schema/' . $schema . '.css';
|
$schemecssfile = 'view/theme/frio/scheme/' . $scheme . '.css';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// If we haven't got a schema, load the default. We shouldn't touch this - we
|
// If we haven't got a scheme, load the default. We shouldn't touch this - we
|
||||||
// should leave it for admins to define for themselves.
|
// should leave it for admins to define for themselves.
|
||||||
// default.php and default.css MUST be symlinks to existing schema files.
|
// default.php and default.css MUST be symlinks to existing scheme files.
|
||||||
if (! $schema) {
|
if (!$scheme) {
|
||||||
if (file_exists('view/theme/frio/schema/default.php')) {
|
if (file_exists('view/theme/frio/scheme/default.php')) {
|
||||||
$schemefile = 'view/theme/frio/schema/default.php';
|
$schemefile = 'view/theme/frio/scheme/default.php';
|
||||||
require_once $schemefile;
|
require_once $schemefile;
|
||||||
}
|
}
|
||||||
if (file_exists('view/theme/frio/schema/default.css')) {
|
if (file_exists('view/theme/frio/scheme/default.css')) {
|
||||||
$schemecssfile = 'view/theme/frio/schema/default.css';
|
$schemecssfile = 'view/theme/frio/scheme/default.css';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Set some defaults - we have to do this after pulling owner settings, and we have to check for each setting
|
//Set some defaults - we have to do this after pulling owner settings, and we have to check for each setting
|
||||||
//individually. If we don't, we'll have problems if a user has set one, but not all options.
|
//individually. If we don't, we'll have problems if a user has set one, but not all options.
|
||||||
$nav_bg = (empty($nav_bg) ? "#708fa0" : $nav_bg);
|
$nav_bg = (empty($nav_bg) ? '#708fa0' : $nav_bg);
|
||||||
$nav_icon_color = (empty($nav_icon_color) ? "#fff" : $nav_icon_color);
|
$nav_icon_color = (empty($nav_icon_color) ? '#fff' : $nav_icon_color);
|
||||||
$link_color = (empty($link_color) ? "#6fdbe8" : $link_color);
|
$link_color = (empty($link_color) ? '#6fdbe8' : $link_color);
|
||||||
$bgcolor = (empty($bgcolor) ? "#ededed" : $bgcolor);
|
$background_color = (empty($background_color) ? '#ededed' : $background_color);
|
||||||
// The background image can not be empty. So we use a dummy jpg if no image was set.
|
// The background image can not be empty. So we use a dummy jpg if no image was set.
|
||||||
$background_image = (empty($background_image) ? 'img/none.jpg' : $background_image);
|
$background_image = (empty($background_image) ? 'img/none.jpg' : $background_image);
|
||||||
$modified = (empty($modified) ? time() :$modified);
|
$modified = (empty($modified) ? time() : $modified);
|
||||||
|
|
||||||
|
|
||||||
// set a default login bg image if no custom image and no custom bg color are set.
|
// set a default login bg image if no custom image and no custom bg color are set.
|
||||||
if (empty($login_bg_image) && empty($login_bg_color)) {
|
if (empty($login_bg_image) && empty($login_bg_color)) {
|
||||||
$login_bg_image = (empty($login_bg_image) ? 'img/login_bg.jpg' : $login_bg_image);
|
$login_bg_image = 'img/login_bg.jpg';
|
||||||
}
|
}
|
||||||
$login_bg_color = (empty($login_bg_color) ? "#ededed" : $login_bg_color);
|
$login_bg_color = (empty($login_bg_color) ? '#ededed' : $login_bg_color);
|
||||||
|
|
||||||
|
$contentbg_transp = ((isset($contentbg_transp) && $contentbg_transp != '') ? $contentbg_transp : 100);
|
||||||
$contentbg_transp = ((isset($contentbg_transp) && $contentbg_transp != "") ? $contentbg_transp : 100);
|
|
||||||
|
|
||||||
// Calculate some colors in dependance of existing colors.
|
// Calculate some colors in dependance of existing colors.
|
||||||
// Some colors are calculated to don't have too many selection
|
// Some colors are calculated to don't have too many selection
|
||||||
|
@ -153,29 +152,35 @@ if (!isset($link_hover_color)) {
|
||||||
if (!isset($bg_image_option)) {
|
if (!isset($bg_image_option)) {
|
||||||
$bg_image_option = null;
|
$bg_image_option = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch ($bg_image_option) {
|
switch ($bg_image_option) {
|
||||||
case "stretch":
|
case 'stretch':
|
||||||
$background_size_img = "100%";
|
$background_size_img = '100%';
|
||||||
|
$background_repeat = 'no-repeat';
|
||||||
break;
|
break;
|
||||||
case "cover":
|
case 'cover':
|
||||||
$background_size_img ="cover";
|
$background_size_img = 'cover';
|
||||||
|
$background_repeat = 'no-repeat';
|
||||||
break;
|
break;
|
||||||
case "repeat":
|
case 'repeat':
|
||||||
$background_size_img = "auto";
|
$background_size_img = 'auto';
|
||||||
|
$background_repeat = 'repeat';
|
||||||
break;
|
break;
|
||||||
case "contain":
|
case 'contain':
|
||||||
$background_size_img = "contain";
|
$background_size_img = 'contain';
|
||||||
|
$background_repeat = 'repeat';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
$background_size_img = "auto";
|
$background_size_img = 'auto';
|
||||||
|
$background_repeat = 'no-repeat';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert transparency level from percentage to opacity value.
|
// Convert transparency level from percentage to opacity value.
|
||||||
$contentbg_transp = $contentbg_transp / 100;
|
$contentbg_transp = $contentbg_transp / 100;
|
||||||
|
|
||||||
$options = [
|
$options = [
|
||||||
'$nav_bg' => $nav_bg,
|
'$nav_bg' => $nav_bg,
|
||||||
'$nav_icon_color' => $nav_icon_color,
|
'$nav_icon_color' => $nav_icon_color,
|
||||||
'$nav_icon_hover_color' => $nav_icon_hover_color,
|
'$nav_icon_hover_color' => $nav_icon_hover_color,
|
||||||
|
@ -184,10 +189,11 @@ $options = [
|
||||||
'$menu_background_hover_color' => $menu_background_hover_color,
|
'$menu_background_hover_color' => $menu_background_hover_color,
|
||||||
'$btn_primary_color' => $nav_icon_color,
|
'$btn_primary_color' => $nav_icon_color,
|
||||||
'$btn_primary_hover_color' => $menu_background_hover_color,
|
'$btn_primary_hover_color' => $menu_background_hover_color,
|
||||||
'$bgcolor' => $bgcolor,
|
'$background_color' => $background_color,
|
||||||
'$contentbg_transp' => $contentbg_transp,
|
'$contentbg_transp' => $contentbg_transp,
|
||||||
'$background_image' => $background_image,
|
'$background_image' => $background_image,
|
||||||
'$background_size_img' => $background_size_img,
|
'$background_size_img' => $background_size_img,
|
||||||
|
'$background_repeat' => $background_repeat,
|
||||||
'$login_bg_image' => $login_bg_image,
|
'$login_bg_image' => $login_bg_image,
|
||||||
'$login_bg_color' => $login_bg_color
|
'$login_bg_color' => $login_bg_color
|
||||||
];
|
];
|
||||||
|
@ -214,13 +220,13 @@ $etag = md5($css);
|
||||||
|
|
||||||
// Set a header for caching.
|
// Set a header for caching.
|
||||||
header('Cache-Control: public');
|
header('Cache-Control: public');
|
||||||
header('ETag: "'.$etag.'"');
|
header('ETag: "' . $etag . '"');
|
||||||
header('Last-Modified: '.$modified);
|
header('Last-Modified: ' . $modified);
|
||||||
|
|
||||||
// Only send the CSS file if it was changed.
|
// Only send the CSS file if it was changed.
|
||||||
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) || isset($_SERVER['HTTP_IF_NONE_MATCH'])) {
|
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) || isset($_SERVER['HTTP_IF_NONE_MATCH'])) {
|
||||||
$cached_modified = gmdate('r', strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']));
|
$cached_modified = gmdate('r', strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']));
|
||||||
$cached_etag = str_replace(['"', "-gzip"], ['', ''],
|
$cached_etag = str_replace(['"', '-gzip'], ['', ''],
|
||||||
stripslashes($_SERVER['HTTP_IF_NONE_MATCH']));
|
stripslashes($_SERVER['HTTP_IF_NONE_MATCH']));
|
||||||
|
|
||||||
if (($cached_modified == $modified) && ($cached_etag == $etag)) {
|
if (($cached_modified == $modified) && ($cached_etag == $etag)) {
|
||||||
|
|
|
@ -4,13 +4,13 @@
|
||||||
<script src="{{$baseurl}}/view/theme/frio/frameworks/jRange/jquery.range.js"></script>
|
<script src="{{$baseurl}}/view/theme/frio/frameworks/jRange/jquery.range.js"></script>
|
||||||
<script type="text/javascript" src="{{$baseurl}}/view/js/ajaxupload.js" ></script>
|
<script type="text/javascript" src="{{$baseurl}}/view/js/ajaxupload.js" ></script>
|
||||||
|
|
||||||
{{include file="field_select.tpl" field=$schema}}
|
{{include file="field_select.tpl" field=$scheme}}
|
||||||
|
|
||||||
{{if $nav_bg}}{{include file="field_colorinput.tpl" field=$nav_bg}}{{/if}}
|
{{if $nav_bg}}{{include file="field_colorinput.tpl" field=$nav_bg}}{{/if}}
|
||||||
{{if $nav_icon_color}}{{include file="field_colorinput.tpl" field=$nav_icon_color}}{{/if}}
|
{{if $nav_icon_color}}{{include file="field_colorinput.tpl" field=$nav_icon_color}}{{/if}}
|
||||||
{{if $link_color}}{{include file="field_colorinput.tpl" field=$link_color}}{{/if}}
|
{{if $link_color}}{{include file="field_colorinput.tpl" field=$link_color}}{{/if}}
|
||||||
|
|
||||||
{{if $bgcolor}}{{include file="field_colorinput.tpl" field=$bgcolor}}{{/if}}
|
{{if $background_color}}{{include file="field_colorinput.tpl" field=$background_color}}{{/if}}
|
||||||
|
|
||||||
{{* The slider for the content opacity - We use no template for this since it is only used at this page *}}
|
{{* The slider for the content opacity - We use no template for this since it is only used at this page *}}
|
||||||
{{if $contentbg_transp}}
|
{{if $contentbg_transp}}
|
||||||
|
@ -25,6 +25,7 @@
|
||||||
{{if $background_image}}{{include file="field_fileinput.tpl" field=$background_image}}{{/if}}
|
{{if $background_image}}{{include file="field_fileinput.tpl" field=$background_image}}{{/if}}
|
||||||
|
|
||||||
<div id="frio_bg_image_options" style="display: none;">
|
<div id="frio_bg_image_options" style="display: none;">
|
||||||
|
<label>{{$bg_image_options_title}}:</label>
|
||||||
{{foreach $bg_image_options as $options}}
|
{{foreach $bg_image_options as $options}}
|
||||||
{{include file="field_radio.tpl" field=$options}}
|
{{include file="field_radio.tpl" field=$options}}
|
||||||
{{/foreach}}
|
{{/foreach}}
|
||||||
|
|
|
@ -18,7 +18,7 @@ use Friendica\Core\System;
|
||||||
use Friendica\Database\DBM;
|
use Friendica\Database\DBM;
|
||||||
use Friendica\Model\Profile;
|
use Friendica\Model\Profile;
|
||||||
|
|
||||||
$frio = "view/theme/frio";
|
$frio = 'view/theme/frio';
|
||||||
|
|
||||||
global $frio;
|
global $frio;
|
||||||
|
|
||||||
|
@ -34,21 +34,21 @@ function frio_init(App $a)
|
||||||
|
|
||||||
$style = PConfig::get(local_user(), 'frio', 'style');
|
$style = PConfig::get(local_user(), 'frio', 'style');
|
||||||
|
|
||||||
$frio = "view/theme/frio";
|
$frio = 'view/theme/frio';
|
||||||
|
|
||||||
global $frio;
|
global $frio;
|
||||||
|
|
||||||
// if the device is a mobile device set js is_mobile
|
// if the device is a mobile device set js is_mobile
|
||||||
// variable so the js scripts can use this information
|
// variable so the js scripts can use this information
|
||||||
if ($a->is_mobile || $a->is_tablet) {
|
if ($a->is_mobile || $a->is_tablet) {
|
||||||
$a->page["htmlhead"] .= <<< EOT
|
$a->page['htmlhead'] .= <<< EOT
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var is_mobile = 1;
|
var is_mobile = 1;
|
||||||
</script>
|
</script>
|
||||||
EOT;
|
EOT;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($style == "") {
|
if ($style == '') {
|
||||||
$style = Config::get('frio', 'style');
|
$style = Config::get('frio', 'style');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,7 +62,7 @@ function frio_install()
|
||||||
Addon::registerHook('acl_lookup_end', 'view/theme/frio/theme.php', 'frio_acl_lookup');
|
Addon::registerHook('acl_lookup_end', 'view/theme/frio/theme.php', 'frio_acl_lookup');
|
||||||
Addon::registerHook('display_item', 'view/theme/frio/theme.php', 'frio_display_item');
|
Addon::registerHook('display_item', 'view/theme/frio/theme.php', 'frio_display_item');
|
||||||
|
|
||||||
logger("installed theme frio");
|
logger('installed theme frio');
|
||||||
}
|
}
|
||||||
|
|
||||||
function frio_uninstall()
|
function frio_uninstall()
|
||||||
|
@ -74,7 +74,7 @@ function frio_uninstall()
|
||||||
Addon::unregisterHook('acl_lookup_end', 'view/theme/frio/theme.php', 'frio_acl_lookup');
|
Addon::unregisterHook('acl_lookup_end', 'view/theme/frio/theme.php', 'frio_acl_lookup');
|
||||||
Addon::unregisterHook('display_item', 'view/theme/frio/theme.php', 'frio_display_item');
|
Addon::unregisterHook('display_item', 'view/theme/frio/theme.php', 'frio_display_item');
|
||||||
|
|
||||||
logger("uninstalled theme frio");
|
logger('uninstalled theme frio');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -92,26 +92,26 @@ function frio_uninstall()
|
||||||
function frio_item_photo_links(App $a, &$body_info)
|
function frio_item_photo_links(App $a, &$body_info)
|
||||||
{
|
{
|
||||||
$occurence = 0;
|
$occurence = 0;
|
||||||
$p = Plaintext::getBoundariesPosition($body_info['html'], "<a", ">");
|
$p = Plaintext::getBoundariesPosition($body_info['html'], '<a', '>');
|
||||||
while ($p !== false && ($occurence++ < 500)) {
|
while ($p !== false && ($occurence++ < 500)) {
|
||||||
$link = substr($body_info['html'], $p['start'], $p['end'] - $p['start']);
|
$link = substr($body_info['html'], $p['start'], $p['end'] - $p['start']);
|
||||||
$matches = [];
|
$matches = [];
|
||||||
|
|
||||||
preg_match("/\/photos\/[\w]+\/image\/([\w]+)/", $link, $matches);
|
preg_match('/\/photos\/[\w]+\/image\/([\w]+)/', $link, $matches);
|
||||||
if ($matches) {
|
if ($matches) {
|
||||||
// Replace the link for the photo's page with a direct link to the photo itself
|
// 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);
|
$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
|
// 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);
|
$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
|
// Having any arguments to the link for Colorbox causes it to fetch base64 code instead of the image
|
||||||
$newlink = preg_replace("/\/[?&]zrl=([^&\"]+)/", '', $newlink);
|
$newlink = preg_replace('/\/[?&]zrl=([^&"]+)/', '', $newlink);
|
||||||
|
|
||||||
$body_info['html'] = str_replace($link, $newlink, $body_info['html']);
|
$body_info['html'] = str_replace($link, $newlink, $body_info['html']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$p = Plaintext::getBoundariesPosition($body_info['html'], "<a", ">", $occurence);
|
$p = Plaintext::getBoundariesPosition($body_info['html'], '<a', '>', $occurence);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -127,10 +127,10 @@ function frio_item_photo_links(App $a, &$body_info)
|
||||||
*/
|
*/
|
||||||
function frio_item_photo_menu(App $a, &$arr)
|
function frio_item_photo_menu(App $a, &$arr)
|
||||||
{
|
{
|
||||||
foreach ($arr["menu"] as $k => $v) {
|
foreach ($arr['menu'] as $k => $v) {
|
||||||
if (strpos($v, 'poke/?f=&c=') === 0 || strpos($v, 'message/new/') === 0) {
|
if (strpos($v, 'poke/?f=&c=') === 0 || strpos($v, 'message/new/') === 0) {
|
||||||
$v = "javascript:addToModal('" . $v . "'); return false;";
|
$v = 'javascript:addToModal(\'' . $v . '\'); return false;';
|
||||||
$arr["menu"][$k] = $v;
|
$arr['menu'][$k] = $v;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -149,9 +149,9 @@ function frio_item_photo_menu(App $a, &$arr)
|
||||||
*/
|
*/
|
||||||
function frio_contact_photo_menu(App $a, &$args)
|
function frio_contact_photo_menu(App $a, &$args)
|
||||||
{
|
{
|
||||||
$cid = $args["contact"]["id"];
|
$cid = $args['contact']['id'];
|
||||||
$pokelink = $args["menu"]["poke"][1];
|
$pokelink = $args['menu']['poke'][1];
|
||||||
$pmlink = $args["menu"]["pm"][1];
|
$pmlink = $args['menu']['pm'][1];
|
||||||
|
|
||||||
// Set the the indicator for opening the status, profile and photo pages
|
// Set the the indicator for opening the status, profile and photo pages
|
||||||
// in a new tab to false if the contact a dfrn (friendica) contact
|
// in a new tab to false if the contact a dfrn (friendica) contact
|
||||||
|
@ -160,12 +160,12 @@ function frio_contact_photo_menu(App $a, &$args)
|
||||||
// friendica servers as remote user or visitor
|
// friendica servers as remote user or visitor
|
||||||
//
|
//
|
||||||
// The value for opening in a new tab is e.g. when
|
// The value for opening in a new tab is e.g. when
|
||||||
// $args["menu"]["status"][2] is true. If the value of the [2] key is true
|
// $args['menu']['status'][2] is true. If the value of the [2] key is true
|
||||||
// and if it's a friendica contact we set it to false
|
// and if it's a friendica contact we set it to false
|
||||||
foreach ($args["menu"] as $k => $v) {
|
foreach ($args['menu'] as $k => $v) {
|
||||||
if ($k === "status" || $k === "profile" || $k === "photos") {
|
if ($k === 'status' || $k === 'profile' || $k === 'photos') {
|
||||||
$v[2] = (($args["contact"]["network"] === "dfrn") ? false : true);
|
$v[2] = (($args['contact']['network'] === 'dfrn') ? false : true);
|
||||||
$args["menu"][$k][2] = $v[2];
|
$args['menu'][$k][2] = $v[2];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -173,11 +173,11 @@ function frio_contact_photo_menu(App $a, &$args)
|
||||||
// Later we can make conditions in the corresponing templates (e.g.
|
// Later we can make conditions in the corresponing templates (e.g.
|
||||||
// contact_template.tpl)
|
// contact_template.tpl)
|
||||||
if (strpos($pokelink, 'poke/?f=&c=' . $cid) !== false) {
|
if (strpos($pokelink, 'poke/?f=&c=' . $cid) !== false) {
|
||||||
$args["menu"]["poke"][3] = "modal";
|
$args['menu']['poke'][3] = 'modal';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strpos($pmlink, 'message/new/' . $cid) !== false) {
|
if (strpos($pmlink, 'message/new/' . $cid) !== false) {
|
||||||
$args["menu"]["pm"][3] = "modal";
|
$args['menu']['pm'][3] = 'modal';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -231,43 +231,43 @@ function frio_remote_nav($a, &$nav)
|
||||||
// user info
|
// user info
|
||||||
$r = q("SELECT `micro` FROM `contact` WHERE `uid` = %d AND `self`", intval($a->user['uid']));
|
$r = q("SELECT `micro` FROM `contact` WHERE `uid` = %d AND `self`", intval($a->user['uid']));
|
||||||
|
|
||||||
$r[0]['photo'] = (DBM::is_result($r) ? $a->remove_baseurl($r[0]['micro']) : "images/person-48.jpg");
|
$r[0]['photo'] = (DBM::is_result($r) ? $a->remove_baseurl($r[0]['micro']) : 'images/person-48.jpg');
|
||||||
$r[0]['name'] = $a->user['username'];
|
$r[0]['name'] = $a->user['username'];
|
||||||
} elseif (!local_user() && remote_user()) {
|
} elseif (!local_user() && remote_user()) {
|
||||||
$r = q("SELECT `name`, `nick`, `micro` AS `photo` FROM `contact` WHERE `id` = %d", intval(remote_user()));
|
$r = q("SELECT `name`, `nick`, `micro` AS `photo` FROM `contact` WHERE `id` = %d", intval(remote_user()));
|
||||||
$nav['remote'] = L10n::t("Guest");
|
$nav['remote'] = L10n::t('Guest');
|
||||||
} elseif (Profile::getMyURL()) {
|
} elseif (Profile::getMyURL()) {
|
||||||
$r = q("SELECT `name`, `nick`, `photo` FROM `gcontact`
|
$r = q("SELECT `name`, `nick`, `photo` FROM `gcontact`
|
||||||
WHERE `addr` = '%s' AND `network` = 'dfrn'",
|
WHERE `addr` = '%s' AND `network` = 'dfrn'",
|
||||||
dbesc($webbie));
|
dbesc($webbie));
|
||||||
$nav['remote'] = L10n::t("Visitor");
|
$nav['remote'] = L10n::t('Visitor');
|
||||||
} else {
|
} else {
|
||||||
$r = false;
|
$r = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (DBM::is_result($r)) {
|
if (DBM::is_result($r)) {
|
||||||
$nav['userinfo'] = [
|
$nav['userinfo'] = [
|
||||||
'icon' => (DBM::is_result($r) ? $r[0]['photo'] : "images/person-48.jpg"),
|
'icon' => (DBM::is_result($r) ? $r[0]['photo'] : 'images/person-48.jpg'),
|
||||||
'name' => $r[0]['name'],
|
'name' => $r[0]['name'],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!local_user() && !empty($server_url)) {
|
if (!local_user() && !empty($server_url)) {
|
||||||
$nav['logout'] = [$server_url . '/logout', L10n::t('Logout'), "", L10n::t('End this session')];
|
$nav['logout'] = [$server_url . '/logout', L10n::t('Logout'), '', L10n::t('End this session')];
|
||||||
|
|
||||||
// user menu
|
// user menu
|
||||||
$nav['usermenu'][] = [$server_url . '/profile/' . $a->user['nickname'], L10n::t('Status'), "", L10n::t('Your posts and conversations')];
|
$nav['usermenu'][] = [$server_url . '/profile/' . $a->user['nickname'], L10n::t('Status'), '', L10n::t('Your posts and conversations')];
|
||||||
$nav['usermenu'][] = [$server_url . '/profile/' . $a->user['nickname'] . '?tab=profile', L10n::t('Profile'), "", L10n::t('Your profile page')];
|
$nav['usermenu'][] = [$server_url . '/profile/' . $a->user['nickname'] . '?tab=profile', L10n::t('Profile'), '', L10n::t('Your profile page')];
|
||||||
$nav['usermenu'][] = [$server_url . '/photos/' . $a->user['nickname'], L10n::t('Photos'), "", L10n::t('Your photos')];
|
$nav['usermenu'][] = [$server_url . '/photos/' . $a->user['nickname'], L10n::t('Photos'), '', L10n::t('Your photos')];
|
||||||
$nav['usermenu'][] = [$server_url . '/videos/' . $a->user['nickname'], L10n::t('Videos'), "", L10n::t('Your videos')];
|
$nav['usermenu'][] = [$server_url . '/videos/' . $a->user['nickname'], L10n::t('Videos'), '', L10n::t('Your videos')];
|
||||||
$nav['usermenu'][] = [$server_url . '/events/', L10n::t('Events'), "", L10n::t('Your events')];
|
$nav['usermenu'][] = [$server_url . '/events/', L10n::t('Events'), '', L10n::t('Your events')];
|
||||||
|
|
||||||
// navbar links
|
// navbar links
|
||||||
$nav['network'] = [$server_url . '/network', L10n::t('Network'), "", L10n::t('Conversations from your friends')];
|
$nav['network'] = [$server_url . '/network', L10n::t('Network'), '', L10n::t('Conversations from your friends')];
|
||||||
$nav['events'] = [$server_url . '/events', L10n::t('Events'), "", L10n::t('Events and Calendar')];
|
$nav['events'] = [$server_url . '/events', L10n::t('Events'), '', L10n::t('Events and Calendar')];
|
||||||
$nav['messages'] = [$server_url . '/message', L10n::t('Messages'), "", L10n::t('Private mail')];
|
$nav['messages'] = [$server_url . '/message', L10n::t('Messages'), '', L10n::t('Private mail')];
|
||||||
$nav['settings'] = [$server_url . '/settings', L10n::t('Settings'), "", L10n::t('Account settings')];
|
$nav['settings'] = [$server_url . '/settings', L10n::t('Settings'), '', L10n::t('Account settings')];
|
||||||
$nav['contacts'] = [$server_url . '/contacts', L10n::t('Contacts'), "", L10n::t('Manage/edit friends and contacts')];
|
$nav['contacts'] = [$server_url . '/contacts', L10n::t('Contacts'), '', L10n::t('Manage/edit friends and contacts')];
|
||||||
$nav['sitename'] = $a->config['sitename'];
|
$nav['sitename'] = $a->config['sitename'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -289,17 +289,17 @@ function frio_acl_lookup(App $a, &$results)
|
||||||
{
|
{
|
||||||
require_once 'mod/contacts.php';
|
require_once 'mod/contacts.php';
|
||||||
|
|
||||||
$nets = x($_GET, "nets") ? notags(trim($_GET["nets"])) : "";
|
$nets = x($_GET, 'nets') ? notags(trim($_GET['nets'])) : '';
|
||||||
|
|
||||||
// we introduce a new search type, r should do the same query like it's
|
// we introduce a new search type, r should do the same query like it's
|
||||||
// done in /mod/contacts for connections
|
// done in /mod/contacts for connections
|
||||||
if ($results["type"] !== "r") {
|
if ($results['type'] !== 'r') {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql_extra = '';
|
$sql_extra = '';
|
||||||
if ($results["search"]) {
|
if ($results['search']) {
|
||||||
$search_txt = dbesc(protect_sprintf(preg_quote($results["search"])));
|
$search_txt = dbesc(protect_sprintf(preg_quote($results['search'])));
|
||||||
$sql_extra .= " AND (`attag` LIKE '%%" . dbesc($search_txt) . "%%' OR `name` LIKE '%%" . dbesc($search_txt) . "%%' OR `nick` LIKE '%%" . dbesc($search_txt) . "%%') ";
|
$sql_extra .= " AND (`attag` LIKE '%%" . dbesc($search_txt) . "%%' OR `name` LIKE '%%" . dbesc($search_txt) . "%%' OR `nick` LIKE '%%" . dbesc($search_txt) . "%%') ";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -311,7 +311,7 @@ function frio_acl_lookup(App $a, &$results)
|
||||||
$r = q("SELECT COUNT(*) AS `total` FROM `contact`
|
$r = q("SELECT COUNT(*) AS `total` FROM `contact`
|
||||||
WHERE `uid` = %d AND NOT `self` AND NOT `pending` $sql_extra ", intval($_SESSION['uid']));
|
WHERE `uid` = %d AND NOT `self` AND NOT `pending` $sql_extra ", intval($_SESSION['uid']));
|
||||||
if (DBM::is_result($r)) {
|
if (DBM::is_result($r)) {
|
||||||
$total = $r[0]["total"];
|
$total = $r[0]['total'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql_extra3 = Widget::unavailableNetworks();
|
$sql_extra3 = Widget::unavailableNetworks();
|
||||||
|
@ -328,8 +328,8 @@ function frio_acl_lookup(App $a, &$results)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$results["items"] = $contacts;
|
$results['items'] = $contacts;
|
||||||
$results["tot"] = $total;
|
$results['tot'] = $total;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue