Dynamic List Component

Created on 25 March 2025, about 2 months ago

Overview

Adding a new Dynamic List component to Experience Builder which allows non-technical content editors to easily display curated lists of content without requiring any knowledge of Drupal's Views system. The component provides a simple, user-friendly interface for displaying content lists that dynamically update.

Proposed resolution

Implementation of a new Dynamic List component specifically designed for non-technical users with the following features:

  • Simple content selection by content type - no complex Views configuration required
  • Straightforward filtering options with intuitive operators like "contains" or "equals"
  • Easy sorting controls with clear ascending/descending options
  • Three visual layout options: Stack, Row, and Grid with simple, visual settings
  • User-friendly pagination options: none, load more button, or infinite scroll
  • Visual template system allowing editors to design how each list item appears
  • Automatic content population - no field mapping or template coding required

The component makes displaying dynamic content accessible to non-technical editors who would otherwise need developer assistance to create Views, providing a codeless way to create and customize content lists.

User interface changes

Introducing a simple, intuitive configuration UI designed specifically for non-technical users:

  • Plain language content selection - pick content type from a dropdown
  • Visual layout selection with preview - no CSS knowledge required
  • Simple filtering interface with human-readable conditions
  • Visual drag-and-drop template editor for designing list items
  • One-click preview to see exactly how the list will appear
  • No SQL, Views configuration, or template coding knowledge needed

The component bridges the gap between Drupal's powerful content capabilities and non-technical users' need to display dynamic content lists without developer intervention.

✨ Feature request
Status

Active

Version

0.0

Component

Page builder

Created by

πŸ‡ΊπŸ‡ΈUnited States grasmash

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Merge Requests

Comments & Activities

  • Issue created by @grasmash
  • Merge request !817Resolve #3515399 "Dynamic list component" β†’ (Closed) created by grasmash
  • Pipeline finished with Failed
    about 2 months ago
    Total: 196s
    #457497
  • Pipeline finished with Failed
    about 2 months ago
    Total: 421s
    #457507
  • Pipeline finished with Failed
    about 2 months ago
    Total: 234s
    #457568
  • Pipeline finished with Failed
    about 2 months ago
    Total: 301s
    #457569
  • Pipeline finished with Failed
    about 2 months ago
    Total: 202s
    #457621
  • Pipeline finished with Failed
    about 2 months ago
    Total: 260s
    #457662
  • πŸ‡§πŸ‡ͺBelgium wim leers Ghent πŸ‡§πŸ‡ͺπŸ‡ͺπŸ‡Ί
  • Pipeline finished with Failed
    about 2 months ago
    Total: 307s
    #459185
  • Pipeline finished with Failed
    about 2 months ago
    Total: 226s
    #459187
  • Pipeline finished with Failed
    about 2 months ago
    Total: 231s
    #459212
  • Pipeline finished with Failed
    about 1 month ago
    Total: 201s
    #462765
  • Pipeline finished with Failed
    about 1 month ago
    Total: 185s
    #462821
  • Pipeline finished with Failed
    about 1 month ago
    Total: 1245s
    #463375
  • Pipeline finished with Failed
    about 1 month ago
    Total: 1345s
    #463396
  • Pipeline finished with Failed
    about 1 month ago
    Total: 1722s
    #463689
  • Pipeline finished with Failed
    about 1 month ago
    Total: 1402s
    #464517
  • Pipeline finished with Failed
    about 1 month ago
    Total: 1311s
    #464751
  • Pipeline finished with Failed
    about 1 month ago
    Total: 1615s
    #464846
  • πŸ‡¬πŸ‡§United Kingdom catch

    This is the second issue I've seen in the past month in the XB queue that appears to violate the issue etiquette guidelines on AI generated content https://www.drupal.org/docs/develop/issues/issue-procedures-and-etiquett... β†’

    I don't think it is respectful of reviewer time to post unreviewed code like this, especially without a clear disclaimer.

  • πŸ‡¬πŸ‡§United Kingdom catch

    This sounds like it's re-implementing a sub-set of views functionality from whole cloth, whereas as described, I would expect a feature like this to create a view under the hood. That way all the existing views plugins (mini pager, infinite scroll, full pager), responsive layouts etc. are available. The UI for creating the listing could be similar, just a case of what gets created and saved. This was the concept behind https://www.drupal.org/project/simpleviews β†’ back in the day.

  • πŸ‡¬πŸ‡§United Kingdom longwave UK

    As you can hopefully see from the 121 comments I added to the MR, there are some severe problems with this. A summary:

    • The overall approach is not really explained anywhere - firstly why is this a separate component source plugin and not just a single implementation of e.g. a block?
    • There are trivial XSS attacks and escaping problems because HTML is built directly by concatenating strings instead of using render arrays
    • New concepts such as "field binding expressions" have been invented with no explanation
    • Entire files have been conjured and added to the repo with seemingly no reason
    • Existing tests and the module install function have been modified with no explanation

    Was this MR even self-reviewed? At least some of these fundamental problems should have been spotted by the author, surely?

  • πŸ‡ΊπŸ‡ΈUnited States effulgentsia

    Re #6, the Overview tab of the MR says:

    πŸ€– Generated with Claude Code

    But yeah, that's easy to miss if you just click the MR link from the issue and then immediately click the Changes tab (which is what I do >90% of the time) without reading the Overview tab.

    Therefore, I'm adding the disclaimer to the issue title.

    I wonder if we should add more specifics to https://www.drupal.org/docs/develop/issues/issue-procedures-and-etiquett... β†’ to standardize on how to disclose this info. Should it be in the issue title? The issue summary? A label on the MR? I think a label on the MR would be great if d.o. added MR labels to the MR link that's at the bottom of the issue summary.

  • πŸ‡¬πŸ‡§United Kingdom catch

    @effulgentsia I was referring to https://www.drupal.org/project/experience_builder/issues/3515646#comment... ✨ Add automated image optimization to image component Active

  • πŸ‡ΊπŸ‡ΈUnited States effulgentsia

    @catch: sorry, i can see how my comment of "I'm not aware of any other AI-generated MR in the XB issue queue at the moment" could be read as questioning your "This is the second issue" comment. That's not how I intended it. I'm aware of ✨ Add automated image optimization to image component Active , but the MR currently on there is no longer the initial AI-generated one, so my comment just meant that there's no others in the queue right now for me to re-title, as far as I know.

    As to your other question, I think the issue summary was written by @grasmash (or him in collaboration with other people), but from a Product Management rather than Engineering perspective, and from a "this is the desired feature-set / capabilities" perspective rather than a "here's what Drupal building blocks already exist, here's the path to get from them to the desired UX" perspective. I agree with the "Needs issue summary update" tag to get closer to the latter, but I find the currently written Product-oriented write-up a necessary and helpful starting point from which to get to the Engineering-oriented one.

Production build 0.71.5 2024