Autor Zpráva
rebas
Profil *
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
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 *
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
Tak tady jsou pak nějaké další tipy.
Chamurappi
Profil
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 *
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 *
vytvořte si vlastní xml s datumem (php) a připojte do šablony
Chamurappi
Profil
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…

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: