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

Артур Шевченко
31 августа 2023, 13:31
0
Админ загружает файл на сервер, потом в карточке пользователя указывает путь к загруженному файлу, в ЛК ты выводишь это значение в тэг
<a href="#" download></a>
Можно использовать дополнительные поля — extended, или установить ExtraFields и расширить модель пользователя.
max
max
31 августа 2023, 12:21
0
Вот возможно есть способ написать такой скрипт без использования map
Николай Савин
31 августа 2023, 12:19
0
В таком случае конечно проблема где-то еще. Причем вряд ли на сайте.
Алексей Андреев
31 августа 2023, 12:09
0
Ну по логике компонент обращается по такому адресу:
assets/components/mspreceiptaccount/payment/receiptaccount.php?InvId=320
Где 320 — это ID заказа.
Т.е. он смотрит состав заказа и данные получателя, генерирует на этой основе pdf-файл типа счёта на оплату.
320 заказов — это не много на мой взгляд. Но для проверки теории почистил таблицы modx_ms2_orders, modx_ms2_order_addresses, modx_ms2_order_products, оставив там инфу только о последних двух заказах. Но это тоже не помогает…
Николай Савин
31 августа 2023, 12:08
0
Если не ошибаюсь это невозможно в случае modhost. Уж точно не через map
max
max
31 августа 2023, 10:53
0
А есть идеи (подсказка), как этот скрипт использовать на modhost.pro? Конструкцию map нужно запихивать в http {}, а на modhost.pro есть доступ только к редактированию директивы server
Zulya
30 августа 2023, 20:40
0
Даже админ не может голосовать комментарии, добавить в избранное.
Но комментирование работает и для авторизованных пользователей и админов, что и удивляет. Как-то не логично. Если комментировать могут, но почему не могут оценивать комментарии и тикеты?
Когда админ оценивает комментарий, то выходит ошибка У вас недостаточно прав для этого действия.
Я даже переустановила компонент Tickets. Но не помогает.
Николай Савин
30 августа 2023, 18:49
0
Эта ошибка может возникать в случае большого, длительного запроса. Серверу Mysql просто не хватает времени обработать запрос. Что за запрос я в вашем случае не понимаю, но предположу, что объем данных, к которым обращаетесь — становится с годами слишком большим.
Возможно пора отрезать старые данные.
Zulya
30 августа 2023, 16:48
0
Добрый день.
В списке контекстов только web, а mgr нет.
Дело в том, что авторизованный когда ставить оценку в комментариях Tickets как тут например, выходит ошибка
permission_denied_processor
.
А в -> Редактировать группу пользователей -> Права доступа -> Доступ к контекстам -> Политика доступа указана TicketUserPolicy.
Можете подсказать, как исправить ошибку?
Алексей
30 августа 2023, 15:57
0
Здравствуйте!
Да, я уже понял, что надо через cron. Спасибо большое!
Dan
Dan
30 августа 2023, 15:54
0
Во первых, вам не нужно устанавливать новое соединение с БД, если таблица находится внутри той, что привязана к сайту на Modx. Достаточно выполнить SQL-запрос.
Во вторых, если вы помимо того, что создали сниппет, еще и добавили его вывод в шаблон, то каждое открытие страницы будет запускать сниппет. Поэтому не надо его нигде вызывать.
Установите бесплатное дополнение Scheduler или CronTabManager с modstore, добавьте задание на запуск сниппета раз в сутки и все.
Артур Шевченко
30 августа 2023, 13:58
0
Для этого нужна существенная доработка. Проблема в том, что скидки могут быть самыми разными: ограниченными по времени, по опциям. Особенно сложно с опциями, потому что учитываются те опции, которые переданы в корзину.
Константин Ильин
30 августа 2023, 13:53
0
Хотя бы вывод(where) для начала:) сразу куплю.
фильтрацию след этапом
Артур Шевченко
30 августа 2023, 13:49
0
С msOptionsPrice2 компонент работает. Насчёт вывода товаров со скидкой и возможности фильтрации обещаю подумать.
Константин Ильин
30 августа 2023, 13:02
0
Так то вроде компонент многое может, устраивает, хочется купить, но вот вопрос в выводе товаров со скидкой и работы его с msOptionsPrice2, так уже учитывая mFilter2(тут пока вопрос следующего дня)

