aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/posting.php
diff options
context:
space:
mode:
authorPaul S. Owen <psotfx@users.sourceforge.net>2003-10-12 11:59:23 +0000
committerPaul S. Owen <psotfx@users.sourceforge.net>2003-10-12 11:59:23 +0000
commiteeb4907112d4d6e3064e2ccac80d77f9b02d2375 (patch)
treea2c15d05a6de1eee86b97400121c0096878da8fc /phpBB/posting.php
parent3bd421878006906888b65d9b070e20b7ff4a0f65 (diff)
downloadforums-eeb4907112d4d6e3064e2ccac80d77f9b02d2375.tar
forums-eeb4907112d4d6e3064e2ccac80d77f9b02d2375.tar.gz
forums-eeb4907112d4d6e3064e2ccac80d77f9b02d2375.tar.bz2
forums-eeb4907112d4d6e3064e2ccac80d77f9b02d2375.tar.xz
forums-eeb4907112d4d6e3064e2ccac80d77f9b02d2375.zip
Let's break lots of things
git-svn-id: file:///svn/phpbb/trunk@4578 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/posting.php')
-rw-r--r--phpBB/posting.php138
1 files changed, 66 insertions, 72 deletions
diff --git a/phpBB/posting.php b/phpBB/posting.php
index 83b747a8b3..a851a15670 100644
--- a/phpBB/posting.php
+++ b/phpBB/posting.php
@@ -175,6 +175,7 @@ if ($sql != '')
prepare_data($message_parser->attachment_data[$pos]['real_filename'], TRUE);
prepare_data($message_parser->attachment_data[$pos]['extension'], TRUE);
prepare_data($message_parser->attachment_data[$pos]['mimetype'], TRUE);
+
$message_parser->attachment_data[$pos]['filesize'] = (int) $message_parser->attachment_data[$pos]['filesize'];
$message_parser->attachment_data[$pos]['filetime'] = (int) $message_parser->attachment_data[$pos]['filetime'];
$message_parser->attachment_data[$pos]['attach_id'] = (int) $message_parser->attachment_data[$pos]['attach_id'];
@@ -211,8 +212,8 @@ if ($sql != '')
if (!in_array($mode, array('quote', 'edit', 'delete')))
{
$enable_sig = ($config['allow_sig'] && $user->optionget('attachsig')) ? TRUE : FALSE;
- $enable_smilies = ($config['allow_smilies'] && $user->optionget('allowsmile')) ? TRUE : FALSE;
- $enable_bbcode = ($config['allow_bbcode'] && $user->optionget('allowbbcode')) ? TRUE : FALSE;
+ $enable_smilies = ($config['allow_smilies'] && $user->optionget('smile')) ? TRUE : FALSE;
+ $enable_bbcode = ($config['allow_bbcode'] && $user->optionget('bbcode')) ? TRUE : FALSE;
$enable_urls = TRUE;
}
@@ -1134,7 +1135,7 @@ function user_notification($mode, $subject, $topic_title, $forum_name, $forum_id
$notify_rows = array();
// -- get forum_userids || topic_userids
- $sql = 'SELECT u.user_id, u.username, u.user_email, u.user_lang
+ $sql = 'SELECT u.user_id, u.username, u.user_email, u.user_lang, u.user_notify_type, u.user_jabber
FROM ' . (($topic_notification) ? TOPICS_WATCH_TABLE : FORUMS_WATCH_TABLE) . ' w, ' . USERS_TABLE . ' u
WHERE w.' . (($topic_notification) ? 'topic_id' : 'forum_id') . ' = ' . (($topic_notification) ? $topic_id : $forum_id) . "
AND w.user_id NOT IN ($sql_ignore_users)
@@ -1148,9 +1149,11 @@ function user_notification($mode, $subject, $topic_title, $forum_name, $forum_id
'user_id' => $row['user_id'],
'username' => $row['username'],
'user_email' => $row['user_email'],
- 'user_lang' => $row['user_lang'],
+ 'user_jabber' => $row['user_jabber'],
+ 'user_lang' => $row['user_lang'],
'notify_type' => ($topic_notification) ? 'topic' : 'forum',
'template' => ($topic_notification) ? 'topic_notify' : 'newtopic_notify',
+ 'method' => $row['user_notify_type'],
'allowed' => false
);
}
@@ -1164,7 +1167,7 @@ function user_notification($mode, $subject, $topic_title, $forum_name, $forum_id
$sql_ignore_users .= ', ' . implode(', ', array_keys($notify_rows));
}
- $sql = 'SELECT u.user_id, u.username, u.user_email, u.user_lang
+ $sql = 'SELECT u.user_id, u.username, u.user_email, u.user_lang, u.user_notify_type, u.user_jabber
FROM ' . FORUMS_WATCH_TABLE . ' fw, ' . USERS_TABLE . " u
WHERE fw.forum_id = $forum_id
AND fw.user_id NOT IN ($sql_ignore_users)
@@ -1178,9 +1181,11 @@ function user_notification($mode, $subject, $topic_title, $forum_name, $forum_id
'user_id' => $row['user_id'],
'username' => $row['username'],
'user_email' => $row['user_email'],
+ 'user_jabber' => $row['user_jabber'],
'user_lang' => $row['user_lang'],
'notify_type' => 'forum',
'template' => 'forum_notify',
+ 'method' => $row['user_notify_type'],
'allowed' => false
);
}
@@ -1192,112 +1197,101 @@ function user_notification($mode, $subject, $topic_title, $forum_name, $forum_id
return;
}
- // We have all users informations we want, now check if they are actually permitted to receive a notification
- $sql = 'SELECT a.user_id
- FROM ' . ACL_OPTIONS_TABLE . ' ao, ' . ACL_USERS_TABLE . ' a
- WHERE a.user_id IN (' . implode(', ', array_keys($notify_rows)) . ")
- AND ao.auth_option_id = a.auth_option_id
- AND ao.auth_option = 'f_read'
- AND a.forum_id = $forum_id";
- $result = $db->sql_query($sql);
-
- while ($row = $db->sql_fetchrow($result))
- {
- $notify_rows[$row['user_id']]['allowed'] = true;
- }
- $db->sql_freeresult($result);
-
- // Now grab group settings...
- $sql = 'SELECT ug.user_id, MIN(a.auth_setting) as min_setting
- FROM ' . USER_GROUP_TABLE . ' ug, ' . ACL_OPTIONS_TABLE . ' ao, ' . ACL_GROUPS_TABLE . ' a
- WHERE ug.user_id IN (' . implode(', ', array_keys($notify_rows)) . ")
- AND a.group_id = ug.group_id
- AND ao.auth_option_id = a.auth_option_id
- AND ao.auth_option = 'f_read'
- AND a.forum_id = $forum_id
- GROUP BY ug.user_id";
- $result = $db->sql_query($sql);
- while ($row = $db->sql_fetchrow($result))
+ $perms = array();
+/* foreach (discover_auth(array_keys($notify_rows), array('f_read'), $forum_id) as $user_id => $forum_ary)
{
- if ($row['min_setting'] == 1)
+ foreach ($forum_ary as $forum_id => $option_ary)
{
- $notify_rows[$row['user_id']]['allowed'] = true;
+ if (array_sum(array_values($option_ary)))
+ {
+ echo array_sum(array_values($option_ary));
+ echo " >> ";
+// $perms[] = $user_id;
+// break;
+ }
}
+ print_r($forum_ary);
}
- $db->sql_freeresult($result);
-
+*/
+
// Now, we have to do a little step before really sending, we need to distinguish our users a little bit. ;)
$email_users = $delete_ids = $update_notification = array();
foreach ($notify_rows as $user_id => $row)
{
- if (!$row['allowed'] || trim($row['user_email']) == '')
+ if (!$row['allowed'] || !trim($row['user_email']))
{
$delete_ids[$row['notify_type']][] = $row['user_id'];
}
else
{
- $email_users[] = $row;
+ $msg_users[] = $row;
$update_notification[$row['notify_type']][] = $row['user_id'];
}
}
unset($notify_rows);
+
+
+
+
// Now, we are able to really send out notifications
- if (sizeof($email_users) && $config['email_enable'])
+ if (sizeof($msg_users))
{
- @set_time_limit(60);
+ include_once($phpbb_root_path . 'includes/functions_messenger.'.$phpEx);
+ $messenger = new messenger();
- include($phpbb_root_path . 'includes/emailer.'.$phpEx);
- $emailer = new emailer(TRUE); // use queue
+ $email_sig = str_replace('<br />', "\n", "-- \n" . $config['board_email_sig']);
- $email_list_ary = array();
- foreach ($email_users as $row)
+ $msg_list_ary = array();
+ foreach ($msg_users as $row)
{
- $pos = sizeof($email_list_ary[$row['template']]);
- $email_list_ary[$row['template']][$pos]['email'] = $row['user_email'];
- $email_list_ary[$row['template']][$pos]['name'] = $row['username'];
- $email_list_ary[$row['template']][$pos]['lang'] = $row['user_lang'];
+ $pos = sizeof($msg_list_ary[$row['template']]);
+
+ $msg_list_ary[$row['template']][$pos]['method'] = $row['method'];
+ $msg_list_ary[$row['template']][$pos]['email'] = $row['user_email'];
+ $msg_list_ary[$row['template']][$pos]['user_jabber'] = $row['user_jabber'];
+ $msg_list_ary[$row['template']][$pos]['name'] = $row['username'];
+ $msg_list_ary[$row['template']][$pos]['lang'] = $row['user_lang'];
}
unset($email_users);
- foreach ($email_list_ary as $email_template => $email_list)
+ foreach ($msg_list_ary as $email_template => $email_list)
{
foreach ($email_list as $addr)
{
- $emailer->template($email_template, $addr['lang']);
+ $messenger->template($email_template, $addr['lang']);
- $emailer->replyto($config['board_email']);
- $emailer->to($addr['email'], $addr['name']);
+ $messenger->replyto($config['board_email']);
+ $messenger->to($addr['email'], $addr['name']);
- $emailer->assign_vars(array(
- 'EMAIL_SIG' => str_replace('<br />', "\n", "-- \n" . $config['board_email_sig']),
+ $messenger->assign_vars(array(
+ 'EMAIL_SIG' => $email_sig,
'SITENAME' => $config['sitename'],
- 'TOPIC_TITLE' => trim($topic_title),
- 'FORUM_NAME' => trim($forum_name),
-
- 'U_NEWEST_POST' => generate_board_url() . '/viewtopic.'.$phpEx . '?e=1&t=' . $topic_id . '&p=' . $post_id . '#' . $post_id,
- 'U_TOPIC' => generate_board_url() . '/viewtopic.'.$phpEx . '?e=1&t=' . $topic_id,
- 'U_FORUM' => generate_board_url() . '/viewforum.'.$phpEx . '?e=1&f=' . $forum_id,
- 'U_STOP_WATCHING_TOPIC' => generate_board_url() . '/viewtopic.'.$phpEx . '?t=' . $topic_id . '&unwatch=topic',
- 'U_STOP_WATCHING_FORUM' => generate_board_url() . '/viewforum.'.$phpEx . '?f=' . $forum_id . '&unwatch=forum')
- );
-
- $emailer->send();
- $emailer->reset();
+ 'TOPIC_TITLE' => $topic_title,
+ 'FORUM_NAME' => $forum_name,
+
+ 'U_FORUM' => generate_board_url() . "/viewforum.$phpEx?f=$forum_id&e=1",
+ 'U_TOPIC' => generate_board_url() . "/viewtopic.$phpEx?f=$forum_id&t=$topic_id&e=1",
+ 'U_NEWEST_POST' => generate_board_url() . "/viewtopic.$phpEx?f=$forum_id&t=$topic_id&p=$post_id&e=1#$post_id",
+ 'U_STOP_WATCHING_TOPIC' => generate_board_url() . "/viewtopic.$phpEx?f=$forum_id&t=$topic_id&unwatch=topic",
+ 'U_STOP_WATCHING_FORUM' => generate_board_url() . "/viewforum.$phpEx?f=$forum_id&unwatch=forum",
+ ));
+
+ $messenger->send($addr['method']);
+ $messenger->reset();
}
}
unset($email_list_ary);
-
- $emailer->mail_queue->save();
}
+ $messenger->queue->save();
+ // Handle the DB updates
$db->sql_transaction();
- // Now update the notification status
if (sizeof($update_notification['topic']))
{
- $sql = "UPDATE " . TOPICS_WATCH_TABLE . "
+ $sql = 'UPDATE ' . TOPICS_WATCH_TABLE . "
SET notify_status = 1
WHERE topic_id = $topic_id
AND user_id IN (" . implode(', ', $update_notification['topic']) . ")";
@@ -1306,7 +1300,7 @@ function user_notification($mode, $subject, $topic_title, $forum_name, $forum_id
if (sizeof($update_notification['forum']))
{
- $sql = "UPDATE " . FORUMS_WATCH_TABLE . "
+ $sql = 'UPDATE ' . FORUMS_WATCH_TABLE . "
SET notify_status = 1
WHERE forum_id = $forum_id
AND user_id IN (" . implode(', ', $update_notification['forum']) . ")";
@@ -1316,7 +1310,7 @@ function user_notification($mode, $subject, $topic_title, $forum_name, $forum_id
// Now delete the user_ids not authorized to receive notifications on this topic/forum
if (sizeof($delete_ids['topic']))
{
- $sql = "DELETE FROM " . TOPICS_WATCH_TABLE . "
+ $sql = 'DELETE FROM ' . TOPICS_WATCH_TABLE . "
WHERE topic_id = $topic_id
AND user_id IN (" . implode(', ', $delete_ids['topic']) . ")";
$db->sql_query($sql);
@@ -1324,7 +1318,7 @@ function user_notification($mode, $subject, $topic_title, $forum_name, $forum_id
if (sizeof($delete_ids['forum']))
{
- $sql = "DELETE FROM " . FORUMS_WATCH_TABLE . "
+ $sql = 'DELETE FROM ' . FORUMS_WATCH_TABLE . "
WHERE forum_id = $forum_id
AND user_id IN (" . implode(', ', $delete_ids['forum']) . ")";
$db->sql_query($sql);