Commit graph

2892 commits

Author SHA1 Message Date
Kijin Sung
2a1aad7c1b Mark old EmbedFilter and Password classes as deprecated 2023-10-04 01:22:30 +09:00
Kijin Sung
3c9828ec5f Mark old IpFilter and Purifier classes as deprecated 2023-10-04 01:20:29 +09:00
Kijin Sung
20fedd2810 Mark most methods of Mobile class as deprecated 2023-10-04 01:15:39 +09:00
Kijin Sung
3505d49de6 Separate common Template class from Template v1 parser 2023-10-03 23:27:02 +09:00
Kijin Sung
6215e57762 Add warning to discourage ruleset use
https://xetown.com/questions/1788526
2023-10-03 19:31:15 +09:00
Kijin Sung
57d7821bcc Fix deprecated function call and potential type error in XMLRPC request parser 2023-10-03 16:16:06 +09:00
Kijin Sung
a1c6f7a902 Fix potential type errors in Context class 2023-10-03 15:22:04 +09:00
Kijin Sung
a5e0b2c7fa Fix #2187 undefined lang code in page.admin.controller.php 2023-10-01 00:03:33 +09:00
Kijin Sung
028a56a678 Remove notice about moving to mobile site 2023-09-27 15:55:12 +09:00
Kijin Sung
a4b49048f3 Fix uppercase scripts not working as CLI command 2023-09-26 15:02:09 +09:00
Kijin Sung
a1537bafe3 Fix incorrect or missing type declarations in Cache and DB classes 2023-09-26 11:09:55 +09:00
Kijin Sung
5a61bc62d3 Fix meaningful whitespace being hidden after template compile 2023-09-18 14:26:56 +09:00
Kijin Sung
c8638d2548 Change cache-busting query string format from ?YYYYMMDDHHMMSS to ?t=UnixTime
- 날짜, 유닉스 타임스탬프, 16진수(CKEditor) 등 여러 가지 포맷을 혼용하고 있던
  캐시 방지용 쿼리스트링의 형태를 "유닉스 타임스탬프"로 통일
- 표준 시간대 처리 등 은근히 많은 자원을 소모하는 date() 함수를 사용하지 않음
- t=를 붙여서 정상적인 쿼리스트링 구조가 나오도록 하여, 웹방화벽이나 CDN
  등에서 문제를 일으킬 가능성을 줄임
- 덤으로, 길이도 2바이트씩 짧아짐
2023-09-12 23:15:26 +09:00
Kijin Sung
fead32337e Fix incorrect debug comment for outer templates in a deeply nested include tree 2023-09-12 22:42:30 +09:00
Kijin Sung
7f7e0a099d Fix incorrect display of SCSS variable in meta debug info 2023-09-12 22:18:29 +09:00
Kijin Sung
e60ffb4e8d Add option to control partial page rendering (layout drop)
XE 시절부터 layout=none 또는 isLayoutDrop=1 파라미터로 레이아웃이 없는
부분적인 페이지 렌더링을 허용하는 기능이 있었습니다. 관리자 화면에서
팝업이나 iframe을 표시하는 용도로도 사용하고, AJAX로 페이지 일부 내용만
새로고침할 때 불필요한 데이터를 주고받지 않도록 하는 데도 유용합니다.

그러나 사이트에 따라서는 레이아웃을 적용하지 않을 경우 민감한 정보가
노출되는 등의 부작용이 발생할 수도 있으므로, 이 기능을 사용하지 않도록
선택하는 옵션을 제공합니다.
2023-09-12 00:33:54 +09:00
Kijin Sung
7bba7732d7 Display relative path in "Template not found" error message 2023-09-09 01:39:07 +09:00
Kijin Sung
a50041007d Remove UTF-8 BOM and CRLF in templates when compiling them 2023-09-05 01:05:53 +09:00
Kijin Sung
7a62550c30 Fix incorrect handling of newline in TemplateHandler 2023-09-05 00:56:17 +09:00
Kijin Sung
fd27ec177b Refine empty line handling without changing line numbers 2023-09-05 00:42:12 +09:00
Kijin Sung
cd8e6371c6 Preserve line numbers when compiling templates 2023-09-05 00:17:15 +09:00
Kijin Sung
c27a1d803b Fix #2176 error in unnecessary count() 2023-09-01 23:15:53 +09:00
Kijin Sung
15648d10d1 Fix #2167 allow removing no-store and must-revalidate from Cache-Control headers 2023-08-31 02:19:18 +09:00
Kijin Sung
e5f53429f7 Fix count() error in XMLDisplayHandler 2023-08-30 23:28:05 +09:00
Kijin Sung
56fbccda7c Always disable session.cache_limiter before starting session 2023-08-30 01:48:29 +09:00
Kijin Sung
ec36839303 Add options in module.xml to disable session and Cache-Control headers for individual actions 2023-08-30 01:45:37 +09:00
Kijin Sung
3722c49750 Send cache control headers if session.cache_limiter is turned off in php.ini 2023-08-30 00:46:23 +09:00
Kijin Sung
295ac7e61e Remove redundant Cache-Control directives 2023-08-30 00:28:29 +09:00
Kijin Sung
06e736178b Support sending all _rx_* POST fields as HTTP headers instead
하위호환성, 부가기능 등을 위한 _rx_* POST 필드가 점점 많아짐에 따라
모두 헤더로 대체할 수 있도록 지원하고, 앞으로 점점 헤더로 바꿀 예정

