Beiträge von Miraculix

    Das funktioniert leider nicht. Die Product_id ist immer 1. Die wird dann auch nur mit true übergeben, mit false wird gar keine gefunden.
    Merkwürdig ist aber auch, dass mit setCookie zwei Produkte nicht in der fancybox geöffnet bzw ausgewählt werden können. Also irgendwas ist noch faul..:(
    Habe das ganze auch mit der originalen productdetails view und getInt getestet, mit gleichem Ergebnis: product_id = 1.

    Hallo,


    meinst Du damit $_Server['REQUEST_URI'] bzw. $_Server['QUERY_STRING'] ?
    Beide geben mir immer nur das letzte Produkt von 'Kürzlich betrachtete Produkte' zurück. Warum das so ist weiß ich nicht:(:confused:


    Wenn ich die Anzeige in der Shop Konf deaktiviere, dann bekomme ich sowas wie die höchste produkt id von den 'Neuesten Produkten'. Deaktiviere ich diese auch, erscheint ein Produkt von 'Aktionen z.Bsp. Meine ursprüngliche Frage war eigentlich, diesbezüglich die entsprechende Datei anzupassen. Das scheint mir aber zu tricky. Deshalb die Lösung mit setcookie.


    Es betrifft wie gesagt nur die Anzeige via fancybox. Rufe ich beide detail views ganz normal im Browser auf, dann ist alles ok. Die fancybox aber verwirft den user call und zeigt mir das letzte bekannte produkt oder so ähnlich an.

    Ok. Das für mich big grande problem konnte ich endlich endlich lösen:rolleyes::o
    mit $_COOKIE's. Normale $Sessions across my sites sind nicht möglich, aber cookies sind verfügbar.


    Mit onclick="setcookie(my_cookie, cProdPath, cProdName, cProdPrice, cProdID, cimg, expiredays, ....) sende ich meine benötigten Variablenwerte an die fancybox, welcghe meine eigene product detail page öffnet.


    In der fancybox setze ich zur Übergabe der Werte an externe Seiten die Funktion setCookie(cname..etc. :


    script type="text/javascript">
    function setCookie(cname, cProdPath, cProdName, cProdPrice, cProdID, cimg, expiredays)
    {
    .....
    document.cookie=cname+ "=" + "," + escape(cProdPath) + "," + escape(cProdName) + "," + .....usw.



    Den document.cookie string splitte ich manuell noch mit Kommas.
    Dann kann ich innerhalb meiner product detail page die Werte mit index iteration wieder auslesen:


    $cookie = explode(",", $_COOKIE['my_cookie']);
    $i=0;
    $myProduct = array('Prod');


    foreach($cookie as $index => $val)
    {
    $i ++;
    $k = explode(",", $val);
    $myProduct['Prod'][$i] = trim($k[0]);
    }
    echo 'Name: ' .$myProduct['Prod'][2]; // cProdName
    echo 'Price: ' .$myProduct['Prod'][3]; // cProdPrice
    echo 'ID: ' .$myProduct['Prod'][4]; // cProdID



    Das funktioniert soweit wunderbar. Ein Problem bleibt dennoch. Sobald die setcookie parameter Reihenfolge verändert würden, müssten auch alle indexes von $myProduct['Prod'][$i] in der detail page angepasst werden.


    Es gibt sicherlich eine elegantere Lösung (effizient code), z. Bsp. getElementByID oder ähnliches, wo ich direkt nach beispielsweise "cProdName" suchen und ausgeben kann. Aber meine ersten Tests funktionierten nicht mit der index iteration sondern gaben nur Zeile für Zeile alle Inhalte des Cookies aus und die Lösung dieses Problems hat mich bereits sehr lange aufgehalten. Deshalb bin ich damit erstmal zufrieden. The show must go on..


    Gruuuß :)
    Micha

    Mit der richtigen Pfadangabe konnte ich das nun endlich doch noch lösen::o


    $myGlobalVar['ProductLink'] = JRoute::_ ('index.php?option=com_virtuemart&view=myownproductdetailsview&virtuemart_product_id=' . $product->virtuemart_product_id . '&virtuemart_category_id=' . $product->virtuemart_category_id . $ItemidStr .'&tmpl=component', FALSE);


    Diese url rufe ich dann innerhalb der fancybox auf:
    var myurl = '<?php echo $myGlobalVar['ProductLink'] ?>';
    <script type....>
    jQuery.fancybox({

    type: 'POST',
    href: myurl,
    type: 'iframe',
    content: 'php',
    fitToView: true,
    ...
    ...
    ...
    });
    </script>



    Gruuuß
    Micha

    Ja leider brauche ich zwei. Die originale view productdetails benötige ich ganz normal für die Produkte der Startseite.
    Über einen Sofort kaufen Button verweise ich auf meine view, die in einer fancybox angezeigt wird. Diese Seite benötigt nur ein paar Angaben des Produkts..plus Zahlungsmöglichkeit.


    Die Anzeige des korrekten Produkts habe ich zu allererst mit der Standard-view eingerichtet und getestet. Auch hier ging beim Aufruf/ der Übergabe des Produkts zur view der Inhalt des links verloren und irgendein Produkt angezeigt. Im link selbst stimmt noch alles. Mit Sessions hatte ich bisher auch keinen Erfolg.
    Und da ich dann keine Möglichkeit fand, zusätzlich eine zweite php in der VM Shop Konfiguration als view einzutragen, habe ich die zweite view erstellt.
    Die Eintragung der product_id in eine url innerhalb einer shop.browse.php zur Übergabe an externe Seiten wäre eine optimale Lösung. Ich habe aber noch nicht herausgefunden, welche Datei(en) nun hierfür verantwortlich sind. order.php vlt?

    Hallo zusammen,


    ich habe mir eine eigene view zur Produktdetailsanzeige erstellt. Es funktioniert auch alles soweit parallel zur view Productdetails. Nur die Übergabe der Produkt-ID klappt nicht. Die view rufe ich über die Startseite mittels diesem link auf:


    $mylink = JRoute::_ ('index.php?option=com_virtuemart&view=myproddetailview&virtuemart_product_id=' . $product->virtuemart_product_id . '&virtuemart_category_id=' . $product->virtuemart_category_id . '&tmpl=component', FALSE);



    Auf meiner default.php der eigenen view wird mir dann aber nicht das Produkt geliefert, welches in $mylink steht, sondern irgend ein zufälliges. Meistens das letzte aus einer featured Kategorie. Testweise habe ich $mylink auch mit &view=productdetails ausprobiert aber mit gleichem Ergebnis.


    Nun habe ich etliche Seiten durchforstet und bin auf eine ältere Lösung gestoßen: how to display product id in browse page?


    Die Struktur von VM hat sich seither aber sehr geändert. Ist solch eine Lösung auch in der aktuellsten VM Version 3.0.16 möglich?


    Ich nutze folgendes:
    VM 3.0.16
    Joomla 3.4.8
    PHP 5.6.14


    VG
    Michael

    Hallo zusammen,


    ich versuche seit über einer Woche mittels VM integrierter fancybox 1.3.4 Produktdetails in der fancybox abzubilden.
    In der override Startseite products.php, welche ja in der index.php als Startseite dann geladen wird und alle Produkte anzeigt, habe ich einen Button, welcher bei onClick() Event die fancybox öffnet und eine eigene php Seite mit HTML Code darin anzeigt. Soweit sogut. Das HTML Gerüst funktioniert soweit auch.


    Wenn ich aber eine 'normale' VM Seite darin öffnen will bzw. php Code, dann erscheint nur die Fehlermeldung 'Restricted access'.


    Blende ich diese Zeile im Code aus, was ich sicherheitstechnisch gar nicht möchte, erscheinen Fehlermeldungen wie :
    Class 'JFactory::' not found in..
    JHtmL::link not found..


    Innerhalb der products.php habe ich auch Zugriff auf die Session, kann $productlink etc. auch ausgeben. Jedoch schaffe ich es nicht, diese an meine eigene Seite zu übergeben. Mittlerweile habe ich zig Codeschnipsel und sehe den Wald vor Bäumen wohl nicht mehr.


    Ist es möglich, Produktdetails innerhalb einer fancybox zu öffnen?
    Hintergrund ist der, dass ich Download-Produkte anbieten möchte. Bei Klick auf ein Produkt, soll sich die fancybox öffnen und beispielsweise den Produktnamen, Produktlink und Preis anzeigen. Nächster Schritt wäre dann, die fancybox mit der möglichen Zahlart zur Auswahl zu befüllen.


    Ich nutze VM 3.014 mit Joomla 3.4.8 (PHP 5.6.14). SSL ist websiteweit eingestellt, ebenso in VM. Die Seite läuft aber noch auf localhost.


    Ich hoffe, mir kann jemand helfen.


    Viele Grüße
    Miraculix