Diesen Thread durchsuchen:   1 Anonyme Benutzer



BottomBottom  Vorheriges Thema Vorheriges Thema  Nächstes Thema Nächstes Thema   Zum Post anmelden

(1) 2 »


Aw:: E-Mail bei neuer PM! Geht das?
#14
Administrator
Administrator


Siehe Benutzerinformationen
bei eProfile 1.68 muss man das nur in seinen Einstellungen einschalten, da braucht man keinen Hack mehr

Gepostet am:30.05.2010
 Top  Bericht


Aw:: E-Mail bei neuer PM! Geht das?
#13
"myXOOPs"-Könner
"myXOOPs"-Könner


Siehe Benutzerinformationen
Hallo Alfred,

Zitat:

alfred schrieb:

mal nen Schnellcrashkurs dazu:

- öffne die pmlite.php ...

Das ganze kann man noch schön ausbauen



ich habe aus uralten Xoops 2.0 Zeiten eine Hack gefunden, der früher mal gepasst hat, nun aber leider nicht mehr funktioniert. Wie müßte ich den anpassen, damit er auch mit Version 2.3.3 und eProfile 1.68 funktioniert?

// Hack by marcan to receive Private Message email notification
       
$userHandler =& xoops_gethandler('user');
       
$toUser =& $userHandler->get($HTTP_POST_VARS['to_userid']);
       
// Only send email notif if notification method is mail
       
if ($toUser->notify_method() == 2) {
          
$xoopsMailer =& getMailer();
          
$xoopsMailer->useMail();
          
$xoopsMailer->setToEmails($toUser->email());
          
$xoopsMailer->setFromEmail($xoopsConfig['adminmail']);
          
$xoopsMailer->setTemplate('new_pm.tpl');
          
$xoopsMailer->assign('X_SITENAME'$xoopsConfig['sitename']);
         
$xoopsMailer->assign('X_SITEURL'XOOPS_URL."/");
         
$xoopsMailer->assign('X_ADMINMAIL'$xoopsConfig['adminmail']);
         
$xoopsMailer->assign('X_UNAME'$toUser->uname());
          
$xoopsMailer->assign('X_FROMUNAME'$xoopsUser->uname());
         
$xoopsMailer->assign('X_SUBJECT'$myts->stripSlashesGPC($HTTP_POST_VARS['subject']));
          
$xoopsMailer->assign('X_MESSAGE'$myts->stripSlashesGPC($HTTP_POST_VARS['message']));  
          
$xoopsMailer->assign('X_ITEM_URL'XOOPS_URL "/readpmsg.php?start=" $pm->getVar('msg_id') . "&total_messages=1"); 
          
$xoopsMailer->setFromName($xoopsConfig['sitename']);
          
$xoopsMailer->setSubject(sprintf(_PM_MESSAGEPOSTED_EMAILSUBJ$xoopsConfig['sitename']));
         
$xoopsMailer->setBody($HTTP_POST_VARS['message']);
          
$xoopsMailer->send();
       }


Der Vorteil an dieser Lösung ist das Template, welches mitgeliefert wurde und das individuell gestaltet werden kann. Das Template liegt im Verzeichnis ROOT/language/german/mail_templates/

Gut an diesem Hack ist auch, dass nur die User eine Mailbenachrichtigung erhalten, die das in den persönlichen Einstellungen des Kontos ausgewählt haben. Der Hack, den Du hier auf die schnelle gepostet hast, verschickt immer eine Mail, auch wenn der User das nicht möchte.

Der Hack von marcan kann doch sicher relativ einfach angepasst werden, oder? Über einen Hinweis würde ich mich sehr freuen - vielleicht gibt es ja eine noch bessere Lösung?

migoe

Gepostet am:27.05.2010
Wenn Du denkst Du denkst, dann denkst Du nur, Du denkst
--- www.liedermacher-forum.de ---...
 Top  Bericht


Advertisement


Hier könnten Sie Ihre Anzeige aufgeben!
Bitte kontaktieren Sie uns, um mehr darüber zu erfahren.
 Top 


