OldWarrior: Комментарии

Главные вкладки

10 октября 2021 в 0:13

Да вроде бы не похоже.

Тема админки стандартная, seven для D9. Кастомные скрипты для админки - да, подключаются, но только на специфических роутах/формах, для профиля пользователя ничего такого нет. Да и для другого любого пользователя всё работает. Например, могу зайти под другим админом (не uid = 1) и что угодно вбить/сохранить в полях своего профиля. Включая пресловутые чекбоксы - они тоже работают.

8 октября 2021 в 13:06

Продолжение истории.

К сожалению, решение вышеописанной проблемы с чекбоксами и категорическим отказом обнаруживать роли у uid = 1 так и не нашёл.

2 октября 2021 в 0:21

Reisor wrote: Меня больше интересует реализация доступа к контенту именно после оплаты. Материал ведь динамический.

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

1 октября 2021 в 17:21
1

1. И Юкасса и Робокасса позволяют после оплаты делать редирект на произвольный URL (success url). Но в обоих случаях пользователь должен явно нажать кнопку "Вернуться на сайт".

30 сентября 2021 в 15:01
1

Artalek wrote: Правда так и не понял почему TrustedRedirectResponse перестал работать, вроде как было всё норм около года

Так есть же подсказка:

Artalek wrote: LogicException: The controller result claims to be providing relevant cache metadata, but leaked metadata was detected. Please ensure you are not rendering content too early.

26 сентября 2021 в 21:28

adano wrote: профиль не просто так намекнул... Думаю, где-то там твой баг.

Да тоже стандартный профиль. К сожалению, уже не могу сказать, наблюдалась ли эта проблема сразу после установки. Обнаружил только прошлой ночью.

adano wrote: Скорее всего, тут где-то ответ или в связанных issues:
https://www.drupal.org/project/drupal/issues/540008

26 сентября 2021 в 20:35

ivnish wrote: Я не намекаю. Я недоумеваю

Ну что, бывает и так. Давно не занимался вопросами ролей, в частности - особенностями получения ролей для uid = 1.

26 сентября 2021 в 14:02

ivnish wrote: Это абсолютно ни на что не влияет.

Да понимаю, что не влияет. ) Но тем не менее hasRole(), как я писал выше, у меня таки работал ранее. Собственно, задача была добиться именно обнаружения соответствующих ролей у UID = 1.

ivnish wrote: Для новичков да. Странно, что у тебя такие же чувства.

Ну да, значит, я новичок, раз уж испытываю какие-то странные чувства. Вы как бы второй раз уже намекаете на это. Что ж мне теперь делать-то?

26 сентября 2021 в 13:34

ivnish wrote: Да. Юзер с id = 1 всегда имеет все права на всё и это не изменить. Странно, что ты этого не знал

Спасибо за подтверждение. Мне и самому странно. Но:

1. В своё оправдание могу заметить, что в каких-то предыдущих версиях D (и, по-моему, ещё даже в 8.x) чекбоксы у uid = 1 по всем ролям всё же стояли. Понятно, что у него и так все права по умолчанию.

26 сентября 2021 в 2:05

PS. Продолжение истории.

Через час после написания топика обнаружил, что проверка роли а-ля $user->hasRole('administrator') по-прежнему не работает. Я был введён в заблуждение другим условием (оно шло выше и в код примера не попало).

26 сентября 2021 в 0:31

Вариант "нейросеть по-русски" - просто нанять десяток фрилансеров за 20 руб. в час копейки. Напишут сколько угодно словесного мыла-шлака на заданную тему. И даже учить/осваивать/кодировать ничего не нужно, удобно жыж.

20 сентября 2021 в 18:46

VasyOK wrote: https://www.drupal.org/project/views_role_based_global_text модуль проблему решает, но он какой то желтый. И пишет ошибку при drush cim, хотя в результате все работает.

VasyOK wrote: Но мне надо на фронте видеть. Так что для чего-то другого.

20 сентября 2021 в 11:50

Ещё раз посмотрел код андеда.
Корзина и не должна обновляться. Всё, что он делает - просто не уходит с текущей страницы (т.е. добавляет товар аяксово), но не обновляет ни страницу, ни блок.

Можете попробовать допилить $response, чтобы программно получать/грузить блок корзины, рендерить его и результат рендеринга менять через (например) ReplaceCommand(). Или если это проще, то полностью обновлять текущую страницу, но по-моему для этого нужно ещё писать кастомный метод jQuery.

20 сентября 2021 в 11:30

Babich wrote: Добавил
Вот запись журнала:

Error: Class 'MessengerInterface' not found

Слушайте, ну так не годится Smile
Вы же уже поняли, что нужно указывать путь к пространству имён класса. Поищите на drupal.org хотя бы ради интереса имя класса MessengerInterface и также добавьте для него пространство имён.

20 сентября 2021 в 11:22

Только сообразил, что в примере андеда действительно выводится всплывающее окно.

В общем, видимо, опять же причина в пространствах имён. К вышеуказанному коду добавьте ещё два определения:

20 сентября 2021 в 11:08

Babich wrote: Только вот количество товаров в блоке корзины не обновляется ajax.

А в журнале есть что-то интересное? ©

Babich wrote: И я так понимаю всплывающее окно должно появляться, что товар в корзину добавлен.

Не факт. Всякие всплывашки наруливаются отдельными модулями.
Либо можете в $response добавить AlertCommand (гуглите) для вывода типичного alert().

20 сентября 2021 в 10:57

Babich wrote: _cart_dc_form_commerce_order_item_add_to_cart_form_alter() must be an instance of FormStateInterface, instance of Drupal\Core\Form\FormState given, called in /ho

Вы не указали пространство имён для класса  FormStateInterface .

В начале файла добавьте:

20 сентября 2021 в 9:40

Rama wrote: Хочу понять, почему в адресной строке после обновления страницы то появляется, то исчезает index.php.?
И почему в середине, domen.ru/index.php./abra-katabra ?

Не должно такого быть в принципе на D9. На всякий случай имеет смысл посмотреть .htaccess и сверить с оригинальным "из коробки". Я бы ещё задумался о вирусах, на клиентской машине в том числе.

20 сентября 2021 в 9:24

Babich wrote: Не знаю как выполнить замечания.

Собственно, в примере андеда по вашей ссылке эти "замечания" уже реализованы. Он как раз и поясняет, зачем у него в коде заменяется #id и выставляется selector. Т.е. если вы использовали его код полностью, то ничего больше делать не нужно.

Babich wrote: Кнопки добавления в корзину пропали после добавления кода.