Symfony2 Подтверждение при переходе на URL

0

Я работаю над каким-то "ChargeUserForActionBundle". Поскольку пользователь должен знать, что ему будет взиматься плата за доступ к конкретному URL-адресу, мне нужно создать какую-то "страницу подтверждения". Общий поток должен выглядеть следующим образом:

  • Из действия A перейдите к действию B.
  • Приостановить выполнение действия B.
  • Запросите подтверждение в прослушивателе событий. Если пользователь не согласен - прекратите выполнение действия B. Else:
  • Продолжить действие B

Как я могу добиться чего-то подобного?

РЕДАКТИРОВАТЬ:

public function paidLinkAction(){
    //Call event which trigger charging fee procedure. Inside this event we will inform user that he will be charged
    $this->get('yasecure_billing.app.charging')->callChargeEvent($user, 'Example action');
    /*
     * if user agree, come back here, and do rest of stuff
     */
}

Что я должен реализовать, чтобы позволить моему слушателю вернуться к paidLinkAction после запроса подтверждения? И как сообщить paidLinkAction, что пользователь уже заряжен? Конечно, реализация должна быть h4x-доказательством. У нас не может быть ситуации, когда пользователь может обмануть приложение, которое ему уже было предъявлено (так что файлы cookie - плохая идея). Я думал о сеансе?

  • 0
    Самый простой способ будет с Javascript. Создайте всплывающее диалоговое окно, запросите подтверждение и в положительном случае отправьте форму B через JS.
  • 0
    Я думал об этом, но мне нужно сделать его «масштабируемым» - ссылок может быть много, и было бы ужасно помнить о включении JS в каждую ссылку. В крайнем случае, я могу создать функцию ветки для отображения ссылок с помощью этого скрипта. Но я бы хотел этого избежать.
Показать ещё 6 комментариев
Теги:
events
controller
routing

1 ответ

0

Вы можете использовать набор, который мы создали, или даже просто вдохновить вас на это. Он называется AvAlertifyBundle, и он позволяет вам управлять предупреждениями любого рода (успех, информация, предупреждение и то, что будет интересно для вас... CONFIRM modal).

Вы можете получить дополнительную информацию о подтверждении модальности здесь, или вы можете перейти к базовой документации здесь.

В некоторых словах вам просто нужно добавить что-то вроде этого:

<a href="/your_url" class="btn btn-mini btn-danger confirm" data-title="Are you sure ?" data-body="You'll have to pay something ! Do you understand ?" data-cancel-button-class="cancel" data-confirm-button-class="danger">
    Pay actions
</a>

Удачи.

  • 0
    Хороший комплект. Я думаю, что буду использовать его в будущем, но не в этой проблеме :( Использование любого решения JS слишком рискованно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню