ilch Forum » Ilch Clan 1.1 » Module und Modifikationen » eine PM an mehrere User

Geschlossen
  1. #1
    User Pic
    samo Mitglied
    Registriert seit
    06.10.2005
    Beiträge
    228
    Beitragswertungen
    0 Beitragspunkte
    Guten Morgen,

    nicht das was ihr jetzt denkt, ich weiß das ich ein Newsletter schreiben kann an einzelne Gruppen.
    Aber wenn ein regestrieter User ein PM an mehrere Member schicken will, dann gehts ja nur wenn man die Xmal schreibt und jedesmal einzeln versendet.
    Hat da jemand eine Idee, so wie ich das sehe müsste, man die pm komplett umschreiben, oder lieg ich da falsch?

    samo
    Ain't no use running, fool! I know where your mama parks your house
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    s_down Mitglied
    Registriert seit
    11.04.2005
    Beiträge
    1.194
    Beitragswertungen
    0 Beitragspunkte
    hm.. ist gerade ein bischen kompliziert um das schnell zu machen.
    Aber eigentlich sollte es möglich sein den Code so zu ändern, dass es Möglich wird die Namen mit nem Komma oder so zu trennen.
    Hat gerade jemand Zeit für so was?
    Probleme mit dem installieren?
    externer Link
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Nicht unbedingt, mann muss halt sagen, dass die Namen durch irgendein Zeichen getrennt werden, dann die Namen in ein Array schreiben und mit einer for schleife die PMs versenden.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    s_down Mitglied
    Registriert seit
    11.04.2005
    Beiträge
    1.194
    Beitragswertungen
    0 Beitragspunkte
    Ansatz:
            
    $name = escape($_POST['name'], 'string');
    $namenarray = explode(",", $namen);
    foreach($namenarray as $namen)


    Problem ist einfach das das einlesen am Anfang und das versenden am Ende des Case ist....
    Probleme mit dem installieren?
    externer Link
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Also ich habe es auf meiner Testpage mal kurz getestet.
    So hat es soweit funktioniert:

    foreach ($namensarray as $name1)
            if (1 == db_result(db_query("SELECT count(*) FROM prefix_user WHERE name = BINARY '".$name1."'"),0)) {
              if ($show_formular != true) $show_formular = false;
            } else {
              echo 'Der Empf&auml;nger '.$name1.' konnte nicht gefunden werden<br />';
              $show_formular = true;
            }

    $tpl->set_ar_out($ar,0);
          } else {
            foreach ($namensarray as $name1) {
            $eid  = db_result(db_query("SELECT id FROM prefix_user WHERE name = BINARY '".$name1."'"),0);					
    				sendpm($_SESSION['authid'], $eid, $bet, $txt);}
    		    if (count($namensarray) > 1) {$plur1 = 'en'; $plur2 = 'n';}
            wd('index.php?forum-privmsg','Die Nachricht'.$plur1.' wurde'.$plur2.' erfolgreich gesendet'); 
          }


    Das ist sicherlich sehr performancefeindlich, aber mit MYSQL kenne ich mich nicht aus.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    samo Mitglied
    Registriert seit
    06.10.2005
    Beiträge
    228
    Beitragswertungen
    0 Beitragspunkte
    tja scheinbar mach ich was falsch, bei klapps nicht wirklich.
    Vllt. hab ich auch was falsch gemacht. Aber er schickt nichts ab, sondern kann die User nicht finden.

    aber danke schon mal

    samo
    Ain't no use running, fool! I know where your mama parks your house
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    So nochmal komplett, ich hatte irgendwie anscheinend nicht alles kopiert (war in Eile und musste los)
    switch ( $uum ) {
    case 'new' :
    		  # neue pm schreiben und eintragen
          $show_formular = true;
          $txt = '';
          $bet = '';
          
          if (isset($_POST['sub'])) {
    				$txt  = escape($_POST['txt'], 'textarea');
            $bet  = escape($_POST['bet'], 'string');
            $name = escape($_POST['name'], 'string');
            $namensarray = explode(',', $name);        
            foreach ($namensarray as $name1)
            if (1 == db_result(db_query("SELECT count(*) FROM prefix_user WHERE name = BINARY '".$name1."'"),0)) {
              if ($show_formular != true) $show_formular = false;
            } else {
              echo 'Der Empf&auml;nger '.$name1.' konnte nicht gefunden werden';
              $show_formular = true;
            }
          }
          
          if ($show_formular === true) {
            $name = '';
            $empfid = 0;
            if (isset($_REQUEST['empfid'])) {
              $empfid = escape($_REQUEST['empfid'],'integer');
            }
            $empfid = escape($empfid, 'integer');
            if ($empfid > 0) {
              $name = db_result(db_query("SELECT name FROM prefix_user WHERE id = ".$empfid),0);
            }
            $ar = array (
    				  'name'    => $name,
    		      'SMILIES' => getsmilies(),
              'TXT'     => $txt,
              'BET'     => $bet,
    				);
    
    				if (isset($_REQUEST['text'])) {
              $ar['TXT'] = unescape(escape($_REQUEST['text'], 'textarea'));
            }
            if (isset($_REQUEST['anhang'])) {
              $x = explode("n", unescape(escape(urldecode($_REQUEST['anhang']), 'textarea')));
              $n = '';
              for ($i=0; $i<=count($x); $i++) {
                if (empty($x[$i])) { continue; }
                $n .= '> '.$x[$i]."n";
              }
              $ar['TXT'] .= "nn".$n;
            }
    				if (isset($_POST['bet'])) {
              $ar['BET'] = unescape(escape($_REQUEST['bet'], 'string'));
            }
            if (isset($_POST['re']) AND strpos ($ar['BET'],'re') === FALSE AND strpos ($ar['BET'],'Re') === FALSE AND strpos ($ar['BET'],'RE') === FALSE) {
              $ar['BET'] = 'Re(1): '.$ar['BET'];
            } elseif (isset($_POST['re'])) {
              $x = preg_replace("/re((d+)):.*/i", "\1", trim($ar['BET']));
              if (is_numeric($x)) {
                $x = $x+1;
                $ar['BET'] = preg_replace("/(re)(d+):(.*)/i", "\1(".$x."):\2", $ar['BET']);
              }
            }
            
    				$tpl = new tpl ( 'forum/pm/new' );
    		    $tpl->set_ar_out($ar,0);
          } else {
            foreach ($namensarray as $name1) {
            $eid  = db_result(db_query("SELECT id FROM prefix_user WHERE name = BINARY '".$name1."'"),0);					
    				sendpm($_SESSION['authid'], $eid, $bet, $txt);}
    		    if (count($namensarray) > 1) {$plur1 = 'en'; $plur2 = 'n';}
            wd('index.php?forum-privmsg','Die Nachricht'.$plur1.' wurde'.$plur2.' erfolgreich gesendet'); 
          }
      break;



    Zuletzt modifiziert von Mairu am 25.10.2006 - 18:49:26
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    samo Mitglied
    Registriert seit
    06.10.2005
    Beiträge
    228
    Beitragswertungen
    0 Beitragspunkte
    Kann es seien, das da noch ein Fehler drin ist, bei mir findet er immer noch nicht den 2. Empfänger.
    Ain't no use running, fool! I know where your mama parks your house
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Bei mir gings, es dürfen natürlich keine Leerzeichen benutzt werden, da diese dann mit zum Namen zählen und er den User nicht finden wird.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    samo Mitglied
    Registriert seit
    06.10.2005
    Beiträge
    228
    Beitragswertungen
    0 Beitragspunkte
    Also hab noch ein bisschen getestet, mußte noch was rausnehmen, aber jetzt klappts, super.
    Vielen Dank.

    Hier mein geänderter Code

    $uum = $menu->get(2);
    switch ( $uum ) {
    case 'new' :
              # neue pm schreiben und eintragen
          $show_formular = true;
          $txt = '';
          $bet = '';
          
          if (isset($_POST['sub'])) {
                    $txt  = escape($_POST['txt'], 'textarea');
            $bet  = escape($_POST['bet'], 'string');
            $name = escape($_POST['name'], 'string');
            $namensarray = explode(',', $name);        
            foreach ($namensarray as $name1)
            if (1 == db_result(db_query("SELECT count(*) FROM prefix_user WHERE name = BINARY '".$name1."'"),0)) {
               $show_formular = false;
            } else {
              echo 'Der Empf&auml;nger '.$name1.' konnte nicht gefunden werden';
             
            }
          }
          
          if ($show_formular === true) {
            $name = '';
            $empfid = 0;
            if (isset($_REQUEST['empfid'])) {
              $empfid = escape($_REQUEST['empfid'],'integer');
            }
            $empfid = escape($empfid, 'integer');
            if ($empfid > 0) {
              $name = db_result(db_query("SELECT name FROM prefix_user WHERE id = ".$empfid),0);
            }
            $ar = array (
                      'name'    => $name,
                  'SMILIES' => getsmilies(),
              'TXT'     => $txt,
              'BET'     => $bet,
                    );
    
                    if (isset($_REQUEST['text'])) {
              $ar['TXT'] = unescape(escape($_REQUEST['text'], 'textarea'));
            }
            if (isset($_REQUEST['anhang'])) {
              $x = explode("n", unescape(escape(urldecode($_REQUEST['anhang']), 'textarea')));
              $n = '';
              for ($i=0; $i<=count($x); $i++) {
                if (empty($x[$i])) { continue; }
                $n .= '> '.$x[$i]."n";
              }
              $ar['TXT'] .= "nn".$n;
            }
                    if (isset($_POST['bet'])) {
              $ar['BET'] = unescape(escape($_REQUEST['bet'], 'string'));
            }
            if (isset($_POST['re']) AND strpos ($ar['BET'],'re') === FALSE AND strpos ($ar['BET'],'Re') === FALSE AND strpos ($ar['BET'],'RE') === FALSE) {
              $ar['BET'] = 'Re(1): '.$ar['BET'];
            } elseif (isset($_POST['re'])) {
              $x = preg_replace("/re((d+)):.*/i", "\1", trim($ar['BET']));
              if (is_numeric($x)) {
                $x = $x+1;
                $ar['BET'] = preg_replace("/(re)(d+):(.*)/i", "\1(".$x."):\2", $ar['BET']);
              }
            }
            
                    $tpl = new tpl ( 'forum/pm/new' );
                $tpl->set_ar_out($ar,0);
          } else {
            foreach ($namensarray as $name1) {
            $eid  = db_result(db_query("SELECT id FROM prefix_user WHERE name = BINARY '".$name1."'"),0);                    
                    sendpm($_SESSION['authid'], $eid, $bet, $txt);}
                if (count($namensarray) > 1) {$plur1 = 'en'; $plur2 = 'n';}
            wd('index.php?forum-privmsg','Die Nachricht'.$plur1.' wurde'.$plur2.' erfolgreich gesendet');
          }
      break;


    samo
    Ain't no use running, fool! I know where your mama parks your house
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Samo, jetzt gib bitte mal als ersten Namen einen an, den es nicht gibt und danach einen richtigen, dann wirst du sicherlich ein Fehler erhalten, deswegen hab ich die Abfrage ja noch eingebaut, und ich verstehe nicht, warum es an der hängen sollte.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    samo Mitglied
    Registriert seit
    06.10.2005
    Beiträge
    228
    Beitragswertungen
    0 Beitragspunkte
    ich verstehe was du meinst, aber anders klappts garnicht.

    samo
    Ain't no use running, fool! I know where your mama parks your house
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    OMG bin ich doof, also hier hoffentlich das letzte mal:

    case 'new' :
    		  # neue pm schreiben und eintragen
          $show_formular = true;
          $txt = '';
          $bet = '';
          
          if (isset($_POST['sub'])) {
            $show_formular = false;
    				$txt  = escape($_POST['txt'], 'textarea');
            $bet  = escape($_POST['bet'], 'string');
            $name = escape($_POST['name'], 'string');
            $namensarray = explode(',', $name);        
            foreach ($namensarray as $name1)
            if (1 == db_result(db_query("SELECT count(*) FROM prefix_user WHERE name = BINARY '".$name1."'"),0)) {
              if ($show_formular != true) $show_formular = false;
            } else {
              echo 'Der Empf&auml;nger '.$name1.' konnte nicht gefunden werden<br />';
              $show_formular = true;
            }
          }
          
          if ($show_formular === true) {
            $name = '';
            $empfid = 0;
            if (isset($_REQUEST['empfid'])) {
              $empfid = escape($_REQUEST['empfid'],'integer');
            }
            $empfid = escape($empfid, 'integer');
            if ($empfid > 0) {
              $name = db_result(db_query("SELECT name FROM prefix_user WHERE id = ".$empfid),0);
            }
            $ar = array (
    				  'name'    => $name,
    		      'SMILIES' => getsmilies(),
              'TXT'     => $txt,
              'BET'     => $bet,
    				);
    
    				if (isset($_REQUEST['text'])) {
              $ar['TXT'] = unescape(escape($_REQUEST['text'], 'textarea'));
            }
            if (isset($_REQUEST['anhang'])) {
              $x = explode("\n", unescape(escape(urldecode($_REQUEST['anhang']), 'textarea')));
              $n = '';
              for ($i=0; $i<=count($x); $i++) {
                if (empty($x[$i])) { continue; }
                $n .= '> '.$x[$i]."\n";
              }
              $ar['TXT'] .= "\n\n".$n;
            }
    				if (isset($_POST['bet'])) {
              $ar['BET'] = unescape(escape($_REQUEST['bet'], 'string'));
            }
            if (isset($_POST['re']) AND strpos ($ar['BET'],'re') === FALSE AND strpos ($ar['BET'],'Re') === FALSE AND strpos ($ar['BET'],'RE') === FALSE) {
              $ar['BET'] = 'Re(1): '.$ar['BET'];
            } elseif (isset($_POST['re'])) {
              $x = preg_replace("/re\((\d+)\):.*/i", "\\1", trim($ar['BET']));
              if (is_numeric($x)) {
                $x = $x+1;
                $ar['BET'] = preg_replace("/(re)\(\d+\):(.*)/i", "\\1(".$x."):\\2", $ar['BET']);
              }
            }
            
    				$tpl = new tpl ( 'forum/pm/new' );
    		    $tpl->set_ar_out($ar,0);
          } else {
            foreach ($namensarray as $name1) {
            $eid  = db_result(db_query("SELECT id FROM prefix_user WHERE name = BINARY '".$name1."'"),0);					
    				sendpm($_SESSION['authid'], $eid, $bet, $txt);}
    		    if (count($namensarray) > 1) {$plur1 = 'en'; $plur2 = 'n';}
            wd('index.php?forum-privmsg','Die Nachricht'.$plur1.' wurde'.$plur2.' erfolgreich gesendet'); 
          }
      break;
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    samo Mitglied
    Registriert seit
    06.10.2005
    Beiträge
    228
    Beitragswertungen
    0 Beitragspunkte
    Super, vielen Dank

    samo
    Ain't no use running, fool! I know where your mama parks your house
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    ScopeX Mitglied
    Registriert seit
    04.10.2005
    Beiträge
    323
    Beitragswertungen
    0 Beitragspunkte
    in welche datei muss ich das denn rein kopieren, und womit werden die namen getrennt?
    0 Mitglieder finden den Beitrag gut.
  16. #16
    User Pic
    samo Mitglied
    Registriert seit
    06.10.2005
    Beiträge
    228
    Beitragswertungen
    0 Beitragspunkte
    include/contents/forum/privmsg.php

    samo
    Ain't no use running, fool! I know where your mama parks your house
    0 Mitglieder finden den Beitrag gut.
  17. #17
    User Pic
    Peter Mitglied
    Registriert seit
    16.12.2006
    Beiträge
    171
    Beitragswertungen
    0 Beitragspunkte
    kann man das auch verlinken... also ich mein um einer person eine PM zu schreiben heisst es ja
    domain/index.php?forum-privmsg-new=0&empfid=1

    geht das dann auch im link das ich zB
    index.php?forum-privmsg-new=0&empfid=1;2;3;4;5;6

    und dann sind die namen der ersten 6 userid im feld Empfänger?


    Zuletzt modifiziert von Peter am 26.04.2009 - 10:30:55
    0 Mitglieder finden den Beitrag gut.
  18. #18
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    So hab die Funktion mal mit in mein PM Mod mit eingebaut, ich hoffe das reicht aus.

    Download auf meiner Seite.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  19. #19
    User Pic
    Peter Mitglied
    Registriert seit
    16.12.2006
    Beiträge
    171
    Beitragswertungen
    0 Beitragspunkte
    hat das dann auch die verlinkung?!?!
    0 Mitglieder finden den Beitrag gut.
  20. #20
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Welche Verlinkung? Schau am besten mal die Downloadbeschreibung an, falls du das meinst.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  21. #21
    User Pic
    Peter Mitglied
    Registriert seit
    16.12.2006
    Beiträge
    171
    Beitragswertungen
    0 Beitragspunkte
    ZitatZitat geschrieben von Peter

    kann man das auch verlinken... also ich mein um einer person eine PM zu schreiben heisst es ja
    domain/index.php?forum-privmsg-new=0&empfid=1

    geht das dann auch im link das ich zB
    index.php?forum-privmsg-new=0&empfid=1;2;3;4;5;6

    und dann sind die namen der ersten 6 userid im feld Empfänger?


    Zuletzt modifiziert von Peter am 26.04.2009 - 10:30:55

    ich meinte das ...also so das man jmd einen bestimmten link geben kann und dort sind dann schon alle Empfänger drin
    0 Mitglieder finden den Beitrag gut.
  22. #22
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Ja und warum liest du nicht einfach die Downloadbeschreibung wie ich es gesagt hab in der steht:
    ° PM an mehrere gleichzeitig verschicken, auch über Adresse (index.php?forum-privmsg-new=0&empfid=2,3,4 usw.)
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Module und Modifikationen

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten