/** * Dashboard /login action * * @return void */ public function login() { if (site()->user()) { go('dashboard'); } // save the flashed redirect flash('login.redirect', flash('login.redirect')); if (r::is('post')) { if ($this->form->validates()) { $user = site()->user($this->form->data('username')); if ($user && $user->login($this->form->data('password'))) { flash('messages.success', 'Logged in!'); if (get('_redirect')) { go(get('_redirect')); } } else { $this->form->addErrors(['login' => 'Invalid username and password']); } } go('login'); } $this->render('dashboard/login', ['pageTitle' => 'Login', 'form' => $this->form, 'page' => page()]); }
<?php use Crazy\Form; return function ($site, $pages, $page) { $event = $page->parent(); $order = new CrazyEventOrder($event); $form = new Form(['guest' => []]); if (r::is('post')) { // Add a new guest if (get('add_guest') && ($guest = get('guest'))) { if ($event->seatsAvailable(1 + count($order->guests()))) { $order->addGuest(htmlspecialchars($guest)); } else { $form->addError('guest', 'Sorry, there are no more seats available.'); } } // Remove a guest if ($removeId = get('remove_guest')) { // the field is submitted as "id-[$id]" $id = substr($removeId, 3); $order->removeGuest($id); } go($page->url()); } return ['event' => $event, 'studio' => $order->studio(), 'form' => $form, 'order' => $order]; };
<?php use Crazy\Form; return function ($site, $pages, $page) { $studio = $page->parent(); $form = new Form(['_token' => ['rules' => ['required', csrf(get('_token'))], 'message' => 'Invalid security token. Please try again.'], 'name' => ['rules' => ['required'], 'message' => 'Name is required'], 'email' => ['rules' => ['required', 'email'], 'message' => 'Valid email is required'], 'phone' => [], 'message' => []]); if (r::is('post')) { if ($form->validates()) { flash('messages.success', "Thanks! We'll be back in touch very soon!"); event('studio.contacted', array_merge(['studio' => $studio], $form->data())); } go($page->url()); } return ['studio' => $studio, 'form' => $form]; };
<?php use Crazy\Form; use Stripe\Stripe; use Stripe\Charge; return function ($site, $pages, $page) { $event = $page->parent(); $studio = $event->studio(); $promoForm = new Form(['coupon_code' => []]); $form = new Form(['_token' => ['rules' => ['required', csrf(get('_token'))], 'message' => 'Invalid security token. Please try again.'], 'name' => ['rules' => ['required'], 'message' => 'Name is required'], 'email' => ['rules' => ['required', 'email'], 'message' => 'Valid email is required'], 'phone' => ['rules' => ['required'], 'message' => 'Phone is required'], 'comments' => [], 'card_number' => ['rules' => ['required'], 'message' => 'Card number is required', 'flash' => false], 'exp_month' => ['rules' => ['required'], 'message' => 'Expiration month is required', 'flash' => false], 'exp_year' => ['rules' => ['required'], 'message' => 'Expiration year is required', 'flash' => false], 'cvc' => ['rules' => ['required', 'num'], 'message' => 'CVC is required', 'flash' => false], 'billing_name' => ['rules' => ['required'], 'message' => 'Cardholder name is required', 'flash' => false], 'billing_zip' => ['rules' => ['required'], 'message' => 'Cardholder ZIP is required', 'flash' => false]]); $order = new CrazyEventOrder($page->parent()); // Redirect if no guests if (!$order->hasGuests()) { flash('messages.error', 'Please add at least one guest to continue.'); go($order->event()->ticketsUrl()); } // Handle the post submission if (r::is('post')) { if (get('coupon')) { // find the coupon with this code $coupon = $order->applyCoupon(get('coupon_code')); if (!$coupon) { $promoForm->addError('coupon_code', 'Sorry, that coupon is not available.'); } } else { if ($form->validates()) { // Accept the payment try { $stripeMode = env('STRIPE_API_MODE', 'test'); if ($stripeMode == 'test') { Stripe::setApiKey(env('STRIPE_TEST_SECRET_KEY'));