Перейти к содержимому


Делаем разное оформление заголовков блоков


  • Вы не можете ответить в тему
Сообщений в теме: 8

#1 vsupport

    Продвинутый пользователь

  • Администраторы
  • 758 сообщений
Репутация: 31
Ассистент

Отправлено 27 March 2011 - 05:32 PM

1. Редактируем:
left_blocks.tpl.html
right_blocks.tpl.html
{assign var="countlblocks" value=0}
{section name=r loop=$left_blocks}

   {if $left_blocks[r][0] eq 13}
       дизайн для заголовка блока с номером 13
   {/if}

   {if $left_blocks[r][0] eq 10}
       дизайн для заголовка блока с номером 10
   {/if}

{/section}
2. Как узнать номер блока?

Вот так - admin.php?dpt=conf&sub=blocks_edit&edit=16
где 16 - это номер блока

3. Вот пример дизайна заголовка для блока авторизации, остальные делаются по аналогии:

В файле blocks.tpl.html
{* вывод разного заголовка для блоков *}

{if $binfo[b].url eq "authorization.tpl.html"}
{include file="header_autorization.tpl.html" header=$postheader nopad=$nopad}
{else}
{include file="header.tpl.html" header=$postheader nopad=$nopad}
{/if}
Заменяем на:
{* вывод разного заголовка для блоков *}

{if $binfo[b].url eq "authorization.tpl.html"}
{include file="header_autorization.tpl.html" header=$postheader nopad=$nopad}
{else}
{include file="header.tpl.html" header=$postheader nopad=$nopad}
{/if}
Далее создаем header_autorization.tpl.html
{* шаблон вывода заголовков *}
{* отступ сверху (если он не запрещен) *}
{if $nopad != 1}<div class="fil1 white"></div>{/if}
{* вывод заголовка (если он не пуст) *}
{if $header ne ""}<div class="header_autorization"></div>{/if}
В style.css дизайн для .header_autorization, у меня это выглядит так
.header_autorization {width: 197px; height: 47px; background: url('blocks/autorization_head.jpg');}

  • 0

#2 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 25 September 2011 - 08:36 AM

Почитал вот, и подумал что данный способ не оч. удобный.
Во первых в первом посте ошибка

1. Редактируем:
left_blocks.tpl.html
right_blocks.tpl.html

Разве такие блоки есть по дефолту?


3. Вот пример дизайна заголовка для блока авторизации, остальные делаются по аналогии:
В файле blocks.tpl.html
Код:
{* вывод разного заголовка для блоков *}

{if $binfo[b].url eq "authorization.tpl.html"}
{include file="header_autorization.tpl.html" header=$postheader nopad=$nopad}
{else}
{include file="header.tpl.html" header=$postheader nopad=$nopad}
{/if}
Заменяем на:
Код:
{* вывод разного заголовка для блоков *}

{if $binfo[b].url eq "authorization.tpl.html"}
{include file="header_autorization.tpl.html" header=$postheader nopad=$nopad}
{else}
{include file="header.tpl.html" header=$postheader nopad=$nopad}
{/if}

Не понял меняем что на что? код то абсолютно идентичный.

А неудобство заключается в том что придется делать кучу файлов с заголовками
header_autorization.tpl.html, header_корзина.tpl.html, header_каталог.tpl.html и т.д., а потом если надо что-то подправить открывай - перезаливай и т.д.

Предлагаю более практичный вариант:
Открываем файл
header.tpl.html
и прямо в нем пишем (например чтобы добавить картинки к заголовкам)


{* шаблон вывода заголовков *}
{* отступ сверху (если он не запрещен) *}
{if $nopad != 1}<div class="fil1 white"></div>{/if}
{* вывод заголовка (если он не пуст) *}

{if $header ne ""}
<table cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="hd bf" align="left">
{if $binfo[b].url eq "authorization.tpl.html"}
<img width="50px" src="data/{$smarty.const.TPL}/auth.gif">
{elseif $binfo[b].url eq "shopping_cart_info.tpl.html"}
<img width="50px" src="data/{$smarty.const.TPL}/cart.gif">
{else}
{* Картинка для остальных блоков или без картинки *}
{/if}
</td>
<td class="hd bf" align="left">
{$header}
</td>
</tr>
</table>
{/if}

  • 0

#3 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 25 September 2011 - 09:10 AM

Вот как это выглядит

Прикрепленный файл  header.jpg   55.59К   100 Количество загрузок:
  • 0

#4 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 26 September 2011 - 10:54 AM

Такс ))) еще более усовершенствовал..... предыдущий метод годится только если это блок, а если блока нет например "Задайте вопрос к товару" и т.п., поэтому можно делать вот так все в том же файле header.tpl.html

