Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

Уважаемые Форумчане, проблема в интеграции существующего кода с css "мега меню".
Итак есть код который генерирует пункты нашего меню:

<!-- Меню каталога -->
<div id="catalog_menu">

{* Рекурсивная функция вывода дерева категорий *}
{function name=categories_tree}
{if $categories}
<ul>
{foreach $categories as $c}
{* Показываем только видимые категории *}
{if $c->visible}
<li>
{if $c->image}<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name}">{/if}
<a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name}</a>
{categories_tree categories=$c->subcategories}
</li>
{/if}
{/foreach}
</ul>
{/if}
{/function}
{categories_tree categories=$categories}
</div>
<!-- Меню каталога (The End)-->


Помогите понять как создать горизонтальное меню как тут (самый последний вариант): http://www.designchemical.com/lab/jquery-mega-drop-down-menu-plugin/examples/

или тут: http://jemand.ru/mega-menyu-na-css-jquery/

Не понимаю как "вживить" выпадающую область в код Симплы.
Не могу понять каким образом создается выпадающая область

Ссылка на сообщение
Поделиться на другие сайты

Я обычно пишу подключаемый файл menu.tpl который позволяет создавать шаблон вывода для каждого уровня меню

Ссылка на сообщение
Поделиться на другие сайты

для начала - css

#catalog_menu li { float:left;}
- и меню горизонтальное, для выпадающего нужно скрипт писать тут чтото похожее
Ссылка на сообщение
Поделиться на другие сайты

Это файл categories.tpl

{if $categories}{if $level == 0}
{/if}{if $level == 1}{/if}{/if}
Подключается так:
{include file=categories.tpl categories=$categories level=0}
Ссылка на сообщение
Поделиться на другие сайты

Что-то не так. Лишние слеши убрал и...

Fatal error: Uncaught exception 'SmartyCompilerException' with message 'Syntax Error in template "W:\home\localhost\www\simpla_11//design/default_OK_1/html\index.tpl" on line 151 "{include file=categories.tpl categories=$categories level=0}" - Unexpected ".", expected one of: "}" , " "' in W:\home\localhost\www\simpla_11\Smarty\libs\sysplugins\smarty_internal_templatecompilerbase.php:431 Stack trace: #0 W:\home\localhost\www\simpla_11\Smarty\libs\sysplugins\smarty_internal_templateparser.php(2855): Smarty_Internal_TemplateCompilerBase->trigger_template_error() #1 W:\home\localhost\www\simpla_11\Smarty\libs\sysplugins\smarty_internal_templateparser.php(2920): Smarty_Internal_Templateparser->yy_syntax_error(56, '.') #2 W:\home\localhost\www\simpla_11\Smarty\libs\sysplugins\smarty_internal_smartytemplatecompiler.php(51): Smarty_Internal_Templateparser->doParse(56, '.') #3 W:\home\localhost\www\simpla_11\Smarty\libs\sysplugins\smarty_internal_templatecompilerbase.php(82): Smarty_Internal_SmartyTemplateCompiler->doCompile('< in W:\home\localhost\www\simpla_11\Smarty\libs\sysplugins\smarty_internal_templatecompilerbase.php on line 431

Ссылка на сообщение
Поделиться на другие сайты

Помогите пожалуйста. Ну никак не осилю. Все эти ul li a во вложениях, куда всунуть контейнер со вложенными элементами меню ну совсем не ясно.

Ссылка на сообщение
Поделиться на другие сайты

попробуй. как шаблон повесить думаю сообразишь

{foreach $categories as $c}
{$c->name}
{/foreach}


{function name=categories_tree}
{if $categories}
{foreach $categories as $c}

{$c->name}
{if $c->items}
{categories_tree categories=$c->subcategories}
{/if}

{/foreach}
{/if}
{/function}

{foreach $categories as $c}
{categories_tree categories=$c->subcategories}
{/foreach}
Ссылка на сообщение
Поделиться на другие сайты

Это в индекс

<div id="catalog_menu">
{include file='categories.tpl' categories=$categories level=0}
</div>

Это в categories.tpl
?{if $categories}
{if $level == 0}<ul class="ulcat">
{foreach item=c from=$categories}
{if $c->subcategories}
<li class="licat">
<a href="catalog/{$c->url}" class="acat">{$c->name}</a>
{include file='categories.tpl' categories=$c->subcategories level=1}</li>
{else}
<li class="licat">
<a href="catalog/{$c->url}" class="acat">{$c->name}</a>
</li>

{/if}
{/foreach}

</ul>{/if}
{if $level == 1}<ul class="ulsub">
{foreach item=c from=$categories}
{if $c->subcategories}
<li class="lisub">
<a href="catalog/{$c->url}" class="text-bold" class="asub">{$c->name}</a>
{include file='categories.tpl' categories=$c->subcategories level=1}
</li>
{else}
<li class="lisub">
<a href="catalog/{$c->url}" class="asub">{$c->name}</a>
</li>
{/if}
{/foreach}
</ul>
{/if}

