Autor | Zpráva | ||
---|---|---|---|
rebas Profil * |
#1 · Zasláno: 25. 3. 2013, 18:29:45
Zdravím,
poradí někdo s tímhle? Mám XSL šablonu která následně vytvoří webovou stránku. Můj problém je v tom, že potřebuji v té šabloně získat proměnnou pro aktuální datum (den číselně; měsíc; rok; den textově/pondělí, úterý; hodiny, minuty). Lze tedy nějak vytáhnout aktuální datum tak, abych jej následně mohl zpracovávat pomocí variable (například k aktuálnímu dni přičíst jeden či dva dny, atp.)? Nelze použít php, ani asp, maximalne pouze javacript |
||
Joker Profil |
#2 · Zasláno: 25. 3. 2013, 19:36:02
rebas:
Podle toho, jakou verzi používáte a čím to zpracováváte. V XSLT 2 by měla být funkce current-datetime |
||
rebas Profil * |
#3 · Zasláno: 25. 3. 2013, 20:59:46
verze...
<?xml version="1.0" encoding="windows-1250"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> šablony xsl jsou zpracovaný aspčkem. Bohužel na ASP se jako uživatel nemohu dostat (v šabloně asp funkce prostě nefungujou / nemám na to práva). když do šablony hodím ten current-datetime, tak to napíše toto: msxml3.dll error '80004005' 'current-dateTime' is not a valid XSLT or XPath function. -->current-dateTime()<-- Error occurred during compilation of included or imported stylesheet 'file:///D:/Inetpub/Servers/Cpress/www.vltava2000.cz/Shops/xxxx/XSL/shop_listings.xsl'. /Includes/Global.asp, line 284 |
||
Joker Profil |
#4 · Zasláno: 25. 3. 2013, 21:04:56
Tak tady jsou pak nějaké další tipy.
|
||
Chamurappi Profil |
#5 · Zasláno: 25. 3. 2013, 22:09:57
Reaguji na rebase:
„msxml3.dll error '80004005'“ Jestli používáš XSL procesor od Microsoftu, tak ten podporuje skriptování. V JavaScriptu pak můžeš vyvolat new Date() a z něj si zjistit všechny potřebné údaje.
„například k aktuálnímu dni přičíst jeden či dva dny“ var zaDvaDny = new Date(); zaDvaDny.setDate(zaDvaDny.getDate() + 2); |
||
rebas Profil * |
#6 · Zasláno: 25. 3. 2013, 23:07:53
Chamurappi:
jo tohle v podstatě funguje... problém je v tom, že pak mám vytvořenou stránku plnou javascriptu :-( teď to mám takto nějak: z databáze vytáhnu dobu kterou mám u zboží nastavenou jako dostupnost <xsl:variable name="PocetDnu"><xsl:choose> <xsl:when test="contains(DeliveryInfo, '[24]')">1</xsl:when> <xsl:when test="contains(DeliveryInfo, '[48]')">2</xsl:when> <xsl:when test="contains(DeliveryInfo, '[72]')">3</xsl:when> <xsl:when test="contains(DeliveryInfo, '[96]')">4</xsl:when> <xsl:when test="contains(DeliveryInfo, '[120]')">5</xsl:when> <xsl:when test="contains(DeliveryInfo, '[144]')">6</xsl:when> <xsl:when test="contains(DeliveryInfo, '[168]')">7</xsl:when> <xsl:when test="contains(DeliveryInfo, '00')">0</xsl:when> <xsl:otherwise>30</xsl:otherwise></xsl:choose></xsl:variable> pak mám právě v rámci javascriptu toto: (je to jen část - v tomto případě ještě přičítám 6 dnů) var datum6 = new Date(); var DruhyDatum6 = datum6.setDate(datum6.getDate() + (6+<xsl:value-of select="$PocetDnu" disable-output-escaping="yes"/>)); var da6 = datum6.getDate(); var dy6 = datum6.getDay(); var ye6 = datum6.getFullYear(); var mo6 = (datum6.getMonth()+1); a pak to dále zpracovávám http://www.vltava2000.cz/demo-demo.cz/default.asp?lngDepartmentID=1 je to jen testovací shop se dvěma položkama, ale je tam vidět, jak se o pak celý zasejří ve zdrojáku :-( v podstatě to dělá dobu dodání zboží když se najede myší nad dostupnost. Rád bych to nějak udělal, aby se ten javascript furt necpal do té stránky (při takových 20 položkách na jednu stránku to bude mazec), ale zas nevím, jak bych dostal do externího souboru javasriptu ty proměnné z šablony :-( |
||
hostik Profil * |
#7 · Zasláno: 26. 3. 2013, 15:21:19
vytvořte si vlastní xml s datumem (php) a připojte do šablony
|
||
Chamurappi Profil |
#8 · Zasláno: 27. 3. 2013, 00:57:57
Reaguji na rebase:
„pak mám právě v rámci javascriptu toto“ Já nemyslel JS generovaný ve stránce a zpracovávaný prohlížečem, ale JS spouštěný přímo při transformaci. Viz můj odkaz. Reaguji na hostika: „vytvořte si vlastní xml s datumem (php)“ Pochybuju, že mu tam bude PHP fungovat. Asi nemají důvod ho tam instalovat… |
||
Časová prodleva: 11 let
|
0