* SPDX-FileCopyrightText: 2022 Harald Eilertsen * * SPDX-License-Identifier: AGPL-3.0-or-later */ declare(strict_types=1); if ( ! function_exists( 'giglogadmin_shortcode_public' ) ) { /** * Shortcode that displays the public concert list. * * Usage: `[getconcerts]` * * This shortcode does not have any attributes. */ function giglogadmin_shortcode_public() : string { $filters = array(); if ( isset( $_GET['city'] ) && ! empty( $_GET['city'] ) ) { $filters['city'] = sanitize_text_field( wp_unslash( $_GET['city'] ) ); } $pages = GiglogAdmin_Concert::count_pages( $filters ); $page = 1; if ( isset( $_GET['pg'] ) && ! empty( $_GET['pg'] ) ) { $page = intval( wp_unslash( $_GET['pg'] ) ); if ( $page < 1 || $page > $pages ) { // Just silently redirect to first page if we're outside // the acceptable range. wp_redirect( get_page_link() ); } } $filters['page'] = $page; $concerts = GiglogAdmin_Concert::find_concerts( $filters ); ob_start(); include __DIR__ . '/templates/giglogadmin-concerts-table.php'; return ob_get_clean(); } add_shortcode( 'getconcerts', 'giglogadmin_shortcode_public' ); }