Produktvarianten auswahl anders wo platzieren.

  • 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>