вместо
 {if $binfo[b].url eq "authorization.tpl.html"} 

пишем
{elseif $header eq $smarty.const.STRING_FEEDBACK_PRODUCT_HEADER}


т.е. константу движка от хидера, константу эту можно посмотреть или в файле
\core\languages\russian.php
Ищем наш заголовок русскими буквами и смотрим какая переменная ему соответствует (так проще всего), ну или смотрим в шаблонах где подключается файл header.tpl.html, т.е. например
 {include file="header.tpl.html" header=$smarty.const.STRING_CAT_USE_AUX}


и видим
$smarty.const.STRING_CAT_USE_AUX


Таким образом все заголовки можно в одном файле делать. Наслаждайтесь :cool:

---------- Сообщение объединено ----------

Ну или вообще самый простой вариант писать прямо сам заголовок, но тогда возможны траблы с кодировкой при перездах и т.п. хотя не факт.

{elseif $header eq "Есть вопросы по этому товару?"} 

  • 0

#5 OlegT

    Новичок

  • Пользователи
  • Pip
  • 6 сообщений
Репутация: 0
Начинающий

Отправлено 23 January 2012 - 01:50 PM

А как бы это сделать, чтобы в настройках вывода блоков просто присутствовала еще одна настройка выбора шаблона блока. Допустим, по умолчанию выбран основной макет блока с шапкой и заголовком в шапке, а выбираем макет без стандартного оформления, и все содержимое выводится в другом шаблоне, хотя это тот же самый блок, однако иначе оформленный.

Такая вещь нужна например для вывода слайдера на главной, или сделать например несколько шаблонов блоков и в зависимости от необходимости, на странице чередовать оформление блоков. Синенькие, красненькие шапки блоков... :)

Сам шаблон блока нарисовать не проблема, вот как его принудительно подключить к выводу, т.е. в настройках вывода?
  • 0

#6 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 23 January 2012 - 09:51 PM

Сам шаблон блока нарисовать не проблема, вот как его принудительно подключить к выводу, т.е. в настройках вывода?


а что пару строчек в файл шаблона дописать сложно? подключить выбор в админку можно - не такая и проблема, только смысл тратить на это время.... если можно сделать так как описано в этой теме.
  • 0

#7 OlegT

    Новичок

  • Пользователи
  • Pip
  • 6 сообщений
Репутация: 0
Начинающий

Отправлено 24 January 2012 - 01:36 AM

а что пару строчек в файл шаблона дописать сложно? подключить выбор в админку можно - не такая и проблема, только смысл тратить на это время.... если можно сделать так как описано в этой теме.


Насколько я понимаю, здесь описаны условия работы с заголовком, в случае, если заголовок блока не введен пользователем. А я бы хотел использовать разные шаблоны вывода блоков, а не только работу с заголовком. Есть потребность сделать пару-тройку шаблонов блоков, в которых бы были прописаны стили поведения всего блока вцелом, заголовка, содержимого блока, отступы и пр. Тем более, если потом придется работать посторонним людям, чтобы им было понятно, каким образом от их действий будет зависеть внешний вид.

Если не сложно, подскажите как прописать для админки способ вывода разных шаблонов блока, думаю многим такое решение пригодится.
  • 0

#8 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 24 January 2012 - 02:23 AM

Если не сложно, подскажите как прописать для админки способ вывода разных шаблонов блока, думаю многим такое решение пригодится.

Если бы это было в 5 минут то давно бы так и сделали, а я говорю о том что проще добавить условие в код, чем делать под это админку, учитывая что настраиваться это будет 1 раз, а не меняться периодически.
В админку целесообразно выносить то что часто меняется ну или просто необходимо.

А это не отдельные модули это просто доработки, допиливание недостатков движка.... написание отдельных модулей стоит денег.
  • 0

#9 WolfDeMar

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений
Репутация: 0
Начинающий

Отправлено 17 February 2013 - 06:23 PM

Люди!!! Помогите - у меня не фига оно не работает при изменении свойств надписи названия товара!!!
Я пишу, ну что то типа вот так: (header.tpl.html)

{if $nopad != 1}<div class="fil1 white"></div>{/if}
{if $header ne ""}

<table cellspacing="0" cellpadding="0" width="100%">
{if $binfo[b].url eq "product_brief.tpl.html" || $binfo[b].url eq "product_detailed.tpl.html"}
<tr>
<td align="left"><font
size="5" color="red" face="Arial">{$header}<font></td>
</tr>
{/if}
<tr>
<td class="hd bf" align="left">
{$header}</td>
</tr>
</table>

{/if}

Короче, хочу что бы при выведении таблицы краткого или полного

описания позиции товар, имя товара было побольше и другого цвета...
И ни фига. Заранее всем благодарен!
  • 0