parser

/faq/faq
/authors/авторы
/docs/документация

/powered_by_parser/в действии
/feedback/куда говорить
/jargon/жаргон

/download/скачать

/examples/примеры
/forum/форум



Поиск по форуму

По умолчанию ключевое слово ищется только в заголовке сообщения.

Ключевое слово:

Фильтровать по автору:



_ответ

Безымянный 13.06.2001 16:23

Держи...

CFG'шник с данными - _sections.cfg в корне

#Таблица с номерами разделов и подразделов
primary	secondary	title	file
010	000	Главная страница	/
020	000	Чипсы	/chipsy/
030	000	Пиво	/pivo/
030	010	Балтика	/pivo/baltika/
030	020	Клинское	/pivo/baltika/
030	030	Grolsh	/pivo/grolsh/
030	040	Berliner Kindl	/pivo/kindl/
030	050	K&ouml^;lsch	/pivo/kolsh/
040	000	Водка	/vodka/
050	000	Девчёнки	/girls/
050	010	Катя	/girls/katya/
050	020	Маша	/girls/masha/
050	030	Таня	/girls/tanya/
Primary - это номер раздела. Secondary - номер страницы в нём.

макрос в _macro.cfg:
@page[primary;secondary;body] Основной шаблон
<html><body><h1>Менюха:</h1><hr>
^context[sections;
^load[named;sections.cfg]
  <br><font size=-1><ul>
  ^menu[
#   Если не требуется скрывать ветви списка,
#   отличные от текущей, закомментируй 
#   следующую строку (и ещё одну чуть ниже,
#   она там отмечена таким же комментарием):    
    ^if[(^item[primary]!=$primary)
    &&(^item[secondary]!=0);;
#     Проверяем, требуется ли этой строчке меню 
#     тэг <ul> впереди:
      ^if[(^item[secondary]!=0)
      &&(^item[prev;secondary]==0);
      <ul>;^rem[Не требуется..]]
#     Если мы дошли до строки меню, соответствующей
#     текущей странице, просто выделяем её название
#     болдом. Иначе - ставим ссылку:
      <li>^if[(^item[primary]==$primary)&&
          (^item[secondary]==$secondary);
          <b>^item[title]</b>;
          <A HREF="^item[file]">^item[title]</A>
      ]</li>
#     Проверяем, требуется ли предыдущей строчке
#     тэг </ul> позади:
      ^if[(^item[secondary]!=0)
      &&(^item[next;secondary]==0);
      </ul>;^rem[Не требуется..]]       
#   Если не требуется скрывать ветви списка, 
#   отличные от текущей, закомментируйте
#   одну следующую строку:    
    ]
  ]
  </ul></font>
]

<hr>

$body

</body></html>
Если хочешь выводить название текущего раздела вместо
<h1>Менюха</h1>
вставь
<h2>^rem[Название текущего раздела]
^context[sections;
^load[named;sections.cfg]
^locate[primary;$primary]
<b>^item[title]</b>
^menu[
 ^if[^item[secondary]!=0;
  ^if[(^item[primary]==$primary)&&(^item[secondary]==$secondary); &gt^; <b>^item[title]</b>;]
 ;]
]
]</h2>
Создай структуру директорий
/
/chipsy/
/pivo/
/pivo/baltika/
/pivo/baltika/
/pivo/grolsh/
/pivo/kindl/
/pivo/kolsh/
/vodka/
/girls/
/girls/katya/
/girls/masha/
/girls/tanya/
разложи по ней файлы index.html такого формата:
^macro[page;010;000;
<p>Съешь ещё немножко этих мягких французских булок, да выпей чаю. Съешь ещё этих мягких французских булок, да выпей чаю.</p>
]
макрос сопоставляет цифру раздела и подраздела тому, что написано в _sections.cfg - и соответственно рисует меню.

То есть файл /pivo/baltika/index.html должен содержать что-то типа:
^macro[page;030;010;
<p>Балтика по сравнению с Берлинер Киндлом не катит!!!</p>
]
Уф-ффф!

<<  Вернуться к списку сообщений


E-mail: mailbox@parser.ruCopyright © 1997-2001 Студия Артемия Лебедева