diff options
Diffstat (limited to 'includes/admin/views/_edit_concert_form.php')
-rw-r--r-- | includes/admin/views/_edit_concert_form.php | 159 |
1 files changed, 77 insertions, 82 deletions
diff --git a/includes/admin/views/_edit_concert_form.php b/includes/admin/views/_edit_concert_form.php index b839edd..18ff4d3 100644 --- a/includes/admin/views/_edit_concert_form.php +++ b/includes/admin/views/_edit_concert_form.php @@ -6,134 +6,129 @@ require_once __DIR__ . '/../../view-helpers/select_field.php'; -if (!class_exists("GiglogAdmin_EditConcertForm")) -{ - class GiglogAdmin_EditConcertForm - { - private function get_venue_selector( ?GiglogAdmin_Venue $invenue ): string - { +if ( ! class_exists( 'GiglogAdmin_EditConcertForm' ) ) { + class GiglogAdmin_EditConcertForm { + + private function get_venue_selector( ?GiglogAdmin_Venue $invenue ): string { return \EternalTerror\ViewHelpers\select_field( - "selectvenueadmin", - array_map(fn($venue) => [$venue->id(), $venue->name()], GiglogAdmin_Venue::all_venues()), - $invenue ? $invenue->id() : null); + 'selectvenueadmin', + array_map( fn( $venue) => array( $venue->id(), $venue->name() ), GiglogAdmin_Venue::all_venues() ), + $invenue ? $invenue->id() : null + ); } - private function user_dropdown_for_role( GiglogAdmin_Concert $concert, string $role): string - { + private function user_dropdown_for_role( GiglogAdmin_Concert $concert, string $role ): string { $users = array_map( - fn($usr): string => $usr->user_login, - get_users( array( 'fields' => array( 'user_login' ) ) ) ); + fn( $usr): string => $usr->user_login, + get_users( array( 'fields' => array( 'user_login' ) ) ) + ); $roles = $concert->roles(); - $current_user = array_key_exists($role, $roles) ? $roles[$role] : NULL; + $current_user = array_key_exists( $role, $roles ) ? $roles[ $role ] : null; return \EternalTerror\ViewHelpers\select_field( $role, - array_map( fn($user) => [ $user, $user ], $users ), - $current_user); + array_map( fn( $user) => array( $user, $user ), $users ), + $current_user + ); } - public function render() : string - { - $cid = filter_input(INPUT_POST, "cid"); - $editing = filter_input(INPUT_POST, "edit") == "EDIT"; + public function render() : string { + $cid = filter_input( INPUT_POST, 'cid' ); + $editing = filter_input( INPUT_POST, 'edit' ) == 'EDIT'; - if ($editing && !empty($cid)) { - $c = GiglogAdmin_Concert::get($cid); - if ( !$c ) { - wp_die("Invalid request!", 400); + if ( $editing && ! empty( $cid ) ) { + $c = GiglogAdmin_Concert::get( $cid ); + if ( ! $c ) { + wp_die( 'Invalid request!', 400 ); } - } - else { - $c = new GiglogAdmin_Concert((object)[]); + } else { + $c = new GiglogAdmin_Concert( (object) array() ); } - $content='<div class="concertform">'; - $content.='<form method="POST" action="" class="concert" >' - .'<div class="concertitems"><strong>CONCERT DETAILS</strong><br><br><fieldset>' + $content = '<div class="concertform">'; + $content .= '<form method="POST" action="" class="concert" >' + . '<div class="concertitems"><strong>CONCERT DETAILS</strong><br><br><fieldset>' . wp_nonce_field( 'edit-concert', 'nonce' ) - .'<input type="hidden" name="pid" value="' . esc_attr($c->id()) . '" />' - .'<label for="cname">Concert Name:</label>' - .'<textarea id="cname" name="cname" value="'. esc_attr($c->cname()) . '">' - . esc_textarea($c->cname()) - .'</textarea><br>' - .'<label for="venue">Venue:</label>' . $this->get_venue_selector($c->venue()) . '<br>' - //date has to be formatted else it is not red in the date field of html form - .'<label for="cdate">Date:</label>' - .'<input type="date" id="cdate" name="cdate" value="'. esc_attr(date('Y-m-d',strtotime($c->cdate()))) .'"><br>' - .'<label for="ticket">Tickets:</label>' - .'<input type="text" id="ticket" name="ticket" value="'. esc_url($c->tickets()) .'"><br>' - .'<label for="eventurl">Event link:</label>' - .'<input type="text" id="eventurl" name="eventurl" value="'. esc_url($c->eventlink()) .'"><br>' - .'</fieldset>'; + . '<input type="hidden" name="pid" value="' . esc_attr( $c->id() ) . '" />' + . '<label for="cname">Concert Name:</label>' + . '<textarea id="cname" name="cname" value="' . esc_attr( $c->cname() ) . '">' + . esc_textarea( $c->cname() ) + . '</textarea><br>' + . '<label for="venue">Venue:</label>' . $this->get_venue_selector( $c->venue() ) . '<br>' + // date has to be formatted else it is not red in the date field of html form + . '<label for="cdate">Date:</label>' + . '<input type="date" id="cdate" name="cdate" value="' . esc_attr( date( 'Y-m-d', strtotime( $c->cdate() ) ) ) . '"><br>' + . '<label for="ticket">Tickets:</label>' + . '<input type="text" id="ticket" name="ticket" value="' . esc_url( $c->tickets() ) . '"><br>' + . '<label for="eventurl">Event link:</label>' + . '<input type="text" id="eventurl" name="eventurl" value="' . esc_url( $c->eventlink() ) . '"><br>' + . '</fieldset>'; // actions differ if we update or create a concert, hence two buttons needed - if ($editing) - $content.='<p><input type="submit" name="editconcert" value="Edit Concert"></p>'; - else - $content.='<p><input type="submit" name="newconcert" value="Create New Concert"></p>'; + if ( $editing ) { + $content .= '<p><input type="submit" name="editconcert" value="Edit Concert"></p>'; + } else { + $content .= '<p><input type="submit" name="newconcert" value="Create New Concert"></p>'; + } - $content.='</div>'; + $content .= '</div>'; - $content.='<div class="useritems"><strong>ASSIGNMENT DETAILS</strong><br><br><fieldset>' - .'<label for="photo1">Photo1:</label>'.$this->user_dropdown_for_role($c,'photo1').'<br>' - .'<label for="photo2">Photo2:</label>'.$this->user_dropdown_for_role($c,'photo2').'<br>' - .'<label for="rev1">Text1:</label>'.$this->user_dropdown_for_role($c,'rev1').'<br>' - .'<label for="rev2">Text2:</label>'.$this->user_dropdown_for_role($c,'rev2').'<br>'; + $content .= '<div class="useritems"><strong>ASSIGNMENT DETAILS</strong><br><br><fieldset>' + . '<label for="photo1">Photo1:</label>' . $this->user_dropdown_for_role( $c, 'photo1' ) . '<br>' + . '<label for="photo2">Photo2:</label>' . $this->user_dropdown_for_role( $c, 'photo2' ) . '<br>' + . '<label for="rev1">Text1:</label>' . $this->user_dropdown_for_role( $c, 'rev1' ) . '<br>' + . '<label for="rev2">Text2:</label>' . $this->user_dropdown_for_role( $c, 'rev2' ) . '<br>'; - $content.='<fieldset></div></form></div>'; + $content .= '<fieldset></div></form></div>'; return $content; } - static function update() : void - { - if (!isset($_POST['nonce']) || !wp_verify_nonce($_POST['nonce'], 'edit-concert')) { - wp_die('CSRF validation failed.', 403); + static function update() : void { + if ( ! isset( $_POST['nonce'] ) || ! wp_verify_nonce( $_POST['nonce'], 'edit-concert' ) ) { + wp_die( 'CSRF validation failed.', 403 ); } - if (isset($_POST['newconcert'])) { - if (empty($_POST['cname']) || empty($_POST['selectvenueadmin']) || empty($_POST['cdate']) || empty($_POST['ticket']) || empty($_POST['eventurl'])) { + if ( isset( $_POST['newconcert'] ) ) { + if ( empty( $_POST['cname'] ) || empty( $_POST['selectvenueadmin'] ) || empty( $_POST['cdate'] ) || empty( $_POST['ticket'] ) || empty( $_POST['eventurl'] ) ) { echo '<script language="javascript">alert("You are missing a value, concert was not created"); </script>'; - } - else { - if (GiglogAdmin_Concert::create($_POST['cname'], $_POST['selectvenueadmin'], $_POST['cdate'], $_POST['ticket'], $_POST['eventurl'])) { + } else { + if ( GiglogAdmin_Concert::create( $_POST['cname'], $_POST['selectvenueadmin'], $_POST['cdate'], $_POST['ticket'], $_POST['eventurl'] ) ) { echo '<script language="javascript">alert("Yey, concert created"); </script>'; - } - else { + } else { echo '<script language="javascript">alert("Nay, concert was duplicated"); </script>'; } } } - if (isset($_POST['editconcert'])) - { + if ( isset( $_POST['editconcert'] ) ) { $roles = array_reduce( - ['photo1', 'photo1', 'rev1', 'rev2'], - function($roles, $r) { - if (isset($_POST[$r])) { - $roles[$r] = sanitize_user($_POST[$r]); + array( 'photo1', 'photo1', 'rev1', 'rev2' ), + function( $roles, $r ) { + if ( isset( $_POST[ $r ] ) ) { + $roles[ $r ] = sanitize_user( $_POST[ $r ] ); } return $roles; }, - [] + array() ); - $attributes = [ - 'wpgconcert_name' => sanitize_text_field($_POST['cname']), - 'venue' => intval($_POST['selectvenueadmin']), - 'wpgconcert_date' => sanitize_text_field($_POST['cdate']), - 'wpgconcert_ticket' => esc_url_raw($_POST['ticket']), - 'wpgconcert_event' => esc_url_raw($_POST['eventurl']), + $attributes = array( + 'wpgconcert_name' => sanitize_text_field( $_POST['cname'] ), + 'venue' => intval( $_POST['selectvenueadmin'] ), + 'wpgconcert_date' => sanitize_text_field( $_POST['cdate'] ), + 'wpgconcert_ticket' => esc_url_raw( $_POST['ticket'] ), + 'wpgconcert_event' => esc_url_raw( $_POST['eventurl'] ), 'wpgconcert_roles' => $roles, - ]; + ); - $concert = GiglogAdmin_Concert::get(intval($_POST['pid'])); - if ($concert && $concert->update((object) $attributes)) { + $concert = GiglogAdmin_Concert::get( intval( $_POST['pid'] ) ); + if ( $concert && $concert->update( (object) $attributes ) ) { // let user know the concert was updated. // Look into admin_notices } |