ilch Forum » Ilch Clan 1.1 » Allgemein » Automatische Mail senden bei neuen News

Geschlossen
  1. #1
    User Pic
    holgerstaude Mitglied
    Registriert seit
    16.12.2007
    Beitrge
    60
    Beitragswertungen
    0 Beitragspunkte
    Hallo,

    wir suchen für unsere Portale eine Lösung für die News.

    Wir tragen regelmäsig News ein, nur würden wir gern auch unsere User Informieren wenn es welche gibt. Sollte so in etwa wie die E-Mail die man bekommt wenn man ne neue PM bekommen hat funktionieren.

    Also Admin schreibt News und bei der Eintragung sendet man autom. eine E-Mail an alle das den Usern sagt, es gibt was neues.

    Wer kann mir da helfen?

    Vielen Dank im Voraus


    verwendete ilchClan Version: 1.1 N
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beitrge
    7.509
    Beitragswertungen
    1165 Beitragspunkte
    In der include/admin/news.php nach #insert und db_query("INSERT INTO `prefix_news` ... die Funktion icmail anwenden!

    Nun müssen nur noch alle Emailadressen per Schleife angesprochen werden! Ob da deine User begeistert sind... naja


    Zuletzt modifiziert von Lord|Schirmer am 10.02.2010 - 12:56:59
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    holgerstaude Mitglied
    Registriert seit
    16.12.2007
    Beitrge
    60
    Beitragswertungen
    0 Beitragspunkte
    wie muss das dann genau aussehen?
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beitrge
    7.509
    Beitragswertungen
    1165 Beitragspunkte
    zB. an erwähnter Stelle:

    $erg = db_query('SELECT name, email FROM `prefix_user`');
    while ($row = db_fetch_object($erg) ) 
    { icmail($row->email, 'Eine neue News wurde eingetragen', 'Hallo '.$row->name.' es wurde eine neue Nachricht mit dem Titel '.$_POST['titel'].' auf unserer WebSite verffentlicht, schau doch mal rein!'); }


    Jetzt bekommt JEDER angemeldete User deiner Seite eine Email!
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    holgerstaude Mitglied
    Registriert seit
    16.12.2007
    Beitrge
    60
    Beitragswertungen
    0 Beitragspunkte
    hmm irgendwie geht des net.

    ZitatZitat
    <?php
    // Copyright by: Manuel
    // Support: www.ilch.de
    defined ('main') or die ('no direct access');
    defined ('admin') or die ('only admin access');

    $design = new design ('Admins Area', 'Admins Area', 2);
    $design->header();
    // -----------------------------------------------------------|
    // #
    // ##
    // ###
    // #### F u n k t i o n e n
    function getKats ($akt) {
    $katAR = array();
    $kats = '';
    $erg = db_query("SELECT DISTINCT news_kat FROM `prefix_news`");
    while ($row = db_fetch_object($erg)) {
    $katAr[] = $row->news_kat;
    }
    $katAr[] = 'Allgemein';
    $katAr = array_unique($katAr);
    foreach($katAr as $a) {
    if (trim($a) == trim($akt)) {
    $sel = ' selected';
    } else {
    $sel = '';
    }
    $kats .= '<option' . $sel . '>' . $a . '</option>';
    }
    return ($kats);
    }
    // #### F u n k t i o n
    // ###
    // ##
    // #

    // #
    // ##
    // ###
    // #### A k t i o n e n
    if (!empty($_REQUEST['um'])) {
    $um = $_REQUEST['um'];
    $_POST['titel'] = escape($_POST['titel'], 'string');
    $_POST['grecht'] = escape($_POST['grecht'], 'integer');
    $_POST['kat'] = escape($_POST['kat'], 'string');
    $_POST['katLis'] = escape($_POST['katLis'], 'string');
    $_POST['newsID'] = escape($_POST['newsID'], 'integer');
    if ($um == 'insert') {
    // insert
    $text = escape($_POST['txt'], 'textarea');
    if ($_POST['katLis'] == 'neu') {
    $_POST['katLis'] = $_POST['kat'];
    }
    db_query("INSERT INTO `prefix_news` (news_title,user_id,news_time,news_recht,news_kat,news_text)
    VALUES ('" . $_POST['titel'] . "'," . $_SESSION['authid'] . ",NOW()," . $_POST['grecht'] . ",'" . $_POST['katLis'] . "','" . $text . "')");
    // insert
    } elseif ($um == 'change') {
    // edit
    $text = escape($_POST['txt'], 'textarea');

    $erg = db_query('SELECT name, email FROM `prefix_user`');

    while ($row = db_fetch_object($erg) )
    { icmail($row->email, 'neue News im Personalportal', 'Hallo '.$row->name.' es wurde eine neue Nachricht mit dem Titel '.$_POST['titel'].' auf unserer WebSite veröffentlicht, schau doch mal rein!'); }

    if ($_POST['katLis'] == 'neu') {
    $_POST['katLis'] = $_POST['kat'];
    }
    db_query('UPDATE `prefix_news` SET
    news_title = "' . $_POST['titel'] . '",
    user_id = "' . $_SESSION['authid'] . '",
    news_recht = "' . $_POST['grecht'] . '",
    news_kat = "' . $_POST['katLis'] . '",
    news_text = "' . $text . '" WHERE news_id = "' . $_POST['newsID'] . '" LIMIT 1');
    $edit = $_POST['newsID'];
    }
    }
    // edit
    // del
    if ($menu->get(1) == 'del') {
    db_query('DELETE FROM `prefix_news` WHERE news_id = "' . $menu->get(2) . '" LIMIT 1');
    }
    // del
    // #### A k t i o n e n
    // ###
    // ##
    // #

    // #
    // ##
    // ###
    // #### h t m l E i n g a b e n
    if (empty ($doNoIn)) {
    $limit = 20; // Limit
    $page = ($menu->getA(1) == 'p' ? $menu->getE(1) : 1);
    $MPL = db_make_sites ($page , '' , $limit , "?news" , 'news');
    $anfang = ($page - 1) * $limit;
    if ($menu->get(1) != 'edit') {
    $FnewsID = '';
    $Faktion = 'insert';
    $Fueber = '';
    $Fstext = '';
    $Ftxt = '';
    $Fgrecht = '';
    $FkatLis = '';
    $Fsub = 'Eintragen';
    } else {
    $row = db_fetch_object(db_query("SELECT * FROM `prefix_news` WHERE news_id = " . $menu->get(2)));
    $FnewsID = $row->news_id;
    $Faktion = 'change';
    $Fueber = $row->news_title;
    $Ftxt = stripslashes($row->news_text);
    $Fgrecht = $row->news_recht;
    $FkatLis = $row->news_kat;
    $Fsub = '&Auml;ndern';
    }
    $tpl = new tpl ('news', 1);

    $ar = array
    (
    'NEWSID' => $FnewsID,
    'AKTION' => $Faktion,
    'MPL' => $MPL,
    'UEBER' => $Fueber,
    'txt' => $Ftxt,
    'SMILIS' => getsmilies(),
    'grecht' => dbliste($Fgrecht, $tpl, 'grecht', "SELECT id,name FROM prefix_grundrechte ORDER BY id DESC"),
    'KATS' => getKats($FkatLis),
    'FSUB' => $Fsub

    );

    $tpl->set_ar_out($ar, 0);
    // e d i t , d e l e t e
    $abf = 'SELECT news_id,news_title
    FROM `prefix_news`
    ORDER BY news_time DESC
    LIMIT ' . $anfang . ',' . $limit;

    $erg = db_query($abf);
    $class = '';
    while ($row = db_fetch_object($erg)) {
    $class = ($class == 'Cmite' ? 'Cnorm' : 'Cmite');
    $tpl->set_ar_out(array ('ID' => $row->news_id, 'class' => $class, 'TITEL' => $row->news_title) , 1);
    }
    // e d i t , d e l e t e
    $tpl->set_ar_out(array ('MPL' => $MPL) , 2);
    }

    $design->footer();

    ?>
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beitrge
    7.509
    Beitragswertungen
    1165 Beitragspunkte
    Du hast es falsch eingesetzt und poste bitte mal deine originale admin/news.php in den [ CODE] [ /CODE] damit nicht die Smileys drin sind, siehe #! Dann setze ich Dir es rein!
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    holgerstaude Mitglied
    Registriert seit
    16.12.2007
    Beitrge
    60
    Beitragswertungen
    0 Beitragspunkte
    <?php
    // Copyright by: Manuel
    // Support: www.ilch.de
    defined ('main') or die ('no direct access');
    defined ('admin') or die ('only admin access');
    
    $design = new design ('Admins Area', 'Admins Area', 2);
    $design->header();
    // -----------------------------------------------------------|
    // #
    // ##
    // ###
    // #### F u n k t i o n e n
    function getKats ($akt) {
        $katAR = array();
        $kats = '';
        $erg = db_query("SELECT DISTINCT news_kat FROM `prefix_news`");
        while ($row = db_fetch_object($erg)) {
            $katAr[] = $row->news_kat;
        }
        $katAr[] = 'Allgemein';
        $katAr = array_unique($katAr);
        foreach($katAr as $a) {
            if (trim($a) == trim($akt)) {
                $sel = ' selected';
            } else {
                $sel = '';
            }
            $kats .= '<option' . $sel . '>' . $a . '</option>';
        }
        return ($kats);
    }
    // #### F u n k t i o n
    // ###
    // ##
    // #
    
    // #
    // ##
    // ###
    // #### A k t i o n e n
    if (!empty($_REQUEST['um'])) {
        $um = $_REQUEST['um'];
        $_POST['titel'] = escape($_POST['titel'], 'string');
    	$_POST['grecht'] = escape($_POST['grecht'], 'integer');
    	$_POST['kat'] = escape($_POST['kat'], 'string');
    	$_POST['katLis'] = escape($_POST['katLis'], 'string');
    	$_POST['newsID'] = escape($_POST['newsID'], 'integer');
    	if ($um == 'insert') {
            // insert
            $text = escape($_POST['txt'], 'textarea');
            if ($_POST['katLis'] == 'neu') {
                $_POST['katLis'] = $_POST['kat'];
            }
            db_query("INSERT INTO `prefix_news` (news_title,user_id,news_time,news_recht,news_kat,news_text)
    		VALUES ('" . $_POST['titel'] . "'," . $_SESSION['authid'] . ",NOW()," . $_POST['grecht'] . ",'" . $_POST['katLis'] . "','" . $text . "')");
            // insert
        } elseif ($um == 'change') {
            // edit
            $text = escape($_POST['txt'], 'textarea');
    
            if ($_POST['katLis'] == 'neu') {
                $_POST['katLis'] = $_POST['kat'];
            }
            db_query('UPDATE `prefix_news` SET
    				news_title = "' . $_POST['titel'] . '",
    				user_id  = "' . $_SESSION['authid'] . '",
    				news_recht = "' . $_POST['grecht'] . '",
    				news_kat   = "' . $_POST['katLis'] . '",
    				news_text  = "' . $text . '" WHERE news_id = "' . $_POST['newsID'] . '" LIMIT 1');
            $edit = $_POST['newsID'];
        }
    }
    // edit
    // del
    if ($menu->get(1) == 'del') {
        db_query('DELETE FROM `prefix_news` WHERE news_id = "' . $menu->get(2) . '" LIMIT 1');
    }
    // del
    // #### A k t i o n e n
    // ###
    // ##
    // #
    
    // #
    // ##
    // ###
    // #### h t m l   E i n g a b e n
    if (empty ($doNoIn)) {
        $limit = 20; // Limit
        $page = ($menu->getA(1) == 'p' ? $menu->getE(1) : 1);
        $MPL = db_make_sites ($page , '' , $limit , "?news" , 'news');
        $anfang = ($page - 1) * $limit;
        if ($menu->get(1) != 'edit') {
            $FnewsID = '';
            $Faktion = 'insert';
            $Fueber = '';
            $Fstext = '';
            $Ftxt = '';
            $Fgrecht = '';
            $FkatLis = '';
            $Fsub = 'Eintragen';
        } else {
            $row = db_fetch_object(db_query("SELECT * FROM `prefix_news` WHERE news_id = " . $menu->get(2)));
            $FnewsID = $row->news_id;
            $Faktion = 'change';
            $Fueber = $row->news_title;
            $Ftxt = stripslashes($row->news_text);
            $Fgrecht = $row->news_recht;
            $FkatLis = $row->news_kat;
            $Fsub = '&Auml;ndern';
        }
        $tpl = new tpl ('news', 1);
    
        $ar = array
        (
            'NEWSID' => $FnewsID,
            'AKTION' => $Faktion,
            'MPL' => $MPL,
            'UEBER' => $Fueber,
            'txt' => $Ftxt,
            'SMILIS' => getsmilies(),
            'grecht' => dbliste($Fgrecht, $tpl, 'grecht', "SELECT id,name FROM prefix_grundrechte ORDER BY id DESC"),
            'KATS' => getKats($FkatLis),
            'FSUB' => $Fsub
    
            );
    
        $tpl->set_ar_out($ar, 0);
        // e d i t , d e l e t e
        $abf = 'SELECT news_id,news_title
    	        FROM `prefix_news`
    					ORDER BY news_time DESC
    					LIMIT ' . $anfang . ',' . $limit;
    
        $erg = db_query($abf);
        $class = '';
        while ($row = db_fetch_object($erg)) {
            $class = ($class == 'Cmite' ? 'Cnorm' : 'Cmite');
            $tpl->set_ar_out(array ('ID' => $row->news_id, 'class' => $class, 'TITEL' => $row->news_title) , 1);
        }
        // e d i t , d e l e t e
        $tpl->set_ar_out(array ('MPL' => $MPL) , 2);
    }
    
    $design->footer();
    
    ?>
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beitrge
    7.509
    Beitragswertungen
    1165 Beitragspunkte
    Probier das mal, sollte funktionieren!

    <?php
    // Copyright by: Manuel
    // Support: www.ilch.de
    defined ('main') or die ('no direct access');
    defined ('admin') or die ('only admin access');
     
    $design = new design ('Admins Area', 'Admins Area', 2);
    $design->header();
    // -----------------------------------------------------------|
    // #
    // ##
    // ###
    // #### F u n k t i o n e n
    function getKats ($akt) {
        $katAR = array();
        $kats = '';
        $erg = db_query("SELECT DISTINCT news_kat FROM `prefix_news`");
        while ($row = db_fetch_object($erg)) {
            $katAr[] = $row->news_kat;
        }
        $katAr[] = 'Allgemein';
        $katAr = array_unique($katAr);
        foreach($katAr as $a) {
            if (trim($a) == trim($akt)) {
                $sel = ' selected';
            } else {
                $sel = '';
            }
            $kats .= '<option' . $sel . '>' . $a . '</option>';
        }
        return ($kats);
    }
    // #### F u n k t i o n
    // ###
    // ##
    // #
     
    // #
    // ##
    // ###
    // #### A k t i o n e n
    if (!empty($_REQUEST['um'])) {
        $um = $_REQUEST['um'];
        $_POST['titel'] = escape($_POST['titel'], 'string');
        $_POST['grecht'] = escape($_POST['grecht'], 'integer');
        $_POST['kat'] = escape($_POST['kat'], 'string');
        $_POST['katLis'] = escape($_POST['katLis'], 'string');
        $_POST['newsID'] = escape($_POST['newsID'], 'integer');
        if ($um == 'insert') {
            // insert
            $text = escape($_POST['txt'], 'textarea');
            if ($_POST['katLis'] == 'neu') {
                $_POST['katLis'] = $_POST['kat'];
            }
            db_query("INSERT INTO `prefix_news` (news_title,user_id,news_time,news_recht,news_kat,news_text)
            VALUES ('" . $_POST['titel'] . "'," . $_SESSION['authid'] . ",NOW()," . $_POST['grecht'] . ",'" . $_POST['katLis'] . "','" . $text . "')");
            
            // Anfang Email bei Newserstellung
            
            $erg = db_query('SELECT name, email FROM `prefix_user`');
    		while ($row = db_fetch_object($erg) )
    		{ icmail($row->email, 'Eine neue News wurde eingetragen', 'Hallo '.$row->name.' es wurde eine neue Nachricht mit dem Titel '.$_POST['titel'].' auf unserer WebSite verffentlicht, schau doch mal rein!'); }
           	
           	// Ende Email bei Newserstellung
            
            // insert
        } elseif ($um == 'change') {
            // edit
            $text = escape($_POST['txt'], 'textarea');
     
            if ($_POST['katLis'] == 'neu') {
                $_POST['katLis'] = $_POST['kat'];
            }
            db_query('UPDATE `prefix_news` SET
                    news_title = "' . $_POST['titel'] . '",
                    user_id  = "' . $_SESSION['authid'] . '",
                    news_recht = "' . $_POST['grecht'] . '",
                    news_kat   = "' . $_POST['katLis'] . '",
                    news_text  = "' . $text . '" WHERE news_id = "' . $_POST['newsID'] . '" LIMIT 1');
            $edit = $_POST['newsID'];
        }
    }
    // edit
    // del
    if ($menu->get(1) == 'del') {
        db_query('DELETE FROM `prefix_news` WHERE news_id = "' . $menu->get(2) . '" LIMIT 1');
    }
    // del
    // #### A k t i o n e n
    // ###
    // ##
    // #
     
    // #
    // ##
    // ###
    // #### h t m l   E i n g a b e n
    if (empty ($doNoIn)) {
        $limit = 20; // Limit
        $page = ($menu->getA(1) == 'p' ? $menu->getE(1) : 1);
        $MPL = db_make_sites ($page , '' , $limit , "?news" , 'news');
        $anfang = ($page - 1) * $limit;
        if ($menu->get(1) != 'edit') {
            $FnewsID = '';
            $Faktion = 'insert';
            $Fueber = '';
            $Fstext = '';
            $Ftxt = '';
            $Fgrecht = '';
            $FkatLis = '';
            $Fsub = 'Eintragen';
        } else {
            $row = db_fetch_object(db_query("SELECT * FROM `prefix_news` WHERE news_id = " . $menu->get(2)));
            $FnewsID = $row->news_id;
            $Faktion = 'change';
            $Fueber = $row->news_title;
            $Ftxt = stripslashes($row->news_text);
            $Fgrecht = $row->news_recht;
            $FkatLis = $row->news_kat;
            $Fsub = '&Auml;ndern';
        }
        $tpl = new tpl ('news', 1);
     
        $ar = array
        (
            'NEWSID' => $FnewsID,
            'AKTION' => $Faktion,
            'MPL' => $MPL,
            'UEBER' => $Fueber,
            'txt' => $Ftxt,
            'SMILIS' => getsmilies(),
            'grecht' => dbliste($Fgrecht, $tpl, 'grecht', "SELECT id,name FROM prefix_grundrechte ORDER BY id DESC"),
            'KATS' => getKats($FkatLis),
            'FSUB' => $Fsub
     
            );
     
        $tpl->set_ar_out($ar, 0);
        // e d i t , d e l e t e
        $abf = 'SELECT news_id,news_title
                FROM `prefix_news`
                        ORDER BY news_time DESC
                        LIMIT ' . $anfang . ',' . $limit;
     
        $erg = db_query($abf);
        $class = '';
        while ($row = db_fetch_object($erg)) {
            $class = ($class == 'Cmite' ? 'Cnorm' : 'Cmite');
            $tpl->set_ar_out(array ('ID' => $row->news_id, 'class' => $class, 'TITEL' => $row->news_title) , 1);
        }
        // e d i t , d e l e t e
        $tpl->set_ar_out(array ('MPL' => $MPL) , 2);
    }
     
    $design->footer();
     
    ?>
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    holgerstaude Mitglied
    Registriert seit
    16.12.2007
    Beitrge
    60
    Beitragswertungen
    0 Beitragspunkte
    super...ich danke Dir, das funktioniert super.

    Kann man das irgendwie umsetzten das nur bestimmte gruppen bei eintragung eine E-Mail erhalten?

    Danke nochmal.
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beitrge
    7.509
    Beitragswertungen
    1165 Beitragspunkte
    Diese Abfrage der Emails kann mann noch mit WHERE einschränken!

    $erg = db_query('SELECT name, email FROM `prefix_user`');


    also zB. nach Recht, hier nur ab Member

    $erg = db_query('SELECT name, email FROM `prefix_user` WHERE recht <= -4');


    recht | name
    ----------------
    0 | Gast
    -1 | User
    -2 | Superuser
    -3 | Trialmember
    -4 | Member
    -5 | CoLeader
    -6 | Leader
    -7 | SiteAdmin
    -8 | CoAdmin
    -9 | Admin
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurck zu Allgemein

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten