У нас есть сайт, который должен иметь несколько разделов для обеспечения безопасности. У нас установлен наш SSL-сертификат, и для областей, доступных через пункт меню, это не проблема — мы просто используем системный параметр SSL Enabled в редакторе пунктов меню. Но у нас есть несколько разделов (например, экран проверки корзины покупок), которые доступны только через кнопку отправки (у них, так сказать, нет собственного URL-адреса - они просто отправляются сами себе через контроллер, и вид изменяется на основе действия формы.) Прямо сейчас действие формы установлено следующим образом:
<form name="instantForm" action="/<?=$this->segment?>/" method="post" onsubmit="updateSubmitValue()">
где сегмент передается через view.html.php. Тег отображаемой формы выглядит следующим образом:
<form id = "checkoutForm" name="checkoutForm" action="/checkout/" method="post" onsubmit="updateSubmit()">
При отправке контроллер получает значение нескольких отправленных полей и определяет, какое представление отображать (вход в систему с сохраненной информацией об учетной записи или анонимная транзакция), а затем отображает правильную форму.
Вот урезанная версия метода отображения контроллера:
if (JRequest::getVar('checkoutCodeSubmitBTN') != ""){
//user has clicked Checkout button; go to billing info page
JRequest::setVar('view','checkoutpay');
// JRequest::setVar('view','checkout_thankyou');
//reference view
$viewCode =& $this->getView('checkoutpay','html');
$viewCode->voucher =& $voucher;
} //close test for step 1 if
Как я могу убедиться, что отображаемое представление переключается на URL-адрес https?
Я уже разместил это в дискуссионной группе google joomla dev и получил ответ, в котором говорилось, что мне нужно использовать JRoute для создания URL-адреса и использовать setRedirect вместо публикации в форме, но затем кто-то еще ответил, что использование JRoute создает совершенно новый запрос , так что весь ваш доступ к материалам типа JRequest::getVar исчез. Нам нужно иметь доступ к переменным, которые публикуются через форму, чтобы это решение не было найдено. Есть ли у кого-нибудь другие способы сделать это? Я новичок в разработке Joomla и не знаком со многими доступными объектами и методами.