Beiträge von mschratt

    Hallo zusammen,


    ich sondiere gerade den Markt nach PayPal Plus Plugins. Es scheint einige Drittanbieter Zahlungsplugins zu geben! Leider konnte ich hier auch noch keine validen Aussagen zu "brauchbaren" PayPal Plus Plugins erhalten oder mir selbst ein Bild machen (wenn eine Testversion herunterladbar ist)!


    Hat sich zu der ursprünglichen Fragestellung inzwischen eine Änderung bzw. ein Update ergeben? Befindet sich hier das Plugin bereits in der Entwicklung und die Integration ist absehbar? (Oder habe ich gar ein Update verpasst?)


    Wenn nicht, weiß jemand welche Anbieter (kommerzieller und nicht kommerzieller Plugins) in der Vergangenheit die Entwicklung des Virtuemart unterstützt und vorangetrieben haben?
    Bzw. anders ausgedrückt, gibt es so eine Art "offiziellen" Anbieter von Plugins, der eng mit dem Entwicklerteam von Virtuemart zusammen arbeitet?


    Vielen Dank vorab!
    Markus

    Hallo liebe VirtueMart-/Joomla-Experten,


    ich habe für einen Kunden eine eigene, individuell auf die Kundenwünsche angepasste Suche erstellt.
    Diese ist in dem erstellten Template fest integriert (Oberfläche HTML mit Ajax Aufruf an PHP).


    Die Ergebnisanzeige ist ebenso individuell angepasst wie die eigentliche Suchfunktion. Die Suche fragt einfach fest definierte Tabellen ab (JFactory DBO) und stellt diese in einer Liste (HTML Tabelle) dar. Hierfür werden anhand der gefundenen Produkt-IDs die Produkte (Product Model) geladen und in die HTML Tabelle als TD-Elemente eingefügt. Dies funktioniert auch korrekt. Ich kann bspw. die Produkte per Link öffnen.


    Ab hier das Kuriose verhalten meiner Implementierung:
    Wenn ich von der Detailseite des gesuchten Artikels das Hauptmenü anklicke (Kategorien-Liste), dann gelange ich nicht zu der entsprechenden Kategorie sondern lande auf meiner Hauptseite (die Ursache hierfür ist wahrscheinlich in einem Programmierfehler meinerseits begründet und nicht weiter tragisch).


    Aufgetretener Fehler:
    Nachdem man wie oben beschrieben (nach der Suche) auf der Hauptseite landet, funktioniert mein Javascript nicht mehr (sämtliche Buttons lassen sich nicht mehr klicken).


    Eine kurze Analyse in der Browserkonsole ergab, dass die Variable "sessmin" in der Datei "vmkeepalive.js" undefined ist.


    Im Folgenden "/com_virtuemart/assets/js/vmkeepalive.js" Zeilen 1 bis 8. Der Fehler tritt in Zeile 5 auf:


    Meine Vermutung:
    Da ich die PHP-Dateien für die Suche separat angelegt habe, befürchte ich, dass ich Virtuemart an der Stelle der Darstellung des Suchergebnisses nicht richtig eingebunden habe. Die Vermutung stützt sich darauf, dass ich aus der Suche heraus keinen einzigen Virtuemart-Menü-Link (Kategorie) ansteuern kann. Desweiteren funktionieren die Sprachoverrides auch nicht in meinen separaten Dateien (hier wird immer englisch statt der Shopsprache geladen).
    Da ich aber nicht blind meinen Code spammen möchte, die folgenden Fragen zur Eingrenzung.


    Meine Frage:
    Wann oder viel mehr durch welche Funktion wird "sessMin" initialisiert, bzw. welche Objekte muss ich zuvor laden?
    Die Einbindung des Skripts erfolgt meines Wissens nach durch "/com_virtuemart/helpers/vmjsapi.php".


    Mögliche Lösung aber unsauber:
    Eine mögliche Lösung wäre natürlich das Überschreiben der Funktion und die Erweiterung um den folgenden Code:

    Code
    1. if( typeof sessMin == 'undefined') {
    2. sessMin = 30;
    3. }


    Aber dies wäre nicht im Sinne des Erfinders! So wäre der Wert natürlich nicht mehr konfigurierbar!


    Hat "mein vorgeschlagener Workaround" außer, dass die Konfiguration über das Backend nicht mehr funktioniert, noch weitere technische Auswirkungen?


    Wie wäre die normale Funktion des Keepalives?


    Vielen Dank schon einmal an Euch alle (fürs Lesen oder für Eure Beiträge) und viele Grüße!
    Markus

    Hallo Stefan,


    vielen Dank für Deine schnelle Antwort. Das hört sich für mich erst einmal gut an, da bei richtigem Zertifikat Deiner Information nach keine Shop-Anpassung notwendig ist. Ich werde dies mit dem Hoster klären und hierzu im Laufe der Woche ein Update posten, so dass dann hoffentlich "gelöst" an dem Beitrag steht.


    Dankeschön!
    Markus

    Hallo liebe VirtueMart Experten,


    ich hoffe, dass ich hier im Virtuemart-Forum richtig bin.


    Ab dem 30.09.2015 wird PayPal den eigenen Betrieb umstellen von der Verwendung der bisherigen G2-Root-Zertifikat-Verschlüsselung (1024 bit Basis) auf eine G5-Root-Zertifikat-Verschlüsselung (2048 bit Basis).


    Damit wird auch der Kryptoalgorithmus SHA-1 durch SHA-256 ersetzt.


    Da ich mir bisher hierüber keine Gedanken gemacht habe (das PayPal Plugin lief immer hervorragend), jetzt die Frage ob hier Handlungsbedarf besteht oder ob das Plugin weiter funktionieren wird?


    Kann es hier überhaupt zu Inkompatibilitäten des Plugins kommen oder ist dies Einstellungssache des Hosters?


    Ich hoffe es hat sich bereits jemand anderes mit diesem Thema beschäftigt und/oder kann die Frage beantworten. Eine Katastrophe wäre aus meiner Sicht, wenn keine PayPal-Zahlung mehr möglich wäre.


    Vielen Dank schon einmal an Euch!
    Markus

    Hallo,


    ich hatte das Problem, dass nach dem Abmelden der Warenkorb nur dann wieder geladen wurde, wenn man sich beim Zeitpunkt der Abmeldung im Warenkorb befand.


    Ich habe für mich ein Override auf ...helpers/cart.php geschrieben und die PHP Klasse erweitert.


    Jetzt ist meine Frage ob dieser Code vielleicht in zukünftige Releases aufgenommen werden kann? (oder ob das Verhalten beabsichtigt ist und warum?)


    Hier der Code (Virtuemart 3.0.9) für die Erweiterung:


    In der Funkion getCart ab Zeile 117 den Ausgangscode:


    if (!empty($cartSession)) {
    $sessionCart = (object)json_decode( $cartSession ,true);
    if(empty($sessionCart->cartProductsData)
    or ($sessionCart->_guest and $sessionCart->_guest!=JFactory::getUser()->guest)){
    self::$_cart->loadCart($sessionCart);
    }
    }


    Durch folgendes ersetzen:
    if (!empty($cartSession)) {
    $sessionCart = (object)json_decode( $cartSession ,true);
    if(empty($sessionCart->cartProductsData)
    or ($sessionCart->_guest and $sessionCart->_guest!=JFactory::getUser()->guest)){
    self::$_cart->loadCart($sessionCart);
    }
    } else {
    // Änderung Ladeverhalten, DB Stand für Cart laden unabhängig von der Session.
    // Session konnte nicht wiedergefunden werden. Loadvorgang mit User ID
    self::$_cart->loadCart($sessionCart);
    // Fortsetzung des normalen Ladevorgangs, nachdem die Session-Variable in loadCart gesetzt wurde.
    $session = JFactory::getSession($options);
    $cartSession = $session->get('vmcart', 0, 'vm');
    if (!empty($cartSession)) {
    $sessionCart = (object)json_decode( $cartSession ,true);
    if(empty($sessionCart->cartProductsData)
    or ($sessionCart->_guest and $sessionCart->_guest!=JFactory::getUser()->guest)){
    self::$_cart->loadCart($sessionCart);
    }
    }
    }


    ... und weiter unten im Code, in der Funktion loadCart dies einfügen:


    if(!$currentUser->guest and $existingSession){{
    ... CodeBlock ...
    } else {
    // Keine Session, alten, in der DB gespeicherten Stand laden, falls dieser vorhanden ist.
    $model = new VmModel();
    $carts = $model->getTable('carts');

    $carts->load($currentUser->id,0,' ORDER BY `modified_on` DESC');

    $cartData = $carts->loadFieldValues();
    unset($cartData['_inCheckOut']);
    unset($cartData['_dataValidated']);
    unset($cartData['_confirmDone']);
    unset($cartData['_fromCart']);
    $this->virtuemart_cart_id = $cartData['virtuemart_cart_id'];

    if($cartData and !empty($cartData['cartData'])){
    $session = JFactory::getSession();
    $session->set('vmcart', $cartData['cartData'], 'vm');
    }
    }


    Vielen Dank vorab für die Kommentierung dieses Vorschlags!
    Markus