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

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

С нами с 02 сентября 2016; Место в рейтинге пользователей: #64
Александр Мельник
07 декабря 2021, 19:18
0
Хочу уточнить, а то не усну)
Как запомнить пользователя, если он заполнил и отправил все формы? На сайте необходимо реализовать 3 формы, которые пользователь должен в течение 1 года отправить.
Это что означает? Что нужно сохранить данные о пользователе только если между заполнением первой и третьей формы прошло не более 12 месяцев? Если заполнил первую форму в марте 2000го а третью в апреле 2001 го то уже не сохраняем?
Александр Мельник
04 декабря 2021, 19:08
0
Я наверное не совсем понимаю, чего хочет Игорь, у него в тексте нет конкретной задачи. Я понял так, что он спрашивает как на одной странице вывести и категории и товары в них. Плюс намекает, что у него есть товары, которые созданы в одной категории, но через возможности minishop2 привязаны к другой категории (товар 1 создан внутри Категории 1, но галочкой добавлен и в Категория3). Если вопрос в том, как это все отобразить на одной странице, то мне кажется должно сработать следующее
Вызов pdoResources, который будет отображать категории товаров, например указав в where шаблон категории товаров. В tpl например выводится название категории а потом вызывается msProducts куда в качестве родителя передан id категории.
Александр Мельник
04 декабря 2021, 14:02
0
как говорил герой одного сериала — открытия требуют экспериментов. Пробуйте, проверяйте, следите за тем что будет видеть и индексировать яндекс.
Александр Мельник
04 декабря 2021, 13:48
0
мне кажется это не будет работать для СЕО, но пробуйте.
Все таки поисковый бот не открывает сайт в браузере. Насколько я понимаю, для анализа страницы используется движок V8, работающий на nodejs. А значит не факт что там вообще будут coockies.
Александр Мельник
04 декабря 2021, 13:37
0
Опять же, я люблю в таких случаях чертить диаграммы, чтобы решить алгоритмическую задачу.
Александр Мельник
04 декабря 2021, 12:36
0
А что мешает в tpl которая выводит одну категорию вызвать msProducts и передать ему идентификатор этой категории?
Александр Мельник
04 декабря 2021, 12:34
0
Согласен с Артуром, расскажите чего вы хотите этим добиться, какую задачу решаете? Я вот читаю и мне на ум приходит, что вы пытаетесь сделать хлебные крошки, которые будут строиться не на основании того, где физически расположены товары, а на основании того, как до этого товара добрался пользователь.
Когда-то делал такое и помню что решал на javascript и localstorage
Александр Мельник
29 ноября 2021, 08:24
0
Мне кажется вам нужно и сами условия акции хорошо продумать. К примеру — человек покупает 3 товара и у самого дешевого ваш плагин поставит цену равную ноль. Но потом человек добавит в корзину еще 2 товара и у один из них еще более дешевый. Как быть — тому товару что обнулили возвращать изначальную стоимость, и теперь самому дешевому из пяти ставить нулевую? Плюс нужно позаботаться о том, что человек может и удалять товары из корзины, к примеру добавил три товара, один из них стал бесплатным, а потом удалил два с ценой и купил один товар за нулевую цену. Тоесть ваш плагин должен еще отрабатывать событие удаления товаров, изменения их количества и так далее.
Александр Мельник
24 ноября 2021, 19:17
+1
Скажите пожалуйста, а нет желания создать ответвление modx без extjs?
Пусть это будет ваша российская разработка, в которой хоть и хороший, но малопопулярный extJs заменен на vue? Чтобы так же скачал, установил, но у тебя админка на vue.
Мне кажется это сильно бы увеличило популярность modx. Я вот люблю modx потому что после джумлы (но ее я искренне ненавижу) он был у меня первый, я как дурак смотрел на эти квадратные скобочки и говорил, что в учебнике по php такого не было.
Но учить extJs вот прям не хочу. А vue3 относительно прост и перспективен.
Александр Мельник
23 ноября 2021, 09:23
0
Если непонятно написал, прошу тапками не бросать. Лучше спрашивайте.
так дела не делаются. Вы просите о помощи и от того как точно вы сформулируете вопрос будет зависеть и ваше уважение к коллегам и то захотят ли вам ответить. Выспрашивать, в чем же ваша проблема никто не будет, раз вы сами не потратили время на ее формулировку.
Александр Мельник
20 ноября 2021, 12:16
0
Кстати, а почему вы используете компонент recaptcha2, есть помоему специально для третьей версии отдельный компонент.
Александр Мельник
20 ноября 2021, 12:10
0
Пропускает конечно, этот (как и любой другой) инструмент не дает 100% гарантии. У меня тоже на более чем 20 сайтах установлена recaptcha3 и на каждом из этих сайтов есть спам. Ну вернее на 4 сайтах спама нет, но это не заслуга captcha а просто эти сайты забыты и Богом и спамерскими программами.
Совместно с captcha мудрю и другие способы защиты (скрытые поля, которые якобы спам бот должен все равно заполнить, варианты через js которые предложил Артур и прочее), но все это если и помогает то на пару недель, после чего спам продолжает идти как и раньше.
Опытным путем нашел «лучший для себя способ», однако применяю его там, где пишу сайт с нуля, а не на CMSках. Не использую тег form вообще для создания форм, верстаю все формы так, чтобы они не были заключены в
<form>
. Да это лишает нас события submit, но поскольку я все равно все свои формы обрабатываю собственными js обработчиками, то для меня это не проблема. Спам бот не определяет такие формы и не атакует их (возможно что на днях они научаться делать и это).
Александр Мельник
10 ноября 2021, 18:16
0
Дмитрий, дело в том, что modx использует для работы с базой данных так называемую ORM (object relational mapper) которая называется xPDO.
В таком случае все таблицы в базе представлены как некие сущности-объекты, работать с которыми нужно не прямыми SQL запросами, а методами xPDO.
Почитайте информацию, ссылки на которую дал Александр.
Александр Мельник
09 ноября 2021, 19:50
0
Если же для вас важно, чтобы и поисковая система видела только первое предложение, то да — немного сложнее. Нужно нагуглить как писать свои модификаторы и написать такой, который можно применить к текстовому выводу {$contents|showFirstSentence}
После этого в шаблоне прописать ссылку — показать еще. При клике по ней нужно совершить ajax запрос на ваш файл, в котором вы подключите объект modx по учебнику docs.modx.com/current/en/extending-modx/modx-class/loading-externally, каким то образом (через data атрибут ссылки ?) получите идентификатор ресурса, на котором идет запрос текста, получите весь текст (чтобы не заморачиваться с отрезанием первого предложения, которое уже есть на странице) и поместите этот текст на страницу, перезаписав первое предложение и кнопку — подробнее.
Александр Мельник
09 ноября 2021, 19:32
0
Все зависит от того зачем вы это делаете. Пока что выглядит так, что вам поможет javascript. Получить весь текст, найти кусок до точки, остальное скрыть. Добавить ссылку — подробнее, подвесить на нее событие, которое откроет остальной текст.
Но это будет иметь смысл, если вы не из СЕО соображений это делаете, потому что в исходном коде, который вернул сервер будет присутствовать весь текст.
Александр Мельник
05 ноября 2021, 17:33
0
В хостинге оказалась проблема.
Этот хостинг вообще самый своеобразный в моей коллекции)
www.1gb.ru/
он даже дурацкий masterhost переплюнул по странности.
Александр Мельник
05 ноября 2021, 17:06
0
пробовал, нет стабильно 302.
написал в поддержку хостинга, может что подскажут.
Александр Мельник
05 ноября 2021, 16:48
0
не назову себя знатоком команд модуля Rewrite но помоему нет.
Вот полное содержание .htaccess
RewriteEngine On
RewriteBase /

RewriteRule "/\.|^\.(?!well-known/)" - [F]

RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# The Friendly URLs part
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
Александр Мельник
05 ноября 2021, 16:36
0
причем результат не зависит от команд modRewrite
Если они корректные, то редирект происходит, но с 302
Использовал такой вариант
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
и все равно