diff --git a/admin/inc/class.admin_messages.inc.php b/admin/inc/class.admin_messages.inc.php index b190d67fe6..850db6fb98 100644 --- a/admin/inc/class.admin_messages.inc.php +++ b/admin/inc/class.admin_messages.inc.php @@ -5,11 +5,15 @@ * @link http://www.egroupware.org * @package admin * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License + * @author Hadi Nategh + * @copyright (c) 2018, Hadi Nategh * @version $Id$ */ use EGroupware\Api; use EGroupware\Api\Framework; +use EGroupware\Api\Etemplate; +use EGroupware\Api\Egw; /** * Mainscreen and login message @@ -18,125 +22,62 @@ class admin_messages { var $public_functions = array('index' => True); - function index() + var $sections = array ('mainscreen', 'loginscreen'); + + const MAINSCREEN = 'mainscreen'; + const LOGINSCREEN = 'loginscreen'; + + function index ($content = null) { - $section = $_POST['section']; - $select_lang = $_POST['select_lang']; - $message = get_magic_quotes_gpc() ? stripslashes($_POST['message']) : $_POST['message']; - $acl_ok = array(); - if (!$GLOBALS['egw']->acl->check('mainscreen_messa',1,'admin')) + $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)) { - $acl_ok['mainscreen'] = True; - } - if (!$GLOBALS['egw']->acl->check('mainscreen_messa',2,'admin')) - { - $acl_ok['loginscreen'] = True; - } - if ($_POST['cancel'] && !isset($_POST['message']) || - !count($acl_ok) || $_POST['submit'] && !isset($acl_ok[$section])) - { - $GLOBALS['egw']->redirect_link('/admin/index.php'); + + $content = array( + 'html' => true, + 'lang' => $GLOBALS['egw_info']['user']['preferences']['common']['lang'] + ); } + else { + list($button) = @each($content['button']); - Framework::includeJS('vendor/egroupware/ckeditor/ckeditor.js'); - - $GLOBALS['egw']->template->set_file(array('message' => 'mainscreen_message.tpl')); - $GLOBALS['egw']->template->set_block('message','form','form'); - $GLOBALS['egw']->template->set_block('message','row','row'); - $GLOBALS['egw']->template->set_block('message','row_2','row_2'); - - if ($_POST['save']) - { - Api\Translation::write($select_lang,$section,$section.'_message',$message); - Framework::message(lang('message has been updated')); - - $section = ''; - } - if ($_POST['cancel']) // back to section/lang-selection - { - $message = $section = ''; - } - switch ($section) - { - case 'mainscreen': - $GLOBALS['egw_info']['flags']['app_header'] = lang('Admin').' - '.lang('Edit main screen message') . ': '.strtoupper($select_lang); - break; - case 'loginscreen': - $GLOBALS['egw_info']['flags']['app_header'] = lang('Admin').' - '.lang('Edit login screen message') . ': '.strtoupper($select_lang); - break; - default: - $GLOBALS['egw_info']['flags']['app_header'] = lang('Admin').' - '.lang('Main screen message'); - break; - } - if (empty($section)) - { - echo $GLOBALS['egw']->framework->header(); - - $GLOBALS['egw']->template->set_var('form_action',$GLOBALS['egw']->link('/index.php','menuaction=admin.admin_messages.index')); - $GLOBALS['egw']->template->set_var('value',' '); - $GLOBALS['egw']->template->fp('rows','row_2',True); - - $langs = Api\Translation::get_installed_langs(); - $langs['en'] .= ' ('.lang('All languages').')'; - $lang_select = Api\Html::select('select_lang', 'en', $langs); - - $GLOBALS['egw']->template->set_var('label',lang('Language')); - $GLOBALS['egw']->template->set_var('value',$lang_select); - $GLOBALS['egw']->template->fp('rows','row',True); - - $select_section = ''; - $GLOBALS['egw']->template->set_var('label',lang('Section')); - $GLOBALS['egw']->template->set_var('value',$select_section); - $GLOBALS['egw']->template->fp('rows','row',True); - - $GLOBALS['egw']->template->set_var('value', - Api\Html::submit_button('edit', lang('Edit'))."\n".Api\Html::submit_button('cancel', lang('Cancel'))); - $GLOBALS['egw']->template->fp('rows','row_2',True); } - else - { - $current_message = Api\Translation::read($select_lang,$section,$section.'_message'); - if ($_POST['no']) $current_message = strip_tags($current_message); - if (empty($_POST['no']) && ($_POST['yes'] || empty($current_message) || - strlen($current_message) != strlen(strip_tags($current_message)))) - { - $text_or_htmlarea = Api\Html::fckEditorQuick('message','advanced',$current_message,'400px','800px'); - $htmlarea_button = Api\Html::submit_button("no", lang('disable WYSIWYG-editor')); - } - else - { - $text_or_htmlarea=''; - $htmlarea_button = Api\Html::submit_button("yes", lang('activate WYSIWYG-editor')); - } - echo $GLOBALS['egw']->framework->header(); - - $GLOBALS['egw']->template->set_var('form_action',$GLOBALS['egw']->link('/index.php','menuaction=admin.admin_messages.index')); - $GLOBALS['egw']->template->set_var('select_lang',$select_lang); - $GLOBALS['egw']->template->set_var('section',$section); - $GLOBALS['egw']->template->set_var('value',' '); - $GLOBALS['egw']->template->fp('rows','row_2',True); - - $GLOBALS['egw']->template->set_var('value',$text_or_htmlarea); - - $GLOBALS['egw']->template->fp('rows','row_2',True); - - $GLOBALS['egw']->template->set_var('value', - Api\Html::submit_button('save', lang('Save'))."\n".Api\Html::submit_button('cancel', lang('Cancel')). - "\n".$htmlarea_button); - $GLOBALS['egw']->template->fp('rows','row_2',True); - } - - $GLOBALS['egw']->template->set_var('lang_cancel',lang('Cancel')); - $GLOBALS['egw']->template->pparse('out','form'); - - echo $GLOBALS['egw']->framework->footer(); + $readonlys = array( + 'tabs' => array( + self::MAINSCREEN => !$acls[self::MAINSCREEN], + self::LOGINSCREEN => !$acls[self::LOGINSCREEN] + ) + ); + $tpl->exec('admin.admin_messages.index', $content, array(), $readonlys); } } diff --git a/admin/templates/default/mainscreen_message.xet b/admin/templates/default/mainscreen_message.xet new file mode 100644 index 0000000000..002a95643e --- /dev/null +++ b/admin/templates/default/mainscreen_message.xet @@ -0,0 +1,51 @@ + + + + + + +