Артур Шевченко

Артур Шевченко

Был в сети 1 час назад
Заказы принимаю
Отправить деньги
Какая разница на какой странице выводится футер, если баннеры хранятся в ресурсе с id = 1? Рассмотрим такой пример. У тебя есть две комнаты, в комнате с номером 1 стоит тумбочка с ящиками. Если тебе что-то нужно из неё взять, когда ты находишься в комнате 2, ты что будешь делать: искать тумбочку в комнате 2 (её там нет по условию) или пойдёшь в комнату 1?
Чанк будет работать и работает на любой странице, НО баннеры у тебя в ресурсе 1, а ты проверяешь, условно, есть ли баннер в ресурсе 2. И раз блок выводится, значит баннер в ресурсе 2 есть. Чтобы работало корректно проверять надо так
{if (1 | resource: 'Banner_footer_img_01')}...{/if}
Синтаксис конечно лучше не смешивать, но вряд ли дело в этом. Скорее всего, дело в том, что баннеры берутся из ресурса с id = 1, а ты проверяешь поле текущего ресурса. И вероятно для текущего ресурса условие ложно.
Ты максимально абстрактно описываешь функционал. Что значит «добавить сайт»? Что за «запросы»? Что с этими данными будут делать в последствии: показ, фильтрация, отправка?

От ответов на эти вопросы зависит то, как лучше организовать хранение.
Часть данных храниться в modx_user_attributes. Но это наверное не очень правильно туда лишние данные сохранять.
А что в этом неправильного? Атрибуты пользователя могут быть каким угодно.

Лучше это через компоненты все сделать?
Да, так как компоненты имеют документацию и тот, кто после тебя будет работать с сайтом сможет к ней обратиться и быстрее понять как и что работает.
как сделать персональную страницу для каждого пользователя?
Если для всех пользователей должны быть доступны одинаковые функции, то страница должна быть одна и задача сводится не к генерации индивидуальных страниц, в к загрузке персональных данных для авторизованного пользователя.
Для вывода данных пользователя в Modx есть модификатор user. В pdoTools есть сниппет pdoUsers. Можно написать свой сниппет.
Так же очевидно, что кроме стандартных полей требуется хранить ещё какие-то данные пользователя. Для создания полей под эти данные имеет смысл использовать компонент ExtraFields версии не старше 2.0.3.
Когда организуешь место для хранения, нужно будет организовать отправку данных на сервер и обработку ответов. Для этого удобнее всего использовать компонент SendIt.

В целом этих трёх компонентов достаточно для создания личного кабинета любой сложности.
1. Написать свой класс оплаты, который сгенерирует ссылку на нужный ресурс.
2. Написать свой класс-обработчик заказа, который унаследует все методы стандартного и переопределит метод submit().
3. В JS проверять наличие в get-параметрах ключа msorder и делать редирект из JS.
4. Подумать над задачей ещё и раз и прийти к выводу, что данные любого ресурса можно вывести на любой странице, если известен ID ресурса.