Всего 123 793 комментария

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
Кстати, если вы не знали, есть группа в Телеграмм где помощь можно получить оперативнее
Артур Шевченко
26 августа 2023, 22:57
+2
Ну и по поводу фенома, он нормально работает со стандартным парсером, главное чтобы в шаблонах и чанках не было открывающих фигурных скобок не относящихся к феном, а если есть, то после них нужно просто поставить пробел.
Артур Шевченко
26 августа 2023, 22:54
+1
НУ я же давал ссылку на документацию по AjaxFormitLogin. Пакет Login использовать не нужно, весь его функционал уже есть в моём компоненте. В документации есть примеры вызовов для всех форм: регистрации, авторизации, восстановления пароля, редактирования данных, вам нужно только свой чанк формы подставить, ну и если мы говорим про регистрацию вот эти значения надо сохранить
&activation=`0`
 &autoLogin=`1`
Zulya
26 августа 2023, 22:36
1
0
У меня на сайте очень много шаблонов. Если я правильно поняла, после включения фенома, на сайте весь код нужно будет под феном переписать. Поэтому пока не могу перейти на феном.
Вот так я вызвала AjaxFormitLogin:
[[!AjaxFormitLogin?
&snippet=`Register`
&hooks=`email`
&form=`regform`
&usergroupsField=`Member`
&submitVar=`login-register-btn`
&activation=`0`
 &autoLogin=`1`
 &usernameField=`email`
 &passwordField=`password`
 &validate=`nospam:blank,
password:required:minLength=^8^,
password_confirm:password_confirm=^password^,
 fullname:required,
email:required:email`
&placeholderPrefix=`reg.`
]]
А из кода формы убрала
action="[[~[[*id]]]]" method="post"
.
Теперь после отправки формы, страница не обновляется. Но также ничего не происходит. Поля формы остаются заполненными и не создается аккаунт.
Артур Шевченко
26 августа 2023, 21:53
0
Лучше разберитесь с феном, с ним удобнее.
Zulya
26 августа 2023, 21:49
0
Спасибо!
Пока изучу как использовать AjaxFormitLogin без fenom для регистрации/авторизации.
Первый раз его использование не решило перезагрузку страницы после отправки формы.
Артур Шевченко
26 августа 2023, 21:07
1
+2
Если хотите разобраться то вот и вот история моих изысканий на эту тему. Всё это в итоге переросло в компонент AjaxFormitLogin, поддержку которого я прекратил, потому что решил полностью переписать JS и PHP, которые достались мне по наследству от AjaxForm. Однако весь функционал из AjaxFormitLogin перекочевал в новый компонент SendIt. Он полностью готов и отлажен. Сегодня я закончил написание документации. Думаю в понедельник или во вторник он станет доступен для скачивание через менеджер пакетов в modstore.