admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('aibui_nonce'), ) ); } // Charger les styles et scripts pour la page account du plugin AI Builder $current_screen = get_current_screen(); if ($current_screen && strpos($current_screen->id, 'aibui-assistant') !== false) { wp_enqueue_style( 'ai-builder-account-style', plugin_dir_url(__FILE__) . 'assets/css/account.css', [], filemtime(plugin_dir_path(__FILE__) . 'assets/css/account.css') ); wp_enqueue_script( 'ai-builder-config', plugin_dir_url(__FILE__) . 'config.js', [], '1.0', true ); wp_enqueue_script( 'ai-builder-account', plugin_dir_url(__FILE__) . 'assets/js/account.js', ['ai-builder-config'], '1.0', true ); // Injection des variables JS pour AJAX et le nonce wp_localize_script( 'ai-builder-account', 'aiBuilderVars', array( 'ajaxurl' => admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('aibui_nonce'), 'accountUrl' => admin_url('admin.php?page=aibui-account'), ) ); } else if ($current_screen && strpos($current_screen->id, 'aibui-credits') !== false) { wp_enqueue_script( 'ai-builder-credits', plugin_dir_url(__FILE__) . 'assets/js/credits.js', ['ai-builder-config'], '1.0', true ); // Injection des variables JS pour AJAX et le nonce wp_localize_script( 'ai-builder-credits', 'aiBuilderVars', array( 'ajaxurl' => admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('aibui_nonce'), ) ); wp_enqueue_style( 'ai-builder-credits-additional-style', plugin_dir_url(__FILE__) . 'assets/css/credits-additional.css', [], '1.0' ); wp_enqueue_style( 'ai-builder-credits-style', plugin_dir_url(__FILE__) . 'assets/css/credits.css', [], '1.0' ); wp_enqueue_script( 'ai-builder-config', plugin_dir_url(__FILE__) . 'config.js', [], '1.0', true ); } else if ($current_screen && strpos($current_screen->id, 'aibui-reset-password') !== false) { wp_enqueue_style( 'ai-builder-reset-password-style', plugin_dir_url(__FILE__) . 'assets/css/reset-password.css', [], '1.0' ); wp_enqueue_script( 'ai-builder-config', plugin_dir_url(__FILE__) . 'config.js', [], '1.0', true ); wp_enqueue_script( 'ai-builder-reset-password', plugin_dir_url(__FILE__) . 'assets/js/reset-password.js', ['ai-builder-config'], '1.0', true ); // Injection des variables JS pour AJAX et le nonce wp_localize_script( 'ai-builder-reset-password', 'aiBuilderVars', array( 'ajaxurl' => admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('aibui_nonce'), 'accountUrl' => admin_url('admin.php?page=aibui-account'), ) ); } else if ($current_screen && strpos($current_screen->id, 'aibui-tuto') !== false) { wp_enqueue_style( 'ai-builder-tutorial-style', plugin_dir_url(__FILE__) . 'assets/css/tutorial.css', [], '1.0' ); wp_enqueue_script( 'ai-builder-config', plugin_dir_url(__FILE__) . 'config.js', [], '1.0', true ); } }); add_action('wp_enqueue_scripts', function () { wp_enqueue_style( 'aibui-force-alignfull', plugin_dir_url(__FILE__) . 'assets/css/force-align-full.css', [], '1.0' ); // Charger les styles CSS du bloc AI Image côté frontend wp_enqueue_style( 'ai-builder-ai-image-frontend', plugin_dir_url(__FILE__) . 'assets/js/build/index.css', [], filemtime(plugin_dir_path(__FILE__) . 'assets/js/build/index.css') ); }); add_action('enqueue_block_editor_assets', function () { wp_enqueue_style( 'aibui-force-alignfull-editor', plugin_dir_url(__FILE__) . 'assets/css/force-align-full.css', [], '1.0' ); }); add_action('enqueue_block_editor_assets', function () { wp_enqueue_script( 'ai-builder-blocks', plugin_dir_url(__FILE__) . 'assets/js/build/index.js', [ 'wp-blocks', 'wp-block-editor', 'wp-element', 'wp-components', 'wp-i18n', 'wp-api-fetch', 'wp-hooks' ], filemtime(plugin_dir_path(__FILE__) . 'assets/js/build/index.js'), true ); }); // Enregistrer le bloc côté PHP add_action('init', function () { // Bloc AI Block register_block_type('ai-builder/ai-block', [ 'editor_script' => 'ai-builder-blocks', 'editor_style' => 'ai-builder-blocks-style', 'style' => 'ai-builder-blocks-style', 'render_callback' => function ($attributes) { // Le bloc AI Block ne s'affiche pas côté frontend car il est remplacé par le contenu généré return ''; } ]); // Bloc stat-bar (statique, pas de render_callback) register_block_type('ai-builder/stat-bar', [ 'editor_script' => 'ai-builder-blocks', 'editor_style' => 'ai-builder-blocks-style', 'style' => 'ai-builder-blocks-style', ]); }); add_action('after_setup_theme', function () { add_theme_support('align-wide'); }); add_action('wp_enqueue_scripts', function () { $css_dir = plugin_dir_path(__FILE__) . 'assets/css/'; $css_url = plugin_dir_url(__FILE__) . 'assets/css/'; foreach (glob($css_dir . '*.css') as $css_file) { $filename = basename($css_file); wp_enqueue_style('ai-builder-' . $filename, $css_url . $filename, [], '1.0'); } }); add_action('enqueue_block_editor_assets', function () { $css_dir = plugin_dir_path(__FILE__) . 'assets/css/'; $css_url = plugin_dir_url(__FILE__) . 'assets/css/'; foreach (glob($css_dir . '*.css') as $css_file) { $filename = basename($css_file); wp_enqueue_style('ai-builder-editor-' . $filename, $css_url . $filename, [], '1.0'); } }); // Initialiser le gestionnaire AJAX new AIBUI_Ajax_Handler();