Jump to content
  • 0

SSI и подсветка активного раздела меню


Webr
 Share

Question

Сразу скажу, что PHP не знаю и применять здесь не собираюсь. Речь идёт только об SSI в IIS5.

Есть несколько .shtml-файлов, к которым подключаются файлы header.inc и footer.inc.

В header имеется навигационное меню - просто список с набором линков на файлы с главами книги.

Нужно, чтобы автоматически подсвечивался пункт меню, соответствующий текущему файлу.

Как такое сделать средствами одного лишь SSI, без JavaScript ?

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Как вариант. Задается для каждого пункта меню id и в каждой страничке для body задается свой класс. В стилях пишем, например так:

body.page1 #item1 { стили выделенного пункта 1 меню }
body.page2 #item2 { стили выделенного пункта 2 меню }
body.page3 #item3 { стили выделенного пункта 3 меню } и т.п.

Link to comment
Share on other sites

  • 0
Я тёмный человек. Что означают префиксы body.page1, body.page2 и body.page3 ?

page1 и т.д это классы для body, которые вы прописываете на каждой странице. Исходя из моего примера описания стилей, если нужно подсвечивать пункт меню с идентификатором item1, то для body указываете класс page1: <body class="page1">. Если нужно подсвечивать пункт меню с идентификатором item2, то, соответственно, для body указываете класс page2: <body class="page2"> и т.п.

Link to comment
Share on other sites

  • 0

<!--#if expr="$DOCUMENT_URI=/^\/directory1\//" -->
<p>Текущий раздел 1</p>
<!--#elif expr="$DOCUMENT_URI=/^\/directory2\//" -->
<p>Текущий раздел 2</p>
<!--#endif -->

Внутри условия можно также вставить присвоение переменной

<!--#if expr="$DOCUMENT_URI=/^\/about\//" -->
<!--#set var="TEK_RAZDEL" value="vrazdele" -->
<!--#else -->
<!--#set var="TEK_RAZDEL" value="ne_vrazdele" -->
<!--#endif -->

И потом в меню уже сделать вставку

<a href="about/" class="<!--#echo var="TEK_RAZDEL" -->">Об этом</a>

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy