From 00d0861014139dc3f3e0fe74818d4760f27c192a Mon Sep 17 00:00:00 2001 From: Steve Ross Date: Sun, 23 Nov 2025 17:34:49 +0000 Subject: [PATCH] default content block that uses core inner blocks --- app/ACF/CloneGroup.php | 50 +- app/Admin/Blocks.php | 20 + app/Blocks/BadExample.php | 65 --- app/Utilities/CssClasses.php | 3 +- app/View/Composers/App.php | 3 - composer.json | 3 +- functions.php | 15 +- ..._example.json => group_block_content.json} | 47 +- resources/acf/group_block_intro.json | 82 --- .../acf/group_clone_background_settings.json | 471 +----------------- ...ter.json => group_clone_block_footer.json} | 59 ++- resources/acf/group_clone_block_intro.json | 149 ++++++ resources/acf/group_clone_block_settings.json | 100 +++- resources/acf/group_clone_button.json | 71 ++- .../views/blocks/Content/Content.blade.php | 18 + resources/views/blocks/Content/Content.jpg | Bin 0 -> 41347 bytes resources/views/blocks/Content/Content.php | 111 +++++ .../Content.scss} | 0 resources/views/components/button.blade.php | 5 + resources/views/components/image.blade.php | 29 +- resources/views/layouts/app.blade.php | 25 +- resources/views/layouts/block.blade.php | 76 +-- .../views/partials/menu-off-canvas.blade.php | 28 ++ .../sections/{ => footer}/footer.blade.php | 0 resources/views/sections/footer/footer.scss | 0 .../sections/{ => header}/header.blade.php | 0 resources/views/sections/header/header.scss | 0 27 files changed, 698 insertions(+), 732 deletions(-) delete mode 100644 app/Blocks/BadExample.php rename resources/acf/{group_block_bad_example.json => group_block_content.json} (68%) delete mode 100644 resources/acf/group_block_intro.json rename resources/acf/{group_block_footer.json => group_clone_block_footer.json} (65%) create mode 100644 resources/acf/group_clone_block_intro.json create mode 100644 resources/views/blocks/Content/Content.blade.php create mode 100644 resources/views/blocks/Content/Content.jpg create mode 100644 resources/views/blocks/Content/Content.php rename resources/views/blocks/{bad-example.blade.php => Content/Content.scss} (100%) create mode 100644 resources/views/components/button.blade.php create mode 100644 resources/views/partials/menu-off-canvas.blade.php rename resources/views/sections/{ => footer}/footer.blade.php (100%) create mode 100644 resources/views/sections/footer/footer.scss rename resources/views/sections/{ => header}/header.blade.php (100%) create mode 100644 resources/views/sections/header/header.scss diff --git a/app/ACF/CloneGroup.php b/app/ACF/CloneGroup.php index 04052f0..ace0bcb 100644 --- a/app/ACF/CloneGroup.php +++ b/app/ACF/CloneGroup.php @@ -8,21 +8,51 @@ class CloneGroup { } - public function background() + public function block_background() { return [ 'contrast', - 'bg_type', 'bg_colour', 'bg_tint', - 'bg_opacity', - 'bg_image', - 'bg_video', - 'pattern', - 'pattern_top', - 'pattern_bottom', - 'padding_top', - 'padding_bottom', ]; } + + public function block_intro() + { + return [ + 'overline', + 'heading', + 'blurb', + 'intro_alignment', + ]; + } + + public function block_footer() + { + return [ + 'blurb_footer', + 'links', + 'footer_alignment', + ]; + } + + public function block_settings() + { + return [ + 'section_anchor_id', + 'padding_top', + 'padding_bottom', + 'container_width', + 'angle_status', + 'angle_position', + 'angle_direction', + 'angle_colour', + 'angle_tint', + ]; + } + + public function block_all() + { + return array_merge($this->block_intro(), $this->block_footer(), $this->block_settings(), $this->block_background()); + } } diff --git a/app/Admin/Blocks.php b/app/Admin/Blocks.php index 5825412..2917dc8 100644 --- a/app/Admin/Blocks.php +++ b/app/Admin/Blocks.php @@ -1,14 +1,30 @@ 'badegg', + 'title' => __('Provided by Bad Egg Digital'), + ], + ], $categories); + + return $categories; + } + public function blacklist() { // Reference: @@ -130,6 +146,10 @@ class Blocks 'core/social-links', ]; + $Content = new Content\Content(); + + $blacklist = array_diff($blacklist, $Content->inner_blocks()); + return array_values( array_diff( $blocks, $blacklist ) ); } } diff --git a/app/Blocks/BadExample.php b/app/Blocks/BadExample.php deleted file mode 100644 index 5419f9c..0000000 --- a/app/Blocks/BadExample.php +++ /dev/null @@ -1,65 +0,0 @@ - 'badegg/bad-example', - 'title' => __('Bad Example'), - 'description' => __('This is an example block'), - 'render_callback' => [ $this, 'render'], - 'category' => 'layout', - 'multiple' => false, - 'icon' => [ - 'src' => 'dismiss', - ], - 'supports' => [ - 'align' => false, - ], - ]); - } - - public function render($block) - { - $CssClasses = new Utilities\CssClasses; - $Colour = new Utilities\Colour; - $CloneGroup = new ACF\CloneGroup; - - $data = []; - - $fields = [ - 'heading', - 'blurb', - ]; - - $fields = array_merge($fields, $CloneGroup->background()); - - foreach($fields as $field): - $data[$field] = get_field($field); - endforeach; - - unset($block['data']); - $block['name'] = str_replace('acf/', '', $block['name']); - - $data = array_merge($data, $block); - $data['section_classes'] = $CssClasses->section($data); - $data['block'] = $block; - - $data['knockout'] = ($Colour->is_dark($data['bg_colour'], $data['bg_tint'], $data['contrast'])) ? null : 'knockout'; - - echo \Roots\view('blocks.bad-example', [ - 'data' => $data, - 'block' => $block, - ])->render(); - } -} diff --git a/app/Utilities/CssClasses.php b/app/Utilities/CssClasses.php index 9f95405..04dd80f 100644 --- a/app/Utilities/CssClasses.php +++ b/app/Utilities/CssClasses.php @@ -14,7 +14,8 @@ class CssClasses { $classes = [ 'section', - 'section-' . str_replace('acf/', '', $props['name']), + 'section-' . $props['name'], + // 'section-' . str_replace('acf/', '', $props['name']), 'bg-' . $this->colourTint([ 'colour' => @$props['bg_colour'], 'tint' => @$props['bg_tint'], diff --git a/app/View/Composers/App.php b/app/View/Composers/App.php index 2934c77..d4ca3cd 100644 --- a/app/View/Composers/App.php +++ b/app/View/Composers/App.php @@ -31,9 +31,6 @@ class App extends Composer 'VideoSrcset' => new Utilities\VideoSrcset, 'ImageSrcset' => new Utilities\ImageSrcset, 'siteName' => $this->siteName(), - 'company_legal' => get_field('badegg_company_legal', 'option'), - 'company_tel' => get_field('badegg_company_tel', 'option'), - 'company_email' => get_field('badegg_company_email', 'option'), ]; } } diff --git a/composer.json b/composer.json index 10f0436..97c8917 100644 --- a/composer.json +++ b/composer.json @@ -35,7 +35,8 @@ }, "autoload": { "psr-4": { - "App\\": "app/" + "App\\": "app/", + "Blocks\\": "resources/views/blocks" } }, "require": { diff --git a/functions.php b/functions.php index 53061a4..d5eb088 100644 --- a/functions.php +++ b/functions.php @@ -57,9 +57,22 @@ autoload_psr4('PostTypes'); autoload_psr4('ACF'); autoload_psr4('Utilities'); autoload_psr4('Admin'); -autoload_psr4('Blocks'); autoload_psr4('Ajax'); +function autoload_psr4_blocks() { + $path = __dir__ . '/resources/views/blocks/*'; + $namespace = 'Blocks\\'; + + foreach(glob($path, GLOB_ONLYDIR) as $directory) { + $name = basename($directory); + $class = $namespace . $name . '\\' . $name; + + new $class(); + } +} + +autoload_psr4_blocks(); + /* |-------------------------------------------------------------------------- | Register Sage Theme Files diff --git a/resources/acf/group_block_bad_example.json b/resources/acf/group_block_content.json similarity index 68% rename from resources/acf/group_block_bad_example.json rename to resources/acf/group_block_content.json index 46929d9..9ee60fc 100644 --- a/resources/acf/group_block_bad_example.json +++ b/resources/acf/group_block_content.json @@ -1,9 +1,9 @@ { - "key": "group_block_bad_example", - "title": "Block: Bad Example", + "key": "group_block_content", + "title": "Block: Content", "fields": [ { - "key": "field_676599038e31d", + "key": "field_67659ad8dc795", "label": "", "name": "", "aria-label": "", @@ -16,42 +16,7 @@ "class": "", "id": "" }, - "message": "

<\/span> Bad Example<\/h3>", - "new_lines": "wpautop", - "esc_html": 0 - }, - { - "key": "field_67659accdc794", - "label": "Content", - "name": "", - "aria-label": "", - "type": "tab", - "instructions": "", - "required": 0, - "conditional_logic": 0, - "wrapper": { - "width": "", - "class": "", - "id": "" - }, - "placement": "top", - "endpoint": 0 - }, - { - "key": "field_67659ad8dc795", - "label": "Example", - "name": "", - "aria-label": "", - "type": "message", - "instructions": "", - "required": 0, - "conditional_logic": 0, - "wrapper": { - "width": "", - "class": "", - "id": "" - }, - "message": "Place your block-specific custom fields here.", + "message": "You can insert a variety of blocks inside of this one to build your page or post.", "new_lines": "wpautop", "esc_html": 0 }, @@ -127,7 +92,7 @@ { "param": "block", "operator": "==", - "value": "acf\/badegg-bad-example" + "value": "acf\/badegg-content" } ] ], @@ -140,5 +105,5 @@ "active": true, "description": "", "show_in_rest": 0, - "modified": 1734712286 + "modified": 1763915024 } diff --git a/resources/acf/group_block_intro.json b/resources/acf/group_block_intro.json deleted file mode 100644 index 8c5494b..0000000 --- a/resources/acf/group_block_intro.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "key": "group_block_intro", - "title": "Clone: Block Intro", - "fields": [ - { - "key": "field_67659970db415", - "label": "Introduction", - "name": "", - "aria-label": "", - "type": "tab", - "instructions": "", - "required": 0, - "conditional_logic": 0, - "wrapper": { - "width": "", - "class": "", - "id": "" - }, - "placement": "top", - "endpoint": 0 - }, - { - "key": "field_676599964d3cc", - "label": "Heading", - "name": "heading", - "aria-label": "", - "type": "text", - "instructions": "", - "required": 0, - "conditional_logic": 0, - "wrapper": { - "width": "", - "class": "", - "id": "" - }, - "default_value": "", - "maxlength": "", - "placeholder": "", - "prepend": "", - "append": "" - }, - { - "key": "field_6765999d4d3cd", - "label": "Blurb", - "name": "blurb", - "aria-label": "", - "type": "textarea", - "instructions": "", - "required": 0, - "conditional_logic": 0, - "wrapper": { - "width": "", - "class": "", - "id": "" - }, - "default_value": "", - "maxlength": "", - "rows": 3, - "placeholder": "", - "new_lines": "" - } - ], - "location": [ - [ - { - "param": "widget", - "operator": "==", - "value": "rss" - } - ] - ], - "menu_order": 0, - "position": "normal", - "style": "default", - "label_placement": "top", - "instruction_placement": "label", - "hide_on_screen": "", - "active": true, - "description": "", - "show_in_rest": 0, - "modified": 1734711913 -} diff --git a/resources/acf/group_clone_background_settings.json b/resources/acf/group_clone_background_settings.json index c4474f7..7b63f06 100644 --- a/resources/acf/group_clone_background_settings.json +++ b/resources/acf/group_clone_background_settings.json @@ -2,33 +2,6 @@ "key": "group_clone_background_settings", "title": "Clone: Background Settings", "fields": [ - { - "key": "field_672d3ba78bc40", - "label": "Background Type", - "name": "bg_type", - "aria-label": "", - "type": "select", - "instructions": "", - "required": 0, - "conditional_logic": 0, - "wrapper": { - "width": "20", - "class": "", - "id": "" - }, - "choices": { - "0": "Solid Colour", - "image": "Still Photo", - "video": "Looping Video" - }, - "default_value": 0, - "return_format": "value", - "multiple": 0, - "allow_null": 0, - "ui": 0, - "ajax": 0, - "placeholder": "" - }, { "key": "field_67325dd23234e", "label": "Background Colour", @@ -39,26 +12,33 @@ "required": 0, "conditional_logic": 0, "wrapper": { - "width": "20", + "width": "50", "class": "", "id": "" }, "choices": { - "primary": "<\/i> Kimberly", - "secondary": "<\/i> Trendy Pink", - "tertiary": "<\/i> Turkish Rose", - "quaternary": "<\/i> Waikawa Gray", - "quinary": "<\/i> Boston Blue", + "primary": "<\/i> Prussian Blue", + "secondary": "<\/i> Sunset Orange", + "tertiary": "<\/i> Gold", + "quaternary": "<\/i> Moody Blue", + "quinary": "<\/i> Frangipani", + "0": "<\/i> White", "black": "<\/i> Black", - "0": "<\/i> White" + "quaternary-white": "<\/i> Moody Blue to White", + "quinary-white": "<\/i> Frangipani to White", + "white-quaternary": "<\/i> White to Moody Blue", + "white-quinary": "<\/i> White to Frangipani" }, "default_value": 0, "return_format": "value", "multiple": 0, "allow_null": 0, + "allow_in_bindings": 1, "ui": 1, "ajax": 0, - "placeholder": "" + "placeholder": "", + "create_options": 0, + "save_options": 0 }, { "key": "field_67325e213234f", @@ -70,7 +50,7 @@ "required": 0, "conditional_logic": 0, "wrapper": { - "width": "20", + "width": "50", "class": "", "id": "" }, @@ -87,9 +67,12 @@ "return_format": "value", "multiple": 0, "allow_null": 0, + "allow_in_bindings": 1, "ui": 1, "ajax": 0, - "placeholder": "" + "placeholder": "", + "create_options": 0, + "save_options": 0 }, { "key": "field_67350f526abf1", @@ -101,7 +84,7 @@ "required": 0, "conditional_logic": 0, "wrapper": { - "width": "20", + "width": "", "class": "", "id": "" }, @@ -116,413 +99,9 @@ "allow_null": 0, "ui": 0, "ajax": 0, - "placeholder": "" - }, - { - "key": "field_67325e3432350", - "label": "Opacity", - "name": "bg_opacity", - "aria-label": "", - "type": "range", - "instructions": "", - "required": 0, - "conditional_logic": [ - [ - { - "field": "field_672d3ba78bc40", - "operator": "!=", - "value": "0" - } - ] - ], - "wrapper": { - "width": "20", - "class": "", - "id": "" - }, - "default_value": 30, - "min": 5, - "max": 100, - "step": 5, - "prepend": "", - "append": "%" - }, - { - "key": "field_6734b234f9c47", - "label": "Pattern Edge", - "name": "pattern", - "aria-label": "", - "type": "select", - "instructions": "", - "required": 0, - "conditional_logic": 0, - "wrapper": { - "width": "20", - "class": "", - "id": "" - }, - "choices": { - "0": "Disabled", - "top": "Top", - "bottom": "Bottom", - "both": "Both" - }, - "default_value": 0, - "return_format": "value", - "multiple": 0, - "allow_null": 0, - "ui": 0, - "ajax": 0, - "placeholder": "" - }, - { - "key": "field_6734b2daf9c4b", - "label": "Top Pattern", - "name": "pattern_top", - "aria-label": "", - "type": "group", - "instructions": "", - "required": 0, - "conditional_logic": [ - [ - { - "field": "field_6734b234f9c47", - "operator": "==", - "value": "top" - } - ], - [ - { - "field": "field_6734b234f9c47", - "operator": "==", - "value": "both" - } - ] - ], - "wrapper": { - "width": "40", - "class": "", - "id": "" - }, - "layout": "block", - "sub_fields": [ - { - "key": "field_673514b45e977", - "label": "Colour", - "name": "colour", - "aria-label": "", - "type": "select", - "instructions": "", - "required": 0, - "conditional_logic": 0, - "wrapper": { - "width": "50", - "class": "", - "id": "" - }, - "choices": { - "primary": "<\/i> Kimberly", - "secondary": "<\/i> Trendy Pink", - "tertiary": "<\/i> Turkish Rose", - "quaternary": "<\/i> Waikawa Gray", - "quinary": "<\/i> Boston Blue", - "black": "<\/i> Black", - "0": "<\/i> White" - }, - "default_value": false, - "return_format": "", - "multiple": 0, - "allow_null": 0, - "ui": 1, - "ajax": 0, - "placeholder": "" - }, - { - "key": "field_673514d85e978", - "label": "Tint", - "name": "tint", - "aria-label": "", - "type": "select", - "instructions": "", - "required": 0, - "conditional_logic": 0, - "wrapper": { - "width": "50", - "class": "", - "id": "" - }, - "choices": { - "lightest": "Lightest", - "lighter": "Lighter", - "light": "Light", - "0": "None", - "dark": "Dark", - "darker": "Darker", - "darkest": "Darkest" - }, - "default_value": 0, - "return_format": "value", - "multiple": 0, - "allow_null": 0, - "ui": 0, - "ajax": 0, - "placeholder": "" - } - ] - }, - { - "key": "field_673514f15e979", - "label": "Bottom Pattern", - "name": "pattern_bottom", - "aria-label": "", - "type": "group", - "instructions": "", - "required": 0, - "conditional_logic": 0, - "wrapper": { - "width": "40", - "class": "", - "id": "" - }, - "layout": "block", - "sub_fields": [ - { - "key": "field_673514f15e97a", - "label": "Colour", - "name": "colour", - "aria-label": "", - "type": "select", - "instructions": "", - "required": 0, - "conditional_logic": 0, - "wrapper": { - "width": "50", - "class": "", - "id": "" - }, - "choices": { - "primary": "<\/i> Kimberly", - "secondary": "<\/i> Trendy Pink", - "tertiary": "<\/i> Turkish Rose", - "quaternary": "<\/i> Waikawa Gray", - "quinary": "<\/i> Boston Blue", - "black": "<\/i> Black", - "0": "<\/i> White" - }, - "default_value": false, - "return_format": "value", - "multiple": 0, - "allow_null": 0, - "ui": 1, - "ajax": 0, - "placeholder": "" - }, - { - "key": "field_673514f15e97b", - "label": "Tint", - "name": "tint", - "aria-label": "", - "type": "select", - "instructions": "", - "required": 0, - "conditional_logic": [ - [ - { - "field": "field_673514f15e97a", - "operator": "!=", - "value": "black" - } - ], - [ - { - "field": "field_673514f15e97a", - "operator": "!=", - "value": "0" - } - ] - ], - "wrapper": { - "width": "50", - "class": "", - "id": "" - }, - "choices": { - "lightest": "Lightest", - "lighter": "Lighter", - "light": "Light", - "0": "None", - "dark": "Dark", - "darker": "Darker", - "darkest": "Darkest" - }, - "default_value": 0, - "return_format": "value", - "multiple": 0, - "allow_null": 0, - "ui": 0, - "ajax": 0, - "placeholder": "" - } - ] - }, - { - "key": "field_672d3b128bc39", - "label": "Background Image", - "name": "bg_image", - "aria-label": "", - "type": "image", - "instructions": "", - "required": 0, - "conditional_logic": [ - [ - { - "field": "field_672d3ba78bc40", - "operator": "!=", - "value": "0" - } - ] - ], - "wrapper": { - "width": "", - "class": "", - "id": "" - }, - "return_format": "id", - "library": "all", - "min_width": "", - "min_height": "", - "min_size": "", - "max_width": "", - "max_height": "", - "max_size": "", - "mime_types": "", - "preview_size": "medium" - }, - { - "key": "field_672d3b228bc3a", - "label": "Background Video", - "name": "bg_video", - "aria-label": "", - "type": "group", - "instructions": "", - "required": 0, - "conditional_logic": [ - [ - { - "field": "field_672d3ba78bc40", - "operator": "==", - "value": "video" - } - ] - ], - "wrapper": { - "width": "", - "class": "", - "id": "" - }, - "layout": "block", - "sub_fields": [ - { - "key": "field_672d3b428bc3b", - "label": "Extra Small", - "name": "xs", - "aria-label": "", - "type": "file", - "instructions": "", - "required": 0, - "conditional_logic": 0, - "wrapper": { - "width": "20", - "class": "", - "id": "" - }, - "return_format": "array", - "library": "all", - "min_size": "", - "max_size": "", - "mime_types": "mp4" - }, - { - "key": "field_672d3b678bc3c", - "label": "Small", - "name": "sm", - "aria-label": "", - "type": "file", - "instructions": "", - "required": 0, - "conditional_logic": 0, - "wrapper": { - "width": "20", - "class": "", - "id": "" - }, - "return_format": "array", - "library": "all", - "min_size": "", - "max_size": "", - "mime_types": "mp4" - }, - { - "key": "field_672d3b728bc3d", - "label": "Medium", - "name": "md", - "aria-label": "", - "type": "file", - "instructions": "", - "required": 0, - "conditional_logic": 0, - "wrapper": { - "width": "20", - "class": "", - "id": "" - }, - "return_format": "array", - "library": "all", - "min_size": "", - "max_size": "", - "mime_types": "mp4" - }, - { - "key": "field_672d3b7a8bc3e", - "label": "Large", - "name": "lg", - "aria-label": "", - "type": "file", - "instructions": "", - "required": 0, - "conditional_logic": 0, - "wrapper": { - "width": "20", - "class": "", - "id": "" - }, - "return_format": "array", - "library": "all", - "min_size": "", - "max_size": "", - "mime_types": "mp4" - }, - { - "key": "field_672d3b838bc3f", - "label": "Extra Large", - "name": "xl", - "aria-label": "", - "type": "file", - "instructions": "", - "required": 0, - "conditional_logic": 0, - "wrapper": { - "width": "20", - "class": "", - "id": "" - }, - "return_format": "array", - "library": "all", - "min_size": "", - "max_size": "", - "mime_types": "mp4" - } - ] + "placeholder": "", + "create_options": 0, + "save_options": 0 } ], "location": [ @@ -543,5 +122,5 @@ "active": true, "description": "", "show_in_rest": 0, - "modified": 1733505903 + "modified": 1748194684 } diff --git a/resources/acf/group_block_footer.json b/resources/acf/group_clone_block_footer.json similarity index 65% rename from resources/acf/group_block_footer.json rename to resources/acf/group_clone_block_footer.json index 08e144c..aa0605d 100644 --- a/resources/acf/group_block_footer.json +++ b/resources/acf/group_clone_block_footer.json @@ -1,5 +1,5 @@ { - "key": "group_block_footer", + "key": "group_clone_block_footer", "title": "Clone: Block Footer", "fields": [ { @@ -7,7 +7,7 @@ "label": "Footer", "name": "", "aria-label": "", - "type": "tab", + "type": "accordion", "instructions": "", "required": 0, "conditional_logic": 0, @@ -16,7 +16,8 @@ "class": "", "id": "" }, - "placement": "top", + "open": 0, + "multi_expand": 0, "endpoint": 0 }, { @@ -53,7 +54,7 @@ "class": "", "id": "" }, - "layout": "table", + "layout": "block", "pagination": 0, "min": 0, "max": 2, @@ -85,6 +86,54 @@ "parent_repeater": "field_67659b7502137" } ] + }, + { + "key": "field_682fb9ff58080", + "label": "Alignment", + "name": "footer_alignment", + "aria-label": "", + "type": "select", + "instructions": "", + "required": 0, + "conditional_logic": 0, + "wrapper": { + "width": "", + "class": "", + "id": "" + }, + "choices": { + "centre": "Centre", + "left": "Left", + "right": "Right" + }, + "default_value": "centre", + "return_format": "value", + "multiple": 0, + "allow_null": 0, + "allow_in_bindings": 0, + "ui": 0, + "ajax": 0, + "placeholder": "", + "create_options": 0, + "save_options": 0 + }, + { + "key": "field_6828dac95eb68", + "label": "Footer (end)", + "name": "", + "aria-label": "", + "type": "accordion", + "instructions": "", + "required": 0, + "conditional_logic": 0, + "wrapper": { + "width": "", + "class": "", + "id": "" + }, + "open": 0, + "multi_expand": 0, + "endpoint": 1 } ], "location": [ @@ -105,5 +154,5 @@ "active": true, "description": "", "show_in_rest": 0, - "modified": 1734712326 + "modified": 1747958307 } diff --git a/resources/acf/group_clone_block_intro.json b/resources/acf/group_clone_block_intro.json new file mode 100644 index 0000000..db466f5 --- /dev/null +++ b/resources/acf/group_clone_block_intro.json @@ -0,0 +1,149 @@ +{ + "key": "group_clone_block_intro", + "title": "Clone: Block Intro", + "fields": [ + { + "key": "field_67659970db415", + "label": "Introduction", + "name": "", + "aria-label": "", + "type": "accordion", + "instructions": "", + "required": 0, + "conditional_logic": 0, + "wrapper": { + "width": "", + "class": "", + "id": "" + }, + "open": 0, + "multi_expand": 0, + "endpoint": 0 + }, + { + "key": "field_676599964d3cc", + "label": "Heading", + "name": "heading", + "aria-label": "", + "type": "textarea", + "instructions": "", + "required": 0, + "conditional_logic": 0, + "wrapper": { + "width": "", + "class": "hfont", + "id": "" + }, + "default_value": "", + "maxlength": "", + "allow_in_bindings": 0, + "rows": 2, + "placeholder": "", + "new_lines": "" + }, + { + "key": "field_6765999d4d3cd", + "label": "Blurb", + "name": "blurb", + "aria-label": "", + "type": "textarea", + "instructions": "", + "required": 0, + "conditional_logic": 0, + "wrapper": { + "width": "", + "class": "", + "id": "" + }, + "default_value": "", + "maxlength": "", + "rows": 3, + "placeholder": "", + "new_lines": "" + }, + { + "key": "field_68bf1126c2760", + "label": "Links", + "name": "links", + "aria-label": "", + "type": "repeater", + "instructions": "", + "required": 0, + "conditional_logic": 0, + "wrapper": { + "width": "", + "class": "", + "id": "" + }, + "layout": "block", + "pagination": 0, + "min": 0, + "max": 1, + "collapsed": "", + "button_label": "Add Button", + "rows_per_page": 20, + "sub_fields": [ + { + "key": "field_68bf1171c2761", + "label": "Link", + "name": "link", + "aria-label": "", + "type": "clone", + "instructions": "", + "required": 0, + "conditional_logic": 0, + "wrapper": { + "width": "", + "class": "", + "id": "" + }, + "clone": [ + "group_clone_button" + ], + "display": "seamless", + "layout": "block", + "prefix_label": 0, + "prefix_name": 0, + "parent_repeater": "field_68bf1126c2760" + } + ] + }, + { + "key": "field_6828dae1d1bb0", + "label": "Intro (end)", + "name": "", + "aria-label": "", + "type": "accordion", + "instructions": "", + "required": 0, + "conditional_logic": 0, + "wrapper": { + "width": "", + "class": "", + "id": "" + }, + "open": 0, + "multi_expand": 0, + "endpoint": 1 + } + ], + "location": [ + [ + { + "param": "widget", + "operator": "==", + "value": "rss" + } + ] + ], + "menu_order": 0, + "position": "normal", + "style": "default", + "label_placement": "top", + "instruction_placement": "label", + "hide_on_screen": "", + "active": true, + "description": "", + "show_in_rest": 0, + "modified": 1757498726 +} diff --git a/resources/acf/group_clone_block_settings.json b/resources/acf/group_clone_block_settings.json index 49b97d2..e7b1868 100644 --- a/resources/acf/group_clone_block_settings.json +++ b/resources/acf/group_clone_block_settings.json @@ -7,7 +7,7 @@ "label": "Settings", "name": "", "aria-label": "", - "type": "tab", + "type": "accordion", "instructions": "", "required": 0, "conditional_logic": 0, @@ -16,9 +16,59 @@ "class": "", "id": "" }, - "placement": "top", + "open": 0, + "multi_expand": 0, "endpoint": 0 }, + { + "key": "field_680016e0fac24", + "label": "Anchor ID", + "name": "section_anchor_id", + "aria-label": "", + "type": "text", + "instructions": "", + "required": 0, + "conditional_logic": 0, + "wrapper": { + "width": "", + "class": "", + "id": "" + }, + "default_value": "", + "maxlength": "", + "placeholder": "", + "prepend": "#", + "append": "" + }, + { + "key": "field_6800097e61765", + "label": "Container Width", + "name": "container_width", + "aria-label": "", + "type": "select", + "instructions": "", + "required": 0, + "conditional_logic": 0, + "wrapper": { + "width": "", + "class": "", + "id": "" + }, + "choices": { + "0": "Full Width", + "large": "Large", + "medium": "Medium", + "small": "Small", + "narrow": "Narrow" + }, + "default_value": 0, + "return_format": "value", + "multiple": 0, + "allow_null": 0, + "ui": 0, + "ajax": 0, + "placeholder": "" + }, { "key": "field_67350eb62cdf9", "label": "Top Padding", @@ -29,7 +79,7 @@ "required": 0, "conditional_logic": 0, "wrapper": { - "width": "33.33", + "width": "50", "class": "", "id": "" }, @@ -54,7 +104,7 @@ "required": 0, "conditional_logic": 0, "wrapper": { - "width": "33.33", + "width": "50", "class": "", "id": "" }, @@ -108,6 +158,46 @@ "layout": "block", "prefix_label": 0, "prefix_name": 0 + }, + { + "key": "field_67fff4d4ddbb7", + "label": "Angle", + "name": "angle", + "aria-label": "", + "type": "clone", + "instructions": "", + "required": 0, + "conditional_logic": 0, + "wrapper": { + "width": "", + "class": "", + "id": "" + }, + "clone": [ + "group_clone_angle" + ], + "display": "seamless", + "layout": "block", + "prefix_label": 1, + "prefix_name": 1 + }, + { + "key": "field_6828da67543fc", + "label": "Settings (end)", + "name": "", + "aria-label": "", + "type": "accordion", + "instructions": "", + "required": 0, + "conditional_logic": 0, + "wrapper": { + "width": "", + "class": "", + "id": "" + }, + "open": 0, + "multi_expand": 0, + "endpoint": 1 } ], "location": [ @@ -128,5 +218,5 @@ "active": true, "description": "", "show_in_rest": 0, - "modified": 1731536288 + "modified": 1747508044 } diff --git a/resources/acf/group_clone_button.json b/resources/acf/group_clone_button.json index a0e81b2..b1881dc 100644 --- a/resources/acf/group_clone_button.json +++ b/resources/acf/group_clone_button.json @@ -9,14 +9,15 @@ "aria-label": "", "type": "link", "instructions": "", - "required": 0, + "required": 1, "conditional_logic": 0, "wrapper": { - "width": "40", + "width": "", "class": "", "id": "" }, - "return_format": "array" + "return_format": "array", + "allow_in_bindings": 1 }, { "key": "field_673529a2a37a1", @@ -26,14 +27,22 @@ "type": "text", "instructions": "", "required": 0, - "conditional_logic": 0, + "conditional_logic": [ + [ + { + "field": "field_672d3d7b2c273", + "operator": "!=empty" + } + ] + ], "wrapper": { - "width": "20", + "width": "", "class": "", "id": "" }, "default_value": "", "maxlength": "", + "allow_in_bindings": 1, "placeholder": "", "prepend": "", "append": "" @@ -46,28 +55,42 @@ "type": "select", "instructions": "", "required": 0, - "conditional_logic": 0, + "conditional_logic": [ + [ + { + "field": "field_672d3d7b2c273", + "operator": "!=empty" + } + ] + ], "wrapper": { - "width": "20", + "width": "", "class": "", "id": "" }, "choices": { - "primary": "<\/i> Kimberly", - "secondary": "<\/i> Trendy Pink", - "tertiary": "<\/i> Turkish Rose", - "quaternary": "<\/i> Waikawa Gray", - "quinary": "<\/i> Boston Blue", + "primary": "<\/i> Prussian Blue", + "secondary": "<\/i> Sunset Orange", + "tertiary": "<\/i> Gold", + "quaternary": "<\/i> Moody Blue", + "quinary": "<\/i> Frangipani", + "0": "<\/i> White", "black": "<\/i> Black", - "0": "<\/i> White" + "quaternary-white": "<\/i> Moody Blue to White", + "quinary-white": "<\/i> Frangipani to White", + "white-quaternary": "<\/i> White to Moody Blue", + "white-quinary": "<\/i> White to Frangipani" }, - "default_value": 0, + "default_value": "primary", "return_format": "value", "multiple": 0, "allow_null": 0, + "allow_in_bindings": 1, "ui": 1, "ajax": 0, - "placeholder": "" + "placeholder": "", + "create_options": 0, + "save_options": 0 }, { "key": "field_672d3dc52c275", @@ -77,9 +100,16 @@ "type": "select", "instructions": "", "required": 0, - "conditional_logic": 0, + "conditional_logic": [ + [ + { + "field": "field_672d3d7b2c273", + "operator": "!=empty" + } + ] + ], "wrapper": { - "width": "20", + "width": "", "class": "", "id": "" }, @@ -91,9 +121,12 @@ "return_format": "value", "multiple": 0, "allow_null": 0, + "allow_in_bindings": 1, "ui": 0, "ajax": 0, - "placeholder": "" + "placeholder": "", + "create_options": 0, + "save_options": 0 } ], "location": [ @@ -114,5 +147,5 @@ "active": true, "description": "", "show_in_rest": 0, - "modified": 1731537485 + "modified": 1748001311 } diff --git a/resources/views/blocks/Content/Content.blade.php b/resources/views/blocks/Content/Content.blade.php new file mode 100644 index 0000000..39d59d8 --- /dev/null +++ b/resources/views/blocks/Content/Content.blade.php @@ -0,0 +1,18 @@ +@if(@$data['section_anchor_id']) +
+@endif + +
+ +
+
+ +
+
+ +
diff --git a/resources/views/blocks/Content/Content.jpg b/resources/views/blocks/Content/Content.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cdc42366c89ade6956836ac8da54cded03db1906 GIT binary patch literal 41347 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 aI|+x6b<<}5mfHP))}#JEE>QYw?mqzH)TUej literal 0 HcmV?d00001 diff --git a/resources/views/blocks/Content/Content.php b/resources/views/blocks/Content/Content.php new file mode 100644 index 0000000..07dd563 --- /dev/null +++ b/resources/views/blocks/Content/Content.php @@ -0,0 +1,111 @@ + 'badegg/content', + 'title' => __('Content'), + 'description' => __('Wordpress blocks inside a wrapper'), + 'render_callback' => [ $this, 'render'], + 'category' => 'badegg', + 'icon' => 'columns', + 'supports' => [ + 'align' => false, + 'jsx' => true, + ], + 'example' => [ + 'attributes' => [ + 'mode' => 'preview', + 'data' => [ + 'inserter' => true, + ], + ], + ], + ]); + } + + public function render($block, $content = '', $is_preview = false) + { + $name = basename(__FILE__, '.php'); + $themeURL = get_template_directory_uri(); + + if($is_preview && @$block['data']['inserter']): + echo ''; + return; + endif; + + $CssClasses = new Utilities\CssClasses; + $Colour = new Utilities\Colour; + $CloneGroup = new ACF\CloneGroup; + + $data = []; + + $fields = [ + + ]; + + $fields = array_merge($fields, $CloneGroup->block_all()); + + foreach($fields as $field): + $data[$field] = get_field($field); + endforeach; + + unset($block['data']); + $block['name'] = str_replace('acf/', '', $block['name']); + + $data = array_merge($data, $block); + $data['section_classes'] = $CssClasses->section($data); + $data['allowed_blocks'] = $this->inner_blocks(); + $data['block'] = $block; + + echo \Roots\view("blocks.$name.$name", [ + 'data' => $data, + 'block' => $block, + ])->render(); + } + + public function inner_blocks() + { + return [ + // Design + 'core/separator', + 'core/spacer', + + // Media + 'core/cover', + 'core/file', + 'core/gallery', + 'core/image', + 'core/media-text', + 'core/audio', + 'core/video', + + // Text + 'core/footnotes', + 'core/heading', + 'core/list', + 'core/code', + 'core/details', + 'core/freeform', + 'core/list-item', + 'core/missing', + 'core/paragraph', + 'core/preformatted', + 'core/pullquote', + 'core/quote', + 'core/table', + 'core/verse', + ]; + } +} diff --git a/resources/views/blocks/bad-example.blade.php b/resources/views/blocks/Content/Content.scss similarity index 100% rename from resources/views/blocks/bad-example.blade.php rename to resources/views/blocks/Content/Content.scss diff --git a/resources/views/components/button.blade.php b/resources/views/components/button.blade.php new file mode 100644 index 0000000..39d7a30 --- /dev/null +++ b/resources/views/components/button.blade.php @@ -0,0 +1,5 @@ +@if(@$link) + + {{ @$link['title'] }} + +@endif diff --git a/resources/views/components/image.blade.php b/resources/views/components/image.blade.php index bcc84e5..cfc6b07 100644 --- a/resources/views/components/image.blade.php +++ b/resources/views/components/image.blade.php @@ -1,15 +1,18 @@ -@php($image = wp_get_attachment_image_src(@$id, 'medium')) +@php($image = wp_get_attachment_image_src(@$id, @$size)) -{{ get_post_meta( $id, '_wp_attachment_image_alt', true ) }} + alt="{{ get_post_meta( $id, '_wp_attachment_image_alt', true ) }}" + width="{{ $image[1] }}" + height="{{ $image[2] }}" + /> +@endif diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index f8c5572..e4dd306 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -17,19 +17,24 @@ {{ __('Skip to content', 'sage') }} - @include('sections.header') + @include('sections.header.header') -
- @yield('content') -
+
+
+ @yield('content') +
- @hasSection('sidebar') - - @endif + @hasSection('sidebar') + + @endif + + @include('sections.footer.footer') +
+ + @include('partials.menu-off-canvas') - @include('sections.footer') @php(do_action('get_footer')) diff --git a/resources/views/layouts/block.blade.php b/resources/views/layouts/block.blade.php index 48f7e62..5717c84 100644 --- a/resources/views/layouts/block.blade.php +++ b/resources/views/layouts/block.blade.php @@ -1,34 +1,50 @@ -
- @if(@$data['heading'] || @$data['blurb']) -
-

