{:lang('mpt/page_title')}

{if condition="$configured neq 1"}
{:lang('mpt/tip_not_configured')}
{/if} {if condition="$db_error eq 1"}
{:lang('mpt/err_internal')}
{/if}
{:lang('mpt/stat_total')} {$stats.total} {:lang('mpt/stat_running')} {$stats.running} {:lang('mpt/stat_done')} {$stats.done} {:lang('mpt/stat_failed')} {$stats.failed} {/* 转义口径与下面 cron_cmd / cron_url 一致:这两个值同样出自 TaskRunner::config()、同样是站长在设置页可填的自由文本,而本仓库的 模板变量是裸 echo(Template 没有 default_filter)。现在 script_mode 过三选一枚举、play_from 过 ^[a-z][a-z0-9_]{1,19}$,都跳不出来,但 一处转义一处不转义的话,将来谁放宽了任一白名单就只有这一行中招。 */} {:lang('mpt/label_script_mode')} {$script_mode|htmlspecialchars} · {:lang('mpt/label_play_from')} {$play_from|htmlspecialchars}
{:lang('mpt/section_new')}
{:lang('mpt/section_tasks')} {:lang('mpt/tip_polling')}
ID {:lang('mpt/th_vod')} {:lang('mpt/th_subject')} {:lang('mpt/th_status')} {:lang('mpt/th_progress')} {:lang('mpt/th_time')} {:lang('mpt/th_op')}
{:lang('mpt/tip_cleanup')}
{if condition="$cron_url neq ''"}
{:lang('mpt/section_cron')}
{:lang('mpt/tip_cron')}
{/* 这两个值里含 cron_token,是站长在设置页可填的自由文本; 模板变量在本仓库是裸 echo(Template 没有 default_filter), 不转义就能从 value 属性里跳出来变成存储型 XSS。 TaskRunner::config() 已做字符白名单,这里再转一次兜底。 */}
{:lang('mpt/tip_cron_url')}
{/if}
{:lang('mpt/section_notice')}
{:lang('mpt/tip_uninstall')}