Skip to content
  1. Extras
  2. PageBuilder
  3. Section catalog
  4. Pro
  5. Brands row

Brands row

Like Logo cloud, but can pull vendors from a catalog category automatically.

Информация

Requires PageBuilder Pro and miniShop3.

Why a brands row

  • Manual list or vendors from MS3 category
  • Links into brand filter URLs
  • Tighter than product grid for logos only

Catalog scenarios

  • Store homepage: brands in category
  • Brands page: manual list
  • Filter promo: link to vendor

Page examples

Brand source

Source: manual repeater or Category vendors. For category_vendors, set Parent category.

Similar sections

Block parameters

ParameterValue
keybrands_row
LayerPro
Categorycommerce (commerce)
Chunkpagebuilderpro_brands_row
Requirespro, minishop3

Inspector fields

Fill these fields in the section inspector. Field types are documented in the field types reference.

Title (title)

Type text. Optional.

Source (source)

Type select. Optional. Dropdown with predefined options.

Catalog parent (parent)

Type relation. Optional. Pick one MODX resource in a search modal.

Limit (limit)

Type number. Optional.

Brands (items)

Type repeater. Optional. Repeatable rows. "Add" button in the inspector.

Each row:

FieldTypeLabelRequired
logoimageLogono
nametextBrand nameyes
urlurlLinkno

Site output

pb-brands-row.

Section data

Example payload after save. Media, video, and map values may be enriched on output:

json
{
  "title": "Section title",
  "source": "manual",
  "parent": 101,
  "limit": 6,
  "items": [
    {
      "_rowId": "00000000-0000-4000-8000-000000000001",
      "logo": {
        "url": "assets/images/example.jpg",
        "id": 12,
        "filename": "example.jpg",
        "extension": "jpg",
        "title": "example.jpg",
        "width": 1920,
        "height": 1080,
        "type": "image"
      },
      "name": "Jane Doe",
      "url": "https://example.com/brand"
    }
  ]
}

Chunk template

Fenom chunk pagebuilderpro_brands_row:

fenom
{var $brands = $brand_items|default:$items}
<section class="pb-section pb-section--brands-row pb-brands-row{if $cssClass} {$cssClass|escape}{/if}" data-pb-section="brands_row"{if $id} id="pb-{$id|escape}"{/if}>
  <div class="pb-section__inner pb-brands-row__inner">
    {if $title}
      <h2 class="pb-heading pb-brands-row__title">{$title|escape}</h2>
    {/if}
    {if $brands && ($brands | length) > 0}
      <div class="pb-brands-row__grid">
        {foreach $brands as $item}
          {if $item.url}
            <a class="pb-brands-row__item" href="{$item.url|escape:'url'}" title="{$item.name|escape}">
              {if $item.logo}
                {include 'pagebuilder_partial_image' image=$item.logo alt=$item.name class='pb-brands-row__logo'}
              {/if}
              <span class="pb-brands-row__name">{$item.name|escape}</span>
            </a>
          {else}
            <div class="pb-brands-row__item">
              {if $item.logo}
                {include 'pagebuilder_partial_image' image=$item.logo alt=$item.name class='pb-brands-row__logo'}
              {/if}
              <span class="pb-brands-row__name">{$item.name|escape}</span>
            </div>
          {/if}
        {/foreach}
      </div>
    {else}
      <p class="pb-brands-row__empty">Add brands manually or select a category with vendors.</p>
    {/if}
  </div>
</section>

JSON definition

PageBuilderPro/core/components/pagebuilderpro/sections/brands_row.json

See also