{{ @$data['heading'] }}

- @include('components.divider') -

{{ @$data['blurb'] }}

-
- @endif +@if(@$data['section_anchor_id']) +
+@endif + +
+ +
+ @if(@$data['heading'] || @$data['blurb']) +
+
+
+

{{ @$data['heading'] }}

+

{{ @$data['blurb'] }}

+
+ + @if(@$data['links']) +
+ @foreach($data['links'] as $link) + @include('components.button', $link) + @endforeach +
+ @endif +
+
+ @endif + +
+ @yield('block-content') +
+ + @if(@$data['links']) + + @endif -
- @yield('block-content')
- @if(@$data['links']) - - @endif - - @if(@$data['bg_image']) -
- {!! $ImageSrcset->render([ - 'image' => $data['bg_image'], - 'name' => 'hero', - 'lazy' => true, - ]) !!} -
- @endif -
diff --git a/resources/views/partials/menu-off-canvas.blade.php b/resources/views/partials/menu-off-canvas.blade.php new file mode 100644 index 0000000..b454d0f --- /dev/null +++ b/resources/views/partials/menu-off-canvas.blade.php @@ -0,0 +1,28 @@ + diff --git a/resources/views/sections/footer.blade.php b/resources/views/sections/footer/footer.blade.php similarity index 100% rename from resources/views/sections/footer.blade.php rename to resources/views/sections/footer/footer.blade.php diff --git a/resources/views/sections/footer/footer.scss b/resources/views/sections/footer/footer.scss new file mode 100644 index 0000000..e69de29 diff --git a/resources/views/sections/header.blade.php b/resources/views/sections/header/header.blade.php similarity index 100% rename from resources/views/sections/header.blade.php rename to resources/views/sections/header/header.blade.php diff --git a/resources/views/sections/header/header.scss b/resources/views/sections/header/header.scss new file mode 100644 index 0000000..e69de29