Seite 1 von 3

Brauche Hilfe mit >Newsletter Mod<

Verfasst: 25.10.2003 17:14
von Helmut71
Ok liebe Forumsleser und Moderatoren - diesmal würde ich sehr dringend eure Hilfe brauchen - ich hoffe, es kann mir hier jemand aus der Patsche helfen:


Ich habe (in Ermangelung von Alternativen) folgenden Newsletter-Mod installiert: http://www.malume.de/downloads/phpmod_newsletter_2.zip

Der Mod soll eigentlich in Verbindung mit dem fetch_all Mod laufen, dies lässt sich aber relativ leicht herauslösen:

In der newsletter_admin.php:

Code: Alles auswählen

// Import for work with mod fetch_all
include_once ($phpbb_root_path . 'includes/bbcode.' . $phpEx);
include_once ($phpbb_root_path . 'mods/phpbb_fetch_all/common.' . $phpEx);
include_once ($phpbb_root_path . 'mods/phpbb_fetch_all/posts.' . $phpEx);
und

Code: Alles auswählen

// Hole letzte Nachricht von einem Forum mit Fetch_All MOD
$lastpost = ' ';
$CFG['posts_limit'] = 1;
$news = phpbb_fetch_posts($new['newsletter_lastmsgforum']);
	for ($i = 0; $i < count($news); $i++) 
	{
	$lastpost = $news[$i]['post_text'];
	}
in der newsletter_write.php

Code: Alles auswählen

// Import for work with mod fetch_all
include_once ($phpbb_root_path . 'includes/bbcode.' . $phpEx);
include_once ($phpbb_root_path . 'mods/phpbb_fetch_all/common.' . $phpEx);
include_once ($phpbb_root_path . 'mods/phpbb_fetch_all/posts.' . $phpEx);
und

Code: Alles auswählen

// Hole letzte Nachricht von einem Forum mit Fetch_All MOD
$lastpost = ' ';
$CFG['posts_limit'] = 1;


$news = phpbb_fetch_posts($new['newsletter_lastmsgforum']);
	for ($i = 0; $i < count($news); $i++) 
	{
	$lastpost = $news[$i]['post_text'];
	}
rausnehmen.

Natürlich ist es so, dass man das auch drinnen lassen kann, wenn man den Mod "fetch_post" besitzt.

Jetzt zu meinem Problem: Es tut sich nach dem Schreiben des Newsletter ABSOLUT NICHTS. Nach Klicken auf "Absenden" kommt zwar ein neues, leeres Eingabefeld, aber sonst tut siich gar nichts.

Wäre toll, wenn sich jemand von euch mal den Mod ansehen könnte - ob ich nen Fehler gemacht habe, ob der Mod einen Fehler hat und falls ja, ob dieser Fehler leicht zu beheben ist...

Danke im Voraus!!

Verfasst: 25.10.2003 19:29
von Helmut71
*seufz*

Hat keiner Lust den Mod mal durchzutesten?

Dauert nicht lang... :wink:

Verfasst: 26.10.2003 08:05
von Helmut71
ich versuchs einfach nochmal! :roll:

Womit könnte ich jemanden hier animieren, sich den Mod zu installieren und anzusehen?


Der Mod ist in 10 min installiert!

Keine borad-Dateien müssen editiert werden! Die Deinstallation ist also nur ein Mausklick.

Ein Newsletter Mod bringt Vorteile: Gäste, die sich vor einer Registrierung scheuen, besuchen das Board wieder - und registrieren sich vielleicht dann!

Verfasst: 26.10.2003 09:09
von AWSW
Hallo,
ich versuch mich nachher mal damit...

Welche Dateien gelten dabei denn ? Nur die install.txt und wozu sollen dann die Codeschnippsel der lang_main.php´s usw gut sein ?

PS: Vielleicht eine alternative für registrierte User: http://www.phpbb.de/viewtopic.php?t=38861

