Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Regestrierung Mail an den Admin und Regestrierten.
#11
Die Einstellungen werden mit der Funktion aktualisiert. Eine Fehlfunktion erkennt man an der Fehlermeldung.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#12
Hi Leutz,
das Plugin "E-Mail-Benachrichtigung bei Registrierung" hab ich mit der Folgenden Anleitung unter 1.4 hinbekommen: http://community.mybboard.net/thread-24122.html (wenn gewünscht, lad ich die aktuallisierte Version hier hoch)

leider funst das nicht bei dem anderen "E-Mail an Benutzer nach Aktivierung" nicht... wo liegt der Fehler im geänderten Code?:

PHP-Code:
<?php
/*
Plugin "E-Mail an Benutzer nach Aktivierung 1.1"
(c) 2007 by A&A-Anglerforum (Wassermann)
Website: http://www.aa-anglerforum.de
PlugIn geschrieben für MyBBoard Version 1.2.x (getestet mit V1.2.7)
Dieses PlugIn darf, auf eigene Gefahr und ohne jegliche Gewährleistung
unsererseits, benutzt und verbreitet werden.
*/

// MyBB-Hooks, an denen das PlugIn ausgeführt werden soll
$plugins->add_hook("member_activate_accountactivated""member_activation_mail_user"); // bei Aktivierung durch User
$plugins->add_hook("admin_users_activate""member_activation_mail_admin"); // bei Aktivierung durch Admin

// Infos für den MyBB-Plugin-Manager
function member_activation_mail_info()
{
    return array(
        
"name"            => "E-Mail an Benutzer nach Aktivierung",
        
"description"    => "Sendet einem Benutzer nach erfolgreicher Aktivierung eine E-Mail mit wählbarem Text.<br /><small>In Betreff und E-Mail dürfen auch Platzhalter verwendet werden.</small>",
        
"website"        => "http://forum.aa-anglerforum.de",
        
"author"        => "A&amp;A-Anglerforum (Wassermann)",
        
"authorsite"    => "http://www.aa-anglerforum.de",
        
"version"        => "1.1",
    );
}

// Aktivierung des PlugIns
function member_activation_mail_activate()
{
  global 
$db;

  
// Einstellungsgruppe ins ACP hinzufügen
    
$activation_mail_group = array(
        
"gid" => "NULL",
        
"name" => "E-Mail an Benutzer nach Aktivierung",
        
"title" => "E-Mail an Benutzer nach Aktivierung",
        
"description" => "",
        
"disporder" => "1",
        
"isdefault" => "no",
        );
    
$db->insert_query("settinggroups"$activation_mail_group);
    
$gid $db->insert_id();

    
// Einstellungen hinzufügen
    
$activmail_1 = array(
        
"sid" => "NULL",
        
"name" => "activmail_onoff",
        
"title" => "Aktivierung/Deaktivierung",
        
"description" => "Sollen E-Mails an Benutzer nach deren Aktivierung verschickt werden?",
        
"optionscode" => "yesno",
        
"value" => "no",
        
"disporder" => "1",
        
"gid" => intval($gid),
        );
    
$db->insert_query("settings"$activmail_1);

    
$activmail_2 = array(
        
"sid" => "NULL",
        
"name" => "activmail_email_betreff",
        
"title" => "Email-Betreff",
        
"description" => "Betreff der E-Mail<br /><small>Du kannst {uid}, {username}, {email}, {bbname}, {bburl} und {regip} als Platzhalter benutzen.</small>",
        
"optionscode" => "text",
        
"value" => "Das ist der E-Mail-Betreff",
        
"disporder" => "2",
        
"gid" => intval($gid),
        );
    
$db->insert_query("settings"$activmail_2);

    
$activmail_3 = array(
        
"sid" => "NULL",
        
"name" => "activmail_email_text",
        
"title" => "Email-Inhalt",
        
"description" => "Text-Inhalt der E-Mail<br /><small>Du kannst {uid}, {username}, {email}, {bbname}, {bburl} und {regip} als Platzhalter benutzen.</small>",
        
"optionscode" => "textarea",
        
"value" => "Das ist der E-Mail-Text",
        
"disporder" => "3",
        
"gid" => intval($gid),
        );
    
$db->insert_query("settings"$activmail_3);

    
// settings.php aktualisieren (PlugIn-Einstellungen hinzufügen)
    
rebuild_settings();
}

// Deaktivierung des PlugIns
function member_activation_mail_deactivate()
{
  global 
$db;

  
// Einstellungsgruppen löschen
    
$query $db->query("SELECT gid FROM ".TABLE_PREFIX."settinggroups WHERE name='E-Mail an Benutzer nach Aktivierung'");
    
$g $db->fetch_array($query);
    
$db->query("DELETE FROM ".TABLE_PREFIX."settinggroups WHERE gid='".$g['gid']."'");

    
// Einstellungen löschen
    
$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE gid='".$g['gid']."'");

    
// settings.php aktualisieren (PlugIn-Einstellungen entfernen)
    
rebuild_settings();
}

// ------------------------
//  Funktionen des PlugIns
// ------------------------

// Aktivierung durch User
function member_activation_mail_user()
{
  global 
$mybb;

  if (
$mybb->settings['activmail_onoff'] != "no")
  {
    
$act_uid intval($mybb->user['uid']);

    
member_activation_mail($act_uid);
  }
}

// Aktivierung durch Admin
function member_activation_mail_admin()
{
  global 
$mybb;

  if (
$mybb->settings['activmail_onoff'] != "no")
  {
    
$act_uid intval($mybb->input['uid']);

    
member_activation_mail($act_uid);
  }
}

// Hauptfunktion
function member_activation_mail($act_uid)
{
  global 
$mybb$db;

  
$query $db->query("SELECT username, email, regip FROM ".TABLE_PREFIX."users WHERE uid = ".$act_uid."");
  
$emaildata $db->fetch_array($query);

  
// Behandlung der Platzhalter
  
$placeholder = array("{uid}""{username}""{email}""{bbname}""{bburl}""{regip}");
  
$replace = array($act_uid,$emaildata['username'],$emaildata['email'],$mybb->settings['bbname'],$mybb->settings['bburl'],$emaildata['regip']);
  
$betreff str_replace($placeholder,$replace,$mybb->settings['activmail_email_betreff']);
  
$mailtext str_replace($placeholder,$replace,$mybb->settings['activmail_email_text']);

  
// Mail wird versendet
  
my_mail("".$emaildata['email']."""".$betreff."""".$mailtext."");

}

// Einstellungen aktualisieren
if(!function_exists("rebuild_settings"))
{
    function 
rebuild_settings()
    {
        global 
$db;
        
$query $db->query("SELECT * FROM ".TABLE_PREFIX."settings ORDER BY title ASC");
        while(
$setting $db->fetch_array($query))
        {
            
$setting['value'] = addslashes($setting['value']);
            
$settings .= "\$settings['".$setting['name']."'] = \"".$setting['value']."\";\n";
        }
        
$settings "<?php\n/*********************************\ \n  DO NOT EDIT THIS FILE, PLEASE USE\n  THE SETTINGS EDITOR\n\*********************************/\n\n$settings\n?>";
        
$file fopen(MYBB_ROOT."/inc/settings.php""w");
        
fwrite($file$settings);
        
fclose($file);
    }
}
?>

Danke schonmal für eure Hilfe!

Gruß
Falke

EDIT: es kommen keine Fehlermeldungen, nur die Mail wird nicht versendet...
Nochmal EDIT: es geht um die aktuelle Foren - Version 1.4 .... glaub das Posting müsste verschoben werden, sorry!
Zitieren
#13
Hi,

ich habe das Plugin geschrieben. Ich bin auch gerade am Umschreiben für die 1.4er. Ich habe es in etwas so, wie du oben. Ich bin mir nicht ganz sicher, ob beide Hooks noch existieren, speziell "admin_users_activate"...

Falls jemand mehr weiß, würde ich mich natürlich auch über eine Info freuen. Soviel dürfte am Plugin eigentlich nicht falsch sein...

Gruß
Boardie05
Zitieren
#14
Im Anhang meine Überarbeitung. Getestet. Bei mir funktionierts. Wink


Angehängte Dateien
.php   email_new_member.php (Größe: 3,87 KB / Downloads: 24)
Zitieren
#15
Im Anhang mal der aktuelle Stand meines Aktualisierungsversuches. Ich habe mich jetzt erst einmal auf den Fall beschränkt, dass der User sich selbst aktiviert. Hier stimmt der Hook auf jeden Fall noch. Die Funktion "member_activation_mail_user()" wird auch aufgerufen. So sieht die Funktion aus:
PHP-Code:
// Aktivierung durch User
function member_activation_mail_user()
{
  global 
$mybb;

  if (
$mybb->settings['activmail_onoff'] != 0)
  {
    
$act_uid intval($mybb->user['uid']);

    
member_activation_mail($act_uid);
  }


In dieser Funktion soll mittels
PHP-Code:
$act_uid intval($mybb->user['uid']); 
die User-ID des Users ermittelt werden, der sich gerade selbst aktiviert hat.
Genau an dieser Stelle ist der Haken. Die Ermittlung der User-ID durch diese Zeile funktioniert nicht. Da hat sich etwas von MyBB 1.2 zu MyBB 1.4 verändert. Ich habe testweise einmal eine bekannte User-ID "hardkodiert" eingesetzt, mit dem Ergebnis, dass die Mail an diesen User zugestellt wurde.

Falls jemand also weiß, wie man die aktuelle User-ID des Users ermittelt, der sich gerade aktiviert, dann wäre es nett, wenn er es nicht für sich behältWink

Gruß
Boardie05


Angehängte Dateien
.php   member_activation_mail.php (Größe: 5,96 KB / Downloads: 8)
Zitieren
#16
Die Variable ist definitiv unverändert.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#17
Danke für die AW's!

Währ genial, wenn das "E-Mail an Benutzer nach Aktivierung 1.1" noch jmd. hinbekommt! Big Grin


Gruß
Falke
Zitieren
#18
meine aktuelle Übergangslösung (zu Mail an Benutzer nach Aktivierung) ist nicht besonders kreativ, aber einfacher, als die Mails "per Hand" zu tippen:
hab ein Kontaktformular angepasst... man muss nur Nick und Mailadresse rüberkopieren & fertsch:

den folgenden Code z.B. unter account_aktiv.php speichern...
PHP-Code:
<Html>
 <
head>
  <
title>Account wurde Aktiviert</title>
  <
meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
 </
head>
<
body style="background-color:#ADADAD;">
<!--
Inhalt der Seite:-->

<
div align="center">
<
TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0>
   <
TR>
          <
td align="center">
<
br><h1 style="text-align:center;">Hinweis MailAccount freigeschalten</h1>
          </
td>
    <
tr>
    <
td>
<?
php

function check_email($email){ //Emailadresse pr&uuml;fen (Keine Umlaute etc.)
if( !preg_match("/^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}|museum$/i"$email) )  return true;
return 
false;
}

if (
$flag==1//Wenn das Fromular ausgef&uuml;llt wurde.
{
    
//Die Eingaben pr&uuml;fen
    
if(!$namer){$fehler="Bitte Namen eingeben<br>";}
    if(
check_email($email) & $email!="") {$fehler.="Emailadresse ist ungültig<br>";}
    if(!
$email) {$fehler.="Bitte die Emailadresse eingeben<br>";}

    if(
$fehler//Bei Fehlern, Meldung ausgeben
    
{
        
$meldung="<b>" .$fehler"</b>";
        unset(
$flag);
        echo 
"<font color='red'><br> " .$meldung"</font>";
    }
    else 
//Wenn es keine Fehler gibt kann ja gemailt werden.
    
{
$text="Hallo $namer,
dein Account wurde freigeschalten.

Wir wünschen dir viel Spass in unserem Forum!

Gruß
Forenteam
"
;

       
//Nun kann gemailt werden
       
mail ($email"Forum: Account aktiviert"$text"From:Forum - No-Reply");
       echo 
"<br>Die Mail wurde gesendet.";
    }
}

if(!
$flag//Formular noch nicht abgesendet
{

        
?>
      <form action='<? echo $PHP_SELF; ?>' method='post' enctype='multipart/form-data' name='form' id="form">
          <input type="hidden" name="flag" id="flag" value=1>
          <input type="hidden" name="text" id="text" value="<?php echo $text;?>">
          <center>
        <table>
          <tr><td>
                <table>
        <tr>
          <td style="text-align:right;">Name:</td>
          <td>
            <input name="namer" type="text" id="namer" size="40" value='<?php echo $namer?>'>
                  </td>
        </tr>
        <tr>
          <td style="text-align:right;">Emailadresse:</td>
          <td>
                    <input name="email" type="text" id="email" size="40" value='<?php echo $email?>'>
                  </td>
        </tr>
        <tr>
          <td colspan="2" align="center"><br><input type="submit" name="Submit" value="Abschicken" style="font-weight: bold; font-size: 12.3pt;">
          </td>
        </tr>
    </table>
        </td></tr>
        </table>
          </center>

      </form>
      <?php
      
}
  
?>
    </TD>
   </TR>
</TABLE></div>
<hr>
<h2>Text:</h2><br><br>
<div align="left">Hallo... ,<br>
dein Account wurde freigeschalten.
<br><br>
Wir wünschen dir viel Spass in unserem Forum!
<br><br><br>
Gruß<br>
Forenteam<br>
</div>


<!--Ende Inhalt der Seite-->
</body>
</html> 


Gruß
Falke
Zitieren
#19
Anyone speak English that could help me?
Zitieren
#20
Please visit the English forum: http://community.mybboard.net/
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  regestrierung xplay 4 2.088 24.09.2008, 16:01
Letzter Beitrag: xplay