FileMaster
Search
Toggle Dark Mode
Home
/
.
/
wp-content
/
plugins
/
latepoint
/
lib
/
helpers
Edit File: router_helper.php
<?php class OsRouterHelper { public static function build_pre_route_link( $route, $params = array() ) { return self::build_link( $route, array_merge( array( 'pre_route' => 1 ), $params ) ); } public static function add_extension( $string = '', $extension = '.php' ) { if ( substr( $string, -strlen( $extension ) ) === $extension ) { return $string; } else { return $string . $extension; } } public static function build_link( $route, $params = array() ) { $params_query = ''; if ( $params ) { $params_query = '&' . http_build_query( $params ); } if ( is_array( $route ) && ( count( $route ) == 2 ) ) { $route = OsRouterHelper::build_route_name( $route[0], $route[1] ); } return admin_url( 'admin.php?page=latepoint&route_name=' . $route . $params_query ); } public static function build_admin_post_link( $route, $params = array() ) { $params_query = ''; if ( $params ) { $params_query = '&' . http_build_query( $params ); } if ( is_array( $route ) && ( count( $route ) == 2 ) ) { $route = OsRouterHelper::build_route_name( $route[0], $route[1] ); } return admin_url( 'admin-post.php?action=latepoint_route_call&route_name=' . $route . $params_query ); } public static function link_has_route( $route_name, $link ) { $link_params = wp_parse_url( $link ); if ( empty( $link_params['query'] ) ) { return false; } parse_str( $link_params['query'], $link_query_params ); return ( $link_query_params && isset( $link_query_params['route_name'] ) && ( $link_query_params['route_name'] == $route_name ) ); } public static function build_front_link( $route, $params = array() ) { $params_query = ''; if ( $params ) { $params_query = '&' . http_build_query( $params ); } if ( is_array( $route ) && ( count( $route ) == 2 ) ) { $route = OsRouterHelper::build_route_name( $route[0], $route[1] ); } return site_url( 'index.php?latepoint_is_custom_route=true&route_name=' . $route . $params_query ); } public static function build_route_name( $controller, $action ) { return $controller . '__' . $action; } public static function convert_route_name_to_controller_and_action( $route_name ): array { list($controller_name, $action) = explode( '__', $route_name ); if ( empty( $controller_name ) || empty( $action ) ) { return []; } $controller_name = str_replace( '_', '', ucwords( $controller_name, '_' ) ); $controller_class_name = 'Os' . $controller_name . 'Controller'; if ( class_exists( $controller_class_name ) ) { $controller_obj = new $controller_class_name(); if ( method_exists( $controller_obj, $action ) ) { // check if action is valid return [ 'controller' => $controller_obj, 'action' => $action, ]; } else { return []; } } else { return []; } } public static function call_by_route_name( $route_name, $return_format = 'html' ) { OsDebugHelper::log_route( $route_name, $return_format ); $route_data = self::convert_route_name_to_controller_and_action( $route_name ); if ( ! empty( $route_data ) ) { $controller_obj = $route_data['controller']; $action = $route_data['action']; if ( $return_format ) { $controller_obj->set_return_format( $return_format ); } // check if user is allowed to access this route if ( $controller_obj->can_current_user_access_action( $action ) ) { $controller_obj->route_name = $route_name; $controller_obj->$action(); } else { if ( $controller_obj->get_return_format() == 'json' ) { $controller_obj->send_json( [ 'status' => LATEPOINT_STATUS_ERROR, 'message' => __( 'Not Authorized', 'latepoint' ), ] ); } else { echo '<div class="latepoint-not-authorized"><div class="not-authorized-message">' . esc_html__( 'Not Authorized', 'latepoint' ) . '</div></div>'; } } } else { esc_html_e( 'Page Not Found', 'latepoint' ); } } public static function get_request_param( $name, $default = false ) { if ( isset( $_GET[ $name ] ) ) { $param = sanitize_text_field( wp_unslash( $_GET[ $name ] ) ); } elseif ( isset( $_POST[ $name ] ) ) { $param = sanitize_text_field( wp_unslash( $_POST[ $name ] ) ); } else { $param = $default; } return $param; } }
Save
Back