Verfasst: 26.10.2003 09:49
von AWSW
Hallo,
also lokal funktioniert der komplette MOD bei mir nicht... :roll:

Im Web kann ich User in die Empfänger Liste eintragen und erhalte auch eine Aktivierungsmail usw... Aber ich kann über die newsletter_write.php keine Newsletter erstellen... Außerdem ist offenbar das malume.de und die Images im Code fest verankert und somit nicht übertragbar ;) Wo da aber nun Dein(e) Fehler liegen kann ich Dir bei der komplexen Geschichte leider nicht sagen, da ich den MOD so nicht nachvollziehen kann... :roll:

PS: Die Adminfunktionen sollten vielleicht nur über den admin-Ordner zugreifbar sein... :wink:

Verfasst: 26.10.2003 10:59
von Helmut71
Hi -DANKE!


..dass sich nun doch jemand der Sache angenommen hat! :-) :-)


Das malume.de lässt sich leicht in der lang_main auf deine Bedürfnisse ändern.

Die Adminfunktionen sind bei mir eigentlich auch nur über den Adminlink zugreifbar (für Normaluser nicht).


Mein Fehler ist offenbar der gleiche wie deiner: Ich erstelle einen Newsletter und nichts passiert.

Ich komm nicht tmal genau dahinter, welche die "Send-Funktion" genau ist...

Müsste hier drinnen sein:

Code: Alles auswählen

// Start writing newsletter
if($subject == '' || $message == '' || $group == '')
{
    //message_die(GENERAL_ERROR, $lang['Newsletter_empty']);

    $datum = time();
    $date = date("d.m.Y",$datum);
}

else
{


      //Sum active News_users
      $sql = "SELECT count(*) as total FROM " . NEWSLETTER . " WHERE activation = 1 and cat = '$group'";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Could not obtain Sum', '', __LINE__, __FILE__, $sql);
	}
	if ( !($row = $db->sql_fetchrow($result)) )
	{
		message_die(GENERAL_ERROR, 'Could not obtain sum', '', __LINE__, __FILE__, $sql);
	}
	$sumactusers = $row['total'];




    $datum = time();
    $date = date("d.m.Y", $datum);

    $newsletter_subject = $board_config['newsletter_subject'] . " " . $date;
    $newsletter_subject = $subject;

    $newsletter_message = $newsletter_subject . "\n\n" . stripslashes($message);

    $newsletter_message .= $forum . stripslashes($news) . "\n\n" . $board_config['board_email_sig'];
    

    $newsletter_message .= "\n\n";


    $newsletter = mysql_query("SELECT recipient_mail FROM " . NEWSLETTER . " WHERE activation = '1' and cat = '$group'");

    if ( !($result = $db->sql_query($sql)) )
    {
        message_die(GENERAL_ERROR, "Could not obtain active recipients information.", '', __LINE__, __FILE__, $sql);
    }

    $count = mysql_num_rows($newsletter);

    for($i = 0; $i < $count; $i++)
    {
        $recipient = mysql_result($newsletter, $i, "recipient_mail");

        // Unsubscribe-Link mit Feldern zusammenbauen
       $newsletter_message2 = $newsletter_message;
       $newsletter_message2 .=  $lang['UnsubscribeLink'] . "?email=" . $recipient . "&group=" . $group;

       //Anzahl Newsletter-Empfänger zusammenbauen
       $newsletter_message2 .= "\n\n";
       $newsletter_message2 .=  $lang['Newsletter_SendtoUser'] . " " . $sumactusers . " " . $lang['Newsletter_Recipient'] . ".";

        mail($recipient, $newsletter_subject, $newsletter_message2, "From: " . $board_config['sitename'] . " <" . $board_config['board_email'] . ">");

       
       //Empfänger schreiben
       $sumrecip = $sumrecip . $recipient . "<br>";    


    }



	if($inarchiv == 'yes')

  {
    // Archiving Newsletter
    $subject = addslashes($newsletter_subject);
    $archiv_message =  $newsletter_subject . "<br><br>" . $message;
    $news = addslashes($archiv_message);

    $sql = "INSERT INTO " . NEWSLETTER_ARCHIV . " (subject,news,author,user_id,cat) VALUES ('$subject','$news','$userdata[username]','$userdata[user_id]','$group')";

    if ( !($result = $db->sql_query($sql)) )
    {
        message_die(GENERAL_ERROR, "Could not insert data into newsletter_archiv table.", '', __LINE__, __FILE__, $sql);
    }
    //
   }

    message_die(GENERAL_MESSAGE, $lang['Newsletter_submitted'] ."<br>" . $sumrecip . "<br>" . $lang['SumActUsers'] . " " . $sumactusers);

   
}
// End writing Newsletter



// Deleting inactive recipients after x days (defined in config_table)
/*$sql = "DELETE FROM " . NEWSLETTER . " WHERE activation = '0' AND expire = time()-$board_config[inactive_days]";

if ( !($result = $db->sql_query($sql)) )
{
    message_die(GENERAL_ERROR, "Could not delete inactive recipients.", '', __LINE__, __FILE__, $sql);
}*/
//



//Zeigen Gruppen für Sendeauswahl an
$select = '<select name="group">';
$sql = "SELECT name, id, descr, phpforum_id from " . NEWSLETTER_CAT_TABLE . " ";
$result = $db->sql_query($sql);
while ( $row = $db->sql_fetchrow($result) )
{
//	$selected = '';
//	if ($row['id']==1) $selected='selected';
	$select .= '<option value=' . $row['name'] . ' ' . $selected . '>' . $row['descr'] . '</option>';
}
$select .= '</select>';






//Zeige Forumname neben Forum-ID an.
$forumname=' ';
$forumnbr = $new['newsletter_lastmsgforum'];
$sql = "SELECT forum_name from " . FORUMS_TABLE . " where forum_id = '$forumnbr'";
$result = $db->sql_query($sql);
while ( $row = $db->sql_fetchrow($result) )
{
	$forumname = $row['forum_name'];
   
}




// Output page header
$page_title = $lang['Newsletter_Write'];

include($phpbb_root_path . 'includes/page_header.'.$phpEx);

Newsletter funzzt !!

Verfasst: 27.10.2003 10:15
von Schnoeppi
Der Newsletter funktioniert nur, wenn auch Einträge in der newsletter_cat Datei vorhanden sind.

Dies sind die Gruppen, wofür sich ein Benutzer registrieren kann. Innerhalb des Newsletter-Versands ist es zwingend erforderlich, das zumindest eine Gruppe vorhanden ist :wink: .

Achtet aber auch darauf, dass es Benutzer für die entsprechenden Gruppen gibt. Es muss sich also ein Benutzer für eine GRUPPE anmelden.

Ein Eintrag in die newsletter_cat kann durch folgenden SQL-Befehl erreicht werden:

INSERT INTO `phpbb_newsletter_cat` VALUES (1, 'TextNewslr1', 'newsl1', 0);
INSERT INTO `phpbb_newsletter_cat` VALUES (2, 'Newsletter 2', 'newsl2', 0);
INSERT INTO `phpbb_newsletter_cat` VALUES (3, 'Newsletter 3', 'newsl3', 0);


Für die Benutzung mit dem Mod FECHT-ALL, muss die 0 in die PHPBB-Froumnummer geändert werden geändert werden, aus der dann die letzte Nachricht aus dem Forum in den Nachrichtentext übernommen werden soll.

INSERT INTO `phpbb_newsletter_cat` VALUES (4, 'Newsletter 4', 'newsl4', 12);

wobei nun die 12 das Forum mit der Nummer 12 innerhalb des PHBB's ist...

So sollte der Mod dann nun auch funktionieren...


Um einem Besucher direkt eine feste Gruppe bei der Newsletter Anmeldung zuzuweisen, kann im Anmeldeformular ein verstecktes Feld eingebaut werden, das die Gruppe beinhaltet...

