Ich würde gerne das bestehende Template "Gallery" erweitern. Genau
genommen will ich einen Ordnername als Querystring an das Verzeichnis
"Folder" anhängen um eine bestimmte Gallery anzeigen zu können.
Wie kann ich das machen?
<xsl:template mode="show" match="element[@type='gallery']">
<xsl:variable select="folder/@path" name="path"/>
<xsl:if test="//data/query/data/picture">
<img>
<xsl:attribute name="src">
<xsl:text>default.aspx?process=download/</xsl:text><xsl:value-
of select="$path"/><xsl:text>/</xsl:text><xsl:value-of select="//data/
query/data/picture"/>
<xsl:text>&width=250</xsl:text>
</xsl:attribute>
</img><br/>
<br/>
</xsl:if>
<div>
<xsl:for-each select="folder/folder/file[@extension='.jpg']">
<a>
<xsl:attribute name="href">
<xsl:text>default.aspx?process=</xsl:text>
<xsl:value-of select="//data/query/other/process"/>
<xsl:text>&data_picture=</xsl:text>
<xsl:value-of select="@name"/>
</xsl:attribute>
<img style="border:1px solid black;">
<xsl:attribute name="src">
<xsl:text>default.aspx?process=download/</xsl:text>
<xsl:value-of select="$path"/>
<xsl:text>/</xsl:text>
<xsl:value-of select="@name"/>
<xsl:text>&width=50&height=50</xsl:text>
</xsl:attribute>
</img>
</a>
</xsl:for-each>
</div>
</xsl:template>
und der link http://www.domainname.net/show/german/gallery.aspx?id=Ordnername
mit XSLT alleine geht das leider nicht, schließlich muss der Engine
gesagt werden, welcher Orderinhalt in die XML Struktur eingefügt
werden soll.
Ein Hack in der Library FileTree wäre aber evtl. Möglich:
in der Klasse FileTree, Zeile 71, Methode "GetFolder" kan folgender
Code eingefügt werden:
if (!
string.IsNullOrEmpty(System.Web.HttpContext.Current.Request["id"]))
folder = System.Web.HttpContext.Current.Request["id"];
Allerdings ist das nicht optimal, da erstens das Request direkt
abgefragt wird (der Vert sollte vom XML kommen), zweitens die "id"
hier fest in den Code geschrieben ist (die sollte Variabel sein) und
letztens das ganze beim nächsten Update weg sein kann, wenn man nicht
aufpasst (Mads wird das auf keinen Fall mit in die Anwendung
reinnehmen).
Ist halt erstmal nur ein Hack.
Grüsse
Jürgen
> und der linkhttp://www.domainname.net/show/german/gallery.aspx?id=Ordnername
Danke, ist wirklich keine saubere Lösung aber für vorübergehend mach
ichs mal so und hoffe, bald eine sauberere Lösung zu finden.
Damit dieser "würg" auch funktioniert, muss diese If-Anweisung ein
paar schritte weiter vorne ausgeführ werden. Und zwar in der Datei
ProviderFile.cs, nach der Zeile 198 (string path = value;) in der
Funktion "LoadFolder".
On 16 Sep., 15:13, Jürgen Gutsch <juergen.gut...@googlemail.com>
wrote:
> > Wie kann ich das machen?- Zitierten Text ausblenden -
>
> - Zitierten Text anzeigen -
> Damit dieser "würg" auch funktioniert, muss diese If-Anweisung
> ein paar schritte weiter vorne ausgeführ werden.
Bist du sicher? Ich hatte es extra an dieser Stelle probiert, damit
der Hack nicht in eine der Großen Libraries ist, sondern in dieser
kleinen.
Aber wenns bei dir nur so funktioniert...
> > - Zitierten Text anzeigen -- Hide quoted text -
>
> - Show quoted text -