Заморочиться это как?)
Алексей Андреев
30 августа 2023, 12:31
0
Компонент работал на протяжении 1-2 года. А теперь вдруг неожиданно перестал отдавать файлы — бесконечно долго висит загрузка страницы.
В логах нечто такое:
HY000
    [1] => 2006
    [2] => MySQL server has gone away
Хостинг Timeweb, обратился в техподдержку, типа что это ваш MySQL сервер падает. Но они отмазываются, говорят, обращайтесь к разработчику сайта, мы не при делах.
Что-нибудь можно сделать?
Менял версию php, переустанавливал компонент — не помогло…
Dan
Dan
30 августа 2023, 10:31
+1
Редактировать группу пользователей -> Права доступа -> Доступ к контекстам.
Если у вас в списке нет политики для контекста mgr, то все норм.
Сергей С
29 августа 2023, 11:35
0
Походу я понял в чем проблема.Но не понимаю откуда она берется. К примеру загружаем фото путь к которому /assets/images/resources/91084/.jpg соответственно генерируются миниатюры в thumb, small. Запускается плагин:
$q = $modx->newQuery('msResourceFile', array('url' => '/assets/images/resources/91084/.jpg'));
$total = $modx->getCount('msResourceFile', $q);
$modx->log(1, print_r($total, 1));
Когда получаю результаты $total начинает считаться только с генерации thumb. У базового файла так и стоит $tota 0. Довольно странно.Как и В результатах по ним ниже
Полностью код так выглядит
q = $modx->newQuery('msResourceFile', array('url' => '/assets/images/resources/91084/.jpg'));
			$this_path = $path_parts['dirname'].''.$path_parts['basename'];
			$modx->log(1, print_r($this_path, 1));//В логи пишет как и должен /assets/images/resources/91084/.jpg'
			$total = $modx->getCount('msResourceFile', $q);
			$modx->log(1, print_r($total, 1));
			$q->sortby('resource_id', 'ASC');
			$q->sortby('rank', 'DESC');
			$q->limit(99);
			$resources = $modx->getIterator('msResourceFile',$q);
			foreach ($resources as $resource) {
				$modx->log(1, print_r('обход',1));
				$modx->log(1, print_r('____________________________________________', 1));
				$modx->log(1, print_r('$resource->url'.$resource->url, 1));
				$modx->log(1, print_r('$resource->file'.$resource->file, 1));
				$modx->log(1, print_r('____________________________________________', 1));
			}
Результат:
/assets/images/resources/91084.jpg
0

/assets/images/resources/91084/thumb.jpg
1
обход
____________________________________________
$resource->url/assets/images/resources/91084/.jpg
$resource->file.jpg
____________________________________________

/assets/images/resources/91084/small.jpg
1
обход
____________________________________________
$resource->url/assets/images/resources/91084/.jpg
$resource->file.jpg
____________________________________________
Думаю что когда передаю в переменной «url» по каждому файлу, он его так же пропускает просто т.к. этот файл только что создан. и сможет его найти в таблице только при запуске плагина на другом файле. Странно…
Сергей С
29 августа 2023, 10:34
0
1. Да, это сразу исправил выырезал из path все до assets и оставил '/assets/images/resources/91084/.jpg'. Проверял в логи выводит все верно
2.Этой строки нет больше, ошибку сразу исправил с => не работает это выдает ошибку
[2] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND `msResourceFile`.`url` = '/assets/images/resources/91084/thumb/.jpg' ) ORDE' at line 1
3Хорошо. ТОлько пока не работает в любом случае.
$q = $modx->newQuery('msResourceFile', array("url" => $this_path));
вот в этой строке не берет из переменной данные никак
Николай Савин
29 августа 2023, 10:12
+1
Я бы сказал, что твоя проблема в том, что не хочешь сам пошагово разбирать, что пишешь, как устроена работа с файлами в PHP. Проще спросить, чтобы другие думали. А другим это не всегда удобно.
Давай по порядку.
1. В таблицу пишется не абсолютный путь файла, а относительный. Не удивительно, что применяя MODX_ASSETS_PATH ты ничего не находишь. Используй просто /assets/ или если хочешь MODX_ASSETS_URL.
2. Это что за запись такая? Откуда такой синтаксис?
$q->where(array("url" == $this_path));
Правильно будет вот так

$q->where(array("url" => $this_path));

3. Используй getIterator вместо getCollection этот метод потребляет меньше памяти.