<form method="POST" action="http://www.domain.de/phpBB2/newsletter_subscribe.php">
<br><table border="0" cellpadding="0" cellspacing="0" bgcolor="#ffffff">
<tr>
<td valign="top"><span class="normal"><b>Ihr Name</b></span></td>
<td valign="top"><input class="normal" style="width: 397px;" size="30" type="text" name="name" value="Dein Name"><br></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>
<br>
</td>
</tr>

<input type="hidden" name="group" value="newsl1">
<tr>
<td valign="top"><span class="normal"><b>Deine eMail Adresse</b></span></td>
<td valign="top"><input class="normal" style="width: 397px;" size="30" type="text" name="email" value="email@dresse.de"><br></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>
<p>Gib hier Deine E-Mail Adresse an und sende die Anfrage ab. Es wird dann umgehend eine E-Mail an Deine eingegebene Adresse gesendet um die Anfrage zu best&auml;tigen. Wir werden Dich dann immer &uuml;ber Updates und Neuerungen auf dem laufenden halten.
<br>
</p>
</td>
</tr>

<tr>
<td valign="top">&nbsp;</td>
<td valign="top"><input type="radio" name="action" value="Anmelden" checked>&nbsp;<span class="normal">Ich m&ouml;chte den [xyz Newsletter] abonnieren<br></span></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>
<br>
</td>
</tr>


<tr>
<td valign="top">&nbsp;</td>
<td valign="top"><input type="radio" name="action" value="Abmelden" >&nbsp;<span class="normal">Ich m&ouml;chte den [xyz Newsletter] abbestellen<br></span></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>
<br>
</td>
</tr>


<tr>
<td><img src="http://www.domain.de/images/bestellen.gif" width="120" height="1" alt="" border="0"></td>
<td align="left"><input type="image" border="0" src="http://www.domain.de/images/abbestellen.gif" usemap="0"></td>
</tr>
</table>

</form>



Viel Spaß mit dem Newsletter-Mod...
Schnoeppi

Neuste Version des MOD's fertiggestellt

Verfasst: 28.10.2003 22:29
von Schnoeppi
Guten Abend php-Gemeinde.
In der neuen Version des Newsletters wurden die hier beschriebenen Änderungen in die Installationsanleitung eingearbeitet :D . Ebenfalls wurde der Mod an den FETCH_ALL 2.0.3 angepasst.

Der Mod kann unter http://www.malume.de/cgi-bin/dtrack.cgi ... tter_2.zip
geladen werden.
Viel Spaß damit...

Verfasst: 26.01.2005 18:44
von jörg gierth
Hi.
ich habe diesen mod installiert und er lief bis zum Update auf die
phpBB-Version 2.11 sehr gut , aber nun habe ich Probleme damit.
Er funtioniert nicht mehr, weiss jemand warum???

Gruß Jörg

Verfasst: 28.02.2005 17:53
von Helmut71
Hallo Jörg!

Mir gehts genauso...seit dem update funktioniert der Mod nicht mehr und bei "absenden" tut sich absolut nichts mehr.

Dies kann eigentlich nur mit der newsletter_write.php zusammenhängen.
Ich poste die mal komplett rein..vielleicht fällt ja einem phpbb-Profi auf Anhieb etwas auf.

Wäre SEHR wichtig für mich, da ich einen Newsletter für einen mittelgroßen Ort verwalte...und da jetzt GR Wahlen anstehen und wichtige Infos raus müssen..also danke ich schon mal im voraus für eure Hilfe!!
<?php
/***************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
***************************************************************************/
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);




//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_NEWSLETTER);
init_userprefs($userdata);
//
// End session management
//

if ( !$userdata['session_logged_in'] )
{
header('Location: ' . append_sid("login.$phpEx?redirect=newsletter_write.$phpEx", true));
exit;
}

if ((!$userdata['user_level']==ADMIN) || (!$userdata['user_level']==LESS_ADMIN))
{
message_die(GENERAL_MESSAGE, $lang['Not_Allowed']);
}


