Selbsterstellte Felder

  • Hi


    Mein Ziel ist es, für eine Studie verschiedene Shoppergruppen zu machen, das hat super geklappt.


    Nun sollten Produkte je nach Gruppe verschiedene Labels zugewiesen erhalten.
    Dies habe ich mit einem selbsterstellten Feld gemacht und dann über dem Produktbild platziert.
    Dies sowohl in der Detail-View als auch in der Kategorie-View.


    Nun meine Frage:
    Die Shoppergruppe habe ich in einer Variable (1 bis 5) / funktioniert bereits.
    Nun möchte ich gerne den Bild-Pfad des selbsterstellten Feldes dynamisch verändern.


    Bsp.: Ist die Shoppergruppe "1" wird das Bild Sample1.jpg angezeigt.
    ist die Shoppergruppe "2" wird das Bild Sample2.jpg angezeigt.


    Wo finde ich den Bildpfad der ausgegeben wird? Ist dieser per Variable ansprechbar? Ein replace ist dann nicht mehr die grosse Sache.



    Gibt es andere Ideen um der Aufgabenstellung Herr zu werden?
    - Klonen der Produkte (geht, ist aber bei hunderten von Produkten sehr Aufwändig und daher keine Option)


    Freue mich über inspirierende Lösungsvorschläge.


    Virtuemart 3.8

  • Ich kann Dir leider nicht ganz folgen, was für einen Bildpfad Du in Bezug auf das Selbsterstellte Feld (welchen Typs?) verwendest.


    Wozu die Shopper-Gruppen?


    Welche Produkte werden für wen wann mit welchem Label angezeigt?


    Deine Frage enthält noch zu viele Fragen für mich, um da eine Antwort drauf geben zu können.


    Grüße
    Stefan

  • Lieber Stefan herzlichen Dank schon mal fürs Lesen.


    Also ich versuche gerne es genauer mit einem Beispiel zu beschreiben. Es geht beim ganzen um eine Studie einer Hochschule.


    Zuerst die eigentliche Frage, wie bekomme ich Zugriff auf den Bildpfad eines selbsterstellten Feldes mit dem Typ Bild.
    Code mässig würde das in etwas so aussehen und was mir fehlt ist wie bekomme ich den Bildpfad hier mal als $imglink ausgewiesen:


    if($shoppergroup > 0) { // or not default


    $imglink = str_replace('.','$shoppergroup."."',$imglink);
    }



    Weitere Ergänzungen die vielleicht mehr verwirren als helfen, aber ich versuche es trotzdem ;).
    Es geht um folgenden Versuchsaufbau:


    Es gibt 5 verschiedene Versuchsgruppen.
    Gruppe 1 sieht keine Labels.
    Gruppe 2 sieht bei Bananen ein Bio Label und bei Äpfeln ein Alnatura Label.
    Gruppe 3 sieht bei Äpfeln ein Bio Label und bei Ananas ein Fairtrade Label.
    etc.


    Ein Label habe ich mittels selbst Erstelltes Feld (Bild) positioniert, was auch funktioniert.


    Nun habe ich mir da Vorgehen folgender massen überlegt. Ich teile die Personen per Zufall einer Shopergroup von 1-5 zu.
    (Dies funktioniert.)


    Dann weise ich jedem Produkt ein Labelbild zu, welches wie die Produktegruppen heissen (selbst definiert nichts mit virutemart Gruppen zu tun, zb, jede Apfelsorte hat auch das labelbild apfel.png zugewiesen), jedoch durchsichtig ist. (funktioniert)


    Nun möchte ich im Code der Webseite das Labelbild so manipulieren, dass:
    - Wenn ein Benutzer der Gruppe 1 die Äpfel sieht, kein Label angezeigt wird.
    (funktioniert, da das Basislabel durchsichtig ist / Apfel.png)


    - Wenn ein Benutzer der Gruppe 2 die Äpfel sieht, ein Alnatura-Label angezeigt wird.
    (Hier kommt die eigentliche gesuchte Lösung ins Spiel. Dies funktioniert wenn ich im Backend das Produkt Klone und mit der Regel welcher shopergruppe welches Produkt anzeige sowie das Bild im selbsterstellten Feld des Klones von Apfel.png auf Apfel2.png umstelle.)


    Diesen Vorgang möchte ich gerne automatisieren. Das heisst ich lese die Shoppergruppe aus, und ersetze den BildPfad des Labels von xy/zzz/Apfel.png auf xy/zzz/Apfel1.
    Somit wird nur das Label / Benuterdefiniertesfeld Bild) dynamisch ausgewechselt und ich brauche nicht hunderte von Produkten zu klonen.



    Alle Bilder liegen bereits im Verzeichnis,.


    Ich hoffe nun ist die Fragestellung klarer ;)


    Vielen Dank. Nicolas

  • Servus,


    Dein Custom Field vom Typ Abbildung ist vom Typ M, da kannst Du einmal im Sublayout customfields.php schauen:


    case 'M', da befindet sich eine Funktion displayCustomMedia, die im Modell Customfields in der administrator/components/com_virtuemart/models/customfields.php gebaut wird.


    Das bedeutet für mich, das ist alles viel zu tief im Core.


    Ich würde das anders angehen.


    Einen Override der Kategorie- und Produktansicht, das Label fest im Layout verankern.
    < img src="/images/<?php echo $meinesku . '_' . $shoppergroupkuerzel; ?>.jpg" class="custom-shopperlabel" alt="nicht vergessen" />


    Die $shoppergroup(kuerzel) hast Du ja schon.


    Jetzt brauche ich nicht einmal ein selbsterstelltes Feld für jedes Produkt erstellen, ich nehme einfach die SKU des Produkts, oder den Namen einer Kategorie, falls Produkte in einer Kategorie Apfel alle das Label Apfel haben.


    Damit bekomme ich dann meine Bilder mit SKU und Käufergruppe.


    <img src="granatapfel_sg1.jpg" />
    <img src="granatapfel_sg2.jpg" />


    oder mit Kategorie und Käufergruppe


    <img src="aepfel_sg1.jpg" />
    <img src="aepfel_sg2.jpg" />


    Nun lege ich die Bilder entsprechend der möglichen Ergebnisse in das Verzeichnis image/ und schon läuft das für alle Produkte automatisch ab, wenn sie eine SKU/Artikelnummer oder Kategorie haben.


    Evtl. noch ein IF um die Bilder legen, damit sie nur angezeigt werden, wenn es eine bekannte Shoppergruppe und SKU gibt.


    Vielleicht geht das in die Richtung
    Stefan

  • Lieber Stefan


    Herzlichen Dank für die ausführliche Antwort.


    Mit dieser kann ich auf jeden Fall etwas anfangen.
    Welche Lösung ich am Schluss umsetzen werde, muss ich mir nochmals gründlich überlegen, aber so habe ich sicher eine Möglichkeit es umzusetzen.


    Nicolas