connector-wordpress/source/includes/events-list-shortcut.php

48 lines
1.3 KiB
PHP

<?php
namespace MobilizonConnector;
// Exit if this file is called directly.
if (!defined('ABSPATH')) {
exit;
}
class EventsListShortcut {
public static function init() {
add_shortcode(NAME . '-events-list', 'MobilizonConnector\EventsListShortcut::inflate');
}
public static function inflate($atts = [], $content = null) {
// Normalize attribute keys, lowercase.
$atts = array_change_key_case((array) $atts, CASE_LOWER);
// Override default attributes with user attributes.
$atts_with_overriden_defaults = shortcode_atts(
array(
'events-count' => DEFAULT_EVENTS_COUNT,
'group-name' => '',
), $atts
);
$url = Settings::getUrl();
$eventsCount = $atts_with_overriden_defaults['events-count'];
$groupName = $atts_with_overriden_defaults['group-name'];
if ($groupName) {
$data = GraphQlClient::get_upcoming_events_by_group_name($url, (int) $eventsCount, $groupName);
} else {
$data = GraphQlClient::get_upcoming_events($url, (int) $eventsCount);
}
$classNamePrefix = NAME;
$locale = get_locale();
$isShortOffsetNameShown = Settings::isShortOffsetNameShown();
$timeZone = wp_timezone_string();
ob_start();
require dirname(__DIR__) . '/view/events-list.php';
$output = ob_get_clean();
return $output;
}
}