Страница 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, а потом разобраться только с синтаксисом смарти ИМХО)