Grafische Anzeige des Lagerbestandes

Hier findest du alle Fragen zu besonderen Anpassungen an den Templates oder Wordpress selber

Moderatoren: maennchen1.de, wpShopGermany Moderator

Antworten
MKJ
Beiträge: 3073
Registriert: 25.08.2010, 16:11

Grafische Anzeige des Lagerbestandes

Beitrag von MKJ »

Ich habe mir mal eine quick 'n' dirty Anzeige des Lagerbestandes gemacht. Das sieht so aus:
stock.jpg
Der Code dazu ist in der Rohform:

Code: Alles auswählen

<span class="stock"><?php $stock=$this->data["mod_stock"];
if ($stock >=6) { echo "<img alt=\"Anzeige Lagerbestand\" title=\"Mehr als 5 Stück auf Lager\" class=\"noborder\" src=\"/images/stock1.gif\" />"; }
elseif ($stock >=3) { echo "<img alt=\"Anzeige Lagerbestand\" title=\"3-5 Stück auf Lager\" class=\"noborder\" src=\"/images/stock2.gif\" />"; }
else ($stock >=1) { echo "<img alt=\"Anzeige Lagerbestand\" title=\"1-3 Stück auf Lager\" class=\"noborder\" src=\"/images/stock3.gif\" />"; }
?></span><br />
Die ALTs und TITLEs müsste man natürlich noch gettexten. Damit würden dann auch die \" wegfallen. Haben die PHP-Füchse an dieser Lösung etwas auszusetzen?

Vielleicht hat ja Joe Lust, das Snippet für die Sprachdatei aufzubereiten. :-D

Gruß, Mike
Tipps und Tricks rund um wpShopGermany: www.my-blog-shop.de
MKJ
Beiträge: 3073
Registriert: 25.08.2010, 16:11

Re: Grafische Anzeige des Lagerbestandes

Beitrag von MKJ »

Hier ist der gettext-ready Code, der allerdings noch ziemlich aufgemotzt ist, damit es schön aussieht. Beim Hover wird ein Tooltip eingeblendet, der je nach Lagerbestand anders ist:
stock2.jpg
stock3.jpg
stock4.jpg

Code: Alles auswählen

           <div class="stock"><?php $stock=$this->data["mod_stock"];
			if ($stock >=6) { echo __("<a class='tooltip' href='#'><img alt='Anzeige Lagerbestand' class='noborder' src='/images/stock1.gif' /><span class='stock1'><img src='/images/Info.png' alt='Info' height='48' width='48' /><em>Auf Lager</em>Von diesem Produkt sind mehr als 6 Stück auf Lager.</span></a>", "wpsg"); }
			elseif ($stock >=4)   { echo __("<a class='tooltip' href='#'><img alt='Anzeige Lagerbestand' class='noborder' src='/images/stock2.gif' /><span class='stock2'><img src='/images/Warning.png' alt='Warning' height='48' width='48' /><em>Geringer Lagerbestand</em>Von diesem Produkt sind nur noch 4-6 Stück auf Lager.</span></a>", "wpsg"); }
			elseif ($stock >=1) { echo __("<a class='tooltip' href='#'><img alt='Anzeige Lagerbestand' class='noborder' src='/images/stock3.gif' /><span class='stock2'><img src='/images/Warning.png' alt='Warning' height='48' width='48' /><em>Sehr geringer Lagerbestand</em>Von diesem Produkt sind nur noch 1-3 Stück auf Lager.</span></a>", "wpsg"); }
			else { echo __("<a class='tooltip' href='#'><img alt='Anzeige Lagerbestand' class='noborder' src='/images/stock4.gif' /><span class='stock2'><img src='/images/Critical.png' alt='Critical' height='48' width='48' /><em>Nicht auf Lager</em>Dieses Produkt ist zur Zeit nicht auf Lager. Bitte schreiben Sie uns, wenn Sie benachrichtigt werden möchten, sobald es wieder verfügbar ist</span></a>", "wpsg"); }
			 ?></div>
Nicht so übel, würde ich sagen. Natürlich kann man nach Lust und Laune auch den tatsächlichen Lagerbestand einlesen.
Tipps und Tricks rund um wpShopGermany: www.my-blog-shop.de
Joe
Beiträge: 289
Registriert: 31.07.2010, 09:50
Lizenz: wpShopGermany Enterprise

Re: Grafische Anzeige des Lagerbestandes

Beitrag von Joe »

gefällt mir!
Benutzeravatar
maennchen1.de
Administrator
Beiträge: 17868
Registriert: 14.08.2003, 16:55
Lizenz: wpShopGermany Enterprise
Wohnort: Thüringen, Ellersleben
Kontaktdaten:

