get_results($wpdb->prepare("SELECT id,title,status FROM %i WHERE status!='archived' ORDER BY added DESC",TICKETDRUM_EVENTS_TABLE),ARRAY_A); foreach ($events as $event_index=>$event_row) $events[$event_index]['title'] = ticketdrum_text($event_row['title']); wp_localize_script('ticketdrum-block','ticketdrumBlockData',['events'=>$events?$events:[]]); register_block_type('ticketdrum/display',[ 'editor_script' => 'ticketdrum-block', 'attributes' => [ 'mode' => ['type'=>'string','default'=>'tickets'], 'eventId' => ['type'=>'number','default'=>0], ], 'render_callback' => 'ticketdrum_render_block', ]); } add_action('init','ticketdrum_register_block'); function ticketdrum_render_block($attributes) { $mode = in_array($attributes['mode']??'',['list','details','tickets'])?$attributes['mode']:'tickets'; $event_id = (int)($attributes['eventId']??0); if ($mode=='list') return ticketdrum_display([]); if ($event_id==0) return ''; return ticketdrum_display([$mode,'id'=>$event_id]); }