Add option to control partial page rendering (layout drop)

XE 시절부터 layout=none 또는 isLayoutDrop=1 파라미터로 레이아웃이 없는
부분적인 페이지 렌더링을 허용하는 기능이 있었습니다. 관리자 화면에서
팝업이나 iframe을 표시하는 용도로도 사용하고, AJAX로 페이지 일부 내용만
새로고침할 때 불필요한 데이터를 주고받지 않도록 하는 데도 유용합니다.

그러나 사이트에 따라서는 레이아웃을 적용하지 않을 경우 민감한 정보가
노출되는 등의 부작용이 발생할 수도 있으므로, 이 기능을 사용하지 않도록
선택하는 옵션을 제공합니다.
This commit is contained in:
Kijin Sung 2023-09-12 00:33:54 +09:00
parent e2753300ee
commit e60ffb4e8d
7 changed files with 70 additions and 4 deletions

View file

@ -104,6 +104,7 @@ class Advanced extends Base
Context::set('delay_session', Config::get('session.delay'));
Context::set('delay_template_compile', Config::get('view.delay_compile'));
Context::set('use_db_session', Config::get('session.use_db'));
Context::set('partial_page_rendering', Config::get('view.partial_page_rendering') ?? 'internal_only');
Context::set('manager_layout', Config::get('view.manager_layout'));
Context::set('minify_scripts', Config::get('view.minify_scripts'));
Context::set('concat_scripts', Config::get('view.concat_scripts'));
@ -220,6 +221,7 @@ class Advanced extends Base
Config::set('use_rewrite', $vars->use_rewrite > 0);
Config::set('session.delay', $vars->delay_session === 'Y');
Config::set('session.use_db', $vars->use_db_session === 'Y');
Config::set('view.partial_page_rendering', $vars->partial_page_rendering);
Config::set('view.manager_layout', $vars->manager_layout ?: 'module');
Config::set('view.minify_scripts', $vars->minify_scripts ?: 'common');
Config::set('view.concat_scripts', $vars->concat_scripts ?: 'none');