Александр Мельник

Александр Мельник

С нами с 02 сентября 2016; Место в рейтинге пользователей: #52
17 июня 2021, 19:05
0
Какие шаги вы делали? Как пытались решить задачу?
Первое что приходит на ум мне, это создать новую таблицу в базе у которой будет два колонки — id ресурса и id пользователя.
Писать в эту таблицу данные, когда какой то пользователь оставляет комментарий.
В шаблоне страницы вызывать свой сниппет, который на вход будет принимать id ресурса и id пользователя и внутри делать запрос к новой таблице. Если count() от этого запроса будет больше 0 значит что этот пользователь уже «отметился» на этой странице. В такой случае выставляем в вашем сниппете какой то плейсхолдер.
Ниже в шаблоне на основании этого плейсхолдера решаем — стоит ли вообще вызывать тикетс или нет.
10 июня 2021, 19:33
0
мне крыть нечем, это очень правильное замечание.
10 июня 2021, 19:20
0
Разумная идея, спасибо.
Тут уже включаются нюансы проекта. Такой способ конечно хорош, но он не исключает того, что один пользователь получит законно ссылку на скачивание файла и передаст тому, кто такого права не имеет.
И тут уже будут юридические нюансы ответственности, если службой безопасности предприятия будет доказано, что файл был незаконно получен именно с сайта (то есть может быть скачан по прямой ссылке) то ответственность будет нести разработчик. Если же один человек скачал законно файл, а потом передал его по почте тому, кто доступа к файлу не имеет — будет отвечать сотрудник это сделавший.
10 июня 2021, 18:21
0
Существенно ниже при отдаче как статики, около 15 процентов нагрузки на процессора от nginx процесса.
Конечно сервер самый простенький, но зато на нем более показательные получаются результаты. Раз одноядерный процессор может уйти в 100 процентов от отдачи одного файла, то значит нельзя рассчитывать только на вертикальное масштабирование сервера.
Даже если установить 16 ядер то 20 пользователей, которые примерно одновременно запросят на выдачу файл — уложат и 16 ядер легко.
Будем думать, к счастью время есть для поиска оптимального решения, возможно напишу линукс демон, который будет в фоновом режиме пережимать видео и с гигабайта останется 300 мегабайт.
10 июня 2021, 17:04
0
Да, документация по функции readfile() не обманула, оперативной памяти расходуется мало в момент отдачи файла, но… процессор сервера кладет в 100%.
На сервере с такими характеристиками
«Процессор1 x 2.8 ГГц
Оперативная память 1 ГБ
NVMe 10 ГБ»
отдача даже одного файла приводит к полной загрузке процессора.
08 июня 2021, 20:59
0
Спасибо Сергей большое.
Я через поиск находил примерно эти же страницы, но просто работа над проектом еще не начата и я только вскользь ознакамливался с этой темой.
Набросал отдачу через file_put_content() и она работала хорошо, но я пробовал файлы около 100 мегабайт, а у меня предвидятся файлы с видеозаписями по 2-3 гигабайта, причем доступ к ним может быть сразу у сотни пользователей одновременно.
И иногда видеофайл нужно отдать на скачивание, а иногда его нужно запустить на воспроизведение в браузере и здесь я снова плаваю в теории, насколько я понимаю для воспроизведения в браузере как раз хорошо если буферизация включена.
В общем уже буду более детально вникать когда подпишем договор на эту работу.
08 июня 2021, 12:38
0
Вы проверьте работает ли вообще отправка почты, скорее всего сам sendex тут и не причем.
Например вот так
ilyaut.ru/cheats/checking-of-email-in-modx/
08 июня 2021, 09:42
0
Выкидывает данные сразу в выходной поток.
раз сразу идет в stdout то как отдаются большие файлы? Он же должен делить их как то на порции?
А по клику переадресация на нормальный файл.
В таком случае один пользователь может передать другому ссылку и тот скачает файл без проблем.
08 июня 2021, 09:20
0
Спасибо. Та примерно так я и планирую действовать, передавая заголовки ответа для скачивания и содержимое файла.
Однако не могу сказать что я точно и доподлинно понимаю как работает встроенная функция readfile() в интерпретаторе php.
Куда именно она читает, как работает с потоком, например видео.
Что будет если 10 пользователей запросят на скачивание видео файл размером 12 гигабайт.
07 июня 2021, 21:02
0
Неплохо было бы расписать, что такое Sharepoint или это настолько популярная вещь, что не знать о ней стыдно?

