Всего 123 799 комментариев

Николай Савин
28 августа 2023, 08:18
+1
В msGallery и ms2Gallery никаких событий нет, и не предвидится.
По простой причине — они сами по себе никак файлами не управляют, не загружают, и даже не знают, где эти файлы лежат по сути.
Они только обрабатывают входящие команды и передают массив данных загрузчику MODX, который в свою очередь передает команду на загрузку (или другие операции) источнику файлов.
Источник файлов может быть разным, не только локальным. К примеру на какой-нибудь S3 Amazon загружать.

Вывод — пользоваться встроенными событиями на загрузку MODX.
Сергей С
27 августа 2023, 23:50
0
В документации нету. Группы у ms2gallery тоже нет. По файлам поискать хорошая мысль. Спасибо! Подожду ещё может кто подскажет само событие
Артур Шевченко
27 августа 2023, 23:34
0
Если в документации про это не написано, можно попробовать в админке рядом с системными настройками по группе ms2Gallery поискать, или скопировать файлы на локалку и через ide по файлам поискать invokeEvent
Дмитрий
27 августа 2023, 22:31
0
Спасибо, отличное решение.
Dan
Dan
27 августа 2023, 21:52
0
Нормально он работает в консоли, я оттуда и тестил. Создал два файла и переименовал их без проблем. Код покажи? Подозреваю, что ты не абсолютный путь к файлу указываешь. Там не просто имя файла должно быть в аргументах, а абсолютный путь.
Сергей С
27 августа 2023, 21:47
0
Да бог его знает не хочет и все. Вообще как я понял rename не хочет работать в консоли.
Dan
Dan
27 августа 2023, 18:22
0
Почему не видит? Протестил у себя, без проблем переименовал файл без имени с помощью rename. Если scandir запустить, там же этот файл будет?
Vladimir
27 августа 2023, 16:31
0
Могу дать пример на питоне и объяснить как я это сделал(потратил минут 5, так как давно не работал на питоне).
Задача такая: Найти все файлы что относятся к изображениям, можно сразу сделать регулярку чтобы проверял начиналось всё с точки и заканчивалось расширением изображений, либо найти все изображения затем пробежаться по ним и проверить на тоже самое начинается с точки и заканчивается расширением, далее заменить название, чат gpt в помощь с таким он должен справится.
import os
import pathlib

allowed_imgs = ('jpg','png','jpeg','webp','svg')

for root, dirs, files in os.walk("./"):
	for file in files:
		if file.startswith('.') and file.endswith(allowed_imgs):
			fl = os.path.join(root, file)
			ext = fl.split(".")[-1]
			nfl = os.path.join(root, f"newfile.{ext}")
			os.rename(fl, nfl)
Евгений
27 августа 2023, 15:37
0
Я решил, эту ошибку, оказалось, удалил папку со старыми фото и потому не смог загрузить новые. Как только поставил новую папку в настройках источника файлов, все стало нормально загружаться
Сергей С
27 августа 2023, 12:28
0
тогда вот вопрос. Почему /connectors/system/phpthumb.php?src=/assets/images/resources/91084/.jpg может получить файл?
Сергей С
27 августа 2023, 10:57
0
Беда. Проблема в том что таких файлов много и они у разных ресурсов штучно. Руками их выцеплять практически нереально.
Николай Савин
27 августа 2023, 10:56
0
Боюсь ошибиться, но как будто бы да — PHP тут бессилен, он ожидает имя файла с собственно именем.
Сергей С
27 августа 2023, 10:52
0
Да. Проблема в другом оказалась. Может Вы Николай подскажете? В общем есть файлы без имени.Такого типа: /assets/images/resources/91080/.jpeg. rename() их не видит file_exists() выдает соответственно, false. как их можно переименовать? Или тут только руками?
Артур Шевченко
27 августа 2023, 10:49
1
+1
Можно, только нужно создать css класс, который будет управлять видимостью элементов, если такого класса еще нет, например «d-none», и блоку с формой и блоку с табами добавить условия. Для формы
[[!+modx.user.id:isloggedin:isnot=`1`:then=`d-none`]]
для табов
[[!+modx.user.id:isloggedin:is=`1`:then=`d-none`]]
Ну и в JS на событие «afl_complete» если response.success и ['regForm', 'authForm'].includes(form.id) переключать классы.
Николай Савин
27 августа 2023, 10:47
0
А какая разница. И в плагинах и в консоли один и тот же PHP интерпретатор
Сергей С
27 августа 2023, 10:46
0
А через Console rename() работает?
Николай Савин
27 августа 2023, 10:43
0
Ниже написано готовое решение
Сергей С
27 августа 2023, 09:49
0
Добрый день! Нашли решение?
Zulya
27 августа 2023, 00:04
1
0
Артур, подскажите пожалуйста, с помощью AjaxFormitLogin возможно ли без перезагрузки страницы после отправки формы на той же странице отобразить TicketForm?
На странице добавления вопроса в шаблоне я разместила следующий код:
[[!+modx.user.id:isloggedin:is=`1`:then=`[[$addquestion]]`:else=`[[$authregtabs]]`]]
  • [[$addquestion]] — в этом чанке у меня сниппет TicketForm
  • [[$authregtabs]] — тут блок с табами, где есть формы авторизации/регистрации/восстановление пароля (как в этом видео скриншоте skrinshoter.ru/vLVs638ZeZi?a )
Когда посетитель не авторизован на сайте, ему отображается табы. Когда посетитель авторизуется/регистрируется, то сейчас страница перезагружается и потом отображается [[$addquestion]] со сниппетом TicketForm. А без перезагрузки страницы, даже после успешной авторизации/регистрации TicketForm не появляется, а остается формы в табах.
Артур Шевченко
26 августа 2023, 23:12
+1
Кстати, если вы не знали, есть группа в Телеграмм где помощь можно получить оперативнее