location; } public function redirect(): void { // Redirect as simple request. if ($this instanceof CControllerResponseRedirect) { if ($this->getFormData() === null && CMessageHelper::getTitle() === null) { redirect($this->getLocation()); } CMessageHelper::restoreScheduleMessages(); } (new CHtmlPageHeader(_('Loading...'), CWebUser::getLang()))->show(); echo ''; echo $this ->getForm() ->toString(); echo $this ->getScript() ->toString(); echo ''; session_write_close(); exit(); } protected function getForm(): CForm { $form = (new CForm()) ->setAction($this->getLocation()) ->setEnctype('multipart/form-data') ->setId('form-data'); $data = $this->getData(); $data = json_encode($data); $sign = CEncryptHelper::sign($data); $form->addItem(new CInput('hidden', 'formdata', '')); $form->addItem(new CInput('hidden', 'sign', base64_encode($sign))); $form->addItem(new CInput('hidden', 'data', base64_encode($data))); return $form; } protected function getScript(): CJsScript { $js = ' '; return new CJsScript($js); } private function getData(): array { $data = []; $messages['messages'] = CMessageHelper::getMessages(); if ($this instanceof CControllerResponseRedirect) { switch (CMessageHelper::getType()) { case CMessageHelper::MESSAGE_TYPE_ERROR: $messages[CMessageHelper::MESSAGE_TYPE_ERROR] = CMessageHelper::getTitle(); break; case CMessageHelper::MESSAGE_TYPE_SUCCESS: $messages[CMessageHelper::MESSAGE_TYPE_SUCCESS] = CMessageHelper::getTitle(); break; } $data = $this->getFormData(); } return ['form' => $data, 'messages' => $messages]; } }