Spis tre╢ci

Uwa┐niejszy webmaster na pewno ju┐ sobie poradzi│ z konstrukcj▒ strony, zerkaj▒c po prostu do jej ╝r≤d│a i wyci▒gaj▒c plik spisu tre╢ci z cache'a przegl▒darki. Dla lepszego zobrazowania problemu pos│u┐my siΩ przyk│adem tego dodatku.

Autorom wykorzystuj▒cym HTML Help ActiveX sugerujΩ pos│ugiwanie siΩ kompilatorem HTML Help Workshop, gdy┐ po prostu │atwiej jest ustaliµ niekt≤re parametry spisu tre╢ci, choµ praca z Workshopem potrafi byµ niekiedy mocno stresuj▒ca, na skutek jego rozmaitych niedor≤bek.

Podstaw▒ konstrukcji tej strony jest oczywi╢cie uk│ad ramek:

<frameset rows="100%" cols="27%,*" frameborder="no">
	<frame name="left" src="spis.htm" scrolling="auto">
	<frame name="right" src="wstep.htm" scrolling="auto">
</frameset>

Lewa ramka nazywa siΩ "left", za╢ prawa - "right". Nazwy s▒ istotne dla spisu tre╢ci.

W lewej ramce, w ramach BODY, umieszczone jest polecenie OBJECT, kt≤re wywo│uje HTML Help ActiveX:

<OBJECT id=hhctrl type="application/x-oleobject"
        classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"
        codebase="hhctrl.ocx#Version=4,73,8561,0"
        width=100%
        height=90%
>
    <PARAM name="Command" value="Contents">
    <PARAM name="Item1" value="kurshtml.hhc">
    <PARAM name="Flags" value="0x0,0x17">
</OBJECT>

Uwaga: u niekt≤rych u┐ytkownik≤w mo┐e siΩ pojawiµ konflikt miΩdzy posiadan▒ w komputerze i zadeklarowan▒ wersj▒ hhctrl.ocx. Aby jej unikn▒µ, mo┐emy podawaµ w poleceniu codebase

CODEBASE="http://activex.microsoft.com/controls/htmlhelp/hhctrl.ocx"

Warto╢µ Contents informuje, ┐e polecenie dotyczy spisu tre╢ci, kt≤ry jest reprezentowany w tym miejscu przez odrΩbny plik kurshtml.hhc. Warto╢ci width i height m≤wi▒, jaki procent ekranu (w ramce, rzecz jasna) zajmuje spis, a w│a╢ciwie ca│y obiekt. Warto╢ci Flags s▒ ustalane w trakcie tworzenia spisu w HTML Help Workshop - trudno je ustalaµ rΩcznie, st▒d w│a╢nie lepsze jest u┐ycie kompilatora. Ja sam przyj▒│em, ┐e spis ma bia│e t│o i jest rozwijany m.in. za pomoc▒ kratek z plusami. T│o tej strony tak┐e jest bia│e, wskutek czego spis wtapia siΩ w stronΩ.

Przytoczmy teraz postaµ pliku ze spisem, czyli kurshtml.hhc, wygenerowanego przez HTML Help Workshop. Jest to oczywi╢cie plik tekstowy HTML. Dla uproszczenia zostawiamy tylko po jednej pozycji na rozmaitych poziomach tego spisu.

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
<!-- Sitemap 1.0 -->
</HEAD><BODY>
<OBJECT type="text/site properties">
	<param name="FrameName" value="right">
	<param name="Window Styles" value="0x5">
	<param name="ImageType" value="Folder">
</OBJECT>
<UL>
	<LI> <OBJECT type="text/sitemap">
		<param name="Name" value="WstΩp">
		<param name="Local" value="wstep.htm">
		<param name="FrameName" value="right">
		<param name="ImageNumber" value="17">
		</OBJECT>
	<LI> <OBJECT type="text/sitemap">
		<param name="Name" value="HTML">
		<param name="FrameName" value="right">
		</OBJECT>
	<UL>
		<LI> <OBJECT type="text/sitemap">
			<param name="Name" value="HTML dla bardzo pocz▒tkuj▒cych">
			<param name="Local" value="..\beginner\beginner.htm">
			<param name="FrameName" value="right">
			<param name="ImageNumber" value="11">
			</OBJECT>
	</UL>
	<LI> <OBJECT type="text/sitemap">
		<param name="Name" value="Lupus Online">
		</OBJECT>
	<UL>
		<LI> <OBJECT type="text/sitemap">
			<param name="Name" value="PCkurier">
			<param name="Local" value="http://www.pckurier.pl">
			<param name="FrameName" value="right">
			<param name="ImageNumber" value="13">
			</OBJECT>
	</UL>
	<LI> <OBJECT type="text/sitemap">
		<param name="Name" value="Wyszukiwarki internetowe">
		</OBJECT>
	<UL>
		<LI> <OBJECT type="text/sitemap">
			<param name="Name" value="Infoseek PL">
			<param name="Local" value="http://infoseek.icm.edu.pl">
			<param name="FrameName" value="right">
			<param name="ImageNumber" value="13">
			</OBJECT>
	</UL>
	<LI> <OBJECT type="text/sitemap">
		<param name="Name" value="Serwisy z oprogramowaniem">
		</OBJECT>
	<UL>
		<LI> <OBJECT type="text/sitemap">
			<param name="Name" value="SlaughterHouse">
			<param name="Local" value="http://slaughterhouse.com">
			<param name="FrameName" value="right">
			<param name="ImageNumber" value="13">
			</OBJECT>
	</UL>
</UL>
</BODY></HTML>

Jak │atwo zauwa┐yµ, spis sk│ada siΩ z dwupoziomowego wykazu typu UL, w kt≤rym wy┐szy poziom pe│ni funkcjΩ folderu dla ni┐szego, czyli odsy│aczy do konkretnych stron. Podany przyk│ad mo┐na skopiowaµ i przystosowaµ do w│asnych potrzeb, rozwijaj▒c o dalsze odsy│acze. Dla u│atwienia, tutaj jest zzipowana wersja spisu - hhc.zip

Polecenie <param name="FrameName" value="right"> m≤wi o skierowaniu zawarto╢ci do prawej ramki (right), w│a╢nie tej, kt≤r▒ okre╢lili╢my w uk│adzie ramek dla ca│ej strony.

Polecenie <param name="ImageNumber" value="13"> informuje, jakie ikonki s▒ przypisane do poszczeg≤lnych adres≤w: do dyspozycji mamy "auto" i numery od 1 do 42. Na przyk│ad, value=13 generuje ikonkΩ strony w Internecie, value=17 - ikonkΩ ze znakiem informacji.

HTML Help Workshop generuje warto╢ci adres≤w lokalnych z backslashami, choµ dzia│aj▒ obie wersje.

Ta w│a╢nie definicja jest przywo│ywana do lewej ramki, podanym wy┐ej poleceniem OBJECT. Obs│uguje j▒ kontrolka ActiveX, wbudowuj▒c j▒ w stronΩ HTML.

Oczywi╢cie nic nie stoi na przeszkodzie, aby tego rodzaju spis umieszczaµ nie w uk│adzie ramkowym, lecz na pojedynczych stronach.