// Start Template-Settings
$template->set_filenames(array(
"body" => "newsletter_write_body.tpl")
);
// End Template-Settings


// Start writing newsletter
if($subject == '' || $message == '' || $group == '')
{
//message_die(GENERAL_ERROR, $lang['Newsletter_empty']);

$datum = time();
$date = date("d.m.Y",$datum);
}

else
{


//Sum active News_users
$sql = "SELECT count(*) as total FROM " . NEWSLETTER . " WHERE activation = 1 and cat = '$group'";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain Sum', '', __LINE__, __FILE__, $sql);
}
if ( !($row = $db->sql_fetchrow($result)) )
{
message_die(GENERAL_ERROR, 'Could not obtain sum', '', __LINE__, __FILE__, $sql);
}
$sumactusers = $row['total'];




$datum = time();
$date = date("d.m.Y", $datum);

$newsletter_subject = $board_config['newsletter_subject'] . " " . $date;
$newsletter_subject = $subject;

$newsletter_message = $newsletter_subject . "\n\n" . stripslashes($message);

$newsletter_message .= $forum . stripslashes($news) . "\n\n" . $board_config['board_email_sig'];


$newsletter_message .= "\n\n";


$newsletter = mysql_query("SELECT recipient_mail FROM " . NEWSLETTER . " WHERE activation = '1' and cat = '$group'");

if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, "Could not obtain active recipients information.", '', __LINE__, __FILE__, $sql);
}

$count = mysql_num_rows($newsletter);

for($i = 0; $i < $count; $i++)
{
$recipient = mysql_result($newsletter, $i, "recipient_mail");

// Unsubscribe-Link mit Feldern zusammenbauen
$newsletter_message2 = $newsletter_message;
$newsletter_message2 .= $lang['UnsubscribeLink'] . "?email=" . $recipient . "&group=" . $group;

//Anzahl Newsletter-Empfänger zusammenbauen
$newsletter_message2 .= "\n\n";
$newsletter_message2 .= $lang['Newsletter_SendtoUser'] . " " . $sumactusers . " " . $lang['Newsletter_Recipient'] . ".";

mail($recipient, $newsletter_subject, $newsletter_message2, "From: " . $board_config['sitename'] . " <" . $board_config['board_email'] . ">");


//Empfänger schreiben
$sumrecip = $sumrecip . $recipient . "<br>";


}



if($inarchiv == 'yes')

{
// Archiving Newsletter
$subject = addslashes($newsletter_subject);
$archiv_message = $newsletter_subject . "<br><br>" . $message;
$news = addslashes($archiv_message);

$sql = "INSERT INTO " . NEWSLETTER_ARCHIV . " (subject,news,author,user_id,cat) VALUES ('$subject','$news','$userdata[username]','$userdata[user_id]','$group')";

if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, "Could not insert data into newsletter_archiv table.", '', __LINE__, __FILE__, $sql);
}
//
}

message_die(GENERAL_MESSAGE, $lang['Newsletter_submitted'] ."<br>" . $sumrecip . "<br>" . $lang['SumActUsers'] . " " . $sumactusers);


}
// End writing Newsletter



// Deleting inactive recipients after x days (defined in config_table)
/*$sql = "DELETE FROM " . NEWSLETTER . " WHERE activation = '0' AND expire = time()-$board_config[inactive_days]";

if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, "Could not delete inactive recipients.", '', __LINE__, __FILE__, $sql);
}*/
//



//Zeigen Gruppen für Sendeauswahl an
$select = '<select name="group">';
$sql = "SELECT name, id, descr, phpforum_id from " . NEWSLETTER_CAT_TABLE . " ";
$result = $db->sql_query($sql);
while ( $row = $db->sql_fetchrow($result) )
{
// $selected = '';
// if ($row['id']==1) $selected='selected';
$select .= '<option value=' . $row['name'] . ' ' . $selected . '>' . $row['descr'] . '</option>';
}
$select .= '</select>';






