commit
82a120912f
|
@ -67,7 +67,11 @@ function tainacan_blocks_register_categories($categories, $editor_context) {
|
||||||
array(
|
array(
|
||||||
array(
|
array(
|
||||||
'slug' => 'tainacan-blocks',
|
'slug' => 'tainacan-blocks',
|
||||||
'title' => __( 'Tainacan', 'tainacan' ),
|
'title' => __( 'Tainacan Blocks', 'tainacan' ),
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'slug' => 'tainacan-blocks-variations',
|
||||||
|
'title' => __( 'Tainacan Query Loop Variations', 'tainacan' ),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -82,6 +86,7 @@ function tainacan_blocks_register_and_enqueue_all_blocks() {
|
||||||
if ( is_admin() ) {
|
if ( is_admin() ) {
|
||||||
tainacan_blocks_get_category_icon_script();
|
tainacan_blocks_get_category_icon_script();
|
||||||
tainacan_blocks_get_common_editor_styles();
|
tainacan_blocks_get_common_editor_styles();
|
||||||
|
tainacan_blocks_get_variations_script();
|
||||||
}
|
}
|
||||||
// May be needed outside the editor, if server side render is used
|
// May be needed outside the editor, if server side render is used
|
||||||
foreach(TAINACAN_BLOCKS as $block_slug => $block_options) {
|
foreach(TAINACAN_BLOCKS as $block_slug => $block_options) {
|
||||||
|
@ -212,6 +217,12 @@ function tainacan_blocks_get_plugin_js_settings(){
|
||||||
global $TAINACAN_BASE_URL;
|
global $TAINACAN_BASE_URL;
|
||||||
global $wp_version;
|
global $wp_version;
|
||||||
|
|
||||||
|
$Tainacan_Collections = \Tainacan\Repositories\Collections::get_instance();
|
||||||
|
$collections = $Tainacan_Collections->fetch( [], 'OBJECT' );
|
||||||
|
foreach ( $collections as $col ) {
|
||||||
|
$cpts[$col->get_db_identifier()] = $col->get_name();
|
||||||
|
}
|
||||||
|
|
||||||
$settings = [
|
$settings = [
|
||||||
'wp_version' => $wp_version,
|
'wp_version' => $wp_version,
|
||||||
'root' => esc_url_raw( rest_url() ) . 'tainacan/v2',
|
'root' => esc_url_raw( rest_url() ) . 'tainacan/v2',
|
||||||
|
@ -219,7 +230,8 @@ function tainacan_blocks_get_plugin_js_settings(){
|
||||||
'base_url' => $TAINACAN_BASE_URL,
|
'base_url' => $TAINACAN_BASE_URL,
|
||||||
'admin_url' => admin_url(),
|
'admin_url' => admin_url(),
|
||||||
'site_url' => site_url(),
|
'site_url' => site_url(),
|
||||||
'theme_items_list_url' => esc_url_raw( get_site_url() ) . '/' . \Tainacan\Theme_Helper::get_instance()->get_items_list_slug()
|
'theme_items_list_url' => esc_url_raw( get_site_url() ) . '/' . \Tainacan\Theme_Helper::get_instance()->get_items_list_slug(),
|
||||||
|
'collections_post_types' => $cpts
|
||||||
];
|
];
|
||||||
|
|
||||||
return $settings;
|
return $settings;
|
||||||
|
@ -286,3 +298,22 @@ function tainacan_blocks_get_category_icon_script() {
|
||||||
$TAINACAN_VERSION
|
$TAINACAN_VERSION
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Registers the script that inserts the Query Loop Block variations
|
||||||
|
*/
|
||||||
|
function tainacan_blocks_get_variations_script() {
|
||||||
|
global $TAINACAN_BASE_URL;
|
||||||
|
global $TAINACAN_VERSION;
|
||||||
|
|
||||||
|
wp_enqueue_script(
|
||||||
|
'tainacan-blocks-query-variations',
|
||||||
|
$TAINACAN_BASE_URL . '/assets/js/tainacan_blocks_query_variations.js',
|
||||||
|
array('wp-blocks', 'wp-components'),
|
||||||
|
$TAINACAN_VERSION
|
||||||
|
);
|
||||||
|
|
||||||
|
$block_settings = tainacan_blocks_get_plugin_js_settings();
|
||||||
|
wp_localize_script( 'tainacan-blocks-query-variations', 'tainacan_blocks', $block_settings );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -49,6 +49,8 @@
|
||||||
var g2 = el('g', { transform: 'translate(-85.490815,-209.14412)' });
|
var g2 = el('g', { transform: 'translate(-85.490815,-209.14412)' });
|
||||||
var svgIcon = el( 'svg', { width: 20, height: 20, viewBox: '0 0 20 20'}, path4, path6, path8, path10, path12, path14, path16, path18, path20, g1, g2);
|
var svgIcon = el( 'svg', { width: 20, height: 20, viewBox: '0 0 20 20'}, path4, path6, path8, path10, path12, path14, path16, path18, path20, g1, g2);
|
||||||
|
|
||||||
if (wp.blocks.updateCategory)
|
if (wp.blocks.updateCategory) {
|
||||||
wp.blocks.updateCategory( 'tainacan-blocks', { icon: svgIcon } );
|
wp.blocks.updateCategory( 'tainacan-blocks', { icon: svgIcon } );
|
||||||
|
wp.blocks.updateCategory( 'tainacan-blocks-variations', { icon: svgIcon } );
|
||||||
|
}
|
||||||
} )();
|
} )();
|
|
@ -0,0 +1,48 @@
|
||||||
|
const { registerBlockVariation } = wp.blocks;
|
||||||
|
const { __ } = wp.i18n;
|
||||||
|
import icon from '../blocks/items-list/icon';
|
||||||
|
|
||||||
|
const POST_TYPES = tainacan_blocks.collections_post_types;
|
||||||
|
|
||||||
|
Object.keys(POST_TYPES).forEach((postType) => {
|
||||||
|
const postName = POST_TYPES[postType];
|
||||||
|
const VARIATION_NAME = 'tainacan-items-' + postType;
|
||||||
|
|
||||||
|
registerBlockVariation( 'core/query', {
|
||||||
|
name: VARIATION_NAME,
|
||||||
|
title: postName,
|
||||||
|
icon: icon,
|
||||||
|
category: 'tainacan-blocks-variations',
|
||||||
|
description: __('Displays a list of Tainacan itens', 'tainacan'),
|
||||||
|
isActive: ( { namespace, query } ) => {
|
||||||
|
return (
|
||||||
|
namespace === VARIATION_NAME
|
||||||
|
&& query.postType === postType
|
||||||
|
);
|
||||||
|
},
|
||||||
|
attributes: {
|
||||||
|
namespace: VARIATION_NAME,
|
||||||
|
query: {
|
||||||
|
postType: postType,
|
||||||
|
perPage: 12,
|
||||||
|
offset: 0
|
||||||
|
},
|
||||||
|
align: 'wide',
|
||||||
|
displayLayout: {
|
||||||
|
type: 'flex',
|
||||||
|
columns: 4
|
||||||
|
}
|
||||||
|
},
|
||||||
|
allowedControls: [ 'inherit', 'order', 'taxQuery', 'search' ],
|
||||||
|
innerBlocks: [
|
||||||
|
[
|
||||||
|
'core/post-template',
|
||||||
|
{},
|
||||||
|
[
|
||||||
|
[ 'core/post-featured-image' ],
|
||||||
|
[ 'core/post-title' ]
|
||||||
|
],
|
||||||
|
]
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
});
|
|
@ -9,6 +9,7 @@ module.exports = {
|
||||||
tainacan_pages_common_scripts: './src/views/tainacan-pages-common-scripts.js',
|
tainacan_pages_common_scripts: './src/views/tainacan-pages-common-scripts.js',
|
||||||
tainacan_blocks_common_scripts: './src/views/gutenberg-blocks/tainacan-blocks-common-scripts.js',
|
tainacan_blocks_common_scripts: './src/views/gutenberg-blocks/tainacan-blocks-common-scripts.js',
|
||||||
tainacan_blocks_category_icon: './src/views/gutenberg-blocks/js/tainacan-blocks-category-icon.js',
|
tainacan_blocks_category_icon: './src/views/gutenberg-blocks/js/tainacan-blocks-category-icon.js',
|
||||||
|
tainacan_blocks_query_variations: './src/views/gutenberg-blocks/js/tainacan-blocks-query-variations.js',
|
||||||
|
|
||||||
block_terms_list: './src/views/gutenberg-blocks/blocks/terms-list/index.js',
|
block_terms_list: './src/views/gutenberg-blocks/blocks/terms-list/index.js',
|
||||||
block_items_list: './src/views/gutenberg-blocks/blocks/items-list/index.js',
|
block_items_list: './src/views/gutenberg-blocks/blocks/items-list/index.js',
|
||||||
|
|
Loading…
Reference in New Issue