Linux puskom-ProLiant-DL385-Gen10 5.4.0-150-generic #167~18.04.1-Ubuntu SMP Wed May 24 00:51:42 UTC 2023 x86_64
/
home
/
puskom
/
mastur
/
colibri-page-builder
/
extend-builder
/
api
/
//home/puskom/mastur/colibri-page-builder/extend-builder/api/api.php
<?php namespace ExtendBuilder; class Api { public static $name = "extend_builder"; public static $end_points = array(); public static function addEndPoint($name, $api) { Api::$end_points[$name] = $api; } public function __construct() { $this->extendBuilderApi(); } public function apiCall() { if (!colibri_user_can_customize()) { wp_send_json_error('unauthenticated'); wp_die(); } if (!defined('DOING_AJAX')) { define( 'DOING_AJAX', true ); } $options = isset($_REQUEST['api']) ? $_REQUEST['api'] : "{}"; $options = wp_unslash($options); $options = json_decode($options, true); $data = isset($options['data']) ? $options['data'] : false; $slug = isset($options['action']) ? $options['action'] : false; if ($slug && method_exists($this, $slug)) { call_user_func_array(array($this, $slug), array($data)); } $path = explode("/", $slug); if (count($path) == 2) { if (isset(Api::$end_points[$path[0]])) { $class = Api::$end_points[$path[0]]; if (method_exists($class, $path[1])) { call_user_func_array(array($class, $path[1]), array($data)); } } } wp_die(); } public function list_page_types() { echo json_encode($post_types); } public function extendBuilderApi() { add_action('wp_ajax_' . self::$name, function () { $this->apiCall(); }); } } new Api();