diff --git a/enqueue.php b/enqueue.php index 59fe405..5244a38 100644 --- a/enqueue.php +++ b/enqueue.php @@ -1,89 +1,90 @@ -enqueued = [ - 'fields' => [], - 'elements' => [] -]; - -$fields->is_enqueued = false; - -$fields->enqueue_item = function( - string $name, - string $type, - array $args -) use($fields) : void { - - $args['context'] = $fields->current_context; - - $fields->enqueued[ $type ][ $name ] = $args; -}; - -$fields->enqueue = function(array $config = []) use($fields) { - - if( ! empty($config['context']) && is_array($config['context']) ) { - $fields->enqueued_contexts = [ - ...$fields->enqueued_contexts, - ...$config['context'] - ]; - } - - $contexts = ! empty($fields->enqueued_contexts) - ? $fields->enqueued_contexts - : ['default']; - - foreach( $contexts as $context ) { - - wp_enqueue_style( - 'tangible-fields-' . $context, - plugins_url( '/assets', __FILE__ ) . '/build/' . $context . '/index.min.css', - [], - $fields->version - ); - } - - wp_enqueue_script( - 'tangible-fields', - plugins_url( '/assets', __FILE__ ) . '/build/index.min.js', - [ 'wp-element' ], - $fields->version, - true - ); - - $data = [ - 'api' => [ - 'nonce' => wp_create_nonce( 'wp_rest' ), - 'endpoint' => [ - 'media' => esc_url_raw( rest_url( '/wp/v2/media/' ) ), - ], - ], - 'fields' => $fields->enqueued['fields'], - 'elements' => $fields->enqueued['elements'], - 'dynamics' => $fields->get_dynamic_value_data(), - 'mimetypes' => get_allowed_mime_types() - ]; - - wp_add_inline_script( 'tangible-fields', 'var TangibleFields = ' . json_encode($data) . ';', 'before' ); - - $fields->is_enqueued = true; -}; - -$fields->maybe_enqueue_scripts = function() use($fields) : void { - - $has_registrations = empty($fields->enqueued['fields']) && empty($fields->enqueued['elements']); - - if( $has_registrations || $fields->is_enqueued ) { - return; - } - - $fields->enqueue(); -}; - -add_action( 'wp_footer', $fields->maybe_enqueue_scripts ); -add_action( 'admin_footer', $fields->maybe_enqueue_scripts ); +enqueued = [ + 'fields' => [], + 'elements' => [] +]; + +$fields->is_enqueued = false; + +$fields->enqueue_item = function( + string $name, + string $type, + array $args +) use($fields) : void { + + $args['context'] = $fields->current_context; + + $fields->enqueued[ $type ][ $name ] = $args; +}; + +$fields->enqueue = function(array $config = []) use($fields) { + + if( ! empty($config['context']) && is_array($config['context']) ) { + $fields->enqueued_contexts = [ + ...$fields->enqueued_contexts, + ...$config['context'] + ]; + } + + $contexts = ! empty($fields->enqueued_contexts) + ? $fields->enqueued_contexts + : ['default']; + + foreach( $contexts as $context ) { + + wp_enqueue_style( + 'tangible-fields-' . $context, + framework\module_url( '/assets', __FILE__ ) . '/build/' . $context . '/index.min.css', + [], + $fields->version + ); + } + + wp_enqueue_script( + 'tangible-fields', + framework\module_url( '/assets', __FILE__ ) . '/build/index.min.js', + [ 'wp-element' ], + $fields->version, + true + ); + + $data = [ + 'api' => [ + 'nonce' => wp_create_nonce( 'wp_rest' ), + 'endpoint' => [ + 'media' => esc_url_raw( rest_url( '/wp/v2/media/' ) ), + ], + ], + 'fields' => $fields->enqueued['fields'], + 'elements' => $fields->enqueued['elements'], + 'dynamics' => $fields->get_dynamic_value_data(), + 'mimetypes' => get_allowed_mime_types() + ]; + + wp_add_inline_script( 'tangible-fields', 'var TangibleFields = ' . json_encode($data) . ';', 'before' ); + + $fields->is_enqueued = true; +}; + +$fields->maybe_enqueue_scripts = function() use($fields) : void { + + $has_registrations = empty($fields->enqueued['fields']) && empty($fields->enqueued['elements']); + + if( $has_registrations || $fields->is_enqueued ) { + return; + } + + $fields->enqueue(); +}; + +add_action( 'wp_footer', $fields->maybe_enqueue_scripts ); +add_action( 'admin_footer', $fields->maybe_enqueue_scripts ); diff --git a/example/index.php b/example/index.php index 5ba0f7c..3e09637 100644 --- a/example/index.php +++ b/example/index.php @@ -1,11 +1,9 @@ 'tangible-field-example', 'title' => 'Tangible Field Example', @@ -15,8 +13,8 @@ 'file_path' => __FILE__, 'base_path' => plugin_basename( __FILE__ ), 'dir_path' => plugin_dir_path( __FILE__ ), - 'url' => plugins_url( '/', __FILE__ ), - 'assets_url' => plugins_url( '/../assets', __FILE__ ), + 'url' => framework\module_url( '/', __FILE__ ), + 'assets_url' => framework\module_url( '/../assets', __FILE__ ), ]); if (!function_exists('tangible_field_example')) {