renaming the php entrypoint and some internationalization testing
This commit is contained in:
parent
ec8f750bbf
commit
4202c94e21
257
homegrade-blocks.php
Normal file
257
homegrade-blocks.php
Normal file
|
|
@ -0,0 +1,257 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Plugin Name: Homegrade Blocks
|
||||
* Description: Un série de Blocks sur mesure pour l'écriture du contenu Homegrade
|
||||
* Author: Deligraph
|
||||
* Text Domain: homegrade-blocks
|
||||
* Domain Path: /languages
|
||||
*/
|
||||
|
||||
/* ---------------------------
|
||||
BLOCK CATEGORY
|
||||
---------------------------*/
|
||||
function homegrade_add_block_categories($categories)
|
||||
{
|
||||
return array_merge(
|
||||
|
||||
[
|
||||
[
|
||||
'slug' => '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 = '<script type="module" src="' . esc_url($src) . '"></script>';
|
||||
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,);
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user