mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-27 09:09:04 +01:00
ff0571a85f
- Fix sidebar header menu does not come up when user has slider header from pixelegg switched off
194 lines
5.5 KiB
PHP
Executable File
194 lines
5.5 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* EGroupware: Stylite Pixelegg template
|
|
*
|
|
* et2 Messages
|
|
*
|
|
* Please do NOT change css-files directly, instead change less-files and compile them!
|
|
*
|
|
* @link http://www.egroupware.org
|
|
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
|
* @author Stefan Reinhard <stefan.reinhard@pixelegg.de>
|
|
* @package pixelegg
|
|
* @version $Id$
|
|
*/
|
|
|
|
/**
|
|
* Stylite Pixelegg template
|
|
*/
|
|
class pixelegg_framework extends jdots_framework
|
|
{
|
|
/**
|
|
* Appname used for everything but JS includes, which we re-use from jdots
|
|
*/
|
|
const APP = 'pixelegg';
|
|
/**
|
|
* Appname used to include javascript code
|
|
*/
|
|
const JS_INCLUDE_APP = 'pixelegg';
|
|
|
|
/**
|
|
* Enable to use this template sets login.tpl for login page
|
|
*/
|
|
const LOGIN_TEMPLATE_SET = true;
|
|
|
|
/**
|
|
* Constructor
|
|
*
|
|
* Overwritten to set own app/template name (parent can NOT use static::APP!)
|
|
*
|
|
* @param string $template='pixelegg' name of the template
|
|
*/
|
|
function __construct($template=self::APP)
|
|
{
|
|
parent::__construct($template); // call the constructor of the extended class
|
|
}
|
|
|
|
/**
|
|
* Render header
|
|
*
|
|
* Overwritten to load our slider.js
|
|
*
|
|
* @param array $extra
|
|
* @return type
|
|
*/
|
|
function header(array $extra=array())
|
|
{
|
|
// load our slider.js, but only if framework requested
|
|
if (!self::$header_done && $_GET['cd'] === 'yes' &&
|
|
!(html::$ua_mobile || $GLOBALS['egw_info']['user']['preferences']['common']['theme'] == 'mobile'))
|
|
{
|
|
self::validate_file('/pixelegg/js/slider.js');
|
|
}
|
|
return parent::header($extra);
|
|
}
|
|
|
|
/**
|
|
* Make given color lighter or darker by percentage
|
|
*
|
|
* @param string $color in hex
|
|
* @param int $percent int
|
|
* @return string returns color hex format (for instance: #2b2b2b)
|
|
*/
|
|
function _color_shader($color, $percent) {
|
|
|
|
$R = hexdec(substr($color,0,2));
|
|
$G = hexdec(substr($color,2,2));
|
|
$B = hexdec(substr($color,4,2));
|
|
|
|
$R = round($R * (100 + $percent) / 100);
|
|
$G = round($G * (100 + $percent) / 100);
|
|
$B = round($B * (100 + $percent) / 100);
|
|
|
|
$R = ($R<255)?$R:255;
|
|
$G = ($G<255)?$G:255;
|
|
$B = ($B<255)?$B:255;
|
|
|
|
$RR = (strlen(dechex($R))==1?"0".dechex($R):dechex($R));
|
|
$GG = (strlen(dechex($G))==1?"0".dechex($G):dechex($G));
|
|
$BB = (strlen(dechex($B))==1?"0".dechex($B):dechex($B));
|
|
|
|
return '#'.$RR.$GG.$BB;
|
|
}
|
|
|
|
/**
|
|
* Overwrite to NOT add customizable colors from jDots
|
|
*
|
|
* @see egw_framework::_get_css()
|
|
* @return array
|
|
*/
|
|
public function _get_css()
|
|
{
|
|
$ret = parent::_get_css();
|
|
// color to use
|
|
$color = str_replace('custom',$GLOBALS['egw_info']['user']['preferences']['common']['template_custom_color'],
|
|
$GLOBALS['egw_info']['user']['preferences']['common']['template_color']);
|
|
//The hex value of the color
|
|
$color_hex = ltrim($color, '#');
|
|
|
|
// Create a drak variant of the color
|
|
$color_hex_dark = $this->_color_shader($color_hex, 15);
|
|
// Create a draker variant of the color
|
|
$color_hex_darker = $this->_color_shader($color_hex, -30);
|
|
|
|
if (preg_match('/^(#[0-9A-F]+|[A-Z]+)$/i',$color)) // a little xss check
|
|
{
|
|
$ret['app_css'] = "
|
|
/**
|
|
* theme changes to color pixelegg for color: $color
|
|
*/
|
|
|
|
/*
|
|
-Top window framework header
|
|
-sidebar actiuve category :hover
|
|
-popup toolbar
|
|
*/
|
|
div#egw_fw_header, div.egw_fw_ui_category:hover,#loginMainDiv,#loginMainDiv #divAppIconBar #divLogo,
|
|
#egw_fw_sidebar #egw_fw_sidemenu .egw_fw_ui_category_active:hover,
|
|
.dialogFooterToolbar, .et2_portlet .ui-widget-header{
|
|
background-color: $color !important;
|
|
}
|
|
|
|
/*Login background*/
|
|
#loginMainDiv #divAppIconBar #divLogo img[src$='svg'] {
|
|
background-image: -webkit-linear-gradient(top, $color, $color);
|
|
background-image: -moz-linear-gradient(top, $color, $color);
|
|
background-image: -o-linear-gradient(top,$color, $color);
|
|
background-image: linear-gradient(to bottom, $color, $color);
|
|
}
|
|
|
|
/*Center box in login page*/
|
|
#loginMainDiv div#centerBox {
|
|
background-image: -webkit-linear-gradient(top,$color_hex_dark,$color_hex_darker);
|
|
background-image: -moz-linear-gradient(top,$color_hex_dark,$color_hex_darker);
|
|
background-image: -o-linear-gradient(top,$color_hex_dark,$color_hex_darker);
|
|
background-image: linear-gradient(to bottom, $color_hex_dark,$color_hex_darker);
|
|
border-top: solid 1px $color_hex_darker;
|
|
border-left: solid 1px $color_hex_darker;
|
|
border-right: solid 1px $color_hex_darker;
|
|
border-bottom: solid 1px $color_hex_dark;
|
|
}
|
|
|
|
/*Sidebar menu active category*/
|
|
#egw_fw_sidebar #egw_fw_sidemenu .egw_fw_ui_category_active{
|
|
background-color: $color_hex_darker !important;
|
|
}
|
|
|
|
|
|
";
|
|
if (html::$ua_mobile) $ret['app_css'] .= "
|
|
/* Mobile theme specific color changes */
|
|
|
|
/*nextmatch header and plus_button in mobile theme*/
|
|
body div.et2_nextmatch .search,
|
|
body div.et2_nextmatch .search button,
|
|
body button.plus_button,
|
|
body div.et2_nextmatch .search .nm_action_header,
|
|
body div.et2_nextmatch .search .nm_toggle_header,
|
|
body div.et2_nextmatch .search .nm_favorites_button {
|
|
background-color: $color;
|
|
}";
|
|
}
|
|
return $ret;
|
|
}
|
|
|
|
/**
|
|
* displays a login screen
|
|
*
|
|
* Reimplemented to remove site_title from login box and display it as loginscreenmessage, if none set.
|
|
*
|
|
* @param string $extra_vars for login url
|
|
* @param string $change_passwd =null string with message to render input fields for password change
|
|
*/
|
|
function login_screen($extra_vars, $change_passwd=null)
|
|
{
|
|
if (empty($GLOBALS['loginscreenmessage']))
|
|
{
|
|
$GLOBALS['loginscreenmessage'] = '<h1>'.$GLOBALS['egw_info']['server']['site_title'].'</h1>';
|
|
}
|
|
unset($GLOBALS['egw_info']['server']['site_title']);
|
|
|
|
return parent::login_screen($extra_vars, $change_passwd);
|
|
}
|
|
}
|