Changeset 13529 for sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-gp-translation-events/includes/routes/event/details.php
- Timestamp:
- 04/15/2024 01:37:55 PM (20 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-gp-translation-events/includes/routes/event/details.php
r13298 r13529 5 5 use Exception; 6 6 use GP; 7 use Wporg\TranslationEvents\Attendee\Attendee; 8 use Wporg\TranslationEvents\Attendee\Attendee_Repository; 9 use Wporg\TranslationEvents\Event\Event_Repository_Interface; 7 10 use Wporg\TranslationEvents\Routes\Route; 8 11 use Wporg\TranslationEvents\Stats_Calculator; … … 13 16 */ 14 17 class Details_Route extends Route { 18 private Event_Repository_Interface $event_repository; 19 private Attendee_Repository $attendee_repository; 20 21 public function __construct() { 22 parent::__construct(); 23 $this->event_repository = Translation_Events::get_event_repository(); 24 $this->attendee_repository = Translation_Events::get_attendee_repository(); 25 } 26 15 27 public function handle( string $event_slug ): void { 16 28 $user = wp_get_current_user(); 17 29 $event = get_page_by_path( $event_slug, OBJECT, Translation_Events::CPT ); 30 if ( ! $event ) { 31 $this->die_with_404(); 32 } 33 $event = $this->event_repository->get_event( $event->ID ); 18 34 if ( ! $event ) { 19 35 $this->die_with_404(); … … 26 42 */ 27 43 $can_crud_event = apply_filters( 'gp_translation_events_can_crud_event', GP::$permission->current_user_can( 'admin' ) ); 28 if ( 'publish' !== $event-> post_status&& ! $can_crud_event ) {44 if ( 'publish' !== $event->status() && ! $can_crud_event ) { 29 45 $this->die_with_error( esc_html__( 'You are not authorized to view this page.', 'gp-translation-events' ), 403 ); 30 46 } 31 47 32 $event_id = $event->ID; 33 $event_title = $event->post_title; 34 $event_description = $event->post_content; 35 $event_start = get_post_meta( $event->ID, '_event_start', true ) ?: ''; 36 $event_end = get_post_meta( $event->ID, '_event_end', true ) ?: ''; 37 $attending_event_ids = get_user_meta( $user->ID, Translation_Events::USER_META_KEY_ATTENDING, true ) ?: array(); 38 $user_is_attending = isset( $attending_event_ids[ $event_id ] ); 48 $event_id = $event->id(); 49 $event_title = $event->title(); 50 $event_description = $event->description(); 51 $event_start = $event->start(); 52 $event_end = $event->end(); 53 54 $attendee = $this->attendee_repository->get_attendee( $event->id(), $user->ID ); 55 $user_is_attending = $attendee instanceof Attendee; 39 56 40 57 $stats_calculator = new Stats_Calculator(); 41 58 try { 42 $event_stats = $stats_calculator->for_event( $event ); 43 $contributors = $stats_calculator->get_contributors( $event ); 59 $event_stats = $stats_calculator->for_event( $event->id() ); 60 $contributors = $stats_calculator->get_contributors( $event->id() ); 61 $attendees = $stats_calculator->get_attendees_not_contributing( $event->id() ); 62 $attendee_repo = $this->attendee_repository; 63 $hosts = $this->attendee_repository->get_hosts( $event->id() ); 64 $projects = $stats_calculator->get_projects( $event->id() ); 44 65 } catch ( Exception $e ) { 45 66 // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log … … 48 69 } 49 70 71 $is_editable_event = true; 72 if ( $event_end->is_in_the_past() || $stats_calculator->event_has_stats( $event->id() ) ) { 73 $is_editable_event = false; 74 } 75 50 76 $this->tmpl( 'event', get_defined_vars() ); 51 77 }
Note: See TracChangeset
for help on using the changeset viewer.