@Stop_Loll
Дизайнер

Что за ошибка mkdir() Invalid path в MODX? Как её решить?

Уже вторые сутки бьюсь с этой проблемой в MODX, но всё решение никак не могу додумать, даже костыльное. Как я понял проблема в MIGX, а именно в том, что он выполняет свою работу правильно (Папка создаётся, файл загружается), но всё равно заносит ошибку в лог. Пробовал менять источник на другой такой же, эффекта ноль, но проблема решается когда я заменяю basePath на что-то другое, без указания createFolder=`1`, но это меня не устраивает, так как мне нужно динамично создавать папку в которую будут загружаться файлы.
На данный момент basePath выглядит так:
[[migxResourceMediaPath?     &pathTpl=`assets/resourceimages/{id}/`     &createFolder=`1` ]]

Был бы очень признателен, если дадите хоть какую-нибудь зацепку или решение без переустановки MODX ибо уже много сделано в плане контента.
[2023-01-24 09:30:07] (ERROR @ /var/www/***/***/***/***/core/src/Revolution/Sources/modFileMediaSource.php : 57) Ошибка инициализации источника «ResourceMediaPath»! Unable to create a directory at . mkdir(): Invalid path

*** - Путь до скрипта
-- Дополнение к вопросу
1) Источник файлов, TV Поля создавал и привязывал к Ресурсу по FAQ из статьи rtfm.modx.com
2) Скриншоты проделанной работы ниже:
Источник файлов
63cf82aea9691977199013.png
TV Поле
63cf83196d84b613491719.png
63cf832d7aea8091742502.png
Настройка MIGX из FAQ, в пункте 1
  • Вопрос задан
  • 277 просмотров
Решения вопроса 1
@JustLikeYou
Не знаю, как решили проблему, но напишу для тех, кому это ещё актуально)

У всех, конечно, могут быть разные причины, но, думаю, мой вариант многим подойдёт

1. Копируем сниппет migxResourceMediaPath и обзываем как-нибудь migxResourceMediaPathCustom
2. В конце скопированного скрипта перед return $path; вставляем следующие строчки:
if (!file_exists($fullpath)) {
return '';
}

3. В админке в медиа в источниках файлов у ResourceMediaPath меняем migxResourceMediaPath на migxResourceMediaPathCustom в basePath и baseUrl

Готово. Больше этой ошибки в логах быть не должно

Очень глубоко не копал, но проблема в том, что там в методе getBases идет проверка на существование папки, которой нет. Проверка происходит у абсолютно каждого запроса к серверу, даже ошибочного 404. Так что таким образом мы еще до проверки не возвращаем путь, которого не существует

Потестил, вроде норм всё работает, но глубоко не лазил, поэтому точно не скажу (:
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
an-tar
@an-tar Куратор тега MODX
Full stack web developer
Вы источник файлов задавали, про это же ругается? Если да, то как? Есть ли у вас какие-то либо TV(из вопроса не ясно)? там насколько помню был нюанс привязки ресурса к TV.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы