From 20c2979a6eafd9e409b5d99ac64f5e0765b0757d Mon Sep 17 00:00:00 2001 From: Sara Date: Thu, 5 Mar 2026 20:00:30 +0100 Subject: [PATCH 1/4] Fix bug related to className and make styles more similar to Craft --- src/assetbundles/dist/css/SidebarCss.css | 13 ++++++------- src/templates/_sidebar.twig | 4 ++-- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/assetbundles/dist/css/SidebarCss.css b/src/assetbundles/dist/css/SidebarCss.css index 209bb6f..d87dd0c 100644 --- a/src/assetbundles/dist/css/SidebarCss.css +++ b/src/assetbundles/dist/css/SidebarCss.css @@ -1,5 +1,5 @@ .accordion-item-body > ul { - padding: 0 1rem 1rem 2.1rem; + padding: 1rem 1rem 1rem 2.1rem; } .accordion-item-body > ul > li { @@ -12,9 +12,8 @@ max-width: 1000px; } .accordion-item { - background-color: #fff; + background-color: #f3f7fc; border-radius: 0.5rem; - box-shadow: 0 2px 5px 0 rgba(0,0,0,0.25); color: #111; margin: 1rem 0; } @@ -27,6 +26,10 @@ min-height: 3.5rem; padding: 0.5rem 3rem 0.5rem 1rem; position: relative; + box-shadow: + 0 0 0 1px #cdd8e4, + 0 2px 12px rgba(205, 216, 228, 0.5); + border-radius: 0.5rem; } .accordion-item-header::after { color: var(--medium-text-color); @@ -45,9 +48,5 @@ transition: max-height 0.2s ease-out; } .accordion-item-body-content { - - line-height: 1.5rem; - border-top: 1px solid; - border-image: linear-gradient(to right, transparent, #34495e, transparent) 1; } \ No newline at end of file diff --git a/src/templates/_sidebar.twig b/src/templates/_sidebar.twig index aad2133..de6c49f 100644 --- a/src/templates/_sidebar.twig +++ b/src/templates/_sidebar.twig @@ -20,7 +20,7 @@ {% if fieldObj.className == "benf\\neo\\Field" %}
-
{% elseif fieldObj.className == "craft\\fields\\Matrix" %}
-
{% if fieldObj.className == "benf\\neo\\Field" %}
- + + {% macro renderBlocks(blocks, field) %} + + {% endmacro %} + + {{ macros.renderBlocks(indexField.level(1).all(), field) }} +
{% elseif fieldObj.className == "craft\\fields\\Matrix" %}
From 662e75fb44ae1c2977e67e86672ee8860e92de21 Mon Sep 17 00:00:00 2001 From: Sara Date: Thu, 5 Mar 2026 20:41:52 +0100 Subject: [PATCH 3/4] Adding abbility to number the elements --- entry-toc.php | 3 +- src/assetbundles/dist/css/SidebarCss.css | 16 +++++++++ src/templates/_sidebar.twig | 45 +++++++++++++++--------- 3 files changed, 47 insertions(+), 17 deletions(-) diff --git a/entry-toc.php b/entry-toc.php index 7ca6724..c0992c8 100644 --- a/entry-toc.php +++ b/entry-toc.php @@ -6,7 +6,8 @@ 'fieldsToIndex' => [ [ 'fieldHandle' => 'exampleNeoField', - 'fieldTitles' => ['exampleHeading'] + 'fieldTitles' => ['exampleHeading'], + 'numbering' => false ], [ 'fieldHandle' => 'exampleMatrixField', diff --git a/src/assetbundles/dist/css/SidebarCss.css b/src/assetbundles/dist/css/SidebarCss.css index 1be9ab6..a64b799 100644 --- a/src/assetbundles/dist/css/SidebarCss.css +++ b/src/assetbundles/dist/css/SidebarCss.css @@ -2,6 +2,10 @@ padding: 1rem 1rem 1rem 2.1rem; } +.accordion-item-body > ol { + padding: 1rem 1rem 1rem 2.1rem; +} + .accordion-item-body > ul > li { list-style-type: circle; padding-bottom: 0.25rem; @@ -11,6 +15,18 @@ padding-left: 1.5rem; } +.accordion-item-body-content ol { + list-style-type: none; +} + +.accordion-item-body > ol > li { + list-style-type: none; +} + +.accordion-item-body > ol > li { + padding-bottom: 0.25rem; +} + .accordion-item-body-content ul li { list-style-type: circle; } diff --git a/src/templates/_sidebar.twig b/src/templates/_sidebar.twig index 60ae1da..07265ab 100644 --- a/src/templates/_sidebar.twig +++ b/src/templates/_sidebar.twig @@ -19,28 +19,41 @@

{{ fieldObj.name }} Table of Contents

{% if fieldObj.className == "benf\\neo\\Field" %} -
+
+ + {% macro renderBlocks(blocks, field, prefix) %} + {% if field.numbering %} +
    + {% else %} +
      + {% endif %} - {% macro renderBlocks(blocks, field) %} -
        - {% for block in blocks %} - {% set itemTitle = _self.getTitle(block, field) %} + {% for block in blocks %} + {% set itemTitle = _self.getTitle(block, field) %} -
      • - - {{ itemTitle }} - + {% set number = field.numbering ? (prefix ? prefix ~ '.' ~ loop.index : loop.index) : '' %} + +
      • + + {% if field.numbering %}{{ number }}. {% endif %} + {{ itemTitle }} + - {% if block.children|length %} - {{ _self.renderBlocks(block.children.all(), field) }} - {% endif %} -
      • + {% if block.children|length %} + {{ _self.renderBlocks(block.children.all(), field, number) }} + {% endif %} + + + {% endfor %} - {% endfor %} -
      + {% if field.numbering %} +
+ {% else %} + + {% endif %} {% endmacro %} - {{ macros.renderBlocks(indexField.level(1).all(), field) }} + {{ macros.renderBlocks(indexField.level(1).all(), field, '') }}
{% elseif fieldObj.className == "craft\\fields\\Matrix" %} From 8cb02c8457129e6d6ddefa5f9c59a9c2bf601c1b Mon Sep 17 00:00:00 2001 From: Sara Date: Thu, 5 Mar 2026 20:52:30 +0100 Subject: [PATCH 4/4] Add ability to display blockTitleFields next to block title --- entry-toc.php | 3 ++- src/templates/_sidebar.twig | 22 +++++++++++++++++----- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/entry-toc.php b/entry-toc.php index c0992c8..f68c126 100644 --- a/entry-toc.php +++ b/entry-toc.php @@ -7,7 +7,8 @@ [ 'fieldHandle' => 'exampleNeoField', 'fieldTitles' => ['exampleHeading'], - 'numbering' => false + 'numbering' => false, + 'blockTitleFields' => ['exampleBlockField', 'exampleBlockField'] ], [ 'fieldHandle' => 'exampleMatrixField', diff --git a/src/templates/_sidebar.twig b/src/templates/_sidebar.twig index 07265ab..eff5ac6 100644 --- a/src/templates/_sidebar.twig +++ b/src/templates/_sidebar.twig @@ -22,20 +22,32 @@
{% macro renderBlocks(blocks, field, prefix) %} - {% if field.numbering %} + {% set numbering = field.numbering|default(false) %} + + {% if numbering %}
    {% else %}
      {% endif %} {% for block in blocks %} - {% set itemTitle = _self.getTitle(block, field) %} + {% set itemTitle = block.type.name %} + + {% set titleFound = false %} + {% if field.blockTitleFields is defined %} + {% for f in field.blockTitleFields %} + {% if not titleFound and block[f] is defined and block[f] %} + {% set itemTitle = itemTitle ~ ' (' ~ block[f]|striptags ~ ')' %} + {% set titleFound = true %} + {% endif %} + {% endfor %} + {% endif %} - {% set number = field.numbering ? (prefix ? prefix ~ '.' ~ loop.index : loop.index) : '' %} + {% set number = numbering ? (prefix ? prefix ~ '.' ~ loop.index : loop.index) : '' %}
    • - {% if field.numbering %}{{ number }}. {% endif %} + {% if numbering %}{{ number }}. {% endif %} {{ itemTitle }} @@ -46,7 +58,7 @@ {% endfor %} - {% if field.numbering %} + {% if numbering %}
{% else %}