Всего 125 673 комментария

Николай Савин
11 июня 2021, 19:36
+1
Нет процессоры тут не при чем.
Вся магия в плагине на который вы ссылаетесь и модифицированном методе get класса msproduct.class.php
Евгений Лазарев
11 июня 2021, 19:25
0
Делал на основе modextra. Там автоматическое создание классов. Да через getObject все показывает. Думал может в processor связка какая но нет.
Николай Савин
11 июня 2021, 19:20
+1
Вы только XML таблицу сделали или классы под каждую таблицу тоже добавили?
Через $modx->getObject(hdOrder) записи доступны?
Николай Савин
11 июня 2021, 19:18
0
Можно еще написать Issue на github и мне с @Иван Бочкарев в личку. Тогда точно вопрос решится.
Ответ такой же какой и вопрос — посмотреть как это сделано в miniShop2
Евгений Лазарев
11 июня 2021, 15:46
0
Уважаемые разработчики. Вопрос не совсем по теме, но все же. Вдруг кто откликнется. Как из своей таблицы добавить данные в $_modx->resource, как это сделано в minishop2? Если что вот ссылка на вопрос. Очень не хватает компетентного ответа. modx.pro/help/21936
Евгений Лазарев
11 июня 2021, 14:58
0
Нет. Это совершенно не то.
Sparklingman
11 июня 2021, 13:54
0
Добрый день! Задача стоит такая. В комментах Tickets нужно чтобы пользователь опубликовал всего один комментарий в одном ресурсе, и больше не смог, и форму убираем. Как мне прописать в снипетах Tickets? Есть советы? А то голову ломаю)
Uladzislau
10 июня 2021, 23:43
0
[2021-06-10 23:42:59] (ERROR @ /home/######/public_html/core/components/msimportexport/model/msimportexport/msie.class.php: 5222) Ошибка для create:
Array
(
[id] =>
[article] => 111
[pagetitle] => Test current
[options-pets_size] => 1
[options-pets_age] => 1
[options-testimony] => 1
[options-taste] => 1
[options-appointment] => 1
[options-material] => 1
[options-structure] => 1
[options-petheight] => 1
[options-petweight] => 1
[options-features] => 1
[options-length] => 1
[options-wooltype] => 1
[options-season] => 1
[options-releaseform] => 1
[options-for_whom] => 1
[options-petview] => 1
[options-aquavol] => 1
[content] => 1
[vendor] => 19
[options-importer] => test
[made_in] => test
[price] => 100
[old_price] =>
[new] => 1
[popular] => 1
[favorite] => 1
[parent] => 3
[template] => 3
[published] => 1
[weight] => 10
[options-weights] => Array
(
[0] => 10
[1] => 20
[2] => 30
)

[class_key] => msProduct
[context_key] => web
[tvs] =>
)
Uladzislau
10 июня 2021, 23:17
0
Message:
Array
(
[0] => uri: Ресурс с ID 307 уже использует URI test-current. Пожалуйста, введите уникальный псевдоним или используйте «Заморозить URI», чтобы вручную заменить его.
[1] => alias: Ресурс с ID 307 уже использует URI test-current. Пожалуйста, введите уникальный псевдоним или используйте «Заморозить URI», чтобы вручную заменить его.
)

добавил новый с уникальным id и все равно тоже самое! Как решить проблему?
Uladzislau
10 июня 2021, 23:05
0
Array
(
[0] => uri: Ресурс с ID 306 уже использует URI test-current. Пожалуйста, введите уникальный псевдоним или используйте «Заморозить URI», чтобы вручную заменить его.
[1] => alias: Ресурс с ID 306 уже использует URI test-current. Пожалуйста, введите уникальный псевдоним или используйте «Заморозить URI», чтобы вручную заменить его.
)

таже самая ошибка. товар удалил кэш почистил. id убрал чтоб новый товар заполняло с новыми id.
может кто уже решил проблему?
Сергей Шлоков
10 июня 2021, 19:50
+2
Вот простейший сниппет, который вызывается на странице modx.local/download?file=dl.txt
if ($modx->user->isAuthenticated('web')) {
    $file = basename($_GET['file']);
    if (!empty($file) && file_exists(MODX_BASE_PATH . "assets/files/{$file}")) {
        header("Location: http://modx.local/assets/files/{$file}");
        exit();
    } else {
        header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found');
    }
} else {
    return 'Иди отседова.';
}
Скачивается только залогиненным пользователем. Гостю отворот-поворот.
Александр Мельник
10 июня 2021, 19:33
0
мне крыть нечем, это очень правильное замечание.
Сергей Шлоков
10 июня 2021, 19:31
+1
А как можно увидеть прямую ссылку? Ты её формируешь на странице download. Пользователь её не видит. А когда файл отдаётся на скачивание, то ссылка тоже не светится.

Вот для примера файл лежит в modx.local/assets/files/.


Т.е. перед тем, как отдать файл, ты проверяешь права. Так что левый пользователь не сможет загрузить его.
Александр Мельник
10 июня 2021, 19:20
0
Разумная идея, спасибо.
Тут уже включаются нюансы проекта. Такой способ конечно хорош, но он не исключает того, что один пользователь получит законно ссылку на скачивание файла и передаст тому, кто такого права не имеет.
И тут уже будут юридические нюансы ответственности, если службой безопасности предприятия будет доказано, что файл был незаконно получен именно с сайта (то есть может быть скачан по прямой ссылке) то ответственность будет нести разработчик. Если же один человек скачал законно файл, а потом передал его по почте тому, кто доступа к файлу не имеет — будет отвечать сотрудник это сделавший.
Сергей Шлоков
10 июня 2021, 18:48
0
Ясно. Тогда я бы сделал так — для проверенных пользователей выводил бы список файлов. Кликнул «скачать» — идёт переадресация на страницу site.ru/download?file=filename. На ней проверяются права, счётчик и идёт переадресация на статический файл. Nginx нужно настроить на скачивание файлов вместо отдачи. Таким образом, PHP не используется.
Проверил у себя на Apache, работает.
Александр Мельник
10 июня 2021, 18:21
0
Существенно ниже при отдаче как статики, около 15 процентов нагрузки на процессора от nginx процесса.
Конечно сервер самый простенький, но зато на нем более показательные получаются результаты. Раз одноядерный процессор может уйти в 100 процентов от отдачи одного файла, то значит нельзя рассчитывать только на вертикальное масштабирование сервера.
Даже если установить 16 ядер то 20 пользователей, которые примерно одновременно запросят на выдачу файл — уложат и 16 ядер легко.
Будем думать, к счастью время есть для поиска оптимального решения, возможно напишу линукс демон, который будет в фоновом режиме пережимать видео и с гигабайта останется 300 мегабайт.
Сергей Шлоков
10 июня 2021, 17:54
+1
Вроде норм. Подсмотреть логику скачиваний можно в FileAttach.
Сергей Шлоков
10 июня 2021, 17:49
0
А если для сравнения отдать как статику? Мне кажется, для раздачи больших файлов сервер слабоват.