Mailtemplates und Workflow

  • Hallo VMForum,


    ich habe eine Frage zu den Mail-Templates, Anpassung dieser und die versendeten Mails.


    Ich benutze zurzeit Joomla 2.5.25 mit Virtuamart 2.6.10.
    Ich habe die Mailtemplates angepasst und diese in meinem aktiven Template unter dem Pfad:

    meinedomain/joomlaroot/templates/templatename/html/com_virtuemart/invoice/


    Vielleicht ist die Konfiguration vom Workflow für die Fehlersuche oder Tipps noch interessant:
    Versandt (COM_VIRTUEMART_ORDER_STATUS_SHIPPED) S
    Erstattet (COM_VIRTUEMART_ORDER_STATUS_REFUNDED) R
    Abgebrochen (COM_VIRTUEMART_ORDER_STATUS_CANCELLED) X
    Bestellung angenommen (COM_VIRTUEMART_ORDER_STATUS_CONFIRMED) C
    Zahlung erhalten (COM_VIRTUEMART_ORDER_STATUS_CONFIRMED_BY_SHOPPER) U
    In Bearbeitung (COM_VIRTUEMART_ORDER_STATUS_PENDING) P


    Bei Bestellung mit Payment wird der Status automatisch von P auf C gesetzt. Mails werden bei S; C und U verschickt.


    Zum eigentlichen Problem:
    Wenn eine Bestellung durchgeführt wird, erhält der Shoper eine Mail, bei dieser Mail ist alles Ok und die Formatierungen entsprechen den Anpassungen von den Files im Template.


    Im BE ändere ich den Status auf Zahlung erhalten(U) und Versandt (S)! somit erhält der Shopper 2 weitere Mails.
    Das Problem ist dabei das diese Mails eine völlig anderes Layout haben.


    Ich habe das ganze getestet und habe mit "echo __FILE__" bei den Mails die aufgerufene Files mitgelogged ...
    Und siehe da bei der Ersten Mail werden die Layouts aus meinem Template genommen und bei den weiteren Mails die Orginalen aus der virtuemart componente!


    Ich komm leider nicht weiter und weiß nicht voran das liegen könnte!
    Hat einer eine Idee oder hatte schon jemand mit so einem Fall zutun!


    MFG
    Shah

  • Hmm, doof.


    guck ma shopfunctionsF.php unter helpers im FE, die function renderMail,... was passiert, wenn du aus

    Code
    1. //Todo, do we need that? refering to http://forum.virtuemart.net/index.php?topic=96318.msg317277#msg317277
    2. $view->addTemplatePath( JPATH_VM_SITE.'/views/'.$viewName.'/tmpl' );
    3. $template = self::loadVmTemplateStyle();
    4. if($template) {
    5. $view->addTemplatePath( JPATH_ROOT.DS.'templates'.DS.$template.DS.'html'.DS.'com_virtuemart'.DS.$viewName );
    6. }


    das machst


    Code
    1. $template = self::loadVmTemplateStyle();
    2. if($template) {
    3. $view->addTemplatePath( JPATH_ROOT.DS.'templates'.DS.$template.DS.'html'.DS.'com_virtuemart'.DS.$viewName );
    4. } else {
    5. $view->addTemplatePath( JPATH_VM_SITE.'/views/'.$viewName.'/tmpl' );
    6. }


    Das addViewPath und addTemplatePath soll genau das verhindern.

  • Danke für die Antwort.
    Werde ich ausprobieren!


    Habe aber gestern noch mit vmdebug() die Variable $template überprüft und gesehen das sie auf das Admin-Template (BE) gesetzt wird. Nach etwas suche und ausprobieren habe ich als Lösung in der Konfiguration von VM (konfiguration->Shopfront->Standardtemplate) mein Template ausgewählt und seitdem wird die Variable korrekt gesetzt!


    Sollte es auch funktionieren wenn in der Konfiguration "default" ausgewählt ist?


    Eine Weitere Frage hat sich jetzt ergeben!
    Wie es scheint werden die Languageoverrides auch nicht für die Mails genommen!
    Ich habe 2 Files anlegen müssen damit PDF-Rechnung und gesendete Mails die gleichen Werte übernehmen.
    1.meinedomail\joomlaroot\html\language\overrides\de-DE.override.ini
    2.meinedomail\joomlaroot\html\administrator\language\overrides\de-DE.override.ini


    Ich werde mich noch etwas genauer damit außeinandersetzen ... Denk das da einiges, wegen meiner Konfiguration schiefläuft!
    Melde mich.


    Gruß
    Shah

  • Nee, du machst das schon recht gut.


    Das Problem ist, das die mails vom BE aus gefeuert werden, aber das FE zeug nutzen sollen und das gibts Probleme. Das betriff leider auch die language overrides. Die language wird vom FE genommen, da haben wir einen extra loader geschrieben, aber für die language overrides haben wir bisher noch keine Lösung. Interessant ist ja, das es funktioniert, wenn du das Template in der vm config gewählt hast. Das heisst, der added also den Pfad nicht, wenn es das standard joomla template ist. Eventuell bekomme ich es damit hin.

  • Wie gehts mit dieser Funktion?


  • Also zu deinem Ersten Post:
    Ich habe die Konfiguration wieder auf "Standard Joomla verwenden" umgestellt.
    Die Template Overrides im aktuellen FE-Template reingestellt und in der Komponente die Orginalen Mail-Vorlagen wieder reingetan.


    Aus dem hier:


    habe ich wie du beschrieben hast folgendes gemacht:


    PHP
    1. $template = self::loadVmTemplateStyle();
    2. if($template) {
    3. $view->addTemplatePath( JPATH_ROOT.DS.'templates'.DS.$template.DS.'html'.DS.'com_virtuemart'.DS.$viewName );
    4. } else {
    5. $view->addTemplatePath( JPATH_VM_SITE.'/views/'.$viewName.'/tmpl' );
    6. }


    dann passiert das ^^


    Zitat

    500 - Es ist ein Fehler aufgetreten


    Layout „mail_html“ nicht gefunden!


    Zurück zum Kontrollzentrum

  • Das Zweite probiere ich gleich aus.
    Habe aber noch 2 Fragen:


    1.habt ihr irgendwo einen Bugtracker, denn ich habe jetzt Blut geleckt und würde da die Sachen die mir aufgefallen sind eintragen bevor ich sie vergesse.


    2.In der Datei ..\..\Joomlaroot\components\com_virtuemart\views\invoice\view.html.php gibt es eine Variable $print



    ist diese Variable dieselbe die in der Datei ..\..\Joomlaroot\html\components\com_virtuemart\views\invoice\tmpl\invoice.php verwendet wird?



    Ich kenne mich mit php nicht so gut aus aber laut PHP: print - Manual liefert print immer true zurück!


    Ich denke das da immer true herauskommen würde und in diesem Fall if($this->print) nie in den else-Zweig kommen würde.


    Dennoch habe ich es mit vmdebug ausprobiert und bin in den else-zweig gelandet?? ^^


    Irgendwie scheint mir dass der Interpreter von PHP nicht so strict zu sein? oder täusche ich mich da?


    Gruß
    Shah

  • An dieser Stelle möchte ich mal meinen Dank aussprechen!
    Danke Milbo für deine Hilfe, finde es sehr lobenswert von dir.


    Deinen Zweiten Tipp haben ich auch ausprobiert und vmdebug zeigt mir das Template "atomic" ausgewählt wird. Was zwar falsch ist aber immerhin in die richtige Richtung geht. Ich werde mich mal mit der Query spielen, vlt bekomme ich es hin, dass das richtige Template ausgewählt wird.


    Habe in der DB (extentions) nachgesehen, was da für Templates installiert sind und welche Werte sie haben.


    Habe alle Templates mal deinstalliert und gelöscht, die ich nicht benötige. Damit wurde dann das richtige Template ausgewählt.


    Damit werden die Mail-Templates gefunden.


    Gruß
    Shah

  • :-)
    Sauber.


    Also das generelle Problem ist, dass du im BE bist, also in der Backend Application und daher das getTemplate von joomla nicht funktioniert. Daher müssen wir die Query manuel machen. Ich war auch fleissig und habe eine neue Funktion. Ich schicke dir per Pn meinen skype kontakt. Greetz


  • wie funktioniert das als sql?