forked from extern/egroupware
60be39ec2c
- Fix not saving data when the content is empty
110 lines
2.8 KiB
PHP
110 lines
2.8 KiB
PHP
<?php
|
|
/**
|
|
* EGgroupware administration
|
|
*
|
|
* @link http://www.egroupware.org
|
|
* @package admin
|
|
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
|
* @author Hadi Nategh <hn@egroupware.org>
|
|
* @copyright (c) 2018, Hadi Nategh <hn@egroupware.org>
|
|
* @version $Id$
|
|
*/
|
|
|
|
use EGroupware\Api;
|
|
use EGroupware\Api\Framework;
|
|
use EGroupware\Api\Etemplate;
|
|
use EGroupware\Api\Egw;
|
|
|
|
/**
|
|
* Mainscreen and login message
|
|
*/
|
|
class admin_messages
|
|
{
|
|
var $public_functions = array('index' => True);
|
|
|
|
const MAINSCREEN = 'mainscreen';
|
|
const LOGINSCREEN = 'loginscreen';
|
|
|
|
function index ($content = null)
|
|
{
|
|
$tpl = new Etemplate('admin.mainscreen_message');
|
|
|
|
$acls = array (
|
|
self::MAINSCREEN => !$GLOBALS['egw']->acl->check('mainscreen_messa',1,'admin'),
|
|
self::LOGINSCREEN => !$GLOBALS['egw']->acl->check('mainscreen_messa',2,'admin')
|
|
);
|
|
|
|
if (!is_array($content))
|
|
{
|
|
$lang = $GLOBALS['egw_info']['user']['preferences']['common']['lang'];
|
|
$content = array_merge(array(
|
|
'html' => true,
|
|
'lang' => $lang
|
|
), $this->_getMessages($lang));
|
|
}
|
|
else
|
|
{
|
|
list($button) = @each($content['button']);
|
|
|
|
if ($button)
|
|
{
|
|
switch($button)
|
|
{
|
|
case 'apply':
|
|
case 'save':
|
|
foreach (array ('mainscreen', 'loginscreen') as $section)
|
|
{
|
|
$prefix = $content['html'] == true ? 'html_' : 'text_';
|
|
Api\Translation::write($content['lang'], $section, $section.'_message',$content[$prefix.$section]);
|
|
}
|
|
Framework::message(lang('message has been updated'));
|
|
if ($button == 'apply') break;
|
|
//fall through
|
|
default:
|
|
Egw::redirect_link('/index.php', array(
|
|
'menuaction' => 'admin.admin_ui.index',
|
|
'ajax' => 'true'
|
|
), 'admin');
|
|
}
|
|
}
|
|
else if ($content['lang'])
|
|
{
|
|
$content = array_merge($content, $this->_getMessages($content['lang'], $content['html']));
|
|
}
|
|
}
|
|
$readonlys = array(
|
|
'tabs' => array(
|
|
self::MAINSCREEN => !$acls[self::MAINSCREEN],
|
|
self::LOGINSCREEN => !$acls[self::LOGINSCREEN]
|
|
)
|
|
);
|
|
|
|
$tpl->exec('admin.admin_messages.index', $content, array('lang' => Api\Translation::get_installed_langs()), $readonlys);
|
|
}
|
|
|
|
/**
|
|
* Get messages content
|
|
*
|
|
* @param type $lang
|
|
* @param type $html
|
|
* @return array returns an array of content
|
|
*/
|
|
private function _getMessages ($lang, $html = true)
|
|
{
|
|
if ($html)
|
|
{
|
|
return array (
|
|
'html_mainscreen' => Api\Translation::read($lang, self::MAINSCREEN, self::MAINSCREEN.'_message'),
|
|
'html_loginscreen' => Api\Translation::read($lang, self::LOGINSCREEN, self::LOGINSCREEN.'_message'),
|
|
);
|
|
}
|
|
else
|
|
{
|
|
return array (
|
|
'text_mainscreen' => strip_tags(Api\Translation::read($lang, self::MAINSCREEN, self::MAINSCREEN.'_message')),
|
|
'text_loginscreen' => strip_tags(Api\Translation::read($lang, self::LOGINSCREEN, self::LOGINSCREEN.'_message'))
|
|
);
|
|
}
|
|
}
|
|
}
|