Add some basic mailing list code
parent
0e767d3930
commit
c8c0f636f0
@ -0,0 +1,94 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
|
||||||
|
require_once __DIR__ . '/../required.php';
|
||||||
|
require_once __DIR__ . '/userinfo.php';
|
||||||
|
|
||||||
|
dieifnotloggedin();
|
||||||
|
|
||||||
|
header("Content-Type: application/json");
|
||||||
|
|
||||||
|
$out = [];
|
||||||
|
|
||||||
|
$out['draw'] = intval($VARS['draw']);
|
||||||
|
|
||||||
|
$out['recordsTotal'] = $database->count('mail_lists');
|
||||||
|
|
||||||
|
$filter = false;
|
||||||
|
|
||||||
|
// sort
|
||||||
|
$order = null;
|
||||||
|
$sortby = "DESC";
|
||||||
|
if ($VARS['order'][0]['dir'] == 'asc') {
|
||||||
|
$sortby = "ASC";
|
||||||
|
}
|
||||||
|
switch ($VARS['order'][0]['column']) {
|
||||||
|
case 2:
|
||||||
|
$order = ["listname" => $sortby];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// search
|
||||||
|
if (!is_empty($VARS['search']['value'])) {
|
||||||
|
$filter = true;
|
||||||
|
$wherenolimit = [];
|
||||||
|
$wherenolimit["AND"]["OR"] = [
|
||||||
|
"listname[~]" => $VARS['search']['value']
|
||||||
|
];
|
||||||
|
$where = $wherenolimit;
|
||||||
|
$where["LIMIT"] = [$VARS['start'], $VARS['length']];
|
||||||
|
} else {
|
||||||
|
$where = ["LIMIT" => [$VARS['start'], $VARS['length']]];
|
||||||
|
}
|
||||||
|
if (!is_null($order)) {
|
||||||
|
$where["ORDER"] = $order;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*$where["OR #perms"] = [
|
||||||
|
"uid" => $_SESSION['uid'],
|
||||||
|
"permname #logg" => "LOGGEDIN",
|
||||||
|
"permname #link" => "LINK"
|
||||||
|
];*/
|
||||||
|
|
||||||
|
//var_dump($where);
|
||||||
|
|
||||||
|
$lists = $database->select('mail_lists',
|
||||||
|
[
|
||||||
|
'listid',
|
||||||
|
'listname',
|
||||||
|
'uid'
|
||||||
|
], $where);
|
||||||
|
|
||||||
|
|
||||||
|
$out['status'] = "OK";
|
||||||
|
if ($filter) {
|
||||||
|
$recordsFiltered = $database->count('mail_lists', $wherenolimit);
|
||||||
|
} else {
|
||||||
|
$recordsFiltered = $out['recordsTotal'];
|
||||||
|
}
|
||||||
|
$out['recordsFiltered'] = $recordsFiltered;
|
||||||
|
|
||||||
|
$usercache = [];
|
||||||
|
for ($i = 0; $i < count($lists); $i++) {
|
||||||
|
if ($lists[$i]["uid"] == $_SESSION['uid']) {
|
||||||
|
$lists[$i]["editbtn"] = '<a class="btn btn-primary btn-xs" href="app.php?page=editlist&id=' . $lists[$i]['listid'] . '"><i class="fa fa-pencil-square-o"></i> ' . lang("edit", false) . '</a>';
|
||||||
|
} else {
|
||||||
|
$lists[$i]["editbtn"] = '<a class="btn btn-purple btn-xs" href="app.php?page=viewlist&id=' . $lists[$i]['listid'] . '"><i class="fa fa-eye"></i> ' . lang("view", false) . '</a>';
|
||||||
|
}
|
||||||
|
$lists[$i]["clonebtn"] = '<a class="btn btn-success btn-xs" href="app.php?page=editlist&id=' . $lists[$i]['listid'] . '&clone=1"><i class="fa fa-clone"></i> ' . lang("clone", false) . '</a>';
|
||||||
|
if (is_null($lists[$i]['uid'])) {
|
||||||
|
$lists[$i]["username"] = "";
|
||||||
|
} else {
|
||||||
|
if (!isset($usercache[$lists[$i]['uid']])) {
|
||||||
|
$usercache[$lists[$i]['uid']] = getUserByID($lists[$i]['uid']);
|
||||||
|
}
|
||||||
|
$lists[$i]["username"] = $usercache[$lists[$i]['uid']]['name'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$out['lists'] = $lists;
|
||||||
|
|
||||||
|
echo json_encode($out);
|
@ -0,0 +1,96 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
require_once __DIR__ . '/../required.php';
|
||||||
|
|
||||||
|
redirectifnotloggedin();
|
||||||
|
|
||||||
|
$data = [
|
||||||
|
'name' => '',
|
||||||
|
'id' => ''
|
||||||
|
];
|
||||||
|
|
||||||
|
$editing = false;
|
||||||
|
$cloning = false;
|
||||||
|
|
||||||
|
if (!is_empty($VARS['id'])) {
|
||||||
|
if ($database->has('mail_lists', ['listid' => $VARS['id']])) {
|
||||||
|
$editing = true;
|
||||||
|
if ($VARS['clone'] == 1) {
|
||||||
|
$cloning = true;
|
||||||
|
}
|
||||||
|
$data = $database->select(
|
||||||
|
'mail_lists', [
|
||||||
|
'listid (id)',
|
||||||
|
'listname (name)',
|
||||||
|
'uid'
|
||||||
|
], [
|
||||||
|
'listid' => $VARS['id']
|
||||||
|
])[0];
|
||||||
|
} else {
|
||||||
|
// item id is invalid, redirect to a page that won't cause an error when pressing Save
|
||||||
|
header('Location: app.php?page=editlist');
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
||||||
|
<form role="form" action="action.php" method="POST">
|
||||||
|
<div class="panel panel-primary">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<h3 class="panel-title">
|
||||||
|
<?php
|
||||||
|
if ($cloning) {
|
||||||
|
?>
|
||||||
|
<i class="fa fa-pencil-square-o"></i> <?php lang2("cloning list", ['olist' => htmlspecialchars($data['name']), 'nlist' => "<span id=\"name_title\">" . htmlspecialchars($data['name']) . "</span>"]); ?>
|
||||||
|
<?php
|
||||||
|
} else if ($editing) {
|
||||||
|
?>
|
||||||
|
<i class="fa fa-pencil-square-o"></i> <?php lang2("editing list", ['list' => "<span id=\"name_title\">" . htmlspecialchars($data['name']) . "</span>"]); ?>
|
||||||
|
<?php
|
||||||
|
} else {
|
||||||
|
?>
|
||||||
|
<i class="fa fa-pencil-square-o"></i> <?php lang("adding list"); ?>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="name"><i class="fa fa-font"></i> <?php lang("name"); ?></label>
|
||||||
|
<input type="text" class="form-control" id="name" name="name" placeholder="<?php lang("placeholder name"); ?>" required="required" value="<?php echo htmlspecialchars($data['name']); ?>" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<input type="hidden" name="listid" value="<?php
|
||||||
|
if ($editing && !$cloning) {
|
||||||
|
echo htmlspecialchars($VARS['id']);
|
||||||
|
}
|
||||||
|
?>" />
|
||||||
|
|
||||||
|
<?php if ($editing && $cloning) { ?>
|
||||||
|
<input type="hidden" name="cloneid" value="<?php echo htmlspecialchars($VARS['id']); ?>" />
|
||||||
|
<?php } ?>
|
||||||
|
<input type="hidden" name="action" value="editlist" />
|
||||||
|
<input type="hidden" name="source" value="maillist" />
|
||||||
|
|
||||||
|
<div class="panel-footer">
|
||||||
|
<button type="submit" class="btn btn-success"><i class="fa fa-floppy-o"></i> <?php lang("save"); ?></button>
|
||||||
|
<?php
|
||||||
|
if ($editing && !$cloning) {
|
||||||
|
?>
|
||||||
|
<a href="action.php?action=deletelist&source=maillist&listid=<?php echo htmlspecialchars($VARS['id']); ?>" class="btn btn-danger btn-xs pull-right mgn-top-8px"><i class="fa fa-times"></i> <?php lang('delete'); ?></a>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
@ -0,0 +1,7 @@
|
|||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
$('#name').on('input propertychange paste', function () {
|
||||||
|
$('#name_title').text($('#name').val());
|
||||||
|
});
|
Loading…
Reference in New Issue