Erweitere Absendereinstellungen im eMail Workflow – Modul des vTigers

Hallo!

Diesmal geht es darum, dass ich eine Frage zu den Absendereinstellungen der „Sende eMail“ Aufgabe im Workflow – Modul, beantwortet habe und dafür die vor einiger Zeit gepostete Modifikation für diese Einstellungen nochmals erweitert habe.

Es bestand der Wunsch, dass als Absender der Workflow-Mails keine feste Angabe angegeben werden muss, sondern der jeweilig zugewiesene User als Absender eingesetzt werden kann, sodass die Leads oder Personen von keinen unbekannten Adressen angeschrieben werden, wenn es eine feste Kontaktperson gibt.

Ich habe dazu die Möglichkeit der Auswahl dieser Einstellung von den Empfänger-Feldern einfach auf die Absender-Felder ausgedehnt, sodass keinerlei große Änderungen am Code vorgenommen werden müssen. Es werden schon vorhandene vTiger-Funktionen genutzt.

Da ich mir endlich eine umfangreiche Testsuite aufgebaut habe, kann ich diese Modifikation als voll getestet für vTiger 5.2.0 / 5.2.1 / 5.3 und 5.4.0 RC1 herausgeben.
Ich hoffe, dass diese Änderung auch im 5.4 oder 5.5 Zweig mit aufgenommen wird, da es eine recht nützliche Funktion ist und ab 5.4 selbst Informationen zum zuletzt bearbeiteten User eingesetzt werden können.

Bei dieser Modifikation besteht das geringe Potential die PDFMaker Extension aus der Mail-Workflow Aufgabe auszusperren. die entsprechende Stelle ist gekennzeichnet.

Da sich die Änderungen zwischen den Versionen eigentlich nicht unterscheiden, sollte man mit dieser Anleitung alle oben genannten Versionen patchen können.

module/com_vtiger_workflow/tasks/VTEmailTask.inc

Funktion: getFieldNames()

Suchen:

return array("subject", "content", "recepient", 'emailcc', 'emailbcc', [...]

In Array am Ende einfügen: (Zeile enthält evtl. Code aus PDFMaker, weshalb man Sie nicht komplett ersetzen sollte)

, 'from_mail', 'from_name'

Funktion: doTask()

Suchen und auskommentieren: (~ Zeile 3  in Funktion)
[php]
$result = $adb->query("select user_name, email1, email2 from vtiger_users where id=1");
$from_email = $adb->query_result($result,0,’email1′);
$from_name = $adb->query_result($result,0,’user_name‘);
[/php]
Suchen:
[php]
$entityCache = new VTEntityCache($admin);
[/php]
Danach einfügen:
[php]
if(!empty($this->from_mail)) {
$et = new VTEmailRecipientsTemplate($this->from_mail);
$from_email = trim($et->render($entityCache, $entity->getId()), ",");
$et = new VTEmailRecipientsTemplate($this->from_name);
$from_name = trim($et->render($entityCache, $entity->getId()), ",");
} else {
$result = $adb->query("select user_name, email1, email2 from vtiger_users where id=1");
$from_email = $adb->query_result($result,0,’email1′);
$from_name = $adb->query_result($result,0,’user_name‘);
}
[/php]

module/com_vtiger_workflow/resources/emailtaskscript.js

Da es sich hier um eine komplexe JavaScript Datei handelt, ist besonders das Auffinden der korrekte Position zum bearbeiten schwieriger. Also bitte hier besonders darauf achten!

Funktion: vtinst.listTypes(handleError(function(accessibleModules) {

Suchen:
[javascript]
$(‚#task-fieldnames‘).change(function(){
[/javascript]
Nach diesem Block (endet mit „});“ ), folgende Zeilen einfügen:

[javascript]
/** ADDED BY SWARNAT START FROM-EMAIL **/
fillSelectBox(‚task-emailfieldsfrom‘, modules, moduleName,
function(e){return e[‚type‘][’name‘]==’email‘;});
$(‚#task-emailfieldsname-busyicon‘).hide();
$(‚#task-emailfieldsname‘).show();
$(‚#task-emailfieldsname‘).change(function(){
var input = $($(‚#save_from_name‘).get());
var value = ‚$’+$(this).attr(‚value‘);
input.attr("value", input.attr("value")+‘,’+value);
});

fillSelectBox(‚task-emailfieldsname‘, modules, moduleName,
function(e){ return e[’name‘].indexOf("name") != -1});
$(‚#task-emailfieldsfrom-busyicon‘).hide();
$(‚#task-emailfieldsfrom‘).show();
$(‚#task-emailfieldsfrom‘).change(function(){
var input = $($(‚#save_from_mail‘).get());
var value = ‚$’+$(this).attr(‚value‘);
input.attr("value", input.attr("value")+‘,’+value);
});
/** ADDED BY SWARNAT ENDE FROM-EMAIL **/
[/javascript]

Smarty/templates/com_vtiger_workflow/taskforms/VTEmailTask.tpl

Suchen:

<table border="0" cellpadding="5" cellspacing="0" width="100%">

Danach einfügen:

<tr>
  <td class='dvtCellLabel' align="right" width=15% nowrap="nowrap">* From Name</td>
  <td class='dvtCellInfo'><input type="text" name="from_name" value="{$task->from_name}" id="save_from_name" class="form_input" style='width: 250px;'>
  <span id="task-emailfieldsname-busyicon"><b>{$MOD.LBL_LOADING}</b><img src="{'vtbusy.gif'|@vtiger_imageurl:$THEME}" border="0">
  <select id="task-emailfieldsname" class="small" style="display: none;"><option value=''>{$MOD.LBL_SELECT_OPTION_DOTDOTDOT}</option></select></td>
</tr>
<tr>
  <td class='dvtCellLabel' align="right" width=15% nowrap="nowrap"><b><font color=red>*</font> From Mail</b></td>
  <td class='dvtCellInfo'><input type="text" name="from_mail" value="{$task->from_mail}" id="save_from_mail" class="form_input" style='width: 250px;'>
  <span id="task-emailfieldsfrom-busyicon"><b>{$MOD.LBL_LOADING}</b><img src="{'vtbusy.gif'|@vtiger_imageurl:$THEME}" border="0"></span>
  <select id="task-emailfieldsfrom" class="small" style="display: none;"><option value=''>{$MOD.LBL_SELECT_OPTION_DOTDOTDOT}</option></select></td>
</tr>

/Und da das Suchen und Bearbeiten immer recht umständlich ist, habe ich hier noch 3 patch-Files vorbereitet. (Jeweils einmal für 5.2.0/5.2.1, 5.3 und 5.4 RC1)

Diese überschreiben allerdings jegliche Anpassungen in diesen Files. Speziell eine Änderung dürfte Probleme in Kombination mit dem PDFMaker bereiten, wenn Sie automatisiert ausgeführt wird. (Dabei handelt es sich um die erste Änderung im File module/com_vtiger_workflow/tasks/VTEmailTask.inc)

Bei Fragen und Problemen stehe ich, soweit es meine Zeit zulässt, jederzeit gerne über die Kommentarfunktion zur Verfügung.

Stefan

Patch-Files:
5.2.0/1
5.3.0
5.4.0 RC1

Dieser Beitrag hat einen Kommentar

  1. Petar

    Thank you for taking the time to make this available to others!

Schreibe einen Kommentar