From 4202c94e21c500752e3528a57c5583fac03f2de5 Mon Sep 17 00:00:00 2001 From: Antoine M Date: Thu, 23 Nov 2023 16:28:13 +0100 Subject: [PATCH] renaming the php entrypoint and some internationalization testing --- homegrade-blocks.php | 257 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 257 insertions(+) create mode 100644 homegrade-blocks.php diff --git a/homegrade-blocks.php b/homegrade-blocks.php new file mode 100644 index 0000000..07dea2a --- /dev/null +++ b/homegrade-blocks.php @@ -0,0 +1,257 @@ + 'homegrade-blocks', + 'title' => __('Blocs Homegrade ', 'homegrade-blocks'), + 'icon' => 'heart', + + ], + ], + $categories + ); +} +add_action('block_categories_all', 'homegrade_add_block_categories', 25, 2); + + +/* --------------------------- + REGISTER BLOCKS + ---------------------------*/ +function create_block_multiblocks_block_init() +{ + + wp_register_script( + 'internationnalisation-script', + plugins_url('/blocks/internationnalisation/build/index.js', __FILE__), + array('wp-i18n'), + ); + + + // Dynamics + register_block_type(__DIR__ . '/blocks/questions-container/build'); + register_block_type(__DIR__ . '/blocks/vocabulaire-summary/build'); + register_block_type(__DIR__ . '/blocks/content-page-header/build'); + register_block_type(__DIR__ . '/blocks/communiques-presse-feed/build'); + register_block_type(__DIR__ . '/blocks/kit-presse/build'); + register_block_type(__DIR__ . '/blocks/press-photo-kit/build'); + register_block_type(__DIR__ . '/blocks/press-reviews/build'); + register_block_type(__DIR__ . '/blocks/offres-emplois/build'); + register_block_type(__DIR__ . '/blocks/internationnalisation/build'); + + // Statics + register_block_type(__DIR__ . '/blocks/focused-thematique/build'); + register_block_type(__DIR__ . '/blocks/focused-schema/build'); + register_block_type(__DIR__ . '/blocks/points-cles/build'); + register_block_type(__DIR__ . '/blocks/content-heading/build'); + register_block_type(__DIR__ . '/blocks/picture-banner/build'); + register_block_type(__DIR__ . '/blocks/highlight/build'); + register_block_type(__DIR__ . '/blocks/aside/build'); + register_block_type(__DIR__ . '/blocks/plus-loin/build'); + register_block_type(__DIR__ . '/blocks/chapitrage-thematique/build'); + register_block_type(__DIR__ . '/blocks/timeline/build'); + register_block_type(__DIR__ . '/blocks/staff-list/build'); + register_block_type(__DIR__ . '/blocks/staff-member/build'); + register_block_type(__DIR__ . '/blocks/section-titling/build'); + register_block_type(__DIR__ . '/blocks/accordeon/build'); + register_block_type(__DIR__ . '/blocks/column-cards/build'); + register_block_type(__DIR__ . '/blocks/text-image/build'); + register_block_type(__DIR__ . '/blocks/icon/build'); + register_block_type(__DIR__ . '/blocks/tips-to-know/build'); + + // CONTAINERS (STATIC) + register_block_type(__DIR__ . '/blocks/content-box/build'); + + // CHILDREN (STATIC) + register_block_type(__DIR__ . '/blocks/monoblock/build'); // — ALLOWED IN GREYBOX / WHITE BOX + + + + + // SET SCRIPT TRANSLATIONS + wp_set_script_translations("internationnalisation-script", 'homegrade-blocks', plugin_basename(__DIR__) . '/languages/'); + write_log(plugin_basename(__DIR__) . '/languages/'); + // wp_set_script_translations("internationnalisation", 'homegrade-blocks', plugin_basename(__DIR__) . '/languages/'); +} +add_action('init', 'create_block_multiblocks_block_init'); + + +/* --------------------------- + ENQUEUE EDITOR JS CONTEXT + ---------------------------*/ +function homegrade_blocks_enqueue_editor_assets() +{ + + $asset_file = include(plugin_dir_path(__FILE__) . 'build/index.asset.php'); + wp_enqueue_script('homegrade-blocks-script', plugins_url('build/index.js', __FILE__), $asset_file['dependencies'], $asset_file['version']); + wp_enqueue_style('blocks-course-plugin-boilerplate-style', plugins_url('build/index.css', __FILE__)); +} + +add_action('enqueue_block_editor_assets', 'homegrade_blocks_enqueue_editor_assets'); + + + +/* ------------------------------------- + ENQUEUE SCRIPTS AND STYLES FOR FRONT + -------------------------------------*/ +function blocks_course_plugin_enqueue_assets() +{ + $asset_file = include(plugin_dir_path(__FILE__) . 'build/index.asset.php'); + wp_enqueue_script('homegrade-blocks-tooltipjs', plugin_dir_url(__FILE__) . 'build/tooltipFront.js'); + wp_enqueue_style('homegrade-blocks-tooltipcss', plugin_dir_url(__FILE__) . 'src/format-types/tooltip/tooltip.css'); + wp_enqueue_script('homegrade-blocks-brochurejs', plugin_dir_url(__FILE__) . 'src/format-types/brochure/brochure-front.js'); + + // #PASSING TRANSLATIONS + wp_register_script('homegrade-blocks-brochurejs', plugin_dir_url(__FILE__) . 'src/format-types/brochure/brochure-front.js'); + + $translation_array_brochure_link = array( + 'download' => __('Télécharger', 'homegrade-blocks'), + ); + wp_localize_script('homegrade-blocks-brochurejs', 'textTranslationsBrochureLink', $translation_array_brochure_link); + + wp_enqueue_script('homegrade-blocks-brochurejs'); + + + + + wp_enqueue_style('homegrade-blocks-brochurecss', plugin_dir_url(__FILE__) . 'src/format-types/brochure/brochure.css'); + + wp_localize_script('homegrade-blocks-brochurejs', 'img_path_datas', array( + 'downloadIconPath' => plugin_dir_url(__FILE__) . '/src/img/icon_brochure_download.svg' + )); +} +add_action('wp_enqueue_scripts', 'blocks_course_plugin_enqueue_assets'); + + +function add_type_attribute($tag, $handle, $src) +{ + // if not your script, do nothing and return original $tag + if ('homegrade-blocks-tooltipjs' !== $handle) { + return $tag; + } + // change the script tag by adding type="module" and return it. + $tag = ''; + return $tag; +} +add_filter('script_loader_tag', 'add_type_attribute', 10, 3); + +/* --------------------------- + ALLOWED BLOCKS + ---------------------------*/ + +function homegrade_allowed_block_types($allowed_blocks, $editor_context) +{ + if ('conseils' === $editor_context->post->post_type) { + $allowed_blocks = array( + 'core/paragraph', + 'core/list', + 'core/list-item', + 'homegrade-content-blocks/chapter-header', + 'homegrade-content-blocks/points-cles', + 'homegrade-content-blocks/questions-container' + ); + } + + + if ('fiche-questions' === $editor_context->post->post_type) { + $allowed_blocks = array( + 'core/paragraph', + 'core/heading', + 'core/list', + 'core/list-item', + 'homegrade-content-blocks/chapter-header', + 'homegrade-content-blocks/points-cles', + 'homegrade-content-blocks/questions-container' + ); + } + return $allowed_blocks; + + // $blocks = WP_Block_Type_Registry::get_instance()->get_all_registered(); + // write_log($blocks); + ####ONLY DEREGISTER FEW BLOCKS + // get all the registered blocks + // $blocks = WP_Block_Type_Registry::get_instance()->get_all_registered(); + // write_log($blocks); + // then disable some of them + // unset($blocks['core/paragraph']); + // unset($blocks['core/heading']); + + // return the new list of allowed blocks + // return array_keys($blocks); +} + +// add_filter('homegrade_allowed_block_types', 'homegrade_allowed_block_types', 25, 2); + + + +function homegrade_allowed_block_types_all($block_editor_context, $editor_context) +{ + if ('conseils' === $editor_context->post->post_type) { + // write_log($editor_context); + } + if (!empty($editor_context->post)) { + return array( + 'core/paragraph', + 'core/heading', + 'core/list', + ); + } + + return $block_editor_context; +} + +// add_filter('allowed_block_types_all', 'homegrade_allowed_block_types_all', 10, 2); +/* ------------------------------------- + POST TYPE TEMPLATES + -------------------------------------*/ +include_once('templates.php'); + + + + +/* ------------------------------------- + CORE BLOCKS ADJUSTMENTS + -------------------------------------*/ +function enqueue_block_editor_adjustments() +{ + + wp_register_script( + 'block_editor_adjustments', + plugin_dir_url(__FILE__) . 'block_editor_adjustments.js', + ['wp-blocks', 'wp-dom', 'wp-dom-ready', 'wp-edit-post'], + filemtime(plugin_dir_path(__FILE__) . 'block_editor_adjustments.js') + + ); + + wp_enqueue_script('block_editor_adjustments'); +} + + +// add_action('enqueue_block_editor_assets', 'enqueue_block_editor_adjustments'); + + +// ###### PHP INTERNATIONNALISATION +// load_plugin_textdomain('homegrade-blocks', false, plugin_basename(dirname(__FILE_)) . '/languages'); + +add_action('init', 'wpdocs_load_textdomain'); + +function wpdocs_load_textdomain() +{ + load_plugin_textdomain('homegrade-blocks', false, dirname(plugin_basename(__FILE__)) . '/languages'); + // write_log(dirname(plugin_basename(__FILE__)) . '/languages'); + // load_plugin_textdomain('wpdocs_textdomain', false,); +}