Neues Modul: HTMLNewsletter

malsdgtac
Beiträge: 717
Registriert: Fr 12. Mär 2004, 15:50
Kontaktdaten:

Beitrag von malsdgtac » Mo 22. Nov 2004, 12:11

Hallo Christian,

das Modul funktioniert super spitzenmäßig, danke für das hier veröffentlichen.

Ich habe zwei Dinge daran geändert:

1. Output-Bereich Modul HTML-Newsletter Zeile 39:

Code: Alles auswählen

$body = preg_replace('/[sS[rR][cC][ ]*=[ ]*"([^h][^t][^t][^p][^:].*)"/','href="'.$cfgClient[$client]['path']['htmlpath'].'$1"',$body);
habe ich in

Code: Alles auswählen

$body = preg_replace('/[sS[rR][cC][ ]*=[ ]*"([^h][^t][^t][^p][^:].*)"/','rc="'.$cfgClient[$client]['path']['htmlpath'].'$1"',$body);
geändert, da sonst eingefügte Bilder nicht richtig angezeigt werden.

2. Nachdem ich die Änderungen von Herr B (http://www.contenido.de/forum/viewtopic ... newsletter)durchgeführt hatte, funktionierte die Versendung des Newsletters nicht mehr. Daher auch noch die Änderung im Modul "HTML-Newsletter" in Zeile 57:
von

Code: Alles auswählen

mail($db->f('email'), $cfg_mail_subject, $out[0], "From: ".$cfg_mail_from."\n".$out[1]);
auf

Code: Alles auswählen

mail(urldecode($db->f('email')), $cfg_mail_subject, $out[0], "From: ".$cfg_mail_from."\n".$out[1]);
Ansonsten funkioniert bei mir alles bestens.

mhl
Beiträge: 67
Registriert: Mi 18. Aug 2004, 21:59
Wohnort: Salzburg
Kontaktdaten:

Beitrag von mhl » Do 20. Jan 2005, 13:55

smac hat geschrieben:Ich habe zwei Dinge daran geändert:

1. Output-Bereich Modul HTML-Newsletter Zeile 39:

Code: Alles auswählen

$body = preg_replace('/[sS[rR][cC][ ]*=[ ]*"([^h][^t][^t][^p][^:].*)"/','href="'.$cfgClient[$client]['path']['htmlpath'].'$1"',$body);
habe ich in

Code: Alles auswählen

$body = preg_replace('/[sS[rR][cC][ ]*=[ ]*"([^h][^t][^t][^p][^:].*)"/','rc="'.$cfgClient[$client]['path']['htmlpath'].'$1"',$body);
geändert, da sonst eingefügte Bilder nicht richtig angezeigt werden.
Besten Dank smac für die Adaption, bei mir läuft es nun HERVORRAGEND!

Gruß

MHL

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Do 20. Jan 2005, 17:25

Noch ein Hinweis: Bitte nicht das (in diesem Thread angegebene) Anmeldemodul des HTMLNewsletters verwenden, sofern die Newsletter-Überarbeitung für die V4.4.4 eingesetzt wird (es geht zwar, aber die Einträge, die in der Datenbank gemacht werden, sind u.U. nicht kompatibel).

Eine Verwendung der überarbeiteten Newsletter-Funktionen (Anmeldung, Versand) zusammen mit diesem Moduls ist (mit den angegebenen Änderungen) problemlos möglich.

Wichtig: Diese Anmeldung ist außerdem nicht sicher in Bezug auf SQL-Injection.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

mhl
Beiträge: 67
Registriert: Mi 18. Aug 2004, 21:59
Wohnort: Salzburg
Kontaktdaten:

Fehlermeldung

Beitrag von mhl » Do 10. Mär 2005, 12:47

Hallo!

Ich habe den HTML Newsletter korrekt eingebaut, doch nun zeigt er mir folgende Fehlermeldung an:

Code: Alles auswählen

wrong file:http://www.vincenz-liechtenstein.at/cms/front_content.php?idcat=48&idlang=1&idart=164&idclient=1&noex=1
Any idea?

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Do 10. Mär 2005, 13:34

Wann erscheint diese Fehlermeldung?

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

mhl
Beiträge: 67
Registriert: Mi 18. Aug 2004, 21:59
Wohnort: Salzburg
Kontaktdaten:

Fehlermeldung

Beitrag von mhl » Do 10. Mär 2005, 15:12

Die Fehlermeldung erscheint im Artikel, an der Stelle wo "Send Newsletter" steht, NACHDEM ich darauf geklickt habe.

Also ich versuche den Newsletter zu senden, und er wirft mir dann an der Stelle des HMTL Newsletter Containers diese Fehlermeldung aus.

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Fr 11. Mär 2005, 12:45

Ich habe das Modul selbst noch nicht eingesetzt, ich gucke es mir am Wochenende mal an.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Fr 11. Mär 2005, 12:57

mhl hat geschrieben:... der HTML Newsletter sollte heute abend stehen, drum die Spannung.

ZU der Fehlermeldung, die ich im Forum gepostet habe, fällt mir noch folgendes ein:

Code: Alles auswählen

wrong file:http://www.vincenz-liechtenstein.at/cms/front_content.php?idcat=48&idlang=1&idart=164&idclient=1&noex=1
Dies erscheint ja dann immer an der Stelle, wo vorhin "Send Newsletter" stand, NACHDEM ich darauf geklickt habe. Nun habe ich keinen Schimmer, wie ich das wegkriege. Kann es damit zusammenhängen, dass ich den Newsletter mitsamt Blackbox von Dir installiert habe?
Im Errorlog wirft er mir nix aus...
Bis heute abend werde ich es nicht schaffen (ich muss noch arbeiten). Nein, damit sollte es nichts zu tun haben. Ich nehme mal an, dass Du das Newsletter-Modul und das Modul HTMLNewsletter nicht auf der gleichen Seite integriert hast. Aber selbst dann wären zwar Effekte mögich, aber nicht die Fehlermeldung.

Wenn Du magst, kannst Du mir Deine Daten per PM senden - dann kann ich schneller, vielleicht sogar heute abend noch reingucken.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Fr 11. Mär 2005, 22:07

mhl hat geschrieben:Mir fällt ein, dass ich die Änderung im Forum (con_ tabelle in contenido_ tabelle) noch nicht probiert habe!! Vielleicht ist es das. Meld mich später!
Wenn Du die Version 0.3 von der Homepage verwendet hast, sind die Änderungen bereits drin enthalten. Nur die weiteren Änderungen (die Du aber wohl bereits drin hast) sind wichtig.

Existiert http://www.vincenz-liechtenstein.at/cms ... idclient=1 und ist der Artikel online?

Ansonsten kannst Du auch die Zeile

Code: Alles auswählen

$handle = @fopen ($file, "r") or die("wrong file:".$file);
in

Code: Alles auswählen

$handle = fopen ($file, "r"); // or die("wrong file:".$file);
ändern. Es dürfte dann zwar immer noch nicht gehen, aber vielleicht bekommst Du eine Information, warum nicht (man beachte das fehlende @).

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

mhl
Beiträge: 67
Registriert: Mi 18. Aug 2004, 21:59
Wohnort: Salzburg
Kontaktdaten:

Fehlermeldung

Beitrag von mhl » Sa 12. Mär 2005, 10:38

@ HerrB

1.) Ja, die Seite ist online.

