115 Zeilen
2,9 KiB
PHP
115 Zeilen
2,9 KiB
PHP
<?php
|
|
/**
|
|
* Project:
|
|
* Contenido Content Management System
|
|
*
|
|
* Description:
|
|
* Cronjob to send reminder items
|
|
*
|
|
* @package Backend
|
|
* @subpackage Cronjobs
|
|
* @version $Rev: 306 $
|
|
* @author Timo A. Hummel
|
|
* @copyright four for business AG <www.4fb.de>
|
|
* @license http://www.contenido.org/license/LIZENZ.txt
|
|
* @link http://www.4fb.de
|
|
* @link http://www.contenido.org
|
|
* @since file available since contenido release <= 4.6
|
|
*
|
|
* $Id: send_reminder.php 306 2014-03-13 23:03:26Z oldperl $:
|
|
*/
|
|
|
|
if (!defined("CON_FRAMEWORK")) {
|
|
define("CON_FRAMEWORK", true);
|
|
}
|
|
|
|
// Contenido startup process
|
|
include_once ('../includes/startup.php');
|
|
|
|
global $cfg, $client;
|
|
|
|
$oldclient = $client;
|
|
|
|
if(!isRunningFromWeb() || function_exists("runJob") || $area == "cronjobs")
|
|
{
|
|
$db = new DB_ConLite;
|
|
|
|
$sql = "SELECT idclient FROM ".$cfg["tab"]["clients"];
|
|
$db->query($sql);
|
|
|
|
$clients = array();
|
|
|
|
while ($db->next_record())
|
|
{
|
|
$clients[] = $db->f("idclient");
|
|
}
|
|
|
|
foreach ($clients as $client)
|
|
{
|
|
$mydate = time();
|
|
|
|
$props = new PropertyCollection;
|
|
$props->select("itemtype = 'idcommunication' AND type = 'todo' AND name = 'reminderdate' AND value < $mydate AND value != 0 AND idclient=$client");
|
|
$pastreminders = array();
|
|
|
|
while ($prop = $props->next())
|
|
{
|
|
$pastreminders[] = $prop->get("itemid");
|
|
}
|
|
|
|
$todoitem = new TODOItem;
|
|
|
|
foreach ($pastreminders as $reminder)
|
|
{
|
|
|
|
$todoitem->loadByPrimaryKey($reminder);
|
|
|
|
if ($todoitem->get("idclient") == $client)
|
|
{
|
|
/* Check if email noti is active */
|
|
if ($todoitem->getProperty("todo", "emailnoti") == 1 && $todoitem->getProperty("todo", "emailnoti-sent") == 0)
|
|
{
|
|
//modified : 2008-07-03 - use php mailer class instead of mail()
|
|
$sMailhost = getSystemProperty('system', 'mail_host');
|
|
if ($sMailhost == '') {
|
|
$sMailhost = 'localhost';
|
|
}
|
|
|
|
$oMail = new PHPMailer();
|
|
$oMail->Host = $sMailhost;
|
|
$oMail->IsHTML(0);
|
|
$oMail->WordWrap = 1000;
|
|
$oMail->IsMail();
|
|
|
|
$user = new User;
|
|
$user->loadUserByUserID($todoitem->get("recipient"));
|
|
|
|
$oMail->AddAddress($user->getField("email"), "");
|
|
$realname = $user->getField("realname");
|
|
$oMail->Subject = $todoitem->get("subject");
|
|
|
|
$client = $todoitem->get("idclient");
|
|
$clientname = getClientName($client);
|
|
|
|
$todoitem->setProperty("todo", "emailnoti-sent", "1");
|
|
$todoitem->setProperty("todo", "emailnoti", "0");
|
|
|
|
$message = i18n("Hello %s,\n\nyou've got a new reminder for the client '%s' at\n%s:\n\n%s");
|
|
|
|
$path = $cfg["path"]["contenido_fullhtml"];
|
|
|
|
$message = sprintf($message, $realname, $clientname, $path, $todoitem->get("message"));
|
|
$oMail->Body = $message;
|
|
$oMail->Send();
|
|
}
|
|
|
|
$todoitem->setProperty("todo", "reminderdate", "0");
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$client = $oldclient;
|
|
?>
|