Хотел бы сделать, не знаю как это правильно называется, по-моему выпадающее меню на своем сайте по адресу www.rusbolonka.ru Не подскажите, как мне, используя конструктор сайтов, справиться с этой задачей.
С уважением, Виталий.
Меню, как и многие другие компоненты на в шаблоне вставляется через макрос ^ AssetProxy(Asset URL);
У большинства на сайте в папке /root/ImportNode/WebGUI 7 Style 3/ есть меню "Style3 Coolmenu" и его шаблон "Newe Coolmenu"
Для начала стоит отметить их "галками" и нажать "Сделать дубликат" Редактировать будем полученные копии, чтобы не изменять настройки существующих шаблонов, которые используют оригинал. Первым делом отредактируем копию меню: присвоим в закладке "вид страницы/модуля" нашему меню полученную копию шаблона. Можно, также переименовать наше новое меню для удобства дальнейшего использования.
Итак: свойства самого меню устанавливают, какие именно страницы это меню будет отображать и какой шаблон будет использоваться.
Шаблон меню задаёт то, в каком виде будет отображаться меню (вертикально, горизонтально, в виде выпадаюшего... и т. д.)
Теперь основная работа будет заключаться в том, чтобы шаблон исходного Coolmenu (выпадающего меню) отредактировать так, чтобы наше меню выглядело так, как мы хотим.
Сам шаблон состоит из двух половинок, которые при редактировании расположены в окошках одно над другим. Это в вержнем окошке, собственно, шаблон и в нижнем то, что при отображении попадает в хедер страницы (Java скрипты и таблицы стилей).
В верхнем окошке шаблона выпадающего меню можно настраивать его расположение: "слева", "справа", "по центру", а также отступ от левого края и отступ от верхнего края. Прошу обратить внимание, что отступ задаётся в пикселях и имеет абсолютное позиционирование. То есть независимо от того, в такой части шаблона вы вставите это меню, на странице оно будет располагаться в соотверствии с настройками шаблона, описанными выше. Поэтому в шаблон страницы лучше всего вставлять это меню в самом начале, сразу за админичтративным меню (^ AdminBar();).
В связи с тем, что меню имеет абсолютное позиционирование, то в шаблоне учитывается расстояние от левого и верхнего края при включенной и выключенной административной панели:
--------------------
coolmenu.onlineRoot=""
coolmenu.pxBetween=2 //это растояние между пунктами меню
coolmenu.fromLeft=25 //расстояние от левого края при выкл. админ. панели
coolmenu.fromTop=138 //расстояние от верхнего края при выкл. админ. панели
<tmpl_if session.var.adminOn>
coolmenu.fromLeft=186 //расстояние от левого края при вкл. админ. панели
coolmenu.fromTop=160 //расстояние от верхнего края при выкл. админ. панели
</tmpl_if>
coolmenu.rows=1 // 1- меню располож. горизонтально, 0 - вертикально
------------------------
Соответственно оба значения надо менять пропорционально. Если вы задали выравнивание меню по центру, то заданное значение отступа от левого края игнорируется.
Остальные значения можно пока не менять.
В нижнем окне расположена таблица стилей, которая задаёт внешний вид (фон, рамка, надпись) самого меню. Для разных уровней меню можно задавать разные стили.
В общих чертах - это всё. Если будут более подробные вопросы по отдельным параметрам - готов ответить.
По английским названиям - во-первых, наверное, всё-таки предпочтительнее иметь две параллельные ветки, которые начинаются на одном уровне, а меню показывает страницы только этой языковой ветки:
По размерам ячеек - это в шаблоне меню (в верхнем окошке):
coolmenu.level[0].width=202 //ширина ячеек самого верхнего уровня в пикселях
coolmenu.level[0].height=25 //высота ячеек самого верхнего уровня в пикселях
//для следующего уровня:
coolmenu.level[1].width=coolmenu.level[0].width + 20 //ширина предыдущего уровня+20пикселей
coolmenu.level[1].height=20 //высота в пикселях
Аналогично для последующих уровней.....
Размер и тип шрифта задаётся в стилях окошком ниже.
.cLevel0 - для нулевого уровня
.cLevel0over - для нулевого уровня при наведении мыши
.cLevel0, .cLevel0over - для нулевого уровня независимо от положения мыши
Аналогично для первого уровня, второго... и т. д.
Кроме того, для того, чтобы названия страниц помещались в меню - существуют два поля: "название" и "название для меню". Во втором поле можно давать название с сокращениями.
У вас на сайте оно называется, просто, "Coolmenu". Вероятно, Вы его пробовали, когда перебирали шаблоны (оно из синих прямоугольников), но пункты меню не "выпадали" так как в настройках самого меню стоит отображать только один уровень. Это правильно для "горизонтального меню", но не подходит для выпадающего.
Надо задать:
Тип точки отсчёта - "Относительно корня"
Точка отсчёта - /а/ (+1)
Что отображать - "Дочерние"
на сколько уровней ниже текущего URL заканчивать отсчёт. - смотрите по обстоятельствам. Можете поставить хоть до бесконечности.
Есть некоторые подводные камни:
Поскольку пункты меню Coolmenu имют фиксированную ширину, задаваемую в шаблоне в пикселях, то при вашем количестве пунктов меню первого уровня оно не будет помешаться на странице. Вероятно, следует перегруппировать страницы так, стобы уменьшить их количество в верхнем уровне.
Кроме того есть нюансы связанные с абсолютным позиционированием. Завтра опишу подробнее, Вы пока обдумайте, какие из страниц верхнего уровня можно передвинуть вниз.
Хорошо. Итак, какое окончательное решение?
Делаем выпадающее на том месте, где сейчас горизонтальное, или куда-то слева или справа поставить вертикальное? (хотя я не совсем представляю куда...)
...Или вообще, делаем выпадающее, но вертикально расположенное?
Решил. меню разместить так же как у Вас. для чего: баннер вертикальный я уменьшу по высоте (этим решу сразу и проблему "резинового по вертикали" баннера), под ним планирую меню древовидного вида - кажется, что когда оно постоянно отображает содержание и вложенные страницы, для пользователя более информативно. если реализуемо, конечно. пробовал вставлять панель навигации, с шаблоном "dogterminal with menu" . в принципе терпимо, но не получается загнать под баннер. ячейку под баннер разбить на две?
как вариант: убрать вертикальный баннер совсем. картинку разместить в шапке, горизонтально, вместо баннера - меню. (как в шаблоне стиль02 в тестовом примере, левосторонний аналог) на место баннера.