2002-02-20 20:13:54

Считается хорошим тоном, если вы в заголовке страниц кроме собственно названия страницы пишете полный путь, к ней начиная от корня. Посетителю в таком случае, будет легче ориентироваться на вашем сайте.

Макрос, формирующий такие названия страниц, — очень похож на макрос из (на самом деле лучше сделать один макрос делающий обе задачи) и поэтому здесь я просто приведу его код без подробных комментариев.

@navigation[title] title - это название страницы
# Определяем переменную splt - разделитель между элементами строки навигации
^var[splt;&gt^;]
# определяем переменную – название документа по умолчанию
# здесь это index.html, но можно и любое другое значение
^var[default.doc;index.html]
# создаем именованный контекст sections с названиями всех разделов сайта
^context[sections;^load[/путь/к/файлу/файл_с_описанием_разделов]]

^context[nav;
# Разбиваем URI на составляющие и ими столбцы
# текущего контекста
	^lsplit[^env[PATH_INFO];/]
# Делаем столбцы строками
	^flip[nav]
# Начинаем формировать переменную string - HTML код строки навигации
	^var[string;<a href=/>Название сайта</a>]
# Начинаем формировать переменую – uri раздела
	^var[dir;/^item[0]/]
# Начинаем формировать переменную title – заголовок страницы
	^var[title;Название сайта ]

	^menu[
# Переменная для определения следующего элемента URI
		^var[next_row;^item[next;0]]

		^context[sections;
# Поиск для построенного каталога в контексте
			^locate[dir;^var[dir]]
# фиктивная переменная page – для определения того, является ли
# следующий элемент страницей или нет?
			^var[page;^findstr[html;^var[dir]]]
			^if[^var[page] > 0;
				^var[string;.; ^var[splt] $title]
				^var[title;.; | $title]
				;
				^var[next;^findstr[^var[default.doc];^var[next_row]]]
				^if[^var[next] < 0;
					^var[string;.; ^var[splt] <a href=^var[dir]>^item[title]</a>]
					^var[title;.; | ^item[title]]
				;]
			]
		]
		^var[dir;.;^item[next;0]/]
	]
] 

Данный макрос должен отработать до тегов < title>… < /title>, далее полученную переменную title, являющуюся названием страницы просто вставляем между тегами < title>… < /title> и получаем название каждой страницы с описанием полного пути к ней.

2002-02-20 20:13:54  parser snippet web
comments powered by Disqus