207 lines
6.4 KiB
PHP
207 lines
6.4 KiB
PHP
<?php
|
|
//
|
|
// Minimalist Admin is a very simple webinterface for Minimalist
|
|
// Copyright (c) 2005-2014 High5! (Mischa Peters <mischa at high5 dot nl>)
|
|
//
|
|
// This program is free software; you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation; either version 2 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// This program is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with this program; if not, write to the Free Software
|
|
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
//
|
|
// Minimalist Admin verion 0.6, Copyright (c) 2005-2014 High5! (Mischa Peters)
|
|
// Minimalist Admin comes with ABSOLUTELY NO WARRANTY.
|
|
// This is free software, and you are welcome to redistribute it
|
|
// under certain conditions.
|
|
//
|
|
// High5!, hereby disclaims all copyright interest in the program
|
|
// `Minimalist Admin' (which makes passes at Minimalist) written
|
|
// by Vladimir Litovka.
|
|
//
|
|
//error_reporting(E_NOTICE | E_ERROR | E_WARNING | E_PARSE);
|
|
|
|
// Read global config file
|
|
include "config.inc";
|
|
|
|
// Minimalist Admin version
|
|
$version = "0.6";
|
|
|
|
// Set some variables.
|
|
$get_list = "";
|
|
$email = "";
|
|
$emailconfirm = "";
|
|
$writeonly = "";
|
|
$unsubscribe = "";
|
|
|
|
// _GET list to process
|
|
if (!empty($_GET['l']))
|
|
{
|
|
$get_list = $_GET['l'];
|
|
if (!preg_match('/^([a-z0-9-])+$/i', trim($get_list)))
|
|
{
|
|
header("Location: index.php");
|
|
exit;
|
|
}
|
|
// Check if list config exists and include it
|
|
if (file_exists("lists/$get_list-config.inc")) include "lists/$get_list-config.inc";
|
|
}
|
|
|
|
// Set variables from config.inc and lists/$get_list-config.inc
|
|
$minimalist_lists = $CONF['minimalist_lists'];
|
|
$minimalist_email = $CONF['minimalist_email'];
|
|
$minimalist_title = $CONF['minimalist_title'];
|
|
$minimalist_list_title = $CONF['minimalist_list_title'];
|
|
$list_name = $CONF['list_name'];
|
|
$list_writers = $CONF['list_writers'];
|
|
$list_subscribe = $CONF['list_subscribe'];
|
|
$list_unsubscribe = $CONF['list_unsubscribe'];
|
|
$error_email_nomatch = $CONF['error_email_nomatch'];
|
|
$error_email_notvalid = $CONF['error_email_notvalid'];
|
|
|
|
// Print the html header
|
|
print_header();
|
|
|
|
// Test if REQUEST_METHOD is a GET request
|
|
if ($_SERVER['REQUEST_METHOD'] == "GET")
|
|
{
|
|
// If $get_list is not empty print list form
|
|
if (!empty($get_list))
|
|
{
|
|
print_form();
|
|
print_footer();
|
|
}
|
|
// If $get_list is empty process the $minimalist_lists file.
|
|
else
|
|
{
|
|
if (file_exists("$minimalist_lists"))
|
|
{
|
|
$fh = file("$minimalist_lists");
|
|
print "<table border=\"0\" class=\"list\">\n";
|
|
for ($i = 0; $i < sizeof($fh); $i++)
|
|
{
|
|
list($list, $desc) = preg_split("/\t/", $fh[$i], 2);
|
|
if (!empty($list)) print "<tr><td><a href=\"index.php?l=$list\">$list</a></td><td>$desc</td></tr>\n";
|
|
}
|
|
print "</table>\n";
|
|
}
|
|
else
|
|
{
|
|
print "Unable to find minimalists file at: $minimalist_lists\n";
|
|
}
|
|
print_footer();
|
|
}
|
|
}
|
|
|
|
// Test if REQUEST_METHOD is a GET request
|
|
if ($_SERVER['REQUEST_METHOD'] == "POST")
|
|
{
|
|
if (!empty($_POST['email'])) $email = $_POST['email'];
|
|
if (!empty($_POST['emailconfirm'])) $emailconfirm = $_POST['emailconfirm'];
|
|
if (!empty($_POST['writeonly'])) $writeonly = $_POST['writeonly'];
|
|
if (!empty($_POST['unsubscribe'])) $unsubscribe = $_POST['unsubscribe'];
|
|
|
|
if ($email != $emailconfirm)
|
|
{
|
|
print "$error_email_nomatch\n";
|
|
print_form();
|
|
print_footer();
|
|
exit;
|
|
}
|
|
|
|
if (!preg_match('/^[-!#$%&\'*+\\.\/0-9=?A-Z^_{|}~]+' . '@' . '([-0-9A-Z]+\.)+' . '([0-9A-Z]){2,4}$/i', trim($email)))
|
|
{
|
|
print "$error_email_notvalid\n";
|
|
print_form();
|
|
print_footer();
|
|
exit;
|
|
}
|
|
|
|
if (!empty($writeonly))
|
|
{
|
|
$get_list = $get_list . "-writers";
|
|
}
|
|
|
|
if ($unsubscribe)
|
|
{
|
|
mail($minimalist_email, "unsubscribe $get_list $email", "", "From: $email");
|
|
print "$list_unsubscribe\n";
|
|
print_footer();
|
|
exit;
|
|
}
|
|
else
|
|
{
|
|
mail($minimalist_email, "subscribe $get_list $email", "", "From: $email");
|
|
print "$list_subscribe\n";
|
|
print_footer();
|
|
exit;
|
|
}
|
|
}
|
|
|
|
function print_header()
|
|
{
|
|
global $get_list;
|
|
global $minimalist_title;
|
|
global $minimalist_list_title;
|
|
global $list_name;
|
|
global $list_writers;
|
|
|
|
// Set the title_list_name to $list_name if $get_list is empty.
|
|
$title_list_name = (empty($list_name)) ? $get_list : $list_name;
|
|
// Set the title to $minimalist_title if $get_list is empty.
|
|
$title = (empty($get_list)) ? $minimalist_title : "$minimalist_list_title $title_list_name";
|
|
|
|
print "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
|
|
print "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n";
|
|
print "<head>\n";
|
|
print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">\n";
|
|
if (file_exists(realpath("lists/$get_list-stylesheet.css")))
|
|
{
|
|
print "<link rel=\"stylesheet\" href=\"lists/$get_list-stylesheet.css\">\n";
|
|
}
|
|
else
|
|
{
|
|
print "<link rel=\"stylesheet\" href=\"stylesheet.css\">\n";
|
|
}
|
|
print "<title>$title</title>\n";
|
|
print "</head>\n";
|
|
print "<body>\n";
|
|
print "<h2>$title</h2>\n";
|
|
}
|
|
|
|
function print_form()
|
|
{
|
|
global $list_writers;
|
|
print "<form method=\"post\">\n";
|
|
print "<table border=\"0\">\n";
|
|
print "<tr><td>Email:</td><td><input type=\"textbox\" name=\"email\"></td></tr>\n";
|
|
print "<tr><td>Email (verification):</td><td><input type=\"textbox\" name=\"emailconfirm\"></td></tr>\n";
|
|
if (preg_match("/enable/", $list_writers)) {
|
|
print "<tr><td>Post Only (don't receive):</td><td><input type=\"checkbox\" name=\"writeonly\"></td></tr>\n";
|
|
}
|
|
print "<tr><td>Unsubscribe:</td><td><input type=\"checkbox\" name=\"unsubscribe\"></td></tr>\n";
|
|
print "<tr><td align=\"center\" colspan=\"2\"><input type=\"submit\" name=\"submit\" value=\"Submit\"></tr>\n";
|
|
print "</table>\n";
|
|
print "</form>\n";
|
|
print "<br />\n";
|
|
print "<a href=\"index.php\">Back</a>\n";
|
|
}
|
|
|
|
function print_footer()
|
|
{
|
|
global $version;
|
|
print "<div id=\"footer\">\n";
|
|
print "Copyright (c) 2005-2011 by <a target=\"blank\" href=\"http://high5.net/\">High5!</a> -- Minimalist Admin v$version</a>\n";
|
|
print "</div>\n";
|
|
print "</body>\n";
|
|
print "</html>\n";
|
|
}
|
|
?>
|