backoffice/html/mailing/admin/send.php
2011-06-21 13:28:10 +00:00

173 lines
5.3 KiB
PHP

<?php
require_once dirname(__FILE__).'/accesscheck.php';
$access = accessLevel("send");
switch ($access) {
case "owner":
$subselect = " where owner = ".$_SESSION["logindetails"]["id"];
$ownership = ' and owner = '.$_SESSION["logindetails"]["id"];
break;
case "all":
$subselect = "";
$ownership = '';
break;
case "none":
default:
$subselect = " where id = 0";
$ownership = " and id = 0";
break;
}
# handle commandline
if ($GLOBALS["commandline"]) {
# error_reporting(63);
$cline = parseCline();
reset($cline);
if (!$cline || !is_array($cline) || !$cline["s"] || !$cline["l"]) {
clineUsage("-s subject -l list [-f from] < message");
exit;
}
$listnames = explode(" ",$cline["l"]);
$listids = array();
foreach ($listnames as $listname) {
if (!is_numeric($listname)) {
$listid = Sql_Fetch_Array_Query(sprintf('select * from %s where name = "%s"',
$tables["list"],$listname));
if ($listid["id"]) {
$listids[$listid["id"]] = $listname;
}
} else {
$listid = Sql_Fetch_Array_Query(sprintf('select * from %s where id = %d',
$tables["list"],$listname));
if ($listid["id"]) {
$listids[$listid["id"]] = $listid["name"];
}
}
}
$_POST["targetlist"] = array();
foreach ($listids as $key => $val) {
$_POST["targetlist"][$key] = "signup";
$lists .= '"'.$val.'"' . " ";
}
if ($cline["f"]) {
$_POST["from"] = $cline["f"];
} else {
$_POST["from"] = getConfig("message_from_name") . ' '.getConfig("message_from_address");
}
$_POST["subject"] = $cline["s"];
$_POST["send"] = "1";
$_POST["footer"] = getConfig("messagefooter");
while (!feof (STDIN)) {
$_POST["message"] .= fgets(STDIN, 4096);
}
# print clineSignature();
# print "Sending message with subject ".$_POST["subject"]. " to ". $lists."\n";
}
ob_start();
include "send_core.php";
if ($done) {
if ($GLOBALS["commandline"]) {
ob_end_clean();
print clineSignature();
print "Message with subject ".$_POST["subject"]. " was sent to ". $lists."\n";
exit;
}
return;
}
/*if (!$_GET["id"]) {
Sql_Query(sprintf('insert into %s (subject,status,entered)
values("(no subject)","draft",now())',$GLOBALS["tables"]["message"]));
$id = Sql_Insert_id();
Redirect("send&id=$id");
}
*/
$list_content = '
<p>'.$GLOBALS['I18N']->get('selectlists').':</p>
<ul>
<li><input type=checkbox name="targetlist[all]"
';
if (isset($_POST["targetlist"]["all"]) && $_POST["targetlist"]["all"])
$list_content .= "checked";
$list_content .= '>'.$GLOBALS['I18N']->get('alllists').'</li>';
$list_content .= '<li><input type=checkbox name="targetlist[allactive]"
';
if (isset($_POST["targetlist"]["allactive"]) && $_POST["targetlist"]["allactive"])
$list_content .= "checked";
$list_content .= '>'.$GLOBALS['I18N']->get('All Active Lists').'</li>';
$result = Sql_query("SELECT * FROM $tables[list] $subselect");
while ($row = Sql_fetch_array($result)) {
# check whether this message has been marked to send to a list (when editing)
$checked = 0;
if ($_GET["id"]) {
$sendtolist = Sql_Query(sprintf('select * from %s where
messageid = %d and listid = %d',$tables["listmessage"],$_GET["id"],$row["id"]));
$checked = Sql_Affected_Rows();
}
$list_content .= sprintf('<li><input type=checkbox name="targetlist[%d]" value="%d" ',$row["id"],$row["id"]);
if ($checked || (isset($_POST["targetlist"][$row["id"]]) && $_POST["targetlist"][$row["id"]]))
$list_content .= "checked";
$list_content .= ">".stripslashes($row["name"]);
if ($row["active"])
$list_content .= ' (<font color=red>'.$GLOBALS['I18N']->get('listactive').'</font>)';
else
$list_content .= ' (<font color=red>'.$GLOBALS['I18N']->get('listnotactive').'</font>)';
$desc = nl2br(stripslashes($row["description"]));
$list_content .= "<br>$desc</li>";
$some = 1;
}
$list_content .= '</ul>';
if (USE_LIST_EXCLUDE) {
$list_content .= '
<hr/><h1>'.$GLOBALS['I18N']->get('selectexcludelist').'</h1><p>'.$GLOBALS['I18N']->get('excludelistexplain').'</p>
<ul>';
$dbdata = Sql_Fetch_Row_Query(sprintf('select data from %s where name = "excludelist" and id = %d',
$GLOBALS["tables"]["messagedata"],$_GET["id"]));
$excluded_lists = explode(",",$dbdata[0]);
$result = Sql_query(sprintf('SELECT * FROM %s %s',$GLOBALS["tables"]["list"],$subselect));
while ($row = Sql_fetch_array($result)) {
$checked = in_array($row["id"],$excluded_lists);
$list_content .= sprintf('<li><input type=checkbox name="excludelist[%d]" value="%d" ',$row["id"],$row["id"]);
if ($checked || isset($_POST["excludelist"][$row["id"]]))
$list_content .= "checked";
$list_content .= ">".stripslashes($row["name"]);
if ($row["active"])
$list_content .= ' (<font color=red>'.$GLOBALS['I18N']->get('listactive').'</font>)';
else
$list_content .= ' (<font color=red>'.$GLOBALS['I18N']->get('listnotactive').'</font>)';
$desc = nl2br(stripslashes($row["description"]));
$list_content .= "<br>$desc</li>";
}
$list_content .= '</ul>';
}
if (!$some)
$list_content = $GLOBALS['I18N']->get('nolistsavailable');
$list_content .= '
<p><input type=submit name=send value="'.$GLOBALS['I18N']->get('sendmessage').'">
</form>
';
if (isset($show_lists) && $show_lists) {
print $list_content;
} else {
print '</form>';
}