sidebox_done)
{
$this->do_sidebox();
$data['setSidebox'] = htmlentities(json_encode(static::$extra['setSidebox'], JSON_HEX_QUOT | JSON_HEX_AMP), ENT_QUOTES, 'UTF-8');
}
return $data;
}
function topmenu(array $vars, array $apps)
{
$this->topmenu_items = $this->topmenu_info_items = array();
parent::topmenu($vars, $apps);
$vars['topmenu_items'] = "";
$vars['topmenu_info_items'] = '';
foreach($this->topmenu_info_items as $id => $item)
{
switch($id)
{
case 'user_avatar':
$vars['topmenu_info_items'] .= "";
break;
case 'darkmode':
$vars['topmenu_info_items'] .= $item;
break;
default:
$vars['topmenu_info_items'] .= '\n";
}
}
$this->topmenu_items = $this->topmenu_info_items = null;
return $vars;
}
/**
* Add info items to the topmenu template class to be displayed
*
* @param string $content Api\Html of item
* @param string $id = null
* @access protected
* @return void
*/
function _add_topmenu_info_item($content, $id = null)
{
if(in_array($id, ['print_title']))
{
return;
}
if(strpos($content, 'menuaction=admin.admin_accesslog.sessions') !== false)
{
$content = preg_replace('/href="([^"]+)"/', "href=\"javascript:egw_link_handler('\\1','admin')\"", $content);
}
if($id)
{
$this->topmenu_info_items[$id] = $content;
}
else
{
$this->topmenu_info_items[] = $content;
}
}
/**
* Add menu items to the topmenu template class to be displayed
*
* @param array $app application data
* @param mixed $alt_label string with alternative menu item label default value = null
* @param string $urlextra string with alternate additional code inside -tag
* @access protected
* @return void
*/
function _add_topmenu_item(array $app_data, $alt_label = null)
{
switch($app_data['name'])
{
case 'manual':
$app_data['url'] = "javascript:callManual();";
break;
default:
if(Api\Header\UserAgent::mobile() || $GLOBALS['egw_info']['user']['preferences']['common']['theme'] == 'mobile')
{
break;
}
if(strpos($app_data['url'], 'logout.php') === false && substr($app_data['url'], 0, 11) != 'javascript:')
{
$app_data['url'] = "javascript:egw_link_handler('" . $app_data['url'] . "','" .
(isset($GLOBALS['egw_info']['user']['apps'][$app_data['name']]) ?
$app_data['name'] : 'about') . "')";
}
}
$id = $app_data['id'] ? $app_data['id'] : ($app_data['name'] ? $app_data['name'] : $app_data['title']);
$title = htmlspecialchars($alt_label ? $alt_label : $app_data['title']);
$this->topmenu_items[] = '';
}
/**
* Set site-wide CSS like preferred font-size
*
* @return array
* @see Api\Framework::_get_css()
*/
public function _get_css()
{
$ret = parent::_get_css();
$textsize = $GLOBALS['egw_info']['user']['preferences']['common']['textsize'] ?? '12';
$ret['app_css'] .= "
:root, :host, body, input {
font-size: {$textsize}px;
font-family: egroupware, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
}
";
return $ret;
}
/**
* Returns darkmode menu
*
* @return string
*/
protected static function _darkmode_menu()
{
$mode = $GLOBALS['egw_info']['user']['preferences']['common']['darkmode'] == 1 ? 'dark' : 'light';
return ' ';
}
}