{/if}

Это в стили
#catalog_menu{ margin:8px 0 0 5px; padding: 0; float: left; width: 100%; font-size:13px; } .ulcat { list-style: none; margin:0; padding:0; float: left; } .licat { background:url('../images/h-menu-pad-right.jpg') no-repeat top right, url('../images/h-menu-pad-left.jpg') no-repeat top left, url('../images/h-menu-pad-center.jpg') repeat-x top; float: left; position: relative; text-align:center; vertical-align:center; height:42px; width:120px; } .licat { -moz-border-radius:5px 5px 0 0; -webkit-border-radius:5px 5px 0 0; -khtml-border-radius:5px 5px 0 0; border-radius:5px 5px 0 0; } .acat { color:#ffffff; font-weight:bold; text-decoration: none; display: block; width: 110px; padding: 0px 5px; margin-top:5px; } .ulsub { float: left; background:#ffffff; border:2px solid #4AA93F; display: none; position: absolute; padding: 5px; width: 310px; z-index:99; margin-top:-12px; list-style: none; text-align:left; } .lisub { float: left; margin:0; padding:0; border:none; width:100%; background: none; border:none; } .asub { width: 300px; font-size:14px; text-align:left; color:#333333; border:none; text-decoration:none; padding:4px 10px; display: block; } .licat:hover, .licat.jshover { background:url('../images/h-menu-pad-sel-right.jpg') no-repeat top right, url('../images/h-menu-pad-sel-left.jpg') no-repeat top left, url('../images/h-menu-pad-sel-center.jpg') repeat-x top; } .licat:hover .acat, .licat.jshover .acat { color:#ffffff; } .licat:hover.asub, .licat.jshover.asub { } .licat:hover.asub:hover { color:#e84d07; } .lisub:hover, .lisub.jshover { background:#DDE7F3; border:none; } .licat:hover .ulsub, .licat.jshover .ulsub { display: block; }

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

Ссылка на сообщение
Поделиться на другие сайты

Fatal error: Uncaught exception 'SmartyException' with message 'Unable to load template file 'categorieshit.tpl'' in W:\home\localhost\www\simpla_11\Smarty\libs\sysplugins\smarty_internal_template.php:163 Stack trace: #0 W:\home\localhost\www\simpla_11\Smarty\libs\sysplugins\smarty_internal_template.php(550): Smarty_Internal_Template->isExisting(true) #1 W:\home\localhost\www\simpla_11\compiled\default_OK_1\bb39426adc1aa3163ec4405457a83a5d4e0d8cd4.file.categories.tpl.php(33): Smarty_Internal_Template->getRenderedTemplate() #2 W:\home\localhost\www\simpla_11\Smarty\libs\sysplugins\smarty_internal_template.php(432): include('W:\home\localho...') #3 W:\home\localhost\www\simpla_11\Smarty\libs\sysplugins\smarty_internal_template.php(567): Smarty_Internal_Template->renderTemplate() #4 W:\home\localhost\www\simpla_11\compiled\default_OK_1\73b09432379e7f1fd0dfb637a071b311c352268b.file.index.tpl.php(198): Smarty_Internal_Template->getRenderedTemplate() #5 W:\home\localhost\www\simpla_11\Smarty\libs\sysplugins\smarty_internal_temp in W:\home\localhost\www\simpla_11\Smarty\libs\sysplugins\smarty_internal_template.php on line 163

Ссылка на сообщение
Поделиться на другие сайты

Попробовал содержимое файла categories.tpl вписать в индекс вместо 

{include file='categories.tpl' categories=$categories level=0}

Результат тот же(

Ссылка на сообщение
Поделиться на другие сайты

Заработало! В categories.tpl была ссылка на categorieshit.tpl

При наведении курсора на категорию открывается список под-пунктов и под-под-пунктов. Хочется чтобы вся дерево строилось в один список. Как у Розетки, Мобилака и т д

Ссылка на сообщение
Поделиться на другие сайты
В categories.tpl была ссылка на categorieshit.tpl

да я недосмотрел.
При наведении курсора на категорию открывается список под-пунктов и под-под-пунктов. Хочется чтобы вся дерево строилось в один список. Как у Розетки, Мобилака и т д

Ну, так написано же
Максимальная вложенность меню = 2. Т.е. категории и подкатегории, а под-подкатегорий нет. Но сделать можно по примеру. Удачи.
Ссылка на сообщение
Поделиться на другие сайты

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

Ссылка на сообщение
Поделиться на другие сайты

Вся сложность в том чтобы реализовать подобное меню на пхп с привязкой к движку и БД. Чтоб потом не париться при добавлении новых категорий. Не знаю я php от того и бьюсь с этим мегаменю(

Ссылка на сообщение
Поделиться на другие сайты

Сделай это меню с ручным добавлением, не пожалеешь! ! раз набьешь как нужно и все + это открывает больше возможностей. Ты можешь задействовать еще и производителей, да и вообще играться с любыми ссылками. Розетка тоже так сделала!

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...