Get( "request-execution-order" ); wp_enqueue_style( "ass-frontend-servers", plugins_url( "stylesheets/frontend-servers.css", __FILE__ ) ); wp_enqueue_script( "ass-server-script", plugins_url( "javascript/server-functions.js", __FILE__ ) ); wp_enqueue_script( "ass-frontend-check", plugins_url( "javascript/frontend-check-servers-$execorder.js", __FILE__ ), [ "ass-server-script" ], false, true ); } ); /** * Adds the server management page to admin */ add_action( "admin_menu", function() { add_menu_page( __( "Server status", "atr-server-status" ), __( "Server status", "atr-server-status" ), "administrator", "ass-admin-servers", function() { ass_include_template( "admin-servers" ); }, "dashicons-laptop" ); add_submenu_page( "ass-admin-servers", __( "Server Status Settings", "atr-server-status"), __( "Configurations", "atr-server-status" ), "administrator", "ass-admin-config", function() { ass_include_template( "admin-config" ); } ); } ); /** * Load plugin settings */ add_action( "init", function() { \ATR\Settings::Instance()->Load(); } ); /** * Add a settings link to plugin overview page. */ add_filter( "plugin_action_links_".plugin_basename( __FILE__ ), function( $links ) { $links[] = '' . __( "Settings" ) . ""; return $links; } ); /** * Register a server status widget */ add_action( "widgets_init", function() { register_widget( "ServerStatusWidget" ); } ); /** * Allows the user to actually save a server as a wp-post */ add_action( "admin_post_ass_add_server", function() { $submitted_server = $_POST["server"]; if( ass_validate_server($submitted_server) && wp_verify_nonce($_POST["_wpnonce"], "ass-add-server")) { $server_id = ass_save_server( $submitted_server ); if( !is_wp_error($server_id) ) { wp_redirect( "admin.php?page=ass-admin-servers&server=".$server_id ); exit; } else { SessionStatusMessage::set( $server_id->get_error_message(), "error", true ); } } else { SessionStatusMessage::set( "".__("The submitted data did not validate.", "atr-server-status")."
".__("This could either be you have entered incorrect values, or someone, somewhere is doing something really nasty, like a CSRF attack.", "atr-server-status"), "error", true ); } } ); /** * Saves a modified server to the database */ add_action( "admin_post_ass_edit_server", function() { $submitted_server = $_POST["server"]; if( ass_validate_server( $submitted_server ) && wp_verify_nonce( $_POST["_wpnonce"], "ass-edit-server") ) { $server_id = ass_save_server( $submitted_server ); if( !is_wp_error($server_id) ) { wp_redirect( "admin.php?page=ass-admin-servers&server=".$server_id ); exit; } else { SessionStatusMessage::set( $server_id->get_error_message(), "error", true ); } } else { SessionStatusMessage::set( "".__("The submitted data did not validate.", "atr-server-status")."
".__("This could either be you have entered incorrect values, or someone, somewhere is doing something really nasty, like a CSRF attack.", "atr-server-status"), "error", true ); } } ); /** * Updates the sorting for server rows */ add_action( "wp_ajax_ass_sort_server", function() { if( ass_current_user_has_access() ) { $update = wp_update_post( ["ID" => $_POST["ID"], "menu_order" => $_POST["weight"] ] ); } exit; } ); /** * Remove a server from the list */ add_action( "wp_ajax_ass_remove_server", function() { if(wp_verify_nonce($_POST["_wpnonce"], "ass-remove-server")) { $remove = ass_remove_server($_POST["server_id"]); if( is_wp_error($remove) ) { SessionStatusMessage::set( $remove->get_error_message(), "error", false ); } } } ); /** * Validates the availability of a given server */ add_action( "wp_ajax_nopriv_ass_check_server", "ass_check_server_availability" ); add_action( "wp_ajax_ass_check_server", "ass_check_server_availability" ); /** * Add the shortcode used for server checking */ add_shortcode( ASS_SERVER_STATUS_SHORTCODE, function( $atts ) { $GLOBALS["ass_shortcode_atts"] = shortcode_atts( array( 'id' => null ), $atts ); ob_start(); ass_include_template("view-servers"); return ob_get_clean(); } ); /** * Save configurations upon submit */ add_action( "admin_post_ass_save_config", function() { $all = \ATR\Settings::Instance()->All(); $submitted = $_POST["settings"]; if( wp_verify_nonce( $_POST["_wpnonce"], "ass-save-configs" ) ) { if( \ATR\Settings::Instance()->Save($submitted) === true ) { SessionStatusMessage::set( __( "Configurations saved successfully.", "atr-server-status" ), "notice-success", true ); } else { SessionStatusMessage::set( __( "Unfortunately, an error has occured while saving those values, perhaps you did not change anything?", "atr-server-status" ), "error", true ); } } else { SessionStatusMessage::set( "".__("The submitted data did not validate.", "atr-server-status")."
".__("This could either be you have entered incorrect values, or someone, somewhere is doing something really nasty, like a CSRF attack.", "atr-server-status"), "error", true ); } } ); /** * Display any messages generated. */ if( SessionStatusMessage::has_messages() === true ) { add_action( "admin_notices", function() { ass_include_template( "session-messages" ); } ); }