2.) Danke für den Tipp mit dem @, die Fehlermeldung erscheint nicht mehr, aber die Seite wird auch nicht versendet.

3.) Ich habe den gleichen HTML Newsletter bei einem anderen User eingebaut, auf einem anderen Server mit selber Konfiguration, aber auch dort erscheint die selbe Fehlermeldung. Insofern interessant, als dass es auf diesem Server schon einmal funktioniert hatte. Ich werd nicht schlau draus.... :?

Bin dankbar für jeden Tipp.

Gruß

MHL

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Sa 12. Mär 2005, 21:39

2.) Danke für den Tipp mit dem @, die Fehlermeldung erscheint nicht mehr, aber die Seite wird auch nicht versendet.
Nein, so war es auch nicht gemeint:
Es dürfte dann zwar immer noch nicht gehen, aber vielleicht bekommst Du eine Information, warum nicht (man beachte das fehlende @)
Das @ unterdrückt Fehlermeldungen (genau genommen Warnungen), da hätte jetzt eigentlich eine Warnung/Meldung erscheinen sollen.

Der Fehler kommt vermutlich aus der Serverkonfiguration. Ansonsten werde ich dieses Wochenende wohl nicht mehr zum Testen kommen, tut mir leid.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

stephanwilm
Beiträge: 44
Registriert: Mo 8. Nov 2004, 17:44
Kontaktdaten:

