Страница 1 из 1
Как на главную к брендам вывести описание из админки?
Добавлено: 03.12.2019, 10:19
MadDog
Здравствуйте.
1
Я к сожалению не очень пока что знаю смарти и у меня возник вопрос.
Если в бренды на главную хочется вывести описание бренда которое в админке пишется, то что нужно прописать?
Код: Выделить всё
<div class="block padding">
{$lang->brands}|????? что сюда писать чтобы описание вывести из бренда?
</div>
2 И как сделать так чтобы ВСЕ! бренды выводились, без условия, что если товар есть.
Большое спасибо всем кто поможет
Добавлено: 03.12.2019, 10:30
wnemy
{foreach $all_brands as $brand}
{$brand->description} //описание
{$brand->annotation} //краткое описание
{/foreach}
Добавлено: 03.12.2019, 11:06
MadDog
О соединилось. спасибо!
Мне, право, не удобно настаивать. но очень надо)
А как сделать так чтобы ВСЕ! бренды выводились, без условия, что если товар есть. Сейчас они выводятся если только к ним подцеплен товар. Интуитивно чувствую что надо что то убрать, но убираю что-то не то и роняю сайт( Не судите строго, я только учусь
Код: Выделить всё
{if $all_brands}
<div class="fn_all_brands all_brands block">
{foreach $all_brands as $b}
<div class="fleft">
<a class="all_brands_link" href="{$lang_link}brands/{$b->url}" data-brand="{$b->id}">
{if $b->image}
<div class="brand_image">
<img class="brand_img" src="{$b->image|resize:250:250:false:$config->resized_brands_dir}" alt="{$b->name|escape}" title="{$b->name|escape}">
</div>
<span>{$b->name|escape}</span>
{else}
<div class="brand_name">
<span>{$b->name|escape}</span>
</div>
{/if}
</a>
</div>
{/foreach}
{/if}
Добавлено: 03.12.2019, 11:18
zyxer
вызов ф-ции так же выглядит {get_brands var=all_brands visible_brand=1}?
Добавлено: 03.12.2019, 11:24
wnemy
MadDog, не знаю какую вы версию используете, но в версии 3.3.0 бренды выводятся даже если в них нет товаров. Посмотрите в админке (/backend/index.php?controller=BrandsAdmin) может активность отключена
Добавлено: 03.12.2019, 15:29
MadDog
Версия 2.3.4
такого урла нет по нему ничего не открывается, но есть /backend/index.php?module=BrandsAdmin
Я пока лайт мучаю. Активность естессно включена)
2 zyxer да вызов функции именно так и выглядит. бренды появляются если хоть 1 товар зацепить к ним.
Добавлено спустя 30 минут 11 секунд:
Скачала последнюю версию в файле main.tpl отличий никаких нет 100% совпадение.
Более того при удалении всех товаров отвалились и все бренды, соответственно, если к ним не зацеплен товар они не отображаются и в новой версии)
Добавлено: 03.12.2019, 16:15
zyxer
Попробуйте в view/View.php в методе get_brands_plugin() убрать
if(!isset($params['visible'])) {
$params['visible'] = 1;
}
Добавлено: 03.12.2019, 16:41
MadDog
ЕЕЕЕЕЕЕЕЕЕЕЕЕ работает!!
Только не смейтесь)) НО)) Осталось понять почему я
Вставила вот это
{foreach $all_brands as $brand}
{$brand->annotation}
{/foreach}
перед закрывающимся </div> блока fleft
и теперь каждое из 5 описаний дублируется у всех брендов, то есть 5 брендов с описаниями и у каждого из них зацепилось в столбик 5 описания.
Я куда то не туда вставила? Я вставила не то? Не тем концом?
Учебник смарти уже открыт, но на это надо время, а штуку эту заставить работать хочется сейчас.
Добавлено: 04.12.2019, 06:12
zyxer
Тогда покажите весь код tpl файла
Добавлено: 05.12.2019, 18:08
MadDog
Пока не удалось уговорить его не делать так
Код: Выделить всё
{* Brand list *}
{get_brands var=all_brands visible_brand=1}
{if $all_brands}
<div class="fn_all_brands all_brands block">
{foreach $all_brands as $b}
<div class="fleft">
<div class="brand_image">
<img class="brand_img" src="{$b->image|resize:250:250:false:$config->resized_brands_dir}" alt="{$b->name|escape}" title="{$b->name|escape}">
</div>
<div class="h3">{$b->name|escape}</div>
{foreach $all_brands as $brand}
<div class="block_brands">
{$brand->annotation}
</div>
{/foreach}
</div>
{/foreach}
</div>
{/if}
Выводит он 5 в строчку и потом к каждому бренду добавляет все описания из остальных брендов. то есть вместо 5 картинок и 5 описаний у меня получается
5 картинок и 25 описаний
Добавлено: 05.12.2019, 18:28
zyxer
Так уберите вложеный форыч
Добавлено: 05.12.2019, 20:53
MadDog
тогда описания пропадают) Они без него не выводятся собаки.
Я так делала уже. а если верхний удалять, то пропадают картинки)) Я так и учусь обычно ковыряю ковыряю, тыц поняла, соединилось, но иногда совсем никак((
Код: Выделить всё
{if $all_brands}
<div class="fn_all_brands all_brands block">
{foreach $all_brands as $b}
<div class="fleft">
<div class="brand_image">
<img class="brand_img" src="{$b->image|resize:250:250:false:$config->resized_brands_dir}" alt="{$b->name|escape}" title="{$b->name|escape}">
</div>
<div class="h3">{$b->name|escape}</div>
<div class="block_brands">
{$brand->annotation}
</div>
</div>
{/foreach}
</div>
{/if}
Добавлено: 05.12.2019, 21:19
zyxer
Вы перебираете как $b, а считывать пытаетесь с переменной $brand
Добавлено: 06.12.2019, 08:08
MadDog
Я brand интуитивно на $b меняла и везде и по одиночке ничего не изменилось, или пропадает вообще, или без изменений.
может быть вот тут вместо закомментированного куска
if(!isset($params['visible'])) {
$params['visible'] = 1;
}
что то другое надо?
Вот так пропадает всё включая картинку
Код: Выделить всё
{foreach $all_brands as $brand}
<div class="block_brands">
{$b->annotation}
</div>
{/foreach}
Вот так опять 25 описаний :)
Код: Выделить всё
{foreach $all_brands as $b}
<div class="block_brands">
{$b->annotation}
</div>
{/foreach}
Как же тяжело быть тупенькой))
Добавлено: 06.12.2019, 08:41
zyxer
давайте кратко расскажу как работают циклы:
Есть массив значений ($all_brands), и когда вы пишите {foreach $all_brands as $brand} вы с каждой итерацией цикла помещаете в переменную $brand одно значение, на которое смотрит указатель (один бренд).
Так вот, внутри этого цикла вам нужно работать с переменной $brand (или если вы написали {foreach $all_brands as $b}, тогда нужно работать с переменной $b). Вы выше писали где цикл {foreach $all_brands as $b} но поле annotation считывали из переменной {$brand->annotation} (которой нет)
Добавлено спустя 47 секунд:Вам нужно чтобы код был таким
Код: Выделить всё
{if $all_brands}
<div class="fn_all_brands all_brands block">
{foreach $all_brands as $b}
<div class="fleft">
<div class="brand_image">
<img class="brand_img" src="{$b->image|resize:250:250:false:$config->resized_brands_dir}" alt="{$b->name|escape}" title="{$b->name|escape}">
</div>
<div class="h3">{$b->name|escape}</div>
<div class="block_brands">
{$b->annotation}
</div>
</div>
{/foreach}
</div>
{/if}
Добавлено: 06.12.2019, 18:16
MadDog
Я не знаю как Вас отблагодарить буквами. Вы очень помогли.
Спасибо за объяснение.
Пошла курить мануал по смарти.
Так переменные я подставляла, но ума второй цикл убрать не хватило, хотя это настолько очевидно, что даже обидно) Всё работает.
Добавлено: 07.12.2019, 08:53
zyxer
Если хотите обучаться, рекомендую сразу разобраться с PHP, а потом разобраться только с синтаксисом смарти ИМХО)