Aw:: E-Mail bei neuer PM! Geht das?
#12
Administrator
Administrator


Siehe Benutzerinformationen
Fehlermeldung?

Hier auf myxoops ist exakt derselbe Code verbaut (nur als template-Version), und der funktioniert tadellos

dein Quellcode sieht nach überfliegen auch erstmal gut aus.

Gepostet am:25.10.2009
 Top  Bericht


Aw:: E-Mail bei neuer PM! Geht das?
#11
"myXOOPs"-Fortgeschrittener
"myXOOPs"-Fortgeschrittener


Siehe Benutzerinformationen
Eigendlich nen cooler Tip, aber funktioniert leider nicht. Was könnte ich falsch gemacht haben. Alle anderen Systemmails kommen immer gut an, und im Spam ist auch nichts. Hier nochmal der Code inkl. der Mailfunktion.

[code]g
<?php
// $Id: pmlite.php 1990 2008-08-30 10:36:31Z phppp $
// ------------------------------------------------------------------------ //
// XOOPS - PHP Content Management System //
// Copyright (c) 2000 XOOPS.org //
// <http://www.xoops.org/> //
// ------------------------------------------------------------------------ //
// 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. //
// //
// You may not change or alter any portion of this comment or credits //
// of supporting developers from this source code or any supporting //
// source code which is considered copyrighted (c) material of the //
// original comment or credit authors. //
// //
// This program is distributed in the hope that it will be useful, //
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
// GNU General Public License for more details. //
// //
// You should have received a copy of the GNU General Public License //
// along with this program; if not, write to the Free Software //
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA //
// ------------------------------------------------------------------------ //

//$xoopsOption['pagetype'] = "pmsg";
include_once "mainfile.php";
$module_handler = xoops_gethandler('module');
$pm_module = $module_handler->getByDirname('pm');
if ($pm_module && $pm_module->getVar('isactive')) {
header( "location: ./modules/pm/pmlite.php" . (empty($_SERVER['QUERY_STRING']) ? "" : "?" . $_SERVER['QUERY_STRING']) );
exit();
}
xoops_loadLanguage('pmsg');

