if template-set does not supply (login_deny)login.tpl, use the ones from api/templates/default

This commit is contained in:
Ralf Becker 2016-05-06 10:49:11 +00:00
parent 35790eabec
commit 4a128b913c
3 changed files with 22 additions and 19 deletions

View File

@ -2,9 +2,7 @@
/** /**
* API: loading translation from server * API: loading translation from server
* *
* Usage: * Usage: /egroupware/api/lang.php?app=infolog&lang=de
* - /egroupware/api/lang.php?app=infolog&lang=de
* - /egroupware/api/lang.php?app=infolog&lang=de&debug=1 gives pretty-printed JSON
* *
* @link www.egroupware.org * @link www.egroupware.org
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de> * @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
@ -45,7 +43,7 @@ $etag = '"'.$_GET['app'].'-'.$_GET['lang'].'-'. Api\Translation::etag($_GET['ap
// headers to allow caching, we specify etag on url to force reload, even with Expires header // headers to allow caching, we specify etag on url to force reload, even with Expires header
Api\Session::cache_control(864000); // cache for 10 days Api\Session::cache_control(864000); // cache for 10 days
Header('Content-Type: '.(empty($_GET['debug'])?'text/javascript':'application/json').'; charset=utf-8'); Header('Content-Type: text/javascript; charset=utf-8');
Header('ETag: '.$etag); Header('ETag: '.$etag);
// if servers send a If-None-Match header, response with 304 Not Modified, if etag matches // if servers send a If-None-Match header, response with 304 Not Modified, if etag matches
@ -63,12 +61,7 @@ if (!count(Api\Translation::$lang_arr))
} }
// fix for phrases containing \n // fix for phrases containing \n
$content = str_replace('\\\\n', '\\n', json_encode(Api\Translation::$lang_arr, $content = 'egw.set_lang_arr("'.$_GET['app'].'", '.str_replace('\\\\n', '\\n', json_encode(Api\Translation::$lang_arr)).', egw && egw.window !== window);';
JSON_UNESCAPED_UNICODE | // send utf-8 unencoded, smaller and better readable
JSON_UNESCAPED_SLASHES | // do not escape slashes, smaller and better readable
(!empty($_GET['debug']) ? JSON_PRETTY_PRINT : 0)));
if (empty($_GET['debug'])) $content = 'egw.set_lang_arr("'.$_GET['app'].'", '.$content.', egw && egw.window !== window);';
// we run our own gzip compression, to set a correct Content-Length of the encoded content // we run our own gzip compression, to set a correct Content-Length of the encoded content
if (in_array('gzip', explode(',',$_SERVER['HTTP_ACCEPT_ENCODING'])) && function_exists('gzencode')) if (in_array('gzip', explode(',',$_SERVER['HTTP_ACCEPT_ENCODING'])) && function_exists('gzencode'))

View File

@ -159,7 +159,7 @@ class Etemplate extends Etemplate\Widget\Template
// not sure if we want to handle it this way, thought otherwise we will have a few ajax request for each dialog fetching predefined selectboxes // not sure if we want to handle it this way, thought otherwise we will have a few ajax request for each dialog fetching predefined selectboxes
$template = self::instance($this->name, $this->template_set, $this->version, $this->laod_via); $template = self::instance($this->name, $this->template_set, $this->version, $this->laod_via);
if (!$template) throw new Exception\AssertionFailed("Template $this->name not instanciable! Maybe you forgot to rename template id."); if (!$template) throw new Exception\AssertionFailed("Template $this->name not instanciable! Maybe you forgot to rename template id.");
// Translation::add_app('etemplate'); Translation::add_app('etemplate');
$template->run('beforeSendToClient', array('', array('cont'=>$content))); $template->run('beforeSendToClient', array('', array('cont'=>$content)));
// some apps (eg. InfoLog) set app_header only in get_rows depending on filter settings // some apps (eg. InfoLog) set app_header only in get_rows depending on filter settings

View File

@ -49,9 +49,15 @@ class Login
Api\Header\ContentSecurityPolicy::add('frame-src', array()); // array() no external frame-sources Api\Header\ContentSecurityPolicy::add('frame-src', array()); // array() no external frame-sources
//error_log(__METHOD__."() this->template=$this->framework->template, this->template_dir=$this->framework->template_dir, get_class(this)=".get_class($this)); //error_log(__METHOD__."() this->template=$this->framework->template, this->template_dir=$this->framework->template_dir, get_class(this)=".get_class($this));
try {
$tmpl = new Template(EGW_SERVER_ROOT.$this->framework->template_dir); $tmpl = new Template(EGW_SERVER_ROOT.$this->framework->template_dir);
$tmpl->set_file(array('login_form' => Api\Header\UserAgent::mobile()?'login_mobile.tpl':'login.tpl')); $tmpl->set_file(array('login_form' => Api\Header\UserAgent::mobile()?'login_mobile.tpl':'login.tpl'));
}
catch(Api\Exception\WrongParameter $e) {
unset($e);
$tmpl = new Template(EGW_SERVER_ROOT.'/api/templates/default');
$tmpl->set_file(array('login_form' => Api\Header\UserAgent::mobile()?'login_mobile.tpl':'login.tpl'));
}
$tmpl->set_var('lang_message',$GLOBALS['loginscreenmessage']); $tmpl->set_var('lang_message',$GLOBALS['loginscreenmessage']);
@ -224,11 +230,15 @@ class Login
*/ */
function denylogin_screen() function denylogin_screen()
{ {
try {
$tmpl = new Template(EGW_SERVER_ROOT.$this->framework->template_dir); $tmpl = new Template(EGW_SERVER_ROOT.$this->framework->template_dir);
$tmpl->set_file(array('login_form' => 'login_denylogin.tpl'));
$tmpl->set_file(array( }
'login_form' => 'login_denylogin.tpl' catch(Api\Exception\WrongParameter $e) {
)); unset($e);
$tmpl = new Template(EGW_SERVER_ROOT.'/api/templates/default');
$tmpl->set_file(array('login_form' => 'login_denylogin.tpl'));
}
$tmpl->set_var(array( $tmpl->set_var(array(
'template_set' => 'default', 'template_set' => 'default',