🏠 Root
/
home
/
artorgp
/
www
/
wp-content
/
plugins
/
visual-portfolio
/
gutenberg
/
block
/
Editing: transforms.js
import { createBlock } from '@wordpress/blocks'; export default { from: [ // Transform from default Gallery block. { type: 'block', blocks: [ 'core/gallery' ], isMatch( attributes, blockData ) { return ( ( blockData && blockData.innerBlocks && blockData.innerBlocks.length ) || ( attributes && attributes.images && attributes.images.length ) ); }, transform( attributes, innerBlocks ) { const { className } = attributes; // New gallery since WordPress 5.9 const isNewGallery = innerBlocks && innerBlocks.length; let images = []; if ( isNewGallery ) { images = innerBlocks.map( ( img ) => ( { id: parseInt( img.attributes.id, 10 ), imgUrl: img.attributes.url, imgThumbnailUrl: img.attributes.url, title: img.attributes.caption, url: ( img.attributes.linkDestination === 'custom' || img.attributes.linkDestination === 'attachment' ) && img.attributes.href ? img.attributes.href : '', } ) ); } else { images = attributes.images.map( ( img ) => ( { id: parseInt( img.id, 10 ), imgUrl: img.fullUrl, imgThumbnailUrl: img.url, title: img.caption, } ) ); } return createBlock( 'visual-portfolio/block', { setup_wizard: 'false', content_source: 'images', items_count: -1, layout: 'masonry', items_style_fly__align: 'bottom-center', masonry_columns: parseInt( attributes.columns, 10 ) || 3, items_click_action: attributes.linkTo === 'none' && ! isNewGallery ? 'false' : 'url', images, className, } ); }, }, // Transform from default Latest Posts block. { type: 'block', blocks: [ 'core/latest-posts' ], transform( attributes ) { const { className, postLayout, columns = 3, postsToShow = 6, displayPostContent, displayPostContentRadio, excerptLength, displayPostDate, orderBy = 'date', order = 'desc', categories, } = attributes; return createBlock( 'visual-portfolio/block', { content_source: 'post-based', posts_source: 'post', posts_order_by: orderBy, posts_order_direction: order, posts_taxonomies: categories ? [ categories ] : false, items_count: postsToShow, layout: 'grid', grid_columns: postLayout === 'grid' ? columns : 1, items_style: 'default', items_style_default__show_categories: false, items_style_default__show_date: displayPostDate ? 'true' : 'false', items_style_default__show_excerpt: displayPostContent, items_style_default__excerpt_words_count: displayPostContentRadio === 'full_post' ? 100 : excerptLength, items_style_default__align: 'left', items_style_default__show_read_more: displayPostContent ? 'true' : 'false', className, } ); }, }, ], };
Save
Cancel