Jump to content
xt:Commerce Community Forum

Preis Nur Anzeigen Wenn Er Nicht Gleich Null Ist


unawave

Recommended Posts

Gibt es eine einfache Methode Preise nur anzuzeigen, wenn sie nicht gleich Null sind ? Oder anders herum: Alle Preise, die gleich 0,00 sind ausblenden ?

Bei mir werden die meisten (aber nicht alle) Preise ?ber die Produktoptionen / Attribute festgelegt und unter der Produktbeschreibung als Tabelle angeboten. Ich habe zwar schonmal nach folgendem Tipp ...

Originally posted by chd@Feb 4 2005, 15:37 PM

Man kann auch den Artikelpreis auf 0.00 EUR setzen und ?ber die Attribute den richtigen Preis darstellen.

Wenn die 0.00 EUR beim Artikel nicht dargestellt werden sollen, kann man dies direkt im Template durch eine if-Schleife ausblenden.

... zwei Templates ver?ndert, so da? die 0,00 Preise im Produktlisting und in der Produkt?bersicht nicht mehr auftauchen - aber es sind ja noch so viele andere Ausgaben von 0,00 Preisen ("Neue Artikel", "K?rzlich Angesehen", "Bestseller", "Konto ?bersicht", etc.). Git's da eine einfache M?glichkeit, alle 0,00 Preise auf einen Schlag auszublenden ?

Link to comment
Share on other sites

Originally posted by smedder@Feb 27 2005, 12:32 PM

Ich glaube, wenn du einfach das Feld Produktpreis freil?sst - also nirgends auch nicht f?r G?ste und Neukunden Preise anzeigst - dann wird gar kein Preis angezeigt.

Leider nicht - habe ich getestet. Wenn "nichts" drinsteht (auch nicht f?r G?ste und Neukunden) oder "0,00" drinsteht wird ?berall (also bei "Produktbeschreibung", "Neue Artikel", "K?rzlich Angesehen", "Bestseller", "Konto ?bersicht", etc.) "0,00 Eur" angezeigt

Link to comment
Share on other sites

Dann musst du in jeden eizelnen Templateteil das etwa so machen:

(Beispiel f?r die Product_info.html)


{if $PRODUCTS_PRICE != '0'}<font size="5" color="#000000" face="Verdana, Arial, Helvetica, sans-serif"><strong>{$PRODUCTS_PRICE} 

</strong></font>{/if}

Dann sollte, wenn du den Produktpreis auf 0 setzt nichts angezeigt werden und wenn er auf was anderes gesetzt ist sollte er angezeigt werden.

Link to comment
Share on other sites

  • 3 months later...

Hi!

Ich habe aus der Datei komplett die Preise gel?scht und h?tte jetzt gerne diese if-schleife wieder drin! Da ich jedoch kein php kann, w?r es super, wenn mir jemand meinen "falschen" Code "reparieren" k?nnte :bounce:

{config_load file="$language/lang_$language.conf" section="index"}

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr valign="top">

<td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><font color="#666666" size="4">{$CATEGORIES_NAME}</font> </font></td>

<td align="right"></td>

</tr>

</table>

{if $CATEGORIES_DESCRIPTION} <font size="1" face="Verdana, Arial, Helvetica, sans-serif">

{$CATEGORIES_DESCRIPTION}</font>

{if $CATEGORIES_IMAGE}{$CATEGORIES_IMAGE}{/if}

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td style="border-bottom: 1px solid; border-color: #000000;"></td>

</tr>

</table>

{/if}

