{* *}{strip} {* *} {if !empty($categories)} {$marker = '[__marker__]'} {* *} {function name = 'categories_own_blocks'} {foreach $cats as $r} {$id = $r->category_id|default:$r->brand_id|default:''} {if !isset($used_ids[$id])} {if !empty($r->own_block) && empty($ids) || !empty($ids) && is_array($ids) && in_array($id, $ids)} {$marker}
{* *} {$name = $r->name|default:'Без названия!'}

{$name}

{* *} {$count = 0} {$maxcount = $maxcount|default:4} {if !empty($r->subcategories) || !empty($r->subbrands)} {foreach $r->subcategories|default:$r->subbrands as $c} {if !empty($c->products_count) || empty($settings->catalog_menu_noempty)} {$count = $count + 1} {* *} {if $count == 1}{/if} {else}
{$r->description|default:''|strip_tags}
{/if}
{* *} {$used_ids[$id] = $id} {/if} {/if} {* *} {if !empty($r->subcategories)} {categories_own_blocks cats = $r->subcategories used_ids = $used_ids} {elseif !empty($r->subbrands)} {categories_own_blocks cats = $r->subbrands used_ids = $used_ids} {/if} {/foreach} {/function} {categories_own_blocks cats = $categories assign = 'result' used_ids = []} {* *} {if $result|regex_replace:'/[\s\t\r\n]/':'' != ''} {* *} {capture assign = 'result'} {$result} {* *} {$pattern = '/^(('|cat:$marker|cat:')+).+?'|cat:$marker|cat:'/s'} {$pattern = $pattern|replace:'[':'\['} {$pattern = $pattern|replace:']':'\]'} {$count = ($result|cat:$marker)|regex_replace:$pattern:('\\1'|cat:$marker)} {section name = 'cycle' loop = 1000} {$count = $count|regex_replace:$pattern:('\\1'|cat:$marker)} {if ($count|replace:$marker:'')|regex_replace:'/[\s\t\r\n]/':'' == ''} {break} {/if} {/section} {$pattern = '/^(('|cat:$marker|cat:')+).+?$/s'} {$pattern = $pattern|replace:'[':'\['} {$pattern = $pattern|replace:']':'\]'} {$count = $count|regex_replace:$pattern:'\\1'} {$pattern = '/'|cat:$marker|cat:'/'} {$pattern = $pattern|replace:'[':'\['} {$pattern = $pattern|replace:']':'\]'} {$count = $count|regex_replace:$pattern:'1'} {$count = $count|strlen} {* *} {$maxcount = 3} {$count = $count % $maxcount} {if $count > 0} {section name = 'cycle' start = $count loop = $maxcount}
{if !empty($empty_body)} {$empty_body} {else}

Пустой блок

Пометьте еще категории флажком "Свой блок" по числу пустых блоков. {/if}
{/section} {/if} {/capture}
{if !empty($title)}

{$title}

{/if} {$result|replace:$marker:''}
{/if} {/if} {/strip}