Re: Grafische Anzeige des Lagerbestandes

Beitrag von maennchen1.de »

Saubere Sache!
Wenn du jetzt noch die Grafiken samst komletter PHTML Datei in eine ZIP Datei packen könntest?
Kein Support per PN! Alle Fragen beantworten wir hier im Forum. Per PN bitte nur Passwörter, Namen und URLs - sofern notwendig.
Bitte vor dem posten lesen:
Wie poste ich eine Frage zu einem Problem?
FAQ / häufig gestellte Fragen
Anzeige-Fehler / Funktionsfehler in wpShopGermany erkennen und selbst beheben
PHTML-Dateien richtig verwenden (für eigene Anpassungen)
MKJ
Beiträge: 3073
Registriert: 25.08.2010, 16:11

Re: Grafische Anzeige des Lagerbestandes

Beitrag von MKJ »

Die exakte Menge lässt sich mit der Variable $stock problemlos einlesen, z.B.

Code: Alles auswählen

{ echo __("<a class='tooltip' href='#'><img alt='Anzeige Lagerbestand' class='noborder' src='/images/stock2.gif' /><span class='stock2'><img src='/images/Warning.png' alt='Warning' height='48' width='48' /><em>Geringer Lagerbestand</em>Von diesem Produkt sind nur noch $stock Stück auf Lager.</span></a>", "wpsg"); }
Tipps und Tricks rund um wpShopGermany: www.my-blog-shop.de
MKJ
Beiträge: 3073
Registriert: 25.08.2010, 16:11

Re: Grafische Anzeige des Lagerbestandes

Beitrag von MKJ »

Die Gettext-Strings sind auch geprüft und ok. Was mich aber wieder einmal wundert: 48 Votes für dieses Feature in der Wunschliste, aber dann interessiert es offenbar von den Usern außer Joe niemanden sonst. :?
Tipps und Tricks rund um wpShopGermany: www.my-blog-shop.de
MKJ
Beiträge: 3073
Registriert: 25.08.2010, 16:11

Gettext und Variablen

Beitrag von MKJ »

Ich habe mir eine grafische Anzeige des Lagerbestandes gebaut, die ab einer bestimmten Menge die genaue Anzahl ausgibt:

Code: Alles auswählen

elseif ($stock >=2) { echo __("<a class='tooltip' href='#'><img alt='Anzeige Lagerbestand' class='noborder' src='/images/stock3.gif' /><span class='stock2'><img src='/images/Warning.png' alt='Warning' height='48' width='48' /><em>Sehr geringer Lagerbestand</em>Von diesem Produkt sind nur noch $stock Stück auf Lager.</span></a>", "wpsg"); }
Funktioniert auch prima, nur leider verhindert die Variable $stock, dass der gesamte Gettext in der Sprachdatei erscheint, um eine Übersetzung anzulegen. Ich bekomme aber die korrekte Syntax nicht hin, um zwei Gettexte mit $stock zu verbinden. Es müsste so in diese Richtung gehen:

Code: Alles auswählen

 echo __("<a class='tooltip' href='#'><img alt='Anzeige Lagerbestand' class='noborder' src='/images/stock3.gif' /><span class='stock2'><img src='/images/Warning.png' alt='Warning' height='48' width='48' /><em>Sehr geringer Lagerbestand</em>Von diesem Produkt sind nur noch", "wpsg"); $stock echo __("Stück auf Lager.</span></a>", "wpsg");

Aber so geht das nicht. Kann mir jemand weiterhelfen?

Danke und Gruß, Mike
Tipps und Tricks rund um wpShopGermany: www.my-blog-shop.de
Benutzeravatar
maennchen1.de
Administrator
Beiträge: 17868
Registriert: 14.08.2003, 16:55
Lizenz: wpShopGermany Enterprise
Wohnort: Thüringen, Ellersleben
Kontaktdaten:

Re: Gettext und Variablen

Beitrag von maennchen1.de »

Moin!
Ersetze mal:

Code: Alles auswählen

