Hallo Leute,
Hoffentlich habt Ihr schon die Geschenke für Weihnachten besorgt.
Ich würde gerne die Variantenauswahl wo anders platzieren. Momental erscheint das bei mir unten links, unter Beschreibung.
Habe ein Bild Angehängt.
Gruss
Sladi
Hallo Leute,
Hoffentlich habt Ihr schon die Geschenke für Weihnachten besorgt.
Ich würde gerne die Variantenauswahl wo anders platzieren. Momental erscheint das bei mir unten links, unter Beschreibung.
Habe ein Bild Angehängt.
Gruss
Sladi
Servus,
Du kannst in der default.php der productdetails zur Not eigene Positionen setzen.
Such in der Datei einmal nach:
echo shopFunctionsF::renderVmSubLayout('customfields',array('product'=>$this->product,'position'=>'normal'));
Für "position" gibt es in der Datei mehrere Möglichkeiten, eigene kann man einfach so anlegen:
echo shopFunctionsF::renderVmSubLayout('customfields',array('product'=>$this->product,'position'=>'meine-neue-position'));
Diese Position kann man dann in den Einstellungen der Selbsterstellten Felder angeben. Ohne Angabe werden die "Customfields" an die voreingestellte Stelle gesetzt.
So short
Stefan
Hallo,
genau das gleiche "Problem" habe ich auch, jedoch funktioniert es (bei mir) diese Lösungsvariante nicht.
In der Datei "default.php" (Ordner views/productdetails/tmpl/) habe ich, wie du beschrieben hast, 'normal' mit 'meine-neue-position' ersetzt. Anschließend unter Produkte -> selbsterstellte Felder -> Layout Position: "meine-neue-position" eingetragen.
Trotzdem erscheint mein selbsterstelltes Feld weiterhin am unteren Ende der Seite.
Auch verstehe ich die "Logik" hinter dieser Lösung nicht. Woran erkennt denn die Produktdetailseite nun das die neue Position der Custom Fields _ausgerechnet_ an der Position rechts des Produktbildes sein soll? Wo ist mein Denkfehler?
VG
Blazinoo
Hi Blazinoo,
schau Dir bitte bei Joomla einmal die Dokumentation zu Overrides an, damit Du einen Überblick über die Funktionsweise bekommst.
Die default.php einer "view" sollte im html-Ordner des verwendeten Templates abgelegt werden. Deine Änderungen hast Du im Core gemacht, das sollte eigentlich vermieden werden.
Schau einmal in den Ordner /templates/DeinTemplate/html/com_virtuemart/productdetails/, dort solltest Du die entsprechenden Override-Dateien finden, die es zu verändern gilt.
Wenn dort noch nichts ist, kopier die von Dir erwähnte Datei in den Override-Ordner /templates/DeinTemplate/html/com_virtuemart/productdetails/ und dann lade die Datei in den Editor und verändere sie.
Die Logik der Positionen: Du gibst im Template eine Position mit Namen "xyz" an, das selbsterstellte Feld bekommt die "Layout Position" "xyz" und wird nun dort angezeigt, wo diese Position im Template eingefügt ist. Kann man evtl. in DIVs mit einer CSS-Klasse einbetten, um besser mit CSS rangehen zu können.
Auf die Schnelle
Stefan
Hallo Stefan,
Danke für die Antwort.
Ich hab es jetzt ein wenig anders gelöst. Meine Lösung ist vermutlich nicht so ideal.
Entweder übersehe ich da was, oder ich habe KA, vermutlich letzteres. Im Code steht " product,'position'=>'normal' ", das normal muss ich ersetzen, soweit habe ich das verstanden. Wo kann ich nachsehen wo die Positionen sind bzw. wie heisst die Datei? Kann es sein, das es index.php ist? Meine Positionen in Templates heissen nicht onbot, ontop oder normal, dass steht aber in default.php.
Gruss
Sladi
Hallo wieder,
danke, die Overrides hatte ich schon korrekt angelegt. Sinn der Angabe der 'urprünglichen' Pfade war, Missverständnisse vorzubeugen.
Leider komme ich mit den neuen 'Positionen' bzw dem Einfügen in das Template nicht klar. Um es konkret zu machen, wie lautet der Code den ich an der blauen markierten Stelle in der Datei 'default.php' einfügen muss, um die Customfields-position 'xyz' anzeigen zu lassen? Ausschnitt 'default.php':
------------------------------------------------
<div class="spacer-buy-area">
.......
<?php
echo shopFunctionsF::
echo shopFunctionsF::renderVmSubLayout('prices',array('product'=>$this->product,'currency'=>$this->currency));
?> <div class="clear"></div>
<--- GEWÜNSCHTE ANZEIGE MEINES CUSTOMFIELDS - ZWISCHEN DEN PREISEN UND DES ADDTOCARTBUTTON -->
<?php
echo shopFunctionsF::renderVmSubLayout('addtocart',array('product'=>$this->product));
..........
</div>
------------------------------------------------------------
Dank im voraus für etwaige Hilfe.
Viele Grüße
Blazinoo
Im Code steht " product,'position'=>'normal' ", das normal muss ich ersetzen, soweit habe ich das verstanden. Wo kann ich nachsehen wo die Positionen sind bzw. wie heisst die Datei? Kann es sein, das es index.php ist? Meine Positionen in Templates heissen nicht onbot, ontop oder normal, dass steht aber in default.php.
In der default.php steht die Zeile:
echo shopFunctionsF::renderVmSubLayout('customfields',a rray('product'=>$this->product,'position'=>'normal'));
Das ist die Position, an der etwas eingefügt wird, wenn keine "Layout Position" im selbsterstellten Feld angegeben ist.
Mit dem Code oben, wird die Position "normal" *erzeugt*.
Das
echo shopFunctionsF::renderVmSubLayout('customfields',a rray('product'=>$this->product,'position'=>'xyz'));
erzeugt die Position xyz. Wenn im selbsterstellten Feld bei "Layout Position" "xyz" angegeben wird, erscheint das Custom Field genau a der Stelle im Code.
<div class="spacer-buy-area">
.......
<?php
echo shopFunctionsF::
echo shopFunctionsF::renderVmSubLayout('prices',array('product'=>$this->product,'currency'=>$this->currency));
?> <div class="clear"></div>
<--- GEWÜNSCHTE ANZEIGE MEINES CUSTOMFIELDS - ZWISCHEN DEN PREISEN UND DES ADDTOCARTBUTTON -->
<?php // PHP-Code folgt, deshlab php aufmachen
echo shopFunctionsF::renderVmSubLayout('customfields',a rray('product'=>$this->product,'position'=>'xyz'));
echo shopFunctionsF::renderVmSubLayout('addtocart',array('product'=>$this->product));
?>
..........
</div>
Herzlichen Dank! Funktioniert alles... und noch vielmehr, habe wieder etwas gelernt