CSRF 토큰은 예전부터 X-CSRF-Token 헤더를 지원했음
2023-08-27 23:32:31 +09:00
Kijin Sung
42d09bde65 Provide a single entry point for all command-line scripts
Core example:

php index.php common.clean_empty_dirs
  -> executes common/scripts/clean_empty_dirs.php

Third-party example:

php index.php module_name.script_name
  -> executes modules/module_name/scripts/script_name.php

This should be the preferred method of executing PHP scripts included with
any third-party module, because it ensures that the working environment is
correct. For example, it will set the current working directory to Rhymix root,
check that the UID matches the usual web user, include all core libraries and
initialize the Context properly.

Over time, we will expand the command-line functionality similar to
the 'artisan' command in Laravel.
2023-08-16 23:12:25 +09:00
Kijin Sung
ed424f031e Capitalization 2023-08-16 22:45:48 +09:00
Kijin Sung
2197b0a982 Add option to control whether boards and pages are indexed by search engines, using the X-Robots-Tag header 2023-08-13 02:03:02 +09:00
Kijin Sung
48e0f55d6b Support event handlers (triggers) that are only called before/after specific action 2023-08-12 01:14:36 +09:00
Kijin Sung
3241354872 Support customizing the default (base) class and install class of a module 2023-08-11 22:09:26 +09:00
Kijin Sung
7502b7308b Support custom namespaces in ModuleHandler and related processes 2023-08-11 21:56:42 +09:00
Kijin Sung
60a3edc994 Remove session keys, and always set httpOnly 2023-07-22 19:53:51 +09:00
Kijin Sung
78ba527c78 Fix warnings in PHP 8.x 2023-07-20 21:38:16 +09:00
Kijin Sung
103f5ce884 Fix #2106 allow entering multiple lines (textarea) in extra var description 2023-07-04 23:29:23 +09:00
conory
fe724d93ef Allow an array of URL parameters in setRedirectUrl()
$this->setRedirectUrl(['module' => 'admin', 'act' => '...']);
2023-07-01 01:44:43 +09:00
Kijin Sung
7b16ee31c3 Fix backward incompatible behavior when is_skin_fix or is_mskin_fix is set 2023-06-27 00:16:29 +09:00
Kijin Sung
18b5d66605 Fix backward incompatible behavior when skin directory is a symlink 2023-06-27 00:09:56 +09:00
Kijin Sung
fa198a2984 Add option to fix double-escaping of user lang code 2023-06-26 22:25:08 +09:00
Kijin Sung
340b3aa49a Set layout and template paths in one place 2023-06-26 22:12:32 +09:00
Kijin Sung
9fbcda3e79 Fix deprecation warning in PHP 8.x 2023-06-26 14:46:19 +09:00
Kijin Sung
b6e1a4589a Fix #2131 missing translations 2023-06-22 21:55:25 +09:00
Kijin Sung
ff647d6701 Fix #2123 support nested arrays when getUrl() is used with array syntax 2023-06-20 21:12:56 +09:00
Kijin Sung
959503b6ec Clean up references to deprecated DB methods in other places 2023-06-19 15:24:27 +09:00
Kijin Sung
10cd76d0be Revert "Convert DB class into an alias of Rhymix\Framework\DB, instead of extending it"
This reverts commit 9d3b5924e9.
2023-06-19 01:44:53 +09:00
Kijin Sung
5ba6346bec Add security options to add X-Frame-Options and X-Content-Type-Options headers
- 보안 관련하여 널리 알려진 헤더 3종 가운데 2종을 기본 지원
- X-XSS-Protection 헤더는 IE 지원 종료로 불필요
2023-06-18 23:33:41 +09:00
Kijin Sung
e3ce2bcbcc Remove gzip support; rely on webserver instead 2023-06-18 23:05:16 +09:00