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



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

#21 badisoft

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

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 13 December 2015 - 01:56 PM

Вдогонку.
Вот одно из моих стареньких горизонтальных меню на CSS.
Я оттуда удалил все лишнее, оставил только суть.
в нем два последних элемента горизонтального меню разворачиваются вниз-влево, а не вниз-вправо (имеют дополнительный класс rtl).
Также в примере куда лучше, чем в большинстве примеров на форуме реализовано построение структуры <ul><li><ul><li>...</li></ul>, на которой обычно и строятся все CSS-меню. Она тут бесконечна, т.е. сколько угодно уровней вложенности, при этом проста (три строчки).

{if $big_categories_tree && $big_categories_tree_count>0}
{php}
foreach ($this->get_template_vars('big_categories_tree') as $i => $val) if ($val['level']==0) {$prelast=$last; $last = $i;}
$this->assign("last", $last);
$this->assign("prelast", $prelast);
{/php}
<ul class="menu">
{section name=h loop=$big_categories_tree}
{if $smarty.section.h.index == $last || $smarty.section.h.index == $prelast}
<li class="rtl">
{else}
<li>
{/if}
{* --------------------------------- *}
<a href="category_{$big_categories_tree[h].categoryID}.html">{$big_categories_tree[h].name}</a>
{* --------------------------------- *}
{if $big_categories_tree[h.index_next].level <= $big_categories_tree[h].level}</li>{/if}
{if $big_categories_tree[h.index_next].level > $big_categories_tree[h].level}<ul>{/if}
{if $big_categories_tree[h.index_next].level < $big_categories_tree[h].level}{section name=ret loop=$big_categories_tree[h].level-$big_categories_tree[h.index_next].level}</ul></li>{/section}{/if}
{/section}
</ul>
{else}
<div align="center">{$smarty.const.STRING_NO_CATEGORIES}</div>
{/if}


А если воспользоваться идеей Dbus c :last-child, т.е. достаточно разворачивать влево только последнее подменю, то код меню будет еще проще:

{if $big_categories_tree && $big_categories_tree_count>0}
<ul class="menu">
{section name=h loop=$big_categories_tree}
<li>
{* --------------------------------- *}
<a href="category_{$big_categories_tree[h].categoryID}.html">{$big_categories_tree[h].name}</a>
{* --------------------------------- *}
{if $big_categories_tree[h.index_next].level <= $big_categories_tree[h].level}</li>{/if}
{if $big_categories_tree[h.index_next].level > $big_categories_tree[h].level}<ul>{/if}
{if $big_categories_tree[h.index_next].level < $big_categories_tree[h].level}{section name=ret loop=$big_categories_tree[h].level-$big_categories_tree[h.index_next].level}</ul></li>{/section}{/if}
{/section}
</ul>
{else}
<div align="center">{$smarty.const.STRING_NO_CATEGORIES}</div>
{/if}

  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#22 etdnepr

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

  • Download User
  • PipPipPip
  • 101 сообщений
Репутация: 0
Начинающий

Отправлено 28 February 2016 - 11:02 AM

Спасибо! Дмитрий, не сочтите за наглость))) А Вы могли бы выложить код не удаляя все лишнее?)) Еще раз спасибо!

С rtl получилось! С этим только не могу пока разобраться
{* --------------------------------- *}
  <a href="category_{$big_categories_tree[h].categoryID}.html">{$big_categories_tree[h].name}</a>
  {* --------------------------------- *}
  {if $big_categories_tree[h.index_next].level <= $big_categories_tree[h].level}</li>{/if}
  {if $big_categories_tree[h.index_next].level > $big_categories_tree[h].level}<ul>{/if}
  {if $big_categories_tree[h.index_next].level < $big_categories_tree[h].level}{section name=ret loop=$big_categories_tree[h].level-$big_categories_tree[h.index_next].level}</ul></li>{/section}{/if}
 

  • 0

#23 Lada

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

  • Download User
  • PipPipPip
  • 107 сообщений
Репутация: 7
Начинающий
  • ГородЧита

Отправлено 05 March 2016 - 09:36 PM

Спасибо! Дмитрий, не сочтите за наглость))) А Вы могли бы выложить код не удаляя все лишнее?)) Еще раз спасибо!

С rtl получилось! С этим только не могу пока разобраться


А не поделитесь скриптом всплывающего окна авторизации, что у вас в магазине посуды?
  • 0

#24 etdnepr

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

  • Download User
  • PipPipPip
  • 101 сообщений
Репутация: 0
Начинающий

Отправлено 05 March 2016 - 09:41 PM

А не поделитесь скриптом всплывающего окна авторизации, что у вас в магазине посуды?


Конечно! Вытяну код и выложу. Отправлю видимо ЛС ибо тут будет оффтоп))
  • 0