//Zeige Forumname neben Forum-ID an.
$forumname=' ';
$forumnbr = $new['newsletter_lastmsgforum'];
$sql = "SELECT forum_name from " . FORUMS_TABLE . " where forum_id = '$forumnbr'";
$result = $db->sql_query($sql);
while ( $row = $db->sql_fetchrow($result) )
{
$forumname = $row['forum_name'];

}




// Output page header
$page_title = $lang['Newsletter_Write'];

include($phpbb_root_path . 'includes/page_header.'.$phpEx);

// Begin Templates - Main
$template->assign_vars(array(
'PAGE_TITLE' => $lang['Newsletter_Write'],
'SUBJECT' => sprintf($board_config['newsletter_subject'] . "&nbsp;" . $date),
'INACTIVE_DAYS' => $new['inactive_days'],
'NEWSLETTER_SUBJECT' => $new['newsletter_subject'],
'NEWSLETTER_LASTMSGFORUM' => $new['newsletter_lastmsgforum'],
'M_FORUM' => $forumname,
'LASTNEWS' => $lastpost,
'S_GROUP_SELECT' => $select,
'L_ACTIVE_RECIPIENTS' => $lang['Active_Recipients'],
'L_INACTIVE_RECIPIENTS' => $lang['Inactive_Recipients'],
'L_NEWSLETTER_CONFIG' => $lang['Newsletter_Config'],
'L_NEWSLETTER_SUBJECT' => $lang['Newsletter_Subject'],
'L_NEWSLETTER_SUBJECT_EXPLAIN' => $lang['Newsletter_Subject_Explain'],
'L_INACTIVE_DAYS' => $lang['Inactive_Days'],
'L_INACTIVE_DAYS_EXPLAIN' => $lang['Inactive_Days_Explain'],
'L_NEWSLETTER_LASTMSGFORUM' => $lang['Newsletter_LastmsgForum'],
'L_NEWSLETTER_LASTMSGFORUM_EXPLAIN' => $lang['Newsletter_LastmsgForum_Explain'],
'L_EMAIL' => $lang['Email'],
'L_NAME' => $lang['Name'],
'L_SUBJECT' => $lang['Subject'],
'L_DELETE' => $lang['Delete'],
'L_POST_NEWSLETTER' => $lang['Post_Newsletter'],
'L_DATE' => $lang['Date'],
'L_RESET' => $lang['NewsReset'],
'M_UPDATE' => $lang['MessUpdate'],
'L_SUBMIT' => $lang['Submit'],
'L_NEWS' => $lang['News'],
'L_GROUP' => $lang['NewsGroup'],
'S_CONFIG_ACTION' => append_sid("newsletter_admin.$phpEx"),
'S_SEND_ACTION' => append_sid("newsletter_write.$phpEx"),
'L_NEWS_INARCHIV' => $lang['NewsInArchiv'],
'L_NEWS_YES' => $lang['News_Yes'],
'L_NEWS_NO' => $lang['News_No'],

'U_INDEX' => append_sid("index.$phpEx"),
'L_PORTAL' => sprintf($lang['Forum_Index'], $board_config['sitename']),
'U_ADMIN' => append_sid("newsletter_admin.$phpEx"),
'L_ADMIN' => $lang['Newsletter_Admin'],
'U_ARCHIV' => append_sid("newsletter_archiv.$phpEx"),
'L_ARCHIV' => $lang['Newsletter_Archiv'],
'U_WRITE' => append_sid("newsletter_write.$phpEx"),
'L_WRITE' => $lang['Newsletter_Write'],
'U_USER' => append_sid("newsletter_user.$phpEx"),
'L_USER' => $lang['Newsletter_User'] )
);
// End Templates - Main



//
// Set other Template-Variables
$template->pparse('body');
// Set other Template-Variables
//

include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>
*update* Eintragen kann sich auch keiner mehr hab ich grade bemerkt *hilfe*