"wpsg"); $stock echo __("Stück
durch

Code: Alles auswählen

"wpsg")." ".$stock; echo __("Stück
Kein Support per PN! Alle Fragen beantworten wir hier im Forum. Per PN bitte nur Passwörter, Namen und URLs - sofern notwendig.
Bitte vor dem posten lesen:
Wie poste ich eine Frage zu einem Problem?
FAQ / häufig gestellte Fragen
Anzeige-Fehler / Funktionsfehler in wpShopGermany erkennen und selbst beheben
PHTML-Dateien richtig verwenden (für eigene Anpassungen)
Benutzeravatar
daschmi
m1.Mitarbeiter
Beiträge: 2595
Registriert: 04.12.2007, 17:23
Lizenz: keine
Kontaktdaten:

Re: Gettext und Variablen

Beitrag von daschmi »

Hi Mike,

Das ist in der Tat ein Problem ich würde dir empfehlen die Ausgabe etwas umzubauen:

Code: Alles auswählen

echo "<a class='tooltip' href='#'><img alt='".__('Anzeige Lagerbestand', 'wpsg')."' class='noborder' src='/images/stock3.gif' /><span class='stock2'><img src='/images/Warning.png' alt='Warning' height='48' width='48' /><em>";
echo __("Sehr geringer Lagerbestand</em>Von diesem Produkt sind nur noch ", "wpsg").$stock.__(" Stück auf Lager.", "wpsg");
echo "</span></a>";
Oder du verwendest eine Ersetzung:

Code: Alles auswählen

echo "<a class='tooltip' href='#'><img alt='".__('Anzeige Lagerbestand', 'wpsg')."' class='noborder' src='/images/stock3.gif' /><span class='stock2'><img src='/images/Warning.png' alt='Warning' height='48' width='48' /><em>";
echo str_replace("%1%", $stock,__("Sehr geringer Lagerbestand Von diesem Produkt sind nur noch %1% Stück auf Lager.", "wpsg"));
echo "</span></a>";
In einem anderen Projekt habe ich mir mal eine Funktion geschrieben:

Code: Alles auswählen

function translate($string)
{
	$arg = array();
	$string = _($string);
		
  for($i = 1 ; $i < func_num_args(); $i++)
  {
  	$arg = func_get_arg($i);
  	$string = preg_replace("/#".$i."#/", $arg, $string);  	
  }
   
  return $string;
}
Die kann dann wie folgt aufgerufen werden:

translate("Sehr geringer Lagerbestand Von diesem Produkt sind nur noch #1# Stück auf Lager.", $stock);

Ich denk da du es nur an einer Stelle reicht eine der ersten Möglichkeiten.

Viele Grüße

Daschmi
MKJ
Beiträge: 3073
Registriert: 25.08.2010, 16:11

Re: Gettext und Variablen

Beitrag von MKJ »

Danke, Jungs! :smt006

Ich habe die erste, einfachste Variante genommen, die problemlos funktioniert. Die anderen Optionen werde ich aber "auf Lager" legen. Der Code sieht jetzt so aus:

Code: Alles auswählen

elseif ($stock >=2) { echo __("<a class='tooltip' href='#'><img alt='Anzeige Lagerbestand' class='noborder' src='/images/stock3.gif' /><span class='stock2'><img src='/images/Warning.png' alt='Warning' height='48' width='48' /><em>Sehr geringer Lagerbestand</em>Von diesem Produkt sind nur noch", "wpsg")." ".$stock; echo __("Stück auf Lager.</span></a>", "wpsg"); }
Ich werde versuchen, diesen Thread mit dem anderen zusammen zu legen.
Tipps und Tricks rund um wpShopGermany: www.my-blog-shop.de
MKJ
Beiträge: 3073
Registriert: 25.08.2010, 16:11

Re: Grafische Anzeige des Lagerbestandes

Beitrag von MKJ »

Eventuell muss der Code für aktuelle Versionen von WPSG angepasst werden. Hier ist eine alternative Version:

Code: Alles auswählen

<?php /* Lagerbestand START*/?>
         <div class="lagerbestand_graphic">
          <?php $stock=$this->view['data']['stock'];   
            if ($stock >= 6) { echo __("<img alt='Anzeige Lagerbestand' title='Artikel lieferbar' class='lagerbestand_image' src='/wp-content/themes/nachtaktiv/images/bestand_3.png' />", "wpsg"); }
         elseif ($stock >= 3) { echo "<img alt='Anzeige Lagerbestand' title='geringer Warenbestand' class='lagerbestand_image' src='/wp-content/themes/nachtaktiv/images/bestand_2.png' />"; }
          elseif ($stock >= 1) { echo "<img alt='Anzeige Lagerbestand' title='sehr geringer Warenbestand' class='lagerbestand_image' src='/wp-content/themes/nachtaktiv/images/bestand_1.png' />"; }    
           elseif ($stock = 0) { echo "<img alt='Anzeige Lagerbestand' title='Artikel ausverkauft' class='lagerbestand_image' src='/wp-content/themes/nachtaktiv/images/bestand_4.png' />"; }
         ?></div><br />
         <?php /* Lagerbestand ENDE*/?>   
Tipps und Tricks rund um wpShopGermany: www.my-blog-shop.de
Antworten