Как вывести TV через свою обёртку?
Здравствуйте. Есть TV чекбоксы.
Список чекбоксов:
Яблоки
Груши
Бананы
Параметры ввода: «Флажки (checkbox)»;
Параметры вывода: «По-умолчанию»;
Вывожу во фронтенд:
Список чекбоксов:
Яблоки
Груши
Бананы
Параметры ввода: «Флажки (checkbox)»;
Параметры вывода: «По-умолчанию»;
Вывожу во фронтенд:
<div class="product-list">
<div class="product">
[[*checkboxTv]]
</div>
</div>
В результате:<div class="product-list">
<div class="product">
ЯблокиГрушиБананы
</div>
</div>
Как обернуть результаты по-отдельности? Чтобы получилось:<div class="product-list">
<div class="product">
Яблоки
</div>
<div class="product">
Груши
</div>
<div class="product">
Бананы
</div>
</div>
Комментарии: 10
Настройте параметры вывода:
Тогда в такой конструкции, если внутри ресурса чекбоксы не выбраны:
{if $_modx->resource.checkboxTv ?}
div class="product-list">
<div class="product">
Яблоки
</div>
<div class="product">
Груши
</div>
<div class="product">
Бананы
</div>
</div>
{/if}
выводит:<div class="product-list">
<div></div>
</div>
а надо чтобы если не заполнен, то ничего не выводилось.
Ну тогда выберите «Разделитель» и поставьте в кач-ве него запятую.
Сделайте сниппет:
Используйте этот сниппет как модификатор:
Сделайте сниппет:
<?php
$out = '';
$arr = explode(',', $input);
if(count($arr) > 0){
foreach($arr as $item){
$items .= '<div class="product">'.$item.'</div>';
}
$out = '<div class="product-list">'.$items.'</div>';
}
return $out;
Используйте этот сниппет как модификатор:
[[*checkboxTv:snippet]]
Пишет ошибку в строке 3
Запятую поставьте:
$arr = explode(',', $input);
Аналогично как и с выводом HTML div, пустые выводит как:
<div class="product-list">
<div class="product"></div>
</div>
Возможно сделать так, что если никакой чекбокс этого TV не выбран, то ничего не выводить?
Попробуйте так:
<?php
$out = '';
if($input != ''){
$arr = explode(',', $input);
foreach($arr as $item){
$items .= '<div class="product">'.$item.'</div>';
}
$out = '<div class="product-list">'.$items.'</div>';
}
return $out;
Супер! Спасибо!
Пробовал этим методом, но тут все значения записываются в один li, не в каждый по-отдельности.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.