PDA

View Full Version : Subscribe to forum => Email on new Post


SkjeggApe
11-16-2001, 07:22 PM
I have peaked around a bit, and there seems to be a need for a hack (that works) that will email users who subscribe to a forum whenever someone posts a new msg.

My situation is as follows:
I have a couple of forums that are read only (except for admins/mods) These forums are ment to act almost like a plain mailinglist. It is a pain in the %$*# to manage email-lists, and so we thought... Hey, lets use vBulletin!! The users not only gets a bulletin-board, but can Subscribe & Unsubscribe to the various "lists" without us doing anything but post to the "announcement" category whenever we need to.

I know this issue has circulated several times before, but I haven't seen anyone coming up with an actual solution.

I have looked at some of the code, but since this is pretty much the first time i've even SEEN PHP code, I have a few questions. (i know java, c, jsp, Cold Fusion and some asp, so I'm not totally a newbie when it comes to programming)

Anyway, there is a section of newpost.php that sends an email to the moderator upon new posts. Has anyone tried using that same routine to send users a mail? Looks like it should be possible to select from the subscribeforum instead of moderator table to get emails.

What I don't see, is how the qry that goes into the forum table and does a CONCAT(newthreademail,' ',newpostemail).

Whuuuo.. Long post..... Anyone have any ideas??

SkjeggApe
11-16-2001, 08:11 PM
Ok, I am now officially putting PHP on my resume :D (just kidding)

This piece of code is "working", and it sends an email to people subscribed to a forum. (insert into newthread.php somwhere close to the section that emails mods...)

If anyone would like to look it over and see if I have done something that would either:
a) Bring peace on earth
b) crash my board
c) work


// send email to subscribers Modified
if ($enableemail) {
//Don't know if this should be here...
$moderators2=$DB_site->query_first("SELECT CONCAT(newthreademail,' ',newpostemail) AS newthreademail FROM forum WHERE forumid='$forumid'");
// Just changed the qry a bit.
$modtable2=$DB_site->query("SELECT DISTINCT user.email FROM subscribeforum,user WHERE subscribeforum.userid=user.userid AND forumid IN ($foruminfo[parentlist])");
while($thismod2=$DB_site->fetch_array($modtable2)) {
$moderators2['newthreademail'].=" $thismod2[email]";
}

if ($moderators2['newthreademail']!="") {
$mods2=explode(" ",trim($moderators2['newthreademail']));
while (list($key2,$val2)=each($mods2)) {

if (trim($val2)!="") {
$toemail2=$val2;
$forumtitle2 = $foruminfo['title'];
//$threadinfo['title'] = $subject;

//eval("\$emailmsg = \"".gettemplate("email_moderator",1,0)."\";");
//eval("\$emailsubject = \"".gettemplate("emailsubject_moderator",1,0)."\";");
mail($toemail2,"Forum: $forumtitle2 <$subject>",$message,"From: \"$bbtitle Mailer\" <$webmasteremail>");
}
}
}
}

I have just used the exact same routines as for sending mods an email, but with different variable names..

One limitation would be (if my understaning is correct) that this will only work is there exists some mod for the forum, and that it will only work for new threads..

I will take a better look at it over the weekend and actually test it a bit more


cheers!