Zum Inhalt springen

Links im Newsletter

Erstellt am 9. November 2003 · 11 Antworten · letzte Antwort am 5. April 2006

Tags: Links, Direct Mail, Frage

sausi ·

Habe folgendes Problem:

Ich dachte, ich könne im Content eines Newsletters auch Links angeben. Also etwa so:

"Newsletter Nr.1
Schön, dass Ihr da seid (...) Mehr dazu findet Ihr hier:"
Und dann folgt der interne Link zu einer Seite in Typo3.

Das Problem ist nun, dass alle Links, die dann beim Empfänger ankommen mitnichten auf diese Seite verweisen, sondern sie verweisen auf das Newsletterdokument selbst. Der Link lautet dann in etwa so:

http://www.meine-seite.de/?id=379&rid=###SYS_TABLE_NAME###_###USER_uid###&mid=###SYS_MAIL_ID###&jumpurl=0

Gibt es eine Möglichkeit das irgendwo abzustellen, so dass Direct Mail dann ganz brav den im Content enthaltenen Link rendert?

Wäre gut, wenn mir da jemand helfen könnte.

Stoneage ·

Das ist kein Problem, sondern ein Feature!! Weil es wird nachher ausgwertet welche Links wie oft geklickt worden sind usw. Also ein mächtiges Tool, dass die Links dann zur richtigen Seite weitergeleitet werden, hast du hoffentlich ausprobiert?? Man kann das bestimmt abstellen, im plaintext newsletter ist das auch kein Problem (einfach Code mit "links" entfernen, glaube ich), aber in HTML-Newsletter weiß ich es nicht.

Gruß,

C.

sausi ·
Tetramatrix schrieb

Gruß,

C.

Danke erstmal, da muß ich aber nochmal nachfragen:
Ich habe das ganze jetzt nochmal als Plaintext verschickt. Dabei passiert wieder das gleiche. Links werden zunächst überschrieben und verweisen auf das Newsletterdokument als HTML-Seite. Ich möchte eine ganz einfache Funktionalität: Einfach eine Seite mit DirectMail erstellen, links einfügen, die dann auf irgendwelche Seiten in meinem Content verweisen oder externe Links sind.
Wo und wie kann ich dieses Feature der "zwischengeschalteten" Newsletter-Seite nun abstellen?

Gruß Joerg

sausi ·
Tetramatrix schrieb

entschuldige bitte, aber hast du meine antwort gelesen? da steht doch alles 😉.

c.

Ja, habe ich gelesen. Meine Frage ist nur: Wo kann ich den Code "link" ändern oder streichen?

Ergänzung etwas später und etwas schlauer: :o Meintest Du auf diese hier #6910 beschriebene Weise?

Gruß Joerg

Stoneage ·

du mußt in die klasse plaintextLib.inc gehen und da die verarbeitung der links so ändern, das halt nicht mehr die statistik funktion genutzt wird. für den html-newsletter mußt du das in der klasse dmailer oder sogar htmlmail machen, aber das weiss ich nicht so genau. ich habe die statistikfunktion noch nie abgeschaltet.

c.

ps. ist natürlich unsauber alles in den klassen direkt zu ändern, besser ist es eine XCLASS daraus zu machen, was aber leider nicht immer geht. aber leg die extension wenigstens local an.

sausi ·
Tetramatrix schrieb

du mußt in die klasse plaintextLib.inc gehen und da die verarbeitung der links so ändern, das halt nicht mehr die statistik funktion genutzt wird.

Danke erstmal. Eben der Antwort auf diese Frage bin ich auf der Spur: Wo in der plaintextLib.inc muss ich dies ändern. Welche Funktion ist dafür zuständig und welche Variable muß ich anpassen bzw. kann ich direkt statt $thelink verwenden?

Sorry, wenn ich anfange zu nerven... :o

Stoneage ·

hmm, nerven tust du echt 😉. kannst du denn überhaup php??

schau dir mal die function atag_to_http, dass ist schon fast selbsterklärend, aber wie gesagt nur für den plaintext newsletter.

c.

sausi ·
Tetramatrix schrieb

hmm, nerven tust du echt 😉. kannst du denn überhaup php??

schau dir mal die function atag_to_http, dass ist schon fast selbsterklärend, aber wie gesagt nur für den plaintext newsletter.

c.

Also, meine PHP-Kenntnisse sind wirklich eher bescheiden als ausgezeichnet. :o

Aber genau diese Funktion hatte ich mir schon angeschaut. Die aus meiner Sicht wohl relevante Zeile lautet:

$theLink = trim($this->cObj->parameters["href"]);

Was genau muß ich an dieser Zeile ändern? :o

McGregor ·

Hi!

Ich habe die Stelle für den HTML-Versand gefunden 😃
Die Datei class.t3lib_htmlmail.php ist dein Freund

function substHREFsInHTML()	{
 // This substitutes the hrefs in $this->theParts["html"]["content"]
 if (is_array($this->theParts["html"]["hrefs"]))	{
   reset ($this->theParts["html"]["hrefs"]);
   while (list($key,$val) = each ($this->theParts["html"]["hrefs"]))	{
     if ($this->jumperURL_prefix && $val["tag"]!="form")	{	// Form elements cannot use jumpurl!
	if ($this->jumperURL_useId)	{
 	  $theSubstVal = $this->jumperURL_prefix.$key;
	} else {
	  $theSubstVal = $this->jumperURL_prefix.rawurlencode($val["absRef"]);
	}
      } else {
	  $theSubstVal = $val["absRef"];
      }
      $this->theParts["html"]["content"] = str_replace(
	$val["subst_str"],
	$val["quotes"].$theSubstVal.$val["quotes"],
	$this->theParts["html"]["content"]	);
      }
    }
  }

Hier muss man den Part mit der Form-Abfrage ausklammern. Es sollte also sowas ähnliches wie hier übrigbleiben:

function substHREFsInHTML()	{
 // This substitutes the hrefs in $this->theParts["html"]["content"]
 if (is_array($this->theParts["html"]["hrefs"]))	{
   reset ($this->theParts["html"]["hrefs"]);
   while (list($key,$val) = each ($this->theParts["html"]["hrefs"]))	{
      $theSubstVal = $val["absRef"];
      $this->theParts["html"]["content"] = str_replace(
	$val["subst_str"],
	$val["quotes"].$theSubstVal.$val["quotes"],
	$this->theParts["html"]["content"]	);
      }
    }
  }

Grüße
McGregor

chrisisflat ·

Wenn ich Dein Problem richtig verstanden habe, geht es auch ohne Änderung an der Lib:

mod.web_modules.dmail.enable_jump_url=0

das ins TS Config und er sollte keine jump urls mehr produzieren...