constructInputs();
}
/**
* Render the custom Options page for the widget
*
* @return void
*/
function abolSeatingWidget__renderOptionsPage()
{
wp_enqueue_script('upload-image.js', plugins_url('js/upload-image.js', __FILE__), null, null);
wp_enqueue_style('abol_admin.css', plugins_url('css/abol_admin.css', __FILE__), null, null);
wp_enqueue_media();
echo "
Configure ABOL Widget
";
echo "";
}
/**
* Add a new Admin sidebar entry for the plugin
*
* @return void
*/
function abolSeatingWidget__addMenuPage()
{
add_menu_page(
'ABOL Widget', # Page title - Displayed in the title tags
'ABOL Widget', # Menu title - Displayed in the menu
'manage_options', # Capability/Minimum Permissions - permissions the user needs to see this item
'abol_widget', # Menu slug - Used to refer back to this menu,
'abolSeatingWidget__renderOptionsPage', # Callback - To be run when this is called
'dashicons-tickets', # Icon - Allows a WP Dashicon to be used in the sidebar
'2'
);
}
/**
* Aggregate data from the user-configured options,
* Populate a settings repository object and render the widget
*
* @return void
*/
function abolSeatingWidget__renderAbolWidget()
{
require_once 'utilities/ApiUtility.php';
require_once 'settings/SettingRepository.php';
$settings = new SettingRepository();
$settings->setGroupShortName(get_option('group-shortname')['abol_section_group_short-name-input']);
$settings->setBookingImageEnabled((isset(get_option('show-booking-image')['abol_section_show-booking-image-input'])) ? true : false);
$settings->setBookingImagePath(get_option('booking-image')['abol_section_booking-image-input']);
$settings->setDisplayWithoutEvents((isset(get_option('no-open-events')['abol_section_no-open-events-input'])) ? false : true);
$settings->setAlwaysHidden((isset(get_option('always-hide')['abol_section_always-hide-widget-input'])) ? true : false);
$settings->setDisplayBookingLink((isset(get_option('booking-page-link')['abol_section_display-booking-page-link-input'])) ? true : false);
$settings->setDisplayShowName(isset(get_option('display-show-name')['abol_section_display-show-name-input']) ? true : false);
$settings->setDisplayPerformances((isset(get_option('display-performances')['abol_section_display-performances-input'])) ? true : false);
$settings->setUserCSS((isset(get_option('styles')['abol_section_styles-input'])) ? get_option('styles')['abol_section_styles-input'] : null);
try {
$apiUtil = new ApiUtility('http://amateurboxoffice.co.uk/api/query/event/' . $settings->getGroupShortName());
$apiData = $apiUtil->get();
$event = $apiData['event'];
$settings->setBookingPageId($apiData['booking_page']);
} catch(Exception $e) {
$performances = [];
}
require 'abol-widget.php';
}
/**
* Accessor method for the seating API client
*
* @param $availability
* @return void
*/
function abolSeatingWidget__getAvailabilityClass($availability)
{
require_once 'utilities/SeatingAvailability.php';
return abolSeatingWidget__getAvailability($availability);
}