Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

Всего 126 113 комментариев

Наумов Алексей
Наумов Алексей
Никогда не храните код .php или шаблоны .tpl в папке /assets, это прям нельзя.
Такие штуки не должны быть доступны пользователю через http запрос. php код может выполнится, что небезопасно, а код шаблона вообще просто отобразится или файл скачается.

Их нужно хранить или в директории core, которая должна быть закрыта от доступа через правила веб-сервера, или же вообще в идеале выше, чем public каталог.

ну и тогда не нужно парится насчет «Если кто-то попытается обратиться к файлу напрямую»
Алексей Р.
Алексей Р.
Артур Сергеевич
Артур Сергеевич
if (!defined('MODX_CORE_PATH')) die('Unauthorized access'); — это мой З#**** (при загруженных проектах я часто разношу все) Если кто-то попытается обратиться к файлу напрямую (например, через URL вроде site.ru/assets/snippets/mysnippet.php.

можно использовать пространства имён и автозагрузку, но проверка MODX_CORE_PATH остаётся простым и надёжным способом защиты.
(просто как доп. уровень, это наверно из разряда xss csp)

погодите, а разве параметр dateFormat не закрывает этот момент?

Все верно вы говорите, просто я его еще не доделал. Изначально я хотел что при текущем годе показа года не было.
Вот сырой код, если хотите посмотреть, для понимания

$formatAbsoluteDate = function($timestamp, $locale) use ($showYear) {
    $monthIndex = date('m', $timestamp);
    $monthNames = $locale['months'][$monthIndex] ?? ['', ''];
    $year = date('Y', $timestamp);
    $currentYear = date('Y');
    
    // !!!
    $shouldShowYear = $showYear && ($year != $currentYear);
    
    return date('d', $timestamp) . ' ' . $monthNames[0] . ($shouldShowYear ? ' ' . $year : '');
};
Stepan
Stepan
showYear:
true (по умолчанию): включает год в полном формате.
false: убирает год (например, «09 мая»).
погодите, а разве параметр dateFormat не закрывает этот момент?

там же какой формат укажешь такой и отобразится
добавьте у себя тоже возможность указания формата