This repository has been archived on 2024-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
mybb-digest/digest.php
Alexander Yakovlev de9ab2aa5f Numerous fixes
- Hyperlinks in the digest
- No deleted, closed or moved threads in the digest
- No "Last update" column for threads with 0 replies
- Changed date format to 17/05/2017
- Set the timzeone explicitly
2017-05-09 16:46:02 +07:00

64 lines
2 KiB
PHP

<?php
require_once "vendor/autoload.php";
require_once "config.php";
require_once "activethreads.php";
require_once "email.php";
$pdo = new PDO(DSN, MYSQL_USER, MYSQL_PASSWORD);
$threads = getLatestActiveThreads(FORUM_ID, 100, true);
if (empty($threads)) {
die("No new threads.");
}
$users = $pdo->prepare("SELECT usergroup, loginkey, email, username FROM ".MYBB_PREFIX."users
WHERE usergroup = 4
AND isSubscribed = 1");
$users->execute();
$users = $users->fetchAll();
$url = $pdo->prepare("SELECT value FROM ".MYBB_PREFIX."settings WHERE name = 'bburl'");
$url->execute();
$url = $url->fetch()['value'];
$tmp = $pdo->prepare("SELECT name, value FROM ".MYBB_PREFIX."settings WHERE name LIKE 'smtp_%'");
$tmp->execute();
$tmp = $tmp->fetchAll();
$smtp = [];
foreach ($tmp as $row) {
$smtp[$row['name']] = $row['value'];
}
unset($tmp);
$transport = Swift_SmtpTransport::newInstance($smtp['smtp_host'], $smtp['smtp_port'])
->setUsername($smtp['smtp_user'])
->setPassword($smtp['smtp_pass']);
$mailer = Swift_Mailer::newInstance($transport);
$forbidden = 'SELECT fid, gid FROM '.MYBB_PREFIX.'forumpermissions WHERE canviewthreads = 0';
$forbidden = $pdo->prepare($forbidden);
$forbidden->execute();
$forbidden = $forbidden->fetchAll();
$temp = $forbidden;
$forbidden = [];
foreach ($temp as $row) {
if (!isset($forbidden[$row['gid']])) {
$forbidden[$row['gid']] = [];
}
$forbidden[$row['gid']][] = $row['fid'];
}
foreach ($users as $user) {
$email = $user['email'];
$message = print_email($user['username'], $url.D_PATH.'/unsubscribe.php?email='.$user['email'].'&key='.$user['loginkey'], $threads, $forbidden[$user['usergroup']], $url);
if (DRY_RUN) {
echo $message;
}
$message = Swift_Message::newInstance()
->setSubject('Daily Digest')
->setFrom(['no-reply@olympicbusinessforum.com' => 'Olympic Business Forum'])
->setSender(['no-reply@olympicbusinessforum.com' => 'Olympic Business Forum'])
->setTo(array($email => $user['username']))
->setBody($message, 'text/html');
if (!DRY_RUN) {
$mailer->send($message);
}
}