Beitrag von stephanwilm » Fr 18. Mär 2005, 18:20

Hallo,

ich hab alle Änderungen soweit gemacht, die Module angelegt etc., nur bekomm ich einen white-screen im Editor:-( Kann ich die include.*-Files in /contenido/includes/ alle beim alten lassen oder müssen die *recipients* und *newsletter* erneuert werden??

Vielen Dank mit sonnigen Grüssen

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Sa 19. Mär 2005, 18:04

@mhl: Wie siehts aus, geht es jetzt?

@stephanwilm: Mmh? Du solltest die Newsletter-Überarbeitung für V4.4.x einsetzen (siehe Signatur), da dort etliche Probleme behoben sind (allerdings nur in der reinen Newsletter-Funktionalität).

Danach musst Du die Änderungen von smac (siehe oben) durchführen, damit das Modul HTMLNewsletter mit den geänderten Contenido-Newsletter-Daten umgehen kann.

Ansonsten das übliche: Welche Contenido-Version, was steht im errorlog, sind alle Tags geschlossen (head, body, form)?

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

malsdgtac
Beiträge: 717
Registriert: Fr 12. Mär 2004, 15:50
Kontaktdaten:

Beitrag von malsdgtac » Mo 21. Mär 2005, 09:49

Hallo, ich verwende jetzt folgenden Code für den HTML-Newsletter im Output:

Code: Alles auswählen

<?php
	// HTMLNewsletter v0.2
	// (c) Maurer IT Systemlösungen
	// Autor: 	Ing. Christian Schuller
	// Date:	22.01.2004

	// This is a good BETA Version, but there will be no guarantee for anything.
	// If you find any BUGS, please use the forum (http://www.contenido.de/forum)
	// or write me an email to christian@maurer-it.com
	
	// Konfiguration vars
	$cfg_basedir = "moduls/HTMLNewsletter/";
	$cfg_mail_subject = "CMS_VALUE[1]";
	$cfg_mail_from = "CMS_VALUE[2]";
	require($cfg_basedir."multipart_mime_mail.php");

if (!isset($noex))
{  
	if (!isset($send))
	{
		if ($edit==true)
			echo "<a href='".$auth->url()."&send=1'>".i18n("Send Newsletter")."</a>";
	}
 	else
 	{
		$file = $cfgClient[$client]['path']['htmlpath']."front_content.php?idcat=$idcat&idlang=$lang&idart=$idart&idclient=$client&noex=1";
		$handle = @fopen ($file, "r") or die("wrong file:".$file); 
		$body = ""; 
		while (!feof ($handle)) 
		{ 
			$body = $body.fgets($handle, 4096); 
		}
		fclose ($handle); 
	 
		// Do some magic things with url,links,and so on...
		
		//$body = str_replace("src=\"","src=\"".$cfgClient[$client]['path']['htmlpath'],$body);
		//$body = preg_replace('/href="([^h][^t][^t][^p][^:].*)"/','href="'.$cfgClient[$client]['path']['htmlpath'].'$1"',$body);
		$body = preg_replace('/[sS[rR][cC][ ]*=[ ]*"([^h][^t][^t][^p][^:].*)"/','rc="'.$cfgClient[$client]['path']['htmlpath'].'$1"',$body);
		$body = preg_replace('/[hH][rR][eE][fF][ ]*=[ ]*"([^h][^t][^t][^p][^:][A-Za-z0-9\.?\-=_&]*)"/','href="'.$cfgClient[$client]['path']['htmlpath'].'$1"',$body);
		$body = preg_replace('/url\((.*)\)/','url('.$cfgClient[$client]['path']['htmlpath'].'$1)',$body);
		
		
		//echo "-->".$body;
		$message[1]['content_type'] = 'text/html; charset=de-ascii';
		$message[1]['filename'] = '';
		$message[1]['no_base64'] = TRUE;
		$message[1]['data'] = $body; 
		
		$out = mp_new_message($message);
		
		$db = new DB_Contenido;
  		$sql = "SELECT email FROM ".$cfg["tab"]["news_rcp"]." where idlang=".$lang." and idclient=".$client." and deactivated=0"; 
  		$db->query($sql);
		while ($db->next_record())
		{
			mail(urldecode($db->f('email')), $cfg_mail_subject, $out[0], "From: ".$cfg_mail_from."\n".$out[1]);
		}
	}
}
?>
Funktioniert auch gut mit dem Versenden und dem Einbinden von Fotos. Leider habe ich Probleme mit dem Einfügen von Links. Wenn ich einen relativen Link mit dem WYSIWYG-Editor einfüge (auf eine interne Seite) wird dieser nicht in einen absoluten umgewandet.
Ich verwende zum Aufrufen über die Navigation einen Link mit mod-rewrite und wenn ich diesen als Link angeben (ebenfalls relativ) funktionioniert die Umwandlung ausgezeichnet.
Wenn ich einen Links mit front-content.php... einfüge wird dieser nicht umgewandelt.

Hm war jetzt sicher kompliziert geschrieben, ich hoffe ihr versteht was ich meine. Das umwandeln funktioniert grundsätzlich, allerdings nicht wenn ich Links mit dem Editor einfüge (auch wenn ich dies absolut mache, weil der Editor die automatisch auf relativ ändert).

stephanwilm
Beiträge: 44
Registriert: Mo 8. Nov 2004, 17:44
Kontaktdaten:

Beitrag von stephanwilm » Mo 21. Mär 2005, 12:11

@HerrB
Ich habe alle Änderungen schon mehrmals gemacht und auch die Module immer wieder in die Templates bzw. die Artikel eingebunden.
Das errorlog bringt hierfür keine Meldung:-(

Hast Du da eine Idee?

Schöne Grüsse

Hier der Quelltext von dem Newsletterartikel, wie er ausgegeben wird bei geöffnetem Artikel in "Editor"

Code: Alles auswählen

<html>
<head>
        <title>MACHALKE</title>
        <link rel="stylesheet" type="text/css" href="css/format.css" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><script type="text/javascript">

        /* Check if submenuItem is existing
           and mark it */
           
        if ( parent.frames["right_top"].document.getElementById("c_3") ) {
            menuItem = parent.frames["right_top"].document.getElementById("c_3");
            parent.frames["right_top"].sub.click(menuItem);
        }
        
    </script> 
<script language="javascript">

// searches the classname in the td above or the tr above
function getCellClass(element) {

    var el = document.getElementById(element);
    var cell = el.offsetParent;

    // if there is a classname in the td return the classname
    if ( cell.className != '' ) {
        return cell.className;
    }

    // set a flag in this td
    if ( cell.id == '' ) {
       cell.id = 'yes';
       var flg = 'yes'
       
    } else {
       var flg = cell.id;
       
    }

    //else go to the tagname table above   and search dowen for the tr tags
    while (el.tagName != 'TABLE') {
          el = el.offsetParent;
    }


    var elements = el.getElementsByTagName('TR');

    //go thrue all tr tags
    for (var row in elements) {

        if (isNaN(elements[row])) {
             var cells = elements[row].getElementsByTagName('TD');
             for (var id in cells) {
                 if(isNaN(cells[id])){

                   // check if the flg(td cell) is in this tr    if true return the calssname
                   if (cells[id].id==flg&&elements[row].className != '') {
                       return elements[row].className;
                   }
                 }
             }

        }




    }



    return false;
}


function setcontent(idart, act) {

        var a = document.getElementsByTagName("*");
        var str = '';
        var aId = '';
        var dcoElementCnt = 0;

        // loop through all elements
        for (var i=0; i < a.length; i++) {
                aId = a[i].id;
                aIdPrefix = aId.substr(0,4);

                // search for the id which containes HTML
                if (aIdPrefix == 'HTML') {

                        // check if its an 'contentEditable' Field
                        if (a[i].isContentEditable == true) {

                                 // read out the content
                                 var aContent = a[i].innerHTML;

                                 // split the idname in data - datas 0 is the Fieldname   2 is the typeid
                                 var data = aId.split("_");

                                 if ( aContent == "" ) {
                                    aContent = "!!";
                                    
                                 } else {

                                    // if there is an | in the text set a replacement chr because we use it later as isolator
                                    while( aContent.search(/\|/) != -1 ) {
                                        aContent = aContent.replace(/\|/,"§%%§");
                                    }
                                 }
                                 
                                 // build the string which will be send
                                 str += idart +'|'+ data[2] +'|'+ aContent +'|'+ data[0] +'||';

                        }
                        
                        
                        
                        
                        
                }

        }
        
        // set the string
        document.forms.editcontent.data.value = str;

        // set the action string
        if ( act != 0 ) {
            document.forms.editcontent.action = act;
        }

        // if there are 3 arguments, the className has to be seached
        if(arguments.length > 2){

            //search the class of the above element
            var classname = getCellClass(arguments[2]);

            if ( classname ) {
                document.forms.editcontent.con_class.value = classname;
            }
        }
        
        // submit the form
        document.forms.editcontent.submit();
        
}

</script>
<script src="http://www.ma003.w-server.de/contenido/external/mozile/mozileLoader.js" type="text/javascript"></script></head>
<body style="overflow:auto;"><body bgcolor="white" style="margin:0px"> 
<table width="100%" height="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
    <td height="666" align="center"> 
      <table width="850" border="0">
        <tr> 
          <td width="850"> 
            <table width="850" border="0">
              <tr> 
                <td width="278" valign="bottom"><a href="front_content.php?idcat=2"><img src="images/logo.jpg" width="160" height="18" border="0"></a></td>
                <td width="216"><a href="front_content.php?idcat=6"><img src="images/nav_unternehmen.jpg" width="104" height="20" border="0"></a></td>
                <td width="175"><a href="front_content.php?idcat=16"><img src="images/nav_service.jpg" width="64" height="20" border="0"></a></td>
                <td width="156"><a href="front_content.php?idcat=7"><img src="images/nav_kollektionen.jpg" width="100" height="20" border="0"></a></td>
              </tr>
            </table></td>
        </tr>
        <tr> 
          <td width="850" background="images/bg_2.jpg" bgcolor="e6e6e6"> 
            <table width="850" border="0">
              <tr>
                <td width="282" height="124" valign="top"></td>
                <td width="218" valign="top"></td>
                <td width="173" valign="top"></td>
                <td width="159" valign="top"></td>
              </tr>
            </table> </td>
        </tr>
        <tr> 
          <td width="850"></td>
        </tr>
        <tr> 
          <td width="850" height="498" background="images/bg_3.jpg" bgcolor="ffffff"> 
            <table width="850" border="0">
              <tr> 
                <td width="850" height="164" valign="top">
<img src="images/footer.jpg" width="850" height="21"></td>
              </tr>
              <tr> 
                <td width="850" height="301" valign="top"></td>
              </tr>
              <tr>
                <td height="21" valign="top"><a href="../cms_de/front_content.php?changelang=1">DE</a> 
                  <font color="ffffff">_</font> <a href="../cms_en/front_content.php?changelang=3">EN</a> 
                  <font color="ffffff">_</font> <a href="#">Impressum</a></td>
              </tr>
            </table>
          </td>
        </tr>
      </table>
    </td>
  </tr></table>
<form name="editcontent" method="post" action="front_content.php?area=con_editcontent&idart=16&idcat=27&lang=1&action=20&contenido=ca13d3e32f801689d6f64cff7540c50a">
<input type="hidden" name="changeview" value="edit">
<input type="hidden" name="data" value="">
<input type="hidden" name="con_class" value="">
</form></body>
</html>

Gesperrt