Produktattribute in Template nur wenn ausgefüllt
Moderator: maennchen1.de
-
- Beiträge: 39
- Registriert: 09.09.2014, 11:41
- Lizenz: keine
Produktattribute in Template nur wenn ausgefüllt
Hallo.
Ich habe mir ein paar Produktattribute in mein Template eingefügt und möchte die Bezeichnung des Attributes aber nur im Frontend anzeigen lassen, wenn das Attribut auch ausgefüllt ist.
Also wenn bei einem Attribut im Adminbereich keine Eingabe gemacht wurde, dann soll die Bezeichnung des Attributes auch nicht ausgegeben werden.
Hat jemand eine Idee?
Besten Dank im Voraus für Eure Mühe!
LG
Mario
Ich habe mir ein paar Produktattribute in mein Template eingefügt und möchte die Bezeichnung des Attributes aber nur im Frontend anzeigen lassen, wenn das Attribut auch ausgefüllt ist.
Also wenn bei einem Attribut im Adminbereich keine Eingabe gemacht wurde, dann soll die Bezeichnung des Attributes auch nicht ausgegeben werden.
Hat jemand eine Idee?
Besten Dank im Voraus für Eure Mühe!
LG
Mario
Re: Produktattribute in Template nur wenn ausgefüllt
Du musst per PHP abfragen, ob die Variable gefüllt ist oder nicht. Je nach Ergebnis gibst Du das dann aus oder eben auch nicht.
Tipps und Tricks rund um wpShopGermany: www.my-blog-shop.de
- maennchen1.de
- Administrator
- Beiträge: 17874
- Registriert: 14.08.2003, 16:55
- Lizenz: wpShopGermany Enterprise
- Wohnort: Thüringen, Ellersleben
- Kontaktdaten:
Re: Produktattribute in Template nur wenn ausgefüllt
Hallo!
Die entsprechenden Dateien findest du in (user_)views/mods/mod_produktattribute/.
Die entsprechenden Dateien findest du in (user_)views/mods/mod_produktattribute/.
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)
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)
-
- Beiträge: 27
- Registriert: 01.06.2015, 08:25
- Lizenz: wpShopGermany Enterprise
- Skype-Name: NoSyMe
Re: Produktattribute in Template nur wenn ausgefüllt
Hi.
Mit folgendem Code kannst du nur die Werte eines bestimmten Produktattributs ausgeben:
Die Zahl am Ende mit der ID des Attributs austauschen.
Wenn du davor und/oder danach z.B. noch zusätzlichen HTML-Code ausgeben willst, benutze eine sinnvolle if-Abfrage.
Ich z.B. benutze die Produktattribut-ID 2 um Infos zur aktuellen Rabattaktion auszugeben. Bei mir sieht es daher in basket.html und overview.html so aus:
Sprich, wenn es einen Unrabattierten Preis gibt (und dementsprechend einen rabattierten), gebe den Inhalt von Produktattribut-ID 2 aus.
Um zu überprüfen, ob die Variable einen Wert hat und diesen dann auszugeben, sollte folgendes funktionieren:
Ist allerdings nicht getestet.
Edit:
Wichtig ist, dass in der foreach-Schleife für die Produkte folgende Zeile weiterhin vorhanden ist, da sonst die Fähigkeit der Ausgabe der Produktattribute quasi nicht aktiviert wird:
Diese müsste sich direkt hinter dem Öffnen der foreach-Schleife befinden.
Mit folgendem Code kannst du nur die Werte eines bestimmten Produktattributs ausgeben:
Code: Alles auswählen
<?php echo $this->callMod('wpsg_mod_produktattribute', 'getAttributeValue', array($this->view['wpsg_mod_produktattribute']['id'], 2)); ?>
Wenn du davor und/oder danach z.B. noch zusätzlichen HTML-Code ausgeben willst, benutze eine sinnvolle if-Abfrage.
Ich z.B. benutze die Produktattribut-ID 2 um Infos zur aktuellen Rabattaktion auszugeben. Bei mir sieht es daher in basket.html und overview.html so aus:
Code: Alles auswählen
<?php if (wpsg_ff($p['preis_prediscount']) > '0') { ?>
<br /><span class="discount-info"><?php echo $this->callMod('wpsg_mod_produktattribute', 'getAttributeValue', array($this->view['wpsg_mod_produktattribute']['id'], 2)); ?></span>
<?php } ?>
Um zu überprüfen, ob die Variable einen Wert hat und diesen dann auszugeben, sollte folgendes funktionieren:
Code: Alles auswählen
<?php if (!$this->callMod('wpsg_mod_produktattribute', 'getAttributeValue', array($this->view['wpsg_mod_produktattribute']['id'], 2))) == '') { ?>
<?php echo $this->callMod('wpsg_mod_produktattribute', 'getAttributeValue', array($this->view['wpsg_mod_produktattribute']['id'], 2)); ?>
<?php } ?>
Edit:
Wichtig ist, dass in der foreach-Schleife für die Produkte folgende Zeile weiterhin vorhanden ist, da sonst die Fähigkeit der Ausgabe der Produktattribute quasi nicht aktiviert wird:
Code: Alles auswählen
<?php $strBasketRow = ''; ob_start(); $this->callMods('basket_row', array(&$p, $i)); $strBasketRow = ob_get_contents(); ob_end_clean(); ?>
-
- Beiträge: 39
- Registriert: 09.09.2014, 11:41
- Lizenz: keine
Re: Produktattribute in Template nur wenn ausgefüllt
Danke für die Antworten.
Irgendwie check ich mich gerade nicht durch.
Ich möchte (jetzt mal im Produkttemplate) die Attributbezeichnung (z.B. Farbe) und dann das Attribut selbst (z.B. Blau) nur dann im Frontend anzeigen, wenn im Backend beim Attribut "Farbe" z.B. Blau, Rot, Grün,... eingetragen bzw. ausgewählt wurde. Wurde im Backend bei einem Attribut nichts ausgewählt (weil es z.B. dieses Attribut bei dem Artikel gar nicht gibt), dann soll im Frontend weder die Attributsbezeichnung noch das Attribut selbst stehen.
Anzeigen kann ich die Attributsbezeichnung im Produkttemplate ja mit und das Attribut selbst mit
Beispiel:
Produkt 1 gibt es in der Farbe blau, Produkt 2 aber nicht!
Frontend:
Produkt 1
Farbe: Blau, Größe: 15-4, Type: irgendwas
Produkt 2
Größe: 18-9, Type: irgendwas
Ich hoffe ich habs halbwegs verständlich beschrieben![Winken ;)](./images/smilies/icon_wink.gif)
Ist vermutlich recht einfach, allerdings bin ich noch nicht ganz fit mit PHP.
Besten Dank im Voraus für Eure Hilfe!
Irgendwie check ich mich gerade nicht durch.
Ich möchte (jetzt mal im Produkttemplate) die Attributbezeichnung (z.B. Farbe) und dann das Attribut selbst (z.B. Blau) nur dann im Frontend anzeigen, wenn im Backend beim Attribut "Farbe" z.B. Blau, Rot, Grün,... eingetragen bzw. ausgewählt wurde. Wurde im Backend bei einem Attribut nichts ausgewählt (weil es z.B. dieses Attribut bei dem Artikel gar nicht gibt), dann soll im Frontend weder die Attributsbezeichnung noch das Attribut selbst stehen.
Anzeigen kann ich die Attributsbezeichnung im Produkttemplate ja mit
Code: Alles auswählen
<?php echo $this->callMod('wpsg_mod_produktattribute', 'getAttributeLabel', array(1)); ?>
Code: Alles auswählen
<?php echo $this->callMod('wpsg_mod_produktattribute', 'getAttributeValue', array($this->view['data']['id'], 1)); ?>
Produkt 1 gibt es in der Farbe blau, Produkt 2 aber nicht!
Frontend:
Produkt 1
Farbe: Blau, Größe: 15-4, Type: irgendwas
Produkt 2
Größe: 18-9, Type: irgendwas
Ich hoffe ich habs halbwegs verständlich beschrieben
![Winken ;)](./images/smilies/icon_wink.gif)
Ist vermutlich recht einfach, allerdings bin ich noch nicht ganz fit mit PHP.
Besten Dank im Voraus für Eure Hilfe!
-
- Beiträge: 39
- Registriert: 09.09.2014, 11:41
- Lizenz: keine
Re: Produktattribute in Template nur wenn ausgefüllt
OK STOP!!!
Ich hab's![Sehr glücklich :D](./images/smilies/icon_biggrin.gif)
Scheint zu funktionieren!
Oder ist das suboptimal?
---------------------------
EDIT:
Ok und wie bekomme ich jetzt zB. den BEISTRICH und das LEERZEICHEN nach dem ersten Attributblock?
-------------------------
EDIT -> EDIT:
OK auch dass habe ich hinbekommen![Sehr glücklich :D](./images/smilies/icon_biggrin.gif)
einfach ein zweites ECHO im "else"-Bereich...
Ich hab's
![Sehr glücklich :D](./images/smilies/icon_biggrin.gif)
Code: Alles auswählen
<?php
if($this->callMod('wpsg_mod_produktattribute', 'getAttributeValue', array($this->view['data']['id'], 1)) == "")
{ echo ""; }
else
{ echo $this->callMod('wpsg_mod_produktattribute', 'getAttributeValue', array($this->view['data']['id'], 1)); }
?>
Oder ist das suboptimal?
---------------------------
EDIT:
Ok und wie bekomme ich jetzt zB. den BEISTRICH und das LEERZEICHEN nach dem ersten Attributblock?
-------------------------
EDIT -> EDIT:
OK auch dass habe ich hinbekommen
![Sehr glücklich :D](./images/smilies/icon_biggrin.gif)
einfach ein zweites ECHO im "else"-Bereich...
-
- Beiträge: 27
- Registriert: 01.06.2015, 08:25
- Lizenz: wpShopGermany Enterprise
- Skype-Name: NoSyMe
Re: Produktattribute in Template nur wenn ausgefüllt
Hey machomaaan.
Super, dass du es hinbekommen hast![Smilie :)](./images/smilies/icon_smile.gif)
Wenn du den Code noch etwas optimieren willst, kannst du folgendes machen:
Nach der öffnenden Klammer hinter dem "if" ist ein Ausrufezeichen gesetzt. Dieses dreht die Meinung der Abfrage einfach um; zu einem "if not". So sparst du dir die Angabe vom "else".
So wäre die Abfrage jetzt: "wenn das Feld NICHT leer ist, echo ...". Quasi so, wie ich es schon weiter oben gepostet hatte![Smilie :)](./images/smilies/icon_smile.gif)
Super, dass du es hinbekommen hast
![Smilie :)](./images/smilies/icon_smile.gif)
Wenn du den Code noch etwas optimieren willst, kannst du folgendes machen:
Code: Alles auswählen
<?php
if(!$this->callMod('wpsg_mod_produktattribute', 'getAttributeValue', array($this->view['data']['id'], 1)) == "")
{ echo $this->callMod('wpsg_mod_produktattribute', 'getAttributeValue', array($this->view['data']['id'], 1)); }
?>
So wäre die Abfrage jetzt: "wenn das Feld NICHT leer ist, echo ...". Quasi so, wie ich es schon weiter oben gepostet hatte
![Smilie :)](./images/smilies/icon_smile.gif)
-
- Beiträge: 39
- Registriert: 09.09.2014, 11:41
- Lizenz: keine
Re: Produktattribute in Template nur wenn ausgefüllt
NoSyMe,
herzlichen Dank für den Hinweis!
Sieht gleich übersichtlicher aus![Sehr glücklich :D](./images/smilies/icon_biggrin.gif)
Dankeschön!
herzlichen Dank für den Hinweis!
Sieht gleich übersichtlicher aus
![Sehr glücklich :D](./images/smilies/icon_biggrin.gif)
Dankeschön!