$reply = !empty($_GET['reply']) ? 1 : 0;
$send = !empty($_GET['send']) ? 1 : 0;
$send2 = !empty($_GET['send2']) ? 1 : 0;
$to_userid = !empty($_GET['to_userid']) ? intval($_GET['to_userid']) : 0;
$msg_id = !empty($_GET['msg_id']) ? intval($_GET['msg_id']) : 0;
if ( empty($_GET['refresh'] ) && isset($_POST['op']) && $_POST['op'] != "submit" ) {
$jump = "pmlite.php?refresh=".time()."";
if ( $send == 1 ) {
$jump .= "&send=".$send."";
} elseif ( $send2 == 1 ) {
$jump .= "&send2=".$send2."&to_userid=".$to_userid."";
} elseif ( $reply == 1 ) {
$jump .= "&reply=".$reply."&msg_id=".$msg_id."";
} else {
}
echo "<html><head><meta http-equiv='Refresh' content='0; url=".$jump."' /></head><body></body></html>";
exit();
}
xoops_header();
if ($xoopsUser) {
$myts =& MyTextSanitizer::getInstance();
if (isset($_POST['op']) && $_POST['op'] == "submit") {
if (!$GLOBALS['xoopsSecurity']->check()) {
$security_error = true;
}
$res = $xoopsDB->query("SELECT COUNT(*) FROM ".$xoopsDB->prefix("users")." WHERE uid=".intval($_POST['to_userid'])."");
list($count) = $xoopsDB->fetchRow($res);
if ($count != 1) {
echo "<br /><br /><div><h4>"._PM_USERNOEXIST."<br />";
echo _PM_PLZTRYAGAIN."</h4><br />";
if (isset($security_error) && $security_error == true) {
echo implode('<br />', $GLOBALS['xoopsSecurity']->getErrors());
}
echo "[ <a href='javascript:history.go(-1)'>"._PM_GOBACK."</a> ]</div>";
} else {
$pm_handler =& xoops_gethandler('privmessage');
$pm =& $pm_handler->create();
$pm->setVar("subject", $_POST['subject']);
$pm->setVar("msg_text", $_POST['message']);
$pm->setVar("to_userid", $_POST['to_userid']);
$pm->setVar("from_userid", $xoopsUser->getVar("uid"));
if (!$pm_handler->insert($pm)) {
echo $pm->getHtmlErrors();
echo "<br /><a href='javascript:history.go(-1)'>"._PM_GOBACK."</a>";
} else {






$toUser =& $member_handler->getUser(intval($_POST['to_userid']));
$xoopsMailer =& xoops_getMailer();
$xoopsMailer->useMail();
$xoopsMailer->setToUsers($toUser);
$xoopsMailer->setBody('<Du hast eine Privatnachricht von einem anderen Syzzy Roxx Fan erhalten. Um diese Nachricht zu lesen, logge Dich mit Deinen Benutzerdaten auf http://www.Syzzy-Roxx.de ein.>');
$xoopsMailer->setSubject('<Private Nachricht auf Syzzy-Roxx.de>');
$xoopsMailer->send();










echo "<br /><br /><div style='text-align:center;'><h4>"._PM_MESSAGEPOSTED."</h4><br /><a href=\"javascript:window.opener.location='".XOOPS_URL."/viewpmsg.php';window.close();\">"._PM_CLICKHERE."</a><br /><br /><a href=\"javascript:window.close();\">"._PM_ORCLOSEWINDOW."</a></div>";
}
}
} elseif ($reply == 1 || $send == 1 || $send2 == 1) {
include_once XOOPS_ROOT_PATH."/include/xoopscodes.php";
if ($reply == 1) {
$pm_handler =& xoops_gethandler('privmessage');
$pm =& $pm_handler->get($msg_id);
if ($pm->getVar("to_userid") == $xoopsUser->getVar('uid')) {
$pm_uname = XoopsUser::getUnameFromId($pm->getVar("from_userid"));
$message = "Zitat:
\n";
$message .= sprintf(_PM_USERWROTE,$pm_uname);
$message .= "\n".$pm->getVar("msg_text", "E")."\n
";
} else {
unset($pm);
$reply = $send2 = 0;
}
}
echo "<form action='pmlite.php' method='post' name='coolsus'>\n";
echo "<table width='300' align='center' class='outer'><tr><td class='head' width='25%'>"._PM_TO."</td>";
if ( $reply == 1 ) {
echo "<td class='even'><input type='hidden' name='to_userid' value='".$pm->getVar("from_userid")."' />".$pm_uname."</td>";
} elseif ( $send2 == 1 ) {
$to_username = XoopsUser::getUnameFromId($to_userid);
echo "<td class='even'><input type='hidden' name='to_userid' value='".$to_userid."' />".$to_username."</td>";
} else {
require_once XOOPS_ROOT_PATH."/class/xoopsform/formelement.php";
require_once XOOPS_ROOT_PATH."/class/xoopsform/formselect.php";
require_once XOOPS_ROOT_PATH."/class/xoopsform/formlabel.php";
require_once XOOPS_ROOT_PATH."/class/xoopsform/formselectuser.php";
$user_sel = new XoopsFormSelectUser("", "to_userid");
echo "<td class='even'>".$user_sel->render();
echo "</td>";
}
echo "</tr>";
echo "<tr><td class='head' width='25%'>"._PM_SUBJECTC."</td>";
if ( $reply == 1 ) {
$subject = $pm->getVar('subject', 'E');
if (!preg_match("/^Re:/i",$subject)) {
$subject = 'Re: '.$subject;
}
echo "<td class='even'><input type='text' name='subject' value='".$subject."' size='30' maxlength='100' /></td>";
} else {
echo "<td class='even'><input type='text' name='subject' size='30' maxlength='100' /></td>";
}
echo "</tr>";
echo "<tr valign='top'><td class='head' width='25%'>"._PM_MESSAGEC."</td>";
echo "<td class='even'>";
xoopsCodeTarea("message",37,8);
xoopsSmilies("message");
echo "</td>";
echo "</tr>";
echo "<tr><td class='head'>&nbsp;</td><td class='even'>
<input type='hidden' name='op' value='submit' />".$GLOBALS['xoopsSecurity']->getTokenHTML()."
<input type='submit' class='formButton' name='submit' value='"._PM_SUBMIT."' />&nbsp;
<input type='reset' class='formButton' value='"._PM_CLEAR."' />
&nbsp;<input type='button' class='formButton' name='cancel' value='"._PM_CANCELSEND."' onclick='javascript:window.close();' />
</td></tr></table>\n";
echo "</form>\n";
}
} else {
echo _PM_SORRY."<br /><br /><a href='".XOOPS_URL."/register.php'>"._PM_REGISTERNOW."</a>.";
}