Расскажите как планируете делать показ и отдачу файлов пользователем? Мне кажется вы столкнетесь с той же проблемой, с которой вскоре столкнусь и я (правда не в рамках modx но все еще в рамках php)
Поделитесь своими мыслями?
Если файлы могут видеть и скачивать не все, то это означает что перед их отдачей нужно проверять наличие прав. А это значит что отдачу файла нельзя поручить просто вебсерверу, как обычную статику иначе при наличии прямой ссылки на файл кто угодно его скачает. А значит отдачу нужно производить уже через php, например читая file_get_contents() и отдавая file_put… Но я предвижу тут проблемы с файлами большого размера.
Как планировали поступить вы?
06 июня 2021, 21:39
0
Иван а подскажите пожалуйста, откуда можно узнать адрес репозитория minishop2 на гитхабе?
Или вообще узнать о его существовании?
Я не иронизирую, просто я долгие годы пользовался minishop устанавливая его как дополнение из адмники modx.
Открыл страницу
modstore.pro/packages/ecommerce/minishop2
не вижу там ни слова о гитхабе
В документации
docs.modx.pro/komponentyi/minishop2
тоже не вижу.
И только когда месяц назад вы попросили описать одну проблему не здесь на сайте, а в виде issue на гитхабе, только тогда вы дали ссылку.
06 июня 2021, 21:26
0
Ну ладно я несовременный, с этим я согласен.
Но вот согласится с тем, что на сайте-форуме посвященному modx и minishop человек довольно вежливо выражает свое пожелание, а его за это ругают, ставят дислайки — этого я понять не могу.
06 июня 2021, 13:52
0
Я ни в коем случае не говорю, что ими нужно пользоваться (хотя честно говорю не понимаю, почему говорят что это небезопасно. Версия 5,6 существовала чуть ни не десятилетие, вообще все что было написано на php за последние года использовало ее и это было нормально и безопасно.) Да это очень отлично, что буквально за пару лет php начал активно выпускать новые версии и развиваться и дорос до 8ки, но почему это делает 5,6 небезопасной?

Плюс считаю что документация должна отражать точные данные, ведь это как букварь для первоклассника (правда не уверен что сейчас в школах еще есть буквари).

Ну а в качестве примера, когда просто приходится использовать старые версии php могу привести то с чем сталкиваюсь я часто. Мы берем на обслуживание и доработку сайты, которые когда -то кто то разработал на скорую руку и оставил без поддержки. Такие сайты чаще всего делались супербюджетно и находятся на старых хостингах, где нет выбора версий языка к примеру. И либо заказчик не хочет никуда переезжать или же (буду откровенен) совсем не хочется просто так ради собственного развлечения переносить сайт на другой сервер, исправлять миллион возникший ошибок изза смены версии языка — если все отлично работает сейчас и на версии 5,6.

Конечно когда начинаешь разработку нового сайта на modx то уже нет смысла выбирать 5,6, тут я с вами совершенно согласен.
05 июня 2021, 20:35
0
Даже в официальной англоязычной документации написано что php 5.6 поддерживается.
docs.modx.com/current/en/getting-started/server-requirements
и даже 5.3
MODX 2.x requires PHP 5.3.3 or higher,
05 июня 2021, 20:19
0
использование гитхаб равно как и git не является чем-то сто процентно необходимым.
Это не более чем инструмент и использовать его или нет каждый решает сам.
А вот форумы! еще с 1991 года придуманы как раз для обсуждений.
05 июня 2021, 19:46
0
Не соглашусь с теми, кто наставил минусов и говорит что человек не прав.
Мы с вами находимся на сайте-форуме, посвященном modx. Автор этого сайта — создатель программы minishop.
Зачем отсылать кого-то куда то на гитхаб (да, многие разработчики не пользуются гитхабом, уж простите имеем право). Лучшего места чем форум (будем откровенны, который кормится вокруг минишопа) не придумать, поэтому в словах автора поста нет ничего отрицательного.
29 мая 2021, 22:16
0
как вариант — создайте поддомен, вместо страницы.
camera.site.ru
поддомены не защищаются стандартными сертификатами, значит там должно работать.
28 мая 2021, 22:56
0
вы хотите чтобы одна страница вашего сайта открывалась по http?
ну для начала, так будет всегда по умолчанию. Если вы устанавливаете на сайт ssl сертификат, то после этого страница открывается так
http:/site.com/page
и так
site.com/page
Обычно чтобы избежать открытия по http настраивают редирект.
Если вы при установленном ssl сертификате и настроенном редиректе хотите добится чтобы одна из страниц открывалась по http вам необходимо изучать настройки вашего веб сервера — apache или nginx
28 мая 2021, 22:41
0
о чем вы вообще?
Что значит для одной страницы сделать http?
http это протокол связи прикладного уровня в сетевой модели osi
Страница в modx — это ресурс имеющий свой uri

Что вы хотите то?
28 мая 2021, 21:21
+1
Вы очень сумбурно описали условия задачи. Чего вы хотите добиться?
Обычно когда «мат. часть я знаю, документацию изучил.» все работает. Если не работает — учи матчасть и документацию.
В общем дано:

— Минишоп2
— Категория товаров
— Группа пользователей с привилегией section_add_children
— Группа ресурсов с «данной» категорией товаров
— Сниппет ms2form
у вас установлен пакет minishop2, Вы в админке создали категорию товаров.
Вы создали через админ панель группу пользователей. Вы знаете что нахождение пользователя в группе не дает ему привилегии? Права, которые получит пользователь, будут определяться с помощью отведённой ему в этой группе роли.
Что вообще такое — группа ресурсов с «данной» категорией товаров??
Вы вызываете
{$_modx->runSnippet('!ms2form', [
    'parent' => $.get.mp,
])}
где? Зачем? с Какой целью?
<blockquote>я назначил эту политику: TicketSectionPolicy</blockquote>
причем тут Tickets к minishop?