{ if $MANUFACTURER_DROPDOWN}

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td class="main"><div align="right">{#text_show#} {$MANUFACTURER_DROPDOWN}</div></td>

</tr>

</table>

{/if}

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td> <div align="center">

<table style="border-top: 2px solid; border-color: #d4d4d4;" width="100%" border="0">

{foreach name=aussen item=module_data from=$module_content}

<tr>

<td width="1" rowspan="2" style="border-bottom: 1px solid; border-color: #cccccc;">{if $module_data.PRODUCTS_IMAGE!=''}{$module_data.PRODUCTS_IMAGE}{/if}

{if $module_data.PRODUCTS_FSK18=='true'}

fsk18.gif

{/if}

</td>

<td class="main" id="productListingHeading">{$module_data.PRODUCTS_NAME}</td>

</tr>

<tr>

<td style="border-bottom: 1px solid; border-color: #cccccc;" class="main" id="productListingAttributes">{$module_data.PRODUCTS_SHORT_DESCRIPTION}

<table width="100%" border="0" cellpadding="0" cellspacing="0">

<tr>

<td align="right"><table width="100" border="0">

<tr>

<td>{if $module_data.SHIPPING_NAME}

<table width="100" border="0" cellpadding="0" cellspacing="0">

<tr valign="middle">

<td width="50" class="main">{#text_shippingtime#}</td>

{if $module_data.SHIPPING_IMAGE}

<td width="50">{$module_data.SHIPPING_IMAGE}</td>

{/if}

<td nowrap class="main">{$module_data.SHIPPING_NAME}</td>

</tr>

</table>

{/if}</td>

<td>{$module_data.BUTTON_BUY_NOW}</td>

</tr>

</table></td>

</tr>

</table>

</td>

</tr>

{/foreach}

</table>

</div></td>

</tr>

</table>

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td>{$NAVIGATION}</td>

</tr>

</table>

Das w?re echt klasse :)

Gr??e

s04-freak

Link to comment
Share on other sites

Hi!

Hat sich soweit erledigt!

Es ist nur so, dass er jetzt zwar alle Preise, welche ?ber 0 sind anzeigt, jedoch nicht die Sonderpreise (statt bla bla bla nun bla bla bla) :o

Habe folgende Schleife eingesetzt:

{if $module_data.PRODUCTS_PRICE!=0.00}{$module_data.PRODUCTS_PRICE}{/if}

Gr??e

Link to comment
Share on other sites

Die finale L?sung ist es, die Preisformatierungsroutinen so zu modifizieren, dass sie im Falle "Preis ist null" eine leere Zeichenkette zur?ckgeben.

Dazu m?ssen die Routinen

xtc_format_price.inc.php

xtc_format_price_graduated.inc.php

xtc_format_price_order.inc.php

xtc_format_special_price.inc.php

im Verzeichnis "inc"

ge?ndert werden.

Der vorhandene Code muss eingeschlossen werden in folgenden Code:


	if (floatval($price_string) == 0)

	{

 $price_string = '';

	}

	else

	{

 XXXXXXXXXXXXXXXXXXXXXXXXXXXX

	}


Statt "XXXXXXXXXXXXXXXXXXXXXXXXXXXX" muss dort der vorhandene Code eingebaut werden. Im Modul xtc_format_special_price.inc.php muss die erste Zeile lauten

	if (floatval($special_price) == 0)

	{

 $special_price = '';

	}

	else

	{

 XXXXXXXXXXXXXXXXXXXXXXXXXXXX

	}


?nderungen ohne Gew?hr. Unbedingt vorher die zu ?ndernden Routinen sichern!

Link to comment
Share on other sites

Hi

Also entweder funktioniert es nicht, oder ich bin zu bl?d :i:

Habe nun folgende Codes in den Scripts:

xtc_format_price.inc.php

if (floatval($price_string) == 0)

{

$price_string = '';

}

else

{

if ($calculate_currencies=='true') {

$price_string=$price_string * $currencies_data['VALUE'];

}

}

// round price

xtc_format_price_gratuated.inc.php

if (floatval($price_string) == 0)

{

$price_string = '';

}

else

{

if ($calculate_currencies=='true') {

$price_string=$price_string * $currencies_data['VALUE'];

}

}

// add tax

xtc_format_price_order.inc.php

if (floatval($price_string) == 0)

{

$price_string = '';

}

else

{

$price_string=xtc_precision($price_string,$currencies_data['DECIMAL_PLACES']);

}

xtc_format_special_price

if (floatval($special_price) == 0)

{

$special_price = '';

}

else

{

if ($calculate_currencies=='true') {

$special_price=$special_price * $currencies_data['VALUE'];

$price=$price * $currencies_data['VALUE'];

}

}

// round price

Wo hocken die Fehler? :(

Gr??e

s04-freak

Link to comment
Share on other sites

Originally posted by s04-freak@Jun 10 2005, 07:11 PM

xtc_format_price_gratuated.inc.php

if (floatval($price_string) == 0)

{

$price_string = '';

}

else

{

if ($calculate_currencies=='true') {

$price_string=$price_string * $currencies_data['VALUE'];

}

}

Du musst die Anweisung auch genau befolgen!

Die Function "xtc_format_price_graduated" sieht nach der ?nderung z.B. so aus:


function xtc_format_price_graduated($price_string,$price_special,$calculate_currencies,$products_tax_class)

{

	if ((int)$price_string == 0)

	{

 $price_string = '';

	}

	else

	{

 $currencies_query = xtc_db_query("SELECT symbol_left,

      symbol_right,

      decimal_places,

      decimal_point,

          	thousands_point,

      value

      FROM ". TABLE_CURRENCIES ." WHERE

      code = '".$_SESSION['currency'] ."'");

 $currencies_value=xtc_db_fetch_array($currencies_query);

 $currencies_data=array();

 $currencies_data=array(

 'SYMBOL_LEFT'=>$currencies_value['symbol_left'] ,

 'SYMBOL_RIGHT'=>$currencies_value['symbol_right'] ,

 'DECIMAL_PLACES'=>$currencies_value['decimal_places'] ,

 'VALUE'=> $currencies_value['value']);

 if ($calculate_currencies=='true') {

 	$price_string=$price_string * $currencies_data['VALUE'];

 }

 // add tax

 $products_tax=xtc_get_tax_rate($products_tax_class);

 if ($_SESSION['customers_status']['customers_status_show_price_tax'] =='0') {

 	$products_tax='';

 }

 $price_string= (xtc_add_tax($price_string,$products_tax));

 // round price

 $price_string=xtc_precision($price_string,$currencies_data['DECIMAL_PLACES']);


 if ($price_special=='1') {

 	$price_string=number_format($price_string,$currencies_data['DECIMAL_PLACES'], $currencies_data['DEC_POINT'], $currencies_data['THD_POINT']);


 	$price_string = $currencies_data['SYMBOL_LEFT']. ' '.$price_string.' '.$currencies_data['SYMBOL_RIGHT'];

 }

	}

	return $price_string;

}


Link to comment
Share on other sites

Originally posted by wunschtacho@Jun 13 2005, 05:54 PM

Also erstmal - alle Achtung - ist absolut genial, auch ich benutze viele kostenlose Merkmale und jetzt wird nicht jedesmal wieder + 0,0 Eur angezeigt im Warenkorb, jedoch blieb das + noch stehen

Gibts da noch eine unkomplizierte L?sung?

Gr??e

Quoted post

Welches "+" meinst Du???

Bei mir gibt es kein "+" vor dem Preis!

Link to comment
Share on other sites

Das ist wohl ein Produkt-Attribut-Problem.

Ich habe zwar keine Produkt-Attribute, aber ich hab mir das trotzdem mal angeschaut.

Das m?sste l?sbar sein, indem man

das Modul "inc/xtc_get_products_attribute_price.php" durch folgenden Code ersetzt (ungetestet, aber ziemlich sicher):


<?php

/* -----------------------------------------------------------------------------------------

$Id: xtc_get_products_attribute_price.inc.php,v 1.2 2004/02/21 22:38:22 fanta2k Exp $


XT-Commerce - community made shopping

http://www.xt-commerce.com


Copyright (c) 2003 XT-Commerce

-----------------------------------------------------------------------------------------

based on:

(c) 2003 nextcommerce (xtc_get_products_attribute_price.inc.php,v 1.8 2003/08/14); [url]www.nextcommerce.org[/url]


Released under the GNU General Public License

---------------------------------------------------------------------------------------*/


function xtc_get_products_attribute_price($attribute_price,$tax_class,$price_special,$quantity,$prefix,$calculate_currencies='true')

{

	if ($_SESSION['customers_status']['customers_status_show_price'] == '1') {

 if (floatval($attribute_price) == 0)

 {

 	$prefix = '';

 }

 else

 {

 	$prefix = ' ' . $prefix . ' ';

 }

 $attribute_tax=xtc_get_tax_rate($tax_class);

 // check if user is allowed to see tax rates

 if ($_SESSION['customers_status']['customers_status_show_price_tax'] =='0') {

 	$attribute_tax='';

 }

 // add tax

 $price_string=(xtc_add_tax($attribute_price,$attribute_tax))*$quantity;

 if ($_SESSION['customers_status']['customers_status_discount_attributes']=='0') {

 	// format price & calculate currency

 	$price_string=xtc_format_price($price_string,$price_special,$calculate_currencies);

 	if ($price_special=='1') {

  $price_string = $prefix . $price_string . ' ';

 	}

 } else {

 	$discount=$_SESSION['customers_status']['customers_status_discount'];

 	$rabatt_string = $price_string - ($price_string/100*$discount);

 	$price_string=xtc_format_price($price_string,$price_special,$calculate_currencies);

 	$rabatt_string=xtc_format_price($rabatt_string,$price_special,$calculate_currencies);

 	if ($price_special=='1' && $price_string != $rabatt_string) {

  $price_string = rtrim($prefix) . '<font color="ff0000"><s>' . $price_string. '</s></font> ' . $rabatt_string . ' ';

 	} else {


  $price_string=$rabatt_string;

  if ($price_special=='1') $price_string= $prefix . $price_string;

 	}

 }

	} else {

 $price_string= ' ' . NOT_ALLOWED_TO_SEE_PRICES;

	}

	return $price_string;

} ?>

Das Modul "inc/xtc_get_products_attribute_price.php" ist durch folgenden Code zu ersetzen:

<?php

/* -----------------------------------------------------------------------------------------

$Id: xtc_get_products_attribute_price_checkout.inc.php,v 1.2 2004/02/21 22:38:22 fanta2k Exp $


XT-Commerce - community made shopping

http://www.xt-commerce.com


Copyright (c) 2003 XT-Commerce

-----------------------------------------------------------------------------------------

based on:

(c) 2003 nextcommerce (xtc_get_products_attribute_price_checkout.inc.php,v 1.6 2003/08/14); [url]www.nextcommerce.org[/url]


Released under the GNU General Public License

---------------------------------------------------------------------------------------*/


function xtc_get_products_attribute_price_checkout($attribute_price,$attribute_tax,$price_special,$quantity,$prefix,$calculate_currencies=true)

{

	if ($_SESSION['customers_status']['customers_status_show_price'] == '1') {

 //$attribute_tax=xtc_get_tax_rate($tax_class);

 // check if user is allowed to see tax rates

 if (floatval($attribute_price) == 0)

 {

 	$prefix = '';

 }

 else

 {

 	$prefix = ' ' . $prefix . ' ';

 }

 if ($_SESSION['customers_status']['customers_status_show_price_tax'] =='0') {

 	$attribute_tax='';

 }

 // add tax

 $price_string=(xtc_add_tax($attribute_price,$attribute_tax))*$quantity;

 if ($_SESSION['customers_status']['customers_status_discount_attributes']=='0') {

 	// format price & calculate currency

 	$price_string=xtc_format_price($price_string,$price_special,$calculate_currencies);

 	if ($price_special=='1') {

  $price_string = $prefix . $price_string.' ';

 	}

 } else {

 	$discount=$_SESSION['customers_status']['customers_status_discount'];

 	$rabatt_string = $price_string - ($price_string/100*$discount);

 	$price_string=xtc_format_price($price_string,$price_special,$calculate_currencies);

 	$rabatt_string=xtc_format_price($rabatt_string,$price_special,$calculate_currencies);

 	if ($price_special=='1' && $price_string != $rabatt_string) {

  $price_string = rtrim($prefix) . '<font color="ff0000"><s>'.$price_string.'</s></font> '.$rabatt_string.' ';

 	} else {

  $price_string=$rabatt_string;

  if ($price_special=='1') $price_string = $prefix . $price_string;

 	}

 }

	} else {

 $price_string= ' ' .NOT_ALLOWED_TO_SEE_PRICES;

	}

	return $price_string;

}

 ?>

Link to comment
Share on other sites

  • 2 weeks later...

Originally posted by s04-freak@Jun 5 2005, 01:00 PM

Hi!

Hat sich soweit erledigt!

Es ist nur so, dass er jetzt zwar alle Preise, welche ?ber 0 sind anzeigt, jedoch nicht die Sonderpreise (statt bla bla bla nun bla bla bla) :o

Habe folgende Schleife eingesetzt:

Gr??e

Quoted post

kann mir mal jemand sagen wo ich die schleife genau einsetzen muss? in die index.html und dann wo genau?

danke :)

Link to comment
Share on other sites

  • 4 weeks later...

Hallo zusammen,

Die finale L?sung ist es, die Preisformatierungsroutinen so zu modifizieren, dass sie im Falle "Preis ist null" eine leere Zeichenkette zur?ckgeben.

K?nnte man das nicht auch f?r das Vorzeichen (+/-) bei den Attributen verwenden? Nach dem Motto, wenn der Hauptpreis 0,00 ist, dann ist der Attributpreis der Hauptpreis (also kein Vorzeichen anzeigen)

Habs schon probiert, kriegs aber nicht hin.

mfG. Stephan

Link to comment
Share on other sites

  • 5 months later...

Originally posted by gswkaiser@Jun 9 2005, 11:28 AM

Die finale L?sung ist es, die Preisformatierungsroutinen so zu modifizieren, dass sie im Falle "Preis ist null" eine leere Zeichenkette zur?ckgeben.

Dazu m?ssen die Routinen

xtc_format_price.inc.php

xtc_format_price_graduated.inc.php

xtc_format_price_order.inc.php

xtc_format_special_price.inc.php

im Verzeichnis "inc"

ge?ndert werden.

Der vorhandene Code muss eingeschlossen werden in folgenden Code:


	if (floatval($price_string) == 0)

	{

 ?$price_string = '';

	}

	else

	{

 ?XXXXXXXXXXXXXXXXXXXXXXXXXXXX

	}


Statt "XXXXXXXXXXXXXXXXXXXXXXXXXXXX" muss dort der vorhandene Code eingebaut werden. Im Modul xtc_format_special_price.inc.php muss die erste Zeile lauten

	if (floatval($special_price) == 0)

	{

 ?$special_price = '';

	}

	else

	{

 ?XXXXXXXXXXXXXXXXXXXXXXXXXXXX

	}


?nderungen ohne Gew?hr. Unbedingt vorher die zu ?ndernden Routinen sichern!

Quoted post

Ich habe nur

xtc_format_price.inc.php

xtc_format_price_order.inc.php

Wo sind die andere?

Link to comment
Share on other sites

  • 4 weeks later...
  • 1 month later...

:angry:

Hallo, ich habe auch das Problem, dass ich keine "Preise auf Anfrage" in meinem Shop realisiert bekomme!

Habe alle obigen Anweisungen durchgef?hrt trotzdem bleibt immer der Preis auf 0,00 EUR.

Hat es denn bei jemandem geklappt?

Bitte um Antwort!

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...