WebToDate/Fulltext Google/Tipy a návody

Z WebToDate
Skočit na navigaciSkočit na vyhledávání


Volba způsobu formátování výsledků hledání

Dle požadavků na způsob formátování výsledků hledání je možné použít buď WebToDate styl nebo XSLT transformaci. Použití WebToDate stylu je jednoduché, jeho definice je velmi rychlá. Na druhou stranu je možné zobrazování informací omezeno pouze na podporované výrazy (viz Klíčová slova modulu). Vytvořit XSLT transformaci je složitější, ale její možnosti jsou podstatně větší. Transformaci je vhodné vytvořit v případě, kdy je žádoucí zobrazovat informace, které pomocí stylu nelze vložit, např. může jít o informace o přílohách (tj. pokud odkaz vede na přílohu ke stažení, lze zobrazit informaci o formátu souboru, jeho ikonu apod.).

Ukázková transformace může vypadat např. následovně:

<?xml version="1.0" encoding="windows-1250"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output method="html" version="1.0" encoding="windows-1250" indent="yes"/>
	<xsl:variable name="startdelim" select="'<b>'" />
	<xsl:variable name="enddelim" select="'</b>'" />
	<xsl:variable name="attachment" select="'Příloha ke stažení'" />
	<xsl:variable name="publication" select="'Datum publikace'" />
	<xsl:template match="/">
		<xsl:apply-templates select="//RES/R"/>
	</xsl:template>
	<xsl:template match="R">
		<div class="resultItem">
			<a>
				<xsl:attribute name="href"><xsl:value-of select="U" /></xsl:attribute>
				<xsl:attribute name="class">vice</xsl:attribute>
				<xsl:attribute name="title"><xsl:value-of select="T"/></xsl:attribute>
				<xsl:value-of select="T" disable-output-escaping="yes"/>
			</a>
			<xsl:choose>
				<xsl:when test="@MIME='application/pdf'">
					<em>  (<xsl:value-of select="$attachment" />; PDF)</em>				
				</xsl:when>
				<xsl:when test="@MIME='application/vnd.ms-excel'">
					<em>  (<xsl:value-of select="$attachment" />; XLS)</em>				
				</xsl:when>
				<xsl:when test="@MIME='application/msword'">
					<em>  (<xsl:value-of select="$attachment" />; DOC)</em>				
				</xsl:when>
				<xsl:when test="@MIME='application/vnd.ms-powerpoint'">
					<em>  (<xsl:value-of select="$attachment" />; PPT)</em>				
				</xsl:when>
				<xsl:when test="@MIME='application/zip'">
					<em>  (<xsl:value-of select="$attachment" />; ZIP)</em>				
				</xsl:when>
				<xsl:when test="@MIME='application/rtf'">
					<em>  (<xsl:value-of select="$attachment" />; RTF)</em>				
				</xsl:when>
				<xsl:when test="string-length(@MIME)=0">
				</xsl:when>
				<xsl:otherwise>
					<em>  (<xsl:value-of select="$attachment" />; <xsl:value-of select="@MIME" />)</em>
				</xsl:otherwise>
			</xsl:choose>
			<p>
				<xsl:variable name="Sx">
					<xsl:call-template name="removeHtmlTags">
        				<xsl:with-param name="html" select="S" />
    				</xsl:call-template>
				</xsl:variable>
				<xsl:call-template name="replace-tags">
					<xsl:with-param name="text" select="$Sx"/>
				</xsl:call-template>
			</p>
			<xsl:if test="string-length(./MT[@N='last-modified']/@V)!=0">
				<p><xsl:value-of select="$publication" />: <strong><xsl:value-of select="./MT[@N='last-modified']/@V"/></strong></p>
			</xsl:if>
		</div>
	</xsl:template>
	<xsl:template name="replace-tags">
		<xsl:param name="text" />
		<xsl:choose>
			<xsl:when test="contains($text,$startdelim) and contains($text,$enddelim)">
				<xsl:value-of select="substring-before($text,$startdelim)" disable-output-escaping="yes"/>
				<span class="keyword"><xsl:value-of select="substring-before(substring-after($text,$startdelim),$enddelim)" disable-output-escaping="yes"/></span>
				<xsl:call-template name="replace-tags">
					<xsl:with-param name="text" select="substring-after($text,$enddelim)"/>
				</xsl:call-template>
			</xsl:when>
			<xsl:otherwise>
				<xsl:value-of select="$text" disable-output-escaping="yes"/>
			</xsl:otherwise>
		</xsl:choose>
	</xsl:template>
	<xsl:template name="removeHtmlTags">
		<xsl:param name="html"/>
		<xsl:choose>
			<xsl:when test="contains($html, '&lt;')">
			<xsl:value-of select="substring-before($html, '&lt;')"/>
			<!-- Recurse through HTML -->
			<xsl:call-template name="removeHtmlTags">
				<xsl:with-param name="html" select="substring-after($html, '&gt;')"/>
			</xsl:call-template>
			</xsl:when>
			<xsl:otherwise>
				<xsl:value-of select="$html"/>
			</xsl:otherwise>
		</xsl:choose>
	</xsl:template>
</xsl:stylesheet>

Vyhledávání na více virtuálních webových prezentacích

Pokud provozujete na jedné instalaci WebToDate správu více virtuální webový prezentací (např. na různých doménách), je možno realizovat pomocí jedné instalace Google Mini hledání na těchto webech. Je třeba provést následující:

  • V Google Mini je třeba pro každou takovou webovou prezentaci založit novou kolekci
  • Je třeba vytvořit několik předloh pro vyhledávací skript, každou předlohu v designu toho kterého virtuálního serveru; předlohu pak lze na daném serveru vynutit použitím parametru tmplid vyhledávacího skriptu
  • Identifikaci kolekce není v takovém případě možné uvést v předvolbách modulu, ale ve vyhledávacím formuláři. Parametr site se tedy nezadává do pole Povinné parametry v URL v předvolbách, ale ve formuláři jako

<input type="hidden" name="gp" value="site=nejakynazev" />