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

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

Наумов Алексей
Наумов Алексей
Никогда не храните код .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 не закрывает этот момент?

там же какой формат укажешь такой и отобразится
добавьте у себя тоже возможность указания формата
Андрей
Андрей
Добрый день.
Подскажите пожалуйста, а как можно установить или приобрести компонент ExportUsers? Просто на сайте modstore.pro нет такого компонента там остался только msExportUsersExcel, а решения для экспорта заказов — msExportOrdersExcel — нет ((.
Андрей Шевяков
Андрей Шевяков
Столкнулся с такой же проблемой вдруг, хотя сделал уже не один сайт и никогда такого не было. Оказалось все просто, если на странице подключаются скрипты минишопа несколько раз, то и заказ создается несколько раз.

<script src="/assets/components/minishop2/js/web/default.js?v=e0b2f3a936"></script>

Проверяйте этот файл /assets/components/minishop2/js/web/default.js — он должен быть подключен 1 раз на странице, и все тогда ок.