Autor Zpráva
rebajz
Profil *
Jsem uplný lajk a potřeboval bych píchnout s touto částí kodu:
<xsl:if test="DeliveryInfo!=''"><xsl:value-of select="DeliveryInfo" disable-output-escaping="yes"/><br /></xsl:if>

přičemž DeliveryInfo nabývá těchto tří hodnot:
1) Skladem, do 24 hodin + doba dle zvolené přepravní společnosti
2) Není skladem, není ani u dodavatele :-(
3) Předobjednávka, hra vychází xx.xx.xxxx.

Oč se mi jedná...
chtěl bych, aby když DeliveryInfo bude mít hodnotu Skladem, do 24 hodin + doba dle zvolené přepravní společnosti , tak aby se použila jen část textu a to: Skladem (v zelené barvě)

když Předobjednávka, titul vychází xx.xx.xxxx., tak aby se použil jen část textu: Předobjednávka (oranžová barva)

a když Není skladem, není ani u dodavatele :-( tak nenačítat žádné slovo

najde se dobrá duše, která mi s tím píchne?
quinux
Profil
<xsl:if test="@DeliveryInfo!=''">
	<xsl:choose>
		<xsl:when test="@DeliveryInfo = '1'">
			<xsl:element name="p">
				<xsl:attribute name="class">green</xsl:attribute>
				<xsl:text>Skladem</xsl:text>
			</xsl:element>
		</xsl:when>
		<xsl:when test="@DeliveryInfo = '3'">
			<xsl:element name="p">
				<xsl:attribute name="class">orange</xsl:attribute>
				<xsl:text>Předobjednávka</xsl:text>
			</xsl:element>
		</xsl:when>
	</xsl:choose>
</xsl:if>
Chamurappi
Profil
Reaguji na rebajze:
<xsl:if test="DeliveryInfo != ''">
	<xsl:choose>
		<xsl:when test="starts-with(DeliveryInfo, 'S')">
			<p class="zelena">Skladem</p>
		</xsl:when>
		<xsl:when test="starts-with(DeliveryInfo, 'P')">
			<p class="oranzova">Předobjednávka</p>
		</xsl:when>
	</xsl:choose>
</xsl:if>
najde se dobrá duše, která mi s tím píchne?
Kdybys chtěl ještě píchnout duši, stačí říct :-)
rebajz
Profil *
quinux: pokud použiju tvůj kod, tak to vždy napíše skladem

Chamurappi: pokud použiju tvůj kod, tak se nestane vůbec nic :-(
quinux
Profil
rebajz
No je důležité vědět co přesně vypíše DeliveryInfo. Já vycházel z číselných hodnot, Chamurappi pak (přesněji podle zadání) z textových hodnot. Napiš tedy co přesně píše toto <xsl:value-of select="DeliveryInfo" disable-output-escaping="yes"/>

EDIT: a zkontroluj, jestli opravdu přichází nějaký produkt s jiným stavem než "skladem" :)
rebajz
Profil *
v adminu zadávám do dostupnosti tyto tři stavy (jen texty bez čísel):
1) Skladem, do 24 hodin + doba dle zvolené přepravní společnosti
2) Není skladem, není ani u dodavatele :-(
3) Předobjednávka, hra vychází xx.xx.xxxx.
Chamurappi
Profil
Reaguji na rebajze:
Jestli je DeliveryInfo atribut, doplň v mém kódu před DeliveryInfo zavináč. Podle prvního příspěvku jsem usoudil, že to atribut není (zavináč nikde), ale když ti quinuxova transformace něco vrací, tak to asi atribut bude.
quinux
Profil
rebajz
No ty to zadáváš jako text, ale je otázka jak to jde pak do šablony - jestli jako text nebo jako číslo (ID), proto je lepší nechat vypsat obsah DeliveryInfo, abychom přesně věděli co z toho leze ven :)
rebajz
Profil *
tady jsou tři testovací výrobky
http://www.hracuv-svet.cz/store/goods-001-19-test-1.html

http://www.hracuv-svet.cz/store/goods-002-19-test2.html

http://www.hracuv-svet.cz/store/goods-003-19-test3.html

ta dodaci lhuta se vypisuje diky tomuhle:
<xsl:if test="DeliveryInfo!='' and DeliveryInfo!=' '">
<strong>Dodací lhůta: </strong> <xsl:value-of select="DeliveryInfo" disable-output-escaping="yes"/><br />
</xsl:if>

nad tu dodaci lhutu jsem vlozil jako test tohle:

<xsl:if test="DeliveryInfo!=''">
<xsl:choose>
<xsl:when test="starts-with(@DeliveryInfo, 'S')">
<p class="zelena">Skladem</p>
</xsl:when>
<xsl:when test="starts-with(@DeliveryInfo, 'P')">
<p class="oranzova">Předobjednávka</p>
</xsl:when>
</xsl:choose>
</xsl:if>

a stejně to nejde
quinux
Profil
rebajz
Zkus:
<xsl:if test="@DeliveryInfo!=''">
	<xsl:choose>
		<xsl:when test="contains(@DeliveryInfo, 'Skladem')">
			<p class="zelena">Skladem</p>
		</xsl:when>
		<xsl:when test="contains(@DeliveryInfo, 'Předobjednávka')">
			<p class="oranzova">Předobjednávka</p>
		</xsl:when>
	</xsl:choose>
</xsl:if>  


EDIT: případně bez těch zavináčů :)
rebajz
Profil *
quinux: nahráno, ale furt nic :-(
rebajz
Profil *
po odstraneni zavinace to pise u testu1 slovo předobjednávka, v ostatních testech to nic nevypsalo
quinux
Profil
rebajz
Nevím co jsi tam vyved, ale tady to píše "Předobjednávka". U toho "skladem" pak v administraci dej velké "S".
rebajz
Profil *
tak ted uz to chodi...
jen to tedy jeste obarvit

a předpokládám že pro jistotu mám přidat ještě dvě podmínky pro případ, že by to někdo zadal s malými písmeny na začátku
quinux
Profil
rebajz
jen to tedy jeste obarvit
Na to tam jsou ty třídy "zelena" a "oranzova", tak to už v CSS

a předpokládám že pro jistotu mám přidat ještě dvě podmínky pro případ, že by to někdo zadal s malými písmeny na začátku
Spíš přemýšlím co řešíš - proč to tak podmínkuješ, když můžeš prostě z administrace vypsat to co tam bude zapsáno?

Jinak ještě doporučuji nechat uvedeno, že není zboží skladem, protože pak budeš mít zbytečně naštvané zákazníky, že neví jestli zboží je nebo není ;)
Chamurappi
Profil
Reaguji na rebajze:
mám přidat ještě dvě podmínky pro případ, že by to někdo zadal s malými písmeny na začátku
Jestli budeš kontrolovat „contains(@DeliveryInfo, 'skladem')“, tak této podmínce vyhoví i možnost „Není skladem“, což nechceš.
rebajz
Profil *
díky moc a moc za pomoc...

už to funguje tak jak potřebuju :-)

to proč to radši ošetřím v šabloně (malý a vylký písmena) - obsluha shopu si bohužel nemusí uvědomit, že malý nebo velký písmeno na začátku může udělat problém

skladem jsem u malého ošetřil tak, že kontroluju: skladem, do
rebajz
Profil *
a udělal jsem tam tedy i červeně že není skladem ;-)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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