Тема админки стандартная, seven для D9. Кастомные скрипты для админки - да, подключаются, но только на специфических роутах/формах, для профиля пользователя ничего такого нет. Да и для другого любого пользователя всё работает. Например, могу зайти под другим админом (не uid = 1) и что угодно вбить/сохранить в полях своего профиля. Включая пресловутые чекбоксы - они тоже работают.
Reisor wrote: Меня больше интересует реализация доступа к контенту именно после оплаты. Материал ведь динамический.
Если речь о платном доступе к контенту, то иного выхода, как писать выходные данные этих ваших нумерологических расчётов в какую-то сущность, нет. Поскольку success url в обоих случаях - только URL возврата после оплаты (инициируемый кликом по кнопке возврата) и не гарантирует, что переход на этот URL был осуществлён именно с платёжной системы.
1. И Юкасса и Робокасса позволяют после оплаты делать редирект на произвольный URL (success url). Но в обоих случаях пользователь должен явно нажать кнопку "Вернуться на сайт".
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.
Да понимаю, что не влияет. ) Но тем не менее hasRole(), как я писал выше, у меня таки работал ранее. Собственно, задача была добиться именно обнаружения соответствующих ролей у UID = 1.
ivnish wrote: Для новичков да. Странно, что у тебя такие же чувства.
Ну да, значит, я новичок, раз уж испытываю какие-то странные чувства. Вы как бы второй раз уже намекаете на это. Что ж мне теперь делать-то?
ivnish wrote: Да. Юзер с id = 1 всегда имеет все права на всё и это не изменить. Странно, что ты этого не знал
Спасибо за подтверждение. Мне и самому странно. Но:
1. В своё оправдание могу заметить, что в каких-то предыдущих версиях D (и, по-моему, ещё даже в 8.x) чекбоксы у uid = 1 по всем ролям всё же стояли. Понятно, что у него и так все права по умолчанию.
Через час после написания топика обнаружил, что проверка роли а-ля $user->hasRole('administrator') по-прежнему не работает. Я был введён в заблуждение другим условием (оно шло выше и в код примера не попало).
Вариант "нейросеть по-русски" - просто нанять десяток фрилансеров за 20 руб. в час копейки. Напишут сколько угодно словесного мыла-шлака на заданную тему. И даже учить/осваивать/кодировать ничего не нужно, удобно жыж.
Ещё раз посмотрел код андеда.
Корзина и не должна обновляться. Всё, что он делает - просто не уходит с текущей страницы (т.е. добавляет товар аяксово), но не обновляет ни страницу, ни блок.
Можете попробовать допилить $response, чтобы программно получать/грузить блок корзины, рендерить его и результат рендеринга менять через (например) ReplaceCommand(). Или если это проще, то полностью обновлять текущую страницу, но по-моему для этого нужно ещё писать кастомный метод jQuery.
Слушайте, ну так не годится
Вы же уже поняли, что нужно указывать путь к пространству имён класса. Поищите на drupal.org хотя бы ради интереса имя класса MessengerInterface и также добавьте для него пространство имён.
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 .
Rama wrote: Хочу понять, почему в адресной строке после обновления страницы то появляется, то исчезает index.php.?
И почему в середине, domen.ru/index.php./abra-katabra ?
Не должно такого быть в принципе на D9. На всякий случай имеет смысл посмотреть .htaccess и сверить с оригинальным "из коробки". Я бы ещё задумался о вирусах, на клиентской машине в том числе.
Собственно, в примере андеда по вашей ссылке эти "замечания" уже реализованы. Он как раз и поясняет, зачем у него в коде заменяется #id и выставляется selector. Т.е. если вы использовали его код полностью, то ничего больше делать не нужно.
Babich wrote: Кнопки добавления в корзину пропали после добавления кода.
D9: А это нормально, что для uid = 1 не отображаются чекбоксы ролей?
Да вроде бы не похоже.
Тема админки стандартная, seven для D9. Кастомные скрипты для админки - да, подключаются, но только на специфических роутах/формах, для профиля пользователя ничего такого нет. Да и для другого любого пользователя всё работает. Например, могу зайти под другим админом (не uid = 1) и что угодно вбить/сохранить в полях своего профиля. Включая пресловутые чекбоксы - они тоже работают.
D9: А это нормально, что для uid = 1 не отображаются чекбоксы ролей?
Продолжение истории.
К сожалению, решение вышеописанной проблемы с чекбоксами и категорическим отказом обнаруживать роли у
uid = 1
так и не нашёл.Оплата с редиректом
Если речь о платном доступе к контенту, то иного выхода, как писать выходные данные этих ваших нумерологических расчётов в какую-то сущность, нет. Поскольку success url в обоих случаях - только URL возврата после оплаты (инициируемый кликом по кнопке возврата) и не гарантирует, что переход на этот URL был осуществлён именно с платёжной системы.
Оплата с редиректом
1. И Юкасса и Робокасса позволяют после оплаты делать редирект на произвольный URL (success url). Но в обоих случаях пользователь должен явно нажать кнопку "Вернуться на сайт".
В чем причина может быть в предстовлении отоброжается одно а на главной другое
Думаю, вам нужно как-то более детально описать ситуацию )
Не работает TrustedRedirectResponse
Так есть же подсказка:
Как получить id товара(commerce) по значению поля?
Метод
::entityQuery()
возвращает множество (т.е. массив) идентификаторов.Как получить id товара(commerce) по значению поля?
Ещё раз пересмотрел ваш код. Кажется, проблема проще. Добавьте
reset()
.Как получить id товара(commerce) по значению поля?
Получайте вариации товара, а не товар.
D9: А это нормально, что для uid = 1 не отображаются чекбоксы ролей?
Да тоже стандартный профиль. К сожалению, уже не могу сказать, наблюдалась ли эта проблема сразу после установки. Обнаружил только прошлой ночью.
D9: А это нормально, что для uid = 1 не отображаются чекбоксы ролей?
Ну что, бывает и так. Давно не занимался вопросами ролей, в частности - особенностями получения ролей для
uid = 1
.D9: А это нормально, что для uid = 1 не отображаются чекбоксы ролей?
Да понимаю, что не влияет. ) Но тем не менее hasRole(), как я писал выше, у меня таки работал ранее. Собственно, задача была добиться именно обнаружения соответствующих ролей у UID = 1.
Ну да, значит, я новичок, раз уж испытываю какие-то странные чувства. Вы как бы второй раз уже намекаете на это. Что ж мне теперь делать-то?
D9: А это нормально, что для uid = 1 не отображаются чекбоксы ролей?
Спасибо за подтверждение. Мне и самому странно. Но:
1. В своё оправдание могу заметить, что в каких-то предыдущих версиях D (и, по-моему, ещё даже в 8.x) чекбоксы у
uid = 1
по всем ролям всё же стояли. Понятно, что у него и так все права по умолчанию.D9: А это нормально, что для uid = 1 не отображаются чекбоксы ролей?
PS. Продолжение истории.
Через час после написания топика обнаружил, что проверка роли а-ля
$user->hasRole('administrator')
по-прежнему не работает. Я был введён в заблуждение другим условием (оно шло выше и в код примера не попало).Хочу сделать самонаполняемый сайт по ключевым словам.
Вариант "нейросеть по-русски" - просто нанять десяток фрилансеров за
20 руб. в часкопейки. Напишут сколько угодно словесного мыла-шлака на заданную тему. И даже учить/осваивать/кодировать ничего не нужно, удобно жыж.Как пользователю перейти из одной общедоуспной роли в другую не меняя логин?
Человеческиепрограммные решения, разумеется, не канают? Хотел было предложить...Помогите избавиться от ошибки
"Оно" пишет, что не может создать файл .htaccess, вообще-то.
Как в подвале views вывести текст видный только админу.
Добавить в корзину ajax Commerce 2
Ещё раз посмотрел код андеда.
Корзина и не должна обновляться. Всё, что он делает - просто не уходит с текущей страницы (т.е. добавляет товар аяксово), но не обновляет ни страницу, ни блок.
Можете попробовать допилить $response, чтобы программно получать/грузить блок корзины, рендерить его и результат рендеринга менять через (например) ReplaceCommand(). Или если это проще, то полностью обновлять текущую страницу, но по-моему для этого нужно ещё писать кастомный метод jQuery.
Добавить в корзину ajax Commerce 2
Слушайте, ну так не годится
Вы же уже поняли, что нужно указывать путь к пространству имён класса. Поищите на drupal.org хотя бы ради интереса имя класса
MessengerInterface
и также добавьте для него пространство имён.Добавить в корзину ajax Commerce 2
Только сообразил, что в примере андеда действительно выводится всплывающее окно.
В общем, видимо, опять же причина в пространствах имён. К вышеуказанному коду добавьте ещё два определения:
Добавить в корзину ajax Commerce 2
А в журнале есть что-то интересное? ©
Не факт. Всякие всплывашки наруливаются отдельными модулями.
Либо можете в $response добавить AlertCommand (гуглите) для вывода типичного alert().
Добавить в корзину ajax Commerce 2
Вы не указали пространство имён для класса
FormStateInterface
.В начале файла добавьте:
index.php то появляется, то исчезает после обновления страницы
Не должно такого быть в принципе на D9. На всякий случай имеет смысл посмотреть .htaccess и сверить с оригинальным "из коробки". Я бы ещё задумался о вирусах, на клиентской машине в том числе.
Добавить в корзину ajax Commerce 2
Собственно, в примере андеда по вашей ссылке эти "замечания" уже реализованы. Он как раз и поясняет, зачем у него в коде заменяется #id и выставляется selector. Т.е. если вы использовали его код полностью, то ничего больше делать не нужно.