xoops_footer();

?>
/code]

Gepostet am:24.10.2009
 Top  Bericht


Aw:: E-Mail bei neuer PM! Geht das?
#10
Administrator
Administrator


Siehe Benutzerinformationen
Zitat:

if (!$pm_handler->insert($pm)) {
echo $pm->getHtmlErrors();
echo "

"._PM_GOBACK." ";
} else {
< hier muss das hin>
echo " < br / >< br / >
< div style =' text - align : center; ' >
"._PM_MESSAGEPOSTED."
"._PM_CLICKHERE."

"._PM_ORCLOSEWINDOW."
";

Gepostet am:23.10.2009
 Top  Bericht


Aw:: E-Mail bei neuer PM! Geht das?
#9
"myXOOPs"-Fortgeschrittener
"myXOOPs"-Fortgeschrittener


Siehe Benutzerinformationen
Danke für den Tip, aber bei mir gibt es diese Zeilen nicht in der pmlite.php .

Hier mal der Inhalt der Datei:

<?php
// $Id: pmlite.php 1990 2008-08-30 10:36:31Z phppp $
//  ------------------------------------------------------------------------ //
//                XOOPS - PHP Content Management System                      //
//                    Copyright (c) 2000 XOOPS.org                           //
//                       <http://www.xoops.org/>   ... nbsp;   //
//  ------------------------------------------------------------------------ //
//  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.                                      //
//                                                                           //
//  You may not change or alter any portion of this comment or credits       //
//  of supporting developers from this source code or any supporting         //
//  source code which is considered copyrighted (c) material of the          //
//  original comment or credit authors.                                      //
//                                                                           //
//  This program is distributed in the hope that it will be useful,          //
//  but WITHOUT ANY WARRANTY; without even the implied warranty of           //
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            //
//  GNU General Public License for more details.                             //
//                                                                           //
//  You should have received a copy of the GNU General Public License        //
//  along with this program; if not, write to the Free Software              //
//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA //
//  ------------------------------------------------------------------------ //

//$xoopsOption['pagetype'] = "pmsg";
include_once "mainfile.php";
$module_handler xoops_gethandler('module');
$pm_module $module_handler->getByDirname('pm');
if (
$pm_module && $pm_module->getVar('isactive')) {
    
header"location: ./modules/pm/pmlite.php" . (empty($_SERVER['QUERY_STRING']) ? "" "?" $_SERVER['QUERY_STRING']) );
    exit();
}
xoops_loadLanguage('pmsg');

