Add multiple url redirect with session

This commit is contained in:
Maxime St-Pierre 2018-05-21 09:13:49 -04:00 committed by Jeremy Kauffman
parent c0344be7a2
commit d2e80b462c
2 changed files with 23 additions and 13 deletions

View file

@ -10,7 +10,8 @@ class Session
KEY_DEVELOPER_RETURN_URL_SUCCESS = 'developer_return_url_success',
KEY_GITHUB_ACCESS_TOKEN = 'github_access_token',
KEY_LIST_SUB_ERROR = 'list_error',
KEY_USER_CULTURE = 'user_culture';
KEY_USER_CULTURE = 'user_culture',
KEY_YOUTUBE_TEMPLATE = 'youtube_landing_template';
const NAMESPACE_DEFAULT = 'default',
NAMESPACE_FLASH = 'flash',

View file

@ -24,22 +24,31 @@ class AcquisitionActions extends Actions
Mailgun::sendYouTubeWarmLead(['email' => $email]);
Session::setFlash('success', 'Thanks! We\'ll be in touch. The good kind of touch.');
}
public static function executeYouTube(string $version = '')
{
if(isset($_GET['error_message'])){
$error_message = Request::encodeStringFromUser($_GET['error_message']);
return Controller::redirect(Request::getReferrer(), 303);
}
public static function executeYouTube(string $version = '')
{
if (isset($_GET['error_message'])) {
$error_message = Request::encodeStringFromUser($_GET['error_message']);
}
$baseTemplate = 'acquisition/youtube';
$versionedTemplate = $baseTemplate . '-' . $version;
$template = $version && View::exists($versionedTemplate) ? $versionedTemplate : $baseTemplate;
$baseTemplate = 'acquisition/youtube';
$versionedTemplate = $baseTemplate . '-' . $version;
$template = $version && View::exists($versionedTemplate) ? $versionedTemplate : $baseTemplate;
//since multiple URLs come into this page, we need to save the URL the user came in with and send them back to it
//in addition to storing here, all redirections to /youtube need to be updated to send back to the URL we capture here
if ($version && View::exists($versionedTemplate)) {
Session::set(SESSION::KEY_YOUTUBE_TEMPLATE, $template);
}
return [$template, [
$template = Session::get(SESSION::KEY_YOUTUBE_TEMPLATE) ?? $template;
if (!View::exists($template)) {
Session::unsetKey(SESSION::KEY_YOUTUBE_TEMPLATE);
$template = $baseTemplate;
}
return [$template, [
'reward' => LBRY::youtubeReward(),
'error_message' => $error_message ?? ''
]];