Skip to content

Instantly share code, notes, and snippets.

View itsdavidmorgan's full-sized avatar

David Morgan itsdavidmorgan

View GitHub Profile
@itsdavidmorgan
itsdavidmorgan / columns.html
Created October 12, 2018 16:44
HTML Columns Inline Styles
<div style="float: left; width: 50%; padding-right: 12px; box-sizing: border-box;">
<p>Column one content...</p>
</div>
<div style="float: left; width: 50%; padding-left: 12px; box-sizing: border-box;">
<p>Column two content...</p>
</div>
@itsdavidmorgan
itsdavidmorgan / block-alignment-support.php
Last active July 31, 2018 17:45
Gutenberg Block Alignment Theme Support
function block_lite_setup() {
/*
* Enable support for wide alignment class for Gutenberg blocks.
*/
add_theme_support( 'align-wide' );
}
add_action( 'after_setup_theme', 'block_lite_setup' );
@itsdavidmorgan
itsdavidmorgan / index-enqueue.php
Last active May 14, 2018 14:55
Enqueue Scripts and Styles Gutenberg Block
function organic_profile_block() {
// Register the block with WP using our namespacing
// We also specify the scripts and styles to be used in the Gutenberg interface
register_block_type( 'profile/block', array(
'editor_script' => 'organic-profile-block-script',
'editor_style' => 'organic-profile-block-editor-style',
'style' => 'organic-profile-block-frontend-style',
) );
@itsdavidmorgan
itsdavidmorgan / index-registration.php
Last active April 24, 2024 08:22
Register Scripts and Styles Gutenberg Block
<?php
function organic_profile_block() {
// Scripts.
wp_register_script(
'organic-profile-block-script', // Handle.
plugins_url( 'block.js', __FILE__ ), // Block.js: We register the block here.
array( 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n', 'wp-editor' ), // Dependencies, defined above.
filemtime( plugin_dir_path( __FILE__ ) . 'block.js' ),
true // Load script in footer.
@itsdavidmorgan
itsdavidmorgan / saveBlock.js
Last active November 12, 2018 18:37
Save Custom Block Output
save: function (props) {
var attributes = props.attributes
var alignment = props.attributes.alignment
var facebookURL = props.attributes.facebookURL
var twitterURL = props.attributes.twitterURL
var instagramURL = props.attributes.instagramURL
var linkedURL = props.attributes.linkedURL
var emailAddress = props.attributes.emailAddress
return (
@itsdavidmorgan
itsdavidmorgan / editElements.js
Last active November 12, 2018 18:35
Setup Block Elements For Editor
el('div', { className: props.className },
el('div', {
className: attributes.mediaID ? 'organic-profile-image image-active' : 'organic-profile-image image-inactive',
style: attributes.mediaID ? { backgroundImage: 'url(' + attributes.mediaURL + ')' } : {}
},
el(MediaUpload, {
onSelect: onSelectImage,
type: 'image',
value: attributes.mediaID,
render: function (obj) {
@itsdavidmorgan
itsdavidmorgan / example-element.html
Created January 8, 2018 22:44
Example Block Element HTML
<div class="components-block-description">
<p>Add links to your social media profiles.</p>
</div>
@itsdavidmorgan
itsdavidmorgan / exampleElement.js
Created January 8, 2018 22:40
Example Block Element
el( 'div', { className: 'components-block-description' },
el( 'p', {}, i18n.__( 'Add links to your social media profiles.' ) ),
),
@itsdavidmorgan
itsdavidmorgan / editInspectorControls.js
Last active November 12, 2018 18:34
Inspector Options For The Profile Block
el(InspectorControls, { key: 'inspector' }, // Display the block options in the inspector panel.
el(components.PanelBody, {
title: i18n.__('Social Media Links'),
className: 'block-social-links',
initialOpen: true
},
el('p', {}, i18n.__('Add links to your social media profiles.')),
// Facebook social media text field option.
el(TextControl, {
type: 'url',
@itsdavidmorgan
itsdavidmorgan / editBlockControls.js
Last active November 12, 2018 18:26
Setup Block Controls For Profile Block
el(BlockControls, { key: 'controls' }, // Display controls when the block is clicked on.
el('div', { className: 'components-toolbar' },
el(MediaUpload, {
onSelect: onSelectImage,
type: 'image',
render: function (obj) {
return el(components.Button, {
className: 'components-icon-button components-toolbar__control',
onClick: obj.open
},