$reply = !empty($_GET['reply']) ? 0;
$send = !empty($_GET['send']) ? 0;
$send2 = !empty($_GET['send2']) ? 0;
$to_userid = !empty($_GET['to_userid']) ? intval($_GET['to_userid']) : 0;
$msg_id = !empty($_GET['msg_id']) ? intval($_GET['msg_id']) : 0;
if ( empty(
$_GET['refresh'] ) && isset($_POST['op']) && $_POST['op'] != "submit" ) {
    
$jump "pmlite.php?refresh=".time()."";
    if ( 
$send == ) {
        
$jump .= "&amp;send=".$send."";
    } elseif ( 
$send2 == ) {
        
$jump .= "&amp;send2=".$send2."&amp;to_userid=".$to_userid."";
    } elseif ( 
$reply == ) {
        
$jump .= "&amp;reply=".$reply."&amp;msg_id=".$msg_id."";
    } else {
    }
    echo 
"<html><head><meta http-equiv='Refresh' content='0; url=".$jump."' /></head><body></body></html>";
    exit();
}
xoops_header();
if (
$xoopsUser) {
    
$myts =& MyTextSanitizer::getInstance();
    if (isset(
$_POST['op']) && $_POST['op'] == "submit") {
        if (!
$GLOBALS['xoopsSecurity']->check()) {
            
$security_error true;
        }
        
$res $xoopsDB->query("SELECT COUNT(*) FROM ".$xoopsDB->prefix("users")." WHERE uid=".intval($_POST['to_userid'])."");
        list(
$count) = $xoopsDB->fetchRow($res);
        if (
$count != 1) {
            echo 
"<br /><br /><div><h4>"._PM_USERNOEXIST."<br />";
            echo 
_PM_PLZTRYAGAIN."</h4><br />";
            if (isset(
$security_error) && $security_error == true) {
                echo 
implode('<br />'$GLOBALS['xoopsSecurity']->getErrors());
            }
            echo 
"[ <a href='javascript:history.go(-1)'>"._PM_GOBACK."</a> ]</div>";
        } else {
            
$pm_handler =& xoops_gethandler('privmessage');
            
$pm =& $pm_handler->create();
            
$pm->setVar("subject"$_POST['subject']);
            
$pm->setVar("msg_text"$_POST['message']);
            
$pm->setVar("to_userid"$_POST['to_userid']);
            
$pm->setVar("from_userid"$xoopsUser->getVar("uid"));
            if (!
$pm_handler->insert($pm)) {
                echo 
$pm->getHtmlErrors();
                echo 
"<br /><a href='javascript:history.go(-1)'>"._PM_GOBACK."</a>";
            } else {
                echo 
"<br /><br /><div style='text-align:center;'><h4>"._PM_MESSAGEPOSTED."</h4><br /><a href="javascript:window.opener.location='".XOOPS_URL."/viewpmsg.php';window.close();">"._PM_CLICKHERE."</a><br /><br /><a href="javascript:window.close();">"._PM_ORCLOSEWINDOW."</a></div>";
            }
        }
    } elseif (
$reply == || $send == || $send2 == 1) {
        include_once 
XOOPS_ROOT_PATH."/include/xoopscodes.php";
        if (
$reply == 1) {
            
$pm_handler =& xoops_gethandler('privmessage');
            
$pm =& $pm_handler->get($msg_id);
            if (
$pm->getVar("to_userid") == $xoopsUser->getVar('uid')) {
                
$pm_uname XoopsUser::getUnameFromId($pm->getVar("from_userid"));
                
$message  "[quote]n";
                
$message .= sprintf(_PM_USERWROTE,$pm_uname);
                
$message .= "n".$pm->getVar("msg_text""E")."n[/quote]";
            } else {
                unset(
$pm);
                
$reply $send2 0;
            }
        }
        echo 
"<form action='pmlite.php' method='post' name='coolsus'>n";
            echo 
"<table width='300' align='center' class='outer'><tr><td class='head' width='25%'>"._PM_TO."</td>";
        if ( 
$reply == ) {
            echo 
"<td class='even'><input type='hidden' name='to_userid' value='".$pm->getVar("from_userid")."' />".$pm_uname."</td>";
        } elseif ( 
$send2 == ) {
            
$to_username XoopsUser::getUnameFromId($to_userid);
            echo 
"<td class='even'><input type='hidden' name='to_userid' value='".$to_userid."' />".$to_username."</td>";
        } else {
            require_once 
XOOPS_ROOT_PATH."/class/xoopsform/formelement.php";
            require_once 
XOOPS_ROOT_PATH."/class/xoopsform/formselect.php";
            require_once 
XOOPS_ROOT_PATH."/class/xoopsform/formlabel.php";
            require_once 
XOOPS_ROOT_PATH."/class/xoopsform/formselectuser.php";
            
$user_sel = new XoopsFormSelectUser("""to_userid");
            echo 
"<td class='even'>".$user_sel->render();
            echo 
"</td>";
        }
        echo 
"</tr>";
        echo 
"<tr><td class='head' width='25%'>"._PM_SUBJECTC."</td>";
        if ( 
$reply == ) {
            
$subject $pm->getVar('subject''E');
            if (!
preg_match("/^Re:/i",$subject)) {
                
$subject 'Re: '.$subject;
            }
            echo 
"<td class='even'><input type='text' name='subject' value='".$subject."' size='30' maxlength='100' /></td>";
        } else {
            echo 
"<td class='even'><input type='text' name='subject' size='30' maxlength='100' /></td>";
        }
        echo 
"</tr>";
        echo 
"<tr valign='top'><td class='head' width='25%'>"._PM_MESSAGEC."</td>";
        echo 
"<td class='even'>";
        
xoopsCodeTarea("message",37,8);
        
xoopsSmilies("message");
        echo 
"</td>";
        echo 
"</tr>";
        echo 
"<tr><td class='head'>&nbsp;</td><td class='even'>
        <input type='hidden' name='op' value='submit' />"
.$GLOBALS['xoopsSecurity']->getTokenHTML()."
        <input type='submit' class='formButton' name='submit' value='"
._PM_SUBMIT."' />&nbsp;
        <input type='reset' class='formButton' value='"
._PM_CLEAR."' />
        &nbsp;<input type='button' class='formButton' name='cancel' value='"
._PM_CANCELSEND."' onclick='javascript:window.close();' />
        </td></tr></table>n"
;
        echo 
"</form>n";
    }
} else {
    echo 
_PM_SORRY."<br /><br /><a href='".XOOPS_URL."/register.php'>"._PM_REGISTERNOW."</a>.";
}

xoops_footer();

?>

Gepostet am:23.10.2009
 Top  Bericht


Aw:: E-Mail bei neuer PM! Geht das?
#8
Administrator
Administrator


Siehe Benutzerinformationen
Naja oder so *g*

mal nen Schnellcrashkurs dazu:

- öffne die pmlite.php
- Suche nach:
// @todo: Send notification email if user has selected this in the profile
steht so in Zeile 79 (hatte schon mal wer in Arbeit)
- Füge dort ein (Zeile darunter neu):

$toUser =& $member_handler->getUser(intval($_POST['to_userid']));
$xoopsMailer =& xoops_getMailer();
$xoopsMailer->useMail();
$xoopsMailer->setToUsers($toUser);  
$xoopsMailer->setBody('<hier den Inhalt der Mail rein>');
$xoopsMailer->setSubject('<Hier das Subject der Mail eintragen>');
$xoopsMailer->send();


Das ganze kann man noch schön ausbauen


Gepostet am:23.10.2009
 Top  Bericht


Aw:: E-Mail bei neuer PM! Geht das?
#7
"myXOOPs"-Profi
"myXOOPs"-Profi


Siehe Benutzerinformationen
@alfred: du musst sagen "When it's done!". Die Formulierung haben schon andere benutzt.

Gepostet am:23.10.2009
... is gone with the wind ...
 Top  Bericht


Aw:: E-Mail bei neuer PM! Geht das?
#6
Administrator
Administrator


Siehe Benutzerinformationen
diesen Monat definitiv nicht mehr, allerdings einen genauen Termin kann ich auch nicht nennen, weil meistens immer was unvorgesehenes passiert.

Gepostet am:23.10.2009
 Top  Bericht


Aw:: E-Mail bei neuer PM! Geht das?
#5
"myXOOPs"-Fortgeschrittener
"myXOOPs"-Fortgeschrittener


Siehe Benutzerinformationen
Wie lange denn ungefähr?

Gepostet am:23.10.2009
 Top  Bericht




(1) 2 »




[Erweiterte Suche]


Design by: XOOPS UI/UX Team